<?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>230124</bug_id>
          
          <creation_ts>2021-09-09 14:06:33 -0700</creation_ts>
          <short_desc>[libpas] Update to 38b9b0b92ccc9628627c742523de6200acc08211 and fully enable on AS</short_desc>
          <delta_ts>2021-09-16 11:05:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>bmalloc</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>230362</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jsbell</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1792080</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-09-09 14:06:33 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792082</commentid>
    <comment_count>1</comment_count>
      <attachid>437783</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-09-09 14:16:00 -0700</bug_when>
    <thetext>Created attachment 437783
patch for landing, maybe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792090</commentid>
    <comment_count>2</comment_count>
      <attachid>437786</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-09-09 14:29:37 -0700</bug_when>
    <thetext>Created attachment 437786
better changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792112</commentid>
    <comment_count>3</comment_count>
      <attachid>437793</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-09-09 15:20:56 -0700</bug_when>
    <thetext>Created attachment 437793
added RAMification number to changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1792226</commentid>
    <comment_count>4</comment_count>
      <attachid>437793</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-09 20:29:42 -0700</bug_when>
    <thetext>Comment on attachment 437793
added RAMification number to changelog

View in context: https://bugs.webkit.org/attachment.cgi?id=437793&amp;action=review

r=me

&gt; Source/bmalloc/ChangeLog:25
&gt; +        - Replace biasing and magazines with per-thread view caches. A view cache is a bounded-size
&gt; +          queue of exclusive_views (i.e. pages) that is local to a thread. Each thread has a view
&gt; +          cache for every segregated_size_directory that it talks to and that has view caching
&gt; +          enabled. The size directories can control view cache size somewhat dynamically (different
&gt; +          directories can have different size view caches). Views get enqueued when a thread frees
&gt; +          the first object in the page. Views get dequeued whenever a thread would have asked the
&gt; +          directory for a view but the view cache was non-empty.
&gt; +
&gt; +          This change increases the efficiency of local_allocator_refill, since pages have a longer
&gt; +          time to &quot;cook&quot; before anyone allocates from them (since the view cache is a queue). As
&gt; +          well, view caches&apos; thread-locality means that there is no locking or contention when
&gt; +          accessing them. The scavenger has clever tricks for clearing out view caches, similarly to
&gt; +          how it clears out local allocators (it uses thread_suspend).

Yeah, I tried using magazine in bmalloc, and the result was, thread-local one was better (lock is not necessary, cpu-number can change relatively easily etc.).

&gt; Source/bmalloc/bmalloc/BPlatform.h:323
&gt; +#if defined(BENABLE_LIBPAS) &amp;&amp; BENABLE_LIBPAS

We can use `if BENABLE(LIBPAS)`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793932</commentid>
    <comment_count>5</comment_count>
      <attachid>438314</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-09-15 18:39:25 -0700</bug_when>
    <thetext>Created attachment 438314
patch for landing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793997</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-09-16 03:37:08 -0700</bug_when>
    <thetext>Looks like mac-AS-debug-wk2 failures are due to test flakiness. Both tests are failing frequently these days.

https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fcss%2Fcss-transforms%2Fcrashtests%2Ftransform-marquee-resize-div-image-001.html
https://results.webkit.org/?suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Fwebrtc%2FRTCDataChannel-close.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794028</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-09-16 06:50:13 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/282556/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794030</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-16 06:54:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/83195529&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794080</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-09-16 10:06:52 -0700</bug_when>
    <thetext>It looks like the changes in nhttps://trac.webkit.org/changeset/282556/webkit

broke multiple tests on arm64 JSC testers:

https://build.webkit.org/#/builders/166/builds/2069
https://build.webkit.org/#/builders/102/builds/3448</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1794110</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-09-16 11:05:36 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #9)
&gt; It looks like the changes in nhttps://trac.webkit.org/changeset/282556/webkit
&gt; 
&gt; broke multiple tests on arm64 JSC testers:
&gt; 
&gt; https://build.webkit.org/#/builders/166/builds/2069
&gt; https://build.webkit.org/#/builders/102/builds/3448

Fix: https://bugs.webkit.org/show_bug.cgi?id=230362</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437783</attachid>
            <date>2021-09-09 14:16:00 -0700</date>
            <delta_ts>2021-09-09 14:29:37 -0700</delta_ts>
            <desc>patch for landing, maybe</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>1215334</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwMyBAQAorMjAyMS0wOS0wOSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIFVwZGF0ZSB0byA5
NzZmOGRkZGZiODcyMTA5NWY2OGNlNTY5NzM0MDFhMzQyYjE4Y2I1IGFuZCBmdWxseSBlbmFibGUg
b24gQVMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MDEyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgdXBkYXRlcyBsaWJwYXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIGFuZCBlbmFibGVzIGl0IGNv
bXBsZXRlbHkgb24gQVMgKG5vdCBqdXN0IGZvcgorICAgICAgICBqaXRfaGVhcCBhcyBiZWZvcmUp
LgorCisgICAgICAgIFRoZSBtYWluIGNoYW5nZXMgYXJlOgorCisgICAgICAgIC0gUmVwbGFjZSBi
aWFzaW5nIGFuZCBtYWdhemluZXMgd2l0aCBwZXItdGhyZWFkIHZpZXcgY2FjaGVzLiBBIHZpZXcg
Y2FjaGUgaXMgYSBib3VuZGVkLXNpemUKKyAgICAgICAgICBxdWV1ZSBvZiBleGNsdXNpdmVfdmll
d3MgKGkuZS4gcGFnZXMpIHRoYXQgaXMgbG9jYWwgdG8gYSB0aHJlYWQuIEVhY2ggdGhyZWFkIGhh
cyBhIHZpZXcKKyAgICAgICAgICBjYWNoZSBmb3IgZXZlcnkgc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSB0aGF0IGl0IHRhbGtzIHRvIGFuZCB0aGF0IGhhcyB2aWV3IGNhY2hpbmcKKyAgICAgICAg
ICBlbmFibGVkLiBUaGUgc2l6ZSBkaXJlY3RvcmllcyBjYW4gY29udHJvbCB2aWV3IGNhY2hlIHNp
emUgc29tZXdoYXQgZHluYW1pY2FsbHkgKGRpZmZlcmVudAorICAgICAgICAgIGRpcmVjdG9yaWVz
IGNhbiBoYXZlIGRpZmZlcmVudCBzaXplIHZpZXcgY2FjaGVzKS4gVmlld3MgZ2V0IGVucXVldWVk
IHdoZW4gYSB0aHJlYWQgZnJlZXMKKyAgICAgICAgICB0aGUgZmlyc3Qgb2JqZWN0IGluIHRoZSBw
YWdlLiBWaWV3cyBnZXQgZGVxdWV1ZWQgd2hlbmV2ZXIgYSB0aHJlYWQgd291bGQgaGF2ZSBhc2tl
ZCB0aGUKKyAgICAgICAgICBkaXJlY3RvcnkgZm9yIGEgdmlldyBidXQgdGhlIHZpZXcgY2FjaGUg
d2FzIG5vbi1lbXB0eS4KKworICAgICAgICAgIFRoaXMgY2hhbmdlIGluY3JlYXNlcyB0aGUgZWZm
aWNpZW5jeSBvZiBsb2NhbF9hbGxvY2F0b3JfcmVmaWxsLCBzaW5jZSBwYWdlcyBoYXZlIGEgbG9u
Z2VyCisgICAgICAgICAgdGltZSB0byAiY29vayIgYmVmb3JlIGFueW9uZSBhbGxvY2F0ZXMgZnJv
bSB0aGVtIChzaW5jZSB0aGUgdmlldyBjYWNoZSBpcyBhIHF1ZXVlKS4gQXMKKyAgICAgICAgICB3
ZWxsLCB2aWV3IGNhY2hlcycgdGhyZWFkLWxvY2FsaXR5IG1lYW5zIHRoYXQgdGhlcmUgaXMgbm8g
bG9ja2luZyBvciBjb250ZW50aW9uIHdoZW4KKyAgICAgICAgICBhY2Nlc3NpbmcgdGhlbS4gVGhl
IHNjYXZlbmdlciBoYXMgY2xldmVyIHRyaWNrcyBmb3IgY2xlYXJpbmcgb3V0IHZpZXcgY2FjaGVz
LCBzaW1pbGFybHkgdG8KKyAgICAgICAgICBob3cgaXQgY2xlYXJzIG91dCBsb2NhbCBhbGxvY2F0
b3JzIChpdCB1c2VzIHRocmVhZF9zdXNwZW5kKS4KKworICAgICAgICAtIEZpeCBoYXNoIGNvbGxp
c2lvbnMgaW4gdGhlIHBhZ2UgaGVhZGVyIHRhYmxlLiBQcmV2aW91c2x5LCBJIHdhcyB1c2luZyBh
biB1bmFjY2VwdGFibHkKKyAgICAgICAgICB0cml2aWFsIGhhc2ggZnVuY3Rpb24gYW5kIGl0IF9z
b21ldGltZXNfIGNhdXNlZCBwZXJmIHBhdGhvbG9naWVzLgorCisgICAgICAgIDEuMyUgZmFzdGVy
IG9uIFNwZWVkb21ldGVyMi4gTmV1dHJhbCBvbiBKZXRTdHJlYW0yLiBGSVhNRSwgc3RpbGwgbmVl
ZCB0byBjb25maXJtCisgICAgICAgIFJBTWlmaWNhdGlvbiBhbmQgbWF5YmUgb3RoZXIgYmVuY2ht
YXJrcy4KKworICAgICAgICAqIGJtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBibWFsbG9jL0JQbGF0Zm9ybS5oOgorICAgICAgICAqIGxpYnBhcy9leHBvcnQuc2g6
IEFkZGVkLgorICAgICAgICAqIGxpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuYzoKKyAgICAgICAg
KGJtYWxsb2NfYWxsb2NhdGVfc2xvdyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1h
bGxvY19oZWFwX2NvbmZpZy5jOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2Nf
aGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBf
aW5saW5lcy5oOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfaW5saW5lKToKKyAgICAg
ICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2lubGluZSk6CisgICAgICAg
IChibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2Nf
YWxsb2NhdGVfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1l
bnRfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfemVyb2VkX2lubGluZSk6Cisg
ICAgICAgIChibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2lubGluZSk6CisgICAgICAgIChibWFsbG9j
X3JlYWxsb2NhdGVfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGls
aWFyeV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW5saW5l
KToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRfaW5saW5l
KToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9lZF9pbmxpbmUpOgor
ICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2lu
bGluZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV93aXRoX2FsaWdubWVu
dF9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfaW5s
aW5lKToKKyAgICAgICAgKGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfaW5saW5lKToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuYzoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9pbmxpbmVzLmg6CisgICAgICAgIChob3RiaXRfdHJ5
X2FsbG9jYXRlX2lubGluZSk6CisgICAgICAgIChob3RiaXRfdHJ5X2FsbG9jYXRlX3dpdGhfYWxp
Z25tZW50X2lubGluZSk6CisgICAgICAgIChob3RiaXRfdHJ5X3JlYWxsb2NhdGVfaW5saW5lKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuYzoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9pc29faGVhcF9pbmxpbmVzLmg6CisgICAgICAgIChpc29fdHJ5X2FsbG9jYXRl
X2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfY29t
bW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAgICAoaXNvX3RyeV9h
bGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX3plcm9lZF9pbmxpbmUpOgorICAgICAgICAoaXNvX2Fs
bG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb19hbGxvY2F0ZV9j
b21tb25fcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2lubGluZSk6CisgICAgICAgIChpc29fYWxs
b2NhdGVfY29tbW9uX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKToKKyAgICAgICAgKGlzb190cnlf
cmVhbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2lubGluZSk6CisgICAgICAgIChpc29fcmVhbGxv
Y2F0ZV9jb21tb25fcHJpbWl0aXZlX2lubGluZSk6CisgICAgICAgIChpc29fdHJ5X2FsbG9jYXRl
X3ByaW1pdGl2ZV9pbmxpbmUpOgorICAgICAgICAoaXNvX2FsbG9jYXRlX3ByaW1pdGl2ZV9pbmxp
bmUpOgorICAgICAgICAoaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfemVyb2VkX2lubGluZSk6
CisgICAgICAgIChpc29fYWxsb2NhdGVfcHJpbWl0aXZlX3plcm9lZF9pbmxpbmUpOgorICAgICAg
ICAoaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKToKKyAg
ICAgICAgKGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKToKKyAg
ICAgICAgKGlzb190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlz
b19yZWFsbG9jYXRlX3ByaW1pdGl2ZV9pbmxpbmUpOgorICAgICAgICAoaXNvX3RyeV9hbGxvY2F0
ZV9mb3Jfb2JqY19pbmxpbmUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0
X2hlYXAuYzoKKyAgICAgICAgKGlzb190ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmM6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcF9jb25maWcuaDoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5jOgorICAgICAgICAoaml0X2hlYXBfdHJ5X2Fs
bG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYzoK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXAuYzoKKyAgICAgICAg
KG1pbmFsaWduMzJfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZSk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwLmM6CisgICAgICAgIChwYWdlc2l6ZTY0a19hbGxvY2F0
ZV9jb21tb25fcHJpbWl0aXZlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6
ZTY0a19oZWFwX2NvbmZpZy5jOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXpl
NjRrX2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9i
aWFzaW5nX2RpcmVjdG9yaWVzLmM6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmg6IFJlbW92ZWQuCisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2FsbF9oZWFwcy5jOgorICAgICAgICAoZm9yX2VhY2hfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAgICAoZm9yX2Vh
Y2hfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2VncmVnYXRlZF9oZWFwX2NhbGxiYWNrKToKKyAgICAg
ICAgKGR1bXBfZGlyZWN0b3J5X25pY2VseSk6CisgICAgICAgIChjb21wdXRlX3RvdGFsX25vbl91
dGlsaXR5X3NlZ3JlZ2F0ZWRfc3VtbWFyeV9kaXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAgICAo
Zm9yX2VhY2hfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NhbGxi
YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX21hZ2F6
aW5lcy5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfbWFn
YXppbmVzLmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9j
YXRpb25fcmVzdWx0LmM6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X2FsbG9jYXRpb25fcmVzdWx0Lmg6CisgICAgICAgIChwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRl
bnRpdHkpOgorICAgICAgICAocGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8pOgorICAgICAgICAo
cGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk6CisgICAgICAgIChwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19iYXNlbGluZV9hbGxvY2F0b3IuYzoKKyAgICAgICAgKHBhc19iYXNlbGluZV9hbGxvY2F0b3Jf
YXR0YWNoX2RpcmVjdG9yeSk6CisgICAgICAgIChwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2RldGFj
aF9kaXJlY3RvcnkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9h
bGxvY2F0b3IuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJl
Y3RvcnkuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2lu
Z19kaXJlY3RvcnkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
Ymlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmM6CisgICAgICAgIChwYXNfYml0Zml0X2Fs
bG9jYXRvcl9jb21taXRfdmlldyk6CisgICAgICAgIChwYXNfYml0Zml0X2FsbG9jYXRvcl9maW5p
c2hfZmFpbGluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxv
Y2F0b3IuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRv
cl9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfYml0Zml0X2FsbG9jYXRvcl9yZXNldCk6CisgICAg
ICAgIChwYXNfYml0Zml0X2FsbG9jYXRvcl9hc3NlcnRfcmVzZXQpOgorICAgICAgICAocGFzX2Jp
dGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmM6IFJlbW92ZWQuCisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5LmM6CisgICAg
ICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV9jb25zdHJ1Y3QpOgorICAgICAgICAocGFzX2JpdGZp
dF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91bnByb2Nlc3NlZCk6CisgICAgICAgIChw
YXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX3VucHJvY2Vzc2VkX3VuY2hl
Y2tlZCk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21l
X2VtcHR5KToKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9maXJzdF9mcmVlX3Zp
ZXcpOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKToKKyAgICAg
ICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF91c2VfZXBvY2gpOgorICAgICAgICAocGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleCk6CisgICAgICAgIChwYXNfYml0
Zml0X2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2luZGV4KToKKyAgICAgICAgKHBhc19iaXRm
aXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCk6CisgICAgICAgIChw
YXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHkpOgorICAgICAgICAocGFz
X2JpdGZpdF9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KToKKyAgICAgICAgKHBhc19iaXRmaXRf
ZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKToKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5
X2R1bXBfZm9yX3NwZWN0cnVtKToKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X3VwZGF0
ZV9iaWFzaW5nX2VsaWdpYmlsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19iaXRmaXRfZGly
ZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHlfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSk6
IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rv
cnkuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9h
bmRfaW5kZXguaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV9n
ZXRfZ2xvYmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2RpcmVjdG9yeV9raW5kLmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmM6IFJlbW92ZWQuCisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Lmg6IFJlbW92ZWQuCisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5j
OiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFs
X3NpemVfY2xhc3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X2hlYXAuYzoKKyAgICAgICAgKHBhc19iaXRmaXRfaGVhcF9jcmVhdGUpOgorICAgICAg
ICAocGFzX2JpdGZpdF9oZWFwX2Vuc3VyZV9zaXplX2NsYXNzKToKKyAgICAgICAgKHBhc19iaXRm
aXRfaGVhcF9jb21wdXRlX3N1bW1hcnkpOgorICAgICAgICAocGFzX2JpdGZpdF9oZWFwX2Zvcl9l
YWNoX2xpdmVfb2JqZWN0KToKKyAgICAgICAgKHBhc19iaXRmaXRfaGVhcF9lbnN1cmVfZ2xvYmFs
X3NpemVfY2xhc3MpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfaGVhcC5oOgorICAgICAgICAocGFzX2JpdGZpdF9oZWFwX2dldF9kaXJlY3RvcnkpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZS5jOgorICAgICAgICAo
cGFzX2JpdGZpdF9wYWdlX2dldF9jb25maWcpOgorICAgICAgICAocGFzX2JpdGZpdF9wYWdlX2Zv
cl9lYWNoX2xpdmVfb2JqZWN0KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X3BhZ2VfY29uZmlnLmg6CisgICAgICAgIChwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3VzZXNf
c3VicGFnZXMpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfcGFnZV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfYml0Zml0X3BhZ2VfZGVhbGxvY2F0ZV93
aXRoX3BhZ2VfaW1wbCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9z
aXplX2NsYXNzLmM6CisgICAgICAgIChwYXNfYml0Zml0X3NpemVfY2xhc3NfY3JlYXRlKToKKyAg
ICAgICAgKHBhc19iaXRmaXRfc2l6ZV9jbGFzc19nZXRfZmlyc3RfZnJlZV92aWV3KToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3NpemVfY2xhc3MuaDoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXcuYzoKKyAgICAgICAgKHBhc19iaXRm
aXRfdmlld19jcmVhdGUpOgorICAgICAgICAocGFzX2JpdGZpdF92aWV3X25vdGVfbm9uZW1wdGlu
ZXNzKToKKyAgICAgICAgKGRpZF9iZWNvbWVfZW1wdHlfZm9yX2JpdHMpOgorICAgICAgICAocGFz
X2JpdGZpdF92aWV3X25vdGVfZnVsbF9lbXB0aW5lc3MpOgorICAgICAgICAocGFzX2JpdGZpdF92
aWV3X25vdGVfbWF4X2ZyZWUpOgorICAgICAgICAoY29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAg
KGZvcl9lYWNoX2xpdmVfb2JqZWN0KToKKyAgICAgICAgKHBhc19iaXRmaXRfdmlld19sb2NrX293
bmVyc2hpcF9sb2NrX3Nsb3cpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaXRmaXRfdmlldy5oOgorICAgICAgICAocGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJz
aGlwX2xvY2spOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfdmlld19pbmxpbmVzLmg6CisgICAgICAgIChwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJl
Y3RvcnlfYW5kX2luZGV4KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19iaXRmaXRfdmlld19jdXJy
ZW50X2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfYml0Zml0X3ZpZXdfaW5kZXhf
aW5fY3VycmVudCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaDoKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyLmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmg6IEFkZGVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfcHRyLmg6IEFkZGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oOiBSZW1vdmVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyLmg6IEFkZGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oOiBSZW1vdmVkLgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRlLmM6CisgICAgICAgIChkZWFsbG9jYXRlX3Nl
Z3JlZ2F0ZWQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRvcl9z
Y2F2ZW5nZV9hY3Rpb24uaDoKKyAgICAgICAgKHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rp
b25fZ2V0X3N0cmluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0
ZWRfaW50cmluc2ljX2hlYXAuYzoKKyAgICAgICAgKHNldF91cF9yYW5nZSk6CisgICAgICAgIChw
YXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbml0aWFsaXplKToKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmg6Cisg
ICAgICAgIChwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fYWxsb2NhdG9yX2luZGlj
ZXMpOgorICAgICAgICAocGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2Rlc2lnbmF0
ZWRfaW5kaWNlc19mb3Jfc21hbGxfY29uZmlnKToKKyAgICAgICAgKHBhc19kZXNpZ25hdGVkX2lu
dHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5kZXhfZm9yX3NtYWxsX2NvbmZpZyk6CisgICAgICAg
IChwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2VzKToK
KyAgICAgICAgKHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5kZXgp
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBz
LmM6CisgICAgICAgICh2aWV3X2NhbGxiYWNrKToKKyAgICAgICAgKGVudW1lcmF0ZV9iaXRmaXRf
ZGlyZWN0b3J5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX3Nl
Z3JlZ2F0ZWRfaGVhcHMuYzoKKyAgICAgICAgKHJlY29yZF9wYWdlX29iamVjdHMpOgorICAgICAg
ICAoZW51bWVyYXRlX2V4Y2x1c2l2ZV92aWV3KToKKyAgICAgICAgKGVudW1lcmF0ZV9wYXJ0aWFs
X3ZpZXcpOgorICAgICAgICAoZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcF9jYWxsYmFjayk6Cisg
ICAgICAgIChwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmg6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmg6
CisgICAgICAgIChwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfZXhjbHVzaXZlKToKKyAg
ICAgICAgKHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl92aWV3X2FuZF9kaXJlY3Rvcnkp
OgorICAgICAgICAocGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3ZpZXcpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfaGVhcC5oOgorICAgICAgICAocGFzX2dldF9o
ZWFwKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jOgorICAgICAgICAo
cGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudF9zbG93KToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwX2NvbmZpZ19pbmxpbmVzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfY29uZmlnX3V0aWxzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBf
Y29uZmlnX3V0aWxzX2lubGluZXMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
aGVhcF9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX2NvdW50KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9ydW50aW1l
X2NvbmZpZy5jOiBBZGRlZC4KKyAgICAgICAgKHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3ZpZXdf
Y2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplKToKKyAgICAgICAgKHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk6CisgICAgICAgIChwYXNfaGVhcF9y
dW50aW1lX2NvbmZpZ19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1bnRpbWVfY29uZmlnLmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3Bh
Z2Vfc2hhcmluZ19jYWNoZS5jOgorICAgICAgICAobGFyZ2VfYWxpZ25lZF9hbGxvY2F0b3IpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYzoKKyAgICAg
ICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19sb2NhbF9h
bGxvY2F0b3JfcmVzZXQpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9tb3ZlKToKKyAg
ICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfZmluaXNoX3JlZmlsbF93aXRoX2JpdGZpdCk6Cisg
ICAgICAgIChzdG9wX2ltcGwpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKToK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2UpOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl9kZXN0cnVjdCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9j
YXRvcl9yZXNldF9pbXBsKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2J1
bXApOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2FuX2JpdHNfdG9fc2V0X3VwX2Zy
ZWVfYml0cyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9mcmVlX2JpdHMp
OgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9wcmVwYXJlX3RvX2FsbG9jYXRlKToKKyAg
ICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9wcmltb3JkaWFs
X3BhcnRpYWxfdmlldyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRo
X2tub3duX2NvbmZpZyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3JldHVybl9tZW1v
cnlfdG9fcGFnZV9zZXRfYml0X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0
b3JfcmV0dXJuX21lbW9yeV90b19wYWdlKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jf
dHJ5X2FsbG9jYXRlX3dpdGhfZnJlZV9iaXRzKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0
b3JfdHJ5X2FsbG9jYXRlX2lubGluZV9jYXNlcyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2Nh
dG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zZWdyZWdhdGVkX3Nsb3cpOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc2xvdyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxs
b2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfb25seSk6CisgICAgICAgIChwYXNfbG9jYWxfYWxs
b2NhdG9yX3RyeV9hbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX2FsbG9jYXRvcl9raW5kLmg6IEFkZGVkLgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRv
cl9raW5kX2dldF9zdHJpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF9hbGxvY2F0b3JfbGluZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0Lmg6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2Nh
dG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzcyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jOiBBZGRlZC4KKyAgICAgICAgKHBh
c19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZlKToKKyAgICAgICAgKHBh
c19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcCk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oOiBBZGRlZC4K
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29uc3RydWN0KToK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3Jf
YWxsb2NhdGlvbik6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdf
Y2FjaGUuYzogQWRkZWQuCisgICAgICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9jb25zdHJ1Y3Qp
OgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfbW92ZSk6CisgICAgICAgIChzdG9wX2lt
cGwpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcCk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaDogQWRkZWQuCisgICAgICAgIChw
YXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eSk6CisgICAgICAgIChwYXNfbG9jYWxfdmlld19j
YWNoZV9wb3ApOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbCk6CisgICAg
ICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9wdXNoKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmM6IEFkZGVkLgorICAgICAgICAocGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfbm9kZV9jcmVhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaDogQWRkZWQuCisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmM6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxl
Lmg6CisgICAgICAgIChwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGVfZmluZCk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX21hZ2F6aW5lLmM6IFJlbW92ZWQuCisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX21hZ2F6aW5lLmg6IFJlbW92ZWQuCisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaDoKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuaDoKKyAgICAg
ICAgKHBhc19wYWdlX2hlYWRlcl90YWJsZV9oYXNoKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmM6CisgICAgICAgIChwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2dldF9wYXlsb2FkKToKKyAgICAgICAgKHBhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnRfZ2V0X3VzZV9lcG9jaCk6CisgICAgICAgIChwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2dldF9wYXJlbnRfcG9vbCk6CisgICAgICAgIChwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2lzX2VsaWdpYmxlKToKKyAgICAgICAgKHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfdGFrZV9sZWFzdF9yZWNlbnRseV91c2VkKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50Lmg6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmg6CisgICAgICAg
IChwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmRfc2VsZWN0X2Zvcl9zZWdyZWdhdGVk
X2RpcmVjdG9yeSk6CisgICAgICAgIChwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmRf
Z2V0X3N0cmluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sLmM6CisgICAgICAgIChwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVu
Z2UpOgorICAgICAgICAocGFzX2JpYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZSk6IERlbGV0ZWQu
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmg6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdl
X3Jlc3VsdC5oOiBBZGRlZC4KKyAgICAgICAgKHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5n
ZV9yZXN1bHRfY3JlYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkdW5k
YW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmM6CisgICAgICAgIChwYXNfcmVkdW5kYW50X2xvY2Fs
X2FsbG9jYXRvcl9ub2RlX2NyZWF0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19zY2F2ZW5nZXIuYzoKKyAgICAgICAgKHNjYXZlbmdlcl90aHJlYWRfbWFpbik6
CisgICAgICAgIChwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9jYWNoZXNfZXhjZXB0X3JlbW90ZV90
bGNzKToKKyAgICAgICAgKHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZnJlZV9tZW1vcnkpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jOiBSZW1vdmVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5Lmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3LmM6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3Lmg6IFJlbW92ZWQuCisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaDogQWRkZWQu
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZV9nZXRfc3RyaW5nKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYzoK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZGF0YV9zbG93KToKKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9taW5pbWl6ZV9maXJzdF9lbGlnaWJsZSk6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfdXBkYXRlX2ZpcnN0X2VsaWdpYmxlX2Fm
dGVyX3NlYXJjaCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRf
YmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9hcHBlbmQpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlk
X2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRob3V0X2JpYXNpbmdfdXBkYXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxp
Z2libGVfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5Lmg6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9kaXJlY3Rvcnlfc3Bvb2ZfaW5saW5lX3NlZ21lbnQpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZV9pbXBsKToKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGUpOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZV90b3JuKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV93YXRjaF9maXJzdF9lbGlnaWJsZSk6CisgICAgICAg
IChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV9nZXRfZmlyc3RfZWxpZ2libGVfcHRyKTog
RGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc190YWJsZWQpOiBE
ZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9iaXRfcmVmZXJlbmNlLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pdGVyYXRlX2ZvcndhcmRfdG9fdGFrZV9maXJzdF9lbGlnaWJsZSk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQuaDoKKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kX2dldF9zdHJpbmcpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmM6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19jcmVhdGUpOgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbXB0aW5lc3MpOgorICAgICAgICAo
Y29tcHV0ZV9zdW1tYXJ5X2ltcGwpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2luc3RhbGxfZnVsbF91c2VfY291bnRzKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X2lzX2VsaWdpYmxlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X2lzX2VtcHR5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X3Nob3VsZF90YWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfaXNoX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eV9pbXBsKTogRGVsZXRlZC4KKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkpOiBEZWxl
dGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3X2NvbXB1dGVf
c3VtbWFyeV9pbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaDoKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdGFydF9hbGxvY2F0aW5nKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSk6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfZGlkX3N0YXJ0X2FsbG9j
YXRpbmcpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmg6IFJlbW92ZWQuCisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmM6
IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5Lmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmM6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2NvbnN0cnVjdCk6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgpOgorICAgICAgICAo
ZW5zdXJlX2NvdW50X2xvb2t1cCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3Vy
ZV9hbGxvY2F0b3JfaW5kZXgpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVf
c2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBf
Zm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkpOgorICAgICAgICAoZm9yX2VhY2hfY29tbWl0dGVkX3Np
emVfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfZm9y
X2VhY2hfY29tbWl0dGVkX3ZpZXcpOgorICAgICAgICAoZm9yX2VhY2hfdmlld19pbmRleF9kaXJl
Y3RvcnlfY2FsbGJhY2spOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF92
aWV3X2luZGV4KToKKyAgICAgICAgKGZvcl9lYWNoX2xpdmVfb2JqZWN0X29iamVjdF9jYWxsYmFj
ayk6CisgICAgICAgIChmb3JfZWFjaF9saXZlX29iamVjdF9kaXJlY3RvcnlfY2FsbGJhY2spOgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9saXZlX29iamVjdCk6CisgICAg
ICAgIChudW1fY29tbWl0dGVkX3ZpZXdzX2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgIChw
YXNfc2VncmVnYXRlZF9oZWFwX251bV9jb21taXR0ZWRfdmlld3MpOgorICAgICAgICAobnVtX2Vt
cHR5X3ZpZXdzX2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9o
ZWFwX251bV9lbXB0eV92aWV3cyk6CisgICAgICAgIChudW1fZW1wdHlfZ3JhbnVsZXNfZGlyZWN0
b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfbnVtX2VtcHR5X2dy
YW51bGVzKToKKyAgICAgICAgKG51bV92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fdmlld3MpOgorICAgICAgICAoY29tcHV0ZV9zdW1t
YXJ5X2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2Nv
bXB1dGVfc3VtbWFyeSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2UuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dp
dGNoX2xvY2tfYW5kX3JlYmlhc193aGlsZV9pbmVsaWdpYmxlX2ltcGwpOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb21taXRfZnVsbHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9j
a19hbmRfcmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2luZWxpZ2libGVfaW1wbCk6IERlbGV0ZWQu
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGlu
ZXMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ191dGlscy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3QpOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbml0aWFsaXplX2Z1bGxfdXNlX2NvdW50cyk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2ltcGwpOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193aXRoX21vZGUpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3doaWxlX2luZWxpZ2libGUpOgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZSk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9nZXRfZGlyZWN0b3J5X2Zvcl9hZGRyZXNzX2luX3BhZ2UpOgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfb2JqZWN0X3NpemVfZm9yX2FkZHJlc3NfaW5fcGFnZSk6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfdG9f
bWFnYXppbmVfd2hpbGVfaW5lbGlnaWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQpOiBEZWxldGVkLgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jOgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NyZWF0ZSk6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSk6CisgICAgICAgIChjb21wdXRlX3N1
bW1hcnkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lzX2VsaWdpYmxl
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRf
cGFnZV9kaXJlY3RvcnkuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9maW5kX2ZpcnN0X2VsaWdpYmxlKToKKyAgICAgICAgKHRha2VfbGFzdF9lbXB0eV9j
b25zaWRlcl92aWV3KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfY3JlYXRlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2ZpbmlzaF9jcmVhdGlvbik6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9lbnN1cmVfZGF0YSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcik6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX3ZpZXdfY2FjaGUpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cyk6CisgICAgICAgIChw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yX3Nsb3cpOgorICAg
ICAgICAodGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3RfY3JlYXRlX25ld192aWV3X2NhbGxiYWNr
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxp
Z2libGUpOgorICAgICAgICAodGFrZV9sYXN0X2VtcHR5X3Nob3VsZF9jb25zaWRlcl92aWV3X3Bh
cmFsbGVsKToKKyAgICAgICAgKHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KToKKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMpOgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zv
cl91bm93bmVkX2V4Y2x1c2l2ZSk6CisgICAgICAgIChmb3JfZWFjaF9saXZlX29iamVjdF9vYmpl
Y3RfY2FsbGJhY2spOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9y
X2VhY2hfbGl2ZV9vYmplY3QpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfdmlld19jYWNoZV9jYXBhY2l0eSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0pOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29uc3RydWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXNfdmlldyk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGlkX3RyeV90b19jcmVhdGVfdmlld19jYWNoZSk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZXRfZGlkX3RyeV90b19jcmVhdGVf
dmlld19jYWNoZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9oYXNf
dGxjX2FsbG9jYXRvcik6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9h
cmVfZXhjbHVzaXZlX3ZpZXdzX2VuYWJsZWQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaDogQWRkZWQuCisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlX2dldF9z
dHJpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2lubGluZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3NlbGVjdF9hbGxvY2F0b3IpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX251bGxfY29uZmlnKToKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9jb25m
aWcpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRv
cl9pbmRpY2VzX2Zvcl9hbGxvY2F0b3Jfc2l6ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2NvbmZpZyk6CisgICAgICAg
IChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGxf
c2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsKToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbF9zaG91bGRf
Y29uc2lkZXJfdmlld19ub3RfdGFibGVkX3BhcmFsbGVsKTogRGVsZXRlZC4KKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbF9zaG91
bGRfY29uc2lkZXJfdmlld190YWJsZWRfcGFyYWxsZWwpOiBEZWxldGVkLgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2dsb2JhbCk6IERlbGV0ZWQuCisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnlfc2xvdyk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2NvbmZpZ19raW5kKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3BhZ2VfYm91bmRhcnkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfY29tbWl0
X2xvY2spOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfb3duZXJzaGlwX2xvY2sp
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19vd25lZCk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2spOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkpOgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2lmX293bmVkX2NvbmRpdGlv
bmFsbHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19ub3RlX2VtcHRpbmVzcyk6Cisg
ICAgICAgIChmb3JfZWFjaF9saXZlX29iamVjdCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92
aWV3X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KToKKyAgICAgICAgKHNob3VsZF9iZV9lbGlnaWJsZSk6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZF9iZV9lbGlnaWJsZSk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmplY3QpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19jb21wdXRlX3N1bW1hcnkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19lbGlnaWJsZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5KToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9z
bG93KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3Jlc3Rh
cnQpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19jb3VsZF9idW1wKTog
RGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3RhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2VkX2V4Y2x1c2l2ZSk6
IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZWxpZ2liaWxpdHkp
OiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9vcl9i
aWFzZWQpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbXB0eV9v
cl9iaWFzZWQpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3ZpZXcuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNs
dXNpdmUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19hc19pbmVsaWdpYmxlKToKKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfZWxpZ2libGUpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfaXNfc2l6ZV9kaXJlY3RvcnkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
c2l6ZV9kaXJlY3RvcnkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNp
dmVfaXNoKTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2lu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2luZWxpZ2libGVf
Ymlhc2luZyk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVf
Ymlhc2luZyk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFz
aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGVf
a2luZCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2luZWxpZ2li
bGVfa2luZCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaDoKKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfd2lsbF9zdGFydF9hbGxvY2F0aW5nKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZyk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmg6IFJlbW92ZWQuCisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kLmg6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfZ2V0X2NoYXJhY3Rlcl9jb2RlKToKKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfc3RyaW5nKToKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19zb21lX2V4Y2x1c2l2ZSk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF92aWV3X2tpbmRfY2FuX2JlY29tZV9lbXB0eSk6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF92aWV3X2tpbmRfaXNfZWxpZ2libGUpOiBEZWxldGVkLgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19raW5kX2lzX2V4Y2x1c2l2ZV9pc2gpOiBEZWxldGVkLgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2luZWxpZ2libGUpOiBEZWxldGVkLgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYzoKKyAgICAgICAgKHJl
cG9ydF9iaXRmaXRfZGlyZWN0b3J5X2NvbnRlbnRzKToKKyAgICAgICAgKHBhc19zdGF0dXNfcmVw
b3J0ZXJfZHVtcF9iaXRmaXRfZGlyZWN0b3J5KToKKyAgICAgICAgKHJlcG9ydF9zZWdyZWdhdGVk
X2RpcmVjdG9yeV9jb250ZW50cyk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSk6CisgICAgICAgIChkdW1wX3NlZ3JlZ2F0ZWRfaGVh
cF9kaXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1w
X2JpdGZpdF9oZWFwKToKKyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdh
dGVkX2hlYXApOgorICAgICAgICAodG90YWxfZnJhZ21lbnRhdGlvbl9zaXplX2RpcmVjdG9yeV9j
YWxsYmFjayk6CisgICAgICAgICh0b3RhbF9mcmFnbWVudGF0aW9uX2hlYXBfY2FsbGJhY2spOgor
ICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RvdGFsX2ZyYWdtZW50YXRpb24pOgor
ICAgICAgICAodGllcl91cF9yYXRlX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAg
KHRpZXJfdXBfcmF0ZV9oZWFwX2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0
ZXJfZHVtcF9iYXNlbGluZV9hbGxvY2F0b3JzKToKKyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0
ZXJfZHVtcF90aHJlYWRfbG9jYWxfY2FjaGVzKToKKyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0
ZXJfZHVtcF9iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAocGFz
X3N0YXR1c19yZXBvcnRlcl9kdW1wX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KTogRGVsZXRlZC4K
KyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgICh0b3RhbF9m
cmFnbWVudGF0aW9uX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayk6IERlbGV0ZWQuCisg
ICAgICAgICh0aWVyX3VwX3JhdGVfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmg6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwLmM6IFJlbW92ZWQu
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwLmg6IFJlbW92ZWQu
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmM6IFJl
bW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwX2VudHJ5
Lmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZS5jOgorICAgICAgICAoZGVhbGxvY2F0ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2NyZWF0ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9s
b2NhbF9hbGxvY2F0b3Jfc2xvdyk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0
b3BfbG9jYWxfYWxsb2NhdG9ycyk6CisgICAgICAgIChzdG9wX2xvY2FsX2FsbG9jYXRvcnNfaWZf
bmVjZXNzYXJ5X3NldF9iaXRfY2FsbGJhY2spOgorICAgICAgICAocHJvY2Vzc19kZWFsbG9jYXRp
b25fbG9nX3dpdGhfY29uZmlnKToKKyAgICAgICAgKGZsdXNoX2RlYWxsb2NhdGlvbl9sb2cpOgor
ICAgICAgICAoZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19mb3Jfc2NhdmVuZ2VyKToKKyAgICAgICAg
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyk6CisgICAgICAg
IChyZXN1bWUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmg6CisgICAg
ICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCk6Cisg
ICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmM6
CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfbm9kZSk6CisgICAg
ICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGQpOgorICAgICAgICAocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZHVwbGljYXRlKToKKyAgICAgICAgKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2FkZF92aWV3X2NhY2hlKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYzoKKyAgICAg
ICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeSk6Cisg
ICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9yX2luZGlj
ZXMpOgorICAgICAgICAoYWxsb2NhdG9yX2luZGV4X3B0cik6CisgICAgICAgIChwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyk6Cisg
ICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3Jf
aW5kZXhfZm9yX2FsbG9jYXRvcik6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX3ZpZXdfY2FjaGUpOgorICAgICAgICAo
bmV4dF9wdHIpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9z
ZXRfbmV4dCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2Nv
bnN0cnVjdCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX21v
dmUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9wKToK
KyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRv
cl9pbmRleCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9nZXRfcHRyKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfZ2V0X2tpbmQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9jcmVhdGUpOgorICAgICAgICAocGFzX3dyYXBfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSk6CisgICAgICAgIChwYXNfd3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9y
X25vZGUpOgorICAgICAgICAocGFzX3dyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKToKKyAgICAg
ICAgKHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkpOgorICAgICAgICAo
cGFzX2lzX3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKToKKyAgICAgICAg
KHBhc19pc193cmFwcGVkX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSk6CisgICAgICAgIChwYXNfdW53
cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkpOgorICAgICAgICAocGFzX3Vud3JhcF9yZWR1
bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUpOgorICAgICAgICAocGFzX3Vud3JhcF9sb2NhbF92
aWV3X2NhY2hlX25vZGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcik6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNfdmlld19jYWNoZSk6CisgICAgICAgIChwYXNfd3Jh
cF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgIChw
YXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSk6IERlbGV0ZWQu
CisgICAgICAgIChwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KTog
RGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2tpbmQuaDogQWRkZWQuCisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2tpbmRfZ2V0X3N0cmluZyk6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmM6CisgICAgICAgIChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX25vZGVfYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc190cnlfYWxsb2NhdGUuaDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfaW1w
bCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5o
OgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9hcnJheV9pbXBsKToKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oOgorICAgICAgICAocGFzX3Ry
eV9hbGxvY2F0ZV9jb21tb25faW1wbF9mYXN0X2lubGluZV9vbmx5KToKKyAgICAgICAgKHBhc190
cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfZmFzdCk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRl
X2NvbW1vbl9pbXBsX3Nsb3cpOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1w
bCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5z
aWNfcHJpbWl0aXZlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmlt
aXRpdmVfaW1wbF9tZWRpdW1fc2xvd19jYXNlKToKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVf
aW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsX2lubGluZV9vbmx5KToKKyAgICAgICAgKHBhc190cnlf
YWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oOgorICAgICAgICAo
cGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbCk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2Zv
cl9yZWFsbG9jYXRlX2FuZF9jb3B5KToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0ZV90YWJs
ZV9zZWdyZWdhdGVkX2Nhc2UpOgorICAgICAgICAocGFzX3RyeV9yZWFsbG9jYXRlX3RhYmxlX2Jp
dGZpdF9jYXNlKToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0ZSk6CisgICAgICAgIChwYXNf
dHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRlX2NhbGxiYWNrKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQuaDoKKyAgICAgICAg
KHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1
bHQpOgorICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCk6CisgICAgICAgIChwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHRfemVybyk6CisgICAgICAgIChwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfc2V0
X2Vycm5vKToKKyAgICAgICAgKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9l
cnJvcik6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5jOgor
ICAgICAgICAocGFzX3V0aWxpdHlfaGVhcF9kZWFsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKHBhc191dGlsaXR5X2hlYXBf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfdXRpbGl0eV9oZWFwX3N1cHBvcnQuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfdXRpbHMuaDoKKyAgICAgICAgKHBhc19yb3VuZF91cF90b19uZXh0X3Bvd2VyX29m
XzIpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFwLmM6CisgICAgICAg
ICh0aGluZ3lfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZSk6CisgICAgICAgICh0aGluZ3lfdHJ5X2Fs
bG9jYXRlX3ByaW1pdGl2ZV96ZXJvZWQpOgorICAgICAgICAodGhpbmd5X3RyeV9hbGxvY2F0ZV9w
cmltaXRpdmVfd2l0aF9hbGlnbm1lbnQpOgorICAgICAgICAodGhpbmd5X3RyeV9yZWFsbG9jYXRl
X3ByaW1pdGl2ZSk6CisgICAgICAgICh0aGluZ3lfdXRpbGl0eV9oZWFwX2FsbG9jYXRlKToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuYzoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjp0ZXN0QWxs
b2NhdGlvbkNoYW9zKToKKyAgICAgICAgKHN0ZDo6YWRkVGhlVGVzdHMpOgorICAgICAgICAoc3Rk
OjphZGRTcG90VGVzdHMpOgorICAgICAgICAoYWRkSXNvSGVhcENoYW9zVGVzdHMpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHA6CisgICAgICAg
IChzdGQ6OnRlc3RUYWtlUGFnZXMpOgorICAgICAgICAoc3RkOjp0ZXN0VGFrZVBhZ2VzRnJvbUNv
cnJlY3RIZWFwKToKKyAgICAgICAgKHN0ZDo6YWxsb2NhdGVUaGluZ2llc0ltcGwpOgorICAgICAg
ICAoYWRkSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVz
dC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjp0ZXN0
U2ltcGxlUGFydGlhbEFsbG9jYXRpb25zKToKKyAgICAgICAgKHN0ZDo6dGVzdE11bHRpcGxlUGFy
dGlhbHNGcm9tRGlmZmVyZW50VGhyZWFkc1BlclNoYXJlZCk6CisgICAgICAgIChzdGQ6OmFkZFNj
YXZlbmdlckRlcGVuZGVudFRlc3RzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvSXNvSGVh
cFRhYmxpbmdUZXN0cy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L1Jh
Y2VUZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OnRlc3RMb2NhbEFsbG9jYXRvclN0b3BSYWNlKToK
KyAgICAgICAgKHN0ZDo6dGVzdExvY2FsQWxsb2NhdG9yU3RvcFJhY2VBZ2FpbnN0U2NhdmVuZ2Up
OgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHA6CisgICAgICAgICht
YWluKToKKyAgICAgICAgKERpc2FibGVFeHBsb3Npb246OkRpc2FibGVFeHBsb3Npb24pOiBEZWxl
dGVkLgorICAgICAgICAoRm9yY2VFeHBsb3Npb246OkZvcmNlRXhwbG9zaW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKEZvcmNlT25lTWFnYXppbmU6OkZvcmNlT25lTWFnYXppbmUpOiBEZWxldGVkLgor
ICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHA6CisgICAg
ICAgIChzdGQ6OnNpemVDbGFzc0Zvcik6CisgICAgICAgIChzdGQ6OmZvckVhY2hDb21taXR0ZWRW
aWV3QWRhcHRlcik6CisgICAgICAgIChzdGQ6OnZlcmlmeUhlYXBFbXB0eSk6CisgICAgICAgIChz
dGQ6OnRlc3RJbnRlcm5hbFNjYXZlbmdlRnJvbUNvcnJlY3REaXJlY3RvcnkpOgorICAgICAgICAo
c3RkOjp0ZXN0U2l6ZUNsYXNzQ3JlYXRpb25JbXBsKToKKyAgICAgICAgKHN0ZDo6dGVzdFNwdXJp
b3VzRWxpZ2liaWxpdHkpOgorICAgICAgICAoc3RkOjp0ZXN0Q29tcGxleExhcmdlQWxsb2NhdGlv
bkltcGwpOgorICAgICAgICAoc3RkOjphZGRBbGxUZXN0cyk6CisgICAgICAgIChhZGRUaGluZ3lB
bmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cyk6CisKIDIwMjEtMDktMDIgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3JlIHN1cHBvcnQgZm9yIEpJVCBv
cGVyYXRpb24gdmFsaWRhdGlvbiB0ZXN0aW5nLgpJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxv
Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw4ICszMSw2IEBACiAJCTBGMThGODRDMjVDMzQ2NzcwMDcyMUMyQSAvKiBw
YWdlc2l6ZTY0a19oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjE4Rjg0MzI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5oICov
OyB9OwogCQkwRjE4Rjg0RDI1QzM0Njc3MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZp
Zy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEY4
NDQyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuYyAqLzsgfTsKIAkJ
MEYxOEY4NTgyNUMzNDdGMzAwNzIxQzJBIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9y
X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMThGODU3MjVDMzQ3RjMwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRv
cl9pbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJMEYxQUVDRUMyNjU4MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFBRUNFQTI2NTgx
QjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjFBRUNFRDI2NTgxQjVFMDAwQzUyMTggLyog
cGFzX2FsbF9tYWdhemluZXMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMUFFQ0VCMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5j
ICovOyB9OwogCQkwRjFCRkQ0NzI2NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFCRkQ0NTI2
NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi87IH07CiAJCTBGMUJGRDQ4MjY2
NDVBQzcwMENFQzI4RCAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQkZENDYyNjY0NUFDNzAwQ0VDMjhEIC8q
IHBhc19hbGxfaGVhcF9jb25maWdzLmggKi87IH07CiAJCTBGMjZBN0E1MjA1NDgzMTMwMDkwQTE0
MSAvKiBQZXJQcm9jZXNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMjZBN0E0MjA1NDgzMEQwMDkwQTE0MSAvKiBQZXJQcm9jZXNzLmNwcCAqLzsg
fTsKQEAgLTYzLDcgKzYxLDYgQEAKIAkJMEY1RkU3REYyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUZFN0NBMjVCNjIxMEMwMDE4NTlGQyAvKiBw
YXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RkU3RTAyNUI2MjEwRDAwMTg1
OUZDIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGRTdDQjI1
QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjVGRTdFMTI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjVGRTdDQzI1QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJMEY1RkU3RTMyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3N1
YnBhZ2VfbWFwX2VudHJ5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1RkU3Q0UyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3N1YnBh
Z2VfbWFwX2VudHJ5X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGNUZFN0U0MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2hhcmVkX2hhbmRs
ZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUZFN0NGMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfc2hhcmVk
X2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVGRTdFNjI1QjYyMTBEMDAxODU5RkMgLyog
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGRTdEMTI1QjYyMTBDMDAxODU5RkMgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RkU3RTcyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21w
YWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGRTdEMjI1QjYyMTBDMDAxODU5RkMg
LyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODAsNiArNzcs
MjIgQEAKIAkJMEY3NEI5M0YxRjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1JhbmRvbS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc0QjkzRDFGODk3
MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmNwcCAqLzsgfTsKIAkJMEY3NTQ5ODIyNDg2OTc0
MDAwMkE0QzdEIC8qIHBhc19hbGxvY2F0b3JfaW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzU0OTgwMjQ4Njk3M0MwMDJBNEM3RCAvKiBwYXNf
YWxsb2NhdG9yX2luZGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY3NTQ5ODMyNDg2OTc0MjAwMkE0QzdEIC8qIHBhc19jb21wYWN0X2F0b21p
Y19hbGxvY2F0b3JfaW5kZXhfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjc1NDk4MTI0ODY5NzNDMDAyQTRDN0QgLyogcGFzX2NvbXBhY3RfYXRv
bWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJFMjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDIyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJFMzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkQzMjZFNTdGNzQwMDZBRjAxMiAv
KiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGN0M5MkU0MjZFNTdGNzUw
MDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJENDI2RTU3Rjc0MDA2
QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGN0M5MkU1MjZFNTdGNzUw
MDZBRjAxMiAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDUyNkU1N0Y3NDAwNkFG
MDEyIC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRTYyNkU1N0Y3NTAwNkFG
MDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJENjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2Fs
X3ZpZXdfY2FjaGUuYyAqLzsgfTsKKwkJMEY3QzkyRTcyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDcyNkU1N0Y3NTAwNkFG
MDEyIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGN0M5
MkU4MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
N0M5MkQ4MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2tpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjdDOTJFOTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkQ5
MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jICovOyB9OworCQkw
RjdDOTJFQTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3
QzkyREEyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEuYyAqLzsgfTsKKwkJMEY3QzkyRUIyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJEQjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJFQzI2RTU3Rjc1MDA2QUYwMTIgLyog
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyREMyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92
aWV3X2NhY2hlX25vZGUuaCAqLzsgfTsKKwkJMEY3QzkyRUQyNkU1N0Y3NTAwNkFGMDEyIC8qIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkREMjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRUUyNkU1
N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJERTI2RTU3Rjc1MDA2QUYwMTIgLyog
cGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkwRjdDOTJFRjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2tfZnJl
ZV9yZWFkX2hhc2h0YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY3QzkyREYyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9o
YXNodGFibGUuaCAqLzsgfTsKKwkJMEY3QzkyRjAyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY3QzkyRTAyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jf
a2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTBGN0M5MkYxMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJFMTI2
RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jICovOyB9OwogCQkw
RjdFQjgyMzFGOTU0MUIwMDBGMUFCQ0IgLyogRWxpZ2liaWxpdHlSZXN1bHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0VCN0ZDMUY5NTQxQUQwMEYx
QUJDQiAvKiBFbGlnaWJpbGl0eVJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGN0VCODI0MUY5NTQxQjAwMEYxQUJDQiAvKiBJc29IZWFw
SW1wbElubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGN0VCN0ZEMUY5NTQxQUQwMEYxQUJDQiAvKiBJc29IZWFwSW1wbElubGluZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdFQjgyNTFG
OTU0MUIwMDBGMUFCQ0IgLyogRGVmZXJyZWRUcmlnZ2VySW5saW5lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3RUI3RkUxRjk1NDFBRDAwRjFBQkNC
IC8qIERlZmVycmVkVHJpZ2dlcklubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTI4LDcgKzE0MSw2IEBACiAJCTBGODcwMDAyMjVBRjg5
N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQ0MyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4NzAwMDMyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjg3RkZDRDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0
b3IuYyAqLzsgfTsKIAkJMEY4NzAwMDQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFw
X2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGODdGRkNFMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVh
cF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4NzAwMDUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19hbGxf
Ymlhc2luZ19kaXJlY3Rvcmllcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY4N0ZGQ0YyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19k
aXJlY3Rvcmllcy5jICovOyB9OwogCQkwRjg3MDAwNjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Vu
dW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGODdGRkQwMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2Jp
dGZpdF9oZWFwcy5jICovOyB9OwogCQkwRjg3MDAwNzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9wYWdlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjg3RkZEMTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlLmMgKi87IH07CiAJ
CTBGODcwMDA4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZEMjI1
QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xODksMTAgKzIwMSw2IEBA
CiAJCTBGODcwMDdEMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwNjAyNUFG
OEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4NzAwN0UyNUFGOEExQjAwMEUxQUJG
IC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwNjEyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2hl
YWRlcl90YWJsZS5jICovOyB9OwogCQkwRjg3MDA3RjI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGODcwMDYyMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9ncmFudWxl
X3VzZV9jb3VudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTBGODcwMDg4MjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnku
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMDgz
MjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyAqLzsgfTsKLQkJMEY4
NzAwODkyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwODQyNUFGOTQ2MTAwMEUxQUJG
IC8qIHBhc19zdWJwYWdlX21hcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTBGODcwMDhBMjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9t
YXAuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcw
MDg1MjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuYyAqLzsgfTsKLQkJMEY4NzAw
OEIyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwODYyNUFGOTQ2MTAwMEUx
QUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODcwMDhDMjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNf
dmVyc2lvbmVkX2ZpZWxkLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjg3MDA4NzI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5j
ICovOyB9OwogCQkwRjg3MDBDRjI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMENBMjVCMENC
MDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGODcwMEQwMjVCMENCMDMwMDBFMUFCRiAvKiB0aGluZ3lf
aGVhcF9wcmVmaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGODcwMENCMjVCMENCMDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9wcmVmaXguaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjAwLDM1ICsy
MDgsMjIgQEAKIAkJMEY4NzAwRDIyNUIwQ0IwMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2NvbmZp
Zy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAw
Q0QyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5jICovOyB9OwogCQkwRjg3
MDBEMzI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMENFMjVCMENCMDMwMDBFMUFCRiAvKiB0
aGluZ3lfaGVhcC5jICovOyB9OwogCQkwRjg3RkZEODI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9wYWdlX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGODdGRkExMjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfaW5s
aW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTBGODdGRkQ5MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZB
MjI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkRBMjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfY29tbWl0X3NwYW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkEzMjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNf
Y29tbWl0X3NwYW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjg3RkZEQjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z192YXJpYW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjg3RkZBNDI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJp
YW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEY4N0ZGREMyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlldy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQTUyNUFGODk3OTAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfdmlldy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkREMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X2RpcmVjdG9yeV9hbmRfaW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGODdGRkE2MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVj
dG9yeV9hbmRfaW5kZXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkwRjg3RkZERTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFzaW5n
X2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4N0ZGQTcyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rv
cnkuYyAqLzsgfTsKIAkJMEY4N0ZGREYyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19jb21wYWN0X2F0
b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkE4MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfY29tcGFj
dF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRTAyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkE5MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzLmMgKi87IH07CiAJCTBGODdGRkUyMjVBRjg5N0MwMDBFMUFCRiAv
KiBwYXNfYmFzaWNfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBQjI1QUY4OTdBMDAwRTFBQkYgLyogcGFz
X2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkUzMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGODdGRkFDMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3NpemVfY2xh
c3MuYyAqLzsgfTsKIAkJMEY4N0ZGRTQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfa2luZC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY4N0ZGQUQyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdf
a2luZC5jICovOyB9OwogCQkwRjg3RkZFNTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9h
bGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGODdGRkFFMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkU2MjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkFGMjVBRjg5N0EwMDBFMUFCRiAv
KiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyAqLzsgfTsKIAkJMEY4N0ZGRTcyNUFGODk3QzAwMEUx
QUJGIC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkIwMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNf
ZW51bWVyYXRlX2xhcmdlX2hlYXBzLmMgKi87IH07Ci0JCTBGODdGRkU4MjVBRjg5N0MwMDBFMUFC
RiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQjEyNUFGODk3QTAwMEUxQUJGIC8qIHBh
c19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRTkyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19i
aWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY4N0ZGQjMyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9y
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
ODdGRkVBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkI0MjVBRjg5N0Ew
MDBFMUFCRiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZFQjI1QUY4OTdDMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY4N0ZGQjUyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFn
ZV9jb25maWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjg3RkZFQzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVh
cHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdG
RkI2MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkVEMjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCNzI1QUY4OTdCMDAw
RTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkVFMjVBRjg5N0MwMDBFMUFC
RiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkI4MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHQuYyAqLzsgfTsKIAkJMEY4N0ZGRUYyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGODdGRkI5MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9pbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMEY4N0ZGRjAyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGODdGRkJBMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEY4N0ZGRjEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkJC
MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRjIyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQkMyNUFGODk3QjAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkYzMjVBRjg5N0MwMDBFMUFCRiAv
KiBwYXNfYml0Zml0X2hlYXAuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGODdGRkJEMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2hlYXAuYyAq
LzsgfTsKLQkJMEY4N0ZGRjQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5
X2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
ODdGRkJFMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRjUy
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQkYyNUFGODk3QjAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jICovOyB9OwotCQkwRjg3RkZG
NjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZDMDI1QUY4OTdC
MDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGRjcyNUFGODk3QzAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQzEyNUFGODk3QjAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkY4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY4N0ZGQzIyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZG
RjkyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVk
X3BhZ2VzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjg3RkZDMzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9pbml0aWFsbHlfdW5hY2Nv
dW50ZWRfcGFnZXMuYyAqLzsgfTsKQEAgLTI1MSwyNSArMjQ2LDExIEBACiAJCTBGOEE4MTM0MjVG
ODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEE4MTI1MjVGODNFMjQwMDc5MEI0QSAvKiBibWFsbG9j
X2hlYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjhBODEzNTI1RjgzRTI1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEE4MTI2MjVGODNFMjQwMDc5MEI0
QSAvKiBob3RiaXRfaGVhcC5oICovOyB9OwogCQkwRjhBODEzNjI1RjgzRTI1MDA3OTBCNEEgLyog
Ym1hbGxvY19oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjhBODEyNzI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmMgKi87IH07Ci0J
CTBGOEE4MTM3MjVGODNFMjUwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEE4MTI4MjVG
ODNFMjUwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjhBODEzODI1RjgzRTI1MDA3
OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4QTgxMjkyNUY4M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2Nf
aGVhcF9jb25maWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQkwRjhFNzg2MDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg0QjI0Nzg3Mzk0
MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmMgKi87IH07CiAJCTBGOEU3ODYxMjQ3ODczOTUwMEUx
MjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg0QzI0Nzg3Mzk0
MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOEU3ODYy
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NEQyNDc4NzM5NDAwRTEy
NEE2IC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4RTc4NjMyNDc4NzM5NTAwRTEyNEE2IC8qIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NEUyNDc4NzM5NDAw
RTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBG
OEU3ODY0MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg0RjI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODY2MjQ3ODczOTUw
MEUxMjRBNiAvKiBwYXNfbWFnYXppbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOEU3ODUxMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfbWFnYXppbmUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhF
Nzg2NzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1MjI0Nzg3
Mzk0MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgKi87IH07Ci0JCTBG
OEU3ODY5MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19v
d25lcnNoaXBfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY4RTc4NTQyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X293bmVyc2hpcF9raW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NkEyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NTUyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jICovOyB9OwotCQkwRjhFNzg2QjI0Nzg3Mzk1MDBF
MTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1
NjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJMEY4RTc4NkMyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjhFNzg1NzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjhFNzg2RDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOEU3ODU4MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODZFMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOEU3ODU5MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX3ZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkwRjhFNzg3MDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODVCMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODcxMjQ3ODczOTUwMEUxMjRBNiAv
KiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NUMyNDc4NzM5NTAwRTEyNEE2IC8qIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi87IH07Ci0JCTBGOEU3ODcyMjQ3ODcz
OTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODVEMjQ3ODcz
OTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhFNzg3MzI0
Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1RTI0Nzg3Mzk1MDBF
MTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4RTgzMkMyNDkyRUFGMzAwNDZEN0Y4
IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFODMyNDI0OTJFQUYzMDA0NkQ3RjggLyogcGFz
X2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjhFODMyRDI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Nv
bXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTgzMjUyNDkyRUFGMzAwNDZE
N0Y4IC8qIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjhF
ODMyRTI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU4MzI2MjQ5
MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jICovOyB9OwpA
QCAtNTIyLDcgKzUwMyw2IEBACiAJCTBGQzQwQjhEMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2lt
cGxlX2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZDNDBBQjIyNDUxNDk4RjAwODc2REEwIC8qIHBhc19zaW1wbGVfbGFyZ2Vf
ZnJlZV9oZWFwLmMgKi87IH07CiAJCTBGQzQwQjhGMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfZm91
bmRfaW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQzQwQUI0MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfZm91bmRfaW5kZXguaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0MEI5MDI0NTE0OTk0
MDA4NzZEQTAgLyogcGFzX2hlYXBfcmVmX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUI1MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfaGVh
cF9yZWZfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTBGQzQwQjkyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkM0MEFCNzI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGQzQwQjkzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9t
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0
MEFCODI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQw
Qjk0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFCOTI0NTE0OThGMDA4NzZEQTAgLyogcGFz
X3N0cmVhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGQzQwQjk1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFCQTI0
NTE0OThGMDA4NzZEQTAgLyogcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02OTksOCArNjc5LDYgQEAKIAkJ
MEYxOEY4NDMyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFnZXNpemU2NGtfaGVhcC5oOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjE4Rjg0NDI1QzM0Njc3MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5j
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBtaW5hbGlnbjMyX2hlYXBfY29uZmln
LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMThGODU3MjVDMzQ3RjMwMDcyMUMyQSAvKiBw
YXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaDsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYxQUVDRUEyNjU4MUI1RTAw
MEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19hbGxfbWFnYXppbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
YWxsX21hZ2F6aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjFBRUNFQjI2
NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBuYW1lID0gcGFzX2FsbF9tYWdhemluZXMuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19hbGxfbWFnYXppbmVzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MUJGRDQ1MjY2NDVBQzcwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2hlYXBfY29uZmlnLmM7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfaGVhcF9jb25maWcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYxQkZENDYyNjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19hbGxfaGVhcF9jb25maWdzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19hbGxfaGVhcF9jb25maWdzLmg7IHBhdGgg
PSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2hlYXBfY29uZmlncy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjI2QTdBNDIwNTQ4MzBEMDA5MEExNDEgLyogUGVyUHJvY2Vzcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQZXJQcm9jZXNzLmNwcDsg
cGF0aCA9IGJtYWxsb2MvUGVyUHJvY2Vzcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC03MzAsNyArNzA4LDYgQEAKIAkJMEY1RkU3Q0EyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ci5o
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXpl
X2NsYXNzX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVGRTdDQjI1QjYy
MTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRv
bWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUZFN0NDMjVCNjIxMEMwMDE4NTlGQyAvKiBw
YXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRy
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY1RkU3Q0UyNUI2
MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRy
eV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3N1YnBhZ2VfbWFw
X2VudHJ5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVGRTdDRjI1QjYy
MTBDMDAxODU5RkMgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zaGFyZWRfaGFuZGxlX29y
X3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3No
YXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUZFN0QxMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2FuZF9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2FuZF9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY1RkU3RDIyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3NfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmg7IHBhdGgg
PSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXpl
X2NsYXNzX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzQ3LDYgKzcyNCwy
MiBAQAogCQkwRjc0QjkzRDFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENyeXB0b1JhbmRvbS5jcHA7IHBhdGgg
PSBibWFsbG9jL0NyeXB0b1JhbmRvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGNzU0OTgwMjQ4Njk3M0MwMDJBNEM3RCAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19hbGxvY2F0b3JfaW5kZXguaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0b3JfaW5kZXguaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY3NTQ5ODEyNDg2OTczQzAwMkE0QzdEIC8qIHBhc19jb21wYWN0X2F0
b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJEMjI2RTU3Rjc0MDA2QUYwMTIgLyog
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0Lmg7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2Vf
cmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkQzMjZFNTdGNzQw
MDZBRjAxMiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY3QzkyRDQyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjdDOTJENTI2RTU3Rjc0MDA2QUYwMTIgLyogcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxv
Y2F0aW9uX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3Jl
Z2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGN0M5MkQ2MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfbG9jYWxfdmlld19jYWNoZS5jOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRDcyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjdDOTJEODI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkQ5MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNf
aGVhcF9ydW50aW1lX2NvbmZpZy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfcnVudGltZV9jb25maWcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3Qzky
REEyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEu
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9z
Y2F2ZW5nZXJfZGF0YS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdD
OTJEQjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkRDMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxf
dmlld19jYWNoZV9ub2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19s
b2NhbF92aWV3X2NhY2hlX25vZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF92aWV3X2NhY2hlX25vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3Qzky
REQyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0
aW9uX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJERTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xv
Y2FsX3ZpZXdfY2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xv
Y2FsX3ZpZXdfY2FjaGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3
X2NhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkRGMjZFNTdGNzUw
MDZBRjAxMiAvKiBwYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19sb2NrX2ZyZWVfcmVhZF9oYXNodGFibGUuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrX2ZyZWVfcmVhZF9oYXNodGFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRTAyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19s
b2NhbF9hbGxvY2F0b3Jfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBw
YXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3Jfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdD
OTJFMTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmM7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGN0VCN0ZDMUY5NTQxQUQwMEYxQUJDQiAvKiBF
bGlnaWJpbGl0eVJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBFbGln
aWJpbGl0eVJlc3VsdC5oOyBwYXRoID0gYm1hbGxvYy9FbGlnaWJpbGl0eVJlc3VsdC5oOyBzb3Vy
Y2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTBGN0VCN0ZEMUY5NTQxQUQwMEYxQUJDQiAvKiBJ
c29IZWFwSW1wbElubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSXNv
SGVhcEltcGxJbmxpbmVzLmg7IHBhdGggPSBibWFsbG9jL0lzb0hlYXBJbXBsSW5saW5lcy5oOyBz
b3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTBGN0VCN0ZFMUY5NTQxQUQwMEYxQUJDQiAv
KiBEZWZlcnJlZFRyaWdnZXJJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IERlZmVycmVkVHJpZ2dlcklubGluZXMuaDsgcGF0aCA9IGJtYWxsb2MvRGVmZXJyZWRUcmln
Z2VySW5saW5lcy5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC04NDMsMTAgKzgz
Niw2IEBACiAJCTBGODcwMDYwMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZp
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfcGFnZV9iYXNlX2NvbmZp
Zy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4NzAwNjEyNUFGOEExQjAwMEUxQUJGIC8qIHBh
c19wYWdlX2hlYWRlcl90YWJsZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBw
YXNfcGFnZV9oZWFkZXJfdGFibGUuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdl
X2hlYWRlcl90YWJsZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3MDA2MjI1
QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaDsgcGF0
aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODcwMDgzMjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNf
c3VicGFnZV9tYXBfZW50cnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFz
X3N1YnBhZ2VfbWFwX2VudHJ5LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFn
ZV9tYXBfZW50cnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4NzAwODQyNUFG
OTQ2MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfc3VicGFnZV9tYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19zdWJwYWdlX21hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3MDA4NTI1
QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgbmFtZSA9IHBhc19zdWJwYWdlX21hcC5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX3N1YnBhZ2VfbWFwLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODcwMDg2
MjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3N1YnBhZ2VfbWFwX2VudHJ5Lmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY4NzAwODcyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc192ZXJzaW9uZWRfZmll
bGQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3ZlcnNpb25lZF9maWVs
ZC5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3ZlcnNpb25lZF9maWVsZC5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3MDBDQTI1QjBDQjAyMDAwRTFBQkYgLyogdGhp
bmd5X2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gdGhpbmd5X2hlYXAu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGODcwMENCMjVCMENCMDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9w
cmVmaXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gdGhpbmd5X2hlYXBfcHJl
Zml4Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9wcmVmaXguaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg1NCwzNiArODQzLDIzIEBACiAJCTBGODcwMENE
MjVCMENCMDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBuYW1lID0gdGhpbmd5X2hlYXBfY29uZmlnLmM7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY4NzAwQ0UyNUIwQ0IwMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHRoaW5neV9oZWFwLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy90aGluZ3lfaGVhcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZB
MTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkEyMjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY4N0ZGQTMyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19jb21taXRfc3Bhbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tbWl0X3NwYW4uaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19jb21taXRfc3Bhbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjg3RkZBNDI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192
YXJpYW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfdmFyaWFudC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ192YXJpYW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdG
RkE1MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF92aWV3Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X3ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4
N0ZGQTYyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9h
bmRfaW5kZXguaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5
X2FuZF9pbmRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZBNzI1QUY4
OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmM7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkE4MjVBRjg5N0EwMDBFMUFCRiAvKiBw
YXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9w
dHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19iaWFzaW5n
X2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQTky
NUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5j
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZBQjI1QUY4OTdBMDAwRTFBQkYg
LyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfYmFzaWNfaGVhcF9jb25maWdfcm9vdF9kYXRhLmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzaWNfaGVhcF9jb25maWdfcm9vdF9kYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkFDMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3NpemVfY2xhc3MuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFz
X2JpdGZpdF9zaXplX2NsYXNzLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X3NpemVfY2xhc3MuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQUQyNUFG
ODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYzsgcGF0
aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZBRTI1QUY4OTdBMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF9hbGxvY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFz
X2JpdGZpdF9hbGxvY2F0b3IuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
YWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkFGMjVBRjg5
N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBuYW1lID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmM7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY4N0ZGQjAyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVh
cHMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2VudW1lcmF0ZV9sYXJn
ZV9oZWFwcy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9sYXJnZV9o
ZWFwcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZCMTI1QUY4OTdBMDAw
RTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkIyMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuZGVmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gNDsgbmFt
ZSA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5kZWY7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuZGVmOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwRjg3RkZCMzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0
b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaWFzaW5nX2RpcmVj
dG9yeS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkI0MjVBRjg5N0EwMDBFMUFCRiAv
KiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2JpdGZpdF9zaXplX2NsYXNzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X3NpemVfY2xhc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZG
QjUyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjg3RkZCNjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0
ZV9iaXRmaXRfaGVhcHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Vu
dW1lcmF0ZV9iaXRmaXRfaGVhcHMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVt
ZXJhdGVfYml0Zml0X2hlYXBzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdG
RkI3MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRp
bHMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfdXRp
bHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQjgyNUFGODk3QjAwMEUx
QUJGIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7
IG5hbWUgPSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
Rjg3RkZCOTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9p
bmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9p
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkJBMjVBRjg5N0Iw
MDBFMUFCRiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQkIyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwRjg3RkZCQzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkJEMjVB
Rjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2hlYXAuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBuYW1lID0gcGFzX2JpdGZpdF9oZWFwLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X2hlYXAuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQkUy
NUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZCRjI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTBGODdGRkMwMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3Jp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2FsbF9iaWFzaW5nX2Rp
cmVjdG9yaWVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2JpYXNpbmdfZGly
ZWN0b3JpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQzEyNUFGODk3
QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZDMjI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9kaXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Jp
dGZpdF9kaXJlY3RvcnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGly
ZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkMzMjVBRjg5N0Iw
MDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91
bmFjY291bnRlZF9wYWdlcy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0
ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRfcGFnZXMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTg5Nyw3ICs4NzMsNiBAQAogCQkwRjg3RkZDQzI1QUY4OTdDMDAwRTFBQkYgLyogcGFz
X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGODdGRkNEMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYml0Zml0X2FsbG9jYXRvci5jOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuYzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQ0UyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iYXNp
Y19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZDRjI1QUY4OTdDMDAwRTFBQkYg
LyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgbmFtZSA9IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGODdGRkQwMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2Jp
dGZpdF9oZWFwcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfZW51bWVy
YXRlX2JpdGZpdF9oZWFwcy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0
ZV9iaXRmaXRfaGVhcHMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGRDEy
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2UuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaXRmaXRfcGFnZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZE
MjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4Lmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MTksMjUgKzg5NCwxMSBAQAogCQkwRjhBODEyNTI1
RjgzRTI0MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IGJtYWxsb2NfaGVhcC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvYm1hbGxv
Y19oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEE4MTI2MjVGODNFMjQw
MDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBob3RiaXRfaGVhcC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4QTgxMjcyNUY4M0UyNTAwNzkwQjRBIC8q
IGJtYWxsb2NfaGVhcC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBibWFsbG9j
X2hlYXAuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhBODEyODI1RjgzRTI1MDA3OTBCNEEgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9saW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19sb2NhbF9hbGxvY2F0b3JfbGluZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX2FsbG9jYXRvcl9saW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEE4
MTI5MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IGJtYWxsb2NfaGVhcF9jb25maWcuaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEY4RTc4NEIyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19tYWdhemluZS5jICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfbWFnYXppbmUuYzsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjhFNzg0QzI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hh
cmluZ19wb29sX3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29t
cGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEU3ODREMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfaGVh
cF9jb25maWdfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNf
aGVhcF9jb25maWdfaW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBf
Y29uZmlnX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4RTc4NEUy
NDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaDsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhFNzg0RjI0Nzg3Mzk0MDBFMTI0
QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODUxMjQ3ODcz
OTQwMEUxMjRBNiAvKiBwYXNfbWFnYXppbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gcGFzX21hZ2F6aW5lLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXpp
bmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NTIyNDc4NzM5NDAwRTEy
NEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYzsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwRjhFNzg1NDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X293bmVyc2hpcF9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODU1
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnku
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEY4RTc4NTYyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhFNzg1NzI0Nzg3
Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rv
cnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEU3ODU4MjQ3ODczOTUw
MEUxMjRBNiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NTkyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfdmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXcuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhF
Nzg1QjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODVDMjQ3ODczOTUwMEUxMjRBNiAvKiBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NUQyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhFNzg1RTI0Nzg3Mzk1MDBFMTI0QTYg
LyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOEU4MzI0MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9p
bnRyaW5zaWNfaGVhcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfZGVz
aWduYXRlZF9pbnRyaW5zaWNfaGVhcC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rl
c2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4RTgzMjUyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
cGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhFODMyNjI0
OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAu
YzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTk0LDcgKzExNTUsNiBAQAogCQkw
RkM0MEFCMjI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hl
YXAuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFw
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQUI0MjQ1MTQ5OEYwMDg3NkRB
MCAvKiBwYXNfZm91bmRfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
cGFzX2ZvdW5kX2luZGV4Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZm91bmRfaW5k
ZXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBQjUyNDUxNDk4RjAwODc2
REEwIC8qIHBhc19oZWFwX3JlZl9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19oZWFwX3JlZl9raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVh
cF9yZWZfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRkM0MEFCNzI0NTE0
OThGMDA4NzZEQTAgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQUI4MjQ1MTQ5OEYwMDg3
NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9tb2RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUuaDsgcGF0
aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBQjkyNDUxNDk4RjAwODc2REEwIC8q
IHBhc19zdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3N0cmVh
bS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0cmVhbS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkM0MEFCQTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2hlYXBfcGFn
ZV9wcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfaGVhcF9w
YWdlX3Byb3ZpZGVyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9wYWdlX3By
b3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDM1LDExNiArMTM5NSwx
MDAgQEAKIAkJMEZDNDA5MEUyNDUxNDkyRTAwODc2REEwIC8qIGxpYnBhcyAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMEY4QTgxMjcyNUY4M0UyNTAwNzkw
QjRBIC8qIGJtYWxsb2NfaGVhcC5jICovLAotCQkJCTBGOEE4MTI1MjVGODNFMjQwMDc5MEI0QSAv
KiBibWFsbG9jX2hlYXAuaCAqLywKIAkJCQkwRjhBODExRDI1RjgzRTI0MDA3OTBCNEEgLyogYm1h
bGxvY19oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGOEE4MTI5MjVGODNFMjUwMDc5MEI0QSAvKiBi
bWFsbG9jX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY4QTgxMUIyNUY4M0UyMzAwNzkwQjRBIC8q
IGJtYWxsb2NfaGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY4QTgxMUYyNUY4M0UyNDAwNzkwQjRB
IC8qIGJtYWxsb2NfaGVhcF9pbm5hcmRzLmggKi8sCiAJCQkJMEY4QTgxMjMyNUY4M0UyNDAwNzkw
QjRBIC8qIGJtYWxsb2NfaGVhcF9yZWYuaCAqLywKLQkJCQkwRjhBODEyMDI1RjgzRTI0MDA3OTBC
NEEgLyogaG90Yml0X2hlYXAuYyAqLywKLQkJCQkwRjhBODEyNjI1RjgzRTI0MDA3OTBCNEEgLyog
aG90Yml0X2hlYXAuaCAqLywKKwkJCQkwRjhBODEyNzI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxv
Y19oZWFwLmMgKi8sCisJCQkJMEY4QTgxMjUyNUY4M0UyNDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVh
cC5oICovLAogCQkJCTBGOEE4MTFFMjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25m
aWcuYyAqLywKIAkJCQkwRjhBODEyMTI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfY29u
ZmlnLmggKi8sCiAJCQkJMEY4QTgxMUMyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2lu
bGluZXMuaCAqLywKIAkJCQkwRjhBODEyMjI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXBf
aW5uYXJkcy5oICovLAotCQkJCTBGQzQwOTIxMjQ1MTQ5NDIwMDg3NkRBMCAvKiBpc29faGVhcC5j
ICovLAotCQkJCTBGQzQwOTI5MjQ1MTQ5NDMwMDg3NkRBMCAvKiBpc29faGVhcC5oICovLAorCQkJ
CTBGOEE4MTIwMjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5jICovLAorCQkJCTBGOEE4
MTI2MjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oICovLAogCQkJCTBGQzQwOTJGMjQ1
MTQ5NDMwMDg3NkRBMCAvKiBpc29faGVhcF9jb25maWcuYyAqLywKIAkJCQkwRkM0MDkyNTI0NTE0
OTQzMDA4NzZEQTAgLyogaXNvX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY1RkU3QjYyNUI2MUVD
MTAwMTg1OUZDIC8qIGlzb19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjUxNkVFODI0NTYxQUU4
MDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oICovLAogCQkJCTBGNTI5REUwMjQ1NTQ2M0Yw
MDM4NUE4QyAvKiBpc29faGVhcF9yZWYuaCAqLywKLQkJCQkwRkM0MDkwRjI0NTE0OTQyMDA4NzZE
QTAgLyogaXNvX3Rlc3RfaGVhcC5jICovLAotCQkJCTBGQzQwOTEwMjQ1MTQ5NDIwMDg3NkRBMCAv
KiBpc29fdGVzdF9oZWFwLmggKi8sCisJCQkJMEZDNDA5MjEyNDUxNDk0MjAwODc2REEwIC8qIGlz
b19oZWFwLmMgKi8sCisJCQkJMEZDNDA5MjkyNDUxNDk0MzAwODc2REEwIC8qIGlzb19oZWFwLmgg
Ki8sCiAJCQkJMEZDNDA5MzcyNDUxNDk0NDAwODc2REEwIC8qIGlzb190ZXN0X2hlYXBfY29uZmln
LmMgKi8sCiAJCQkJMEZDNDA5MjMyNDUxNDk0MjAwODc2REEwIC8qIGlzb190ZXN0X2hlYXBfY29u
ZmlnLmggKi8sCi0JCQkJMEY1MTkzRUMyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmMgKi8s
Ci0JCQkJMEY1MTkzRTkyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmggKi8sCisJCQkJMEZD
NDA5MEYyNDUxNDk0MjAwODc2REEwIC8qIGlzb190ZXN0X2hlYXAuYyAqLywKKwkJCQkwRkM0MDkx
MDI0NTE0OTQyMDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcC5oICovLAorCQkJCTBGNTE5M0VBMjY2
QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8sCiAJCQkJMEY1
MTkzRUIyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGNTE5
M0U4MjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWcuaCAqLywKLQkJCQkwRjUxOTNF
QTI2NkM0MkFDMDA0ODNBMkMgLyogaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICovLAotCQkJ
CTBGMThGODNEMjVDMzQ2NzcwMDcyMUMyQSAvKiBtaW5hbGlnbjMyX2hlYXAuYyAqLywKLQkJCQkw
RjE4Rjg0MTI1QzM0Njc3MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwLmggKi8sCisJCQkJMEY1
MTkzRUMyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmMgKi8sCisJCQkJMEY1MTkzRTkyNjZD
NDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwLmggKi8sCiAJCQkJMEYxOEY4NDQyNUMzNDY3NzAwNzIx
QzJBIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjE4Rjg0MjI1QzM0Njc3
MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBGMThGODNFMjVD
MzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmMgKi8sCi0JCQkJMEYxOEY4NDMyNUMz
NDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuaCAqLywKKwkJCQkwRjE4RjgzRDI1QzM0
Njc3MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwLmMgKi8sCisJCQkJMEYxOEY4NDEyNUMzNDY3
NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcC5oICovLAogCQkJCTBGMThGODQwMjVDMzQ2Nzcw
MDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGMThGODNGMjVD
MzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oICovLAorCQkJCTBGMThG
ODNFMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmMgKi8sCisJCQkJMEYxOEY4
NDMyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuaCAqLywKIAkJCQkwRkM0MDky
QTI0NTE0OTQzMDA4NzZEQTAgLyogcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywK
IAkJCQkwRkM0MDkyQjI0NTE0OTQzMDA4NzZEQTAgLyogcGFzX2FsaWduZWRfYWxsb2NhdG9yLmgg
Ki8sCiAJCQkJMEZDNDA5MkQyNDUxNDk0MzAwODc2REEwIC8qIHBhc19hbGlnbm1lbnQuYyAqLywK
IAkJCQkwRkM0MDkzMDI0NTE0OTQzMDA4NzZEQTAgLyogcGFzX2FsaWdubWVudC5oICovLAotCQkJ
CTBGODdGRkNGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMu
YyAqLywKLQkJCQkwRjg3RkZDMDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2Rp
cmVjdG9yaWVzLmggKi8sCiAJCQkJMEYxQkZENDYyNjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19hbGxf
aGVhcF9jb25maWdzLmggKi8sCiAJCQkJMEZDNDA5MzQyNDUxNDk0MzAwODc2REEwIC8qIHBhc19h
bGxfaGVhcHMuYyAqLywKIAkJCQkwRkM0MDk4ODI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2FsbF9o
ZWFwcy5oICovLAotCQkJCTBGMUFFQ0VCMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6
aW5lcy5jICovLAotCQkJCTBGMUFFQ0VBMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6
aW5lcy5oICovLAogCQkJCTBGQzQwOUJGMjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfYWxsX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yaWVzLmMgKi8sCiAJCQkJMEZDNDA5NzIyNDUxNDk1RTAwODc2REEwIC8q
IHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuaCAqLywKIAkJCQkwRkM0MDk5RTI0NTE0
OTYxMDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgKi8sCiAJCQkJMEZDNDA5
ODkyNDUxNDk2MDAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5oICovLAogCQkJ
CTBGQzQwOTgxMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdGlvbl9jb25maWcuaCAqLywK
IAkJCQkwRkM0MDk3NzI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fa2luZC5oICov
LAotCQkJCTBGODdGRkI4MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQu
YyAqLywKIAkJCQkwRkM0MDlCRTI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fcmVz
dWx0LmggKi8sCiAJCQkJMEZDNDA5QUEyNDUxNDk2MjAwODc2REEwIC8qIHBhc19hbGxvY2F0b3Jf
Y291bnRzLmggKi8sCiAJCQkJMEY3NTQ5ODAyNDg2OTczQzAwMkE0QzdEIC8qIHBhc19hbGxvY2F0
b3JfaW5kZXguaCAqLywKIAkJCQkwRkM0MDk4RDI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2FsbG9j
YXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCAqLywKLQkJCQkwRkM0MDk4NDI0NTE0OTVGMDA4NzZEQTAg
LyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jICovLAotCQkJCTBGQzQwOUEyMjQ1MTQ5NjEwMDg3
NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZDNDA5ODIyNDUxNDk1
RjAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0LmggKi8sCiAJCQkJMEZD
NDA5OTcyNDUxNDk2MTAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuYyAq
LywKIAkJCQkwRkM0MDk3QjI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
cl90YWJsZS5oICovLAorCQkJCTBGQzQwOTg0MjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYmFzZWxp
bmVfYWxsb2NhdG9yLmMgKi8sCisJCQkJMEZDNDA5QTIyNDUxNDk2MTAwODc2REEwIC8qIHBhc19i
YXNlbGluZV9hbGxvY2F0b3IuaCAqLywKIAkJCQkwRjUxOTNFRDI2NkM0MkFEMDA0ODNBMkMgLyog
cGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5jICovLAogCQkJCTBGODdGRkNF
MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRh
LmggKi8sCiAJCQkJMEY4N0ZGQUIyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2Nv
bmZpZ19yb290X2RhdGEuaCAqLywKIAkJCQkwRkM0MDlBNjI0NTE0OTYyMDA4NzZEQTAgLyogcGFz
X2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXMuaCAqLywKIAkJCQkwRkM0MDk3RTI0NTE0OTVGMDA4NzZE
QTAgLyogcGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcuaCAqLywKIAkJCQkwRkM0MDk5NjI0
NTE0OTYxMDA4NzZEQTAgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCAqLywK
LQkJCQkwRjg3RkZBRjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMg
Ki8sCi0JCQkJMEY4N0ZGQjMyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9y
eS5oICovLAotCQkJCTBGODdGRkIxMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJl
Y3RvcnlfaW5saW5lcy5oICovLAogCQkJCTBGODdGRkNDMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Ymlhc2luZ19kaXJlY3Rvcnlfa2luZC5oICovLAogCQkJCTBGQzQwOUI1MjQ1MTQ5NjMwMDg3NkRB
MCAvKiBwYXNfYml0ZmllbGRfdmVjdG9yLmggKi8sCiAJCQkJMEY4N0ZGRDYyNUFGODk3QzAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKKwkJCQkwRjg3RkZCQjI1
QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oICovLAogCQkJ
CTBGODdGRkNEMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jICovLAog
CQkJCTBGODdGRkFFMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oICov
LAotCQkJCTBGODdGRkJCMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9p
bmxpbmVzLmggKi8sCi0JCQkJMEY4N0ZGQTcyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnkuYyAqLywKLQkJCQkwRjg3RkZCQTI1QUY4OTdCMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oICovLAorCQkJCTBGODdGRkI5MjVBRjg5N0Iw
MDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJCQkJMEY4N0ZG
Q0IyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmMgKi8sCiAJCQkJMEY4
N0ZGQzIyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggKi8sCi0JCQkJ
MEY4N0ZGQTYyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRl
eC5oICovLAotCQkJCTBGODdGRkI5MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVj
dG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJMEY4N0ZGQkUyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfZGlyZWN0b3J5X2tpbmQuaCAqLywKLQkJCQkwRjg3RkZCRjI1QUY4OTdCMDAwRTFBQkYg
LyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEY4N0ZGQkMyNUFGODk3
QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovLAotCQkJCTBGODdG
RkE5MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgKi8s
Ci0JCQkJMEY4N0ZGQTIyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3MuaCAqLywKIAkJCQkwRjg3RkZCRDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9o
ZWFwLmMgKi8sCiAJCQkJMEY4N0ZGQzcyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfaGVh
cC5oICovLAogCQkJCTBGODdGRkM0MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X21heF9m
cmVlLmggKi8sCi0JCQkJMEY4N0ZGRDEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFn
ZS5jICovLAotCQkJCTBGODdGRkM1MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2Uu
aCAqLywKLQkJCQkwRjg3RkZCNTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZy5oICovLAogCQkJCTBGODdGRkQzMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2lubGluZXMuaCAqLywKIAkJCQkwRjg3RkZBRDI1QUY4OTdBMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgKi8sCiAJCQkJMEY4N0ZGQjIyNUFGODk3QTAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5kZWYgKi8sCiAJCQkJMEY4N0ZG
QzEyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oICovLAot
CQkJCTBGODdGRkI3MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0
aWxzLmggKi8sCiAJCQkJMEY4N0ZGQzkyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfdXRpbHNfaW5saW5lcy5oICovLAorCQkJCTBGODdGRkI3MjVBRjg5N0IwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY4N0ZGQTQyNUFG
ODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oICovLAorCQkJ
CTBGODdGRkI1MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggKi8s
CiAJCQkJMEY4N0ZGQTEyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVz
LmggKi8sCisJCQkJMEY4N0ZGRDEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5j
ICovLAorCQkJCTBGODdGRkM1MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuaCAq
LywKIAkJCQkwRjg3RkZBQzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNz
LmMgKi8sCiAJCQkJMEY4N0ZGQjQyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfc2l6ZV9j
bGFzcy5oICovLAotCQkJCTBGODdGRkM4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3Zp
ZXcuYyAqLywKLQkJCQkwRjg3RkZBNTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3
LmggKi8sCiAJCQkJMEY4N0ZGRDIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlld19h
bmRfaW5kZXguaCAqLywKIAkJCQkwRjg3RkZENTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZp
dF92aWV3X2lubGluZXMuaCAqLywKKwkJCQkwRjg3RkZDODI1QUY4OTdDMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF92aWV3LmMgKi8sCisJCQkJMEY4N0ZGQTUyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfdmlldy5oICovLAogCQkJCTBGQzQwOUE5MjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfYml0
dmVjdG9yLmggKi8sCiAJCQkJMEZDNDA5QkIyNDUxNDk2MzAwODc2REEwIC8qIHBhc19ib290c3Ry
YXBfZnJlZV9oZWFwLmMgKi8sCiAJCQkJMEZDNDA5QTcyNDUxNDk2MjAwODc2REEwIC8qIHBhc19i
b290c3RyYXBfZnJlZV9oZWFwLmggKi8sCkBAIC0xNTY4LDkgKzE1MTIsOSBAQAogCQkJCTBGOEU3
ODRDMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bv
b2xfcHRyLmggKi8sCiAJCQkJMEZDNDA5QzIyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb21wYWN0
X2F0b21pY19wdHIuaCAqLywKIAkJCQkwRjhFNzg0RTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi8sCi0JCQkJMEY4
RTc4NEYyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkwRkM0MDk4NjI0NTE0OTYwMDA4NzZE
QTAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdfcG9v
bHNfcHRyLmggKi8sCiAJCQkJMEZDNDA5QUIyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHIuaCAqLywKKwkJCQkwRjdDOTJENzI2
RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyLmggKi8sCiAJCQkJMEZDNDA5QkMyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3ZpZXcuaCAqLywKIAkJCQkwRjhFODMyNTI0OTJFQUYzMDA0
NkQ3RjggLyogcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZS5oICovLAogCQkJCTBGQzQwOThCMjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9hdG9t
aWNfdW5zaWduZWRfcHRyLmggKi8sCkBAIC0xNTg5LDE0ICsxNTMzLDE0IEBACiAJCQkJMEY1RkU3
RDgyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRf
cHRyLmggKi8sCiAJCQkJMEZDNDA5ODcyNDUxNDk2MDAwODc2REEwIC8qIHBhc19jb21wYWN0X3B0
ci5oICovLAogCQkJCTBGOEU3ODU4MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovLAotCQkJCTBGOEU3ODU2MjQ3ODczOTUw
MEUxMjRBNiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHIuaCAqLywKKwkJCQkwRjdDOTJEMzI2RTU3Rjc0MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLywKIAkJCQkwRkM0MDlCQTI0NTE0OTYzMDA4
NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9oZWFwX3B0ci5oICovLAogCQkJCTBGQzQw
OUExMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdl
X2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkwRkM0MDk3MDI0NTE0OTVFMDA4NzZEQTAgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIuaCAqLywKKwkJCQkwRjdDOTJEQjI2
RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHIuaCAqLywKIAkJCQkwRkM0MDk4RjI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF92aWV3LmggKi8sCi0JCQkJMEZDNDA5N0QyNDUxNDk1RjAwODc2REEwIC8qIHBhc19j
b21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5oICovLAogCQkJCTBGQzQwOTk5MjQ1MTQ5NjEwMDg3
NkRBMCAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmggKi8sCi0JCQkJMEY1
RkU3Q0UyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0
ci5oICovLAorCQkJCTBGQzQwOTdEMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9za2lw
X2xpc3Rfbm9kZV9wdHIuaCAqLywKIAkJCQkwRkM0MDlDMTI0NTE0OTYzMDA4NzZEQTAgLyogcGFz
X2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHIuaCAqLywKIAkJCQkwRjVGRTdEOTI1QjYyMTBEMDAx
ODU5RkMgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmgg
Ki8sCiAJCQkJMEZDNDA5NzEyNDUxNDk1RTAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9w
dHIuaCAqLywKQEAgLTE2MDQsMjQgKzE1NDgsMjQgQEAKIAkJCQkwRkM0MDk5QTI0NTE0OTYxMDA4
NzZEQTAgLyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi8sCiAJCQkJMEZDNDA5NzkyNDUx
NDk1RjAwODc2REEwIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5jICov
LAogCQkJCTBGQzQwOUIzMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29i
amVjdF9jYWxsYmFja3MuaCAqLywKLQkJCQkwRkM0MDlCODI0NTE0OTYzMDA4NzZEQTAgLyogcGFz
X2NvbmZpZy5oICovLAogCQkJCTBGQzQwOUE4MjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY29uZmln
X3ByZWZpeC5oICovLAorCQkJCTBGQzQwOUI4MjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfY29uZmln
LmggKi8sCiAJCQkJMEZDNDA5QUQyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jb3VudF9sb29rdXBf
bW9kZS5oICovLAogCQkJCTBGQzQwOUE1MjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY3JlYXRlX2Jh
c2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuYyAqLywKIAkJCQkwRkM0
MDk2RjI0NTE0OTVFMDA4NzZEQTAgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVz
X3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggKi8sCiAJCQkJMEZDNDA5OTgyNDUxNDk2MTAwODc2REEw
IC8qIHBhc19kZWFsbG9jYXRlLmMgKi8sCiAJCQkJMEZDNDA5OUIyNDUxNDk2MTAwODc2REEwIC8q
IHBhc19kZWFsbG9jYXRlLmggKi8sCiAJCQkJMEY1RkU3REEyNUI2MjEwRDAwMTg1OUZDIC8qIHBh
c19kZWFsbG9jYXRpb25fbW9kZS5oICovLAotCQkJCTBGQzQwOUEzMjQ1MTQ5NjEwMDg3NkRBMCAv
KiBwYXNfZGVhbGxvY2F0b3IuaCAqLywKIAkJCQkwRkM0MDk4NTI0NTE0OTYwMDA4NzZEQTAgLyog
cGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oICovLAorCQkJCTBGQzQwOUEzMjQ1MTQ5
NjEwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0b3IuaCAqLywKIAkJCQkwRjM3M0U1MzI2NTlFQTcw
MDAzNEJBOTYgLyogcGFzX2RlYnVnX2hlYXAuaCAqLywKIAkJCQkwRkJDNjJDNDI2NUYxODBDMDA1
QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmMgKi8sCiAJCQkJMEZCQzYyQzUyNjVGMTgwQzAw
NUE1NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5oICovLAogCQkJCTBGQzQwOUI5MjQ1MTQ5NjMw
MDg3NkRBMCAvKiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmMgKi8sCiAJCQkJMEZDNDA5QTAy
NDUxNDk2MTAwODc2REEwIC8qIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCAqLywKKwkJCQkw
RjhFODMyQjI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBf
aW5saW5lcy5oICovLAogCQkJCTBGOEU4MzI2MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWdu
YXRlZF9pbnRyaW5zaWNfaGVhcC5jICovLAogCQkJCTBGOEU4MzI0MjQ5MkVBRjMwMDQ2RDdGOCAv
KiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5oICovLAotCQkJCTBGOEU4MzJCMjQ5MkVB
RjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmggKi8s
CiAJCQkJMEZDNDA5OEEyNDUxNDk2MDAwODc2REEwIC8qIHBhc19keWxkX3N0YXRlLmMgKi8sCiAJ
CQkJMEZDNDA5OUQyNDUxNDk2MTAwODc2REEwIC8qIHBhc19keWxkX3N0YXRlLmggKi8sCiAJCQkJ
MEZDNDA5ODAyNDUxNDk1RjAwODc2REEwIC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21h
cC5jICovLApAQCAtMTY0NCwxMSArMTU4OCwxMSBAQAogCQkJCTBGODcwMDEyMjVBRjg5QzcwMDBF
MUFCRiAvKiBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuaCAqLywKIAkJCQkwRjg3MDAx
RDI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdlc19hc19t
ZXRhLmMgKi8sCiAJCQkJMEY4NzAwMUUyNUFGODlDODAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVf
dW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0YS5oICovLAotCQkJCTBGODcwMDE0MjVBRjg5QzcwMDBF
MUFCRiAvKiBwYXNfZW51bWVyYXRvci5jICovLAotCQkJCTBGODcwMDI3MjVBRjg5QzkwMDBFMUFC
RiAvKiBwYXNfZW51bWVyYXRvci5oICovLAogCQkJCTBGODcwMDI4MjVBRjg5QzkwMDBFMUFCRiAv
KiBwYXNfZW51bWVyYXRvcl9pbnRlcm5hbC5oICovLAogCQkJCTBGODcwMDIwMjVBRjg5QzgwMDBF
MUFCRiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24uYyAqLywKIAkJCQkwRjg3MDAyMTI1QUY4OUM4
MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmggKi8sCisJCQkJMEY4NzAwMTQyNUFG
ODlDNzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdG9yLmMgKi8sCisJCQkJMEY4NzAwMjcyNUFGODlD
OTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdG9yLmggKi8sCiAJCQkJMEZDNDA5QUYyNDUxNDk2MjAw
ODc2REEwIC8qIHBhc19lcG9jaC5jICovLAogCQkJCTBGQzQwOUIxMjQ1MTQ5NjIwMDg3NkRBMCAv
KiBwYXNfZXBvY2guaCAqLywKIAkJCQkwRkM0MDlCMDI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2V4
Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuYyAqLywKQEAgLTE2NjIsOCArMTYwNiw4
IEBACiAJCQkJMEY4NzAwMjMyNUFGODlDODAwMEUxQUJGIC8qIHBhc19mYXN0X21lZ2FwYWdlX2tp
bmQuaCAqLywKIAkJCQkwRjg3MDAyMjI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2Zhc3RfbWVnYXBh
Z2VfdGFibGUuYyAqLywKIAkJCQkwRjg3MDAyNDI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2Zhc3Rf
bWVnYXBhZ2VfdGFibGUuaCAqLywKLQkJCQkwRjg3MDAxNjI1QUY4OUM3MDAwRTFBQkYgLyogcGFz
X2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGODcwMDExMjVBRjg5Qzcw
MDBFMUFCRiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaCAqLywKKwkJ
CQkwRjg3MDAxNjI1QUY4OUM3MDAwRTFBQkYgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jl
c3VsdC5oICovLAogCQkJCTBGQjU3MDZDMjY3RDA1NTkwMDgwRkE4QiAvKiBwYXNfZmFzdF90bHMu
aCAqLywKIAkJCQkwRkM0MEFDOTI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX2ZkX3N0cmVhbS5jICov
LAogCQkJCTBGQzQwQUNBMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfZmRfc3RyZWFtLmggKi8sCkBA
IC0xNjc0LDggKzE2MTgsOCBAQAogCQkJCTBGODcwMDFGMjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNf
ZnJlZV9ncmFudWxlcy5oICovLAogCQkJCTBGQzQwQUE4MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNf
ZnJlZV9tb2RlLmggKi8sCiAJCQkJMEZDNDBBMzQyNDUxNDk4NjAwODc2REEwIC8qIHBhc19mcmVl
X3JhbmdlX2tpbmQuaCAqLywKLQkJCQkwRkM0MEFDQjI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2Z1
bGxfYWxsb2NfYml0cy5oICovLAogCQkJCTBGQzQwQTQ1MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNf
ZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCAqLywKKwkJCQkwRkM0MEFDQjI0NTE0OTkxMDA4NzZE
QTAgLyogcGFzX2Z1bGxfYWxsb2NfYml0cy5oICovLAogCQkJCTBGQzQwQTNBMjQ1MTQ5ODYwMDg3
NkRBMCAvKiBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaCAqLywKIAkJCQkwRkM0MEE5NjI0
NTE0OThEMDA4NzZEQTAgLyogcGFzX2dldF9hbGxvY2F0aW9uX3NpemUuaCAqLywKIAkJCQkwRkM0
MEFFMTI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX2dldF9oZWFwLmggKi8sCkBAIC0xNjgzLDE3ICsx
NjI3LDE1IEBACiAJCQkJMEY4NzAwMUMyNUFGODlDODAwMEUxQUJGIC8qIHBhc19nZXRfcGFnZV9i
YXNlLmggKi8sCiAJCQkJMEZDNDBBNzIyNDUxNDk4QTAwODc2REEwIC8qIHBhc19oYXNfb2JqZWN0
LmggKi8sCiAJCQkJMEZDNDBBNDgyNDUxNDk4NzAwODc2REEwIC8qIHBhc19oYXNodGFibGUuaCAq
LywKLQkJCQkwRkM0MEFDQzI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2hlYXAuYyAqLywKLQkJCQkw
RkM0MEE1RjI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX2hlYXAuaCAqLywKLQkJCQkwRjFCRkQ0NTI2
NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi8sCi0JCQkJMEZDNDBBQUEyNDUx
NDk4RTAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGOEU3ODREMjQ3ODcz
OTQwMEUxMjRBNiAvKiBwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTY5
MjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5jICovLAogCQkJCTBGQzQw
QThEMjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5kZWYgKi8sCiAJCQkJ
MEZDNDBBNTgyNDUxNDk4OTAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmggKi8sCisJ
CQkJMEZDNDBBNDIyNDUxNDk4NzAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxp
bmVzLmggKi8sCiAJCQkJMEZDNDBBNUUyNDUxNDk4OTAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZp
Z191dGlscy5jICovLAogCQkJCTBGQzQwQURCMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfaGVhcF9j
b25maWdfdXRpbHMuaCAqLywKLQkJCQkwRkM0MEE0MjI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX2hl
YXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJCQkwRjFCRkQ0NTI2NjQ1QUM3MDBDRUMy
OEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi8sCisJCQkJMEZDNDBBQUEyNDUxNDk4RTAwODc2REEw
IC8qIHBhc19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQTc3MjQ1MTQ5OEIwMDg3NkRBMCAv
KiBwYXNfaGVhcF9mb3JfY29uZmlnLmMgKi8sCiAJCQkJMEZDNDBBOUEyNDUxNDk4RDAwODc2REEw
IC8qIHBhc19oZWFwX2Zvcl9jb25maWcuaCAqLywKIAkJCQkwRkM0MEFEOTI0NTE0OTkyMDA4NzZE
QTAgLyogcGFzX2hlYXBfaW5saW5lcy5oICovLApAQCAtMTcwMSwyMyArMTY0MywyNCBAQAogCQkJ
CTBGQzQwQUU0MjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfaGVhcF9sb2NrLmMgKi8sCiAJCQkJMEZD
NDBBN0IyNDUxNDk4QjAwODc2REEwIC8qIHBhc19oZWFwX2xvY2suaCAqLywKIAkJCQkwRkM0MEFC
QTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oICovLAotCQkJCTBG
QzQwQTRGMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfaGVhcF9yZWYuYyAqLywKLQkJCQkwRkM0MEE2
NjI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX2hlYXBfcmVmLmggKi8sCiAJCQkJMEZDNDBBQjUyNDUx
NDk4RjAwODc2REEwIC8qIHBhc19oZWFwX3JlZl9raW5kLmggKi8sCiAJCQkJMEZDNDBBOEUyNDUx
NDk4QzAwODc2REEwIC8qIHBhc19oZWFwX3JlZl9wcmVmaXguaCAqLywKKwkJCQkwRkM0MEE0RjI0
NTE0OTg4MDA4NzZEQTAgLyogcGFzX2hlYXBfcmVmLmMgKi8sCisJCQkJMEZDNDBBNjYyNDUxNDk4
OTAwODc2REEwIC8qIHBhc19oZWFwX3JlZi5oICovLAorCQkJCTBGN0M5MkQ5MjZFNTdGNzUwMDZB
RjAxMiAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jICovLAogCQkJCTBGQzQwQUU5MjQ1MTQ5
OTMwMDg3NkRBMCAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQUYy
MjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNfaGVhcF9zdW1tYXJ5LmMgKi8sCiAJCQkJMEZDNDBBRDYy
NDUxNDk5MTAwODc2REEwIC8qIHBhc19oZWFwX3N1bW1hcnkuaCAqLywKKwkJCQkwRkM0MEE0RTI0
NTE0OTg4MDA4NzZEQTAgLyogcGFzX2hlYXBfdGFibGVfc3RhdGUuaCAqLywKIAkJCQkwRkM0MEFD
NjI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX2hlYXBfdGFibGUuYyAqLywKIAkJCQkwRkM0MEEyRTI0
NTE0OTg2MDA4NzZEQTAgLyogcGFzX2hlYXBfdGFibGUuaCAqLywKLQkJCQkwRkM0MEE0RTI0NTE0
OTg4MDA4NzZEQTAgLyogcGFzX2hlYXBfdGFibGVfc3RhdGUuaCAqLywKKwkJCQkwRkM0MEFDQzI0
NTE0OTkxMDA4NzZEQTAgLyogcGFzX2hlYXAuYyAqLywKKwkJCQkwRkM0MEE1RjI0NTE0OTg5MDA4
NzZEQTAgLyogcGFzX2hlYXAuaCAqLywKIAkJCQkwRkM0MEE2NDI0NTE0OTg5MDA4NzZEQTAgLyog
cGFzX2ltbW9ydGFsX2hlYXAuYyAqLywKIAkJCQkwRkM0MEE5RjI0NTE0OThEMDA4NzZEQTAgLyog
cGFzX2ltbW9ydGFsX2hlYXAuaCAqLywKIAkJCQkwRkM0MEE5NDI0NTE0OThEMDA4NzZEQTAgLyog
cGFzX2ltbXV0YWJsZV92ZWN0b3IuaCAqLywKIAkJCQkwRjUxNkVFNDI0NTYxODRGMDA0RTJCOEQg
LyogcGFzX2ludGVybmFsX2NvbmZpZy5oICovLAotCQkJCTBGQzQwQUI3MjQ1MTQ5OEYwMDg3NkRB
MCAvKiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCiAJCQkJMEZDNDBBNTEy
NDUxNDk4ODAwODc2REEwIC8qIHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmggKi8sCi0JCQkJ
MEZDNDBBOUMyNDUxNDk4RDAwODc2REEwIC8qIHBhc19sYXJnZV9mcmVlLmggKi8sCiAJCQkJMEZD
NDBBNTQyNDUxNDk4ODAwODc2REEwIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmggKi8s
CiAJCQkJMEZBQkREQ0YyNDhBQjA4NDAwQTg0MEIzIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVj
bGFyYXRpb25zLmRlZiAqLywKIAkJCQkwRkM0MEFDRDI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2xh
cmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmMgKi8sCkBAIC0xNzI3LDM1ICsxNjcw
LDQxIEBACiAJCQkJMEZBQkREQ0UyNDhBQjA4NDAwQTg0MEIzIC8qIHBhc19sYXJnZV9mcmVlX2hl
YXBfaGVscGVycy5oICovLAogCQkJCTBGQzQwQTc0MjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfbGFy
Z2VfZnJlZV9pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBMjMyNDUxNDk4NTAwODc2REEwIC8qIHBh
c19sYXJnZV9mcmVlX3Zpc2l0b3IuaCAqLywKLQkJCQkwRkM0MEE5MzI0NTE0OThEMDA4NzZEQTAg
LyogcGFzX2xhcmdlX2hlYXAuYyAqLywKLQkJCQkwRkM0MEE3QTI0NTE0OThCMDA4NzZEQTAgLyog
cGFzX2xhcmdlX2hlYXAuaCAqLywKKwkJCQkwRkM0MEE5QzI0NTE0OThEMDA4NzZEQTAgLyogcGFz
X2xhcmdlX2ZyZWUuaCAqLywKIAkJCQkwRkM0MEE4MzI0NTE0OThCMDA4NzZEQTAgLyogcGFzX2xh
cmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMgKi8sCiAJCQkJMEZDNDBBQjAy
NDUxNDk4RjAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19j
YWNoZS5oICovLAorCQkJCTBGQzQwQTkzMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfaGVh
cC5jICovLAorCQkJCTBGQzQwQTdBMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfaGVhcC5o
ICovLAorCQkJCTBGQzQwQUQ0MjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfbWFwX2VudHJ5
LmggKi8sCiAJCQkJMEZDNDBBRjQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sYXJnZV9tYXAuYyAq
LywKIAkJCQkwRkM0MEEzNjI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX2xhcmdlX21hcC5oICovLAot
CQkJCTBGQzQwQUQ0MjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfbWFwX2VudHJ5LmggKi8s
CisJCQkJMEZDNDBBQkQyNDUxNDk5MDAwODc2REEwIC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xf
ZXBvY2hfdXBkYXRlX21vZGUuaCAqLywKIAkJCQkwRkM0MEE0QjI0NTE0OTg4MDA4NzZEQTAgLyog
cGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jICovLAogCQkJCTBGQzQwQTFEMjQ1MTQ5ODQwMDg3NkRB
MCAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggKi8sCi0JCQkJMEZDNDBBQkQyNDUxNDk5MDAw
ODc2REEwIC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCAqLywK
IAkJCQkwRkM0MEFBMzI0NTE0OThFMDA4NzZEQTAgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9o
ZWFwLmMgKi8sCiAJCQkJMEZDNDBBRjEyNDUxNDk5MzAwODc2REEwIC8qIHBhc19sYXJnZV91dGls
aXR5X2ZyZWVfaGVhcC5oICovLAogCQkJCTBGOEE4MTI0MjVGODNFMjQwMDc5MEI0QSAvKiBwYXNf
bGluZV93b3JkX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQTdEMjQ1MTQ5OEIwMDg3NkRBMCAvKiBw
YXNfbGlzdF9kaXJlY3Rpb24uaCAqLywKLQkJCQkwRkM0MEEyODI0NTE0OTg1MDA4NzZEQTAgLyog
cGFzX2xvY2FsX2FsbG9jYXRvci5jICovLAotCQkJCTBGQzQwQTRBMjQ1MTQ5ODgwMDg3NkRBMCAv
KiBwYXNfbG9jYWxfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZDNDBBNEMyNDUxNDk4ODAwODc2REEw
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQuaCAqLywKIAkJCQkwRkM0MEE5ODI0
NTE0OThEMDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCi0JCQkJ
MEY4QTgxMjgyNUY4M0UyNTAwNzkwQjRBIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oICov
LAorCQkJCTBGN0M5MkUwMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tp
bmQuaCAqLywKIAkJCQkwRkM0MEFCODI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9j
YXRvcl9yZWZpbGxfbW9kZS5oICovLAogCQkJCTBGQzQwQTUwMjQ1MTQ5ODgwMDg3NkRBMCAvKiBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oICovLAotCQkJCTBGQzQwQkQ5MjQ1MjQzQTQwMDg3
NkRBMCAvKiBwYXNfbG9jay5jICovLAotCQkJCTBGQzQwQThCMjQ1MTQ5OEMwMDg3NkRBMCAvKiBw
YXNfbG9jay5oICovLAorCQkJCTBGN0M5MkRBMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgKi8sCisJCQkJMEY3QzkyRDQyNkU1N0Y3NDAwNkFG
MDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCAqLywKKwkJCQkwRkM0
MEEyODI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5jICovLAorCQkJCTBG
QzQwQTRBMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmggKi8sCisJCQkJ
MEY3QzkyRTEyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyAq
LywKKwkJCQkwRjdDOTJEQzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZS5oICovLAorCQkJCTBGN0M5MkQ2MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmll
d19jYWNoZS5jICovLAorCQkJCTBGN0M5MkRFMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxf
dmlld19jYWNoZS5oICovLAorCQkJCTBGN0M5MkRGMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9j
a19mcmVlX3JlYWRfaGFzaHRhYmxlLmggKi8sCiAJCQkJMEZDNDBBNTYyNDUxNDk4ODAwODc2REEw
IC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jICovLAogCQkJCTBGQzQw
QUE0MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFi
bGUuaCAqLywKKwkJCQkwRkM0MEJEOTI0NTI0M0E0MDA4NzZEQTAgLyogcGFzX2xvY2suYyAqLywK
KwkJCQkwRkM0MEE4QjI0NTE0OThDMDA4NzZEQTAgLyogcGFzX2xvY2suaCAqLywKIAkJCQkwRkM0
MEFENzI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2xvZy5jICovLAogCQkJCTBGQzQwQUMxMjQ1MTQ5
OTAwMDg3NkRBMCAvKiBwYXNfbG9nLmggKi8sCi0JCQkJMEY4RTc4NEIyNDc4NzM5NDAwRTEyNEE2
IC8qIHBhc19tYWdhemluZS5jICovLAotCQkJCTBGOEU3ODUxMjQ3ODczOTQwMEUxMjRBNiAvKiBw
YXNfbWFnYXppbmUuaCAqLywKIAkJCQkwRjg3MDA0QjI1QUY4QTE5MDAwRTFBQkYgLyogcGFzX21l
ZGl1bV9tZWdhcGFnZV9jYWNoZS5jICovLAogCQkJCTBGODcwMDQ4MjVBRjhBMTkwMDBFMUFCRiAv
KiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmggKi8sCiAJCQkJMEZDNDBBODEyNDUxNDk4QjAw
ODc2REEwIC8qIHBhc19tZWdhcGFnZV9jYWNoZS5jICovLApAQCAtMTc2NiwxMyArMTcxNSwxMyBA
QAogCQkJCTBGQzQwQUQyMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfbXV0YXRpb25fY291bnQuaCAq
LywKIAkJCQkwRjg3MDA0RTI1QUY4QTE5MDAwRTFBQkYgLyogcGFzX29iamVjdF9raW5kLmggKi8s
CiAJCQkJMEZDNDBBM0IyNDUxNDk4NjAwODc2REEwIC8qIHBhc19vYmplY3Rfc2l6ZV9tb2RlLmgg
Ki8sCi0JCQkJMEY4NzAwNTIyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2UuYyAqLywK
LQkJCQkwRjg3MDA1RDI1QUY4QTFBMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZS5oICovLAotCQkJ
CTBGODcwMDYwMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oICovLAog
CQkJCTBGODcwMDVFMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ19pbmxp
bmVzLmggKi8sCi0JCQkJMEY4NzAwNEQyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2Vf
Y29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY4NzAwNTYyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19w
YWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJCQkwRjg3MDA0RDI1QUY4QTE5
MDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaCAqLywKKwkJCQkwRjg3MDA2
MDI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLywKIAkJCQkwRjg3
MDA1MDI1QUY4QTFBMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmggKi8sCisJCQkJ
MEY4NzAwNTIyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2UuYyAqLywKKwkJCQkwRjg3
MDA1RDI1QUY4QTFBMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZS5oICovLAogCQkJCTBGODcwMDRB
MjVBRjhBMTkwMDBFMUFCRiAvKiBwYXNfcGFnZV9jb25maWdfa2luZC5oICovLAogCQkJCTBGODcw
MDYyMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovLAog
CQkJCTBGODcwMDQ5MjVBRjhBMTkwMDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFkZXJfcGxhY2VtZW50
X21vZGUuaCAqLywKQEAgLTE3ODIsMTIgKzE3MzEsMTMgQEAKIAkJCQkwRkM0MEE4OTI0NTE0OThD
MDA4NzZEQTAgLyogcGFzX3BhZ2VfbWFsbG9jLmMgKi8sCiAJCQkJMEZDNDBBRjUyNDUxNDk5NDAw
ODc2REEwIC8qIHBhc19wYWdlX21hbGxvYy5oICovLAogCQkJCTBGODcwMDVCMjVBRjhBMUEwMDBF
MUFCRiAvKiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCAqLywKKwkJCQkwRkM0MEFBMDI0NTE0OThF
MDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmggKi8sCiAJCQkJ
MEZDNDBBMzMyNDUxNDk4NjAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQu
YyAqLywKIAkJCQkwRkM0MEE0RDI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudC5oICovLAotCQkJCTBGQzQwQUEwMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaCAqLywKKwkJCQkwRjdDOTJEMjI2RTU3Rjc0MDA2
QUYwMTIgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oICovLAorCQkJ
CTBGQzQwQTczMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9y
ZXN1bHQuaCAqLywKIAkJCQkwRkM0MEFBRjI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hh
cmluZ19wb29sLmMgKi8sCiAJCQkJMEZDNDBBQTkyNDUxNDk4RTAwODc2REEwIC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbC5oICovLAotCQkJCTBGQzQwQTczMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQuaCAqLywKIAkJCQkwRjg3MDA0QzI1QUY4QTE5
MDAwRTFBQkYgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmMgKi8sCiAJCQkJ
MEY4NzAwNUMyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2Vf
bGlzdC5oICovLAogCQkJCTBGQzQwQTM3MjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfcGh5c2ljYWxf
bWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZS5oICovLApAQCAtMTgwNSwxMSArMTc1NSwxMSBA
QAogCQkJCTBGQzQwQTQwMjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfcmFjZV90ZXN0X2hvb2tzLmgg
Ki8sCiAJCQkJMEZDNDBBMUYyNDUxNDk4NTAwODc2REEwIC8qIHBhc19yYW5kb20uYyAqLywKIAkJ
CQkwRkM0MEE4NDI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3JhbmRvbS5oICovLAotCQkJCTBGQzQw
QTI3MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfcmFuZ2UuaCAqLywKLQkJCQkwRkM0MEE3NTI0NTE0
OThCMDA4NzZEQTAgLyogcGFzX3JhbmdlMTYuaCAqLywKIAkJCQkwRjg3MDA1NDI1QUY4QTFBMDAw
RTFBQkYgLyogcGFzX3JhbmdlX2JlZ2luX21pbl9oZWFwLmggKi8sCiAJCQkJMEZDNDBBRDgyNDUx
NDk5MjAwODc2REEwIC8qIHBhc19yYW5nZV9sb2NrZWRfbW9kZS5oICovLAogCQkJCTBGQzQwQUJD
MjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfcmFuZ2VfbWluX2hlYXAuaCAqLywKKwkJCQkwRkM0MEEy
NzI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3JhbmdlLmggKi8sCisJCQkJMEZDNDBBNzUyNDUxNDk4
QjAwODc2REEwIC8qIHBhc19yYW5nZTE2LmggKi8sCiAJCQkJMEZDNDBBNDQyNDUxNDk4NzAwODc2
REEwIC8qIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZS5oICovLAogCQkJCTBGQzQwQTg2MjQ1MTQ5
OEMwMDg3NkRBMCAvKiBwYXNfcmVhbGxvY2F0ZV9oZWFwX3RlbGVwb3J0X3J1bGUuaCAqLywKIAkJ
CQkwRkM0MEFCRjI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3JlZF9ibGFja190cmVlLmMgKi8sCkBA
IC0xODIzLDY3ICsxNzczLDYwIEBACiAJCQkJMEZDNDBBNkQyNDUxNDk4QTAwODc2REEwIC8qIHBh
c19zY2F2ZW5nZXIuYyAqLywKIAkJCQkwRkM0MEE1NzI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX3Nj
YXZlbmdlci5oICovLAogCQkJCTBGQzQwQTcwMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2VnbWVu
dGVkX3ZlY3Rvci5oICovLAotCQkJCTBGOEU3ODVDMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jICovLAotCQkJCTBGOEU3ODU3MjQ3ODczOTUwMEUx
MjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oICovLAotCQkJCTBGOEU3
ODUyMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyAqLywK
LQkJCQkwRjhFNzg1OTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3LmggKi8sCi0JCQkJMEZDNDBBMjQyNDUxNDk4NTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeS5jICovLAotCQkJCTBGQzQwQTZGMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkuaCAqLywKKwkJCQkwRjdDOTJENTI2RTU3Rjc0MDA2QUYwMTIgLyog
cGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCAqLywKIAkJCQkwRkM0MEE5MDI0NTE0
OThDMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaCAq
LywKIAkJCQkwRjg3MDA1ODI1QUY4QTFBMDAwRTFBQkYgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaCAqLywKIAkJCQkwRkM0MEE4MDI0NTE0OThCMDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEFF
RTI0NTE0OTkzMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQuaCAqLywK
KwkJCQkwRkM0MEEyNDI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
LmMgKi8sCisJCQkJMEZDNDBBNkYyNDUxNDk4QTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeS5oICovLAorCQkJCTBGMThGODNDMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBRTYyNDUxNDk5MzAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMgKi8sCiAJCQkJMEZDNDBB
NkIyNDUxNDk4QTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmggKi8s
Ci0JCQkJMEYxOEY4M0MyNUMzNDY3NzAwNzIxQzJBIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2lubGluZXMuaCAqLywKLQkJCQkwRjhFNzg1NDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaCAqLywKLQkJCQkwRjhF
Nzg1NTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5LmMgKi8sCi0JCQkJMEY4RTc4NUQyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oICovLAotCQkJCTBGOEU3ODVCMjQ3ODczOTUwMEUxMjRB
NiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovLAot
CQkJCTBGQzQwQURDMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmMgKi8s
Ci0JCQkJMEZDNDBBMkYyNDUxNDk4NjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuaCAq
LywKIAkJCQkwRkM0MEEyMDI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9p
bmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBN0YyNDUxNDk4QjAwODc2REEwIC8qIHBhc19zZWdyZWdh
dGVkX2hlYXBfbG9va3VwX2tpbmQuaCAqLywKIAkJCQkwRkM0MEE1OTI0NTE0OTg5MDA4NzZEQTAg
LyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdfbW9kZS5oICovLAotCQkJCTBGQzQw
QURGMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmMgKi8sCi0JCQkJMEZD
NDBBMzgyNDUxNDk4NjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuaCAqLywKKwkJCQkw
RkM0MEFEQzI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jICovLAorCQkJ
CTBGQzQwQTJGMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggKi8sCiAJ
CQkJMEY1RkU3RDEyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2Nv
bmZpZy5oICovLAotCQkJCTBGQzQwQTQxMjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZy5jICovLAotCQkJCTBGQzQwQUQxMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQURBMjQ1MTQ5OTIwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBB
RTUyNDUxNDk5MzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuYyAq
LywKIAkJCQkwRkM0MEE3NjI0NTE0OThCMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZC5kZWYgKi8sCiAJCQkJMEZDNDBBNUEyNDUxNDk4OTAwODc2REEwIC8qIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuaCAqLywKLQkJCQkwRkM0MEE5NzI0NTE0OThEMDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaCAqLywKIAkJCQkwRkM0
MEE1NTI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNf
aW5saW5lcy5oICovLAorCQkJCTBGQzQwQTk3MjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBGNUZFN0M5MjVCNjIxMEIwMDE4NTlG
QyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LmggKi8sCisJCQkJMEZDNDBB
NDEyNDUxNDk4NzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgKi8sCisJ
CQkJMEZDNDBBRDEyNDUxNDk5MTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
LmggKi8sCiAJCQkJMEZDNDBBQUMyNDUxNDk4RTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZW1wdGluZXNzX2tpbmQuaCAqLywKIAkJCQkwRkM0MEE5OTI0NTE0OThEMDA4NzZEQTAgLyog
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovLAogCQkJCTBGQzQwQTY3
MjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2hlYWRlcl9wbGFjZW1lbnRf
bW9kZS5oICovLAogCQkJCTBGQzQwQUREMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2lubGluZXMuaCAqLywKKwkJCQkwRkM0MEFERjI0NTE0OTkyMDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZS5jICovLAorCQkJCTBGQzQwQTM4MjQ1MTQ5ODYwMDg3NkRBMCAvKiBw
YXNfc2VncmVnYXRlZF9wYWdlLmggKi8sCisJCQkJMEZDNDBBREUyNDUxNDk5MjAwODc2REEwIC8q
IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBM0My
NDUxNDk4NzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jICovLAogCQkJ
CTBGQzQwQTIxMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcu
aCAqLywKLQkJCQkwRkM0MEFERTI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3X2lubGluZXMuaCAqLywKKwkJCQkwRkM0MEFGNzI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBRjMy
NDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuYyAqLywKIAkJ
CQkwRkM0MEE2QTI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRs
ZS5oICovLAotCQkJCTBGQzQwQUY3MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9z
aGFyZWRfaGFuZGxlX2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEE1MzI0NTE0OTg4MDA4NzZEQTAg
LyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMgKi8sCiAJCQkJMEZDNDBB
QkIyNDUxNDk4RjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eS5oICovLAorCQkJCTBGQzQwQTg4MjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9z
aGFyZWRfdmlld19pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBNDkyNDUxNDk4NzAwODc2REEwIC8q
IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMgKi8sCiAJCQkJMEZDNDBBMzIyNDUxNDk4NjAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmggKi8sCi0JCQkJMEZDNDBBODgy
NDUxNDk4QzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lubGluZXMuaCAq
LywKKwkJCQkwRjdDOTJERDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oICovLAorCQkJCTBGQzQwQTIyMjQ1MTQ5ODUwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJCQkJMEZD
NDBBQUIyNDUxNDk4RTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMg
Ki8sCiAJCQkJMEZDNDBBRjYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5LmggKi8sCi0JCQkJMEZDNDBBMjIyNDUxNDk4NTAwODc2REEwIC8qIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKLQkJCQkwRkM0MEE2RTI0NTE0OThB
MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jICovLAotCQkJCTBGQzQwQUVGMjQ1MTQ5
OTMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmggKi8sCiAJCQkJMEYxOEY4NTcyNUMz
NDdGMzAwNzIxQzJBIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaCAq
LywKLQkJCQkwRjhFNzg1RTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19p
bmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBODUyNDUxNDk4QzAwODc2REEwIC8qIHBhc19zZWdyZWdh
dGVkX3ZpZXdfa2luZC5oICovLAotCQkJCTBGQzQwQUMwMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNf
c2hhcmVkX2hhbmRsZV9vcl9wYWdlLmggKi8sCi0JCQkJMEY1RkU3REIyNUI2MjEwRDAwMTg1OUZD
IC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaCAqLywKKwkJCQkwRkM0MEE2
RTI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jICovLAorCQkJCTBGQzQw
QUVGMjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmggKi8sCiAJCQkJMEY1
RkU3Q0YyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRh
cnlfaW5saW5lcy5oICovLAorCQkJCTBGNUZFN0RCMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2hh
cmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggKi8sCiAJCQkJMEZDNDBBQUQyNDUxNDk4RTAw
ODc2REEwIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfaW5saW5lcy5oICovLAorCQkJCTBG
QzQwQUMwMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlLmggKi8s
CiAJCQkJMEZDQ0QxNDIyNjU2MDE4NjAwMTcxQTFGIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3Rv
cnlfYnlfc2l6ZS5jICovLAogCQkJCTBGQ0NEMTQzMjY1NjAxODYwMDE3MUExRiAvKiBwYXNfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCAqLywKIAkJCQkwRkM0MEE0NjI0NTE0OTg3MDA4
NzZEQTAgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfZGVjbGFyYXRpb25zLmRlZiAqLywKQEAgLTE4
OTQsMTEgKzE4MzcsMTEgQEAKIAkJCQkwRkM0MEE5QjI0NTE0OThEMDA4NzZEQTAgLyogcGFzX3Np
bXBsZV9sYXJnZV9mcmVlX2hlYXAuaCAqLywKIAkJCQkwRkM0MEEyNjI0NTE0OTg1MDA4NzZEQTAg
LyogcGFzX3NpbXBsZV90eXBlLmggKi8sCiAJCQkJMEY5OUY5ODYyNUNCMkNEMTAwRUVFNDQ5IC8q
IHBhc19zaXplX3RodW5rLmggKi8sCisJCQkJMEZDNDBBMkEyNDUxNDk4NTAwODc2REEwIC8qIHBh
c19za2lwX2xpc3RfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUFFMjQ1MTQ5OEYwMDg3NkRBMCAv
KiBwYXNfc2tpcF9saXN0LmMgKi8sCiAJCQkJMEZDNDBBQzQyNDUxNDk5MDAwODc2REEwIC8qIHBh
c19za2lwX2xpc3QuaCAqLywKLQkJCQkwRkM0MEEyQTI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3Nr
aXBfbGlzdF9pbmxpbmVzLmggKi8sCi0JCQkJMEZDNDBBOTIyNDUxNDk4RDAwODc2REEwIC8qIHBh
c19zbG93X3BhdGhfbW9kZS5oICovLAogCQkJCTBGQzQwQTYxMjQ1MTQ5ODkwMDg3NkRBMCAvKiBw
YXNfc2xvd19wYXRoX21vZGVfcHJlZml4LmggKi8sCisJCQkJMEZDNDBBOTIyNDUxNDk4RDAwODc2
REEwIC8qIHBhc19zbG93X3BhdGhfbW9kZS5oICovLAogCQkJCTBGQzQwQUQ1MjQ1MTQ5OTEwMDg3
NkRBMCAvKiBwYXNfc21hbGxfbGFyZ2VfbWFwX2VudHJ5LmggKi8sCiAJCQkJMEZDNDBBRUIyNDUx
NDk5MzAwODc2REEwIC8qIHBhc19zbnByaW50Zi5oICovLAogCQkJCTBGQzQwQTFFMjQ1MTQ5ODQw
MDg3NkRBMCAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmMgKi8sCkBAIC0xOTA3LDQ4ICsxODUwLDQ1
IEBACiAJCQkJMEZDNDBBQjkyNDUxNDk4RjAwODc2REEwIC8qIHBhc19zdHJlYW0uaCAqLywKIAkJ
CQkwRkM0MEE5NTI0NTE0OThEMDA4NzZEQTAgLyogcGFzX3N0cmluZ19zdHJlYW0uYyAqLywKIAkJ
CQkwRkM0MEEzRjI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3N0cmluZ19zdHJlYW0uaCAqLywKLQkJ
CQkwRjg3MDA4NTI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwLmMgKi8sCi0JCQkJ
MEY4NzAwODQyNUFGOTQ2MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5oICovLAotCQkJCTBG
ODcwMDgzMjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyAqLywKLQkJ
CQkwRjg3MDA4NjI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggKi8s
Ci0JCQkJMEZDNDBBN0MyNDUxNDk4QjAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUu
YyAqLywKLQkJCQkwRkM0MEFDNzI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZS5oICovLAotCQkJCTBGQzQwQTYyMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dC5jICovLAotCQkJCTBGQzQwQTgyMjQ1MTQ5OEIwMDg3NkRBMCAvKiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oICovLAorCQkJCTBGN0M5MkQ4MjZFNTdGNzUw
MDZBRjAxMiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaCAqLywK
IAkJCQkwRjhFODMyNzI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5jICovLAogCQkJCTBGOEU4MzI4MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8sCisJCQkJMEZDNDBBNjIyNDUxNDk4OTAw
ODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmMgKi8sCisJCQkJMEZDNDBB
ODIyNDUxNDk4QjAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmggKi8s
CiAJCQkJMEZDNDBBQTIyNDUxNDk4RTAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bm9kZS5jICovLAogCQkJCTBGQzQwQUE3MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX25vZGUuaCAqLywKKwkJCQkwRkM0MEE3QzI0NTE0OThCMDA4NzZEQTAgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZS5jICovLAorCQkJCTBGQzQwQUM3MjQ1MTQ5OTAwMDg3NkRBMCAv
KiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmggKi8sCiAJCQkJMEZDNDBBNzgyNDUxNDk4QjAwODc2
REEwIC8qIHBhc190aW55X2xhcmdlX21hcF9lbnRyeS5oICovLAogCQkJCTBGQzQwQUM1MjQ1MTQ5
OTAwMDg3NkRBMCAvKiBwYXNfdHJlZV9kaXJlY3Rpb24uaCAqLywKIAkJCQkwRjhBODAxQzI1Q0Y5
MzhBMDA3OTBCNEEgLyogcGFzX3RyaV9zdGF0ZS5oICovLAotCQkJCTBGQzQwQTY1MjQ1MTQ5ODkw
MDg3NkRBMCAvKiBwYXNfdHJ5X2FsbG9jYXRlLmggKi8sCiAJCQkJMEZDNDBBNTIyNDUxNDk4ODAw
ODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfYXJyYXkuaCAqLywKIAkJCQkwRkM0MEEzOTI0NTE0
OTg2MDA4NzZEQTAgLyogcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24uaCAqLywKIAkJCQkwRkM0MEE4
NzI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZl
LmggKi8sCiAJCQkJMEZDNDBBMkIyNDUxNDk4NTAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVf
cHJpbWl0aXZlLmggKi8sCisJCQkJMEZDNDBBNjUyNDUxNDk4OTAwODc2REEwIC8qIHBhc190cnlf
YWxsb2NhdGUuaCAqLywKIAkJCQkwRkM0MEEzMDI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3RyeV9y
ZWFsbG9jYXRlLmggKi8sCiAJCQkJMEY1MTkzRjQyNjZDNDJCRjAwNDgzQTJDIC8qIHBhc190cnlf
c2hyaW5rLmggKi8sCiAJCQkJMEZDNDBBNzkyNDUxNDk4QjAwODc2REEwIC8qIHBhc190eXBlZF9h
bGxvY2F0aW9uX3Jlc3VsdC5oICovLAotCQkJCTBGQzQwQTMxMjQ1MTQ5ODYwMDg3NkRBMCAvKiBw
YXNfdXRpbGl0eV9oZWFwLmMgKi8sCi0JCQkJMEZDNDBBRDAyNDUxNDk5MTAwODc2REEwIC8qIHBh
c191dGlsaXR5X2hlYXAuaCAqLywKIAkJCQkwRkM0MEEyQzI0NTE0OTg1MDA4NzZEQTAgLyogcGFz
X3V0aWxpdHlfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRkM0MEE5RDI0NTE0OThEMDA4NzZEQTAg
LyogcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRkM0MEExQzI0NTE0OTg0MDA4
NzZEQTAgLyogcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0LmggKi8sCisJCQkJMEZDNDBBMzEyNDUx
NDk4NjAwODc2REEwIC8qIHBhc191dGlsaXR5X2hlYXAuYyAqLywKKwkJCQkwRkM0MEFEMDI0NTE0
OTkxMDA4NzZEQTAgLyogcGFzX3V0aWxpdHlfaGVhcC5oICovLAorCQkJCTBGQzQwQTVDMjQ1MTQ5
ODkwMDg3NkRBMCAvKiBwYXNfdXRpbHNfcHJlZml4LmggKi8sCiAJCQkJMEZDNDBBRTcyNDUxNDk5
MzAwODc2REEwIC8qIHBhc191dGlscy5jICovLAogCQkJCTBGQzQwQUQzMjQ1MTQ5OTEwMDg3NkRB
MCAvKiBwYXNfdXRpbHMuaCAqLywKLQkJCQkwRkM0MEE1QzI0NTE0OTg5MDA4NzZEQTAgLyogcGFz
X3V0aWxzX3ByZWZpeC5oICovLAogCQkJCTBGODcwMDg3MjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNf
dmVyc2lvbmVkX2ZpZWxkLmMgKi8sCiAJCQkJMEZDNDBBMkQyNDUxNDk4NjAwODc2REEwIC8qIHBh
c192ZXJzaW9uZWRfZmllbGQuaCAqLywKKwkJCQkwRkM0MEFFMDI0NTE0OTkyMDA4NzZEQTAgLyog
cGFzX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLywKIAkJCQkwRkM0MEFCRTI0NTE0OTkwMDA4
NzZEQTAgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuYyAqLywKIAkJCQkwRkM0MEFFRDI0NTE0OTkzMDA4
NzZEQTAgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuaCAqLywKLQkJCQkwRkM0MEFFMDI0NTE0OTkyMDA4
NzZEQTAgLyogcGFzX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLywKIAkJCQkwRkM0MEFFQTI0
NTE0OTkzMDA4NzZEQTAgLyogcGFzX3plcm9fbW9kZS5oICovLAotCQkJCTBGODcwMENFMjVCMENC
MDMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5jICovLAotCQkJCTBGODcwMENBMjVCMENCMDIwMDBF
MUFCRiAvKiB0aGluZ3lfaGVhcC5oICovLAogCQkJCTBGODcwMENEMjVCMENCMDIwMDBFMUFCRiAv
KiB0aGluZ3lfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjg3MDBDQzI1QjBDQjAyMDAwRTFBQkYg
LyogdGhpbmd5X2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY4NzAwQ0IyNUIwQ0IwMjAwMEUxQUJG
IC8qIHRoaW5neV9oZWFwX3ByZWZpeC5oICovLAorCQkJCTBGODcwMENFMjVCMENCMDMwMDBFMUFC
RiAvKiB0aGluZ3lfaGVhcC5jICovLAorCQkJCTBGODcwMENBMjVCMENCMDIwMDBFMUFCRiAvKiB0
aGluZ3lfaGVhcC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBsaWJwYXM7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMjEzNiw2ICsyMDc2LDcgQEAKIAkJCWJ1aWxkQWN0aW9uTWFzayA9
IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQkxNERENzhDNTE4RjQ4RDc1MDA5NTA3MDIg
LyogQWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFRDI2RTU3Rjc1MDA2QUYw
MTIgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY3RUI4MzQxRjk1NDFCMDAwRjFBQkNCIC8qIEFsbElzb0hlYXBzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjg0RjFGOTU0RDRFMDBGMUFCQ0IgLyogQWxsSXNvSGVh
cHNJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzg5ODE4RjQ4RDRBMDA5NTA3MDIg
LyogQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTIyMTksNiArMjE2MCw3IEBACiAJCQkJ
MEY3RUI4MjcxRjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMU0RlYWxsb2NhdG9yRW50cnlJbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjgyRDFGOTU0MUIwMDBGMUFCQ0IgLyogSXNvVExT
RW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VCODM1MUY5NTQxQjAwMEYxQUJDQiAvKiBJ
c29UTFNFbnRyeUlubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0M5MkYwMjZFNTdGNzUw
MDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGN0VCODQ2MUY5NTQxQjAwMEYxQUJDQiAvKiBJc29UTFNJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjdFQjg0MDFGOTU0MUIwMDBGMUFCQ0IgLyogSXNvVExTTGF5b3V0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjUxOTNFRjI2NkM0MkFEMDA0ODNBMkMgLyogaml0X2hlYXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjI0MywxMCArMjE4NSw4IEBACiAJCQkJMEZDNDA5NUEyNDUxNDk0NDAw
ODc2REEwIC8qIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MDk1QjI0NTE0OTQ0MDA4NzZEQTAgLyogcGFzX2FsaWduZWRfYWxsb2NhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDk2MDI0NTE0OTQ0MDA4NzZEQTAgLyogcGFzX2FsaWdu
bWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4N0ZGRjYyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxQkZENDgy
NjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19hbGxfaGVhcF9jb25maWdzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MDlERTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2FsbF9oZWFwcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEYxQUVDRUMyNjU4MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlDODI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Fs
bF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5REYy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDNDA5RDcyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2NvbmZp
Zy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjU2LDYgKzIxOTYsNyBAQAogCQkJCTBGNzU0OTgyMjQ4
Njk3NDAwMDJBNEM3RCAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkM0MDlFMzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUY4MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFMzI2RTU3Rjc1
MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzQwOUQ4MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYmFzZWxp
bmVfYWxsb2NhdG9yX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RDEyNDUxNDk2
NDAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGODcwMDA0MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdf
ZW51bWVyYXRvcl9kYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNjMsMjAgKzIyMDQsMTMgQEAK
IAkJCQkwRkM0MDlGQzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNo
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUQ0MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
YmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RUMy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNpY19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjg3RkZFOTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3RkZFODI1QUY4OTdDMDAwRTFBQkYg
LyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
ODcwMDAyMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMEIyNDUxNDk2NDAwODc2REEwIC8qIHBhc19iaXRmaWVs
ZF92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDBDMjVBRjg5N0QwMDBFMUFCRiAv
KiBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3
RkZFNTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGODdGRkYxMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRv
cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3RkZGMDI1QUY4OTdDMDAwRTFBQkYg
LyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4
N0ZGRjgyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjg3RkZERDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfYW5kX2luZGV4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3RkZFRjI1QUY4OTdDMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY4N0ZGRjQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGODdGRkYyMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODdGRkQ5MjVBRjg5N0Mw
MDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjg3RkZGRDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9oZWFwLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjg3RkZGQTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9tYXhf
ZnJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGRkIyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfcGFnZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzExLDcgKzIyNDUsNiBAQAogCQkJ
CTBGOEU3ODYxMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFy
aW5nX3Bvb2xfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEExODI0NTE0OTY0MDA4NzZE
QTAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RTc4
NjMyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4NjQyNDc4NzM5NTAwRTEy
NEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOURDMjQ1MTQ5NjQwMDg3NkRBMCAvKiBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19wb29sc19wdHIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTAxMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MEExMjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzI5LDI0ICsyMjYyLDI1IEBACiAJCQkJ
MEY1RkU3RUQyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2Vf
Y291bnRfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlERDI0NTE0OTY0MDA4NzZEQTAg
LyogcGFzX2NvbXBhY3RfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhFNzg2RDI0Nzg3Mzk1
MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3ODZCMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQTEwMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2hlYXBfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlGNzI0NTE0OTY0MDA4NzZEQTAg
LyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfcHRyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MDlDNjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUU1
MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3ZpZXcuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGN0M5MkUyMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlEMzI0NTE0
OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MDlFRjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2tpcF9s
aXN0X25vZGVfcHRyX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1RkU3RTMyNUI2MjEwRDAw
MTg1OUZDIC8qIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDNDBBMTcyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9h
dG9taWNfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVGRTdFRTI1QjYyMTBEMDAxODU5RkMg
LyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkM0MDlDNzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdGFn
Z2VkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RjUyNDUxNDk2NDAwODc2REEwIC8q
IHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwOUYwMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQTA5MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcHV0ZV9z
dW1tYXJ5X29iamVjdF9jYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0M5MkVGMjZF
NTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEEwRTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbmZpZy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDA5RkUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb25maWdfcHJl
Zml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEEwMzI0NTE0OTY0MDA4NzZEQTAgLyogcGFz
X2NvdW50X2xvb2t1cF9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlDNTI0NTE0OTY0
MDA4NzZEQTAgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2
ZWRfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFQzI2RTU3Rjc1MDA2QUYwMTIg
LyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5
RjEyNDUxNDk2NDAwODc2REEwIC8qIHBhc19kZWFsbG9jYXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjVGRTdFRjI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MDlGOTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2RlYWxsb2Nh
dG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTI0MTgsNyArMjM1Miw2IEBACiAJCQkJMEZDNDBCN0Ey
NDUxNDk5NDAwODc2REEwIC8qIHBhc19pbW1vcnRhbF9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkM0MEI2RjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2ltbXV0YWJsZV92ZWN0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNTE2RUU1MjQ1NjE4NEYwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxf
Y29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM0MEI5MjI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
NDBCMkYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MEI3NzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xhcmdlX2Zy
ZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjMyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
bGFyZ2VfZnJlZV9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDQwLDEzICsyMzcz
LDEyIEBACiAJCQkJMEZDNDBCMjgyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjJBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI3
MzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjhBODEzNzI1RjgzRTI1MDA3OTBCNEEgLyogcGFzX2xvY2FsX2FsbG9j
YXRvcl9saW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI5MzI0NTE0OTk0MDA4NzZEQTAg
LyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDBCMkUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI2NzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2su
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0M5MkU3MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQjdGMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRy
X3B0cl9oYXNodGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjlDMjQ1MTQ5OTQwMDg3
NkRBMCAvKiBwYXNfbG9nLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg2NjI0Nzg3Mzk1MDBF
MTI0QTYgLyogcGFzX21hZ2F6aW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA2NTI1QUY4
QTFCMDAwRTFBQkYgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDBCMDQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19tZWdhcGFnZV9jYWNoZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNUEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19taW5faGVh
cC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDY2LDYgKzIzOTgsNyBAQAogCQkJCTBGODcwMDZDMjVB
RjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGODcwMDc3MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9raW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEJEMDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3BhZ2VfbWFsbG9jLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFNDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNzgy
NUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDBCMkIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjdCMjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ4
Myw2ICsyNDE2LDcgQEAKIAkJCQkwRkM0MEIxRjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3JhY2Vf
dGVzdF9ob29rcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNjAyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19yYW5kb20uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjA2MjQ1MTQ5OTQwMDg3
NkRBMCAvKiBwYXNfcmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0M5MkU4MjZFNTdGNzUw
MDZBRjAxMiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQjUyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcmFuZ2UxNi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNzEyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19yYW5n
ZV9iZWdpbl9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCQjMyNDUxNDk5NDAw
ODc2REEwIC8qIHBhc19yYW5nZV9sb2NrZWRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDk1
LDggKzI0MjksNiBAQAogCQkJCTBGODcwMDc2MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcm9vdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMzUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zY2F2
ZW5nZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjREMjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfc2VnbWVudGVkX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4NkMyNDc4NzM5
NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjhFNzg2RTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI0QzI0NTE0OTk0MDA4NzZEQTAg
LyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI2
QjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVu
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDc1MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNTA0LDkgKzI0MzYsNiBAQAogCQkJCTBGQzQwQkM5MjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBC
NDgyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjE4Rjg0NTI1QzM0Njc3MDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4Njky
NDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg3MjI0Nzg3Mzk1MDBFMTI0QTYgLyog
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjhFNzg3MDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjBFMjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0
MEFGRjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MEI1QjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9sb29rdXBfa2luZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE1LDEyICsyNDQ0LDE0
IEBACiAJCQkJMEY1RkU3RTYyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
YW5kX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCQUMyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0
MEJCNTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRTUyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19z
ZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJE
NjI0NTE0OUFFMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5kZWYg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIzODI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNzIyNDUx
NDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkM0MEIzMzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3REUy
NUI2MjEwRDAwMTg1OUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzQwQjg3MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlX2VtcHRpbmVzc19raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFRTI2
RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwQjc0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2dyYW51
bGVfdXNlX2NvdW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI0NDI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQzQwQkI4MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2lubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjUzNSw3ICsyNDY2LDYgQEAKIAkJCQkw
RkM0MEIwMTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCQ0EyNDUxNDk5NDAwODc2REEwIC8q
IHBhc19zZWdyZWdhdGVkX3ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMThGODU4MjVDMzQ3
RjMwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjhFNzg3MzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0
ZWRfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI2MTI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkM0MEI5QjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3RjAyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19zaGFyZWRf
aGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1Nyw4ICsyNDg3
LDYgQEAKIAkJCQkwRkM0MEFGQTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0YXR1c19yZXBvcnRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCOTQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19z
dHJlYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjFFMjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfc3RyaW5nX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4NzAwODkyNUFGOTQ2MjAw
MEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4NzAwOEIy
NUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDBCQTIyNDUxNDk5NDAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjVFMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RTgzMzAyNDky
RUFGMzAwNDZEN0Y4IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU5Miw2ICsyNTIwLDcgQEAKIAkJCQkwRjVCRjE1MzFGMjJFMTU3MDAy
OUQ5MUQgLyogU2NhdmVuZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDhFRkFFODFENkI5NTNC
MDA4RTcyMUUgLyogU2NvcGVFeGl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzg5MDE4RjQ4
Q0VCMDA5NTA3MDIgLyogU2l6ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0M5MkVCMjZFNTdG
NzUwMDZBRjAxMiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QkMxOEY0OEQ2QjAwOTUwNzAyIC8qIFNtYWxsTGlu
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4QkQxOEY0OEQ2QjAwOTUwNzAyIC8qIFNtYWxs
UGFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTMxRTc0ODAyMjM4Q0E1QzAwNUQwODRBIC8qIFN0
YXRpY1BlclByb2Nlc3MuaCBpbiBIZWFkZXJzICovLApAQCAtMjczNSwyMiArMjY2NCwxNiBAQAog
CQkJCTBGMThGODQ3MjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRjE4Rjg0OTI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVh
cF9jb25maWcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwOTVEMjQ1MTQ5NDQwMDg3NkRBMCAv
KiBwYXNfYWxpZ25tZW50LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3MDAwNTI1QUY4OTdDMDAw
RTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkM0MDk2NDI0NTE0OTQ0MDA4NzZEQTAgLyogcGFzX2FsbF9oZWFwcy5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEYxQUVDRUQyNjU4MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMg
aW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEExNTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2FsbF9z
aGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDA5RjQyNDUx
NDk2NDAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY4N0ZGRUUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDA5REEyNDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNl
bGluZV9hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwOUVEMjQ1MTQ5NjQwMDg3
NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmMgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjUxOTNGMzI2NkM0MkFEMDA0ODNBMkMgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1l
cmF0b3JfZGF0YS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4N0ZGRTYyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwMDMy
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjg3RkZERTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwMDEyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3RkZGNTI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjg3RkZFMDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4N0ZGRjMyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY3QzkyRjEyNkU1N0Y3NTAwNkFG
MDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
ODcwMDA3MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGODdGRkU0MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmln
X2tpbmQuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODdGRkUzMjVBRjg5N0MwMDBFMUFCRiAvKiBw
YXNfYml0Zml0X3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovLApAQCAtMjc3Niw2ICsyNjk5LDgg
QEAKIAkJCQkwRjg3MDA0MjI1QUY4OUM5MDAwRTFBQkYgLyogcGFzX2VudW1lcmFibGVfcmFuZ2Vf
bGlzdC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwMDYyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3RkZGOTI1
QUY4OTdDMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRfcGFn
ZXMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGN0M5MkU5MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNf
aGVhcF9ydW50aW1lX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY3QzkyRUEyNkU1N0Y3
NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGODdGRkU3MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2xh
cmdlX2hlYXBzLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3MDAzMDI1QUY4OUM5MDAwRTFBQkYg
LyogcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmMgaW4gU291cmNlcyAqLywKIAkJCQkw
Rjg3MDAzNjI1QUY4OUM5MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdl
c19hc19tZXRhLmMgaW4gU291cmNlcyAqLywKQEAgLTI3ODMsNiArMjcwOCw3IEBACiAJCQkJMEY4
NzAwMzkyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdG9yX3JlZ2lvbi5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZDNDBBMDUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19lcG9jaC5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZDNDBBMDYyNDUxNDk2NDAwODc2REEwIC8qIHBhc19leGNsdXNpdmVf
dmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjdDOTJFNjI2
RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYyBpbiBTb3VyY2VzICovLAog
CQkJCTBGQzQwOUNCMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZXh0ZW5kZWRfZ2NkLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRkM0MEI3OTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2Zhc3RfbGFyZ2Vf
ZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3MDAzMTI1QUY4OUM5MDAwRTFBQkYg
LyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLApAQCAtMjgxMCw3ICsy
NzM2LDYgQEAKIAkJCQkwRkM0MEJEQTI0NTI0M0E0MDA4NzZEQTAgLyogcGFzX2xvY2suYyBpbiBT
b3VyY2VzICovLAogCQkJCTBGQzQwQjM0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9ja19mcmVl
X3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQkIyMjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9nLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjhFNzg2MDI0
Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3
MDA2ODI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZDNDBCNUQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19tZWdhcGFnZV9j
YWNoZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNkEyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19tb25vdG9uaWNfdGltZS5jIGluIFNvdXJjZXMgKi8sCkBAIC0yODMwLDExICsyNzU1LDggQEAK
IAkJCQkwRkM0MEI2NjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3Jlc2VydmVkX21lbW9yeV9wcm92
aWRlci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwNzAyNUFGOEExQjAwMEUxQUJGIC8qIHBh
c19yb290LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEI0QTI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX3NjYXZlbmdlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4RTc4NzEyNDc4NzM5NTAwRTEy
NEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjhFNzg2NzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEIwMzI0NTE0OTk0MDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEJDMTI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGOEU3ODZBMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQkI3MjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0
MEJCQTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZDNDBCMjAyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnLmMgaW4gU291cmNlcyAqLywKQEAgLTI4NTIsOCArMjc3NCw2IEBACiAJCQkJMEZDNDBB
RkQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGQzQwQjQ1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc3RyZWFtLmMgaW4gU291cmNl
cyAqLywKIAkJCQkwRkM0MEI3MDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0cmluZ19zdHJlYW0u
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGODcwMDhBMjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfc3Vi
cGFnZV9tYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGODcwMDg4MjVBRjk0NjIwMDBFMUFCRiAv
KiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjU4MjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgaW4gU291cmNlcyAqLywK
IAkJCQkwRkM0MEI0MDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXQuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGOEU4MzJGMjQ5MkVBRjMwMDQ2RDdGOCAvKiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMgaW4gU291cmNlcyAqLywKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlBsYXRmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaAkod29ya2luZyBjb3B5KQpAQCAtMzIwLDggKzMy
MCwxMiBAQAogCiAvKiBCVVNFKExJQlBBUykgaXMgdXNpbmcgbGlicGFzIGZvciBibWFsbG9jIHJl
cGxhY2VtZW50LiAqLwogI2lmICFkZWZpbmVkKEJVU0VfTElCUEFTKQorI2lmIGRlZmluZWQoQkVO
QUJMRV9MSUJQQVMpICYmIEJFTkFCTEVfTElCUEFTCisjZGVmaW5lIEJVU0VfTElCUEFTIDEKKyNl
bHNlCiAjZGVmaW5lIEJVU0VfTElCUEFTIDAKICNlbmRpZgorI2VuZGlmCiAKICNpZiAhZGVmaW5l
ZChCVVNFX1BSRUNPTVBVVEVEX0NPTlNUQU5UU19WTVBBR0U0SykKICNkZWZpbmUgQlVTRV9QUkVD
T01QVVRFRF9DT05TVEFOVFNfVk1QQUdFNEsgMQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L2V4cG9ydC5zaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvZXhwb3J0LnNo
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9leHBvcnQuc2gJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzMCBAQAorIyEvYmluL3NoCisjIENvcHlyaWdodCAoYykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAorIyAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQgQU5ZCisjIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisjIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorIyBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCitzZXQgLWUKK3NldCAteAorCitybSAtcmYgbGlicGFzLWV4cG9ydAor
Z2l0IGNsb25lIC4gbGlicGFzLWV4cG9ydAorcm0gLXJmIGxpYnBhcy1leHBvcnQvLmdpdAoKUHJv
cGVydHkgY2hhbmdlcyBvbjogU291cmNlL2JtYWxsb2MvbGlicGFzL2V4cG9ydC5zaApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMCwwICsxICMjCisqClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4MjIzOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMzksMjcgKzM5LDI1IEBACiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUg
c2VjdGlvbiAqLwogCQkwRjAzN0FGMzI1QUVBOTFBMDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdh
cGFnZV9jYWNoZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYwMzdBRjEyNUFFQTkxOTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUu
YyAqLzsgfTsKIAkJMEYwMzdBRjQyNUFFQTkxQTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBh
Z2VfY2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMDM3QUYyMjVBRUE5MUEwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmgg
Ki87IH07Ci0JCTBGMDRDMjE0MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYwNEMyMDIyNDYwREI2RDAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5LmggKi87IH07Ci0JCTBGMDRDMjE1MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjAzMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYyAqLzsgfTsKLQkJMEYwNEMyMTYyNDYwREI2
RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMDQyNDYwREI2
RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oICovOyB9
OwotCQkwRjA0QzIxOTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZXJzaGlwX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMDRDMjA3MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oICovOyB9OwotCQkwRjA0QzIxQTI0NjBEQjZG
MDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwODI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX21hZ2F6aW5l
LmggKi87IH07Ci0JCTBGMDRDMjFDMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXcuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGMDRDMjBBMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXcuYyAqLzsgfTsKIAkJMEYwNEMyMUQyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19oZWFwX2NvbmZp
Z19pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjA0QzIwQjI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCAq
LzsgfTsKLQkJMEYwNEMyMUUyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfdmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYwNEMyMEMyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5o
ICovOyB9OwogCQkwRjA0QzIxRjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2xvY2suYyBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjBEMjQ2MERCNkUw
MDFEMzFGMCAvKiBwYXNfbG9jay5jICovOyB9OwotCQkwRjA0QzIyMDI0NjBEQjZGMDAxRDMxRjAg
LyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjBFMjQ2MERCNkUwMDFEMzFGMCAvKiBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jICovOyB9OwotCQkwRjA0QzIyMTI0NjBE
QjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRD
MjBGMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfaW5saW5lcy5oICovOyB9OwotCQkwRjA0QzIyMjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjA0QzIxMDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRf
dmlld19pbmxpbmVzLmggKi87IH07Ci0JCTBGMDRDMjI0MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNf
bWFnYXppbmUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMDRDMjEyMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuYyAqLzsgfTsKIAkJMEYw
NEMyMjUyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdf
cG9vbF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMDRDMjEzMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFy
aW5nX3Bvb2xfcHRyLmggKi87IH07Ci0JCTBGMDRDMjI4MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjI2MjQ2MTFDRkQwMDFE
MzFGMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIu
aCAqLzsgfTsKLQkJMEYwNEMyMjkyNDYxMUNGRDAwMUQzMUYwIC8qIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjI3MjQ2MTFDRkQwMDFEMzFGMCAv
KiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
LmggKi87IH07CiAJCTBGMDgzRjVBMjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjA4M0Y1ODIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oICovOyB9OwogCQkwRjA4M0Y1QjIyQzI5NzlC
MDBGM0NEQjMgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDgzRjU5MjJDMjk3OUIwMEYzQ0RC
MyAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oICovOyB9OwogCQkwRjA5MjI2QTIy
QjA3QzIxMDA3RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA5MjI2OTIyQjA3QzIxMDA3RDVEM0EgLyog
cGFzX211dGF0aW9uX2NvdW50LmggKi87IH07CiAJCTBGMDkyMjZDMjJCMkQ4OEUwMDdENUQzQSAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwOTIyNkIyMkIyRDg4RTAwN0Q1RDNBIC8qIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggKi87IH07CiAJCTBGMDkyMjZFMjJCMkQ5
MDkwMDdENUQzQSAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDkyMjZEMjJCMkQ5MDkwMDdENUQzQSAvKiBw
YXNfaGVhcF9jb25maWdfdXRpbHMuaCAqLzsgfTsKKwkJMEYxNDg3MTAyNjlCNzUxODAwNjg4N0E5
IC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcwQTI2OUI3NTE3MDA2ODg3QTkgLyog
cGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCAqLzsgfTsKKwkJMEYxNDg3MTEyNjlC
NzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYxNDg3MEIyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0ci5oICovOyB9OworCQkwRjE0ODcxMjI2OUI3NTE4MDA2ODg3QTkg
LyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzBDMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmll
d19jYWNoZS5oICovOyB9OworCQkwRjE0ODcxMzI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzBEMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oICovOyB9OworCQkwRjE0ODcx
NDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzBFMjY5Qjc1MTgwMDY4
ODdBOSAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jICovOyB9OworCQkwRjE0ODcxNTI2OUI3
NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzBG
MjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0ci5oICovOyB9OworCQkwRjE0ODcxRjI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfbm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYxNDg3MUEyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25v
ZGUuaCAqLzsgfTsKKwkJMEYxNDg3MjAyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3
X2NhY2hlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjE0ODcxQjI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYyAqLzsgfTsK
KwkJMEYxNDg3MjEyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2NyZWF0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMTQ4NzFDMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggKi87IH07CisJCTBGMTQ4NzIyMjY5RjVGQ0EwMDY4
ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcxRDI2OUY1RkNBMDA2ODg3QTkgLyogcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jICovOyB9OworCQkwRjE0ODcyMzI2OUY1RkNBMDA2ODg3
QTkgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcxRTI2OUY1RkNBMDA2
ODg3QTkgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggKi87IH07
CiAJCTBGMTUxOEZEMjM0NDFFMzIwMDgzMkI1QyAvKiBwYXNfaGFzX29iamVjdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNTE4RkMyMzQ0MUUzMjAw
ODMyQjVDIC8qIHBhc19oYXNfb2JqZWN0LmggKi87IH07CiAJCTBGMThFNjNFMjYyOEJGQjcwMEY2
OTAzRCAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThFNjNDMjYyOEJGQjYwMEY2OTAz
RCAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCAqLzsgfTsKIAkJMEYxOEU2
M0YyNjI4QkZCNzAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEU2M0Qy
NjI4QkZCNjAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jICov
OyB9OwpAQCAtNzUsOCArNzMsNiBAQAogCQkwRjE5MzI2OTIyRjNCM0YzMDBGQkE3MTMgLyogcGFz
X2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE5MzI2NzIyRjNCM0YzMDBGQkE3MTMg
LyogcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggKi87IH07CiAJ
CTBGMTkzMjZDMjJGNzNFODUwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE5MzI2QTIyRjczRTg0MDBGQkE3
MTMgLyogcGFzX3NjYXZlbmdlci5oICovOyB9OwogCQkwRjE5MzI2RDIyRjczRTg1MDBGQkE3MTMg
LyogcGFzX3NjYXZlbmdlci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYxOTMyNkIyMkY3M0U4NDAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuYyAqLzsg
fTsKLQkJMEYxQUVDRTgyNjU4MTk2MTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFBRUNFNjI2NTgx
OTYwMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuYyAqLzsgfTsKLQkJMEYxQUVDRTkyNjU4
MTk2MTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFBRUNFNzI2NTgxOTYxMDAwQzUyMTggLyogcGFz
X2FsbF9tYWdhemluZXMuaCAqLzsgfTsKIAkJMEYxQkZENDQyNjY0NTdGMTAwQ0VDMjhEIC8qIHBh
c19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEYxQkZENDMyNjY0NTdGMTAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jICovOyB9
OwogCQkwRjIxNTBFQjI0ODRCQjJBMDAwRDYzNEIgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyMTUwRUEyNDg0
QkIyQTAwMEQ2MzRCIC8qIHBhc19hbGxvY2F0b3JfaW5kZXguaCAqLzsgfTsKIAkJMEYyMTUwRUQy
NDg0QkI4NjAwMEQ2MzRCIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIxNTBF
QzI0ODRCQjg2MDAwRDYzNEIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9w
dHIuaCAqLzsgfTsKQEAgLTEwNyw2ICsxMDMsOSBAQAogCQkwRjQ0M0I0ODIzNDE3NjE1MDBCRTUw
RDEgLyogbWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmUuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjA4RjU1MjJBODZFMkUwMDM4NjU3NSAvKiBt
Ym1hbGxvY19pc29fY29tbW9uX3ByaW1pdGl2ZS5jICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9G
TEFHUyA9ICItRFBBU19WRVJJRklFRCI7IH07IH07CiAJCTBGNDQzQjRBMjM0MTc2MTUwMEJFNTBE
MSAvKiBsaWJwYXMuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkRFQTVEOTIyOTVGQzhDMDA4NUUzNDAgLyogbGlicGFzLmR5bGliICovOyB9
OwogCQkwRjQ0M0I0RjIzNDE3NzgzMDBCRTUwRDEgLyogbGlicGFzX3ZlcmlmaWVyLmR5bGliIGlu
IEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NDNCM0Ey
MzQxNkE3QzAwQkU1MEQxIC8qIGxpYnBhc192ZXJpZmllci5keWxpYiAqLzsgfTsKKwkJMEY0NUQ1
QTkyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NUQ1QTYyNkFCNzMxNDAw
QzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oICovOyB9OworCQkwRjQ1RDVBQTI2
QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NUQ1QTcyNkFC
NzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYyAqLzsg
fTsKKwkJMEY0NUQ1QUIyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNDVENUE4MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhLmggKi87IH07CiAJCTBGNDdDMzFBMjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfYWxs
b2NhdGlvbl9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjQ3QzMxODIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fa2luZC5oICov
OyB9OwogCQkwRjQ3QzMxQjIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2hlYXBfa2luZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0N0MzMTkyMzM5NkQx
RjAwMkExQ0Y3IC8qIHBhc19oZWFwX2tpbmQuaCAqLzsgfTsKIAkJMEY0N0MzMUUyMzM5NkUwQjAw
MkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0N0MzMUMyMzM5NkUwQjAwMkExQ0Y3IC8qIHBh
c19hbGxvY2F0aW9uX2NhbGxiYWNrcy5jICovOyB9OwpAQCAtMTQ0LDcgKzE0Myw2IEBACiAJCTBG
NEY2MUNBMjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEY2
MUM4MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3Qu
aCAqLzsgfTsKIAkJMEY0RjYxQ0IyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2Vy
dmF0aW9uX3BhZ2VfbGlzdC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY0RjYxQzkyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0
aW9uX3BhZ2VfbGlzdC5jICovOyB9OwogCQkwRjUwOEQ1MzI1OEVDRkQzMDAxNTFFRDggLyogcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTA4RDUyMjU4RUNGRDMwMDE1MUVE
OCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZC5oICovOyB9
OwotCQkwRjUwOEQ1QzI1OEVEQ0E3MDAxNTFFRDggLyogSXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUwOEQ1QjI1
OEVEQ0E3MDAxNTFFRDggLyogSXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAgKi87IH07CiAJCTBGNTE2
RUUzMjQ1NjBGRjUwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxNkVFMjI0NTYwRkY1MDA0RTJC
OEQgLyogcGFzX2ludGVybmFsX2NvbmZpZy5oICovOyB9OwogCQkwRjUxNkVFNzI0NTYxQTYwMDA0
RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY1MTZFRTYyNDU2MUE2MDAwNEUyQjhEIC8qIGlzb19oZWFwX2lu
bmFyZHMuaCAqLzsgfTsKIAkJMEY1MTkzRTcyNjZBRTVENDAwNDgzQTJDIC8qIEpJVEhlYXBUZXN0
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUx
OTNFNjI2NkFFNUQ0MDA0ODNBMkMgLyogSklUSGVhcFRlc3RzLmNwcCAqLzsgfTsKQEAgLTI2OSwz
NCArMjY3LDI1IEBACiAJCTBGOTdFNjJFMjJBOUE4NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5N0U2MkQyMkE5QTg1RjAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnLmggKi87IH07CiAJCTBGOTdFNjMwMjJBOUFBQzEwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5N0U2MkYyMkE5QUFDMTAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnLmMgKi87IH07CiAJCTBGOTlGOThDMjVDQjJDRTgwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVu
ay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5OUY5
OEIyNUNCMkNFODAwRUVFNDQ5IC8qIHBhc19zaXplX3RodW5rLmggKi87IH07Ci0JCTBGOUExQ0Uz
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQzk3MjU1OTk2MTEwMEM4RDEx
QiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCAqLzsgfTsKLQkJMEY5QTFDRTQyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOTgyNTU5OTYxMTAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovOyB9OwogCQkwRjlBMUNFNTI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUM5OTI1NTk5NjEx
MDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggKi87IH07
CiAJCTBGOUExQ0U2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0
aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlB
MUM5QTI1NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oICov
OyB9OwogCQkwRjlBMUNFNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9tYXhfZnJlZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOUIy
NTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUuaCAqLzsgfTsKLQkJMEY5QTFD
RTgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOUMyNTU5OTYxMTAwQzhE
MTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5jICovOyB9OwogCQkwRjlBMUNFOTI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOUQyNTU5OTYxMTAw
QzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaCAqLzsgfTsKIAkJ
MEY5QTFDRUIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3Zh
cmlhbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
OUExQzlGMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJp
YW50LmggKi87IH07CiAJCTBGOUExQ0VDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdh
cGFnZV9jYWNoZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5QTFDQTAyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmMg
Ki87IH07CiAJCTBGOUExQ0VEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0ExMjU1
OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAqLzsgfTsKIAkJMEY5QTFDRUUyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTIyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfdmlldy5jICovOyB9OwotCQkwRjlBMUNFRjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Fs
bG9jYXRpb25fcmVzdWx0LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjlBMUNBMzI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0
LmMgKi87IH07CiAJCTBGOUExQ0YwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4u
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0E0
MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uYyAqLzsgfTsKIAkJMEY5QTFDRjEy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTUyNTU5
OTYxMjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovOyB9
OwogCQkwRjlBMUNGMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBNjI1
NTk5NjEyMDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMgKi87IH07Ci0JCTBGOUEx
Q0YzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBNzI1NTk5
NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oICovOyB9OwogCQkw
RjlBMUNGNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBODI1NTk5NjEyMDBDOEQx
MUIgLyogcGFzX2NvbW1pdF9zcGFuLmggKi87IH07CiAJCTBGOUExQ0Y1MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTkyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19i
aWFzaW5nX2RpcmVjdG9yeV9raW5kLmggKi87IH07Ci0JCTBGOUExQ0Y2MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0FBMjU1OTk2MTIwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCAqLzsgfTsKIAkJMEY5QTFDRjcyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0FCMjU1OTk2MTIw
MEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi87IH07CiAJ
CTBGOUExQ0Y4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0FDMjU1OTk2
MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCAqLzsgfTsKIAkJMEY5QTFDRjky
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wcm9tb3RlX2ludHJpbnNpY19oZWFwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBRDI1NTk5NjEzMDBD
OEQxMUIgLyogcGFzX3Byb21vdGVfaW50cmluc2ljX2hlYXAuaCAqLzsgfTsKIAkJMEY5QTFDRkEy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQUUyNTU5OTYxMzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oICovOyB9OwotCQkwRjlBMUNG
QjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQUYyNTU5OTYx
MzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCAqLzsgfTsKLQkJMEY5
QTFDRkMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0IwMjU1
OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi87IH07CiAJ
CTBGOUExQ0ZEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCMTI1NTk5NjEz
MDBDOEQxMUIgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5jICovOyB9OwogCQkwRjlBMUNGRTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQjIyNTU5OTYxMzAw
QzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLzsgfTsKLQkJMEY5
QTFDRkYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0IzMjU1OTk2
MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmggKi87IH07CiAJCTBGOUEx
RDAwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5jIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQjQyNTU5OTYxMzAwQzhEMTFC
IC8qIHBhc19mcmVlX2dyYW51bGVzLmMgKi87IH07CiAJCTBGOUExRDAxMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQjUyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfcGFnZV9pbmxpbmVzLmggKi87IH07CiAJCTBGOUExRDAyMjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY5QTFDQjYyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0
b3J5LmggKi87IH07CkBAIC0zMDYsMzkgKzI5NSwyOSBAQAogCQkwRjlBMUQwNjI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5QTFDQkEyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2Uu
YyAqLzsgfTsKIAkJMEY5QTFEMDcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2Nh
dGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOUExQ0JCMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVz
dWx0LmggKi87IH07CiAJCTBGOUExRDA4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2Fs
bG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5QTFDQkMyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggKi87IH07
Ci0JCTBGOUExRDA5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUEx
Q0JEMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyAqLzsg
fTsKLQkJMEY5QTFEMEEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rv
cmllcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5
QTFDQkUyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jICov
OyB9OwotCQkwRjlBMUQwQjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUExQ0JGMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5l
cy5oICovOyB9OwogCQkwRjlBMUQwQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9j
b25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
OUExQ0MwMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oICovOyB9Owog
CQkwRjlBMUQwRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0MxMjU1OTk2
MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5jICovOyB9OwotCQkwRjlBMUQwRTI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDMjI1NTk5NjE0MDBDOEQxMUIgLyogcGFz
X3N1YnBhZ2VfbWFwLmggKi87IH07Ci0JCTBGOUExRDBGMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Y29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0MzMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfY29t
cGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCAqLzsgfTsKIAkJMEY5QTFEMTAyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDNDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF9hbGxvY2F0b3IuYyAqLzsgfTsKIAkJMEY5QTFEMTEyNTU5OTYxNzAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfcGFnZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5QTFDQzUyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5jICovOyB9
OwogCQkwRjlBMUQxMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfY29uZmlnX2tpbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0M2MjU1
OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9jb25maWdfa2luZC5oICovOyB9OwotCQkwRjlBMUQx
MzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDNzI1NTk5NjE1MDBDOEQx
MUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi87IH07CiAJCTBGOUExRDE0MjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDODI1NTk5NjE1MDBDOEQxMUIg
LyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oICovOyB9OwogCQkwRjlBMUQxNTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDOTI1NTk5NjE1MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgKi87IH07CiAJCTBGOUExRDE2MjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9raW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDQTI1NTk5NjE1MDBDOEQxMUIg
LyogcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oICovOyB9OwogCQkwRjlBMUQxNzI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDQjI1NTk5NjE1MDBDOEQxMUIg
LyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmggKi87IH07CiAJCTBGOUExRDE4MjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0NEMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X2hlYXAuaCAqLzsgfTsKIAkJMEY5QTFEMTkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19m
YXN0X21lZ2FwYWdlX3RhYmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjlBMUNDRTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2Vf
dGFibGUuaCAqLzsgfTsKLQkJMEY5QTFEMUIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19hbGxfYmlh
c2luZ19kaXJlY3Rvcmllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY5QTFDRDAyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJl
Y3Rvcmllcy5oICovOyB9OwogCQkwRjlBMUQxQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjlBMUNEMTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmMgKi87IH07CiAJCTBG
OUExRDFEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNEMjI1
NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oICovOyB9Owog
CQkwRjlBMUQxRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3Jh
bnVsZV91c2VfY291bnRfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjlBMUNEMzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2Vk
X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi87IH07CiAJCTBGOUExRDFGMjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDQyNTU5OTYxNjAwQzhEMTFCIC8q
IHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmggKi87IH07CiAJCTBGOUExRDIwMjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Q1MjU1OTk2MTYwMEM4RDEx
QiAvKiBwYXNfcGFnZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCAqLzsgfTsKIAkJMEY5QTFEMjEy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDYyNTU5OTYxNjAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oICovOyB9OwotCQkwRjlBMUQyMjI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNENzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2Vf
bWFwLmMgKi87IH07Ci0JCTBGOUExRDIzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19k
aXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUExQ0Q4MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCAqLzsg
fTsKIAkJMEY5QTFEMjQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX3NoYXJpbmdfbW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDky
NTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oICovOyB9OwogCQkwRjlB
MUQyNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0RBMjU1OTk2
MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovOyB9OwogCQkwRjlB
MUQyNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFy
eV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjlBMUNEQjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9i
b3VuZGFyeV9pbmxpbmVzLmggKi87IH07CiAJCTBGOUExRDI3MjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfY29tcGFjdF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDREMyNTU5OTYxNjAwQzhEMTFCIC8q
IHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi87IH07CiAJCTBGOUEx
RDI4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNERDI1NTk5NjE2MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oICovOyB9OwogCQkwRjlBMUQyOTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2Vfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDREUyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdl
X2tpbmQuaCAqLzsgfTsKLQkJMEY5QTFEMkEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGOUExQ0RGMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9z
aXplX2NsYXNzLmMgKi87IH07CiAJCTBGOUExRDJCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOUExQ0UwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3Mu
YyAqLzsgfTsKIAkJMEY5QTFEMkMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNF
MTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuaCAqLzsgfTsKIAkJMEY5QTFE
MkQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRTIyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5oICovOyB9OwpAQCAtNDAwLDYgKzM3OSw3IEBA
CiAJCTBGQzY4MjMxMjEyOUNCNDYwMDNDNkExMyAvKiBFeHRlbmRlZEdDRFRlc3RzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzY4MjJGMjEyOUNC
NDMwMDNDNkExMyAvKiBFeHRlbmRlZEdDRFRlc3RzLmNwcCAqLzsgfTsKIAkJMEZDNjgyMzgyMTI5
RDRFRTAwM0M2QTEzIC8qIENvYWxpZ25UZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2ODIzNjIxMjlENEVCMDAzQzZBMTMgLyogQ29hbGln
blRlc3RzLmNwcCAqLzsgfTsKIAkJMEZDODQ3OTUyMzJENjk0OTAwQjM4NkI2IC8qIHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzg0Nzk0MjMyRDY5NDkwMEIzODZCNiAvKiBwYXNf
bGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmggKi87IH07CisJCTBGQ0JEMDM0
MjZBREY5MjUwMEQyNkQ2OCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNCRDAz
MzI2QURGOTI1MDBEMjZENjggLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3Vs
dC5oICovOyB9OwogCQkwRkNDRDE0MTI2NTVFNkU3MDAxNzFBMUYgLyogcGFzX2NvbXBhY3RfYXRv
bWljX2VudW1lcmFibGVfcmFuZ2VfbGlzdF9jaHVua19wdHIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0NEMTQwMjY1NUU2RTcwMDE3MUExRiAvKiBw
YXNfY29tcGFjdF9hdG9taWNfZW51bWVyYWJsZV9yYW5nZV9saXN0X2NodW5rX3B0ci5oICovOyB9
OwogCQkwRkNGQTQ5QTIzODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRkE0OTgy
MzgzNTJFQjAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCAqLzsgfTsKIAkJMEZD
RkE0OUIyMzgzNTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0ZBNDk5MjM4MzUyRUMw
MENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmMgKi87IH07CkBAIC01MTMsNyArNDkz
LDYgQEAKIAkJMEZFN0VFMTQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZl9wcmVmaXgu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDdENDBB
MjE0MERCMDUwMDhDNDFGMCAvKiBwYXNfaGVhcF9yZWZfcHJlZml4LmggKi87IH07CiAJCTBGRTdF
RTE1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzY4MUM3MjEwRjdDOUYwMDNDNkExMyAvKiBw
YXNfaGVhcF9yZWYuaCAqLzsgfTsKIAkJMEZFN0VFMTYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19o
ZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2
ODFDMDIxMEY3QzlFMDAzQzZBMTMgLyogcGFzX2hlYXAuaCAqLzsgfTsKLQkJMEZFN0VFMUEyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGREVBNDI3MjI4QjY0MzMw
MDg1RTM0MCAvKiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggKi87IH07CiAJCTBG
RTdFRTFDMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNjgyNDYyMTJB
MEYxRjAwM0M2QTEzIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmggKi87IH07CiAJCTBG
RTdFRTFFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJlZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNjgxQTgyMTAzQ0FDOTAwM0M2QTEz
IC8qIHBhc19sYXJnZV9mcmVlLmggKi87IH07CiAJCTBGRTdFRTFGMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfbGFyZ2VfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZDNjgxQTcyMTAzQjBFNjAwM0M2QTEzIC8qIHBhc19sYXJnZV9oZWFwLmggKi87
IH07CkBAIC03MjksMjcgKzcwOCwyNSBAQAogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0
aW9uICovCiAJCTBGMDM3QUYxMjVBRUE5MTkwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdl
X2NhY2hlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19tZWRpdW1fbWVn
YXBhZ2VfY2FjaGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwMzdBRjIyNUFF
QTkxQTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIwMjI0NjBEQjZEMDAxRDMxRjAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMDMyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGgg
PSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMDQyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMDcyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjA4MjQ2MERCNkUwMDFEMzFGMCAv
KiBwYXNfbWFnYXppbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX21h
Z2F6aW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjBBMjQ2MERCNkUw
MDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDRDMjBCMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfaGVh
cF9jb25maWdfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
aGVhcF9jb25maWdfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0
QzIwQzI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA0QzIwRDI0NjBEQjZFMDAxRDMx
RjAgLyogcGFzX2xvY2suYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2xv
Y2suYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMEUyNDYwREI2RTAwMUQz
MUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjBGMjQ2MERCNkUwMDFEMzFGMCAvKiBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIxMDI0NjBE
QjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIxMjI0NjBEQjZGMDAxRDMxRjAgLyogcGFz
X21hZ2F6aW5lLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19tYWdhemlu
ZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA0QzIxMzI0NjBEQjZGMDAxRDMx
RjAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5n
X3Bvb2xfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjI2MjQ2MTFD
RkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGMDRDMjI3MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwODNGNTgy
MkMyOTc5QjAwRjNDREIzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGlu
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfdXRpbHNfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjA4M0Y1OTIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2hlYXBfY29uZmlnX3V0aWxz
X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTIyNjkyMkIwN0My
MTAwN0Q1RDNBIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfbXV0YXRpb25fY291bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEYwOTIyNkIyMkIyRDg4RTAwN0Q1RDNBIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX3V0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX3V0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MDkyMjZEMjJCMkQ5MDkwMDdENUQzQSAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2hlYXBfY29uZmlnX3V0aWxzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTQ4NzBBMjY5Qjc1MTcwMDY4ODdBOSAvKiBwYXNf
c2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkwRjE0ODcwQjI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcwQzI2OUI3NTE4
MDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEYxNDg3MEQyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGMTQ4NzBFMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfaGVhcF9y
dW50aW1lX2NvbmZpZy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfaGVh
cF9ydW50aW1lX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcw
RjI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEYxNDg3MUEyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcxQjI2OUY1RkNBMDA2
ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBwYXRoID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEYxNDg3MUMyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2NyZWF0aW9uX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcxRDI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfbm9kZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNf
bG9jYWxfdmlld19jYWNoZV9ub2RlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBG
MTQ4NzFFMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGMTUxOEZDMjM0NDFFMzIwMDgzMkI1QyAvKiBwYXNfaGFzX29iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfaGFzX29iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjE4RTYzQzI2MjhCRkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeV9ieV9zaXplLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjE4RTYzRDI2MjhCRkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9ieV9zaXplLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19z
aGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNzY1LDggKzc0Miw2IEBACiAJCTBGMTkzMjY3MjJGM0IzRjMwMEZCQTcxMyAvKiBwYXNf
bGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2Nh
Y2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTkzMjZBMjJGNzNFODQwMEZC
QTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19zY2F2ZW5nZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOTMyNkIy
MkY3M0U4NDAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBwYXRoID0gcGFzX3NjYXZlbmdlci5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwRjFBRUNFNjI2NTgxOTYwMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2FsbF9tYWdhemluZXMuYzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYxQUVDRTcyNjU4MTk2MTAwMEM1MjE4IC8qIHBhc19hbGxf
bWFnYXppbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19hbGxfbWFn
YXppbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMUJGRDQzMjY2NDU3RjEw
MENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBw
YXRoID0gcGFzX2hlYXBfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MjE1MEVBMjQ4NEJCMkEwMDBENjM0QiAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19hbGxvY2F0b3JfaW5kZXguaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyMTUwRUMyNDg0QkI4NjAwMEQ2MzRCIC8qIHBhc19jb21w
YWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03OTUsNiArNzcwLDkgQEAKIAkJMEY0NDNCM0EyMzQx
NkE3QzAwQkU1MEQxIC8qIGxpYnBhc192ZXJpZmllci5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGlu
Y2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYnBhc192ZXJpZmllci5keWxpYjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMEY0NDNCM0YyMzQxNkI2MzAwQkU1MEQxIC8q
IFZlcmlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZlcmlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNDQzQjRFMjM0MTc2MTUwMEJFNTBEMSAvKiBsaWJtYm1hbGxvY19pc29f
Y29tbW9uX3ByaW1pdGl2ZV92ZXJpZmllZC5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IGxpYm1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlX3Zlcmlm
aWVkLmR5bGliOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkwRjQ1RDVB
NjI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ1RDVBNzI2QUI3MzE0MDBDMzVEOTMgLyogcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IHBhdGggPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNDVENUE4MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9j
YWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY0N0MzMTgyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0
aW9uX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2FsbG9jYXRp
b25fa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ3QzMxOTIzMzk2RDFG
MDAyQTFDRjcgLyogcGFzX2hlYXBfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfaGVhcF9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDdD
MzFDMjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MzQsNyArODEyLDYgQEAKIAkJMEY0RjYxQzgy
NUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9w
YWdlX2xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0RjYxQzkyNUE0Q0Qz
QjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xp
c3QuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1MDhENTIyNThFQ0ZEMzAwMTUx
RUQ4IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9m
aXJzdF9lbGlnaWJsZV9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNTA4
RDVCMjU4RURDQTcwMDE1MUVEOCAvKiBJc29IZWFwVGFibGluZ1Rlc3RzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElzb0hlYXBUYWJsaW5nVGVzdHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjUxNkVFMjI0NTYwRkY1MDA0RTJCOEQgLyogcGFz
X2ludGVybmFsX2NvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
aW50ZXJuYWxfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTE2RUU2
MjQ1NjFBNjAwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IGlzb19oZWFwX2lubmFyZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY1MTkzRTYyNjZBRTVENDAwNDgzQTJDIC8qIEpJVEhlYXBUZXN0cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKSVRIZWFwVGVzdHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTYyLDM0ICs5MzksMjUgQEAKIAkJMEY5N0U2MkQy
MkE5QTg1RjAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOTdFNjJGMjJBOUFBQzEwMEMzNTVGOCAvKiBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBh
dGggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjk5Rjk4QjI1Q0IyQ0U4MDBFRUU0NDkgLyogcGFzX3NpemVfdGh1bmsuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NpemVfdGh1bmsuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDOTcyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zdWJw
YWdlX21hcF9lbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc3Vi
cGFnZV9tYXBfZW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDOTgy
NTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDOTkyNTU5OTYxMTAwQzhEMTFCIC8q
IHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2luZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDOUEyNTU5OTYxMTAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjlBMUM5QjI1NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9tYXhf
ZnJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X21heF9m
cmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQzlDMjU1OTk2MTEwMEM4
RDExQiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBwYXRoID0gcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGOUExQzlEMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9w
YWdlX2JvdW5kYXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaGFy
ZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5QTFDOUYyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X3ZhcmlhbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjlBMUNBMDI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuYyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuYzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTEyNTU5OTYxMjAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfdmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
Yml0Zml0X3ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTIyNTU5
OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IHBhdGggPSBwYXNfYml0Zml0X3ZpZXcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMEY5QTFDQTMyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTQyNTU5OTYxMjAwQzhEMTFCIC8q
IHBhc19jb21taXRfc3Bhbi5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNf
Y29tbWl0X3NwYW4uYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTUyNTU5
OTYxMjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTYyNTU5OTYxMjAw
QzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IHBhdGggPSBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEY5QTFDQTcyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2luZ19k
aXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9i
aWFzaW5nX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNB
ODI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc19jb21taXRfc3Bhbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjlBMUNBOTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpYXNpbmdfZGly
ZWN0b3J5X2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQUEyNTU5
OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXgu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQUIyNTU5OTYxMjAwQzhEMTFC
IC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5lcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNBQzI1NTk5NjEyMDBDOEQxMUIgLyog
cGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19wYWdlX2Jhc2VfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjlBMUNBRDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX3Byb21vdGVfaW50cmluc2ljX2hlYXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3Byb21vdGVfaW50cmluc2ljX2hl
YXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQUUyNTU5OTYxMzAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQUYyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwRjlBMUNCMDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0IxMjU1OTk2
MTMwMEM4RDExQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgcGF0aCA9IHBhc192ZXJzaW9uZWRfZmllbGQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY5QTFDQjIyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2Nh
dGlvbl9yZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Zhc3Rf
cGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
RjlBMUNCMzI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0I0MjU1OTk2MTMwMEM4RDEx
QiAvKiBwYXNfZnJlZV9ncmFudWxlcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGgg
PSBwYXNfZnJlZV9ncmFudWxlcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlB
MUNCNTI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQjYyNTU5OTYxMzAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19iaXRmaXRfZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05OTks
MTcgKzk2NywxMSBAQAogCQkwRjlBMUNCQTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFz
ZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfcGFnZV9iYXNlLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0JCMjU1OTk2MTQwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY5QTFDQkMyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2Nh
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfYWxsb2Nh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0JEMjU1OTk2MTQwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBwYXRoID0gcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0JFMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFz
X2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGOUExQ0JGMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5l
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYmlhc2luZ19kaXJlY3Rv
cnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDMDI1NTk5
NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2VfYmFzZV9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY5QTFDQzEyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0
b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfZGlyZWN0
b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0MyMjU1OTk2MTQwMEM4
RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX3N1YnBhZ2VfbWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUEx
Q0MzMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3Rfc3VicGFnZV9t
YXBfZW50cnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0M0MjU1
OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X2FsbG9jYXRvci5jOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjlBMUNDNTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdl
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZS5jOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDNjI1NTk5NjE0MDBDOEQxMUIgLyog
cGFzX3BhZ2VfY29uZmlnX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX3BhZ2VfY29uZmlnX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5
QTFDQzcyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQzgyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjlBMUNDOTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z19raW5kLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfa2luZC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDQTI1
NTk5NjE1MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZmFzdF9tZWdhcGFnZV9raW5kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMDE3LDIyICs5NzksMTggQEAKIAkJMEY5QTFDQ0MyNTU5OTYx
NTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5kZWYgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmRlZjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQ0QyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
aGVhcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2hlYXAu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQ0UyNTU5OTYxNTAwQzhEMTFC
IC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGOUExQ0QwMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2FsbF9iaWFzaW5n
X2RpcmVjdG9yaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0QxMjU1
OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBwYXRoID0gcGFzX2JpdGZpdF9oZWFwLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGOUExQ0QyMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxp
bmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfYWxsb2Nh
dG9yX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDRDMyNTU5
OTYxNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50
X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF90YWdn
ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY5QTFDRDQyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0
aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2Jhc2VfY29u
ZmlnX3V0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0Q1MjU1OTk2
MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0Q2MjU1OTk2MTYwMEM4RDExQiAv
KiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX2JpdGZpdF9zaXplX2NsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGOUExQ0Q3MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3N1YnBhZ2VfbWFwLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGOUExQ0Q4MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19k
aXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0Q5MjU1OTk2
MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOUExQ0RBMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9ncmFudWxl
X3VzZV9jb3VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9n
cmFudWxlX3VzZV9jb3VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNE
QjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9p
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaGFyZWRfaGFu
ZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlBMUNEQzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxl
X3VzZV9jb3VudF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Nv
bXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY5QTFDREQyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25m
aWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNERTI1NTk5NjE2MDBD
OEQxMUIgLyogcGFzX3BhZ2Vfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfcGFnZV9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0RG
MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Mu
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDRTAyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBh
dGggPSBwYXNfYml0Zml0X3NpemVfY2xhc3MuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5QTFDRTEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19mcmVlX2dyYW51bGVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0UyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFn
ZV9oZWFkZXJfdGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3Bh
Z2VfaGVhZGVyX3RhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTQ4LDYg
KzExMDYsNyBAQAogCQkwRkM2ODI0QzIxMkE1QkZFMDAzQzZBMTMgLyogcGFzX2RlYWxsb2NhdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19kZWFsbG9jYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM2ODI1RDIxMkNBNzZEMDAzQzZBMTMgLyog
cGFzX2xvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xvY2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDODQ3OTQyMzJENjk0OTAwQjM4NkI2IC8q
IHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVf
bW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkNCRDAzMzI2QURGOTI1MDBE
MjZENjggLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2Vf
cmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0NEMTQwMjY1NUU2RTcw
MDE3MUExRiAvKiBwYXNfY29tcGFjdF9hdG9taWNfZW51bWVyYWJsZV9yYW5nZV9saXN0X2NodW5r
X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF9hdG9t
aWNfZW51bWVyYWJsZV9yYW5nZV9saXN0X2NodW5rX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkNGQTQ5ODIzODM1MkVCMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdf
cG9vbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0ZBNDk5MjM4MzUyRUMw
MENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgcGF0aCA9IHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEyMjAsNyArMTE3OSw2IEBACiAJCTBGREVBNDFBMjI4QjY0MzIwMDg1RTM0
MCAvKiBwYXNfY2FyZXNfYWJvdXRfc2l6ZV9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19jYXJlc19hYm91dF9zaXplX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZERUE0MUIyMjhCNjQzMjAwODVFMzQwIC8qIHBhc191dGlsaXR5X2hlYXBf
Y29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc191dGlsaXR5X2hl
YXBfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREVBNDIzMjI4QjY0
MzMwMDg1RTM0MCAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5jICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmM7IHBhdGggPSBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwRkRFQTQyNzIyOEI2NDMzMDA4NUUzNDAgLyogcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGREVBNDJCMjI4QjY0MzMwMDg1RTM0MCAvKiBwYXNfYWxpZ25tZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19hbGlnbm1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZERUE0NUQyMjhCNjUxQjAwODVFMzQwIC8qIEJpdGZpZWxkVmVj
dG9yVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQml0Zmll
bGRWZWN0b3JUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREVBNDZE
MjI4QjY1NDMwMDg1RTM0MCAvKiBwYXNfemVyb19tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc196ZXJvX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTEzNTIsOCArMTMxMCw4IEBACiAJCTBGNDQzQjM0MjM0MDUwRTUwMEJFNTBEMSAvKiB2ZXJp
ZmllciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMEY0
NDNCMzUyMzQxNkE0MDAwQkU1MEQxIC8qIFZlcmlmaWVyLmNwcCAqLywKIAkJCQkwRjQ0M0IzRjIz
NDE2QjYzMDBCRTUwRDEgLyogVmVyaWZpZXIuaCAqLywKKwkJCQkwRjQ0M0IzNTIzNDE2QTQwMDBC
RTUwRDEgLyogVmVyaWZpZXIuY3BwICovLAogCQkJKTsKIAkJCXBhdGggPSB2ZXJpZmllcjsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMzgxLDcgKzEzMzksNiBAQAogCQkJCTBGRjI0
OEZCMjMwQ0M0QzcwMDc3MjAyRSAvKiBJc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAgKi8sCiAJ
CQkJMEZENDhCNjYyM0I1ODk5MTAwMjZDNDZEIC8qIElzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVU
ZXN0cy5jcHAgKi8sCiAJCQkJMEY1QjYwOTMyMzVFOTE5OTAwQ0FFNjI5IC8qIElzb0hlYXBSZXNl
cnZlZE1lbW9yeVRlc3RzLmNwcCAqLywKLQkJCQkwRjUwOEQ1QjI1OEVEQ0E3MDAxNTFFRDggLyog
SXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAgKi8sCiAJCQkJMEY1MTkzRTYyNjZBRTVENDAwNDgzQTJD
IC8qIEpJVEhlYXBUZXN0cy5jcHAgKi8sCiAJCQkJMEZDNjQxOTAyMTM3NDVGQTAwNDBDRTVFIC8q
IExhcmdlRnJlZUhlYXBUZXN0cy5jcHAgKi8sCiAJCQkJMEZFQjY2NjYyMzFDODdCQzAwOUMwMDFC
IC8qIExhcmdlU2hhcmluZ1Bvb2xEdW1wLmNwcCAqLywKQEAgLTE0MDUsMTE2ICsxMzYyLDEwMCBA
QAogCQkwRkM2ODFFNzIxMEZFNzUxMDAzQzZBMTMgLyogbGlicGFzICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkwRjhBODA1RjI1RUVDQzFDMDA3OTBCNEEg
LyogYm1hbGxvY19oZWFwLmMgKi8sCi0JCQkJMEY4QTgwNjAyNUVFQ0MxQzAwNzkwQjRBIC8qIGJt
YWxsb2NfaGVhcC5oICovLAogCQkJCTBGOEE4MDYxMjVFRUNDMUMwMDc5MEI0QSAvKiBibWFsbG9j
X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY4QTgwNjIyNUVFQ0MxQzAwNzkwQjRBIC8qIGJtYWxs
b2NfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRjhBODA1RTI1RUVDQzFDMDA3OTBCNEEgLyogYm1h
bGxvY19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjhBODA2NDI1RUVDQzFEMDA3OTBCNEEgLyog
Ym1hbGxvY19oZWFwX2lubmFyZHMuaCAqLywKIAkJCQkwRjhBODA2MzI1RUVDQzFEMDA3OTBCNEEg
LyogYm1hbGxvY19oZWFwX3JlZi5oICovLAotCQkJCTBGOEE4MEZFMjVGNkE3OTUwMDc5MEI0QSAv
KiBob3RiaXRfaGVhcC5jICovLAotCQkJCTBGOEE4MEZGMjVGNkE3OTUwMDc5MEI0QSAvKiBob3Ri
aXRfaGVhcC5oICovLAorCQkJCTBGOEE4MDVGMjVFRUNDMUMwMDc5MEI0QSAvKiBibWFsbG9jX2hl
YXAuYyAqLywKKwkJCQkwRjhBODA2MDI1RUVDQzFDMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmgg
Ki8sCiAJCQkJMEY4QTgwRkIyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5j
ICovLAogCQkJCTBGOEE4MEZEMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcu
aCAqLywKIAkJCQkwRjhBODEwMDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5saW5l
cy5oICovLAogCQkJCTBGOEE4MEZDMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9pbm5h
cmRzLmggKi8sCi0JCQkJMEZFN0VFNzQyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmMgKi8s
Ci0JCQkJMEZFN0VFNzUyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmggKi8sCisJCQkJMEY4
QTgwRkUyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmMgKi8sCisJCQkJMEY4QTgwRkYy
NUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmggKi8sCiAJCQkJMEZFN0VFNTUyMjk3NDMz
NTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGRTdFRTU0MjI5NzQzMzUw
MDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuaCAqLywKIAkJCQkwRjVGRTdBMzI1QjYxNEYyMDAx
ODU5RkMgLyogaXNvX2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBGNTE2RUU2MjQ1NjFBNjAwMDRF
MkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggKi8sCiAJCQkJMEY1MjlEREUyNDU1NDYwQzAwMzg1
QThDIC8qIGlzb19oZWFwX3JlZi5oICovLAotCQkJCTBGNUU1Q0U5MjNCRUYzNUYwMEFBMEI2RiAv
KiBpc29fdGVzdF9oZWFwLmMgKi8sCi0JCQkJMEY1RTVDRUEyM0JFRjM2MDAwQUEwQjZGIC8qIGlz
b190ZXN0X2hlYXAuaCAqLywKKwkJCQkwRkU3RUU3NDIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hl
YXAuYyAqLywKKwkJCQkwRkU3RUU3NTIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuaCAqLywK
IAkJCQkwRjVFNUNFODIzQkVGMzVGMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuYyAq
LywKIAkJCQkwRjVFNUNFQjIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcu
aCAqLywKLQkJCQkwRjU5QTM5RDI2Njg0NzBFMDBBMzg2NTcgLyogaml0X2hlYXAuYyAqLywKLQkJ
CQkwRjU5QTM4RjI2NjdGMDBFMDBBMzg2NTcgLyogaml0X2hlYXAuaCAqLywKKwkJCQkwRjVFNUNF
OTIzQkVGMzVGMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcC5jICovLAorCQkJCTBGNUU1Q0VBMjNC
RUYzNjAwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmggKi8sCisJCQkJMEY1OUEzOTcyNjY4MzE3
NDAwQTM4NjU3IC8qIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEuaCAqLywKIAkJCQkwRjU5QTM5
OTI2Njg0NEEzMDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY1OUEzOTAy
NjY3RjAwRTAwQTM4NjU3IC8qIGppdF9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBGNTlBMzk3MjY2
ODMxNzQwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8sCi0JCQkJMEZC
RDY3RDYyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcC5jICovLAotCQkJCTBGQkQ2
N0Q4MjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXAuaCAqLywKKwkJCQkwRjU5QTM5
RDI2Njg0NzBFMDBBMzg2NTcgLyogaml0X2hlYXAuYyAqLywKKwkJCQkwRjU5QTM4RjI2NjdGMDBF
MDBBMzg2NTcgLyogaml0X2hlYXAuaCAqLywKIAkJCQkwRkJENjdENzI1QkQzNjNBMDBBNDkwRDIg
LyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGQkQ2N0Q5MjVCRDM2M0EwMEE0
OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmggKi8sCi0JCQkJMEZCRDY3RUYyNUJFMDc4
NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXAuYyAqLywKLQkJCQkwRkJENjdFRDI1QkUwNzg3
MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcC5oICovLAorCQkJCTBGQkQ2N0Q2MjVCRDM2M0Ew
MEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXAuYyAqLywKKwkJCQkwRkJENjdEODI1QkQzNjNBMDBB
NDkwRDIgLyogbWluYWxpZ24zMl9oZWFwLmggKi8sCiAJCQkJMEZCRDY3RUMyNUJFMDc4NzAwQTQ5
MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEZCRDY3RUUyNUJFMDc4
NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmggKi8sCisJCQkJMEZCRDY3RUYy
NUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXAuYyAqLywKKwkJCQkwRkJENjdFRDI1
QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcC5oICovLAogCQkJCTBGQzY4MUY2MjEx
Q0Q1REYwMDNDNkExMyAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJ
CTBGQzY4MUYzMjExQ0Q1REYwMDNDNkExMyAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0b3IuaCAqLywK
IAkJCQkwRkRFQTQxNjIyOEI2NDMyMDA4NUUzNDAgLyogcGFzX2FsaWdubWVudC5jICovLAogCQkJ
CTBGREVBNDJCMjI4QjY0MzMwMDg1RTM0MCAvKiBwYXNfYWxpZ25tZW50LmggKi8sCi0JCQkJMEY5
QTFDQkUyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jICov
LAotCQkJCTBGOUExQ0QwMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXMuaCAqLywKIAkJCQkwRjU5QTM5MTI2NjdGMDBFMDBBMzg2NTcgLyogcGFzX2FsbF9oZWFw
X2NvbmZpZ3MuaCAqLywKIAkJCQkwRkM2ODFFRTIxMTREOTgzMDAzQzZBMTMgLyogcGFzX2FsbF9o
ZWFwcy5jICovLAogCQkJCTBGQzY4MUVGMjExNEQ5ODQwMDNDNkExMyAvKiBwYXNfYWxsX2hlYXBz
LmggKi8sCi0JCQkJMEYxQUVDRTYyNjU4MTk2MDAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVz
LmMgKi8sCi0JCQkJMEYxQUVDRTcyNjU4MTk2MTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVz
LmggKi8sCiAJCQkJMEZENDhCMEIyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19hbGxfc2hhcmVkX3Bh
Z2VfZGlyZWN0b3JpZXMuYyAqLywKIAkJCQkwRkQ0OEIyNzIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5oICovLAogCQkJCTBGNDdDMzFDMjMzOTZFMEIw
MDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyAqLywKIAkJCQkwRjQ3QzMxRDIz
Mzk2RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmggKi8sCiAJCQkJMEY3
ODA4OEMyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19hbGxvY2F0aW9uX2NvbmZpZy5oICovLAogCQkJ
CTBGNDdDMzE4MjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9raW5kLmggKi8sCi0J
CQkJMEY5QTFDQTMyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5jICov
LAogCQkJCTBGQzY4MUIyMjEwNjVBMDAwMDNDNkExMyAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQu
aCAqLywKIAkJCQkwRkRCQjA3QTIyQkJGRjgzMDA2QkE1RkMgLyogcGFzX2FsbG9jYXRvcl9jb3Vu
dHMuaCAqLywKIAkJCQkwRjIxNTBFQTI0ODRCQjJBMDAwRDYzNEIgLyogcGFzX2FsbG9jYXRvcl9p
bmRleC5oICovLAogCQkJCTBGNkI0N0ZDMjMzMTVBRTQwMDJBNUUwQyAvKiBwYXNfYWxsb2NhdG9y
X3NjYXZlbmdlX2FjdGlvbi5oICovLAotCQkJCTBGRDQ4QjI4MjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfYmFzZWxpbmVfYWxsb2NhdG9yLmMgKi8sCi0JCQkJMEZENDhCMDAyM0E5QUJCMDAwMjZDNDZE
IC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3IuaCAqLywKIAkJCQkwRkQ0OEIwNTIzQTlBQkIwMDAy
NkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQuaCAqLywKIAkJCQkwRkQ0OEIw
NDIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5jICovLAog
CQkJCTBGRDQ4QjFGMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Rh
YmxlLmggKi8sCisJCQkJMEZENDhCMjgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9h
bGxvY2F0b3IuYyAqLywKKwkJCQkwRkQ0OEIwMDIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvci5oICovLAogCQkJCTBGNTlBMzlBMjY2ODQ0QTMwMEEzODY1NyAvKiBwYXNf
YmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmMgKi8sCiAJCQkJMEY0RjYxNjMyNTlC
RkI4NTAwOEI0QTgyIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaCAq
LywKIAkJCQkwRjRGNjE2QzI1OUJGRjkxMDA4QjRBODIgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmln
X3Jvb3RfZGF0YS5oICovLAogCQkJCTBGMzI5QTFFMjNGMTEzMkEwMEExMzNDNCAvKiBwYXNfYmFz
aWNfaGVhcF9wYWdlX2NhY2hlcy5oICovLAogCQkJCTBGMzI5QTFEMjNGMTEzMkEwMEExMzNDNCAv
KiBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZy5oICovLAogCQkJCTBGMzI5QTIwMjNGMTEz
MkEwMEExMzNDNCAvKiBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oICovLAotCQkJ
CTBGOUExQ0M3MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyAqLywK
LQkJCQkwRjlBMUNEODI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5Lmgg
Ki8sCi0JCQkJMEY5QTFDQkYyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9y
eV9pbmxpbmVzLmggKi8sCiAJCQkJMEY5QTFDQTkyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaWFz
aW5nX2RpcmVjdG9yeV9raW5kLmggKi8sCiAJCQkJMEZERUE0MTkyMjhCNjQzMjAwODVFMzQwIC8q
IHBhc19iaXRmaWVsZF92ZWN0b3IuaCAqLywKIAkJCQkwRjlBMUNCQjI1NTk5NjE0MDBDOEQxMUIg
LyogcGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAorCQkJCTBGOUExQ0QyMjU1OTk2
MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCiAJCQkJMEY5
QTFDQzQyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgKi8sCiAJCQkJ
MEY5QTFDQkMyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggKi8sCi0J
CQkJMEY5QTFDRDIyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGlu
ZXMuaCAqLywKLQkJCQkwRjlBMUNCMDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeS5jICovLAotCQkJCTBGOUExQ0E3MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggKi8sCisJCQkJMEY5QTFDQzgyNTU5OTYxNTAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKIAkJCQkwRjlBMUNDMTI1
NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuYyAqLywKIAkJCQkwRjlBMUNC
NjI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjlB
MUNBQTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4Lmgg
Ki8sCi0JCQkJMEY5QTFDQzgyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5
X2lubGluZXMuaCAqLywKLQkJCQkwRjlBMUNCMzI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9kaXJlY3Rvcnlfa2luZC5oICovLAotCQkJCTBGOUExQ0JEMjU1OTk2MTQwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyAqLywKLQkJCQkwRjlBMUM5ODI1NTk5NjExMDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEY5QTFDREYy
NTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYyAqLywKLQkJ
CQkwRjlBMUNBRjI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
cy5oICovLAogCQkJCTBGOUExQ0QxMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAu
YyAqLywKIAkJCQkwRjlBMUNDRDI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmgg
Ki8sCiAJCQkJMEY5QTFDOUIyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUu
aCAqLywKLQkJCQkwRjlBMUNDNTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmMg
Ki8sCi0JCQkJMEY5QTFDQjcyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5oICov
LAotCQkJCTBGOUExQ0REMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmln
LmggKi8sCiAJCQkJMEY1NzA5MTcyNTZBQjIxMTAwMDM3QkIzIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWdfaW5saW5lcy5oICovLAogCQkJCTBGOUExQ0M5MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyAqLywKIAkJCQkwRjlBMUNDQzI1NTk5NjE1MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmRlZiAqLywKIAkJCQkwRjlBMUNBRTI1
NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmggKi8sCi0JCQkJ
MEY5QTFDOUEyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMu
aCAqLywKIAkJCQkwRjU3MDkxOTI1NkFCNDE3MDAwMzdCQjMgLyogcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZ191dGlsc19pbmxpbmVzLmggKi8sCisJCQkJMEY5QTFDOUEyNTU5OTYxMTAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCAqLywKIAkJCQkwRjlBMUNDQjI1NTk5NjE1
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmggKi8sCisJCQkJMEY5
QTFDREQyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCAqLywKIAkJ
CQkwRjlBMUNCNTI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCAq
LywKKwkJCQkwRjlBMUNDNTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmMgKi8s
CisJCQkJMEY5QTFDQjcyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5oICovLAog
CQkJCTBGOUExQ0UwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyAq
LywKIAkJCQkwRjlBMUNENjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNz
LmggKi8sCi0JCQkJMEY5QTFDQTIyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5j
ICovLAotCQkJCTBGOUExQ0ExMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAq
LywKIAkJCQkwRjlBMUQ0NDI1NURCRTYxMDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3X2FuZF9p
bmRleC5oICovLAogCQkJCTBGOUExRDQwMjU1QUYyNzkwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Zp
ZXdfaW5saW5lcy5oICovLAorCQkJCTBGOUExQ0EyMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0
Zml0X3ZpZXcuYyAqLywKKwkJCQkwRjlBMUNBMTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZp
dF92aWV3LmggKi8sCiAJCQkJMEZDNjgxQjMyMTA2Q0Q3OTAwM0M2QTEzIC8qIHBhc19iaXR2ZWN0
b3IuaCAqLywKIAkJCQkwRkM2ODIzRDIxMjlFRDUwMDAzQzZBMTMgLyogcGFzX2Jvb3RzdHJhcF9m
cmVlX2hlYXAuYyAqLywKIAkJCQkwRkM2ODIzRjIxMjlFRDUxMDAzQzZBMTMgLyogcGFzX2Jvb3Rz
dHJhcF9mcmVlX2hlYXAuaCAqLywKQEAgLTE1MzgsOSArMTQ3OSw5IEBACiAJCQkJMEYwNEMyMTMy
NDYwREI2RjAwMUQzMUYwIC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9w
dHIuaCAqLywKIAkJCQkwRjZENTY0MTIzQ0FBMUI5MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRv
bWljX3B0ci5oICovLAogCQkJCTBGNjZENTQyMjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLywKLQkJCQkwRjA0QzIy
NzI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0ci5oICovLAogCQkJCTBGNkQ1NjVGMjNDQkQxOUQwMEY0MERCQiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19wb29sc19w
dHIuaCAqLywKIAkJCQkwRjZENTY1OTIzQ0JEMTlDMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0ci5oICovLAorCQkJCTBGMTQ4NzBCMjY5Qjc1
MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHIuaCAqLywKIAkJCQkwRjZENTY2MDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfdmlldy5oICovLAogCQkJCTBGQTVFNDU1MjQ5MkQ1QjkwMENFOTYy
QSAvKiBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgg
Ki8sCiAJCQkJMEY2RDU2NTEyM0NCRDE5QzAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY191
bnNpZ25lZF9wdHIuaCAqLywKQEAgLTE1NTksMTQgKzE1MDAsMTQgQEAKIAkJCQkwRjlBMUNEQzI1
NTk5NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIu
aCAqLywKIAkJCQkwRjZENTYzRjIzQ0FBMUI5MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfcHRyLmgg
Ki8sCiAJCQkJMEY2NkQ1NDEyNDg3NjBBODAwRkM3MzQ3IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggKi8sCi0JCQkJMEYwNEMyMjYyNDYxMUNGRDAwMUQz
MUYwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5o
ICovLAorCQkJCTBGMTQ4NzBEMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oICovLAogCQkJCTBGNkQ1Njc1MjNDQzE0MUUwMEY0MERC
QiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2hlYXBfcHRyLmggKi8sCiAJCQkJMEY2RDU2NTUy
M0NCRDE5QzAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5X3B0ci5oICovLAogCQkJCTBGNkQ1NjVCMjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5oICovLAorCQkJCTBGMTQ4NzBGMjY5Qjc1
MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5o
ICovLAogCQkJCTBGNkQ1NjUzMjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX3ZpZXcuaCAqLywKLQkJCQkwRjMxQTYzRjIzRENGODQ4MDAyQzBDQTMgLyogcGFzX2NvbXBh
Y3Rfc2tpcF9saXN0X25vZGVfcHRyLmggKi8sCiAJCQkJMEYzMUE2NDUyM0U0QzQ0MTAwMkMwQ0Ez
IC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaCAqLywKLQkJCQkwRjlBMUND
MzI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmgg
Ki8sCisJCQkJMEYzMUE2M0YyM0RDRjg0ODAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlz
dF9ub2RlX3B0ci5oICovLAogCQkJCTBGNkQ1NjREMjNDQUJBNjUwMEY0MERCQiAvKiBwYXNfY29t
cGFjdF90YWdnZWRfYXRvbWljX3B0ci5oICovLAogCQkJCTBGOUExQ0QzMjU1OTk2MTYwMEM4RDEx
QiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCAqLywK
IAkJCQkwRjZENTY0NDIzQ0FBMUI5MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5o
ICovLApAQCAtMTU3NCwyNCArMTUxNSwyNCBAQAogCQkJCTBGNkQ1NjRGMjNDQkQxOUIwMEY0MERC
QiAvKiBwYXNfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLywKIAkJCQkwRkM0RUMzNTIzNEE5MUUz
MDBCNzEwQTMgLyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmMgKi8sCiAJ
CQkJMEZDNEVDMzAyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0
X2NhbGxiYWNrcy5oICovLAotCQkJCTBGQzY4MUEyMjEwMzkxN0IwMDNDNkExMyAvKiBwYXNfY29u
ZmlnLmggKi8sCiAJCQkJMEY4NUVGRDUyMkUyQkVDNzAwM0EzNjJCIC8qIHBhc19jb25maWdfcHJl
Zml4LmggKi8sCisJCQkJMEZDNjgxQTIyMTAzOTE3QjAwM0M2QTEzIC8qIHBhc19jb25maWcuaCAq
LywKIAkJCQkwRkQ0OEIwQTIzQTlBQkIxMDAyNkM0NkQgLyogcGFzX2NvdW50X2xvb2t1cF9tb2Rl
LmggKi8sCiAJCQkJMEYzMjlBMjYyM0YxRDYzNTAwQTEzM0M0IC8qIHBhc19jcmVhdGVfYmFzaWNf
aGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5jICovLAogCQkJCTBGMzI5QTI1
MjNGMUQ2MzUwMEExMzNDNCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0
aF9yZXNlcnZlZF9tZW1vcnkuaCAqLywKIAkJCQkwRkU3RUU1RjIyOUUxNEZBMDA0RjQxNjYgLyog
cGFzX2RlYWxsb2NhdGUuYyAqLywKIAkJCQkwRkU3RUU1RTIyOUUxNEZBMDA0RjQxNjYgLyogcGFz
X2RlYWxsb2NhdGUuaCAqLywKIAkJCQkwRkZGRDUxNDI1NkIwRkJDMDAxRUI5NEMgLyogcGFzX2Rl
YWxsb2NhdGlvbl9tb2RlLmggKi8sCi0JCQkJMEZDNjgyNEMyMTJBNUJGRTAwM0M2QTEzIC8qIHBh
c19kZWFsbG9jYXRvci5oICovLAogCQkJCTBGNkI0N0ZCMjMzMTVBRTQwMDJBNUUwQyAvKiBwYXNf
ZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmggKi8sCisJCQkJMEZDNjgyNEMyMTJBNUJGRTAw
M0M2QTEzIC8qIHBhc19kZWFsbG9jYXRvci5oICovLAogCQkJCTBGMzczRTUxMjY1OUVBNUUwMDM0
QkE5NiAvKiBwYXNfZGVidWdfaGVhcC5oICovLAogCQkJCTBGQkM2MkMwMjY1RjEyQTMwMDVBNTcy
MCAvKiBwYXNfZGVidWdfc3BlY3RydW0uYyAqLywKIAkJCQkwRkJDNjJDMTI2NUYxMkEzMDA1QTU3
MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmggKi8sCiAJCQkJMEY3ODA4OTgyMkZBNkYwODAwRjM3
NDUxIC8qIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuYyAqLywKIAkJCQkwRjc4MDg5OTIyRkE2
RjA4MDBGMzc0NTEgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oICovLAorCQkJCTBGNUI4
M0JFMjQ5MTg5OUUwMEY0MTA1MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxp
bmVzLmggKi8sCiAJCQkJMEY1QjgzQkIyNDkxODg4QTAwRjQxMDUyIC8qIHBhc19kZXNpZ25hdGVk
X2ludHJpbnNpY19oZWFwLmMgKi8sCiAJCQkJMEY1QjgzQkEyNDkxODg4OTAwRjQxMDUyIC8qIHBh
c19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmggKi8sCi0JCQkJMEY1QjgzQkUyNDkxODk5RTAw
RjQxMDUyIC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCAqLywKIAkJ
CQkwRjlFOTQ2NDIzNDY2MEQzMDA5RkFGREQgLyogcGFzX2R5bGRfc3RhdGUuYyAqLywKIAkJCQkw
RjlFOTQ2NTIzNDY2MEQzMDA5RkFGREQgLyogcGFzX2R5bGRfc3RhdGUuaCAqLywKIAkJCQkwRkVB
NDVDMTIzNkNFODlEMDBCNUEzNzUgLyogcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmMg
Ki8sCkBAIC0xNjE0LDExICsxNTU1LDExIEBACiAJCQkJMEY0RjYxMkIyNTk5MDg3NzAwOEI0QTgy
IC8qIHBhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5oICovLAogCQkJCTBGNEY2MUE1MjVB
M0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEu
YyAqLywKIAkJCQkwRjRGNjFBOTI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV91bmFj
Y291bnRlZF9wYWdlc19hc19tZXRhLmggKi8sCi0JCQkJMEY0RjYxMDQyNTk3QUY4NzAwOEI0QTgy
IC8qIHBhc19lbnVtZXJhdG9yLmMgKi8sCi0JCQkJMEY0RjYxMDMyNTk3QUY4NzAwOEI0QTgyIC8q
IHBhc19lbnVtZXJhdG9yLmggKi8sCiAJCQkJMEY0RjYxODAyNTlFNzM0RjAwOEI0QTgyIC8qIHBh
c19lbnVtZXJhdG9yX2ludGVybmFsLmggKi8sCiAJCQkJMEY0RjYxMTkyNTk4MzhCMTAwOEI0QTgy
IC8qIHBhc19lbnVtZXJhdG9yX3JlZ2lvbi5jICovLAogCQkJCTBGNEY2MTFBMjU5ODM4QjEwMDhC
NEE4MiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24uaCAqLywKKwkJCQkwRjRGNjEwNDI1OTdBRjg3
MDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3IuYyAqLywKKwkJCQkwRjRGNjEwMzI1OTdBRjg3MDA4
QjRBODIgLyogcGFzX2VudW1lcmF0b3IuaCAqLywKIAkJCQkwRjE5MzI0RjIyRUQwNEE2MDBGQkE3
MTMgLyogcGFzX2Vwb2NoLmMgKi8sCiAJCQkJMEYxOTMyNEQyMkVEMDRBNTAwRkJBNzEzIC8qIHBh
c19lcG9jaC5oICovLAogCQkJCTBGRDQ4QUY5MjNBOUFCQUYwMDI2QzQ2RCAvKiBwYXNfZXhjbHVz
aXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5jICovLApAQCAtMTYzMiw4ICsxNTczLDggQEAK
IAkJCQkwRjlBMUNDQTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5o
ICovLAogCQkJCTBGOUExRDQ3MjU1RTI4NDIwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90
YWJsZS5jICovLAogCQkJCTBGOUExQ0NFMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdh
cGFnZV90YWJsZS5oICovLAotCQkJCTBGOUExQ0IyMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfZmFz
dF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCiAJCQkJMEY5QTFDOTkyNTU5OTYxMTAwQzhE
MTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2luZC5oICovLAorCQkJCTBG
OUExQ0IyMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0
LmggKi8sCiAJCQkJMEZCNTcwNkEyNjdEMDNDRDAwODBGQThCIC8qIHBhc19mYXN0X3Rscy5oICov
LAogCQkJCTBGQzRFQzJGMjM0QTkxRTIwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFtLmMgKi8sCiAJ
CQkJMEZDNEVDMzYyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19mZF9zdHJlYW0uaCAqLywKQEAgLTE2
NDQsOCArMTU4NSw4IEBACiAJCQkJMEY5QTFDRTEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVl
X2dyYW51bGVzLmggKi8sCiAJCQkJMEYxOTMyNTEyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19mcmVl
X21vZGUuaCAqLywKIAkJCQkwRkQ0OEIxMzIzQTlBQkIxMDAyNkM0NkQgLyogcGFzX2ZyZWVfcmFu
Z2Vfa2luZC5oICovLAotCQkJCTBGRDQ4QjFEMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfZnVsbF9h
bGxvY19iaXRzLmggKi8sCiAJCQkJMEZENDhBRkYyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19mdWxs
X2FsbG9jX2JpdHNfaW5saW5lcy5oICovLAorCQkJCTBGRDQ4QjFEMjNBOUFCQjIwMDI2QzQ2RCAv
KiBwYXNfZnVsbF9hbGxvY19iaXRzLmggKi8sCiAJCQkJMEZGMDhGMzcyMkE1QjNFMjAwMzg2NTc1
IC8qIHBhc19nZW5lcmljX2xhcmdlX2ZyZWVfaGVhcC5oICovLAogCQkJCTBGRTdFRTU4MjI5RTE0
RjkwMDRGNDE2NiAvKiBwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oICovLAogCQkJCTBGRTdFRTVD
MjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfZ2V0X2hlYXAuaCAqLywKQEAgLTE2NTMsMTcgKzE1OTQs
MTUgQEAKIAkJCQkwRjlBMUQ0RTI1NjMwNUI0MDBDOEQxMUIgLyogcGFzX2dldF9wYWdlX2Jhc2Uu
aCAqLywKIAkJCQkwRjE1MThGQzIzNDQxRTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmplY3QuaCAq
LywKIAkJCQkwRkM2ODIwQTIxMjFGNkU4MDAzQzZBMTMgLyogcGFzX2hhc2h0YWJsZS5oICovLAot
CQkJCTBGQzY4MUM4MjEwRjdDOUYwMDNDNkExMyAvKiBwYXNfaGVhcC5jICovLAotCQkJCTBGQzY4
MUMwMjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfaGVhcC5oICovLAotCQkJCTBGMUJGRDQzMjY2NDU3
RjEwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyAqLywKLQkJCQkwRkM2ODI0NzIxMkExMDU0
MDAzQzZBMTMgLyogcGFzX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEYwNEMyMEIyNDYwREI2RTAw
MUQzMUYwIC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEY2RDU2NTQyM0NC
RDE5QzAwRjQwREJCIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmMgKi8sCiAJCQkJMEY2RDU2NTIy
M0NCRDE5QzAwRjQwREJCIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmRlZiAqLywKIAkJCQkwRjZE
NTY1RDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuaCAqLywKKwkJCQkw
RjA4M0Y1OTIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMu
aCAqLywKIAkJCQkwRkM2ODI0OTIxMkExNjBCMDAzQzZBMTMgLyogcGFzX2hlYXBfY29uZmlnX3V0
aWxzLmMgKi8sCiAJCQkJMEYwOTIyNkQyMkIyRDkwOTAwN0Q1RDNBIC8qIHBhc19oZWFwX2NvbmZp
Z191dGlscy5oICovLAotCQkJCTBGMDgzRjU5MjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfaGVhcF9j
b25maWdfdXRpbHNfaW5saW5lcy5oICovLAorCQkJCTBGMUJGRDQzMjY2NDU3RjEwMENFQzI4RCAv
KiBwYXNfaGVhcF9jb25maWcuYyAqLywKKwkJCQkwRkM2ODI0NzIxMkExMDU0MDAzQzZBMTMgLyog
cGFzX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEZDMkZEMzYyMzc2MTUxMzAwNTNERDQxIC8qIHBh
c19oZWFwX2Zvcl9jb25maWcuYyAqLywKIAkJCQkwRkMyRkQzNTIzNzYxNTEyMDA1M0RENDEgLyog
cGFzX2hlYXBfZm9yX2NvbmZpZy5oICovLAogCQkJCTBGRDQ4QjY4MjNCNkFFRDUwMDI2QzQ2RCAv
KiBwYXNfaGVhcF9pbmxpbmVzLmggKi8sCkBAIC0xNjcxLDIzICsxNjEwLDI0IEBACiAJCQkJMEZD
NjgxOUUyMTAzOTE3QjAwM0M2QTEzIC8qIHBhc19oZWFwX2xvY2suYyAqLywKIAkJCQkwRkM2ODE5
RjIxMDM5MTdCMDAzQzZBMTMgLyogcGFzX2hlYXBfbG9jay5oICovLAogCQkJCTBGNkRCODhCMjM1
RTU0QTYwMDY5Q0FEQiAvKiBwYXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmggKi8sCi0JCQkJMEZDNjgx
QzYyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc19oZWFwX3JlZi5jICovLAotCQkJCTBGQzY4MUM3MjEw
RjdDOUYwMDNDNkExMyAvKiBwYXNfaGVhcF9yZWYuaCAqLywKIAkJCQkwRjg3OTJCMjIzOEExRDBD
MDBBRUU3RjEgLyogcGFzX2hlYXBfcmVmX2tpbmQuaCAqLywKIAkJCQkwRjQ3RDQwQTIxNDBEQjA1
MDA4QzQxRjAgLyogcGFzX2hlYXBfcmVmX3ByZWZpeC5oICovLAorCQkJCTBGQzY4MUM2MjEwRjdD
OUYwMDNDNkExMyAvKiBwYXNfaGVhcF9yZWYuYyAqLywKKwkJCQkwRkM2ODFDNzIxMEY3QzlGMDAz
QzZBMTMgLyogcGFzX2hlYXBfcmVmLmggKi8sCisJCQkJMEYxNDg3MEUyNjlCNzUxODAwNjg4N0E5
IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgKi8sCiAJCQkJMEYzMjlBMUYyM0YxMTMyQTAw
QTEzM0M0IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmggKi8sCiAJCQkJMEZDNEVDMzEyMzRB
OTFFMjAwQjcxMEEzIC8qIHBhc19oZWFwX3N1bW1hcnkuYyAqLywKIAkJCQkwRkVCNjY2NDIzMUIy
QTU3MDA5QzAwMUIgLyogcGFzX2hlYXBfc3VtbWFyeS5oICovLAorCQkJCTBGNkQ1NDgxMjNDNTgx
QzEwMEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZV9zdGF0ZS5oICovLAogCQkJCTBGNkQ1NDc0MjND
NTczRTAwMEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZS5jICovLAogCQkJCTBGNkQ1NDc2MjNDNTcz
RTAwMEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZS5oICovLAotCQkJCTBGNkQ1NDgxMjNDNTgxQzEw
MEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZV9zdGF0ZS5oICovLAorCQkJCTBGQzY4MUM4MjEwRjdD
OUYwMDNDNkExMyAvKiBwYXNfaGVhcC5jICovLAorCQkJCTBGQzY4MUMwMjEwRjdDOUUwMDNDNkEx
MyAvKiBwYXNfaGVhcC5oICovLAogCQkJCTBGRDQ4QUZFMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNf
aW1tb3J0YWxfaGVhcC5jICovLAogCQkJCTBGRDQ4QjA5MjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNf
aW1tb3J0YWxfaGVhcC5oICovLAogCQkJCTBGRDQ4QUZDMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNf
aW1tdXRhYmxlX3ZlY3Rvci5oICovLAogCQkJCTBGNTE2RUUyMjQ1NjBGRjUwMDRFMkI4RCAvKiBw
YXNfaW50ZXJuYWxfY29uZmlnLmggKi8sCi0JCQkJMEZERUE0MjcyMjhCNjQzMzAwODVFMzQwIC8q
IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRkYwOEY0OTIyQTg0
NDZCMDAzODY1NzUgLyogcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaCAqLywKLQkJCQkwRkM2
ODFBODIxMDNDQUM5MDAzQzZBMTMgLyogcGFzX2xhcmdlX2ZyZWUuaCAqLywKIAkJCQkwRkM2ODI0
NjIxMkEwRjFGMDAzQzZBMTMgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCAqLywKIAkJ
CQkwRjY2RDUzRjI0ODc2MEE3MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNsYXJh
dGlvbnMuZGVmICovLAogCQkJCTBGNzgwODg5MjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfbGFyZ2Vf
ZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuYyAqLywKQEAgLTE2OTcsMzUgKzE2MzcsNDEg
QEAKIAkJCQkwRjY2RDUzRTI0ODc2MEE3MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9o
ZWxwZXJzLmggKi8sCiAJCQkJMEZGMDBEMzcyMzc3NkQ2NDAwQzIwQUMwIC8qIHBhc19sYXJnZV9m
cmVlX2lubGluZXMuaCAqLywKIAkJCQkwRkYwOEYzRjIyQTVGNjU1MDAzODY1NzUgLyogcGFzX2xh
cmdlX2ZyZWVfdmlzaXRvci5oICovLAotCQkJCTBGQzY4MUFDMjEwNEZFQUQwMDNDNkExMyAvKiBw
YXNfbGFyZ2VfaGVhcC5jICovLAotCQkJCTBGQzY4MUE3MjEwM0IwRTYwMDNDNkExMyAvKiBwYXNf
bGFyZ2VfaGVhcC5oICovLAorCQkJCTBGQzY4MUE4MjEwM0NBQzkwMDNDNkExMyAvKiBwYXNfbGFy
Z2VfZnJlZS5oICovLAogCQkJCTBGMTkzMjY2MjJGM0IzRjIwMEZCQTcxMyAvKiBwYXNfbGFyZ2Vf
aGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYyAqLywKIAkJCQkwRjE5MzI2NzIyRjNC
M0YzMDBGQkE3MTMgLyogcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hl
LmggKi8sCisJCQkJMEZDNjgxQUMyMTA0RkVBRDAwM0M2QTEzIC8qIHBhc19sYXJnZV9oZWFwLmMg
Ki8sCisJCQkJMEZDNjgxQTcyMTAzQjBFNjAwM0M2QTEzIC8qIHBhc19sYXJnZV9oZWFwLmggKi8s
CisJCQkJMEZGMDhGNDcyMkE3NjNGMTAwMzg2NTc1IC8qIHBhc19sYXJnZV9tYXBfZW50cnkuaCAq
LywKIAkJCQkwRkM2ODFBMDIxMDM5MTdCMDAzQzZBMTMgLyogcGFzX2xhcmdlX21hcC5jICovLAog
CQkJCTBGQzY4MUExMjEwMzkxN0IwMDNDNkExMyAvKiBwYXNfbGFyZ2VfbWFwLmggKi8sCi0JCQkJ
MEZGMDhGNDcyMkE3NjNGMTAwMzg2NTc1IC8qIHBhc19sYXJnZV9tYXBfZW50cnkuaCAqLywKKwkJ
CQkwRkM4NDc5NDIzMkQ2OTQ5MDBCMzg2QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9j
aF91cGRhdGVfbW9kZS5oICovLAogCQkJCTBGQ0ZBNDk5MjM4MzUyRUMwMENDRDcyNiAvKiBwYXNf
bGFyZ2Vfc2hhcmluZ19wb29sLmMgKi8sCiAJCQkJMEZDRkE0OTgyMzgzNTJFQjAwQ0NENzI2IC8q
IHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCAqLywKLQkJCQkwRkM4NDc5NDIzMkQ2OTQ5MDBCMzg2
QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oICovLAogCQkJ
CTBGNkQ1NDc1MjNDNTczRTAwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAu
YyAqLywKIAkJCQkwRjZENTQ3MjIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX2xhcmdlX3V0aWxpdHlf
ZnJlZV9oZWFwLmggKi8sCiAJCQkJMEY4QTgwMjcyNUVDNTg4ODAwNzkwQjRBIC8qIHBhc19saW5l
X3dvcmRfY29uZmlnLmggKi8sCiAJCQkJMEYzMUE2NDMyM0UzNTA5RTAwMkMwQ0EzIC8qIHBhc19s
aXN0X2RpcmVjdGlvbi5oICovLAotCQkJCTBGREJCMDcxMjJCODc1QTYwMDZCQTVGQyAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yLmMgKi8sCi0JCQkJMEZEQkIwNzIyMkI4NzVBNjAwNkJBNUZDIC8qIHBh
c19sb2NhbF9hbGxvY2F0b3IuaCAqLywKIAkJCQkwRkQ0OEIwMjIzQTlBQkIwMDAyNkM0NkQgLyog
cGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZC5oICovLAogCQkJCTBGREJCMDc2MjJCODc3
RkEwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCAqLywKKwkJCQkwRjQ1
RDVBNjI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggKi8sCiAJ
CQkJMEY4QTgwMjgyNUVDNTg4ODAwNzkwQjRBIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5o
ICovLAogCQkJCTBGREJCMDcwMjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9y
X3JlZmlsbF9tb2RlLmggKi8sCiAJCQkJMEZDNjgxQkYyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVzdWx0LmggKi8sCi0JCQkJMEYwNEMyMEQyNDYwREI2RTAwMUQzMUYw
IC8qIHBhc19sb2NrLmMgKi8sCi0JCQkJMEZDNjgyNUQyMTJDQTc2RDAwM0M2QTEzIC8qIHBhc19s
b2NrLmggKi8sCisJCQkJMEY0NUQ1QTcyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYyAqLywKKwkJCQkwRjQ1RDVBODI2QUI3MzE0MDBDMzVEOTMg
LyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oICovLAorCQkJCTBGREJCMDcx
MjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmMgKi8sCisJCQkJMEZEQkIw
NzIyMkI4NzVBNjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuaCAqLywKKwkJCQkwRjE0
ODcxRDI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jICovLAor
CQkJCTBGMTQ4NzFBMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2Rl
LmggKi8sCisJCQkJMEYxNDg3MUIyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2Nh
Y2hlLmMgKi8sCisJCQkJMEYxNDg3MEMyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3
X2NhY2hlLmggKi8sCiAJCQkJMEZFQTQ1QkEyMzZDRDVBQzAwQjVBMzc1IC8qIHBhc19sb2NrX2Zy
ZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jICovLAogCQkJCTBGRUE0NUJCMjM2Q0Q1QUMwMEI1
QTM3NSAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuaCAqLywKKwkJCQkw
RjA0QzIwRDI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX2xvY2suYyAqLywKKwkJCQkwRkM2ODI1RDIx
MkNBNzZEMDAzQzZBMTMgLyogcGFzX2xvY2suaCAqLywKIAkJCQkwRjlFOTQ1NjIzNDUyMjYyMDA5
RkFGREQgLyogcGFzX2xvZy5jICovLAogCQkJCTBGOUU5NDU3MjM0NTIyNjIwMDlGQUZERCAvKiBw
YXNfbG9nLmggKi8sCi0JCQkJMEYwNEMyMTIyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19tYWdhemlu
ZS5jICovLAotCQkJCTBGMDRDMjA4MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuaCAq
LywKIAkJCQkwRjAzN0FGMTI1QUVBOTE5MDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9j
YWNoZS5jICovLAogCQkJCTBGMDM3QUYyMjVBRUE5MUEwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21l
Z2FwYWdlX2NhY2hlLmggKi8sCiAJCQkJMEZDNjgyMDAyMTIxMEIxOTAwM0M2QTEzIC8qIHBhc19t
ZWdhcGFnZV9jYWNoZS5jICovLApAQCAtMTczNSwxMyArMTY4MSwxMyBAQAogCQkJCTBGRDQ4QUZE
MjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuaCAqLywKIAkJCQkwRjA5MjI2
OTIyQjA3QzIxMDA3RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50LmggKi8sCiAJCQkJMEY5QTFE
NEEyNTVGMkNENzAwQzhEMTFCIC8qIHBhc19vYmplY3Rfa2luZC5oICovLAotCQkJCTBGOUExQ0JB
MjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmMgKi8sCi0JCQkJMEY5QTFDQjkyNTU5
OTYxMzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuaCAqLywKLQkJCQkwRjlBMUNDMDI1NTk5NjE0
MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLywKIAkJCQkwRjlBMUQ0MjI1NUFG
NzMyMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfaW5saW5lcy5oICovLAotCQkJCTBG
OUExQ0Q0MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICov
LAogCQkJCTBGOUExQ0FCMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191
dGlsc19pbmxpbmVzLmggKi8sCisJCQkJMEY5QTFDRDQyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19w
YWdlX2Jhc2VfY29uZmlnX3V0aWxzLmggKi8sCisJCQkJMEY5QTFDQzAyNTU5OTYxNDAwQzhEMTFC
IC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi8sCiAJCQkJMEY5QTFDQUMyNTU5OTYxMjAwQzhE
MTFCIC8qIHBhc19wYWdlX2Jhc2VfaW5saW5lcy5oICovLAorCQkJCTBGOUExQ0JBMjU1OTk2MTQw
MEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmMgKi8sCisJCQkJMEY5QTFDQjkyNTU5OTYxMzAwQzhE
MTFCIC8qIHBhc19wYWdlX2Jhc2UuaCAqLywKIAkJCQkwRjlBMUNDNjI1NTk5NjE0MDBDOEQxMUIg
LyogcGFzX3BhZ2VfY29uZmlnX2tpbmQuaCAqLywKIAkJCQkwRjlBMUNEQTI1NTk5NjE2MDBDOEQx
MUIgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLywKIAkJCQkwRjlBMUNENTI1NTk5
NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggKi8sCkBAIC0x
NzUxLDEyICsxNjk3LDEzIEBACiAJCQkJMEZDNjgxOEMyMTAyN0I0NzAwM0M2QTEzIC8qIHBhc19w
YWdlX21hbGxvYy5jICovLAogCQkJCTBGQzY4MTg5MjEwMjdCNDYwMDNDNkExMyAvKiBwYXNfcGFn
ZV9tYWxsb2MuaCAqLywKIAkJCQkwRjlBMUNEOTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2Vf
c2hhcmluZ19tb2RlLmggKi8sCisJCQkJMEYxOTMyNUIyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5oICovLAogCQkJCTBGMTkzMjVEMjJGMTE5M0Qw
MEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmMgKi8sCiAJCQkJMEYxOTMy
NUUyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCAqLywK
LQkJCQkwRjE5MzI1QjIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9raW5kLmggKi8sCisJCQkJMEZDQkQwMzMyNkFERjkyNTAwRDI2RDY4IC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLywKKwkJCQkwRkYyNDhGODIyRkM5RURC
MDA3NzIwMkUgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmggKi8sCiAJCQkJ
MEZEMjJDRkUyMkNDMDFEMzAwQjIxODQxIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbC5jICovLAog
CQkJCTBGRDIyQ0ZEMjJDQzAxRDMwMEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCAq
LywKLQkJCQkwRkYyNDhGODIyRkM5RURCMDA3NzIwMkUgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3Rha2VfcmVzdWx0LmggKi8sCiAJCQkJMEY0RjYxQzkyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19w
YXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jICovLAogCQkJCTBGNEY2MUM4MjVBNENEM0Iw
MDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCAqLywKIAkJCQkw
RjZENTQ3MzIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6
YXRpb25fc3R5bGUuaCAqLywKQEAgLTE3NzQsMTEgKzE3MjEsMTEgQEAKIAkJCQkwRjVFNDgzNTIz
RDY5NjBGMDA0NkRBNUMgLyogcGFzX3JhY2VfdGVzdF9ob29rcy5oICovLAogCQkJCTBGRDQ4QUY1
MjNBOUFCQUYwMDI2QzQ2RCAvKiBwYXNfcmFuZG9tLmMgKi8sCiAJCQkJMEZENDhCMEYyM0E5QUJC
MTAwMjZDNDZEIC8qIHBhc19yYW5kb20uaCAqLywKLQkJCQkwRjE5MzI1MjIyRUQwNEE2MDBGQkE3
MTMgLyogcGFzX3JhbmdlLmggKi8sCi0JCQkJMEY2RDU2MzkyM0M3OUQzNzAwRjQwREJCIC8qIHBh
c19yYW5nZTE2LmggKi8sCiAJCQkJMEY0RjYxQUQyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19yYW5n
ZV9iZWdpbl9taW5faGVhcC5oICovLAogCQkJCTBGRDQ4QUYxMjNBOUFCQUYwMDI2QzQ2RCAvKiBw
YXNfcmFuZ2VfbG9ja2VkX21vZGUuaCAqLywKIAkJCQkwRjc4MDg4QTIyRkE1MzQxMDBGMzc0NTEg
LyogcGFzX3JhbmdlX21pbl9oZWFwLmggKi8sCisJCQkJMEYxOTMyNTIyMkVEMDRBNjAwRkJBNzEz
IC8qIHBhc19yYW5nZS5oICovLAorCQkJCTBGNkQ1NjM5MjNDNzlEMzcwMEY0MERCQiAvKiBwYXNf
cmFuZ2UxNi5oICovLAogCQkJCTBGRTdFRTdFMjJBMUE1ODAwMDRGNDE2NiAvKiBwYXNfcmVhbGxv
Y2F0ZV9mcmVlX21vZGUuaCAqLywKIAkJCQkwRkU3RUU3QzIyQTFBMzFDMDA0RjQxNjYgLyogcGFz
X3JlYWxsb2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxlLmggKi8sCiAJCQkJMEZGMDhGMzIyMkE1OEYx
MjAwMzg2NTc1IC8qIHBhc19yZWRfYmxhY2tfdHJlZS5jICovLApAQCAtMTc5Miw2MiArMTczOSw1
NSBAQAogCQkJCTBGMTkzMjZCMjJGNzNFODQwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmMgKi8s
CiAJCQkJMEYxOTMyNkEyMkY3M0U4NDAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuaCAqLywKIAkJ
CQkwRjY4MTI3MTIyQkQ0QkY0MDAzNkEwMkIgLyogcGFzX3NlZ21lbnRlZF92ZWN0b3IuaCAqLywK
LQkJCQkwRjA0QzIwRTI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkuYyAqLywKLQkJCQkwRjA0QzIwMjI0NjBEQjZEMDAxRDMxRjAgLyogcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjA0QzIwQTI0NjBEQjZFMDAxRDMx
RjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgKi8sCi0JCQkJMEYwNEMyMEMyNDYw
REI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oICovLAotCQkJCTBG
RDQ4QjFFMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYyAqLywK
LQkJCQkwRkQ0OEIxQjIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
LmggKi8sCisJCQkJMEYxNDg3MEEyNjlCNzUxNzAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX2Rl
YWxsb2NhdGlvbl9tb2RlLmggKi8sCiAJCQkJMEZENDhCMEMyM0E5QUJCMTAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmggKi8sCiAJCQkJMEY1MDhENTIy
NThFQ0ZEMzAwMTUxRUQ4IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJs
ZV9raW5kLmggKi8sCiAJCQkJMEZENDhBRjgyM0E5QUJBRjAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhCMjIyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kLmggKi8sCisJCQkJMEZENDhCMUUyM0E5
QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jICovLAorCQkJCTBGRDQ4
QjFCMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaCAqLywKKwkJ
CQkwRkU2NzJCNjI1QzIxRDUzMDA2RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfaW5saW5lcy5oICovLAogCQkJCTBGRDQ4QjE4MjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldy5jICovLAogCQkJCTBGRDQ4QjA2MjNBOUFCQjAwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oICovLAotCQkJCTBGRTY3MkI2MjVD
MjFENTMwMDZGNjBBMiAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgg
Ki8sCi0JCQkJMEYwNEMyMDcyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggKi8sCi0JCQkJMEYwNEMyMDMyNDYwREI2RTAwMUQz
MUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jICovLAotCQkJCTBG
MDRDMjA0MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuaCAqLywKLQkJCQkwRjA0QzIwRjI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKLQkJCQkwRkM2ODFDMTIxMEY3
QzlFMDAzQzZBMTMgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jICovLAotCQkJCTBGQzY4MUM1MjEw
RjdDOUYwMDNDNkExMyAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggKi8sCiAJCQkJMEZENDhBRjAy
M0E5QUJBRjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oICovLAogCQkJ
CTBGREVBNTg3MjI4RjdENEYwMDg1RTM0MCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9r
aW5kLmggKi8sCi0JCQkJMEZDNjgxQjQyMTA2Q0Q3OTAwM0M2QTEzIC8qIHBhc19zZWdyZWdhdGVk
X3BhZ2UuYyAqLywKLQkJCQkwRkM2ODFBRjIxMDY1QTAwMDAzQzZBMTMgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZS5oICovLAorCQkJCTBGQzY4MUMxMjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfc2VncmVn
YXRlZF9oZWFwLmMgKi8sCisJCQkJMEZDNjgxQzUyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc19zZWdy
ZWdhdGVkX2hlYXAuaCAqLywKIAkJCQkwRjlBMUQzRTI1NUE1MEQ2MDBDOEQxMUIgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmggKi8sCi0JCQkJMEY5N0U2MkYyMkE5QUFDMTAwQzM1
NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgKi8sCi0JCQkJMEY5N0U2MkQyMkE5
QTg1RjAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggKi8sCiAJCQkJMEZE
QkIwNzgyMkI5ODA1NDAwNkJBNUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGlu
ZXMuaCAqLywKIAkJCQkwRkQ0OEIyMzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZC5jICovLAogCQkJCTBGRjhENjI2MjJDMDRBNkQwMEVDNzJGRSAvKiBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZiAqLywKIAkJCQkwRkRFQTQwQTIyOEI2
NDMxMDA4NUUzNDAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5oICovLAotCQkJ
CTBGMDkyMjZCMjJCMkQ4OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191
dGlscy5oICovLAogCQkJCTBGMDgzRjU4MjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8sCisJCQkJMEYwOTIyNkIyMkIyRDg4RTAw
N0Q1RDNBIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY5
QTFDOUYyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3Zhcmlh
bnQuaCAqLywKKwkJCQkwRjk3RTYyRjIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcuYyAqLywKKwkJCQkwRjk3RTYyRDIyQTlBODVGMDBDMzU1RjggLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcuaCAqLywKIAkJCQkwRkM0RUM3ODIzNTE3MDdCMDBCNzEwQTMg
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5lc3Nfa2luZC5oICovLAogCQkJCTBGRjhENjI4
MjJDMTY2RjUwMEVDNzJGRSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCAqLywKKwkJ
CQkwRkM2ODFCNDIxMDZDRDc5MDAzQzZBMTMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jICovLAor
CQkJCTBGQzY4MUFGMjEwNjVBMDAwMDNDNkExMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggKi8s
CisJCQkJMEZENDhCMkEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlld19pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhCMTEyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jICovLAogCQkJCTBGRDQ4QUZBMjNBOUFCQjAwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaCAqLywKLQkJCQkwRkQ0OEIyQTIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGluZXMuaCAqLywK
KwkJCQkwRkQ0OEIwMTIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hh
bmRsZV9pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhCMEQyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuYyAqLywKIAkJCQkwRkQ0OEIxQTIzQTlBQkIyMDAyNkM0
NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5oICovLAotCQkJCTBGRDQ4QjAxMjNB
OUFCQjAwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2lubGluZXMuaCAq
LywKIAkJCQkwRkQ0OEFGMzIzQTlBQkFGMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3BhZ2VfZGlyZWN0b3J5LmMgKi8sCiAJCQkJMEZENDhCMUMyM0E5QUJCMjAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5oICovLAorCQkJCTBGNUU1Q0YxMjNC
RkJGQjgwMEFBMEI2RiAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxpbmVzLmggKi8s
CiAJCQkJMEZENDhCMTcyM0E5QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92
aWV3LmMgKi8sCiAJCQkJMEZENDhCMjUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF92aWV3LmggKi8sCi0JCQkJMEY1RTVDRjEyM0JGQkZCODAwQUEwQjZGIC8qIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lubGluZXMuaCAqLywKKwkJCQkwRjE0ODcxQzI2OUY1RkNB
MDA2ODg3QTkgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5o
ICovLAorCQkJCTBGRDQ4QjE5MjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhCMjEyM0E5QUJCMzAwMjZDNDZEIC8q
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMgKi8sCiAJCQkJMEZENDhCMjkyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEZE
NDhCMTkyM0E5QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lu
bGluZXMuaCAqLywKLQkJCQkwRkQ0OEFGQjIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0
ZWRfdmlldy5jICovLAotCQkJCTBGRDQ4QjBFMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfc2VncmVn
YXRlZF92aWV3LmggKi8sCiAJCQkJMEZFNjcyQzYyNUMyMUY2NzAwNkY2MEEyIC8qIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaCAqLywKLQkJCQkwRjA0QzIxMDI0NjBEQjZG
MDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhC
MTQyM0E5QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oICovLAotCQkJ
CTBGOUExQzlEMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2Jv
dW5kYXJ5LmggKi8sCisJCQkJMEZENDhBRkIyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3ZpZXcuYyAqLywKKwkJCQkwRkQ0OEIwRTIzQTlBQkIxMDAyNkM0NkQgLyogcGFzX3NlZ3Jl
Z2F0ZWRfdmlldy5oICovLAogCQkJCTBGOUExQ0RCMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfc2hh
cmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCAqLywKKwkJCQkwRjlBMUM5RDI1
NTk5NjExMDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oICov
LAogCQkJCTBGMThFNjNEMjYyOEJGQjYwMEY2OTAzRCAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5X2J5X3NpemUuYyAqLywKIAkJCQkwRjE4RTYzQzI2MjhCRkI2MDBGNjkwM0QgLyogcGFzX3No
YXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmggKi8sCiAJCQkJMEY2RDU2M0UyM0NBQTFCOTAw
RjQwREJCIC8qIHBhc19zaW1wbGVfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgKi8sCkBAIC0x
ODU4LDExICsxNzk4LDExIEBACiAJCQkJMEZGMDhGM0IyMkE1REM2OTAwMzg2NTc1IC8qIHBhc19z
aW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmggKi8sCiAJCQkJMEZERUE1NzYyMjhFMjM0NDAwODVFMzQw
IC8qIHBhc19zaW1wbGVfdHlwZS5oICovLAogCQkJCTBGOTlGOThCMjVDQjJDRTgwMEVFRTQ0OSAv
KiBwYXNfc2l6ZV90aHVuay5oICovLAorCQkJCTBGMzFBNjM5MjNEQ0Y4MDQwMDJDMENBMyAvKiBw
YXNfc2tpcF9saXN0X2lubGluZXMuaCAqLywKIAkJCQkwRjMxQTYzQTIzRENGODA0MDAyQzBDQTMg
LyogcGFzX3NraXBfbGlzdC5jICovLAogCQkJCTBGMzFBNjNCMjNEQ0Y4MDQwMDJDMENBMyAvKiBw
YXNfc2tpcF9saXN0LmggKi8sCi0JCQkJMEYzMUE2MzkyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19z
a2lwX2xpc3RfaW5saW5lcy5oICovLAotCQkJCTBGQzY0MTg0MjEzMERGQjYwMDQwQ0U1RSAvKiBw
YXNfc2xvd19wYXRoX21vZGUuaCAqLywKIAkJCQkwRjQ3RDQwRTIxNDBEQjA1MDA4QzQxRjAgLyog
cGFzX3Nsb3dfcGF0aF9tb2RlX3ByZWZpeC5oICovLAorCQkJCTBGQzY0MTg0MjEzMERGQjYwMDQw
Q0U1RSAvKiBwYXNfc2xvd19wYXRoX21vZGUuaCAqLywKIAkJCQkwRjZENTQ3ODIzQzU3M0UxMDBG
NDBEQkIgLyogcGFzX3NtYWxsX2xhcmdlX21hcF9lbnRyeS5oICovLAogCQkJCTBGQzY4MjE3MjEy
NTM2MjcwMDNDNkExMyAvKiBwYXNfc25wcmludGYuaCAqLywKIAkJCQkwRkM0RUMzMjIzNEE5MUUy
MDBCNzEwQTMgLyogcGFzX3N0YXR1c19yZXBvcnRlci5jICovLApAQCAtMTg3MSw0OCArMTgxMSw0
NSBAQAogCQkJCTBGQzY4MjE5MjEyNTM2MjcwMDNDNkExMyAvKiBwYXNfc3RyZWFtLmggKi8sCiAJ
CQkJMEZDNEVDMkUyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgKi8sCiAJ
CQkJMEZDNEVDMzMyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFtLmggKi8sCi0J
CQkJMEY5QTFDRDcyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5jICovLAotCQkJ
CTBGOUExQ0MyMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuaCAqLywKLQkJCQkw
RjlBMUM5QzI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi8sCi0J
CQkJMEY5QTFDOTcyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oICov
LAotCQkJCTBGQzY4MUM5MjEwRjdDOUYwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
LmMgKi8sCi0JCQkJMEZDNjgxQzQyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUuaCAqLywKLQkJCQkwRkM2ODFDMjIxMEY3QzlFMDAzQzZBMTMgLyogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXQuYyAqLywKLQkJCQkwRkM2ODFDQTIxMEY3QzlGMDAzQzZBMTMgLyog
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCAqLywKKwkJCQkwRjE0ODcxRTI2OUY1RkNB
MDA2ODg3QTkgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggKi8s
CiAJCQkJMEZBNUU0NTEyNDkyRDVCOTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGUuYyAqLywKIAkJCQkwRkE1RTQ1MzI0OTJENUI5MDBDRTk2MkEgLyogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oICovLAorCQkJCTBGQzY4MUMyMjEwRjdDOUUw
MDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jICovLAorCQkJCTBGQzY4
MUNBMjEwRjdDOUYwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oICov
LAogCQkJCTBGN0Y1MUJDMjMxNTlFQzAwMDc1NTJBRSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X25vZGUuYyAqLywKIAkJCQkwRjdGNTFCRDIzMTU5RUMwMDA3NTUyQUUgLyogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9ub2RlLmggKi8sCisJCQkJMEZDNjgxQzkyMTBGN0M5RjAwM0M2QTEzIC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGUuYyAqLywKKwkJCQkwRkM2ODFDNDIxMEY3QzlFMDAzQzZBMTMg
LyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oICovLAogCQkJCTBGNkQ1NDcxMjNDNTczRTAwMEY0
MERCQiAvKiBwYXNfdGlueV9sYXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkwRjMxQTY2OTIzRThF
NTk0MDAyQzBDQTMgLyogcGFzX3RyZWVfZGlyZWN0aW9uLmggKi8sCiAJCQkJMEY4QTgwMEMyNUNG
NjRDOTAwNzkwQjRBIC8qIHBhc190cmlfc3RhdGUuaCAqLywKLQkJCQkwRkU3RUU1QjIyOUUxNEY5
MDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZS5oICovLAogCQkJCTBGRTdFRTVBMjI5RTE0Rjkw
MDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmggKi8sCiAJCQkJMEZENDhCMDMyM0E5
QUJCMDAwMjZDNDZEIC8qIHBhc190cnlfYWxsb2NhdGVfY29tbW9uLmggKi8sCiAJCQkJMEZFN0VF
NTkyMjlFMTRGOTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2
ZS5oICovLAogCQkJCTBGRTdFRTVEMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRl
X3ByaW1pdGl2ZS5oICovLAorCQkJCTBGRTdFRTVCMjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfdHJ5
X2FsbG9jYXRlLmggKi8sCiAJCQkJMEZFN0VFNzgyMkEwNDhCQTAwNEY0MTY2IC8qIHBhc190cnlf
cmVhbGxvY2F0ZS5oICovLAogCQkJCTBGNTlBMzkyMjY2N0YwMEUwMEEzODY1NyAvKiBwYXNfdHJ5
X3Nocmluay5oICovLAogCQkJCTBGREVBNDc2MjI4QjY1NDMwMDg1RTM0MCAvKiBwYXNfdHlwZWRf
YWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKLQkJCQkwRkM2ODIzRTIxMjlFRDUxMDAzQzZBMTMgLyog
cGFzX3V0aWxpdHlfaGVhcC5jICovLAotCQkJCTBGQzY4MjQxMjEyOUVENTEwMDNDNkExMyAvKiBw
YXNfdXRpbGl0eV9oZWFwLmggKi8sCiAJCQkJMEZERUE0MjMyMjhCNjQzMzAwODVFMzQwIC8qIHBh
c191dGlsaXR5X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEZERUE0MUIyMjhCNjQzMjAwODVFMzQw
IC8qIHBhc191dGlsaXR5X2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEZENDhBRjIyM0E5QUJBRjAw
MjZDNDZEIC8qIHBhc191dGlsaXR5X2hlYXBfc3VwcG9ydC5oICovLAorCQkJCTBGQzY4MjNFMjEy
OUVENTEwMDNDNkExMyAvKiBwYXNfdXRpbGl0eV9oZWFwLmMgKi8sCisJCQkJMEZDNjgyNDEyMTI5
RUQ1MTAwM0M2QTEzIC8qIHBhc191dGlsaXR5X2hlYXAuaCAqLywKKwkJCQkwRkM2NDE5NjIxNDBD
QURDMDA0MENFNUUgLyogcGFzX3V0aWxzX3ByZWZpeC5oICovLAogCQkJCTBGQzY4MThGMjEwMjdD
NDQwMDNDNkExMyAvKiBwYXNfdXRpbHMuYyAqLywKIAkJCQkwRkM2ODE4ODIxMDI3QjQ2MDAzQzZB
MTMgLyogcGFzX3V0aWxzLmggKi8sCi0JCQkJMEZDNjQxOTYyMTQwQ0FEQzAwNDBDRTVFIC8qIHBh
c191dGlsc19wcmVmaXguaCAqLywKIAkJCQkwRjlBMUNCMTI1NTk5NjEzMDBDOEQxMUIgLyogcGFz
X3ZlcnNpb25lZF9maWVsZC5jICovLAogCQkJCTBGNjgxMjZGMjJCRDQxOUUwMDM2QTAyQiAvKiBw
YXNfdmVyc2lvbmVkX2ZpZWxkLmggKi8sCisJCQkJMEY3ODA4ODgyMkZBNTM0MTAwRjM3NDUxIC8q
IHBhc192aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggKi8sCiAJCQkJMEY3ODA4ODMyMkZBMjJEMjAw
RjM3NDUxIC8qIHBhc192aXJ0dWFsX3JhbmdlLmMgKi8sCiAJCQkJMEY3ODA4ODIyMkZBMjJEMTAw
RjM3NDUxIC8qIHBhc192aXJ0dWFsX3JhbmdlLmggKi8sCi0JCQkJMEY3ODA4ODgyMkZBNTM0MTAw
RjM3NDUxIC8qIHBhc192aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggKi8sCiAJCQkJMEZERUE0NkQy
MjhCNjU0MzAwODVFMzQwIC8qIHBhc196ZXJvX21vZGUuaCAqLywKLQkJCQkwRjg3MDBBMjI1QjBB
OEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuYyAqLywKLQkJCQkwRjg3MDBBMzI1QjBBOEMyMDAw
RTFBQkYgLyogdGhpbmd5X2hlYXAuaCAqLywKIAkJCQkwRjg3MDBBNDI1QjBBOEMyMDAwRTFBQkYg
LyogdGhpbmd5X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY4NzAwQTUyNUIwQThDMjAwMEUxQUJG
IC8qIHRoaW5neV9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGODcwMEExMjVCMEE4QzIwMDBFMUFC
RiAvKiB0aGluZ3lfaGVhcF9wcmVmaXguaCAqLywKKwkJCQkwRjg3MDBBMjI1QjBBOEMyMDAwRTFB
QkYgLyogdGhpbmd5X2hlYXAuYyAqLywKKwkJCQkwRjg3MDBBMzI1QjBBOEMyMDAwRTFBQkYgLyog
dGhpbmd5X2hlYXAuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGlicGFzOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTE5MjAsOCArMTg1Nyw4IEBACiAJCTBGRTdFRThDMjJBMURDMzMw
MDRGNDE2NiAvKiBtYm1hbGxvYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJMEY4QTgwNTQyNUVFQ0JENDAwNzkwQjRBIC8qIG1ibWFsbG9jX2JtYWxsb2Mu
YyAqLywKIAkJCQkwRjhBODBCMzI1RjZBNDZDMDA3OTBCNEEgLyogbWJtYWxsb2NfaG90Yml0LmMg
Ki8sCisJCQkJMEY4QTgwNTQyNUVFQ0JENDAwNzkwQjRBIC8qIG1ibWFsbG9jX2JtYWxsb2MuYyAq
LywKIAkJCQkwRkYwOEY1NTIyQTg2RTJFMDAzODY1NzUgLyogbWJtYWxsb2NfaXNvX2NvbW1vbl9w
cmltaXRpdmUuYyAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWJtYWxsb2M7CkBAIC0xOTM5LDE0ICsx
ODc2LDE0IEBACiAJCTNBNkNBNjU4MjEwMTI4OTUwMDNFRkRCRiAvKiBQcm9kdWN0cyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMEZCQUU2ODMyNDhFQzFD
MDAwMzExRTZGIC8qIGNoYW9zICovLAogCQkJCTBGQzY4MURCMjEwRkFDNEIwMDNDNkExMyAvKiB0
ZXN0X3BhcyAqLywKLQkJCQkwRjhBODAzQjI1RUVDQkFGMDA3OTBCNEEgLyogbGlibWJtYWxsb2Nf
Ym1hbGxvYy5keWxpYiAqLywKLQkJCQkwRjhBODA5NzI1RjZBNDRGMDA3OTBCNEEgLyogbGlibWJt
YWxsb2NfaG90Yml0LmR5bGliICovLAotCQkJCTBGRjA4RjU0MjJBODZDOUEwMDM4NjU3NSAvKiBs
aWJtYm1hbGxvY19pc29fY29tbW9uX3ByaW1pdGl2ZS5keWxpYiAqLywKLQkJCQkwRjQ0M0I0RTIz
NDE3NjE1MDBCRTUwRDEgLyogbGlibWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmVfdmVyaWZp
ZWQuZHlsaWIgKi8sCiAJCQkJMEZERUE1RDkyMjk1RkM4QzAwODVFMzQwIC8qIGxpYnBhcy5keWxp
YiAqLywKKwkJCQkwRkYwOEY1NDIyQTg2QzlBMDAzODY1NzUgLyogbGlibWJtYWxsb2NfaXNvX2Nv
bW1vbl9wcmltaXRpdmUuZHlsaWIgKi8sCiAJCQkJMEY0NDNCM0EyMzQxNkE3QzAwQkU1MEQxIC8q
IGxpYnBhc192ZXJpZmllci5keWxpYiAqLywKKwkJCQkwRjQ0M0I0RTIzNDE3NjE1MDBCRTUwRDEg
LyogbGlibWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmVfdmVyaWZpZWQuZHlsaWIgKi8sCisJ
CQkJMEZCQUU2ODMyNDhFQzFDMDAwMzExRTZGIC8qIGNoYW9zICovLAorCQkJCTBGOEE4MDNCMjVF
RUNCQUYwMDc5MEI0QSAvKiBsaWJtYm1hbGxvY19ibWFsbG9jLmR5bGliICovLAorCQkJCTBGOEE4
MDk3MjVGNkE0NEYwMDc5MEI0QSAvKiBsaWJtYm1hbGxvY19ob3RiaXQuZHlsaWIgKi8sCiAJCQkp
OwogCQkJbmFtZSA9IFByb2R1Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIw
MDUsMzY1ICsxOTQyLDM1NCBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQli
dWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJMEY4QTgwNjcy
NUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4
QTgwNjkyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGOEE4MDY1MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgwNkIyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxs
b2NfaGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODA2QTI1RUVDQzFEMDA3
OTBCNEEgLyogYm1hbGxvY19oZWFwX3JlZi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgxMDUy
NUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhB
ODEwMzI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjhBODEwNjI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgxMDIyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9o
ZWFwX2lubmFyZHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTc3MjI5RjAxMEYwMDRGNDE2
NiAvKiBpc29faGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNTYyMjk3NDMzNTAwNEY0
MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1RkU3QTQyNUI2
MTRGMjAwMTg1OUZDIC8qIGlzb19oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
NTE2RUU3MjQ1NjFBNjAwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjUyOURERjI0NTU0NjBDMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjVFNUNFRTIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1RTVDRUYyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0
X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjU5QTM5MzI2NjdGMDBFMDBBMzg2
NTcgLyogaml0X2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTlBMzk0MjY2N0YwMEUwMEEz
ODY1NyAvKiBqaXRfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTlBMzk4MjY2
ODMxNzQwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkJENjdEQzI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkJENjdERDI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9o
ZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZCRDY3RjEyNUJFMDc4NzAwQTQ5MEQy
IC8qIHBhZ2VzaXplNjRrX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQkQ2N0YyMjVCRTA3
ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZFN0VERkUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVz
dWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU2NDIyOUUxNEZBMDA0RjQxNjYgLyogcGFz
X2dldF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVFNUNGMjIzQkZCRkI5MDBBQTBCNkYg
LyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZFN0VFMkUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3Vw
X2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjVCMjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZFN0VFMzMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zdHJlYW0uaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRTdFRTY1MjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxNDg3MjMyNjlGNUZDQTAwNjg4N0E5IC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEYyMTUwRUQyNDg0QkI4NjAwMEQ2MzRCIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0
b3JfaW5kZXhfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RURGRjIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX2FsaWduZWRfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUw
MDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsaWdubWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY5QTFEMUIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1OUEzOTUyNjY3RjAwRTAwQTM4NjU3IC8qIHBhc19hbGxf
aGVhcF9jb25maWdzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwMTIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX2FsbF9oZWFwcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxQUVDRTkyNjU4MTk2
MTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0
OEI2MjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0N0MzMUYyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxv
Y2F0aW9uX2NhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3ODA4OTIyMkZBNTM0MTAw
RjM3NDUxIC8qIHBhc19hbGxvY2F0aW9uX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0
N0MzMUEyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2tpbmQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRTdFRTAyMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1
bHQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGREJCMDdCMjJCQkZGODMwMDZCQTVGQyAvKiBwYXNf
YWxsb2NhdG9yX2NvdW50cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYyMTUwRUIyNDg0QkIyQTAw
MEQ2MzRCIC8qIHBhc19hbGxvY2F0b3JfaW5kZXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkI0
N0ZFMjMzMTVBRTUwMDJBNUUwQyAvKiBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCM0IyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjQwMjNBOUFCQjMwMDI2QzQ2
RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZENDhCNUEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MTY0MjU5QkZCODUwMDhCNEE4MiAvKiBwYXNfYmFz
aWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRG
NjE2RDI1OUJGRjkxMDA4QjRBODIgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMjlBMjIyM0YxMTMyQjAwQTEzM0M0IC8qIHBhc19iYXNp
Y19oZWFwX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMyOUEyMTIzRjExMzJB
MDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGMzI5QTI0MjNGMTEzMkIwMEExMzNDNCAvKiBwYXNfYmFzaWNfc2VncmVnYXRlZF9w
YWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjMyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMEIy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjlBMUNGNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGly
ZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTAzMjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfYml0ZmllbGRfdmVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjY2RDU0ODI0
ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkI0N0ZEMjMzMTVBRTUwMDJBNUUwQyAvKiBw
YXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkM0
RUMzRjIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2ZkX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY5QTFDRTUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9y
ZXN1bHRfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMEMyMjk2MDE0MjAwNEY0MTY2
IC8qIHBhc19leHRlbmRlZF9nY2QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0Y3MjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjlBMUQyNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5k
bGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQw
NzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY1RkU3QTQyNUI2MTRGMjAwMTg1OUZDIC8qIGlzb19oZWFwX2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDA4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMUQyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGOUExQ0YzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQwMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0Y2MjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGOUExRDE0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGRjI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRTQy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY5QTFDRkIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFs
X3NpemVfY2xhc3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDE4MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0U3MjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X21heF9mcmVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjlBMUQwMzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjlBMUQyODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Zy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1NzA5MTgyNTZBQjIxMTAwMDM3QkIzIC8qIHBhc19i
aXRmaXRfcGFnZV9jb25maWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRkEy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY5QTFDRTYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTcwOTFBMjU2QUI0MTcwMDAzN0JC
MyAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGOUExRDE3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmln
X3ZhcmlhbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDAxMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjEy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5QTFDRUQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY5QTFENDUyNTVEQkU2MTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmll
d19hbmRfaW5kZXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDQxMjU1QUYyNzkwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VF
MDQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19iaXR2ZWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRTdFRTA1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY1QjYwODQyMzVFNTcyMDAwQ0FFNjI5IC8qIHBhc19ib290c3Ry
YXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwODIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX2NhcmVzX2Fib3V0X3NpemVfbW9kZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYzMUE2NjYyM0U4QTk0MjAwMkMwQ0EzIC8qIHBhc19jYXJ0ZXNpYW5fdHJlZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMDkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jb2FsaWdu
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjE5MzI1MzIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2Nv
bW1pdF9tb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGNDI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2NvbW1pdF9zcGFuLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjIxNTBFRDI0ODRCQjg2
MDAwRDYzNEIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExRDQ4MjU1RTI4NDIwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9h
dG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQz
QzI1NUE0QkE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2Rp
cmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDJGMjU1OUJBN0EwMEM4RDEx
QiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMzEyNTU5QkI1RDAwQzhEMTFCIC8qIHBhc19jb21wYWN0
X2F0b21pY19iaXRmaXRfaGVhcF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDM3MjU1
QTQ0NzMwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRy
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQzNjI1NUE0NDczMDBDOEQxMUIgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDQ0Qx
NDEyNjU1RTZFNzAwMTcxQTFGIC8qIHBhc19jb21wYWN0X2F0b21pY19lbnVtZXJhYmxlX3Jhbmdl
X2xpc3RfY2h1bmtfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIyNTI0NjBEQjZGMDAx
RDMxRjAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY2RDU2NDkyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0
b21pY19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNjZENTQ5MjQ4NzYwQTgwMEZDNzM0NyAv
KiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGMDRDMjI5MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkU3RUUxMDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hhc2h0YWJsZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY1MTZFRTMyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9j
b25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzgwODkzMjJGQTUzNDEwMEYzNzQ1MSAvKiBw
YXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRDQ4QjQwMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jl
c3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NzEyM0NCRDE5RDAwRjQwREJCIC8qIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX3Bvb2xzX3B0ci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NkIyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNkQ1NjcyMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF92aWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkE1RTQ1QTI0OTJENUJBMDBDRTk2MkEg
LyogcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NjQyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0
X2F0b21pY191bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0YxMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNEY2MTJEMjU5OTA4NzcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX3Nl
Z3JlZ2F0ZWRfaGVhcHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGODcwMEE2MjVCMEE4QzIwMDBF
MUFCRiAvKiB0aGluZ3lfaGVhcF9wcmVmaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDM4
MjU1QTQ0NzMwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0ci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEM0QyNTVBNEJBNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFE
MzkyNTVBNDQ3MzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpdGZpdF92aWV3X3B0ci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY2RDU2NDgyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X2Jv
b3RzdHJhcF9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MUMwMjVBNENCMDkw
MDhCNEE4MiAvKiBwYXNfY29tcGFjdF9jYXJ0ZXNpYW5fdHJlZV9ub2RlX3B0ci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY2RDU2NzAyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBf
cHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY2ODIzQ0JEMTlEMDBGNDBEQkIgLyogcGFz
X2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2NkQ1NDUy
NDg3NjBBODAwRkM3MzQ3IC8qIHBhc19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBh
Y3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1
NjQ3MjNDQUExQkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9wdHIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNjZENTQ4MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMjgyNDYxMUNG
RDAwMUQzMUYwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NzcyM0NDMTQxRTAwRjQwREJCIC8qIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfaGVhcF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1
NjY3MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdl
X2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjZEMjNDQkQxOUQwMEY0
MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZGMDhGNEEyMkE4NDQ2QjAwMzg2NTc1IC8qIHBhc19pbnRyaW5zaWNfaGVh
cF9zdXBwb3J0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkNGQTQ5QTIzODM1MkVDMDBDQ0Q3MjYg
LyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMDQy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19iaXR2ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
OUExRDJEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNkQ1NjY1MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3ZpZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzFBNjQwMjNEQ0Y4NDgwMDJDMENB
MyAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGMzFBNjQ2MjNFNEM0NDEwMDJDMENBMyAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9w
dHJfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQwRjI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjZENTY0RTIzQ0FCQTY1MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDFFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29t
cGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNkQ1NjRCMjNDQUExQkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcHRyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY3OTIzQ0Q3MDU5MDBGNDBEQkIgLyogcGFzX2NvbXBh
Y3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NjIyM0NC
RDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZDNEVDMzkyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2Jq
ZWN0X2NhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMEEyMjk2MDE0MjAwNEY0
MTY2IC8qIHBhc19jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODVFRkRBMjJFMkJFQzcw
MDNBMzYyQiAvKiBwYXNfY29uZmlnX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhC
NDUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEYzMjlBMkIyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19jcmVhdGVfYmFzaWNfaGVh
cF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZFN0VFNjYyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19kZWFsbG9jYXRlLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkZGRDUxNTI1NkIwRkJEMDAxRUI5NEMgLyogcGFzX2RlYWxsb2NhdGlvbl9tb2Rl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwQjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Rl
YWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZCNDdGRDIzMzE1QUU1MDAyQTVFMEMg
LyogcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEYzNzNFNTIyNjU5RUE1RTAwMzRCQTk2IC8qIHBhc19kZWJ1Z19oZWFwLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkJDNjJDMzI2NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjFCMDI1QTNEMEJCMDA4QjRBODIgLyogcGFzX3B0cl9t
aW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxNDcyNTlCQjEwOTAwOEI0QTgyIC8q
IHBhc19wdHJfaGFzaF9zZXQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFREZFMjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZFQTQ1QzIyMzZDRTg5RDAwQjVBMzc1IC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9o
ZWFwX21hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEMjJDRkMyMkNBRjE2NDAwQjIxODQxIC8q
IHBhc19taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3ODA4OUIyMkZBNkYwODAwRjM3
NDUxIC8qIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
OUExQ0U5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5k
YXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzRTIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3RyeV9hbGxvY2F0ZV9jb21tb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDAyMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZENDhCMkMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19yYW5nZV9sb2NrZWRfbW9kZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY5QTFEMjcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxNDIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfcmVmX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY1OUEzOTQyNjY3RjAwRTAwQTM4NjU3IC8qIGppdF9oZWFwX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY1MzE4MEYyMkM5NTI5NDAwM0Y3QjZBIC8qIHBhc19mb3VuZF9pbmRleC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMkQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zbG93
X3BhdGhfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4NzkyQjMyMzhBMUQwQzAwQUVFN0Yx
IC8qIHBhc19oZWFwX3JlZl9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVCNjA4NDIzNUU1
NzIwMDBDQUU2MjkgLyogcGFzX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGRDQ4QjU4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnVsbF9hbGxvY19i
aXRzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU1NjIyOTc0MzM1MDA0RjQxNjYgLyogaXNv
X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkM4NDc5NTIzMkQ2OTQ5MDBCMzg2
QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEYxOTMyNjkyMkYzQjNGMzAwRkJBNzEzIC8qIHBhc19sYXJnZV9oZWFwX3Bo
eXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NkYy
M0NCRDE5RDAwRjQwREJCIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkU3RURGRDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NpbXBsZV90eXBlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjA4M0Y1QTIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMjlBMjQy
M0YxMTMyQjAwQTEzM0M0IC8qIHBhc19iYXNpY19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkU3RUU3RjIyQTFBNTgwMDA0RjQxNjYgLyogcGFzX3JlYWxsb2Nh
dGVfZnJlZV9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVCODNCQzI0OTE4ODhBMDBGNDEw
NTIgLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNjgxMjcwMjJCRDQxOUUwMDM2QTAyQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkU3RUUwMzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2JpdGZpZWxkX3Zl
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMTEyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1
NjZCMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0
aWFsX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkY4RDYyOTIyQzE2NkY1MDBFQzcy
RkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkVCNjY2NTIzMUIyQTU3MDA5QzAwMUIgLyogcGFzX2hlYXBfc3VtbWFyeS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY5QTFEMDUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNUI4M0JGMjQ5MTg5OUUwMEY0MTA1MiAvKiBwYXNfZGVzaWduYXRl
ZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlFOTQ2NzIz
NDY2MEQ0MDA5RkFGREQgLyogcGFzX2R5bGRfc3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
RUE0NUMyMjM2Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzI5QTJEMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5z
dXJlX2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjMyOUEyRTIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9j
YWNoZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MUIxMjVBM0QwQkIwMDhCNEE4MiAvKiBw
YXNfZW51bWVyYWJsZV9wYWdlX21hbGxvYy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxQjUy
NUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3QuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGNEY2MTc4MjU5RDEwNjUwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2JpdGZp
dF9oZWFwcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0RjYxQUUyNUEzRDBCQjAwOEI0QTgyIC8q
IHBhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjRGNjExMTI1OTdGODFFMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9sYXJnZV9o
ZWFwcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxMkQyNTk5MDg3NzAwOEI0QTgyIC8qIHBh
c19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYx
QjMyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNf
bWV0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMzEyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19zZWdyZWdhdGVkX3BhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTY2MjI5RTE0RkEw
MDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMjky
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
REJCMDczMjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9tb2Rl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI0NTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Nv
dW50X2xvb2t1cF9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY0RTIzQ0FCQTY1MDBG
NDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRTdFRTFFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJlZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZENDhCNTUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3No
YXJlZF9oYW5kbGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGREJCMDdCMjJCQkZGODMwMDZCQTVG
QyAvKiBwYXNfYWxsb2NhdG9yX2NvdW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDNEVDM0Qy
MzRBOTFFMzAwQjcxMEEzIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRTdFRTc5MjJBMDQ4QkIwMDRGNDE2NiAvKiBwYXNfdHJ5X3JlYWxsb2NhdGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRTdFRTNCMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfemVyb19tb2Rl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkNDRDE0MTI2NTVFNkU3MDAxNzFBMUYgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX2VudW1lcmFibGVfcmFuZ2VfbGlzdF9jaHVua19wdHIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRTdFRTMyMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc25wcmludGYuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGMzFBNjQwMjNEQ0Y4NDgwMDJDMENBMyAvKiBwYXNfY29tcGFjdF9z
a2lwX2xpc3Rfbm9kZV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTAyMjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RkZENTE1MjU2QjBGQkQwMDFFQjk0QyAvKiBwYXNfZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGOUExRDIwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJf
cGxhY2VtZW50X21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzFGMjY5RjVGQ0EwMDY4
ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjlBMUNFQjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFy
aWFudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0RjYxMDUyNTk3QUY4NzAwOEI0QTgyIC8qIHBh
c19lbnVtZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjE4MTI1OUU3MzRGMDA4QjRB
ODIgLyogcGFzX2VudW1lcmF0b3JfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2
MTFDMjU5ODM4QjEwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24uaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGMTkzMjU0MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRDQ4QjVCMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZlX3Zp
ZXdfdGVtcGxhdGVfbWVtb190YWJsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMEMyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19leHRlbmRlZF9nY2QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
RjA4RjQ0MjJBNjI3QzEwMDM4NjU3NSAvKiBwYXNfZmFzdF9sYXJnZV9mcmVlX2hlYXAuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExRDA0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdh
cGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMTYyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19mYXN0X21lZ2FwYWdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDE5
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY5QTFDRkUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2Nh
dGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0U1MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGQjU3MDZCMjY3RDAzQ0QwMDgwRkE4QiAvKiBwYXNfZmFzdF90bHMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGQzRFQzNGMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFtLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTQ3RjIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX2ZpcnN0
X2xldmVsX3RpbnlfbGFyZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI1
MTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2ZvdW5kX2JpdF9pbmRleC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY1MzE4MEYyMkM5NTI5NDAwM0Y3QjZBIC8qIHBhc19mb3VuZF9pbmRleC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY5QTFEMkMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51
bGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjE5MzI1ODIyRUQwNEE2MDBGQkE3MTMgLyogcGFz
X2ZyZWVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNEUyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19mcmVlX3JhbmdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjU4MjNB
OUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkQ0OEIzQTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkYwOEYzQTIyQTVCNDAzMDAzODY1NzUgLyogcGFzX2dl
bmVyaWNfbGFyZ2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUU2MDIyOUUx
NEZBMDA0RjQxNjYgLyogcGFzX2dldF9hbGxvY2F0aW9uX3NpemUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRTdFRTY0MjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZ2V0X2hlYXAuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGOUExRDREMjU1RjJDRDcwMEM4RDExQiAvKiBwYXNfZ2V0X29iamVjdF9raW5k
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQ0RjI1NjMwNUI0MDBDOEQxMUIgLyogcGFzX2dl
dF9wYWdlX2Jhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMTUxOEZEMjM0NDFFMzIwMDgzMkI1
QyAvKiBwYXNfaGFzX29iamVjdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMTAyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19oYXNodGFibGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTE2
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VF
MTIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEYwNEMyMUQyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY2RjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2hlYXBf
Y29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDkyMjZFMjJCMkQ5MDkwMDdENUQz
QSAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTAw
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxpZ25tZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjlBMUQxRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwODNGNUIyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19oZWFw
X2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkMyRkQzODIzNzYx
NTEzMDA1M0RENDEgLyogcGFzX2hlYXBfZm9yX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZENDhCNjkyM0I2QUVENTAwMjZDNDZEIC8qIHBhc19oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGNDdDMzFCMjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfaGVhcF9raW5kLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjRGNjFCMTI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFi
bGVfcGFnZV9tYWxsb2MuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTA5MjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfY29hbGlnbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOTMyNjMyMkYxMTkz
RDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRTdFRTEzMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9sb2NrLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjZEQjg4QzIzNUU1NEE2MDA2OUNBREIgLyogcGFzX2hlYXBfcGFnZV9w
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMTUyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19oZWFwX3JlZi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4NzkyQjMyMzhBMUQwQzAwQUVF
N0YxIC8qIHBhc19oZWFwX3JlZl9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUxNDIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfcmVmX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEYzMjlBMjMyM0YxMTMyQjAwQTEzM0M0IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkVCNjY2NTIzMUIyQTU3MDA5QzAwMUIgLyogcGFzX2hlYXBf
c3VtbWFyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU0N0UyM0M1NzNFMTAwRjQwREJCIC8q
IHBhc19oZWFwX3RhYmxlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTQ4MjIzQzU4MUMxMDBG
NDBEQkIgLyogcGFzX2hlYXBfdGFibGVfc3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4
QjQ0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZENDhCMzcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19pbW11dGFibGVfdmVjdG9yLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjUxNkVFMzI0NTYwRkY1MDA0RTJCOEQgLyogcGFzX2ludGVy
bmFsX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMUEyMjk2MDE0MjAwNEY0MTY2
IC8qIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRjA4RjRBMjJBODQ0NkIwMDM4NjU3NSAvKiBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMUUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJn
ZV9mcmVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUxQzIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNjZENTRC
MjQ4NzYwQUYwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjc4MDg5MzIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2xhcmdl
X2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY2
RDU0QzI0ODc2MEI0MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZpbml0aW9ucy5k
ZWYgaW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjE2RDI1OUJGRjkxMDA4QjRBODIgLyogcGFzX2Jh
c2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1RTQ4Mzcy
M0Q2OTYwRjAwNDZEQTVDIC8qIHBhc19yYWNlX3Rlc3RfaG9va3MuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMDkyMjZBMjJCMDdDMjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNkQ1NDc5MjNDNTczRTEwMEY0MERCQiAvKiBwYXNfdGlueV9sYXJn
ZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDE0MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkQ0OEI2MDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGQ0JEMDM0MjZBREY5MjUwMEQyNkQ2OCAvKiBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQy
RjI1NTlCQTdBMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzc19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjQ3MjNDQUExQkEwMEY0MERC
QiAvKiBwYXNfY29tcGFjdF9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjY0MjNDQkQx
OUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjVCNjA5MjIzNUU4OEVGMDBDQUU2MjkgLyogcGFzX3Jlc2VydmVkX21lbW9y
eV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NzkyM0NENzA1OTAwRjQwREJC
IC8qIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRDQ4QjM1MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjZENTQ2MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfbGFy
Z2VfZnJlZV9oZWFwX2hlbHBlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRjAwRDM4MjM3NzZE
NjUwMEMyMEFDMCAvKiBwYXNfbGFyZ2VfZnJlZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkYwOEY0MDIyQTVGNjU1MDAzODY1NzUgLyogcGFzX2xhcmdlX2ZyZWVfdmlzaXRvci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMUYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9o
ZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjE5MzI2OTIyRjNCM0YzMDBGQkE3MTMgLyogcGFz
X2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkU3RUUyMDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX21hcC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZDNEVDMzkyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1h
cnlfb2JqZWN0X2NhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMEQyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkQ0OEI1QTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJs
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCRDY3REQyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFs
aWduMzJfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0Y1MjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY5QTFEMjEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZEQkIwNzkyMkI5ODA1NDAwNkJBNUZDIC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDJDMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY5QTFEM0YyNTVBNTBENjAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZp
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMDhGNDgyMkE3NjNGMTAwMzg2NTc1IC8qIHBhc19s
YXJnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQ0ZBNDlBMjM4MzUyRUMwMEND
RDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM4
NDc5NTIzMkQ2OTQ5MDBCMzg2QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRh
dGVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU0N0EyM0M1NzNFMTAwRjQwREJCIC8q
IHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgw
MjkyNUVDNTg4ODAwNzkwQjRBIC8qIHBhc19saW5lX3dvcmRfY29uZmlnLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjMxQTY0NDIzRTM1MDlFMDAyQzBDQTMgLyogcGFzX2xpc3RfZGlyZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkRCQjA3NTIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2Fs
X2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCM0QyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGREJCMDc3MjJCODc3RkEwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGODcwMEFBMjVCMEE4QzMwMDBFMUFCRiAvKiB0aGluZ3lf
aGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjM3MjNBOUFCQjMwMDI2QzQ2
RCAvKiBwYXNfaW1tdXRhYmxlX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFENEYy
NTYzMDVCNDAwQzhEMTFCIC8qIHBhc19nZXRfcGFnZV9iYXNlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjZENTQ4MjIzQzU4MUMxMDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGVfc3RhdGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGOUExRDREMjU1RjJDRDcwMEM4RDExQiAvKiBwYXNfZ2V0X29iamVj
dF9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxNTIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTYzQTIzQzc5RDM3MDBGNDBE
QkIgLyogcGFzX3JhbmdlMTYuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzExMjY5Qjc1MTgw
MDY4ODdBOSAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjRCMjNDQUExQkEwMEY0MERCQiAvKiBwYXNf
Y29tcGFjdF90YWdnZWRfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhBODAyQTI1RUM1ODg4
MDA3OTBCNEEgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkRCQjA3MzIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxf
bW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMEUyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUyMTIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2xvY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUE0NUJE
MjM2Q0Q1QUMwMEI1QTM3NSAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4MDBEMjVDRjY0QzkwMDc5MEI0QSAvKiBwYXNfdHJp
X3N0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY0ODIzQ0FBMUJBMDBGNDBEQkIgLyog
cGFzX2NvbXBhY3RfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0
RjYxODEyNTlFNzM0RjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yX2ludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkU2NzJDNzI1QzIxRjY3MDA2RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRf
dmlld19hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEQkIwNzUyMkI4
NzVBNjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRDQ4QjUxMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZm91bmRfYml0X2luZGV4LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjg1RUZEQTIyRTJCRUM3MDAzQTM2MkIgLyogcGFzX2NvbmZpZ19wcmVm
aXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUU5NDU5MjM0NTIyNjIwMDlGQUZERCAvKiBwYXNf
bG9nLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIxQTI0NjBEQjZGMDAxRDMxRjAgLyogcGFz
X21hZ2F6aW5lLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjAzN0FGNDI1QUVBOTFBMDA3OUI1ODIg
LyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VF
MjIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19tZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZEMjJDRkMyMkNBRjE2NDAwQjIxODQxIC8qIHBhc19taW5faGVhcC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZENDhCMzgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19tb25vdG9uaWNfdGlt
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwOTIyNkEyMkIwN0MyMTAwN0Q1RDNBIC8qIHBhc19t
dXRhdGlvbl9jb3VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFENEMyNTVGMkNENzAwQzhE
MTFCIC8qIHBhc19vYmplY3Rfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMDUyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUEx
RDBDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY2RDU2NkQyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfc2hhcmVkX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhBODEwMzI1RjZBNzk1
MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZE
NTQ4MDIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX3NtYWxsX2xhcmdlX21hcF9lbnRyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY5QTFENDMyNTVBRjczMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2Vf
Y29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDdDMzFCMjMzOTZEMUYwMDJB
MUNGNyAvKiBwYXNfaGVhcF9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjc4MDg5MjIyRkE1
MzQxMDBGMzc0NTEgLyogcGFzX2FsbG9jYXRpb25fY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjlBMUQyODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNTQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4MDY1
MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZFN0VFMzgyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXAuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGOUExRDM5MjU1QTQ0NzMwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9i
aXRmaXRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzIxMjY5RjVGQ0EwMDY4
ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjlBMUQzRDI1NUE0QkE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3Rf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI0
NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2ltbW9ydGFsX2hlYXAuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGOEE4MDY5MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjZENTY0OTIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rf
YXRvbWljX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFEMUYyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlB
MUNGNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRjgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19w
YWdlX2Jhc2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxQjcyNUEzRDBCQjAw
OEI0QTgyIC8qIHBhc19yYW5nZV9iZWdpbl9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYxOTMyNkMyMkY3M0U4NTAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGOUExRDEyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9jb25maWdfa2luZC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdl
X2dyYW51bGVfdXNlX2NvdW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyMDI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjlBMUQyRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Bh
Z2Vfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMjcyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19wYWdlX21hbGxvYy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjQyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYx
OTMyNjMyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGMTkzMjYwMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDIyQ0ZGMjJD
QzAxRDMwMEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRjI0OEZBMjJGQzlFREIwMDc3MjAyRSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZV9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzE1MjY5Qjc1MTgwMDY4ODdBOSAv
KiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZGMDBEMzgyMzc3NkQ2NTAwQzIwQUMwIC8qIHBhc19sYXJnZV9mcmVlX2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjNDMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
OUExRDMxMjU1OUJCNUQwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2hlYXBf
cHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkE1RTQ1ODI0OTJENUJBMDBDRTk2MkEgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZF
N0VFMjEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjlBMUQwNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRDQ4QjRFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnJlZV9yYW5n
ZV9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUzNTIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgxMDYyNUY2
QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNzgwODkwMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfcmFuZ2VfbWluX2hlYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGMjE1MEVCMjQ4NEJCMkEwMDBENjM0QiAvKiBwYXNfYWxsb2NhdG9yX2lu
ZGV4LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQxODI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzQjIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4NzAw
QTgyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjZENTY3MjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
dmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1MjlEREYyNDU1NDYwQzAwMzg1QThDIC8qIGlz
b19oZWFwX3JlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0RjYxQ0EyNUE0Q0QzQjAwOEI0QTgy
IC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEYxOTMyNTMyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19jb21taXRfbW9kZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZGMDhGNDQyMkE2MjdDMTAwMzg2NTc1IC8qIHBhc19mYXN0X2xhcmdlX2Zy
ZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFENDEyNTVBRjI3OTAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQzNzI1
NUE0NDczMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU0N0IyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19w
aHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjc4MDg4NzIyRkEyRTQ5MDBGMzc0NTEgLyogcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2Fj
dGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMjkyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19wcmltaXRpdmVfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0Y5MjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfcHJvbW90ZV9pbnRyaW5zaWNfaGVhcC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY0RjYxNUIyNTlCRjZFQzAwOEI0QTgyIC8qIHBhc19wdHJfaGFzaF9tYXAuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGNEY2MTQ3MjU5QkIxMDkwMDhCNEE4MiAvKiBwYXNfcHRyX2hhc2hf
c2V0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjFCMDI1QTNEMEJCMDA4QjRBODIgLyogcGFz
X3B0cl9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxNTIyNTlCQzMzMzAwOEI0
QTgyIC8qIHBhc19wdHJfd29ya2xpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUU0ODM3MjNE
Njk2MEYwMDQ2REE1QyAvKiBwYXNfcmFjZV90ZXN0X2hvb2tzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkQ0OEI0QTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3JhbmRvbS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYxOTMyNTkyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19yYW5nZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY2RDU2M0EyM0M3OUQzNzAwRjQwREJCIC8qIHBhc19yYW5nZTE2LmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjRGNjFCNzI1QTNEMEJCMDA4QjRBODIgLyogcGFzX3JhbmdlX2JlZ2lu
X21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIyQzIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX3JhbmdlX2xvY2tlZF9tb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjc4MDg5MDIy
RkE1MzQxMDBGMzc0NTEgLyogcGFzX3JhbmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkU3RUU3RjIyQTFBNTgwMDA0RjQxNjYgLyogcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNGNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbW1p
dF9zcGFuLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI2NTIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRjA4RjNBMjJBNUI0MDMwMDM4NjU3NSAvKiBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjY3MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGMzFBNjY2MjNFOEE5NDIwMDJDMENBMyAvKiBwYXNfY2FydGVzaWFuX3RyZWUuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGNjZENTQ5MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGQkQ2N0YyMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFN0QyMkExQTMxQzAwNEY0MTY2IC8qIHBhc19yZWFs
bG9jYXRlX2hlYXBfdGVsZXBvcnRfcnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEQkIwNzcy
MkI4NzdGQTAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZENDhCNTcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3No
YXJlZF9wYWdlX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEM0MyNTVBNEJB
NjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlf
cHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMyOUEyMTIzRjExMzJBMDBBMTMzQzQgLyogcGFz
X2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTJG
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjlBMUNGOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Byb21vdGVfaW50cmluc2ljX2hl
YXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjM4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
bW9ub3RvbmljX3RpbWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzI5QTJEMjNGMUQ2MzYwMEEx
MzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjMyOUEyMjIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hl
YXBfcGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzFBNjQ2MjNFNEM0NDEwMDJD
MENBMyAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkVBNDVCRDIzNkNENUFDMDBCNUEzNzUgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0
cl9wdHJfaGFzaHRhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMxQTY2QTIzRThFNTk0MDAy
QzBDQTMgLyogcGFzX3RyZWVfZGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIz
RDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEYxNDg3MTIyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19sb2NhbF92
aWV3X2NhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ3QzMxQTIzMzk2RDFGMDAyQTFDRjcg
LyogcGFzX2FsbG9jYXRpb25fa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMDhGMzMyMkE1
OEYxMjAwMzg2NTc1IC8qIHBhc19yZWRfYmxhY2tfdHJlZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFN0VFMDEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGxfaGVhcHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQTVFNDU3MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfcmVkdW5kYW50X2xvY2FsX2Fs
bG9jYXRvcl9ub2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjVCNjA5MjIzNUU4OEVGMDBDQUU2
MjkgLyogcGFzX3Jlc2VydmVkX21lbW9yeV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY0RjYwRkIyNTk3OUJDODAwOEI0QTgyIC8qIHBhc19yb290LmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjE5MzI2QzIyRjczRTg1MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY2ODEyNzIyMkJENEJGNDAwMzZBMDJCIC8qIHBhc19zZWdtZW50ZWRfdmVjdG9y
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIxNDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDRDMjFF
MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRDQ4QjU2MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjQ3MjNBOUFCQjMwMDI2QzQ2RCAv
KiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY1MDhENTMyNThFQ0ZEMzAwMTUxRUQ4IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9maXJzdF9lbGlnaWJsZV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzMzIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGOEE4MDY3MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGNDVENUE5MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxf
YWxsb2NhdG9yX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQkQ2N0YxMjVCRTA3ODcwMEE0
OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxQzIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRDQ4QjVEMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJl
Y3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNDEyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkU2NzJCNzI1QzIxRDUzMDA2RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMTkyNDYwREI2RjAwMUQzMUYwIC8q
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjA0QzIxNjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIyMTI0NjBEQjZG
MDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTJGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2Vn
cmVnYXRlZF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjAzN0FGNDI1QUVBOTFBMDA3OUI1
ODIgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2
NkQ1NDUyNDg3NjBBODAwRkM3MzQ3IC8qIHBhc19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJlZV9o
ZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUzQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X3V0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU2MTIyOUUxNEZBMDA0RjQxNjYgLyog
cGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjlBMUQwQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNTlBMzk4MjY2ODMxNzQwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25m
aWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjExMTI1OTdGODFFMDA4QjRB
ODIgLyogcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZF
N0VFMzQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcxMDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX3NlZ3Jl
Z2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTYyMjI5
RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkU3RUUyOTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOTMyNTQyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19lcG9j
aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgwNkEyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxs
b2NfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDAzMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X3BhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1Njc3MjNDQzE0
MUUwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2hlYXBfcHRyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjMxQTYzRTIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY3ODA4OEUyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc192aXJ0dWFs
X3JhbmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUzOTIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX3V0aWxzX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZENDhCMkIy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VFMkUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX2hl
YXBfbG9va3VwX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTMxMjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQz
RjI1NUE1MEQ2MDBDOEQxMUIgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjk3RTYyRTIyQTlBODVGMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGREJCMDc5MjJCOTgwNTQwMDZC
QTVGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkY4RDYyNzIyQzA0QTc3MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZC5kZWYgaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUxMTIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEYwOTIyNkMyMkIyRDg4RTAwN0Q1RDNBIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X3V0aWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA4M0Y1QTIyQzI5NzlCMDBGM0NEQjMgLyog
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5QTFDRUIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX3ZhcmlhbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzRFQzc5MjM1MTcwN0IwMEI3MTBB
MyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2VtcHRpbmVzc19raW5kLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkY4RDYyOTIyQzE2NkY1MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxp
bmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzNTIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI2NTIz
QTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGluZXMuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjU1MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVn
YXRlZF9zaGFyZWRfaGFuZGxlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzQzIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkQ0OEI1NzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI2MDIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGNUU1Q0YyMjNCRkJGQjkwMEFBMEI2RiAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
dmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI2NDIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRDQ4QjU0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0OTIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFNjcyQzcyNUMy
MUY2NzAwNkY2MEEyIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGMDRDMjIyMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVn
YXRlZF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjRGMjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOUExQ0U5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2Jv
dW5kYXJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyNjI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjE4RTYzRTI2MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeV9ieV9zaXplLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjc4MDg4NzIyRkEyRTQ5MDBGMzc0
NTEgLyogcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY0RjYwRkIyNTk3OUJDODAwOEI0QTgyIC8qIHBhc19yb290LmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjQ3QzMxRjIzMzk2RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tz
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQ0QzI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX29i
amVjdF9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY2MjIzQ0JEMTlEMDBGNDBEQkIg
LyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkM0RUMz
QzIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX3N0cmluZ19zdHJlYW0uaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGQjU3MDZCMjY3RDAzQ0QwMDgwRkE4QiAvKiBwYXNfZmFzdF90bHMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNkQ1NjRDMjNDQUExQkEwMEY0MERCQiAvKiBwYXNfc2ltcGxlX2ZyZWVfaGVh
cF9oZWxwZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkYwOEYzRDIyQTVEQzY5MDAzODY1NzUg
LyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdF
REZEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2ltcGxlX3R5cGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRTdFRTE2MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEYxOTMyNjAyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYwNEMyMjUyNDYwREI2RjAwMUQzMUYw
IC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGOUExQ0Y4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTIyMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
bWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjYyMjNBOUFCQjMwMDI2
QzQ2RCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjRGNjExQzI1OTgzOEIxMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI2OTIzQjZBRUQ1MDAyNkM0NkQgLyogcGFzX2hlYXBf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0NUQ1QUIyNkFCNzMxNDAwQzM1RDkzIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGOUExQ0U2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxz
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNGQTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE1MThGRDIzNDQx
RTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdF
RTBFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY2RDU0N0UyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzQTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Z1
bGxfYWxsb2NfYml0c19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU2MzIyOUUx
NEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4
QTgxMDUyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkU3RUUxMjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfY29uZmlnLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkQ0OEI2NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQkQ2N0RDMjVCRDM2M0EwMEE0OTBE
MiAvKiBtaW5hbGlnbjMyX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTlGOThDMjVDQjJD
RTgwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMUE2
M0UyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRTdFRTYwMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEYwOTIyNkUyMkIyRDkwOTAwN0Q1RDNBIC8qIHBhc19oZWFwX2Nv
bmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOTMyNTgyMkVEMDRBNjAwRkJBNzEz
IC8qIHBhc19mcmVlX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjA4RjQwMjJBNUY2NTUw
MDM4NjU3NSAvKiBwYXNfbGFyZ2VfZnJlZV92aXNpdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjVFNUNFRjIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGRTdFRTFGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfaGVhcC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRTcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfbWF4X2ZyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMDRDMjFEMjQ2MERCNkYwMDFEMzFG
MCAvKiBwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYx
QjUyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGRTdFRTA4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY2FyZXNfYWJvdXRf
c2l6ZV9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMyOUEyMzIzRjExMzJCMDBBMTMzQzQg
LyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNjZENTRD
MjQ4NzYwQjQwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmluaXRpb25zLmRlZiBp
biBIZWFkZXJzICovLAorCQkJCTBGOUExRDAxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0
X3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxNzgyNTlEMTA2NTAwOEI0
QTgyIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjZENTY2ODIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY3ODA4ODQyMkZBMjJEMjAwRjM3NDUxIC8qIHBhc192aXJ0
dWFsX3JhbmdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjU3MDkxQTI1NkFCNDE3MDAwMzdCQjMg
LyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkMyRkQzODIzNzYxNTEzMDA1M0RENDEgLyogcGFzX2hlYXBfZm9yX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NzAyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0
X2hlYXBfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjFDMDI1QTRDQjA5MDA4QjRBODIg
LyogcGFzX2NvbXBhY3RfY2FydGVzaWFuX3RyZWVfbm9kZV9wdHIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNTE2RUU3MjQ1NjFBNjAwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjE4RTYzRTI2MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdl
X2RpcmVjdG9yeV9ieV9zaXplLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQ0NTI1NURCRTYx
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEYwOTIyNkMyMkIyRDg4RTAwN0Q1RDNBIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X3V0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMxQTY0NDIzRTM1MDlFMDAyQzBDQTMgLyog
cGFzX2xpc3RfZGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCNDdGRTIzMzE1QUU1
MDAyQTVFMEMgLyogcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGMTkzMjU5MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfcmFuZ2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRTdFRTI3MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfcGFnZV9tYWxsb2MuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjMzMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3RjUxQkYyMzE1
OUVDMDAwNzU1MkFFIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZENDhCNTYyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMUE2M0MyM0RDRjgwNDAwMkMwQ0EzIC8qIHBh
c19za2lwX2xpc3RfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMkQyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19zbG93X3BhdGhfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZE
NDhCNEYyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY5QTFEMzYyNTVBNDQ3MzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0
b21pY19iaXRmaXRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjRBMjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfcmFuZG9tLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTQ3RjIz
QzU3M0UxMDBGNDBEQkIgLyogcGFzX2ZpcnN0X2xldmVsX3RpbnlfbGFyZ2VfbWFwX2VudHJ5Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQxNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3Rf
bWVnYXBhZ2Vfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZCQzYyQzMyNjVGMTJBMzAwNUE1
NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMkMy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zbG93X3BhdGhfbW9kZV9wcmVmaXguaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGNkQ1NDgwMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfc21hbGxfbGFyZ2VfbWFw
X2VudHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUzMjIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX3NucHJpbnRmLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM0RUMzRDIzNEE5MUUzMDBCNzEw
QTMgLyogcGFzX3N0YXR1c19yZXBvcnRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMzMy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zdHJlYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzRF
QzNDMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5QTFEMEUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY5QTFDRTMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21h
cF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMzUyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTM0MjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZBNUU0NTgyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGN0Y1MUJGMjMxNTlFQzAw
MDc1NTJBRSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNkQ1NDc5MjNDNTczRTEwMEY0MERCQiAvKiBwYXNfdGlueV9sYXJnZV9tYXBfZW50cnku
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzFBNjZBMjNFOEU1OTQwMDJDMENBMyAvKiBwYXNfdHJl
ZV9kaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEE4MDBEMjVDRjY0QzkwMDc5MEI0
QSAvKiBwYXNfdHJpX3N0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUU2MzIyOUUxNEZB
MDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VF
NjIyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfYXJyYXkuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRDQ4QjNFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2Nv
bW1vbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNjEyMjlFMTRGQTAwNEY0MTY2IC8qIHBh
c190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZFN0VFNjUyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUU3OTIyQTA0OEJCMDA0RjQxNjYgLyogcGFzX3RyeV9y
ZWFsbG9jYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjU5QTM5NjI2NjdGMDBFMDBBMzg2NTcg
LyogcGFzX3RyeV9zaHJpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTY3MkI3MjVDMjFENTMw
MDZGNjBBMiAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkYwOEYzRDIyQTVEQzY5MDAzODY1NzUgLyogcGFzX3NpbXBsZV9sYXJn
ZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTlBMzk1MjY2N0YwMEUwMEEzODY1
NyAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgxMDIy
NUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2lubmFyZHMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRjI0OEZBMjJGQzlFREIwMDc3MjAyRSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZV9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTBBMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcxMzI2OUI3NTE4MDA2ODg3
QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGOUExRDI0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9zaGFyaW5n
X21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MTUyMjU5QkMzMzMwMDhCNEE4MiAvKiBw
YXNfcHRyX3dvcmtsaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUzNzIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkU3RUUzODIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxpdHlfaGVhcC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VFMEQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXBf
Y29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUwNTIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUU5NDY3MjM0
NjYwRDQwMDlGQUZERCAvKiBwYXNfZHlsZF9zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZG
OEQ2MjcyMkMwNEE3NzAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQu
ZGVmIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEMjJDRkYyMkNDMDFEMzAwQjIxODQxIC8qIHBhc19w
YWdlX3NoYXJpbmdfcG9vbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU0N0EyM0M1NzNFMTAw
RjQwREJCIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEYzMjlBMkUyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF93aXRoX3BhZ2Vf
Y2FjaGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjU5QTM5NjI2NjdGMDBFMDBBMzg2NTcgLyog
cGFzX3RyeV9zaHJpbmsuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MUIzMjVBM0QwQkIwMDhC
NEE4MiAvKiBwYXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNjZENTRCMjQ4NzYwQUYwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9o
ZWFwX2RlY2xhcmF0aW9ucy5kZWYgaW4gSGVhZGVycyAqLywKKwkJCQkwRjZEQjg4QzIzNUU1NEE2
MDA2OUNBREIgLyogcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY1OUEzOTMyNjY3RjAwRTAwQTM4NjU3IC8qIGppdF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjhBODAyOTI1RUM1ODg4MDA3OTBCNEEgLyogcGFzX2xpbmVfd29yZF9jb25maWcuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGMzI5QTJCMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfY3JlYXRlX2Jh
c2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGOUExQ0VEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGOUExRDQ4MjU1RTI4NDIwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9h
dG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkE1RTQ1
QTI0OTJENUJBMDBDRTk2MkEgLyogcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRkUyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRDQ4QjQ5MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkU3RUU3NzIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGNTA4RDUzMjU4RUNGRDMwMDE1MUVEOCAvKiBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFN0VFMEIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19kZWFsbG9jYXRvci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY5QTFDRjEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpYXNpbmdf
ZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5N0U2MkUyMkE5QTg1RjAwQzM1
NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkM0RUM3OTIzNTE3MDdCMDBCNzEwQTMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5lc3Nf
a2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgwNkIyNUVFQ0MxRDAwNzkwQjRBIC8qIGJt
YWxsb2NfaGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyNTI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGOUExRDFFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9n
cmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjQxMjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY1RTVDRUUyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNjgxMjcyMjJCRDRCRjQwMDM2QTAyQiAvKiBwYXNfc2VnbWVudGVk
X3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxNjQyNTlCRkI4NTAwOEI0QTgyIC8q
IHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRTdFRTIwMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfbWFwLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjU3MDkxODI1NkFCMjExMDAwMzdCQjMgLyogcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEIyRDIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3
RUUzQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkU3RUUzOTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxzX3ByZWZpeC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY2ODEyNzAyMkJENDE5RTAwMzZBMDJCIC8qIHBhc192ZXJzaW9uZWRfZmllbGQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGNzgwODg0MjJGQTIyRDIwMEYzNzQ1MSAvKiBwYXNfdmly
dHVhbF9yYW5nZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3ODA4OEUyMkZBNTM0MTAwRjM3NDUx
IC8qIHBhc192aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3
RUUzQjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3plcm9fbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY4NzAwQTgyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjg3MDBBQTI1QjBBOEMzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjg3MDBBNjI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hl
YXBfcHJlZml4LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQxOTI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzczRTUy
MjY1OUVBNUUwMDM0QkE5NiAvKiBwYXNfZGVidWdfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY5QTFEMTcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNDcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI2
MjAsMzEgKzI1NDYsMzAgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTBGREVBNDYxMjI4
QjY1MUIwMDg1RTM0MCAvKiBCaXRmaWVsZFZlY3RvclRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGQzY4MUVEMjExMjdBMTkwMDNDNkExMyAvKiBUZXN0SGFybmVzcy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkwRkYwOEYzNjIyQTU5REIzMDAzODY1NzUgLyogUmVkQmxhY2tUcmVlVGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNjgyMzgyMTI5RDRFRTAwM0M2QTEzIC8qIENvYWxp
Z25UZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjUxOTNFNzI2NkFFNUQ0MDA0ODNBMkMg
LyogSklUSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGODcwMEMyMjVCMEIyNkEw
MDBFMUFCRiAvKiBUaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRjVCNjA5NDIzNUU5MTk5MDBDQUU2MjkgLyogSXNvSGVhcFJlc2VydmVk
TWVtb3J5VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQjY2NjgyMzFDODdCQzAwOUMw
MDFCIC8qIExhcmdlU2hhcmluZ1Bvb2xEdW1wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTMx
ODExMjJDOTU0RUQwMDNGN0I2QSAvKiBCaXR2ZWN0b3JUZXN0cy5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkwRjMxQTY2ODIzRThCMzM2MDAyQzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3RzLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTBGQzY4MjM4MjEyOUQ0RUUwMDNDNkExMyAvKiBDb2FsaWduVGVz
dHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNjgyMzEyMTI5Q0I0NjAwM0M2QTEzIC8qIEV4
dGVuZGVkR0NEVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNjgyMTUyMTI0OEE3OTAw
M0M2QTEzIC8qIEhhc2h0YWJsZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUE0NUM1
MjM2RTEwQUEwMEI1QTM3NSAvKiBJc29EeW5hbWljUHJpbWl0aXZlSGVhcFRlc3RzLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTBGMzFBNjQyMjNERDRFMDIwMDJDMENBMyAvKiBTa2lwTGlzdFRlc3Rz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQTE4NTQ2MjM2QjNDODIwMDM2MDlBRCAvKiBJc29I
ZWFwQ2hhb3NUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkYyNDhGRDIzMENDNENCMDA3
NzIwMkUgLyogSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEZFQTQ1QzUyMzZFMTBBQTAwQjVBMzc1IC8qIElzb0R5bmFtaWNQcmltaXRpdmVIZWFwVGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RTQ4M0EyM0Q2OUY2MTAwNDZEQTVDIC8qIFJhY2VU
ZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjg3MDBGNTI1QjE0QzhCMDAwRTFBQkYgLyog
VFNEVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNjcyM0I1ODk5MTAwMjZDNDZE
IC8qIElzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQkwRjVCNjA5NDIzNUU5MTk5MDBDQUU2MjkgLyogSXNvSGVhcFJlc2VydmVkTWVtb3J5VGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1MDhENUMyNThFRENBNzAwMTUxRUQ4IC8qIElzb0hl
YXBUYWJsaW5nVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1MTkzRTcyNjZBRTVENDAw
NDgzQTJDIC8qIEpJVEhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkM2NDE5MTIx
Mzc0NUZBMDA0MENFNUUgLyogTGFyZ2VGcmVlSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCTBGRUI2NjY4MjMxQzg3QkMwMDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sRHVtcC5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkwRkVCNjY2QTIzMURBODZGMDA5QzAwMUIgLyogTGFyZ2VTaGFy
aW5nUG9vbFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGMzFBNjY4MjNFOEIzMzYwMDJD
MENBMyAvKiBDYXJ0ZXNpYW5UcmVlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZGMjQ4
RkQyMzBDQzRDQjAwNzcyMDJFIC8qIElzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTBGREVBNDYxMjI4QjY1MUIwMDg1RTM0MCAvKiBCaXRmaWVsZFZlY3RvclRl
c3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUE0NUJGMjM2Q0RBRUQwMEI1QTM3NSAvKiBM
b2NrRnJlZVJlYWRQdHJQdHJIYXNodGFibGVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RkQyMkQwODIyQ0Q4QTc1MDBCMjE4NDEgLyogTWluSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTBGNUU0ODNBMjNENjlGNjEwMDQ2REE1QyAvKiBSYWNlVGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZGMDhGMzYyMkE1OURCMzAwMzg2NTc1IC8qIFJlZEJsYWNrVHJlZVRlc3Rz
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGMzFBNjQyMjNERDRFMDIwMDJDMENBMyAvKiBTa2lw
TGlzdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGQzY4MUVEMjExMjdBMTkwMDNDNkEx
MyAvKiBUZXN0SGFybmVzcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3MDBDMjI1QjBCMjZB
MDAwRTFBQkYgLyogVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY4NzAwRjUyNUIxNEM4QjAwMEUxQUJGIC8qIFRTRFRlc3RzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTBGRUI2NjZBMjMxREE4NkYwMDlDMDAxQiAvKiBMYXJnZVNoYXJp
bmdQb29sVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNjgyMTUyMTI0OEE3OTAwM0M2
QTEzIC8qIEhhc2h0YWJsZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTMxODEzMjJD
OTYwOUQwMDNGN0I2QSAvKiBVdGlsc1Rlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQzY0
MTkxMjEzNzQ1RkEwMDQwQ0U1RSAvKiBMYXJnZUZyZWVIZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZDNjgyMzEyMTI5Q0I0NjAwM0M2QTEzIC8qIEV4dGVuZGVkR0NEVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yNjUyLDE1MSArMjU3NywxNDIgQEAKIAkJCWlzYSA9IFBCWFNv
dXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZp
bGVzID0gKAotCQkJCTBGOEE4MDY2MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGOEE4MDY4MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hl
YXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjhBODEwNDI1RjZBNzk1MDA3OTBCNEEg
LyogaG90Yml0X2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOEE4MTAxMjVGNkE3OTUwMDc5
MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFRTc2
MjI5RjAxMEYwMDRGNDE2NiAvKiBpc29faGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VF
NTcyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEY1RTVDRjAyM0JFRjU1MzAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGNUU1Q0VDMjNCRUYzNjAwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwX2NvbmZp
Zy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1OUEzOUUyNjY4NDcwRTAwQTM4NjU3IC8qIGppdF9o
ZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjU5QTM5QjI2Njg0NEEzMDBBMzg2NTcgLyogaml0
X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURENTIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNEVD
MzcyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRjRGNjBGQTI1OTc5QkM4MDA4QjRBODIgLyogcGFzX3Jvb3QuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGQkQ2N0RBMjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXAuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGQkQ2N0RCMjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hl
YXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkJENjdGMzI1QkUwNzg3MDBBNDkwRDIg
LyogcGFnZXNpemU2NGtfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZCRDY3RjAyNUJFMDc4
NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkU3RURCNDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsaWdubWVudC5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEY5QTFEMEEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJl
Y3Rvcmllcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQjUyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19hbGxfaGVhcHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMUFFQ0U4MjY1ODE5NjEwMDBD
NTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCNDYy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGNDdDMzFFMjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlv
bl9jYWxsYmFja3MuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExQ0VGMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjYz
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRkQ0OEIzRjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
cl90YWJsZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1OUEzOUMyNjY4NDRBMzAwQTM4NjU3IC8q
IHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGOUExRDEzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGOUExRDEwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0
X2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFDRkMyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
OUExRDBEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY5QTFEMDkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFEMkEyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
OUExRDFDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuYyBpbiBTb3VyY2VzICov
LAotCQkJCTBGOUExRDExMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2UuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGOUExRDE1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDJCMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUEx
Q0VFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGRTdFREI2MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1QjYwODMyMzVFNTcyMDAwQ0FFNjI5IC8qIHBhc19ib290
c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURCOTIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvYWxpZ24uYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUEx
Q0YwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGNkQ1NjRBMjNDQUExQkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9ib290c3RyYXBfZnJl
ZV9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjZENTY2RTIzQ0JEMTlEMDBGNDBEQkIgLyog
cGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2NkQ1
NDcyNDg3NjBBODAwRkM3MzQ3IC8qIHBhc19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFw
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkM0RUMzRTIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2Nv
bXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjMy
OUEyQzIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVz
X3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RUU2NzIyOUUx
NEZBMDA0RjQxNjYgLyogcGFzX2RlYWxsb2NhdGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQkM2
MkMyMjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdfc3BlY3RydW0uYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGRTdFREQxMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmMg
aW4gU291cmNlcyAqLywKIAkJCQkwRjc4MDg5QTIyRkE2RjA4MDBGMzc0NTEgLyogcGFzX2RlZmVy
cmVkX2RlY29tbWl0X2xvZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1QjgzQkQyNDkxODg4QTAw
RjQxMDUyIC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjlFOTQ2NjIzNDY2MEQ0MDA5RkFGREQgLyogcGFzX2R5bGRfc3RhdGUuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGRUE0NUMzMjM2Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHluYW1pY19wcmlt
aXRpdmVfaGVhcF9tYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMzI5QTMwMjNGMUQ2MzYwMEEx
MzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRjMyOUEyRjIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3VyZV9o
ZWFwX3dpdGhfcGFnZV9jYWNoZXMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MUI2MjVBM0Qw
QkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9wYWdlX21hbGxvYy5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY0RjYxQjQyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xp
c3QuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MTc3MjU5RDEwNjUwMDhCNEE4MiAvKiBwYXNf
ZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxQjIyNUEz
RDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2Vz
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjRGNjExMDI1OTdGODFFMDA4QjRBODIgLyogcGFzX2Vu
dW1lcmF0ZV9sYXJnZV9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxMkUyNTk5MDg3
NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEY0RjYxQUYyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfdW5hY2Nv
dW50ZWRfcGFnZXNfYXNfbWV0YS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxMDYyNTk3QUY4
NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjRGNjEx
QjI1OTgzOEIxMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRjE5MzI1NjIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2Vwb2NoLmMgaW4gU291cmNl
cyAqLywKLQkJCQkwRkQ0OEIzNDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3
X3RlbXBsYXRlX21lbW9fdGFibGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFREJBMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfZXh0ZW5kZWRfZ2NkLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkYw
OEY0MzIyQTYyN0MxMDAzODY1NzUgLyogcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRjlBMUNGMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVy
X3RhYmxlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjQ3QzMxRTIzMzk2RTBCMDAyQTFDRjcgLyog
cGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkVBNDVCQzIz
NkNENUFDMDBCNUEzNzUgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmMg
aW4gU291cmNlcyAqLywKKwkJCQkwRjE0ODcxNDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2hlYXBf
cnVudGltZV9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MTc3MjU5RDEwNjUwMDhC
NEE4MiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEZENDhCM0YyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUu
YyBpbiBTb3VyY2VzICovLAogCQkJCTBGOUExQ0VDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFz
dF9tZWdhcGFnZV9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFENDkyNTVFMjg0MjAw
QzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RkM0RUMzODIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2ZkX3N0cmVhbS5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY5QTFEMDAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRkU3RURDMDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXAuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGMUJGRDQ0MjY2NDU3RjEwMENFQzI4RCAvKiBwYXNfaGVhcF9j
b25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNkQ1NjY2MjNDQkQxOUQwMEY0MERCQiAvKiBw
YXNfaGVhcF9jb25maWdfa2luZC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQkQyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19oZWFwX2NvbmZpZ191dGlscy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEZDMkZEMzkyMzc2MTUxMzAwNTNERDQxIC8qIHBhc19oZWFwX2Zvcl9jb25maWcuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGRTdFREJFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9sb2NrLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURCRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBf
cmVmLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkM0RUMzQTIzNEE5MUUzMDBCNzEwQTMgLyogcGFz
X2hlYXBfc3VtbWFyeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2RDU0N0MyM0M1NzNFMTAwRjQw
REJCIC8qIHBhc19oZWFwX3RhYmxlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjE0ODcyMDI2OUY1
RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRTdFRTc2MjI5RjAxMEYwMDRGNDE2NiAvKiBpc29faGVhcC5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEY5QTFEMUMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZENDhCMzkyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19pbW1vcnRhbF9oZWFw
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjc4MDg4RjIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2xh
cmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RjY2RDU0QTI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURDNjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdl
X2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGQkQ2N0YwMjVCRTA3ODcwMEE0OTBEMiAvKiBw
YWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCNTIyM0E5
QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRkQ0OEIzNjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEZEMjJEMDAyMkNDMDFEMzAwQjIxODQxIC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY4QTgxMDEyNUY2QTc5NTAwNzkw
QjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYxNTEy
NTlCQzMzMzAwOEI0QTgyIC8qIHBhc19wdHJfd29ya2xpc3QuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTBGMTkzMjY4MjJGM0IzRjMwMEZCQTcxMyAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdl
X3NoYXJpbmdfY2FjaGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREM3MjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfbGFyZ2VfbWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkNGQTQ5QjIzODM1
MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEY2RDU0N0QyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVh
cC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZEQkIwNzQyMkI4NzVBNjAwNkJBNUZDIC8qIHBhc19s
b2NhbF9hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMDRDMjFGMjQ2MERCNkYwMDFE
MzFGMCAvKiBwYXNfbG9jay5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQTQ1QkMyMzZDRDVBQzAw
QjVBMzc1IC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY5RTk0NTgyMzQ1MjI2MjAwOUZBRkREIC8qIHBhc19sb2cuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGMDRDMjI0MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGRTdFREI0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxpZ25t
ZW50LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEI0ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZGMjQ4Rjky
MkZDOUVEQjAwNzcyMDJFIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uYyBpbiBT
b3VyY2VzICovLAorCQkJCTBGQzRFQzNBMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfaGVhcF9zdW1t
YXJ5LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURCRDIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X2hlYXBfY29uZmlnX3V0aWxzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURCRjIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX2hlYXBfcmVmLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjVFNUNGMDIz
QkVGNTUzMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZE
NDhCNEMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZFN0VERDgyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlscy5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEY1QjgzQkQyNDkxODg4QTAwRjQxMDUyIC8qIHBhc19kZXNp
Z25hdGVkX2ludHJpbnNpY19oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkMyRkQzOTIzNzYx
NTEzMDA1M0RENDEgLyogcGFzX2hlYXBfZm9yX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY2RDU2NjYyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRkU3RURDMDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXAuYyBpbiBT
b3VyY2VzICovLAorCQkJCTBGNTlBMzlCMjY2ODQ0QTMwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25m
aWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMzFBNjNEMjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNf
c2tpcF9saXN0LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjAzN0FGMzI1QUVBOTFBMDA3OUI1ODIg
LyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VE
QzcyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9tYXAuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRTdFREJFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9sb2NrLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRjMyOUEyQzIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFw
X3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMgaW4gU291cmNlcyAqLywKKwkJCQkw
RjZENTY2RTIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEZBNUU0NTkyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc19yZWR1
bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNkQ1NjQ2
MjNDQUExQkEwMEY0MERCQiAvKiBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxwZXJzLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRjhBODEwNDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGOUExQ0ZEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfdmVyc2lv
bmVkX2ZpZWxkLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjEwNjI1OTdBRjg3MDA4QjRBODIg
LyogcGFzX2VudW1lcmF0b3IuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMTkzMjZEMjJGNzNFODUw
MEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlFOTQ2NjIz
NDY2MEQ0MDA5RkFGREQgLyogcGFzX2R5bGRfc3RhdGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
NjZENTQ3MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVf
aGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RTQ4MzgyM0Q2OTYwRjAwNDZEQTVDIC8qIHBh
c19yYWNlX3Rlc3RfaG9va3MuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREQzMjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfc3RyZWFtLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjg3MDBBOTI1QjBB
OEMzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkw
RjRGNjFBRjI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdl
c19hc19tZXRhLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RUU1NzIyOTc0MzM1MDA0RjQxNjYg
LyogaXNvX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEI1MzIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGRTdFREM4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGQzRFQzNCMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RhdHVz
X3JlcG9ydGVyLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjExMDI1OTdGODFFMDA4QjRBODIg
LyogcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1OUEz
OUMyNjY4NDRBMzAwQTM4NjU3IC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2Rh
dGEuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjYzMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjA0QzIxRjI0NjBEQjZG
MDAxRDMxRjAgLyogcGFzX2xvY2suYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNDVENUFBMjZBQjcz
MTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRkU3RURDNjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2hlYXAu
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGRjA4RjQzMjJBNjI3QzEwMDM4NjU3NSAvKiBwYXNfZmFz
dF9sYXJnZV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNUI2MDgzMjM1RTU3MjAw
MENBRTYyOSAvKiBwYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZENDhCMkUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY4NzAwQTcyNUIwQThDMjAw
MEUxQUJGIC8qIHRoaW5neV9oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEI0QjIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX21vbm90b25pY190aW1lLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RjlBMUQwNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY5QTFDRjIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFN0VEQ0IyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19wYWdl
X21hbGxvYy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYxOTMyNjIyMkYxMTkzRDAwRkJBNzEzIC8q
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDIy
RDAwMjJDQzAxRDMwMEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGNEY2MUNCMjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZh
dGlvbl9wYWdlX2xpc3QuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRjI0OEY5MjJGQzlFREIwMDc3
MjAyRSAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRjc4MDg4RjIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZl
cnJlZF9jb21taXRfbG9nLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUNGMDI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjY2RDU0QTI0
ODc2MEE4MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRjE4RTYzRjI2MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9ieV9zaXplLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUQyQjI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3
RUU2NzIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2RlYWxsb2NhdGUuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGRDQ4QjM0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxh
dGVfbWVtb190YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1OUEzOUUyNjY4NDcwRTAwQTM4
NjU3IC8qIGppdF9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkM0RUMzODIzNEE5MUUzMDBC
NzEwQTMgLyogcGFzX2ZkX3N0cmVhbS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2RDU0N0QyM0M1
NzNFMTAwRjQwREJCIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZFN0VEQ0MyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19wcmltaXRpdmVfaGVhcF9y
ZWYuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MTUxMjU5QkMzMzMwMDhCNEE4MiAvKiBwYXNf
cHRyX3dvcmtsaXN0LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjVFNDgzODIzRDY5NjBGMDA0NkRB
NUMgLyogcGFzX3JhY2VfdGVzdF9ob29rcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCMzAy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19yYW5kb20uYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdF
REJCMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZGMDhGMzQyMkE1OEYxMjAwMzg2NTc1IC8qIHBhc19yZWRfYmxhY2tfdHJl
ZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZBNUU0NTkyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc19y
ZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNUI2
MDkxMjM1RTg4RUYwMENBRTYyOSAvKiBwYXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRjRGNjBGQTI1OTc5QkM4MDA4QjRBODIgLyogcGFzX3Jvb3QuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGMTkzMjZEMjJGNzNFODUwMEZCQTcxMyAvKiBwYXNfc2NhdmVu
Z2VyLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjA0QzIyMDI0NjBEQjZGMDAxRDMxRjAgLyogcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMDRD
MjFDMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyBpbiBT
b3VyY2VzICovLAorCQkJCTBGOUU5NDU4MjM0NTIyNjIwMDlGQUZERCAvKiBwYXNfbG9nLmMgaW4g
U291cmNlcyAqLywKKwkJCQkwRkRCQjA3NDIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2Fs
bG9jYXRvci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY3RjUxQkUyMzE1OUVDMDAwNzU1MkFFIC8q
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhC
NTkyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZENDhCNTMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjA0QzIxNTI0NjBEQjZGMDAxRDMx
RjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRkU3RURDRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VERDEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2UuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOTdFNjMwMjJBOUFBQzEwMEMzNTVG
OCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZE
NDhCNUUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQu
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjRDMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjQ4MjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRkQ0OEIyRTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3BhZ2VfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEI1MjIzQTlBQkIzMDAy
NkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRTdFREI1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxsX2hlYXBzLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRjlBMUNFRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmMgaW4g
U291cmNlcyAqLywKIAkJCQkwRkQ0OEI1QzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjM2MjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjE4
RTYzRjI2MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXpl
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjZENTY0NjIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX3Np
bXBsZV9mcmVlX2hlYXBfaGVscGVycy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZGMDhGM0UyMkE1
REM2OTAwMzg2NTc1IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRjMxQTYzRDIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdC5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEZDNEVDM0IyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19zdGF0dXNfcmVw
b3J0ZXIuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREQzMjI5NjAxNDIwMDRGNDE2NiAvKiBw
YXNfc3RyZWFtLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkM0RUMzNzIzNEE5MUUzMDBCNzEwQTMg
LyogcGFzX3N0cmluZ19zdHJlYW0uYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDIyMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUEx
Q0U4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGRTdFREQ1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjZENTY0QTIzQ0FBMUJBMDBGNDBEQkIgLyogcGFz
X2NvbXBhY3RfYm9vdHN0cmFwX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYx
QjIyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVk
X3BhZ2VzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUQwRDI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFREQ0MjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEZBNUU0NTYyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGN0Y1MUJFMjMxNTlFQzAwMDc1
NTJBRSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGOUExRDA2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRkQ0OEIzMDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3JhbmRvbS5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZFQTQ1QzMyMzZDRTg5RDAwQjVBMzc1IC8qIHBhc19keW5hbWljX3ByaW1p
dGl2ZV9oZWFwX21hcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY4QTgwNjgyNUVFQ0MxRDAwNzkw
QjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MUI2
MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9wYWdlX21hbGxvYy5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZDRkE0OUIyMzgzNTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5n
X3Bvb2wuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MUI0MjVBM0QwQkIwMDhCNEE4MiAvKiBw
YXNfZW51bWVyYWJsZV9yYW5nZV9saXN0LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjE5MzI1NjIy
RUQwNEE2MDBGQkE3MTMgLyogcGFzX2Vwb2NoLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEI1
RTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY0RjYxQ0IyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2Fk
X3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQjYyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19ib290c3RyYXBfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRjk3RTYzMDIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFREQ3MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
dXRpbGl0eV9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURCQjIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdF
REQ4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
OUExQ0ZEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRjE0ODcyMjI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3ODA4ODUyMkZBMjJEMjAwRjM3NDUxIC8q
IHBhc192aXJ0dWFsX3JhbmdlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3MDBBNzI1QjBBOEMy
MDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGODcwMEE5MjVC
MEE4QzMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGNkQ1NDdDMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZS5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZGMDhGM0UyMkE1REM2OTAwMzg2NTc1IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJl
ZV9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEI0NjIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5
QTFENDkyNTVFMjg0MjAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRkU3RURCOTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvYWxpZ24uYyBp
biBTb3VyY2VzICovLAorCQkJCTBGQkQ2N0RCMjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMy
X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjVCNjA5MTIzNUU4OEVGMDBDQUU2
MjkgLyogcGFzX3Jlc2VydmVkX21lbW9yeV9wcm92aWRlci5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY5QTFEMTAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRkJENjdGMzI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVh
cC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYzMjlBMkYyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19l
bnN1cmVfaGVhcF93aXRoX3BhZ2VfY2FjaGVzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkM0RUMz
RTIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tz
LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjE5MzI2MjIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMTUyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEY0RjYxMkUyNTk5MDg3NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfc2VncmVn
YXRlZF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMDAyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19mcmVlX2dyYW51bGVzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURDRjIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEYxQkZENDQyNjY0NTdGMTAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZBNUU0NTYyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGQkM2MkMyMjY1RjEyQTMwMDVB
NTcyMCAvKiBwYXNfZGVidWdfc3BlY3RydW0uYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNUU1Q0VD
MjNCRUYzNjAwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8s
CisJCQkJMEY5QTFEMTEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5jIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY4QTgwNjYyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEYzMjlBMzAyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1
cmVfaGVhcF9mb3JjZWRfaW50b19yZXNlcnZlZF9tZW1vcnkuYyBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmMJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2Jt
YWxsb2NfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2MywxMSBAQCB2b2lkKiBibWFs
bG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWQoc2l6ZV90CiAgICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2Fs
bG9jYXRlX3plcm9lZF9pbmxpbmUoc2l6ZSk7CiB9CiAKK1BBU19ORVZFUl9JTkxJTkUgdm9pZCog
Ym1hbGxvY19hbGxvY2F0ZV9zbG93KHNpemVfdCBzaXplKQoreworICAgIHJldHVybiAodm9pZCop
Ym1hbGxvY19hbGxvY2F0ZV9pbXBsX21lZGl1bV9zbG93X2Nhc2Uoc2l6ZSwgMSkuYmVnaW47Cit9
CisKIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGUoc2l6ZV90IHNpemUpCiB7CiAgICAgcmV0dXJuIGJt
YWxsb2NfYWxsb2NhdGVfaW5saW5lKHNpemUpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuYwkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFw
X2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw4IEBAIHBhc19oZWFwX2NvbmZp
ZyBibWFsbG9jX2hlYXBfY29uZmlnID0gQk0KIAogUEFTX0JBU0lDX0hFQVBfQ09ORklHX0RFRklO
SVRJT05TKAogICAgIGJtYWxsb2MsIEJNQUxMT0MsCi0gICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxk
X3plcm8gPSBmYWxzZSk7CisgICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSBmYWxzZSwK
KyAgICAuaW50cmluc2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFzX2hlYXBf
cnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAogdm9pZCBi
bWFsbG9jX2hlYXBfY29uZmlnX2FjdGl2YXRlKHZvaWQpCiB7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5oCShy
ZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFs
bG9jX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDkgKzUxLDEwIEBAIFBBU19B
UEkgdm9pZCBibWFsbG9jX2hlYXBfY29uZmlnX2FjdGl2YXQKICAgICAuc21hbGxfc2VncmVnYXRl
ZF9wYWdlX3NpemUgPSBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUsIFwKICAgICAuc21hbGxf
c2VncmVnYXRlZF93YXN0ZWFnZV9oYW5kaWNhcCA9IFBBU19TTUFMTF9QQUdFX0hBTkRJQ0FQLCBc
CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0
aW1pemF0aW9uID0gdHJ1ZSwgXAotICAgIC5zbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3Jk
ID0gUEFTX0FSTTY0LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJl
bnRfd29yZCA9IFBBU19BUk02NCwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IHRydWUsIFwK
ICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKLSAgICAuc21hbGxfYml0Zml0X21pbl9h
bGlnbl9zaGlmdCA9IDQsIFwKKyAgICAuc21hbGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCA9IEJN
QUxMT0NfTUlOQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBB
U19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwKICAgICAubWVkaXVtX3BhZ2Vfc2l6
ZSA9IFBBU19NRURJVU1fUEFHRV9ERUZBVUxUX1NJWkUsIFwKICAgICAuZ3JhbnVsZV9zaXplID0g
UEFTX0dSQU5VTEVfREVGQVVMVF9TSVpFLCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9pbmxpbmVzLmgJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVh
cF9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgUEFTX0NSRUFURV9U
UllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAg
ICAgJmJtYWxsb2NfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAg
ICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdF9pZGVudGl0eSwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCiAg
ICAgJmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZibWFsbG9jX2NvbW1vbl9w
cmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19kZXNpZ25h
dGVkKTsKQEAgLTU2LDcgKzU2LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lD
X1BSSU1JVAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfaW50cmluc2lj
X3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZibWFsbG9jX2FsbG9jYXRvcl9j
b3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKKyAg
ICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCiAgICAgJmJtYWxsb2NfY29tbW9uX3By
aW1pdGl2ZV9oZWFwLAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0
LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CkBAIC02Niw3ICs2
Niw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBCTUFM
TE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGlt
ZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFzX2FsbG9j
YXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRp
dmVfaGVhcCwKICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAg
ICBwYXNfaW50cmluc2ljX2hlYXBfaXNfZGVzaWduYXRlZCk7CkBAIC03Niw3MyArNzYsNzkgQEAg
UEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEJNQUxMT0NfSEVB
UF9DT05GSUcsCiAgICAgJmJtYWxsb2NfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZp
Zy5iYXNlLAogICAgICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKKyAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHRfY3Jhc2hfb25fZXJyb3IsCiAgICAgJmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFw
LAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19p
bnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0g
ICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSkucHRyOworICAgIHJl
dHVybiAodm9pZCopYm1hbGxvY190cnlfYWxsb2NhdGVfaW1wbChzaXplLCAxKS5iZWdpbjsKIH0K
IAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBibWFsbG9jX3RyeV9hbGxvY2F0ZV93
aXRoX2FsaWdubWVudF9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2ltcGwoc2l6ZSwg
YWxpZ25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX3RyeV9hbGxvY2F0ZV93
aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfaW5saW5l
KHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0X3plcm8oCisgICAgcmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygK
ICAgICAgICAgYm1hbGxvY190cnlfYWxsb2NhdGVfaW1wbChzaXplLCAxKSwKLSAgICAgICAgc2l6
ZSkucHRyOworICAgICAgICBzaXplKS5iZWdpbjsKIH0KIAorUEFTX0FQSSB2b2lkKiBibWFsbG9j
X2FsbG9jYXRlX3Nsb3coc2l6ZV90IHNpemUpOworCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCogYm1hbGxvY19hbGxvY2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJu
IGJtYWxsb2NfYWxsb2NhdGVfaW1wbChzaXplLCAxKS5wdHI7CisgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0IHJlc3VsdDsKKyAgICByZXN1bHQgPSBibWFsbG9jX2FsbG9jYXRlX2ltcGxfaW5saW5l
X29ubHkoc2l6ZSwgMSk7CisgICAgaWYgKFBBU19MSUtFTFkocmVzdWx0LmRpZF9zdWNjZWVkKSkK
KyAgICAgICAgcmV0dXJuICh2b2lkKilyZXN1bHQuYmVnaW47CisgICAgcmV0dXJuIGJtYWxsb2Nf
YWxsb2NhdGVfc2xvdyhzaXplKTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQq
CiBibWFsbG9jX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2lubGluZShzaXplX3Qgc2l6ZSwgc2l6
ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV93aXRoX2FsaWdu
bWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopYm1hbGxv
Y19hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9
CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX2FsbG9jYXRlX3plcm9l
ZF9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHRfemVybygKKyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF96ZXJvKAogICAgICAgICBibWFsbG9jX2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSksCi0gICAgICAg
IHNpemUpLnB0cjsKKyAgICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkKgogYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9pbmxpbmUodm9pZCogb2xkX3B0
ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Jl
YWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFs
bG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3Jl
YWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKICAgICAgICAgb2xkX3B0ciwKICAgICAgICAg
JmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICAgICBuZXdfc2l6ZSwKICAgICAg
ICAgQk1BTExPQ19IRUFQX0NPTkZJRywKICAgICAgICAgYm1hbGxvY190cnlfYWxsb2NhdGVfaW1w
bF9mb3JfcmVhbGxvYywKICAgICAgICAgcGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9y
dCwKLSAgICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9
CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogYm1hbGxvY19yZWFsbG9jYXRlX2lu
bGluZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJu
IHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAorICAgIHJldHVybiAodm9p
ZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCiAgICAgICAgIG9sZF9w
dHIsCiAgICAgICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAgICAgbmV3
X3NpemUsCiAgICAgICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgICAgIGJtYWxsb2NfYWxs
b2NhdGVfaW1wbF9mb3JfcmVhbGxvYywKICAgICAgICAgcGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVh
cF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAgIGZyZWVfbW9kZSku
YmVnaW47CiB9CiAKIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKApAQCAtMTUwLDcgKzE1Niw3IEBA
IFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAg
JmJtYWxsb2NfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0
b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkp
OworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk7CiAKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9pc29fYWxsb2NhdGVfaW5saW5lKHBhc19oZWFw
X3JlZiogaGVhcF9yZWYpCiB7CkBAIC0xNjIsNyArMTY4LDcgQEAgUEFTX0NSRUFURV9UUllfQUxM
T0NBVEUoCiAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKICAgICAmYm1hbGxvY190eXBlZF9ydW50
aW1lX2NvbmZpZy5iYXNlLAogICAgICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQqIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBf
cmVmKQogewpAQCAtMTc0LDEyICsxODAsMTIgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJ
TUlUSVZFKAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfcHJpbWl0aXZl
X3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKLSAg
ICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKKyAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCogYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZShwYXNfcHJpbWl0aXZlX2hl
YXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQogewotICAgIHJldHVy
biBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSku
cHRyOworICAgIHJldHVybiAodm9pZCopYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2lt
cGwoaGVhcF9yZWYsIHNpemUsIDEpLmJlZ2luOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FU
RV9QUklNSVRJVkUoCkBAIC0xODcsMjkgKzE5MywyOSBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FU
RV9QUklNSVRJVkUoCiAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKICAgICAmYm1hbGxvY19wcmlt
aXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRz
LAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwor
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CiAKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUocGFz
X3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQogewot
ICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXpl
LCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9p
bXBsKGhlYXBfcmVmLCBzaXplLCAxKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRfaW5saW5lKAog
ICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgIHNpemVfdCBzaXplKQog
ewotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAg
cmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgYm1hbGxv
Y190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLAotICAgICAg
ICBzaXplKS5wdHI7CisgICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2lubGluZShw
YXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBz
aXplKQogewotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8o
CisgICAgcmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAg
Ym1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSksCi0gICAg
ICAgIHNpemUpLnB0cjsKKyAgICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkKgpAQCAtMjE3LDcgKzIyMyw3IEBAIGJtYWxsb2NfdHJ5X2FsbG9jYXRl
X2F1eGlsaWFyeV93aXRoX2FsaWcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0
dXJuIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCBh
bGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1
eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAgLTIyNSw3ICsyMzEsNyBAQCBibWFsbG9jX2Fs
bG9jYXRlX2F1eGlsaWFyeV93aXRoX2FsaWdubWVuCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICBy
ZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxp
Z25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFy
eV9pbXBsKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfaW5s
aW5lKApAQCAtMjM0LDcgKzI0MCw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBi
bWFsbG9jX3QKICAgICBzaXplX3QgbmV3X3NpemUsCiAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9t
b2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2
ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCiAgICAg
ICAgIG9sZF9wdHIsCiAgICAgICAgIGhlYXBfcmVmLAogICAgICAgICBuZXdfc2l6ZSwKQEAgLTI0
Miw3ICsyNDgsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190CiAg
ICAgICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsX2Zvcl9yZWFsbG9jLAog
ICAgICAgICAmYm1hbGxvY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAgICAg
cGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5w
dHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBibWFsbG9jX3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSh2b2lkKiBvbGRf
cHRyLApAQCAtMjUwLDcgKzI1Niw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBi
bWFsbG9jX3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxs
b2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9j
YXRlX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9wcmlt
aXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgIGhlYXBfcmVmLAogICAgICAgICBuZXdf
c2l6ZSwKQEAgLTI1OCw3ICsyNjQsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCog
Ym1hbGxvY19yCiAgICAgICAgIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGxfZm9yX3Jl
YWxsb2MsCiAgICAgICAgICZibWFsbG9jX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAog
ICAgICAgICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0LAotICAgICAgICBmcmVl
X21vZGUpLnB0cjsKKyAgICAgICAgZnJlZV9tb2RlKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHZvaWQgYm1hbGxvY19kZWFsbG9jYXRlX2lubGluZSh2b2lkKiBwdHIpCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRf
aGVhcF9jb25maWcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcg
KzM5LDggQEAgcGFzX2hlYXBfY29uZmlnIGhvdGJpdF9oZWFwX2NvbmZpZyA9IEhPVAogCiBQQVNf
QkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMoCiAgICAgaG90Yml0LCBIT1RCSVQsCi0gICAg
LmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSBmYWxzZSk7CisgICAgLmFsbG9jYXRlX3BhZ2Vf
c2hvdWxkX3plcm8gPSBmYWxzZSwKKyAgICAuaW50cmluc2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hl
X2NhcGFjaXR5ID0gcGFzX2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hl
X2NhcGFjaXR5KTsKIAogdm9pZCBob3RiaXRfaGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKIHsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZp
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJp
dF9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTQs
NyArNTQsOCBAQCBQQVNfQVBJIHZvaWQgaG90Yml0X2hlYXBfY29uZmlnX2FjdGl2YXRlCiAgICAg
LnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpF
LCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExf
UEFHRV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3Jk
X2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUsIFwKLSAgICAuc21hbGxfdXNlX3JldmVy
c2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVkX3Vz
ZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuZW5hYmxlX3ZpZXdf
Y2FjaGUgPSB0cnVlLCBcCiAgICAgLnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAgLnNt
YWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQgPSBIT1RCSVRfTUlOQUxJR05fU0hJRlQsIFwKICAg
ICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxU
X1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9o
ZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9ob3RiaXRfaGVhcF9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2lubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtNDIsNyArNDIsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNf
UFJJTUlUCiAgICAgSE9UQklUX0hFQVBfQ09ORklHLAogICAgICZob3RiaXRfaW50cmluc2ljX3By
aW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZob3RiaXRfYWxsb2NhdG9yX2NvdW50
cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAorICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKICAgICAmaG90Yml0X2NvbW1vbl9wcmltaXRp
dmVfaGVhcCwKICAgICAmaG90Yml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAg
IHBhc19pbnRyaW5zaWNfaGVhcF9pc19kZXNpZ25hdGVkKTsKQEAgLTU0LDM0ICs1NCwzNCBAQCBQ
QVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgSE9UQklUX0hFQVBf
Q09ORklHLAogICAgICZob3RiaXRfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5i
YXNlLAogICAgICZob3RiaXRfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVu
dGl0eSwKICAgICAmaG90Yml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaG90Yml0X2Nv
bW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19u
b3RfZGVzaWduYXRlZCk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBob3RiaXRf
dHJ5X2FsbG9jYXRlX2lubGluZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gaG90Yml0X3Ry
eV9hbGxvY2F0ZV9pbXBsKHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWhvdGJpdF90
cnlfYWxsb2NhdGVfaW1wbChzaXplLCAxKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQqCiBob3RiaXRfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2lubGluZShz
aXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4gaG90Yml0X3RyeV9h
bGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkucHRyOworICAgIHJl
dHVybiAodm9pZCopaG90Yml0X3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUs
IGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgog
aG90Yml0X3RyeV9yZWFsbG9jYXRlX2lubGluZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3Np
emUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21v
ZGUgZnJlZV9tb2RlKQogewotICAgIHJldHVybiBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2lj
X3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5z
aWNfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRyLAogICAgICAgICAmaG90Yml0X2NvbW1vbl9w
cmltaXRpdmVfaGVhcCwKICAgICAgICAgbmV3X3NpemUsCiAgICAgICAgIEhPVEJJVF9IRUFQX0NP
TkZJRywKICAgICAgICAgaG90Yml0X3RyeV9hbGxvY2F0ZV9pbXBsX2Zvcl9yZWFsbG9jLAogICAg
ICAgICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0LAotICAgICAgICBmcmVlX21v
ZGUpLnB0cjsKKyAgICAgICAgZnJlZV9tb2RlKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHZvaWQgaG90Yml0X2RlYWxsb2NhdGVfaW5saW5lKHZvaWQqIHB0cikKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZpZy5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZp
Zy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9pc29faGVhcF9jb25maWcuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3LDggQEAgcGFz
X2hlYXBfY29uZmlnIGlzb19oZWFwX2NvbmZpZyA9IElTT19IRQogCiBQQVNfQkFTSUNfSEVBUF9D
T05GSUdfREVGSU5JVElPTlMoCiAgICAgaXNvLCBJU08sCi0gICAgLmFsbG9jYXRlX3BhZ2Vfc2hv
dWxkX3plcm8gPSBmYWxzZSk7CisgICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSBmYWxz
ZSwKKyAgICAuaW50cmluc2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFzX2hl
YXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAogI2VuZGlmIC8q
IFBBU19FTkFCTEVfSVNPICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL2lzb19oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuaAkod29ya2luZyBj
b3B5KQpAQCAtNTIsNyArNTIsOCBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgLnNtYWxsX3Nl
Z3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAg
LnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5E
SUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmls
aXR5X29wdGltaXphdGlvbiA9IGZhbHNlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJy
ZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJz
ZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0LCBcCisgICAgLmVuYWJsZV92aWV3X2NhY2hlID0g
ZmFsc2UsIFwKICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAuc21hbGxfYml0
Zml0X21pbl9hbGlnbl9zaGlmdCA9IElTT19NSU5BTElHTl9TSElGVCwgXAogICAgIC5zbWFsbF9i
aXRmaXRfcGFnZV9zaXplID0gUEFTX1NNQUxMX0JJVEZJVF9QQUdFX0RFRkFVTFRfU0laRSwgXApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfaW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFw
X2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvaXNvX2hlYXBfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3
IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBJU09fSEVB
UF9DT05GSUcsCiAgICAgJmlzb19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJh
c2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHRfc2V0X2Vycm5vLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJy
bm8sCiAgICAgJmlzb19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmlzb19jb21tb25fcHJp
bWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2ln
bmF0ZWQpOwpAQCAtNjAsNyArNjAsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5T
SUNfUFJJTUlUCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29faW50cmluc2ljX3ByaW1p
dGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAg
ICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubywKKyAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFw
LAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJp
bnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKQEAgLTcwLDcgKzcwLDcgQEAgUEFTX0NSRUFU
RV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIElTT19IRUFQX0NPTkZJRywKICAg
ICAmaXNvX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNv
X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9j
cmFzaF9vbl9lcnJvciwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3Is
CiAgICAgJmlzb19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmlzb19jb21tb25fcHJpbWl0
aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0
ZWQpOwpAQCAtODAsNzMgKzgwLDczIEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJ
Q19QUklNSVQKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb19pbnRyaW5zaWNfcHJpbWl0
aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAg
IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZpc29fY29tbW9uX3ByaW1p
dGl2ZV9oZWFwLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAg
cGFzX2ludHJpbnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKIAogc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHZvaWQqIGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbmxpbmUo
c2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1p
dGl2ZV9pbXBsKHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlzb190cnlfYWxsb2Nh
dGVfY29tbW9uX3ByaW1pdGl2ZV9pbXBsKHNpemUsIDEpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgdm9pZCoKIGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93
aXRoX2FsaWdubWVudF9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVu
dF9pbXBsKHNpemUsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopaXNvX3RyeV9h
bGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2ltcGwoc2l6ZSwgYWxpZ25t
ZW50KS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb190cnlf
YWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKHNpemVfdCBzaXplKQogewot
ICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgcmV0
dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgaXNvX3RyeV9h
bGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0
cjsKKyAgICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkKiBpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7
Ci0gICAgcmV0dXJuIGlzb19hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSku
cHRyOworICAgIHJldHVybiAodm9pZCopaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1w
bChzaXplLCAxKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBp
c29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbmxpbmUoc2l6ZV90
IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb19hbGxvY2F0ZV9jb21t
b25fcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2ltcGwoc2l6ZSwgYWxpZ25tZW50KS5wdHI7Cisg
ICAgcmV0dXJuICh2b2lkKilpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdu
bWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkKiBpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5l
KHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0X3plcm8oCisgICAgcmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygK
ICAgICAgICAgaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1wbChzaXplLCAxKSwKLSAg
ICAgICAgc2l6ZSkucHRyOworICAgICAgICBzaXplKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHZvaWQqCiBpc29fdHJ5X3JlYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9p
bmxpbmUodm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21v
ZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZl
KAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRp
dmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFw
LAogICAgICAgICBuZXdfc2l6ZSwKICAgICAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICAgICBp
c29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1wbF9mb3JfcmVhbGxvYywKICAgICAg
ICAgcGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2Rl
KS5wdHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkKgogaXNvX3JlYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbmxpbmUodm9p
ZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICBy
ZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCisgICAgcmV0dXJu
ICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKICAgICAgICAg
b2xkX3B0ciwKICAgICAgICAgJmlzb19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgICAgIG5l
d19zaXplLAogICAgICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgICAgIGlzb19hbGxvY2F0ZV9j
b21tb25fcHJpbWl0aXZlX2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRl
X2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBm
cmVlX21vZGUpLmJlZ2luOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKQEAgLTE1NCw3
ICsxNTQsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKICAgICBJU09fSEVBUF9DT05GSUcs
CiAgICAgJmlzb190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9y
X2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk7
CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk7CiAKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9yZWYqIGhl
YXBfcmVmKQogewpAQCAtMTY2LDcgKzE2Niw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAog
ICAgIElTT19IRUFQX0NPTkZJRywKICAgICAmaXNvX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2Us
CiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFz
aF9vbl9lcnJvcik7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fYWxsb2Nh
dGVfaW5saW5lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpCiB7CkBAIC0xNzgsNyArMTc4LDcgQEAg
UEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQVJSQVkoCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAg
ICZpc29fdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3Vu
dHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOworICAg
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOwogCiBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdm9pZCoKIGlzb190cnlfYWxsb2NhdGVfYXJyYXlfaW5saW5lKHBhc19oZWFwX3JlZiog
aGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCkKQEAgLTE5MSw3ICsxOTEs
NyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKICAgICBJU09fSEVBUF9DT05GSUcs
CiAgICAgJmlzb190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9y
X2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vy
cm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGlzb19hbGxvY2F0ZV9hcnJheV9pbmxpbmUocGFz
X2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50KQpAQCAt
MjQ3LDEyICsyNDcsMTIgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKAogICAg
IElTT19IRUFQX0NPTkZJRywKICAgICAmaXNvX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNl
LAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0X3NldF9lcnJubyk7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJu
byk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZV9pbmxpbmUocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9p
bXBsKGhlYXBfcmVmLCBzaXplLCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilpc29fdHJ5X2Fs
bG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKS5iZWdpbjsKIH0KIAogUEFT
X0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKApAQCAtMjYwLDI4ICsyNjAsMjggQEAgUEFT
X0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKAogICAgIElTT19IRUFQX0NPTkZJRywKICAg
ICAmaXNvX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9y
X2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vy
cm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX2FsbG9jYXRlX3ByaW1pdGl2ZV9pbmxpbmUo
cGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCiB7Ci0g
ICAgcmV0dXJuIGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSku
cHRyOworICAgIHJldHVybiAodm9pZCopaXNvX2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhlYXBf
cmVmLCBzaXplLCAxKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQq
IGlzb190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX3plcm9lZF9pbmxpbmUocGFzX3ByaW1pdGl2ZV9o
ZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICBy
ZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAo
dm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGlzb190cnlfYWxsb2Nh
dGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7
CisgICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCogaXNvX2FsbG9jYXRlX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKHBhc19wcmltaXRpdmVfaGVh
cF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4g
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCop
cGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGlzb19hbGxvY2F0ZV9wcmltaXRp
dmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsKKyAgICAgICAg
c2l6ZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgpAQCAtMjg5
LDcgKzI4OSw3IEBAIGlzb190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW4KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiBpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9p
bXBsKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlz
b190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCku
YmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgpAQCAtMjk3LDcgKzI5
Nyw3IEBAIGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW4KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkK
IHsKLSAgICByZXR1cm4gaXNvX2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhlYXBfcmVmLCBzaXpl
LCBhbGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlzb19hbGxvY2F0ZV9wcmltaXRp
dmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAogc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5l
KHZvaWQqIG9sZF9wdHIsCkBAIC0zMDUsNyArMzA1LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQqIGlzb190cnlfcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQogewotICAgIHJldHVybiBwYXNf
dHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFs
bG9jYXRlX3ByaW1pdGl2ZSgKICAgICAgICAgb2xkX3B0ciwKICAgICAgICAgaGVhcF9yZWYsCiAg
ICAgICAgIG5ld19zaXplLApAQCAtMzEzLDcgKzMxMyw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBpc29fdHJ5X3IKICAgICAgICAgaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVf
aW1wbF9mb3JfcmVhbGxvYywKICAgICAgICAgJmlzb19wcmltaXRpdmVfcnVudGltZV9jb25maWcu
YmFzZSwKICAgICAgICAgcGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAg
ICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fcmVhbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5l
KHZvaWQqIG9sZF9wdHIsCkBAIC0zMjEsNyArMzIxLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQqIGlzb19yZWFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Jl
YWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFs
bG9jYXRlX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9w
cmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgIGhlYXBfcmVmLAogICAgICAgICBu
ZXdfc2l6ZSwKQEAgLTMyOSw3ICszMjksNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCogaXNvX3JlYWxsCiAgICAgICAgIGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbF9mb3JfcmVh
bGxvYywKICAgICAgICAgJmlzb19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAg
ICAgcGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2Rl
KS5wdHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIFBBU19DUkVBVEVfVFJZX0FM
TE9DQVRFX1BSSU1JVElWRSgKQEAgLTMzNywxNiArMzM3LDE2IEBAIFBBU19DUkVBVEVfVFJZX0FM
TE9DQVRFX1BSSU1JVElWRSgKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb19vYmpjX3J1
bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKTsKKyAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfc2V0X2Vycm5vKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlz
b190cnlfYWxsb2NhdGVfZm9yX29iamNfaW5saW5lKGNvbnN0IHZvaWQqIGNscywgc2l6ZV90IHNp
emUpCiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygK
KyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAogICAgICAgICBp
c29fdHJ5X2FsbG9jYXRlX2Zvcl9vYmpjX2ltcGwoCiAgICAgICAgICAgICBwYXNfZHluYW1pY19w
cmltaXRpdmVfaGVhcF9tYXBfZmluZCgKICAgICAgICAgICAgICAgICAmaXNvX29iamNfZHluYW1p
Y19oZWFwX21hcCwgY2xzLCBzaXplKSwKICAgICAgICAgICAgIHNpemUsIDEpLAotICAgICAgICBz
aXplKS5wdHI7CisgICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgYm9vbCBpc29faGFzX29iamVjdF9pbmxpbmUodm9pZCogcHRyKQpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcC5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXAuYwkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3Rf
aGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBAIFBBU19DUkVBVEVfVFJZX0FM
TE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBJU09fVEVTVF9IRUFQX0NPTkZJRywKICAgICAm
aXNvX3Rlc3RfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZp
c29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
X2NyYXNoX29uX2Vycm9yLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJv
ciwKICAgICAmaXNvX3Rlc3RfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZpc29fdGVzdF9j
b21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNf
bm90X2Rlc2lnbmF0ZWQpOwpAQCAtNjUsMTggKzY1LDE4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9D
QVRFKAogICAgIElTT19URVNUX0hFQVBfQ09ORklHLAogICAgICZpc29fdGVzdF90eXBlZF9ydW50
aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9B
UlJBWSgKICAgICB0ZXN0X2FsbG9jYXRlX2FycmF5X2ltcGwsCiAgICAgSVNPX1RFU1RfSEVBUF9D
T05GSUcsCiAgICAgJmlzb190ZXN0X3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlz
b19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRf
Y3Jhc2hfb25fZXJyb3IpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJv
cik7CiAKIHZvaWQqIGlzb190ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZV90IHNp
emUpCiB7Ci0gICAgcmV0dXJuIHRlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplLCAx
KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKil0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUo
c2l6ZSwgMSkuYmVnaW47CiB9CiAKIHZvaWQqIGlzb190ZXN0X2FsbG9jYXRlKHBhc19oZWFwX3Jl
ZiogaGVhcF9yZWYpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29f
dGVzdF9oZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmMJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDggQEAgcGFzX2hlYXBfY29uZmlnIGlzb190ZXN0X2hl
YXBfY29uZmlnID0gSQogCiBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMoCiAgICAg
aXNvX3Rlc3QsIElTT19URVNULAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFs
c2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJp
bnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29u
ZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKICNlbmRpZiAvKiBQQVNfRU5BQkxFX0lT
T19URVNUICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190
ZXN0X2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvaXNvX3Rlc3RfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcF9jb25maWcuaAkod29y
a2luZyBjb3B5KQpAQCAtNTIsNyArNTIsOCBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgLnNt
YWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBc
CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFH
RV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2Vs
aWdpYmlsaXR5X29wdGltaXphdGlvbiA9IGZhbHNlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZlcnNl
ZF9jdXJyZW50X3dvcmQgPSBmYWxzZSwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZl
cnNlZF9jdXJyZW50X3dvcmQgPSBmYWxzZSwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IGZh
bHNlLCBcCiAgICAgLnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2JpdGZp
dF9taW5fYWxpZ25fc2hpZnQgPSBJU09fVEVTVF9NSU5BTElHTl9TSElGVCwgXAogICAgIC5zbWFs
bF9iaXRmaXRfcGFnZV9zaXplID0gUEFTX1NNQUxMX0JJVEZJVF9QQUdFX0RFRkFVTFRfU0laRSwg
XApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXAuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcC5jCShy
ZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRf
aGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxNCArNjAsMTQgQEAgUEFTX0NSRUFURV9UUllf
QUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEpJVF9IRUFQX0NPTkZJRywKICAgICAmaml0
X2hlYXBfcnVudGltZV9jb25maWcsCiAgICAgJmppdF9hbGxvY2F0b3JfY291bnRzLAotICAgIHBh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisgICAgcGFzX2FsbG9jYXRp
b25fcmVzdWx0X2lkZW50aXR5LAogICAgICZqaXRfY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAg
ICZqaXRfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19o
ZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKIAogdm9pZCogaml0X2hlYXBfdHJ5X2FsbG9jYXRlKHNp
emVfdCBzaXplKQogewotICAgIHJldHVybiBqaXRfdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRp
dmVfaW1wbChzaXplLCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilqaXRfdHJ5X2FsbG9jYXRl
X2NvbW1vbl9wcmltaXRpdmVfaW1wbChzaXplLCAxKS5iZWdpbjsKIH0KIAogdm9pZCBqaXRfaGVh
cF9zaHJpbmsodm9pZCogb2JqZWN0LCBzaXplX3QgbmV3X3NpemUpCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBf
Y29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTk3LDggKzk3LDEwIEBAIHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnIGppdF9oZWFwX3J1bnRpbWUKICAgICAuaXNfcGFydF9vZl9oZWFwID0gdHJ1ZSwK
ICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MgPSAwLAogICAgIC5k
aXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IDAsCisgICAgLmRp
cmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0gVUlOVF9NQVgsCiAgICAgLm1h
eF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gMCwKLSAgICAubWF4X2JpdGZpdF9vYmplY3Rfc2l6
ZSA9IFVJTlRfTUFYCisgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBVSU5UX01BWCwKKyAg
ICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1l
X2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHkKIH07CiAKIGppdF9oZWFwX2NvbmZpZ19y
b290X2RhdGEgaml0X3Jvb3RfZGF0YSA9IHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL21pbmFsaWduMzJfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcC5jCShyZXZpc2lvbiAyODIyMzgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXAuYwkod29y
a2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRS
SU5TSUNfUFJJTUlUCiAgICAgTUlOQUxJR04zMl9IRUFQX0NPTkZJRywKICAgICAmbWluYWxpZ24z
Ml9pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxv
Y2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hf
b25fZXJyb3IsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAg
ICZtaW5hbGlnbjMyX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmbWluYWxpZ24zMl9jb21t
b25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfZGVz
aWduYXRlZCk7CkBAIC02NCwxOCArNjQsMTggQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCiAg
ICAgTUlOQUxJR04zMl9IRUFQX0NPTkZJRywKICAgICAmbWluYWxpZ24zMl90eXBlZF9ydW50aW1l
X2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJB
WSgKICAgICB0ZXN0X2FsbG9jYXRlX2FycmF5X2ltcGwsCiAgICAgTUlOQUxJR04zMl9IRUFQX0NP
TkZJRywKICAgICAmbWluYWxpZ24zMl90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZp
c29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJy
b3IpOwogCiB2b2lkKiBtaW5hbGlnbjMyX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZV90
IHNpemUpCiB7Ci0gICAgcmV0dXJuIHRlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXpl
LCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKil0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRp
dmUoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHZvaWQqIG1pbmFsaWduMzJfYWxsb2NhdGUocGFzX2hl
YXBfcmVmKiBoZWFwX3JlZikKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L21pbmFsaWduMzJfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9j
b25maWcuYwkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksOCBAQCBwYXNfaGVhcF9jb25maWcg
bWluYWxpZ24zMl9oZWFwX2NvbmZpZyA9CiAKIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklU
SU9OUygKICAgICBtaW5hbGlnbjMyLCBNSU5BTElHTjMyLAotICAgIC5hbGxvY2F0ZV9wYWdlX3No
b3VsZF96ZXJvID0gZmFsc2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFs
c2UsCisgICAgLmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19o
ZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZv
aWQgbWluYWxpZ24zMl9oZWFwX2NvbmZpZ19hY3RpdmF0ZSh2b2lkKQogewpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVh
cF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3
ICs1NCw4IEBAIFBBU19BUEkgdm9pZCBtaW5hbGlnbjMyX2hlYXBfY29uZmlnX2FjdGkKICAgICAu
c21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUgPSBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUs
IFwKICAgICAuc21hbGxfc2VncmVnYXRlZF93YXN0ZWFnZV9oYW5kaWNhcCA9IFBBU19TTUFMTF9Q
QUdFX0hBTkRJQ0FQLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRf
ZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0gdHJ1ZSwgXAotICAgIC5zbWFsbF91c2VfcmV2ZXJz
ZWRfY3VycmVudF93b3JkID0gdHJ1ZSwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZl
cnNlZF9jdXJyZW50X3dvcmQgPSB0cnVlLCBcCisgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gdHJ1
ZSwgXAogICAgIC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9iaXRmaXRf
bWluX2FsaWduX3NoaWZ0ID0gTUlOQUxJR04zMl9NSU5BTElHTl9TSElGVCwgXAogICAgIC5zbWFs
bF9iaXRmaXRfcGFnZV9zaXplID0gUEFTX1NNQUxMX0JJVEZJVF9QQUdFX0RFRkFVTFRfU0laRSwg
XApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVh
cC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2Vz
aXplNjRrX2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1
NCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBQQUdF
U0laRTY0S19IRUFQX0NPTkZJRywKICAgICAmcGFnZXNpemU2NGtfaW50cmluc2ljX3ByaW1pdGl2
ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAorICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKICAgICAmcGFnZXNpemU2NGtfY29tbW9u
X3ByaW1pdGl2ZV9oZWFwLAogICAgICZwYWdlc2l6ZTY0a19jb21tb25fcHJpbWl0aXZlX2hlYXBf
c3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfZGVzaWduYXRlZCk7CkBAIC02NCwx
OCArNjQsMTggQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCiAgICAgUEFHRVNJWkU2NEtfSEVB
UF9DT05GSUcsCiAgICAgJnBhZ2VzaXplNjRrX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAg
ICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9y
ZXN1bHRfY3Jhc2hfb25fZXJyb3IpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9v
bl9lcnJvcik7CiAKIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0FSUkFZKAogICAgIHRlc3RfYWxs
b2NhdGVfYXJyYXlfaW1wbCwKICAgICBQQUdFU0laRTY0S19IRUFQX0NPTkZJRywKICAgICAmcGFn
ZXNpemU2NGtfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9j
b3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJv
cik7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogdm9pZCog
cGFnZXNpemU2NGtfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplX3Qgc2l6ZSkKIHsKLSAg
ICByZXR1cm4gdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemUsIDEpLnB0cjsKKyAg
ICByZXR1cm4gKHZvaWQqKXRlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplLCAxKS5i
ZWdpbjsKIH0KIAogdm9pZCogcGFnZXNpemU2NGtfYWxsb2NhdGUocGFzX2hlYXBfcmVmKiBoZWFw
X3JlZikKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRr
X2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYwko
d29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksOCBAQCBwYXNfaGVhcF9jb25maWcgcGFnZXNpemU2
NGtfaGVhcF9jb25maWcgCiAKIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAg
ICBwYWdlc2l6ZTY0aywgUEFHRVNJWkU2NEssCi0gICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3pl
cm8gPSBmYWxzZSk7CisgICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSBmYWxzZSwKKyAg
ICAuaW50cmluc2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFzX2hlYXBfcnVu
dGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAogdm9pZCBwYWdlc2l6ZTY0
a19oZWFwX2NvbmZpZ19hY3RpdmF0ZSh2b2lkKQogewpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw4IEBA
IFBBU19BUEkgdm9pZCBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZ19hY3QKICAgICAuc21hbGxfc2Vn
cmVnYXRlZF9wYWdlX3NpemUgPSBQQUdFU0laRTY0S19TTUFMTF9QQUdFX1NJWkUsIFwKICAgICAu
c21hbGxfc2VncmVnYXRlZF93YXN0ZWFnZV9oYW5kaWNhcCA9IFBBU19TTUFMTF9QQUdFX0hBTkRJ
Q0FQLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxp
dHlfb3B0aW1pemF0aW9uID0gZmFsc2UsIFwKLSAgICAuc21hbGxfdXNlX3JldmVyc2VkX2N1cnJl
bnRfd29yZCA9ICFQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJz
ZWRfY3VycmVudF93b3JkID0gIVBBU19BUk02NCwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9
IGZhbHNlLCBcCiAgICAgLnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2Jp
dGZpdF9taW5fYWxpZ25fc2hpZnQgPSBQQUdFU0laRTY0S19NSU5BTElHTl9TSElGVCwgXAogICAg
IC5zbWFsbF9iaXRmaXRfcGFnZV9zaXplID0gUEFHRVNJWkU2NEtfU01BTExfUEFHRV9TSVpFLCBc
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2JpYXNpbmdf
ZGlyZWN0b3JpZXMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYwkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9y
aWVzLmMJKG5vbmV4aXN0ZW50KQpAQCAtMSwxOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
YykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0j
aWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
cy5oIgotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNs
dWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKLSNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgi
Ci0KLXBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yIHBhc19hbGxf
Ymlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yX2luc3RhbmNlOwotcGFzX2FsbF9i
aWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3RvciBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVj
dG9yX2luc3RhbmNlOwotCi12b2lkIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hcHBlbmQo
cGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgc2l6ZV90IGluZGV4Owot
ICAgIHNpemVfdCB3b3JkX2luZGV4OwotICAgIHBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2Rp
cmVjdG9yeV9wdHIgZGlyZWN0b3J5X3B0cjsKLQotICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hl
bGQoKTsKLSAgICAKLSAgICBpbmRleCA9IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0
b3JfaW5zdGFuY2Uuc2l6ZTsKLQotICAgIFBBU19BU1NFUlQoIWRpcmVjdG9yeS0+aW5kZXhfaW5f
YWxsKTsKLSAgICBQQVNfQVNTRVJUKCh1bnNpZ25lZClpbmRleCA9PSBpbmRleCk7Ci0gICAgZGly
ZWN0b3J5LT5pbmRleF9pbl9hbGwgPSAodW5zaWduZWQpaW5kZXg7Ci0KLSAgICBwYXNfY29tcGFj
dF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyX3N0b3JlKCZkaXJlY3RvcnlfcHRyLCBkaXJl
Y3RvcnkpOwotICAgIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfYXBwZW5kKAot
ICAgICAgICAmcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3Rvcl9pbnN0YW5jZSwgZGly
ZWN0b3J5X3B0ciwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgCi0gICAgLyogV2UgaGF2ZSB0byBz
dG9yZSB0byB0aGUgYml0dmVjdG9yIHNlY29uZCwgc28gdGhhdCB3aGVuIHdlIHNlZSBhIGJpdCBz
ZXQgaW4gdGhlIGJpdHZlY3RvciwKLSAgICAgICB3ZSBrbm93IHRoYXQgdGhlIHRoaW5nIGluIHF1
ZXN0aW9uIGlzIGFscmVhZHkgYXBwZW5kZWQgdG8gdGhlIHZlY3Rvci4gVGhpcyBpcyBhY3R1YWxs
eQotICAgICAgIG92ZXJraWxsIHNpbmNlIHdlIG9ubHkgc3RvcmUgdGhlIGJpdCB1c2luZyBhIENB
UyBhbmQgb25seSBhZnRlciByZWxlYXNpbmcgdGhlIGhlYXAgbG9jaywgYnV0Ci0gICAgICAgd2hh
dGV2ZXIgLSBpdCdzIG5vdCB3b3J0aCBpdCB0byB0cnkgdG8gYmUgZmFzdCBoZXJlLiAqLwotICAg
IHBhc19mZW5jZSgpOwotCi0gICAgd29yZF9pbmRleCA9IFBBU19CSVRWRUNUT1JfV09SRF9JTkRF
WChpbmRleCk7Ci0KLSAgICB3aGlsZSAod29yZF9pbmRleCA+PSBwYXNfYWxsX2JpYXNpbmdfZGly
ZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5jZS5zaXplKSB7Ci0gICAgICAgIHBhc19h
bGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yX2FwcGVuZCgKLSAgICAgICAg
ICAgICZwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5j
ZSwgMCwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgfQotfQotCi1ib29sIHBhc19hbGxfYmlhc2lu
Z19kaXJlY3Rvcmllc19hY3RpdmF0ZShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkK
LXsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgc2l6ZV90IHdvcmRfaW5kZXg7Ci0gICAgYm9vbCBk
aWRfYWN0aXZhdGU7Ci0KLSAgICBpbmRleCA9IGRpcmVjdG9yeS0+aW5kZXhfaW5fYWxsOwotICAg
IAotICAgIHdvcmRfaW5kZXggPSBQQVNfQklUVkVDVE9SX1dPUkRfSU5ERVgoaW5kZXgpOwotICAg
IAotICAgIFBBU19BU1NFUlQod29yZF9pbmRleCA8IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
c19hY3RpdmVfYml0dmVjdG9yX2luc3RhbmNlLnNpemUpOwotICAgIAotICAgIGRpZF9hY3RpdmF0
ZSA9IHBhc19iaXR2ZWN0b3Jfc2V0X2F0b21pY19pbl93b3JkKAotICAgICAgICBwYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9nZXRfcHRyKAotICAgICAgICAgICAg
JnBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yX2luc3RhbmNlLAot
ICAgICAgICAgICAgd29yZF9pbmRleCksCi0gICAgICAgIGluZGV4LAotICAgICAgICB0cnVlKTsK
LQotICAgIGlmIChkaWRfYWN0aXZhdGUpCi0gICAgICAgIHBhc19zY2F2ZW5nZXJfZGlkX2NyZWF0
ZV9lbGlnaWJsZSgpOwotCi0gICAgcmV0dXJuIGRpZF9hY3RpdmF0ZTsKLX0KLQotdHlwZWRlZiBz
dHJ1Y3QgewotICAgIGJvb2wgc2hvdWxkX2dvX2FnYWluOwotICAgIHVuc2lnbmVkKiB3b3JkX3B0
cjsKLX0gc2NhdmVuZ2VfZGF0YTsKLQotc3RhdGljIHVuc2lnbmVkIHNjYXZlbmdlX2Zvcl9lYWNo
X3NldF9iaXRfYml0c19zb3VyY2Uoc2l6ZV90IHdvcmRfaW5kZXgsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCi17Ci0gICAg
c2NhdmVuZ2VfZGF0YSogZGF0YTsKLQotICAgIFBBU19VTlVTRURfUEFSQU0od29yZF9pbmRleCk7
Ci0KLSAgICBkYXRhID0gYXJnOwotCi0gICAgcmV0dXJuICpkYXRhLT53b3JkX3B0cjsKLX0KLQot
c3RhdGljIGJvb2wgc2NhdmVuZ2VfZm9yX2VhY2hfc2V0X2JpdF9jYWxsYmFjayhwYXNfZm91bmRf
Yml0X2luZGV4IGZvdW5kX2JpdF9pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQotewotICAgIHNjYXZlbmdlX2RhdGEqIGRhdGE7
Ci0gICAgdW5zaWduZWQgaW5kZXg7Ci0gICAgdW5zaWduZWQgd29yZDsKLSAgICB1bnNpZ25lZCog
d29yZF9wdHI7Ci0gICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgdW5z
aWduZWQgY3VycmVudF9oaWdoX3dhdGVybWFyazsKLSAgICB1aW50cHRyX3QgbGFyZ2VfZWxpZ2li
bGVfaGlnaF93YXRlcm1hcms7Ci0gICAgdW5zaWduZWQgZWxpZ2libGVfaGlnaF93YXRlcm1hcms7
Ci0KLSAgICBkYXRhID0gYXJnOwotCi0gICAgaW5kZXggPSAodW5zaWduZWQpZm91bmRfYml0X2lu
ZGV4LmluZGV4OwotICAgIFBBU19BU1NFUlQoaW5kZXggPT0gZm91bmRfYml0X2luZGV4LmluZGV4
KTsKLQotICAgIHdvcmQgPSBmb3VuZF9iaXRfaW5kZXgud29yZDsKLSAgICB3b3JkX3B0ciA9IGRh
dGEtPndvcmRfcHRyOwotCi0gICAgUEFTX0FTU0VSVChpbmRleCA8IHBhc19hbGxfYmlhc2luZ19k
aXJlY3Rvcmllc192ZWN0b3JfaW5zdGFuY2Uuc2l6ZSk7Ci0gICAgZGlyZWN0b3J5ID0gcGFzX2Nv
bXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkKAotICAgICAgICBwYXNfYWxs
X2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9yX2dldF9wdHIoCi0gICAgICAgICAgICAmcGFzX2Fs
bF9iaWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3Rvcl9pbnN0YW5jZSwgaW5kZXgpKTsKLQotICAgIGN1
cnJlbnRfaGlnaF93YXRlcm1hcmsgPSBkaXJlY3RvcnktPmN1cnJlbnRfaGlnaF93YXRlcm1hcms7
Ci0KLSAgICBpZiAoY3VycmVudF9oaWdoX3dhdGVybWFyaykKLSAgICAgICAgZGF0YS0+c2hvdWxk
X2dvX2FnYWluID0gdHJ1ZTsKLSAgICBlbHNlIHsKLSAgICAgICAgLyogV2UndmUgZ290IHRvIGNs
ZWFyIHRoZSBiaXQgYmVmb3JlIHdlIGRvIGFueXRoaW5nIGVsc2UuIE90aGVyd2lzZSB0aGVyZSdz
IGEgcmFjZSB3aGVyZSB3ZQotICAgICAgICAgICBtaWdodCBtaXNzIGEgbm90aWZpY2F0aW9uIGFi
b3V0IGFjdGl2YXRpb24uICovCi0gICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0X2F0b21pY19pbl93
b3JkKHdvcmRfcHRyLCBpbmRleCwgZmFsc2UpOwotICAgIH0KLSAgICAKLSAgICBsYXJnZV9lbGln
aWJsZV9oaWdoX3dhdGVybWFyayA9IGRpcmVjdG9yeS0+ZWxpZ2libGVfaGlnaF93YXRlcm1hcmsu
dmFsdWU7Ci0gICAgZWxpZ2libGVfaGlnaF93YXRlcm1hcmsgPSAodW5zaWduZWQpbGFyZ2VfZWxp
Z2libGVfaGlnaF93YXRlcm1hcms7Ci0gICAgUEFTX0FTU0VSVChlbGlnaWJsZV9oaWdoX3dhdGVy
bWFyayA9PSBsYXJnZV9lbGlnaWJsZV9oaWdoX3dhdGVybWFyayk7Ci0KLSAgICBkaXJlY3Rvcnkt
PnByZXZpb3VzX2hpZ2hfd2F0ZXJtYXJrID0gY3VycmVudF9oaWdoX3dhdGVybWFyazsKLSAgICBk
aXJlY3RvcnktPmN1cnJlbnRfaGlnaF93YXRlcm1hcmsgPSAwOwotCi0gICAgaWYgKGN1cnJlbnRf
aGlnaF93YXRlcm1hcmsgPCBlbGlnaWJsZV9oaWdoX3dhdGVybWFyaykKLSAgICAgICAgcGFzX2Jp
YXNpbmdfZGlyZWN0b3J5X2RpZF9jcmVhdGVfZGVsdGEoZGlyZWN0b3J5KTsKLQotICAgIHJldHVy
biB0cnVlOwotfQotCi1zdGF0aWMgYm9vbCBzY2F2ZW5nZV9iaXR2ZWN0b3Jfd29yZF9jYWxsYmFj
ayh1bnNpZ25lZCogd29yZF9wdHIsIHNpemVfdCB3b3JkX2luZGV4LCB2b2lkKiBhcmcpCi17Ci0g
ICAgc2NhdmVuZ2VfZGF0YSogZGF0YTsKLSAgICBib29sIHJlc3VsdDsKLQotICAgIGRhdGEgPSBh
cmc7Ci0gICAgZGF0YS0+d29yZF9wdHIgPSB3b3JkX3B0cjsKLSAgICAKLSAgICByZXN1bHQgPSBw
YXNfYml0dmVjdG9yX2Zvcl9lYWNoX3NldF9iaXQoc2NhdmVuZ2VfZm9yX2VhY2hfc2V0X2JpdF9i
aXRzX3NvdXJjZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d29yZF9pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d29yZF9pbmRleCArIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNjYXZlbmdlX2Zvcl9lYWNoX3NldF9iaXRfY2FsbGJhY2ssCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEpOwotICAgIFBBU19BU1NFUlQocmVzdWx0
KTsKLSAgICAKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBwYXNfYWxsX2JpYXNpbmdfZGly
ZWN0b3JpZXNfc2NhdmVuZ2Uodm9pZCkKLXsKLSAgICBzY2F2ZW5nZV9kYXRhIGRhdGE7Ci0gICAg
cGFzX2ZvdW5kX2luZGV4IHJlc3VsdDsKLQotICAgIGRhdGEuc2hvdWxkX2dvX2FnYWluID0gZmFs
c2U7Ci0gICAgZGF0YS53b3JkX3B0ciA9IE5VTEw7Ci0KLSAgICByZXN1bHQgPSBwYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9pdGVyYXRlKAotICAgICAgICAmcGFz
X2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfaW5zdGFuY2UsCi0gICAg
ICAgIDAsCi0gICAgICAgIHNjYXZlbmdlX2JpdHZlY3Rvcl93b3JkX2NhbGxiYWNrLAotICAgICAg
ICAmZGF0YSk7Ci0KLSAgICBQQVNfQVNTRVJUKCFyZXN1bHQuZGlkX3N1Y2NlZWQpOwotCi0gICAg
cmV0dXJuIGRhdGEuc2hvdWxkX2dvX2FnYWluOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJM
RUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlh
c2luZ19kaXJlY3Rvcmllcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2JpYXNpbmdfZGly
ZWN0b3JpZXMuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQUxMX0JJQVNJTkdf
RElSRUNUT1JJRVNfSAotI2RlZmluZSBQQVNfQUxMX0JJQVNJTkdfRElSRUNUT1JJRVNfSAotCi0j
aW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rf
YXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1ZGUgInBhc19zZWdtZW50ZWRf
dmVjdG9yLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotUEFTX0RFQ0xBUkVfU0VHTUVOVEVE
X1ZFQ1RPUihwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3RvciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDQpOwotUEFTX0RFQ0xBUkVfU0VHTUVOVEVEX1ZFQ1RPUihwYXNfYWxsX2JpYXNp
bmdfZGlyZWN0b3JpZXNfdmVjdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
Y29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA0KTsKLQotUEFTX0FQSSBleHRlcm4gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9y
aWVzX2FjdGl2ZV9iaXR2ZWN0b3IgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9i
aXR2ZWN0b3JfaW5zdGFuY2U7Ci1QQVNfQVBJIGV4dGVybiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXNfdmVjdG9yIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfaW5zdGFuY2U7
Ci0KLVBBU19BUEkgdm9pZCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYXBwZW5kKHBhc19i
aWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSBib29sIHBhc19hbGxfYmlh
c2luZ19kaXJlY3Rvcmllc19hY3RpdmF0ZShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9y
eSk7Ci0KLVBBU19BUEkgYm9vbCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfc2NhdmVuZ2Uo
dm9pZCk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQUxMX0JJQVNJTkdf
RElSRUNUT1JJRVNfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYWxsX2hlYXBzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2FsbF9oZWFwcy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2hlYXBzLmMJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDE0ICszNiwxMiBAQAogI2luY2x1ZGUgImppdF9oZWFwLmgiCiAjaW5jbHVkZSAibWluYWxp
Z24zMl9oZWFwLmgiCiAjaW5jbHVkZSAicGFnZXNpemU2NGtfaGVhcC5oIgotI2luY2x1ZGUgInBh
c19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9oZWFw
LmgiCiAjaW5jbHVkZSAicGFzX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCiAj
aW5jbHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3B0
cl9oYXNoX3NldC5oIgogI2luY2x1ZGUgInBhc19zY2F2ZW5nZXIuaCIKLSNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X2hlYXAuaCIKICNpbmNsdWRlICJwYXNfdXRpbGl0eV9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3V0
aWxpdHlfaGVhcF9jb25maWcuaCIKQEAgLTIyMyw0MyArMjIxLDE4IEBAIHR5cGVkZWYgc3RydWN0
IHsKICAgICB2b2lkKiBhcmc7CiB9IGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGE7
CiAKLXN0YXRpYyBib29sIGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9jYWxsYmFjaygKK3N0YXRpYyBib29sIGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2
b2lkKiBhcmcpCiB7CiAgICAgZm9yX2VhY2hfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YSogZGF0
YTsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2w7Ci0gICAgc2l6ZV90IGluZGV4Owog
CiAgICAgUEFTX1VOVVNFRF9QQVJBTShoZWFwKTsKIAogICAgIGRhdGEgPSBhcmc7CiAKLSAgICBp
ZiAoIWRhdGEtPmNhbGxiYWNrKCZkaXJlY3RvcnktPmJhc2UsIGRhdGEtPmFyZykpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIHBvb2wgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfYmlhc19zaGFyaW5nX3Bvb2woZGlyZWN0b3J5KTsKLSAgICBmb3IgKGluZGV4ID0g
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX251bV9wYXJ0aWNpcGFudHMocG9vbCk7IGluZGV4LS07KSB7
Ci0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQ7Ci0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeTsK
LQotICAgICAgICBwYXJ0aWNpcGFudCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFydGlj
aXBhbnQocG9vbCwgaW5kZXgpOwotCi0gICAgICAgIGlmICghcGFydGljaXBhbnQpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLQotICAgICAgICBQQVNfQVNTRVJUKHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfZ2V0X2tpbmQocGFydGljaXBhbnQpCi0gICAgICAgICAgICAgICAgICAgPT0gcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSk7Ci0KLSAgICAgICAg
Ymlhc2luZ19kaXJlY3RvcnkgPSBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rv
cnkoCi0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9wdHIocGFy
dGljaXBhbnQpKTsKLQotICAgICAgICBpZiAoIWRhdGEtPmNhbGxiYWNrKCZiaWFzaW5nX2RpcmVj
dG9yeS0+YmFzZSwgZGF0YS0+YXJnKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNrKCZkaXJl
Y3RvcnktPmJhc2UsIGRhdGEtPmFyZyk7CiB9CiAKIHN0YXRpYyBib29sIGZvcl9lYWNoX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9jYWxsYmFjaygKQEAgLTI4Nyw4
ICsyNjAsOCBAQCBzdGF0aWMgYm9vbCBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yCiAKICAg
ICBkYXRhID0gYXJnOwogCi0gICAgaWYgKCFwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSgKLSAgICAgICAgICAgIGhlYXAsIGZvcl9lYWNoX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaywgZGF0YSkpCisgICAg
aWYgKCFwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAorICAgICAg
ICAgICAgaGVhcCwgZm9yX2VhY2hfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZV9kaXJlY3Rvcnlf
Y2FsbGJhY2ssIGRhdGEpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWNvbmZp
Zy0+Zm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KApAQCAtMzI4LDEzICszMDEsOCBAQCBz
dGF0aWMgdm9pZCBkdW1wX2RpcmVjdG9yeV9uaWNlbHkocGFzX3NlCiAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGlyZWN0b3J5LT5wYWdlX2Nv
bmZpZ19raW5kKSwKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kX2dl
dF9zdHJpbmcoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkpOwogICAgIHN3aXRjaCAoZGlyZWN0
b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHBhc19sb2coIiwgJXUiLCAoKHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSopZGlyZWN0b3J5KS0+b2JqZWN0X3NpemUpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tp
bmQ6Ci0gICAgICAgIHBhc19sb2coIiwgJXUiLAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAotICAgICAgICAgICAg
ICAgICAgICAmKChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSopZGlyZWN0b3J5KS0+
cGFyZW50X2dsb2JhbCktPm9iamVjdF9zaXplKTsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2tpbmQ6CisgICAgICAgIHBhc19sb2coIiwgJXUiLCAoKHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KilkaXJlY3RvcnkpLT5vYmplY3Rfc2l6ZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2tpbmQ6
CiAgICAgICAgIGJyZWFrOwpAQCAtNDQ1LDkgKzQxMyw2IEBAIHN0YXRpYyBib29sIGNvbXB1dGVf
dG90YWxfbm9uX3V0aWxpdHlfc2UKICAgICBzaXplX3QgaW5kZXg7CiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnOwogCi0gICAgaWYgKGRpcmVjdG9yeS0+ZGlyZWN0
b3J5X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tp
bmRfaXNfdXRpbGl0eShkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19hbGxfbWFnYXppbmVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuYwkobm9uZXhpc3Rl
bnQpCkBAIC0xLDg4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VO
QUJMRUQKLQotI2luY2x1ZGUgInBhc19hbGxfbWFnYXppbmVzLmgiCi0KLSNpbmNsdWRlICJwYXNf
aGVhcF9sb2NrLmgiCi0jaW5jbHVkZSAicGFzX21hZ2F6aW5lLmgiCi0jaW5jbHVkZSAicGFzX21v
bm90b25pY190aW1lLmgiCi0jaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgi
Ci0KLSNpZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUpICYmIF9faGFzX2luY2x1ZGUoPG9zL3RzZC5o
PikKLSNpbmNsdWRlIDxvcy90c2QuaD4KLSNkZWZpbmUgUEFTX0hBVkVfT1NfVFNEIDEKLSNlbHNl
Ci0jZGVmaW5lIFBBU19IQVZFX09TX1RTRCAwCi0jZW5kaWYKLQotcGFzX2FsbF9tYWdhemluZXNf
dmVjdG9yIHBhc19hbGxfbWFnYXppbmVzX3ZlY3Rvcl9pbnN0YW5jZSA9IFBBU19JTU1VVEFCTEVf
VkVDVE9SX0lOSVRJQUxJWkVSOwotdW5zaWduZWQgcGFzX2FsbF9tYWdhemluZXNfZm9yY2VkX2Nw
dV9udW1iZXIgPSBVSU5UX01BWDsKLQotcGFzX21hZ2F6aW5lKiBwYXNfYWxsX21hZ2F6aW5lc19n
ZXRfY3VycmVudCh2b2lkKQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKLSAgICAKLSAgICB1bnNpZ25lZCBjcHU7Ci0gICAgdW5zaWduZWQgc2l6ZTsKLQotICAgIGNw
dSA9IHBhc19hbGxfbWFnYXppbmVzX2ZvcmNlZF9jcHVfbnVtYmVyOwotICAgIGlmIChjcHUgPT0g
VUlOVF9NQVgpIHsKLSNpZiBQQVNfSEFWRV9PU19UU0QKLSAgICAgICAgY3B1ID0gX29zX2NwdV9u
dW1iZXIoKTsKLSNlbHNlCi0gICAgICAgIGNwdSA9IDA7IC8qIEZJWE1FOiBXZSBzaG91bGQgYmUg
YWJsZSB0byBkbyBiZXR0ZXIgdGhhbiB0aGlzISAqLwotI2VuZGlmCi0gICAgfQotCi0gICAgaWYg
KHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2coImNwdSA9ICV1XG4iLCBjcHUpOwotCi0gICAgc2l6
ZSA9IHBhc19hbGxfbWFnYXppbmVzX3ZlY3Rvcl9pbnN0YW5jZS5zaXplOwotCi0gICAgaWYgKFBB
U19MSUtFTFkoY3B1IDwgc2l6ZSkpCi0gICAgICAgIHJldHVybiBwYXNfYWxsX21hZ2F6aW5lc192
ZWN0b3JfZ2V0KCZwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2UgKyBwYXNfZGVwZW5k
KHNpemUpLCBjcHUpOwotCi0gICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0KLSAgICB3aGlsZSAo
Y3B1ID49IHBhc19hbGxfbWFnYXppbmVzX3ZlY3Rvcl9pbnN0YW5jZS5zaXplKSB7Ci0gICAgICAg
IHBhc19tYWdhemluZSogbWFnYXppbmU7Ci0KLSAgICAgICAgbWFnYXppbmUgPSBwYXNfbWFnYXpp
bmVfY3JlYXRlKHBhc19hbGxfbWFnYXppbmVzX3ZlY3Rvcl9pbnN0YW5jZS5zaXplKTsKLSAgICAg
ICAgCi0gICAgICAgIHBhc19hbGxfbWFnYXppbmVzX3ZlY3Rvcl9hcHBlbmQoJnBhc19hbGxfbWFn
YXppbmVzX3ZlY3Rvcl9pbnN0YW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYWdhemluZSwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgfQotCi0gICAgcGFzX2hl
YXBfbG9ja191bmxvY2soKTsKLQotICAgIFBBU19BU1NFUlQoY3B1IDwgcGFzX2FsbF9tYWdhemlu
ZXNfdmVjdG9yX2luc3RhbmNlLnNpemUpOwotICAgIHJldHVybiBwYXNfYWxsX21hZ2F6aW5lc192
ZWN0b3JfZ2V0KCZwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2UsIGNwdSk7Ci19Ci0K
LSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX21hZ2F6aW5lcy5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX21hZ2F6aW5l
cy5oCShub25leGlzdGVudCkKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykg
MjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0FMTF9NQUdBWklORVNf
SAotI2RlZmluZSBQQVNfQUxMX01BR0FaSU5FU19ICi0KLSNpbmNsdWRlICJwYXNfaW1tdXRhYmxl
X3ZlY3Rvci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfbWFnYXppbmU7
Ci10eXBlZGVmIHN0cnVjdCBwYXNfbWFnYXppbmUgcGFzX21hZ2F6aW5lOwotCi1QQVNfREVDTEFS
RV9JTU1VVEFCTEVfVkVDVE9SKHBhc19hbGxfbWFnYXppbmVzX3ZlY3RvciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX21hZ2F6aW5lKik7Ci0KLVBBU19BUEkgZXh0ZXJuIHBhc19h
bGxfbWFnYXppbmVzX3ZlY3RvciBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2U7Ci1Q
QVNfQVBJIGV4dGVybiB1bnNpZ25lZCBwYXNfYWxsX21hZ2F6aW5lc19mb3JjZWRfY3B1X251bWJl
cjsKLQotUEFTX0FQSSBwYXNfbWFnYXppbmUqIHBhc19hbGxfbWFnYXppbmVzX2dldF9jdXJyZW50
KHZvaWQpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0FMTF9NQUdBWklO
RVNfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxs
b2NhdGlvbl9yZXN1bHQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMJKG5v
bmV4aXN0ZW50KQpAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNf
RU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCi0KLXZvaWQgcGFz
X2FsbG9jYXRpb25fcmVzdWx0X3plcm8ocGFzX2FsbG9jYXRpb25fcmVzdWx0KiByZXN1bHQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQotewotICAgIGlmICgh
cmVzdWx0LT56ZXJvX21vZGUgJiYgcmVzdWx0LT5kaWRfc3VjY2VlZCkgewotICAgICAgICBwYXNf
emVyb19tZW1vcnkoKHZvaWQqKXJlc3VsdC0+YmVnaW4sIHNpemUpOwotICAgICAgICByZXN1bHQt
Pnplcm9fbW9kZSA9IHBhc196ZXJvX21vZGVfaXNfYWxsX3plcm87Ci0gICAgfQotfQotCi0jZW5k
aWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5oCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlv
bl9yZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgUEFT
X0FMTE9DQVRJT05fUkVTVUxUX0gKICNkZWZpbmUgUEFTX0FMTE9DQVRJT05fUkVTVUxUX0gKIAor
I2luY2x1ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAjaW5jbHVkZSAicGFz
X3plcm9fbW9kZS5oIgogCkBAIC0zOCwxMSArMzksMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0IHBhcwogICAgdG8gc2VwYXJhdGUgb3V0IHRoZSBhbGxvY2F0aW9uIHJl
c3VsdCBzdGF0dXMgZnJvbSB0aGUgcG9pbnRlciB0byBtYWtlIGNvbXBpbGVyIHRyYW5zZm9ybWF0
aW9ucwogICAgb24gdGhlIGFsbG9jYXRpb24gZmFzdCBwYXRoIHdvcmsuICovCiBzdHJ1Y3QgcGFz
X2FsbG9jYXRpb25fcmVzdWx0IHsKKyAgICB1aW50cHRyX3QgYmVnaW47CiAgICAgYm9vbCBkaWRf
c3VjY2VlZDsKICAgICBwYXNfemVyb19tb2RlIHplcm9fbW9kZTsKLSAgICB1aW50cHRyX3QgYmVn
aW47CiB9OwogCit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc19hbGxvY2F0aW9u
X3Jlc3VsdF9maWx0ZXIpKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpOworCiBzdGF0aWMg
aW5saW5lIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRl
X2ZhaWx1cmUodm9pZCkKIHsKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwpAQCAt
NjksOCArNzIsMzkgQEAgc3RhdGljIGlubGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzXwog
ICAgICAgICBiZWdpbiwgcGFzX3plcm9fbW9kZV9tYXlfaGF2ZV9ub25femVybyk7CiB9CiAKLVBB
U19BUEkgdm9pZCBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNfYWxsb2NhdGlvbl9yZXN1
bHQqIHJlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3Qgc2l6ZSk7CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0
CitwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkocGFzX2FsbG9jYXRpb25fcmVzdWx0IHJl
c3VsdCkKK3sKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNf
YWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IHNpemUpCit7CisgICAgaWYgKHJlc3VsdC5kaWRfc3VjY2VlZAorICAgICAgICAmJiByZXN1
bHQuemVyb19tb2RlID09IHBhc196ZXJvX21vZGVfbWF5X2hhdmVfbm9uX3plcm8pIHsKKyAgICAg
ICAgcGFzX3plcm9fbWVtb3J5KCh2b2lkKilyZXN1bHQuYmVnaW4sIHNpemUpOworICAgICAgICBy
ZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzX3dpdGhfemVyb19tb2Rl
KAorICAgICAgICAgICAgcmVzdWx0LmJlZ2luLCBwYXNfemVyb19tb2RlX2lzX2FsbF96ZXJvKTsK
KyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyhw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQoreworICAgIGlmICghcmVzdWx0LmRpZF9zdWNj
ZWVkKQorICAgICAgICBlcnJubyA9IEVOT01FTTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IocGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkK
K3sKKyAgICBQQVNfQVNTRVJUKHJlc3VsdC5kaWRfc3VjY2VlZCk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KIAogUEFTX0VORF9FWFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuYwkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jh
c2VsaW5lX2FsbG9jYXRvci5jCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNiArMjksMTYgQEAKIAog
I2luY2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3IuaCIKIAotI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5LmgiCiAKIHZvaWQgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9hdHRhY2hf
ZGlyZWN0b3J5KHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIGFsbG9jYXRvciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkK
IHsKICAgICBQQVNfQVNTRVJUKCFhbGxvY2F0b3ItPnUuYWxsb2NhdG9yLnZpZXcpOwogICAgIAog
ICAgIFBBU19BU1NFUlQoCiAgICAgICAgIFBBU19CQVNFTElORV9MT0NBTF9BTExPQ0FUT1JfU0la
RQotICAgICAgICA+PSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxf
YWxsb2NhdG9yX3NpemUoZGlyZWN0b3J5KSk7CisgICAgICAgID49IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSkpOwogICAgIAogICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KCZhbGxvY2F0b3ItPnUuYWxsb2NhdG9yLCBk
aXJlY3RvcnkpOwogfQpAQCAtNTAsNyArNTAsNiBAQCB2b2lkIHBhc19iYXNlbGluZV9hbGxvY2F0
b3JfZGV0YWNoX2RpcmVjCiAgICAgICAgICZhbGxvY2F0b3ItPnUuYWxsb2NhdG9yLAogICAgICAg
ICBwYXNfbG9ja19sb2NrX21vZGVfbG9jaywKICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQp
OwotICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVzdHJ1Y3QoJmFsbG9jYXRvci0+dS5hbGxvY2F0
b3IpOwogICAgIHBhc196ZXJvX21lbW9yeSgmYWxsb2NhdG9yLT51LmFsbG9jYXRvciwgc2l6ZW9m
KHBhc19sb2NhbF9hbGxvY2F0b3IpKTsgLyogRG9lcyBub3QgemVybyB0aGUgYml0cywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdoaWNoIGlzIE9LLiAqLwogfQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3Iu
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBA
IHN0cnVjdCBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yIHsKICAgICB9KQogCiBQQVNfQVBJIHZvaWQg
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9hdHRhY2hfZGlyZWN0b3J5KHBhc19iYXNlbGluZV9hbGxv
Y2F0b3IqIGFsbG9jYXRvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogUEFTX0FQ
SSB2b2lkIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfZGV0YWNoX2RpcmVjdG9yeShwYXNfYmFzZWxp
bmVfYWxsb2NhdG9yKiBhbGxvY2F0b3IpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnkuYwkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNp
bmdfZGlyZWN0b3J5LmMJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNDcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNf
Y29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdf
ZGlyZWN0b3J5LmgiCi0KLSNpbmNsdWRlICJwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCIK
LSNpbmNsdWRlICJwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdf
cG9vbC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5o
IgotCi12b2lkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9jb25zdHJ1Y3QocGFzX2JpYXNpbmdfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQga2luZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBtYWdhemluZV9pbmRleCkKLXsKLSAgICBwYXNfdmVyc2lv
bmVkX2ZpZWxkX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5lbGlnaWJsZV9oaWdoX3dhdGVybWFyaywg
MCk7Ci0gICAgCi0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkX3dpdGhf
dXNlX2Vwb2NoX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdfcGF5bG9hZCk7Ci0K
LSAgICBkaXJlY3RvcnktPmN1cnJlbnRfaGlnaF93YXRlcm1hcmsgPSAwOwotICAgIGRpcmVjdG9y
eS0+cHJldmlvdXNfaGlnaF93YXRlcm1hcmsgPSAwOwotCi0gICAgZGlyZWN0b3J5LT5pbmRleF9p
bl9hbGwgPSAwOwotICAgIAotICAgIGRpcmVjdG9yeS0+a2luZCA9IGtpbmQ7Ci0KLSAgICBwYXNf
YWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYXBwZW5kKGRpcmVjdG9yeSk7Ci0KLSAgICBwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2xfYWRkX2F0X2luZGV4KAotICAgICAgICBwYXNfYmlhc2luZ19kaXJlY3Rv
cnlfZ2V0X3NoYXJpbmdfcG9vbChkaXJlY3RvcnkpLAotICAgICAgICBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2NyZWF0ZSgKLSAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSksCi0gICAgICAgIG1hZ2F6aW5lX2lu
ZGV4KTsKLX0KLQotcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlf
Z2V0X3NoYXJpbmdfcG9vbChwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAg
ICBpZiAocGFzX2lzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5KSkgewot
ICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9s
b2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICZwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgK
LSAgICAgICAgICAgICAgICAgICAgJnBhc191bndyYXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeSgKLSAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSktPnBhcmVudF9nbG9iYWwp
LT5kYXRhKS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotICAgIH0KLQotICAgIHJldHVybiBwYXNfY29t
cGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAg
ICZwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgK
LSAgICAgICAgICAgICZwYXNfdW53cmFwX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICAg
ICAgICAgICAgICBkaXJlY3RvcnkpLT5wYXJlbnRfZ2xvYmFsKS0+Ymlhc19zaGFyaW5nX3Bvb2wp
OwotfQotCi12b2lkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfY3JlYXRlX2RlbHRhKHBhc19i
aWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9v
bCogcG9vbDsKLSAgICAKLSAgICBwb29sID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dldF9zaGFy
aW5nX3Bvb2woZGlyZWN0b3J5KTsKLSAgICAKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlk
X2NyZWF0ZV9kZWx0YSgKLSAgICAgICAgcG9vbCwKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9jcmVhdGUoCi0gICAgICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgICAgICBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KSk7Ci19Ci0KLXBh
c19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfdGFr
ZV9sYXN0X3VudXNlZCgKLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsK
LSAgICBpZiAocGFzX2lzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5KSkg
ewotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9s
YXN0X3VudXNlZCgKLSAgICAgICAgICAgIHBhc191bndyYXBfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeShkaXJlY3RvcnkpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeV90YWtlX2xhc3RfdW51c2VkKAotICAgICAgICBwYXNfdW53cmFwX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeShkaXJlY3RvcnkpKTsKLX0KLQotdm9pZCBwYXNfYmlhc2luZ19k
aXJlY3RvcnlfZGlkX3VzZV9pbmRleF9zbG93KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBpbmRleCkKLXsKLSAgICBzaXplX3QgbGFyZ2VfaW5kZXhfcGx1c19vbmU7Ci0gICAgdW5zaWdu
ZWQgaW5kZXhfcGx1c19vbmU7Ci0gICAgYm9vbCBkaWRfb3ZlcmZsb3c7Ci0KLSAgICBkaWRfb3Zl
cmZsb3cgPSBfX2J1aWx0aW5fYWRkX292ZXJmbG93KGluZGV4LCAxLCAmbGFyZ2VfaW5kZXhfcGx1
c19vbmUpOwotICAgIFBBU19BU1NFUlQoIWRpZF9vdmVyZmxvdyk7Ci0gICAgaW5kZXhfcGx1c19v
bmUgPSAodW5zaWduZWQpbGFyZ2VfaW5kZXhfcGx1c19vbmU7Ci0gICAgUEFTX0FTU0VSVChpbmRl
eF9wbHVzX29uZSA9PSBsYXJnZV9pbmRleF9wbHVzX29uZSk7Ci0gICAgZGlyZWN0b3J5LT5jdXJy
ZW50X2hpZ2hfd2F0ZXJtYXJrID0gaW5kZXhfcGx1c19vbmU7Ci0gICAgcGFzX2ZlbmNlKCk7Ci0g
ICAgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2YXRlKGRpcmVjdG9yeSk7Ci19Ci0K
LXZvaWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2luZGV4X2RpZF9iZWNvbWVfZWxpZ2libGUocGFz
X2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCkKLXsKLSAgICBzaXplX3Qg
d2F0ZXJtYXJrX2luZGV4OwotICAgIGJvb2wgZGlkX292ZXJmbG93OwotICAgIGJvb2wgc2hvdWxk
X25vdGlmeV9kZWx0YTsKLQotICAgIGRpZF9vdmVyZmxvdyA9IF9fYnVpbHRpbl9hZGRfb3ZlcmZs
b3coaW5kZXgsIDEsICZ3YXRlcm1hcmtfaW5kZXgpOwotICAgIFBBU19BU1NFUlQoIWRpZF9vdmVy
Zmxvdyk7Ci0KLSAgICBzaG91bGRfbm90aWZ5X2RlbHRhID0KLSAgICAgICAgcGFzX3ZlcnNpb25l
ZF9maWVsZF9tYXhpbWl6ZSgKLSAgICAgICAgICAgICZkaXJlY3RvcnktPmVsaWdpYmxlX2hpZ2hf
d2F0ZXJtYXJrLCB3YXRlcm1hcmtfaW5kZXgpCi0gICAgICAgIDwgd2F0ZXJtYXJrX2luZGV4Owot
Ci0gICAgaWYgKHNob3VsZF9ub3RpZnlfZGVsdGEpIHsKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sKiBwb29sOwotCi0gICAgICAgIHBvb2wgPSBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZ2V0
X3NoYXJpbmdfcG9vbChkaXJlY3RvcnkpOwotCi0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF9kaWRfY3JlYXRlX2RlbHRhKAotICAgICAgICAgICAgcG9vbCwKLSAgICAgICAgICAgIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAotICAgICAgICAgICAgICAgIGRpcmVjdG9y
eSwKLSAgICAgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdf
ZGlyZWN0b3J5KSk7Ci0gICAgfQotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9y
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aWFzaW5nX2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnkuaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDEyMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQklBU0lOR19ESVJFQ1RPUllfSAotI2RlZmluZSBQQVNf
QklBU0lOR19ESVJFQ1RPUllfSAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tp
bmQuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmgiCi0jaW5jbHVk
ZSAicGFzX3ZlcnNpb25lZF9maWVsZC5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVj
dCBwYXNfYmlhc2luZ19kaXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeTsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKLXR5cGVkZWYg
c3RydWN0IHBhc19iaWFzaW5nX2RpcmVjdG9yeSBwYXNfYmlhc2luZ19kaXJlY3Rvcnk7Ci10eXBl
ZGVmIHN0cnVjdCBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5IHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKLQotc3RydWN0IHBhc19iaWFz
aW5nX2RpcmVjdG9yeSB7Ci0gICAgcGFzX3ZlcnNpb25lZF9maWVsZCBlbGlnaWJsZV9oaWdoX3dh
dGVybWFyazsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3BheWxvYWRfd2l0aF91
c2VfZXBvY2ggYmlhc19zaGFyaW5nX3BheWxvYWQ7Ci0gICAgdW5zaWduZWQgY3VycmVudF9oaWdo
X3dhdGVybWFyazsKLSAgICB1bnNpZ25lZCBwcmV2aW91c19oaWdoX3dhdGVybWFyazsKLSAgICB1
bnNpZ25lZCBpbmRleF9pbl9hbGwgOiAzMTsKLSAgICBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2lu
ZCBraW5kIDogMTsKLX07Ci0KLVBBU19BUEkgdm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfY29u
c3RydWN0KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQg
a2luZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIG1hZ2F6aW5lX2luZGV4KTsKLQotc3RhdGljIGlubGluZSBib29sIHBhc19pc19zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQot
ewotICAgIHJldHVybiBkaXJlY3RvcnktPmtpbmQgPT0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3Nl
Z3JlZ2F0ZWRfa2luZDsKLX0KLQotc3RhdGljIGlubGluZSBib29sIHBhc19pc19iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnkocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAg
cmV0dXJuICFwYXNfaXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeShkaXJlY3RvcnkpOwot
fQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9tYWdhemlu
ZV9pbmRleChwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICByZXR1cm4g
ZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdfcGF5bG9hZC5iYXNlLmluZGV4X2luX3NoYXJpbmdfcG9v
bDsKLX0KLQotLyogQWxsIHZpZXdzIGF0IGluZGljZXMgYmVsb3cgdGhlIG93bmVyc2hpcCB0aHJl
c2hvbGQgYXJlIGdvaW5nIHRvIGJlIGtlcHQgZnJvbSB0aGUgZ2xvYmFsCi0gICBkaXJlY3Rvcnku
ICovCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9vd25lcnNo
aXBfdGhyZXNob2xkKHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJl
dHVybiBQQVNfTUFYKGRpcmVjdG9yeS0+Y3VycmVudF9oaWdoX3dhdGVybWFyaywKLSAgICAgICAg
ICAgICAgICAgICBkaXJlY3RvcnktPnByZXZpb3VzX2hpZ2hfd2F0ZXJtYXJrKTsKLX0KLQotc3Rh
dGljIGlubGluZSB1bnNpZ25lZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfdW51c2VkX3NwYW5fc2l6
ZShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICB1bnNpZ25lZCBvd25l
cnNoaXBfdGhyZXNob2xkOwotICAgIHNpemVfdCBlbGlnaWJsZV90aHJlc2hvbGQ7Ci0gICAgdW5z
aWduZWQgc21hbGxfZWxpZ2libGVfdGhyZXNob2xkOwotCi0gICAgLyogVGhpcyBpcyB3cml0dGVu
IHNvIHRoYXQgaXQgcmV0dXJucyBzb21ldGhpbmcgc2Vuc2libGUgZXZlbiBpbiBjYXNlIG9mIHJh
Y2VzLiAqLwotICAgIG93bmVyc2hpcF90aHJlc2hvbGQgPSBwYXNfYmlhc2luZ19kaXJlY3Rvcnlf
b3duZXJzaGlwX3RocmVzaG9sZChkaXJlY3RvcnkpOwotICAgIGVsaWdpYmxlX3RocmVzaG9sZCA9
IGRpcmVjdG9yeS0+ZWxpZ2libGVfaGlnaF93YXRlcm1hcmsudmFsdWU7Ci0KLSAgICBzbWFsbF9l
bGlnaWJsZV90aHJlc2hvbGQgPSAodW5zaWduZWQpZWxpZ2libGVfdGhyZXNob2xkOwotICAgIFBB
U19BU1NFUlQoc21hbGxfZWxpZ2libGVfdGhyZXNob2xkID09IGVsaWdpYmxlX3RocmVzaG9sZCk7
Ci0KLSAgICBpZiAob3duZXJzaGlwX3RocmVzaG9sZCA+IHNtYWxsX2VsaWdpYmxlX3RocmVzaG9s
ZCkKLSAgICAgICAgcmV0dXJuIDA7IC8qIFRoaXMgaXMgdG90YWxseSBwb3NzaWJsZSAtIG93bmVy
c2hpcCBhbmQgZWxpZ2libGl0eSBmbG9hdCBpbmRlcGVuZGVudGx5LiAqLwotCi0gICAgcmV0dXJu
IHNtYWxsX2VsaWdpYmxlX3RocmVzaG9sZCAtIG93bmVyc2hpcF90aHJlc2hvbGQ7Ci19Ci0KLVBB
U19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZ2V0X3No
YXJpbmdfcG9vbChwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkg
dm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZGlkX2NyZWF0ZV9kZWx0YShwYXNfYmlhc2luZ19k
aXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rh
a2VfcmVzdWx0IHBhc19iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2xhc3RfdW51c2VkKAotICAgIHBh
c19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSB2b2lkIHBhc19iaWFz
aW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4X3Nsb3cocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBk
aXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgaW5kZXgpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X2RpZF91c2VfaW5kZXgocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQ2NF90IGVwb2NoKQotewotICAgIGlmIChQQVNfVU5MSUtFTFkoaW5k
ZXggPj0gZGlyZWN0b3J5LT5jdXJyZW50X2hpZ2hfd2F0ZXJtYXJrKSkKLSAgICAgICAgcGFzX2Jp
YXNpbmdfZGlyZWN0b3J5X2RpZF91c2VfaW5kZXhfc2xvdyhkaXJlY3RvcnksIGluZGV4KTsKLQot
ICAgIGRpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3BheWxvYWQudXNlX2Vwb2NoID0gZXBvY2g7Ci19
Ci0KLVBBU19BUEkgdm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5kZXhfZGlkX2JlY29tZV9l
bGlnaWJsZShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5k
ZXgpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0JJQVNJTkdfRElSRUNU
T1JZX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
YXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oCShyZXZpc2lv
biAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2lu
Z19kaXJlY3RvcnlfaW5saW5lcy5oCShub25leGlzdGVudCkKQEAgLTEsNTQgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19C
SUFTSU5HX0RJUkVDVE9SWV9JTkxJTkVTX0gKLSNkZWZpbmUgUEFTX0JJQVNJTkdfRElSRUNUT1JZ
X0lOTElORVNfSAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVk
ZSAicGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RhdGlj
IGlubGluZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogcGFzX3Vud3JhcF9zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KAotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGly
ZWN0b3J5KQotewotICAgIFBBU19BU1NFUlQocGFzX2lzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkoZGlyZWN0b3J5KSk7Ci0gICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSopKAotICAgICAgICAodWludHB0cl90KWRpcmVjdG9yeSAtIFBBU19PRkZTRVRPRihw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSwgYmlhc2luZ19iYXNlKSk7Ci19Ci0KLXN0
YXRpYyBpbmxpbmUgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogcGFzX3Vud3JhcF9iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpCi17Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KGRp
cmVjdG9yeSkpOwotICAgIHJldHVybiAocGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSopKAot
ICAgICAgICAodWludHB0cl90KWRpcmVjdG9yeSAtIFBBU19PRkZTRVRPRihwYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5LCBiaWFzaW5nX2Jhc2UpKTsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsK
LQotI2VuZGlmIC8qIFBBU19CSUFTSU5HX0RJUkVDVE9SWV9JTkxJTkVTX0ggKi8KLQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X2FsbG9jYXRvci5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3
ICszNCw2IEBACiAjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2NsYXNzLmgiCiAjaW5jbHVkZSAi
cGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKLSNpbmNs
dWRlICJwYXNfc3VicGFnZV9tYXAuaCIKIAogYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21t
aXRfdmlldyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGxvY2FsLApAQCAtNDMsMTAgKzQyLDkg
QEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYQogewogICAgIHN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKLSAgICBwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICBib29sIHVzZXNfc3VicGFnZXM7CisgICAgcGFz
X2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKIAotICAgIGRpcmVjdG9yeSA9IHBhc19jb21w
YWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkKCZ2aWV3LT5nbG9iYWxfZGlyZWN0
b3J5KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9s
b2FkKCZ2aWV3LT5kaXJlY3RvcnkpOwogCiAgICAgLyogV2UncmUgYWxtb3N0IGNlcnRhaW5seSBn
b25uYSBjb21taXQgYSBwYWdlLCBzbyBsZXQncyBqdXN0IGdldCB0aGlzIG91dCBvZiB0aGUgd2F5
LiBXZSBuZWVkIHRvCiAgICAgICAgcmVsZWFzZSB0aGUgb3duZXJzaGlwIGxvY2sgdG8gZG8gdGhp
cy4gQnV0LCB3ZSBjYW4ndCBkbyBpdCBhdCBhbGwgaWYgd2UgYWxyZWFkeSBob2xkIHRoZSBjb21t
aXQKQEAgLTU1LDE2ICs1MywxMyBAQCBib29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92
aWV3KHBhCiAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwog
ICAgICAgICBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9mb3JfcGFnZV9jb25m
aWcoCiAgICAgICAgICAgICBjb25maWctPmJhc2UucGFnZV9zaXplLCAmY29uZmlnLT5iYXNlLCBw
YXNfbG9ja19pc19ub3RfaGVsZCwgTlVMTCwgMCk7Ci0gICAgICAgIHBhc19iaXRmaXRfdmlld19s
b2NrX293bmVyc2hpcF9sb2NrKHZpZXcpOworICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5v
d25lcnNoaXBfbG9jayk7CiAgICAgfQogCi0gICAgdXNlc19zdWJwYWdlcyA9IHBhc19iaXRmaXRf
cGFnZV9jb25maWdfdXNlc19zdWJwYWdlcygqY29uZmlnKTsKLQogICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICBwYXNfbG9nKCJjb21taXR0aW5nIGJpdGZpdCB2aWV3IVxuIik7CiAKICAgICBmb3Ig
KDs7KSB7Ci0gICAgICAgIHBhc19zdWJwYWdlX21hcF9lbnRyeSogc3VicGFnZV9lbnRyeTsKICAg
ICAgICAgcGFzX2xvY2sqIGNvbW1pdF9sb2NrOwogICAgICAgICBib29sIGhhc19wYWdlX2JvdW5k
YXJ5OwogICAgICAgICAKQEAgLTkxLDcgKzg2LDcgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRv
cl9jb21taXRfdmlldyhwYQogICAgICAgICAgICAgICAgIHBhc19sb2coIm5lZWQgdG8gYWxsb2Nh
dGUgbmV3IHBhZ2UuXG4iKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgcGFzX2hlYXBfbG9j
a19sb2NrKCk7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9j
ayh2aWV3KTsKKyAgICAgICAgICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2Nr
KTsKICAgICAgICAgICAgIGlmICh2aWV3LT5wYWdlX2JvdW5kYXJ5KSB7CiAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAg
LTEwNywyMyArMTAyLDE0IEBAIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXco
cGEKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgdmlldy0+cGFnZV9i
b3VuZGFyeSA9IGNvbmZpZy0+YmFzZS5wYWdlX2FsbG9jYXRvcigKLSAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkobG9jYWwtPnZpZXcp
LT5oZWFwKTsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2Rp
cmVjdG9yeShsb2NhbC0+dmlldyktPmhlYXApOwogICAgICAgICAgICAgZGlkX3N1Y2NlZWQgPSAh
IXZpZXctPnBhZ2VfYm91bmRhcnk7CiAKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAg
ICAgICAgICAgIHBhc19sb2coInBhZ2VfYm91bmRhcnkgPSAlcCwgZGlkX3N1Y2NlZWQgPSAlZFxu
Iiwgdmlldy0+cGFnZV9ib3VuZGFyeSwgZGlkX3N1Y2NlZWQpOwogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAoZGlkX3N1Y2NlZWQpIHsKKyAgICAgICAgICAgIGlmIChkaWRfc3VjY2VlZCkK
ICAgICAgICAgICAgICAgICBjb25maWctPmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKHZpZXctPnBh
Z2VfYm91bmRhcnksIHBhc19sb2NrX2lzX2hlbGQpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIGlmICh1c2VzX3N1YnBhZ2VzKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19z
dWJwYWdlX21hcF9hZGQoCi0gICAgICAgICAgICAgICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5k
YXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21taXR0ZWQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9ja19pc19oZWxkKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiAKQEAg
LTEzNywxNiArMTIzLDcgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhw
YQogICAgICAgICAgICAgcmV0dXJuIGRpZF9zdWNjZWVkOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKHVzZXNfc3VicGFnZXMpIHsKLSAgICAgICAgICAgIC8qIEl0J3Mgbm90IGdyZWF0IHRoYXQg
dGhpcyBoYXMgdG8gYWNxdWlyZSB0aGUgaGVhcCBsb2NrLCBidXQgdGhlbiBhZ2FpbiBpZiB3ZSdy
ZQotICAgICAgICAgICAgICAgaGVyZSB0aGVuIHdlJ3JlIGNvbW1pdHRlZCB0byBjb21taXR0aW5n
IHRoZSBwYWdlLCBzbyBpdCdzIHByb2JhYmx5IGZpbmUuICovCi0gICAgICAgICAgICBzdWJwYWdl
X2VudHJ5ID0gcGFzX3N1YnBhZ2VfbWFwX2dldCgKLSAgICAgICAgICAgICAgICB2aWV3LT5wYWdl
X2JvdW5kYXJ5LCBjb25maWctPmJhc2UucGFnZV9zaXplLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7
Ci0gICAgICAgICAgICBjb21taXRfbG9jayA9ICZzdWJwYWdlX2VudHJ5LT5jb21taXRfbG9jazsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHN1YnBhZ2VfZW50cnkgPSBOVUxMOwotICAg
ICAgICAgICAgY29tbWl0X2xvY2sgPSAmdmlldy0+Y29tbWl0X2xvY2s7Ci0gICAgICAgIH0KKyAg
ICAgICAgY29tbWl0X2xvY2sgPSAmdmlldy0+Y29tbWl0X2xvY2s7CiAKICAgICAgICAgcGFzX2xv
Y2tfbG9ja19jb25kaXRpb25hbGx5KGNvbW1pdF9sb2NrLCBjb21taXRfbG9ja19ob2xkX21vZGUp
OwogCkBAIC0xNjksMTggKzE0NiwxMSBAQCBib29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1p
dF92aWV3KHBhCiAgICAgICAgIFBBU19BU1NFUlQodmlldy0+cGFnZV9ib3VuZGFyeSk7CiAgICAg
ICAgIFBBU19BU1NFUlQoIXZpZXctPmlzX293bmVkKTsKIAotICAgICAgICBpZiAodXNlc19zdWJw
YWdlcykgewotICAgICAgICAgICAgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2NvbW1pdCgKLSAgICAg
ICAgICAgICAgICBzdWJwYWdlX2VudHJ5LAotICAgICAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91
bmRhcnksCi0gICAgICAgICAgICAgICAgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7Ci0gICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KAotICAgICAgICAg
ICAgICAgIHZpZXctPnBhZ2VfYm91bmRhcnksIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOwotICAg
ICAgICB9CisgICAgICAgIHBhc19wYWdlX21hbGxvY19jb21taXQoCisgICAgICAgICAgICB2aWV3
LT5wYWdlX2JvdW5kYXJ5LCBjb25maWctPmJhc2UucGFnZV9zaXplKTsKICAgICAgICAgY29uZmln
LT5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcih2aWV3LT5wYWdlX2JvdW5kYXJ5LCBwYXNfbG9ja19p
c19ub3RfaGVsZCk7CiAKLSAgICAgICAgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xv
Y2sodmlldyk7CisgICAgICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsK
IAogICAgICAgICBQQVNfQVNTRVJUKCF2aWV3LT5pc19vd25lZCk7CiAKQEAgLTE5NCw3ICsxNjQs
NyBAQCBib29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KHBhCiAgICAgICAgIGlm
IChQQVNfREVCVUdfU1BFQ1RSVU1fVVNFX0ZPUl9DT01NSVQpIHsKICAgICAgICAgICAgIHBhc19o
ZWFwX2xvY2tfbG9jaygpOwogICAgICAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVtX2FkZCgKLSAg
ICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kdW1w
X2Zvcl9zcGVjdHJ1bSwgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgICAgICAgICAg
ZGlyZWN0b3J5LCBwYXNfYml0Zml0X2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSwgY29uZmln
LT5iYXNlLnBhZ2Vfc2l6ZSk7CiAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwog
ICAgICAgICB9CiAgICAgICAgIApAQCAtMjEyLDcgKzE4Miw3IEBAIHBhc19iaXRmaXRfdmlldyog
cGFzX2JpdGZpdF9hbGxvY2F0b3JfZmkKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0
b3J5OwogICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzczsKICAgICBwYXNfYml0
Zml0X3ZpZXcqIG5ld192aWV3OwotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCB2
aWV3X2RpcmVjdG9yeV9hbmRfaW5kZXg7CisgICAgdW5zaWduZWQgdmlld19pbmRleDsKIAogICAg
IFBBU19VTlVTRURfUEFSQU0oYWxpZ25tZW50KTsKIApAQCAtMjIyLDE0ICsxOTIsOSBAQCBwYXNf
Yml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpCiAKICAgICBkaXJlY3RvcnkgPSBw
YXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZzaXplX2NsYXNz
LT5kaXJlY3RvcnkpOwogCi0gICAgLyogSWYgd2UncmUgaW4gdGhlIHdyb25nIGRpcmVjdG9yeSwg
dGhlbiByZWdhcmRsZXNzIG9mIGFueXRoaW5nIGVsc2UgKGFsaWdubWVudCBldGMpIHdlIHNob3Vs
ZAotICAgICAgIGp1c3QgY2xlYW4gdXAgdGhlIGFsbG9jYXRvciBhbmQgYmFpbC4gKi8KLSAgICB2
aWV3X2RpcmVjdG9yeV9hbmRfaW5kZXggPSBwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3Rv
cnlfYW5kX2luZGV4KHZpZXcpOwotICAgIGlmIChkaXJlY3RvcnkgIT0gdmlld19kaXJlY3Rvcnlf
YW5kX2luZGV4LmRpcmVjdG9yeSkgewotICAgICAgICBwYXNfYml0Zml0X2FsbG9jYXRvcl9yZXNl
dChhbGxvY2F0b3IpOwotICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9s
b2NrKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQorICAgIFBBU19BU1NFUlQocGFzX2Nv
bXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5
KSA9PSBkaXJlY3RvcnkpOworCisgICAgdmlld19pbmRleCA9IHZpZXctPmluZGV4OwogCiAgICAg
LyogSWYgd2UncmUgc3RpbGwgb24gdGhlIHZpZXcgdGhhdCB0aGUgYWxsb2NhdG9yIHdhcyBvbiBh
bmQgd2UgZm91bmQgdGhhdCB0aGlzIHZpZXcgbm8gbG9uZ2VyCiAgICAgICAgaGFzIGVub3VnaCBt
YXhfZnJlZSBmb3Igb3VyIHNpemUgY2xhc3MsIHRoZW4gdGVsbCBldmVyeW9uZSBhYm91dCB0aGlz
IGFuZCBiYWlsLgpAQCAtMjQ2LDcgKzIxMSw3IEBAIHBhc19iaXRmaXRfdmlldyogcGFzX2JpdGZp
dF9hbGxvY2F0b3JfZmkKICAgICAgICAgUEFTX0FTU0VSVCh2aWV3LT5wYWdlX2JvdW5kYXJ5KTsK
ICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2Zvcl9ib3VuZGFyeSh2aWV3LT5wYWdlX2JvdW5kYXJ5
LCAqY29uZmlnKS0+ZGlkX25vdGVfbWF4X2ZyZWUgPSBmYWxzZTsKICAgICAgICAgCi0gICAgICAg
IGluZGV4ID0gdmlld19kaXJlY3RvcnlfYW5kX2luZGV4LmluZGV4OworICAgICAgICBpbmRleCA9
IHZpZXdfaW5kZXg7CiAgICAgICAgIAogICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRf
cHJvY2Vzc2VkX21heF9mcmVlKAogICAgICAgICAgICAgZGlyZWN0b3J5LCBpbmRleCwgbGFyZ2Vz
dF9hdmFpbGFibGUgPj4gY29uZmlnLT5iYXNlLm1pbl9hbGlnbl9zaGlmdCwKQEAgLTI5Miw4ICsy
NTcsNyBAQCBwYXNfYml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpCiAgICAgICAg
VGhpcyBpcyBhbiB1bnVzdWFsIGRlZ2VuZXJhdGUgY2FzZSB0aGF0IGhhcHBlbnMgb25seSBmb3Ig
bWVtYWxpZ24uICovCiAgICAgUEFTX0FTU0VSVCgodW5zaWduZWQpc2l6ZSA9PSBzaXplKTsKICAg
ICBuZXdfdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9maXJzdF9mcmVlX3ZpZXcoCi0g
ICAgICAgIGRpcmVjdG9yeSwgYWxsb2NhdG9yLT5nbG9iYWxfc2l6ZV9jbGFzcywKLSAgICAgICAg
dmlld19kaXJlY3RvcnlfYW5kX2luZGV4LmluZGV4ICsgMSwgKHVuc2lnbmVkKXNpemUsIGNvbmZp
ZykudmlldzsKKyAgICAgICAgZGlyZWN0b3J5LCB2aWV3X2luZGV4ICsgMSwgKHVuc2lnbmVkKXNp
emUsIGNvbmZpZykudmlldzsKICAgICBQQVNfQVNTRVJUKG5ld192aWV3KTsKICAgICByZXR1cm4g
bmV3X3ZpZXc7CiB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X2FsbG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDE4ICszMSwxNyBAQAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBz
dHJ1Y3QgcGFzX2JpdGZpdF9hbGxvY2F0b3I7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzczsKK3N0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3M7CiBzdHJ1Y3QgcGFzX2JpdGZp
dF9wYWdlOwogc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFzczsKIHN0cnVjdCBwYXNfYml0Zml0
X3ZpZXc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2FsbG9jYXRvciBwYXNfYml0Zml0X2Fs
bG9jYXRvcjsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MgcGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzczsKK3R5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfc2l6
ZV9jbGFzcyBwYXNfYml0Zml0X3NpemVfY2xhc3M7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0
X3BhZ2UgcGFzX2JpdGZpdF9wYWdlOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2Ns
YXNzIHBhc19iaXRmaXRfc2l6ZV9jbGFzczsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfdmll
dyBwYXNfYml0Zml0X3ZpZXc7CiAKIHN0cnVjdCBwYXNfYml0Zml0X2FsbG9jYXRvciB7Ci0gICAg
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogZ2xvYmFsX3NpemVfY2xhc3M7CiAgICAgcGFz
X2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNzOwogICAgIHBhc19iaXRmaXRfdmlldyogdmll
dzsKICAgICB1bnNpZ25lZCBjb3VudGRvd247CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5s
aW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4
LDI3ICsyOCwyNyBAQAogCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5o
IgogI2luY2x1ZGUgInBhc19iaXRmaXRfYWxsb2NhdG9yLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzcy5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFz
X2JpdGZpdF9zaXplX2NsYXNzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlX2lubGluZXMu
aCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcuaCIKICNpbmNsdWRlICJwYXNfZGVidWdfc3Bl
Y3RydW0uaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJwYXNfZmFzdF9wYXRo
X2FsbG9jYXRpb25fcmVzdWx0LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9pbmxpbmVzLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RhdGljIGlubGlu
ZSB2b2lkIHBhc19iaXRmaXRfYWxsb2NhdG9yX3Jlc2V0KHBhc19iaXRmaXRfYWxsb2NhdG9yKiBh
bGxvY2F0b3IpCiB7Ci0gICAgYWxsb2NhdG9yLT5nbG9iYWxfc2l6ZV9jbGFzcyA9IE5VTEw7Cisg
ICAgYWxsb2NhdG9yLT5zaXplX2NsYXNzID0gTlVMTDsKICAgICBhbGxvY2F0b3ItPnNpemVfY2xh
c3MgPSBOVUxMOwogICAgIGFsbG9jYXRvci0+dmlldyA9IE5VTEw7CiB9CiAKIHN0YXRpYyBpbmxp
bmUgdm9pZCBwYXNfYml0Zml0X2FsbG9jYXRvcl9hc3NlcnRfcmVzZXQocGFzX2JpdGZpdF9hbGxv
Y2F0b3IqIGFsbG9jYXRvcikKIHsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+
Z2xvYmFsX3NpemVfY2xhc3MpOworICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yLT5z
aXplX2NsYXNzKTsKICAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+c2l6ZV9jbGFz
cyk7CiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3ItPnZpZXcpOwogfQpAQCAtMTE4
LDcgKzExOCw3IEBAIHBhc19iaXRmaXRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShwYXNfYmkKICAg
ICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5jb21taXRfbG9jayk7CiAgICAgICAg
ICAgICB9CiAKLSAgICAgICAgICAgIHBhc19iaXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9sb2Nr
KHZpZXcpOworICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2sp
OwogCiAgICAgICAgICAgICBpZiAoUEFTX1VOTElLRUxZKCF2aWV3LT5pc19vd25lZCkpIHsKICAg
ICAgICAgICAgICAgICAvKiBOb3RlIHRoYXQgdGhpcyB3b3VsZCBoYXZlIGZsYXNoZWQgdGhlIG93
bmVyc2hpcCBsb2NrIHBvc3NpYmx5LiAqLwpAQCAtMTg1LDggKzE4NSw4IEBAIHBhc19iaXRmaXRf
YWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShwYXNfYmkKICAgICAgICAgaWYgKFBBU19ERUJVR19TUEVD
VFJVTV9VU0VfRk9SX0NPTU1JVCAmJiBieXRlc19jb21taXR0ZWQpIHsKICAgICAgICAgICAgIHBh
c19oZWFwX2xvY2tfbG9jaygpOwogICAgICAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVtX2FkZCgK
LSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkKCZh
bGxvY2F0b3ItPmdsb2JhbF9zaXplX2NsYXNzLT5iYXNlLmRpcmVjdG9yeSksCi0gICAgICAgICAg
ICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtLAorICAg
ICAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWQoJmFsbG9j
YXRvci0+c2l6ZV9jbGFzcy0+ZGlyZWN0b3J5KSwKKyAgICAgICAgICAgICAgICBwYXNfYml0Zml0
X2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSwKICAgICAgICAgICAgICAgICBieXRlc19jb21t
aXR0ZWQpOwogICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKICAgICAgICAgfQpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5n
X2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeS5jCShub25leGlzdGVudCkKQEAgLTEsMTY3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQot
I2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5LmgiCi0KLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKLSNpbmNs
dWRlICJwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3
X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfaW1tb3J0YWxfaGVhcC5oIgotCi1wYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5KiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2NyZWF0ZSgK
LSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIHBhcmVudF9nbG9iYWwsCi0gICAgdW5z
aWduZWQgbWFnYXppbmVfaW5kZXgpCi17Ci0gICAgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eSogcmVzdWx0OwotICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZ19wdHI7Ci0KLSAg
ICBjb25maWdfcHRyID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcocGFy
ZW50X2dsb2JhbC0+YmFzZS5jb25maWdfa2luZCk7Ci0KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0
YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgKLSAgICAgICAgc2l6ZW9mKHBhc19iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnkpLAotICAgICAgICBhbGlnbm9mKHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkpLAotICAgICAgICAicGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSIsCi0g
ICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0gICAgCi0gICAgcGFzX2NvbXBhY3RfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPnBhcmVudF9nbG9iYWwsIHBh
cmVudF9nbG9iYWwpOwotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2NvbnN0cnVjdCgmcmVzdWx0
LT5iYXNlLCBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQsIGNvbmZpZ19wdHIpOwot
ICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9jb25zdHJ1Y3QoCi0gICAgICAgICZyZXN1bHQtPmJp
YXNpbmdfYmFzZSwgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2JpdGZpdF9raW5kLCBtYWdhemluZV9p
bmRleCk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1wYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
dGFrZV9yZXN1bHQgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2xhc3RfdW51c2Vk
KAotICAgIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBz
dGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgcGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5KiBnbG9iYWxfZGlyZWN0b3J5OwotICAgIHVuc2lnbmVkIG93bmVyc2hp
cF90aHJlc2hvbGQ7Ci0gICAgYm9vbCBkaWRfZmluZF9lbGlnaWJsZV9wYWdlOwotICAgIHNpemVf
dCBpbmRleDsKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJr
OwotICAgIHNpemVfdCBuZXdfZWxpZ2libGVfd2F0ZXJtYXJrOwotICAgIHBhc19iaXRmaXRfcGFn
ZV9jb25maWcgcGFnZV9jb25maWc7Ci0KLSAgICBwYWdlX2NvbmZpZyA9ICpwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQpOwot
Ci0gICAgZ2xvYmFsX2RpcmVjdG9yeSA9Ci0gICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPnBhcmVudF9nbG9iYWwp
OwotCi0gICAgb3duZXJzaGlwX3RocmVzaG9sZCA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9vd25l
cnNoaXBfdGhyZXNob2xkKCZkaXJlY3RvcnktPmJpYXNpbmdfYmFzZSk7Ci0KLSAgICAvKiBSZWFk
IHRvIHdhdGNoIHNvIHRoYXQgaWYgYW55b25lIHVwZGF0ZXMgdGhlIGVsaWdpYmxlX2hpZ2hfd2F0
ZXJtYXJrIGR1cmluZyBvdXIgc2Nhbiwgd2Ugd29uJ3QKLSAgICAgICBvdmVyd3JpdGUgaXQuICov
Ci0gICAgZWxpZ2libGVfaGlnaF93YXRlcm1hcmsgPSBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWRf
dG9fd2F0Y2goCi0gICAgICAgICZkaXJlY3RvcnktPmJpYXNpbmdfYmFzZS5lbGlnaWJsZV9oaWdo
X3dhdGVybWFyayk7Ci0KLSAgICBQQVNfQVNTRVJUKGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZh
bHVlIDw9IHBhc19iaXRmaXRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeS0+YmFzZSkpOwotCi0g
ICAgaWYgKChzaXplX3Qpb3duZXJzaGlwX3RocmVzaG9sZCA+PSBlbGlnaWJsZV9oaWdoX3dhdGVy
bWFyay52YWx1ZSkKLSAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25v
bmVfYXZhaWxhYmxlOwotCi0gICAgZGlkX2ZpbmRfZWxpZ2libGVfcGFnZSA9IGZhbHNlOwotCi0g
ICAgbmV3X2VsaWdpYmxlX3dhdGVybWFyayA9IG93bmVyc2hpcF90aHJlc2hvbGQ7Ci0KLSAgICBm
b3IgKGluZGV4ID0gb3duZXJzaGlwX3RocmVzaG9sZDsgaW5kZXggPCBlbGlnaWJsZV9oaWdoX3dh
dGVybWFyay52YWx1ZTsgKytpbmRleCkgewotICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0
Zml0X3ZpZXdfcHRyKiB2aWV3X3B0cjsKLSAgICAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3Owot
Ci0gICAgICAgIHZpZXdfcHRyID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXdfcHRyKCZk
aXJlY3RvcnktPmJhc2UsIGluZGV4KTsKLSAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAg
dmlldyA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfbG9hZCh2aWV3X3B0cik7
Ci0gICAgICAgICAgICBpZiAoIXZpZXcpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
ICAgICAgIGRpZF9maW5kX2VsaWdpYmxlX3BhZ2UgPSB0cnVlOwotCi0gICAgICAgICAgICBQQVNf
QVNTRVJUKHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9u
dWxsKCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KQotICAgICAgICAgICAgICAgICAgICAgICA9PSBn
bG9iYWxfZGlyZWN0b3J5KTsKLQotICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3du
ZXJzaGlwX2xvY2spOwotICAgICAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWQoJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5KQotICAg
ICAgICAgICAgICAgID09IGRpcmVjdG9yeSkgewotICAgICAgICAgICAgICAgIGlmICh2ZXJib3Nl
KQotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJVbmJpYXNpbmcgdmlldyAlcCBmcm9tICVw
OiV6dVxuIiwgdmlldywgZGlyZWN0b3J5LCBpbmRleCk7Ci0KLSAgICAgICAgICAgICAgICAvKiBJ
dCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIHZpZXcgZ290IHVuYmlhc2VkIGFuZCB0
aGVuIHJlYmlhc2VkIGF0IGEgZGlmZmVyZW50Ci0gICAgICAgICAgICAgICAgICAgaW5kZXggYWxy
ZWFkeS4gKi8KLSAgICAgICAgICAgICAgICBpZiAodmlldy0+aW5kZXhfaW5fYmlhc2luZyAhPSBp
bmRleCkgewotICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVy
c2hpcF9sb2NrKTsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQodmlldy0+
aW5kZXhfaW5fYmlhc2luZyA9PSBpbmRleCk7Ci0KLSAgICAgICAgICAgICAgICAvKiBJZiB0aGUg
dmlldyBiZWxpZXZlcyB0aGF0IGl0IGlzIGJpYXNlZCB0byB0aGlzIGluZGV4LCB0aGVuIHRoZSBk
aXJlY3RvcnkgbXVzdCBhbHNvCi0gICAgICAgICAgICAgICAgICAgYWdyZWUgd2l0aCB0aGlzLiAq
LwotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92
aWV3X3B0cl9sb2FkKHZpZXdfcHRyKSA9PSB2aWV3KTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIC8qIFdlIHNheSB0aGF0IHVuYmlhc2VkIGVudHJpZXMgYXJlIGVtcHR5LCBub3QgdW5w
cm9jZXNzZWQuICovCi0gICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2Zy
ZWVfZGlkX2JlY29tZV9lbXB0eV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAgICAgICAgICAg
ICAgICAgICAmZGlyZWN0b3J5LT5iYXNlLCBpbmRleCwgImJlY29taW5nIGVtcHR5IG9uIG5vcm1h
bCB1bmJpYXMiKTsKLQotICAgICAgICAgICAgICAgIC8qIE5lZWQgYSBmZW5jZSBoZXJlIGJlY2F1
c2UgYXMgc29vbiBhcyB3ZSBzdGFydCBjbGVhcmluZyBvdXQgdGhlIHZpZXcgZnJvbSB0aGUgYmlh
c2luZwotICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgaXQncyBwb3NzaWJsZSBmb3Igc29t
ZW9uZSBlbHNlIHRvIHN0YXJ0IG1lc3Npbmcgd2l0aCB0aGlzIG1heF9mcmVlIGVudHJ5Ci0gICAg
ICAgICAgICAgICAgICAgaW4gdGhlIGJpYXNpbmcgZGlyZWN0b3J5LiBTbyB0aGUgc3RvcmUgYWJv
dmUgaGFzIHRvIGhhcHBlbiBiZWZvcmUgYW55IG9mIHRoaXMuICovCi0gICAgICAgICAgICAgICAg
cGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnZp
ZXctPmJpYXNpbmdfZGlyZWN0b3J5LCBOVUxMKTsKLSAgICAgICAgICAgICAgICB2aWV3LT5pbmRl
eF9pbl9iaWFzaW5nID0gMDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIE1ha2Ug
c3VyZSB0aGF0IHdlIGRvbid0IGNsZWFyIHRoZSB2aWV3IG91dCBvZiB0aGUgZGlyZWN0b3J5IHVu
dGlsIHdlJ3JlIGRvbmUgdGVsbGluZyB0aGUKLSAgICAgICAgICAgICAgICAgICB2aWV3IHRoYXQg
aXQncyBub3QgYmlhc2VkLiAqLwotICAgICAgICAgICAgICAgIHBhc19mZW5jZSgpOwotICAgICAg
ICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfc3RvcmUodmlld19w
dHIsIE5VTEwpOwotCi0gICAgICAgICAgICAgICAgaWYgKHBhc19iaXRmaXRfdmlld19pc19lbXB0
eSh2aWV3LCBwYWdlX2NvbmZpZykpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9k
aXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0eSgKLSAgICAgICAgICAgICAgICAgICAg
ICAgICZnbG9iYWxfZGlyZWN0b3J5LT5iYXNlLCB2aWV3LT5pbmRleF9pbl9nbG9iYWwsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbGl6ZSB0byBlbXB0eSBpbiBnbG9iYWwgb24gbm9y
bWFsIHVuYmlhcyIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWQo
Ci0gICAgICAgICAgICAgICAgICAgICAgICAmZ2xvYmFsX2RpcmVjdG9yeS0+YmFzZSwgdmlldy0+
aW5kZXhfaW5fZ2xvYmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgImluaXRpYWxpemUgdG8g
dW5wcm9jZXNzZWQgaW4gZ2xvYmFsIG9uIG5vcm1hbCB1bmJpYXMiKTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93
bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAg
IAotICAgIHBhc192ZXJzaW9uZWRfZmllbGRfdHJ5X3dyaXRlKAotICAgICAgICAmZGlyZWN0b3J5
LT5iaWFzaW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93YXRlcm1hcmssCi0gICAgICAgIGVsaWdpYmxl
X2hpZ2hfd2F0ZXJtYXJrLCBuZXdfZWxpZ2libGVfd2F0ZXJtYXJrKTsKLQotICAgIHJldHVybiBk
aWRfZmluZF9lbGlnaWJsZV9wYWdlCi0gICAgICAgID8gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rh
a2Vfc3VjY2VzcwotICAgICAgICA6IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZh
aWxhYmxlOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaAkobm9uZXhp
c3RlbnQpCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQklURklUX0JJQVNJTkdfRElSRUNUT1JZX0gKLSNk
ZWZpbmUgUEFTX0JJVEZJVF9CSUFTSU5HX0RJUkVDVE9SWV9ICi0KLSNpbmNsdWRlICJwYXNfYmlh
c2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgotI2lu
Y2x1ZGUgInBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1
ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oIgotCi1QQVNfQkVHSU5fRVhU
RVJOX0M7Ci0KLXN0cnVjdCBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5OwotdHlwZWRlZiBz
dHJ1Y3QgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfYml0Zml0X2JpYXNpbmdfZGly
ZWN0b3J5OwotCi1zdHJ1Y3QgUEFTX0FMSUdORUQoc2l6ZW9mKHVpbnRwdHJfdCkgKiAyKSBwYXNf
Yml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5IHsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSBiYXNl
OwotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeSBiaWFzaW5nX2Jhc2U7Ci0gICAgcGFzX2NvbXBh
Y3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyIHBhcmVudF9nbG9iYWw7Ci19OwotCi1QQVNf
QVBJIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIHBhc19iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnlfY3JlYXRlKAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogcGFyZW50X2ds
b2JhbCwKLSAgICB1bnNpZ25lZCBtYWdhemluZV9pbmRleCk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfdGFr
ZV9sYXN0X3VudXNlZCgKLSAgICBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0JJVEZJVF9CSUFTSU5H
X0RJUkVDVE9SWV9IICovCi0KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9y
eS5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw0MyArMzAsNDQgQEAKICNpbmNsdWRlICJwYXNfYml0
Zml0X2RpcmVjdG9yeS5oIgogCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5l
cy5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCIKKyNpbmNsdWRl
ICJwYXNfYml0Zml0X3NpemVfY2xhc3MuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXdfaW5s
aW5lcy5oIgorI2luY2x1ZGUgInBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCIKICNpbmNsdWRl
ICJwYXNfZXBvY2guaCIKKyNpbmNsdWRlICJwYXNfZnJlZV9ncmFudWxlcy5oIgogI2luY2x1ZGUg
InBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKKyNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCisjaW5jbHVkZSAicGFzX3N0cmVhbS5oIgog
CiB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X2NvbnN0cnVjdChwYXNfYml0Zml0X2RpcmVjdG9y
eSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Jp
dGZpdF9kaXJlY3Rvcnlfa2luZCBkaXJlY3Rvcnlfa2luZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZp
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXApCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCi0g
ICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgcGFzX2xvZygiQ3JlYXRpbmcgZGlyZWN0b3J5ICVw
ICglcylcbiIsCi0gICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfYml0Zml0X2RpcmVjdG9y
eV9raW5kX2dldF9zdHJpbmcoZGlyZWN0b3J5X2tpbmQpKTsKLSAgICB9CisgICAgaWYgKHZlcmJv
c2UpCisgICAgICAgIHBhc19sb2coIkNyZWF0aW5nIGRpcmVjdG9yeSAlcFxuIiwgZGlyZWN0b3J5
KTsKICAgICAKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5m
aXJzdF91bnByb2Nlc3NlZF9mcmVlLCAwKTsKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0
cnVjdCgmZGlyZWN0b3J5LT5maXJzdF9lbXB0eSwgMCk7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfbWF4X2ZyZWVfdmVjdG9yX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5tYXhfZnJlZXMpOwogICAg
IHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfdmVjdG9yX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT52
aWV3cyk7CiAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9zdG9y
ZSgmZGlyZWN0b3J5LT5sYXJnZXN0X3NpemVfY2xhc3MsIE5VTEwpOwotICAgIGRpcmVjdG9yeS0+
ZGlyZWN0b3J5X2tpbmQgPSBkaXJlY3Rvcnlfa2luZDsKICAgICBkaXJlY3RvcnktPmNvbmZpZ19r
aW5kID0gY29uZmlnLT5raW5kOwotfQogCi12b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X3VwZGF0
ZV9iaWFzaW5nX2VsaWdpYmlsaXR5KHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBpbmRleCkKLXsKLSAgICBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2Rp
cmVjdG9yeTsKLSAgICAKLSAgICBpZiAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCAhPSBwYXNf
Yml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGJp
YXNpbmdfZGlyZWN0b3J5ID0gKHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVjdG9y
eTsKLQotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmRleF9kaWRfYmVjb21lX2VsaWdpYmxl
KCZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBpbmRleCk7CisgICAgZGlyZWN0b3J5
LT5oZWFwID0gaGVhcDsKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVj
dG9yc19jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+Yml0dmVjdG9ycyk7CisgICAgcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5waHlzaWNhbF9z
aGFyaW5nX3BheWxvYWQpOworCisgICAgLyogV2UgY291bGQgaGF2ZSBiZWVuIGxhenkgYWJvdXQg
dGhpcyAtIGJ1dCBpdCdzIHByb2JhYmx5IG5vdCBzdXBlciBuZWNlc3Nhcnkgc2luY2UgdGhlIHBv
aW50CisgICAgICAgb2YgYml0Zml0IGdsb2JhbCBkaXJlY3RvcmllcyBpcyB0aGF0IHRoZXJlIHdv
bid0IGJlIHRvbyBtYW55IG9mIHRoZW0uICovCisgICAgaWYgKHBhc19iaXRmaXRfZGlyZWN0b3J5
X2RvZXNfc2hhcmluZyhkaXJlY3RvcnkpKSB7CisgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF9hZGQoCisgICAgICAgICAgICAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sLAorICAg
ICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCisgICAgICAgICAg
ICAgICAgZGlyZWN0b3J5LCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJl
Y3RvcnkpKTsKKyAgICB9CiB9CiAKIHZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVf
ZGlkX2JlY29tZV91bnByb2Nlc3NlZChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LApA
QCAtNzUsNyArNzYsNiBAQCB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9i
CiB7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0X3VucHJvY2Vzc2VkX21heF9mcmVlKGRp
cmVjdG9yeSwgaW5kZXgsIHJlYXNvbik7CiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9taW5pbWl6
ZSgmZGlyZWN0b3J5LT5maXJzdF91bnByb2Nlc3NlZF9mcmVlLCBpbmRleCk7Ci0gICAgcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfdXBkYXRlX2JpYXNpbmdfZWxpZ2liaWxpdHkoZGlyZWN0b3J5LCBpbmRl
eCk7CiB9CiAKIHZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91
bnByb2Nlc3NlZF91bmNoZWNrZWQocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKQEAg
LTg0LDEwICs4NCw5IEBAIHZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2IK
IHsKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfdW5wcm9jZXNzZWRfbWF4X2ZyZWVfdW5j
aGVja2VkKGRpcmVjdG9yeSwgaW5kZXgsIHJlYXNvbik7CiAgICAgcGFzX3ZlcnNpb25lZF9maWVs
ZF9taW5pbWl6ZSgmZGlyZWN0b3J5LT5maXJzdF91bnByb2Nlc3NlZF9mcmVlLCBpbmRleCk7Ci0g
ICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfdXBkYXRlX2JpYXNpbmdfZWxpZ2liaWxpdHkoZGlyZWN0
b3J5LCBpbmRleCk7CiB9CiAKLXZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlk
X2JlY29tZV9lbXB0eV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAordm9pZCBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX2VtcHR5KAogICAgIHBhc19iaXRmaXRfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGluZGV4LAogICAgIGNvbnN0IGNoYXIqIHJlYXNv
bikKQEAgLTk2LDE3ICs5NSw4IEBAIHZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVf
ZGlkX2IKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX21pbmltaXplKCZkaXJlY3RvcnktPmZpcnN0
X2VtcHR5LCBpbmRleCk7CiB9CiAKLXZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVf
ZGlkX2JlY29tZV9lbXB0eShwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRl
eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiByZWFzb24pCi17Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVf
ZGlkX2JlY29tZV9lbXB0eV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKGRpcmVjdG9yeSwgaW5kZXgs
IHJlYXNvbik7Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfdXBkYXRlX2JpYXNpbmdfZWxpZ2li
aWxpdHkoZGlyZWN0b3J5LCBpbmRleCk7Ci19Ci0KIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXgK
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9maXJzdF9mcmVlX3ZpZXcocGFzX2JpdGZpdF9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzcywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc3RhcnRfaW5kZXgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNpemUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25m
aWcqIHBhZ2VfY29uZmlnKQpAQCAtMTE4LDE5ICsxMDgsNiBAQCBwYXNfYml0Zml0X2RpcmVjdG9y
eV9nZXRfZmlyc3RfZnJlZV92aWV3CiAgICAgICAgIHNpemVfdCBtYXhfZnJlZXNfc2l6ZTsKICAg
ICAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3OwogCi0gICAgICAgIGlmIChkaXJlY3RvcnktPmRp
cmVjdG9yeV9raW5kID09IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kKSB7Ci0gICAg
ICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0g
ICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wqIGJpYXNfcG9vbDsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9IChwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnkqKWRpcmVjdG9yeTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYmlhc19wb29sID0g
cGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkKAotICAgICAgICAg
ICAgICAgICZnbG9iYWxfZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdfcG9vbCk7Ci0KLSAgICAgICAg
ICAgIGlmIChiaWFzX3Bvb2wpCi0gICAgICAgICAgICAgICAgcGFzX2JpYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfdGFrZShiaWFzX3Bvb2wpOwotICAgICAgICB9Ci0KICAgICAgICAgdmlldyA9IE5VTEw7
CiAKICAgICAgICAgbWF4X2ZyZWVzX3NpemUgPSBkaXJlY3RvcnktPm1heF9mcmVlcy5zaXplOwpA
QCAtMTc1LDIyICsxNTIsMTYgQEAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2ZyZWVf
dmlldwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgZGlyZWN0b3J5LT52
aWV3cy5zaXplLCBkaXJlY3RvcnktPm1heF9mcmVlcy5zaXplKTsKICAgICAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgICAgICBpZiAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICAgICAgICAgICAgICBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgIGdsb2JhbF9kaXJlY3RvcnkgPSAocGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgIGlmIChQQVNfQklUVkVDVE9SX05VTV9XT1JEUyhkaXJlY3RvcnktPnZpZXdzLnNp
emUpCi0gICAgICAgICAgICAgICAgICAgICAgICAhPSBnbG9iYWxfZGlyZWN0b3J5LT5iaXR2ZWN0
b3JzLnNpemUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoUEFTX0JJVFZF
Q1RPUl9OVU1fV09SRFMoZGlyZWN0b3J5LT52aWV3cy5zaXplKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA9PSBnbG9iYWxfZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLnNpemUgKyAx
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9z
ZWdtZW50ZWRfYml0dmVjdG9yc19hcHBlbmQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Jmdsb2JhbF9kaXJlY3RvcnktPmJpdHZlY3RvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUEFTX0JJVEZJVF9HTE9CQUxfRElSRUNUT1JZX0JJVFZFQ1RPUl9TRUdNRU5UX0lOSVRJQUxJ
WkVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChQQVNfQklUVkVDVE9SX05VTV9XT1JEUyhk
aXJlY3RvcnktPnZpZXdzLnNpemUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ID09IGdsb2JhbF9kaXJlY3RvcnktPmJpdHZlY3RvcnMuc2l6ZSk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFMoZGlyZWN0
b3J5LT52aWV3cy5zaXplKQorICAgICAgICAgICAgICAgICAgICAhPSBkaXJlY3RvcnktPmJpdHZl
Y3RvcnMuc2l6ZSkgeworICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKFBBU19CSVRWRUNU
T1JfTlVNX1dPUkRTKGRpcmVjdG9yeS0+dmlld3Muc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9PSBkaXJlY3RvcnktPmJpdHZlY3RvcnMuc2l6ZSArIDEpOworICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9yc19hcHBl
bmQoCisgICAgICAgICAgICAgICAgICAgICAgICAmZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgUEFTX0JJVEZJVF9ESVJFQ1RPUllfQklUVkVDVE9SX1NFR01F
TlRfSU5JVElBTElaRVIsCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxk
KTsKKyAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChQQVNfQklUVkVDVE9SX05VTV9XT1JE
UyhkaXJlY3RvcnktPnZpZXdzLnNpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PT0gZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLnNpemUpOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CkBAIC0yMDcs
MTI3ICsxNzgsMjMgQEAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2ZyZWVfdmlldwog
ICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksICh1bnNpZ25lZClmb3VuZF9pbmRleC5pbmRl
eCwgdmlldyk7CiAgICAgICAgIH0KIAotICAgICAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0
b3J5X2tpbmQpIHsKLSAgICAgICAgY2FzZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2lu
ZDogewotICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9iYWxfZGly
ZWN0b3J5OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBnbG9iYWxfZGlyZWN0b3J5ID0gKHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSopZGlyZWN0b3J5OwotICAgICAgICAgICAgCisgICAg
ICAgIGlmICghdmlldykgeworICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7CisgICAg
ICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBm
b3VuZF9pbmRleC5pbmRleCk7CiAgICAgICAgICAgICBpZiAoIXZpZXcpIHsKLSAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKLSAgICAgICAgICAgICAgICB2aWV3ID0gcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBmb3VuZF9pbmRleC5pbmRleCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKCF2aWV3KSB7Ci0gICAgICAgICAgICAgICAgICAgIFBBU19BU1NF
UlQoKHVuc2lnbmVkKWZvdW5kX2luZGV4LmluZGV4ID09IGZvdW5kX2luZGV4LmluZGV4KTsKLSAg
ICAgICAgICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfdmlld19jcmVhdGUoZ2xvYmFsX2Rp
cmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHVuc2lnbmVkKWZvdW5kX2luZGV4LmluZGV4KTsKLSAgICAgICAgICAgICAgICAgICAgcGFz
X3N0b3JlX3N0b3JlX2ZlbmNlKCk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0
b21pY19iaXRmaXRfdmlld19wdHJfc3RvcmUoCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9nZXRfdmlld19wdHIoZGlyZWN0b3J5LCBmb3VuZF9pbmRleC5pbmRl
eCksIHZpZXcpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwYXNfaGVhcF9s
b2NrX3VubG9jaygpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBQ
QVNfVEVTVElOR19BU1NFUlQoCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmdsb2JhbF9kaXJlY3Rvcnkp
Ci0gICAgICAgICAgICAgICAgPT0gZ2xvYmFsX2RpcmVjdG9yeSk7Ci0gICAgICAgICAgICBQQVNf
VEVTVElOR19BU1NFUlQodmlldy0+aW5kZXhfaW5fZ2xvYmFsID09IGZvdW5kX2luZGV4LmluZGV4
KTsKLQotICAgICAgICAgICAgLyogTm90ZTogaXQncyBwb3NzaWJsZSBmb3IgdGhpcyB0byBub3cg
aGF2ZSBiZWNvbWUgYSBiaWFzZWQgdmlldy4gSXQgc2hvdWxkIG5vdCBoYXBwZW4KLSAgICAgICAg
ICAgICAgIG9mdGVuLiBJZiBpdCBpcyBub3cgYSBiaWFzZWQgdmlldywgdGhlbiBpdCBtdXN0IGhh
dmUgZWFybGllciBoYWQgaXRzIG1heF9mcmVlCi0gICAgICAgICAgICAgICB6ZXJvZWQuICovCi0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgcGFzX2JpdGZpdF9i
aWFzaW5nX2RpcmVjdG9yeV9raW5kOiB7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeTsKLSAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLQotICAgICAgICAgICAgYmlhc2luZ19k
aXJlY3RvcnkgPSAocGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSopZGlyZWN0b3J5OwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBpZiAodmlldykgewotICAgICAgICAgICAgICAgIC8qIElm
IHRoZXJlIHdhcyBhbnkgdmlldyBhdCBhbGwgdGhlbiBpdCBtdXN0IGhhdmUgYmVlbiBiaWFzZWQg
dG8gdGhpcyBkaXJlY3RvcnkgYXQKLSAgICAgICAgICAgICAgICAgICBzb21lIHBvaW50IG9yIGFu
b3RoZXIuIE9mIGNvdXJzZSBpdCBjb3VsZCBiZSB1bmJpYXNlZCBhdCBhbnkgbW9tZW50LCBidXQg
aXQgY291bGQKLSAgICAgICAgICAgICAgICAgICBldmVuIGJlIHVuYmlhc2VkIHJpZ2h0IGFmdGVy
IHdlIHZlcmlmeSB0aGF0IGl0IGlzIG91cnMuICovCi0gICAgICAgICAgICAgICAgcGFzX2JpYXNp
bmdfZGlyZWN0b3J5X2RpZF91c2VfaW5kZXgoJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jh
c2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zm91bmRfaW5kZXguaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2dldF9lcG9jaCgpKTsKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9Ci0gICAgICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoCi0gICAgICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+cGFyZW50X2ds
b2JhbCk7Ci0gICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoCi0gICAgICAgICAgICAgICAg
Jmdsb2JhbF9kaXJlY3RvcnktPmJhc2UKLSAgICAgICAgICAgICAgICA9PSBwYXNfY29tcGFjdF9i
aXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZzaXplX2NsYXNzLT5iYXNlLmRpcmVj
dG9yeSkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAg
ICAgICAgcGFzX2JpdGZpdF92aWV3KiBwcmV2aW91c192aWV3OwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2Zy
ZWVfdmlldygKLSAgICAgICAgICAgICAgICAgICAgJnNpemVfY2xhc3MtPmJhc2UsIHNpemVfY2xh
c3MsIHBhZ2VfY29uZmlnKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIFBBU19URVNU
SU5HX0FTU0VSVCgKLSAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmdsb2JhbF9kaXJlY3RvcnkpCi0g
ICAgICAgICAgICAgICAgICAgID09IGdsb2JhbF9kaXJlY3RvcnkpOwotCi0gICAgICAgICAgICAg
ICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICAgICAgICAg
IC8qIFdlIHNob3VsZCBub3QgYmlhcyBhIHZpZXcgdGhhdCBpcyBhbHJlYWR5IGJpYXNlZC4gVGhl
IGdsb2JhbCBkaXJlY3Rvcnkgd291bGQgbm90IGhhdmUKLSAgICAgICAgICAgICAgICAgICBnaXZl
biB1cyBhIHZpZXcgdGhhdCB3YXMgYWxyZWFkeSBiaWFzZWQgaWYgaXQga25ldyB0aGF0IGl0IHdh
cyBiaWFzZWQgYXQgdGhlIHRpbWUgb2YKLSAgICAgICAgICAgICAgICAgICB0aGUgc2VhcmNoLiAq
LwotICAgICAgICAgICAgICAgIGlmICghcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5n
X2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgmdmlldy0+Ymlhc2luZ19kaXJlY3RvcnkpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwot
ICAgICAgICAgICAgICAgICAgICAvKiBTZWFyY2ggdGhlIGdsb2JhbCBkaXJlY3RvcnkgYWdhaW4u
ICovCi0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9nKCIlcDoldTogZm91bmQgYWxyZWFkeSBiaWFzZWQgdmlldyA9ICVwLlxu
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCAodW5zaWduZWQp
Zm91bmRfaW5kZXguaW5kZXgsIHZpZXcpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
ICAgIHByZXZpb3VzX3ZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX3N0
cm9uZ19jYXMoCi0gICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92
aWV3X3B0cihkaXJlY3RvcnksIGZvdW5kX2luZGV4LmluZGV4KSwKLSAgICAgICAgICAgICAgICAg
ICAgTlVMTCwgdmlldyk7Ci0gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzX3ZpZXcpIHsKLSAg
ICAgICAgICAgICAgICAgICAgLyogVGhpcyBpcyBhbiB1bmxpa2VseSByYWNlIGNvbmRpdGlvbiBz
aW5jZSBiaWFzaW5nIGRpcmVjdG9yaWVzIGFyZSB1c3VhbGx5IG93bmVkCi0gICAgICAgICAgICAg
ICAgICAgICAgIGJ5IGEgdGhyZWFkLiBOb3RlIHRoYXQgdGhlIHByZXZpb3VzX3ZpZXcgY2Fubm90
IGJlIG91ciB2aWV3LCBzaW5jZSB3ZSBoYWQganVzdAotICAgICAgICAgICAgICAgICAgICAgICBk
ZXRlY3RlZCB0aGF0IG91ciB2aWV3IHdhcyBub3QgYmlhc2VkLCBhbmQgd2Ugc3RpbGwgaG9sZCBp
dHMgbG9jay4gKi8KLSAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChwcmV2aW91c192aWV3
ICE9IHZpZXcpOwotICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93
bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgICAgICAgICAgdmlldyA9IHByZXZpb3VzX3ZpZXc7
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJCaWFz
aW5nIHZpZXcgJXAgdG8gJXA6JXVcbiIsIHZpZXcsIGRpcmVjdG9yeSwgKHVuc2lnbmVkKWZvdW5k
X2luZGV4LmluZGV4KTsKLQotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX3N0b3JlKAotICAgICAgICAgICAgICAgICAgICAmdmll
dy0+Ymlhc2luZ19kaXJlY3RvcnksIGJpYXNpbmdfZGlyZWN0b3J5KTsKICAgICAgICAgICAgICAg
ICBQQVNfQVNTRVJUKCh1bnNpZ25lZClmb3VuZF9pbmRleC5pbmRleCA9PSBmb3VuZF9pbmRleC5p
bmRleCk7Ci0gICAgICAgICAgICAgICAgdmlldy0+aW5kZXhfaW5fYmlhc2luZyA9ICh1bnNpZ25l
ZClmb3VuZF9pbmRleC5pbmRleDsKLQotICAgICAgICAgICAgICAgIC8qIFdlIGF2b2lkIHRoZSBj
aGVja2luZyBoZXJlIGJlY2F1c2UgdGhpcyBtaWdodCBoYXZlIGJlZW4gZW1wdHksIGFuZCB0aGF0
J3MgT0suICovCi0gICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0X21heF9m
cmVlX3VuY2hlY2tlZCgKLSAgICAgICAgICAgICAgICAgICAgJmdsb2JhbF9kaXJlY3RvcnktPmJh
c2UsIHZpZXctPmluZGV4X2luX2dsb2JhbCwgMCwgImNsZWFyaW5nIGdsb2JhbCBvbiBiaWFzIik7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAocGFzX2JpdGZpdF92aWV3X2lzX2Vt
cHR5KHZpZXcsICpwYWdlX2NvbmZpZykpIHsKLSAgICAgICAgICAgICAgICAgICAgLyogVGhpcyBo
ZWxwcyBwcmVzZXJ2ZSBjb25zaXN0ZW5jeSBidXQgaXQncyBub3Qgc3VwZXIgaW50ZXJlc3Rpbmc7
IGFzIHNvb24gYXMgd2UKLSAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdGUgd2Ugd2lsbCBt
YXJrIHRoaXMgdW5wcm9jZXNzZWQuICovCi0gICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHkoCi0gICAgICAgICAgICAgICAgICAg
ICAgICBkaXJlY3RvcnksIGZvdW5kX2luZGV4LmluZGV4LCAiaW5pdGlhbGl6ZSB0byBlbXB0eSBv
biBiaWFzIik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAg
cGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91bnByb2Nlc3NlZF91bmNo
ZWNrZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGZvdW5kX2luZGV4Lmlu
ZGV4LCAiaW5pdGlhbGl6ZSB0byB1bnByb2Nlc3NlZCBvbiBiaWFzIik7Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xv
Y2spOwotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHZpZXcgPSBwYXNf
Yml0Zml0X3ZpZXdfY3JlYXRlKGRpcmVjdG9yeSwgKHVuc2lnbmVkKWZvdW5kX2luZGV4LmluZGV4
KTsKKyAgICAgICAgICAgICAgICBwYXNfc3RvcmVfc3RvcmVfZmVuY2UoKTsKKyAgICAgICAgICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX3N0b3JlKAorICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmlld19wdHIoZGlyZWN0b3J5LCBm
b3VuZF9pbmRleC5pbmRleCksIHZpZXcpOwogICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBw
YXNfYmlhc2luZ19kaXJlY3RvcnlfZGlkX3VzZV9pbmRleCgKLSAgICAgICAgICAgICAgICAmYmlh
c2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwgZm91bmRfaW5kZXguaW5kZXgsIHBhc19nZXRf
ZXBvY2goKSk7Ci0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9IH0KKyAgICAgICAgICAg
IHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIFBB
U19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3Rv
cnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSkKKyAgICAgICAgICAgID09IGRp
cmVjdG9yeSk7CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCh2aWV3LT5pbmRleCA9PSBmb3Vu
ZF9pbmRleC5pbmRleCk7CiAKICAgICAgICAgcmV0dXJuIHBhc19iaXRmaXRfdmlld19hbmRfaW5k
ZXhfY3JlYXRlKHZpZXcsIGZvdW5kX2luZGV4LmluZGV4KTsKICAgICB9CkBAIC0zOTgsNCArMjY1
LDI5MSBAQCBib29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK2Jvb2wgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKHBh
c19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcmV0dXJuIHBhc19wYWdlX3No
YXJpbmdfbW9kZV9kb2VzX3NoYXJpbmcoCisgICAgICAgIGRpcmVjdG9yeS0+aGVhcC0+cnVudGlt
ZV9jb25maWctPnNoYXJpbmdfbW9kZSk7Cit9CisgICAgCit1aW50NjRfdCBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9nZXRfdXNlX2Vwb2NoKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7
CisgICAgdWludHB0cl90IGxhc3RfZW1wdHlfcGx1c19vbmU7CisgICAgc2l6ZV90IGluZGV4Owor
ICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcgY29uZmlnOworCisgICAgbGFzdF9lbXB0eV9wbHVz
X29uZSA9IGRpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZS52YWx1ZTsKKyAgICBjb25maWcg
PSAqcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5jb25m
aWdfa2luZCk7CisKKyAgICBmb3IgKGluZGV4ID0gbGFzdF9lbXB0eV9wbHVzX29uZTsgaW5kZXgt
LTspIHsKKyAgICAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3OworICAgICAgICB1aW50NjRfdCBl
cG9jaDsKKworICAgICAgICAvKiBQcm90ZWN0IGFnYWluc3QgdW5zZXQgZXBvY2hzLiAqLworICAg
ICAgICBpZiAoIXBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoZGly
ZWN0b3J5LCBpbmRleCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICB2aWV3ID0g
cGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAg
IGlmICghdmlldykKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHBhc19sb2NrX2xv
Y2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAgZXBvY2ggPSAwOworICAgICAgICBp
ZiAodmlldy0+aXNfb3duZWQpIHsKKyAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZSogcGFnZTsK
KyAgICAgICAgICAgIHBhZ2UgPSBwYXNfYml0Zml0X3BhZ2VfZm9yX2JvdW5kYXJ5KHZpZXctPnBh
Z2VfYm91bmRhcnksIGNvbmZpZyk7CisgICAgICAgICAgICBpZiAoIXBhZ2UtPm51bV9saXZlX2Jp
dHMpIHsKKyAgICAgICAgICAgICAgICBlcG9jaCA9IHBhZ2UtPnVzZV9lcG9jaDsKKyAgICAgICAg
ICAgICAgICBQQVNfQVNTRVJUKGVwb2NoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKKworICAgICAgICBp
ZiAoZXBvY2gpCisgICAgICAgICAgICByZXR1cm4gZXBvY2g7CisgICAgfQorCisgICAgcmV0dXJu
IDA7Cit9CisKK2Jvb2wgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRl
eCgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHNpemVfdCBpbmRl
eCkKK3sKKyAgICByZXR1cm4gcGFzX2JpdHZlY3Rvcl9nZXRfZnJvbV93b3JkKAorICAgICAgICBw
YXNfYml0Zml0X2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9yc19nZXRfcHRyX2NoZWNrZWQo
CisgICAgICAgICAgICAmZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLCBQQVNfQklUVkVDVE9SX1dPUkRf
SU5ERVgoaW5kZXgpKS0+ZW1wdHlfYml0cywKKyAgICAgICAgaW5kZXgpOworfQorCisvKiBSZXR1
cm5zIHdoZXRoZXIgd2UgY2hhbmdlZCB0aGUgdmFsdWUuICovCitib29sIHBhc19iaXRmaXRfZGly
ZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgoCisgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKKyAgICBzaXplX3QgaW5kZXgsCisgICAgYm9vbCB2YWx1ZSkKK3sKKyAgICBy
ZXR1cm4gcGFzX2JpdHZlY3Rvcl9zZXRfYXRvbWljX2luX3dvcmQoCisgICAgICAgICZwYXNfYml0
Zml0X2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9yc19nZXRfcHRyX2NoZWNrZWQoCisgICAg
ICAgICAgICAmZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLCBQQVNfQklUVkVDVE9SX1dPUkRfSU5ERVgo
aW5kZXgpKS0+ZW1wdHlfYml0cywKKyAgICAgICAgaW5kZXgsCisgICAgICAgIHZhbHVlKTsKK30K
Kwordm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5k
ZXgoCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBzaXplX3QgaW5k
ZXgpCit7CisgICAgaWYgKCFwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2lu
ZGV4KGRpcmVjdG9yeSwgaW5kZXgsIHRydWUpKQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBJ
ZiB3ZSBhbHJlYWR5IGtuZXcgYWJvdXQgZW1wdGllcywgdGhlbiB3ZSBoYXZlIG5vdGhpbmcgbW9y
ZSB0byBkby4gKi8KKyAgICBpZiAocGFzX3ZlcnNpb25lZF9maWVsZF9tYXhpbWl6ZSgmZGlyZWN0
b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lLCBpbmRleCArIDEpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoIXBhc19iaXRmaXRfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhkaXJlY3RvcnkpKQor
ICAgICAgICByZXR1cm47CisgICAgCisgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVh
dGVfZGVsdGEoCisgICAgICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCisgICAg
ICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAorICAgICAgICAgICAgZGly
ZWN0b3J5LCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3RvcnkpKTsK
K30KKwordm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHkoCisg
ICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfYml0Zml0X3ZpZXcq
IHZpZXcpCit7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAorICAgICAgICBwYXNfY29tcGFjdF9i
aXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpCisgICAg
ICAgID09IGRpcmVjdG9yeSk7CisgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld19kaWRfYmVj
b21lX2VtcHR5X2F0X2luZGV4KAorICAgICAgICBkaXJlY3RvcnksIHZpZXctPmluZGV4KTsKK30K
KworcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19iaXRmaXRfZGlyZWN0b3J5
X3Rha2VfbGFzdF9lbXB0eSgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAor
ICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZywKKyAgICBwYXNfbG9j
a19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgcGFzX3ZlcnNpb25lZF9maWVsZCBsYXN0X2Vt
cHR5X3BsdXNfb25lX3ZhbHVlOworICAgIHNpemVfdCBpbmRleDsKKyAgICBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKKyAgICBzaXplX3QgbnVtX2dyYW51bGVzOworCisgICAg
bGFzdF9lbXB0eV9wbHVzX29uZV92YWx1ZSA9IHBhc192ZXJzaW9uZWRfZmllbGRfcmVhZCgmZGly
ZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lKTsKKworICAgIHBhZ2VfY29uZmlnID0gcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5jb25maWdfa2luZCk7
CisgICAgbnVtX2dyYW51bGVzID0gcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplIC8gcGFnZV9j
b25maWctPmJhc2UuZ3JhbnVsZV9zaXplOworCisgICAgZm9yIChpbmRleCA9IGxhc3RfZW1wdHlf
cGx1c19vbmVfdmFsdWUudmFsdWU7IGluZGV4LS07KSB7CisgICAgICAgIHBhc19iaXRmaXRfdmll
dyogdmlldzsKKyAgICAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlOworICAgICAgICB1aW50cHRy
X3QgYmFzZTsKKyAgICAgICAgcGFzX2xvY2sqIGNvbW1pdF9sb2NrOworICAgICAgICBib29sIHBh
Z2VfaXNfZGVhZDsKKyAgICAgICAgcGFzX2JpdGZpdF9tYXhfZnJlZSBtYXhfZnJlZTsKKyAgICAg
ICAgCisgICAgICAgIGlmICghcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0X2VtcHR5X2JpdF9hdF9p
bmRleChkaXJlY3RvcnksIGluZGV4LCBmYWxzZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBp
bmRleCk7CisKKyAgICAgICAgUEFTX0FTU0VSVCh2aWV3KTsKKyAgICAgICAgUEFTX0FTU0VSVCh2
aWV3LT5wYWdlX2JvdW5kYXJ5KTsgLyogWW91IGRvbid0IGJlY29tZSBlbXB0eSB1bnRpbCB5b3Ug
aGF2ZSBhIHBhZ2UgYW5kIHRoZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeW91IG5ldmVyIGxvc2UgdGhlIHBhZ2UuICovCisgICAgICAgIFBBU19BU1NFUlQo
cGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGly
ZWN0b3J5KSA9PSBkaXJlY3RvcnkpOworICAgICAgICBQQVNfQVNTRVJUKHZpZXctPmluZGV4ID09
IGluZGV4KTsKKworICAgICAgICBjb21taXRfbG9jayA9ICZ2aWV3LT5jb21taXRfbG9jazsKKwor
ICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coIkdyYWJiaW5nIGNvbW1p
dCBsb2NrICVwXG4iLCBjb21taXRfbG9jayk7CisgICAgICAgIGlmICghcGFzX2RlZmVycmVkX2Rl
Y29tbWl0X2xvZ19sb2NrX2Zvcl9hZGRpbmcoCisgICAgICAgICAgICAgICAgZGVjb21taXRfbG9n
LCBjb21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSkpIHsKKyAgICAgICAgICAgIHBhc19i
aXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleChkaXJlY3Rvcnks
IGluZGV4KTsKKyAgICAgICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9s
b2Nrc191bmF2YWlsYWJsZTsKKyAgICAgICAgfQorCisgICAgICAgIHBhc19sb2NrX2xvY2soJnZp
ZXctPm93bmVyc2hpcF9sb2NrKTsKKworICAgICAgICBpZiAoIXZpZXctPmlzX293bmVkKSB7Cisg
ICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAg
ICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfdW5sb2NrX2FmdGVyX2Fib3J0ZWRfYWRk
KGRlY29tbWl0X2xvZywgY29tbWl0X2xvY2spOworICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIH0KKworICAgICAgICBiYXNlID0gKHVpbnRwdHJfdCl2aWV3LT5wYWdlX2JvdW5kYXJ5Owor
ICAgICAgICBQQVNfQVNTRVJUKGJhc2UpOworICAgICAgICBwYWdlID0gcGFzX2JpdGZpdF9wYWdl
X2Zvcl9ib3VuZGFyeSgodm9pZCopYmFzZSwgKnBhZ2VfY29uZmlnKTsKKyAgICAgICAgUEFTX0FT
U0VSVChwYWdlKTsKKworICAgICAgICBwYWdlX2lzX2RlYWQgPSAhcGFnZS0+bnVtX2xpdmVfYml0
czsKKworICAgICAgICBtYXhfZnJlZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9tYXhfZnJl
ZShkaXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgaWYgKHBhZ2VfaXNfZGVhZCkgeworICAgICAg
ICAgICAgLyogSWYgYSBwYWdlJ3MgbnVtX2xpdmVfYml0cyBkcm9wcyB0byB6ZXJvIHRoZW4gd2Ug
d2lsbCBtYXJrIGl0IGVtcHR5IGluIHRoZSBkaXJlY3RvcnkgdGhhdAorICAgICAgICAgICAgICAg
b3ducyBpdCB3aGlsZSBob2xkaW5nIHRoZSBsb2NrLiBOZXdseSBjcmVhdGVkIHBhZ2VzIHN0YXJ0
IG91dCBlbXB0eS4gICovCisgICAgICAgICAgICBpZiAobWF4X2ZyZWUgIT0gUEFTX0JJVEZJVF9N
QVhfRlJFRV9FTVBUWSkgeworICAgICAgICAgICAgICAgIHBhc19sb2coIiVwOiV1OiBmb3VuZCBu
b24tZW1wdHkgcGFnZSB0aGF0IGlzIGRlYWQgd2hlbiB0YWtpbmcgbGFzdCBlbXB0eS5cbiIpOwor
ICAgICAgICAgICAgICAgIFBBU19BU1NFUlQobWF4X2ZyZWUgPT0gUEFTX0JJVEZJVF9NQVhfRlJF
RV9FTVBUWSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAv
KiBJZiBhIHBhZ2UncyBudW1fbGl2ZV9iaXRzIGdvZXMgYWJvdmUgemVybyB0aGVuIHdlIG1hcmsg
aXQgdW5wcm9jZXNzZWQgd2hpbGUgaG9sZGluZyB0aGUKKyAgICAgICAgICAgICAgIGxvY2suICov
CisgICAgICAgICAgICBpZiAobWF4X2ZyZWUgPT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSkg
eworICAgICAgICAgICAgICAgIHBhc19sb2coIiVwOiV1OiBmb3VuZCBlbXB0eSBwYWdlIHRoYXQg
aXMgbm90IGRlYWQgd2hlbiB0YWtpbmcgbGFzdCBlbXB0eS5cbiIpOworICAgICAgICAgICAgICAg
IFBBU19BU1NFUlQobWF4X2ZyZWUgIT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmIChudW1fZ3JhbnVsZXMg
PiAxKSB7CisgICAgICAgICAgICBwYXNfZnJlZV9ncmFudWxlcyBmcmVlX2dyYW51bGVzOworICAg
ICAgICAgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIHVzZV9jb3VudHM7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2co
IkRlY29tbWl0dGluZyBncmFudWxlcyBmb3IgcGFnZSAlcFxuIiwgcGFnZSk7CisgICAgICAgICAg
ICB1c2VfY291bnRzID0gcGFzX2JpdGZpdF9wYWdlX2dldF9ncmFudWxlX3VzZV9jb3VudHMocGFn
ZSwgKnBhZ2VfY29uZmlnKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcGFzX2ZyZWVfZ3Jh
bnVsZXNfY29tcHV0ZV9hbmRfbWFya19kZWNvbW1pdHRlZCgKKyAgICAgICAgICAgICAgICAmZnJl
ZV9ncmFudWxlcywgdXNlX2NvdW50cywgbnVtX2dyYW51bGVzKTsKKworICAgICAgICAgICAgaWYg
KHBhZ2VfaXNfZGVhZCAhPSAoKGZyZWVfZ3JhbnVsZXMubnVtX2FscmVhZHlfZGVjb21taXR0ZWRf
Z3JhbnVsZXMgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVfZ3JhbnVs
ZXMubnVtX2ZyZWVfZ3JhbnVsZXMpID09IG51bV9ncmFudWxlcykpIHsKKyAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJwYWdlX2lzX2RlYWQgPSAlZFxuIiwgcGFnZV9pc19kZWFkKTsKKyAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJmcmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzID0gJXp1XG4i
LAorICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxl
cyk7CisgICAgICAgICAgICAgICAgcGFzX2xvZygiZnJlZV9ncmFudWxlcy5udW1fYWxyZWFkeV9k
ZWNvbW1pdHRlZF9ncmFudWxlcyA9ICV6dVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZy
ZWVfZ3JhbnVsZXMubnVtX2FscmVhZHlfZGVjb21taXR0ZWRfZ3JhbnVsZXMpOworICAgICAgICAg
ICAgICAgIFBBU19BU1NFUlQoISJwYWdlX2lzX2RlYWQgZG9lcyBub3QgbWF0Y2ggZnJlZV9ncmFu
dWxlcyIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBQQVNfQVNT
RVJUKGZyZWVfZ3JhbnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMgPD0gbnVtX2dyYW51bGVzKTsKKwor
ICAgICAgICAgICAgaWYgKCFmcmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzKSB7CisgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CisgICAg
ICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRl
ZF9hZGQoZGVjb21taXRfbG9nLCBjb21taXRfbG9jayk7CisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwYWdlX2lz
X2RlYWQpCisgICAgICAgICAgICAgICAgdmlldy0+aXNfb3duZWQgPSBmYWxzZTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgLyogV2UgaGF2ZSB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAgbG9j
ayB0byBkZWNvbW1pdCBiZWNhdXNlIGRlY29tbWl0IHdhbnRzIHRoZSBoZWFwCisgICAgICAgICAg
ICAgICBsb2NrLiBUaGF0J3Mgc2FmZSBzaW5jZSB3ZSd2ZSBhbHJlYWR5IG1hcmtlZCB0aGUgc3R1
ZmYgZGVjb21taXR0ZWQuIFRoYXQgbWVhbnMKKyAgICAgICAgICAgICAgIHRoYXQgYW55IGF0dGVt
cHQgdG8gdXNlIHRob3NlIGdyYW51bGVzIHdpbGwgaGF2ZSB0byBncmFiIHRoZSBjb21taXQgbG9j
aywgd2hpY2gKKyAgICAgICAgICAgICAgIHdlIGhvbGQuICovCisgICAgICAgICAgICBwYXNfbG9j
a191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiRG9pbmcgZnJlZSBncmFu
dWxlIGRlY29tbWl0IHdpdGggbG9jayAlcFxuIiwgY29tbWl0X2xvY2spOworICAgICAgICAgICAg
cGFzX2ZyZWVfZ3JhbnVsZXNfZGVjb21taXRfYWZ0ZXJfbG9ja2luZ19yYW5nZSgKKyAgICAgICAg
ICAgICAgICAmZnJlZV9ncmFudWxlcywgJnBhZ2UtPmJhc2UsIGRlY29tbWl0X2xvZywgY29tbWl0
X2xvY2ssICZwYWdlX2NvbmZpZy0+YmFzZSwKKyAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAg
ICAgICAgICAgcGFzX2xvZygiRG9uZSwgc3VjY2VzcyFcbiIpOworICAgICAgICAgICAgCisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIXBhZ2VfaXNfZGVhZCkgeworICAgICAgICAg
ICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICAg
ICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfdW5sb2NrX2FmdGVyX2Fib3J0ZWRfYWRk
KGRlY29tbWl0X2xvZywgY29tbWl0X2xvY2spOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBXZSBkbyB0aGlzIHdoaWxlIGhvbGRpbmcg
Ym90aCBsb2Nrcy4gV2hlbiB3ZSByZWxlYXNlIHRoZSBvd25lcnNoaXAgbG9jaywgdGhlbiBpZiBz
b21lb25lCisgICAgICAgICAgICAgICBlbHNlIGdldHMgaXQsIHRoZXkgd2lsbCBpbW1lZGlhdGVs
eSByZWxlYXNlIGl0IHRvIHRyeSB0byBjb21wZXRlIGZvciB0aGUgY29tbWl0IGxvY2ssCisgICAg
ICAgICAgICAgICB3aGljaCB3ZSBob2xkLiAqLworICAgICAgICAgICAgdmlldy0+aXNfb3duZWQg
PSBmYWxzZTsKKworICAgICAgICAgICAgLyogQW5kIHdlIGhhdmUgdG8gcmVsZWFzZSB0aGUgb3du
ZXJzaGlwIGxvY2sgYmVjYXVzZSBkZWNvbW1pdHRpbmcgbWF5IG5lZWQgdG8gaG9sZCB0aGUgaGVh
cAorICAgICAgICAgICAgICAgbG9jaywgYW5kIHRoZSBoZWFwIGxvY2sgaXMgb3V0ZXIgdG8gdGhl
IG93bmVyc2hpcCBsb2NrLiAqLworICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5v
d25lcnNoaXBfbG9jayk7CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAg
ICAgIHBhc19sb2coIkRlY29taXR0aW5nIHBhZ2UgJXBcbiIsIHBhZ2UpOworCisgICAgICAgICAg
ICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX2FkZF9hbHJlYWR5X2xvY2tlZCgKKyAgICAgICAg
ICAgICAgICBkZWNvbW1pdF9sb2csCisgICAgICAgICAgICAgICAgcGFzX3ZpcnR1YWxfcmFuZ2Vf
Y3JlYXRlKGJhc2UsIGJhc2UgKyBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUsIGNvbW1pdF9s
b2NrKSwKKyAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF90cnlfd3JpdGUoJmRpcmVjdG9y
eS0+bGFzdF9lbXB0eV9wbHVzX29uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGFzdF9lbXB0eV9wbHVzX29uZV92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5kZXgpOworICAgICAgICAKKyAgICAgICAgaWYgKHBhZ2VfaXNfZGVh
ZCkKKyAgICAgICAgICAgIHBhZ2VfY29uZmlnLT5iYXNlLmRlc3Ryb3lfcGFnZV9oZWFkZXIoJnBh
Z2UtPmJhc2UsIGhlYXBfbG9ja19ob2xkX21vZGUpOworCisgICAgICAgIFBBU19BU1NFUlQocGFz
X2JpdGZpdF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKGRpcmVjdG9yeSkpOworICAgICAgICAKKyAg
ICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEoCisgICAgICAgICAg
ICAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sLAorICAgICAgICAgICAgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCisgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3RvcnkpKTsKKyAgICAgICAg
CisgICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzOworICAg
IH0KKworICAgIHBhc192ZXJzaW9uZWRfZmllbGRfdHJ5X3dyaXRlKCZkaXJlY3RvcnktPmxhc3Rf
ZW1wdHlfcGx1c19vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9l
bXB0eV9wbHVzX29uZV92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
KTsKKyAgICAKKyAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFp
bGFibGU7Cit9CisKK3ZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoCisg
ICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKQor
eworICAgIHBhc19zdHJlYW1fcHJpbnRmKAorICAgICAgICBzdHJlYW0sICIlcChiaXRmaXRfZGly
ZWN0b3J5LCAlcykiLAorICAgICAgICBkaXJlY3RvcnksIHBhc19iaXRmaXRfcGFnZV9jb25maWdf
a2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+Y29uZmlnX2tpbmQpKTsKK30KKwordm9pZCBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bShwYXNfc3RyZWFtKiBzdHJlYW0sIHZv
aWQqIGRpcmVjdG9yeSkKK3sKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5j
ZShkaXJlY3RvcnksIHN0cmVhbSk7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rv
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2
LDI2ICsyNiwzMCBAQAogI2lmbmRlZiBQQVNfQklURklUX0RJUkVDVE9SWV9ICiAjZGVmaW5lIFBB
U19CSVRGSVRfRElSRUNUT1JZX0gKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5X2tp
bmQuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X21heF9mcmVlLmgiCiAjaW5jbHVkZSAicGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19raW5kLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3X2FuZF9p
bmRleC5oIgogI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19w
dHIuaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyLmgiCiAj
aW5jbHVkZSAicGFzX2hlYXBfc3VtbWFyeS5oIgorI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnQuaCIKICNpbmNsdWRlICJwYXNfc2VnbWVudGVkX3ZlY3Rvci5oIgogI2luY2x1
ZGUgInBhc192ZXJzaW9uZWRfZmllbGQuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdHJ1
Y3QgcGFzX2JpdGZpdF9kaXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzczsKK3N0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudDsKK3N0
cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3M7CiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlOwogc3Ry
dWN0IHBhc19iaXRmaXRfdmlldzsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnkgcGFzX2JpdGZpdF9kaXJlY3Rvcnk7Ci10eXBl
ZGVmIHN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzIHBhc19iaXRmaXRfZ2xvYmFs
X3NpemVfY2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeV9iaXR2ZWN0
b3Jfc2VnbWVudCBwYXNfYml0Zml0X2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudDsKK3R5cGVk
ZWYgc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFzcyBwYXNfYml0Zml0X3NpemVfY2xhc3M7CiB0
eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2UgcGFzX2JpdGZpdF9wYWdlOwogdHlwZWRlZiBz
dHJ1Y3QgcGFzX2JpdGZpdF92aWV3IHBhc19iaXRmaXRfdmlldzsKK3R5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIAogI2RlZmluZSBQQVNfQklU
RklUX0RJUkVDVE9SWV9WRVJCT1NFX01BWF9GUkVFIGZhbHNlCiAKQEAgLTU3LDE5ICs2MSwzNSBA
QCBQQVNfREVDTEFSRV9TRUdNRU5URURfVkVDVE9SKHBhc19iaXRmaXRfCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDgpOwogCitzdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfYml0dmVjdG9yX3NlZ21lbnQgeworICAgIHVuc2lnbmVkIGVtcHR5X2JpdHM7Cit9OworCisj
ZGVmaW5lIFBBU19CSVRGSVRfRElSRUNUT1JZX0JJVFZFQ1RPUl9TRUdNRU5UX0lOSVRJQUxJWkVS
IFwKKyAgICAoKHBhc19iaXRmaXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50KXsgXAorICAg
ICAgICAgLmVtcHR5X2JpdHMgPSAwLCBcCisgICAgIH0pCisKK1BBU19ERUNMQVJFX1NFR01FTlRF
RF9WRUNUT1IocGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9z
ZWdtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0KTsKKwogc3RydWN0IFBBU19B
TElHTkVEKHNpemVvZihwYXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFzX2JpdGZpdF9kaXJlY3Rvcnkg
ewogICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZmlyc3RfdW5wcm9jZXNzZWRfZnJlZTsKICAgICBw
YXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2VtcHR5OworICAgIHBhc192ZXJzaW9uZWRfZmllbGQg
bGFzdF9lbXB0eV9wbHVzX29uZTsgLyogWmVybyBtZWFucyB0aGVyZSBhcmVuJ3QgYW55LiAqLwor
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXA7CisgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
c2VnbWVudGVkX2JpdHZlY3RvcnMgYml0dmVjdG9yczsKICAgICBwYXNfYml0Zml0X2RpcmVjdG9y
eV9tYXhfZnJlZV92ZWN0b3IgbWF4X2ZyZWVzOwogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3Zp
ZXdfdmVjdG9yIHZpZXdzOworICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9h
ZCBwaHlzaWNhbF9zaGFyaW5nX3BheWxvYWQ7CiAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZp
dF9zaXplX2NsYXNzX3B0ciBsYXJnZXN0X3NpemVfY2xhc3M7Ci0gICAgcGFzX2JpdGZpdF9kaXJl
Y3Rvcnlfa2luZCBkaXJlY3Rvcnlfa2luZCA6IDg7CiAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z19raW5kIGNvbmZpZ19raW5kIDogODsKIH07CiAKIFBBU19BUEkgdm9pZCBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9jb25zdHJ1Y3QocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfa2luZCBkaXJlY3Rvcnlfa2luZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogY29uZmlnKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyog
Y29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwKTsKIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfYml0
Zml0X2RpcmVjdG9yeV9zaXplKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CkBA
IC0xOTUsNyArMjE1LDYgQEAgc3RhdGljIGlubGluZSBwYXNfYml0Zml0X3ZpZXcqIHBhc19iaXRm
aQogICAgc2l6ZV9jbGFzcydzIHZlcnNpb24gb2YgdGhpcyBmdW5jdGlvbi4gKi8KIFBBU19BUEkg
cGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleAogcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2ZpcnN0
X2ZyZWVfdmlldyhwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
KiBzaXplX2NsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBzdGFydF9pbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOwpAQCAtMjE0LDYgKzIz
MywzNyBAQCBQQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZm9yX2VhCiAgICAgcGFz
X2JpdGZpdF9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3RfY2FsbGJhY2sgY2FsbGJhY2ss
CiAgICAgdm9pZCogYXJnKTsKIAorUEFTX0FQSSBib29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X2Rv
ZXNfc2hhcmluZyhwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworUEFTX0FQSSB1
aW50NjRfdCBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdXNlX2Vwb2NoKHBhc19iaXRmaXRfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
Z2V0X2VtcHR5X2JpdF9hdF9pbmRleCgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0
b3J5LAorICAgIHNpemVfdCBpbmRleCk7CisKKy8qIFJldHVybnMgd2hldGhlciB3ZSBjaGFuZ2Vk
IHRoZSB2YWx1ZS4gKi8KK1BBU19BUEkgYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfZW1w
dHlfYml0X2F0X2luZGV4KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisg
ICAgc2l6ZV90IGluZGV4LAorICAgIGJvb2wgdmFsdWUpOworCitQQVNfQVBJIHZvaWQgcGFzX2Jp
dGZpdF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KAorICAgIHBhc19i
aXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgc2l6ZV90IGluZGV4KTsKK1BBU19BUEkg
dm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHkoCisgICAgcGFz
X2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXcp
OworCitQQVNfQVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNfYml0Zml0
X2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKKyAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2csCisg
ICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOworCitQQVNfQVBJIHZv
aWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoCisgICAgcGFzX2JpdGZpdF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKTsKKworUEFTX0FQSSB2b2lk
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtKHBhc19zdHJlYW0qIHN0cmVh
bSwgdm9pZCogZGlyZWN0b3J5KTsKKwogUEFTX0VORF9FWFRFUk5fQzsKIAogI2VuZGlmIC8qIFBB
U19CSVRGSVRfRElSRUNUT1JZX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9p
bmRleC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaAkobm9uZXhpc3RlbnQpCkBAIC0x
LDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2lmbmRlZiBQQVNfQklURklUX0RJUkVDVE9SWV9BTkRfSU5ERVhfSAotI2RlZmluZSBQQVNf
QklURklUX0RJUkVDVE9SWV9BTkRfSU5ERVhfSAotCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJl
Y3Rvcnlfa2luZC5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfYml0Zml0
X2RpcmVjdG9yeTsKLXN0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXg7Ci10eXBl
ZGVmIHN0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeSBwYXNfYml0Zml0X2RpcmVjdG9yeTsKLXR5
cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9hbmRfaW5kZXg7Ci0KLXN0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5k
ZXggewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQg
aW5kZXg7Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZCBraW5kOwotfTsKLQotc3RhdGlj
IGlubGluZSBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXggcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfYW5kX2luZGV4X2NyZWF0ZSgKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5
LCB1bnNpZ25lZCBpbmRleCwgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZCBraW5kKQotewotICAg
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCByZXN1bHQ7Ci0gICAgcmVzdWx0LmRpcmVj
dG9yeSA9IGRpcmVjdG9yeTsKLSAgICByZXN1bHQuaW5kZXggPSBpbmRleDsKLSAgICByZXN1bHQu
a2luZCA9IGtpbmQ7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsK
LQotI2VuZGlmIC8qIFBBU19CSVRGSVRfRElSRUNUT1JZX0FORF9JTkRFWF9IICovCi0KSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2lu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsMjcgKzI2LDExIEBACiAjaWZuZGVmIFBBU19CSVRGSVRf
RElSRUNUT1JZX0lOTElORVNfSAogI2RlZmluZSBQQVNfQklURklUX0RJUkVDVE9SWV9JTkxJTkVT
X0gKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCIKICNpbmNsdWRl
ICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZV9jb25maWcuaCIKIAogUEFTX0JF
R0lOX0VYVEVSTl9DOwogCi1zdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eSoKLXBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9nbG9iYWwocGFzX2JpdGZpdF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSkKLXsKLSAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsK
LSAgICBjYXNlIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kOgotICAgICAgICByZXR1
cm4gKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSopZGlyZWN0b3J5OwotICAgIGNhc2UgcGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kOgotICAgICAgICByZXR1cm4gcGFzX2NvbXBh
Y3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAg
ICAmKChwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KilkaXJlY3RvcnkpLT5wYXJlbnRfZ2xv
YmFsKTsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwot
ICAgIHJldHVybiBOVUxMOwotfQotCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgdW5zaWduZWQgbnVt
X2JpdHM7CiB9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2ZpbmRfZmlyc3RfZnJlZV9mb3JfbnVtX2Jp
dHNfaXRlcmF0ZV9kYXRhOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9k
aXJlY3Rvcnlfa2luZC5oCShub25leGlzdGVudCkKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19CSVRGSVRf
RElSRUNUT1JZX0tJTkRfSAotI2RlZmluZSBQQVNfQklURklUX0RJUkVDVE9SWV9LSU5EX0gKLQot
I2luY2x1ZGUgInBhc191dGlscy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLS8qIEJpdGZp
dCBkaXJlY3RvcmllcyBmb3JtIGEgdHlwZSBoaWVyYXJjaHkgbGlrZSBzbzoKLSAgIAotICAgICAg
IC0gZGlyZWN0b3J5Ci0gICAgICAgICAgIC0gZ2xvYmFsIGRpcmVjdG9yeQotICAgICAgICAgICAt
IGJpYXNpbmcgZGlyZWN0b3J5Ci0gICAKLSAgIE9ubHkgdGhlIHR5cGVzIGF0IHRoZSBsZWF2ZXMg
YXJlIGluc3RhbnRpYWJsZS4gVGhlIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQgZW51bSBpcyBm
b3IKLSAgIGRlc2NyaWJpbmcgdGhlIGluc3RhbnRpYWJsZSBsZWF2ZXMuICovCi0KLWVudW0gcGFz
X2JpdGZpdF9kaXJlY3Rvcnlfa2luZCB7Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
X2tpbmQsCi0gICAgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kCi19OwotCi10eXBl
ZGVmIGVudW0gcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9r
aW5kOwotCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tp
bmRfZ2V0X3N0cmluZyhwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kIGtpbmQpCi17Ci0gICAgc3dp
dGNoIChraW5kKSB7Ci0gICAgY2FzZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZDoK
LSAgICAgICAgcmV0dXJuICJiaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSI7Ci0gICAgY2FzZSBwYXNf
Yml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiAiYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5IjsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUg
cmVhY2hlZCIpOwotICAgIHJldHVybiBOVUxMOwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0j
ZW5kaWYgLyogUEFTX0JJVEZJVF9ESVJFQ1RPUllfS0lORF9IICovCi0KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYwkobm9uZXhpc3Rl
bnQpCkBAIC0xLDQwMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19F
TkFCTEVECi0KLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKLQotI2lu
Y2x1ZGUgInBhc19iaXRmaXRfcGFnZS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfdmlld19pbmxp
bmVzLmgiCi0jaW5jbHVkZSAicGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oIgotI2luY2x1ZGUg
InBhc19mcmVlX2dyYW51bGVzLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgi
Ci0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgotI2luY2x1ZGUgInBhc19zdHJlYW0u
aCIKLSNpbmNsdWRlICJwYXNfc3VicGFnZV9tYXAuaCIKLQotYm9vbCBwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfY2FuX2V4cGxvZGUgPSB0cnVlOwotYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnlfZm9yY2VfZXhwbG9kZSA9IGZhbHNlOwotCi12b2lkIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9jb25zdHJ1Y3QocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZyogY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXApCi17Ci0gICAgcGFzX2JpdGZpdF9k
aXJlY3RvcnlfY29uc3RydWN0KCZkaXJlY3RvcnktPmJhc2UsIHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9raW5kLCBjb25maWcpOwotICAgIGRpcmVjdG9yeS0+aGVhcCA9IGhlYXA7Ci0gICAg
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2NvbnN0cnVj
dCgmZGlyZWN0b3J5LT5iaXR2ZWN0b3JzKTsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9z
aGFyaW5nX3Bvb2xfcHRyX3N0b3JlKCZkaXJlY3RvcnktPmJpYXNfc2hhcmluZ19wb29sLCBOVUxM
KTsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3BheWxvYWRfY29uc3RydWN0KCZk
aXJlY3RvcnktPnBoeXNpY2FsX3NoYXJpbmdfcGF5bG9hZCk7Ci0gICAgZGlyZWN0b3J5LT5jb250
ZW50aW9uX2RpZF90cmlnZ2VyX2V4cGxvc2lvbiA9Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9jYW5fZXhwbG9kZSAmIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9mb3Jj
ZV9leHBsb2RlOwotCi0gICAgLyogV2UgY291bGQgaGF2ZSBiZWVuIGxhenkgYWJvdXQgdGhpcyAt
IGJ1dCBpdCdzIHByb2JhYmx5IG5vdCBzdXBlciBuZWNlc3Nhcnkgc2luY2UgdGhlIHBvaW50Ci0g
ICAgICAgb2YgYml0Zml0IGdsb2JhbCBkaXJlY3RvcmllcyBpcyB0aGF0IHRoZXJlIHdvbid0IGJl
IHRvbyBtYW55IG9mIHRoZW0uICovCi0gICAgaWYgKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eV9kb2VzX3NoYXJpbmcoZGlyZWN0b3J5KSkgewotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfYWRkKAotICAgICAgICAgICAgJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbCwKLSAg
ICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAotICAgICAgICAg
ICAgICAgIGRpcmVjdG9yeSwgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGly
ZWN0b3J5KSk7Ci0gICAgfQotfQotCi1ib29sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9k
b2VzX3NoYXJpbmcocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0g
ICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfbW9kZV9kb2VzX3NoYXJpbmcoCi0gICAgICAgIGRp
cmVjdG9yeS0+aGVhcC0+cnVudGltZV9jb25maWctPnNoYXJpbmdfbW9kZSk7Ci19Ci0gICAgCi11
aW50NjRfdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaChwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICB1aW50cHRyX3QgbGFzdF9l
bXB0eV9wbHVzX29uZTsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZyBjb25maWc7Ci0KLSAgICBsYXN0X2VtcHR5X3BsdXNfb25lID0gZGlyZWN0b3J5LT5sYXN0
X2VtcHR5X3BsdXNfb25lLnZhbHVlOwotICAgIGNvbmZpZyA9ICpwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQpOwotCi0gICAg
Zm9yIChpbmRleCA9IGxhc3RfZW1wdHlfcGx1c19vbmU7IGluZGV4LS07KSB7Ci0gICAgICAgIHBh
c19iaXRmaXRfdmlldyogdmlldzsKLSAgICAgICAgdWludDY0X3QgZXBvY2g7Ci0KLSAgICAgICAg
LyogUHJvdGVjdCBhZ2FpbnN0IHVuc2V0IGVwb2Nocy4gKi8KLSAgICAgICAgaWYgKCFwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleChkaXJlY3RvcnksIGlu
ZGV4KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHZpZXcgPSBwYXNfYml0Zml0
X2RpcmVjdG9yeV9nZXRfdmlldygmZGlyZWN0b3J5LT5iYXNlLCBpbmRleCk7Ci0gICAgICAgIGlm
ICghdmlldykKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHBhc19sb2NrX2xvY2so
JnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgZXBvY2ggPSAwOwotICAgICAgICBpZiAo
dmlldy0+aXNfb3duZWQpIHsKLSAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZSogcGFnZTsKLSAg
ICAgICAgICAgIHBhZ2UgPSBwYXNfYml0Zml0X3BhZ2VfZm9yX2JvdW5kYXJ5KHZpZXctPnBhZ2Vf
Ym91bmRhcnksIGNvbmZpZyk7Ci0gICAgICAgICAgICBpZiAoIXBhZ2UtPm51bV9saXZlX2JpdHMp
IHsKLSAgICAgICAgICAgICAgICBlcG9jaCA9IHBhZ2UtPnVzZV9lcG9jaDsKLSAgICAgICAgICAg
ICAgICBQQVNfQVNTRVJUKGVwb2NoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLQotICAgICAgICBpZiAo
ZXBvY2gpCi0gICAgICAgICAgICByZXR1cm4gZXBvY2g7Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7
Ci19Ci0KLWJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRf
aW5kZXgoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAg
c2l6ZV90IGluZGV4KQotewotICAgIHJldHVybiBwYXNfYml0dmVjdG9yX2dldF9mcm9tX3dvcmQo
Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9y
c19nZXRfcHRyX2NoZWNrZWQoCi0gICAgICAgICAgICAmZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLCBQ
QVNfQklUVkVDVE9SX1dPUkRfSU5ERVgoaW5kZXgpKS0+ZW1wdHlfYml0cywKLSAgICAgICAgaW5k
ZXgpOwotfQotCi0vKiBSZXR1cm5zIHdoZXRoZXIgd2UgY2hhbmdlZCB0aGUgdmFsdWUuICovCi1i
b29sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2luZGV4KAot
ICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBp
bmRleCwKLSAgICBib29sIHZhbHVlKQotewotICAgIHJldHVybiBwYXNfYml0dmVjdG9yX3NldF9h
dG9taWNfaW5fd29yZCgKLSAgICAgICAgJnBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9zZWdt
ZW50ZWRfYml0dmVjdG9yc19nZXRfcHRyX2NoZWNrZWQoCi0gICAgICAgICAgICAmZGlyZWN0b3J5
LT5iaXR2ZWN0b3JzLCBQQVNfQklUVkVDVE9SX1dPUkRfSU5ERVgoaW5kZXgpKS0+ZW1wdHlfYml0
cywKLSAgICAgICAgaW5kZXgsCi0gICAgICAgIHZhbHVlKTsKLX0KLQotdm9pZCBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KAotICAgIHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRleCkK
LXsKLSAgICBpZiAoIXBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0
X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgsIHRydWUpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAv
KiBJZiB3ZSBhbHJlYWR5IGtuZXcgYWJvdXQgZW1wdGllcywgdGhlbiB3ZSBoYXZlIG5vdGhpbmcg
bW9yZSB0byBkby4gKi8KLSAgICBpZiAocGFzX3ZlcnNpb25lZF9maWVsZF9tYXhpbWl6ZSgmZGly
ZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lLCBpbmRleCArIDEpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpZiAoIXBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcoZGly
ZWN0b3J5KSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF9kaWRfY3JlYXRlX2RlbHRhKAotICAgICAgICAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19w
b29sLAotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKLSAgICAg
ICAgICAgIGRpcmVjdG9yeSwgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGly
ZWN0b3J5KSk7Ci19Ci0KLXZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3ZpZXdfZGlk
X2JlY29tZV9lbXB0eSgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKLSAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCi17Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJU
KAotICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSkKLSAgICAgICAgPT0gZGlyZWN0b3J5KTsK
LSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0
X2luZGV4KAotICAgICAgICBkaXJlY3RvcnksIHZpZXctPmluZGV4X2luX2dsb2JhbCk7Ci19Ci0K
LXBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfdGFrZV9sYXN0X2VtcHR5KAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSog
Z2xvYmFsX2RpcmVjdG9yeSwKLSAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1p
dF9sb2csCi0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHBhc19iaXRm
aXRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3ZlcnNpb25lZF9maWVsZCBsYXN0X2Vt
cHR5X3BsdXNfb25lX3ZhbHVlOwotICAgIHNpemVfdCBpbmRleDsKLSAgICBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLSAgICBzaXplX3QgbnVtX2dyYW51bGVzOwotICAgIGJv
b2wgdXNlc19zdWJwYWdlczsKLQotICAgIGRpcmVjdG9yeSA9ICZnbG9iYWxfZGlyZWN0b3J5LT5i
YXNlOwotCi0gICAgbGFzdF9lbXB0eV9wbHVzX29uZV92YWx1ZSA9IHBhc192ZXJzaW9uZWRfZmll
bGRfcmVhZCgmZ2xvYmFsX2RpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZSk7Ci0KLSAgICBw
YWdlX2NvbmZpZyA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVj
dG9yeS0+Y29uZmlnX2tpbmQpOwotICAgIG51bV9ncmFudWxlcyA9IHBhZ2VfY29uZmlnLT5iYXNl
LnBhZ2Vfc2l6ZSAvIHBhZ2VfY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZTsKLSAgICB1c2VzX3N1
YnBhZ2VzID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191c2VzX3N1YnBhZ2VzKCpwYWdlX2NvbmZp
Zyk7Ci0KLSAgICBmb3IgKGluZGV4ID0gbGFzdF9lbXB0eV9wbHVzX29uZV92YWx1ZS52YWx1ZTsg
aW5kZXgtLTspIHsKLSAgICAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3OwotICAgICAgICBwYXNf
Yml0Zml0X3BhZ2UqIHBhZ2U7Ci0gICAgICAgIHVpbnRwdHJfdCBiYXNlOwotICAgICAgICBwYXNf
c3VicGFnZV9tYXBfZW50cnkqIHN1YnBhZ2VfZW50cnk7Ci0gICAgICAgIHBhc19sb2NrKiBjb21t
aXRfbG9jazsKLSAgICAgICAgYm9vbCBwYWdlX2lzX2RlYWQ7Ci0gICAgICAgIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X2FuZF9pbmRleCBkaXJlY3RvcnlfYW5kX2luZGV4OwotICAgICAgICBwYXNfYml0
Zml0X21heF9mcmVlIG1heF9mcmVlOwotICAgICAgICAKLSAgICAgICAgaWYgKCFwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3Rvcnlfc2V0X2VtcHR5X2JpdF9hdF9pbmRleChnbG9iYWxfZGlyZWN0b3J5
LCBpbmRleCwgZmFsc2UpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgdmlldyA9
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KGRpcmVjdG9yeSwgaW5kZXgpOwotCi0gICAg
ICAgIFBBU19BU1NFUlQodmlldyk7Ci0gICAgICAgIFBBU19BU1NFUlQodmlldy0+cGFnZV9ib3Vu
ZGFyeSk7IC8qIFlvdSBkb24ndCBiZWNvbWUgZW1wdHkgdW50aWwgeW91IGhhdmUgYSBwYWdlIGFu
ZCB0aGVuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSBu
ZXZlciBsb3NlIHRoZSBwYWdlLiAqLwotCi0gICAgICAgIGlmICh1c2VzX3N1YnBhZ2VzKSB7Ci0g
ICAgICAgICAgICBzdWJwYWdlX2VudHJ5ID0gcGFzX3N1YnBhZ2VfbWFwX2dldCgKLSAgICAgICAg
ICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUs
IGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICAgICAgY29tbWl0X2xvY2sgPSAmc3VicGFn
ZV9lbnRyeS0+Y29tbWl0X2xvY2s7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzdWJw
YWdlX2VudHJ5ID0gTlVMTDsKLSAgICAgICAgICAgIGNvbW1pdF9sb2NrID0gJnZpZXctPmNvbW1p
dF9sb2NrOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICBw
YXNfbG9nKCJHcmFiYmluZyBjb21taXQgbG9jayAlcFxuIiwgY29tbWl0X2xvY2spOwotICAgICAg
ICBpZiAoIXBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfbG9ja19mb3JfYWRkaW5nKAotICAgICAg
ICAgICAgICAgIGRlY29tbWl0X2xvZywgY29tbWl0X2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUp
KSB7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfdmlld19kaWRfYmVj
b21lX2VtcHR5X2F0X2luZGV4KGdsb2JhbF9kaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAg
IHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9sb2Nrc191bmF2YWlsYWJsZTsKLSAg
ICAgICAgfQotCi0gICAgICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsK
LQotICAgICAgICBpZiAoIXZpZXctPmlzX293bmVkKSB7Ci0gICAgICAgICAgICBwYXNfbG9ja191
bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgIHBhc19kZWZlcnJlZF9k
ZWNvbW1pdF9sb2dfdW5sb2NrX2FmdGVyX2Fib3J0ZWRfYWRkKGRlY29tbWl0X2xvZywgY29tbWl0
X2xvY2spOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBiYXNl
ID0gKHVpbnRwdHJfdCl2aWV3LT5wYWdlX2JvdW5kYXJ5OwotICAgICAgICBQQVNfQVNTRVJUKGJh
c2UpOwotICAgICAgICBwYWdlID0gcGFzX2JpdGZpdF9wYWdlX2Zvcl9ib3VuZGFyeSgodm9pZCop
YmFzZSwgKnBhZ2VfY29uZmlnKTsKLSAgICAgICAgUEFTX0FTU0VSVChwYWdlKTsKLQotICAgICAg
ICBwYWdlX2lzX2RlYWQgPSAhcGFnZS0+bnVtX2xpdmVfYml0czsKLQotICAgICAgICBkaXJlY3Rv
cnlfYW5kX2luZGV4ID0gcGFzX2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRl
eCh2aWV3KTsKLSAgICAgICAgbWF4X2ZyZWUgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfbWF4
X2ZyZWUoZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeV9hbmRfaW5kZXguaW5k
ZXgpOwotICAgICAgICBpZiAocGFnZV9pc19kZWFkKSB7Ci0gICAgICAgICAgICAvKiBJZiBhIHBh
Z2UncyBudW1fbGl2ZV9iaXRzIGRyb3BzIHRvIHplcm8gdGhlbiB3ZSB3aWxsIG1hcmsgaXQgZW1w
dHkgaW4gdGhlIGRpcmVjdG9yeSB0aGF0Ci0gICAgICAgICAgICAgICBvd25zIGl0IHdoaWxlIGhv
bGRpbmcgdGhlIGxvY2suIE5ld2x5IGNyZWF0ZWQgcGFnZXMgc3RhcnQgb3V0IGVtcHR5LgotICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICBUaGUgZmFjdCB0aGF0IGRlYWQgcGFnZXMgYXJlIGVt
cHR5IGluIGJpYXNpbmcgZGlyZWN0b3JpZXMgaGFzIGFuIGludGVyZXN0aW5nIGNvbnNlcXVlbmNl
LgotICAgICAgICAgICAgICAgSXQgbWVhbnMgdGhhdCB3aGVuIHdlIGRlY29tbWl0IGl0IHRoZW4g
dGhlIGJpYXNpbmcgZGlyZWN0b3J5IHdpbGwgc2tpcCB0aGlzIHBhZ2UuIFdlIGFsc28KLSAgICAg
ICAgICAgICAgIHVuYmlhcyBpdCBzbyB0aGF0IGlmIHdlIGRvIGNvbWUgYmFjayB0byBpdCwgd2Un
bGwgZ2V0IGEgZnJlc2ggcGFnZSBmcm9tIHRoZSBnbG9iYWwKLSAgICAgICAgICAgICAgIGRpcmVj
dG9yeSByYXRoZXIgdGhhbiB0cnlpbmcgdG8gY29tbWl0IHRoaXMgb25lLiAgKi8KLSAgICAgICAg
ICAgIGlmIChtYXhfZnJlZSAhPSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZKSB7Ci0gICAgICAg
ICAgICAgICAgcGFzX2xvZygiJXA6JXU6IGZvdW5kIG5vbi1lbXB0eSBwYWdlIHRoYXQgaXMgZGVh
ZCB3aGVuIHRha2luZyBsYXN0IGVtcHR5LlxuIik7Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VS
VChtYXhfZnJlZSA9PSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZKTsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgaWYgKGRpcmVjdG9yeV9hbmRfaW5kZXgua2luZCA9PSBwYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQpIHsKLSAgICAgICAgICAgICAgICB2aWV3LT5pbmRleF9p
bl9iaWFzaW5nID0gMDsKLSAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhf
ZnJlZV9kaWRfYmVjb21lX2VtcHR5KAotICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGlu
ZGV4LCAiYmVjb21lIGVtcHR5IGluIGdsb2JhbCBvbiB1bmJpYXMgZHVyaW5nIHBhZ2UgdGFrZSIp
OwotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyX3N0b3JlKCZ2aWV3LT5iaWFzaW5nX2RpcmVjdG9yeSwgTlVMTCk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogTWFrZSBzdXJlIHRoYXQgd2UgZG9uJ3QgY2xl
YXIgdGhlIHZpZXcgb3V0IG9mIHRoZSBkaXJlY3RvcnkgdW50aWwgd2UncmUgZG9uZSB0ZWxsaW5n
Ci0gICAgICAgICAgICAgICAgICAgdGhlIHZpZXcgdGhhdCBpdCdzIG5vdCBiaWFzZWQuICovCi0g
ICAgICAgICAgICAgICAgcGFzX2ZlbmNlKCk7Ci0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX2JpdGZpdF92aWV3X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICAgICAgICAgcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXdfcHRyKGRpcmVjdG9yeV9hbmRfaW5kZXguZGlyZWN0b3J5
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlyZWN0b3J5X2FuZF9pbmRleC5pbmRleCksCi0gICAgICAgICAgICAgICAgICAgIE5VTEwpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLyogSWYgYSBwYWdl
J3MgbnVtX2xpdmVfYml0cyBnb2VzIGFib3ZlIHplcm8gdGhlbiB3ZSBtYXJrIGl0IHVucHJvY2Vz
c2VkIHdoaWxlIGhvbGRpbmcgdGhlCi0gICAgICAgICAgICAgICBsb2NrLiAqLwotICAgICAgICAg
ICAgaWYgKG1heF9mcmVlID09IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpIHsKLSAgICAgICAg
ICAgICAgICBwYXNfbG9nKCIlcDoldTogZm91bmQgZW1wdHkgcGFnZSB0aGF0IGlzIG5vdCBkZWFk
IHdoZW4gdGFraW5nIGxhc3QgZW1wdHkuXG4iKTsKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJU
KG1heF9mcmVlICE9IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAobnVtX2dyYW51bGVzID4gMSkgewotICAg
ICAgICAgICAgcGFzX2ZyZWVfZ3JhbnVsZXMgZnJlZV9ncmFudWxlczsKLSAgICAgICAgICAgIHBh
c19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBQQVNfQVNTRVJUKCF1c2VzX3N1YnBhZ2VzKTsgLyogV2Ugc2hvdWxkIG5ldmVyIHNl
dCB1cCBzdWJwYWdlcyBmb3IgYSBwYWdlIHdpdGgKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBncmFudWxlcy4gV2UgY291bGQgY2hhbmdlIHRoYXQgKGJ5IGFkZGlu
ZyBhIGJpdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcmUg
bG9naWMpIGJ1dCBmb3Igbm93IGl0IG1ha2VzIG5vIHNlbnNlLiBJdCB3b3VsZAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ubHkgbWFrZSBzZW5zZSBpZiB3ZSBo
YWQgdG8gZGVhbCB3aXRoIGEgZHluYW1pYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN5c3RlbSBwYWdlIHNpemUgYW5kIHdlIGRpZG4ndCB3YW50IHRvIGFjaGll
dmUgdGhhdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5IHNo
aXBwaW5nIG11bHRpcGxlIGNvbmZpZ3MuICovCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlm
ICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIkRlY29tbWl0dGluZyBncmFudWxl
cyBmb3IgcGFnZSAlcFxuIiwgcGFnZSk7Ci0gICAgICAgICAgICB1c2VfY291bnRzID0gcGFzX2Jp
dGZpdF9wYWdlX2dldF9ncmFudWxlX3VzZV9jb3VudHMocGFnZSwgKnBhZ2VfY29uZmlnKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgcGFzX2ZyZWVfZ3JhbnVsZXNfY29tcHV0ZV9hbmRfbWFy
a19kZWNvbW1pdHRlZCgKLSAgICAgICAgICAgICAgICAmZnJlZV9ncmFudWxlcywgdXNlX2NvdW50
cywgbnVtX2dyYW51bGVzKTsKLQotICAgICAgICAgICAgaWYgKHBhZ2VfaXNfZGVhZCAhPSAoKGZy
ZWVfZ3JhbnVsZXMubnVtX2FscmVhZHlfZGVjb21taXR0ZWRfZ3JhbnVsZXMgKwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVfZ3JhbnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMp
ID09IG51bV9ncmFudWxlcykpIHsKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJwYWdlX2lzX2Rl
YWQgPSAlZFxuIiwgcGFnZV9pc19kZWFkKTsKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJmcmVl
X2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzID0gJXp1XG4iLAotICAgICAgICAgICAgICAgICAg
ICAgICAgZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxlcyk7Ci0gICAgICAgICAgICAgICAg
cGFzX2xvZygiZnJlZV9ncmFudWxlcy5udW1fYWxyZWFkeV9kZWNvbW1pdHRlZF9ncmFudWxlcyA9
ICV6dVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVfZ3JhbnVsZXMubnVtX2FscmVh
ZHlfZGVjb21taXR0ZWRfZ3JhbnVsZXMpOwotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoISJw
YWdlX2lzX2RlYWQgZG9lcyBub3QgbWF0Y2ggZnJlZV9ncmFudWxlcyIpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgCi0gICAgICAgICAgICBQQVNfQVNTRVJUKGZyZWVfZ3JhbnVsZXMubnVt
X2ZyZWVfZ3JhbnVsZXMgPD0gbnVtX2dyYW51bGVzKTsKLQotICAgICAgICAgICAgaWYgKCFmcmVl
X2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzKSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvY2tf
dW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICAgICAgcGFzX2RlZmVy
cmVkX2RlY29tbWl0X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9hZGQoZGVjb21taXRfbG9nLCBj
b21taXRfbG9jayk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChwYWdlX2lzX2RlYWQpCi0gICAgICAgICAgICAg
ICAgdmlldy0+aXNfb3duZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgLyog
V2UgaGF2ZSB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAgbG9jayB0byBkZWNvbW1pdCBiZWNhdXNl
IGRlY29tbWl0IHdhbnRzIHRoZSBoZWFwCi0gICAgICAgICAgICAgICBsb2NrLiBUaGF0J3Mgc2Fm
ZSBzaW5jZSB3ZSd2ZSBhbHJlYWR5IG1hcmtlZCB0aGUgc3R1ZmYgZGVjb21taXR0ZWQuIFRoYXQg
bWVhbnMKLSAgICAgICAgICAgICAgIHRoYXQgYW55IGF0dGVtcHQgdG8gdXNlIHRob3NlIGdyYW51
bGVzIHdpbGwgaGF2ZSB0byBncmFiIHRoZSBjb21taXQgbG9jaywgd2hpY2gKLSAgICAgICAgICAg
ICAgIHdlIGhvbGQuICovCi0gICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVy
c2hpcF9sb2NrKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgcGFzX2xvZygiRG9pbmcgZnJlZSBncmFudWxlIGRlY29tbWl0IHdpdGggbG9j
ayAlcFxuIiwgY29tbWl0X2xvY2spOwotICAgICAgICAgICAgcGFzX2ZyZWVfZ3JhbnVsZXNfZGVj
b21taXRfYWZ0ZXJfbG9ja2luZ19yYW5nZSgKLSAgICAgICAgICAgICAgICAmZnJlZV9ncmFudWxl
cywgJnBhZ2UtPmJhc2UsIGRlY29tbWl0X2xvZywgY29tbWl0X2xvY2ssICZwYWdlX2NvbmZpZy0+
YmFzZSwKLSAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiRG9u
ZSwgc3VjY2VzcyFcbiIpOwotICAgICAgICAgICAgCi0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBpZiAoIXBhZ2VfaXNfZGVhZCkgewotICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9j
aygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9k
ZWNvbW1pdF9sb2dfdW5sb2NrX2FmdGVyX2Fib3J0ZWRfYWRkKGRlY29tbWl0X2xvZywgY29tbWl0
X2xvY2spOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICAvKiBXZSBkbyB0aGlzIHdoaWxlIGhvbGRpbmcgYm90aCBsb2Nrcy4gV2hlbiB3ZSBy
ZWxlYXNlIHRoZSBvd25lcnNoaXAgbG9jaywgdGhlbiBpZiBzb21lb25lCi0gICAgICAgICAgICAg
ICBlbHNlIGdldHMgaXQsIHRoZXkgd2lsbCBpbW1lZGlhdGVseSByZWxlYXNlIGl0IHRvIHRyeSB0
byBjb21wZXRlIGZvciB0aGUgY29tbWl0IGxvY2ssCi0gICAgICAgICAgICAgICB3aGljaCB3ZSBo
b2xkLiAqLwotICAgICAgICAgICAgdmlldy0+aXNfb3duZWQgPSBmYWxzZTsKLQotICAgICAgICAg
ICAgLyogQW5kIHdlIGhhdmUgdG8gcmVsZWFzZSB0aGUgb3duZXJzaGlwIGxvY2sgYmVjYXVzZSBk
ZWNvbW1pdHRpbmcgbWF5IG5lZWQgdG8gaG9sZCB0aGUgaGVhcAotICAgICAgICAgICAgICAgbG9j
aywgYW5kIHRoZSBoZWFwIGxvY2sgaXMgb3V0ZXIgdG8gdGhlIG93bmVyc2hpcCBsb2NrLiAqLwot
ICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0KLSAg
ICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIkRlY29taXR0
aW5nIHBhZ2UgJXBcbiIsIHBhZ2UpOwotCi0gICAgICAgICAgICBpZiAodXNlc19zdWJwYWdlcykg
ewotICAgICAgICAgICAgICAgIHBhc19zdWJwYWdlX21hcF9lbnRyeV9kZWNvbW1pdCgKLSAgICAg
ICAgICAgICAgICAgICAgc3VicGFnZV9lbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgKHZvaWQq
KWJhc2UsCi0gICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwK
LSAgICAgICAgICAgICAgICAgICAgZGVjb21taXRfbG9nLAotICAgICAgICAgICAgICAgICAgICBo
ZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ19hZGRfYWxyZWFkeV9sb2NrZWQoCi0gICAgICAg
ICAgICAgICAgICAgIGRlY29tbWl0X2xvZywKLSAgICAgICAgICAgICAgICAgICAgcGFzX3ZpcnR1
YWxfcmFuZ2VfY3JlYXRlKGJhc2UsIGJhc2UgKyBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUs
IGNvbW1pdF9sb2NrKSwKLSAgICAgICAgICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHBhc192ZXJzaW9u
ZWRfZmllbGRfdHJ5X3dyaXRlKCZnbG9iYWxfZGlyZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25l
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0X2VtcHR5X3BsdXNf
b25lX3ZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCk7
Ci0gICAgICAgIAotICAgICAgICBpZiAocGFnZV9pc19kZWFkKQotICAgICAgICAgICAgcGFnZV9j
b25maWctPmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFnZS0+YmFzZSwgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7Ci0KLSAgICAgICAgUEFTX0FTU0VSVChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnlfZG9lc19zaGFyaW5nKGdsb2JhbF9kaXJlY3RvcnkpKTsKLSAgICAgICAgCi0gICAgICAgIHBh
c19wYWdlX3NoYXJpbmdfcG9vbF9kaWRfY3JlYXRlX2RlbHRhKAotICAgICAgICAgICAgJnBhc19w
aHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbCwKLSAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnRfY3JlYXRlKAotICAgICAgICAgICAgICAgIGdsb2JhbF9kaXJlY3RvcnksIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeSkpOwotICAgICAgICAK
LSAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3N1Y2Nlc3M7Ci0gICAg
fQotCi0gICAgcGFzX3ZlcnNpb25lZF9maWVsZF90cnlfd3JpdGUoJmdsb2JhbF9kaXJlY3Rvcnkt
Pmxhc3RfZW1wdHlfcGx1c19vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGFzdF9lbXB0eV9wbHVzX29uZV92YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAwKTsKLSAgICAKLSAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9u
ZV9hdmFpbGFibGU7Ci19Ci0KLXZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2R1bXBf
cmVmZXJlbmNlKAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBw
YXNfc3RyZWFtKiBzdHJlYW0pCi17Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoCi0gICAgICAgIHN0
cmVhbSwgIiVwKGJpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LCAlcykiLAotICAgICAgICBkaXJlY3Rv
cnksIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+YmFz
ZS5jb25maWdfa2luZCkpOwotfQotCi12b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9k
dW1wX2Zvcl9zcGVjdHJ1bShwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQqIGRpcmVjdG9yeSkKLXsK
LSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoZGlyZWN0b3J5
LCBzdHJlYW0pOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaAkobm9uZXhp
c3RlbnQpCkBAIC0xLDEwNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQklURklUX0dMT0JBTF9ESVJFQ1RPUllf
SAotI2RlZmluZSBQQVNfQklURklUX0dMT0JBTF9ESVJFQ1RPUllfSAotCi0jaW5jbHVkZSAicGFz
X2JpdGZpdF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9z
aGFyaW5nX3Bvb2xfcHRyLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dC5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2JpdHZlY3Rvcl9z
ZWdtZW50Owotc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXA7Ci10eXBlZGVmIHN0cnVjdCBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5OwotdHlw
ZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudDsKLXR5cGVkZWYg
c3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKLQotc3RydWN0
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCB7Ci0gICAgdW5z
aWduZWQgZW1wdHlfYml0czsKLX07Ci0KLSNkZWZpbmUgUEFTX0JJVEZJVF9HTE9CQUxfRElSRUNU
T1JZX0JJVFZFQ1RPUl9TRUdNRU5UX0lOSVRJQUxJWkVSIFwKLSAgICAoKHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCl7IFwKLSAgICAgICAgIC5lbXB0eV9iaXRz
ID0gMCwgXAotICAgICB9KQotCi1QQVNfREVDTEFSRV9TRUdNRU5URURfVkVDVE9SKHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9ycywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdt
ZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0KTsKLQotc3RydWN0IFBBU19BTElH
TkVEKHNpemVvZihwYXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5IHsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSBiYXNlOwotICAgIHBhc19zZWdyZWdhdGVk
X2hlYXAqIGhlYXA7Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NlZ21lbnRlZF9i
aXR2ZWN0b3JzIGJpdHZlY3RvcnM7Ci0gICAgcGFzX3ZlcnNpb25lZF9maWVsZCBsYXN0X2VtcHR5
X3BsdXNfb25lOyAvKiBaZXJvIG1lYW5zIHRoZXJlIGFyZW4ndCBhbnkuICovCi0gICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkIHBoeXNpY2FsX3NoYXJpbmdfcGF5bG9hZDsK
LSAgICBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyIGJpYXNfc2hhcmlu
Z19wb29sOwotICAgIGJvb2wgY29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb247Ci19Owot
Ci1leHRlcm4gUEFTX0FQSSBib29sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9jYW5fZXhw
bG9kZTsKLWV4dGVybiBQQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2Zv
cmNlX2V4cGxvZGU7Ci0KLVBBU19BUEkgdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlf
Y29uc3RydWN0KHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZyogY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogc2VncmVnYXRlZF9oZWFwKTsKLQot
UEFTX0FQSSBib29sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcocGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHVpbnQ2NF90
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9nZXRfdXNlX2Vwb2NoKHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSBib29sIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeV9nZXRfZW1wdHlfYml0X2F0X2luZGV4KAotICAgIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRleCk7Ci0KLS8qIFJldHVy
bnMgd2hldGhlciB3ZSBjaGFuZ2VkIHRoZSB2YWx1ZS4gKi8KLVBBU19BUEkgYm9vbCBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2V0X2VtcHR5X2JpdF9hdF9pbmRleCgKLSAgICBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgsCi0gICAg
Ym9vbCB2YWx1ZSk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlf
dmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRleCk7Ci1QQVNfQVBJIHZvaWQgcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eSgKLSAgICBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfYml0Zml0X3ZpZXcq
IHZpZXcpOwotCi1QQVNfQVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KAotICAgIHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9s
b2cqIGRlY29tbWl0X2xvZywKLSAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRf
bW9kZSk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZHVtcF9y
ZWZlcmVuY2UoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHBh
c19zdHJlYW0qIHN0cmVhbSk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0ocGFzX3N0cmVhbSogc3RyZWFtLCB2b2lkKiBkaXJlY3Rv
cnkpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0JJVEZJVF9HTE9CQUxf
RElSRUNUT1JZX0ggKi8KLQotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jCShy
ZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNjQgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
bmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAi
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIgotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCi0jaW5jbHVk
ZSAicGFzX2hlYXBfbG9jay5oIgotI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCi0jaW5j
bHVkZSAicGFzX21hZ2F6aW5lLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudC5oIgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotCi1wYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX2NyZWF0ZSgK
LSAgICB1bnNpZ25lZCBzaXplLAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGly
ZWN0b3J5LAotICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIqIGlu
c2VydGlvbl9wb2ludCkKLXsKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiByZXN1
bHQ7Ci0KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdu
bWVudCgKLSAgICAgICAgc2l6ZW9mKHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MpLAotICAg
ICAgICBhbGlnbm9mKHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MpLAotICAgICAgICAicGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyIsCi0gICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlv
bik7Ci0KLSAgICBwYXNfYml0Zml0X3NpemVfY2xhc3NfY29uc3RydWN0KCZyZXN1bHQtPmJhc2Us
IHNpemUsICZkaXJlY3RvcnktPmJhc2UsIGluc2VydGlvbl9wb2ludCk7Ci0gICAgcGFzX2JpdGZp
dF9nbG9iYWxfc2l6ZV9jbGFzc19iaWFzaW5nX3ZlY3Rvcl9jb25zdHJ1Y3QoJnJlc3VsdC0+Ymlh
c2luZ192ZWN0b3IpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotcGFzX2JpdGZpdF9zaXpl
X2NsYXNzKgotcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19zZWxlY3RfZm9yX21hZ2F6aW5l
KHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIGdsb2JhbF9zaXplX2NsYXNzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19tYWdhemluZSog
bWFnYXppbmUpCi17Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0gICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudCBwYXJ0aWNpcGFudDsKLSAgICBwYXNfYml0Zml0X3NpemVf
Y2xhc3MqIHJlc3VsdDsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2w7Ci0gICAgcGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0gICAgcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciogc2l6ZV9jbGFzc19wdHI7Ci0gICAg
dW5zaWduZWQgbWFnYXppbmVfaW5kZXg7Ci0KLSAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9i
aXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkKCZnbG9iYWxfc2l6ZV9jbGFzcy0+YmFzZS5kaXJlY3Rv
cnkpOwotICAgIGdsb2JhbF9kaXJlY3RvcnkgPSAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
KilkaXJlY3Rvcnk7Ci0gICAgCi0gICAgaWYgKCFnbG9iYWxfZGlyZWN0b3J5LT5jb250ZW50aW9u
X2RpZF90cmlnZ2VyX2V4cGxvc2lvbiB8fCAhbWFnYXppbmUpCi0gICAgICAgIHJldHVybiAmZ2xv
YmFsX3NpemVfY2xhc3MtPmJhc2U7Ci0gICAgCi0gICAgUEFTX0FTU0VSVChwYXNfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnlfY2FuX2V4cGxvZGUpOwotICAgIG1hZ2F6aW5lX2luZGV4ID0gbWFnYXpp
bmUtPm1hZ2F6aW5lX2luZGV4OwotCi0gICAgaWYgKG1hZ2F6aW5lX2luZGV4IDwgZ2xvYmFsX3Np
emVfY2xhc3MtPmJpYXNpbmdfdmVjdG9yLnNpemUpIHsKLSAgICAgICAgcmVzdWx0ID0gcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9sb2FkKAotICAgICAgICAgICAgcGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19iaWFzaW5nX3ZlY3Rvcl9nZXRfcHRyKAotICAgICAg
ICAgICAgICAgICZnbG9iYWxfc2l6ZV9jbGFzcy0+Ymlhc2luZ192ZWN0b3IsIG1hZ2F6aW5lX2lu
ZGV4KSk7Ci0gICAgICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIH0KLQotICAgIHBvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xf
cHRyX2xvYWQoJmdsb2JhbF9kaXJlY3RvcnktPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICBpZiAo
IXBvb2wpIHsKLSAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0KLSAgICAgICAgcG9vbCA9
IHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZ2xvYmFsX2Rp
cmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotICAgICAgICBpZiAoIXBvb2wpIHsKLSAgICAg
ICAgICAgIHBvb2wgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgK
LSAgICAgICAgICAgICAgICBzaXplb2YocGFzX3BhZ2Vfc2hhcmluZ19wb29sKSwKLSAgICAgICAg
ICAgICAgICBhbGlnbm9mKHBhc19wYWdlX3NoYXJpbmdfcG9vbCksCi0gICAgICAgICAgICAgICAg
InBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MvYmlhc19zaGFyaW5nX3Bvb2wiLAotICAgICAg
ICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0gICAgICAgICAgICBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfY29uc3RydWN0KHBvb2wpOwotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRv
bWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9zdG9yZSgKLSAgICAgICAgICAgICAgICAmZ2xvYmFs
X2RpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wsIHBvb2wpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKLQotICAgICAgICBQQVNfQVNTRVJUKAotICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkKCZnbG9i
YWxfZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdfcG9vbCkKLSAgICAgICAgICAgID09IHBvb2wpOwot
ICAgIH0KLQotICAgIFBBU19BU1NFUlQocG9vbCk7Ci0KLSAgICBwYXJ0aWNpcGFudCA9IHBhc19w
YWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFydGljaXBhbnQocG9vbCwgbWFnYXppbmVfaW5kZXgpOwot
ICAgIGlmICghcGFydGljaXBhbnQpIHsKLSAgICAgICAgYmlhc2luZ19kaXJlY3RvcnkgPSBOVUxM
OwotICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKLSAgICAgICAgcGFydGljaXBhbnQgPSBw
YXNfcGFnZV9zaGFyaW5nX3Bvb2xfZ2V0X3BhcnRpY2lwYW50KHBvb2wsIG1hZ2F6aW5lX2luZGV4
KTsKLSAgICAgICAgaWYgKCFwYXJ0aWNpcGFudCkgewotICAgICAgICAgICAgYmlhc2luZ19kaXJl
Y3RvcnkgPSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2NyZWF0ZSgKLSAgICAgICAgICAg
ICAgICBnbG9iYWxfZGlyZWN0b3J5LCBtYWdhemluZV9pbmRleCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKLQotICAgICAgICBpZiAoIXBhcnRpY2lwYW50KSB7
Ci0gICAgICAgICAgICBwYXJ0aWNpcGFudCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFy
dGljaXBhbnQocG9vbCwgbWFnYXppbmVfaW5kZXgpOwotICAgICAgICAgICAgUEFTX0FTU0VSVCgK
LSAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudCA9IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBh
bnRfY3JlYXRlKAotICAgICAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNp
bmdfYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9iaWFzaW5nX2RpcmVjdG9yeSkpOwotICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIFBBU19B
U1NFUlQocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfa2luZChwYXJ0aWNpcGFudCkK
LSAgICAgICAgICAgICAgID09IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19k
aXJlY3RvcnkpOwotCi0gICAgYmlhc2luZ19kaXJlY3RvcnkgPSBwYXNfdW53cmFwX2JpdGZpdF9i
aWFzaW5nX2RpcmVjdG9yeSgKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9n
ZXRfcHRyKHBhcnRpY2lwYW50KSk7Ci0KLSAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKLQotICAg
IHdoaWxlIChtYWdhemluZV9pbmRleCA+PSBnbG9iYWxfc2l6ZV9jbGFzcy0+Ymlhc2luZ192ZWN0
b3Iuc2l6ZSkgewotICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3Nf
cHRyIG51bGxfcHRyID0gUEFTX0NPTVBBQ1RfQVRPTUlDX1BUUl9JTklUSUFMSVpFUjsKLSAgICAg
ICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19iaWFzaW5nX3ZlY3Rvcl9hcHBlbmQoCi0g
ICAgICAgICAgICAmZ2xvYmFsX3NpemVfY2xhc3MtPmJpYXNpbmdfdmVjdG9yLCBudWxsX3B0ciwg
cGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgfQotCi0gICAgc2l6ZV9jbGFzc19wdHIgPSBwYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVjdG9yX2dldF9wdHIoCi0gICAgICAgICZn
bG9iYWxfc2l6ZV9jbGFzcy0+Ymlhc2luZ192ZWN0b3IsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICBy
ZXN1bHQgPSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX2xvYWQoc2l6
ZV9jbGFzc19wdHIpOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIHJlc3VsdCA9IHBhc19i
aXRmaXRfc2l6ZV9jbGFzc19jcmVhdGUoCi0gICAgICAgICAgICBnbG9iYWxfc2l6ZV9jbGFzcy0+
YmFzZS5zaXplLCAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UpOwotICAgICAgICBwYXNfZmVuY2Uo
KTsKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9zdG9y
ZShzaXplX2NsYXNzX3B0ciwgcmVzdWx0KTsKLSAgICB9Ci0KLSAgICBwYXNfaGVhcF9sb2NrX3Vu
bG9jaygpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFC
TEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2Jh
bF9zaXplX2NsYXNzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw2MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0JJVEZJVF9H
TE9CQUxfU0laRV9DTEFTU19ICi0jZGVmaW5lIFBBU19CSVRGSVRfR0xPQkFMX1NJWkVfQ0xBU1Nf
SAotCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2NsYXNzLmgiCi0jaW5jbHVkZSAicGFzX3Nl
Z21lbnRlZF92ZWN0b3IuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xh
c3M7Ci1zdHJ1Y3QgcGFzX21hZ2F6aW5lOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0
IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
czsKLXR5cGVkZWYgc3RydWN0IHBhc19tYWdhemluZSBwYXNfbWFnYXppbmU7Ci0KLVBBU19ERUNM
QVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19iaWFzaW5n
X3ZlY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X2JpdGZpdF9zaXplX2NsYXNzX3B0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCk7
Ci0KLXN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19i
aXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MgewotICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyBiYXNl
OwotICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfYmlhc2luZ192ZWN0b3IgYmlhc2lu
Z192ZWN0b3I7Ci19OwotCi1QQVNfQVBJIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIHBh
c19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfY3JlYXRlKAotICAgIHVuc2lnbmVkIHNpemUsCi0g
ICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX2NvbXBh
Y3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciogaW5zZXJ0aW9uX3BvaW50KTsKLQotUEFT
X0FQSSBwYXNfYml0Zml0X3NpemVfY2xhc3MqCi1wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
X3NlbGVjdF9mb3JfbWFnYXppbmUocGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogc2l6ZV9j
bGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbWFnYXppbmUqIG1hZ2F6aW5lKTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8q
IFBBU19CSVRGSVRfR0xPQkFMX1NJWkVfQ0xBU1NfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9o
ZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEzICsyOSwxMyBAQAogCiAjaW5jbHVkZSAicGFz
X2JpdGZpdF9oZWFwLmgiCiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnku
aCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgiCisjaW5jbHVkZSAi
cGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0X3NpemVfY2xhc3Mu
aCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2UuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3Zp
ZXcuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfaW1tb3J0
YWxfaGVhcC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAKIHBhc19i
aXRmaXRfaGVhcCogcGFzX2JpdGZpdF9oZWFwX2NyZWF0ZShwYXNfc2VncmVnYXRlZF9oZWFwKiBz
ZWdyZWdhdGVkX2hlYXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZykKQEAgLTUwLDcgKzUwLDcgQEAgcGFzX2JpdGZp
dF9oZWFwKiBwYXNfYml0Zml0X2hlYXBfY3JlYXRlKAogICAgICAgICBwYXNfb2JqZWN0X2FsbG9j
YXRpb24pOwogCiAgICAgZm9yIChQQVNfRUFDSF9CSVRGSVRfUEFHRV9DT05GSUdfVkFSSUFOVF9B
U0NFTkRJTkcodmFyaWFudCkpIHsKLSAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
X2NvbnN0cnVjdCgKKyAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfY29uc3RydWN0KAogICAg
ICAgICAgICAgcGFzX2JpdGZpdF9oZWFwX2dldF9kaXJlY3RvcnkocmVzdWx0LCB2YXJpYW50KSwK
ICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZ19iaXRmaXRfcGFnZV9jb25maWdfcHRyX2Zvcl92
YXJpYW50KGhlYXBfY29uZmlnLCB2YXJpYW50KSwKICAgICAgICAgICAgIHNlZ3JlZ2F0ZWRfaGVh
cCk7CkBAIC0xMDcsMTUgKzEwNywxNSBAQCBwYXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIHBh
c19iaXRmaXRfCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotcGFzX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzcyoKLXBhc19iaXRmaXRfaGVhcF9lbnN1cmVfZ2xvYmFsX3NpemVfY2xhc3MocGFzX2Jp
dGZpdF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKK3Bhc19i
aXRmaXRfc2l6ZV9jbGFzcyoKK3Bhc19iaXRmaXRfaGVhcF9lbnN1cmVfc2l6ZV9jbGFzcyhwYXNf
Yml0Zml0X2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21v
ZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiAgICAgCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogcmVzdWx0
OworICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogcmVzdWx0OwogICAgIHBhc19iaXRmaXRfdmFy
aWFudF9zZWxlY3Rpb24gYmVzdDsKIAogICAgIGlmICh2ZXJib3NlKSB7CkBAIC0xMzMsMTAgKzEz
MywxMCBAQCBwYXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2JhbF9zaXplX2NsYXNzCiAgICAgICAg
ICAgICAgICAgIihkaXJlY3Rvcnkgc2l6ZSA9ICV1LCBiZXN0IG9iamVjdCBzaXplID0gJXUpLlxu
IiwKICAgICAgICAgICAgICAgICBoZWFwLCBkaXJlY3RvcnksIGRpcmVjdG9yeS0+b2JqZWN0X3Np
emUsIGJlc3Qub2JqZWN0X3NpemUpOwogICAgIH0KLSAgICByZXN1bHQgPSBwYXNfY29tcGFjdF9h
dG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0cl9sb2FkKCZkaXJlY3RvcnktPmJpdGZp
dF9zaXplX2NsYXNzKTsKKyAgICByZXN1bHQgPSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3Np
emVfY2xhc3NfcHRyX2xvYWQoJmRpcmVjdG9yeS0+Yml0Zml0X3NpemVfY2xhc3MpOwogICAgIGlm
ICghcmVzdWx0KSB7CiAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFz
c19wdHIqIGluc2VydGlvbl9wb2ludDsKLSAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5KiBiaXRmaXRfZGlyZWN0b3J5OworICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogYml0
Zml0X2RpcmVjdG9yeTsKICAgICAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNz
OwogCiAgICAgICAgIGlmICh2ZXJib3NlKQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHBhc19iaXRmaXRf
aGVhcF9lbnN1cmVfZ2xvYmFsX3NpemVfY2xhc3MKICAgICAgICAgYml0Zml0X2RpcmVjdG9yeSA9
IHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KGhlYXAsIGJlc3QudmFyaWFudCk7CiAKICAg
ICAgICAgaW5zZXJ0aW9uX3BvaW50ID0gcGFzX2JpdGZpdF9zaXplX2NsYXNzX2ZpbmRfaW5zZXJ0
aW9uX3BvaW50KAotICAgICAgICAgICAgJmJpdGZpdF9kaXJlY3RvcnktPmJhc2UsIGJlc3Qub2Jq
ZWN0X3NpemUpOworICAgICAgICAgICAgYml0Zml0X2RpcmVjdG9yeSwgYmVzdC5vYmplY3Rfc2l6
ZSk7CiAgICAgICAgIGlmIChpbnNlcnRpb25fcG9pbnQpCiAgICAgICAgICAgICBzaXplX2NsYXNz
ID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9sb2FkKGluc2VydGlv
bl9wb2ludCk7CiAgICAgICAgIGVsc2UKQEAgLTE1NCwxMyArMTU0LDEzIEBAIHBhc19iaXRmaXRf
aGVhcF9lbnN1cmVfZ2xvYmFsX3NpemVfY2xhc3MKICAgICAgICAgaWYgKHNpemVfY2xhc3MgJiYg
c2l6ZV9jbGFzcy0+c2l6ZSA9PSBiZXN0Lm9iamVjdF9zaXplKSB7CiAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKICAgICAgICAgICAgICAgICBwYXNfbG9nKCJBY3R1YWxseSBpdCBkb2VzIVxuIik7
Ci0gICAgICAgICAgICByZXN1bHQgPSAocGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyopc2l6
ZV9jbGFzczsKKyAgICAgICAgICAgIHJlc3VsdCA9IChwYXNfYml0Zml0X3NpemVfY2xhc3MqKXNp
emVfY2xhc3M7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBwYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzX2NyZWF0ZSgKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhc19i
aXRmaXRfc2l6ZV9jbGFzc19jcmVhdGUoCiAgICAgICAgICAgICAgICAgYmVzdC5vYmplY3Rfc2l6
ZSwgYml0Zml0X2RpcmVjdG9yeSwgaW5zZXJ0aW9uX3BvaW50KTsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19w
dHJfc3RvcmUoCisgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19w
dHJfc3RvcmUoCiAgICAgICAgICAgICAmZGlyZWN0b3J5LT5iaXRmaXRfc2l6ZV9jbGFzcywgcmVz
dWx0KTsKICAgICB9CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKQEAgLTE3OCw4ICsxNzgsNyBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBh
c19iaXRmaXRfaGVhcF9jb21wdXRlCiAgICAgZm9yIChQQVNfRUFDSF9CSVRGSVRfUEFHRV9DT05G
SUdfVkFSSUFOVF9BU0NFTkRJTkcodmFyaWFudCkpIHsKICAgICAgICAgcmVzdWx0ID0gcGFzX2hl
YXBfc3VtbWFyeV9hZGQoCiAgICAgICAgICAgICByZXN1bHQsCi0gICAgICAgICAgICBwYXNfYml0
Zml0X2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnkoCi0gICAgICAgICAgICAgICAgJnBhc19iaXRm
aXRfaGVhcF9nZXRfZGlyZWN0b3J5KGhlYXAsIHZhcmlhbnQpLT5iYXNlKSk7CisgICAgICAgICAg
ICBwYXNfYml0Zml0X2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnkocGFzX2JpdGZpdF9oZWFwX2dl
dF9kaXJlY3RvcnkoaGVhcCwgdmFyaWFudCkpKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0
OwpAQCAtMjE3LDE1ICsyMTYsMTUgQEAgYm9vbCBwYXNfYml0Zml0X2hlYXBfZm9yX2VhY2hfbGl2
ZV9vYmplYwogICAgIGRhdGEuYXJnID0gYXJnOwogCiAgICAgZm9yIChQQVNfRUFDSF9CSVRGSVRf
UEFHRV9DT05GSUdfVkFSSUFOVF9BU0NFTkRJTkcodmFyaWFudCkpIHsKLSAgICAgICAgcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgIHBhc19iaXRmaXRfZGly
ZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgICAgIHNpemVfdCBpbmRleDsKIAogICAgICAgICBkaXJl
Y3RvcnkgPSBwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeShoZWFwLCB2YXJpYW50KTsKIAot
ICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfYml0Zml0X2RpcmVjdG9yeV9zaXpl
KCZkaXJlY3RvcnktPmJhc2UpOyArK2luZGV4KSB7CisgICAgICAgIGZvciAoaW5kZXggPSAwOyBp
bmRleCA8IHBhc19iaXRmaXRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsgKytpbmRleCkgewog
ICAgICAgICAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3OwogCi0gICAgICAgICAgICB2aWV3ID0g
cGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoJmRpcmVjdG9yeS0+YmFzZSwgaW5kZXgpOwor
ICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KGRpcmVjdG9y
eSwgaW5kZXgpOwogICAgICAgICAgICAgaWYgKCF2aWV3KQogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X2hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X2hlYXAuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDI4
ICsyNiwyOCBAQAogI2lmbmRlZiBQQVNfQklURklUX0hFQVBfSAogI2RlZmluZSBQQVNfQklURklU
X0hFQVBfSAogCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCisjaW5j
bHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX3ZhcmlhbnQuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdHJ1Y3QgcGFzX2Jp
dGZpdF9oZWFwOwogc3RydWN0IHBhc19oZWFwX2NvbmZpZzsKLXN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3Rvcnk7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19i
aXRmaXRfaGVhcCBwYXNfYml0Zml0X2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9jb25m
aWcgcGFzX2hlYXBfY29uZmlnOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3R5
cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNf
c2VncmVnYXRlZF9oZWFwOwogCiBzdHJ1Y3QgUEFTX0FMSUdORUQoc2l6ZW9mKHBhc192ZXJzaW9u
ZWRfZmllbGQpKSBwYXNfYml0Zml0X2hlYXAgewotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeSBkaXJlY3Rvcmllc1tQQVNfTlVNX0JJVEZJVF9QQUdFX0NPTkZJR19WQVJJQU5UU107Cisg
ICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkgZGlyZWN0b3JpZXNbUEFTX05VTV9CSVRGSVRfUEFHRV9D
T05GSUdfVkFSSUFOVFNdOwogfTsKIAogUEFTX0FQSSBwYXNfYml0Zml0X2hlYXAqIHBhc19iaXRm
aXRfaGVhcF9jcmVhdGUocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogaGVhcF9j
b25maWcpOwogCi1zdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogcGFz
X2JpdGZpdF9oZWFwX2dldF9kaXJlY3RvcnkoCitzdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfZGly
ZWN0b3J5KiBwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeSgKICAgICBwYXNfYml0Zml0X2hl
YXAqIGhlYXAsCiAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50IHZhcmlhbnQpCiB7
CkBAIC02Myw5ICs2Myw5IEBAIHR5cGVkZWYgc3RydWN0IHsKIFBBU19BUEkgcGFzX2JpdGZpdF92
YXJpYW50X3NlbGVjdGlvbgogcGFzX2JpdGZpdF9oZWFwX3NlbGVjdF92YXJpYW50KHNpemVfdCBv
YmplY3Rfc2l6ZSwgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpOwogCi1QQVNfQVBJIHBhc19iaXRm
aXRfZ2xvYmFsX3NpemVfY2xhc3MqCi1wYXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2JhbF9zaXpl
X2NsYXNzKHBhc19iaXRmaXRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCitQQVNfQVBJIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyoKK3Bhc19iaXRmaXRfaGVhcF9l
bnN1cmVfc2l6ZV9jbGFzcyhwYXNfYml0Zml0X2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19o
ZWFwX2NvbmZpZyogY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZS5jCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZS5j
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X3BhZ2UuYwkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW5j
bHVkZSAicGFzX2JpdGZpdF9wYWdlLmgiCiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgogI2luY2x1ZGUg
InBhc19iaXRmaXRfdmlldy5oIgogI2luY2x1ZGUgInBhc19lcG9jaC5oIgogI2luY2x1ZGUgInBh
c19sb2cuaCIKQEAgLTEyNSw5ICsxMjUsOSBAQCB2b2lkIHBhc19iaXRmaXRfcGFnZV9jb25zdHJ1
Y3QocGFzX2JpdGZpCiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBwYXNfYml0Zml0X3BhZ2VfZ2V0
X2NvbmZpZyhwYXNfYml0Zml0X3BhZ2UqIHBhZ2UpCiB7CiAgICAgcmV0dXJuIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKAotICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgcGFzX2NvbXBhY3Rf
Yml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICZwYXNfY29t
cGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAg
ICAgJnBhZ2UtPm93bmVyKS0+Z2xvYmFsX2RpcmVjdG9yeSktPmJhc2UuY29uZmlnX2tpbmQpOwor
ICAgICAgICAgICAgICAgICZwYWdlLT5vd25lciktPmRpcmVjdG9yeSktPmNvbmZpZ19raW5kKTsK
IH0KIAogdm9pZCBwYXNfYml0Zml0X3BhZ2VfbG9nX2JpdHMoCkBAIC0yMDEsOCArMjAxLDggQEAg
Ym9vbCBwYXNfYml0Zml0X3BhZ2VfZm9yX2VhY2hfbGl2ZV9vYmplYwogCiAgICAgdmlldyA9IHBh
c19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfbG9hZCgmcGFnZS0+b3duZXIpOwogICAg
IGNvbmZpZ19wdHIgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZygKLSAg
ICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251
bGwoCi0gICAgICAgICAgICAmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSktPmJhc2UuY29uZmlnX2tp
bmQpOworICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9u
dWxsKAorICAgICAgICAgICAgJnZpZXctPmRpcmVjdG9yeSktPmNvbmZpZ19raW5kKTsKICAgICBj
b25maWcgPSAqY29uZmlnX3B0cjsKIAogICAgIGJvdW5kYXJ5ID0gcGFzX2JpdGZpdF9wYWdlX2Jv
dW5kYXJ5KHBhZ2UsIGNvbmZpZyk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3Bh
Z2VfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2NiwxMiArMTY2LDYgQEAgcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ19ieXRlX29mZnNldF9mb3JfbwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuYmFzZS5taW5fYWxp
Z25fc2hpZnQpOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbAotcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ191c2VzX3N1YnBhZ2VzKHBhc19iaXRmaXRfcGFnZV9jb25maWcgY29uZmln
KQotewotICAgIHJldHVybiBjb25maWcuYmFzZS5wYWdlX3NpemUgPCBwYXNfcGFnZV9tYWxsb2Nf
YWxpZ25tZW50KCk7Ci19Ci0KIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfQklU
RklUX1BBR0VfQ09ORklHX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9w
YWdlX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNTk5LDcgKzU5OSw3IEBAIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSB1aW50cHRyX3QgcGFzX2IKICAgICAgICAgCiAgICAgY2FzZSBwYXNf
Yml0Zml0X3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2VfaW1wbF9kZWFsbG9jYXRlX21vZGU6CiAg
ICAgY2FzZSBwYXNfYml0Zml0X3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2VfaW1wbF9zaHJpbmtf
bW9kZToKLSAgICAgICAgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2sob3duZXIp
OworICAgICAgICBwYXNfbG9ja19sb2NrKCZvd25lci0+b3duZXJzaGlwX2xvY2spOwogICAgICAg
ICAKICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX3Rlc3RpbmdfdmVyaWZ5KHBhZ2UpOwogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3NpemVfY2xhc3Mu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X3NpemVfY2xhc3MuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMJKHdvcmtpbmcgY29weSkKQEAg
LTc1LDggKzc1LDEwIEBAIHZvaWQgcGFzX2JpdGZpdF9zaXplX2NsYXNzX2NvbnN0cnVjdChwYXMK
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX3N0b3JlKGluc2Vy
dGlvbl9wb2ludCwgc2l6ZV9jbGFzcyk7CiB9CiAKLXBhc19iaXRmaXRfc2l6ZV9jbGFzcyogcGFz
X2JpdGZpdF9zaXplX2NsYXNzX2NyZWF0ZSh1bnNpZ25lZCBzaXplLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpCitwYXNfYml0Zml0X3NpemVfY2xhc3MqIHBhc19iaXRmaXRfc2l6ZV9jbGFz
c19jcmVhdGUoCisgICAgdW5zaWduZWQgc2l6ZSwKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAorICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIq
IGluc2VydGlvbl9wb2ludCkKIHsKICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHJlc3VsdDsK
IApAQCAtODYsMTYgKzg4LDEzIEBAIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogcGFzX2JpdGZpdF9z
aXplX2MKICAgICAgICAgInBhc19iaXRmaXRfc2l6ZV9jbGFzcyIsCiAgICAgICAgIHBhc19vYmpl
Y3RfYWxsb2NhdGlvbik7CiAKLSAgICBwYXNfYml0Zml0X3NpemVfY2xhc3NfY29uc3RydWN0KAot
ICAgICAgICByZXN1bHQsIHNpemUsIGRpcmVjdG9yeSwKLSAgICAgICAgcGFzX2JpdGZpdF9zaXpl
X2NsYXNzX2ZpbmRfaW5zZXJ0aW9uX3BvaW50KGRpcmVjdG9yeSwgc2l6ZSkpOworICAgIHBhc19i
aXRmaXRfc2l6ZV9jbGFzc19jb25zdHJ1Y3QocmVzdWx0LCBzaXplLCBkaXJlY3RvcnksIGluc2Vy
dGlvbl9wb2ludCk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBwYXNfYml0Zml0X3ZpZXcq
CiBwYXNfYml0Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2ZyZWVfdmlldyhwYXNfYml0Zml0X3Np
emVfY2xhc3MqIHNpemVfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBnbG9iYWxfc2l6ZV9jbGFzcywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFn
ZV9jb25maWcqIHBhZ2VfY29uZmlnKQogewogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnk7CkBAIC0xMTQsNyArMTEzLDcgQEAgcGFzX2JpdGZpdF9zaXplX2NsYXNzX2dldF9maXJz
dF9mcmVlX3ZpZQogICAgIFBBU19BU1NFUlQoKHVuc2lnbmVkKXN0YXJ0X2luZGV4ID09IHN0YXJ0
X2luZGV4KTsKICAgICAKICAgICB2aWV3X2FuZF9pbmRleCA9IHBhc19iaXRmaXRfZGlyZWN0b3J5
X2dldF9maXJzdF9mcmVlX3ZpZXcoCi0gICAgICAgIGRpcmVjdG9yeSwgZ2xvYmFsX3NpemVfY2xh
c3MsICh1bnNpZ25lZClzdGFydF9pbmRleCwgc2l6ZV9jbGFzcy0+c2l6ZSwgcGFnZV9jb25maWcp
OworICAgICAgICBkaXJlY3RvcnksICh1bnNpZ25lZClzdGFydF9pbmRleCwgc2l6ZV9jbGFzcy0+
c2l6ZSwgcGFnZV9jb25maWcpOwogCiAgICAgUEFTX0FTU0VSVCh2aWV3X2FuZF9pbmRleC52aWV3
KTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9z
aXplX2NsYXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMywxMSArMzMsMTEgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1zdHJ1
Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzczsKK3N0cnVjdCBwYXNfYml0Zml0X3NpemVf
Y2xhc3M7CiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZzsKIHN0cnVjdCBwYXNfYml0Zml0
X3NpemVfY2xhc3M7CiBzdHJ1Y3QgcGFzX2JpdGZpdF92aWV3OwotdHlwZWRlZiBzdHJ1Y3QgcGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzIHBhc19iaXRmaXRfc2l6ZV9jbGFz
czsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfcGFnZV9jb25maWcgcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZzsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFzcyBwYXNfYml0Zml0
X3NpemVfY2xhc3M7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3ZpZXcgcGFzX2JpdGZpdF92
aWV3OwpAQCAtNTksMTIgKzU5LDEzIEBAIFBBU19BUEkgdm9pZCBwYXNfYml0Zml0X3NpemVfY2xh
c3NfY29uc3QKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIqIGluc2VydGlvbl9wb2ludCk7CiAK
LVBBU19BUEkgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBwYXNfYml0Zml0X3NpemVfY2xhc3NfY3Jl
YXRlKHVuc2lnbmVkIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KTsK
K1BBU19BUEkgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBwYXNfYml0Zml0X3NpemVfY2xhc3NfY3Jl
YXRlKAorICAgIHVuc2lnbmVkIHNpemUsCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNl
cnRpb25fcG9pbnQpOwogCiBQQVNfQVBJIHBhc19iaXRmaXRfdmlldyoKIHBhc19iaXRmaXRfc2l6
ZV9jbGFzc19nZXRfZmlyc3RfZnJlZV92aWV3KHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogc2l6ZV9j
bGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRm
aXRfZ2xvYmFsX3NpemVfY2xhc3MqIGdsb2JhbF9zaXplX2NsYXNzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogcGFnZV9j
b25maWcpOwogCiBQQVNfRU5EX0VYVEVSTl9DOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3LmMJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlldy5jCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwxMyArMjksMTQgQEAKIAogI2luY2x1ZGUgInBhc19iaXRmaXRf
dmlldy5oIgogCisjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJw
YXNfYml0Zml0X3BhZ2UuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oIgog
I2luY2x1ZGUgInBhc19lcG9jaC5oIgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5o
IgogCi1wYXNfYml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfdmlld19jcmVhdGUocGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgaW5kZXhfaW5fZ2xvYmFsKQorcGFzX2JpdGZpdF92aWV3KiBw
YXNfYml0Zml0X3ZpZXdfY3JlYXRlKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5kZXgpCiB7
CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtNDgsNDIg
KzQ5LDI0IEBAIHBhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpdF92aWV3X2NyZWF0ZSgKIAogICAg
IGlmICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coIkNyZWF0aW5nIHZpZXcgJXAgd2l0aCBj
b25maWcgJXNcbiIsCi0gICAgICAgICAgICAgICAgcmVzdWx0LCBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnX2tpbmRfZ2V0X3N0cmluZyhkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQpKTsKKyAgICAg
ICAgICAgICAgICByZXN1bHQsIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5n
KGRpcmVjdG9yeS0+Y29uZmlnX2tpbmQpKTsKICAgICB9CiAKICAgICByZXN1bHQtPnBhZ2VfYm91
bmRhcnkgPSBOVUxMOwotICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmJpYXNpbmdfZGlyZWN0b3J5LCBOVUxMKTsKLSAgICBw
YXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+Z2xv
YmFsX2RpcmVjdG9yeSwgZGlyZWN0b3J5KTsKKyAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0
b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRpcmVjdG9yeSk7CiAgICAgcmVzdWx0
LT5pc19vd25lZCA9IGZhbHNlOwotICAgIHJlc3VsdC0+aW5kZXhfaW5fZ2xvYmFsID0gaW5kZXhf
aW5fZ2xvYmFsOwotICAgIHJlc3VsdC0+aW5kZXhfaW5fYmlhc2luZyA9IDA7CisgICAgcmVzdWx0
LT5pbmRleCA9IGluZGV4OwogICAgIHBhc19sb2NrX2NvbnN0cnVjdCgmcmVzdWx0LT5vd25lcnNo
aXBfbG9jayk7Ci0KLSAgICBpZiAocGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191c2VzX3N1YnBhZ2Vz
KAotICAgICAgICAgICAgKnBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRp
cmVjdG9yeS0+YmFzZS5jb25maWdfa2luZCkpKQotICAgICAgICBwYXNfbG9ja19jb25zdHJ1Y3Rf
ZGlzYWJsZWQoJnJlc3VsdC0+Y29tbWl0X2xvY2spOwotICAgIGVsc2UKLSAgICAgICAgcGFzX2xv
Y2tfY29uc3RydWN0KCZyZXN1bHQtPmNvbW1pdF9sb2NrKTsKKyAgICBwYXNfbG9ja19jb25zdHJ1
Y3QoJnJlc3VsdC0+Y29tbWl0X2xvY2spOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9p
ZCBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19zbG93KHBhc19iaXRmaXRfdmll
dyogdmlldykKLXsKLSAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJf
bG9hZCgKLSAgICAgICAgJnZpZXctPmdsb2JhbF9kaXJlY3RvcnkpLT5jb250ZW50aW9uX2RpZF90
cmlnZ2VyX2V4cGxvc2lvbiA9Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9j
YW5fZXhwbG9kZTsKLSAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci19
Ci0KIHZvaWQgcGFzX2JpdGZpdF92aWV3X25vdGVfbm9uZW1wdGluZXNzKHBhc19iaXRmaXRfdmll
dyogdmlldykKIHsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXggZGlyZWN0b3J5
X2FuZF9pbmRleDsKLSAgICAKLSAgICBkaXJlY3RvcnlfYW5kX2luZGV4ID0gcGFzX2JpdGZpdF92
aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRleCh2aWV3KTsKICAgICBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX3VucHJvY2Vzc2VkX3VuY2hlY2tlZCgKLSAgICAg
ICAgZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3RvcnksCi0gICAgICAgIGRpcmVjdG9yeV9hbmRf
aW5kZXguaW5kZXgsCisgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xv
YWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSksCisgICAgICAgIHZpZXctPmluZGV4LAogICAg
ICAgICAiYmVjb21lIHVucHJvY2Vzc2VkIG9uIG5vdGVfbm9uZW1wdGluZXNzIik7CiB9CiAKQEAg
LTkxLDIwICs3NCwxNyBAQCBzdGF0aWMgdm9pZCBkaWRfYmVjb21lX2VtcHR5X2Zvcl9iaXRzKHBh
CiB7CiAgICAgcGFnZS0+dXNlX2Vwb2NoID0gcGFzX2dldF9lcG9jaCgpOwogCi0gICAgcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eSgKLSAgICAgICAgcGFz
X2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXct
Pmdsb2JhbF9kaXJlY3RvcnkpLCB2aWV3KTsKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3
X2RpZF9iZWNvbWVfZW1wdHkoCisgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSksIHZpZXcpOwogfQogCiB2b2lkIHBh
c19iaXRmaXRfdmlld19ub3RlX2Z1bGxfZW1wdGluZXNzKHBhc19iaXRmaXRfdmlldyogdmlldywg
cGFzX2JpdGZpdF9wYWdlKiBwYWdlKQogewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9p
bmRleCBkaXJlY3RvcnlfYW5kX2luZGV4OwotCiAgICAgZGlkX2JlY29tZV9lbXB0eV9mb3JfYml0
cyh2aWV3LCBwYWdlKTsKICAgICAKLSAgICBkaXJlY3RvcnlfYW5kX2luZGV4ID0gcGFzX2JpdGZp
dF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRleCh2aWV3KTsKICAgICBwYXNfYml0Zml0
X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX2VtcHR5KAotICAgICAgICBkaXJlY3Rvcnlf
YW5kX2luZGV4LmRpcmVjdG9yeSwKLSAgICAgICAgZGlyZWN0b3J5X2FuZF9pbmRleC5pbmRleCwK
KyAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgm
dmlldy0+ZGlyZWN0b3J5KSwKKyAgICAgICAgdmlldy0+aW5kZXgsCiAgICAgICAgICJiZWNvbWUg
ZW1wdHkgb24gbm90ZV9lbXB0aW5lc3MiKTsKIH0KIApAQCAtMTE1LDExICs5NSw5IEBAIHZvaWQg
cGFzX2JpdGZpdF92aWV3X25vdGVfcGFydGlhbF9lbXB0aW4KIAogdm9pZCBwYXNfYml0Zml0X3Zp
ZXdfbm90ZV9tYXhfZnJlZShwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCiB7Ci0gICAgcGFzX2JpdGZp
dF9kaXJlY3RvcnlfYW5kX2luZGV4IGRpcmVjdG9yeV9hbmRfaW5kZXg7Ci0gICAgZGlyZWN0b3J5
X2FuZF9pbmRleCA9IHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRfaW5kZXgo
dmlldyk7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91bnBy
b2Nlc3NlZCgKLSAgICAgICAgZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3RvcnksCi0gICAgICAg
IGRpcmVjdG9yeV9hbmRfaW5kZXguaW5kZXgsCisgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9k
aXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSksCisgICAgICAgIHZp
ZXctPmluZGV4LAogICAgICAgICAiYmVjb21lIHVucHJvY2Vzc2VkIG9uIG5vdGVfbWF4X2ZyZWUi
KTsKIH0KIApAQCAtMTM3LDggKzExNSw4IEBAIHN0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5IGNvbXB1
dGVfc3VtbWFyeSgKICAgICBzaXplX3Qgb2Zmc2V0OwogCiAgICAgY29uZmlnX3B0ciA9IHBhc19i
aXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKAotICAgICAgICBwYXNfY29tcGFjdF9i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZ2
aWV3LT5nbG9iYWxfZGlyZWN0b3J5KS0+YmFzZS5jb25maWdfa2luZCk7CisgICAgICAgIHBhc19j
b21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgICAgICAm
dmlldy0+ZGlyZWN0b3J5KS0+Y29uZmlnX2tpbmQpOwogICAgIGNvbmZpZyA9ICpjb25maWdfcHRy
OwogCiAgICAgcmVzdWx0ID0gcGFzX2hlYXBfc3VtbWFyeV9jcmVhdGVfZW1wdHkoKTsKQEAgLTIy
OSw4ICsyMDcsNyBAQCBzdGF0aWMgYm9vbCBmb3JfZWFjaF9saXZlX29iamVjdCgKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKICAgICBjb25maWdfcHRyID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19r
aW5kX2dldF9jb25maWcoCi0gICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnZpZXctPmdsb2JhbF9kaXJlY3Rv
cnkpLT5iYXNlLmNvbmZpZ19raW5kKTsKKyAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+Y29uZmlnX2tpbmQpOwog
ICAgIGNvbmZpZyA9ICpjb25maWdfcHRyOwogCiAgICAgYm91bmRhcnkgPSB2aWV3LT5wYWdlX2Jv
dW5kYXJ5OwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZp
dF92aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF92aWV3LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw0
MiArMjcsMzAgQEAKICNkZWZpbmUgUEFTX0JJVEZJVF9WSUVXX0gKIAogI2luY2x1ZGUgInBhc19i
aXRmaXRfcGFnZV9jb25maWcuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X2JpdGZpdF9kaXJl
Y3RvcnlfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfc3VtbWFyeS5oIgogI2luY2x1ZGUgInBh
c19sb2NrLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RydWN0IHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNf
Yml0Zml0X3BhZ2U7CiBzdHJ1Y3QgcGFzX2JpdGZpdF92aWV3OwotdHlwZWRlZiBzdHJ1Y3QgcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeTsKK3R5
cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5IHBhc19iaXRmaXRfZGlyZWN0b3J5Owog
dHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlIHBhc19iaXRmaXRfcGFnZTsKIHR5cGVkZWYg
c3RydWN0IHBhc19iaXRmaXRfdmlldyBwYXNfYml0Zml0X3ZpZXc7CiAKIHN0cnVjdCBwYXNfYml0
Zml0X3ZpZXcgewogICAgIHZvaWQqIHBhZ2VfYm91bmRhcnk7Ci0gICAgcGFzX2NvbXBhY3RfYXRv
bWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIgYmlhc2luZ19kaXJlY3Rvcnk7Ci0gICAg
cGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyIGdsb2JhbF9kaXJlY3Rvcnk7
CisgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5OwogICAgIGJv
b2wgaXNfb3duZWQ7Ci0gICAgdW5zaWduZWQgaW5kZXhfaW5fZ2xvYmFsOwotICAgIHVuc2lnbmVk
IGluZGV4X2luX2JpYXNpbmc7CisgICAgdW5zaWduZWQgaW5kZXg7CiAgICAgcGFzX2xvY2sgb3du
ZXJzaGlwX2xvY2s7CiAgICAgcGFzX2xvY2sgY29tbWl0X2xvY2s7CiB9OwogCi1QQVNfQVBJIHBh
c19iaXRmaXRfdmlldyogcGFzX2JpdGZpdF92aWV3X2NyZWF0ZShwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4X2luX2dsb2JhbCk7Ci0KLVBBU19BUEkgdm9pZCBw
YXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19zbG93KHBhc19iaXRmaXRfdmlldyog
dmlldyk7Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNo
aXBfbG9jayhwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCi17Ci0gICAgaWYgKHBhc19sb2NrX3RyeV9s
b2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jaykpCi0gICAgICAgIHJldHVybjsKLSAgICBwYXNfYml0
Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19zbG93KHZpZXcpOwotfQorUEFTX0FQSSBwYXNf
Yml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfdmlld19jcmVhdGUocGFzX2JpdGZpdF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIGluZGV4KTsKIAogUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfdmlld19ub3Rl
X25vbmVtcHRpbmVzcyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcpOwogUEFTX0FQSSB2b2lkIHBhc19i
aXRmaXRfdmlld19ub3RlX2Z1bGxfZW1wdGluZXNzKHBhc19iaXRmaXRfdmlldyogdmlldywgcGFz
X2JpdGZpdF9wYWdlKiBwYWdlKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfdmlld19pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3X2lubGluZXMuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92
aWV3X2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMzkgKzI2LDExIEBACiAjaWZuZGVm
IFBBU19CSVRGSVRfVklFV19JTkxJTkVTX0gKICNkZWZpbmUgUEFTX0JJVEZJVF9WSUVXX0lOTElO
RVNfSAogCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1
ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oIgotI2luY2x1ZGUgInBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZS5oIgogI2lu
Y2x1ZGUgInBhc19iaXRmaXRfdmlldy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0YXRp
YyBpbmxpbmUgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4Ci1wYXNfYml0Zml0X3ZpZXdf
Y3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHBhc19iaXRmaXRfdmlldyogdmlldykKLXsKLSAg
ICBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgZGlyZWN0b3J5
ID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZCgm
dmlldy0+Ymlhc2luZ19kaXJlY3RvcnkpOwotICAgIGlmIChkaXJlY3RvcnkpIHsKLSAgICAgICAg
cmV0dXJuIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleF9jcmVhdGUoCi0gICAgICAgICAg
ICAmZGlyZWN0b3J5LT5iYXNlLCB2aWV3LT5pbmRleF9pbl9iaWFzaW5nLCBwYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5X2tpbmQpOwotICAgIH0KLSAgICByZXR1cm4gcGFzX2JpdGZpdF9kaXJl
Y3RvcnlfYW5kX2luZGV4X2NyZWF0ZSgKLSAgICAgICAgJnBhc19jb21wYWN0X2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KS0+
YmFzZSwKLSAgICAgICAgdmlldy0+aW5kZXhfaW5fZ2xvYmFsLCBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3Rvcnlfa2luZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX2JpdGZpdF9kaXJlY3Rvcnkq
IHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeShwYXNfYml0Zml0X3ZpZXcqIHZpZXcp
Ci17Ci0gICAgcmV0dXJuIHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRfaW5k
ZXgodmlldykuZGlyZWN0b3J5OwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19iaXRm
aXRfdmlld19pbmRleF9pbl9jdXJyZW50KHBhc19iaXRmaXRfdmlldyogdmlldykKLXsKLSAgICBy
ZXR1cm4gcGFzX2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRleCh2aWV3KS5p
bmRleDsKLX0KLQotCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfYml0Zml0X3Zp
ZXdfaXNfZW1wdHkocGFzX2JpdGZpdF92aWV3KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcg
cGFnZV9jb25maWcpCiB7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21p
Y19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3NfcHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDExICszMCwxMSBA
QAogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXpl
X2NsYXNzOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyBwYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzOworc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFzczsK
K3R5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFzcyBwYXNfYml0Zml0X3NpemVfY2xh
c3M7CiAKLVBBU19ERUZJTkVfQ09NUEFDVF9BVE9NSUNfUFRSKHBhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0cik7CitQQVNfREVGSU5FX0NPTVBBQ1RfQVRP
TUlDX1BUUihwYXNfYml0Zml0X3NpemVfY2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKTsKIAogUEFTX0VO
RF9FWFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oCShub25leGlzdGVu
dCkKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaWZuZGVmIFBBU19DT01QQUNUX0FUT01JQ19TRUdSRUdBVEVEX0dMT0JBTF9T
SVpFX0RJUkVDVE9SWV9QVFJfSAotI2RlZmluZSBQQVNfQ09NUEFDVF9BVE9NSUNfU0VHUkVHQVRF
RF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfUFRSX0gKLQotI2luY2x1ZGUgInBhc19jb21wYWN0X2F0
b21pY19wdHIuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eTsKLQotUEFTX0RFRklORV9DT01QQUNUX0FUT01JQ19QVFIocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cik7Ci0KLVBBU19F
TkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQ09NUEFDVF9BVE9NSUNfU0VHUkVHQVRFRF9H
TE9CQUxfU0laRV9ESVJFQ1RPUllfUFRSX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfcHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFBBU19DT01QQUNUX0FUT01JQ19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZ
X1BUUl9ICisjZGVmaW5lIFBBU19DT01QQUNUX0FUT01JQ19TRUdSRUdBVEVEX1NJWkVfRElSRUNU
T1JZX1BUUl9ICisKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfcHRyLmgiCisKK1BBU19C
RUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owor
dHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3Rvcnk7CisKK1BBU19ERUZJTkVfQ09NUEFDVF9BVE9NSUNfUFRSKHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKTsKKworUEFT
X0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19DT01QQUNUX0FUT01JQ19TRUdSRUdBVEVE
X1NJWkVfRElSRUNUT1JZX1BUUl9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X3B0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfQ09NUEFDVF9T
RUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX1BUUl9ICisjZGVmaW5lIFBBU19DT01QQUNUX1NFR1JF
R0FURURfRVhDTFVTSVZFX1ZJRVdfUFRSX0gKKworI2luY2x1ZGUgInBhc19jb21wYWN0X3B0ci5o
IgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlldzsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3OworCitQQVNfREVGSU5FX0NPTVBBQ1RfUFRSKHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cik7CisKK1BBU19FTkRfRVhURVJO
X0M7CisKKyNlbmRpZiAvKiBQQVNfQ09NUEFDVF9TRUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX1BU
Ul9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHIuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDQyICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQ09N
UEFDVF9TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9QVFJfSAotI2RlZmluZSBQQVNf
Q09NUEFDVF9TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9QVFJfSAotCi0jaW5jbHVk
ZSAicGFzX2NvbXBhY3RfcHRyLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3Rvcnk7Ci0KLVBBU19ERUZJTkVfQ09NUEFDVF9QVFIocGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIpOwotCi1QQVNfRU5EX0VYVEVSTl9D
OwotCi0jZW5kaWYgLyogUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RP
UllfUFRSX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0ci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19DT01QQUNUX1NFR1JFR0FURURfU0la
RV9ESVJFQ1RPUllfUFRSX0gKKyNkZWZpbmUgUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9TSVpFX0RJ
UkVDVE9SWV9QVFJfSAorCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfcHRyLmgiCisKK1BBU19CRUdJ
Tl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwordHlw
ZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3Rvcnk7CisKK1BBU19ERUZJTkVfQ09NUEFDVF9QVFIocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKTsKKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlm
IC8qIFBBU19DT01QQUNUX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfUFRSX0ggKi8KKwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc3VicGFnZV9t
YXBfZW50cnlfcHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmgJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3N1YnBh
Z2VfbWFwX2VudHJ5X3B0ci5oCShub25leGlzdGVudCkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19DT01Q
QUNUX1NVQlBBR0VfTUFQX0VOVFJZX1BUUl9ICi0jZGVmaW5lIFBBU19DT01QQUNUX1NVQlBBR0Vf
TUFQX0VOVFJZX1BUUl9ICi0KLSNpbmNsdWRlICJwYXNfY29tcGFjdF9wdHIuaCIKLQotUEFTX0JF
R0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5OwotdHlwZWRlZiBz
dHJ1Y3QgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5IHBhc19zdWJwYWdlX21hcF9lbnRyeTsKLQotUEFT
X0RFRklORV9DT01QQUNUX1BUUihwYXNfc3VicGFnZV9tYXBfZW50cnksIHBhc19jb21wYWN0X3N1
YnBhZ2VfbWFwX2VudHJ5X3B0cik7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQ
QVNfQ09NUEFDVF9TVUJQQUdFX01BUF9FTlRSWV9QVFJfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRlLmMJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9j
YXRlLmMJKHdvcmtpbmcgY29weSkKQEAgLTgzLDcgKzgzLDggQEAgc3RhdGljIHZvaWQgZGVhbGxv
Y2F0ZV9zZWdyZWdhdGVkKHVpbnRwdAogewogICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7CiAgICAg
aGVsZF9sb2NrID0gTlVMTDsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUoYmVn
aW4sICZoZWxkX2xvY2ssICpwYWdlX2NvbmZpZyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9k
ZWFsbG9jYXRlKAorICAgICAgICBiZWdpbiwgJmhlbGRfbG9jaywgcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX2RpcmVjdF9tb2RlLCBOVUxMLCAqcGFnZV9jb25maWcpOwogICAgIHBhc19sb2Nr
X3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRvcl9z
Y2F2ZW5nZV9hY3Rpb24uaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTMyLDYgKzMyLDcgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBlbnVtIHBhc19kZWFs
bG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24gewogICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9u
b19hY3Rpb24sCisgICAgcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2ZsdXNoX2xvZ19pZl9jbGVh
bl9hY3Rpb24sCiAgICAgcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2ZsdXNoX2xvZ19hY3Rpb24K
IH07CiAKQEAgLTQ0LDYgKzQ1LDggQEAgcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbl9n
ZXRfc3RyaQogICAgIHsKICAgICBjYXNlIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rp
b246CiAgICAgICAgIHJldHVybiAibm9fYWN0aW9uIjsKKyAgICBjYXNlIHBhc19kZWFsbG9jYXRv
cl9zY2F2ZW5nZV9mbHVzaF9sb2dfaWZfY2xlYW5fYWN0aW9uOgorICAgICAgICByZXR1cm4gImZs
dXNoX2xvZ19pZl9jbGVhbl9hY3Rpb24iOwogICAgIGNhc2UgcGFzX2RlYWxsb2NhdG9yX3NjYXZl
bmdlX2ZsdXNoX2xvZ19hY3Rpb246CiAgICAgICAgIHJldHVybiAiZmx1c2hfbG9nX2FjdGlvbiI7
CiAgICAgfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2ln
bmF0ZWRfaW50cmluc2ljX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRl
ZF9pbnRyaW5zaWNfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIHN0YXRp
YyB2b2lkIHNldF91cF9yYW5nZShpbml0aWFsaXplX2RhdGEKICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3Qgc2l6ZSkKIHsKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGRlc2lnbmF0ZWRf
aW5kZXg7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBw
YXNfYWxsb2NhdG9yX2luZGV4IGRlc2lnbmF0ZWRfZW5kOwogCiAgICAgUEFTX0FTU0VSVCgKQEAg
LTg4LDE3ICs4OCwyMiBAQCBzdGF0aWMgdm9pZCBzZXRfdXBfcmFuZ2UoaW5pdGlhbGl6ZV9kYXRh
CiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFkaXJlY3RvcnkpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVj
dG9yeV9mb3JfY291bnQoCi0gICAgICAgICAgICAgICAgZGF0YS0+aGVhcCwgc2l6ZSwgMSwgcGFz
X2ZvcmNlX2NvdW50X2xvb2t1cCwgZGF0YS0+Y29uZmlnX3B0ciwgTlVMTCk7CisgICAgICAgICAg
ICAgICAgZGF0YS0+aGVhcCwgc2l6ZSwgMSwgcGFzX2ZvcmNlX2NvdW50X2xvb2t1cCwgZGF0YS0+
Y29uZmlnX3B0ciwgTlVMTCwKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9pbml0aWFsX2NyZWF0aW9uX21vZGUpOworCisgICAgICAgICAgICBQQVNfQVNTRVJU
KAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X251bV9hbGxv
Y2F0b3JfaW5kaWNlcyhkaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgPD0gcGFzX2Rlc2lnbmF0
ZWRfaW50cmluc2ljX2hlYXBfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKCpkYXRhLT5jb25maWdfcHRy
KSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8qIFRoaXMgaXMgYSB3ZWlyZCBhc3NlcnQg
LSBpZiBpdCB3YXMgZmFsc2UgdGhlbiBpdCBkb2Vzbid0IGxpdGVyYWxseSBtYWtlIHRoaXMgYnJv
a2VuLgogICAgICAgICAgICAgICAgSXQganVzdCBtZWFucyB0aGF0IHRoZXJlIGlzIGEgY2hhbmNl
IG9mIG1lbW9yeSB3YXN0ZWFnZS4gU28sIGlmIHdlIGhpdCBpdCwgdGhlbgogICAgICAgICAgICAg
ICAgbWF5YmUgd2UgY2FuIGp1c3Qgc2F5IHRoYXQgdGhhdCdzIE9LIGFuZCByZW1vdmUgdGhlIGFz
c2VydD8gKi8KICAgICAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSA9
PSBzaXplKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSk7CisgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihk
aXJlY3RvcnkpOwogCiAgICAgICAgICAgICBQQVNfQVNTRVJUKAotICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3Rv
cnktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXgKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0
b3JfaW5kZXgKICAgICAgICAgICAgICAgICA9PSB0YXJnZXRfYWxsb2NhdG9yX2luZGV4KTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggcmVzdWx0aW5n
X2luZGV4OwpAQCAtMTA5LDEwICsxMTQsMTAgQEAgc3RhdGljIHZvaWQgc2V0X3VwX3JhbmdlKGlu
aXRpYWxpemVfZGF0YQogICAgICAgICAgICAgUEFTX0FTU0VSVChyZXN1bHRpbmdfaW5kZXggPT0g
dGFyZ2V0X2FsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeSgKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xhc3Rfbm9kZSkgPT0g
ZGlyZWN0b3J5KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KAorICAgICAgICAgICAgUEFTX0FTU0VS
VChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhf
Zm9yX2FsbG9jYXRvcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X2xhc3Rfbm9kZSkgPT0gdGFyZ2V0X2FsbG9jYXRvcl9pbmRleCk7CiAg
ICAgICAgICAgICBQQVNfQVNTRVJUKAotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxv
Y2F0b3JfaW5kZXgKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXgKICAgICAg
ICAgICAgICAgICA9PSBkZXNpZ25hdGVkX2JlZ2luICogZGF0YS0+bnVtX2FsbG9jYXRvcl9pbmRp
Y2VzKTsKICAgICAgICAgfQogICAgIH0KQEAgLTEyNSw2ICsxMzAsNyBAQCB2b2lkIHBhc19kZXNp
Z25hdGVkX2ludHJpbnNpY19oZWFwX2luaXRpCiB7CiAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZp
ZzsKICAgICBpbml0aWFsaXplX2RhdGEgZGF0YTsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlIGxheW91dF9ub2RlOwogCiAgICAgY29uZmlnID0gKmNvbmZpZ19wdHI7CiAK
QEAgLTEzMiw3ICsxMzgsNyBAQCB2b2lkIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lu
aXRpCiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogICAgIFBBU19BU1NFUlQoIXBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZV9maXJzdCk7CiAgICAgUEFTX0FTU0VSVCghcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbmV4dF9hbGxvY2F0b3JfaW5kZXgpOwotICAgIFBBU19B
U1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9pc19udWxsKAorICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2lzX251bGwoCiAgICAgICAgICAgICAgICAgICAgJmhlYXAt
PmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKSk7CiAKICAgICBkYXRhLmhlYXAgPSBoZWFw
OwpAQCAtMjAxLDYgKzIwNywxNCBAQCB2b2lkIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
X2luaXRpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIC8qIENhdXNlIHRoZSBhbGxvY2F0
aW9uIG9mIHZpZXcgY2FjaGVzIHRvIGhhcHBlbiBhZnRlciB3ZSBoYXZlIGxhaWQgb3V0IGFsbCBv
ZiB0aGUgbG9jYWwgYWxsb2NhdG9ycy4gKi8KKyAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FD
SEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkgeworICAgICAgICBpZiAoIXBh
c19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkobGF5b3V0X25vZGUpKQorICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZmluaXNoX2NyZWF0aW9uKHBhc191bndyYXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShs
YXlvdXRfbm9kZSkpOworICAgIH0KKwogICAgIGlmIChQQVNfRU5BQkxFX1RFU1RJTkcpIHsKICAg
ICAgICAgLyogQ2hlY2sgdGhhdCB3ZSB3b24ndCByZXR1cm4gYSBkZXNpZ25hdGVkIGluZGV4IHRo
YXQgaXMgaW52YWxpZC4gKi8KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNp
Y19oZWFwX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVmaW5lIFBBU19ERVNJR05BVEVEX0lO
VFJJTlNJQ19IRUFQX0lOTElORVNfSAogCiAjaW5jbHVkZSAicGFzX2Rlc2lnbmF0ZWRfaW50cmlu
c2ljX2hlYXAuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lu
bGluZXMuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC0zNSwxMCArMzUsOCBAQCBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRvcl9pCiBwYXNfZGVzaWduYXRlZF9pbnRy
aW5zaWNfaGVhcF9udW1fYWxsb2NhdG9yX2luZGljZXMocGFzX2hlYXBfY29uZmlnIGNvbmZpZykK
IHsKICAgICByZXR1cm4gUEFTX01BWCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfY29uZmlnKAotICAgICAgICAg
ICAgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKSwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfY29uZmln
KAotICAgICAgICAgICAgY29uZmlnLm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZykpOworICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9y
X2NvbmZpZyhjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpLAorICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2NvbmZpZyhj
b25maWcubWVkaXVtX3NlZ3JlZ2F0ZWRfY29uZmlnKSk7CiB9CiAKIHR5cGVkZWYgc3RydWN0IHsK
QEAgLTY1LDExICs2MywxMiBAQCBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1bHRfY3JlYXRlX3N1
Y2NlCiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QKLXBhc19kZXNpZ25hdGVk
X2ludHJpbnNpY19oZWFwX251bV9kZXNpZ25hdGVkX2luZGljZXMocGFzX2hlYXBfY29uZmlnIGNv
bmZpZykKK3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9kZXNpZ25hdGVkX2luZGlj
ZXNfZm9yX3NtYWxsX2NvbmZpZygKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBzbWFs
bF9jb25maWcpCiB7CiAgICAgLyogRklYTUU6IFRoZXNlIGNvbnN0YW50cyBoYXZlIHRvIG1hdGNo
IHdoYXQgd2UgZG8gd2l0aCBzZXRfdXBfcmFuZ2UgaW4KICAgICAgICBwYXNfZGVzaWduYXRlZF9p
bnRyaW5zaWNfaGVhcF9pbml0aWFsaXplLiAqLwotICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfbWluX2FsaWduKGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZykpIHsK
KyAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihzbWFsbF9j
b25maWcpKSB7CiAgICAgY2FzZSA4OgogICAgICAgICByZXR1cm4gMzg7CiAgICAgY2FzZSAxNjoK
QEAgLTgyLDIyICs4MSwzOSBAQCBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVz
aWduCiAgICAgfQogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Rlc2lnbmF0ZWRf
aW5kZXhfcmVzdWx0IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5k
ZXgoCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0
CitwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGVkX2luZGV4X2Zvcl9zbWFs
bF9jb25maWcoCiAgICAgc2l6ZV90IGluZGV4LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9kZXNp
Z25hdGlvbl9tb2RlIGRlc2lnbmF0aW9uX21vZGUsCi0gICAgcGFzX2hlYXBfY29uZmlnIGNvbmZp
ZykKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBzbWFsbF9jb25maWcpCiB7CiAgICAg
aWYgKCFkZXNpZ25hdGlvbl9tb2RlKQogICAgICAgICByZXR1cm4gcGFzX2Rlc2lnbmF0ZWRfaW5k
ZXhfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAKICAgICAvKiBOT1RFOiBXZSBjb3VsZCBkbyBt
YXRoIGhlcmUuIFdlIGNob29zZSBub3QgdG8gYmVjYXVzZSBzbyBmYXIgdGhhdCBoYXMgcHJvdmVk
IHRvIGJlCiAgICAgICAgYSBwZXJmIHByb2JsZW0uICovCi0gICAgaWYgKGluZGV4IDw9IHBhc19k
ZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9kZXNpZ25hdGVkX2luZGljZXMoY29uZmlnKSkK
KyAgICBpZiAoaW5kZXggPD0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2Rlc2ln
bmF0ZWRfaW5kaWNlc19mb3Jfc21hbGxfY29uZmlnKHNtYWxsX2NvbmZpZykpCiAgICAgICAgIHJl
dHVybiBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoaW5kZXgpOwog
CiAgICAgcmV0dXJuIHBhc19kZXNpZ25hdGVkX2luZGV4X3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgp
OwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CitwYXNfZGVzaWduYXRlZF9p
bnRyaW5zaWNfaGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2VzKHBhc19oZWFwX2NvbmZpZyBjb25m
aWcpCit7CisgICAgcmV0dXJuIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9kZXNp
Z25hdGVkX2luZGljZXNfZm9yX3NtYWxsX2NvbmZpZygKKyAgICAgICAgY29uZmlnLnNtYWxsX3Nl
Z3JlZ2F0ZWRfY29uZmlnKTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19kZXNp
Z25hdGVkX2luZGV4X3Jlc3VsdCBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25h
dGVkX2luZGV4KAorICAgIHNpemVfdCBpbmRleCwKKyAgICBwYXNfaW50cmluc2ljX2hlYXBfZGVz
aWduYXRpb25fbW9kZSBkZXNpZ25hdGlvbl9tb2RlLAorICAgIHBhc19oZWFwX2NvbmZpZyBjb25m
aWcpCit7CisgICAgcmV0dXJuIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0
ZWRfaW5kZXhfZm9yX3NtYWxsX2NvbmZpZygKKyAgICAgICAgaW5kZXgsIGRlc2lnbmF0aW9uX21v
ZGUsIGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7Cit9CisKIFBBU19FTkRfRVhURVJO
X0M7CiAKICNlbmRpZiAvKiBQQVNfREVTSUdOQVRFRF9JTlRSSU5TSUNfSEVBUF9JTkxJTkVTX0gg
Ki8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVf
Yml0Zml0X2hlYXBzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYwkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVh
cHMuYwkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAicGFzX2Vu
dW1lcmF0ZV9iaXRmaXRfaGVhcHMuaCIKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAi
cGFzX2JpdGZpdF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlLmgiCiAjaW5jbHVk
ZSAicGFzX2JpdGZpdF92aWV3LmgiCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyBib29sIHZpZXdf
Y2FsbGJhY2socGFzX2VudW1lcmF0b3IKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CiAgICAgCiAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3OwotICAgIHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBk
aXJlY3Rvcnk7CiAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CiAgICAg
dWludHB0cl90IHBhZ2VfYm91bmRhcnk7CiAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlOwpAQCAt
NjQsNyArNjQsNyBAQCBzdGF0aWMgYm9vbCB2aWV3X2NhbGxiYWNrKHBhc19lbnVtZXJhdG9yCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgcGFnZV9ib3VuZGFyeSA9ICh1aW50cHRyX3Qpdmll
dy0+cGFnZV9ib3VuZGFyeTsKLSAgICBwYWdlX2NvbmZpZyA9IHBhc19iaXRmaXRfcGFnZV9jb25m
aWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5jb25maWdfa2luZCk7CisgICAgcGFn
ZV9jb25maWcgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3Rv
cnktPmNvbmZpZ19raW5kKTsKICAgICAKICAgICBpZiAocGFnZV9ib3VuZGFyeSkgewogICAgICAg
ICBwYXNfZW51bWVyYXRvcl9leGNsdWRlX2FjY291bnRlZF9wYWdlcygKQEAgLTE0NiwxMCArMTQ2
LDEwIEBAIHN0YXRpYyBib29sIHZpZXdfY2FsbGJhY2socGFzX2VudW1lcmF0b3IKIH0KIAogc3Rh
dGljIGJvb2wgZW51bWVyYXRlX2JpdGZpdF9kaXJlY3RvcnkocGFzX2VudW1lcmF0b3IqIGVudW1l
cmF0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcmV0
dXJuIHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfdmVjdG9yX2l0ZXJhdGVfcmVtb3RlKAotICAg
ICAgICAmZGlyZWN0b3J5LT5iYXNlLnZpZXdzLCBlbnVtZXJhdG9yLCAwLCB2aWV3X2NhbGxiYWNr
LCBkaXJlY3RvcnkpOworICAgICAgICAmZGlyZWN0b3J5LT52aWV3cywgZW51bWVyYXRvciwgMCwg
dmlld19jYWxsYmFjaywgZGlyZWN0b3J5KTsKIH0KIAogc3RhdGljIGJvb2wgZW51bWVyYXRlX2Jp
dGZpdF9oZWFwX2NhbGxiYWNrKHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hl
YXBzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFw
cy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMSArMzMsMTIgQEAKICNpbmNsdWRlICJwYXNfZW51
bWVyYXRvcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInBhc19mdWxsX2FsbG9jX2JpdHMuaCIKICNp
bmNsdWRlICJwYXNfaGFzaHRhYmxlLmgiCisjaW5jbHVkZSAicGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZS5oIgogI2luY2x1ZGUgInBhc19wdHJfaGFzaF9zZXQuaCIKICNpbmNsdWRlICJwYXNfcmVk
dW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmgiCiAjaW5jbHVkZSAicGFzX3Jvb3QuaCIKICNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIgotI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5oIgogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmgiCkBAIC0yMjgsNyArMjI5LDcgQEAgc3Rh
dGljIHZvaWQgcmVjb3JkX3BhZ2VfcGF5bG9hZF9hbmRfbWV0YQogCiBzdGF0aWMgdm9pZCByZWNv
cmRfcGFnZV9vYmplY3RzKHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbnVtZXJhdGlvbl9jb250ZXh0KiBjb250ZXh0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgcGFnZV9ib3VuZGFyeSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwK
QEAgLTMxNCwxNiArMzE1LDE2IEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9leGNsdXNpdmVfdmll
dyhwYXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldyogdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbnVtZXJhdGlvbl9jb250ZXh0KiBjb250ZXh0KQogewotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcq
IHBhZ2VfY29uZmlnOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhKiBkYXRhOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7
CiAgICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZTsKICAgICBsb2NhbF9hbGxvY2F0b3Jfbm9kZSogYWxsb2NhdG9yX25vZGU7CiAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOwogICAgIHBhc19mdWxsX2FsbG9jX2JpdHMgYWxs
b2NfYml0czsKIAotICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX3JlbW90ZShlbnVtZXJhdG9yLCAmdmlldy0+ZGlyZWN0
b3J5KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0cl9sb2FkX3JlbW90ZShlbnVtZXJhdG9yLCAmdmlldy0+ZGlyZWN0b3J5KTsKICAgICBw
YWdlX2NvbmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhk
aXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CiAKICAgICBwYWdlX2JvdW5kYXJ5ID0g
KHVpbnRwdHJfdCl2aWV3LT5wYWdlX2JvdW5kYXJ5OwpAQCAtMzM0LDEwICszMzUsMTAgQEAgc3Rh
dGljIGJvb2wgZW51bWVyYXRlX2V4Y2x1c2l2ZV92aWV3KHBhcwogICAgIHBhc19lbnVtZXJhdG9y
X2V4Y2x1ZGVfYWNjb3VudGVkX3BhZ2VzKAogICAgICAgICBlbnVtZXJhdG9yLCAodm9pZCopcGFn
ZV9ib3VuZGFyeSwgcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplKTsKICAgICAKLSAgICBpZiAo
IXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZp
ZXctPm93bmVyc2hpcF9raW5kKSkKKyAgICBpZiAoIXZpZXctPmlzX293bmVkKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHJfbG9hZF9yZW1vdGUoZW51bWVyYXRvciwgJmRpcmVjdG9yeS0+ZGF0YSk7
CisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRf
cmVtb3RlKGVudW1lcmF0b3IsICZkaXJlY3RvcnktPmRhdGEpOwogCiAgICAgcGFnZSA9IChwYXNf
c2VncmVnYXRlZF9wYWdlKilwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX2hlYWRlcl9mb3JfYm91bmRh
cnlfcmVtb3RlKAogICAgICAgICBlbnVtZXJhdG9yLCAodm9pZCopcGFnZV9ib3VuZGFyeSk7CkBA
IC00NDgsNyArNDQ5LDcgQEAgc3RhdGljIGJvb2wgZW51bWVyYXRlX3BhcnRpYWxfdmlldyhwYXNf
ZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0
aWFsX3ZpZXcqIHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1l
cmF0aW9uX2NvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25m
aWc7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHNoYXJlZF92aWV3OwogICAgIHBh
c19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkgc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2Jv
dW5kYXJ5OwpAQCAtNDYyLDcgKzQ2Myw3IEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9wYXJ0aWFs
X3ZpZXcocGFzX2UKICAgICBpZiAoIXZpZXctPmlzX2F0dGFjaGVkX3RvX3NoYXJlZF9oYW5kbGUp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3Is
ICZ2aWV3LT5kaXJlY3RvcnkpOworICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3IsICZ2aWV3LT5kaXJl
Y3RvcnkpOwogICAgIHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKIAogICAgIHNo
YXJlZF92aWV3ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHJfbG9hZF9y
ZW1vdGUoZW51bWVyYXRvciwgJnZpZXctPnNoYXJlZF92aWV3KTsKQEAgLTU2NiwxNCArNTY3LDE0
IEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBfY2EKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQogewogICAgIGVu
dW1lcmF0aW9uX2NvbnRleHQqIGNvbnRleHQ7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeTsKIAogICAgIGNvbnRleHQgPSBhcmc7CiAKLSAgICBmb3IgKGRpcmVjdG9y
eSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHJfbG9hZF9yZW1vdGUoCisgICAgZm9yIChkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1vdGUoCiAgICAgICAgICAgICAg
ZW51bWVyYXRvciwgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcC5iYXNpY19zaXplX2RpcmVjdG9yeV9h
bmRfaGVhZCk7CiAgICAgICAgICBkaXJlY3Rvcnk7Ci0gICAgICAgICBkaXJlY3RvcnkgPSBwYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRf
cmVtb3RlKAorICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfcmVtb3RlKAogICAgICAgICAgICAgIGVudW1lcmF0
b3IsICZkaXJlY3RvcnktPm5leHRfZm9yX2hlYXApKQogICAgICAgICBmb3JfZWFjaF92aWV3KGVu
dW1lcmF0b3IsICZkaXJlY3RvcnktPmJhc2UsIHNpemVfZGlyZWN0b3J5X3ZpZXdfY2FsbGJhY2ss
IGNvbnRleHQpOwogICAgIApAQCAtNjc4LDIzICs2NzksMjQgQEAgYm9vbCBwYXNfZW51bWVyYXRl
X3NlZ3JlZ2F0ZWRfaGVhcHMocGFzXwogCiAgICAgICAgIGxheW91dF9ub2RlID0gcGFzX2VudW1l
cmF0b3JfcmVhZF9jb21wYWN0KGVudW1lcmF0b3IsICp0bGNfbGF5b3V0X2ZpcnN0X25vZGVfcHRy
KTsKICAgICAgICAgd2hpbGUgKGxheW91dF9ub2RlKSB7CisgICAgICAgICAgICBib29sIGhhc19h
bGxvY2F0b3I7CiAgICAgICAgICAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CiAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGlmIChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eShsYXlvdXRfbm9kZSkpIHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICAgICAgICAgIGlmIChwYXNf
aXNfd3JhcHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KGxheW91dF9ub2RlKSkgeworICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Cisg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsK
IAotICAgICAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc191bndyYXBfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkobGF5b3V0X25vZGUpOworICAgICAgICAgICAgICAgIGRpcmVjdG9y
eSA9IHBhc191bndyYXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShsYXlvdXRfbm9kZSk7CiAK
LSAgICAgICAgICAgICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2RhdGFfcHRyX2xvYWRfcmVtb3RlKAorICAgICAgICAgICAgICAgIGRhdGEgPSBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX3JlbW90ZSgKICAgICAgICAgICAg
ICAgICAgICAgZW51bWVyYXRvciwgJmRpcmVjdG9yeS0+ZGF0YSk7CiAKICAgICAgICAgICAgICAg
ICBsYXlvdXRfbm9kZSA9IHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfbG9hZF9yZW1vdGUoCiAgICAgICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsICZk
YXRhLT5uZXh0X2Zvcl9sYXlvdXQpOwogCiAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4
ID0gZGF0YS0+YWxsb2NhdG9yX2luZGV4OwotICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBoYXNfYWxsb2NhdG9yID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAocGFz
X2lzX3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKGxheW91dF9ub2RlKSkg
ewogICAgICAgICAgICAgICAgIHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUqIHJl
ZHVuZGFudF9ub2RlOwogCiAgICAgICAgICAgICAgICAgcmVkdW5kYW50X25vZGUgPSBwYXNfdW53
cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShsYXlvdXRfbm9kZSk7CkBAIC03MDMs
MTQgKzcwNSwzMSBAQCBib29sIHBhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcyhwYXNfCiAg
ICAgICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsICZyZWR1bmRhbnRfbm9kZS0+bmV4dCk7CiAK
ICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSByZWR1bmRhbnRfbm9kZS0+YWxsb2Nh
dG9yX2luZGV4OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGhhc19hbGxvY2F0b3Ig
PSB0cnVlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9jYWxf
dmlld19jYWNoZV9ub2RlKiBjYWNoZV9ub2RlOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIFBBU19BU1NFUlQocGFzX2lzX3dyYXBwZWRfbG9jYWxfdmlld19jYWNoZV9ub2RlKGxh
eW91dF9ub2RlKSk7CiAKLSAgICAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gdGxjLT5h
bGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCi0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgY2FjaGVfbm9kZSA9IHBhc191bndyYXBfbG9jYWxfdmlld19jYWNoZV9ub2Rl
KGxheW91dF9ub2RlKTsKIAotICAgICAgICAgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwodGxjLCBhbGxvY2F0b3JfaW5kZXgpOwor
ICAgICAgICAgICAgICAgIGxheW91dF9ub2RlID0gcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkX3JlbW90ZSgKKyAgICAgICAgICAgICAgICAgICAg
ZW51bWVyYXRvciwgJmNhY2hlX25vZGUtPm5leHQpOwogCi0gICAgICAgICAgICBjb25zaWRlcl9h
bGxvY2F0b3IoZW51bWVyYXRvciwgJmNvbnRleHQsIGFsbG9jYXRvcik7CisgICAgICAgICAgICAg
ICAgYWxsb2NhdG9yX2luZGV4ID0gVUlOVF9NQVg7CisgICAgICAgICAgICAgICAgaGFzX2FsbG9j
YXRvciA9IGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaGFzX2FsbG9j
YXRvcikgeworICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49
IHRsYy0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQorICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKHRsYywgYWxsb2NhdG9yX2luZGV4KTsKKyAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjb25zaWRlcl9hbGxvY2F0b3IoZW51bWVyYXRv
ciwgJmNvbnRleHQsIGFsbG9jYXRvcik7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leGNsdXNpdmVf
dmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUu
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgInBhc19jb25maWcuaCIKIAogI2luY2x1ZGUgInBh
c19oYXNodGFibGUuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCiBQ
QVNfQkVHSU5fRVhURVJOX0M7CiAKQEAgLTUyLDcgKzUyLDcgQEAgcGFzX2V4Y2x1c2l2ZV92aWV3
X3RlbXBsYXRlX21lbW9fa2V5X2NyZQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXR5cGVkZWYg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXNfZXhjbHVzaXZlX3ZpZXdf
dGVtcGxhdGVfbWVtb19lbnRyeTsKK3R5cGVkZWYgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX2VudHJ5OwogCiBzdGF0aWMgaW5s
aW5lIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX2VudHJ5CiBwYXNfZXhjbHVzaXZl
X3ZpZXdfdGVtcGxhdGVfbWVtb19lbnRyeV9jcmVhdGVfZW1wdHkodm9pZCkKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mdWxs
X2FsbG9jX2JpdHNfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsMTkgKzMwLDE5IEBACiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIgog
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oIgotI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX3ZpZXdfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgogCiBQQVNfQkVHSU5fRVhU
RVJOX0M7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfZnVsbF9hbGxvY19iaXRzCiBw
YXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfZXhjbHVzaXZlKAotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcgcGFnZV9jb25maWcpCiB7CiAgICAgcmV0dXJuIHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRl
KAogICAgICAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX2xvYWRfbm9uX251bGwo
Ci0gICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFf
cHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICAgICAmZGlyZWN0b3J5
LT5kYXRhKS0+ZnVsbF9hbGxvY19iaXRzKSwKICAgICAgICAgMCwKICAgICAgICAgKHVuc2lnbmVk
KXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY193b3JkcyhwYWdlX2NvbmZpZykp
OwpAQCAtNjQsMTAgKzY0LDEwIEBAIHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9wYXJ0
aWFsKHAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfZnVsbF9hbGxvY19iaXRzCiBwYXNf
ZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3Jfdmlld19hbmRfZGlyZWN0b3J5KAogICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldywKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewot
ICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2godmlldykpCisgICAg
aWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykpCiAgICAgICAg
IHJldHVybiBwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfZXhjbHVzaXZlKGRpcmVjdG9y
eSwgcGFnZV9jb25maWcpOwogCiAgICAgcmV0dXJuIHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRl
X2Zvcl9wYXJ0aWFsKHZpZXcpOwpAQCAtNzgsOSArNzgsOSBAQCBwYXNfZnVsbF9hbGxvY19iaXRz
X2NyZWF0ZV9mb3JfdmlldygKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7Ci0gICAgaWYgKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaCh2aWV3KSkgewotICAgICAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5OwotICAgICAgICBzaXpl
X2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKAorICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVf
ZXhjbHVzaXZlKHZpZXcpKSB7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBzaXplX2RpcmVjdG9yeTsKKyAgICAgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAg
JnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KS0+ZGlyZWN0b3J5KTsKICAg
ICAgICAgcmV0dXJuIHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9leGNsdXNpdmUoc2l6
ZV9kaXJlY3RvcnksIHBhZ2VfY29uZmlnKTsKICAgICB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2V0X2hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2V0X2hlYXAuaAkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2dldF9oZWFwLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFBBU19HRVRfSEVBUF9ICiAjZGVm
aW5lIFBBU19HRVRfSEVBUF9ICiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnkuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19o
ZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdl
X21hcC5oIgpAQCAtNTgsMTAgKzU4LDEwIEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNf
aGVhcCogcGFzX2cKICAgICAgICAgICAgICAgICBiZWdpbiwgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0
ZWRfY29uZmlnKS0+aGVhcCk7CiAgICAgY2FzZSBwYXNfc21hbGxfYml0Zml0X2Zhc3RfbWVnYXBh
Z2Vfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoCi0g
ICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xv
YWRfbm9uX251bGwoCiAgICAgICAgICAgICAgICAgJnBhc19jb21wYWN0X2F0b21pY19iaXRmaXRf
dmlld19wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICAgICAgICAgJnBhc19iaXRmaXRf
cGFnZV9mb3JfYWRkcmVzc19hbmRfcGFnZV9jb25maWcoCi0gICAgICAgICAgICAgICAgICAgICAg
ICBiZWdpbiwgY29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWcpLT5vd25lciktPmdsb2JhbF9kaXJl
Y3RvcnkpLT5oZWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luLCBjb25maWcuc21h
bGxfYml0Zml0X2NvbmZpZyktPm93bmVyKS0+ZGlyZWN0b3J5KS0+aGVhcCk7CiAgICAgY2FzZSBw
YXNfbm90X2FfZmFzdF9tZWdhcGFnZV9raW5kOiB7CiAgICAgICAgIHBhc19wYWdlX2Jhc2UqIHBh
Z2VfYmFzZTsKICAgICAgICAgcGFzX2xhcmdlX21hcF9lbnRyeSBlbnRyeTsKQEAgLTg1LDkgKzg1
LDkgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19oZWFwKiBwYXNfZwogICAgICAgICAg
ICAgY2FzZSBwYXNfbWVkaXVtX2JpdGZpdF9wYWdlX2tpbmQ6CiAgICAgICAgICAgICBjYXNlIHBh
c19tYXJnZV9iaXRmaXRfcGFnZV9raW5kOgogICAgICAgICAgICAgICAgIHJldHVybiBwYXNfaGVh
cF9mb3Jfc2VncmVnYXRlZF9oZWFwKAotICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAg
ICAgICAgICAgICAgICAgICAgICAgICZwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRy
X2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhc19wYWdlX2Jh
c2VfZ2V0X2JpdGZpdChwYWdlX2Jhc2UpLT5vd25lciktPmdsb2JhbF9kaXJlY3RvcnkpLT5oZWFw
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFzX3BhZ2VfYmFzZV9nZXRfYml0Zml0
KHBhZ2VfYmFzZSktPm93bmVyKS0+ZGlyZWN0b3J5KS0+aGVhcCk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBQQVNfQVNTRVJUKCEiQmFkIHBhZ2Uga2luZCIpOwogICAgICAgICAgICAgcmV0
dXJuIE5VTEw7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVh
cC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRl
ICJwYXNfbG9nLmgiCiAjaW5jbHVkZSAicGFzX21vbm90b25pY190aW1lLmgiCiAjaW5jbHVkZSAi
cGFzX3ByaW1pdGl2ZV9oZWFwX3JlZi5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5LmgiCiAKIHBhc19oZWFwKiBwYXNfaGVhcF9jcmVhdGUocGFzX2hlYXBfcmVmKiBoZWFwX3Jl
ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfcmVmX2tpbmQgaGVhcF9yZWZf
a2luZCwKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIHBhc19oZWFwX3Jlc2V0X2hlYXBfcmVmKHBh
c19oZWFwKiBoCiAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwogfQog
Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCitwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSoKIHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnRf
c2xvdygKICAgICBwYXNfaGVhcCogaGVhcCwKICAgICBzaXplX3QgY291bnQsCkBAIC0xOTEsMTEg
KzE5MSwxMiBAQCBwYXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50CiAgICAg
cGFzX2hlYXBfY29uZmlnKiBjb25maWcsCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKIHsK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcmVzdWx0OwogICAgIAogICAgIHBhc19oZWFw
X2xvY2tfbG9jaygpOwogICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3Np
emVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKLSAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwg
Y291bnQsIGFsaWdubWVudCwgZm9yY2VfY291bnRfbG9va3VwLCBjb25maWcsIGNhY2hlZF9pbmRl
eCk7CisgICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsIGNvdW50LCBhbGlnbm1lbnQsIGZv
cmNlX2NvdW50X2xvb2t1cCwgY29uZmlnLCBjYWNoZWRfaW5kZXgsCisgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Z1bGxfY3JlYXRpb25fbW9kZSk7CiAgICAgcGFzX2hlYXBf
bG9ja191bmxvY2soKTsKICAgICAKICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5oCShyZXZpc2lvbiAyODIyMzgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNSwxMSArMzUsMTEgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdHJ1Y3QgcGFz
X2hlYXA7CiBzdHJ1Y3QgcGFzX2hlYXBfcmVmOwotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsK
IHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXAgcGFz
X2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9yZWYgcGFzX2hlYXBfcmVmOwotdHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogdHlwZWRlZiBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSBwYXNfc2VncmVnYXRlZF9wYWdlOwogCiBzdHJ1Y3Qg
cGFzX2hlYXAgewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
OSw3ICszOSw3IEBACiAjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnX2tpbmQuaCIKICNpbmNsdWRl
ICJwYXNfaGVhcF9yZWYuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9yZWZfa2luZC5oIgotI2luY2x1
ZGUgInBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKKyNpbmNsdWRlICJwYXNfYWxs
b2NhdGlvbl9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9r
aW5kLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCIKICNpbmNsdWRl
ICJwYXNfdXRpbHMuaCIKQEAgLTg2LDcgKzg2LDggQEAgdHlwZWRlZiBib29sICgqcGFzX2hlYXBf
Y29uZmlnX2Zvcl9lYWNoXwogdHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKICgqcGFzX2hl
YXBfY29uZmlnX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxf
c2VncmVnYXRlZF9zbG93KSgKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0g
ICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cyk7CisgICAgcGFzX2FsbG9jYXRvcl9jb3Vu
dHMqIGNvdW50cywKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0
ZXIpOwogdHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKICgqcGFzX2hlYXBfY29uZmlnX3Nw
ZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfbWVkaXVtX3NlZ3JlZ2F0ZWRf
d2l0aF9mcmVlX2JpdHMpKAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcik7CkBA
IC05Niw4ICs5Nyw5IEBAIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX2hlYXAK
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgc2l6ZV90IHNpemUsCiAg
ICAgc2l6ZV90IGFsaWdubWVudCwKLSAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKTsK
LXR5cGVkZWYgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc19oZWFwX2NvbmZp
Z19zcGVjaWFsaXplZF90cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdykoCisgICAgcGFzX2Fs
bG9jYXRvcl9jb3VudHMqIGNvdW50cywKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVy
IHJlc3VsdF9maWx0ZXIpOwordHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfaGVh
cF9jb25maWdfc3BlY2lhbGl6ZWRfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3cpKAogICAg
IHBhc19oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgcGFzX2hlYXBfcmVmX2tpbmQgaGVhcF9yZWZf
a2luZCwKICAgICBzaXplX3QgYWxpZ25lZF9jb3VudCwgLyogTXVzdCBiZSA9IHJvdW5kX3VwKGNv
dW50ICogdHlwZV9zaXplLCBhbGlnbm1lbnQpIC8gdHlwZV9zaXplICovCkBAIC0yMDAsNyArMjAy
LDggQEAgc3RydWN0IHBhc19oZWFwX2NvbmZpZyB7CiAjZGVmaW5lIFBBU19IRUFQX0NPTkZJR19T
UEVDSUFMSVpBVElPTl9ERUNMQVJBVElPTlMobG93ZXJfY2FzZV9oZWFwX2NvbmZpZ19uYW1lKSBc
CiAgICAgUEFTX0FQSSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIGxvd2VyX2Nhc2VfaGVh
cF9jb25maWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0
ZV9zbWFsbF9zZWdyZWdhdGVkX3Nsb3coIFwKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciog
YWxsb2NhdG9yLCBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnQpOyBcCisgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50LCBc
CisgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcik7IFwK
ICAgICBQQVNfQVBJIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbG93ZXJfY2FzZV9oZWFw
X2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRl
X2lubGluZV9jYXNlcyggXAogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3Ip
OyBcCkBAIC0yMTIsOCArMjE1LDkgQEAgc3RydWN0IHBhc19oZWFwX2NvbmZpZyB7CiAgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgXAogICAgICAgICBzaXplX3Qgc2l6ZSwg
XAogICAgICAgICBzaXplX3QgYWxpZ25tZW50LCBcCi0gICAgICAgIHBhc19hbGxvY2F0b3JfY291
bnRzKiBjb3VudHMpOyBcCi0gICAgUEFTX0FQSSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0IFwKKyAgICAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cywgXAorICAgICAgICBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0ZXIpOyBcCisgICAgUEFTX0FQ
SSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIGxvd2VyX2Nhc2VfaGVhcF9jb25maWdfbmFt
ZSAjIyBfc3BlY2lhbGl6ZWRfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3coIFwKICAgICAg
ICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgXAogICAgICAgICBwYXNfaGVhcF9yZWZfa2luZCBo
ZWFwX3JlZl9raW5kLCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfaGVhcF9jb25maWdfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ19p
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDEwICszNiwxMSBAQCBQQVNfQkVHSU5fRVhU
RVJOX0M7CiAjZGVmaW5lIFBBU19IRUFQX0NPTkZJR19TUEVDSUFMSVpBVElPTl9ERUZJTklUSU9O
Uyhsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUsIGhlYXBfY29uZmlnX3ZhbHVlKSBcCiAgICAg
UEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIGxvd2VyX2Nhc2Vf
aGVhcF9jb25maWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxv
Y2F0ZV9zbWFsbF9zZWdyZWdhdGVkX3Nsb3coIFwKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
ciogYWxsb2NhdG9yLCBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnQpIFwKKyAgICAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnQs
IFwKKyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKSBc
CiAgICAgeyBcCiAgICAgICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0
ZV9zbWFsbF9zZWdyZWdhdGVkX3Nsb3coIFwKLSAgICAgICAgICAgIGFsbG9jYXRvciwgKGhlYXBf
Y29uZmlnX3ZhbHVlKSwgY291bnQpOyBcCisgICAgICAgICAgICBhbGxvY2F0b3IsIChoZWFwX2Nv
bmZpZ192YWx1ZSksIGNvdW50LCByZXN1bHRfZmlsdGVyKTsgXAogICAgIH0gXAogICAgIFwKICAg
ICBQQVNfTkVWRVJfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCkBAIC02MiwxMyArNjMs
MTQgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBh
bGxvY2F0b3IsIFwKICAgICAgICAgc2l6ZV90IHNpemUsIFwKICAgICAgICAgc2l6ZV90IGFsaWdu
bWVudCwgXAotICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKSBcCisgICAgICAg
IHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsIFwKKyAgICAgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKSBcCiAgICAgeyBcCiAgICAgICAgIHJldHVybiBw
YXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbG93KCBcCi0gICAgICAgICAgICBhbGxv
Y2F0b3IsIHNpemUsIGFsaWdubWVudCwgKGhlYXBfY29uZmlnX3ZhbHVlKSwgY291bnRzKTsgXAor
ICAgICAgICAgICAgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQsIChoZWFwX2NvbmZpZ192YWx1
ZSksIGNvdW50cywgcmVzdWx0X2ZpbHRlcik7IFwKICAgICB9IFwKICAgICBcCi0gICAgUEFTX05F
VkVSX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IFwKKyAgICBQQVNfTkVW
RVJfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbG93ZXJfY2FzZV9oZWFwX2Nv
bmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF90cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdygg
XAogICAgICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBcCiAgICAgICAgIHBhc19oZWFwX3Jl
Zl9raW5kIGhlYXBfcmVmX2tpbmQsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25m
aWdfdXRpbHMuaAkod29ya2luZyBjb3B5KQpAQCAtNzAsNyArNzAsOCBAQCB0eXBlZGVmIHN0cnVj
dCB7CiAgICAgc2l6ZV90IHNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplOwogICAgIGRvdWJsZSBz
bWFsbF9zZWdyZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwOwogICAgIGJvb2wgc21hbGxfc2VncmVn
YXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb247Ci0gICAgYm9v
bCBzbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkOworICAgIGJvb2wgc21hbGxfc2VncmVn
YXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkOworICAgIGJvb2wgZW5hYmxlX3ZpZXdfY2Fj
aGU7CiAgICAgYm9vbCB1c2Vfc21hbGxfYml0Zml0OwogICAgIHVpbnQ4X3Qgc21hbGxfYml0Zml0
X21pbl9hbGlnbl9zaGlmdDsKICAgICBzaXplX3Qgc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZTsKQEAg
LTEzNCwxMCArMTM1LDEyIEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgICAgICgocGFzX2Jh
c2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVk
X3dhc3RlYWdlX2hhbmRpY2FwLCBcCiAgICAgICAgIC5kZWFsbG9jX2Z1bmMgPSBuYW1lICMjIF9z
bWFsbF9zZWdyZWdhdGVkX2RlYWxsb2NfZnVuYywgXAogICAgICAgICAudXNlX3JldmVyc2VkX2N1
cnJlbnRfd29yZCA9IFwKLSAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3Vt
ZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkLCBcCisg
ICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19f
fSkuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkLCBcCiAgICAgICAg
IC5jaGVja19kZWFsbG9jYXRpb24gPSAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMp
e19fVkFfQVJHU19ffSkuY2hlY2tfZGVhbGxvY2F0aW9uLCBcCiAgICAgICAgIC5lbmFibGVfZW1w
dHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBcCiAgICAgICAgICAgICAoKHBhc19i
YXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRl
ZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24sIFwKKyAgICAgICAg
LmVuYWJsZV92aWV3X2NhY2hlID0gXAorICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25m
aWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLmVuYWJsZV92aWV3X2NhY2hlLCBcCiAgICAgICAg
IC5zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IgPSBcCiAgICAgICAgICAgICBuYW1lICMj
IF9zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3NlbGVjdF9zaGFyZWRfcGFnZV9kaXJlY3Rv
cnksIFwKICAgICAgICAgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05T
KG5hbWUgIyMgX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcpIFwKQEAgLTE4NSw2ICsxODgs
OCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgIC51c2VfcmV2ZXJzZWRfY3VycmVudF93b3Jk
ID0gZmFsc2UsIFwKICAgICAgICAgLmNoZWNrX2RlYWxsb2NhdGlvbiA9ICgocGFzX2Jhc2ljX2hl
YXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5jaGVja19kZWFsbG9jYXRpb24sIFwK
ICAgICAgICAgLmVuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IGZh
bHNlLCBcCisgICAgICAgIC5lbmFibGVfdmlld19jYWNoZSA9IFwKKyAgICAgICAgICAgICgocGFz
X2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5lbmFibGVfdmlld19j
YWNoZSwgXAogICAgICAgICAuc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yID0gXAogICAg
ICAgICAgICAgbmFtZSAjIyBfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfc2VsZWN0X3No
YXJlZF9wYWdlX2RpcmVjdG9yeSwgXAogICAgICAgICBQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJ
R19TUEVDSUFMSVpBVElPTlMobmFtZSAjIyBfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcp
IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZp
Z191dGlsc19pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0
aWxzX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQCBQQVNfQVBJIHZv
aWQqIHBhc19oZWFwX2NvbmZpZ191dGlsc19wcmVwCiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBi
b29sIGFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm87CisgICAgcGFzX2hlYXBfcnVudGltZV9jb25m
aWdfdmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemVfY2FsbGJhY2sgaW50cmluc2lj
X3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5OwogfSBwYXNfYmFzaWNfaGVhcF9jb25maWdf
ZGVmaW5pdGlvbnNfYXJndW1lbnRzOwogCiAjZGVmaW5lIFBBU19CQVNJQ19IRUFQX0NPTkZJR19E
RUZJTklUSU9OUyhuYW1lLCB1cGNhc2VfbmFtZSwgLi4uKSBcCkBAIC02NSwxMCArNjYsMTQgQEAg
dHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAgICAgICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZF
X0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTLCBcCiAgICAgICAgICAgICAuZGlyZWN0b3J5X3NpemVf
Ym91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMgPSBcCiAgICAgICAgICAgICAgICAgUEFTX0lO
VFJJTlNJQ19QUklNSVRJVkVfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMsIFwKKyAgICAg
ICAgICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IFwKKyAgICAg
ICAgICAgICAgICBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9CT1VORF9GT1JfTk9fVklFV19DQUNI
RSwgXAogICAgICAgICAgICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gXAogICAgICAg
ICAgICAgICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX01BWF9TRUdSRUdBVEVEX09CSkVDVF9T
SVpFLCBcCiAgICAgICAgICAgICAubWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSA9IFwKLSAgICAgICAg
ICAgICAgICBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9NQVhfQklURklUX09CSkVDVF9TSVpFIFwK
KyAgICAgICAgICAgICAgICBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9NQVhfQklURklUX09CSkVD
VF9TSVpFLCBcCisgICAgICAgICAgICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3Np
emUgPSBcCisgICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfZGVmaW5pdGlv
bnNfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNo
ZV9jYXBhY2l0eSwgXAogICAgICAgICB9LCBcCiAgICAgICAgIC5wYWdlX2NhY2hlcyA9ICZuYW1l
ICMjIF9wYWdlX2NhY2hlcyBcCiAgICAgfTsgXApAQCAtODMsMTAgKzg4LDEzIEBAIHR5cGVkZWYg
c3RydWN0IHsKICAgICAgICAgICAgICAgICBQQVNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9QQVJUSUFM
X1ZJRVdTLCBcCiAgICAgICAgICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5l
X2FsbG9jYXRvcnMgPSBcCiAgICAgICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9CT1VORF9GT1Jf
QkFTRUxJTkVfQUxMT0NBVE9SUywgXAorICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5k
X2Zvcl9ub192aWV3X2NhY2hlID0gXAorICAgICAgICAgICAgICAgIFBBU19QUklNSVRJVkVfQk9V
TkRfRk9SX05PX1ZJRVdfQ0FDSEUsIFwKICAgICAgICAgICAgIC5tYXhfc2VncmVnYXRlZF9vYmpl
Y3Rfc2l6ZSA9IFwKICAgICAgICAgICAgICAgICBQQVNfUFJJTUlUSVZFX01BWF9TRUdSRUdBVEVE
X09CSkVDVF9TSVpFLCBcCiAgICAgICAgICAgICAubWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSA9IFwK
LSAgICAgICAgICAgICAgICBQQVNfUFJJTUlUSVZFX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUgXAor
ICAgICAgICAgICAgICAgIFBBU19QUklNSVRJVkVfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSwgXAor
ICAgICAgICAgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplID0gcGFzX2hl
YXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5LCBcCiAgICAgICAgIH0s
IFwKICAgICAgICAgLnBhZ2VfY2FjaGVzID0gJm5hbWUgIyMgX3BhZ2VfY2FjaGVzIFwKICAgICB9
OyBcCkBAIC0xMDEsMTAgKzEwOSwxMyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgICAgICAg
ICAgUEFTX1RZUEVEX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTLCBcCiAgICAgICAgICAgICAuZGly
ZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMgPSBcCiAgICAgICAgICAg
ICAgICAgUEFTX1RZUEVEX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTLCBcCisgICAgICAg
ICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUgPSBcCisgICAgICAg
ICAgICAgICAgUEFTX1RZUEVEX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFLCBcCiAgICAgICAgICAg
ICAubWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemUgPSBcCiAgICAgICAgICAgICAgICAgUEFTX1RZ
UEVEX01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFLCBcCiAgICAgICAgICAgICAubWF4X2JpdGZp
dF9vYmplY3Rfc2l6ZSA9IFwKLSAgICAgICAgICAgICAgICBQQVNfVFlQRURfTUFYX0JJVEZJVF9P
QkpFQ1RfU0laRSBcCisgICAgICAgICAgICAgICAgUEFTX1RZUEVEX01BWF9CSVRGSVRfT0JKRUNU
X1NJWkUsIFwKKyAgICAgICAgICAgIC52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6
ZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSwgXAog
ICAgICAgICB9LCBcCiAgICAgICAgIC5wYWdlX2NhY2hlcyA9ICZuYW1lICMjIF9wYWdlX2NhY2hl
cyBcCiAgICAgfTsgXApAQCAtMTE5LDEwICsxMzAsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAg
ICAgICAgICAgICAgIFBBU19PQkpDX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTLCBcCiAgICAgICAg
ICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMgPSBcCiAg
ICAgICAgICAgICAgICAgUEFTX09CSkNfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMsIFwK
KyAgICAgICAgICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IFwK
KyAgICAgICAgICAgICAgICBQQVNfT0JKQ19CT1VORF9GT1JfTk9fVklFV19DQUNIRSwgXAogICAg
ICAgICAgICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gXAogICAgICAgICAgICAgICAg
IFBBU19PQkpDX01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFLCBcCiAgICAgICAgICAgICAubWF4
X2JpdGZpdF9vYmplY3Rfc2l6ZSA9IFwKLSAgICAgICAgICAgICAgICBQQVNfT0JKQ19NQVhfQklU
RklUX09CSkVDVF9TSVpFIFwKKyAgICAgICAgICAgICAgICBQQVNfT0JKQ19NQVhfQklURklUX09C
SkVDVF9TSVpFLCBcCisgICAgICAgICAgICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0
X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHks
IFwKICAgICAgICAgfSwgXAogICAgICAgICAucGFnZV9jYWNoZXMgPSAmbmFtZSAjIyBfcGFnZV9j
YWNoZXMgXAogICAgIH07IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19oZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaGVhcF9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2lubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNyArMzQsNyBAQAogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLVBBU19BUEkg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgorUEFTX0FQSSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jf
Y291bnRfc2xvdygKICAgICBwYXNfaGVhcCogaGVhcCwKICAgICBzaXplX3QgY291bnQsCkBAIC00
Myw3ICs0Myw3IEBAIHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQKICAg
ICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKICAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KTsK
IAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSoKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSoKIHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQoCiAgICAg
cGFzX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGNvdW50LApAQCAtNTUsNyArNTUsNyBAQCBwYXNf
aGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50CiB7CiAgICAgc3RhdGljIGNvbnN0
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiByZXN1bHQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHJl
c3VsdDsKIAogICAgIFBBU19VTlVTRURfUEFSQU0oY291bnRzKTsKICAgICAKQEAgLTY2LDcgKzY2
LDcgQEAgcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudAogICAgIAogICAg
IHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KAog
ICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLCBjb3VudCwgY29uZmlnLCBjYWNoZWRfaW5k
ZXgpOwotICAgIGlmIChyZXN1bHQgJiYgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2FsaWdubWVudChyZXN1bHQpID49IGFsaWdubWVudCkKKyAgICBpZiAocmVzdWx0ICYmIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChyZXN1bHQpID49IGFsaWdubWVu
dCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAogI2lmIFBBU19FTkFCTEVfVEVTVElORwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25m
aWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
aGVhcF9ydW50aW1lX2NvbmZpZy5jCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgorCisjaWYgTElCUEFTX0VOQUJMRUQKKwor
I2luY2x1ZGUgInBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmgiCisKKyNpbmNsdWRlICJwYXNfZGVz
aWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmgiCisKK3VpbnQ4X3QgcGFzX2hlYXBfcnVu
dGltZV9jb25maWdfdmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUoCisgICAgcGFz
X2hlYXBfcnVudGltZV9jb25maWcqIGNvbmZpZywKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKQoreworICAgIHNpemVf
dCByZXN1bHQ7CisKKyAgICByZXN1bHQgPSBjb25maWctPnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9y
X29iamVjdF9zaXplKG9iamVjdF9zaXplLCBwYWdlX2NvbmZpZyk7CisKKyAgICBQQVNfQVNTRVJU
KCh1aW50OF90KXJlc3VsdCA9PSByZXN1bHQpOworICAgIHJldHVybiAodWludDhfdClyZXN1bHQ7
Cit9CisKK3NpemVfdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2Fw
YWNpdHkoCisgICAgc2l6ZV90IG9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
ZyogcGFnZV9jb25maWcpCit7CisgICAgUEFTX1VOVVNFRF9QQVJBTShvYmplY3Rfc2l6ZSk7Cisg
ICAgUEFTX1VOVVNFRF9QQVJBTShwYWdlX2NvbmZpZyk7CisgICAgcmV0dXJuIDA7Cit9CisKK3Np
emVfdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVfY2FwYWNp
dHkoCisgICAgc2l6ZV90IG9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyog
cGFnZV9jb25maWcpCit7CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBjYWNoZV9zaXplID0gMTYz
ODQwMDsKKworICAgIFBBU19VTlVTRURfUEFSQU0ob2JqZWN0X3NpemUpOworCisgICAgUEFTX0FT
U0VSVChwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgPCBjYWNoZV9zaXplKTsKKworICAgIHJl
dHVybiBjYWNoZV9zaXplIC8gcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplOworfQorCisjZW5k
aWYgLyogTElCUEFTX0VOQUJMRUQgKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oCShyZXZp
c2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVh
cF9ydW50aW1lX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTggQEAKIAog
I2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfbW9kZS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX2hlYXBfbG9va3VwX2tpbmQuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ192YXJpYW50LmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKIFBBU19CRUdJTl9FWFRF
Uk5fQzsKIAogc3RydWN0IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnOworc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25m
aWcgcGFzX2hlYXBfcnVudGltZV9jb25maWc7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZzsKKwordHlwZWRlZiBzaXpl
X3QgKCpwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ192aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmpl
Y3Rfc2l6ZV9jYWxsYmFjaykoCisgICAgc2l6ZV90IG9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOwogCiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9j
b25maWcgewogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tpbmQgbG9va3VwX2tpbmQg
OiA4OwpAQCAtNDQsMTIgKzUwLDI4IEBAIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyB7
CiAgICAgCiAgICAgdW5zaWduZWQgZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmll
d3M7CiAgICAgdW5zaWduZWQgZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9j
YXRvcnM7CisgICAgdW5zaWduZWQgZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2Fj
aGU7CiAKICAgICAvKiBJdCdzIE9LIHRvIHNldCB0aGVzZSB0byBVSU5UX01BWCwgaW4gd2hpY2gg
Y2FzZSB0aGUgbWF4aW11bSBpcyBkZWNpZGVkIGJ5IHRoZSBoZWFwX2NvbmZpZy4gKi8KICAgICB1
bnNpZ25lZCBtYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZTsKICAgICB1bnNpZ25lZCBtYXhfYml0
Zml0X29iamVjdF9zaXplOworCisgICAgcGFzX2hlYXBfcnVudGltZV9jb25maWdfdmlld19jYWNo
ZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemVfY2FsbGJhY2sgdmlld19jYWNoZV9jYXBhY2l0eV9m
b3Jfb2JqZWN0X3NpemU7CiB9OwogCitQQVNfQVBJIHVpbnQ4X3QgcGFzX2hlYXBfcnVudGltZV9j
b25maWdfdmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUoCisgICAgcGFzX2hlYXBf
cnVudGltZV9jb25maWcqIGNvbmZpZywKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsCisgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKKworUEFTX0FQSSBzaXplX3Qg
cGFzX2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5KAorICAgIHNp
emVfdCBvYmplY3Rfc2l6ZSwKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9j
b25maWcpOworCitQQVNfQVBJIHNpemVfdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ19hZ2dyZXNz
aXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkoCisgICAgc2l6ZV90IG9iamVjdF9zaXplLAorICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7CisKIFBBU19FTkRfRVhURVJO
X0M7CiAKICNlbmRpZiAvKiBQQVNfSEVBUF9SVU5USU1FX0NPTkZJR19IICovCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxfY29uZmlnLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2Nv
bmZpZy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfaW50ZXJuYWxfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCwyNiArMTQ4
LDMxIEBACiAKICNkZWZpbmUgUEFTX1VUSUxJVFlfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MgICAg
ICAgICAgICAgICAgICAgICAwCiAjZGVmaW5lIFBBU19VVElMSVRZX0JPVU5EX0ZPUl9CQVNFTElO
RV9BTExPQ0FUT1JTICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQVNfVVRJTElUWV9CT1VORF9G
T1JfTk9fVklFV19DQUNIRSAgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBB
U19VVElMSVRZX01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgVUlO
VF9NQVgKICNkZWZpbmUgUEFTX1VUSUxJVFlfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSAgICAgICAg
ICAgICAgICAgICAgICAwCiAKICNkZWZpbmUgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfQk9VTkRf
Rk9SX1BBUlRJQUxfVklFV1MgICAgICAgICAwCiAjZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJTUlU
SVZFX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTICAgMAorI2RlZmluZSBQQVNfSU5UUklO
U0lDX1BSSU1JVElWRV9CT1VORF9GT1JfTk9fVklFV19DQUNIRSAgICAgICAgIDAKICNkZWZpbmUg
UEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUgICAgICBV
SU5UX01BWAogI2RlZmluZSBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9NQVhfQklURklUX09CSkVD
VF9TSVpFICAgICAgICAgIFVJTlRfTUFYCiAKICNkZWZpbmUgUEFTX1BSSU1JVElWRV9CT1VORF9G
T1JfUEFSVElBTF9WSUVXUyAgICAgICAgICAgICAgICAgICAwCiAjZGVmaW5lIFBBU19QUklNSVRJ
VkVfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMgICAgICAgICAgICAgMAorI2RlZmluZSBQ
QVNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFICAgICAgICAgICAgICAgICAgIFVJ
TlRfTUFYCiAjZGVmaW5lIFBBU19QUklNSVRJVkVfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUg
ICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX1BSSU1JVElWRV9NQVhfQklURklU
X09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgICBVSU5UX01BWAogCiAjZGVmaW5lIFBBU19U
WVBFRF9CT1VORF9GT1JfUEFSVElBTF9WSUVXUyAgICAgICAgICAgICAgICAgICAgICAgMTAKICNk
ZWZpbmUgUEFTX1RZUEVEX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTICAgICAgICAgICAg
ICAgICAwCisjZGVmaW5lIFBBU19UWVBFRF9CT1VORF9GT1JfTk9fVklFV19DQUNIRSAgICAgICAg
ICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX1RZUEVEX01BWF9TRUdSRUdBVEVE
X09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfVFlQ
RURfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICAgICAgICAgIDAKIAogI2Rl
ZmluZSBQQVNfT0JKQ19CT1VORF9GT1JfUEFSVElBTF9WSUVXUyAgICAgICAgICAgICAgICAgICAg
ICAgIDEwCiAjZGVmaW5lIFBBU19PQkpDX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTICAg
ICAgICAgICAgICAgICAgMTAKKyNkZWZpbmUgUEFTX09CSkNfQk9VTkRfRk9SX05PX1ZJRVdfQ0FD
SEUgICAgICAgICAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfT0JKQ19NQVhf
U0VHUkVHQVRFRF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVm
aW5lIFBBU19PQkpDX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICAgICAg
ICAgMAogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oCShyZXZpc2lv
biAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMDkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBB
U19JTlRSSU5TSUNfQUxMT0NBVElPTl9SRVNVTFRfSAotI2RlZmluZSBQQVNfSU5UUklOU0lDX0FM
TE9DQVRJT05fUkVTVUxUX0gKLQotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSAicGFzX2Fs
bG9jYXRpb25fcmVzdWx0LmgiCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotI2luY2x1ZGUgInBh
c191dGlscy5oIgotI2luY2x1ZGUgInBhc196ZXJvX21vZGUuaCIKLQotUEFTX0JFR0lOX0VYVEVS
Tl9DOwotCi0vKiBXZSBrZWVwIHRoaXMgc2VwYXJhdGUgZnJvbSBwYXNfYWxsb2NhdGlvbl9yZXN1
bHQgc2luY2UgdGhpcyBpcyBzdXBwb3NlZCB0byBiZSBhYmxlIHRvCi0gICBjb21tdW5pY2F0ZSBh
bnkgb3RoZXIgbWV0YS1kYXRhIHRoYXQgdGhlIGludHJpbnNpYy9wcmltaXRpdmUgYWxsb2NhdG9y
IGhhcyBhdmFpbGFibGUuIEF0Ci0gICBvbmUgcG9pbnQgdGhhdCBpbmNsdWRlZCB0aGUgb2JqZWN0
X3NpemVfbW9kZSwgYnV0IHRoYXQncyBubyBsb25nZXIgdGhlIGNhc2UuCi0KLSAgIElmIHdlIGdv
IGEgbG9uZyB0aW1lIHdpdGhvdXQgYWRkaW5nIGFkZGl0aW9uYWwgZmllbGRzIHRvIHRoaXMgdG8g
ZGlzdGluZ3Vpc2ggaXQgZnJvbQotICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHRoZW4gd2Ugc2hv
dWxkIHByb2JhYmx5IGdldCByaWQgb2YgdGhpcy4gKi8KLQotc3RydWN0IHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHQ7Ci10eXBlZGVmIHN0cnVjdCBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQ7Ci0KLXN0cnVjdCBwYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHsKLSAgICB2b2lkKiBwdHI7Ci0gICAgYm9vbCBk
aWRfc3VjY2VlZDsKLSAgICBwYXNfemVyb19tb2RlIHplcm9fbW9kZTsKLX07Ci0KLXN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9lbXB0eSh2b2lkKQotewotICAgIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwotICAgIHJlc3VsdC5kaWRfc3VjY2Vl
ZCA9IGZhbHNlOwotICAgIHJlc3VsdC56ZXJvX21vZGUgPSBwYXNfemVyb19tb2RlX21heV9oYXZl
X25vbl96ZXJvOwotICAgIHJlc3VsdC5wdHIgPSBOVUxMOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0Ci1wYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZShwYXNfYWxsb2NhdGlv
bl9yZXN1bHQgYWxsb2NhdGlvbl9yZXN1bHQpCi17Ci0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdCByZXN1bHQ7Ci0gICAgcmVzdWx0LnB0ciA9ICh2b2lkKilhbGxvY2F0aW9uX3Jl
c3VsdC5iZWdpbjsKLSAgICByZXN1bHQuZGlkX3N1Y2NlZWQgPSBhbGxvY2F0aW9uX3Jlc3VsdC5k
aWRfc3VjY2VlZDsKLSAgICByZXN1bHQuemVyb19tb2RlID0gYWxsb2NhdGlvbl9yZXN1bHQuemVy
b19tb2RlOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0X2lkZW50aXR5KHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0
KQotewotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0X3plcm8ocGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCi17Ci0gICAgaWYg
KHJlc3VsdC5kaWRfc3VjY2VlZAotICAgICAgICAmJiByZXN1bHQuemVyb19tb2RlID09IHBhc196
ZXJvX21vZGVfbWF5X2hhdmVfbm9uX3plcm8pCi0gICAgICAgIHBhc196ZXJvX21lbW9yeShyZXN1
bHQucHRyLCBzaXplKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8oCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdCByZXN1bHQpCi17Ci0gICAgaWYgKCFyZXN1bHQuZGlkX3N1Y2NlZWQpCi0gICAgICAg
IGVycm5vID0gRU5PTUVNOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKAotICAgIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQgcmVzdWx0KQotewotICAgIFBBU19BU1NFUlQocmVzdWx0LmRpZF9zdWNj
ZWVkKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5k
aWYgLyogUEFTX0lOVFJJTlNJQ19BTExPQ0FUSU9OX1JFU1VMVF9IICovCi0KSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludHJp
bnNpY19oZWFwX3N1cHBvcnQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBQQVNfSU5UUklOU0lDX0hFQVBfU1VQUE9S
VF9ICiAKICNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCi0jaW5jbHVkZSAicGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIgorI2lu
Y2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5o
IgogI2luY2x1ZGUgInBhc19pbnRlcm5hbF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMu
aCIKIApAQCAtMzcsNyArMzcsNyBAQCBzdHJ1Y3QgcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQ7
CiB0eXBlZGVmIHN0cnVjdCBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydCBwYXNfaW50cmluc2lj
X2hlYXBfc3VwcG9ydDsKIAogc3RydWN0IHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0IHsKLSAg
ICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
IGluZGV4X3RvX3NpemVfZGlyZWN0b3J5WworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0ciBpbmRleF90b19zaXplX2RpcmVjdG9yeVsKICAgICAgICAg
UEFTX05VTV9JTlRSSU5TSUNfU0laRV9DTEFTU0VTXTsKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4
IGluZGV4X3RvX2FsbG9jYXRvcl9pbmRleFtQQVNfTlVNX0lOVFJJTlNJQ19TSVpFX0NMQVNTRVNd
OwogfTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9o
ZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hh
cmluZ19jYWNoZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYwko
d29ya2luZyBjb3B5KQpAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyBwYXNfYWxpZ25lZF9hbGxv
Y2F0aW9uX3Jlc3VsdCBsYXIKICAgICAgICAgICAgICAgICAgICAgKGNoYXIqKWFsbG9jYXRpb25f
cmVzdWx0LmJlZ2luICsgYWxpZ25lZF9zaXplKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAg
ICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oJmFsbG9jYXRpb25fcmVzdWx0LCBhbGlnbmVk
X3NpemUpOworICAgICAgICBhbGxvY2F0aW9uX3Jlc3VsdCA9IHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF96ZXJvKGFsbG9jYXRpb25fcmVzdWx0LCBhbGlnbmVkX3NpemUpOwogICAgIH0KIAogICAgIHBh
c19lbnVtZXJhYmxlX3JhbmdlX2xpc3RfYXBwZW5kKApJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYwkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2Fs
X2FsbG9jYXRvci5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNiArMzMsMjMgQEAKICNpbmNsdWRl
ICJwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfcmFjZV90ZXN0
X2hvb2tzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIgotI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3ZpZXdfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgogI2luY2x1ZGUgInBh
c191dGlsaXR5X2hlYXAuaCIKIAotdWludDhfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9z
dG9wX2NvdW50X2Zvcl9zdXNwZW5kID0gNTsKKyNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNV
UkVfUkVGSUxMX0VGRklDSUVOQ1kKK2RvdWJsZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9l
ZmZpY2llbmN5X3N1bSA9IDAuOworZG91YmxlIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2Vm
ZmljaWVuY3lfbiA9IDAuOworUEFTX0RFRklORV9MT0NLKHBhc19sb2NhbF9hbGxvY2F0b3JfcmVm
aWxsX2VmZmljaWVuY3kpOworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9S
RUZJTExfRUZGSUNJRU5DWSAqLwogCiB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0
KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOworCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb25z
dHJ1Y3QoCisgICAgICAgICZhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLCBwYXNfbG9jYWxfYWxs
b2NhdG9yX2FsbG9jYXRvcl9raW5kKTsKICAgICAKICAgICBhbGxvY2F0b3ItPnBheWxvYWRfZW5k
ID0gMDsKICAgICBhbGxvY2F0b3ItPnJlbWFpbmluZyA9IDA7CkBAIC01NiwzMCArNjMsMjMgQEAg
dm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdChwYXNfbAogICAgIGFsbG9jYXRvci0+
Y3VycmVudF9vZmZzZXQgPSAwOwogICAgIGFsbG9jYXRvci0+ZW5kX29mZnNldCA9IDA7CiAgICAg
Ci0gICAgYWxsb2NhdG9yLT52aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2FzX3ZpZXcoZGlyZWN0b3J5KTsKKyAgICBhbGxvY2F0b3ItPnZpZXcgPSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9hc192aWV3KGRpcmVjdG9yeSk7CiAgICAgYWxsb2NhdG9yLT5j
b25maWdfa2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX25vcm1h
bCgKICAgICAgICAgZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogICAgIGlmICh2
ZXJib3NlKSB7Ci0gICAgICAgIHBhc19sb2coImFsbG9jYXRvciAlcCBoYXMga2luZCAlc1xuIiwK
LSAgICAgICAgICAgICAgICBhbGxvY2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tp
bmRfZ2V0X3N0cmluZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSwgIlxuIik7CisgICAgICAgIHBh
c19sb2coImFsbG9jYXRvciAlcCBoYXMga2luZCAlcywgZW5kcyBhdCAlcFxuIiwKKyAgICAgICAg
ICAgICAgICBhbGxvY2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0
cmluZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSwKKyAgICAgICAgICAgICAgICAoY2hhciopYWxs
b2NhdG9yICsgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3Np
emUoZGlyZWN0b3J5KSk7CiAgICAgfQogICAgIAotICAgIGFsbG9jYXRvci0+aXNfaW5fdXNlID0g
ZmFsc2U7Ci0gICAgYWxsb2NhdG9yLT5zaG91bGRfc3RvcF9jb3VudCA9IDA7Ci0gICAgYWxsb2Nh
dG9yLT5kaXJ0eSA9IGZhbHNlOwogICAgIGFsbG9jYXRvci0+Y3VycmVudF93b3JkX2lzX3ZhbGlk
ID0gZmFsc2U7CiB9CiAKLXZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9kZXN0cnVjdChwYXNfbG9j
YWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpCi17Ci0gICAgUEFTX1VOVVNFRF9QQVJBTShhbGxvY2F0
b3IpOwotfQotCiB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzZXQocGFzX2xvY2FsX2FsbG9j
YXRvciogYWxsb2NhdG9yKQogewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnk7CiAKLSAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpOwogCiAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9yZXNldF9pbXBsKGFsbG9jYXRvciwgZGlyZWN0b3J5LCBkaXJl
Y3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CiB9CkBAIC04OCwxMyArODgsMTMgQEAgdm9p
ZCBwYXNfbG9jYWxfYWxsb2NhdG9yX21vdmUocGFzX2xvY2FsXwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogc3JjKQogewogICAgIHNpemVfdCBzaXpl
OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5Owor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsX3ZpZXc7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXcqIHNoYXJlZF92aWV3OwogCi0gICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHNyYy0+dmlldyk7CisgICAgZGlyZWN0
b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkoc3JjLT52aWV3KTsK
ICAgICAKLSAgICBzaXplID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xv
Y2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSk7CisgICAgc2l6ZSA9IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSk7CiAgICAgCiAg
ICAgbWVtY3B5KGRzdCwgc3JjLCBzaXplKTsKIApAQCAtMTMxLDEzICsxMzEsMTEgQEAgYm9vbCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2JpdAogCiB2b2lkIHBhc19sb2NhbF9hbGxv
Y2F0b3JfZmluaXNoX3JlZmlsbF93aXRoX2JpdGZpdCgKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
KiBhbGxvY2F0b3IsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBz
aXplX2RpcmVjdG9yeSwKLSAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKQorICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSkKIHsKICAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiAgICAgcGFzX2JpdGZpdF9hbGxvY2F0b3Iq
IGJpdGZpdDsKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBnbG9iYWxfc2l6ZV9j
bGFzczsKICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3M7CiAgICAgcGFzX2Jp
dGZpdF92aWV3KiBiaXRmaXRfdmlldzsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQg
Yml0Zml0X2tpbmQ7CkBAIC0xNDgsMjggKzE0NiwyMSBAQCB2b2lkIHBhc19sb2NhbF9hbGxvY2F0
b3JfZmluaXNoX3JlZmlsbF93CiAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBzaXplX2RpcmVj
dG9yeSk7CiAgICAgfQogICAgIAotICAgIGdsb2JhbF9zaXplX2NsYXNzID0gcGFzX2NvbXBhY3Rf
YXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHJfbG9hZF9ub25fbnVsbCgKKyAgICBz
aXplX2NsYXNzID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9sb2Fk
X25vbl9udWxsKAogICAgICAgICAmc2l6ZV9kaXJlY3RvcnktPmJpdGZpdF9zaXplX2NsYXNzKTsK
ICAgICAKLSAgICBiaXRmaXRfa2luZCA9IHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRy
X2xvYWRfbm9uX251bGwoCi0gICAgICAgICZnbG9iYWxfc2l6ZV9jbGFzcy0+YmFzZS5kaXJlY3Rv
cnkpLT5jb25maWdfa2luZDsKKyAgICBiaXRmaXRfa2luZCA9IHBhc19jb21wYWN0X2JpdGZpdF9k
aXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnNpemVfY2xhc3MtPmRpcmVjdG9yeSktPmNvbmZp
Z19raW5kOwogICAgIAogICAgIGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgPSBwYXNfbG9jYWxfYWxs
b2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0ZV9iaXRmaXQoYml0Zml0X2tpbmQpOwogICAgIAogICAg
IGJpdGZpdCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpOwogICAg
IAotICAgIHNpemVfY2xhc3MgPSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3NlbGVjdF9m
b3JfbWFnYXppbmUoZ2xvYmFsX3NpemVfY2xhc3MsIG1hZ2F6aW5lKTsKLSAgICAKLSAgICBQQVNf
QVNTRVJUKHNpemVfY2xhc3MpOwotICAgIAogICAgIGJpdGZpdF9jb25maWcgPSBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhiaXRmaXRfa2luZCk7CiAgICAgCi0gICAgYml0
Zml0X3ZpZXcgPSBwYXNfYml0Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2ZyZWVfdmlldygKLSAg
ICAgICAgc2l6ZV9jbGFzcywgZ2xvYmFsX3NpemVfY2xhc3MsIGJpdGZpdF9jb25maWcpOworICAg
IGJpdGZpdF92aWV3ID0gcGFzX2JpdGZpdF9zaXplX2NsYXNzX2dldF9maXJzdF9mcmVlX3ZpZXco
c2l6ZV9jbGFzcywgYml0Zml0X2NvbmZpZyk7CiAgICAgCiAgICAgUEFTX0FTU0VSVChiaXRmaXRf
dmlldyk7CiAgICAgCi0gICAgYml0Zml0LT5nbG9iYWxfc2l6ZV9jbGFzcyA9IGdsb2JhbF9zaXpl
X2NsYXNzOwogICAgIGJpdGZpdC0+c2l6ZV9jbGFzcyA9IHNpemVfY2xhc3M7CiAgICAgYml0Zml0
LT52aWV3ID0gYml0Zml0X3ZpZXc7CiB9CkBAIC0xODMsNyArMTc0LDcgQEAgc3RhdGljIGJvb2wg
c3RvcF9pbXBsKAogICAgIAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsKICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlKiBwYWdlOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWc7CiAg
ICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKIApAQCAtMTkzLDggKzE4NCwxMCBAQCBzdGF0aWMgYm9v
bCBzdG9wX2ltcGwoCiAgICAgaWYgKCFhbGxvY2F0b3ItPnBhZ2VfaXNoKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAorICAgIGhlbGRfbG9jayA9IE5VTEw7CisKICAgICB2aWV3ID0gYWxsb2NhdG9y
LT52aWV3OwotICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9z
aXplX2RpcmVjdG9yeSh2aWV3KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKIAogICAgIHBhZ2VfY29uZmlnID0gKnBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9j
b25maWdfa2luZCk7CiAKQEAgLTIwMiwyOSArMTk1LDI4IEBAIHN0YXRpYyBib29sIHN0b3BfaW1w
bCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9j
YXRvciwgcGFnZV9jb25maWcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYWdlX2NvbmZpZyk7CiAgICAgCi0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHZpZXcpKSB7CisgICAgaWYgKHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfc2l6ZV9kaXJlY3RvcnkodmlldykpIHsKICAgICAgICAgdmlldyA9IHBhZ2UtPm93
bmVyOwotICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZl
X2lzaCh2aWV3KSk7CisgICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19z
b21lX2V4Y2x1c2l2ZSh2aWV3KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIFBBU19BU1NFUlQocGFz
X3NlZ3JlZ2F0ZWRfdmlld19pc19wYXJ0aWFsKHZpZXcpKTsKLQotICAgIGhlbGRfbG9jayA9IE5V
TEw7CisgICAgCiAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX3dpdGhf
bW9kZShwYWdlLCAmaGVsZF9sb2NrLCBwYWdlX2xvY2tfbW9kZSwgcGFnZV9jb25maWcpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgcGFnZV9jb25maWcuc3BlY2lhbGl6ZWRfbG9j
YWxfYWxsb2NhdG9yX3JldHVybl9tZW1vcnlfdG9fcGFnZSgKICAgICAgICAgYWxsb2NhdG9yLCB2
aWV3LCBwYWdlLCBkaXJlY3RvcnksIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCisgICAgCiAgICAg
cGFzX3JhY2VfdGVzdF9ob29rKHBhc19yYWNlX3Rlc3RfaG9va19sb2NhbF9hbGxvY2F0b3Jfc3Rv
cF9iZWZvcmVfZGlkX3N0b3BfYWxsb2NhdGluZyk7CiAgICAgCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKHZpZXcsIHBhZ2UsIHBhZ2VfY29uZmlnKTsKICAgICAK
ICAgICBwYXNfcmFjZV90ZXN0X2hvb2socGFzX3JhY2VfdGVzdF9ob29rX2xvY2FsX2FsbG9jYXRv
cl9zdG9wX2JlZm9yZV91bmxvY2spOwotCi0gICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ss
IE5VTEwpOwogICAgIAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzZXQoYWxsb2NhdG9yKTsK
ICAgICAKKyAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisgICAgCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKQEAgLTIzOSw5ICsyMzEsOSBAQCBib29sIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc3RvcCgKICAgICAKICAgICBib29sIHJlc3VsdDsKIAotICAgIFBBU19BU1NFUlQoIWFs
bG9jYXRvci0+aXNfaW5fdXNlKTsKKyAgICBQQVNfQVNTRVJUKCFhbGxvY2F0b3ItPnNjYXZlbmdl
cl9kYXRhLmlzX2luX3VzZSk7CiAKLSAgICBhbGxvY2F0b3ItPmlzX2luX3VzZSA9IHRydWU7Cisg
ICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOwogICAgIHBhc19j
b21waWxlcl9mZW5jZSgpOwogCiAgICAgcmVzdWx0ID0gc3RvcF9pbXBsKGFsbG9jYXRvciwgcGFn
ZV9sb2NrX21vZGUsIGhlYXBfbG9ja19ob2xkX21vZGUpOwpAQCAtMjQ5LDExICsyNDEsMTEgQEAg
Ym9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3AoCiAgICAgaWYgKHJlc3VsdCkgewogICAgICAg
ICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIkRpZCBzdG9wIGFsbG9jYXRvciAl
cFxuIiwgYWxsb2NhdG9yKTsKLSAgICAgICAgYWxsb2NhdG9yLT5zaG91bGRfc3RvcF9jb3VudCA9
IDA7CisgICAgICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuc2hvdWxkX3N0b3BfY291bnQg
PSAwOwogICAgIH0KICAgICAKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICBhbGxvY2F0
b3ItPmlzX2luX3VzZSA9IGZhbHNlOworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNf
aW5fdXNlID0gZmFsc2U7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMjY3LDggKzI1OSw4
IEBAIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZShwYXNfbG8KICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIAogICAgIGlmIChhY3Rpb24gPT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5n
ZV9yZXF1ZXN0X3N0b3BfYWN0aW9uKSB7Ci0gICAgICAgIGlmIChhbGxvY2F0b3ItPmRpcnR5KSB7
Ci0gICAgICAgICAgICBhbGxvY2F0b3ItPmRpcnR5ID0gZmFsc2U7CisgICAgICAgIGlmIChhbGxv
Y2F0b3ItPnNjYXZlbmdlcl9kYXRhLmRpcnR5KSB7CisgICAgICAgICAgICBhbGxvY2F0b3ItPnNj
YXZlbmdlcl9kYXRhLmRpcnR5ID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF9hbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgInBhc19iaXRmaXRfYWxsb2Nh
dG9yLmgiCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxv
Y2F0b3JfY29uZmlnX2tpbmQuaCIKLSNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUu
aCIKKyNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgiCiAjaW5j
bHVkZSAicGFzX2xvY2suaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5o
IgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKQEAgLTUwLDYgKzUwLDEyIEBAIHR5
cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFzX3MKIHR5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKIAogc3RydWN0IHBhc19sb2Nh
bF9hbGxvY2F0b3IgeworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEgc2Nh
dmVuZ2VyX2RhdGE7CisgICAgCisgICAgdWludDhfdCBhbGlnbm1lbnRfc2hpZnQ7CisgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZCBjb25maWdfa2luZCA6IDg7CisgICAgYm9vbCBj
dXJyZW50X3dvcmRfaXNfdmFsaWQ7IC8qIFRoaXMgaXMganVzdCB1c2VkIGJ5IGVudW1lcmF0aW9u
LiAqLworCiAgICAgLyogVGhpcyBoYXMgdG8gaGF2ZSBhIHBvaW50ZXIgdG8gb3VyIGluZGV4IHdp
dGhpbiB0aGUgdmlldy4gV2UgY2FuIGdldCB0byB0aGUgdmlldyB1c2luZwogICAgICAgIHBhZ2Vf
aXNoLiBNYXliZSB3b3J0aCByZWNvbnNpZGVyaW5nIHRoYXQsIGJ1dCB0aGVuIGFnYWluIG1heWJl
IGl0J3MgZ29vZCBlbm91Z2guIAogICAgIApAQCAtNzEsMTcgKzc3LDEyIEBAIHN0cnVjdCBwYXNf
bG9jYWxfYWxsb2NhdG9yIHsKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7IC8qIHBvaW50
cyB0byBhIHBhcnRpYWwgdmlldyBpZiB3ZSdyZSBpbiBwYXJ0aWFsIG1vZGUgb3IgdGhlIHNpemUK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSBvdGhlcndpc2UuIFRo
aXMgd2lsbCBwb2ludCB0byBhIHBhcnRpYWwgdmlldyBpbiBlaXRoZXIKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW1vcmRpYWwgcGFydGlhbCBtb2RlIG9yIGluIG5vcm1hbCBw
YXJ0aWFsIG1vZGUuICovCi0gICAgdWludDE2X3QgbnVtX2xpbmVzOwotICAgIHVpbnQ4X3QgYWxp
Z25tZW50X3NoaWZ0OwotICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQgY29uZmln
X2tpbmQgOiA4OwotICAgIGJvb2wgaXNfaW5fdXNlOwotICAgIHVpbnQ4X3Qgc2hvdWxkX3N0b3Bf
Y291bnQ7Ci0gICAgYm9vbCBkaXJ0eTsKLSAgICBib29sIGN1cnJlbnRfd29yZF9pc192YWxpZDsg
LyogVGhpcyBpcyBqdXN0IHVzZWQgYnkgZW51bWVyYXRpb24uICovCiAgICAgdWludDY0X3QgYml0
c1sxXTsKIH07CiAKICNkZWZpbmUgUEFTX0xPQ0FMX0FMTE9DQVRPUl9OVUxMX0lOSVRJQUxJWkVS
ICgocGFzX2xvY2FsX2FsbG9jYXRvcil7IFwKKyAgICAgICAgLnNjYXZlbmdlcl9kYXRhID0gXAor
ICAgICAgICAgICAgUEFTX0xPQ0FMX0FMTE9DQVRPUl9TQ0FWRU5HRVJfREFUQV9JTklUSUFMSVpF
UihwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kKSwgXAogICAgICAgICAucGF5bG9h
ZF9lbmQgPSAwLCBcCiAgICAgICAgIC5yZW1haW5pbmcgPSAwLCBcCiAgICAgICAgIC5vYmplY3Rf
c2l6ZSA9IDAsIFwKQEAgLTg5LDEwICs5MCw3IEBAIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9y
IHsKICAgICAgICAgLmN1cnJlbnRfb2Zmc2V0ID0gMCwgXAogICAgICAgICAuZW5kX29mZnNldCA9
IDAsIFwKICAgICAgICAgLnZpZXcgPSBOVUxMLCBcCi0gICAgICAgIC5jb25maWdfa2luZCA9IHBh
c19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfbm9ybWFsX251bGwsIFwKLSAgICAgICAgLmlz
X2luX3VzZSA9IGZhbHNlLCBcCi0gICAgICAgIC5zaG91bGRfc3RvcF9jb3VudCA9IDAsIFwKLSAg
ICAgICAgLmRpcnR5ID0gZmFsc2UgXAorICAgICAgICAuY29uZmlnX2tpbmQgPSBwYXNfbG9jYWxf
YWxsb2NhdG9yX2NvbmZpZ19raW5kX25vcm1hbF9udWxsIFwKICAgICB9KQogCiAjZGVmaW5lIFBB
U19MT0NBTF9BTExPQ0FUT1JfU0laRShudW1fYWxsb2NfYml0cykgXApAQCAtMTAxLDcgKzk5LDEz
IEBAIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yIHsKICAgICAgICAgIHNpemVvZih1aW50NjRf
dCkgKiBQQVNfQklUVkVDVE9SX05VTV9XT1JEUzY0KG51bV9hbGxvY19iaXRzKSwgXAogICAgICAg
ICAgUEFTX1JPVU5EX1VQX1RPX1BPV0VSX09GXzIoc2l6ZW9mKHBhc19iaXRmaXRfYWxsb2NhdG9y
KSwgc2l6ZW9mKHVpbnQ2NF90KSkpKQogCi1QQVNfQVBJIGV4dGVybiB1aW50OF90IHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2hvdWxkX3N0b3BfY291bnRfZm9yX3N1c3BlbmQ7CisjZGVmaW5lIFBBU19M
T0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAwCisKKyNpZiBQQVNfTE9D
QUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kKK1BBU19BUEkgZXh0ZXJuIGRv
dWJsZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X3N1bTsKK1BBU19BUEkg
ZXh0ZXJuIGRvdWJsZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X247CitQ
QVNfREVDTEFSRV9MT0NLKHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3kpOwor
I2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAq
LwogCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19udWxsKHBhc19s
b2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcikKIHsKQEAgLTEzNCw5ICsxMzgsNyBAQCBzdGF0aWMg
aW5saW5lIHVpbnRwdHJfdCBwYXNfbG9jYWxfYWxsb2NhCiB9CiAKIFBBU19BUEkgdm9pZCBwYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3Is
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHZvaWQgcGFz
X2xvY2FsX2FsbG9jYXRvcl9kZXN0cnVjdChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3Ip
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCiBQQVNfQVBJIHZvaWQgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZXNldChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpOwogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDE3ICsyNiwxNiBAQAogI2lmbmRlZiBQQVNfTE9DQUxfQUxM
T0NBVE9SX0lOTElORVNfSAogI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX0lOTElORVNfSAog
Ci0jaW5jbHVkZSAicGFzX2FsbF9tYWdhemluZXMuaCIKICNpbmNsdWRlICJwYXNfYWxsb2NhdG9y
X2NvdW50cy5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCIKICNp
bmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3MuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0X3NpemVfY2xhc3MuaCIKICNp
bmNsdWRlICJwYXNfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2Vwb2NoLmgiCiAjaW5jbHVkZSAi
cGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NjYXZlbmdlci5o
IgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaCIKLSNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgor
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKICNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGlu
ZXMuaCIKQEAgLTUxLDcgKzUwLDcgQEAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RhdGljIGlu
bGluZSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzZXRfaW1wbChwYXNfbG9jYWxfYWxsb2Nh
dG9yKiBhbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kIGtpbmQpCiB7CiAgICAgYWxsb2NhdG9yLT5wYWdlX2lzaCA9IDA7CkBAIC01OSwxMSAr
NTgsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfcgogICAgIGFs
bG9jYXRvci0+Y3VycmVudF93b3JkX2lzX3ZhbGlkID0gZmFsc2U7CiAgICAgYWxsb2NhdG9yLT5w
YXlsb2FkX2VuZCA9IDA7CiAgICAgYWxsb2NhdG9yLT5yZW1haW5pbmcgPSAwOwotICAgIGFsbG9j
YXRvci0+bnVtX2xpbmVzID0gMDsKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0ID0gMDsK
ICAgICBhbGxvY2F0b3ItPmVuZF9vZmZzZXQgPSAwOwogICAgIGFsbG9jYXRvci0+Y3VycmVudF93
b3JkID0gMDsKLSAgICBhbGxvY2F0b3ItPnZpZXcgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfYXNfdmlldyhkaXJlY3RvcnkpOworICAgIGFsbG9jYXRvci0+dmlldyA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FzX3ZpZXcoZGlyZWN0b3J5KTsKICAgICBhbGxv
Y2F0b3ItPmNvbmZpZ19raW5kID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9jcmVh
dGVfbm9ybWFsKGtpbmQpOwogfQogCkBAIC03Miw5ICs3MCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBlbmQpCiB7CisgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKGVuZCk7CiAgICAgYWxsb2NhdG9yLT5wYXlsb2FkX2VuZCA9IGVuZDsK
ICAgICBhbGxvY2F0b3ItPnJlbWFpbmluZyA9ICh1bnNpZ25lZCkoZW5kIC0gYmVnaW4pOwotICAg
IGFsbG9jYXRvci0+bnVtX2xpbmVzID0gMDsKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0
ID0gMDsKICAgICBhbGxvY2F0b3ItPmVuZF9vZmZzZXQgPSAwOwogICAgIGFsbG9jYXRvci0+Y3Vy
cmVudF93b3JkID0gMDsKQEAgLTEyMiw3ICsxMjAsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgYm9vbCBwYXNfbG9jYWxfCiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19s
b2NhbF9hbGxvY2F0b3Jfc2Nhbl9iaXRzX3RvX3NldF91cF9mcmVlX2JpdHMoCiAgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICB1aW50cHRy
X3QgcGFnZV9ib3VuZGFyeSwKICAgICB1bnNpZ25lZCBjdXJyZW50X29mZnNldCwKQEAgLTEzOSw2
ICsxMzcsMTEgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsXwogICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nhbl9iaXRzX3RvX3NldF91cF91c2VfY291bnRzX2RhdGEg
ZGF0YTsKICAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZTsKIAorI2lmIFBBU19MT0NBTF9BTExPQ0FU
T1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWQorICAgIHVuc2lnbmVkIG51bV90b3RhbF9vYmpl
Y3RzOworICAgIHVuc2lnbmVkIG51bV90YWtlbl9vYmplY3RzOworI2VuZGlmIC8qIFBBU19MT0NB
TF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAqLworCiAgICAgUEFTX0FTU0VS
VChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwogICAgIFBBU19VTlVTRURfUEFSQU0oZGly
ZWN0b3J5KTsKIApAQCAtMTkzLDYgKzE5NiwxMSBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCBwYXNfbG9jYWxfCiAKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKIAorI2lmIFBBU19M
T0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWQorICAgIG51bV90b3RhbF9v
YmplY3RzID0gMDsKKyAgICBudW1fdGFrZW5fb2JqZWN0cyA9IDA7CisjZW5kaWYgLyogUEFTX0xP
Q0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZICovCisKICAgICBmb3IgKGlu
ZGV4ID0gZnVsbF9hbGxvY19iaXRzLndvcmRfaW5kZXhfYmVnaW47IGluZGV4IDwgZnVsbF9hbGxv
Y19iaXRzLndvcmRfaW5kZXhfZW5kOyArK2luZGV4KSB7CiAgICAgICAgIHVuc2lnbmVkIGZ1bGw7
CiAgICAgICAgIHVuc2lnbmVkIGFsbG9jOwpAQCAtMjAyLDYgKzIxMCwxMiBAQCBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfCiAgICAgICAgIGFsbG9jID0gYWxsb2NfYml0
c1tpbmRleF07CiAgICAgICAgIGZyZWUgPSBmdWxsICYgfmFsbG9jOwogICAgICAgICAoKHVuc2ln
bmVkKilhbGxvY2F0b3ItPmJpdHMpW2luZGV4XSA9IGZyZWU7CisKKyNpZiBQQVNfTE9DQUxfQUxM
T0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kKKyAgICAgICAgbnVtX3RvdGFsX29iamVj
dHMgKz0gX19idWlsdGluX3BvcGNvdW50KGZ1bGwpOworICAgICAgICBudW1fdGFrZW5fb2JqZWN0
cyArPSBfX2J1aWx0aW5fcG9wY291bnQoZnJlZSk7CisjZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9D
QVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZICovCisgICAgICAgIAogICAgICAgICBwYXNf
Y29tcGlsZXJfZmVuY2UoKTsKICAgICAgICAgYWxsb2NfYml0c1tpbmRleF0gPSBhbGxvYyB8IGZ1
bGw7CiAgICAgICAgIHN3aXRjaCAodmlld19raW5kKSB7CkBAIC0yNDMsNiArMjU3LDE1IEBAIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF8KICAgICAgICAgfQogICAgIH0K
IAorI2lmIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWQorICAg
IFBBU19BU1NFUlQobnVtX3Rha2VuX29iamVjdHMgPD0gbnVtX3RvdGFsX29iamVjdHMpOworCisg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9sb2NrX2xvY2soKTsKKyAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X3N1bSArPSAoZG91YmxlKW51
bV90YWtlbl9vYmplY3RzIC8gKGRvdWJsZSludW1fdG90YWxfb2JqZWN0czsKKyAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X24rKzsKKyAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3JlZmlsbF9lZmZpY2llbmN5X2xvY2tfdW5sb2NrKCk7CisjZW5kaWYgLyogUEFTX0xPQ0FM
X0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZICovCisKICAgICBpZiAocGFnZV9j
b25maWcudXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCkgewogICAgICAgICBQQVNfQVNTRVJUKHBh
Z2VfY29uZmlnLnZhcmlhbnQgPT0gcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFy
aWFudCk7CiAgICAgICAgIGFsbG9jYXRvci0+Y3VycmVudF93b3JkID0gcGFzX3JldmVyc2U2NChh
bGxvY2F0b3ItPmJpdHNbY3VycmVudF9vZmZzZXRdKTsKQEAgLTI2Miw3ICsyODUsNyBAQCBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfCiAgICAgc3dpdGNoICh2aWV3X2tp
bmQpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAg
ICAgIHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMgPQotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxs
KAogICAgICAgICAgICAgICAgICZkaXJlY3RvcnktPmRhdGEpLT5mdWxsX251bV9ub25fZW1wdHlf
d29yZHM7CiAgICAgICAgIGJyZWFrOwogICAgICAgICAKQEAgLTI4MCw3ICszMDMsNyBAQCBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZAogcGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfZnJl
ZV9iaXRzKHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQgdmlld19raW5kLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHZpZXcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBwYWdlX2JvdW5kYXJ5
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnIHBhZ2VfY29uZmlnKQpAQCAtMzA0LDcgKzMyNyw3IEBAIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2V0X3VwX2ZyZWVfYml0cyhwYXMKIAogICAgICAgICBiZWdpbl9vZmZzZXQgPSBwYXNf
c2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0
KAogICAgICAgICAgICAgcGFnZSwgZGlyZWN0b3J5LCBwYWdlX2NvbmZpZyk7Ci0gICAgICAgIGVu
ZF9vZmZzZXQgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZF9ub25fbnVsbCgKKyAgICAgICAgZW5kX29mZnNldCA9IHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAmZGlyZWN0b3J5
LT5kYXRhKS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3Q7
CiAKICAgICAgICAgYmVnaW5fb2Zmc2V0ID0gUEFTX0JJVFZFQ1RPUl9XT1JENjRfSU5ERVgoCkBA
IC0zNTMsNyArMzc2LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9wcmVwYXJlX3RvX2FsbG9jYXRl
KAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCB2aWV3X2tpbmQsCiAgICAgdm9pZCogdmll
dywKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFn
ZV9jb25maWcpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAt
Mzc1LDcgKzM5OCw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90b19hbGxvY2F0ZSgK
ICAgICBpZiAodmlld19raW5kID09IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQg
JiYgIXBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMpIHsKICAgICAgICAgdWludHB0cl90IHBheWxv
YWRfYmVnaW47CiAgICAgICAgIHVpbnRwdHJfdCBwYXlsb2FkX2VuZDsKLSAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CiAKICAgICAgICAgaWYgKHZlcmJv
c2UpCiAgICAgICAgICAgICBwYXNfbG9nKCJSZWZpbGxpbmcgd2l0aCBidW1wLlxuIik7CkBAIC0z
ODMsNyArNDA2LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9wcmVwYXJlX3RvX2FsbG9jYXRlKAog
ICAgICAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy5iYXNl
LmdyYW51bGVfc2l6ZSkKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2luc3RhbGxfZnVsbF91c2VfY291bnRzKChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyop
dmlldyk7CiAKLSAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpOworICAgICAgICBk
YXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVs
bCgmZGlyZWN0b3J5LT5kYXRhKTsKICAgICAgICAgCiAgICAgICAgIHBheWxvYWRfYmVnaW4gPSBw
YWdlX2JvdW5kYXJ5ICsgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9v
YmplY3Q7CiAgICAgICAgIHBheWxvYWRfZW5kID0gcGFnZV9ib3VuZGFyeSArIGRhdGEtPm9mZnNl
dF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0OwpAQCAtMzk4LDYgKzQy
MSwxMyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxsb2NhdGUoCiAgICAgICAg
IG1lbWNweShwYWdlLT5hbGxvY19iaXRzLCBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRy
X2xvYWRfbm9uX251bGwoJmRhdGEtPmZ1bGxfYWxsb2NfYml0cyksCiAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2NfYnl0ZXMocGFnZV9jb25maWcpKTsK
IAorI2lmIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWQorICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X2xvY2tfbG9jaygpOwor
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X3N1bSsrOworICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X24rKzsKKyAgICAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9sb2NrX3VubG9jaygpOworI2Vu
ZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAqLwor
ICAgICAgICAKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKQEAgLTUzMiw3ICs1NjIsNyBA
QCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbAogcGFzX2xvY2FsX2FsbG9jYXRvcl9zdGFy
dF9hbGxvY2F0aW5nX2luX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3KAogICAgIHBhc19sb2NhbF9h
bGxvY2F0b3IqIGFsbG9jYXRvciwKICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHZp
ZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVj
dG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnks
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7CiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAtODIxLDggKzg1MSw3IEBAIFBBU19B
UEkgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF8KIAogUEFTX0FQSSB2b2lkIHBhc19s
b2NhbF9hbGxvY2F0b3JfZmluaXNoX3JlZmlsbF93aXRoX2JpdGZpdCgKICAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKLSAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKTsKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpOwogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbAogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0
aF9rbm93bl9jb25maWcoCkBAIC04MzgsMTQgKzg2NywxNSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3JlZmlsbF93aXRoX2tub3duX2NvCiAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlKiBvbGRfcGFnZTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBuZXdf
cGFnZTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGly
ZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9y
eTsKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICBwYXNfbWFn
YXppbmUqIG1hZ2F6aW5lOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSogY2FjaGVf
bm9kZTsKICAgICBib29sIGRpZF9pbml0aWFsaXplX2JpdGZpdDsKICAgICBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOwogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlldyogcGFydGlhbDsKICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyogc2hhcmVkOwog
ICAgIGJvb2wgZW5hYmxlX3NlZ3JlZ2F0ZWQ7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSog
Y2FjaGU7CiAKICAgICBQQVNfVU5VU0VEX1BBUkFNKGNvdW50cyk7CiAKQEAgLTg1Niw3ICs4ODYs
NyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvCiAgICAgaWYgKHNr
aXBfYml0Zml0KQogICAgICAgICBQQVNfQVNTRVJUKGVuYWJsZV9zZWdyZWdhdGVkKTsKICAgICAK
LSAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXpl
X2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpOworICAgIHNpemVfZGlyZWN0b3J5ID0gcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KTsKICAgICBk
aXJlY3RvcnkgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7CiAKICAgICBpZiAodmVyYm9zZSkgewpA
QCAtODc3LDEwICs5MDcsOSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3du
X2NvCiAgICAgICAgIHBhc19iaXRmaXRfYWxsb2NhdG9yX2Fzc2VydF9yZXNldChiaXRmaXQpOwog
ICAgIH0KIAotICAgIGlmICghYWxsb2NhdG9yLT5kaXJ0eSAmJiB2ZXJib3NlKQorICAgIGlmICgh
YWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5kaXJ0eSAmJiB2ZXJib3NlKQogICAgICAgICBwYXNf
bG9nKCJVc2luZyBhbGxvY2F0b3IgJXBcbiIsIGFsbG9jYXRvcik7Ci0gICAgYWxsb2NhdG9yLT5k
aXJ0eSA9IHRydWU7Ci0gICAgYWxsb2NhdG9yLT5zaG91bGRfc3RvcF9jb3VudCA9IDA7CisgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9u
KCZhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhKTsKICAgICAKICAgICBpZiAocGFzX3NjYXZlbmdl
cl9kaWRfY3JlYXRlX2VsaWdpYmxlKCkpIHsKICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpID09IHBhc19sb2NrX2lz
X25vdF9oZWxkKQpAQCAtODk3LDcgKzkyNiw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxs
X3dpdGhfa25vd25fY28KICAgICAgICAgb2xkX3BhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zv
cl9ib3VuZGFyeSgKICAgICAgICAgICAgICh2b2lkKilwYXNfbG9jYWxfYWxsb2NhdG9yX3BhZ2Vf
Ym91bmRhcnkoYWxsb2NhdG9yLCBwYWdlX2NvbmZpZyksIHBhZ2VfY29uZmlnKTsKICAgICAgICAg
b2xkX3ZpZXcgPSBvbGRfcGFnZS0+b3duZXI7Ci0gICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRf
dmlld19pc19leGNsdXNpdmVfaXNoKG9sZF92aWV3KSkgeworICAgICAgICBpZiAoIXBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUob2xkX3ZpZXcpKSB7CiAgICAgICAgICAgICBQ
QVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc2hhcmVkX2hhbmRsZShvbGRfdmlldykp
OwogICAgICAgICAgICAgb2xkX3ZpZXcgPSBhbGxvY2F0b3ItPnZpZXc7CiAgICAgICAgICAgICBQ
QVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfcGFydGlhbChvbGRfdmlldykpOwpAQCAt
OTE4LDM0ICs5NDcsMjkgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9j
bwogICAgICAgICBjb3VudHMtPnNsb3dfcmVmaWxscysrOwogI2VuZGlmIC8qIFBBU19FTkFCTEVf
VEVTVElORyAqLwogCi0gICAgbWFnYXppbmUgPSBOVUxMOworICAgIGNhY2hlID0gTlVMTDsKKyAg
ICBjYWNoZV9ub2RlID0gTlVMTDsKICAgICAKICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKSB7Ci0gICAgICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIGNhY2hlOwotICAgICAgICAKICAgICAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX3RyeV9nZXQoKTsKICAgICAgICAgCiAgICAgICAgIGlmIChjYWNoZSkgeworICAg
ICAgICAgICAgY2FjaGVfbm9kZSA9IGNhY2hlLT5ub2RlOworICAgICAgICAgICAgCiAgICAgICAg
ICAgICAvKiBEb2luZyB0aGlzIGhlcmUgaGFzIHNvbWUgc3BlY2lhbCBwcm9wZXJ0aWVzLiBGb3Ig
ZXhhbXBsZSwgaXQgZG9lc24ndCBwcmV2ZW50IGZhc3QgcmV1c2UKICAgICAgICAgICAgICAgIG9m
IHRoZSBwYWdlIHdlIGp1c3QgZmluaXNoZWQgYWxsb2NhdGluZyBvdXQgb2YuICovCiAgICAgICAg
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9uZWNl
c3NhcnkoCiAgICAgICAgICAgICAgICAgY2FjaGUsIGFsbG9jYXRvciwgcGFzX2xvY2tfaXNfbm90
X2hlbGQpOwogICAgICAgICB9Ci0KLSAgICAgICAgLyogTk9URTogVGhpcyBpcyByYWN5LCBhbmQg
dGhhdCdzIE9LLiBNYWdhemluZXMgYXJlIGRlc2lnbmVkIHNvIHRoYXQgaWYgYSB0aHJlYWQgYWNj
ZXNzZXMgaXQKLSAgICAgICAgICAgZnJvbSB0aGUgd3JvbmcgY29yZSB0aGVuIHRoZSB3b3JzdCB0
aGluZyB0aGF0IHdpbGwgaGFwcGVuIGlzIGEgYml0IG9mIGNvbnRlbnRpb24uICovCi0gICAgICAg
IG1hZ2F6aW5lID0gcGFzX2FsbF9tYWdhemluZXNfZ2V0X2N1cnJlbnQoKTsKICAgICB9CiAKICAg
ICBpZiAodmVyYm9zZSkgewogICAgICAgICBwYXNfbG9nKCJvbGRfdmlldyA9ICVwLlxuIiwgb2xk
X3ZpZXcpOwogICAgICAgICBpZiAob2xkX3ZpZXcpIHsKLSAgICAgICAgICAgIHBhc19sb2coIiAg
ICBzaG91bGQgcmVzdGFydCA9ICVkLCBpbmRleCA9ICV6dSwgZmlyc3RfZWxpZ2libGVfYnV0X25v
dF90YWJsZWQgPSAlenUuXG4iLAotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92
aWV3X3Nob3VsZF9yZXN0YXJ0KG9sZF92aWV3LCBtYWdhemluZSksCisgICAgICAgICAgICBwYXNf
bG9nKCIgICAgaW5kZXggPSAlenUsIGZpcnN0X2VsaWdpYmxlID0gJXp1LlxuIiwKICAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfaW5kZXgob2xkX3ZpZXcpLAogICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdp
YmxlKAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6
ZV9kaXJlY3Rvcnkob2xkX3ZpZXcpLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkX2tpbmQpLnZhbHVl
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXpl
X2RpcmVjdG9yeShvbGRfdmlldyktPmJhc2UpLnZhbHVlKTsKICAgICAgICAgfQogICAgIH0KIApA
QCAtOTY5LDM4ICs5OTMsMTQgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93
bl9jbwogICAgICAgICAgICAgbmV3X3BhZ2UgPSBvbGRfcGFnZTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgZXhjbHVzaXZlID0gKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KilwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9wdHIobmV3X3ZpZXcpOwotCi0gICAgICAgICAgICBnb3RvIHJl
c3RhcnRfZXhjbHVzaXZlOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX3ZpZXdfa2luZDogewotICAgICAgICAgICAgaWYgKG1hZ2F6aW5lKSB7Ci0gICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiBiaWFzaW5nOwotICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVj
dG9yeTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBiaWFzaW5nID0gKHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKG9sZF92
aWV3KTsKLSAgICAgICAgICAgICAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAg
ICAgICAgICAgICZiaWFzaW5nLT5kaXJlY3RvcnkpOwotICAgICAgICAgICAgICAgIGlmIChwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9tYWdhemluZV9pbmRleChiaWFzaW5nX2RpcmVj
dG9yeSkKLSAgICAgICAgICAgICAgICAgICAgPT0gbWFnYXppbmUtPm1hZ2F6aW5lX2luZGV4KSB7
Ci0gICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IGVwb2NoOwotICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgbmV3X3ZpZXcgPSBvbGRfdmlldzsKLSAgICAgICAgICAg
ICAgICAgICAgbmV3X3BhZ2UgPSBvbGRfcGFnZTsKLQotICAgICAgICAgICAgICAgICAgICBlcG9j
aCA9IHBhc19nZXRfZXBvY2goKTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4KAotICAgICAgICAgICAg
ICAgICAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UsIGJpYXNpbmctPmlu
ZGV4LCBlcG9jaCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlID0KLSAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZiaWFz
aW5nLT5leGNsdXNpdmUpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgZ290byByZXN0YXJ0X2V4Y2x1c2l2ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiUmVzdGFydGluZyBvbiBzYW1lIHBhZ2Ug
YXMgYmVmb3JlLlxuIik7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9s
b2NrX2FuZF9yZWJpYXNfd2hpbGVfaW5lbGlnaWJsZSgKKyAgICAgICAgICAgICAgICBuZXdfcGFn
ZSwgJmhlbGRfbG9jaywgY2FjaGVfbm9kZSwgcGFnZV9jb25maWcpOworICAgICAgICAgICAgbmV3
X3BhZ2UtPm93bmVyID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19hc19pbmVsaWdpYmxlKG5ld192aWV3
KTsKKyAgICAgICAgICAgIG5ld19wYWdlLT5lbGlnaWJpbGl0eV9ub3RpZmljYXRpb25faGFzX2Jl
ZW5fZGVmZXJyZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGdvdG8gcHJlcGFyZV9leGNsdXNpdmU7
CiAgICAgICAgIH0KIAogICAgICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19r
aW5kOiB7CkBAIC0xMDI0LDI4ICsxMDI0LDg1IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxs
X3dpdGhfa25vd25fY28KICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygiRmluZGlu
ZyBhIGRpZmZlcmVudCBwYWdlLlxuIik7CiAKKyAgICBuZXdfdmlldyA9IE5VTEw7CisgICAgbmV3
X3BhZ2UgPSBOVUxMOworICAgIAogICAgIGlmIChlbmFibGVfc2VncmVnYXRlZCkgewotICAgICAg
ICBuZXdfdmlldyA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2Zp
cnN0X2VsaWdpYmxlKHNpemVfZGlyZWN0b3J5LCBtYWdhemluZSk7Ci0gICAgICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICAgICAgcGFzX2xvZygiR290IGEgbmV3IHZpZXcgJXBcbiIsIG5ld192aWV3
KTsKLSAgICAgICAgaWYgKG5ld192aWV3KQotICAgICAgICAgICAgbmV3X3ZpZXcgPSBwYXNfc2Vn
cmVnYXRlZF92aWV3X3dpbGxfc3RhcnRfYWxsb2NhdGluZyhuZXdfdmlldywgcGFnZV9jb25maWcp
OwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgcGFzX2xvZygiQW5kIGFmdGVy
IHdpbGxfc3RhcnQgZ290IGEgbmV3IHZpZXcgJXAsIHBhZ2UgPSAlcCwgYm91bmRhcnkgPSAlcFxu
IiwKLSAgICAgICAgICAgICAgICAgICAgbmV3X3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2UobmV3X3ZpZXcpLAotICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2JvdW5kYXJ5KG5ld192aWV3KSk7CisgICAg
ICAgIGJvb2wgZGlkX2dldF92aWV3OworCisgICAgICAgIGRpZF9nZXRfdmlldyA9IGZhbHNlOwor
CisgICAgICAgIGlmIChwYWdlX2NvbmZpZy5lbmFibGVfdmlld19jYWNoZSAmJiBjYWNoZSkgewor
ICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgdmlld19jYWNoZV9yZXN1bHQ7
CisKKyAgICAgICAgICAgIFBBU19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lz
X3V0aWxpdHkocGFnZV9jb25maWcpKTsKKworICAgICAgICAgICAgdmlld19jYWNoZV9yZXN1bHQg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IoCisgICAgICAgICAg
ICAgICAgY2FjaGUsIHNpemVfZGlyZWN0b3J5LT52aWV3X2NhY2hlX2luZGV4LCBwYXNfbG9ja19p
c19ub3RfaGVsZCk7CisgICAgICAgICAgICBjYWNoZSA9IE5VTEw7IC8qIFRoZSBjYWNoZSBjb3Vs
ZCBoYXZlIGJlZW4gcmVzaXplZCwgc28gd2UgZG9uJ3Qgd2FudCB0byB1c2UgdGhpcyBwb2ludGVy
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFueW1vcmUuICovCisgICAgICAgICAgICBp
ZiAodmlld19jYWNoZV9yZXN1bHQuZGlkX3N1Y2NlZWQpIHsKKyAgICAgICAgICAgICAgICBwYXNf
bG9jYWxfdmlld19jYWNoZSogdmlld19jYWNoZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAg
ICAgICAgICB2aWV3X2NhY2hlID0gKHBhc19sb2NhbF92aWV3X2NhY2hlKil2aWV3X2NhY2hlX3Jl
c3VsdC5hbGxvY2F0b3I7CisKKyAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIXZp
ZXdfY2FjaGUtPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgdmlld19jYWNoZS0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKworICAgICAgICAgICAg
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3JfYWxsb2Nh
dGlvbigmdmlld19jYWNoZS0+c2NhdmVuZ2VyX2RhdGEpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkodmlld19jYWNo
ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3X3ZpZXcgPSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19hc192aWV3KHBhc19sb2NhbF92aWV3X2NhY2hlX3BvcCh2aWV3X2NhY2hlKSk7
CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19B
U1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShuZXdfdmlldykpOwor
ICAgICAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19vd25lZChuZXdfdmlldykpOworICAgICAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19B
U1NFUlQoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGUobmV3X3ZpZXcpKTsKKyAgICAg
ICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3BhZ2UobmV3X3ZpZXcpLT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb24pOworICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfbG9nKCIlcCwgYT0lcCwgdmM9JXA6IEdvdCBmcm9tIGNhY2hlICgldSku
XG4iLCBjYWNoZV9ub2RlLCBhbGxvY2F0b3IsIHZpZXdfY2FjaGUsIGFsbG9jYXRvci0+b2JqZWN0
X3NpemUpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgZGlkX2dl
dF92aWV3ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwYXNf
Y29tcGlsZXJfZmVuY2UoKTsKKyAgICAgICAgICAgICAgICB2aWV3X2NhY2hlLT5zY2F2ZW5nZXJf
ZGF0YS5pc19pbl91c2UgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAg
ICAgIGlmICghZGlkX2dldF92aWV3KSB7CisgICAgICAgICAgICBuZXdfdmlldyA9IHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoc2l6ZV9kaXJlY3Rvcnkp
OworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiR290
IGEgbmV3IHZpZXcgJXBcbiIsIG5ld192aWV3KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlKG5ld192
aWV3KSk7CisgICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1
c2l2ZShuZXdfdmlldykpIHsKKyAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoCisg
ICAgICAgICAgICAgICAgICAgICFwYXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVkKG5ld192aWV3
KQorICAgICAgICAgICAgICAgICAgICB8fCAhcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZShu
ZXdfdmlldyktPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbik7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmIChuZXdfdmlldykgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcCwgJXA6IEdvdCBmcm9tIGRpcmVjdG9yeSAo
JXUpLlxuIiwgY2FjaGVfbm9kZSwgYWxsb2NhdG9yLCBhbGxvY2F0b3ItPm9iamVjdF9zaXplKTsK
KyAgICAgICAgICAgICAgICBuZXdfdmlldyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfd2lsbF9zdGFy
dF9hbGxvY2F0aW5nKG5ld192aWV3LCBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgIHBhc19sb2coIkFuZCBhZnRl
ciB3aWxsX3N0YXJ0IGdvdCBhIG5ldyB2aWV3ICVwLCBwYWdlID0gJXAsIGJvdW5kYXJ5ID0gJXBc
biIsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfdmlldywKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2UobmV3X3ZpZXcpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9ib3VuZGFyeShuZXdf
dmlldykpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9maW5pc2hfcmVmaWxsX3dpdGhfYml0Zml0KGFsbG9jYXRvciwg
c2l6ZV9kaXJlY3RvcnksIG1hZ2F6aW5lKTsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9m
aW5pc2hfcmVmaWxsX3dpdGhfYml0Zml0KGFsbG9jYXRvciwgc2l6ZV9kaXJlY3RvcnkpOwogICAg
ICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coImluaXRpYWxpemVkIGJpdGZp
dCFcbiIpOwogICAgICAgICBkaWRfaW5pdGlhbGl6ZV9iaXRmaXQgPSB0cnVlOwotICAgICAgICBu
ZXdfdmlldyA9IE5VTEw7CiAgICAgfQogCi0gICAgbmV3X3BhZ2UgPSBOVUxMOwotICAgIAogICAg
IC8qIEF0IHRoaXMgcG9pbnQgd2UgbmVlZCB0byBnZXQgdGhlIHBhZ2UuIFdlIGNhbid0IGRvIHRo
YXQgZm9yIHByaW1vcmRpYWwgcGFydGlhbCB2aWV3cywKICAgICAgICB0aG91Z2guICovCiAgICAg
CkBAIC0xMDcwLDE0ICsxMTI3LDE0IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhf
a25vd25fY28KIAogICAgIFBBU19BU1NFUlQoZW5hYmxlX3NlZ3JlZ2F0ZWQpOwogCi0gICAgaWYg
KHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaChuZXdfdmlldykpIHsKKyAgICBp
ZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShuZXdfdmlldykpIHsKICAg
ICAgICAgZXhjbHVzaXZlID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKG5ld192
aWV3KTsKICAgICAgICAgbmV3X3BhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFy
eShleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnKTsKIAotICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfdG9fbWFnYXppbmVfd2hpbGVf
aW5lbGlnaWJsZSgKLSAgICAgICAgICAgIG5ld19wYWdlLCAmaGVsZF9sb2NrLCBtYWdhemluZSwg
cGFnZV9jb25maWcpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2Fu
ZF9yZWJpYXNfd2hpbGVfaW5lbGlnaWJsZSgKKyAgICAgICAgICAgIG5ld19wYWdlLCAmaGVsZF9s
b2NrLCBjYWNoZV9ub2RlLCBwYWdlX2NvbmZpZyk7CiAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX2lzaF92aWV3X2RpZF9zdGFydF9hbGxvY2F0aW5nKAorICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19kaWRfc3RhcnRfYWxsb2NhdGluZygKICAgICAgICAgICAg
IGV4Y2x1c2l2ZSwgbmV3X3ZpZXcsIHNpemVfZGlyZWN0b3J5LCBuZXdfcGFnZSwgJmhlbGRfbG9j
aywgcGFnZV9jb25maWcpOwogICAgICAgICBnb3RvIHByZXBhcmVfZXhjbHVzaXZlOwogICAgIH0K
QEAgLTExMDYsMTQgKzExNjMsNiBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tu
b3duX2NvCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2RpZF9zdGFydF9hbGxvY2F0
aW5nKHBhcnRpYWwsIHNoYXJlZCwgcGFnZV9jb25maWcpOwogICAgIGdvdG8gcHJlcGFyZV9wYXJ0
aWFsOwogICAgIAotcmVzdGFydF9leGNsdXNpdmU6Ci0gICAgaWYgKHZlcmJvc2UpCi0gICAgICAg
IHBhc19sb2coIlJlc3RhcnRpbmcgb24gc2FtZSBwYWdlIGFzIGJlZm9yZS5cbiIpOwotICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19tYWdhemluZV93aGls
ZV9pbmVsaWdpYmxlKAotICAgICAgICBuZXdfcGFnZSwgJmhlbGRfbG9jaywgbWFnYXppbmUsIHBh
Z2VfY29uZmlnKTsKLSAgICBuZXdfcGFnZS0+b3duZXIgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Fz
X2luZWxpZ2libGUobmV3X3ZpZXcpOwotICAgIG5ld19wYWdlLT5lbGlnaWJpbGl0eV9ub3RpZmlj
YXRpb25faGFzX2JlZW5fZGVmZXJyZWQgPSBmYWxzZTsKLSAgICAKIHByZXBhcmVfZXhjbHVzaXZl
OgogICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90b19hbGxvY2F0ZSgKICAgICAgICAg
YWxsb2NhdG9yLCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kLCBleGNsdXNpdmUs
IG5ld19wYWdlLCBzaXplX2RpcmVjdG9yeSwKQEAgLTExNzAsNyArMTIxOSw4IEBAIHBhc19sb2Nh
bF9hbGxvY2F0b3JfcmV0dXJuX21lbW9yeV90b19wYWcKICAgICBvYmplY3QgPSBkYXRhLT5wYWdl
X2JvdW5kYXJ5ICsgcGFzX3BhZ2VfYmFzZV9vYmplY3Rfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFy
eV9hdF9pbmRleCgKICAgICAgICAgKHVuc2lnbmVkKWluZGV4LmluZGV4LCBkYXRhLT5wYWdlX2Nv
bmZpZy5iYXNlKTsKIAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3Bh
Z2UoZGF0YS0+cGFnZSwgb2JqZWN0LCBkYXRhLT5wYWdlX2NvbmZpZyk7CisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZSgKKyAgICAgICAgZGF0YS0+cGFnZSwgb2Jq
ZWN0LCBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGUsIE5VTEwsIGRhdGEt
PnBhZ2VfY29uZmlnKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMTE3OSw3ICsxMjI5LDcg
QEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKIHBhc19sb2NhbF9hbGxvY2F0b3JfcmV0
dXJuX21lbW9yeV90b19wYWdlKHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcg
dmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2UqIHBhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnIHBhZ2VfY29uZmlnKQogewpAQCAtMTE5NCw4ICsxMjQ0LDYgQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZwogCiAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZp
Zy5iYXNlLmlzX2VuYWJsZWQpOwogCi0gICAgcGFnZS0+YXZvaWRfbGluZV9hbGxvY2F0b3IgPSB0
cnVlOwotCiAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBh
Z2VfY29uZmlnKSkKICAgICAgICAgcGFzX2xvY2tfYXNzZXJ0X2hlbGQocGFnZS0+bG9ja19wdHIp
OwogCkBAIC0xMjE4LDggKzEyNjYsMTAgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXR1cm5fbWVt
b3J5X3RvX3BhZwogICAgICAgICBiZWdpbiA9IGFsbG9jYXRvci0+cGF5bG9hZF9lbmQgLSBhbGxv
Y2F0b3ItPnJlbWFpbmluZzsKICAgICAgICAgZW5kID0gYWxsb2NhdG9yLT5wYXlsb2FkX2VuZDsK
ICAgICAgICAgCi0gICAgICAgIGZvciAob2JqZWN0ID0gYmVnaW47IG9iamVjdCA8IGVuZDsgb2Jq
ZWN0ICs9IG9iamVjdF9zaXplKQotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFs
bG9jYXRlX3dpdGhfcGFnZShwYWdlLCBvYmplY3QsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgZm9y
IChvYmplY3QgPSBiZWdpbjsgb2JqZWN0IDwgZW5kOyBvYmplY3QgKz0gb2JqZWN0X3NpemUpIHsK
KyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UoCisg
ICAgICAgICAgICAgICAgcGFnZSwgb2JqZWN0LCBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25f
ZGlyZWN0X21vZGUsIE5VTEwsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgfQogICAgIH0KICAgICAK
ICAgICBpZiAoYWxsb2NhdG9yLT5jdXJyZW50X29mZnNldCA9PSBhbGxvY2F0b3ItPmVuZF9vZmZz
ZXQpCkBAIC0xMzExLDE4ICsxMzYxLDI0IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9j
YXRlX3dpdGhfZnIKICAgICBpZiAoUEFTX1VOTElLRUxZKCFjdXJyZW50X3dvcmQpKSB7CiAgICAg
ICAgIHVuc2lnbmVkIGVuZF9vZmZzZXQ7CiAKKyAgICAgICAgZW5kX29mZnNldCA9IGFsbG9jYXRv
ci0+ZW5kX29mZnNldDsKKwogICAgICAgICBpZiAodXNlX2N1cnJlbnRfd29yZCkgewogICAgICAg
ICAgICAgaWYgKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQKICAgICAgICAgICAgICAgICAhPSBwYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0ZV9ub3JtYWwocGFnZV9jb25maWcua2lu
ZCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVf
ZmFpbHVyZSgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBjdXJyZW50X29mZnNldCA9IGFs
bG9jYXRvci0+Y3VycmVudF9vZmZzZXQ7CisgICAgICAgICAgICBpZiAoY3VycmVudF9vZmZzZXQg
Pj0gZW5kX29mZnNldCkKKyAgICAgICAgICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVz
dWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAgICAgICAgICAgICAKKyAgICAgICAgICAgIFBBU19URVNU
SU5HX0FTU0VSVChjdXJyZW50X29mZnNldCA8IFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTNjQocGFn
ZV9jb25maWcubnVtX2FsbG9jX2JpdHMpKTsKKworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgICAgICAgICAgcGFzX2xvZygiWmVyb2luZyAlcFxuIiwgYWxsb2NhdG9yLT5iaXRzICsg
Y3VycmVudF9vZmZzZXQpOwogICAgICAgICAgICAgYWxsb2NhdG9yLT5iaXRzW2N1cnJlbnRfb2Zm
c2V0XSA9IDA7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIGVuZF9vZmZzZXQgPSBhbGxv
Y2F0b3ItPmVuZF9vZmZzZXQ7Ci0KICAgICAgICAgZG8gewogICAgICAgICAgICAgKytjdXJyZW50
X29mZnNldDsKICAgICAgICAgICAgIHBhZ2VfaXNoICs9IDY0IDw8IHBhZ2VfY29uZmlnLmJhc2Uu
bWluX2FsaWduX3NoaWZ0OwpAQCAtMTM2OSw3ICsxNDI1LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGVfd2l0aF9mcgogICAgICAgICBwYXNfbG9nKAogICAgICAgICAgICAgIiVw
KCVwKTogUmV0dXJuaW5nIHJlc3VsdCB1c2luZyBmcmVlIGJpdHM6ICVwLlxuIiwKICAgICAgICAg
ICAgIGFsbG9jYXRvciwKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2Jh
bF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpLAorICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KSwKICAgICAgICAg
ICAgICh2b2lkKilyZXN1bHQpOwogICAgIH0KICAgICAKQEAgLTEzOTQsNyArMTQ1MCwxMSBAQCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfCiAgICAgCiAgICAgaWYgKHJl
bWFpbmluZykgewogICAgICAgICB1aW50cHRyX3QgcmVzdWx0OworCisgICAgICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICAgICAgcGFzX2xvZygicGF5bG9hZF9lbmQgPSAlcFxuIiwgYWxsb2NhdG9y
LT5wYXlsb2FkX2VuZCk7CiAgICAgICAgIAorICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoYWxs
b2NhdG9yLT5wYXlsb2FkX2VuZCk7CiAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChyZW1haW5p
bmcgLSBvYmplY3Rfc2l6ZSA8IGFsbG9jYXRvci0+cmVtYWluaW5nKTsKICAgICAgICAgCiAgICAg
ICAgIC8qIFRoaXMgaXMgdGhlIGZhc3Rlc3QgZmFzdCBwYXRoIGZvciBhbGxvY2F0aW9uLiBJdCB3
aWxsIGhhcHBlbiBpZjoKQEAgLTE0NTgsMTYgKzE1MTgsMTcgQEAgc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHBhc19hbGxvY2F0aW9uXwogcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVf
c21hbGxfc2VncmVnYXRlZF9zbG93KAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRv
ciwKICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAotICAgIHBhc19hbGxvY2F0b3JfY291bnRz
KiBjb3VudHMpCisgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cywKKyAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0ZXIpCiB7CiAgICAgcGFzX2FsbG9jYXRp
b25fcmVzdWx0IHJlc3VsdDsKIAogICAgIHJlc3VsdCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5
X2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfc2xvd19pbXBsKGFsbG9jYXRvciwgY29uZmlnLCBj
b3VudHMpOwogCiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgYWxsb2NhdG9yLT5pc19p
bl91c2UgPSBmYWxzZTsKKyAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9
IGZhbHNlOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gcmVzdWx0X2ZpbHRlcihy
ZXN1bHQpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Zhc3RfcGF0aF9hbGxv
Y2F0aW9uX3Jlc3VsdApAQCAtMTU5NCw3ICsxNjU1LDggQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGVfc2xvdyhwYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3Qgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZV90IGFsaWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2hlYXBfY29uZmlnIGNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciBy
ZXN1bHRfZmlsdGVyKQogewogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAKQEAg
LTE2MDIsOSArMTY2NCw0NyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbG93
KHBhCiAgICAgICAgIGFsbG9jYXRvciwgc2l6ZSwgYWxpZ25tZW50LCBjb25maWcsIGNvdW50cyk7
CiAKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICBhbGxvY2F0b3ItPmlzX2luX3VzZSA9
IGZhbHNlOworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gZmFsc2U7
CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiByZXN1bHRfZmlsdGVyKHJlc3VsdCk7
Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKK3Bh
c19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX2lubGluZV9vbmx5KHBhc19sb2NhbF9hbGxv
Y2F0b3IqIGFsbG9jYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9m
aWx0ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAg
ICBwYXNfbG9nKCJBbGxvY2F0b3IgJXAgKCVzKSBhbGxvY2F0aW5nIGlubGluZSBvbmx5LlxuIiwK
KyAgICAgICAgICAgICAgICBhbGxvY2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tp
bmRfZ2V0X3N0cmluZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSk7CisgICAgfQorICAgIAorICAg
IGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gdHJ1ZTsKKyAgICBwYXNfY29t
cGlsZXJfZmVuY2UoKTsKKworICAgIHJlc3VsdCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2Fs
bG9jYXRlX2lubGluZV9jYXNlcyhhbGxvY2F0b3IsIGNvbmZpZyk7CisgICAgaWYgKHJlc3VsdC5k
aWRfc3VjY2VlZCkgeworICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKyAgICAgICAgYWxs
b2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSBmYWxzZTsKKyAgICAgICAgCisgICAg
ICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBwYXNfbG9nKCJBbGxvY2F0b3IgJXAgKCVz
KSBhbGxvY2F0ZWQgJXAgKGlubGluZSBjYXNlcykuXG4iLAorICAgICAgICAgICAgICAgICAgICBh
bGxvY2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhhbGxv
Y2F0b3ItPmNvbmZpZ19raW5kKSwKKyAgICAgICAgICAgICAgICAgICAgKHZvaWQqKXJlc3VsdC5i
ZWdpbik7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgcmV0dXJuIHJlc3VsdF9maWx0ZXIoCisg
ICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJv
X21vZGUocmVzdWx0LmJlZ2luLCByZXN1bHQuemVyb19tb2RlKSk7CisgICAgfQorCisgICAgcGFz
X2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91
c2UgPSBmYWxzZTsKKworICAgIC8qIE5PVEU6IEl0J3MgaW50ZW50aW9uYWwgdGhhdCB3ZSBvbmx5
IGFwcGx5IHRoZSByZXN1bHQgZmlsdGVyIG9uIHRoZSBzdWNjZXNzIGNhc2UuICovCisgICAgcmV0
dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogfQogCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CkBAIC0xNjEzLDEyICsxNzEz
LDEzIEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19sb2MKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHNpemVfdGh1bmtfYXJnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9m
aWx0ZXIgcmVzdWx0X2ZpbHRlcikKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKIAotICAgIFBBU19URVNU
SU5HX0FTU0VSVCghYWxsb2NhdG9yLT5pc19pbl91c2UpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VCghYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOwogCiAgICAgaWYgKHZlcmJv
c2UpIHsKICAgICAgICAgcGFzX2xvZygiQWxsb2NhdG9yICVwICglcykgYWxsb2NhdGluZyBzaXpl
ID0gJXp1LCBhbGlnbm1lbnQgPSAlenUuXG4iLApAQCAtMTYyNiwxMyArMTcyNywxMyBAQCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShwYXNfbG9jCiAgICAgICAgICAgICAgICAgc2l6
ZV90aHVuayhzaXplX3RodW5rX2FyZyksIGFsaWdubWVudCk7CiAgICAgfQogICAgIAotICAgIGFs
bG9jYXRvci0+aXNfaW5fdXNlID0gdHJ1ZTsKKyAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRh
LmlzX2luX3VzZSA9IHRydWU7CiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAKICAgICByZXN1
bHQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfY2FzZXMoYWxsb2Nh
dG9yLCBjb25maWcpOwogICAgIGlmIChyZXN1bHQuZGlkX3N1Y2NlZWQpIHsKICAgICAgICAgcGFz
X2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgICAgIGFsbG9jYXRvci0+aXNfaW5fdXNlID0gZmFsc2U7
CisgICAgICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gZmFsc2U7CiAg
ICAgICAgIAogICAgICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICAgICAgcGFzX2xvZygiQWxs
b2NhdG9yICVwICglcykgYWxsb2NhdGVkICVwIChpbmxpbmUgY2FzZXMpLlxuIiwKQEAgLTE2NDAs
NyArMTc0MSw4IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19sb2MKICAg
ICAgICAgICAgICAgICAgICAgKHZvaWQqKXJlc3VsdC5iZWdpbik7CiAgICAgICAgIH0KICAgICAK
LSAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRo
X3plcm9fbW9kZShyZXN1bHQuYmVnaW4sIHJlc3VsdC56ZXJvX21vZGUpOworICAgICAgICByZXR1
cm4gcmVzdWx0X2ZpbHRlcigKKyAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVh
dGVfc3VjY2Vzc193aXRoX3plcm9fbW9kZShyZXN1bHQuYmVnaW4sIHJlc3VsdC56ZXJvX21vZGUp
KTsKICAgICB9CiAKICAgICBpZiAoY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2Uu
aXNfZW5hYmxlZCAmJgpAQCAtMTY1MywzMiArMTc1NSwxOCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZShwYXNfbG9jCiAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFz
X2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9nZXRfc3RyaW5nKGFsbG9jYXRvci0+Y29uZmln
X2tpbmQpKTsKICAgICAgICAgfQogCi0gICAgICAgIHJldHVybiBjb25maWcuc3BlY2lhbGl6ZWRf
bG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zZWdyZWdhdGVkX3Nsb3coCi0gICAg
ICAgICAgICBhbGxvY2F0b3IsIGNvdW50cyk7CisgICAgICAgIHJlc3VsdCA9IGNvbmZpZy5zcGVj
aWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfc2xv
dygKKyAgICAgICAgICAgIGFsbG9jYXRvciwgY291bnRzLCByZXN1bHRfZmlsdGVyKTsKKyAgICAg
ICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJpbiBzbWFsbCBzZWdyZWdhdGVk
IHNsb3cgcmV0dXJuIC0gcmVzdWx0LmJlZ2luID0gJXBcbiIsICh2b2lkKilyZXN1bHQuYmVnaW4p
OworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIHJlc3VsdCA9IGNvbmZpZy5z
cGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3coCi0gICAgICAgIGFs
bG9jYXRvciwgc2l6ZV90aHVuayhzaXplX3RodW5rX2FyZyksIGFsaWdubWVudCwgY291bnRzKTsK
LSAgICBpZiAocmVzdWx0LmRpZF9zdWNjZWVkKSB7Ci0gICAgICAgIHBhc19jb21waWxlcl9mZW5j
ZSgpOwotCi0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCJBbGxv
Y2F0b3IgJXAgKCVzKSBhbGxvY2F0ZWQgJXAgKHNsb3cpLlxuIiwKLSAgICAgICAgICAgICAgICAg
ICAgYWxsb2NhdG9yLCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmco
YWxsb2NhdG9yLT5jb25maWdfa2luZCksCi0gICAgICAgICAgICAgICAgICAgICh2b2lkKilyZXN1
bHQuYmVnaW4pOwotICAgICAgICB9Ci0gICAgCi0gICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUocmVzdWx0LmJlZ2luLCByZXN1
bHQuemVyb19tb2RlKTsKLSAgICB9Ci0KLSAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICAK
LSAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBwYXNfbG9nKCJBbGxvY2F0b3IgJXAgKCVzKSBm
YWlsZWQuXG4iLAotICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFzX2xvY2FsX2FsbG9jYXRv
cl9jb25maWdfa2luZF9nZXRfc3RyaW5nKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQpKTsKLSAgICB9
Ci0gICAgCi0gICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgp
OworICAgICAgICBhbGxvY2F0b3IsIHNpemVfdGh1bmsoc2l6ZV90aHVua19hcmcpLCBhbGlnbm1l
bnQsIGNvdW50cywgcmVzdWx0X2ZpbHRlcik7CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBh
c19sb2coImluIGdlbmVyaWMgcmV0dXJuIC0gcmVzdWx0LmJlZ2luID0gJXBcbiIsICh2b2lkKily
ZXN1bHQuYmVnaW4pOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIFBBU19FTkRfRVhURVJOX0M7
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2Nh
dG9yX2tpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9LSU5ECisjZGVmaW5l
IFBBU19MT0NBTF9BTExPQ0FUT1JfS0lORAorCisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisKK1BB
U19CRUdJTl9FWFRFUk5fQzsKKworZW51bSBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQgeworICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQsCisgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl92aWV3X2NhY2hlX2tpbmQKK307CisKK3R5cGVkZWYgZW51bSBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2tpbmQgcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kOworCitzdGF0aWMgaW5saW5lIGNvbnN0
IGNoYXIqIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZF9nZXRfc3RyaW5nKHBhc19sb2NhbF9hbGxv
Y2F0b3Jfa2luZCBraW5kKQoreworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZDoKKyAgICAgICAgcmV0dXJuICJhbGxvY2F0b3Ii
OworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tpbmQ6CisgICAgICAg
IHJldHVybiAidmlld19jYWNoZSI7CisgICAgfQorICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90
IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworUEFTX0VORF9FWFRFUk5fQzsK
KworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfS0lORCAqLworCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxs
b2NhdG9yX2xpbmUuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmgJKG5vbmV4aXN0ZW50KQpAQCAt
MSwxMTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaWZuZGVmIFBBU19MT0NBTF9BTExPQ0FUT1JfTElORV9ICi0jZGVmaW5lIFBBU19MT0NB
TF9BTExPQ0FUT1JfTElORV9ICi0KLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Zy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9y
X2xpbmU7Ci10eXBlZGVmIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9saW5lOwotCi1zdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lIHsKLSAg
ICB1aW50MTZfdCBlbmNvZGVkX3JlbWFpbmluZzsKLSAgICB1aW50MTZfdCBlbmNvZGVkX3BheWxv
YWRfZW5kX2RlbHRhOwotfTsKLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9saW5lX2ZpdHNfd2l0aG91dF9zaGlmdCgKLSAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICBzaXplX3QgbWF4X3BhZ2Vfb2Zmc2V0
OwotICAgIHNpemVfdCBzaGlmdGVkOwotCi0gICAgbWF4X3BhZ2Vfb2Zmc2V0ID0gcGFnZV9jb25m
aWcuYmFzZS5wYWdlX3NpemUgLSAxOwotCi0gICAgaWYgKCh1aW50MTZfdCltYXhfcGFnZV9vZmZz
ZXQgPT0gbWF4X3BhZ2Vfb2Zmc2V0KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHNoaWZ0
ZWQgPSBtYXhfcGFnZV9vZmZzZXQgPj4gcGFnZV9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQ7
Ci0KLSAgICBQQVNfQVNTRVJUKCh1aW50MTZfdClzaGlmdGVkID09IHNoaWZ0ZWQpOwotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdCBwYXNfbG9j
YWxfYWxsb2NhdG9yX2xpbmVfZGVjb2RlKHVpbnQxNl90IHZhbHVlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAgIGlmIChwYXNfbG9jYWxfYWxs
b2NhdG9yX2xpbmVfZml0c193aXRob3V0X3NoaWZ0KHBhZ2VfY29uZmlnKSkKLSAgICAgICAgcmV0
dXJuIHZhbHVlOwotICAgIHJldHVybiAoc2l6ZV90KXZhbHVlIDw8IHBhZ2VfY29uZmlnLmJhc2Uu
bWluX2FsaWduX3NoaWZ0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdWludDE2X3Qg
cGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX2VuY29kZShzaXplX3QgdmFsdWUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICB1aW50MTZfdCBl
bmNvZGVkOwotICAgIAotICAgIGlmIChwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfZml0c193aXRo
b3V0X3NoaWZ0KHBhZ2VfY29uZmlnKSkKLSAgICAgICAgZW5jb2RlZCA9ICh1aW50MTZfdCl2YWx1
ZTsKLSAgICBlbHNlCi0gICAgICAgIGVuY29kZWQgPSAodWludDE2X3QpKHZhbHVlID4+IHBhZ2Vf
Y29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0KTsKLQotICAgIFBBU19URVNUSU5HX0FTU0VSVChw
YXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfZGVjb2RlKGVuY29kZWQsIHBhZ2VfY29uZmlnKSA9PSB2
YWx1ZSk7Ci0KLSAgICByZXR1cm4gZW5jb2RlZDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHNpemVfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfcmVtYWluaW5nKAotICAgIHBhc19s
b2NhbF9hbGxvY2F0b3JfbGluZSBsaW5lLAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
IHBhZ2VfY29uZmlnKQotewotICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfZGVj
b2RlKGxpbmUuZW5jb2RlZF9yZW1haW5pbmcsIHBhZ2VfY29uZmlnKTsKLX0KLQotc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX3NldF9yZW1haW5p
bmcoCi0gICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lKiBsaW5lLAotICAgIHNpemVfdCByZW1h
aW5pbmcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0g
ICAgbGluZS0+ZW5jb2RlZF9yZW1haW5pbmcgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfZW5j
b2RlKHJlbWFpbmluZywgcGFnZV9jb25maWcpOwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgc2l6ZV90IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9wYXlsb2FkX2VuZF9kZWx0YSgKLSAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUgbGluZSwKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9s
aW5lX2RlY29kZShsaW5lLmVuY29kZWRfcGF5bG9hZF9lbmRfZGVsdGEsIHBhZ2VfY29uZmlnKTsK
LX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9s
aW5lX3NldF9wYXlsb2FkX2VuZF9kZWx0YSgKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUq
IGxpbmUsCi0gICAgc2l6ZV90IHBheWxvYWRfZW5kX2RlbHRhLAotICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAgIGxpbmUtPmVuY29kZWRfcGF5bG9hZF9l
bmRfZGVsdGEgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfZW5jb2RlKHBheWxvYWRfZW5kX2Rl
bHRhLCBwYWdlX2NvbmZpZyk7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQ
QVNfTE9DQUxfQUxMT0NBVE9SX0xJTkVfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfcmVz
dWx0LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE1
ICszMCwxMyBAQAogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0cnVjdCBwYXNfbG9jYWxfYWxs
b2NhdG9yOwogc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0OwotdHlwZWRlZiBzdHJ1
Y3QgcGFzX2xvY2FsX2FsbG9jYXRvciBwYXNfbG9jYWxfYWxsb2NhdG9yOwogdHlwZWRlZiBzdHJ1
Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQ7
CiAKIC8qIFRoaXMgZXhpc3RzIHRvIGFsbG93IGp1bXAtdGhyZWFkaW5nIG9mIHN1Y2Nlc3MuICov
CiBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgewogICAgIGJvb2wgZGlkX3N1Y2Nl
ZWQ7Ci0gICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOworICAgIHZvaWQqIGFsbG9j
YXRvcjsgLyogQ291bGQgcmVhbGx5IGJlIGEgbG9jYWxfYWxsb2NhdG9yIG9yIGEgbG9jYWxfdmll
d19jYWNoZS4gKi8KIH07CiAKIHN0YXRpYyBpbmxpbmUgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1
bHQgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUodm9pZCkKQEAgLTQ5
LDcgKzQ3LDcgQEAgc3RhdGljIGlubGluZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdAogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgcGFzX2xvY2FsX2FsbG9jYXRvcl9y
ZXN1bHQgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MocGFzX2xvY2Fs
X2FsbG9jYXRvciogYWxsb2NhdG9yKQorc3RhdGljIGlubGluZSBwYXNfbG9jYWxfYWxsb2NhdG9y
X3Jlc3VsdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzcyh2b2lkKiBh
bGxvY2F0b3IpCiB7CiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcmVzdWx0OwogICAg
IHJlc3VsdC5kaWRfc3VjY2VlZCA9IHRydWU7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRv
cl9zY2F2ZW5nZXJfZGF0YS5jCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisKKyNpZiBMSUJQQVNfRU5B
QkxFRAorCisjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oIgor
CisjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvci5oIgorI2luY2x1ZGUgInBhc19sb2NhbF92
aWV3X2NhY2hlLmgiCisKK3VpbnQ4X3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9j
b3VudF9mb3Jfc3VzcGVuZCA9IDU7CisKK2Jvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5n
ZXJfZGF0YV9pc19hY3RpdmUocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0
YSkKK3sKKyAgICBzd2l0Y2ggKGRhdGEtPmtpbmQpIHsKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxv
Y2F0b3JfYWxsb2NhdG9yX2tpbmQ6CisgICAgICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9y
X2lzX2FjdGl2ZSgocGFzX2xvY2FsX2FsbG9jYXRvciopZGF0YSk7CisgICAgY2FzZSBwYXNfbG9j
YWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZDoKKyAgICAgICAgcmV0dXJuICFwYXNfbG9jYWxf
dmlld19jYWNoZV9pc19lbXB0eSgocGFzX2xvY2FsX3ZpZXdfY2FjaGUqKWRhdGEpOworICAgIH0K
KyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcCgK
KyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhLAorICAgIHBhc19s
b2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSwKKyAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVh
cF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAgICBzd2l0Y2ggKGRhdGEtPmtpbmQpIHsKKyAgICBjYXNl
IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQ6CisgICAgICAgIHJldHVybiBwYXNf
bG9jYWxfYWxsb2NhdG9yX3N0b3AoKHBhc19sb2NhbF9hbGxvY2F0b3IqKWRhdGEsIHBhZ2VfbG9j
a19tb2RlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0
b3Jfdmlld19jYWNoZV9raW5kOgorICAgICAgICByZXR1cm4gcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
c3RvcCgocGFzX2xvY2FsX3ZpZXdfY2FjaGUqKWRhdGEsIHBhZ2VfbG9ja19tb2RlKTsKKyAgICB9
CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCisKKwpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaAkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19MT0NBTF9BTExPQ0FU
T1JfU0NBVkVOR0VSX0RBVEFfSAorI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX1NDQVZFTkdF
Ul9EQVRBX0gKKworI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oIgorI2luY2x1
ZGUgInBhc19sb2NrLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGE7Cit0eXBlZGVmIHN0cnVjdCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3NjYXZlbmdlcl9kYXRhIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGE7
CisKKy8qIFRoaXMgc2hvdWxkIGp1c3QgYmUgMzItYml0LiAqLworc3RydWN0IHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEgeworICAgIGJvb2wgaXNfaW5fdXNlOworICAgIHVpbnQ4
X3Qgc2hvdWxkX3N0b3BfY291bnQ7CisgICAgYm9vbCBkaXJ0eTsKKyAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX2tpbmQga2luZCA6IDg7Cit9OworCisjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1Jf
U0NBVkVOR0VSX0RBVEFfSU5JVElBTElaRVIocGFzc2VkX2tpbmQpIFwKKyAgICAoKHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEpeyBcCisgICAgICAgICAuaXNfaW5fdXNlID0gZmFs
c2UsIFwKKyAgICAgICAgIC5zaG91bGRfc3RvcF9jb3VudCA9IDAsIFwKKyAgICAgICAgIC5kaXJ0
eSA9IGZhbHNlLCBcCisgICAgICAgICAua2luZCA9IChwYXNzZWRfa2luZCkgXAorICAgICB9KQor
CitQQVNfQVBJIGV4dGVybiB1aW50OF90IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hvdWxkX3N0b3Bf
Y291bnRfZm9yX3N1c3BlbmQ7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhX2NvbnN0cnVjdChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhKiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCBraW5kKQorewor
ICAgICpkYXRhID0gUEFTX0xPQ0FMX0FMTE9DQVRPUl9TQ0FWRU5HRVJfREFUQV9JTklUSUFMSVpF
UihraW5kKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3JfYWxsb2NhdGlvbigKKyAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhKQoreworICAgIGRhdGEtPmRpcnR5ID0gdHJ1ZTsKKyAg
ICBkYXRhLT5zaG91bGRfc3RvcF9jb3VudCA9IDA7Cit9CisKK1BBU19BUEkgYm9vbCBwYXNfbG9j
YWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2ZShwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhKiBkYXRhKTsKKworUEFTX0FQSSBib29sIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcCgKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhKiBkYXRhLAorICAgIHBhc19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSwKKyAg
ICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKK1BBU19FTkRfRVhU
RVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9SX1NDQVZFTkdFUl9EQVRBX0gg
Ki8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3Zp
ZXdfY2FjaGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfdmlld19jYWNoZS5jCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19FTkFCTEVECisK
KyNpbmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNoZS5oIgorCisjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X3BhZ2VfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
LmgiCisKK3ZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfY29uc3RydWN0KHBhc19sb2NhbF92aWV3
X2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4
X3QgY2FwYWNpdHkpCit7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9j
b25zdHJ1Y3QoCisgICAgICAgICZjYWNoZS0+c2NhdmVuZ2VyX2RhdGEsIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfdmlld19jYWNoZV9raW5kKTsKKyAgICAKKyAgICBjYWNoZS0+Y2FwYWNpdHkgPSBjYXBh
Y2l0eTsKKyAgICBjYWNoZS0+Ym90dG9tX2luZGV4ID0gMDsKKyAgICBjYWNoZS0+dG9wX2luZGV4
ID0gMDsKKyAgICBjYWNoZS0+aXNfZnVsbCA9IGZhbHNlOworCisgICAgaWYgKFBBU19FTkFCTEVf
VEVTVElORykgeworICAgICAgICB1aW50OF90IGluZGV4OworCisgICAgICAgIGZvciAoaW5kZXgg
PSBjYXBhY2l0eTsgaW5kZXgtLTspCisgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X3B0cl9zdG9yZShjYWNoZS0+dmlld3MgKyBpbmRleCwgTlVMTCk7Cisg
ICAgfQorfQorCit2b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX21vdmUocGFzX2xvY2FsX3ZpZXdf
Y2FjaGUqIGRlc3RpbmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19s
b2NhbF92aWV3X2NhY2hlKiBzb3VyY2UpCit7CisgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBzb3Vy
Y2UsIFBBU19MT0NBTF9WSUVXX0NBQ0hFX1NJWkUoc291cmNlLT5jYXBhY2l0eSkpOworfQorCitz
dGF0aWMgYm9vbCBzdG9wX2ltcGwocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLAorICAgICAg
ICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSkKK3sKKyAg
ICBwYXNfbG9jayogaGVsZF9sb2NrOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWc7
CisgICAgCisgICAgZGlyZWN0b3J5ID0gTlVMTDsKKyAgICBwYWdlX2NvbmZpZyA9IChwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyl7IH07CisgICAgaGVsZF9sb2NrID0gTlVMTDsKKyAgICAKKyAg
ICB3aGlsZSAoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2VtcHR5KGNhY2hlKSkgeworICAgICAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogY2FjaGVkX3ZpZXc7CisgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7CisgICAgICAgIGJvb2wgc2hvdWxkX25vdGlmeV9lbGln
aWJpbGl0eTsKKyAgICAgICAgCisgICAgICAgIGNhY2hlZF92aWV3ID0gcGFzX2xvY2FsX3ZpZXdf
Y2FjaGVfcG9wKGNhY2hlKTsKKyAgICAgICAgCisgICAgICAgIGlmIChkaXJlY3RvcnkpIHsKKyAg
ICAgICAgICAgIFBBU19BU1NFUlQoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmY2FjaGVkX3ZpZXctPmRpcmVj
dG9yeSkKKyAgICAgICAgICAgICAgICA9PSBkaXJlY3RvcnkpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmY2FjaGVkX3ZpZXctPmRpcmVjdG9yeSk7CisgICAgICAg
ICAgICBwYWdlX2NvbmZpZyA9ICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9j
b25maWcoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkoY2Fj
aGVkX3ZpZXctPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgCisgICAgICAg
IGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193aXRoX21vZGUocGFnZSwgJmhl
bGRfbG9jaywgcGFnZV9sb2NrX21vZGUsIHBhZ2VfY29uZmlnKSkgeworICAgICAgICAgICAgUEFT
X0FTU0VSVCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbChjYWNoZSkpOworICAgICAgICAg
ICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfcHVzaChjYWNoZSwgY2FjaGVkX3ZpZXcpOworICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBzaG91bGRf
bm90aWZ5X2VsaWdpYmlsaXR5ID0gdHJ1ZTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZygKKyAgICAgICAgICAgIGNhY2hlZF92aWV3LCBk
aXJlY3RvcnksIHBhZ2UsIHBhZ2VfY29uZmlnLCBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5KTsK
KyAgICB9CisKKyAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKK2Jvb2wgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcChwYXNfbG9jYWxf
dmlld19jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xv
Y2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlKQoreworICAgIGJvb2wgcmVzdWx0OworCisgICAg
UEFTX0FTU0VSVCghY2FjaGUtPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7CisKKyAgICBjYWNo
ZS0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gdHJ1ZTsKKyAgICBwYXNfY29tcGlsZXJfZmVu
Y2UoKTsKKworICAgIHJlc3VsdCA9IHN0b3BfaW1wbChjYWNoZSwgcGFnZV9sb2NrX21vZGUpOwor
CisgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgY2FjaGUtPnNjYXZlbmdlcl9kYXRhLnNob3VsZF9z
dG9wX2NvdW50ID0gMDsKKworICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworICAgIGNhY2hlLT5z
Y2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSBmYWxzZTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKKyNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2Fs
X3ZpZXdfY2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19MT0NBTF9W
SUVXX0NBQ0hFX0gKKyNkZWZpbmUgUEFTX0xPQ0FMX1ZJRVdfQ0FDSEVfSAorCisjaW5jbHVkZSAi
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCIKKyNpbmNsdWRlICJw
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgiCisjaW5jbHVkZSAicGFzX2xvY2su
aCIKKyNpbmNsdWRlICJwYXNfbG9nLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0
IHBhc19sb2NhbF92aWV3X2NhY2hlOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2Fj
aGUgcGFzX2xvY2FsX3ZpZXdfY2FjaGU7CisKK3N0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZSB7
CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSBzY2F2ZW5nZXJfZGF0YTsK
KyAgICB1aW50OF90IGNhcGFjaXR5OworICAgIC8qIGJvdHRvbV9pbmRleCBhbmQgdG9wX2luZGV4
IG11c3QgYmUgPCBjYXBhY2l0eS4gKi8KKyAgICB1aW50OF90IGJvdHRvbV9pbmRleDsKKyAgICB1
aW50OF90IHRvcF9pbmRleDsKKyAgICBib29sIGlzX2Z1bGw7CisgICAgcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIgdmlld3NbMV07Cit9OworCisjZGVmaW5lIFBBU19M
T0NBTF9WSUVXX0NBQ0hFX1NJWkUoY2FwYWNpdHkpIFwKKyAgICBQQVNfUk9VTkRfVVBfVE9fUE9X
RVJfT0ZfMigoUEFTX09GRlNFVE9GKHBhc19sb2NhbF92aWV3X2NhY2hlLCB2aWV3cykgKyBcCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyKSAqIChjYXBhY2l0eSkpLCBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZW9mKHVpbnQ2NF90KSkKKworUEFTX0FQSSB2b2lkIHBhc19sb2Nh
bF92aWV3X2NhY2hlX2NvbnN0cnVjdChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgY2FwYWNpdHkp
OworCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkocGFz
X2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQoreworICAgIFBBU19URVNUSU5HX0FTU0VSVChjYWNo
ZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKKyAgICBQQVNfVEVTVElOR19BU1NF
UlQoY2FjaGUtPnRvcF9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKCFjYWNoZS0+aXNfZnVsbCB8fCBjYWNoZS0+Ym90dG9tX2luZGV4ID09IGNhY2hlLT50
b3BfaW5kZXgpOworCisgICAgcmV0dXJuIGNhY2hlLT50b3BfaW5kZXggPT0gY2FjaGUtPmJvdHRv
bV9pbmRleCAmJiAhY2FjaGUtPmlzX2Z1bGw7Cit9CisKK3N0YXRpYyBpbmxpbmUgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19sb2NhbF92aWV3X2NhY2hlX3BvcChwYXNfbG9jYWxf
dmlld19jYWNoZSogY2FjaGUpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZh
bHNlOworICAgIHN0YXRpYyBjb25zdCBib29sIHRha2VfZmlyc3QgPSB0cnVlOyAvKiBJZiBzZXR0
aW5nIHRoaXMgdG8gZmFsc2Ugd2FzIHByb2ZpdGFibGUsIHRoZW4gdGhpcyB3b3VsZAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSB3cml0dGVuIGFzIGEgc3Rh
Y2suIEkga2VlcCB0aGlzIG9wdGlvbiBoZXJlIGp1c3Qgc28KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgSSBjYW4gb2NjYXNpb25hbGx5IHRlc3QgaWYgaXQgbWF0
dGVycy4gKi8KKyAgICAKKyAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogcmVzdWx0
OworICAgIHVpbnQ4X3QgcG9wX2luZGV4OworCisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hl
LT5ib3R0b21faW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VChjYWNoZS0+dG9wX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKKyAgICBQQVNfVEVTVElOR19B
U1NFUlQoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2VtcHR5KGNhY2hlKSk7CisKKyAgICBpZiAo
dGFrZV9maXJzdCkgeworICAgICAgICB1aW50OF90IGJvdHRvbV9pbmRleDsKKyAgICAgICAgdWlu
dDhfdCBuZXh0X2JvdHRvbV9pbmRleDsKKworICAgICAgICBib3R0b21faW5kZXggPSBjYWNoZS0+
Ym90dG9tX2luZGV4OworICAgICAgICBuZXh0X2JvdHRvbV9pbmRleCA9IGJvdHRvbV9pbmRleCAr
IDE7CisgICAgICAgIGlmIChuZXh0X2JvdHRvbV9pbmRleCA+PSBjYWNoZS0+Y2FwYWNpdHkpIHsK
KyAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChuZXh0X2JvdHRvbV9pbmRleCA9PSBjYWNo
ZS0+Y2FwYWNpdHkpOworICAgICAgICAgICAgbmV4dF9ib3R0b21faW5kZXggPSAwOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBwb3BfaW5kZXggPSBib3R0b21faW5kZXg7CisKKyAgICAg
ICAgY2FjaGUtPmJvdHRvbV9pbmRleCA9IG5leHRfYm90dG9tX2luZGV4OworICAgIH0gZWxzZSB7
CisgICAgICAgIHVpbnQ4X3QgdG9wX2luZGV4OworICAgICAgICAKKyAgICAgICAgdG9wX2luZGV4
ID0gY2FjaGUtPnRvcF9pbmRleDsKKyAgICAgICAgCisgICAgICAgIGlmICghdG9wX2luZGV4KQor
ICAgICAgICAgICAgdG9wX2luZGV4ID0gY2FjaGUtPmNhcGFjaXR5IC0gMTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdG9wX2luZGV4LS07CisKKyAgICAgICAgcG9wX2luZGV4ID0gdG9wX2lu
ZGV4OworICAgICAgICAKKyAgICAgICAgY2FjaGUtPnRvcF9pbmRleCA9IHRvcF9pbmRleDsKKyAg
ICB9CisgICAgCisgICAgcmVzdWx0ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19wdHJfbG9hZF9ub25fbnVsbChjYWNoZS0+dmlld3MgKyBwb3BfaW5kZXgpOworICAgIAor
ICAgIGlmIChQQVNfRU5BQkxFX1RFU1RJTkcpCisgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKGNhY2hlLT52aWV3cyArIHBvcF9pbmRleCwgTlVM
TCk7CisgICAgCisgICAgY2FjaGUtPmlzX2Z1bGwgPSBmYWxzZTsKKyAgICAKKyAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgcGFzX2xvZygiJXA6IHBvcHBlZCAlcC5cbiIsIGNhY2hlLCByZXN1bHQp
OworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBib29sIHBhc19sb2Nh
bF92aWV3X2NhY2hlX2lzX2Z1bGwocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQoreworICAg
IHJldHVybiBjYWNoZS0+aXNfZnVsbDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2Nh
bF92aWV3X2NhY2hlX3B1c2goCisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLAorICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3KQoreworICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICB1aW50OF90IHRvcF9pbmRleDsKKyAg
ICB1aW50OF90IG5leHRfdG9wX2luZGV4OworCisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hl
LT5ib3R0b21faW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VChjYWNoZS0+dG9wX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKKyAgICBQQVNfVEVTVElOR19B
U1NFUlQoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwoY2FjaGUpKTsKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQodmlldyk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygi
JXA6IHB1c2hpbmcgJXAuXG4iLCBjYWNoZSwgdmlldyk7CisKKyAgICB0b3BfaW5kZXggPSBjYWNo
ZS0+dG9wX2luZGV4OworICAgIG5leHRfdG9wX2luZGV4ID0gdG9wX2luZGV4ICsgMTsKKyAgICBp
ZiAobmV4dF90b3BfaW5kZXggPj0gY2FjaGUtPmNhcGFjaXR5KSB7CisgICAgICAgIFBBU19URVNU
SU5HX0FTU0VSVChuZXh0X3RvcF9pbmRleCA9PSBjYWNoZS0+Y2FwYWNpdHkpOworICAgICAgICBu
ZXh0X3RvcF9pbmRleCA9IDA7CisgICAgfQorCisgICAgaWYgKG5leHRfdG9wX2luZGV4ID09IGNh
Y2hlLT5ib3R0b21faW5kZXgpCisgICAgICAgIGNhY2hlLT5pc19mdWxsID0gdHJ1ZTsKKyAgICAK
KyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19wdHJfaXNfbnVsbChjYWNoZS0+dmlld3MgKyB0b3BfaW5kZXgpKTsKKworICAgIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKGNhY2hlLT52aWV3cyAr
IHRvcF9pbmRleCwgdmlldyk7CisgICAgY2FjaGUtPnRvcF9pbmRleCA9IG5leHRfdG9wX2luZGV4
OworfQorCitQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbW92ZShwYXNfbG9jYWxf
dmlld19jYWNoZSogZGVzdGluYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9jYWxfdmlld19jYWNoZSogc291cmNlKTsKKworUEFTX0FQSSBib29sIHBh
c19sb2NhbF92aWV3X2NhY2hlX3N0b3AocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLCBwYXNf
bG9ja19sb2NrX21vZGUgcGFnZV9sb2NrX21vZGUpOworCitQQVNfRU5EX0VYVEVSTl9DOworCisj
ZW5kaWYgLyogUEFTX0xPQ0FMX1ZJRVdfQ0FDSEVfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZS5jCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDUwIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
bmNsdWRlICJwYXNfY29uZmlnLmgiCisKKyNpZiBMSUJQQVNfRU5BQkxFRAorCisjaW5jbHVkZSAi
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oIgorCisjaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hl
YXAuaCIKKworcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSoKK3Bhc19sb2NhbF92aWV3X2NhY2hl
X25vZGVfY3JlYXRlKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7
CisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSogcmVzdWx0OworCisgICAgcmVzdWx0ID0g
cGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCisgICAgICAgIHNpemVvZihwYXNfbG9jYWxfdmll
d19jYWNoZV9ub2RlKSwKKyAgICAgICAgInBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUiLAorICAg
ICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOworCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgmcmVzdWx0LT5uZXh0LCBOVUxMKTsK
KyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVz
dWx0LT5kaXJlY3RvcnksIGRpcmVjdG9yeSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisj
ZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNf
TE9DQUxfVklFV19DQUNIRV9OT0RFX0gKKyNkZWZpbmUgUEFTX0xPQ0FMX1ZJRVdfQ0FDSEVfTk9E
RV9ICisKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUuaCIKKyNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCisKK1BBU19CRUdJ
Tl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGU7Cit0eXBlZGVm
IHN0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlIHBhc19sb2NhbF92aWV3X2NhY2hlX25v
ZGU7CisKK3N0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlIHsKKyAgICBwYXNfY29tcGFj
dF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5leHQ7CisgICAgcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5OworfTsKKworUEFT
X0FQSSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKgorcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9k
ZV9jcmVhdGUocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK1BB
U19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfTE9DQUxfVklFV19DQUNIRV9OT0RFX0gg
Ki8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2tfZnJl
ZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmMJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzMsNiArMzMsMTAgQEAKICNpbmNsdWRlICJwYXNfaGFzaHRhYmxlLmgiCiAjaW5jbHVkZSAicGFz
X2hlYXBfbG9jay5oIgogCisjaWYgUEFTX0xPQ0tfRlJFRV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxF
X0VOQUJMRV9DT0xMSVNJT05fQ09VTlQKK3VpbnQ2NF90IHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJf
cHRyX2hhc2h0YWJsZV9jb2xsaXNpb25fY291bnQ7CisjZW5kaWYgLyogUEFTX0xPQ0tfRlJFRV9S
RUFEX1BUUl9QVFJfSEFTSFRBQkxFX0VOQUJMRV9DT0xMSVNJT05fQ09VTlQgKi8KKwogdm9pZCBw
YXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGVfc2V0KAogICAgIHBhc19sb2NrX2Zy
ZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZSogaGFzaHRhYmxlLAogICAgIHVuc2lnbmVkICgqaGFz
aF9rZXkpKGNvbnN0IHZvaWQqIGtleSwgdm9pZCogYXJnKSwKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nr
X2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9o
YXNodGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDcgKzI2LDkgQEAKICNpZm5kZWYgUEFT
X0xPQ0tfRlJFRV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxFX0gKICNkZWZpbmUgUEFTX0xPQ0tfRlJF
RV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxFX0gKIAorI2luY2x1ZGUgInBhc19sb2cuaCIKICNpbmNs
dWRlICJwYXNfdXRpbHMuaCIKKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAogUEFTX0JFR0lOX0VYVEVS
Tl9DOwogCkBAIC01Miw2ICs1NCwxMiBAQCBzdHJ1Y3QgUEFTX0FMSUdORUQoc2l6ZW9mKHBhc19w
YWlyKSkgcGFzCiAgICAgICAgICAudGFibGUgPSBOVUxMIFwKICAgICAgfSkKIAorI2RlZmluZSBQ
QVNfTE9DS19GUkVFX1JFQURfUFRSX1BUUl9IQVNIVEFCTEVfRU5BQkxFX0NPTExJU0lPTl9DT1VO
VCAwCisKKyNpZiBQQVNfTE9DS19GUkVFX1JFQURfUFRSX1BUUl9IQVNIVEFCTEVfRU5BQkxFX0NP
TExJU0lPTl9DT1VOVAorUEFTX0FQSSBleHRlcm4gdWludDY0X3QgcGFzX2xvY2tfZnJlZV9yZWFk
X3B0cl9wdHJfaGFzaHRhYmxlX2NvbGxpc2lvbl9jb3VudDsKKyNlbmRpZiAvKiBQQVNfTE9DS19G
UkVFX1JFQURfUFRSX1BUUl9IQVNIVEFCTEVfRU5BQkxFX0NPTExJU0lPTl9DT1VOVCAqLworCiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJf
aGFzaHRhYmxlX2ZpbmQoCiAgICAgcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxl
KiBoYXNodGFibGUsCiAgICAgdW5zaWduZWQgKCpoYXNoX2tleSkoY29uc3Qgdm9pZCoga2V5LCB2
b2lkKiBhcmcpLApAQCAtODUsNiArOTMsMjQgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQqIHBhc19sb2NrXwogCiAgICAgICAgIGlmIChsb2FkZWRfa2V5ID09IFVJTlRQVFJfTUFYKQog
ICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisKKyNpZiBQQVNfTE9DS19GUkVFX1JFQURfUFRSX1BU
Ul9IQVNIVEFCTEVfRU5BQkxFX0NPTExJU0lPTl9DT1VOVAorICAgICAgICBmb3IgKDs7KSB7Cisg
ICAgICAgICAgICB1aW50NjRfdCBvbGRfY29sbGlzaW9uX2NvdW50OworICAgICAgICAgICAgdWlu
dDY0X3QgbmV3X2NvbGxpc2lvbl9jb3VudDsKKworICAgICAgICAgICAgb2xkX2NvbGxpc2lvbl9j
b3VudCA9IHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZV9jb2xsaXNpb25fY291
bnQ7CisgICAgICAgICAgICBuZXdfY29sbGlzaW9uX2NvdW50ID0gb2xkX2NvbGxpc2lvbl9jb3Vu
dCArIDE7CisKKyAgICAgICAgICAgIGlmIChwYXNfY29tcGFyZV9hbmRfc3dhcF91aW50NjRfd2Vh
aygKKyAgICAgICAgICAgICAgICAgICAgJnBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0
YWJsZV9jb2xsaXNpb25fY291bnQsCisgICAgICAgICAgICAgICAgICAgIG9sZF9jb2xsaXNpb25f
Y291bnQsIG5ld19jb2xsaXNpb25fY291bnQpKSB7CisgICAgICAgICAgICAgICAgaWYgKCEobmV3
X2NvbGxpc2lvbl9jb3VudCAlIDEwMDAwKSkKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygi
JWQ6IFNhdyAlbGx1IGNvbGxpc2lvbnMuXG4iLCBnZXRwaWQoKSwgbmV3X2NvbGxpc2lvbl9jb3Vu
dCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyNl
bmRpZiAvKiBQQVNfTE9DS19GUkVFX1JFQURfUFRSX1BUUl9IQVNIVEFCTEVfRU5BQkxFX0NPTExJ
U0lPTl9DT1VOVCAqLwogICAgIH0KIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX21hZ2F6aW5lLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX21hZ2F6aW5lLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5jCShub25leGlzdGVudCkK
QEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxF
RAotCi0jaW5jbHVkZSAicGFzX21hZ2F6aW5lLmgiCi0KLSNpbmNsdWRlICJwYXNfaW1tb3J0YWxf
aGVhcC5oIgotCi1wYXNfbWFnYXppbmUqIHBhc19tYWdhemluZV9jcmVhdGUodW5zaWduZWQgbWFn
YXppbmVfaW5kZXgpCi17Ci0gICAgcGFzX21hZ2F6aW5lKiByZXN1bHQ7Ci0KLSAgICByZXN1bHQg
PSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKLSAgICAgICAgc2l6ZW9mKHBhc19tYWdhemlu
ZSksCi0gICAgICAgICJwYXNfbWFnYXppbmUiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRp
b24pOwotCi0gICAgcGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPmxvY2spOwotCi0gICAgcmVz
dWx0LT5tYWdhemluZV9pbmRleCA9IG1hZ2F6aW5lX2luZGV4OwotCi0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21hZ2F6aW5lLmgJKG5v
bmV4aXN0ZW50KQpAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfTUFHQVpJTkVfSAotI2RlZmluZSBQ
QVNfTUFHQVpJTkVfSAotCi0jaW5jbHVkZSAicGFzX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfdXRp
bHMuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX21hZ2F6aW5lOwotc3Ry
dWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZTsKLXR5cGVkZWYgc3RydWN0IHBhc19tYWdh
emluZSBwYXNfbWFnYXppbmU7Ci10eXBlZGVmIHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X25vZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlOwotCi1zdHJ1Y3QgcGFzX21hZ2F6aW5l
IHsKLSAgICAvKiBUaGlzIGlzIHRoZSBsb2NrIHRoYXQgd2UgYmlhcyBwYWdlcyB0by4KLSAgICAg
Ci0gICAgICAgRm9yIGxvY2sgb3JkZXJpbmcsIHdlIHNheSB0aGF0OgotICAgIAotICAgICAgIC0g
TWFnYXppbmUgbG9ja3MgYXJlIGFjcXVpcmVkIGJlZm9yZSBwYWdlIG93bmVyc2hpcCBsb2Nrcy4K
LSAgICAKLSAgICAgICAtIE1hZ2F6aW5lIGxvY2tzIGFyZSBhY3F1aXJlZCBpbiBwb2ludGVyLWFz
LWludGVnZXIgb3JkZXIgcmVsYXRpdmUgdG8gb25lIGFub3RoZXIuICovCi0gICAgcGFzX2xvY2sg
bG9jazsKLQotICAgIC8qIFRoaXMgZ2V0cyB1c2VkIGFzIGFuIGluZGV4IGluIGJpYXNpbmcgZGly
ZWN0b3JpZXMuICovCi0gICAgdW5zaWduZWQgbWFnYXppbmVfaW5kZXg7Ci19OwotCi1QQVNfQVBJ
IHBhc19tYWdhemluZSogcGFzX21hZ2F6aW5lX2NyZWF0ZSh1bnNpZ25lZCBtYWdhemluZV9pbmRl
eCk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfTUFHQVpJTkVfSCAqLwot
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2Nv
bmZpZ191dGlscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9D
OwogCi0jZGVmaW5lIFBBU19CQVNJQ19QQUdFX0JBU0VfQ09ORklHX0ZPUldBUkRfREVDTEFSQVRJ
T05TKG5hbWUpICAgICBcCisjZGVmaW5lIFBBU19CQVNJQ19QQUdFX0JBU0VfQ09ORklHX0ZPUldB
UkRfREVDTEFSQVRJT05TKG5hbWUpIFwKICAgICBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X3BhZ2VfYmFzZSogXAogICAgIG5hbWUgIyMgX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lk
KiBib3VuZGFyeSk7IFwKICAgICBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogXApJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Bh
Z2VfaGVhZGVyX3RhYmxlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2hlYWRlcl90YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC01Niw3ICs1Niw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgcGFzX3BhZ2VfaGVhZGVyX3QK
IAogICAgIHBhZ2Vfc2l6ZSA9IChzaXplX3QpYXJnOwogCi0gICAgcmV0dXJuICh1bnNpZ25lZCko
KHVpbnRwdHJfdClrZXkgLyBwYWdlX3NpemUpOworICAgIHJldHVybiBwYXNfaGFzaDMyKCh1bnNp
Z25lZCkoKHVpbnRwdHJfdClrZXkgLyBwYWdlX3NpemUpKTsKIH0KIAogUEFTX0FQSSBwYXNfcGFn
ZV9iYXNlKiBwYXNfcGFnZV9oZWFkZXJfdGFibGVfYWRkKHBhc19wYWdlX2hlYWRlcl90YWJsZSog
dGFibGUsCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50LmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwxMyArMjksMTIgQEAKIAogI2lu
Y2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCIKIAotI2luY2x1ZGUgInBhc19i
aWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2Vw
b2NoLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgogI2luY2x1ZGUgInBhc19sYXJnZV9z
aGFyaW5nX3Bvb2wuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5LmgiCiAKQEAgLTY2LDkgKzY1LDcgQEAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9nZXRfcGF5bG9hZAogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2RhdGFfdHJ5X2dldF9zaGFyaW5nX3BheWxvYWQoCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmKChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqKXB0
ciktPmRhdGEpKTsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0
X2RpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuICYoKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eSopcHRyKS0+cGh5c2ljYWxfc2hhcmluZ19wYXlsb2FkOwotICAgIGNhc2UgcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuICYoKHBh
c19iaWFzaW5nX2RpcmVjdG9yeSopcHRyKS0+Ymlhc19zaGFyaW5nX3BheWxvYWQuYmFzZTsKKyAg
ICAgICAgcmV0dXJuICYoKHBhc19iaXRmaXRfZGlyZWN0b3J5KilwdHIpLT5waHlzaWNhbF9zaGFy
aW5nX3BheWxvYWQ7CiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2xhcmdl
X3NoYXJpbmdfcG9vbDoKICAgICAgICAgcmV0dXJuICZwYXNfbGFyZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9wYXlsb2FkLmJhc2U7CiAgICAgfQpAQCAtOTgsOSArOTUsNyBAQCB1aW50NjRfdCBwYXNf
cGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dlCiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk6CiAgICAgICAgIHJldHVybiBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaChwdHIpOwogICAgIGNhc2UgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4g
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF91c2VfZXBvY2gocHRyKTsKLSAgICBjYXNl
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3Rvcnk6Ci0gICAgICAg
IHJldHVybiAoKHBhc19iaWFzaW5nX2RpcmVjdG9yeSopcHRyKS0+Ymlhc19zaGFyaW5nX3BheWxv
YWQudXNlX2Vwb2NoOworICAgICAgICByZXR1cm4gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3Vz
ZV9lcG9jaChwdHIpOwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9sYXJn
ZV9zaGFyaW5nX3Bvb2w6CiAgICAgICAgIHJldHVybiBwYXNfbGFyZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9wYXlsb2FkLnVzZV9lcG9jaDsKICAgICB9CkBAIC0xMjksOCArMTI0LDYgQEAgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfcGFyZW50XwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OgogICAgIGNhc2UgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5OgogICAgICAgICByZXR1
cm4gJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbDsKLSAgICBjYXNlIHBhc19wYWdlX3No
YXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiBwYXNf
Ymlhc2luZ19kaXJlY3RvcnlfZ2V0X3NoYXJpbmdfcG9vbChwdHIpOwogICAgIGNhc2UgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9sYXJnZV9zaGFyaW5nX3Bvb2w6CiAgICAgICAgIHJldHVy
biAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sOwogICAgIH0KQEAgLTE1Miw5ICsxNDUs
NyBAQCBib29sIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfaXNfZWxpCiAgICAgY2FzZSBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk6CiAg
ICAgICAgIHJldHVybiAhIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfbGFzdF9lbXB0eV9w
bHVzX29uZShwdHIpLnZhbHVlOwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9iaXRmaXRfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gISEoKHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeSopcHRyKS0+bGFzdF9lbXB0eV9wbHVzX29uZS52YWx1ZTsKLSAgICBjYXNlIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3Rvcnk6Ci0gICAgICAgIHJl
dHVybiAhIXBhc19iaWFzaW5nX2RpcmVjdG9yeV91bnVzZWRfc3Bhbl9zaXplKHB0cik7CisgICAg
ICAgIHJldHVybiAhISgocGFzX2JpdGZpdF9kaXJlY3RvcnkqKXB0ciktPmxhc3RfZW1wdHlfcGx1
c19vbmUudmFsdWU7CiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2xhcmdl
X3NoYXJpbmdfcG9vbDoKICAgICAgICAgcmV0dXJuICEhcGFzX2xhcmdlX3NoYXJpbmdfbWluX2hl
YXBfaW5zdGFuY2Uuc2l6ZTsKICAgICB9CkBAIC0xNzksNyArMTcwLDcgQEAgcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF90YWtlX2xlYXN0XwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIAogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgKKyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgKICAgICAgICAgICAgIHB0ciwgZGVjb21t
aXRfbG9nLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmlu
Z19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeToKQEAgLTE4OSwx
MiArMTgwLDcgQEAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF90YWtlX2xlYXN0XwogCiAg
ICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rvcnk6CiAg
ICAgICAgIFBBU19BU1NFUlQoZGVjb21taXRfbG9nKTsKLSAgICAgICAgcmV0dXJuIHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkocHRyLCBkZWNvbW1pdF9sb2csIGhl
YXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICAKLSAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3Rvcnk6Ci0gICAgICAgIFBBU19BU1NFUlQoIWRlY29t
bWl0X2xvZyk7Ci0gICAgICAgIFBBU19BU1NFUlQoaGVhcF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNf
bG9ja19pc19ub3RfaGVsZCk7Ci0gICAgICAgIHJldHVybiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlf
dGFrZV9sYXN0X3VudXNlZChwdHIpOworICAgICAgICByZXR1cm4gcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfdGFrZV9sYXN0X2VtcHR5KHB0ciwgZGVjb21taXRfbG9nLCBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKICAgICAgICAgCiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2xhcmdl
X3NoYXJpbmdfcG9vbDoKICAgICAgICAgUEFTX0FTU0VSVChkZWNvbW1pdF9sb2cpOwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw5IEBAIHN0cnVjdCBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X3BheWwKICAgICAgICAKICAgICAgICBJZiB0aGlzIGlzIHRydWUgdGhlbjoK
ICAgICAgICAKLSAgICAgICAtIHdlIG11c3QgYmUgdHJhY2tlZCBhcyBhIGRlbHRhLiAqLworICAg
ICAgIC0gd2UgbXVzdCBiZSB0cmFja2VkIGFzIGEgZGVsdGEuCisgICAgCisgICAgICAgRklYTUU6
IFRoZXJlJ3MgYSBwcmV0dHkgb2J2aW91cyBzaXplIHdpbiB0byBiZSBoYWQganVzdCBmcm9tIHJl
bW92aW5nIHRoaXMgZmllbGQuICovCiAgICAgYm9vbCBkZWx0YV9oYXNfYmVlbl9ub3RlZDsKIH07
CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnRfa2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5oCShyZXZpc2lv
biAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNiBA
QCBlbnVtIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZCB7CiAgICAgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSwKICAg
ICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnks
CiAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5LAotICAg
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnksCiAgICAgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9sYXJnZV9zaGFyaW5nX3Bvb2wKIH07CiAKQEAgLTQ5
LDE0ICs0OCwxMCBAQCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmRfc2VsZWN0CiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQgZGlyZWN0b3J5X2tpbmQpCiB7CiAgICAg
c3dpdGNoIChkaXJlY3Rvcnlfa2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2tpbmQ6CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9raW5kOgogICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3BhZ2VfZGlyZWN0b3J5X2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5OwotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgUEFTX0FTU0VSVCgh
IlNob3VsZCBub3QgdXNlIHNlZ3JlZ2F0ZWQgYmlhc2luZyBkaXJlY3RvcmllcyBhcyBzaGFyaW5n
IHBhcnRpY2lwYW50cyBleGNlcHQgIgotICAgICAgICAgICAgICAgICAgICJ2aWEgdGhlIGJpYXNp
bmcgZGlyZWN0b3J5IGJhc2UiKTsKLSAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfbnVsbDsKICAgICB9CiAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVh
Y2hlZCIpOwogICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X251bGw7CkBA
IC03NCw4ICs2OSw2IEBAIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZF9nZXRfc3QK
ICAgICAgICAgcmV0dXJuICJzZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IjsKICAgICBjYXNlIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeToKICAgICAgICAgcmV0
dXJuICJiaXRmaXRfZGlyZWN0b3J5IjsKLSAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfYmlhc2luZ19kaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAiYmlhc2luZ19kaXJlY3Rv
cnkiOwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9sYXJnZV9zaGFyaW5n
X3Bvb2w6CiAgICAgICAgIHJldHVybiAibGFyZ2Vfc2hhcmluZ19wb29sIjsKICAgICB9CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2wu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFn
ZV9zaGFyaW5nX3Bvb2wuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmMJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC03MzksMTYgKzczOSwxOSBAQCB2b2lkIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90
YWtlCiAgICAgYXRvbWljX2FkZF9iYWxhbmNlKGJhbGFuY2VfYWRkZW5kKTsKIH0KIAotcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0CitwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVu
Z2VfcmVzdWx0CiBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2UodWludDY0
X3QgbWF4X2Vwb2NoKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
LSAgICAKKwogICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCB0YWtlX3Jlc3Vs
dDsKICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uIHRyYW5zYWN0aW9uOworICAg
IHNpemVfdCB0b3RhbF9ieXRlczsKICAgICAKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFz
X2xvZygiRG9pbmcgc2NhdmVuZ2UgdXAgdG8gJWxsdVxuIiwgbWF4X2Vwb2NoKTsKKworICAgIHRv
dGFsX2J5dGVzID0gMDsKICAgICAKICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9u
X2NvbnN0cnVjdCgmdHJhbnNhY3Rpb24pOwogICAgIGRvIHsKQEAgLTc3Miw2ICs3NzUsOCBAQCBw
YXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2UoCiAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHRfZ2V0X3N0cmluZyh0YWtl
X3Jlc3VsdCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9IHdoaWxlICh0YWtlX3Jlc3VsdCA9
PSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzKTsKKworICAgICAgICB0b3RhbF9i
eXRlcyArPSBkZWNvbW1pdF9sb2cudG90YWw7CiAgICAgICAgIAogICAgICAgICBmb3IgKDs7KSB7
CiAgICAgICAgICAgICBpbnRwdHJfdCBiYWxhbmNlOwpAQCAtODAxLDcgKzgwNiw3IEBAIHBhc19w
aHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZSgKICAgICBQQVNfQVNTRVJUKHRha2Vf
cmVzdWx0ICE9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlKTsK
ICAgICBQQVNfQVNTRVJUKHRha2VfcmVzdWx0ICE9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtl
X3N1Y2Nlc3MpOwogICAgIAotICAgIHJldHVybiB0YWtlX3Jlc3VsdDsKKyAgICByZXR1cm4gcGFz
X3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdF9jcmVhdGUodGFrZV9yZXN1bHQsIHRv
dGFsX2J5dGVzKTsKIH0KIAogdm9pZCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZV9sYXRlcihzaXplX3QgYnl0ZXMpCkBAIC04NTEsMTkgKzg1Niw2IEBAIHZvaWQgcGFzX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2Nrc19hbHJlYWR5X2hlbGQsIG51bV9sb2Nrc19hbHJlYWR5X2hlbGQpOwog
fQogCi1ib29sIHBhc19iaWFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UocGFzX3BhZ2Vfc2hhcmlu
Z19wb29sKiBwb29sKQotewotICAgIHN3aXRjaCAocGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vf
bGVhc3RfcmVjZW50bHlfdXNlZChwb29sLCBOVUxMLCBwYXNfbG9ja19pc19ub3RfaGVsZCwgMCkp
IHsKLSAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOgot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZV9zdWNjZXNzOgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBkZWZhdWx0OgotICAgICAgICBQ
QVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci19Ci0KIHZvaWQgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVs
dGEocGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwb29sLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50IHBhcnRpY2lw
YW50KQogewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vf
c2hhcmluZ19wb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAicGFzX2xvY2suaCIKICNpbmNs
dWRlICJwYXNfbWluX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lw
YW50LmgiCisjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5o
IgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oIgogI2luY2x1
ZGUgInBhc19zZWdtZW50ZWRfdmVjdG9yLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCkBAIC0x
MjEsNyArMTIyLDcgQEAgUEFTX0FQSSB2b2lkIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9hZGQocAog
CiAvKiBUaGlzIGlzIHRoZSBsb3ctbGV2ZWwgaW50ZXJmYWNlIGZvciB0YWtpbmcgdGhpbmdzIGZy
b20gdGhlIHNoYXJpbmcgcG9vbC4gVXN1YWxseSB5b3Ugd2FudCB0byBjYWxsCiAgICBwYXNfcGh5
c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZSwgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19w
b29sX3NjYXZlbmdlLAotICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9y
X3BhZ2VfY29uZmlnLCBvciBwYXNfYmlhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlLgorICAgb3Ig
cGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9yX3BhZ2VfY29uZmlnLgogICAg
CiAgICBUaGlzIGp1c3QgdGFrZXMgdGhlIGxlYXN0IHJlY2VudGx5IHVzZWQgcGllY2Ugb2YgbWVt
b3J5IChjb3VsZCBiZSBhIHBhZ2UsIGEgc3BhbiBvZiBtdWx0aXBsZSBwYWdlcywKICAgIG9yIGV2
ZW4gYSBzZXQgb2YgZGlzam9pbnQgcGFnZXMpLiBUaGUgYW1vdW50IG9mIG1lbW9yeSByZXR1cm5l
ZCBpcyBnb2luZyB0byBiZSB3aGF0ZXZlciBpcwpAQCAtMTUwLDcgKzE1MSw3IEBAIFBBU19BUEkg
dm9pZCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3AKICAgICBzaXplX3QgbnVtX2xvY2tzX2Fs
cmVhZHlfaGVsZCk7CiAKIC8qIFRoaXMgcmV0dXJucyB0aGUgZXhjdXNlIGZvciB3aHkgaXQgc3Rv
cHBlZCBzY2F2ZW5naW5nLiAqLwotUEFTX0FQSSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9y
ZXN1bHQKK1BBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdAogcGFz
X3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlKHVpbnQ2NF90IG1heF9lcG9jaCk7
CiAKIFBBU19BUEkgdm9pZCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9sYXRl
cihzaXplX3QgYnl0ZXMpOwpAQCAtMTYzLDggKzE2NCw2IEBAIFBBU19BUEkgdm9pZCBwYXNfcGh5
c2ljYWxfcGFnZV9zaGFyaW5nX3AKICAgICBwYXNfbG9jayoqIGxvY2tzX2FscmVhZHlfaGVsZCwK
ICAgICBzaXplX3QgbnVtX2xvY2tzX2FscmVhZHlfaGVsZCk7CiAKLVBBU19BUEkgYm9vbCBwYXNf
Ymlhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlKHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcG9vbCk7
Ci0KIFBBU19BUEkgdm9pZCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YShw
YXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudCBwYXJ0
aWNpcGFudCk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2Vf
cmVzdWx0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2lmbmRlZiBQQVNfUEFHRV9TSEFSSU5HX1BPT0xfU0NBVkVOR0VfUkVTVUxUX0gK
KyNkZWZpbmUgUEFTX1BBR0VfU0hBUklOR19QT09MX1NDQVZFTkdFX1JFU1VMVF9ICisKKyNpbmNs
dWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQuaCIKKworUEFTX0JFR0lOX0VY
VEVSTl9DOworCitzdHJ1Y3QgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdDsK
K3R5cGVkZWYgc3RydWN0IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQgcGFz
X3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdDsKKworc3RydWN0IHBhc19wYWdlX3No
YXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQgeworICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90
YWtlX3Jlc3VsdCB0YWtlX3Jlc3VsdDsKKyAgICBzaXplX3QgdG90YWxfYnl0ZXM7Cit9OworCitz
dGF0aWMgaW5saW5lIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdF9jcmVhdGUoCisgICAgcGFzX3BhZ2Vfc2hh
cmluZ19wb29sX3Rha2VfcmVzdWx0IHRha2VfcmVzdWx0LAorICAgIHNpemVfdCB0b3RhbF9ieXRl
cykKK3sKKyAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0IHJlc3VsdDsK
KyAgICByZXN1bHQudGFrZV9yZXN1bHQgPSB0YWtlX3Jlc3VsdDsKKyAgICByZXN1bHQudG90YWxf
Ynl0ZXMgPSB0b3RhbF9ieXRlczsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitQQVNfRU5EX0VY
VEVSTl9DOworCisjZW5kaWYgLyogUEFTX1BBR0VfU0hBUklOR19QT09MX1NDQVZFTkdFX1JFU1VM
VF9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19yZWR1
bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmMJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtMzIs
NyArMzIsNyBAQAogI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCiAKIHBhc19yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGUqCi1wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9u
b2RlX2NyZWF0ZShwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSkKK3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfY3JlYXRlKHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcGFzX3JlZHVuZGFudF9sb2Nh
bF9hbGxvY2F0b3Jfbm9kZSogcmVzdWx0OwogCkBAIC00Miw3ICs0Miw3IEBAIHBhc19yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfY3JlYXQKICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0
aW9uKTsKIAogICAgIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfc3RvcmUoJnJlc3VsdC0+bmV4dCwgTlVMTCk7Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwg
ZGlyZWN0b3J5KTsKKyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
cl9zdG9yZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRpcmVjdG9yeSk7CiAgICAgcmVzdWx0LT5hbGxv
Y2F0b3JfaW5kZXggPSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWDsKIAogICAgIHJldHVy
biByZXN1bHQ7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVk
dW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDcgKzI2LDcgQEAKICNpZm5kZWYgUEFTX1JFRFVOREFOVF9MT0NBTF9BTExPQ0FUT1JfTk9ERV9I
CiAjZGVmaW5lIFBBU19SRURVTkRBTlRfTE9DQUxfQUxMT0NBVE9SX05PREVfSAogCi0jaW5jbHVk
ZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCisj
aW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKICNp
bmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
LmgiCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgogCkBAIC0zNywxMiArMzcsMTIg
QEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvYwogCiBzdHJ1Y3QgcGFz
X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSB7CiAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0OwotICAgIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7CisgICAgcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5OwogICAgIHBhc19h
bGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OwogfTsKIAogUEFTX0FQSSBwYXNfcmVkdW5k
YW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKgotcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jf
bm9kZV9jcmVhdGUocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpOworcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9jcmVhdGUocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKIFBBU19FTkRfRVhURVJOX0M7CiAK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVu
Z2VyLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zY2F2ZW5nZXIuYwkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogI2lu
Y2x1ZGUgInBhc19zY2F2ZW5nZXIuaCIKIAogI2luY2x1ZGUgPG1hdGguaD4KLSNpbmNsdWRlICJw
YXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCIKICNpbmNsdWRlICJwYXNfYWxsX2hlYXBzLmgi
CiAjaW5jbHVkZSAicGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIgogI2luY2x1ZGUgInBh
c19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCIKQEAgLTQ1LDYgKzQ0LDcgQEAKICNpbmNsdWRlICJw
YXNfdXRpbGl0eV9oZWFwLmgiCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzeXMvdGlt
ZS5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CiAKQEAgLTE0OSw3ICsxNDksNyBAQCBzdGF0aWMgdm9pZCogc2NhdmVuZ2VyX3RocmVh
ZF9tYWluKHZvaWQqCiAgICAgZGF0YSA9IGVuc3VyZV9kYXRhX2luc3RhbmNlKHBhc19sb2NrX2lz
X25vdF9oZWxkKTsKICAgICAKICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIHBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX3Jlc3VsdCB0YWtlX3Jlc3VsdDsKKyAgICAgICAgcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX3NjYXZlbmdlX3Jlc3VsdCBzY2F2ZW5nZV9yZXN1bHQ7CiAgICAgICAgIGJvb2wgc2hv
dWxkX3NodXRfZG93bjsKICAgICAgICAgZG91YmxlIHRpbWVfaW5fbWlsbGlzZWNvbmRzOwogICAg
ICAgICBkb3VibGUgYWJzb2x1dGVfdGltZW91dF9pbl9taWxsaXNlY29uZHNfZm9yX3BlcmlvZF9z
bGVlcDsKQEAgLTE2Niw2ICsxNjYsMTQgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRf
bWFpbih2b2lkKgogICAgICAgICAKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBw
cmludGYoIlNjYXZlbmdlciBpcyBydW5uaW5nLlxuIik7CisKKyNpZiBQQVNfTE9DQUxfQUxMT0NB
VE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZWZpbGxfZWZmaWNpZW5jeV9sb2NrX2xvY2soKTsKKyAgICAgICAgcGFzX2xvZygiJWQ6IFJl
ZmlsbCBlZmZpY2llbmN5OiAlbGZcbiIsCisgICAgICAgICAgICAgICAgZ2V0cGlkKCksCisgICAg
ICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9zdW0gLyBw
YXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X24pOworICAgICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X2xvY2tfdW5sb2NrKCk7CisjZW5kaWYgLyog
UEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZICovCiAgICAgICAg
IAogICAgICAgICBzaG91bGRfZ29fYWdhaW4gfD0KICAgICAgICAgICAgIHBhc19iYXNlbGluZV9h
bGxvY2F0b3JfdGFibGVfZm9yX2FsbChwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX3JlcXVlc3Rfc3Rv
cF9hY3Rpb24pOwpAQCAtMTc2LDExICsxODQsOSBAQCBzdGF0aWMgdm9pZCogc2NhdmVuZ2VyX3Ro
cmVhZF9tYWluKHZvaWQqCiAgICAgICAgIAogICAgICAgICBzaG91bGRfZ29fYWdhaW4gfD0KICAg
ICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfYWxsb2NhdG9yX3Nj
YXZlbmdlX3JlcXVlc3Rfc3RvcF9hY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2ZsdXNoX2xvZ19hY3Rpb24s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2RlYWxsb2Nh
dG9yX3NjYXZlbmdlX2ZsdXNoX2xvZ19pZl9jbGVhbl9hY3Rpb24sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwogCi0gICAg
ICAgIHNob3VsZF9nb19hZ2FpbiB8PSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfc2NhdmVu
Z2UoKTsKLQogICAgICAgICAvKiBGb3IgdGhlIHB1cnBvc2VzIG9mIHBlcmZvcm1hbmNlIHR1bmlu
ZywgYXMgd2VsbCBhcyBzb21lIG9mIHRoZSBzY2F2ZW5nZXIgdGVzdHMsIHRoZSBlcG9jaAogICAg
ICAgICAgICBpcyB0aW1lIGluIG5hbm9zZWNvbmRzLgogICAgICAgICAgICAKQEAgLTE5OCw4ICsy
MDQsOSBAQCBzdGF0aWMgdm9pZCogc2NhdmVuZ2VyX3RocmVhZF9tYWluKHZvaWQqCiAgICAgICAg
IGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiZXBvY2ggPSAlbGx1LCBkZWx0YSA9
ICVsbHUsIG1heF9lcG9jaCA9ICVsbHVcbiIsIGVwb2NoLCBkZWx0YSwgbWF4X2Vwb2NoKTsKIAot
ICAgICAgICB0YWtlX3Jlc3VsdCA9IHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9zY2F2
ZW5nZShtYXhfZXBvY2gpOwotICAgICAgICBzd2l0Y2ggKHRha2VfcmVzdWx0KSB7CisgICAgICAg
IHNjYXZlbmdlX3Jlc3VsdCA9IHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5n
ZShtYXhfZXBvY2gpOworCisgICAgICAgIHN3aXRjaCAoc2NhdmVuZ2VfcmVzdWx0LnRha2VfcmVz
dWx0KSB7CiAgICAgICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFp
bGFibGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIApAQCAtMjE2LDYgKzIyMywx
MyBAQCBzdGF0aWMgdm9pZCogc2NhdmVuZ2VyX3RocmVhZF9tYWluKHZvaWQqCiAgICAgICAgICAg
ICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBzZWUgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vf
bG9ja3NfdW5hdmFpbGFibGUuIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfSB9CisK
KyAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coIiVkOiAlLjBsZjog
c2NhdmVuZ2VyIGZyZWVkICV6dSBieXRlcyAoJXMsIHNob3VsZF9nb19hZ2FpbiA9ICVzKS5cbiIs
CisgICAgICAgICAgICAgICAgICAgIGdldHBpZCgpLCBnZXRfdGltZV9pbl9taWxsaXNlY29uZHMo
KSwgc2NhdmVuZ2VfcmVzdWx0LnRvdGFsX2J5dGVzLAorICAgICAgICAgICAgICAgICAgICBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHRfZ2V0X3N0cmluZyhzY2F2ZW5nZV9yZXN1bHQu
dGFrZV9yZXN1bHQpLAorICAgICAgICAgICAgICAgICAgICBzaG91bGRfZ29fYWdhaW4gPyAieWVz
IiA6ICJubyIpOworICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBjb21wbGV0aW9uX2NhbGxi
YWNrID0gcGFzX3NjYXZlbmdlcl9jb21wbGV0aW9uX2NhbGxiYWNrOwogICAgICAgICBpZiAoY29t
cGxldGlvbl9jYWxsYmFjaykKQEAgLTI0MSw3ICsyNTUsMTAgQEAgc3RhdGljIHZvaWQqIHNjYXZl
bmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAg
ICAgICAgICAgcHJpbnRmKCJXYWl0aW5nIGZvciBhIHBlcmlvZC5cbiIpOwogCi0gICAgICAgICAg
ICBwYXNfc2NhdmVuZ2VyX2N1cnJlbnRfc3RhdGUgPSBwYXNfc2NhdmVuZ2VyX3N0YXRlX3BvbGxp
bmc7CisgICAgICAgICAgICAvKiBUaGlzIGZpZWxkIGlzIGFjY2Vzc2VkIGEgbG90IGJ5IG90aGVy
IHRocmVhZHMsIHNvIGRvbid0IHdyaXRlIHRvIGl0IGlmIHdlIGRvbid0CisgICAgICAgICAgICAg
ICBoYXZlIHRvLiAqLworICAgICAgICAgICAgaWYgKHBhc19zY2F2ZW5nZXJfY3VycmVudF9zdGF0
ZSAhPSBwYXNfc2NhdmVuZ2VyX3N0YXRlX3BvbGxpbmcpCisgICAgICAgICAgICAgICAgcGFzX3Nj
YXZlbmdlcl9jdXJyZW50X3N0YXRlID0gcGFzX3NjYXZlbmdlcl9zdGF0ZV9wb2xsaW5nOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgZG91YmxlIGFic29sdXRlX3RpbWVvdXRfaW5fbWls
bGlzZWNvbmRzX2Zvcl9kZWVwX3ByZV9zbGVlcDsKICAgICAgICAgICAgIApAQCAtNDI1LDExICs0
NDIsMTEgQEAgdm9pZCBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9jYWNoZXNfZXhjZQogewogICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlOwogICAgIAotICAgIHBhc19zY2F2ZW5nZXJf
Y2xlYXJfYWxsX25vbl90bGNfY2FjaGVzKCk7Ci0KICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfdHJ5X2dldCgpOwogICAgIGlmIChjYWNoZSkKICAgICAgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9zaHJpbmsoY2FjaGUsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKworICAgIHBh
c19zY2F2ZW5nZXJfY2xlYXJfYWxsX25vbl90bGNfY2FjaGVzKCk7CiB9CiAKIHZvaWQgcGFzX3Nj
YXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzKHZvaWQpCkBAIC00NDEsMTMgKzQ1OCwxNSBAQCB2b2lk
IHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlcyh2b2lkCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKIH0KIAotdm9pZCBwYXNfc2Nh
dmVuZ2VyX2RlY29tbWl0X2ZyZWVfbWVtb3J5KHZvaWQpCitzaXplX3QgcGFzX3NjYXZlbmdlcl9k
ZWNvbW1pdF9mcmVlX21lbW9yeSh2b2lkKQogewotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90
YWtlX3Jlc3VsdCByZXN1bHQ7CisgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jl
c3VsdCByZXN1bHQ7CiAKICAgICByZXN1bHQgPSBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bv
b2xfc2NhdmVuZ2UoUEFTX0VQT0NIX01BWCk7CiAgICAgCi0gICAgUEFTX0FTU0VSVChyZXN1bHQg
PT0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFibGUpOworICAgIFBBU19B
U1NFUlQocmVzdWx0LnRha2VfcmVzdWx0ID09IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25v
bmVfYXZhaWxhYmxlKTsKKworICAgIHJldHVybiByZXN1bHQudG90YWxfYnl0ZXM7CiB9CiAKIHZv
aWQgcGFzX3NjYXZlbmdlcl9ydW5fc3luY2hyb25vdXNseV9ub3codm9pZCkKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2
ZW5nZXIuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBQQVNfQVBJIHZvaWQgcGFz
X3NjYXZlbmdlcl9yZXN1bWUodm9pZCk7CiBQQVNfQVBJIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVh
cl9hbGxfbm9uX3RsY19jYWNoZXModm9pZCk7CiBQQVNfQVBJIHZvaWQgcGFzX3NjYXZlbmdlcl9j
bGVhcl9hbGxfY2FjaGVzX2V4Y2VwdF9yZW1vdGVfdGxjcyh2b2lkKTsKIFBBU19BUEkgdm9pZCBw
YXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9jYWNoZXModm9pZCk7Ci1QQVNfQVBJIHZvaWQgcGFzX3Nj
YXZlbmdlcl9kZWNvbW1pdF9mcmVlX21lbW9yeSh2b2lkKTsKK1BBU19BUEkgc2l6ZV90IHBhc19z
Y2F2ZW5nZXJfZGVjb21taXRfZnJlZV9tZW1vcnkodm9pZCk7CiAKIFBBU19BUEkgdm9pZCBwYXNf
c2NhdmVuZ2VyX3J1bl9zeW5jaHJvbm91c2x5X25vdyh2b2lkKTsKIApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnku
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eS5jCShub25leGlzdGVudCkKQEAgLTEsMjYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgot
Ci0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5LmgiCi0KLSNpbmNsdWRlICJwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCIK
LSNpbmNsdWRlICJwYXNfZXBvY2guaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wu
aCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCIKLSNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2Vf
aW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaCIKLQotcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5X2NyZWF0ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIHBhcmVudF9nbG9iYWwsIHVuc2lnbmVkIG1hZ2F6aW5lX2luZGV4KQotewot
ICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiByZXN1bHQ7Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnOwotCi0gICAgLyogVGhpcyBjcmVhdGVz
IGEgYmlhc2luZyBkaXJlY3Rvcnkgd2l0aCBqdXN0IGluZGV4X2luX2FsbCBpbml0aWFsaXplZCBh
bmQgZXZlcnl0aGluZyBlbHNlCi0gICAgICAgemVyb2VkLiAqLwotICAgIHJlc3VsdCA9IHBhc19p
bW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAotICAgICAgICBzaXplb2YocGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkpLAotICAgICAgICBhbGlnbm9mKHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KSwKLSAgICAgICAgInBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5IiwKLSAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQotICAgIHBh
Z2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKHBh
cmVudF9nbG9iYWwtPmJhc2UucGFnZV9jb25maWdfa2luZCk7Ci0gICAgUEFTX0FTU0VSVChwYWdl
X2NvbmZpZyk7Ci0KLSAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jb25zdHJ1Y3Qo
Ci0gICAgICAgICZyZXN1bHQtPmJhc2UsIHBhZ2VfY29uZmlnLT5raW5kLAotICAgICAgICBwYXNf
ZG9fbm90X3NoYXJlX3BhZ2VzLAotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeV9raW5kKTsKLQotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5wYXJlbnRfZ2xvYmFsLCBwYXJlbnRfZ2xvYmFsKTsK
LQotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9jb25zdHJ1Y3QoCi0gICAgICAgICZyZXN1bHQt
PmJpYXNpbmdfYmFzZSwgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3NlZ3JlZ2F0ZWRfa2luZCwgbWFn
YXppbmVfaW5kZXgpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIHZvaWQgdGFr
ZV9maXJzdF9lbGlnaWJsZV9sb29wX2hlYWRfY2FsbGJhY2socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgLyogTm90aGluZyB0byBkbyBmb3IgYmlhc2luZyBkaXJl
Y3Rvcmllcy4gVGhpcyBjYWxsYmFjayBpcyBtZWFuaW5nZnVsIGZvciBnbG9iYWwgc2l6ZSBkaXJl
Y3RvcmllcywKLSAgICAgICB3aGljaCB1c2UgaXQgdG8gdGFrZSBmcm9tIHRoZSBiaWFzaW5nIHBv
b2wuICovCi0gICAgUEFTX1VOVVNFRF9QQVJBTShkaXJlY3RvcnkpOwotfQotCi1zdGF0aWMgcGFz
X3NlZ3JlZ2F0ZWRfdmlldyB0YWtlX2ZpcnN0X2VsaWdpYmxlX2NyZWF0ZV9uZXdfdmlld19jYWxs
YmFjaygKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcqIGNvbmZp
ZykKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJl
Y3Rvcnk7Ci0KLSAgICBQQVNfVEVTVElOR19BU1NFUlQoY29uZmlnLT5kaXJlY3RvcnktPmRpcmVj
dG9yeV9raW5kID09IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQpOwotICAg
IAotICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5Kiljb25maWctPmRpcmVjdG9yeTsKLQotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXdfYXNfdmlld19ub25fbnVsbCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3X2NyZWF0ZShiaWFzaW5nX2RpcmVjdG9yeSwgY29uZmlnLT5pbmRleCkpOwotfQotCi1w
YXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2Vf
Zmlyc3RfZWxpZ2libGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJp
YXNpbmdfZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogcGFyZW50X2dsb2JhbCkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVj
dG9yeTsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWdfcHRyOwot
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnOwotICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXcgdmlldzsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9j
b25maWcgY29uZmlnOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKAotICAgICAgICBwYXJlbnRf
Z2xvYmFsID09Ci0gICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5
LT5wYXJlbnRfZ2xvYmFsKSk7Ci0KLSAgICBkaXJlY3RvcnkgPSAmYmlhc2luZ19kaXJlY3Rvcnkt
PmJhc2U7Ci0gICAgcGFnZV9jb25maWdfcHRyID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCk7Ci0gICAgcGFnZV9j
b25maWcgPSAqcGFnZV9jb25maWdfcHRyOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKAotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2Vf
Y29uZmlnKSA9PSBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0gICAgCi0gICAgdmlldyA9IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbCgKLSAgICAg
ICAgZGlyZWN0b3J5LCAmY29uZmlnLAotICAgICAgICB0YWtlX2ZpcnN0X2VsaWdpYmxlX2xvb3Bf
aGVhZF9jYWxsYmFjaywKLSAgICAgICAgdGFrZV9maXJzdF9lbGlnaWJsZV9jcmVhdGVfbmV3X3Zp
ZXdfY2FsbGJhY2spOwotCi0gICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2RpZF91c2VfaW5kZXgo
Ci0gICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBjb25maWcuaW5kZXgs
IHBhc19nZXRfZXBvY2goKSk7Ci0gICAgCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFQQVNfU0VH
UkVHQVRFRF9ESVJFQ1RPUllfR0VUX0JJVCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp
cmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfaW5kZXgodmlldyksIGVsaWdpYmxlKSk7
Ci0KLSAgICByZXR1cm4gdmlldzsKLX0KLQotcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVz
dWx0Ci1wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2xhc3RfdW51c2VkKAot
ICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeSkK
LXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKLSAgICB1
bnNpZ25lZCBvd25lcnNoaXBfdGhyZXNob2xkOwotICAgIGJvb2wgZGlkX2ZpbmRfZWxpZ2libGVf
cGFnZTsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFzX3ZlcnNpb25lZF9maWVsZCBlbGlnaWJs
ZV9oaWdoX3dhdGVybWFyazsKLSAgICBzaXplX3QgbmV3X2VsaWdpYmxlX3dhdGVybWFyazsKLSAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLQotICAgIHBhZ2VfY29u
ZmlnID0gKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhiaWFzaW5n
X2RpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKLQotICAgIFBBU19BU1NFUlQocGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykg
PT0gcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgIAotICAgIHNpemVfZGlyZWN0b3J5ID0gcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251
bGwoCi0gICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+cGFyZW50X2dsb2JhbCk7Ci0KLSAgICBv
d25lcnNoaXBfdGhyZXNob2xkID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X293bmVyc2hpcF90aHJl
c2hvbGQoJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UpOwotCi0gICAgLyogUmVhZCB0
byB3YXRjaCBzbyB0aGF0IGlmIGFueW9uZSB1cGRhdGVzIHRoZSBlbGlnaWJsZV9oaWdoX3dhdGVy
bWFyayBkdXJpbmcgb3VyIHNjYW4sIHdlIHdvbid0Ci0gICAgICAgb3ZlcndyaXRlIGl0LiAqLwot
ICAgIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrID0gcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkX3Rv
X3dhdGNoKAotICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZS5lbGlnaWJs
ZV9oaWdoX3dhdGVybWFyayk7Ci0KLSAgICBQQVNfQVNTRVJUKGVsaWdpYmxlX2hpZ2hfd2F0ZXJt
YXJrLnZhbHVlCi0gICAgICAgICAgICAgICA8PSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6
ZSgmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UpKTsKLQotICAgIGlmICgoc2l6ZV90KW93bmVyc2hp
cF90aHJlc2hvbGQgPj0gZWxpZ2libGVfaGlnaF93YXRlcm1hcmsudmFsdWUpCi0gICAgICAgIHJl
dHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZTsKLQotICAgIGRp
ZF9maW5kX2VsaWdpYmxlX3BhZ2UgPSBmYWxzZTsKLQotICAgIG5ld19lbGlnaWJsZV93YXRlcm1h
cmsgPSBvd25lcnNoaXBfdGhyZXNob2xkOwotCi0gICAgZm9yIChpbmRleCA9IG93bmVyc2hpcF90
aHJlc2hvbGQ7IGluZGV4IDwgZWxpZ2libGVfaGlnaF93YXRlcm1hcmsudmFsdWU7ICsraW5kZXgp
IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiBiaWFzaW5nX3ZpZXc7Ci0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmVfdmlldzsKLSAg
ICAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKLSAgICAgICAgYm9vbCByZXN1bHQ7Ci0gICAgICAg
IGJvb2wgc2hvdWxkX25vdGlmeV9lbXB0aW5lc3M7Ci0gICAgICAgIAotICAgICAgICBpZiAoIVBB
U19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKCZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZSwg
aW5kZXgsIGVsaWdpYmxlLCBmYWxzZSkpIHsKLSAgICAgICAgICAgIC8qIElmIGl0J3MgaW5lbGln
aWJsZSB0aGVuIHdlIGp1c3QgZG9uJ3QgZG8gYW55dGhpbmcgdG8gaXQgYW5kIGxlYXZlIGl0IGJl
LiBJZiBpdCBiZWNvbWVzCi0gICAgICAgICAgICAgICBlbGlnaWJsZSB0aGVuIHRoYXQnbGwgdHJp
Z2dlciB0aGlzIGNvZGUgdG8gcmVydW4uICovCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGRpZF9maW5kX2VsaWdpYmxlX3BhZ2UgPSB0cnVlOwotCi0gICAgICAg
IGJpYXNpbmdfdmlldyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcoCi0gICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZiaWFzaW5nX2RpcmVjdG9yeS0+YmFz
ZSwgaW5kZXgpKTsKLSAgICAgICAgZXhjbHVzaXZlX3ZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZCgKLSAgICAgICAgICAgICZiaWFzaW5n
X3ZpZXctPmV4Y2x1c2l2ZSk7Ci0KLSAgICAgICAgaWYgKCFleGNsdXNpdmVfdmlldykgewotICAg
ICAgICAgICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29t
ZV9lbGlnaWJsZV9hdF9pbmRleF93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAgICAgICAgICAg
ICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZSwgaW5kZXgpOwotICAgICAgICAgICAgUEFTX0FT
U0VSVChyZXN1bHQpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAg
Ci0gICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJz
aGlwX2tpbmRfaXNfYmlhc2VkKAotICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmVfdmll
dy0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAgUEFTX0FTU0VSVCghUEFTX1NFR1JFR0FURURf
RElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICAgICAgICAgICAgICAgICZzaXplX2RpcmVjdG9y
eS0+YmFzZSwgZXhjbHVzaXZlX3ZpZXctPmluZGV4LCBlbGlnaWJsZSkpOwotICAgICAgICAKLSAg
ICAgICAgLyogVGhlIGVtcHR5IGJpdHMgc2hvdWxkbid0IGhhdmUgZXZlciBiZWVuIHNldC4gKi8K
LSAgICAgICAgUEFTX0FTU0VSVCghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0g
ICAgICAgICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZSwgaW5kZXgsIGVt
cHR5KSk7Ci0gICAgICAgIAotICAgICAgICBoZWxkX2xvY2sgPSBOVUxMOwotICAgICAgICBwYXNf
bG9ja19zd2l0Y2goJmhlbGRfbG9jaywgJmV4Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBfbG9jayk7
Ci0gICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJz
aGlwX2tpbmRfaXNfYmlhc2VkKAotICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmVfdmll
dy0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAgZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9r
aW5kID0KLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kX3dpdGhfYmlhc2VkKAotICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZV92aWV3LT5vd25l
cnNoaXBfa2luZCwgZmFsc2UpOwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAg
cGFzX2xvZygidmlldyAlcCBoYXMgb3duZXJzaGlwIGtpbmQgPSAlcyBkdWUgdG8gdGFrZV9sYXN0
X3VudXNlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlX3ZpZXcsCi0gICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5k
X2dldF9zdHJpbmcoCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmVfdmlldy0+b3du
ZXJzaGlwX2tpbmQpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHNob3VsZF9ub3RpZnlfZW1wdGlu
ZXNzID0gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQoCi0gICAgICAgICAgICAgICAgZXhjbHVz
aXZlX3ZpZXctPm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZSogcGFnZTsKLQotICAgICAgICAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9y
X2JvdW5kYXJ5KGV4Y2x1c2l2ZV92aWV3LT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyk7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2so
cGFnZSwgJmhlbGRfbG9jaywgcGFnZV9jb25maWcpOwotICAgICAgICAgICAgCi0gICAgICAgICAg
ICAvKiBJZiB0aGlzIGV4Y2x1c2l2ZSBhbHJlYWR5IGhhZCBhIHBhZ2UsIHRoZW4gdGhlIHBhZ2Ug
bXVzdCBiZSBzYXlpbmcgdGhhdCBpdCdzCi0gICAgICAgICAgICAgICBlbGlnaWJsZS4gKi8KLSAg
ICAgICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzaW5nKHBhZ2Ut
Pm93bmVyKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhZ2UtPm93bmVyID0gcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfdmlld19ub25fbnVsbChleGNsdXNpdmVfdmlldyk7
Ci0KLSAgICAgICAgICAgIHNob3VsZF9ub3RpZnlfZW1wdGluZXNzID0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIHBhZ2VfY29uZmlnKTsKLSAgICAgICAg
fQotCi0gICAgICAgIC8qIFRoaXMganVzdCBuZWVkcyB0byBoYXBwZW4gYmVmb3JlIHdlIHJlbGVh
c2UgZWxpZ2liaWxpdHkuICovCi0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X3B0cl9zdG9yZSgmYmlhc2luZ192aWV3LT5leGNsdXNpdmUsIE5VTEwp
OwotCi0gICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9i
ZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoCi0gICAgICAgICAgICAmc2l6ZV9kaXJlY3RvcnktPmJh
c2UsIGV4Y2x1c2l2ZV92aWV3LT5pbmRleCk7Ci0gICAgICAgIFBBU19BU1NFUlQocmVzdWx0KTsK
LSAgICAgICAgCi0gICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3
X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAg
ICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZSwgaW5kZXgpOwotICAgICAgICBQQVNf
QVNTRVJUKHJlc3VsdCk7Ci0KLSAgICAgICAgaWYgKHNob3VsZF9ub3RpZnlfZW1wdGluZXNzKSB7
Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2Vt
cHR5X2F0X2luZGV4KAotICAgICAgICAgICAgICAgICZzaXplX2RpcmVjdG9yeS0+YmFzZSwgZXhj
bHVzaXZlX3ZpZXctPmluZGV4KTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcGFzX2xv
Y2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotICAgIH0KLQotICAgIHBhc192ZXJzaW9uZWRf
ZmllbGRfdHJ5X3dyaXRlKAotICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFz
ZS5lbGlnaWJsZV9oaWdoX3dhdGVybWFyaywKLSAgICAgICAgZWxpZ2libGVfaGlnaF93YXRlcm1h
cmssIG5ld19lbGlnaWJsZV93YXRlcm1hcmspOwotCi0gICAgcmV0dXJuIGRpZF9maW5kX2VsaWdp
YmxlX3BhZ2UKLSAgICAgICAgPyBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzCi0g
ICAgICAgIDogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFibGU7Ci19Ci0K
LSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oCShub25leGlz
dGVudCkKQEAgLTEsNjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX1NFR1JFR0FURURfQklBU0lOR19ESVJFQ1RP
UllfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9CSUFTSU5HX0RJUkVDVE9SWV9ICi0KLSNpbmNs
dWRlICJwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeS5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5
OwotCi1zdHJ1Y3QgUEFTX0FMSUdORUQoc2l6ZW9mKHVpbnRwdHJfdCkgKiAyKSBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeSB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5IGJh
c2U7Ci0gICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5IGJpYXNpbmdfYmFzZTsKLSAgICBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIgcGFyZW50X2dsb2JhbDsK
LX07Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQKLXBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5X21hZ2F6aW5lX2luZGV4KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpCi17Ci0gICAgcmV0dXJuIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9tYWdhemluZV9p
bmRleCgmZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UpOwotfQotCi1QQVNfQVBJIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9j
cmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXJlbnRf
Z2xvYmFsLCB1bnNpZ25lZCBtYWdhemluZV9pbmRleCk7Ci0KLVBBU19BUEkgcGFzX3NlZ3JlZ2F0
ZWRfdmlldyBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdp
YmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXJlbnRfZ2xvYmFsKTsK
LQotUEFTX0FQSSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQKLXBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfbGFzdF91bnVzZWQoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0K
LSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9CSUFTSU5HX0RJUkVDVE9SWV9IICovCi0KSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlldy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYwko
bm9uZXhpc3RlbnQpCkBAIC0xLDE2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQ
QVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmgiCi0K
LSNpbmNsdWRlICJwYXNfZXBvY2guaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wu
aCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIK
LSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmgiCi0KLXBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2NyZWF0ZSgKLSAgICBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRl
eCkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHJlc3VsdDsKLQotICAgIHJl
c3VsdCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKHNpemVvZihwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXciLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0KLSAgICBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfc3RvcmUoJnJlc3VsdC0+ZXhjbHVz
aXZlLCBOVUxMKTsKLSAgICByZXN1bHQtPmluZGV4ID0gKHVuc2lnbmVkKWluZGV4OwotICAgIFBB
U19BU1NFUlQocmVzdWx0LT5pbmRleCA9PSBpbmRleCk7Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGlyZWN0b3J5LCBkaXJl
Y3RvcnkpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotYm9vbCBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXdfaXNfb3duZWQocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQot
ewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmVfdmlldzsKLSAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZCBvd25lcnNoaXBf
a2luZDsKLSAgICAKLSAgICBleGNsdXNpdmVfdmlldyA9IHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKCZ2aWV3LT5leGNsdXNpdmUpOwotICAgIAot
ICAgIGlmICghZXhjbHVzaXZlX3ZpZXcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIG93
bmVyc2hpcF9raW5kID0gZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5kOwotICAgIAotICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19v
d25lZChvd25lcnNoaXBfa2luZCkKLSAgICAgICAgJiYgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2VkKG93bmVyc2hpcF9raW5kKTsKLX0KLQotYm9v
bCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0gICAgZm9yICg7OykgewotICAgICAgICBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlX3ZpZXc7Ci0gICAgICAgIAot
ICAgICAgICBleGNsdXNpdmVfdmlldyA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKCZ2aWV3LT5leGNsdXNpdmUpOwotICAgICAgICAKLSAgICAg
ICAgaWYgKCFleGNsdXNpdmVfdmlldykKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
ICAgICBwYXNfbG9ja19sb2NrKCZleGNsdXNpdmVfdmlldy0+b3duZXJzaGlwX2xvY2spOwotCi0g
ICAgICAgIGlmIChleGNsdXNpdmVfdmlldyA9PSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZCgmdmlldy0+ZXhjbHVzaXZlKQotICAgICAgICAgICAg
JiYgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2Vk
KGV4Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBfa2luZCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgICAgICBwYXNfbG9ja191bmxvY2soJmV4Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBf
bG9jayk7Ci0gICAgfQotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19zaG91
bGRfdGFibGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3LCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZV92aWV3OwotICAgIAotICAgIGV4Y2x1c2l2ZV92aWV3
ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWQo
JnZpZXctPmV4Y2x1c2l2ZSk7Ci0gICAgCi0gICAgaWYgKCFleGNsdXNpdmVfdmlldykKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfc2hvdWxkX3RhYmxlKGV4Y2x1c2l2ZV92aWV3LCBwYWdlX2NvbmZpZyk7Ci19Ci0KLXZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X25vdGVfZWxpZ2liaWxpdHkocGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ192aWV3KiB2aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKQotewotICAgIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeTsKLSAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICB1bnNpZ25lZCB2aWV3X2luZGV4
OwotICAgIAotICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KTsKLSAg
ICBkaXJlY3RvcnkgPSAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2U7Ci0gICAgdmlld19pbmRleCA9
IHZpZXctPmluZGV4OwotICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmll
d19ub3RlX2VsaWdpYmlsaXR5X2ltcGwoCi0gICAgICAgIHBhZ2UsIGRpcmVjdG9yeSwgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXdfbm9uX251bGwodmlldyksIHZpZXdfaW5kZXgp
OwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3RlX2VtcHRpbmVzcygK
LSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZSogcGFnZSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rl
X2VtcHRpbmVzcygKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmV4Y2x1c2l2ZSksCi0gICAgICAgIHBh
Z2UpOwotfQotCi1wYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19j
b21wdXRlX3N1bW1hcnkocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7Ci0gICAgcGFzX2hlYXBf
c3VtbWFyeSByZXN1bHQ7Ci0gICAgCi0gICAgaWYgKCFwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXdfbG9ja19vd25lcnNoaXBfbG9jayh2aWV3KSkKLSAgICAgICAgcmV0dXJuIHBhc19oZWFwX3N1
bW1hcnlfY3JlYXRlX2VtcHR5KCk7Ci0gICAgCi0gICAgZXhjbHVzaXZlID0gcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoJnZpZXct
PmV4Y2x1c2l2ZSk7Ci0gICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZF9pc19iaWFzZWQoZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCkpOwot
ICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmlld19jb21wdXRlX3N1
bW1hcnlfaW1wbChleGNsdXNpdmUpOwotCi0gICAgcGFzX2xvY2tfdW5sb2NrKCZleGNsdXNpdmUt
Pm93bmVyc2hpcF9sb2NrKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlldyogdmlldykKLXsKLSAgICByZXR1cm4gUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9C
SVQoCi0gICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLT5iYXNlLAotICAgICAgICB2aWV3LT5p
bmRleCwgZWxpZ2libGUpOwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19p
c19lbXB0eShwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZTsKLSAgICBleGNsdXNpdmUgPSBwYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZCgmdmlldy0+
ZXhjbHVzaXZlKTsKLSAgICBpZiAoZXhjbHVzaXZlKQotICAgICAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaXNfZW1wdHkoZXhjbHVzaXZlKTsKLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oCShub25leGlzdGVudCkK
QEAgLTEsODggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX0JJQVNJTkdfVklFV19ICi0jZGVmaW5lIFBB
U19TRUdSRUdBVEVEX0JJQVNJTkdfVklFV19ICi0KLSNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3ZpZXcuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldzsKLQotc3RydWN0IHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlldyB7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfcHRyIGV4Y2x1c2l2ZTsKLSAgICB1bnNpZ25lZCBpbmRleDsgLyogSWYgd2Ug
d2FudGVkIHRvIGJlIGhhcmRjb3JlLCB3ZSBjb3VsZCBtYWtlIHRoaXMgb25lIGJ5dGUuICovCi0g
ICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5
OwotfTsKLQotc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF92aWV3Ci1wYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX3ZpZXdfYXNfdmlldyhwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcp
Ci17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3JlYXRlKHZpZXcsIHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlld19raW5kKTsKLX0KLQotc3RhdGljIGlubGluZSBwYXNfc2VncmVn
YXRlZF92aWV3Ci1wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfYXNfaW5lbGlnaWJsZV92aWV3
KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19jcmVhdGUodmlldywgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFz
aW5nX3ZpZXdfa2luZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwot
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXdfbm9uX251bGwocGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3
X2NyZWF0ZV9ub25fbnVsbCh2aWV3LCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZCk7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X2FzX2luZWxpZ2libGVfdmlld19ub25fbnVsbChwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3Jl
YXRlX25vbl9udWxsKHZpZXcsIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3
X2tpbmQpOwotfQotCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3X2NyZWF0ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRleCk7Ci0KLVBBU19BUEkgYm9v
bCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfaXNfb3duZWQocGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3KiB2aWV3KTsKLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXdfc2hvdWxkX3RhYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldywg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKLVBBU19BUEkgYm9vbCBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcpOwotCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X25vdGVfZWxpZ2liaWxpdHkocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
KiB2aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpOwotUEFTX0FQSSB2b2lkIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3RlX2VtcHRpbmVzcyhwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcqIHZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpOwotUEFTX0FQSSBwYXNf
aGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jb21wdXRlX3N1bW1hcnko
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KTsKLVBBU19BUEkgYm9vbCBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXdfaXNfZWxpZ2libGUocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3KiB2aWV3KTsKLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfaXNf
ZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KTsKLQotUEFTX0VORF9FWFRF
Uk5fQzsKLQotI2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX0JJQVNJTkdfVklFV19IICovCi0KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RlYWxs
b2NhdGlvbl9tb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fbW9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfU0VHUkVHQVRF
RF9ERUFMTE9DQVRJT05fTU9ERV9ICisjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RFQUxMT0NBVElP
Tl9NT0RFX0gKKworI2luY2x1ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7
CisKK2VudW0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUgeworICAgIHBhc19zZWdy
ZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZSwKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFs
bG9jYXRpb25fdG9fdmlld19jYWNoZV9tb2RlCit9OworCit0eXBlZGVmIGVudW0gcGFzX3NlZ3Jl
Z2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGU7
CisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9u
X21vZGVfZ2V0X3N0cmluZygKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZSBt
b2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX2RpcmVjdF9tb2RlOgorICAgICAgICByZXR1cm4gImRpcmVjdCI7CisgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fdG9fdmlld19jYWNoZV9tb2RlOgorICAgICAg
ICByZXR1cm4gInRvX3ZpZXdfY2FjaGUiOworICAgIH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxk
IG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1BBU19FTkRfRVhURVJO
X0M7CisKKyNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9ERUFMTE9DQVRJT05fTU9ERV9IICovCisK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYwkod29y
a2luZyBjb3B5KQpAQCAtNjEsOCArNjEsNyBAQCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0
X2RhdGFfc2xvdyhwCiAgICAgICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGEi
LAogICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKIAotICAgICAgICBwYXNfdmVy
c2lvbmVkX2ZpZWxkX2NvbnN0cnVjdCgmcmVzdWx0LT5maXJzdF9lbGlnaWJsZV9idXRfbm90X3Rh
YmxlZCwgMCk7Ci0gICAgICAgIHBhc192ZXJzaW9uZWRfZmllbGRfY29uc3RydWN0KCZyZXN1bHQt
PmZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWQsIDApOworICAgICAgICBwYXNfdmVyc2lvbmVkX2Zp
ZWxkX2NvbnN0cnVjdCgmcmVzdWx0LT5maXJzdF9lbGlnaWJsZSwgMCk7CiAgICAgICAgIHBhc192
ZXJzaW9uZWRfZmllbGRfY29uc3RydWN0KCZyZXN1bHQtPmxhc3RfZW1wdHlfcGx1c19vbmUsIDAp
OwogICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNf
Y29uc3RydWN0KCZyZXN1bHQtPmJpdHZlY3RvcnMpOwogICAgICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfdmlld192ZWN0b3JfY29uc3RydWN0KCZyZXN1bHQtPnZpZXdzKTsKQEAgLTE4Niw3
ICsxODUsNiBAQCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X3NoYXJpbmdfcGF5CiAKIFBB
U19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfbWluaW1pemVfZmlyc3RfZWxpZ2li
bGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCwKICAgICBzaXplX3Qg
aW5kZXgpCiB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CkBAIC0x
OTcsMTIgKzE5NSwxMSBAQCBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X21p
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX21pbmlt
aXplKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX2dldF9maXJzdF9lbGlnaWJsZV9wdHIo
ZGF0YSwga2luZCksIGluZGV4KTsKKyAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX21pbmltaXplKCZk
YXRhLT5maXJzdF9lbGlnaWJsZSwgaW5kZXgpOwogfQogCiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X3VwZGF0ZV9maXJzdF9lbGlnaWJsZV9hZnRlcl9zZWFyY2goCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCwKICAgICBwYXNfdmVyc2lvbmVkX2Zp
ZWxkIGZpcnN0X2VsaWdpYmxlLAogICAgIHNpemVfdCBuZXdfdmFsdWUpCiB7CkBAIC0yMTYsNTAg
KzIxMywyMiBAQCBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3VwCiAgICAg
fQogCiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF90cnlfd3JpdGVfd2F0Y2hlZCgKLSAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGFfZ2V0X2ZpcnN0X2VsaWdpYmxlX3B0cihkYXRh
LCBraW5kKSwKKyAgICAgICAgJmRhdGEtPmZpcnN0X2VsaWdpYmxlLAogICAgICAgICBmaXJzdF9l
bGlnaWJsZSwKICAgICAgICAgbmV3X3ZhbHVlKTsKIH0KIAotYm9vbCBwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4X3dpdGhvdXRfYmlhc2lu
Z191cGRhdGUoCitib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVf
ZWxpZ2libGVfYXRfaW5kZXgoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCiAgICAgc2l6ZV90IGluZGV4KQogewogICAgIGlmIChQQVNfU0VHUkVHQVRFRF9ESVJFQ1RP
UllfU0VUX0JJVChkaXJlY3RvcnksIGluZGV4LCBlbGlnaWJsZSwgdHJ1ZSkpIHsKLSAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X21pbmltaXplX2ZpcnN0X2VsaWdpYmxlKAotICAgICAg
ICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVf
YnV0X25vdF90YWJsZWRfa2luZCwgaW5kZXgpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfbWluaW1pemVfZmlyc3RfZWxpZ2libGUoZGlyZWN0b3J5LCBpbmRleCk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKLSAg
ICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgp
Ci17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0
b3J5OwotICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2Jl
Y29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAgICAgICAg
ICAgZGlyZWN0b3J5LCBpbmRleCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChk
aXJlY3RvcnktPmRpcmVjdG9yeV9raW5kICE9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5X2tpbmQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgYmlhc2luZ19kaXJlY3Rvcnkg
PSAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLQotICAgIHBh
c19iaWFzaW5nX2RpcmVjdG9yeV9pbmRleF9kaWRfYmVjb21lX2VsaWdpYmxlKCZiaWFzaW5nX2Rp
cmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBpbmRleCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV93aXRo
b3V0X2JpYXNpbmdfdXBkYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRo
b3V0X2JpYXNpbmdfdXBkYXRlKAotICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X2luZGV4KHZpZXcpKTsKLX0KLQogYm9vbCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
dmlld19kaWRfYmVjb21lX2VsaWdpYmxlKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKQEAgLTQxMiwxMSArMzgx
LDcgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYXBwZW5kKAogICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlld19raW5kOgotICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+ZGlyZWN0
b3J5X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2tpbmQpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5k
OgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoK
LSAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09IHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQpOworICAgICAgICBQQVNfQVNTRVJUKGRpcmVj
dG9yeS0+ZGlyZWN0b3J5X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfa2lu
ZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdf
a2luZDoKICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09IHBh
c19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9raW5kKTsKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAt
NzYsMzAgKzc2LDIzIEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0dmVjdG8K
ICAgICAvKiBFbXB0eSBtZWFucyB0aGF0IHRoZSBwYWdlIGhhcyBzdHVmZiB0aGF0IGNhbiBiZSBk
ZWNvbW1pdHRlZC4gSG93ZXZlciwgdGhpcyBiaXQgaGFzIG5vIG1lYW5pbmcgaWYKICAgICAgICB0
aGUgZWxpZ2libGUgYml0IGlzIG5vdCBzZXQuICovCiAgICAgdW5zaWduZWQgZW1wdHlfYml0czsK
LQotICAgIC8qIFRhYmxlZCBtZWFucyB0aGF0IHdlIGhhdmUgcHJldmlvdXNseSBmb3VuZCB0aGlz
IHBhZ2UgdG8gYmUgdG90YWxseSBmcmVlIG9mIG9iamVjdHMsIHNvIHdlJ2QgbGlrZQotICAgICAg
IHRvIGRlZmVyIGFsbG9jYXRpbmcgaW4gdGhlIHBhZ2UgdW50aWwgd2UgYWxsb2NhdGUgaW4gcGFn
ZXMgdGhhdCBhcmVuJ3QgdG90YWxseSBmcmVlLiAqLwotICAgIHVuc2lnbmVkIHRhYmxlZF9iaXRz
OwogfTsKIAogLyogRklYTUU6IEF0dGVtcHQgdG8gaW50cm9kdWNlIGNvZGUgdG8gcGFjayB0aGUg
Yml0dmVjdG9yIGlmIHdlIGRvbid0IG5lZWQgdGhlIGVtcHR5IGJpdHMuIEN1cnJlbnRseQogICAg
dGhpcyBpcyBub3QgdXNlZCwgYnV0IHNob3VsZCBiZS4gKi8KIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9kaXJlY3Rvcnlfc2ltcGxlX2JpdHZlY3Rvcl9zZWdtZW50IHsKICAgICB1bnNpZ25lZCBlbGln
aWJsZV9iaXRzOwotICAgIHVuc2lnbmVkIHRhYmxlZF9iaXRzOwogfTsKIAogI2RlZmluZSBQQVNf
U0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUVkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIgXAogICAg
ICgocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50KXsgXAogICAgICAg
ICAuZWxpZ2libGVfYml0cyA9IDAsIFwKLSAgICAgICAgLmVtcHR5X2JpdHMgPSAwLCBcCi0gICAg
ICAgIC50YWJsZWRfYml0cyA9IDAgXAorICAgICAgICAuZW1wdHlfYml0cyA9IDAgXAogICAgIH0p
CiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX1NJTVBMRV9CSVRWRUNUT1JfU0VH
TUVOVF9JTklUSUFMSVpFUiBcCiAgICAgKChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2ltcGxl
X2JpdHZlY3Rvcl9zZWdtZW50KXsgXAotICAgICAgICAuZWxpZ2libGVfYml0cyA9IDAsIFwKLSAg
ICAgICAgLnRhYmxlZF9iaXRzID0gMCBcCisgICAgICAgIC5lbGlnaWJsZV9iaXRzID0gMCBcCiAg
ICAgfSkKIAogUEFTX0RFQ0xBUkVfU0VHTUVOVEVEX1ZFQ1RPUihwYXNfc2VncmVnYXRlZF9kaXJl
Y3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnMsCkBAIC0xMjcsMjIgKzEyMCwxOCBAQCBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5IHsKIAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJF
Q1RPUllfQklUU19FTElHSUJMRV9TSElGVCAgICAgICAwdQogI2RlZmluZSBQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfQklUU19FTVBUWV9TSElGVCAgICAgICAgICAxdQotI2RlZmluZSBQQVNfU0VH
UkVHQVRFRF9ESVJFQ1RPUllfQklUU19UQUJMRURfU0hJRlQgICAgICAgICAydQogCi0jZGVmaW5l
IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX01JU0NfU0hJRlQgICAgICAgICAgIDN1Ci0j
ZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX09USEVSX01JU0NfU0hJRlQgICAg
IDR1CisjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX01JU0NfU0hJRlQgICAg
ICAgICAgIDJ1CisjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX09USEVSX01J
U0NfU0hJRlQgICAgIDN1CiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNf
RUxJR0lCTEVfTUFTSyBcCiAgICAgKDF1IDw8IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRT
X0VMSUdJQkxFX1NISUZUKQogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19F
TVBUWV9NQVNLIFwKICAgICAoMXUgPDwgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRU1Q
VFlfU0hJRlQpCi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX1RBQkxFRF9N
QVNLIFwKLSAgICAoMXUgPDwgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfVEFCTEVEX1NI
SUZUKQogCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX1ZJRVdfTUFTSyBc
CiAgICAgKFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX01BU0sgfCBcCi0g
ICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VNUFRZX01BU0sgfCBcCi0gICAgIFBB
U19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX1RBQkxFRF9NQVNLKQorICAgICBQQVNfU0VHUkVH
QVRFRF9ESVJFQ1RPUllfQklUU19FTVBUWV9NQVNLKQogCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVE
X0RJUkVDVE9SWV9CSVRTX01JU0NfTUFTSyBcCiAgICAgKDF1IDw8IFBBU19TRUdSRUdBVEVEX0RJ
UkVDVE9SWV9CSVRTX01JU0NfU0hJRlQpCkBAIC0xNTQsMTYgKzE0Myw5IEBAIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnkgewogICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRT
X0VMSUdJQkxFX01BU0sKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfZW1w
dHlfTUFTSyBcCiAgICAgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRU1QVFlfTUFTSwot
I2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU190YWJsZWRfTUFTSyBcCi0gICAg
UEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfVEFCTEVEX01BU0sKLQotI2RlZmluZSBQQVNf
U0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19lbGlnaWJsZV9BVkFJTEFCTEVfSU5fQklBU0lORyAg
ICAgdHJ1ZQotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19lbXB0eV9BVkFJ
TEFCTEVfSU5fQklBU0lORyAgZmFsc2UKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X0JJVFNfdGFibGVkX0FWQUlMQUJMRV9JTl9CSUFTSU5HICAgICAgIHRydWUKIAogc3RydWN0IFBB
U19BTElHTkVEKHNpemVvZihwYXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2RhdGEgewotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZmlyc3RfZWxpZ2libGVfYnV0
X25vdF90YWJsZWQ7Ci0gICAgcGFzX3ZlcnNpb25lZF9maWVsZCBmaXJzdF9lbGlnaWJsZV9hbmRf
dGFibGVkOworICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZmlyc3RfZWxpZ2libGU7CiAgICAgcGFz
X3ZlcnNpb25lZF9maWVsZCBsYXN0X2VtcHR5X3BsdXNfb25lOyAvKiBaZXJvIG1lYW5zIHRoZXJl
IGFyZW4ndCBhbnkuICovCiAKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2VnbWVudGVk
X2JpdHZlY3RvcnMgYml0dmVjdG9yczsKQEAgLTI2MSw3ICsyNDMsNiBAQCBwYXNfc2VncmVnYXRl
ZF9kaXJlY3Rvcnlfc3Bvb2ZfaW5saW5lX3NlCiAgICAgCiAgICAgc2VnbWVudC5lbGlnaWJsZV9i
aXRzID0gKGJpdHMgPj4gUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRUxJR0lCTEVfU0hJ
RlQpICYgMXU7CiAgICAgc2VnbWVudC5lbXB0eV9iaXRzID0gKGJpdHMgPj4gUEFTX1NFR1JFR0FU
RURfRElSRUNUT1JZX0JJVFNfRU1QVFlfU0hJRlQpICYgMXU7Ci0gICAgc2VnbWVudC50YWJsZWRf
Yml0cyA9IChiaXRzID4+IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX1RBQkxFRF9TSElG
VCkgJiAxdTsKIAogICAgIHJldHVybiBzZWdtZW50OwogfQpAQCAtMzA1LDEwICsyODYsNiBAQCBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc3Bvb2ZfaW5saW5lX3NlCiAgICAgICAgIF92YWx1ZSA9
ICh2YWx1ZSk7IFwKICAgICAgICAgXAogICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoX2luZGV4
IDwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KSk7IFwKLSAgICAgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKCBcCi0gICAgICAgICAgICAhX3ZhbHVlIFwKLSAgICAgICAgICAg
IHx8IF9kaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kICE9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5X2tpbmQgXAotICAgICAgICAgICAgfHwgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X0JJVFNfIyNiaXRfbmFtZSMjX0FWQUlMQUJMRV9JTl9CSUFTSU5HKTsgXAogICAgICAgICBcCiAg
ICAgICAgIGlmICghX2luZGV4KSB7IFwKICAgICAgICAgICAgIF9yZXN1bHQgPSBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfYml0c19zZXRfYnlfbWFzayggXApAQCAtNDA3LDM3ICszODQsMTUgQEAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3N0YXJ0X3NoYXJpbmdfaQogICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9nZXRfc2hhcmluZ19wYXlsb2FkKGRpcmVjdG9yeSwgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgcGFzX3ZlcnNpb25lZF9maWVsZCogcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGFfZ2V0X2ZpcnN0X2VsaWdpYmxlX3B0cigKLSAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YSogZGF0YSwKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZCBraW5kKQotewotICAgIHN3aXRjaCAoa2luZCkgewot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2J1dF9ub3Rf
dGFibGVkX2tpbmQ6Ci0gICAgICAgIHJldHVybiAmZGF0YS0+Zmlyc3RfZWxpZ2libGVfYnV0X25v
dF90YWJsZWQ7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2li
bGVfYW5kX3RhYmxlZF9raW5kOgotICAgICAgICByZXR1cm4gJmRhdGEtPmZpcnN0X2VsaWdpYmxl
X2FuZF90YWJsZWQ7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNo
ZWQiKTsKLSAgICByZXR1cm4gTlVMTDsKLX0KLQogUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9taW5pbWl6ZV9maXJzdF9lbGlnaWJsZSgKICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3Rf
ZWxpZ2libGVfa2luZCBraW5kLAogICAgIHNpemVfdCBpbmRleCk7CiAKIFBBU19BUEkgdm9pZCBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfdXBkYXRlX2ZpcnN0X2VsaWdpYmxlX2FmdGVyX3NlYXJj
aCgKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZCBraW5kLAogICAgIHBhc192ZXJz
aW9uZWRfZmllbGQgZmlyc3RfZWxpZ2libGUsCiAgICAgc2l6ZV90IG5ld192YWx1ZSk7CiAKLVBB
U19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdp
YmxlX2F0X2luZGV4X3dpdGhvdXRfYmlhc2luZ191cGRhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4KTsKLVBBU19BUEkgYm9vbCBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX3dpdGhvdXRf
Ymlhc2luZ191cGRhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIFBBU19BUEkgYm9vbCBwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAogICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBpbmRleCk7CkBA
IC00NjMsMTIgKzQxOCw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9kaXJl
Y3QKICAgICByZXR1cm4gUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoZGlyZWN0b3J5
LCBpbmRleCwgZW1wdHkpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lzX3RhYmxlZCgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwgc2l6ZV90IGluZGV4KQotewotICAgIHJldHVybiBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RP
UllfR0VUX0JJVChkaXJlY3RvcnksIGluZGV4LCB0YWJsZWQpOwotfQotCiBQQVNfQVBJIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgKICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgc2l6ZV90IGluZGV4KTsKIApAQCAtNDgzLDMwICs0MzIs
MTUgQEAgUEFTX0FQSSBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5XwogCiBzdGF0aWMg
aW5saW5lIHBhc192ZXJzaW9uZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9m
aXJzdF9lbGlnaWJsZV9pbXBsKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtp
bmQsCiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZCAoKnJlYWQpKHBhc192ZXJzaW9uZWRfZmllbGQq
IGZpZWxkKSkKIHsKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAg
ICB1bnNpZ25lZCBleHBlY3RlZDsKIAogICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKICAgICBpZiAoZGF0YSkKLSAgICAg
ICAgcmV0dXJuIHJlYWQocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGFfZ2V0X2ZpcnN0X2Vs
aWdpYmxlX3B0cihkYXRhLCBraW5kKSk7CisgICAgICAgIHJldHVybiByZWFkKCZkYXRhLT5maXJz
dF9lbGlnaWJsZSk7CiAKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9idXRfbm90X3RhYmxlZF9raW5kOgotICAgICAg
ICBleHBlY3RlZCA9IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX01BU0s7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0
X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZDoKLSAgICAgICAgZXhwZWN0ZWQgPQotICAgICAgICAg
ICAgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRUxJR0lCTEVfTUFTSyB8Ci0gICAgICAg
ICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19UQUJMRURfTUFTSzsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotICAgIAotICAgIGlmICgoZGlyZWN0b3J5LT5iaXRzICYgKFBBU19TRUdS
RUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX01BU0sgfAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX1RBQkxFRF9NQVNLKSkKLSAg
ICAgICAgPT0gZXhwZWN0ZWQpCisgICAgaWYgKGRpcmVjdG9yeS0+Yml0cyAmIFBBU19TRUdSRUdB
VEVEX0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX01BU0spCiAgICAgICAgIHJldHVybiBwYXNfdmVy
c2lvbmVkX2ZpZWxkX2NyZWF0ZV93aXRoX2ludmFsaWRfdmVyc2lvbigwKTsKIAogICAgIHJldHVy
biAhcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfdmlld19pc19udWxsKCZkaXJlY3Rvcnkt
PmZpcnN0X3ZpZXcpCkBAIC01MTUsMjcgKzQ0OSwyNCBAQCBzdGF0aWMgaW5saW5lIHBhc192ZXJz
aW9uZWRfZmllbGQgcGFzX3NlCiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3ZlcnNpb25lZF9maWVs
ZCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlKAotICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQpCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9n
ZXRfZmlyc3RfZWxpZ2libGVfaW1wbCgKLSAgICAgICAgZGlyZWN0b3J5LCBraW5kLCBwYXNfdmVy
c2lvbmVkX2ZpZWxkX3JlYWQpOworICAgICAgICBkaXJlY3RvcnksIHBhc192ZXJzaW9uZWRfZmll
bGRfcmVhZCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3ZlcnNpb25lZF9maWVsZCBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlX3Rvcm4oCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCkKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSkKIHsKICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9m
aXJzdF9lbGlnaWJsZV9pbXBsKAotICAgICAgICBkaXJlY3RvcnksIGtpbmQsIHBhc192ZXJzaW9u
ZWRfZmllbGRfcmVhZF90b3JuKTsKKyAgICAgICAgZGlyZWN0b3J5LCBwYXNfdmVyc2lvbmVkX2Zp
ZWxkX3JlYWRfdG9ybik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3ZlcnNpb25lZF9maWVsZCBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfd2F0Y2hfZmlyc3RfZWxpZ2libGUoCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCkKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSkKIHsKICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dl
dF9maXJzdF9lbGlnaWJsZV9pbXBsKAotICAgICAgICBkaXJlY3RvcnksIGtpbmQsIHBhc192ZXJz
aW9uZWRfZmllbGRfcmVhZF90b193YXRjaCk7CisgICAgICAgIGRpcmVjdG9yeSwgcGFzX3ZlcnNp
b25lZF9maWVsZF9yZWFkX3RvX3dhdGNoKTsKIH0KIAogc3RhdGljIGlubGluZSBwYXNfdmVyc2lv
bmVkX2ZpZWxkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfbGFzdF9lbXB0eV9wbHVzX29u
ZV9pbXBsKApAQCAtNjEzLDggKzU0NCw3IEBAIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfYXAKIAogLyogVGhpcyBoYXMgYSBtYXhpbWFsbHkgaW5jbHVzaW9uIHdheSBvZiB0
cmVhdGluZyBtZW1vcnkgdGhhdCBtdWx0aXBsZSB2aWV3cyBtYXkgaGF2ZSBkaWJzIG9uLiBGb3IK
ICAgIGV4YW1wbGUsIHNoYXJlZCBwYWdlIGRpcmVjdG9yaWVzIGFuZCBwYXJ0aWFsIHZpZXdzIGlu
IHNpemUgZGlyZWN0b3JpZXMgbWF5IHJlcG9ydCBvbiB0aGUgc2FtZQotICAgYnl0ZXMgb2YgbWVt
b3J5LiBFeGNsdXNpdmUgdmlld3MgaW4gYSBnbG9iYWwgc2l6ZSBkaXJlY3RvcnkgbWF5IHJlcG9y
dCBvbiB0aGUgc2FtZSBtZW1vcnkgYXMKLSAgIGJpYXNpbmcgdmlld3MgaW4gYmlhc2luZyBkaXJl
Y3Rvcmllcy4gKi8KKyAgIGJ5dGVzIG9mIG1lbW9yeS4gKi8KIFBBU19BUEkgcGFzX2hlYXBfc3Vt
bWFyeQogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeShwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9y
ZWZlcmVuY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDEwICsxMjUsNiBAQCBzdGF0aWMgaW5s
aW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0CiAgICAgICAgIF92YWx1ZSA9ICh2YWx1ZSk7
IFwKICAgICAgICAgXAogICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIXBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlX2lzX251bGwoX3JlZmVyZW5jZSkpOyBcCi0gICAgICAg
IFBBU19URVNUSU5HX0FTU0VSVCggXAotICAgICAgICAgICAgIV92YWx1ZSBcCi0gICAgICAgICAg
ICB8fCBfZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X2RpcmVjdG9yeV9raW5kIFwKLSAgICAgICAgICAgIHx8IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9S
WV9CSVRTXyMjYml0X25hbWUjI19BVkFJTEFCTEVfSU5fQklBU0lORyk7IFwKICAgICAgICAgXAog
ICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2VfaXNfaW5s
aW5lKF9yZWZlcmVuY2UpKSB7IFwKICAgICAgICAgICAgIGZvciAoOzspIHsgXApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIsOCArMjQyLDcgQEAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfYmFja3dhcgogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
Ym9vbAogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZF90b190YWtlX2Zp
cnN0X2VsaWdpYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZp
ZyogY29uZmlnLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9r
aW5kIGZpcnN0X2VsaWdpYmxlX2tpbmQpCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0
ZXJhdGVfY29uZmlnKiBjb25maWcpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOwogICAgIHN0YXRpYyBjb25zdCBib29sIHNpbXBsZV9lbGlnaWJpbGl0eSA9IGZhbHNl
OwpAQCAtMjU5LDggKzI1OCw3IEBAIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2Zv
cndhcmQKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCJwcmV2aW91
c19zaXplID0gJXp1XG4iLCBwcmV2aW91c19zaXplKTsKIAotICAgICAgICBmaXJzdF9lbGlnaWJs
ZSA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV93YXRjaF9maXJzdF9lbGlnaWJsZSgKLSAgICAg
ICAgICAgIGNvbmZpZy0+ZGlyZWN0b3J5LCBmaXJzdF9lbGlnaWJsZV9raW5kKTsKKyAgICAgICAg
Zmlyc3RfZWxpZ2libGUgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfd2F0Y2hfZmlyc3RfZWxp
Z2libGUoY29uZmlnLT5kaXJlY3RvcnkpOwogCiAgICAgICAgIGlmIChzaW1wbGVfZWxpZ2liaWxp
dHkpCiAgICAgICAgICAgICBjb25maWctPmluZGV4ID0gMDsKQEAgLTMwNSw3ICszMDMsNiBAQCBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkCiAgICAgICAgIAogICAgICAg
ICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfdXBkYXRlX2ZpcnN0X2VsaWdpYmxlX2FmdGVyX3Nl
YXJjaCgKICAgICAgICAgICAgIGNvbmZpZy0+ZGlyZWN0b3J5LAotICAgICAgICAgICAgZmlyc3Rf
ZWxpZ2libGVfa2luZCwKICAgICAgICAgICAgIGZpcnN0X2VsaWdpYmxlLAogICAgICAgICAgICAg
Y29uZmlnLT5maXJzdF9jb25zaWRlcmVkKTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9raW5kLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzQsMTYgKzM0LDEzIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICAgIAogICAgICAgIC0g
ZGlyZWN0b3J5CiAgICAgICAgICAgIC0gc2l6ZSBkaXJlY3RvcnkKLSAgICAgICAgICAgICAgIC0g
Z2xvYmFsIHNpemUgZGlyZWN0b3J5Ci0gICAgICAgICAgICAgICAtIGJpYXNpbmcgZGlyZWN0b3J5
CiAgICAgICAgICAgIC0gc2hhcmVkIHBhZ2UgZGlyZWN0b3J5CiAgICAKICAgIE9ubHkgdGhlIHR5
cGVzIGF0IHRoZSBsZWF2ZXMgYXJlIGluc3RhbnRpYWJsZS4gVGhlIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9raW5kIGVudW0gaXMgZm9yCiAgICBkZXNjcmliaW5nIHRoZSBpbnN0YW50aWFibGUg
bGVhdmVzLiAqLwogCiBlbnVtIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kIHsKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZCwKLSAgICBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kLAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2tpbmQsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2tp
bmQKIH07CiAKQEAgLTUzLDEwICs1MCw4IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFz
X3NlZ3JlZ2F0ZWQKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZCBraW5kKQogewog
ICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiAic2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2lu
ZDoKLSAgICAgICAgcmV0dXJuICJzZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5IjsKKyAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2tpbmQ6CisgICAgICAgIHJldHVybiAi
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSI7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfcGFnZV9kaXJlY3Rvcnlfa2luZDoKICAgICAgICAgcmV0dXJuICJzZWdyZWdhdGVkX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeSI7CiAgICAgfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBAIC0z
NiwxMCArMzYsMTAgQEAKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKICNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKIAogcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2NyZWF0ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAg
IHNpemVfdCBpbmRleCkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CkBAIC01Niw2NyArNTYsMTYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19z
ZWdyZQogCiAgICAgLyogV2UgYWxsb2NhdGUgdGhpcyBsYXppbHkuICovCiAgICAgcmVzdWx0LT5w
YWdlX2JvdW5kYXJ5ID0gTlVMTDsKLSAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOwor
ICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1
bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKICAgICByZXN1bHQtPmluZGV4ID0gKHVuc2lnbmVk
KWluZGV4OwogICAgIFBBU19BU1NFUlQocmVzdWx0LT5pbmRleCA9PSBpbmRleCk7Ci0gICAgcmVz
dWx0LT5vd25lcnNoaXBfa2luZCA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9v
d25lZDsKKyAgICByZXN1bHQtPmlzX293bmVkID0gZmFsc2U7CiAgICAgcGFzX2xvY2tfY29uc3Ry
dWN0KCZyZXN1bHQtPmNvbW1pdF9sb2NrKTsKICAgICBwYXNfbG9ja19jb25zdHJ1Y3QoJnJlc3Vs
dC0+b3duZXJzaGlwX2xvY2spOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19zaG91bGRfdGFibGUoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcq
IHBhZ2VfY29uZmlnKQotewotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZXJzaGlwX2tpbmRfaXNfb3duZWQodmlldy0+b3duZXJzaGlwX2tpbmQpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiAhcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRh
cnkodmlldy0+cGFnZV9ib3VuZGFyeSwgKnBhZ2VfY29uZmlnKS0+bnVtX25vbl9lbXB0eV93b3Jk
czsKLX0KLQotdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfbm90ZV9lbGln
aWJpbGl0eV9pbXBsKAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBl
bGlnaWJsZV9vd25pbmdfdmlldywKLSAgICB1bnNpZ25lZCB2aWV3X2luZGV4KQotewotICAgIHN0
YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLQotICAgIFBBU19URVNUSU5HX0FTU0VS
VChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlX2tpbmQoZWxpZ2libGVfb3duaW5nX3Zp
ZXcpKTsKLSAgICAKLSAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgcGFzX2xvZygiTm90aW5nIGVs
aWdpYmlsaXR5IGluIGV4Y2x1c2l2ZSAlcC8lcC5cbiIsIGVsaWdpYmxlX293bmluZ192aWV3LCBw
YWdlKTsKLSAgICAgICAgCi0gICAgaWYgKHBhZ2UtPmxvY2tfcHRyKQotICAgICAgICBwYXNfbG9j
a190ZXN0aW5nX2Fzc2VydF9oZWxkKHBhZ2UtPmxvY2tfcHRyKTsKLSAgICAKLSAgICBpZiAocGFn
ZS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAg
ICAgICAgICAgcGFzX2xvZygiRGVmZXJyaW5nIGVsaWdpYmlsaXR5IG5vdGlmaWNhdGlvbi5cbiIp
OwotICAgICAgICBwYWdlLT5lbGlnaWJpbGl0eV9ub3RpZmljYXRpb25faGFzX2JlZW5fZGVmZXJy
ZWQgPSB0cnVlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAg
ICAgcGFzX2xvZygiVGVsbGluZyB0aGUgZGlyZWN0b3J5IHRoYXQgd2UgYXJlIGVsaWdpYmxlLlxu
Iik7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxp
Z2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCB2aWV3X2luZGV4KTsKLSAgICB9Ci0gICAgCi0gICAg
LyogQ2xlYXIgdGhlIGluZWxpZ2libGUgYml0IGZyb20gdGhlIG93bmVyIGZpZWxkLiAqLwotICAg
IHBhZ2UtPm93bmVyID0gZWxpZ2libGVfb3duaW5nX3ZpZXc7Ci19Ci0KLXZvaWQgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSgKLSAgICBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldyogdmlldywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKQot
ewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmlld19ub3RlX2VsaWdpYmlsaXR5
X2ltcGwoCi0gICAgICAgIHBhZ2UsCi0gICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+
YmFzZSwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfdmlld19ub25f
bnVsbCh2aWV3KSwKLSAgICAgICAgdmlldy0+aW5kZXgpOwotfQotCiB2b2lkIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZW1wdGluZXNzKAogICAgIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3KiB2aWV3LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpCkBAIC0x
MzAsMTYgKzc5LDE1IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV8K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGRpcmVjdG9yeSA9ICZwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+
ZGlyZWN0b3J5KS0+YmFzZTsKKyAgICBkaXJlY3RvcnkgPSAmcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFz
ZTsKICAgICB2aWV3X2luZGV4ID0gdmlldy0+aW5kZXg7CiAgICAgCiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleChkaXJlY3RvcnksIHZp
ZXdfaW5kZXgpOwogfQogCi1wYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV9pc2hfdmlld19jb21wdXRlX3N1bW1hcnlfaW1wbCgKLSAgICBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldyogdmlldykKK3N0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5IGNvbXB1dGVfc3VtbWFy
eV9pbXBsKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3KQogewotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5OwogICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnKiBwYWdlX2NvbmZpZ19wdHI7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFn
ZV9jb25maWc7CkBAIC0xNTAsMTIgKzk4LDEyIEBAIHBhc19oZWFwX3N1bW1hcnkgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXYKICAgICBzaXplX3Qgb2Zmc2V0OwogICAgIHNpemVfdCBiZWdpbjsKICAg
ICBzaXplX3QgZW5kOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhKiBkYXRhOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7
CiAKLSAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpOworICAgIHNp
emVfZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KTsKIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQodmlldy0+b3duZXJzaGlw
X2tpbmQpKSB7Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKKyAgICBpZiAoIXZp
ZXctPmlzX293bmVkKSB7CisgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jb21wdXRlX3N1bW1hcnlfZm9yX3Vub3duZWRfZXhjbHVzaXZlKAogICAgICAgICAgICAg
c2l6ZV9kaXJlY3RvcnkpOwogICAgIH0KIApAQCAtMTY1LDcgKzExMyw3IEBAIHBhc19oZWFwX3N1
bW1hcnkgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXYKICAgICAKICAgICByZXN1bHQgPSBwYXNfaGVh
cF9zdW1tYXJ5X2NyZWF0ZV9lbXB0eSgpOwogCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZzaXplX2RpcmVjdG9yeS0+ZGF0YSk7
CisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQo
JnNpemVfZGlyZWN0b3J5LT5kYXRhKTsKICAgICBib3VuZGFyeSA9IHZpZXctPnBhZ2VfYm91bmRh
cnk7CiAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KGJvdW5kYXJ5
LCBwYWdlX2NvbmZpZyk7CiAKQEAgLTIwOSw3ICsxNTcsNyBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2CiAgICAgcGFzX2hlYXBfc3VtbWFyeSByZXN1bHQ7CiAgICAg
CiAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgIHJlc3VsdCA9
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmlld19jb21wdXRlX3N1bW1hcnlfaW1wbCh2
aWV3KTsKKyAgICByZXN1bHQgPSBjb21wdXRlX3N1bW1hcnlfaW1wbCh2aWV3KTsKICAgICBwYXNf
bG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKIAogICAgIHJldHVybiByZXN1bHQ7
CkBAIC0yMjAsMTMgKzE2OCwxMyBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2luc3RhCiB7CiAgICAgdm9pZCogYm91bmRhcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnOwogICAgIHBhc19wYWdlX2dyYW51
bGVfdXNlX2NvdW50KiB1c2VfY291bnRzOwogICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50
KiBmdWxsX3VzZV9jb3VudHM7CiAgICAgc2l6ZV90IG51bV9ncmFudWxlczsKIAotICAgIGRpcmVj
dG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpOworICAgIGRpcmVjdG9yeSA9IHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRp
cmVjdG9yeSk7CiAgICAgcGFnZV9jb25maWcgPSAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKICAgICBi
b3VuZGFyeSA9IHZpZXctPnBhZ2VfYm91bmRhcnk7CiAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfZm9yX2JvdW5kYXJ5KGJvdW5kYXJ5LCBwYWdlX2NvbmZpZyk7CkBAIC0yMzcsNyArMTg1
LDcgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbnN0YQogICAgIG51bV9n
cmFudWxlcyA9IChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAvIHBhZ2VfY29uZmlnLmJhc2Uu
Z3JhbnVsZV9zaXplKTsKIAogICAgIGZ1bGxfdXNlX2NvdW50cyA9IHBhc19jb21wYWN0X3RhZ2dl
ZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAmcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2dldF9leHRlbmRlZF9kYXRhKGRpcmVj
dG9yeSktPmZ1bGxfdXNlX2NvdW50cyk7CisgICAgICAgICZwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YShkaXJlY3RvcnkpLT5mdWxsX3VzZV9jb3VudHMpOwog
ICAgIAogICAgIG1lbWNweSh1c2VfY291bnRzLAogICAgICAgICAgICBmdWxsX3VzZV9jb3VudHMs
CkBAIC0yNDcsMTQgKzE5NSwxNCBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2luc3RhCiBib29sIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lzX2VsaWdpYmxlKHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3KQogewogICAgIHJldHVybiBQQVNfU0VH
UkVHQVRFRF9ESVJFQ1RPUllfR0VUX0JJVCgKLSAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3Rv
cnkpLT5iYXNlLAorICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKICAgICAgICAgdmll
dy0+aW5kZXgsIGVsaWdpYmxlKTsKIH0KIAogYm9vbCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19pc19lbXB0eShwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldykKIHsKICAg
ICByZXR1cm4gUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICZwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKKyAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJh
c2UsCiAgICAgICAgIHZpZXctPmluZGV4LCBlbXB0eSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsMjQgKzI2LDI2IEBACiAjaWZuZGVmIFBBU19TRUdSRUdBVEVEX0VYQ0xV
U0lWRV9WSUVXX0gKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRVhDTFVTSVZFX1ZJRVdfSAogCi0j
aW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
LmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIu
aCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX21vZGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCiAKIFBB
U19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2U7CitzdHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZSBwYXNfc2VncmVnYXRlZF9wYWdlOwordHlwZWRlZiBzdHJ1Y3QgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlOwogCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcgewogICAgIHZvaWQqIHBhZ2VfYm91bmRhcnk7CiAgICAgCi0gICAgcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsK
KyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7
CiAKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZCBvd25l
cnNoaXBfa2luZDsKKyAgICBib29sIGlzX293bmVkOwogCiAgICAgdW5zaWduZWQgaW5kZXg7CiAK
QEAgLTkxLDI5ICs5MywxMyBAQCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19hc19pbmVs
aWdpCiAKIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqCiBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKICAgICBzaXplX3QgaW5kZXgpOwogCi1QQVNfQVBJIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBw
YWdlX2NvbmZpZyk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNo
X3ZpZXdfbm90ZV9lbGlnaWJpbGl0eV9pbXBsKAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBh
Z2UsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlldyBlbGlnaWJsZV9vd25pbmdfdmlldywKLSAgICB1bnNpZ25lZCB2aWV3X2lu
ZGV4KTsKLQotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVf
ZWxpZ2liaWxpdHkoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSk7Ci0KIFBBU19BUEkgdm9pZCBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VtcHRpbmVzcygKICAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlldyogdmlldywKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKIAot
UEFTX0FQSSBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmll
d19jb21wdXRlX3N1bW1hcnlfaW1wbCgKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dyogdmlldyk7CiBQQVNfQVBJIHBhc19oZWFwX3N1bW1hcnkgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KAogICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3KiB2aWV3KTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiwxNyArMjYsMjEgQEAKICNpZm5kZWYgUEFTX1NFR1JFR0FURURfRVhDTFVT
SVZFX1ZJRVdfSU5MSU5FU19ICiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVX
X0lOTElORVNfSAogCisjaW5jbHVkZSAicGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5s
aW5lcy5oIgorI2luY2x1ZGUgInBhc19sb2NhbF92aWV3X2NhY2hlLmgiCiAjaW5jbHVkZSAicGFz
X2xvZy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgiCiAj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9wYWdlX2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2UuaCIKKyNpbmNsdWRlICJwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3X2Rp
ZF9zdGFydF9hbGxvY2F0aW5nKAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfZGlkX3N0YXJ0X2FsbG9jYXRpbmcoCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBv
d25lcl92aWV3LCAvKiBDb3VsZCBiZSB0aGUgYmlhc2luZyB2aWV3LCBvciB0aGUgZXhjbHVzaXZl
IHZpZXcuICovCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBnbG9i
YWxfZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBnbG9iYWxf
ZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgcGFzX2xvY2sq
KiBoZWxkX2xvY2ssCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcp
CkBAIC01NCw3ICs1OCw4IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdy
ZWcKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygiRGlkIHN0YXJ0IGFsbG9jYXRp
bmcgaW4gJXAuXG4iLCBwYWdlKTsKIAotICAgIFBBU19URVNUSU5HX0FTU0VSVCghcGFnZS0+aXNf
aW5fdXNlX2Zvcl9hbGxvY2F0aW9uKTsKKyAgICAvKiBOT1RFOiBXZSBjYW5ub3QgYXNzZXJ0IHRo
YXQgdGhlIHBhZ2UgaXMgbm90IGluIHVzZSBmb3IgYWxsb2NhdGlvbiBzaW5jZSB3ZSBtYXkgYmUg
Y29taW5nIGhlcmUKKyAgICAgICB2aWEgdGhlIHZpZXcgY2FjaGUsIHdoaWNoIGFsd2F5cyBzYXlz
IHRoYXQgcGFnZXMgYXJlIGluIHVzZSBmb3IgYWxsb2NhdGlvbi4gKi8KIAogICAgIC8qIFdlIHdh
bnQgdG8gZGVmZXIgbm90aWZ5aW5nIGFueW9uZSBhYm91dCBhbnkgbmV3bHkgZnJlZWQgb2JqZWN0
cy4gRG8gdGhpcyBoZXJlIHNpbmNlCiAgICAgICAgdGhlIGNvZGUgYmVsb3cgbWF5IHJlbGVhc2Ug
KGFuZCB0aGVuIHJlYWNxdWlyZSkgdGhlIHBhZ2UgbG9jay4gVGhhdCBjb3VsZCBjYXVzZSBzb21l
CkBAIC02OCw2ICs3MywxNDYgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3Nl
Z3JlZwogICAgIHBhZ2UtPm93bmVyID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19hc19pbmVsaWdpYmxl
KG93bmVyX3ZpZXcpOwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKAorICAgIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKKyAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywKKyAgICBib29sIHNob3VsZF9u
b3RpZnlfZWxpZ2liaWxpdHkpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZh
bHNlOworCisgICAgdW5zaWduZWQgdmlld19pbmRleDsKKyAgICBib29sIHNob3VsZF9ub3RpZnlf
ZW1wdGluZXNzOworCisgICAgdmlld19pbmRleCA9IHZpZXctPmluZGV4OworICAgIAorICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0aW9uIGluIGV4Y2x1
c2l2ZSAlcC8lcC5cbiIsIHZpZXcsIHBhZ2UpOworICAgIAorICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpCisgICAgICAgIHBhc19sb2Nr
X3Rlc3RpbmdfYXNzZXJ0X2hlbGQocGFnZS0+bG9ja19wdHIpOworICAgIFBBU19URVNUSU5HX0FT
U0VSVChwYWdlLT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb24pOworICAgIAorICAgIHNob3VsZF9u
b3RpZnlfZW1wdGluZXNzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29t
bWl0KHBhZ2UsIHBhZ2VfY29uZmlnKTsKKyAgICAKKyAgICBwYWdlLT5pc19pbl91c2VfZm9yX2Fs
bG9jYXRpb24gPSBmYWxzZTsKKyAgICAKKyAgICBpZiAoc2hvdWxkX25vdGlmeV9lbGlnaWJpbGl0
eSkgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coIlRlbGxpbmcg
ZGlyZWN0b3J5IGFib3V0IGRlZmVycmVkIGVsaWdpYmlsaXR5LlxuIik7CisgICAgICAgIAorICAg
ICAgICAvKiBQYWdlIG11c3Qga25vdyB0aGF0IHdlIGFyZSBlbGlnaWJsZSBmaXJzdC4gKi8KKyAg
ICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfa2luZChwYWdlLT5vd25lcikgPT0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
a2luZCk7CisgICAgICAgIAorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19k
aWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAorICAgICAgICAgICAgJmRpcmVjdG9yeS0+YmFz
ZSwKKyAgICAgICAgICAgIHZpZXdfaW5kZXgpOworICAgIH0KKyAgICAKKyAgICAvKiBJdCdzIGlt
cG9ydGFudCB0byBub3RpZnkgZW1wdGluZXNzIGxhc3QsIHNvIHRoYXQgd2UgbmV2ZXIgZmluZCBv
dXRzZWx2ZXMgaW4gYSBjYXNlIHdoZXJlIHRoZQorICAgICAgIHNjYXZlbmdlciB0YWtlcyB0aGUg
ZW1wdHkgYml0LCBjYW5ub3QgdGFrZSB0aGUgZWxpZ2libGUgYml0LCBhbmQgdGhpcyBjb2RlIGhh
ZCBhbHJlYWR5IHNldCB0aGUKKyAgICAgICBlbXB0eSBiaXQgYnV0IG5vdCB0aGUgZWxpZ2libGUg
Yml0LiAqLworICAgIGlmIChzaG91bGRfbm90aWZ5X2VtcHRpbmVzcykgeworICAgICAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KAorICAg
ICAgICAgICAgJmRpcmVjdG9yeS0+YmFzZSwKKyAgICAgICAgICAgIHZpZXdfaW5kZXgpOworICAg
IH0KK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSgKKyAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlldyogdmlldywKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAorICAgIHBhc19z
ZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlIGRlYWxsb2NhdGlvbl9tb2RlLAorICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
IHBhZ2VfY29uZmlnKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
KyAgICAKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisKKyAgICBzaXplX2Rp
cmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSk7CisgICAgZGlyZWN0b3J5ID0gJnNpemVfZGlyZWN0
b3J5LT5iYXNlOworICAgIAorICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJOb3Rp
bmcgZWxpZ2liaWxpdHkgaW4gZXhjbHVzaXZlICVwLyVwLlxuIiwgdmlldywgcGFnZSk7CisgICAg
ICAgIAorICAgIGlmIChwYWdlLT5sb2NrX3B0cikKKyAgICAgICAgcGFzX2xvY2tfdGVzdGluZ19h
c3NlcnRfaGVsZChwYWdlLT5sb2NrX3B0cik7CisgICAgCisgICAgaWYgKHBhZ2UtPmlzX2luX3Vz
ZV9mb3JfYWxsb2NhdGlvbikgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBh
c19sb2coIkRlZmVycmluZyBlbGlnaWJpbGl0eSBub3RpZmljYXRpb24uXG4iKTsKKyAgICAgICAg
cGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2RlZmVycmVkID0gdHJ1ZTsK
KyAgICB9IGVsc2UgeworICAgICAgICBib29sIGRpZF9jYWNoZV92aWV3OworCisgICAgICAgIGRp
ZF9jYWNoZV92aWV3ID0gZmFsc2U7CisKKyAgICAgICAgc3dpdGNoIChkZWFsbG9jYXRpb25fbW9k
ZSkgeworICAgICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9k
ZToKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIlVz
aW5nIGRpcmVjdCBkZWFsbG9jYXRpb24gbW9kZSAoJXUpLlxuIiwgcGFnZS0+b2JqZWN0X3NpemUp
OworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9kZWFs
bG9jYXRpb25fdG9fdmlld19jYWNoZV9tb2RlOiB7CisgICAgICAgICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX3Jlc3VsdCBhbGxvY2F0b3JfcmVzdWx0OworICAgICAgICAgICAgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGUqIHZpZXdfY2FjaGU7CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAg
ICAgICAgICAgIHBhc19sb2coIlVzaW5nIHRvX3ZpZXdfY2FjaGUgZGVhbGxvY2F0aW9uIG1vZGUg
KCV1KS5cbiIsIHBhZ2UtPm9iamVjdF9zaXplKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
aWYgKCFwYWdlX2NvbmZpZy5lbmFibGVfdmlld19jYWNoZSkgeworICAgICAgICAgICAgICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcDogVmlldyBjYWNoZSBk
aXNhYmxlZCBpbiBjb25maWciLCBjYWNoZS0+bm9kZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFsbG9jYXRvcl9yZXN1bHQgPSBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfbG9jYWxfYWxsb2NhdG9yKAorICAgICAgICAgICAgICAg
IGNhY2hlLCBwYWdlLT52aWV3X2NhY2hlX2luZGV4KTsKKyAgICAgICAgICAgIGlmICghYWxsb2Nh
dG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7
CisgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIiVwOiBWaWV3IGNhY2hlIGlzIGRpc2FibGVk
IGZvciB0aGlzIHBhZ2Ugb3IgaXQgZG9lc24ndCBleGlzdCB5ZXQgaW4gdGhpcyAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIlRMQy5cbiIsIGNhY2hlLT5ub2RlKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIHZpZXdfY2FjaGUgPSAocGFzX2xvY2FsX3ZpZXdfY2FjaGUqKWFsbG9j
YXRvcl9yZXN1bHQuYWxsb2NhdG9yOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJUcnlpbmcgdG8gcHVzaCB0byB2aWV3IGNh
Y2hlLlxuIik7CisKKyAgICAgICAgICAgIGlmIChwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxs
KHZpZXdfY2FjaGUpKSB7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICAgICAgICAgIHBhc19sb2coIiVwLCAlcDogQ2FjaGUgaXMgZnVsbCAoJXUpLlxuIiwgY2FjaGUt
Pm5vZGUsIHZpZXdfY2FjaGUsIHBhZ2UtPm9iamVjdF9zaXplKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGlkX2NhY2hl
X3ZpZXcgPSB0cnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBwYWdlLT5pc19pbl91c2Vf
Zm9yX2FsbG9jYXRpb24gPSB0cnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcCwgJXA6IFB1c2hpbmcgdG8gY2FjaGUg
KCV1KS5cbiIsIGNhY2hlLT5ub2RlLCB2aWV3X2NhY2hlLCBwYWdlLT5vYmplY3Rfc2l6ZSk7CisK
KyAgICAgICAgICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3B1c2godmlld19jYWNoZSwgdmlldyk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfSB9CisKKyAgICAgICAgaWYgKCFkaWRfY2Fj
aGVfdmlldykgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFz
X2xvZygiVGVsbGluZyB0aGUgZGlyZWN0b3J5IHRoYXQgd2UgYXJlIGVsaWdpYmxlICgldSkuXG4i
LCBwYWdlLT5vYmplY3Rfc2l6ZSk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgdmlldy0+aW5k
ZXgpOworICAgICAgICB9CisgICAgfQorCisgICAgLyogQ2xlYXIgdGhlIGluZWxpZ2libGUgYml0
IGZyb20gdGhlIG93bmVyIGZpZWxkLiAqLworICAgIHBhZ2UtPm93bmVyID0gcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfdmlld19ub25fbnVsbCh2aWV3KTsKK30KKwogUEFTX0VORF9F
WFRFUk5fQzsKIAogI2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX0lOTElO
RVNfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBf
a2luZC5oCShub25leGlzdGVudCkKQEAgLTEsMTQ2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVE
X0VYQ0xVU0lWRV9WSUVXX09XTkVSU0hJUF9LSU5EX0gKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURf
RVhDTFVTSVZFX1ZJRVdfT1dORVJTSElQX0tJTkRfSAotCi0jaW5jbHVkZSAicGFzX3V0aWxzLmgi
Ci0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotLyogVGhpcyBpcyByZWFsbHkgdHdvIGZsYWdzIC0t
IG93bmVkIGFuZCBiaWFzZWQuCi0KLSAgIE93bmVyc2hpcCBtZWFucyB0aGF0IHRoZSBwYWdlIHBv
aW50ZXIgcG9pbnRzIHRvIGEgY29tbWl0dGVkIGFuZCBmdWxseSBjb25zdHJ1Y3RlZAotICAgcGFn
ZS4gVGhlIG93bmVyc2hpcCBsb2NrIGlzIHRha2VuIHdoZW4gdGhpcyBzdGF0ZSBjaGFuZ2VzLiBT
byBpZiB5b3UgZ3JhYiB0aGUgb3duZXJzaGlwCi0gICBsb2NrIGFuZCBvYnNlcnZlIHRoZSBvd25l
cnNoaXAgYml0IHRvIGJlIHNldCwgdGhlbiB5b3Uga25vdyB0aGF0IHlvdSBjYW4gZGVyZWZlcmVu
Y2UKLSAgIHRoZSBwYWdlIHBvaW50ZXIgYW5kIGFjY2VzcyB0aGUgcGFnZSBrbm93aW5nIHRoYXQg
aXQncyBmdWxseSBpbml0aWFsaXplZC4gQnV0IHRoYXQKLSAgIHJlcXVpcmVzIGNvbnRpbnVpbmcg
dG8gaG9sZCB0aGUgb3duZXJzaGlwIGxvY2suCi0KLSAgIEJpYXNpbmcgbWVhbnMgdGhhdCB0aGVy
ZSBpcyBhIGJpYXNpbmdfdmlldyB0aGF0IGhhcyB0YWtlbiBvdmVyIHRoZSBleGNsdXNpdmUgdmll
dyBhbmQKLSAgIHNvIHRoZSBleGNsdXNpdmUgdmlldyBpc24ndCByZWFsbHkgYWN0aW5nIGFzIGEg
bWVtYmVyIG9mIGl0cyBkaXJlY3RvcnkgKGl0IHNob3VsZCBiZQotICAgaW5lbGlnaWJsZSBpbiB0
aGF0IGRpcmVjdG9yeSBhbmQgaWdub3JlZCkuICovCi1lbnVtIF9fYXR0cmlidXRlX18oKF9fcGFj
a2VkX18pKSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZCB7Ci0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkLAotICAgIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkLAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X25vdF9vd25lZF9hbmRfYmlhc2VkLAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X293bmVkX2FuZF9iaWFzZWQsCi19OwotCi10eXBlZGVmIGVudW0gcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZXJzaGlwX2tpbmQ7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19vd25lZCgKLSAgICBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZCBraW5kKQotewotICAgIHN3aXRjaCAo
a2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVk
OgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9i
aWFzZWQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X293bmVkOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfb3duZWRfYW5kX2JpYXNlZDoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIFBB
U19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25l
cnNoaXBfa2luZF9pc19iaWFzZWQoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZXJzaGlwX2tpbmQga2luZCkKLXsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZDoKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWRfYW5kX2JpYXNlZDoK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkX2FuZF9iaWFzZWQ6
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5v
dCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgaW5saW5lIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kCi1wYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX293bmVkKAotICAgIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kIGtpbmQsCi0gICAgYm9vbCBpc19v
d25lZCkKLXsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X25vdF9vd25lZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X293bmVkOgotICAgICAgICByZXR1cm4gaXNfb3duZWQKLSAgICAgICAgICAgID8gcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWQKLSAgICAgICAgICAgIDogcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19vd25lZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4gaXNf
b3duZWQKLSAgICAgICAgICAgID8gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWRf
YW5kX2JpYXNlZAotICAgICAgICAgICAgOiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19u
b3Rfb3duZWRfYW5kX2JpYXNlZDsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3Qg
YmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19u
b3Rfb3duZWQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfb3duZXJzaGlwX2tpbmQKLXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kX3dpdGhfYmlhc2VkKAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293
bmVyc2hpcF9raW5kIGtpbmQsCi0gICAgYm9vbCBpc19iaWFzZWQpCi17Ci0gICAgc3dpdGNoIChr
aW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ6
Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWRfYW5kX2Jp
YXNlZDoKLSAgICAgICAgcmV0dXJuIGlzX2JpYXNlZAotICAgICAgICAgICAgPyBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWRfYW5kX2JpYXNlZAotICAgICAgICAgICAgOiBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ7Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiBpc19iaWFzZWQK
LSAgICAgICAgICAgID8gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWRfYW5kX2Jp
YXNlZAotICAgICAgICAgICAgOiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDsK
LSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJl
dHVybiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgY29uc3QgY2hhciogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJz
aGlwX2tpbmRfZ2V0X3N0cmluZygKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19v
d25lcnNoaXBfa2luZCBraW5kKQotewotICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOgotICAgICAgICByZXR1cm4gIm5v
dF9vd25lZCI7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoK
LSAgICAgICAgcmV0dXJuICJvd25lZCI7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19ub3Rfb3duZWRfYW5kX2JpYXNlZDoKLSAgICAgICAgcmV0dXJuICJub3Rfb3duZWRf
YW5kX2JpYXNlZCI7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25l
ZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4gIm93bmVkX2FuZF9iaWFzZWQiOwotICAgIH0K
LSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJuIE5V
TEw7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9F
WENMVVNJVkVfVklFV19PV05FUlNISVBfS0lORF9IICovCi0KLQpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS5jCShub25leGlzdGVudCkKQEAgLTEsMTIyMSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19j
b25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVj
dG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9oZWFwLmgiCi0jaW5jbHVkZSAi
cGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oIgotI2luY2x1ZGUgInBhc19leGNsdXNpdmVfdmll
d190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgiCi0jaW5jbHVkZSAicGFzX21vbm90b25pY190aW1lLmgi
Ci0jaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmlu
Z19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaCIK
LSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5o
IgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgotI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc3Ry
ZWFtLmgiCi0jaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCIKLSNpbmNs
dWRlICJwYXNfdXRpbGl0eV9oZWFwLmgiCi0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2Nhbl9leHBsb2RlID0gZmFsc2U7Ci1ib29sIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9mb3JjZV9leHBsb2RlID0gZmFsc2U7Ci0KLXBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2NyZWF0ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHVuc2ln
bmVkIG9iamVjdF9zaXplLAotICAgIHVuc2lnbmVkIGFsaWdubWVudCwKLSAgICBwYXNfaGVhcF9j
b25maWcqIGhlYXBfY29uZmlnLAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdl
X2NvbmZpZykKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAg
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7Ci0gICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZCBwYWdlX2NvbmZpZ19raW5kOwotCi0gICAg
cGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwotCi0gICAgaWYgKHBhZ2VfY29uZmlnKQotICAg
ICAgICBwYWdlX2NvbmZpZ19raW5kID0gcGFnZV9jb25maWctPmtpbmQ7Ci0gICAgZWxzZQotICAg
ICAgICBwYWdlX2NvbmZpZ19raW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9u
dWxsOwotCi0gICAgaWYgKHBhZ2VfY29uZmlnKQotICAgICAgICBQQVNfQVNTRVJUKGhlYXBfY29u
ZmlnID09IHBhZ2VfY29uZmlnLT5iYXNlLmhlYXBfY29uZmlnX3B0cik7Ci0KLSAgICBwYXNfaGVh
cF9jb25maWdfYWN0aXZhdGUoaGVhcF9jb25maWcpOwotCi0gICAgaWYgKHZlcmJvc2UgJiYgcGFn
ZV9jb25maWcpIHsKLSAgICAgICAgcGFzX2xvZygibG9jYWwgYWxsb2NhdG9yIHNpemUgZm9yICVz
OiAlenVcbiIsCi0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZF9nZXRfc3RyaW5nKHBhZ2VfY29uZmlnX2tpbmQpLAotICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfY29u
ZmlnKCpwYWdlX2NvbmZpZykpOwotICAgIH0KLQotICAgIHJlc3VsdCA9IHBhc19pbW1vcnRhbF9o
ZWFwX2FsbG9jYXRlKAotICAgICAgICBzaXplb2YocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KSwKLSAgICAgICAgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSIsCi0gICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0KLSAgICBpZiAodmVyYm9zZSkg
ewotICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBkaXJlY3Ryb3kgJXAgZm9yICVzXG4iLAotICAg
ICAgICAgICAgICAgIHJlc3VsdCwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRf
c3RyaW5nKHBhZ2VfY29uZmlnX2tpbmQpKTsKLSAgICB9Ci0KLSAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9jb25zdHJ1Y3QoCi0gICAgICAgICZyZXN1bHQtPmJhc2UsIHBhZ2VfY29u
ZmlnX2tpbmQsCi0gICAgICAgIGhlYXAtPnJ1bnRpbWVfY29uZmlnLT5zaGFyaW5nX21vZGUsCi0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kKTsKLQotICAg
IHJlc3VsdC0+aGVhcCA9IGhlYXA7Ci0gICAgcmVzdWx0LT5vYmplY3Rfc2l6ZSA9IG9iamVjdF9z
aXplOwotCi0gICAgUEFTX0FTU0VSVChwYXNfaXNfcG93ZXJfb2ZfMihhbGlnbm1lbnQpKTsKLSAg
ICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXplLCBhbGlnbm1lbnQpKTsKLSAg
ICByZXN1bHQtPmFsaWdubWVudF9zaGlmdCA9IHBhc19sb2cyKGFsaWdubWVudCk7Ci0gICAgCi0g
ICAgcmVzdWx0LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSAyICogUEFTX05VTV9CQVNFTElO
RV9BTExPQ0FUT1JTOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhX3B0cl9zdG9yZSgmcmVzdWx0LT5kYXRhLCBOVUxMKTsKLQotICAgIGlmIChwYWdlX2NvbmZp
ZykKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19w
dHJfc3RvcmUoJnJlc3VsdC0+Yml0Zml0X3NpemVfY2xhc3MsIE5VTEwpOwotICAgIGVsc2Ugewot
ICAgICAgICBwYXNfYml0Zml0X2hlYXAqIGJpdGZpdF9oZWFwOwotICAgICAgICBwYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzKiBiaXRmaXRfc2l6ZV9jbGFzczsKLQotICAgICAgICBiaXRmaXRf
aGVhcCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X2JpdGZpdChoZWFwLCBoZWFwX2NvbmZpZywg
cGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgICAgIFBBU19BU1NFUlQoYml0Zml0X2hlYXApOwotICAg
ICAgICAKLSAgICAgICAgYml0Zml0X3NpemVfY2xhc3MgPQotICAgICAgICAgICAgcGFzX2JpdGZp
dF9oZWFwX2Vuc3VyZV9nbG9iYWxfc2l6ZV9jbGFzcygKLSAgICAgICAgICAgICAgICBiaXRmaXRf
aGVhcCwgcmVzdWx0LCBoZWFwX2NvbmZpZywgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgICAgIAot
ICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0cl9z
dG9yZSgKLSAgICAgICAgICAgICZyZXN1bHQtPmJpdGZpdF9zaXplX2NsYXNzLCBiaXRmaXRfc2l6
ZV9jbGFzcyk7Ci0gICAgfQotICAgIAotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwg
TlVMTCk7Ci0KLSAgICBpZiAoIWhlYXAtPnJ1bnRpbWVfY29uZmlnLT5kaXJlY3Rvcnlfc2l6ZV9i
b3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycykKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9yKHJlc3VsdCk7Ci0gICAgaWYg
KCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxf
dmlld3MpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9lbmFi
bGVfZXhjbHVzaXZlX3ZpZXdzKHJlc3VsdCk7Ci0KLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2ZvcmNlX2V4cGxvZGUKLSAgICAgICAgJiYgcGFnZV9jb25maWcK
LSAgICAgICAgJiYgIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfaXNfdXRpbGl0eShw
YWdlX2NvbmZpZ19raW5kKSkKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2V4cGxvZGUocmVzdWx0LCBwYXNfbG9ja19pc19oZWxkKTsKLQotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZW5zdXJlX2RhdGEoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX2xv
Y2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcqIHBhZ2VfY29uZmlnOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwotCi0gICAg
aWYgKGRhdGEpCi0gICAgICAgIHJldHVybiBkYXRhOwotCi0gICAgcGFnZV9jb25maWcgPSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLnBh
Z2VfY29uZmlnX2tpbmQpOwotCi0gICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHko
aGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Ci0gICAgaWYg
KGRhdGEpIHsKLSAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgcmV0dXJuIGRhdGE7Ci0gICAgfQotCi0gICAgaWYg
KHBhZ2VfY29uZmlnICYmIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmln
LT5iYXNlLmdyYW51bGVfc2l6ZSkgewotICAgICAgICBkYXRhID0gcGFzX2ltbW9ydGFsX2hlYXBf
YWxsb2NhdGUoCi0gICAgICAgICAgICBzaXplb2YocGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGEpLAotICAgICAgICAgICAgInBhc19leHRlbmRlZF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhIiwKLSAgICAgICAgICAgIHBhc19vYmpl
Y3RfYWxsb2NhdGlvbik7Ci0KLSAgICAgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVs
ZV91c2VfY291bnRfcHRyX3N0b3JlKAotICAgICAgICAgICAgJigocGFzX2V4dGVuZGVkX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqKWRhdGEpLT5mdWxsX3VzZV9jb3VudHMs
IE5VTEwpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRhdGEgPSBwYXNfaW1tb3J0YWxfaGVhcF9h
bGxvY2F0ZSgKLSAgICAgICAgICAgIHNpemVvZihwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YSksCi0gICAgICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2RhdGEiLAotICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLSAg
ICB9Ci0KLSAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3JlKCZkYXRhLT5m
dWxsX2FsbG9jX2JpdHMsIE5VTEwpOwotICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRh
cnlfdG9fZmlyc3Rfb2JqZWN0ID0gMDsKLSAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5k
YXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9IDA7Ci0gICAgZGF0YS0+ZnVsbF9udW1fbm9uX2Vt
cHR5X3dvcmRzID0gMDsKLSAgICBkYXRhLT5hbGxvY2F0b3JfaW5kZXggPSAocGFzX2FsbG9jYXRv
cl9pbmRleClVSU5UX01BWDsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX3N0b3JlKCZkYXRhLT5uZXh0X2Zvcl9sYXlvdXQsIE5VTEwpOwotCi0g
ICAgcGFzX2ZlbmNlKCk7Ci0KLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YV9wdHJfc3RvcmUoJmRpcmVjdG9yeS0+ZGF0YSwgZGF0YSk7Ci0KLSAgICBwYXNfaGVh
cF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAg
cmV0dXJuIGRhdGE7Ci19Ci0KLXBhc19leHRlbmRlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kYXRhKgotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2dldF9l
eHRlbmRlZF9kYXRhKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZp
ZzsKLQotICAgIHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9n
ZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKLSAgICBQQVNfQVNT
RVJUKHBhZ2VfY29uZmlnKTsKLSAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vf
c2l6ZSA+IHBhZ2VfY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZSk7Ci0KLSAgICByZXR1cm4gKHBh
c19leHRlbmRlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKikKLSAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRp
cmVjdG9yeS0+ZGF0YSk7Ci19Ci0KLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9yKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIAotICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0
X2hlbGQoKTsKLQotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZW5zdXJlX2RhdGEoZGlyZWN0b3J5LCBwYXNfbG9ja19pc19oZWxkKTsKLQotICAgIGlmIChk
YXRhLT5hbGxvY2F0b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
X2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGQoZGlyZWN0b3J5
KTsKLQotICAgIFBBU19BU1NFUlQoZGF0YS0+YWxsb2NhdG9yX2luZGV4IDwgKHBhc19hbGxvY2F0
b3JfaW5kZXgpVUlOVF9NQVgpOwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3ZpZXdzKAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogdGVtcGxhdGVfZGlyZWN0b3J5OwotICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmQgcGFnZV9jb25maWdfa2luZDsKLSAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyogcGFnZV9jb25maWdfcHRyOwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnIHBhZ2VfY29uZmlnOwotICAgIHVuc2lnbmVkIG9iamVjdF9zaXplOwotICAgIHNpemVfdCBh
bGxvY19iaXRzX2J5dGVzOwotICAgIHVuc2lnbmVkIG9mZnNldDsKLSAgICB1bnNpZ25lZCBiZWdp
bjsKLSAgICB1bnNpZ25lZCBlbmQ7Ci0gICAgdW5zaWduZWQqIGZ1bGxfYWxsb2NfYml0czsKLSAg
ICB1bnNpZ25lZCBmdWxsX251bV9ub25fZW1wdHlfd29yZHM7Ci0gICAgc2l6ZV90IGluZGV4Owot
ICAgIHBhc19hbGxvY2F0aW9uX2NvbmZpZyBib290c3RyYXBfYWxsb2NhdGlvbl9jb25maWc7Ci0K
LSAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7Ci0KLSAgICBkYXRhID0gcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVjdG9yeSwgcGFzX2xv
Y2tfaXNfaGVsZCk7Ci0gICAgaWYgKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgcGFnZV9jb25maWdfa2luZCA9IGRpcmVjdG9yeS0+YmFzZS5w
YWdlX2NvbmZpZ19raW5kOwotICAgIGlmIChwYWdlX2NvbmZpZ19raW5kID09IHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIHBh
Z2VfY29uZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZp
ZyhwYWdlX2NvbmZpZ19raW5kKTsKLSAgICBvYmplY3Rfc2l6ZSA9IGRpcmVjdG9yeS0+b2JqZWN0
X3NpemU7Ci0gICAgCi0gICAgdGVtcGxhdGVfZGlyZWN0b3J5ID0gcGFzX2V4Y2x1c2l2ZV92aWV3
X3RlbXBsYXRlX21lbW9fdGFibGVfZ2V0KAotICAgICAgICAmcGFzX2V4Y2x1c2l2ZV92aWV3X3Rl
bXBsYXRlX21lbW9fdGFibGVfaW5zdGFuY2UsCi0gICAgICAgIHBhc19leGNsdXNpdmVfdmlld190
ZW1wbGF0ZV9tZW1vX2tleV9jcmVhdGUob2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnX2tpbmQpKTsK
LSAgICBpZiAodGVtcGxhdGVfZGlyZWN0b3J5KSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiB0ZW1wbGF0ZV9kYXRhOwotCi0gICAgICAgIHRlbXBs
YXRlX2RhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZCgmdGVtcGxhdGVfZGlyZWN0b3J5LT5kYXRhKTsKLSAgICAgICAgCi0gICAgICAgIGRhdGEt
PmZ1bGxfYWxsb2NfYml0cyA9IHRlbXBsYXRlX2RhdGEtPmZ1bGxfYWxsb2NfYml0czsKLSAgICAg
ICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3QgPQotICAg
ICAgICAgICAgdGVtcGxhdGVfZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJz
dF9vYmplY3Q7Ci0gICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5k
X29mX2xhc3Rfb2JqZWN0ID0KLSAgICAgICAgICAgIHRlbXBsYXRlX2RhdGEtPm9mZnNldF9mcm9t
X3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0OwotCi0gICAgICAgIGlmIChwYWdl
X2NvbmZpZ19wdHItPmJhc2UucGFnZV9zaXplID4gcGFnZV9jb25maWdfcHRyLT5iYXNlLmdyYW51
bGVfc2l6ZSkgewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2dldF9leHRlbmRlZF9kYXRhKGRpcmVjdG9yeSktPmZ1bGxfdXNlX2NvdW50cyA9Ci0gICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2dldF9leHRl
bmRlZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9kaXJlY3RvcnkpLT5mdWxs
X3VzZV9jb3VudHM7Ci0gICAgICAgIH0KLQotICAgICAgICBwYXNfZmVuY2UoKTsKLSAgICAgICAg
ZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzID0KLSAgICAgICAgICAgIHRlbXBsYXRlX2Rh
dGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkczsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIHBhZ2VfY29uZmlnID0gKnBhZ2VfY29uZmlnX3B0cjsKLSAgICAKLSAgICBhbGxvY19iaXRz
X2J5dGVzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX2J5dGVzKHBhZ2Vf
Y29uZmlnKTsKLSAgICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0
ZV93aXRoX21hbnVhbF9hbGlnbm1lbnQoCi0gICAgICAgIGFsbG9jX2JpdHNfYnl0ZXMsIHNpemVv
Zih1bnNpZ25lZCksCi0gICAgICAgICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YS9mdWxsX2FsbG9jX2JpdHMiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24p
OwotICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfc3RvcmUoJmRhdGEtPmZ1bGxf
YWxsb2NfYml0cywgZnVsbF9hbGxvY19iaXRzKTsKLSAgICBwYXNfemVyb19tZW1vcnkoZnVsbF9h
bGxvY19iaXRzLCBhbGxvY19iaXRzX2J5dGVzKTsKLQotICAgIGJlZ2luID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdF9leGNsdXNp
dmUob2JqZWN0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZyk7
Ci0gICAgZW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5
X3RvX2VuZF9vZl9sYXN0X29iamVjdF9leGNsdXNpdmUob2JqZWN0X3NpemUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcpOwotCi0gICAgZGF0YS0+b2Zmc2V0X2Zy
b21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3QgPSBiZWdpbjsKLSAgICBkYXRhLT5vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9IGVuZDsKLQotICAg
IGZvciAob2Zmc2V0ID0gYmVnaW47IG9mZnNldCA8IGVuZDsgb2Zmc2V0ICs9IG9iamVjdF9zaXpl
KSB7Ci0gICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0KAotICAgICAgICAgICAgZnVsbF9hbGxvY19i
aXRzLAotICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZV9pbmRleF9vZl9vYmplY3RfYXRfb2Zmc2V0
X2Zyb21fcGFnZV9ib3VuZGFyeSgKLSAgICAgICAgICAgICAgICBvZmZzZXQsIHBhZ2VfY29uZmln
LmJhc2UpLAotICAgICAgICAgICAgdHJ1ZSk7Ci0gICAgfQotICAgIAotICAgIGZ1bGxfbnVtX25v
bl9lbXB0eV93b3JkcyA9IDA7Ci0gICAgZm9yIChpbmRleCA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX251bV9hbGxvY193b3JkcyhwYWdlX2NvbmZpZyk7IGluZGV4LS07KSB7Ci0gICAgICAg
IGlmIChmdWxsX2FsbG9jX2JpdHNbaW5kZXhdKQotICAgICAgICAgICAgZnVsbF9udW1fbm9uX2Vt
cHR5X3dvcmRzKys7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoZnVsbF9udW1fbm9uX2VtcHR5X3dv
cmRzKTsKLQotICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmln
LmJhc2UuZ3JhbnVsZV9zaXplKSB7Ci0gICAgICAgIHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBleHRlbmRlZF9kYXRhOwotICAgICAgICBwYXNfcGFn
ZV9ncmFudWxlX3VzZV9jb3VudCogZnVsbF91c2VfY291bnRzOwotICAgICAgICB1aW50cHRyX3Qg
bnVtX2dyYW51bGVzOwotICAgICAgICBib29sIGluaXRpYWxpemVfcmVzdWx0OwotCi0gICAgICAg
IGV4dGVuZGVkX2RhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZ2V0
X2V4dGVuZGVkX2RhdGEoZGlyZWN0b3J5KTsKLQotICAgICAgICBudW1fZ3JhbnVsZXMgPSBwYWdl
X2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAvIHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplOwot
Ci0gICAgICAgIGZ1bGxfdXNlX2NvdW50cyA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dp
dGhfbWFudWFsX2FsaWdubWVudCgKLSAgICAgICAgICAgIG51bV9ncmFudWxlcyAqIHNpemVvZihw
YXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCksCi0gICAgICAgICAgICBzaXplb2YocGFzX3BhZ2Vf
Z3JhbnVsZV91c2VfY291bnQpLAotICAgICAgICAgICAgInBhc19leHRlbmRlZF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhL2Z1bGxfdXNlX2NvdW50cyIsCi0gICAgICAgICAg
ICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgICAgIGluaXRpYWxpemVfcmVzdWx0ID0g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbml0aWFsaXplX2Z1bGxfdXNlX2NvdW50cygKLSAgICAgICAg
ICAgIE5VTEwsIGRpcmVjdG9yeSwgZnVsbF91c2VfY291bnRzLCBudW1fZ3JhbnVsZXMsIHBhZ2Vf
Y29uZmlnKTsKLQotICAgICAgICAvKiBUaGlzIHNob3VsZCBoYXZlIGluaXRpYWxpemVkIGFsbCBv
ZiB0aGUgYml0cy4gKi8KLSAgICAgICAgUEFTX0FTU0VSVChpbml0aWFsaXplX3Jlc3VsdCk7Ci0K
LSAgICAgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyX3N0
b3JlKAotICAgICAgICAgICAgJmV4dGVuZGVkX2RhdGEtPmZ1bGxfdXNlX2NvdW50cywKLSAgICAg
ICAgICAgIGZ1bGxfdXNlX2NvdW50cyk7Ci0gICAgfQotCi0gICAgcGFzX2ZlbmNlKCk7Ci0gICAg
ZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzID0gZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRz
OwotICAgIFBBU19BU1NFUlQoZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzID09IGZ1bGxf
bnVtX25vbl9lbXB0eV93b3Jkcyk7Ci0KLSAgICBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcF9hbGxv
Y2F0aW9uX2NvbmZpZ19jb25zdHJ1Y3QoJmJvb3RzdHJhcF9hbGxvY2F0aW9uX2NvbmZpZywgcGFz
X2xvY2tfaXNfaGVsZCk7Ci0gICAgCi0gICAgcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21l
bW9fdGFibGVfYWRkX25ldygKLSAgICAgICAgJnBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9t
ZW1vX3RhYmxlX2luc3RhbmNlLAotICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgIE5VTEwsCi0g
ICAgICAgICZib290c3RyYXBfYWxsb2NhdGlvbl9jb25maWcpOwotfQotCi12b2lkIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9leHBsb2RlKHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRf
bW9kZSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSog
ZGF0YTsKLQotICAgIFBBU19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRf
aXNfdXRpbGl0eShkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCkpOwotICAgIFBBU19B
U1NFUlQoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQgIT0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZF9udWxsKTsKLQotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2Nhbl9leHBsb2RlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkYXRh
ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVj
dG9yeSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLSAgICBpZiAoIXBhc19jb21wYWN0X2F0b21p
Y19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wpKSB7
Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xk
X21vZGUpOwotCi0gICAgICAgIGlmICghcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19w
b29sX3B0cl9sb2FkKCZkYXRhLT5iaWFzX3NoYXJpbmdfcG9vbCkpIHsKLSAgICAgICAgICAgIHBh
c19wYWdlX3NoYXJpbmdfcG9vbCogcG9vbDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcG9v
bCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAotICAgICAgICAg
ICAgICAgIHNpemVvZihwYXNfcGFnZV9zaGFyaW5nX3Bvb2wpLAotICAgICAgICAgICAgICAgIGFs
aWdub2YocGFzX3BhZ2Vfc2hhcmluZ19wb29sKSwKLSAgICAgICAgICAgICAgICAicGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5L2JpYXNfc2hhcmluZ19wb29sIiwKLSAgICAgICAg
ICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgICAgICAgICBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfY29uc3RydWN0KHBvb2wpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBw
YXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX3N0b3JlKCZkYXRhLT5iaWFz
X3NoYXJpbmdfcG9vbCwgcG9vbCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHBhc19o
ZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAg
fQotCi0gICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xf
cHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKSk7Ci19Ci0KLXBhc19iYXNlbGluZV9h
bGxvY2F0b3IqCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2Fs
bG9jYXRvcl9zbG93KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5KQotewotICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVfaW5pdGlhbGl6
ZV9pZl9uZWNlc3NhcnkoKTsKLSAgICAKLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIHVuc2lnbmVk
IGFfaW5kZXg7Ci0gICAgICAgIHVuc2lnbmVkIGJfaW5kZXg7Ci0gICAgICAgIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3IqIGFfYWxsb2NhdG9yOwotICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
KiBiX2FsbG9jYXRvcjsKLSAgICAgICAgdW5zaWduZWQgc2VsZWN0ZWRfaW5kZXg7Ci0gICAgICAg
IHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIHNlbGVjdGVkX2FsbG9jYXRvcjsKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzZWxlY3RlZF9kaXJlY3Rvcnk7Ci0K
LSAgICAgICAgc2VsZWN0ZWRfaW5kZXggPSBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9p
bmRleDsKLSAgICAgICAgaWYgKHNlbGVjdGVkX2luZGV4IDwgUEFTX05VTV9CQVNFTElORV9BTExP
Q0FUT1JTKSB7Ci0gICAgICAgICAgICBzZWxlY3RlZF9hbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVf
YWxsb2NhdG9yX3RhYmxlICsgc2VsZWN0ZWRfaW5kZXg7Ci0KLSAgICAgICAgICAgIHBhc19sb2Nr
X2xvY2soJnNlbGVjdGVkX2FsbG9jYXRvci0+bG9jayk7Ci0KLSAgICAgICAgICAgIGlmIChkaXJl
Y3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCAhPSBzZWxlY3RlZF9pbmRleCkgewotICAg
ICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5sb2NrKTsK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
cmV0dXJuIHNlbGVjdGVkX2FsbG9jYXRvcjsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzZWxl
Y3RlZF9pbmRleCA8IDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpCi0gICAgICAgICAg
ICBzZWxlY3RlZF9pbmRleCAtPSBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlM7Ci0gICAgICAg
IGVsc2UgewotICAgICAgICAgICAgUEFTX0FTU0VSVChzZWxlY3RlZF9pbmRleCA9PSAyICogUEFT
X05VTV9CQVNFTElORV9BTExPQ0FUT1JTKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYV9p
bmRleCA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVfZ2V0X3JhbmRvbV9pbmRleCgpOwot
ICAgICAgICAgICAgYl9pbmRleCA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVfZ2V0X3Jh
bmRvbV9pbmRleCgpOwotICAgIAotICAgICAgICAgICAgYV9hbGxvY2F0b3IgPSBwYXNfYmFzZWxp
bmVfYWxsb2NhdG9yX3RhYmxlICsgYV9pbmRleDsKLSAgICAgICAgICAgIGJfYWxsb2NhdG9yID0g
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGJfaW5kZXg7Ci0KLSAgICAgICAgICAgIC8q
IElmIGl0J3MgY2hlYXAgdG8gc3RvcCBvbmUgb2YgdGhlc2UgdGhlbiBqdXN0IHBpY2sgZWl0aGVy
IG9uZS4gKi8KLSAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19hY3RpdmUo
JmFfYWxsb2NhdG9yLT51LmFsbG9jYXRvcikpCi0gICAgICAgICAgICAgICAgc2VsZWN0ZWRfaW5k
ZXggPSBhX2luZGV4OwotICAgICAgICAgICAgZWxzZSBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3Jf
aXNfYWN0aXZlKCZiX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IpKQotICAgICAgICAgICAgICAgIHNl
bGVjdGVkX2luZGV4ID0gYl9pbmRleDsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgYV92aWV3OwotICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXcgYl92aWV3OwotCi0gICAgICAgICAgICAgICAgYV92aWV3ID0gYV9hbGxvY2F0
b3ItPnUuYWxsb2NhdG9yLnZpZXc7Ci0gICAgICAgICAgICAgICAgYl92aWV3ID0gYl9hbGxvY2F0
b3ItPnUuYWxsb2NhdG9yLnZpZXc7Ci0KLSAgICAgICAgICAgICAgICBpZiAoIWFfdmlldykKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggPSBhX2luZGV4OwotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggPSBiX2luZGV4Owot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoIXBhc19jb21wYXJlX2FuZF9zd2FwX3Vp
bnQxNl93ZWFrKCZkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqIFBBU19OVU1fQkFT
RUxJTkVfQUxMT0NBVE9SUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTICsgc2VsZWN0ZWRfaW5kZXgp
KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgCi0gICAgICAgIHNl
bGVjdGVkX2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBzZWxlY3Rl
ZF9pbmRleDsKLSAgICAKLSAgICAgICAgcGFzX2xvY2tfbG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9y
LT5sb2NrKTsKLQotICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5k
ZXggPT0gc2VsZWN0ZWRfaW5kZXgpCi0gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRfYWxsb2Nh
dG9yOwotCi0gICAgICAgIGlmIChkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCAh
PSBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMgKyBzZWxlY3RlZF9pbmRleCkgewotICAgICAg
ICAgICAgcGFzX2xvY2tfdW5sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOwotICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxv
Y2F0b3JfaXNfbnVsbCgmc2VsZWN0ZWRfYWxsb2NhdG9yLT51LmFsbG9jYXRvcikpIHsKLSAgICAg
ICAgICAgIHBhc19udW1fYmFzZWxpbmVfYWxsb2NhdG9yX2V2aWN0aW9ucysrOwotICAgICAgICAg
ICAgc2VsZWN0ZWRfZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KHNlbGVjdGVkX2FsbG9jYXRvci0+dS5hbGxvY2F0b3Iudmlldyk7Ci0gICAg
ICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlY3Rvcnkoc2VsZWN0ZWRf
YWxsb2NhdG9yKTsKLSAgICAgICAgICAgIHBhc19mZW5jZSgpOwotICAgICAgICAgICAgc2VsZWN0
ZWRfZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSAyICogUEFTX05VTV9CQVNF
TElORV9BTExPQ0FUT1JTOwotICAgICAgICB9Ci0KLSAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9j
YXRvcl9hdHRhY2hfZGlyZWN0b3J5KHNlbGVjdGVkX2FsbG9jYXRvciwgZGlyZWN0b3J5KTsKLQot
ICAgICAgICBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9IHNlbGVjdGVkX2lu
ZGV4OwotCi0gICAgICAgIHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7Ci0gICAgfQotfQotCi1z
dGF0aWMgdm9pZCB0YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVjdF9sb29wX2hlYWRfY2FsbGJhY2so
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBnbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7Ci0gICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sKiBiaWFzX3Bvb2w7Ci0KLSAgICBQQVNfVEVTVElOR19BU1NFUlQoZGly
ZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3Rvcnlfa2luZCk7Ci0gICAgCi0gICAgZ2xvYmFsX3NpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSopZGlyZWN0b3J5OwotCi0gICAgZGF0YSA9IHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZnbG9iYWxf
c2l6ZV9kaXJlY3RvcnktPmRhdGEpOwotICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIAotICAgIGJpYXNfcG9vbCA9IHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9v
bF9wdHJfbG9hZCgmZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotICAgIAotICAgIGlmICghYmlh
c19wb29sKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKAot
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2hlYXBfbG9ja19ob2xkX21v
ZGUoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKQotICAgICAgICA9PSBwYXNfbG9ja19pc19u
b3RfaGVsZCk7Ci0gICAgCi0gICAgcGFzX2JpYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZShiaWFz
X3Bvb2wpOwotfQotCi1zdGF0aWMgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB0YWtlX2ZpcnN0X2VsaWdp
YmxlX2RpcmVjdF9jcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2soCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwotICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldzsKLSAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWc7Ci0K
LSAgICBQQVNfVEVTVElOR19BU1NFUlQoY29uZmlnLT5kaXJlY3RvcnktPmRpcmVjdG9yeV9raW5k
ID09IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kKTsKLSAgICAKLSAg
ICBnbG9iYWxfc2l6ZV9kaXJlY3RvcnkgPSAocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5Kiljb25maWctPmRpcmVjdG9yeTsKLQotICAgIHJ1bnRpbWVfY29uZmlnID0gZ2xvYmFs
X3NpemVfZGlyZWN0b3J5LT5oZWFwLT5ydW50aW1lX2NvbmZpZzsKLQotICAgIGlmIChjb25maWct
PmluZGV4ID49IHJ1bnRpbWVfY29uZmlnLT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfcGFydGlh
bF92aWV3cykKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vu
YWJsZV9leGNsdXNpdmVfdmlld3MoZ2xvYmFsX3NpemVfZGlyZWN0b3J5KTsKLQotICAgIGlmIChj
b25maWctPmluZGV4ID49IHJ1bnRpbWVfY29uZmlnLT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jf
YmFzZWxpbmVfYWxsb2NhdG9ycykKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9yKGdsb2JhbF9zaXplX2RpcmVjdG9yeSk7Ci0g
ICAgCi0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hcmVfZXhj
bHVzaXZlX3ZpZXdzX2VuYWJsZWQoZ2xvYmFsX3NpemVfZGlyZWN0b3J5KSkgewotICAgICAgICB2
aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfdmlld19ub25fbnVsbCgKLSAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NyZWF0ZShnbG9iYWxfc2l6
ZV9kaXJlY3RvcnksIGNvbmZpZy0+aW5kZXgpKTsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAg
ICAgICAgICAgIHBhc19sb2coIiVwOiBjcmVhdGVkIGV4Y2x1c2l2ZSAlcC5cbiIsCi0gICAgICAg
ICAgICAgICAgICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcHRyKHZpZXcpKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIHZpZXcgPSBw
YXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfYXNfdmlld19ub25fbnVsbCgKLSAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jcmVhdGUoZ2xvYmFsX3NpemVfZGlyZWN0b3J5
LCBjb25maWctPmluZGV4KSk7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBw
YXNfbG9nKCIlcDogY3JlYXRlZCBwYXJ0aWFsICVwLlxuIiwKLSAgICAgICAgICAgICAgICAgICAg
Z2xvYmFsX3NpemVfZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykp
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIHZpZXc7Ci19Ci0KLXBhc19zZWdyZWdh
dGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3Rf
ZWxpZ2libGVfZGlyZWN0KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZ2xvYmFsX3NpemVfZGlyZWN0b3J5KQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKLSAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcgY29uZmlnOwot
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsKLQotICAgIFBBU19URVNUSU5HX0FTU0VSVCgK
LSAgICAgICAgZ2xvYmFsX3NpemVfZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQgIT0g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9udWxsKTsKLQotICAgIGRpcmVjdG9yeSA9
ICZnbG9iYWxfc2l6ZV9kaXJlY3RvcnktPmJhc2U7Ci0KLSAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsKAotICAgICAgICBkaXJl
Y3RvcnksICZjb25maWcsCi0gICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0X2xvb3Bf
aGVhZF9jYWxsYmFjaywKLSAgICAgICAgdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3RfY3JlYXRl
X25ld192aWV3X2NhbGxiYWNrKTsKLQotICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIHBhc19s
b2coIlRha2luZyBlbGlnaWJsZSB2aWV3ICVwICglcykuXG4iLAotICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSwKLSAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF92aWV3X2tpbmRfZ2V0X3N0cmluZyhwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5k
KHZpZXcpKSk7Ci0gICAgfQotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfR0VUX0JJVCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9y
eSwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfaW5kZXgodmlldyksIGVsaWdpYmxlKSk7Ci0gICAg
Ci0gICAgcmV0dXJuIHZpZXc7Ci19Ci0KLXBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHBhc19tYWdhemluZSog
bWFnYXppbmUpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Rh
dGEqIGRhdGE7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBiaWFzX3Bvb2w7Ci0gICAgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudCBwYXJ0aWNpcGFudDsKLSAgICB1bnNpZ25lZCBtYWdh
emluZV9pbmRleDsKLQotICAgIFBBU19URVNUSU5HX0FTU0VSVChkaXJlY3RvcnktPmJhc2UucGFn
ZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpOwot
Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jb250ZW50aW9u
X2RpZF90cmlnZ2VyX2V4cGxvc2lvbihkaXJlY3RvcnkpKQotICAgICAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZXhwbG9kZShkaXJlY3RvcnksIHBhc19sb2NrX2lzX25v
dF9oZWxkKTsKLQotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLQotICAgIGlmICghZGF0YSB8fCAh
bWFnYXppbmUpCi0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3QoZGlyZWN0b3J5KTsKLQotICAgIGJpYXNf
cG9vbCA9IHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZGF0
YS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotICAgIGlmICghYmlhc19wb29sKQotICAgICAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2li
bGVfZGlyZWN0KGRpcmVjdG9yeSk7Ci0KLSAgICBtYWdhemluZV9pbmRleCA9IG1hZ2F6aW5lLT5t
YWdhemluZV9pbmRleDsKLQotICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X2dldF9wYXJ0aWNpcGFudChiaWFzX3Bvb2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICBpZiAoIXBh
cnRpY2lwYW50KSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBi
aWFzaW5nX2RpcmVjdG9yeTsKLQotICAgICAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IE5VTEw7Ci0g
ICAgICAgIAotICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKLSAgICAgICAgcGFydGljaXBh
bnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZ2V0X3BhcnRpY2lwYW50KGJpYXNfcG9vbCwgbWFn
YXppbmVfaW5kZXgpOwotICAgICAgICBpZiAoIXBhcnRpY2lwYW50KQotICAgICAgICAgICAgYmlh
c2luZ19kaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9jcmVhdGUo
ZGlyZWN0b3J5LCBtYWdhemluZV9pbmRleCk7Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2Nr
KCk7Ci0KLSAgICAgICAgaWYgKCFwYXJ0aWNpcGFudCkgewotICAgICAgICAgICAgcGFydGljaXBh
bnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZ2V0X3BhcnRpY2lwYW50KGJpYXNfcG9vbCwgbWFn
YXppbmVfaW5kZXgpOwotICAgICAgICAgICAgUEFTX0FTU0VSVCgKLSAgICAgICAgICAgICAgICBw
YXJ0aWNpcGFudCA9PSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKLSAgICAg
ICAgICAgICAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UsIHBhc19wYWdl
X3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnkpKTsKLSAgICAgICAgfQotICAg
IH0KLSAgICAKLSAgICBQQVNfQVNTRVJUKHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0
X2tpbmQocGFydGljaXBhbnQpCi0gICAgICAgICAgICAgICA9PSBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KTsKLSAgICAKLSAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICAgICAgcGFz
X3Vud3JhcF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KAotICAgICAgICAgICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfcHRyKHBhcnRpY2lwYW50KSksCi0gICAgICAgIGRp
cmVjdG9yeSk7Ci19Ci0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBwYXNfZGVmZXJyZWRfZGVjb21t
aXRfbG9nKiBkZWNvbW1pdF9sb2c7Ci0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19o
b2xkX21vZGU7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIG15X3BhZ2VfY29uZmln
X3B0cjsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcmVzdWx0OwotfSB0
YWtlX2xhc3RfZW1wdHlfZGF0YTsKLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVk
Ci10YWtlX2xhc3RfZW1wdHlfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50IHNlZ21lbnQsCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpCi17Ci0gICAgdGFr
ZV9sYXN0X2VtcHR5X2RhdGEqIGRhdGE7Ci0KLSAgICBkYXRhID0gY29uZmlnLT5hcmc7Ci0KLSAg
ICByZXR1cm4gc2VnbWVudC5lbXB0eV9iaXRzOwotfQotCi1zdGF0aWMgYm9vbAotdGFrZV9sYXN0
X2VtcHR5X2NvbnNpZGVyX3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29u
ZmlnKiBjb25maWcpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwot
Ci0gICAgLyogV2UgcHV0IG91ciB0YWtlX2xhc3RfZW1wdHkgbG9naWMgaW4gY29uc2lkZXJfdmll
dyBiZWNhdXNlIHNob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsCi0gICAgICAgY2Fubm90IHJl
YWxseSB0ZWxsIGlmIGEgcGFnZSBjYW4gYmUgdGFrZW4uICovCi0KLSAgICB0YWtlX2xhc3RfZW1w
dHlfZGF0YSogZGF0YTsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5
OwotICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZzsKLSAgICBwYXNf
bG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZTsKLSAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyogbXlfcGFnZV9jb25maWdfcHRyOwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnIG15X3BhZ2VfY29uZmlnOwotICAgIHNpemVfdCBpbmRleDsKLSAgICBwYXNfc2VncmVn
YXRlZF92aWV3IGdlbmVyaWNfdmlldzsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dyogdmlldzsKLSAgICBwYXNfbG9jayogaGVsZF9sb2NrOwotICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2UqIHBhZ2U7Ci0gICAgYm9vbCBkaWRfdGFrZV9iaXQ7Ci0gICAgcGFzX2xvY2sqIG93bmVyc2hp
cF9sb2NrOwotCi0gICAgZGlyZWN0b3J5ID0gY29uZmlnLT5kaXJlY3Rvcnk7Ci0gICAgaW5kZXgg
PSBjb25maWctPmluZGV4OwotCi0gICAgZGlkX3Rha2VfYml0ID0gUEFTX1NFR1JFR0FURURfRElS
RUNUT1JZX1NFVF9CSVQoZGlyZWN0b3J5LCBpbmRleCwgZW1wdHksIGZhbHNlKTsKLSAgICAKLSAg
ICBpZiAoIWRpZF90YWtlX2JpdCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgc2l6ZV9k
aXJlY3RvcnkgPSAocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KilkaXJlY3Rv
cnk7Ci0gICAgZ2VuZXJpY192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJl
Y3RvcnksIGluZGV4KTsKLSAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhj
bHVzaXZlKGdlbmVyaWNfdmlldykpOwotICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9leGNsdXNpdmUoZ2VuZXJpY192aWV3KTsKLSAgICBoZWxkX2xvY2sgPSBOVUxMOwotICAgIGRh
dGEgPSBjb25maWctPmFyZzsKLQotICAgIG15X3BhZ2VfY29uZmlnX3B0ciA9IGRhdGEtPm15X3Bh
Z2VfY29uZmlnX3B0cjsKLSAgICBoZWFwX2xvY2tfaG9sZF9tb2RlID0gZGF0YS0+aGVhcF9sb2Nr
X2hvbGRfbW9kZTsKLSAgICBkZWNvbW1pdF9sb2cgPSBkYXRhLT5kZWNvbW1pdF9sb2c7Ci0gICAg
bXlfcGFnZV9jb25maWcgPSAqbXlfcGFnZV9jb25maWdfcHRyOwotICAgIAotICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICBwYXNfbG9nKCIlcDogY29uc2lkZXJpbmcgZW1wdHkgaW5kZXggJXp1LCB2
aWV3ID0gJXAuXG4iLCBkaXJlY3RvcnksIGluZGV4LCB2aWV3KTsKLQotICAgIGlmIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSkKLSAgICAgICAg
b3duZXJzaGlwX2xvY2sgPSBwYXNfbG9ja19mb3Jfc3dpdGNoX2NvbmRpdGlvbmFsbHkoJnBhc19o
ZWFwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgIGVsc2UKLSAgICAgICAgb3duZXJz
aGlwX2xvY2sgPSAmdmlldy0+b3duZXJzaGlwX2xvY2s7Ci0KLSAgICBwYXNfbG9ja19zd2l0Y2go
JmhlbGRfbG9jaywgb3duZXJzaGlwX2xvY2spOwotICAgIAotICAgIGlmIChwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSkKLSAgICAgICAgcGFzX2hl
YXBfbG9ja19hc3NlcnRfaGVsZCgpOwotICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQodmlldy0+b3duZXJzaGlwX2tpbmQp
KSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygibm90IG93bmVk
LlxuIik7Ci0gICAgICAgIAotICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9sb2NrX2FuZF9yZXR1
cm5fZmFsc2U7Ci0gICAgfQotICAgIAotICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zv
cl9ib3VuZGFyeSh2aWV3LT5wYWdlX2JvdW5kYXJ5LCBteV9wYWdlX2NvbmZpZyk7Ci0gICAgCi0g
ICAgaWYgKCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19i
aWFzZWQodmlldy0+b3duZXJzaGlwX2tpbmQpKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAg
ICAgICAgICAgcGFzX2xvZygiZXhjbHVzaXZlIG1vZGUuXG4iKTsKLSAgICAgICAgCi0gICAgICAg
IGlmICghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX1NFVF9CSVQoZGlyZWN0b3J5LCBpbmRleCwg
ZWxpZ2libGUsIGZhbHNlKSkKLSAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tfYW5k
X3JldHVybl9mYWxzZTsKLSAgICAgICAgCi0gICAgICAgIC8qIElmIHdlIHN0b2xlIGVsaWdpYmls
aXR5IHRoZW4gdGhlIGV4Y2x1c2l2ZSB2aWV3IGNhbm5vdCBiZSBlbGlnaWJpbGUuICovCi0gICAg
ICAgIFBBU19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9r
aW5kX2lzX2JpYXNlZCh2aWV3LT5vd25lcnNoaXBfa2luZCkpOwotICAgICAgICAKLSAgICAgICAg
aWYgKCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19vd25l
ZCh2aWV3LT5vd25lcnNoaXBfa2luZCkpIHsKLSAgICAgICAgICAgIGJvb2wgcmVzdWx0OwotICAg
ICAgICAgICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29t
ZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAgIFBBU19B
U1NFUlQocmVzdWx0KTsKLSAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tfYW5kX3Jl
dHVybl9mYWxzZTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgLyogQXdrd2FyZGx5LCB0
aGlzIGlzIHRoZSBjb3JyZWN0IHBsYWNlIHRvIGRvIHRoZSBxdWFsaWZpZXMtZm9yLWRlY29tbWl0
IGNoZWNrLiBTZWUgY29tbWVudAotICAgICAgICAgICBiZWxvdywgaW4gdGhlIGJpYXNpbmcgY2Fz
ZSwgYWJvdmUgdGhlIHNhbWUgY2hlY2suIFRoZW4geW91J2xsIHVuZGVyc3RhbmQgd2h5IHdlIGRv
IHRoaXMKLSAgICAgICAgICAgY2hlY2sgaGVyZS4gKi8KLSAgICAgICAgaWYgKCFwYXNfc2VncmVn
YXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQocGFnZSwgbXlfcGFnZV9jb25maWcpKSB7
Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJ3YXMg
bm90IGVtcHR5LlxuIik7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmll
d19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAg
ICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOwotICAgICAgICB9
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBvd25pbmdfdmlldzsK
LSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiBiaWFzaW5nX3ZpZXc7Ci0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogb3duaW5nX2RpcmVjdG9yeTsKLSAgICAgICAg
c2l6ZV90IGluZGV4X2luX293bmluZzsKLSAgICAgICAgYm9vbCByZXN1bHQ7Ci0gICAgICAgIAot
ICAgICAgICAvKiBUaGlzIGlzIHRoZSBvd25lZCtiaWFzZWQgY2FzZS4gKi8KLSAgICAgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9r
aW5kX2lzX293bmVkKHZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIFBBU19URVNUSU5H
X0FTU0VSVChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19i
aWFzZWQodmlldy0+b3duZXJzaGlwX2tpbmQpKTsKLQotICAgICAgICBvd25pbmdfdmlldyA9IHBh
Z2UtPm93bmVyOwotCi0gICAgICAgIC8qIFRoaXMgY29kZSBhc3N1bWVzIHRoYXQgaWYgd2UgZGV0
ZWN0IGNlcnRhaW4ga2luZHMgb2YgaW5jb25zaXN0ZW50IHN0YXRlIHRoZW4gaXQgY291bGQgYmUK
LSAgICAgICAgICAgdGhhdCB3ZSdyZSByYWNpbmcgd2l0aCBzb21lb25lIHRyeWluZyB0byB1c2Ug
dGhpcyB2aWV3IGZvciBhbGxvY2F0aW9uIC0gaW4gcGFydGljdWxhciwKLSAgICAgICAgICAgYmlh
c2luZyBvciB1bmJpYXNpbmcuIEluIHRoYXQgY2FzZSwgd2UganVzdCBsb3NlIHRoZSByYWNlLgot
ICAgICAgICAKLSAgICAgICAgICAgVGhpcyBpcyBmaW5lIGJlY2F1c2UgaW4gZWFjaCBvZiB0aG9z
ZSByYWNlcywgd2UgYXJlbid0IGZvcmdldHRpbmcgYWJvdXQgdGhlIGVtcHR5IGJpdDoKLSAgICAg
ICAgCi0gICAgICAgICAgIC0gV2UgY291bGQgYmUgcmFjaW5nIHdpdGggYmlhc2luZzogdGhlIHBh
Z2UtPm93bmVyIGhhc24ndCB5ZXQgYmVlbiBzZXQgdG8gdGhlIGJpYXNpbmcgdmlldywKLSAgICAg
ICAgICAgICBidXQgdGhlIG93bmVyc2hpcCBraW5kIGhhcyBhbHJlYWR5IGJlZW4gc2V0IHRvIGJp
YXNlZC4gSW4gdGhhdCBjYXNlLCBpdCdzIE9LIHRvIGJhaWwgb3V0Ci0gICAgICAgICAgICAgZXZl
biB0aG91Z2ggd2UndmUgYWxyZWFkeSB0YWtlbiB0aGUgZW1wdHkgYml0LCBzaW5jZSBiaWFzaW5n
IGhhcHBlbnMgb24gYSBwYXRoLW9mLW5vLXJldHVybgotICAgICAgICAgICAgIHRvIGFsbG9jYXRp
bmcgc29tZSBvYmplY3QgaW4gdGhlIHBhZ2UsIHdoaWNoIHdpbGwgY2F1c2UgaXQgdG8gYmVjb21l
IG5vbi1lbXB0eS4gQWxzbywKLSAgICAgICAgICAgICBhbGxvY2F0aW9uIG1lYW5zIHRoYXQgd2Ug
d2lsbCBoYXZlIHRvIGRpZF9zdG9wX2FsbG9jYXRpbmcsIHdoaWNoIHNldHMgdGhlIGVtcHR5IGJp
dCBhZ2FpbgotICAgICAgICAgICAgIGlmIHRoZSBwYWdlIGlzIGVtcHR5IGF0IHRoYXQgcG9pbnQu
Ci0gICAgICAgIAotICAgICAgICAgICAtIFdlIGNvdWxkIGJlIHJhY2luZyB3aXRoIHVuYmlhc2lu
ZzogZm9yIG5vdywgdGhpbmdzIGFyZSBmaW5lLCBzaW5jZSBpZiB3ZSBzZWUgdGhhdCB0aGUKLSAg
ICAgICAgICAgICBvd25lcnNoaXBfa2luZCBpcyBiaWFzZWQgd2hpbGUgaG9sZGluZyB0aGUgb3du
ZXJzaGlwIGxvY2ssIHRoZW4gaXQgbXVzdCBtZWFuIHRoYXQgd2UncmUKLSAgICAgICAgICAgICBy
dW5uaW5nIGJlZm9yZSBhbnkgdW5iaWFzaW5nIGhhcHBlbmVkLCBvciB3ZSBhcmUgcmlnaHQgcGFz
dCB0aGUgcG9pbnQgd2hlcmUgdW5iaWFzaW5nIHdvdWxkCi0gICAgICAgICAgICAgaGF2ZSB0YWtl
biBlbGlnaWJpbGl0eSBidXQgYmVmb3JlIHRoZSBwb2ludCB3aGVyZSBpdCB3b3VsZCBncmFiIHRo
ZSBvd25lcnNoaXAgbG9jay4gVGhpcwotICAgICAgICAgICAgIG1lYW5zIHRoYXQgd2UgY291bGQg
ZmFpbCB0byB0YWtlIHRoZSBlbGlnaWJsZSBiaXQgaGVyZS4gQnV0IHRoZW4gdW5iaWFzaW5nIHdv
dWxkIHNldCB0aGUKLSAgICAgICAgICAgICBlbXB0eSBiaXQgaWYgaXQgbmVlZHMgdG8gYmUgc2V0
LiBXaGVuIHdlIHN3aXRjaCBsb2NrcyB0byB0aGUgcGFnZSBsb2NrLCB0aGVuIHdlIHdvdWxkIGhh
dmUKLSAgICAgICAgICAgICBhbHJlYWR5IG1hcmtlZCB0aGUgZXhjbHVzaXZlIHZpZXcgYXMgbm90
IGJpYXNlZCwgd2hpY2ggd291bGQgY2F1c2UgYW55IG90aGVyIHVuYmlhc2luZwotICAgICAgICAg
ICAgIGF0dGVtcHQgdG8gZ2l2ZSB1cC4gKi8KLQotICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfc29tZV9iaWFzaW5nKG93bmluZ192aWV3KSkgewotICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygib3duaW5nIHZpZXcgaXMgbm90IHNvbWUg
Ymlhc2luZy5cbiIpOwotICAgICAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0
dXJuX2ZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAg
ICBwYXNfbG9nKCJvd25pbmcgdmlldyBpcyBiaWFzaW5nLlxuIik7Ci0gICAgICAgIAotICAgICAg
ICBiaWFzaW5nX3ZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKG93bmluZ192
aWV3KTsKLQotICAgICAgICAvKiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJpYXNpbmcgY29kZSBo
YXMgYWxyZWFkeSBhc3NvY2lhdGVkIHRoZSBiaWFzaW5nIHZpZXcgd2l0aCB0aGUgZXhjbHVzaXZl
Ci0gICAgICAgICAgIHZpZXcsIGJ1dCBoYXNuJ3QgeWV0IHRvbGQgdGhlIHBhZ2UuIFdlIGNvdWxk
IHNlZSB0aGF0IHNpbmNlIHRoZSBvd25lcnNoaXAgbG9jayB3b3VsZCBiZQotICAgICAgICAgICBk
cm9wcGVkIGJ5IHRoZW4uIEJ1dCBpbiB0aGF0IGNhc2UsIHRoZSBwYWdlIHdvdWxkIHRoaW5rIHRo
YXQgaXRzIG93bmVyIGlzIGV4Y2x1c2l2ZSwgbm90Ci0gICAgICAgICAgIGJpYXNpbmcuIEl0J3Mg
cG9zc2libGUgdGhhdCB0aGUgdW5iaWFzaW5nIGNvZGUgaGFzIGFscmVhZHkgZGlzYXNzb2NpYXRl
ZCB0aGUgYmlhc2luZyBhbmQKLSAgICAgICAgICAgZXhjbHVzaXZlIHZpZXdzLCBidXQgaGFzbid0
IHlldCB0b2xkIHRoZSBwYWdlLiBXZSBjb3VsZCBzZWUgdGhhdCBzaW5jZSB0aGUgb3duZXJzaGlw
IGxvY2sKLSAgICAgICAgICAgd291bGQgYmUgZHJvcHBlZCBieSB0aGVuLiBCdXQgaW4gdGhhdCBj
YXNlLCB3ZSB3b3VsZG4ndCBoYXZlIGVuZGVkIHVwIGhlcmUuIEFuZCBpdCdzIG5vdAotICAgICAg
ICAgICBwb3NzaWJsZSBmb3IgYmlhc2luZyBhbmQgdW5iaWFzaW5nIHRvIGludGVybGVhdmUuIEJp
YXNpbmcgcnVucyBhZnRlciBib3RoIHRoZSBiaWFzaW5nIGFuZAotICAgICAgICAgICBleGNsdXNp
dmUgdmlldyBhcmUgaW5lbGlnaWJsZS4gVW5iaWFzaW5nIHJ1bnMgd2hpbGUgdGhlIGV4Y2x1c2l2
ZSB2aWV3IGlzIHN0aWxsIGluZWxpZ2libGUKLSAgICAgICAgICAgKGJ5IHZpcnR1ZSBvZiB0aGUg
dmlldyBiZWluZyBiaWFzZWQgc3RpbGwpIGFuZCB0aGUgYmlhc2luZyB2aWV3IGlzIG1hZGUgaW5l
bGlnaWJsZSBhbHNvLgotICAgICAgICAgICBUaGVyZWZvcmUsIHRoZXkgY2Fubm90IHJ1biBhdCB0
aGUgc2FtZSB0aW1lIGZvciBlaXRoZXIgdGhlIHNhbWUgZXhjbHVzaXZlIHZpZXcgKGFuZCBzbyBw
YWdlKQotICAgICAgICAgICBvciB0aGUgc2FtZSBiaWFzaW5nIHZpZXcuICovCi0gICAgICAgIFBB
U19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRy
X2xvYWQoJmJpYXNpbmdfdmlldy0+ZXhjbHVzaXZlKQotICAgICAgICAgICAgICAgICAgID09IHZp
ZXcpOwotCi0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygiaGF2ZSBy
aWdodCBleGNsdXNpdmUuXG4iKTsKLSAgICAgICAgCi0gICAgICAgIG93bmluZ19kaXJlY3Rvcnkg
PQotICAgICAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlf
cHRyX2xvYWQoJmJpYXNpbmdfdmlldy0+ZGlyZWN0b3J5KS0+YmFzZTsKLSAgICAgICAgaW5kZXhf
aW5fb3duaW5nID0gYmlhc2luZ192aWV3LT5pbmRleDsKLSAgICAgICAgCi0gICAgICAgIGlmICgh
UEFTX1NFR1JFR0FURURfRElSRUNUT1JZX1NFVF9CSVQoCi0gICAgICAgICAgICAgICAgb3duaW5n
X2RpcmVjdG9yeSwgaW5kZXhfaW5fb3duaW5nLCBlbGlnaWJsZSwgZmFsc2UpKSB7Ci0gICAgICAg
ICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJkaWQgbm90IGdldCBl
bGlnaWJpbGl0eS5cbiIpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBnb3RvIHJlbGVhc2Vf
aGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IC8qIEJlZm9yZSB3ZSB1bmJpYXMsIGl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgaWYgdGhl
IHBhZ2Ugd291bGQgcXVhbGlmeSBmb3IgZGVjb21taXQKLSAgICAgICAgICAgYXQgYWxsLiBMaWtl
LCB3ZSBjYW4ndCB1bmJpYXMgYW5kIHRoZW4gZG8gdGhpcyBjaGVjayAtIGlmIHdlIGRpZCwgdGhl
biBhbnkgYmlhc2VkIHBhZ2UKLSAgICAgICAgICAgdGhhdCBoYWQgZXZlciBnb25lIGVtcHR5IHdv
dWxkIGJlIHVuYmlhc2VkIHRoZSBmaXJzdCB0aW1lIHRoZSBzY2F2ZW5nZXIgcmFuLiBCdXQgaXQn
cwotICAgICAgICAgICBjb29sIC0tIHdlIGNhbiBkbyB0aGlzLiBIZXJlJ3MgdGhlIHJlYXNvbmlu
Zy4KLSAgICAgICAgICAgCi0gICAgICAgICAgIEF0IHRoaXMgcG9pbnQsIHdlIGNhbiBtYWtlIGEg
ZmluYWwganVkZ2VtZW50IHNpbmNlIHdlOgotICAgICAgICAgICAKLSAgICAgICAgICAgLSBIb2xk
IHRoZSBvd25lcnNoaXAgbG9jayBhbmQgaGF2ZSBjb25maXJtZWQgdGhhdCB0aGUgcGFnZSBpcyBz
dGlsbCBvd25lZC4gU28sIHdlCi0gICAgICAgICAgIGNhbiByZWFkIHRoZSBwYWdlLgotICAgICAg
ICAgICAKLSAgICAgICAgICAgLSBUaGF0IHBhZ2UgaXMgaW5lbGlnaWJsZS4gU28sIGlmIGl0IGhh
ZCBiZWVuIGVtcHR5IGF0IHRoZSBtb21lbnQgd2UgbWFkZSBpdAotICAgICAgICAgICBpbmVsaWdp
YmxlIHRoZW4gaXQgY2FuJ3QgcG9zc2libHkgZmlsbCB1cCB1bnRpbCB3ZSBtYWtlIGl0IGVsaWdp
YmxlIGFnYWluLiBPbmx5Ci0gICAgICAgICAgIGRlYWxsb2NhdGlvbnMgY2FuIGhhcHBlbi4gU28s
IGl0IF9pc18gcG9zc2libGUgZm9yIHVzIHRvIG5vdyB0aGluayB0aGF0IHRoZSBwYWdlIGlzCi0g
ICAgICAgICAgIG5vdCBlbXB0eSBidXQgdGhlIHBhZ2UgY2FuIGJlY29tZSBlbXB0eSByaWdodCBh
ZnRlciB0aGF0LiBGb3J0dW5hdGVseSwgaWYgdGhhdAotICAgICAgICAgICBoYXBwZW5zLCB0aGUg
ZW1wdHkgYml0IHdpbGwgZ2V0IHNldCBhZ2Fpbi4gKi8KLSAgICAgICAgaWYgKCFwYXNfc2VncmVn
YXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQocGFnZSwgbXlfcGFnZV9jb25maWcpKSB7
Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJ3YXMg
bm90IGVtcHR5LlxuIik7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmll
d19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAotICAgICAgICAgICAgICAgIG93bmluZ19k
aXJlY3RvcnksIGluZGV4X2luX293bmluZyk7Ci0gICAgICAgICAgICBnb3RvIHJlbGVhc2VfaGVs
ZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIC8q
IFVuYmlhcy4gVGhpcyBlbnN1cmVzIHRoYXQgd2hlbiB0aGUgYmlhc2luZyBkaXJlY3RvcnkgdHJp
ZXMgdG8gYWxsb2NhdGUgb3V0IG9mCi0gICAgICAgICAgIHRoaXMgYmlhc2luZyB2aWV3LCBpdCBn
ZXRzIGEgY2hhbmNlIHRvIHRha2VfZmlyc3RfZWxpZ2libGUgZnJvbSB0aGlzIGdsb2JhbCBzaXpl
Ci0gICAgICAgICAgIGRpcmVjdG9yeSAod2hpY2ggaG9wZWZ1bGx5IGdpdmVzIGl0IGEgdmlldyB0
aGF0IGlzbid0IGRlY29tbWl0dGVkKS4gKi8KLSAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQg
PQotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tp
bmRfd2l0aF9iaWFzZWQoCi0gICAgICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQsIGZh
bHNlKTsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coInZpZXcg
JXAgaGFzIG93bmVyc2hpcCBraW5kID0gJXMgZHVlIHRvIHVuYmlhc2luZyBpbiB0YWtlX2xhc3Rf
ZW1wdHlcbiIsCi0gICAgICAgICAgICAgICAgICAgIHZpZXcsCi0gICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2dldF9zdHJpbmco
Ci0gICAgICAgICAgICAgICAgICAgICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCkpOwotICAgICAg
ICB9Ci0gICAgICAgIAotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBh
Z2UsICZoZWxkX2xvY2ssICpteV9wYWdlX2NvbmZpZ19wdHIpOwotICAgICAgICAKLSAgICAgICAg
LyogSWYgdGhpcyBleGNsdXNpdmUgYWxyZWFkeSBoYWQgYSBwYWdlLCB0aGVuIHRoZSBwYWdlIG11
c3QgYmUgc2F5aW5nIHRoYXQgaXQncwotICAgICAgICAgICBlbGlnaWJsZS4gU28gaXQgaXNfYmlh
c2luZywgbm90IG1lcmVseSBpc19zb21lX2JpYXNpbmcuICovCi0gICAgICAgIFBBU19BU1NFUlQo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzaW5nKHBhZ2UtPm93bmVyKSk7Ci0gICAgICAgIAot
ICAgICAgICBwYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3Zp
ZXdfbm9uX251bGwodmlldyk7Ci0gICAgICAgIAotICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfc3RvcmUoJmJpYXNpbmdfdmlldy0+ZXhjbHVz
aXZlLCBOVUxMKTsKLSAgICAgICAgCi0gICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoCi0gICAgICAgICAgICBv
d25pbmdfZGlyZWN0b3J5LCBpbmRleF9pbl9vd25pbmcpOwotICAgICAgICBQQVNfQVNTRVJUKHJl
c3VsdCk7Ci0gICAgfQotICAgIAotICAgIC8qIFRoaXMgaGFzIGEgdmVyeSBzaG9ydCByYWNlIHRo
YXQgY2F1c2VzIHRoZSBkaXJlY3RvcnkgdG8gcG9zc2libHkgd2FzdGUgbWVtb3J5OiBpZgotICAg
ICAgIGR1cmluZyB0aGlzIGJyaWVmIHdpbmRvdyB3ZSBoYXZlIHNvbWVvbmUgdHJ5aW5nIHRvIGZp
bmQgYW4gZWxpZ2libGUgcGFnZSwgdGhleSBtYXkKLSAgICAgICBlbmQgdXAgYWxsb2NhdGluZyBh
IG5ldyBvbmUuCi0gICAgICAgCi0gICAgICAgQnV0IHdlIGRlbGliZXJhdGVseSBrZWVwIHRoZSBk
dXJhdGlvbiBvZiB0aGlzIHJhY2Ugd2luZG93IHNob3J0LiBXZSBtYWtlIHRoZSBwYWdlCi0gICAg
ICAgaW5lbGlnaWJsZSBvbmx5IGR1cmluZyB0aGUgdGltZSBpdCB0YWtlcyB1cyB0byBmaWd1cmUg
b3V0IGhvdyB0byBkZWNvbW1pdCBpdCBhbmQgdG8KLSAgICAgICBhY3F1aXJlIHRoZSBjb21taXQg
bG9jay4gVGhlIGNvbW1pdCBsb2NrIHNob3VsZCBiZSB0cml2aWFsbHkgYXZhaWxhYmxlIGhlcmUs
IHNvCi0gICAgICAgdGhhdCdzIGp1c3QgYSBDQVMuIEFmdGVyIHRoYXQsIHRoZSBwYWdlIGlzIG1h
ZGUgZWl0aGVyIGVsaWdpYmxlIG9yIGRlY29tbWl0dGVkLgotICAgICAgIEVpdGhlciB3YXksIGlm
IGl0J3MgdGhlIGZpcnN0IGVsaWdpYmxlLCBzb21lb25lIHdpbGwgdHJ5IHRvIHVzZSBpdC4gQXQg
dGhhdCBwb2ludCwKLSAgICAgICBpZiB3ZSBhcmUgbm90IGRvbmUsIHRoZXkgd2lsbCB3YWl0IGZv
ciB1cyBzaW5jZSB3ZSBob2xkIHRoZSBjb21taXQgbG9jay4gKi8KLQotICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2Vfc3dpdGNoX2xvY2socGFnZSwgJmhlbGRfbG9jaywgbXlfcGFnZV9jb25maWcpOwot
Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9j
b25maWcpKSB7Ci0gICAgICAgIC8qIFRoZSB1dGlsaXR5IGhlYXAgcmVxdWlyZXMgdXMgdG8gaG9s
ZCB0aGUgaGVhcCBsb2NrIGFueXRpbWUgd2UnZCBob2xkIHRoZSBvd25lcnNoaXAsIGNvbW1pdCwK
LSAgICAgICAgICAgb3IgcGFnZSBsb2Nrcy4gSXQganVzdCBzbyBoYXBwZW5zIHRoYXQgd2Ugd2Vy
ZSBhbHJlYWR5IGhvbGRpbmcgdGhlIGhlYXAgbG9jaywgYW5kCi0gICAgICAgICAgIHBhZ2Vfc3dp
dGNoX2xvY2sgZG9lcyBub3RoaW5nIGZvciB1dGlsaXR5LiBTbyB3ZSBzaG91bGQgc3RpbGwgYmUg
aG9sZGluZyB0aGUgaGVhcCBsb2NrLiAqLwotICAgICAgICBQQVNfQVNTRVJUKGhlbGRfbG9jayA9
PSBwYXNfbG9ja19mb3Jfc3dpdGNoX2NvbmRpdGlvbmFsbHkoJnBhc19oZWFwX2xvY2ssIGhlYXBf
bG9ja19ob2xkX21vZGUpKTsKLSAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwot
ICAgIH0KLQotICAgIFBBU19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklU
KGRpcmVjdG9yeSwgaW5kZXgsIGVsaWdpYmxlKSk7Ci0KLSAgICAvKiBJdCdzIHRvdGFsbHkgcG9z
c2libGUgdGhhdCB0aGUgZW1wdHkgYml0IGdvdCBzZXQgYWdhaW4uIFdlIHNob3VsZCBjbGVhciBp
dCBmb3Igc3VyZSBub3cuICovCi0gICAgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX1NFVF9CSVQo
ZGlyZWN0b3J5LCBpbmRleCwgZW1wdHksIGZhbHNlKTsKLQotICAgIFBBU19URVNUSU5HX0FTU0VS
VChwYXNfc2VncmVnYXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQocGFnZSwgbXlfcGFn
ZV9jb25maWcpKTsKLSAgICAKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNf
dXRpbGl0eShteV9wYWdlX2NvbmZpZykpIHsKLSAgICAgICAgUEFTX0FTU0VSVChteV9wYWdlX2Nv
bmZpZy5iYXNlLnBhZ2Vfc2l6ZSA9PSBteV9wYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7
Ci0gICAgICAgIAotICAgICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7Ci0KLSAgICAg
ICAgdmlldy0+b3duZXJzaGlwX2tpbmQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19v
d25lcnNoaXBfa2luZF93aXRoX293bmVkKAotICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tp
bmQsIGZhbHNlKTsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2co
InZpZXcgJXAgaGFzIG93bmVyc2hpcCBraW5kID0gJXMgZHVlIHRvIHV0aWxpdHkgZGVjb21taXQg
aW4gdGFrZV9sYXN0X2VtcHR5XG4iLAotICAgICAgICAgICAgICAgICAgICB2aWV3LAotICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2lu
ZF9nZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tp
bmQpKTsKLSAgICAgICAgfQotICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQoCi0gICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIG15X3BhZ2VfY29uZmln
KSwKLSAgICAgICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsKLSAgICAgICAg
ZGVjb21taXRfbG9nLT50b3RhbCArPSBteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsKLSAg
ICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNl
LCBwYXNfbG9ja19pc19oZWxkKTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Zp
ZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKLSAgICAg
ICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotICAgICAgICBkYXRhLT5yZXN1
bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzOwotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMpIHsK
LSAgICAgICAgYm9vbCBkZWNvbW1pdF9yZXN1bHQ7Ci0gICAgICAgIHNpemVfdCBudW1fY29tbWl0
dGVkX2dyYW51bGVzOwotICAgICAgICAKLSAgICAgICAgLyogTm8gcGFydGlhbCBkZWNvbW1pdCBp
biB0aGUgdXRpbGl0eSBoZWFwISAqLwotICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSk7Ci0gICAgICAgIAotICAg
ICAgICAvKiBXZSBrbm93IHRoYXQgdGhlcmUgbXVzdCBiZSBlbXB0eSBncmFudWxlcyBpbiB0aGlz
IHBhZ2UsIHNpbmNlIGVpdGhlciB0aGUgZW1wdHkKLSAgICAgICAgICAgb3IgdGhlIHBhcnRseV9l
bXB0eSBiaXQgd2FzIHNldC4gVGhvc2UgYml0cyB3b3VsZG4ndCBnZXQgc2V0IHVubGVzcyB3ZSBu
b3RpY2VkCi0gICAgICAgICAgIGFuIGVtcHR5IGdyYW51bGUuIElmIHdlIGRpZCB0cnkgdG8gYWxs
b2NhdGUgZnJvbSB0aG9zZSBncmFudWxlcywgd2Ugd291bGQgZmlyc3QKLSAgICAgICAgICAgaGF2
ZSB0byB0YWtlIGF3YXkgaXRzIGVsaWdpYmlsaXR5IGFuZCB0aGVuIGNsZWFyIGl0cyBlbXB0eSBi
aXRzLiBCdXQgd2Uga25vdyB0aGF0Ci0gICAgICAgICAgIHRoaXMgY291bGQgbm90IGhhdmUgaGFw
cGVuZWQgc2luY2UgKndlKiB0b29rIGF3YXkgaXRzIGVsaWdpYmlsaXR5LiAqLwotICAgICAgICAK
LSAgICAgICAgZGVjb21taXRfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV90YWtlX2VtcHR5
X2dyYW51bGVzKAotICAgICAgICAgICAgcGFnZSwgZGVjb21taXRfbG9nLCAmaGVsZF9sb2NrLCBw
YXNfcmFuZ2VfaXNfbm90X2xvY2tlZCwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIAot
ICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7Ci0gICAgICAgIAotICAg
ICAgICBudW1fY29tbWl0dGVkX2dyYW51bGVzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfbnVt
X2NvbW1pdHRlZF9ncmFudWxlcyhwYWdlKTsKLSAgICAgICAgUEFTX0FTU0VSVChudW1fY29tbWl0
dGVkX2dyYW51bGVzKTsKLSAgICAgICAgCi0gICAgICAgIC8qIFRoZSBwYWdlIGNhbiBiZWNvbWUg
ZWxpZ2libGUgYWdhaW4gbm93IHRoYXQgd2UndmUgbWFya2VkIHRoaW5ncyBmb3IgZGVjb21taXQu
ICovCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxp
Z2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgIAotICAgICAgICBpZiAo
ZGVjb21taXRfcmVzdWx0KSB7Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
ICAgICBwYXNfbG9nKCIlcDogZGlkIHBhcnRseSB0YWtlIGluZGV4ICV6dVxuIiwgZGlyZWN0b3J5
LCBpbmRleCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgp
OwotICAgICAgICAgICAgZGF0YS0+cmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vf
bG9ja3NfdW5hdmFpbGFibGU7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCAmdmlldy0+
b3duZXJzaGlwX2xvY2spOwotICAgICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCA9IHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX3dpdGhfb3duZWQoCi0gICAgICAg
ICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCwgZmFsc2UpOwotICAgICAgICBpZiAodmVyYm9zZSkg
ewotICAgICAgICAgICAgcGFzX2xvZygidmlldyAlcCBoYXMgb3duZXJzaGlwIGtpbmQgPSAlcyBk
dWUgdG8gbm9ybWFsIGRlY29tbWl0IGluIHRha2VfbGFzdF9lbXB0eVxuIiwKLSAgICAgICAgICAg
ICAgICAgICAgdmlldywKLSAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfZ2V0X3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFzX2xvY2tf
c3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotICAgICAgICAKLSAgICAgICAgaWYgKCFwYXNfc2Vn
cmVnYXRlZF9wYWdlX3Rha2VfcGh5c2ljYWxseSgKLSAgICAgICAgICAgICAgICBwYWdlLCBkZWNv
bW1pdF9sb2csIHBhc19yYW5nZV9pc19ub3RfbG9ja2VkLCBoZWFwX2xvY2tfaG9sZF9tb2RlKSkg
ewotICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZF9pc191dGlsaXR5KGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCkpOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgJnZpZXctPm93bmVyc2hp
cF9sb2NrKTsKLSAgICAgICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kID0gcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfd2l0aF9vd25lZCgKLSAgICAgICAgICAg
ICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCwgdHJ1ZSk7Ci0gICAgICAgICAgICBpZiAodmVyYm9z
ZSkgewotICAgICAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIG93bmVyc2hpcCBraW5k
ID0gJXMgZHVlIHRvIHVuZG8gb2YgZGVjb21taXQgaW4gdGFrZV9sYXN0X2VtcHR5XG4iLAotICAg
ICAgICAgICAgICAgICAgICAgICAgdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2dldF9zdHJpbmcoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlk
X2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgo
ZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGRhdGEtPnJlc3Vs
dCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlOwotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmICh2ZXJi
b3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCIlcDogZGlkIGZ1bGx5IHRha2UgaW5kZXggJXp1
XG4iLCBkaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAgIHBhc19sb2coIkRlc3Ryb3lpbmcg
cGFnZSBoZWFkZXIgZm9yIHZpZXcgPSAlcCwgcGFnZSA9ICVwLCBib3VuZGFyeSA9ICVwICglcCkg
IgotICAgICAgICAgICAgICAgICAgICAiYXMgcGFydCBvZiBkZWNvbW1pdC5cbiIsCi0gICAgICAg
ICAgICAgICAgICAgIHZpZXcsIHBhZ2UsIHBhc19zZWdyZWdhdGVkX3BhZ2VfYm91bmRhcnkocGFn
ZSwgbXlfcGFnZV9jb25maWcpLAotICAgICAgICAgICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5k
YXJ5KTsKLSAgICAgICAgfQotICAgICAgICBteV9wYWdlX2NvbmZpZy5iYXNlLmRlc3Ryb3lfcGFn
ZV9oZWFkZXIoJnBhZ2UtPmJhc2UsIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgo
ZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgfQotICAgIAotICAgIGRhdGEtPnJlc3VsdCA9IHBhc19w
YWdlX3NoYXJpbmdfcG9vbF90YWtlX3N1Y2Nlc3M7Ci0gICAgcmV0dXJuIHRydWU7Ci0KLXJlbGVh
c2VfaGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U6Ci0gICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxk
X2xvY2ssIE5VTEwpOwotCi0gICAgLyogUmV0dXJuaW5nIGZhbHNlIG1lYW5zIHRoYXQgdGhlIGJh
Y2t3YXJkcyBpdGVyYXRpb24ga2VlcHMgZ29pbmcgYW5kIHRoaXMgc2hvdWxkIGdldCBjYWxsZWQK
LSAgICAgICBhZ2FpbiBpZiB0aGVyZSBhcmUgYW55IG90aGVyIHZpZXdzIG1hcmtlZCBlbXB0eS4g
Ki8KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jl
c3VsdAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0
eSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0
b3J5LAotICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZywKLSAgICBw
YXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKLXsKLSAgICAvKiBCZSBjYXJl
ZnVsOiBoZWFwX2xvY2tfaG9sZF9tb2RlIGhlcmUgY2FuIGJlIHVucmVsYXRlZCB0byB3aGF0IHBh
Z2VfY29uZmlnIHNheXMsIHNpbmNlCi0gICAgICAgd2UgbWF5IGJlIGFza2VkIGJ5IHRoZSBwaHlz
aWNhbCBwYWdlIHNoYXJpbmcgcG9vbCB0byBkZWNvbW1pdCBvbiBiZWhhbGYgb2YgYW55IG90aGVy
IGhlYXAsCi0gICAgICAgaW5jbHVkaW5nIG9uZXMgdGhhdCBob2xkIHRoZSBoZWFwIGxvY2sgd2hp
bGUgZG9pbmcgYnVzaW5lc3MuICovCi0KLSAgICB0YWtlX2xhc3RfZW1wdHlfZGF0YSBkYXRhOwot
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyBjb25maWc7Ci0gICAg
Ym9vbCBkaWRfZmluZF9zb21ldGhpbmc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBk
aXJlY3Rvcnk7Ci0KLSAgICBkaXJlY3RvcnkgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7Ci0KLSAg
ICBQQVNfVEVTVElOR19BU1NFUlQoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kICE9IHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7Ci0KLSAgICBkYXRhLmRlY29tbWl0X2xv
ZyA9IGRlY29tbWl0X2xvZzsKLSAgICBkYXRhLmhlYXBfbG9ja19ob2xkX21vZGUgPSBoZWFwX2xv
Y2tfaG9sZF9tb2RlOwotICAgIGRhdGEucmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rh
a2Vfbm9uZV9hdmFpbGFibGU7Ci0KLSAgICBkYXRhLm15X3BhZ2VfY29uZmlnX3B0ciA9IHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPnBhZ2VfY29u
ZmlnX2tpbmQpOwotCi0gICAgY29uZmlnLmRpcmVjdG9yeSA9IGRpcmVjdG9yeTsKLSAgICBjb25m
aWcuc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwgPSB0YWtlX2xhc3RfZW1wdHlfc2hvdWxk
X2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWw7Ci0gICAgY29uZmlnLmNvbnNpZGVyX3ZpZXcgPSB0YWtl
X2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldzsKLSAgICBjb25maWcuYXJnID0gJmRhdGE7Ci0KLSAg
ICBkaWRfZmluZF9zb21ldGhpbmcgPQotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXRlcmF0ZV9iYWNrd2FyZF90b190YWtlX2xhc3RfZW1wdHkoJmNvbmZpZyk7Ci0KLSAgICBpZiAo
IWRpZF9maW5kX3NvbWV0aGluZykKLSAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF90YWtlX25vbmVfYXZhaWxhYmxlOwotCi0gICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXNfZG9pbmdfc2hhcmluZyhkaXJlY3RvcnkpKTsKLSAgICBwYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YSgKLSAgICAgICAgJnBhc19waHlzaWNhbF9wYWdlX3No
YXJpbmdfcG9vbCwKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUo
Ci0gICAgICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X2tpbmRfc2VsZWN0X2Zvcl9zZWdyZWdhdGVkX2RpcmVjdG9yeSgKLSAgICAgICAg
ICAgICAgICBkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kKSkpOwotICAgIAotICAgIHJldHVybiBk
YXRhLnJlc3VsdDsKLX0KLQotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKLSAgICB1aW50
cHRyX3QgYmVnaW4sCi0gICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCi17Ci0gICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9nbG9iYWwoCi0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoYmVnaW4sIGNvbmZpZykpOwotfQot
Ci1wYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGNvdW50LAotICAg
IHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKLSAgICBwYXNfaGVhcF9j
b25maWcqIGNvbmZpZywKLSAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KQotewotICAgIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVzdWx0IHRsY19yZXN1bHQ7Ci0gICAgdW5zaWduZWQgYmFzZWxpbmVf
YWxsb2NhdG9yX2luZGV4OwotCi0gICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KSk7Ci0gICAgUEFTX0FT
U0VSVCghcGFzX2hlYXBfY29uZmlnX2lzX3V0aWxpdHkoY29uZmlnKSk7Ci0gICAgCi0gICAgcGFz
X2hlYXBfbG9ja19sb2NrKCk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2Nh
dG9yX2luZGV4KAotICAgICAgICBkaXJlY3RvcnktPmhlYXAsCi0gICAgICAgIGRpcmVjdG9yeSwK
LSAgICAgICAgY291bnQsCi0gICAgICAgIGNvdW50X2xvb2t1cF9tb2RlLAotICAgICAgICBjb25m
aWcsCi0gICAgICAgIGNhY2hlZF9pbmRleCk7Ci0gICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsK
LQotICAgIC8qIEN1cnJlbnRseSBhcyBzb29uIGFzIHdlIHN3aXRjaCB0byBUTEMgYWxsb2NhdG9y
cywgd2UgY2Fubm90IHBvc3NpYmx5IGhhdmUgYSBiYXNlbGluZQotICAgICAgIGFsbG9jYXRvci4g
QnV0IGlmIHdlIGRvLCB3ZSBzaG91bGQgc3RvcCBpdCBub3cuICovCi0gICAgYmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4ID0gZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXg7Ci0gICAg
aWYgKGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA8IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9S
UykgewotICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBiYXNlbGluZV9hbGxvY2F0b3I7
Ci0gICAgICAgIAotICAgICAgICBiYXNlbGluZV9hbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxs
b2NhdG9yX3RhYmxlICsgYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OwotICAgICAgICAKLSAgICAg
ICAgcGFzX2xvY2tfbG9jaygmYmFzZWxpbmVfYWxsb2NhdG9yLT5sb2NrKTsKLQotICAgICAgICAv
KiBJdCdzIHBvc3NpYmxlIHRoYXQgZHVlIHRvIGEgcmFjZSwgdGhlIGRpcmVjdG9yeSdzIGluZGV4
IGhhcyBiZWVuIHJlYXNzaWduZWQgdG8gc29tZXRoaW5nCi0gICAgICAgICAgIGVsc2UuIEF0IHdv
cnN0LCB0aGF0IHJhY2Ugd2lsbCBtZWFuIHRoYXQgc29tZSBiYXNlbGluZSBhbGxvY2F0b3Igd2ls
bCBiZSB1c2VkIGZvcgotICAgICAgICAgICBhbGxvY2F0aW9uLiBUaGVyZSdzIG5vdCBhIHdob2xl
IGxvdCB3ZSBjYW4gZG8gYWJvdXQgdGhhdC4gQXQgd29yc3QsIGl0IG1lYW5zIGxldHRpbmcgdGhl
Ci0gICAgICAgICAgIGhpZ2ggd2F0ZXJtYXJrIGdyb3cgYSBiaXQgaW4gY2FzZSBvZiBhIHdlaXJk
IHJhY2UuICovCi0gICAgICAgIGlmIChkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRl
eCA9PSBiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgpIHsKLSAgICAgICAgICAgIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3JfZGV0YWNoX2RpcmVjdG9yeShiYXNlbGluZV9hbGxvY2F0b3IpOwotICAgICAg
ICAgICAgcGFzX2ZlbmNlKCk7Ci0gICAgICAgICAgICBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9j
YXRvcl9pbmRleCA9IDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlM7Ci0gICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIHBhc19sb2NrX3VubG9jaygmYmFzZWxpbmVfYWxsb2NhdG9yLT5s
b2NrKTsKLSAgICB9Ci0gICAgCi0gICAgdGxjX3Jlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfZ2V0X2xvY2FsX2FsbG9jYXRvcigKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXQoY29uZmlnKSwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRl
eCwKLSAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgIAotICAgIFBBU19BU1NFUlQo
dGxjX3Jlc3VsdC5kaWRfc3VjY2VlZCk7Ci0KLSAgICByZXR1cm4gcGFzX2Jhc2VsaW5lX2FsbG9j
YXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3ModGxjX3Jlc3VsdC5hbGxvY2F0b3IsIE5VTEwpOwot
fQotCi1wYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9jb21wdXRlX3N1bW1hcnlfZm9yX3Vub3duZWRfZXhjbHVzaXZlKAotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnOwotICAgIHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0Owot
ICAgIHNpemVfdCBwYXlsb2FkX3NpemU7Ci0KLSAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+YmFz
ZS5wYWdlX2NvbmZpZ19raW5kICE9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVs
bCk7Ci0KLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Rh
dGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Ci0gICAgcGFnZV9jb25maWcgPSAqcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdl
X2NvbmZpZ19raW5kKTsKLSAgICAKLSAgICByZXN1bHQgPSBwYXNfaGVhcF9zdW1tYXJ5X2NyZWF0
ZV9lbXB0eSgpOwotICAgIAotICAgIHBheWxvYWRfc2l6ZSA9IChkYXRhLT5vZmZzZXRfZnJvbV9w
YWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCAtCi0gICAgICAgICAgICAgICAgICAg
IGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KTsKLSAgICAK
LSAgICByZXN1bHQuZGVjb21taXR0ZWQgKz0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemU7Ci0g
ICAgcmVzdWx0LmZyZWUgKz0gcGF5bG9hZF9zaXplOwotICAgIHJlc3VsdC5mcmVlX2RlY29tbWl0
dGVkICs9IHBheWxvYWRfc2l6ZTsKLSAgICAKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi10eXBl
ZGVmIHN0cnVjdCB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBn
bG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNrOwotICAgIHZvaWQq
IGFyZzsKLX0gZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGF0YTsKLQotc3RhdGljIGJvb2wgZm9yX2Vh
Y2hfbGl2ZV9vYmplY3RfY2FsbGJhY2soCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBk
aXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAotICAgIHVpbnRwdHJfdCBi
ZWdpbiwKLSAgICB2b2lkKiBhcmcpCi17Ci0gICAgZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGF0YSog
ZGF0YTsKLQotICAgIFBBU19VTlVTRURfUEFSQU0oZGlyZWN0b3J5KTsKLQotICAgIGRhdGEgPSBh
cmc7Ci0KLSAgICByZXR1cm4gZGF0YS0+Y2FsbGJhY2soZGF0YS0+Z2xvYmFsX3NpemVfZGlyZWN0
b3J5LCB2aWV3LCBiZWdpbiwgZGF0YS0+YXJnKTsKLX0KLQotYm9vbCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3QoCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNh
bGxiYWNrLAotICAgIHZvaWQqIGFyZykKLXsKLSAgICBmb3JfZWFjaF9saXZlX29iamVjdF9kYXRh
IGRhdGE7Ci0KLSAgICBkYXRhLmdsb2JhbF9zaXplX2RpcmVjdG9yeSA9IGRpcmVjdG9yeTsKLSAg
ICBkYXRhLmNhbGxiYWNrID0gY2FsbGJhY2s7Ci0gICAgZGF0YS5hcmcgPSBhcmc7Ci0gICAgCi0g
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2Jq
ZWN0KAotICAgICAgICAmZGlyZWN0b3J5LT5iYXNlLCBmb3JfZWFjaF9saXZlX29iamVjdF9jYWxs
YmFjaywgJmRhdGEpOwotfQotCi1zaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmQga2luZDsKLQotICAgIGtpbmQgPSBkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdf
a2luZDsKLQotICAgIGlmIChraW5kID09IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRf
bnVsbCkKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfbnVsbF9jb25maWcoKTsKLSAgICAKLSAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9z
aXplX2Zvcl9jb25maWcoCi0gICAgICAgICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
X2dldF9jb25maWcoa2luZCkpOwotfQotCi1wYXNfYWxsb2NhdG9yX2luZGV4IHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2lu
ZGljZXNfZm9yX2FsbG9jYXRvcl9zaXplKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemUoZGlyZWN0b3J5KSk7Ci19Ci0KLXZv
aWQgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNf
c3RyZWFtKiBzdHJlYW0pCi17Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoCi0gICAgICAgIHN0cmVh
bSwKLSAgICAgICAgIiVwKHNlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LCAldSwgJXAs
ICVzKSIsCi0gICAgICAgIGRpcmVjdG9yeSwKLSAgICAgICAgZGlyZWN0b3J5LT5vYmplY3Rfc2l6
ZSwKLSAgICAgICAgZGlyZWN0b3J5LT5oZWFwLAotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQp
KTsKLX0KLQotdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZHVtcF9m
b3Jfc3BlY3RydW0oCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCB2b2lkKiBkaXJlY3RvcnkpCi17
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNl
KGRpcmVjdG9yeSwgc3RyZWFtKTsKLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaAkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMzEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpZm5kZWYgUEFTX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX0gKLSNkZWZpbmUg
UEFTX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX0gKLQotI2luY2x1ZGUgInBhc19h
bGxvY2F0b3JfaW5kZXguaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2ds
b2JhbF9zaXplX2NsYXNzX3B0ci5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19wYWdl
X3NoYXJpbmdfcG9vbF9wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rf
YXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIgotI2luY2x1ZGUgInBhc19j
b21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIgotI2luY2x1ZGUgInBh
c19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29uZmlnLmgi
Ci0jaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2VfZ3JhbnVs
ZV91c2VfY291bnQuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5o
IgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfZXh0ZW5kZWRfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YTsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2RhdGE7Ci10eXBlZGVmIHN0cnVjdCBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfZGF0YTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kYXRhIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhOwotCi1QQVNfREVGSU5FX0NPTVBBQ1RfQVRPTUlDX1BU
UihwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhX3B0cik7Ci0KLVBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2Nhbl9leHBsb2RlOwotUEFTX0FQSSBleHRlcm4gYm9vbCBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yY2VfZXhwbG9kZTsKLQotc3RydWN0IFBBU19B
TElHTkVEKHNpemVvZihwYXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5IHsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkgYmFzZTsKLSAg
ICAKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwOwotCi0gICAgdW5zaWduZWQgb2JqZWN0
X3NpemUgOiAyNzsKLSAgICB1bnNpZ25lZCBhbGlnbm1lbnRfc2hpZnQgOiA1OwotCi0gICAgLyog
VGhpcyBoYXMgYSBmdW5ueSBlbmNvZGluZyAobGV0IE4gPSBQQVNfTlVNX0JBU0VMSU5FX0FMTE9D
QVRPUlMpOgotICAgICAgIAotICAgICAgIGluZGV4IGluIFswLCBOKSAgICAgPT4gYXR0YWNoZWQg
dG8gaW5kZXgKLSAgICAgICBpbmRleCBpbiBbTiwgMk4pICAgID0+IGF0dGFjaGluZyB0byBpbmRl
eCAtIE4KLSAgICAgICAyTiAgICAgICAgICAgICAgICAgID0+IGRldGFjaGVkCi0gICAgICAgCi0g
ICAgICAgSW4gdGhlIGRldGFjaGVkIHN0YXRlLCB0aGUgb25seSB3YXkgdG8gY2hhbmdlIHRoaXMg
aXMgdG8gQ0FTIGl0LgotICAgICAgIAotICAgICAgIEluIHRoZSBhdHRhY2hlZCBhbmQgYXR0YWNo
aW5nIHN0YXRlcywgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXgncyBsb2NrIHByb3RlY3RzIHRoaXMg
ZmllbGQuICovCi0gICAgdWludDE2X3QgYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OwotICAgIAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0ciBkYXRhOwot
ICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyIGJpdGZp
dF9zaXplX2NsYXNzOwotCi0gICAgLyogVGhlIG93bmluZyBzZWdyZWdhdGVkIGhlYXAgaG9sZHMg
dGhlc2UgaW4gYSBzaW5nbHkgbGlua2VkIGxpc3QuICovCi0gICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBuZXh0X2Zvcl9oZWFwOwotfTsK
LQotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhIHsKLSAg
ICB1bnNpZ25lZCBvZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdDsgLyog
Q2FjaGVkIHRvIG1ha2UgcmVmaWxsIGZhc3QuICovCi0gICAgdW5zaWduZWQgb2Zmc2V0X2Zyb21f
cGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3Q7IC8qIENhY2hlZCB0byBtYWtlIHJl
ZmlsbCBmYXN0LiAqLwotICAgIAotICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2lu
ZGV4OwotICAgIAotICAgIHVpbnQ4X3QgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOwotCi0gICAg
cGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ciBmdWxsX2FsbG9jX2JpdHM7IC8qIFByZWNv
bXB1dGVkIGFsbG9jIGJpdHMgaW4gdGhlIGNhc2UgdGhhdCBhIHBhZ2UgaXMgZW1wdHkuICovCi0g
ICAgcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ciBiaWFzX3NoYXJpbmdf
cG9vbDsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlIG5leHRfZm9yX2xheW91dDsKLX07Ci0KLXN0cnVjdCBwYXNfZXh0ZW5kZWRfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2RhdGEgYmFzZTsKLSAgICBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9n
cmFudWxlX3VzZV9jb3VudF9wdHIgZnVsbF91c2VfY291bnRzOwotfTsKLQotc3RhdGljIGlubGlu
ZSBwYXNfc2VncmVnYXRlZF92aWV3Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfYXNfdmlldyhwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSkKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19jcmVhdGUoZGlyZWN0b3J5LCBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kKTsKLX0KLQotc3Rh
dGljIGlubGluZSBzaXplX3QKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9h
bGlnbm1lbnQocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnkp
Ci17Ci0gICAgcmV0dXJuIChzaXplX3QpMSA8PCAoc2l6ZV90KWRpcmVjdG9yeS0+YWxpZ25tZW50
X3NoaWZ0OwotfQotCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NyZWF0ZSgKLSAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHVuc2lnbmVkIG9iamVjdF9zaXplLAotICAgIHVu
c2lnbmVkIGFsaWdubWVudCwKLSAgICBwYXNfaGVhcF9jb25maWcqIGhlYXBfY29uZmlnLAotICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7Ci0KLXN0YXRpYyBpbmxp
bmUgYm9vbCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY29udGVudGlvbl9k
aWRfdHJpZ2dlcl9leHBsb3Npb24oCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9nZXRfbWlzY19iaXQoJmRpcmVjdG9yeS0+YmFzZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9v
bCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2V0X2NvbnRlbnRpb25fZGlk
X3RyaWdnZXJfZXhwbG9zaW9uKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAotICAgIGJvb2wgdmFsdWUpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9zZXRfbWlzY19iaXQoJmRpcmVjdG9yeS0+YmFzZSwgdmFsdWUpOwot
fQotCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZW5zdXJlX2RhdGEoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX2xv
Y2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi1QQVNfQVBJIHBhc19leHRlbmRl
ZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKgotcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2dldF9leHRlbmRlZF9kYXRhKAotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotLyogQ2FsbCB3aXRoIGhl
YXAgbG9jayBoZWxkLiAqLwotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcigKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7Ci0gICAgZGF0
YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZk
aXJlY3RvcnktPmRhdGEpOwotICAgIHJldHVybiBkYXRhICYmIGRhdGEtPmFsbG9jYXRvcl9pbmRl
eCAhPSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWDsKLX0KLQotLyogQ2FsbCB3aXRoIGhl
YXAgbG9jayBoZWxkLiAqLwotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3ZpZXdzKAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotc3RhdGljIGlubGluZSBib29sIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hcmVfZXhjbHVzaXZlX3ZpZXdzX2Vu
YWJsZWQoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRh
dGE7Ci0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRh
X3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwotICAgIHJldHVybiBkYXRhICYmIGRhdGEtPmZ1
bGxfbnVtX25vbl9lbXB0eV93b3JkczsKLX0KLQotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9leHBsb2RlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVjdCgK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0K
LVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKTsK
LQotUEFTX0FQSSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQKLXBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX2RlZmVycmVk
X2RlY29tbWl0X2xvZyogbG9nLAotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAotICAgIHVp
bnRwdHJfdCBiZWdpbiwKLSAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZyk7Ci0KLS8qIFRoaXMg
YXNzdW1lcyB0aGF0IHdlIGFscmVhZHkgaGF2ZSBhIGRhdGEuIFRoYXQncyBhIHZhbGlkIGFzc3Vt
cHRpb24gaWYgd2UgaGF2ZSBleGNsdXNpdmVzLiAqLwotUEFTX0FQSSBwYXNfaGVhcF9zdW1tYXJ5
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnlfZm9y
X3Vub3duZWRfZXhjbHVzaXZlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5KTsKLQotLyogV2UgdXNlIGEgcGFnZSBzaGFyaW5nIHBvb2wgYXMgb3Vy
IGNvbGxlY3Rpb24gb2YgYmlhc2luZyBkaXJlY3Rvcmllcy4KLSAKLSAgIENvb2wgZmFjdDogcGFn
ZSBzaGFyaW5nIHBvb2wgaXRlcmF0aW9uIGZ1bmN0aW9ucyB3b3JrIGZvciBOVUxMLiBUaGV5J2xs
IGJlaGF2ZSBhcyBpZiB5b3UgaGFkIGFuCi0gICBlbXB0eSBwb29sLiBTbywgbm8gbmVlZCB0byBO
VUxMLWNoZWNrIGlmIHVzaW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhpcyBmdW5jdGlvbiB0byBp
dGVyYXRlIHRoZQotICAgYmlhc2luZyBkaXJlY3Rvcmllcy4gKi8KLXN0YXRpYyBpbmxpbmUgcGFz
X3BhZ2Vfc2hhcmluZ19wb29sKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
Ymlhc19zaGFyaW5nX3Bvb2woCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2RhdGEqIGRhdGE7Ci0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwotICAgIGlmICghZGF0YSkK
LSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21pY19wYWdl
X3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotfQotCi10
eXBlZGVmIGJvb2wgKCpwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX2Vh
Y2hfbGl2ZV9vYmplY3RfY2FsbGJhY2spKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKLSAg
ICB1aW50cHRyX3QgYmVnaW4sCi0gICAgdm9pZCogYXJnKTsKLQotUEFTX0FQSSBib29sIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdCgKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3Rf
Y2FsbGJhY2sgY2FsbGJhY2ssCi0gICAgdm9pZCogYXJnKTsKLQotUEFTX0FQSSBzaXplX3QgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQot
UEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKAotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0p
OwotCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2R1
bXBfZm9yX3NwZWN0cnVtKAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGlyZWN0b3J5
KTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX0dMT0JB
TF9TSVpFX0RJUkVDVE9SWV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2lubGluZXMuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDEzOSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRl
ZiBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19ICi0jZGVmaW5l
IFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9JTkxJTkVTX0gKLQotI2luY2x1
ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0LmgiCi0jaW5jbHVkZSAicGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl90YWJsZS5oIgotI2luY2x1ZGUgInBhc19jb3VudF9sb29rdXBfbW9kZS5o
IgotI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3IuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5LmgiCi0jaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgotCi1QQVNfQkVHSU5f
RVhURVJOX0M7Ci0KLVBBU19BUEkgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQKLXBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAg
IHNpemVfdCBjb3VudCwKLSAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21v
ZGUsCi0gICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCi0gICAgdW5zaWduZWQqIGNhY2hlZF9p
bmRleCk7Ci0KLVBBU19BUEkgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcioKLXBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yX3Nsb3coCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1zdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQKLXBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yKAotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBjb3Vu
dCwKLSAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCi0gICAgcGFz
X2hlYXBfY29uZmlnKiBjb25maWcsCi0gICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKLXsKLSAg
ICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2Nh
dG9yKGRpcmVjdG9yeSkKLSAgICAgICAgJiYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dl
dCgpIHx8IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY2FuX3NldCgpKSkgewotICAgICAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJv
bV90bGMoCi0gICAgICAgICAgICBkaXJlY3RvcnksIGNvdW50LCBjb3VudF9sb29rdXBfbW9kZSwg
Y29uZmlnLCBjYWNoZWRfaW5kZXgpOwotICAgIH0KLQotICAgIGZvciAoOzspIHsKLSAgICAgICAg
dW5zaWduZWQgaW5kZXg7Ci0gICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIGFsbG9jYXRv
cjsKLQotICAgICAgICBpbmRleCA9IGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4
OwotICAgICAgICBpZiAoaW5kZXggPj0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTKQotICAg
ICAgICAgICAgYWxsb2NhdG9yID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3NlbGVjdF9hbGxvY2F0b3Jfc2xvdyhkaXJlY3RvcnkpOwotICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgIGFsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBpbmRleDsK
LSAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmYWxsb2NhdG9yLT5sb2Nr
KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4ICE9IGluZGV4KSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2Nr
KCZhbGxvY2F0b3ItPmxvY2spOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3KSA9
PSBkaXJlY3RvcnkpOwotCi0gICAgICAgIHJldHVybiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jl
c3VsdF9jcmVhdGVfc3VjY2VzcygKLSAgICAgICAgICAgICZhbGxvY2F0b3ItPnUuYWxsb2NhdG9y
LCAmYWxsb2NhdG9yLT5sb2NrKTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBzaXplX3QKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxv
Y2F0b3Jfc2l6ZV9mb3JfbnVsbF9jb25maWcodm9pZCkKLXsKLSAgICByZXR1cm4gUEFTX0xPQ0FM
X0FMTE9DQVRPUl9TSVpFKDApOwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6
ZV9mb3JfY29uZmlnKAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZykKLXsK
LSAgICBQQVNfQVNTRVJUKGNvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwotICAgIHJldHVybiBQQVNf
TE9DQUxfQUxMT0NBVE9SX1NJWkUoY29uZmlnLm51bV9hbGxvY19iaXRzKTsKLX0KLQotc3RhdGlj
IGlubGluZSBwYXNfYWxsb2NhdG9yX2luZGV4Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9hbGxvY2F0b3Jfc2l6ZShzaXplX3Qg
c2l6ZSkKLXsKLSAgICBwYXNfYWxsb2NhdG9yX2luZGV4IHJlc3VsdDsKLQotICAgIHJlc3VsdCA9
IChwYXNfYWxsb2NhdG9yX2luZGV4KShzaXplIC8gOCk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJU
KChzaXplX3QpcmVzdWx0ICogOCA9PSBzaXplKTsKLSAgICAKLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRvcl9pbmRleAotcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3Jf
Y29uZmlnKAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZykKLXsKLSAgICBz
dGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgc2l6ZV90IHNpemU7
Ci0KLSAgICBQQVNfQVNTRVJUKGNvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwotICAgIAotICAgIHNp
emUgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9y
X3NpemVfZm9yX2NvbmZpZyhjb25maWcpOwotCi0gICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAg
cGFzX2xvZygKLSAgICAgICAgICAgICJraW5kID0gJXMsIHNpemUgPSAlenUuXG4iLAotICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGNvbmZpZy5r
aW5kKSwKLSAgICAgICAgICAgIHNpemUpOwotICAgIH0KLQotICAgIHJldHVybiBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9hbGxv
Y2F0b3Jfc2l6ZShzaXplKTsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBB
U19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9JTkxJTkVTX0ggKi8KLQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICsz
NCw3IEBACiAjaW5jbHVkZSAicGFzX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9yZWYuaCIK
ICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2UuaCIK
ICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgiCiAjaW5jbHVkZSAicGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCIKQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIHBhc19zZWdy
ZWdhdGVkX2hlYXBfY29uc3RydWN0KHBhc19zCiAKICAgICBzZWdyZWdhdGVkX2hlYXAtPnJ1bnRp
bWVfY29uZmlnID0gcnVudGltZV9jb25maWc7CiAgICAgCi0gICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKKyAgICBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAg
ICZzZWdyZWdhdGVkX2hlYXAtPmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkLCBOVUxMKTsK
ICAgICAKICAgICBzZWdyZWdhdGVkX2hlYXAtPnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kID0gMDsK
QEAgLTQwNSw3ICs0MDUsNyBAQCB1bnNpZ25lZCBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9h
bGxvCiAgICAgcmV0dXJuIFVJTlRfTUFYOwogfQogCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X2Zv
cl9pbmRleCgKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9o
ZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcCogaGVhcCwKICAgICBzaXplX3QgaW5kZXgsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9t
ZWRpdW1fc2l6ZV9kaXJlY3Rvcnlfc2VhcmNoX21vZGUgc2VhcmNoX21vZGUsCkBAIC00MTcsNyAr
NDE3LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYQogICAgICAg
ICBoZWFwLCBpbmRleCwgc2VhcmNoX21vZGUsIGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAgIAog
ICAgIGlmIChtZWRpdW1fZGlyZWN0b3J5KQotICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZtZWRpdW1fZGly
ZWN0b3J5LT5kaXJlY3RvcnkpOworICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJm1lZGl1bV9kaXJlY3RvcnktPmRpcmVj
dG9yeSk7CiAgICAgCiAgICAgcmV0dXJuIE5VTEw7CiB9CkBAIC00NDMsNyArNDQzLDcgQEAgc3Rh
dGljIHZvaWQgZW5zdXJlX2NvdW50X2xvb2t1cChwYXNfc2VncgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKIHsKICAgICBzaXplX3QgaW5k
ZXhfdXBwZXJfYm91bmQ7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zaXpl
X2RpcmVjdG9yeTsKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4KiBpbmRleF90b19hbGxvY2F0b3Jf
aW5kZXg7CiAgICAgdW5zaWduZWQgaW5kZXg7CiAgICAgCkBAIC00NTYsNyArNDU2LDcgQEAgc3Rh
dGljIHZvaWQgZW5zdXJlX2NvdW50X2xvb2t1cChwYXNfc2VncgogICAgIGluZGV4X3VwcGVyX2Jv
dW5kID0gY29tcHV0ZV9zbWFsbF9pbmRleF91cHBlcl9ib3VuZChoZWFwLCBjb25maWcpOwogICAg
IAogICAgIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2Nh
dGUoCi0gICAgICAgIHNpemVvZihwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyKSAqIGluZGV4X3VwcGVyX2JvdW5kLAorICAgICAgICBzaXplb2Yo
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKSAqIGluZGV4
X3VwcGVyX2JvdW5kLAogICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC9pbmRleF90b19zaXpl
X2RpcmVjdG9yeSIsCiAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAgICAgaW5kZXhf
dG9fYWxsb2NhdG9yX2luZGV4ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCkBAIC00NjUs
NyArNDY1LDcgQEAgc3RhdGljIHZvaWQgZW5zdXJlX2NvdW50X2xvb2t1cChwYXNfc2VncgogICAg
ICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwogICAgIAogICAgIGZvciAoaW5kZXggPSAwOyBp
bmRleCA8IGluZGV4X3VwcGVyX2JvdW5kOyArK2luZGV4KSB7Ci0gICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAg
ICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9y
ZSgKICAgICAgICAgICAgIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5ICsgaW5kZXgsIE5VTEwpOwog
ICAgICAgICBpbmRleF90b19hbGxvY2F0b3JfaW5kZXhbaW5kZXhdID0gKHBhc19hbGxvY2F0b3Jf
aW5kZXgpVUlOVF9NQVg7CiAgICAgfQpAQCAtNDgxLDcgKzQ4MSw3IEBAIHN0YXRpYyB2b2lkIGVu
c3VyZV9jb3VudF9sb29rdXAocGFzX3NlZ3IKIHVuc2lnbmVkCiBwYXNfc2VncmVnYXRlZF9oZWFw
X2Vuc3VyZV9hbGxvY2F0b3JfaW5kZXgoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBj
b3VudCwKICAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCiAgICAg
cGFzX2hlYXBfY29uZmlnKiBjb25maWcsCkBAIC01MTQsNyArNTE0LDcgQEAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZAogICAgICAgICBwcmludGYoImluZGV4ID0gJXp1
XG4iLCBpbmRleCk7CiAKICAgICBhbGxvY2F0b3JfaW5kZXggPQotICAgICAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRh
KS0+YWxsb2NhdG9yX2luZGV4OworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXg7CiAgICAg
UEFTX0FTU0VSVCgocGFzX2FsbG9jYXRvcl9pbmRleClhbGxvY2F0b3JfaW5kZXggPT0gYWxsb2Nh
dG9yX2luZGV4KTsKICAgICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9pbmRleCA8ICh1bnNpZ25lZCko
cGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CiAgICAgCkBAIC01NTksNyArNTU5LDcgQEAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZAogICAgICAgICAgICAgICAg
IHBhc19sb2NrX2lzX2hlbGQpOwogICAgICAgICBQQVNfQVNTRVJUKG1lZGl1bV9kaXJlY3Rvcnkp
OwogICAgICAgICBQQVNfQVNTRVJUKAotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZtZWRpdW1fZGlyZWN0b3J5
LT5kaXJlY3RvcnkpCisgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmbWVkaXVtX2RpcmVjdG9yeS0+ZGlyZWN0b3J5KQogICAg
ICAgICAgICAgPT0gZGlyZWN0b3J5KTsKICAgICAgICAgCiAgICAgICAgIG1lZGl1bV9kaXJlY3Rv
cnktPmFsbG9jYXRvcl9pbmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4KWFsbG9jYXRvcl9pbmRl
eDsKQEAgLTY5NywxOCArNjk3LDIwIEBAIGVuc3VyZV9jb3VudF9sb29rdXBfaWZfbmVjZXNzYXJ5
KHBhc19zZWcKICAgICAgICAgZW5zdXJlX2NvdW50X2xvb2t1cChoZWFwLCBjb25maWcpOwogfQog
Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCi1wYXNfc2VncmVnYXRlZF9o
ZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQocGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3QgY291bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9v
a3VwX21vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKK3Bhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgorcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6
ZV9kaXJlY3RvcnlfZm9yX2NvdW50KAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisg
ICAgc2l6ZV90IGNvdW50LAorICAgIHNpemVfdCBhbGlnbm1lbnQsCisgICAgcGFzX2NvdW50X2xv
b2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAorICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmln
LAorICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfY3JlYXRpb25fbW9kZSBjcmVhdGlvbl9tb2RlKQogewogICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAogICAgIHBhc19oZWFwKiBwYXJlbnRfaGVhcDsKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcmVzdWx0OwogICAgIHNpemVfdCBpbmRleDsKICAg
ICBzaXplX3Qgb2JqZWN0X3NpemU7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGly
ZWN0b3J5X3R1cGxlKiBtZWRpdW1fdHVwbGU7CkBAIC04MTYsMTEgKzgxOCwxMSBAQCBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAKICAgICBQQVNfQVNTRVJUKAogICAg
ICAgICAhcmVzdWx0IHx8Ci0gICAgICAgIHBhc19pc19hbGlnbmVkKHJlc3VsdC0+b2JqZWN0X3Np
emUsIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0
KSkpOworICAgICAgICBwYXNfaXNfYWxpZ25lZChyZXN1bHQtPm9iamVjdF9zaXplLCBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0KSkpOwogCiAgICAgaXNfdXRp
bGl0eSA9IHBhc19oZWFwX2NvbmZpZ19pc191dGlsaXR5KGNvbmZpZyk7CiAgICAgCi0gICAgaWYg
KHJlc3VsdCAmJiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50
KHJlc3VsdCkgPCBhbGlnbm1lbnQpIHsKKyAgICBpZiAocmVzdWx0ICYmIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChyZXN1bHQpIDwgYWxpZ25tZW50KSB7CiAgICAgICAg
IHNpemVfdCB2aWN0aW1faW5kZXg7CiAgICAgICAgIAogICAgICAgICAvKiBJbiB0aGlzIGNhc2Us
IHJlc3VsdCBpcyBhIHNpemUgY2xhc3MgZm9yIGF0IGxlYXN0IGFzIGJpZyBvZiBhIHNpemUKQEAg
LTgzMywxNiArODM1LDE2IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0
b3IKICAgICAgICAgICAgVGhpcyBsb29wIHN0YXJ0cyBhdCBpbmRleCAobm90IGluZGV4ICsgMSBk
ZXNwaXRlIHdoYXQgdGhlIGluaXRpYWwKICAgICAgICAgICAgY29uZGl0aW9uIHNlZW1zIHRvIGRv
KSBhbmQgdHJhdmVscyBkb3duLiAqLwogICAgICAgICBpZiAoaGVhcC0+c21hbGxfaW5kZXhfdXBw
ZXJfYm91bmQpIHsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5Owor
ICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyKiBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKICAgICAgICAgICAgIHBhc19hbGxv
Y2F0b3JfaW5kZXgqIGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleDsKIAogICAgICAgICAg
ICAgaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3RvcnkgPSBoZWFwLT5pbmRleF90b19zbWFsbF9z
aXplX2RpcmVjdG9yeTsKICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRl
eCA9IGhlYXAtPmluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleDsKICAgICAgICAgICAgIAog
ICAgICAgICAgICAgZm9yICh2aWN0aW1faW5kZXggPSBpbmRleCArIDE7IHZpY3RpbV9pbmRleC0t
OykgewotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5OworICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3Rvcnk7CiAKLSAgICAgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAg
ICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxs
X3NpemVfZGlyZWN0b3J5ICsgdmljdGltX2luZGV4KTsKICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICBpZiAoIWRpcmVjdG9yeSkKQEAgLTg1MSw3ICs4NTMsNyBAQCBwYXNfc2VncmVn
YXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICAgICAgaWYgKGRpcmVj
dG9yeSAhPSByZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAgICAgICAgICAgICAgIGluZGV4X3Rv
X3NtYWxsX3NpemVfZGlyZWN0b3J5ICsgdmljdGltX2luZGV4LCBOVUxMKTsKICAgICAgICAgICAg
ICAgICBpZiAoIWlzX3V0aWxpdHkpCiAgICAgICAgICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxs
X2FsbG9jYXRvcl9pbmRleFt2aWN0aW1faW5kZXhdID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlO
VF9NQVg7CkBAIC05MTksNyArOTIxLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6
ZV9kaXJlY3RvcgogICAgICAgICAgICAKICAgICAgICAgICAgU21hbGxlciBpbmRleDogY2xlYXIg
aXQgaWYgaXQgbWF0Y2hlcywgc2luY2Ugd2UgKm1heSogd2FudCB0aG9zZQogICAgICAgICAgICBz
bWFsbGVyIGFsbG9jYXRpb25zIHRvIGNvbnNpZGVyIG91ciBuZXcgb25lLiAqLwotICAgICAgICBp
ZiAocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0
cl9sb2FkKAorICAgICAgICBpZiAocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAgJmhlYXAtPmJhc2ljX3NpemVfZGly
ZWN0b3J5X2FuZF9oZWFkKSA9PSByZXN1bHQKICAgICAgICAgICAgICYmIHJlc3VsdC0+YmFzZS5p
c19iYXNpY19zaXplX2RpcmVjdG9yeQogICAgICAgICAgICAgJiYgaW5kZXggPj0gKGNhY2hlZF9p
bmRleCA/ICpjYWNoZWRfaW5kZXggOiAxKSkgewpAQCAtOTM1LDE0ICs5MzcsMTQgQEAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgIAogICAgIGlmICghcmVzdWx0
KSB7CiAgICAgICAgIHNpemVfdCBjYW5kaWRhdGVfaW5kZXg7Ci0gICAgICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogY2FuZGlkYXRlOworICAgICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogY2FuZGlkYXRlOwogICAgICAgICBzaXplX3QgbWVkaXVtX2lu
c3RhbGxfaW5kZXg7CiAgICAgICAgIHNpemVfdCBtZWRpdW1faW5zdGFsbF9jb3VudDsKICAgICAg
ICAgZG91YmxlIGJlc3RfYnl0ZXNfZGlydGllZF9wZXJfb2JqZWN0OwogICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyogYmVzdF9wYWdlX2NvbmZpZzsKICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCB2YXJpYW50OwotICAgICAgICBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFs
bF9zaXplX2RpcmVjdG9yeTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZDsKKyAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFsbF9z
aXplX2RpcmVjdG9yeTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGJh
c2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkOwogCiAgICAgICAgIGluZGV4X3RvX3NtYWxsX3Np
emVfZGlyZWN0b3J5ID0gaGVhcC0+aW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAg
ICAgIApAQCAtOTU0LDcgKzk1Niw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3IKICAgICAgICAgZm9yIChjYW5kaWRhdGVfaW5kZXggPSBpbmRleDsKICAgICAgICAg
ICAgICBjYW5kaWRhdGVfaW5kZXggPCBoZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZDsKICAg
ICAgICAgICAgICArK2NhbmRpZGF0ZV9pbmRleCkgewotICAgICAgICAgICAgY2FuZGlkYXRlID0g
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkKAorICAgICAgICAgICAgY2FuZGlkYXRlID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAgaW5kZXhfdG9fc21h
bGxfc2l6ZV9kaXJlY3RvcnkgKyBjYW5kaWRhdGVfaW5kZXgpOwogICAgICAgICAgICAgaWYgKGNh
bmRpZGF0ZSkKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTk2Myw3ICs5NjUsNyBAQCBwYXNf
c2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgIC8qIEl0J3MgcG9z
c2libGUgdGhhdCB0aGUgYmFzaWMgc2l6ZSBjbGFzcyBpcyBhIGNhbmRpZGF0ZS4gVGhhdCBjb3Vs
ZAogICAgICAgICAgICBoYXBwZW4gaWYgd2UgZGlkIG5vdCBmb3JjZSBjb3VudCBsb29rdXAgd2hl
biBjcmVhdGluZyB0aGF0IGJhc2ljIHNpemUKICAgICAgICAgICAgY2xhc3MuICovCi0gICAgICAg
IGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICBiYXNpY19zaXpl
X2RpcmVjdG9yeV9hbmRfaGVhZCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgJmhlYXAtPmJhc2ljX3NpemVfZGlyZWN0
b3J5X2FuZF9oZWFkKTsKICAgICAgICAgaWYgKCghY2FuZGlkYXRlIHx8IGNhbmRpZGF0ZV9pbmRl
eCA+IChjYWNoZWRfaW5kZXggPyAqY2FjaGVkX2luZGV4IDogMSkpCiAgICAgICAgICAgICAmJiBi
YXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZApAQCAtOTgwLDggKzk4Miw4IEBAIHBhc19zZWdy
ZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9sZWFzdF9ncmVhdGVyX2VxdWFs
LAogICAgICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CiAgICAgICAgIGlmIChtZWRpdW1fdHVw
bGUpIHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5OwotICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgICAgIGRpcmVj
dG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkKAogICAgICAgICAgICAgICAgICZtZWRpdW1fdHVwbGUtPmRpcmVjdG9yeSk7CiAgICAgICAg
ICAgICBpZiAoIWNhbmRpZGF0ZSB8fCBkaXJlY3RvcnktPm9iamVjdF9zaXplIDwgY2FuZGlkYXRl
LT5vYmplY3Rfc2l6ZSkKICAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBkaXJlY3Rvcnk7CkBA
IC0xMDQxLDcgKzEwNDMsNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVj
dG9yCiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFpc191dGlsaXR5KTsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChjYW5kaWRhdGUgJiYgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2FsaWdubWVudChjYW5kaWRhdGUpID49IGFsaWdubWVudCkgeworICAgICAgICBpZiAoY2Fu
ZGlkYXRlICYmIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChjYW5kaWRh
dGUpID49IGFsaWdubWVudCkgewogICAgICAgICAgICAgZG91YmxlIGJ5dGVzX2RpcnRpZWRfcGVy
X29iamVjdF9ieV9jYW5kaWRhdGU7CiAgICAgICAgIAogICAgICAgICAgICAgaWYgKHZlcmJvc2Up
IHsKQEAgLTEwNjMsOCArMTA2NSw4IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3IKICAgICAgICAgfQogICAgIAogICAgICAgICBpZiAoIXJlc3VsdCkgewotICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0ciogaGVhZDsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQ7CisgICAgICAgICAgICBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIqIGhlYWQ7CisgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogYmFzaWNfc2l6ZV9kaXJlY3Rvcnlf
YW5kX2hlYWQ7CiAKICAgICAgICAgICAgIGlmIChiZXN0X3BhZ2VfY29uZmlnKSB7CiAgICAgICAg
ICAgICAgICAgb2JqZWN0X3NpemUgPSBjb21wdXRlX2lkZWFsX29iamVjdF9zaXplKApAQCAtMTEw
MSwxNiArMTEwMywxNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9y
CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBwYXNfbG9nKCJCdW1w
ZWQgYWxpZ25tZW50IHVwIHRvICV6dS5cbiIsIGFsaWdubWVudCk7CiAgICAgICAgIAotICAgICAg
ICAgICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NyZWF0
ZSgKKyAgICAgICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Ny
ZWF0ZSgKICAgICAgICAgICAgICAgICBoZWFwLAogICAgICAgICAgICAgICAgICh1bnNpZ25lZClv
YmplY3Rfc2l6ZSwKICAgICAgICAgICAgICAgICAodW5zaWduZWQpYWxpZ25tZW50LAogICAgICAg
ICAgICAgICAgIGNvbmZpZywKLSAgICAgICAgICAgICAgICBiZXN0X3BhZ2VfY29uZmlnKTsKKyAg
ICAgICAgICAgICAgICBiZXN0X3BhZ2VfY29uZmlnLAorICAgICAgICAgICAgICAgIGNyZWF0aW9u
X21vZGUpOwogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgcHJpbnRm
KCJDcmVhdGVkIHNpemUgY2xhc3MgPSAlcFxuIiwgcmVzdWx0KTsKIAotICAgICAgICAgICAgYmFz
aWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAgICBiYXNpY19zaXpl
X2RpcmVjdG9yeV9hbmRfaGVhZCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2Rp
cmVjdG9yeV9hbmRfaGVhZCk7CiAgICAgICAgICAgICBpZiAoYmFzaWNfc2l6ZV9kaXJlY3Rvcnlf
YW5kX2hlYWQKICAgICAgICAgICAgICAgICAmJiBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVh
ZC0+YmFzZS5pc19iYXNpY19zaXplX2RpcmVjdG9yeSkKQEAgLTExMTgsMjQgKzExMjEsMjQgQEAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIGhlYWQgPSAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5k
X2hlYWQ7CiAKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAgICAgICAgICAg
JnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoaGVhZCkpOwotICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3B0cl9zdG9yZShoZWFkLCByZXN1bHQpOworICAgICAgICAgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKGhlYWQpKTsKKyAgICAg
ICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9z
dG9yZShoZWFkLCByZXN1bHQpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAoY2Fj
aGVkX2luZGV4CiAgICAgICAgICAgICA/ICpjYWNoZWRfaW5kZXggPT0gVUlOVF9NQVggfHwgKmNh
Y2hlZF9pbmRleCA9PSBpbmRleAogICAgICAgICAgICAgOiBpbmRleCA9PSAxKSB7Ci0gICAgICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyKiBwcmV2X25leHRfcHRyOworICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBwcmV2X25leHRfcHRyOwogICAgICAgICAgICAgYm9v
bCBkaWRfZmluZF9yZXN1bHQ7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKSB7CiAgICAgICAgICAgICAgICAgcHJpbnRmKCJwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3Vy
ZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQ6ICIKICAgICAgICAgICAgICAgICAgICAgICAgIkNh
Y2hpbmcgYXMgYmFzaWMgc2l6ZSBjbGFzcyFcbiIpOwogICAgICAgICAgICAgfQotICAgICAgICAg
ICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAg
ICAgJmhlYXAtPmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKTsKICAgICAgICAgICAgIFBB
U19BU1NFUlQoIWRpcmVjdG9yeSB8fCAhZGlyZWN0b3J5LT5iYXNlLmlzX2Jhc2ljX3NpemVfZGly
ZWN0b3J5KTsgCiAgICAgICAgICAgICBpZiAoY2FjaGVkX2luZGV4KSB7CkBAIC0xMTQ4LDM0ICsx
MTUxLDM0IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAg
ICAgICAgICAgIHRvIGV4cGVyaWVuY2UgdGhlIE8obikgY2FzZSBvZiB0aGlzIGxvb3AuICovCiAg
ICAgICAgICAgICBkaWRfZmluZF9yZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgIGZvciAocHJl
dl9uZXh0X3B0ciA9ICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZDsKLSAgICAg
ICAgICAgICAgICAgIXBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHJfaXNfbnVsbChwcmV2X25leHRfcHRyKTsKKyAgICAgICAgICAgICAgICAgIXBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKHBy
ZXZfbmV4dF9wdHIpOwogICAgICAgICAgICAgICAgICBwcmV2X25leHRfcHRyID0KLSAgICAgICAg
ICAgICAgICAgICAgICZwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJldl9uZXh0X3B0ciktPm5leHRfZm9yX2hlYXApIHsKLSAgICAgICAgICAgICAg
ICBpZiAocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkKHByZXZfbmV4dF9wdHIpCisgICAgICAgICAgICAgICAgaWYgKHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKHByZXZfbmV4dF9wdHIp
CiAgICAgICAgICAgICAgICAgICAgID09IHJlc3VsdCkgewotICAgICAgICAgICAgICAgICAgICBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0
b3JlKAorICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2X25l
eHRfcHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCkp
OwotICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAorICAgICAgICAgICAgICAgICAgICBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAg
ICAgICAgICAgICAgICAgICAmcmVzdWx0LT5uZXh0X2Zvcl9oZWFwLCBOVUxMKTsKICAgICAgICAg
ICAgICAgICAgICAgZGlkX2ZpbmRfcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8qIElmIHdlJ3JlIGdv
aW5nIHRvIGdvIHRocm91Z2ggdGhlIGVmZm9ydCBvZiBzY2FubmluZyB0aGlzIGxpc3Qgd2UgbWln
aHQgYXMKICAgICAgICAgICAgICAgICAgICB3ZWxsIGNoZWNrIHNvbWUgYmFzaWMgcHJvcGVydGll
cyBvZiBpdC4gKi8KLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCFwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAg
ICAgICAgUEFTX0FTU0VSVCghcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldl9uZXh0
X3B0ciktPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgUEFTX0FTU0VSVChkaWRfZmluZF9yZXN1bHQpOwotICAgICAgICAgICAgUEFTX0FT
U0VSVChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2lzX251bGwoCisgICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCkpOwotICAgICAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKKyAg
ICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
cl9zdG9yZSgKICAgICAgICAgICAgICAgICAmcmVzdWx0LT5uZXh0X2Zvcl9oZWFwLAotICAgICAg
ICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAgICAgJmhlYXAt
PmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKSk7Ci0gICAgICAgICAgICBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAorICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
X3N0b3JlKAogICAgICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRf
aGVhZCwgcmVzdWx0KTsKICAgICAgICAgICAgIHJlc3VsdC0+YmFzZS5pc19iYXNpY19zaXplX2Rp
cmVjdG9yeSA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xMTkyLDcgKzExOTUsNyBAQCBw
YXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgCiAgICAgICAgIGlm
IChpbmRleCA8IGhlYXAtPnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKSB7CiAgICAgICAgICAgICBz
aXplX3QgY2FuZGlkYXRlX2luZGV4OwotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9k
aXJlY3Rvcnk7CisgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5OwogICAgICAgICAg
ICAgcGFzX2FsbG9jYXRvcl9pbmRleCogaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4Owog
CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewpAQCAtMTIwMyw3ICsxMjA2LDcgQEAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgaW5kZXhfdG9f
c21hbGxfc2l6ZV9kaXJlY3RvcnkgPSBoZWFwLT5pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9y
eTsKICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleCA9IGhlYXAtPmlu
ZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleDsKICAgICAgICAgCi0gICAgICAgICAgICBQQVNf
QVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9wdHJfaXNfbnVsbCgKKyAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2lzX251bGwoCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSArIGluZGV4KSk7CiAgICAg
ICAgICAgICBpZiAoIWlzX3V0aWxpdHkpCiAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChpbmRl
eF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXhbaW5kZXhdID09IChwYXNfYWxsb2NhdG9yX2luZGV4
KVVJTlRfTUFYKTsKQEAgLTEyMTcsMTIgKzEyMjAsMTIgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9l
bnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlX2luZGV4LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmNvbmZpZykgPD0gb2JqZWN0
X3NpemUpOwogICAgICAgICAgICAgICAgICArK2NhbmRpZGF0ZV9pbmRleCkgewotICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogY2FuZGlkYXRlOwor
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBjYW5kaWRhdGU7
CiAKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAgcGFz
X2xvZygiSW5zdGFsbGluZyBhdCBpbmRleCBjYW5kaWRhdGVfaW5kZXggPSAlenUuXG4iLCBjYW5k
aWRhdGVfaW5kZXgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgY2FuZGlkYXRlID0g
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkKAorICAgICAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAgICBpbmRl
eF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSArIGNhbmRpZGF0ZV9pbmRleCk7CiAgICAgICAgICAg
ICAgICAgaWYgKGNhbmRpZGF0ZSkgewogICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkK
QEAgLTEyMzUsNyArMTIzOCw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGly
ZWN0b3IKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAgICAgICAgICAgICAg
IGhlYXAtPmluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ICsgY2FuZGlkYXRlX2luZGV4LCBy
ZXN1bHQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMjc3LDcgKzEyODAsNyBAQCBw
YXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICAgICAg
cGFzX2xvY2tfaXNfaGVsZCk7CiAgICAgICAgIAogICAgICAgICAgICAgaWYgKG5leHRfdHVwbGUg
JiYKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAg
ICAgICZuZXh0X3R1cGxlLT5kaXJlY3RvcnkpID09IHJlc3VsdCkgewogICAgICAgICAgICAgICAg
IHNpemVfdCBiZWdpbl9pbmRleDsKICAgICAgICAgICAgICAgICBiZWdpbl9pbmRleCA9IFBBU19N
SU4oaW5kZXgsIChzaXplX3QpbmV4dF90dXBsZS0+YmVnaW5faW5kZXgpOwpAQCAtMTMwOCw3ICsx
MzExLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAg
ICAgICAgICAgICAgICAgICBvbmUuICovCiAgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQo
CiAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSA8Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWQoCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmbmV4dF90dXBsZS0+ZGlyZWN0b3J5KS0+b2JqZWN0X3NpemUpOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQobmV4dF90dXBsZSAtIG1lZGl1bV9k
aXJlY3RvcmllcwpAQCAtMTM2NCw3ICsxMzY3LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1
cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoKHBhc19zZWdyZWdh
dGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV9pbmRleCltZWRpdW1faW5zdGFsbF9pbmRleAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPT0gbWVkaXVtX2luc3RhbGxfaW5kZXgpOwogICAgICAg
ICAgICAgICAgIG1lZGl1bV9kaXJlY3RvcnkgPSBtZWRpdW1fZGlyZWN0b3JpZXMgKyB0dXBsZV9p
bnNlcnRpb25faW5kZXg7Ci0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICAgICBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAg
ICAgICAgICAgICAgICAgICAgICZtZWRpdW1fZGlyZWN0b3J5LT5kaXJlY3RvcnksIHJlc3VsdCk7
CiAgICAgICAgICAgICAgICAgbWVkaXVtX2RpcmVjdG9yeS0+YWxsb2NhdG9yX2luZGV4ID0gKHBh
c19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7CiAKQEAgLTE0MDAsMTcgKzE0MDMsMTcgQEAgc2l6
ZV90IHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X251bV9mcmVlXwogICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2NvbXB1dGVfc3VtbWFyeShoZWFwKS5mcmVlOwogfQogCi1ib29sIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorYm9vbCBwYXNf
c2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgIHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2sgY2FsbGJhY2ssCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayBjYWxsYmFjaywKICAgICB2b2lkICph
cmcpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKIAotICAg
IGZvciAoZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgIGZvciAoZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAg
JmhlYXAtPmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKTsKICAgICAgICAgIGRpcmVjdG9y
eTsKLSAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAg
ICAgICAgICZkaXJlY3RvcnktPm5leHRfZm9yX2hlYXApKSB7CiAgICAgICAgIGlmICghY2FsbGJh
Y2soaGVhcCwgZGlyZWN0b3J5LCBhcmcpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
MTQyNyw3ICsxNDMwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiBzdGF0aWMgYm9vbCBmb3JfZWFj
aF9jb21taXR0ZWRfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNp
emVfZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2Rp
cmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgZm9yX2VhY2hfY29tbWl0dGVkX3BhZ2Vf
ZGF0YSogZGF0YTsKQEAgLTE0NTgsNyArMTQ2MSw3IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9mb3JfZWFjaF9jb21taXQKICAgICBkYXRhLmhlYXAgPSBoZWFwOwogICAgIGRhdGEuY2FsbGJh
Y2sgPSBjYWxsYmFjazsKICAgICBkYXRhLmFyZyA9IGFyZzsKLSAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCisgICAgcmV0dXJuIHBh
c19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCiAgICAgICAgIGhlYXAs
CiAgICAgICAgIGZvcl9lYWNoX2NvbW1pdHRlZF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaywKICAg
ICAgICAgJmRhdGEpOwpAQCAtMTQ3MSw3ICsxNDc0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogfSBm
b3JfZWFjaF92aWV3X2luZGV4X2RhdGE7CiAKIHN0YXRpYyBib29sIGZvcl9lYWNoX3ZpZXdfaW5k
ZXhfZGlyZWN0b3J5X2NhbGxiYWNrKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQogewogICAgIGZvcl9lYWNoX3ZpZXdfaW5k
ZXhfZGF0YSogZGF0YTsKQEAgLTE1MDEsNyArMTUwNCw3IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9mb3JfZWFjaF92aWV3X2kKICAgICBkYXRhLmhlYXAgPSBoZWFwOwogICAgIGRhdGEuY2Fs
bGJhY2sgPSBjYWxsYmFjazsKICAgICBkYXRhLmFyZyA9IGFyZzsKLSAgICByZXR1cm4gcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCisgICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCiAgICAgICAgIGhl
YXAsCiAgICAgICAgIGZvcl9lYWNoX3ZpZXdfaW5kZXhfZGlyZWN0b3J5X2NhbGxiYWNrLAogICAg
ICAgICAmZGF0YSk7CkBAIC0xNTEzLDcgKzE1MTYsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAg
dm9pZCogYXJnOwogfSBmb3JfZWFjaF9saXZlX29iamVjdF9kYXRhOwogCi1zdGF0aWMgYm9vbCBm
b3JfZWFjaF9saXZlX29iamVjdF9vYmplY3RfY2FsbGJhY2socGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCitzdGF0aWMgYm9vbCBmb3JfZWFjaF9saXZlX29i
amVjdF9vYmplY3RfY2FsbGJhY2socGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdWludHB0cl90IGJlZ2luLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZykKQEAgLTE1MjUsMTEgKzE1Mjgs
MTEgQEAgc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0XwogCiBzdGF0aWMg
Ym9vbCBmb3JfZWFjaF9saXZlX29iamVjdF9kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5LAogICAgIHZvaWQqIGFyZykKIHsKICAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOwot
ICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hf
bGl2ZV9vYmplY3QoCisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zv
cl9lYWNoX2xpdmVfb2JqZWN0KAogICAgICAgICBkaXJlY3RvcnksCiAgICAgICAgIGZvcl9lYWNo
X2xpdmVfb2JqZWN0X29iamVjdF9jYWxsYmFjaywKICAgICAgICAgYXJnKTsKQEAgLTE1NjMsNyAr
MTU2Niw3IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9saXZlX28KICAgICBk
YXRhLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgZGF0YS5hcmcgPSBhcmc7CiAgICAgCi0gICAg
aWYgKCFwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgK
KyAgICBpZiAoIXBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCiAg
ICAgICAgICAgICBoZWFwLAogICAgICAgICAgICAgZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGlyZWN0
b3J5X2NhbGxiYWNrLAogICAgICAgICAgICAgJmRhdGEpKQpAQCAtMTU4NSw3ICsxNTg4LDcgQEAg
dHlwZWRlZiBzdHJ1Y3QgewogCiBzdGF0aWMgYm9vbCBudW1fY29tbWl0dGVkX3ZpZXdzX2RpcmVj
dG9yeV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKQogewogICAg
IG51bV9jb21taXR0ZWRfdmlld3NfZGF0YSogZGF0YTsKQEAgLTE2MDUsNyArMTYwOCw3IEBAIHNp
emVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX251bV9jb21taXR0ZWQKIAogICAgIGRhdGEucmVzdWx0
ID0gMDsKICAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0
b3J5KAogICAgICAgICBoZWFwLCBudW1fY29tbWl0dGVkX3ZpZXdzX2RpcmVjdG9yeV9jYWxsYmFj
aywgJmRhdGEpOwogICAgIAogICAgIHJldHVybiBkYXRhLnJlc3VsdDsKQEAgLTE2MTcsNyArMTYy
MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKIAogc3RhdGljIGJvb2wgbnVtX2VtcHR5X3ZpZXdzX2Rp
cmVjdG9yeV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKQogewog
ICAgIG51bV9lbXB0eV92aWV3c19kYXRhKiBkYXRhOwpAQCAtMTYzNyw3ICsxNjQwLDcgQEAgc2l6
ZV90IHBhc19zZWdyZWdhdGVkX2hlYXBfbnVtX2VtcHR5X3ZpZQogCiAgICAgZGF0YS5yZXN1bHQg
PSAwOwogICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3Rv
cnkoCiAgICAgICAgIGhlYXAsIG51bV9lbXB0eV92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2ssICZk
YXRhKTsKICAgICAKICAgICByZXR1cm4gZGF0YS5yZXN1bHQ7CkBAIC0xNjQ5LDcgKzE2NTIsNyBA
QCB0eXBlZGVmIHN0cnVjdCB7CiAKIHN0YXRpYyBib29sIG51bV9lbXB0eV9ncmFudWxlc19kaXJl
Y3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFyZykKIHsKICAg
ICBudW1fZW1wdHlfZ3JhbnVsZXNfZGF0YSogZGF0YTsKQEAgLTE2NjksNyArMTY3Miw3IEBAIHNp
emVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX251bV9lbXB0eV9ncmEKIAogICAgIGRhdGEucmVzdWx0
ID0gMDsKIAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3Rvcnko
CiAgICAgICAgIGhlYXAsIG51bV9lbXB0eV9ncmFudWxlc19kaXJlY3RvcnlfY2FsbGJhY2ssICZk
YXRhKTsKIAogICAgIHJldHVybiBkYXRhLnJlc3VsdDsKQEAgLTE2ODEsNyArMTY4NCw3IEBAIHR5
cGVkZWYgc3RydWN0IHsKIAogc3RhdGljIGJvb2wgbnVtX3ZpZXdzX2RpcmVjdG9yeV9jYWxsYmFj
aygKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKQogewogICAgIG51bV92aWV3c19k
YXRhKiBkYXRhOwpAQCAtMTcwMSw3ICsxNzA0LDcgQEAgc2l6ZV90IHBhc19zZWdyZWdhdGVkX2hl
YXBfbnVtX3ZpZXdzKHBhcwogICAgIAogICAgIGRhdGEucmVzdWx0ID0gMDsKICAgICAKLSAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICBoZWFw
LCBudW1fdmlld3NfZGlyZWN0b3J5X2NhbGxiYWNrLCAmZGF0YSk7CiAgICAgCiAgICAgcmV0dXJu
IGRhdGEucmVzdWx0OwpAQCAtMTcwOSw3ICsxNzEyLDcgQEAgc2l6ZV90IHBhc19zZWdyZWdhdGVk
X2hlYXBfbnVtX3ZpZXdzKHBhcwogCiBzdGF0aWMgYm9vbCBjb21wdXRlX3N1bW1hcnlfZGlyZWN0
b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAg
cGFzX2hlYXBfc3VtbWFyeSogc3VtbWFyeTsKQEAgLTE3MzIsNyArMTczNSw3IEBAIHBhc19oZWFw
X3N1bW1hcnkgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jb20KICAgICAKICAgICByZXN1bHQgPSBwYXNf
aGVhcF9zdW1tYXJ5X2NyZWF0ZV9lbXB0eSgpOwogICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2hl
YXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorICAgIHBhc19zZWdyZWdhdGVkX2hl
YXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCiAgICAgICAgIGhlYXAsIGNvbXB1dGVfc3VtbWFy
eV9kaXJlY3RvcnlfY2FsbGJhY2ssICZyZXN1bHQpOwogCiAgICAgYml0Zml0X2hlYXAgPSBwYXNf
Y29tcGFjdF9hdG9taWNfYml0Zml0X2hlYXBfcHRyX2xvYWQoJmhlYXAtPmJpdGZpdF9oZWFwKTsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hl
YXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9oZWFwLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5o
IgogI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmgiCiAj
aW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3B0ci5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKKyNpbmNsdWRl
ICJwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKICNp
bmNsdWRlICJwYXNfY29tcGFjdF9oZWFwX3B0ci5oIgogI2luY2x1ZGUgInBhc19jb25maWcuaCIK
ICNpbmNsdWRlICJwYXNfY291bnRfbG9va3VwX21vZGUuaCIKQEAgLTQxLDYgKzQxLDcgQEAKICNp
bmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAicGFzX211dGF0aW9uX2Nv
dW50LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29rdXBfa2luZC5oIgorI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCIKICNp
bmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9wYWdlLmgiCiAKQEAgLTU4LDEyICs1OSwxMiBAQCBlbnVtIHBhc19zZWdyZWdhdGVkX2hlYXBf
bWVkaXVtX3NpemVfZGlyCiB0eXBlZGVmIGVudW0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1f
c2l6ZV9kaXJlY3Rvcnlfc2VhcmNoX21vZGUgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6
ZV9kaXJlY3Rvcnlfc2VhcmNoX21vZGU7CiAKIHN0cnVjdCBwYXNfaGVhcDsKLXN0cnVjdCBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGU7CiBzdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9yYXJlX2RhdGE7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcCBwYXNfaGVhcDsK
LXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5
cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5
cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSBw
YXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGU7CiB0eXBlZGVmIHN0cnVj
dCBwYXNfc2VncmVnYXRlZF9oZWFwX3JhcmVfZGF0YSBwYXNfc2VncmVnYXRlZF9oZWFwX3JhcmVf
ZGF0YTsKQEAgLTc2LDEyICs3NywxMiBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCB7CiAg
ICAgcGFzX2hlYXBfcnVudGltZV9jb25maWcqIHJ1bnRpbWVfY29uZmlnOwogICAgIAogICAgIHBh
c19hbGxvY2F0b3JfaW5kZXgqIGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleDsKLSAgICBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyKiBp
bmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5
OwogCiAgICAgLyogVGhpcyBpcyB0aGUgaGVhZCBvZiB0aGUgbGlua2VkIGxpc3Qgb2Ygc2VncmVn
YXRlZCBzaXplIGRpcmVjdG9yaWVzLiBBbHNvLCBpZiB0aGVyZSBpcwogICAgICAgIGEgYmFzaWMg
c2l6ZSBkaXJlY3RvcnkgKHRoZSBvbmUgZm9yIGluZGV4ID09IDEgb3IgaW5kZXggPT0gKmNhY2hl
ZF9pbmRleCksIHRoZW4gaXQgd2lsbAogICAgICAgIGJlIGF0IHRoZSBoZWFkIG9mIHRoZSBsaXN0
IHdpdGggdGhlIGlzX2Jhc2ljX3NpemVfZGlyZWN0b3J5IGJpdCBzZXQuICovCi0gICAgcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBiYXNpY19z
aXplX2RpcmVjdG9yeV9hbmRfaGVhZDsKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHIgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQ7CiAgICAg
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGFfcHRyIHJhcmVfZGF0YTsKIApAQCAt
MTA2LDcgKzEwNyw3IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3QK
ICAgICAvKiBOT1RFOiBUaGlzIGRpcmVjdG9yeSBpcyBhbHdheXMgZ29pbmcgdG8gYmUgbWVkaXVt
IHNpemVkIGJlY2F1c2UgdGhpcyBkYXRhIHN0cnVjdHVyZSBpcyBvbmx5CiAgICAgICAgdXNlZCBm
b3Igc2l6ZXMgdGhhdCBhcmUgYmV5b25kIHRoZSBtYXggb2JqZWN0IHNpemUgZm9yIHNtYWxsIHBh
Z2VzLiBCdXQgbm9ib2R5IHN0cm9uZ2x5CiAgICAgICAgcmVsaWVzIG9uIHRoYXQgcHJvcGVydHku
ICovCi0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3B0ciBkaXJlY3Rvcnk7CisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKIAogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxs
b2NhdG9yX2luZGV4OwogICAgIApAQCAtMTg5LDcgKzE5MCw3IEBAIFBBU19BUEkgdW5zaWduZWQg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWQKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9z
aXplX2RpcmVjdG9yeV9zZWFyY2hfbW9kZSBzZWFyY2hfbW9kZSwKICAgICBwYXNfbG9ja19ob2xk
X21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVj
dG9yeV9mb3JfaW5kZXgoCitQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBw
YXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgoCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKICAgICBzaXplX3QgaW5kZXgsCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3Rvcnlfc2VhcmNoX21vZGUgc2VhcmNoX21v
ZGUsCkBAIC0yMzEsNyArMjMyLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9hbGxvY2F0b3JfaW5k
ZXhfZm9yXwogUEFTX0FQSSB1bnNpZ25lZAogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxs
b2NhdG9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBzaXplX3QgY291bnQsCiAgICAg
cGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAogICAgIHBhc19oZWFwX2Nv
bmZpZyogY29uZmlnLApAQCAtMjU3LDI5ICsyNTgsMzAgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9l
bnN1cmVfYWxsb2NhdG9yX2luZAogICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2Nh
dG9yX2luZGV4X2Zvcl9jb3VudC4gTmVlZCB0byBob2xkIGhlYXAgbG9jayB0bwogICAgY2FsbCB0
aGlzLiBPSyB0byBwYXNzIE5VTEwgZm9yIGNhY2hlZF9pbmRleDsgb25seSBwcmltaXRpdmVfaGVh
cF9yZWYncyB1c2UKICAgIHRoYXQuICovCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSoKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBw
YXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQoCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKICAgICBzaXplX3QgY291bnQsIHNpemVfdCBhbGln
bm1lbnQsCiAgICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAogICAg
IHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpOwor
ICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfY3JlYXRpb25fbW9kZSBjcmVhdGlvbl9tb2RlKTsKIAogUEFTX0FQSSBzaXplX3QgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9nZXRfbnVtX2ZyZWVfYnl0ZXMocGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCk7CiAKLXR5cGVkZWYgYm9vbCAoKnBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKSgKK3R5cGVkZWYgYm9vbCAoKnBhc19zZWdyZWdh
dGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2spKAogICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKICAgICB2b2lkKiBhcmcpOwogCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCitQQVNfQVBJIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICBwYXNfc2VncmVnYXRlZF9o
ZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2NhbGxiYWNrIGNhbGxiYWNrLAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9y
X2VhY2hfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2sgY2FsbGJhY2ssCiAgICAgdm9pZCogYXJnKTsK
IAogdHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9jb21taXR0ZWRf
dmlld19jYWxsYmFjaykoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldywKICAgICB2b2lkKiBhcmcpOwogCkBAIC0yOTAsNyArMjkyLDcgQEAgUEFTX0FQSSBi
b29sIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhYwogCiB0eXBlZGVmIGJvb2wgKCpwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3ZpZXdfaW5kZXhfY2FsbGJhY2spKAogICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKICAgICBzaXplX3QgaW5kZXgsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3cCwK
ICAgICB2b2lkKiBhcmcpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2hlYXBfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywyMSArMjcsMjEgQEAK
ICNkZWZpbmUgUEFTX1NFR1JFR0FURURfSEVBUF9JTkxJTkVTX0gKIAogI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX2hlYXAuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgog
CiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVf
ZGlyZWN0b3J5X2Zvcl9pbmRleCgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAogICAg
IHNpemVfdCBpbmRleCwKICAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KQogewotICAgIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4
X3RvX3NpemVfZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc2l6ZV9kaXJlY3Rvcnk7CiAgICAgCiAgICAgaWYg
KGluZGV4ID09IChjYWNoZWRfaW5kZXggPyAqY2FjaGVkX2luZGV4IDogMSkpIHsKLSAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7Ci0gICAgICAgIHJl
c3VsdCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZCgKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHJlc3Vs
dDsKKyAgICAgICAgcmVzdWx0ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3Rv
cnlfYW5kX2hlYWQpOwogICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC0+YmFzZS5pc19iYXNp
Y19zaXplX2RpcmVjdG9yeSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC02MSwxMCAr
NjEsMTAgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2RpcmVjdG9yeV9mb3JfaQogICAgICAg
ICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChpbmRleF90b19zaXpl
X2RpcmVjdG9yeSArIGluZGV4KTsKKyAgICByZXR1cm4gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoaW5kZXhfdG9fc2l6ZV9kaXJlY3RvcnkgKyBp
bmRleCk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZGlyZWN0b3J5X2Zv
cl9jb3VudCgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAogICAgIHNpemVfdCBjb3Vu
dCwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3BhZ2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9wYWdlLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwkod29ya2luZyBjb3B5KQpA
QCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgogI2lu
Y2x1ZGUgInBhc19yYW5nZS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5l
cy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgor
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFz
X3V0aWxpdHlfaGVhcF9jb25maWcuaCIKIAogZG91YmxlIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXh0
cmFfd2FzdGVhZ2VfaGFuZGljYXBfZm9yX2NvbmZpZ192YXJpYW50WwpAQCAtNTUsMTUgKzU1LDEz
IEBAIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX2xvY2tfd2kKICAgICBwYXNfbG9j
ayoqIGhlbGRfbG9jaywKICAgICBwYXNfbG9jayogbG9ja19wdHIpCiB7Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAogICAgIHBhc19sb2NrX2xvY2sobG9ja19w
dHIpOwogICAgIAogICAgIGlmIChsb2NrX3B0ciA9PSBwYWdlLT5sb2NrX3B0cikgewogICAgICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3IG93bmVyOwogCiAgICAgICAgIG93bmVyID0gcGFnZS0+b3du
ZXI7Ci0gICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gob3du
ZXIpKSB7CisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZl
KG93bmVyKSkgewogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4
Y2x1c2l2ZTsKICAgICAgICAgICAgIHBhc19sb2NrKiBmYWxsYmFja19sb2NrOwogICAgICAgICAg
ICAgCkBAIC03NCwxMyArNzIsNiBAQCBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9s
b2NrX3dpCiAgICAgICAgICAgICBmYWxsYmFja19sb2NrID0gJmV4Y2x1c2l2ZS0+b3duZXJzaGlw
X2xvY2s7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIChsb2NrX3B0ciAhPSBmYWxsYmFj
a19sb2NrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAg
ICAgIHBhc19sb2coIlRyaWdnZXJpbmcgZXhwbG9zaW9uLlxuIik7Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Nl
dF9jb250ZW50aW9uX2RpZF90cmlnZ2VyX2V4cGxvc2lvbigKLSAgICAgICAgICAgICAgICAgICAg
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJmV4
Y2x1c2l2ZS0+ZGlyZWN0b3J5KSwKLSAgICAgICAgICAgICAgICAgICAgdHJ1ZSk7Ci0gICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9jayhmYWxsYmFja19sb2NrKTsK
ICAgICAgICAgICAgICAgICBwYWdlLT5sb2NrX3B0ciA9IGZhbGxiYWNrX2xvY2s7CiAgICAgICAg
ICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKGxvY2tfcHRyKTsKQEAgLTEyMCwxMCArMTExLDEwIEBA
IHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2MKICAgICBQQVNfQVNTRVJU
KCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CiB9CiAKLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2luZWxpZ2libGVfaW1w
bCgKK3ZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3doaWxl
X2luZWxpZ2libGVfaW1wbCgKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAgIHBh
c19sb2NrKiogaGVsZF9sb2NrLAotICAgIHBhc19tYWdhemluZSogbWFnYXppbmUpCisgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKiBjYWNoZV9ub2RlKQogewogICAgIGZvciAoOzspIHsK
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBvd25lcjsKQEAgLTEzNCwxNCArMTI1LDE0IEBA
IHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmQKICAgICAKICAgICAgICAg
cGFnZV9sb2NrID0gcGFnZS0+bG9ja19wdHI7CiAKLSAgICAgICAgaWYgKCpoZWxkX2xvY2sgPT0g
cGFnZV9sb2NrICYmICpoZWxkX2xvY2sgPT0gJm1hZ2F6aW5lLT5sb2NrKSB7CisgICAgICAgIGlm
ICgqaGVsZF9sb2NrID09IHBhZ2VfbG9jayAmJiAqaGVsZF9sb2NrID09ICZjYWNoZV9ub2RlLT5w
YWdlX2xvY2spIHsKICAgICAgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKICAgICAgICAgb3duZXIgPSBwYWdlLT5vd25lcjsKIAot
ICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaChvd25lcikg
fHwgIW1hZ2F6aW5lKSB7CisgICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21l
X2V4Y2x1c2l2ZShvd25lcikgfHwgIWNhY2hlX25vZGUpIHsKICAgICAgICAgICAgIHBhc19sb2Nr
X3N3aXRjaChoZWxkX2xvY2ssIHBhZ2VfbG9jayk7CiAgICAgICAgICAgICBpZiAocGFnZS0+bG9j
a19wdHIgIT0gcGFnZV9sb2NrKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtMTQ5LDE0
ICsxNDAsMTQgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZAogICAg
ICAgICB9CiAKICAgICAgICAgZGlkX2xvY2tfcXVpY2tseSA9Ci0gICAgICAgICAgICAoKmhlbGRf
bG9jayA9PSAmbWFnYXppbmUtPmxvY2sgJiYgcGFzX2xvY2tfdHJ5X2xvY2socGFnZV9sb2NrKSkg
fHwKLSAgICAgICAgICAgICgqaGVsZF9sb2NrID09IHBhZ2VfbG9jayAmJiBwYXNfbG9ja190cnlf
bG9jaygmbWFnYXppbmUtPmxvY2spKTsKKyAgICAgICAgICAgICgqaGVsZF9sb2NrID09ICZjYWNo
ZV9ub2RlLT5wYWdlX2xvY2sgJiYgcGFzX2xvY2tfdHJ5X2xvY2socGFnZV9sb2NrKSkgfHwKKyAg
ICAgICAgICAgICgqaGVsZF9sb2NrID09IHBhZ2VfbG9jayAmJiBwYXNfbG9ja190cnlfbG9jaygm
Y2FjaGVfbm9kZS0+cGFnZV9sb2NrKSk7CiAKICAgICAgICAgaWYgKCFkaWRfbG9ja19xdWlja2x5
KSB7CiAgICAgICAgICAgICBpZiAoKmhlbGRfbG9jaykKICAgICAgICAgICAgICAgICBwYXNfbG9j
a191bmxvY2soKmhlbGRfbG9jayk7CiAKLSAgICAgICAgICAgIGlmICgmbWFnYXppbmUtPmxvY2sg
PT0gcGFnZV9sb2NrKSB7CisgICAgICAgICAgICBpZiAoJmNhY2hlX25vZGUtPnBhZ2VfbG9jayA9
PSBwYWdlX2xvY2spIHsKICAgICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrKHBhZ2VfbG9jayk7
CiAgICAgICAgICAgICAgICAgKmhlbGRfbG9jayA9IHBhZ2VfbG9jazsKICAgICAgICAgICAgICAg
ICBpZiAocGFnZS0+bG9ja19wdHIgIT0gcGFnZV9sb2NrKQpAQCAtMTY4LDI2ICsxNTksMjcgQEAg
dm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZAogCiAgICAgICAgICAgICAv
KiBUaGlzIGVuZm9yY2VzIHRoYXQ6CiAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIC0g
TWFnYXppbmUgbG9ja3MgbXVzdCBiZSBhY3F1aXJlZCBiZWZvcmUgcGFnZSBsb2Nrcy4KKyAgICAg
ICAgICAgICAgIC0gQ2FjaGUgbm9kZSBwYWdlIGxvY2tzIG11c3QgYmUgYWNxdWlyZWQgYmVmb3Jl
IHBhZ2UgbG9ja3MuCiAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgIC0gTWFnYXppbmUg
bG9ja3MgYXJlIGFjcXVpcmVkIGluIHBvaW50ZXItYXMtaW50ZWdlciBvcmRlciByZWxhdGl2ZSB0
byBvbmUgYW5vdGhlci4gKi8KLSAgICAgICAgICAgIGlmICgmZXhjbHVzaXZlLT5vd25lcnNoaXBf
bG9jayA9PSBwYWdlX2xvY2sgfHwgJm1hZ2F6aW5lLT5sb2NrIDwgcGFnZV9sb2NrKSB7Ci0gICAg
ICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmbWFnYXppbmUtPmxvY2spOworICAgICAgICAgICAg
ICAgLSBDYWNoZSBub2RlIHBhZ2UgbG9ja3MgYXJlIGFjcXVpcmVkIGluIHBvaW50ZXItYXMtaW50
ZWdlciBvcmRlciByZWxhdGl2ZSB0byBvbmUKKyAgICAgICAgICAgICAgICAgYW5vdGhlci4gKi8K
KyAgICAgICAgICAgIGlmICgmZXhjbHVzaXZlLT5vd25lcnNoaXBfbG9jayA9PSBwYWdlX2xvY2sg
fHwgJmNhY2hlX25vZGUtPnBhZ2VfbG9jayA8IHBhZ2VfbG9jaykgeworICAgICAgICAgICAgICAg
IHBhc19sb2NrX2xvY2soJmNhY2hlX25vZGUtPnBhZ2VfbG9jayk7CiAgICAgICAgICAgICAgICAg
cGFzX2xvY2tfbG9jayhwYWdlX2xvY2spOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICBwYXNfbG9ja19sb2NrKHBhZ2VfbG9jayk7Ci0gICAgICAgICAgICAgICAgcGFzX2xv
Y2tfbG9jaygmbWFnYXppbmUtPmxvY2spOworICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2so
JmNhY2hlX25vZGUtPnBhZ2VfbG9jayk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAotICAg
ICAgICBQQVNfQVNTRVJUKHBhZ2VfbG9jayAhPSAmbWFnYXppbmUtPmxvY2spOworICAgICAgICBQ
QVNfQVNTRVJUKHBhZ2VfbG9jayAhPSAmY2FjaGVfbm9kZS0+cGFnZV9sb2NrKTsKIAogICAgICAg
ICBnb3RfcmlnaHRfbG9jayA9IChwYWdlLT5sb2NrX3B0ciA9PSBwYWdlX2xvY2spOwogICAgICAg
ICBpZiAoZ290X3JpZ2h0X2xvY2spCi0gICAgICAgICAgICBwYWdlLT5sb2NrX3B0ciA9ICZtYWdh
emluZS0+bG9jazsKKyAgICAgICAgICAgIHBhZ2UtPmxvY2tfcHRyID0gJmNhY2hlX25vZGUtPnBh
Z2VfbG9jazsKICAgICAgICAgCiAgICAgICAgIHBhc19sb2NrX3VubG9jayhwYWdlX2xvY2spOwot
ICAgICAgICAqaGVsZF9sb2NrID0gJm1hZ2F6aW5lLT5sb2NrOworICAgICAgICAqaGVsZF9sb2Nr
ID0gJmNhY2hlX25vZGUtPnBhZ2VfbG9jazsKIAogICAgICAgICBpZiAoZ290X3JpZ2h0X2xvY2sp
CiAgICAgICAgICAgICByZXR1cm47CkBAIC0yMTQsOCArMjA2LDkgQEAgdm9pZCBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbnN0cnVjdChwYXNfcwogICAgIHBhZ2UtPnVzZV9lcG9jaCA9IFBBU19FUE9D
SF9JTlZBTElEOwogCiAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgcGFzX2xvZygiQ29uc3Ry
dWN0aW5nIHBhZ2UgJXAgZm9yIHZpZXcgJXAgYW5kIGNvbmZpZyAlcy5cbiIsCi0gICAgICAgICAg
ICAgICAgcGFnZSwgb3duZXIsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0
cmluZyhwYWdlX2NvbmZpZy5raW5kKSk7CisgICAgICAgIHBhc19sb2coIkNvbnN0cnVjdGluZyBw
YWdlICVwIHdpdGggYm91bmRhcnkgJXAgZm9yIHZpZXcgJXAgYW5kIGNvbmZpZyAlcy5cbiIsCisg
ICAgICAgICAgICAgICAgcGFnZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBw
YWdlX2NvbmZpZyksCisgICAgICAgICAgICAgICAgb3duZXIsIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZy5raW5kKSk7CiAgICAgfQogCiAgICAg
aWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKQpA
QCAtMjI4LDIyICsyMjEsMjkgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbnN0cnVjdChw
YXNfcwogCiAgICAgcGFnZS0+bnVtX25vbl9lbXB0eV93b3JkcyA9IDA7CiAgICAgCi0gICAgaWYg
KHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaChvd25lcikpIHsKLSAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOworICAgIHBh
Z2UtPnZpZXdfY2FjaGVfaW5kZXggPSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWDsKKwor
ICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKG93bmVyKSkgewor
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwogCi0gICAgICAgIGRp
cmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeShv
d25lcik7Ci0gICAgICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICAgICAgZGly
ZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkob3duZXIpOwor
ICAgICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9h
ZF9ub25fbnVsbCgmZGlyZWN0b3J5LT5kYXRhKTsKIAogICAgICAgICBQQVNfQVNTRVJUKGRpcmVj
dG9yeS0+b2JqZWN0X3NpemUpOwogICAgICAgICBwYWdlLT5vYmplY3Rfc2l6ZSA9IGRpcmVjdG9y
eS0+b2JqZWN0X3NpemU7CiAgICAgICAgIFBBU19BU1NFUlQocGFnZS0+b2JqZWN0X3NpemUgPT0g
ZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSk7IC8qIENoZWNrIGZvciBvdmVyZmxvd3MuICovCisKKyAg
ICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfY2FjaGVfY2FwYWNp
dHkoZGlyZWN0b3J5KSkgeworICAgICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPnZpZXdf
Y2FjaGVfaW5kZXggPCAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CisgICAgICAgICAg
ICBwYWdlLT52aWV3X2NhY2hlX2luZGV4ID0gZGlyZWN0b3J5LT52aWV3X2NhY2hlX2luZGV4Owor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5LT52aWV3X2Nh
Y2hlX2luZGV4ID09IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKICAgICB9IGVsc2UK
ICAgICAgICAgcGFnZS0+b2JqZWN0X3NpemUgPSAwOwogCiAgICAgcGFnZS0+aXNfaW5fdXNlX2Zv
cl9hbGxvY2F0aW9uID0gZmFsc2U7CiAgICAgcGFnZS0+aXNfY29tbWl0dGluZ19mdWxseSA9IGZh
bHNlOwotICAgIHBhZ2UtPmF2b2lkX2xpbmVfYWxsb2NhdG9yID0gZmFsc2U7CiAKICAgICBpZiAo
cGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgIT0gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3Np
emUpIHsKICAgICAgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIHVzZV9jb3VudHM7CkBA
IC01MDYsOCArNTA2LDggQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbW1pdF9mdWxseSgK
ICAgICAgICAgICAgICAgICAgICAgY29tbWl0X3NwYW4udG90YWxfYnl0ZXMpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwYXNfZGVidWdfc3BlY3RydW1fYWRkKAotICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJl
Y3Rvcnkob3duZXIpLAotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0sCisgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KG93bmVyKSwKKyAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0s
CiAgICAgICAgICAgICAgICAgICAgIGNvbW1pdF9zcGFuLnRvdGFsX2J5dGVzKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9wYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBA
CiAjaWZuZGVmIFBBU19TRUdSRUdBVEVEX1BBR0VfSAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9Q
QUdFX0gKIAorI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXguaCIKICNpbmNsdWRlICJwYXNf
Yml0dmVjdG9yLmgiCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19mcmVl
X3JhbmdlX2tpbmQuaCIKQEAgLTY3LDkgKzY4LDcgQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX3Bh
Z2UgewogICAgIGJvb2wgZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2RlZmVycmVk
OwogCiAgICAgLyogVGhpcyBpcyBoYW5keSBmb3IgZGVidWdnaW5nLiAqLwotICAgIGJvb2wgaXNf
Y29tbWl0dGluZ19mdWxseSA6IDE7Ci0KLSAgICBib29sIGF2b2lkX2xpbmVfYWxsb2NhdG9yIDog
MTsKKyAgICBib29sIGlzX2NvbW1pdHRpbmdfZnVsbHk7CiAKICAgICB1bnNpZ25lZCBvYmplY3Rf
c2l6ZTsgLyogQ2FjaGluZyB0aGlzIGhlcmUgaXMgZ3JlYXQgZm9yIHBlcmZvcm1hbmNlLiAqLwog
CkBAIC0xMDUsNiArMTA0LDcgQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2UgewogICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXcgb3duZXI7CiAgICAgCiAgICAgdWludDE2X3QgbnVtX25vbl9lbXB0
eV93b3JkczsKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4IHZpZXdfY2FjaGVfaW5kZXg7CiAKICAg
ICB1bnNpZ25lZCBhbGxvY19iaXRzWzFdOwogfTsKQEAgLTI5MCw2ICsyOTAsMzQgQEAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9nZXRfZ3JhbnVsZV91c2VfY291bgogICAgICAgICBwYWdlLT5hbGxvY19i
aXRzICsgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX3dvcmRzKHBhZ2VfY29u
ZmlnKSk7CiB9CiAKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sCitwYXNfc2VncmVnYXRl
ZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZSwKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKK3sKKyAg
ICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50czsKKyAgICB1aW50cHRyX3Qg
bnVtX2dyYW51bGVzOworICAgIHVpbnRwdHJfdCBncmFudWxlX2luZGV4OworICAgIAorICAgIFBB
U19BU1NFUlQocGFnZV9jb25maWcuYmFzZS5pc19lbmFibGVkKTsKKworICAgIGlmICghcGFnZS0+
bnVtX25vbl9lbXB0eV93b3JkcykKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgaWYg
KHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplID09IHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9z
aXplKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgdXNlX2NvdW50cyA9IHBhc19z
ZWdyZWdhdGVkX3BhZ2VfZ2V0X2dyYW51bGVfdXNlX2NvdW50cyhwYWdlLCBwYWdlX2NvbmZpZyk7
CisgICAgbnVtX2dyYW51bGVzID0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgLyBwYWdlX2Nv
bmZpZy5iYXNlLmdyYW51bGVfc2l6ZTsKKyAgICAKKyAgICBmb3IgKGdyYW51bGVfaW5kZXggPSBu
dW1fZ3JhbnVsZXM7IGdyYW51bGVfaW5kZXgtLTspIHsKKyAgICAgICAgaWYgKCF1c2VfY291bnRz
W2dyYW51bGVfaW5kZXhdKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZSoKIHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KHZvaWQqIGJvdW5kYXJ5
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcgcGFnZV9jb25maWcpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgc3Ry
dWN0IHBhc19sb2NhbF9hbGxvY2F0b3I7CiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25maWc7
CiBzdHJ1Y3QgcGFzX3BhZ2Vfc2hhcmluZ19wb29sOwogc3RydWN0IHBhc19waHlzaWNhbF9tZW1v
cnlfdHJhbnNhY3Rpb247Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owogc3RydWN0IHBhc19z
ZWdyZWdhdGVkX2hlYXA7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZzsKQEAgLTY2LDcgKzY2LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg
cGFzX2xvY2FsX2FsbG9jYXRvciBwYXNfbAogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGlt
ZV9jb25maWcgcGFzX2hlYXBfcnVudGltZV9jb25maWc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2wgcGFzX3BhZ2Vfc2hhcmluZ19wb29sOwogdHlwZWRlZiBzdHJ1Y3QgcGFz
X3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0
aW9uOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNfc2VncmVnYXRlZF9oZWFw
OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSBwYXNfc2VncmVnYXRlZF9wYWdl
OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWc7CkBAIC03Niw3ICs3Niw3IEBAIHR5cGVkZWYgc3RydWN0IHBhc190aHJl
YWRfbG9jYWxfY2FjaGUgcGEKIAogdHlwZWRlZiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9k
aXJlY3RvcnkqCiAoKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeV9zZWxlY3RvcikoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworICAgIHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXAsIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnkp
OwogdHlwZWRlZiB2b2lkICgqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfZGVhbGxvY19mdW5j
KShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBi
ZWdpbik7CiAKQEAgLTg2LDcgKzg2LDcgQEAgdHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQK
IHR5cGVkZWYgYm9vbAogKCpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19zcGVjaWFsaXplZF9s
b2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxfdmll
dykoCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBwYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXcqIHBhcnRpYWwsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBzaXplX2RpcmVjdG9yeSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIHNpemVfZGlyZWN0b3J5KTsKIHR5cGVkZWYgYm9vbCAoKnBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGwpKAogICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRz
KTsKQEAgLTk0LDcgKzk0LDcgQEAgdHlwZWRlZiB2b2lkICgqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maQogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKICAgICBwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19sb2NrX2hvbGRfbW9k
ZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAogc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnIHsKQEAgLTE1Myw2ICsxNTMsOSBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcgewogICAgICAgIG9mIGJpdHMgZ29lcyBjbGVhci4gKi8KICAgICBib29sIGVuYWJsZV9lbXB0
eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbjsKIAorICAgIC8qIFRlbGxzIGlmIHdlIHVz
ZSB0aGUgdmlldyBjYWNoZSBmb3IgdGhpcyBzaXplIGNsYXNzLiAqLworICAgIGJvb2wgZW5hYmxl
X3ZpZXdfY2FjaGU7CisKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19zaGFyZWRfcGFn
ZV9kaXJlY3Rvcnlfc2VsZWN0b3Igc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yOwogCiAg
ICAgLyogVGhlc2UgdHdvIGdldCBmaWxsZWQgaW4gd2l0aCB0aGUgUEFTX1NFR1JFR0FURURfUEFH
RV9DT05GSUdfU1BFQ0lBTElaQVRJT05TKCkgbWFjcm8uICovCkBAIC0xODMsNyArMTg2LDcgQEAg
UEFTX0FQSSBleHRlcm4gYm9vbCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZQogICAgIFBBU19BUEkgYm9v
bCBsb3dlcl9jYXNlX3BhZ2VfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9j
YXRvcl9zdGFydF9hbGxvY2F0aW5nX2luX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3KCBcCiAgICAg
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgXAogICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWwsIFwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSk7IFwKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KTsgXAogICAgIFBBU19BUEkgYm9v
bCBsb3dlcl9jYXNlX3BhZ2VfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9j
YXRvcl9yZWZpbGwoIFwKICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBc
CiAgICAgICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpOyBcCkBAIC0xOTIsNyArMTk1
LDcgQEAgUEFTX0FQSSBleHRlcm4gYm9vbCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZQogICAgICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIFwKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3LCBcCiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsIFwKLSAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksIFwKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgXAogICAgICAg
ICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIAogI2RlZmluZSBQQVNf
U0VHUkVHQVRFRF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTlMobG93ZXJfY2FzZV9wYWdlX2Nv
bmZpZ19uYW1lKSBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5l
cy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQ0LDcgKzQ0LDcgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIFBBU19ORVZFUl9JTkxJTkUg
Ym9vbCBsb3dlcl9jYXNlX3BhZ2VfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX2xvY2FsX2Fs
bG9jYXRvcl9zdGFydF9hbGxvY2F0aW5nX2luX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3KCBcCiAg
ICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgXAogICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWwsIFwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSkgXAorICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpIFwKICAgICB7IFwKICAgICAg
ICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9wcmltb3Jk
aWFsX3BhcnRpYWxfdmlldyggXAogICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXJ0aWFsLCBzaXpl
X2RpcmVjdG9yeSwgKHBhZ2VfY29uZmlnX3ZhbHVlKSk7IFwKQEAgLTY0LDcgKzY0LDcgQEAgUEFT
X0JFR0lOX0VYVEVSTl9DOwogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3Is
IFwKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LCBcCiAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2UqIHBhZ2UsIFwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksIFwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwgXAogICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2Nr
X2hvbGRfbW9kZSkgXAogICAgIHsgXAogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3JldHVy
bl9tZW1vcnlfdG9fcGFnZSggXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191
dGlscy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oCSh3b3JraW5nIGNvcHkpCkBA
IC02NCw3ICs2NCw3IEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZlcmlmeV9kZWFsbG8K
ICAgICBcCiAgICAgUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnkq
IFwKICAgICBuYW1lICMjIF9wYWdlX2NvbmZpZ19zZWxlY3Rfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
KCBcCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsgXAorICAgICAgICBwYXNfc2VncmVnYXRl
ZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsg
XAogICAgIFwKICAgICBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBcCiAgICAgbmFtZSAj
IyBfZGVhbGxvY19mdW5jKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLCB1aW50cHRyX3Qg
YmVnaW4pCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNf
aW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIFwKICAgICBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkqIFwKICAgICBuYW1lICMjIF9wYWdl
X2NvbmZpZ19zZWxlY3Rfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KCBcCi0gICAgICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
c2l6ZV9kaXJlY3RvcnkpIFwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KSBcCiAgICAgeyBcCiAg
ICAgICAgIFBBU19VTlVTRURfUEFSQU0oc2l6ZV9kaXJlY3RvcnkpOyBcCiAgICAgICAgIFwKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2Vf
aW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTUgKzI4LDE1IEBACiAKICNpbmNsdWRlICJwYXNfY29u
ZmlnLmgiCiAjaW5jbHVkZSAicGFzX2xvZy5oIgotI2luY2x1ZGUgInBhc19tYWdhemluZS5oIgog
I2luY2x1ZGUgInBhc19wYWdlX2Jhc2VfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0
aW9uX21vZGUuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxp
bmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIgogI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5oIgogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfaW5saW5lcy5oIgotI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbm9kZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKQEAgLTQ0LDIyICs0NCwyMiBA
QCBQQVNfQkVHSU5fRVhURVJOX0M7CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQK
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9v
YmplY3QoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
IHBhZ2VfY29uZmlnKQogewogICAgIHVpbnRwdHJfdCByZXN1bHQ7CiAKICAgICBQQVNfQVNTRVJU
KHBhZ2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CiAgICAgCi0gICAgaWYgKCFwYWdlIHx8IHBh
c19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaChwYWdlLT5vd25lcikpIHsKKyAgICBp
ZiAoIXBhZ2UgfHwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShwYWdlLT5v
d25lcikpIHsKICAgICAgICAgaWYgKCFwYWdlKQogICAgICAgICAgICAgUEFTX0FTU0VSVChkaXJl
Y3RvcnkpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAor
ICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfZXhjbHVzaXZlKHBhZ2UtPm93bmVyKS0+ZGlyZWN0b3J5KTsKICAgICAgICAgfQog
Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0
YV9wdHJfbG9hZF9ub25fbnVsbCgmZGlyZWN0b3J5LT5kYXRhKQorICAgICAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgmZGlyZWN0
b3J5LT5kYXRhKQogICAgICAgICAgICAgLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2Zp
cnN0X29iamVjdDsKICAgICB9CiAKQEAgLTc2LDcgKzc2LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9vZmZzZXRfZnJvbV9wYWdlX2JvdQogICAgYnJpbmdpbmcgdXAgc2hhcmVkIHZpZXdzLiAqLwog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbml0aWFs
aXplX2Z1bGxfdXNlX2NvdW50cygKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX3BhZ2VfZ3Jh
bnVsZV91c2VfY291bnQqIHVzZV9jb3VudHMsCiAgICAgdWludHB0cl90IGVuZF9ncmFudWxlX2lu
ZGV4LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQpAQCAtODks
NyArODksNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnCiAgICAg
dWludHB0cl90IGVuZF9vZl9sYXN0X29iamVjdDsKICAgICB1aW50cHRyX3Qgb2JqZWN0X3NpemU7
CiAgICAgdWludHB0cl90IG9mZnNldDsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9k
YXRhKiBkYXRhOwogCiAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQp
OwogICAgIApAQCAtMTIyLDcgKzEyMiw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29s
IHBhc19zZWdyZWcKICAgICBpZiAoIWRpcmVjdG9yeSkKICAgICAgICAgcmV0dXJuIGVuZF9ncmFu
dWxlX29mZnNldCA9PSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsKIAotICAgIGRhdGEgPSBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVs
bCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgmZGlyZWN0b3J5LT5kYXRhKTsKIAogICAgIHN0
YXJ0X29mX2ZpcnN0X29iamVjdCA9CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0
X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3QoCkBAIC0yMzUsMTQgKzIzNSwzMyBA
QCBQQVNfQVBJIHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF9wYWdlX3N3CiAgICAgcGFzX2xvY2sq
IGhlbGRfbG9jaywKICAgICBwYXNfbG9jayogcGFnZV9sb2NrKTsKIAorc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19pbXBsKAorICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCisgICAgcGFzX2xvY2sqKiBoZWxkX2xvY2spCit7
CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHBhc19s
b2NrKiBoZWxkX2xvY2tfdmFsdWU7CisgICAgcGFzX2xvY2sqIHBhZ2VfbG9jazsKKyAgICAKKyAg
ICBoZWxkX2xvY2tfdmFsdWUgPSAqaGVsZF9sb2NrOworICAgIHBhZ2VfbG9jayA9IHBhZ2UtPmxv
Y2tfcHRyOworICAgIAorICAgIGlmIChQQVNfTElLRUxZKGhlbGRfbG9ja192YWx1ZSA9PSBwYWdl
X2xvY2spKSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygiR2V0
dGluZyB0aGUgc2FtZSBsb2NrIGFzIGJlZm9yZSAoJXApLlxuIiwgcGFnZV9sb2NrKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICAqaGVsZF9sb2NrID0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9zd2l0Y2hfbG9ja19zbG93KHBhZ2UsIGhlbGRfbG9ja192YWx1ZSwgcGFnZV9sb2NrKTsK
K30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9z
d2l0Y2hfbG9ja193aXRoX21vZGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAg
ICBwYXNfbG9jayoqIGhlbGRfbG9jaywKICAgICBwYXNfbG9ja19sb2NrX21vZGUgbG9ja19tb2Rl
LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewotICAgIHN0
YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKICAgICBQQVNfQVNTRVJUKHBh
Z2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CiAgICAgCiAgICAgaWYgKHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKSB7CkBAIC0yNTUsMTkgKzI3NCw3
IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19zZWdyZWcKICAgICAgICAgcmV0
dXJuIHBhc19sb2NrX3N3aXRjaF93aXRoX21vZGUoaGVsZF9sb2NrLCBwYWdlLT5sb2NrX3B0ciwg
cGFzX2xvY2tfbG9ja19tb2RlX3RyeV9sb2NrKTsKIAogICAgIGNhc2UgcGFzX2xvY2tfbG9ja19t
b2RlX2xvY2s6IHsKLSAgICAgICAgcGFzX2xvY2sqIGhlbGRfbG9ja192YWx1ZTsKLSAgICAgICAg
cGFzX2xvY2sqIHBhZ2VfbG9jazsKLQotICAgICAgICBoZWxkX2xvY2tfdmFsdWUgPSAqaGVsZF9s
b2NrOwotICAgICAgICBwYWdlX2xvY2sgPSBwYWdlLT5sb2NrX3B0cjsKLSAgICAgICAgCi0gICAg
ICAgIGlmIChQQVNfTElLRUxZKGhlbGRfbG9ja192YWx1ZSA9PSBwYWdlX2xvY2spKSB7Ci0gICAg
ICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJHZXR0aW5nIHRo
ZSBzYW1lIGxvY2sgYXMgYmVmb3JlICglcCkuXG4iLCBwYWdlX2xvY2spOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICAqaGVsZF9sb2NrID0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19zbG93KHBhZ2UsIGhlbGRfbG9ja192YWx1ZSwgcGFnZV9s
b2NrKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19pbXBsKHBhZ2Us
IGhlbGRfbG9jayk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0gfQogICAgIFBBU19BU1NF
UlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKQEAgLTI4NywxNiArMjk0LDE2IEBAIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWcKICAgICBQQVNfQVNTRVJUKHJlc3Vs
dCk7CiB9CiAKLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2Fu
ZF9yZWJpYXNfdG9fbWFnYXppbmVfd2hpbGVfaW5lbGlnaWJsZV9pbXBsKAorUEFTX0FQSSB2b2lk
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc193aGlsZV9pbmVsaWdp
YmxlX2ltcGwoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICBwYXNfbG9jayoq
IGhlbGRfbG9jaywKLSAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKTsKKyAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX25vZGUqIGNhY2hlX25vZGUpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZAotcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21h
Z2F6aW5lX3doaWxlX2luZWxpZ2libGUoCitwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2Nr
X2FuZF9yZWJpYXNfd2hpbGVfaW5lbGlnaWJsZSgKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBw
YWdlLAogICAgIHBhc19sb2NrKiogaGVsZF9sb2NrLAotICAgIHBhc19tYWdhemluZSogbWFnYXpp
bmUsCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKiBjYWNoZV9ub2RlLAogICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewogICAgIFBBU19BU1NFUlQo
cGFnZV9jb25maWcuYmFzZS5pc19lbmFibGVkKTsKQEAgLTMwNiw4ICszMTMsOCBAQCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfdG9fbWFn
YXppbmVfd2hpbGVfaW5lbGlnaWJsZV9pbXBsKAotICAgICAgICBwYWdlLCBoZWxkX2xvY2ssIG1h
Z2F6aW5lKTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNf
d2hpbGVfaW5lbGlnaWJsZV9pbXBsKAorICAgICAgICBwYWdlLCBoZWxkX2xvY2ssIGNhY2hlX25v
ZGUpOwogfQogCiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV92ZXJpZnlfZ3JhbnVs
ZXMocGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSk7CkBAIC0zMTcsNiArMzI0LDggQEAgUEFTX0FQ
SSBQQVNfTk9fUkVUVVJOIFBBU19VU0VEIHZvaWQgcGFzXwogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQKIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UocGFzX3Nl
Z3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludHB0cl90IGJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZSBkZWFsbG9jYXRpb25fbW9k
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykK
IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CkBAIC0zOTMsMTEgKzQw
MiwxNSBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlCiAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXcgb3duZXI7CiAgICAgICAgIG93bmVyID0gcGFnZS0+b3duZXI7
CiAgICAgICAgIAotICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGVf
a2luZChvd25lcikpIHsKLSAgICAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4
Y2x1c2l2ZV9pc2gob3duZXIpKSB7CisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9raW5kKG93bmVyKSAhPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kKSB7Cisg
ICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShvd25l
cikpIHsKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAg
cGFzX2xvZygiTm90aWZ5aW5nIGV4Y2x1c2l2ZS1pc2ggZWxpZ2liaWxpdHkgb24gdmlldyAlcC5c
biIsIG93bmVyKTsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZWxp
Z2liaWxpdHkob3duZXIsIHBhZ2UpOworICAgICAgICAgICAgICAgIC8qIE5PVEU6IElmIHRoaXMg
ZGVjaWRlcyB0byBjYWNoZSB0aGUgdmlldyB0aGVuIGl0J3MgcG9zc2libGUgdGhhdCB3ZSB3aWxs
IHJlbGVhc2UgYW5kCisgICAgICAgICAgICAgICAgICAgdGhlbiByZWFjcXVpcmUgdGhpcyBwYWdl
J3MgbG9jay4gKi8KKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19ub3RlX2VsaWdpYmlsaXR5KAorICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9leGNsdXNpdmUob3duZXIpLAorICAgICAgICAgICAgICAgICAgICBwYWdlLCBkZWFs
bG9jYXRpb25fbW9kZSwgdGhyZWFkX2xvY2FsX2NhY2hlLCBwYWdlX2NvbmZpZyk7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5k
bGUqIHNoYXJlZF9oYW5kbGU7CiAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3KiBwYXJ0aWFsX3ZpZXc7CkBAIC00MzYsMTAgKzQ0OSwxMCBAQCBwYXNfc2VncmVnYXRl
ZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlCiAgICAgICAgIGJpdF9pbmRleCA9IG9mZnNldF9p
bl9wYWdlID4+IHBhZ2VfY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0OwogICAgICAgICBvd25l
ciA9IHBhZ2UtPm93bmVyOwogCi0gICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4
Y2x1c2l2ZV9pc2gob3duZXIpKQorICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19z
b21lX2V4Y2x1c2l2ZShvd25lcikpCiAgICAgICAgICAgICBvYmplY3Rfc2l6ZSA9IHBhZ2UtPm9i
amVjdF9zaXplOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG9iamVjdF9zaXplID0gcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251
bGwoCisgICAgICAgICAgICBvYmplY3Rfc2l6ZSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAgICAgJnBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9oYW5kbGVfcGFydGlhbF92aWV3X2Zvcl9pbmRleCgKICAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkX2hhbmRsZShvd25lciksCiAg
ICAgICAgICAgICAgICAgICAgIGJpdF9pbmRleCwKQEAgLTQ3Myw2ICs0ODYsOCBAQCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUoCiAgICAgdWludHB0cl90IGJl
Z2luLAogICAgIHBhc19sb2NrKiogaGVsZF9sb2NrLAorICAgIHBhc19zZWdyZWdhdGVkX2RlYWxs
b2NhdGlvbl9tb2RlIGRlYWxsb2NhdGlvbl9tb2RlLAorICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBw
YWdlX2NvbmZpZykKIHsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOwpAQCAtNDgxLDM4
ICs0OTYsMTEgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZwogICAg
IAogICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9hZGRyZXNzX2FuZF9wYWdlX2Nv
bmZpZyhiZWdpbiwgcGFnZV9jb25maWcpOwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNo
X2xvY2socGFnZSwgaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZShwYWdlLCBiZWdpbiwgcGFnZV9jb25maWcpOwotfQot
Ci1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbAotcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFs
aWZpZXNfZm9yX2RlY29tbWl0KAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0gICAgcGFzX3BhZ2Vf
Z3JhbnVsZV91c2VfY291bnQqIHVzZV9jb3VudHM7Ci0gICAgdWludHB0cl90IG51bV9ncmFudWxl
czsKLSAgICB1aW50cHRyX3QgZ3JhbnVsZV9pbmRleDsKLSAgICAKLSAgICBQQVNfQVNTRVJUKHBh
Z2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7Ci0KLSAgICBpZiAoIXBhZ2UtPm51bV9ub25fZW1w
dHlfd29yZHMpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIAotICAgIGlmIChwYWdlX2NvbmZp
Zy5iYXNlLnBhZ2Vfc2l6ZSA9PSBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHVzZV9jb3VudHMgPSBwYXNfc2VncmVnYXRlZF9w
YWdlX2dldF9ncmFudWxlX3VzZV9jb3VudHMocGFnZSwgcGFnZV9jb25maWcpOwotICAgIG51bV9n
cmFudWxlcyA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC8gcGFnZV9jb25maWcuYmFzZS5n
cmFudWxlX3NpemU7Ci0gICAgCi0gICAgZm9yIChncmFudWxlX2luZGV4ID0gbnVtX2dyYW51bGVz
OyBncmFudWxlX2luZGV4LS07KSB7Ci0gICAgICAgIGlmICghdXNlX2NvdW50c1tncmFudWxlX2lu
ZGV4XSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKAorICAgICAg
ICBwYWdlLCBiZWdpbiwgZGVhbGxvY2F0aW9uX21vZGUsIHRocmVhZF9sb2NhbF9jYWNoZSwgcGFn
ZV9jb25maWcpOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5Kgorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZGlyZWN0b3J5
X2Zvcl9hZGRyZXNzX2luX3BhZ2UocGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBi
ZWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQpAQCAtNTI2LDEzICs1
MTQsMTEgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZGlyZWN0b3J5X2Zvcl9hZAogICAgIHN3
aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZChvd25pbmdfdmlldykpIHsKICAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxp
Z2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAg
cmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoCiAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKG93
bmluZ192aWV3KS0+ZGlyZWN0b3J5KTsKIAogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X2hhbmRsZV9raW5kOgotICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgJnBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9oYW5kbGVfcGFydGlhbF92aWV3X2Zvcl9vYmplY3QoCiAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkX2hhbmRsZShvd25pbmdfdmlldyks
IGJlZ2luLCBwYWdlX2NvbmZpZyktPmRpcmVjdG9yeSk7CiAKQEAgLTU0Miw3ICs1MjgsNyBAQCBw
YXNfc2VncmVnYXRlZF9wYWdlX2dldF9kaXJlY3RvcnlfZm9yX2FkCiAgICAgfQogfQogCi1zdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
Kgorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KgogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZGlyZWN0b3J5X2Zvcl9hZGRyZXNzX2FuZF9wYWdl
X2NvbmZpZyh1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
IHBhZ2VfY29uZmlnKQogewpAQCAtNTY3LDEyICs1NTMsMTAgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9nZXRfb2JqZWN0X3NpemVfZm9yXwogICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfa2luZChvd25pbmdfdmlldykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2
ZV92aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6CiAg
ICAgICAgIHJldHVybiBwYWdlLT5vYmplY3Rfc2l6ZTsKIAogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX2hhbmRsZV9raW5kOgotICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgIHJldHVybiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAg
JnBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfcGFydGlhbF92aWV3X2Zvcl9vYmplY3QoCiAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkX2hhbmRsZShvd25p
bmdfdmlldyksCiAgICAgICAgICAgICAgICAgYmVnaW4sIHBhZ2VfY29uZmlnKS0+ZGlyZWN0b3J5
KS0+b2JqZWN0X3NpemU7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYwkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3LmMJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAKIAog
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KgogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
X2NyZWF0ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAg
IHNpemVfdCBpbmRleCkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CkBAIC01Nyw3ICs1Nyw3IEBAIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jcmVhdGUoCiAg
ICAgLyogV2UgYXR0YWNoIHRvIGEgc2hhcmVkIHZpZXcgbGF6aWx5IC0gb25jZSB3ZSBrbm93IHdo
YXQgd2UncmUgYWxsb2NhdGluZy4gKi8KICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJl
ZF92aWV3X3B0cl9zdG9yZSgmcmVzdWx0LT5zaGFyZWRfdmlldywgTlVMTCk7CiAKLSAgICBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3Vs
dC0+ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOworICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKIAog
ICAgIFBBU19BU1NFUlQoKHVpbnQ4X3QpaW5kZXggPT0gaW5kZXgpOwogICAgIHJlc3VsdC0+aW5k
ZXggPSAodWludDhfdClpbmRleDsKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXdfbm90ZV9lbAogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAg
IHBhc19sb2coIiVwOiBBY3R1YWxseSB0ZWxsaW5nIHRoZSBkaXJlY3RvcnkgdGhhdCB3ZSdyZSBl
bGlnaWJsZS5cbiIsIHZpZXcpOwogICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmll
d19kaWRfYmVjb21lX2VsaWdpYmxlKAotICAgICAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3Rv
cnkpLT5iYXNlLAorICAgICAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCiAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfYXNfdmlld19ub25fbnVsbCh2aWV3KSk7
CiAgICAgfQogICAgIHZpZXctPmVsaWdpYmlsaXR5X2hhc19iZWVuX25vdGVkID0gdHJ1ZTsKQEAg
LTE2Myw3ICsxNjMsNyBAQCBib29sIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19zaG91bGRf
CiAKIHN0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5IGNvbXB1dGVfc3VtbWFyeShwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXcqIHZpZXcpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogc2l6ZV9kaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHNoYXJlZF92aWV3OwogICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZ19wdHI7CkBAIC0xNzgsNyAr
MTc4LDcgQEAgc3RhdGljIHBhc19oZWFwX3N1bW1hcnkgY29tcHV0ZV9zdW1tYXJ5KAogICAgIHNp
emVfdCBlbmRfaW5kZXg7CiAgICAgcGFzX2hlYXBfc3VtbWFyeSByZXN1bHQ7CiAKLSAgICBzaXpl
X2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpOworICAgIHNpemVfZGlyZWN0b3J5
ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgmdmlldy0+ZGlyZWN0b3J5KTsKICAgICBkaXJlY3RvcnkgPSAmc2l6ZV9kaXJlY3RvcnktPmJh
c2U7CiAgICAgcGFnZV9jb25maWdfcHRyID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCk7CiAgICAgcGFnZV9jb25m
aWcgPSAqcGFnZV9jb25maWdfcHRyOwpAQCAtMjYyLDcgKzI2Miw3IEBAIHBhc19oZWFwX3N1bW1h
cnkgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF8KIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogdmlldykKIHsKICAg
ICByZXR1cm4gUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICZwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKKyAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJh
c2UsCiAgICAgICAgIHZpZXctPmluZGV4LCBlbGlnaWJsZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlldy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaAkod29ya2luZyBj
b3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9QQVJUSUFMX1ZJ
RVdfSAogCiAjaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIu
aCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9wdHIuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0ci5oIgogI2luY2x1ZGUgInBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCIKICNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19wYWdl
X2dyYW51bGVfdXNlX2NvdW50LmgiCkBAIC0zOCwxNiArMzgsMTYgQEAgUEFTX0JFR0lOX0VYVEVS
Tl9DOwogCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3Owogc3RydWN0IHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3Owotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVk
ZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyBwYXNfc2VncmVnYXRlZF9wYXJ0
aWFsX3ZpZXc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfdmlldzsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7
Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeTsKIAogc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
dyB7CiAgICAgdW5zaWduZWQgaW5saW5lX2FsbG9jX2JpdHM7CiAgICAgCiAgICAgcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIgc2hhcmVkX3ZpZXc7Ci0gICAgcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKKyAgICBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7CiAgICAg
cGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ciBhbGxvY19iaXRzOwogCiAgICAgLyogVGhl
IGluZGV4IGNhbiBiZSBzbWFsbCBzaW5jZSB3ZSB3b3VsZCBuZXZlciBjcmVhdGUgYSBoaWdoLWlu
ZGV4ZWQgcGFydGlhbCB2aWV3LiBUaGF0IHdvdWxkIG5vdApAQCAtOTQsNyArOTQsNyBAQCBwYXNf
c2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfYXNfdmlld19ub25fCiAKIFBBU19BUEkgcGFzX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3KgogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NyZWF0ZSgK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBp
bmRleCk7CiAKIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfbm90ZV9l
bGlnaWJpbGl0eSgKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5
KQpAQCAtMTQ0LDggKzE0NCw3IEBAIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBwYXNfc2Vn
cmVnYXQKICAgICAgICAgY29uZmlnLmFyZyA9ICZkYXRhOwogICAgICAgICBkYXRhLnZpZXcgPSBO
VUxMOwogCi0gICAgICAgIGRpZF9maW5kX3NvbWV0aGluZyA9IHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pdGVyYXRlX2ZvcndhcmRfdG9fdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICAgICAgICAg
ICZjb25maWcsIFBBU19TRUdSRUdBVEVEX1NIQVJFRF9QQUdFX0RJUkVDVE9SWV9GSVJTVF9FTElH
SUJMRV9LSU5EKTsKKyAgICAgICAgZGlkX2ZpbmRfc29tZXRoaW5nID0gcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZF90b190YWtlX2ZpcnN0X2VsaWdpYmxlKCZjb25maWcp
OwogCiAgICAgICAgIGlmIChkaWRfZmluZF9zb21ldGhpbmcpIHsKICAgICAgICAgICAgIGlmICgh
ZGF0YS52aWV3KSB7CkBAIC0zNTAsNyArMzQ5LDcgQEAgdGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVy
X3ZpZXcoCiAKICAgICBmb3IgKHBhcnRpYWxfaW5kZXggPSBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
aGFuZGxlX251bV92aWV3cyhwYWdlX2NvbmZpZyk7IHBhcnRpYWxfaW5kZXgtLTspIHsKICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsX3ZpZXc7Ci0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFy
dGlhbDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0
b3J5X29mX3BhcnRpYWw7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0
b3J5X29mX3BhcnRpYWw7CiAKICAgICAgICAgcGFydGlhbF92aWV3ID0gcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0cl9sb2FkKApAQCAtMzU5LDcgKzM1OCw3IEBA
IHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KAogICAgICAgICAgICAgY29udGludWU7CiAK
ICAgICAgICAgc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbCA9Ci0gICAgICAgICAgICBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmcGFydGlhbF92
aWV3LT5kaXJlY3RvcnkpOworICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZCgmcGFydGlhbF92aWV3LT5kaXJlY3RvcnkpOwogICAgICAgICBk
aXJlY3Rvcnlfb2ZfcGFydGlhbCA9ICZzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsLT5iYXNlOwog
ICAgICAgICAKICAgICAgICAgaWYgKCFQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfU0VUX0JJVCgK
QEAgLTQ1MSw3ICs0NTAsNyBAQCByZXR1cm5fdGFrZW5fcGFydGlhbF92aWV3c19hZnRlcl9kZWNv
bW1pCiAgICAgc3dpdGNoX3RvX293bmVyc2hpcChzaGFyZWRfdmlldywgJmhlbGRfbG9jaywgcGFn
ZV9jb25maWcpOwogICAgIGZvciAocGFydGlhbF9pbmRleCA9IHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF9oYW5kbGVfbnVtX3ZpZXdzKHBhZ2VfY29uZmlnKTsgcGFydGlhbF9pbmRleC0tOykgewogICAg
ICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWxfdmlldzsKLSAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9vZl9w
YXJ0aWFsOworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJl
Y3Rvcnlfb2ZfcGFydGlhbDsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnlfb2ZfcGFydGlhbDsKICAgICAgICAgYm9vbCBzZXRfcmVzdWx0OwogCkBAIC00NjMsNyAr
NDYyLDcgQEAgcmV0dXJuX3Rha2VuX3BhcnRpYWxfdmlld3NfYWZ0ZXJfZGVjb21taQogICAgICAg
ICBwYXJ0aWFsX3ZpZXctPm5vdGVkX2luX3NjYW4gPSBmYWxzZTsKIAogICAgICAgICBzaXplX2Rp
cmVjdG9yeV9vZl9wYXJ0aWFsID0KLSAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZwYXJ0aWFsX3ZpZXctPmRpcmVjdG9yeSk7
CisgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkKCZwYXJ0aWFsX3ZpZXctPmRpcmVjdG9yeSk7CiAgICAgICAgIGRpcmVjdG9yeV9vZl9wYXJ0
aWFsID0gJnNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWwtPmJhc2U7CiAKICAgICAgICAgUEFTX0FT
U0VSVChwYXJ0aWFsX3ZpZXctPmlzX2F0dGFjaGVkX3RvX3NoYXJlZF9oYW5kbGUpOwpAQCAtNDky
LDcgKzQ5MSw3IEBAIHJldHVybl90YWtlbl9wYXJ0aWFsX3ZpZXdzX3VubG9ja190aGlzX3YKICAg
ICBzd2l0Y2hfdG9fb3duZXJzaGlwKHNoYXJlZF92aWV3LCAmaGVsZF9sb2NrLCBwYWdlX2NvbmZp
Zyk7CiAgICAgZm9yIChwYXJ0aWFsX2luZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRs
ZV9udW1fdmlld3MocGFnZV9jb25maWcpOyBwYXJ0aWFsX2luZGV4LS07KSB7CiAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3OwotICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWw7
CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9v
Zl9wYXJ0aWFsOwogICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeV9v
Zl9wYXJ0aWFsOwogICAgICAgICBib29sIHNldF9yZXN1bHQ7CiAKQEAgLTUwMiw3ICs1MDEsNyBA
QCByZXR1cm5fdGFrZW5fcGFydGlhbF92aWV3c191bmxvY2tfdGhpc192CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgCiAgICAgICAgIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWwgPQot
ICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWQoJnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJnBhcnRpYWxfdmlldy0+ZGly
ZWN0b3J5KTsKICAgICAgICAgZGlyZWN0b3J5X29mX3BhcnRpYWwgPSAmc2l6ZV9kaXJlY3Rvcnlf
b2ZfcGFydGlhbC0+YmFzZTsKIAogICAgICAgICBzZXRfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFy
ZWRfcGFnZV9kaXJlY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTAgKzQ2LDYgQEAgc3Ry
dWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdAogICAgICAgICAgLm5leHQgPSBO
VUxMIFwKICAgICAgfSkKIAotLyogTk9URTogSXQgZG9lc24ndCBtYXR0ZXIgd2hpY2gga2luZCBv
ZiBmaXJzdF9lbGlnaWJsZSB3ZSB1c2UuIFdlIGp1c3QgcGljayBvbmUuICovCi0jZGVmaW5lIFBB
U19TRUdSRUdBVEVEX1NIQVJFRF9QQUdFX0RJUkVDVE9SWV9GSVJTVF9FTElHSUJMRV9LSU5EIFwK
LSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJs
ZWRfa2luZAotCiBleHRlcm4gUEFTX0FQSSB1bnNpZ25lZCBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
cGFnZV9kaXJlY3RvcnlfcHJvYmFiaWxpdHlfb2ZfaW5lbGlnaWJpbGl0eTsKIAogUEFTX0FQSSBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5X2ZpbmRfZmlyc3RfZWxpZ2libGUoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDMyICsyOSw5MzYgQEAKIAogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5LmgiCiAKKyNpbmNsdWRlICJwYXNfYml0Zml0X2hlYXAuaCIKICNpbmNsdWRlICJwYXNfZGVm
ZXJyZWRfZGVjb21taXRfbG9nLmgiCiAjaW5jbHVkZSAicGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBs
YXRlX21lbW9fdGFibGUuaCIKICNpbmNsdWRlICJwYXNfbW9ub3RvbmljX3RpbWUuaCIKICNpbmNs
dWRlICJwYXNfcGFnZV9tYWxsb2MuaCIKKyNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaW5saW5lcy5oIgorI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKICNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3N0cmVhbS5oIgogI2luY2x1
ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgiCisjaW5jbHVkZSAicGFzX3V0aWxp
dHlfaGVhcC5oIgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCitwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlKAorICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgdW5zaWduZWQgb2JqZWN0X3NpemUsCisgICAgdW5z
aWduZWQgYWxpZ25tZW50LAorICAgIHBhc19oZWFwX2NvbmZpZyogaGVhcF9jb25maWcsCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnLAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUgY3JlYXRpb25fbW9kZSkKK3sKKyAgICBz
dGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kIHBhZ2VfY29uZmlnX2tpbmQ7CisKKyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxk
KCk7CisKKyAgICBpZiAocGFnZV9jb25maWcpCisgICAgICAgIHBhZ2VfY29uZmlnX2tpbmQgPSBw
YWdlX2NvbmZpZy0+a2luZDsKKyAgICBlbHNlCisgICAgICAgIHBhZ2VfY29uZmlnX2tpbmQgPSBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGw7CisKKyAgICBpZiAocGFnZV9jb25m
aWcpCisgICAgICAgIFBBU19BU1NFUlQoaGVhcF9jb25maWcgPT0gcGFnZV9jb25maWctPmJhc2Uu
aGVhcF9jb25maWdfcHRyKTsKKworICAgIHBhc19oZWFwX2NvbmZpZ19hY3RpdmF0ZShoZWFwX2Nv
bmZpZyk7CisKKyAgICBpZiAodmVyYm9zZSAmJiBwYWdlX2NvbmZpZykgeworICAgICAgICBwYXNf
bG9nKCJsb2NhbCBhbGxvY2F0b3Igc2l6ZSBmb3IgJXM6ICV6dVxuIiwKKyAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcocGFnZV9jb25maWdf
a2luZCksCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9j
YWxfYWxsb2NhdG9yX3NpemVfZm9yX2NvbmZpZygqcGFnZV9jb25maWcpKTsKKyAgICB9CisKKyAg
ICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKKyAgICAgICAgc2l6ZW9mKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KSwKKyAgICAgICAgInBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5IiwKKyAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKKworICAgIGlm
ICh2ZXJib3NlKSB7CisgICAgICAgIHBhc19sb2coIiVkOiBDcmVhdGluZyBkaXJlY3RvcnkgJXAg
Zm9yICVzIHdpdGggb2JqZWN0X3NpemUgPSAldSwgYWxpZ25tZW50ID0gJXVcbiIsCisgICAgICAg
ICAgICAgICAgZ2V0cGlkKCksIHJlc3VsdCwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZF9nZXRfc3RyaW5nKHBhZ2VfY29uZmlnX2tpbmQpLAorICAgICAgICAgICAgICAgIG9iamVjdF9z
aXplLCBhbGlnbm1lbnQpOworICAgIH0KKworICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9j
b25zdHJ1Y3QoCisgICAgICAgICZyZXN1bHQtPmJhc2UsIHBhZ2VfY29uZmlnX2tpbmQsCisgICAg
ICAgIGhlYXAtPnJ1bnRpbWVfY29uZmlnLT5zaGFyaW5nX21vZGUsCisgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2tpbmQpOworCisgICAgcmVzdWx0LT5oZWFwID0gaGVhcDsK
KyAgICByZXN1bHQtPm9iamVjdF9zaXplID0gb2JqZWN0X3NpemU7CisKKyAgICBQQVNfQVNTRVJU
KHBhc19pc19wb3dlcl9vZl8yKGFsaWdubWVudCkpOworICAgIFBBU19BU1NFUlQocGFzX2lzX2Fs
aWduZWQob2JqZWN0X3NpemUsIGFsaWdubWVudCkpOworICAgIHJlc3VsdC0+YWxpZ25tZW50X3No
aWZ0ID0gcGFzX2xvZzIoYWxpZ25tZW50KTsKKyAgICAKKyAgICByZXN1bHQtPmJhc2VsaW5lX2Fs
bG9jYXRvcl9pbmRleCA9IDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlM7CisgICAgcmVz
dWx0LT52aWV3X2NhY2hlX2luZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7Cisg
ICAgCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfc3RvcmUoJnJl
c3VsdC0+ZGF0YSwgTlVMTCk7CiAKLSNpZmRlZiBQQVNfTElCTUFMTE9DCi1ib29sIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5nID0gdHJ1ZTsKLSNlbHNlCi1ib29sIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5nID0gZmFsc2U7Ci0jZW5kaWYK
LQotdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jb25zdHJ1Y3QoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZCBwYWdlX2NvbmZpZ19raW5kLAotICAgIHBhc19wYWdlX3NoYXJpbmdfbW9k
ZSBwYWdlX3NoYXJpbmdfbW9kZSwKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZCBr
aW5kKQorICAgIGlmIChwYWdlX2NvbmZpZykKKyAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF9zaXplX2NsYXNzX3B0cl9zdG9yZSgmcmVzdWx0LT5iaXRmaXRfc2l6ZV9jbGFzcywgTlVM
TCk7CisgICAgZWxzZSB7CisgICAgICAgIHBhc19iaXRmaXRfaGVhcCogYml0Zml0X2hlYXA7Cisg
ICAgICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogYml0Zml0X3NpemVfY2xhc3M7CisKKyAgICAg
ICAgYml0Zml0X2hlYXAgPSBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9iaXRmaXQoaGVhcCwgaGVh
cF9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOworICAgICAgICBQQVNfQVNTRVJUKGJpdGZpdF9o
ZWFwKTsKKyAgICAgICAgCisgICAgICAgIGJpdGZpdF9zaXplX2NsYXNzID0KKyAgICAgICAgICAg
IHBhc19iaXRmaXRfaGVhcF9lbnN1cmVfc2l6ZV9jbGFzcygKKyAgICAgICAgICAgICAgICBiaXRm
aXRfaGVhcCwgcmVzdWx0LCBoZWFwX2NvbmZpZywgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgICAg
IAorICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX3N0b3Jl
KAorICAgICAgICAgICAgJnJlc3VsdC0+Yml0Zml0X3NpemVfY2xhc3MsIGJpdGZpdF9zaXplX2Ns
YXNzKTsKKyAgICB9CisgICAgCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPm5leHRfZm9yX2hlYXAsIE5VTEwpOworCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X2RpZF90cnlfdG9fY3JlYXRlX3Zp
ZXdfY2FjaGUocmVzdWx0LCBmYWxzZSk7CisKKyAgICBzd2l0Y2ggKGNyZWF0aW9uX21vZGUpIHsK
KyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2luaXRpYWxfY3JlYXRpb25f
bW9kZToKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2Z1bGxfY3JlYXRpb25fbW9kZToKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZmluaXNoX2NyZWF0aW9uKHJlc3VsdCk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfZmluaXNoX2NyZWF0aW9uKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2NvbnN0cnVjdChkaXJlY3Rv
cnksIHBhZ2VfY29uZmlnX2tpbmQsIHBhZ2Vfc2hhcmluZ19tb2RlLCBraW5kKTsKKyAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwOworCisgICAgaGVhcCA9IGRpcmVjdG9yeS0+aGVhcDsKKyAg
ICAKKyAgICBpZiAoIWhlYXAtPnJ1bnRpbWVfY29uZmlnLT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9m
b3JfYmFzZWxpbmVfYWxsb2NhdG9ycykKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfY3JlYXRlX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KTsKKyAgICBpZiAoIWhlYXAtPnJ1
bnRpbWVfY29uZmlnLT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfcGFydGlhbF92aWV3cykKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3
cyhkaXJlY3RvcnkpOworICAgIGlmICghaGVhcC0+cnVudGltZV9jb25maWctPmRpcmVjdG9yeV9z
aXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlKQorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9jcmVhdGVfdGxjX3ZpZXdfY2FjaGUoZGlyZWN0b3J5KTsKK30KKworcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZW5zdXJlX2RhdGEoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKKyAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOworICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKKworICAgIGRhdGEgPSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOworCisg
ICAgaWYgKGRhdGEpCisgICAgICAgIHJldHVybiBkYXRhOworCisgICAgcGFnZV9jb25maWcgPSBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5iYXNl
LnBhZ2VfY29uZmlnX2tpbmQpOworCisgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFs
bHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICBpZiAoZGF0
YSkgeworICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9j
a19ob2xkX21vZGUpOworICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisKKyAgICBpZiAocGFn
ZV9jb25maWcgJiYgcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplID4gcGFnZV9jb25maWctPmJh
c2UuZ3JhbnVsZV9zaXplKSB7CisgICAgICAgIGRhdGEgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxv
Y2F0ZSgKKyAgICAgICAgICAgIHNpemVvZihwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kYXRhKSwKKyAgICAgICAgICAgICJwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9kYXRhIiwKKyAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisK
KyAgICAgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyX3N0
b3JlKAorICAgICAgICAgICAgJigocGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSopZGF0YSktPmZ1bGxfdXNlX2NvdW50cywgTlVMTCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgZGF0YSA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAorICAgICAgICAgICAgc2l6
ZW9mKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEpLAorICAgICAgICAgICAgInBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEiLAorICAgICAgICAgICAgcGFzX29iamVj
dF9hbGxvY2F0aW9uKTsKKyAgICB9CisKKyAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRf
cHRyX3N0b3JlKCZkYXRhLT5mdWxsX2FsbG9jX2JpdHMsIE5VTEwpOworICAgIGRhdGEtPm9mZnNl
dF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0gMDsKKyAgICBkYXRhLT5vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9IDA7CisgICAgZGF0
YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzID0gMDsKKyAgICBkYXRhLT5hbGxvY2F0b3JfaW5k
ZXggPSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWDsKKyAgICBwYXNfY29tcGFjdF9hdG9t
aWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3JlKCZkYXRhLT5uZXh0X2Zvcl9s
YXlvdXQsIE5VTEwpOworCisgICAgcGFzX2ZlbmNlKCk7CisKKyAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9kYXRhX3B0cl9zdG9yZSgmZGlyZWN0b3J5LT5kYXRhLCBkYXRhKTsKKwor
ICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7CisKKyAgICByZXR1cm4gZGF0YTsKK30KKworcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZGF0YSoKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9leHRl
bmRlZF9kYXRhKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnkp
Cit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnOworCisgICAg
cGFnZV9jb25maWcgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWco
ZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOworICAgIFBBU19BU1NFUlQocGFnZV9j
b25maWcpOworICAgIFBBU19BU1NFUlQocGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplID4gcGFn
ZV9jb25maWctPmJhc2UuZ3JhbnVsZV9zaXplKTsKKworICAgIHJldHVybiAocGFzX2V4dGVuZGVk
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSopCisgICAgICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Cit9CisKK3Zv
aWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19hbGxvY2F0b3IoCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOworICAgIAorICAgIHBhc19oZWFw
X2xvY2tfYXNzZXJ0X2hlbGQoKTsKKworICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kX2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZW5zdXJlX2RhdGEoZGlyZWN0b3J5LCBwYXNfbG9ja19pc19oZWxkKTsKKworICAgIGlmIChkYXRh
LT5hbGxvY2F0b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGQo
ZGlyZWN0b3J5KTsKKyAgICAKKyAgICBQQVNfQVNTRVJUKGRhdGEtPmFsbG9jYXRvcl9pbmRleCA8
IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKK30KKwordm9pZCBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX3ZpZXdfY2FjaGUoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICBzaXplX3QgaW5kZXg7CisgICAg
CisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgaWYgKHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmRfaXNfdXRpbGl0eShkaXJlY3RvcnktPmJhc2UucGFnZV9jb25m
aWdfa2luZCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnlfc2V0X2RpZF90cnlfdG9fY3JlYXRlX3ZpZXdfY2FjaGUoZGlyZWN0b3J5LCB0
cnVlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV92aWV3X2NhY2hlX2NhcGFjaXR5KGRpcmVjdG9yeSkpCisgICAgICAgIHJldHVybjsK
KworICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5LT52aWV3X2NhY2hlX2luZGV4ID09IChwYXNfYWxs
b2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKKyAgICAKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9hZGRfdmlld19jYWNoZShkaXJlY3RvcnkpOworICAgIAorICAgIFBBU19BU1NFUlQo
ZGlyZWN0b3J5LT52aWV3X2NhY2hlX2luZGV4IDwgKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9N
QVgpOworCisgICAgZm9yIChpbmRleCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZk
aXJlY3RvcnktPmJhc2UpOyBpbmRleC0tOykgeworICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3
IHZpZXc7CisKKyAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRp
cmVjdG9yeS0+YmFzZSwgaW5kZXgpOworCisgICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2lmX293bmVk
KHZpZXcpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfcGFnZSh2aWV3KS0+dmlld19jYWNoZV9pbmRleCA9IGRpcmVjdG9yeS0+dmlld19j
YWNoZV9pbmRleDsKKyAgICAgICAgCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfdW5sb2Nr
X293bmVyc2hpcF9sb2NrKHZpZXcpOworICAgIH0KK30KKwordm9pZCBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3ZpZXdzKAorICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
dGVtcGxhdGVfZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQg
cGFnZV9jb25maWdfa2luZDsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9j
b25maWdfcHRyOworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnOwor
ICAgIHVuc2lnbmVkIG9iamVjdF9zaXplOworICAgIHNpemVfdCBhbGxvY19iaXRzX2J5dGVzOwor
ICAgIHVuc2lnbmVkIG9mZnNldDsKKyAgICB1bnNpZ25lZCBiZWdpbjsKKyAgICB1bnNpZ25lZCBl
bmQ7CisgICAgdW5zaWduZWQqIGZ1bGxfYWxsb2NfYml0czsKKyAgICB1bnNpZ25lZCBmdWxsX251
bV9ub25fZW1wdHlfd29yZHM7CisgICAgc2l6ZV90IGluZGV4OworICAgIHBhc19hbGxvY2F0aW9u
X2NvbmZpZyBib290c3RyYXBfYWxsb2NhdGlvbl9jb25maWc7CisKKyAgICBwYXNfaGVhcF9sb2Nr
X2Fzc2VydF9oZWxkKCk7CisKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZW5zdXJlX2RhdGEoZGlyZWN0b3J5LCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICBpZiAoZGF0
YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdl
X2NvbmZpZ19raW5kID0gZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7CisgICAgaWYg
KHBhZ2VfY29uZmlnX2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9udWxs
KQorICAgICAgICByZXR1cm47CisgICAgCisgICAgcGFnZV9jb25maWdfcHRyID0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKHBhZ2VfY29uZmlnX2tpbmQpOworICAg
IG9iamVjdF9zaXplID0gZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZTsKKyAgICAKKyAgICB0ZW1wbGF0
ZV9kaXJlY3RvcnkgPSBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZV9nZXQo
CisgICAgICAgICZwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZV9pbnN0YW5j
ZSwKKyAgICAgICAgcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fa2V5X2NyZWF0ZShv
YmplY3Rfc2l6ZSwgcGFnZV9jb25maWdfa2luZCkpOworICAgIGlmICh0ZW1wbGF0ZV9kaXJlY3Rv
cnkpIHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogdGVtcGxh
dGVfZGF0YTsKKworICAgICAgICB0ZW1wbGF0ZV9kYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmdGVtcGxhdGVfZGlyZWN0b3J5LT5kYXRhKTsKKyAgICAg
ICAgCisgICAgICAgIGRhdGEtPmZ1bGxfYWxsb2NfYml0cyA9IHRlbXBsYXRlX2RhdGEtPmZ1bGxf
YWxsb2NfYml0czsKKyAgICAgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19m
aXJzdF9vYmplY3QgPQorICAgICAgICAgICAgdGVtcGxhdGVfZGF0YS0+b2Zmc2V0X2Zyb21fcGFn
ZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3Q7CisgICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3Bh
Z2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0ID0KKyAgICAgICAgICAgIHRlbXBsYXRl
X2RhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0Owor
CisgICAgICAgIGlmIChwYWdlX2NvbmZpZ19wdHItPmJhc2UucGFnZV9zaXplID4gcGFnZV9jb25m
aWdfcHRyLT5iYXNlLmdyYW51bGVfc2l6ZSkgeworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoZGlyZWN0b3J5KS0+ZnVsbF91c2VfY291
bnRzID0KKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRf
ZXh0ZW5kZWRfZGF0YSgKKyAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVfZGlyZWN0b3J5KS0+
ZnVsbF91c2VfY291bnRzOworICAgICAgICB9CisKKyAgICAgICAgcGFzX2ZlbmNlKCk7CisgICAg
ICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9CisgICAgICAgICAgICB0ZW1wbGF0
ZV9kYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHM7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBwYWdlX2NvbmZpZyA9ICpwYWdlX2NvbmZpZ19wdHI7CisgICAgCisgICAgYWxsb2Nf
Yml0c19ieXRlcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRlcyhw
YWdlX2NvbmZpZyk7CisgICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxs
b2NhdGVfd2l0aF9tYW51YWxfYWxpZ25tZW50KAorICAgICAgICBhbGxvY19iaXRzX2J5dGVzLCBz
aXplb2YodW5zaWduZWQpLAorICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YS9mdWxsX2FsbG9jX2JpdHMiLAorICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwor
ICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfc3RvcmUoJmRhdGEtPmZ1bGxfYWxs
b2NfYml0cywgZnVsbF9hbGxvY19iaXRzKTsKKyAgICBwYXNfemVyb19tZW1vcnkoZnVsbF9hbGxv
Y19iaXRzLCBhbGxvY19iaXRzX2J5dGVzKTsKKworICAgIGJlZ2luID0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdF9leGNsdXNpdmUo
b2JqZWN0X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZyk7Cisg
ICAgZW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3Rv
X2VuZF9vZl9sYXN0X29iamVjdF9leGNsdXNpdmUob2JqZWN0X3NpemUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcpOworCisgICAgZGF0YS0+b2Zmc2V0X2Zyb21f
cGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3QgPSBiZWdpbjsKKyAgICBkYXRhLT5vZmZzZXRf
ZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9IGVuZDsKKworICAgIGZv
ciAob2Zmc2V0ID0gYmVnaW47IG9mZnNldCA8IGVuZDsgb2Zmc2V0ICs9IG9iamVjdF9zaXplKSB7
CisgICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0KAorICAgICAgICAgICAgZnVsbF9hbGxvY19iaXRz
LAorICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZV9pbmRleF9vZl9vYmplY3RfYXRfb2Zmc2V0X2Zy
b21fcGFnZV9ib3VuZGFyeSgKKyAgICAgICAgICAgICAgICBvZmZzZXQsIHBhZ2VfY29uZmlnLmJh
c2UpLAorICAgICAgICAgICAgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIGZ1bGxfbnVtX25vbl9l
bXB0eV93b3JkcyA9IDA7CisgICAgZm9yIChpbmRleCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX251bV9hbGxvY193b3JkcyhwYWdlX2NvbmZpZyk7IGluZGV4LS07KSB7CisgICAgICAgIGlm
IChmdWxsX2FsbG9jX2JpdHNbaW5kZXhdKQorICAgICAgICAgICAgZnVsbF9udW1fbm9uX2VtcHR5
X3dvcmRzKys7CisgICAgfQorICAgIFBBU19BU1NFUlQoZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRz
KTsKKworICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLmJh
c2UuZ3JhbnVsZV9zaXplKSB7CisgICAgICAgIHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2RhdGEqIGV4dGVuZGVkX2RhdGE7CisgICAgICAgIHBhc19wYWdlX2dyYW51bGVf
dXNlX2NvdW50KiBmdWxsX3VzZV9jb3VudHM7CisgICAgICAgIHVpbnRwdHJfdCBudW1fZ3JhbnVs
ZXM7CisgICAgICAgIGJvb2wgaW5pdGlhbGl6ZV9yZXN1bHQ7CisKKyAgICAgICAgZXh0ZW5kZWRf
ZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9leHRlbmRlZF9kYXRhKGRp
cmVjdG9yeSk7CisKKyAgICAgICAgbnVtX2dyYW51bGVzID0gcGFnZV9jb25maWcuYmFzZS5wYWdl
X3NpemUgLyBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZTsKKworICAgICAgICBmdWxsX3Vz
ZV9jb3VudHMgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX21hbnVhbF9hbGlnbm1l
bnQoCisgICAgICAgICAgICBudW1fZ3JhbnVsZXMgKiBzaXplb2YocGFzX3BhZ2VfZ3JhbnVsZV91
c2VfY291bnQpLAorICAgICAgICAgICAgc2l6ZW9mKHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50
KSwKKyAgICAgICAgICAgICJwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9k
YXRhL2Z1bGxfdXNlX2NvdW50cyIsCisgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24p
OworCisgICAgICAgIGluaXRpYWxpemVfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbml0
aWFsaXplX2Z1bGxfdXNlX2NvdW50cygKKyAgICAgICAgICAgIE5VTEwsIGRpcmVjdG9yeSwgZnVs
bF91c2VfY291bnRzLCBudW1fZ3JhbnVsZXMsIHBhZ2VfY29uZmlnKTsKKworICAgICAgICAvKiBU
aGlzIHNob3VsZCBoYXZlIGluaXRpYWxpemVkIGFsbCBvZiB0aGUgYml0cy4gKi8KKyAgICAgICAg
UEFTX0FTU0VSVChpbml0aWFsaXplX3Jlc3VsdCk7CisKKyAgICAgICAgcGFzX2NvbXBhY3RfdGFn
Z2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyX3N0b3JlKAorICAgICAgICAgICAgJmV4dGVu
ZGVkX2RhdGEtPmZ1bGxfdXNlX2NvdW50cywKKyAgICAgICAgICAgIGZ1bGxfdXNlX2NvdW50cyk7
CisgICAgfQorCisgICAgcGFzX2ZlbmNlKCk7CisgICAgZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5
X3dvcmRzID0gZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOworICAgIFBBU19BU1NFUlQoZGF0YS0+
ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzID09IGZ1bGxfbnVtX25vbl9lbXB0eV93b3Jkcyk7CisK
KyAgICBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcF9hbGxvY2F0aW9uX2NvbmZpZ19jb25zdHJ1Y3Qo
JmJvb3RzdHJhcF9hbGxvY2F0aW9uX2NvbmZpZywgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgCisg
ICAgcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGVfYWRkX25ldygKKyAgICAg
ICAgJnBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2luc3RhbmNlLAorICAg
ICAgICBkaXJlY3RvcnksCisgICAgICAgIE5VTEwsCisgICAgICAgICZib290c3RyYXBfYWxsb2Nh
dGlvbl9jb25maWcpOworfQorCitwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKgorcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX2Jhc2VsaW5lX2FsbG9j
YXRvcl90YWJsZV9pbml0aWFsaXplX2lmX25lY2Vzc2FyeSgpOworICAgIAorICAgIGZvciAoOzsp
IHsKKyAgICAgICAgdW5zaWduZWQgYV9pbmRleDsKKyAgICAgICAgdW5zaWduZWQgYl9pbmRleDsK
KyAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogYV9hbGxvY2F0b3I7CisgICAgICAgIHBh
c19iYXNlbGluZV9hbGxvY2F0b3IqIGJfYWxsb2NhdG9yOworICAgICAgICB1bnNpZ25lZCBzZWxl
Y3RlZF9pbmRleDsKKyAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogc2VsZWN0ZWRfYWxs
b2NhdG9yOworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2VsZWN0ZWRf
ZGlyZWN0b3J5OworCisgICAgICAgIHNlbGVjdGVkX2luZGV4ID0gZGlyZWN0b3J5LT5iYXNlbGlu
ZV9hbGxvY2F0b3JfaW5kZXg7CisgICAgICAgIGlmIChzZWxlY3RlZF9pbmRleCA8IFBBU19OVU1f
QkFTRUxJTkVfQUxMT0NBVE9SUykgeworICAgICAgICAgICAgc2VsZWN0ZWRfYWxsb2NhdG9yID0g
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIHNlbGVjdGVkX2luZGV4OworCisgICAgICAg
ICAgICBwYXNfbG9ja19sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOworCisgICAgICAg
ICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggIT0gc2VsZWN0ZWRf
aW5kZXgpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnNlbGVjdGVkX2FsbG9j
YXRvci0+bG9jayk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAoc2VsZWN0ZWRfaW5kZXggPCAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JT
KQorICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggLT0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FU
T1JTOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFBBU19BU1NFUlQoc2VsZWN0ZWRfaW5k
ZXggPT0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGFfaW5kZXggPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2dldF9yYW5k
b21faW5kZXgoKTsKKyAgICAgICAgICAgIGJfaW5kZXggPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
X3RhYmxlX2dldF9yYW5kb21faW5kZXgoKTsKKyAgICAKKyAgICAgICAgICAgIGFfYWxsb2NhdG9y
ID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGFfaW5kZXg7CisgICAgICAgICAgICBi
X2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBiX2luZGV4OworCisg
ICAgICAgICAgICAvKiBJZiBpdCdzIGNoZWFwIHRvIHN0b3Agb25lIG9mIHRoZXNlIHRoZW4ganVz
dCBwaWNrIGVpdGhlciBvbmUuICovCisgICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0
b3JfaXNfYWN0aXZlKCZhX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IpKQorICAgICAgICAgICAgICAg
IHNlbGVjdGVkX2luZGV4ID0gYV9pbmRleDsKKyAgICAgICAgICAgIGVsc2UgaWYgKCFwYXNfbG9j
YWxfYWxsb2NhdG9yX2lzX2FjdGl2ZSgmYl9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yKSkKKyAgICAg
ICAgICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGJfaW5kZXg7CisgICAgICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IGFfdmlldzsKKyAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3IGJfdmlldzsKKworICAgICAgICAgICAgICAgIGFfdmll
dyA9IGFfYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3OworICAgICAgICAgICAgICAgIGJfdmll
dyA9IGJfYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3OworCisgICAgICAgICAgICAgICAgaWYg
KCFhX3ZpZXcpCisgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4ID0gYV9pbmRleDsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4
ID0gYl9pbmRleDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFwYXNfY29tcGFy
ZV9hbmRfc3dhcF91aW50MTZfd2VhaygmZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5k
ZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIg
KiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyArIHNl
bGVjdGVkX2luZGV4KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAg
IAorICAgICAgICBzZWxlY3RlZF9hbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Rh
YmxlICsgc2VsZWN0ZWRfaW5kZXg7CisgICAgCisgICAgICAgIHBhc19sb2NrX2xvY2soJnNlbGVj
dGVkX2FsbG9jYXRvci0+bG9jayk7CisKKyAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVf
YWxsb2NhdG9yX2luZGV4ID09IHNlbGVjdGVkX2luZGV4KQorICAgICAgICAgICAgcmV0dXJuIHNl
bGVjdGVkX2FsbG9jYXRvcjsKKworICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxv
Y2F0b3JfaW5kZXggIT0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTICsgc2VsZWN0ZWRfaW5k
ZXgpIHsKKyAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5s
b2NrKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFw
YXNfbG9jYWxfYWxsb2NhdG9yX2lzX251bGwoJnNlbGVjdGVkX2FsbG9jYXRvci0+dS5hbGxvY2F0
b3IpKSB7CisgICAgICAgICAgICBwYXNfbnVtX2Jhc2VsaW5lX2FsbG9jYXRvcl9ldmljdGlvbnMr
KzsKKyAgICAgICAgICAgIHNlbGVjdGVkX2RpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3NpemVfZGlyZWN0b3J5KHNlbGVjdGVkX2FsbG9jYXRvci0+dS5hbGxvY2F0b3Iudmlldyk7
CisgICAgICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlY3Rvcnkoc2Vs
ZWN0ZWRfYWxsb2NhdG9yKTsKKyAgICAgICAgICAgIHBhc19mZW5jZSgpOworICAgICAgICAgICAg
c2VsZWN0ZWRfZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSAyICogUEFTX05V
TV9CQVNFTElORV9BTExPQ0FUT1JTOworICAgICAgICB9CisKKyAgICAgICAgcGFzX2Jhc2VsaW5l
X2FsbG9jYXRvcl9hdHRhY2hfZGlyZWN0b3J5KHNlbGVjdGVkX2FsbG9jYXRvciwgZGlyZWN0b3J5
KTsKKworICAgICAgICBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9IHNlbGVj
dGVkX2luZGV4OworCisgICAgICAgIHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7CisgICAgfQor
fQorCitzdGF0aWMgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB0YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVj
dF9jcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2soCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOworICAgIAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXpl
X2RpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7CisgICAgcGFzX2hlYXBf
cnVudGltZV9jb25maWcqIHJ1bnRpbWVfY29uZmlnOworCisgICAgUEFTX1RFU1RJTkdfQVNTRVJU
KGNvbmZpZy0+ZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9raW5kKTsKKyAgICAKKyAgICBzaXplX2RpcmVjdG9yeSA9IChwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSopY29uZmlnLT5kaXJlY3Rvcnk7CisKKyAgICBydW50aW1lX2Nv
bmZpZyA9IHNpemVfZGlyZWN0b3J5LT5oZWFwLT5ydW50aW1lX2NvbmZpZzsKKworICAgIGlmIChj
b25maWctPmluZGV4ID49IHJ1bnRpbWVfY29uZmlnLT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jf
cGFydGlhbF92aWV3cykKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5h
YmxlX2V4Y2x1c2l2ZV92aWV3cyhzaXplX2RpcmVjdG9yeSk7CisKKyAgICBpZiAoY29uZmlnLT5p
bmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5l
X2FsbG9jYXRvcnMpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0
ZV90bGNfYWxsb2NhdG9yKHNpemVfZGlyZWN0b3J5KTsKKworICAgIGlmIChjb25maWctPmluZGV4
ID49IHJ1bnRpbWVfY29uZmlnLT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNo
ZSkKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY192aWV3
X2NhY2hlKHNpemVfZGlyZWN0b3J5KTsKKyAgICAKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKHNpemVfZGlyZWN0b3J5KSkg
eworICAgICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfdmlld19u
b25fbnVsbCgKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NyZWF0
ZShzaXplX2RpcmVjdG9yeSwgY29uZmlnLT5pbmRleCkpOworICAgICAgICBpZiAodmVyYm9zZSkg
eworICAgICAgICAgICAgcGFzX2xvZygiJXA6IGNyZWF0ZWQgZXhjbHVzaXZlICVwLlxuIiwKKyAg
ICAgICAgICAgICAgICAgICAgc2l6ZV9kaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3B0cih2aWV3KSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICB2aWV3ID0gcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXdfbm9uX251bGwoCisgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKHNpemVfZGlyZWN0b3J5LCBjb25maWct
PmluZGV4KSk7CisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBwYXNfbG9nKCIl
cDogY3JlYXRlZCBwYXJ0aWFsICVwLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgc2l6ZV9kaXJl
Y3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAgICBwYXNfbG9nKCIlZDogJXAgKCVzLCAl
dSk6IG5vdyBoYXZlICV6dSB2aWV3cy5cbiIsCisgICAgICAgICAgICAgICAgZ2V0cGlkKCksIHNp
emVfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfZ2V0X3N0cmluZyhzaXplX2RpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKSwK
KyAgICAgICAgICAgICAgICBzaXplX2RpcmVjdG9yeS0+b2JqZWN0X3NpemUsCisgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJnNpemVfZGlyZWN0b3J5LT5iYXNl
KSk7CisgICAgfQorCisgICAgcmV0dXJuIHZpZXc7Cit9CisKK3Bhc19zZWdyZWdhdGVkX3ZpZXcg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZSgKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpCit7CisgICAgc3Rh
dGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVy
YXRlX2NvbmZpZyBjb25maWc7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OworCisgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKAorICAgICAgICBzaXplX2RpcmVjdG9yeS0+YmFzZS5wYWdlX2Nv
bmZpZ19raW5kICE9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7CisKKyAg
ICBkaXJlY3RvcnkgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7CisKKyAgICB2aWV3ID0gcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsKAorICAgICAg
ICBkaXJlY3RvcnksICZjb25maWcsCisgICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0
X2NyZWF0ZV9uZXdfdmlld19jYWxsYmFjayk7CisKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAg
ICBwYXNfbG9nKCJUYWtpbmcgZWxpZ2libGUgdmlldyAlcCAoJXMpLlxuIiwKKyAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyksCisgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9zdHJpbmcocGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfa2luZCh2aWV3KSkpOworICAgIH0KKworICAgIFBBU19URVNUSU5HX0FTU0VSVCghUEFTX1NF
R1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICBk
aXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHZpZXcpLCBlbGlnaWJsZSkp
OworICAgIAorICAgIHJldHVybiB2aWV3OwogfQogCiB0eXBlZGVmIHN0cnVjdCB7CisgICAgcGFz
X2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nOworICAgIHBhc19sb2NrX2hvbGRf
bW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlOworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
KiBteV9wYWdlX2NvbmZpZ19wdHI7CisgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVz
dWx0IHJlc3VsdDsKK30gdGFrZV9sYXN0X2VtcHR5X2RhdGE7CisKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB1bnNpZ25lZAordGFrZV9sYXN0X2VtcHR5X3Nob3VsZF9jb25zaWRlcl92aWV3X3Bh
cmFsbGVsKAorICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCBz
ZWdtZW50LAorICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29u
ZmlnKQoreworICAgIHRha2VfbGFzdF9lbXB0eV9kYXRhKiBkYXRhOworCisgICAgZGF0YSA9IGNv
bmZpZy0+YXJnOworCisgICAgcmV0dXJuIHNlZ21lbnQuZW1wdHlfYml0czsKK30KKworc3RhdGlj
IGJvb2wKK3Rha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKKworICAgIC8qIFdlIHB1dCBvdXIgdGFrZV9sYXN0X2VtcHR5IGxvZ2lj
IGluIGNvbnNpZGVyX3ZpZXcgYmVjYXVzZSBzaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbAor
ICAgICAgIGNhbm5vdCByZWFsbHkgdGVsbCBpZiBhIHBhZ2UgY2FuIGJlIHRha2VuLiAqLworCisg
ICAgdGFrZV9sYXN0X2VtcHR5X2RhdGEqIGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVf
ZGlyZWN0b3J5OworICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZzsK
KyAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZTsKKyAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyogbXlfcGFnZV9jb25maWdfcHRyOworICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnIG15X3BhZ2VfY29uZmlnOworICAgIHNpemVfdCBpbmRleDsKKyAgICBw
YXNfc2VncmVnYXRlZF92aWV3IGdlbmVyaWNfdmlldzsKKyAgICBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldyogdmlldzsKKyAgICBwYXNfbG9jayogaGVsZF9sb2NrOworICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2UqIHBhZ2U7CisgICAgYm9vbCBkaWRfdGFrZV9iaXQ7CisgICAgcGFzX2xvY2sq
IG93bmVyc2hpcF9sb2NrOworCisgICAgZGlyZWN0b3J5ID0gY29uZmlnLT5kaXJlY3Rvcnk7Cisg
ICAgaW5kZXggPSBjb25maWctPmluZGV4OworCisgICAgZGlkX3Rha2VfYml0ID0gUEFTX1NFR1JF
R0FURURfRElSRUNUT1JZX1NFVF9CSVQoZGlyZWN0b3J5LCBpbmRleCwgZW1wdHksIGZhbHNlKTsK
KyAgICAKKyAgICBpZiAoIWRpZF90YWtlX2JpdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgc2l6ZV9kaXJlY3RvcnkgPSAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqKWRpcmVj
dG9yeTsKKyAgICBnZW5lcmljX3ZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRp
cmVjdG9yeSwgaW5kZXgpOworICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19l
eGNsdXNpdmUoZ2VuZXJpY192aWV3KSk7CisgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X2V4Y2x1c2l2ZShnZW5lcmljX3ZpZXcpOworICAgIGhlbGRfbG9jayA9IE5VTEw7CisgICAg
ZGF0YSA9IGNvbmZpZy0+YXJnOworCisgICAgbXlfcGFnZV9jb25maWdfcHRyID0gZGF0YS0+bXlf
cGFnZV9jb25maWdfcHRyOworICAgIGhlYXBfbG9ja19ob2xkX21vZGUgPSBkYXRhLT5oZWFwX2xv
Y2tfaG9sZF9tb2RlOworICAgIGRlY29tbWl0X2xvZyA9IGRhdGEtPmRlY29tbWl0X2xvZzsKKyAg
ICBteV9wYWdlX2NvbmZpZyA9ICpteV9wYWdlX2NvbmZpZ19wdHI7CisgICAgCisgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgIHBhc19sb2coIiVwOiBjb25zaWRlcmluZyBlbXB0eSBpbmRleCAlenUs
IHZpZXcgPSAlcC5cbiIsIGRpcmVjdG9yeSwgaW5kZXgsIHZpZXcpOworCisgICAgaWYgKHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9jb25maWcpKQorICAgICAg
ICBvd25lcnNoaXBfbG9jayA9IHBhc19sb2NrX2Zvcl9zd2l0Y2hfY29uZGl0aW9uYWxseSgmcGFz
X2hlYXBfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgZWxzZQorICAgICAgICBvd25l
cnNoaXBfbG9jayA9ICZ2aWV3LT5vd25lcnNoaXBfbG9jazsKKworICAgIHBhc19sb2NrX3N3aXRj
aCgmaGVsZF9sb2NrLCBvd25lcnNoaXBfbG9jayk7CisgICAgCisgICAgaWYgKHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9jb25maWcpKQorICAgICAgICBwYXNf
aGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisgICAgCisgICAgaWYgKCF2aWV3LT5pc19vd25lZCkg
eworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coIm5vdCBvd25lZC5c
biIpOworICAgICAgICAKKyAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJu
X2ZhbHNlOworICAgIH0KKyAgICAKKyAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3Jf
Ym91bmRhcnkodmlldy0+cGFnZV9ib3VuZGFyeSwgbXlfcGFnZV9jb25maWcpOworICAgIAorICAg
IGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJleGNsdXNpdmUgbW9kZS5cbiIpOworICAg
IAorICAgIGlmICghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX1NFVF9CSVQoZGlyZWN0b3J5LCBp
bmRleCwgZWxpZ2libGUsIGZhbHNlKSkKKyAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19h
bmRfcmV0dXJuX2ZhbHNlOworICAgICAgICAKKyAgICBpZiAoIXZpZXctPmlzX293bmVkKSB7Cisg
ICAgICAgIGJvb2wgcmVzdWx0OworICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJl
Y3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgp
OworICAgICAgICBQQVNfQVNTRVJUKHJlc3VsdCk7CisgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxk
X2xvY2tfYW5kX3JldHVybl9mYWxzZTsKKyAgICB9CisgICAgCisgICAgLyogVGhlIGVtcHR5IGJp
dCBqdXN0IG1lYW5zIHRoYXQgdGhlIHBhZ2UgKmNvdWxkKiBiZSBlbXB0eS4gSXQncyBwb3NzaWJs
ZSB0byBjb21lIGhlcmUgYW5kIGZpbmQKKyAgICAgICBhIG5vbi1lbXB0eSBwYWdlLiBJbiB0aGF0
IGNhc2Ugd2UgbWFrZSB0aGUgcGFnZSBlbGlnaWJsZSBhZ2FpbiBidXQgbGVhdmUgdGhlIGVtcHR5
IGJpdCBjbGVhci4gKi8KKyAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zv
cl9kZWNvbW1pdChwYWdlLCBteV9wYWdlX2NvbmZpZykpIHsKKyAgICAgICAgaWYgKHZlcmJvc2Up
CisgICAgICAgICAgICBwYXNfbG9nKCJ3YXMgbm90IGVtcHR5LlxuIik7CisgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGly
ZWN0b3J5LCBpbmRleCk7CisgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVy
bl9mYWxzZTsKKyAgICB9CisgICAgCisgICAgLyogVGhpcyBoYXMgYSB2ZXJ5IHNob3J0IHJhY2Ug
dGhhdCBjYXVzZXMgdGhlIGRpcmVjdG9yeSB0byBwb3NzaWJseSB3YXN0ZSBtZW1vcnk6IGlmCisg
ICAgICAgZHVyaW5nIHRoaXMgYnJpZWYgd2luZG93IHdlIGhhdmUgc29tZW9uZSB0cnlpbmcgdG8g
ZmluZCBhbiBlbGlnaWJsZSBwYWdlLCB0aGV5IG1heQorICAgICAgIGVuZCB1cCBhbGxvY2F0aW5n
IGEgbmV3IG9uZS4KKyAgICAgICAKKyAgICAgICBCdXQgd2UgZGVsaWJlcmF0ZWx5IGtlZXAgdGhl
IGR1cmF0aW9uIG9mIHRoaXMgcmFjZSB3aW5kb3cgc2hvcnQuIFdlIG1ha2UgdGhlIHBhZ2UKKyAg
ICAgICBpbmVsaWdpYmxlIG9ubHkgZHVyaW5nIHRoZSB0aW1lIGl0IHRha2VzIHVzIHRvIGZpZ3Vy
ZSBvdXQgaG93IHRvIGRlY29tbWl0IGl0IGFuZCB0bworICAgICAgIGFjcXVpcmUgdGhlIGNvbW1p
dCBsb2NrLiBUaGUgY29tbWl0IGxvY2sgc2hvdWxkIGJlIHRyaXZpYWxseSBhdmFpbGFibGUgaGVy
ZSwgc28KKyAgICAgICB0aGF0J3MganVzdCBhIENBUy4gQWZ0ZXIgdGhhdCwgdGhlIHBhZ2UgaXMg
bWFkZSBlaXRoZXIgZWxpZ2libGUgb3IgZGVjb21taXR0ZWQuCisgICAgICAgRWl0aGVyIHdheSwg
aWYgaXQncyB0aGUgZmlyc3QgZWxpZ2libGUsIHNvbWVvbmUgd2lsbCB0cnkgdG8gdXNlIGl0LiBB
dCB0aGF0IHBvaW50LAorICAgICAgIGlmIHdlIGFyZSBub3QgZG9uZSwgdGhleSB3aWxsIHdhaXQg
Zm9yIHVzIHNpbmNlIHdlIGhvbGQgdGhlIGNvbW1pdCBsb2NrLiAqLworCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCBteV9wYWdlX2NvbmZpZyk7
CisKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdl
X2NvbmZpZykpIHsKKyAgICAgICAgLyogVGhlIHV0aWxpdHkgaGVhcCByZXF1aXJlcyB1cyB0byBo
b2xkIHRoZSBoZWFwIGxvY2sgYW55dGltZSB3ZSdkIGhvbGQgdGhlIG93bmVyc2hpcCwgY29tbWl0
LAorICAgICAgICAgICBvciBwYWdlIGxvY2tzLiBJdCBqdXN0IHNvIGhhcHBlbnMgdGhhdCB3ZSB3
ZXJlIGFscmVhZHkgaG9sZGluZyB0aGUgaGVhcCBsb2NrLCBhbmQKKyAgICAgICAgICAgcGFnZV9z
d2l0Y2hfbG9jayBkb2VzIG5vdGhpbmcgZm9yIHV0aWxpdHkuIFNvIHdlIHNob3VsZCBzdGlsbCBi
ZSBob2xkaW5nIHRoZSBoZWFwIGxvY2suICovCisgICAgICAgIFBBU19BU1NFUlQoaGVsZF9sb2Nr
ID09IHBhc19sb2NrX2Zvcl9zd2l0Y2hfY29uZGl0aW9uYWxseSgmcGFzX2hlYXBfbG9jaywgaGVh
cF9sb2NrX2hvbGRfbW9kZSkpOworICAgICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7
CisgICAgfQorCisgICAgUEFTX0FTU0VSVCghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9C
SVQoZGlyZWN0b3J5LCBpbmRleCwgZWxpZ2libGUpKTsKKworICAgIC8qIEl0J3MgdG90YWxseSBw
b3NzaWJsZSB0aGF0IHRoZSBlbXB0eSBiaXQgZ290IHNldCBhZ2Fpbi4gV2Ugc2hvdWxkIGNsZWFy
IGl0IGZvciBzdXJlIG5vdy4gKi8KKyAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfU0VUX0JJ
VChkaXJlY3RvcnksIGluZGV4LCBlbXB0eSwgZmFsc2UpOworCisgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdChwYWdlLCBteV9w
YWdlX2NvbmZpZykpOworICAgIAorICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19p
c191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSkgeworICAgICAgICBQQVNfQVNTRVJUKG15X3BhZ2Vf
Y29uZmlnLmJhc2UucGFnZV9zaXplID09IG15X3BhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXpl
KTsKKyAgICAgICAgCisgICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKworICAg
ICAgICB2aWV3LT5pc19vd25lZCA9IGZhbHNlOworICAgICAgICBpZiAodmVyYm9zZSkgeworICAg
ICAgICAgICAgcGFzX2xvZygidmlldyAlcCBoYXMgaXNfb3duZWQgPSBmYWxzZSBkdWUgdG8gdXRp
bGl0eSBkZWNvbW1pdCBpbiB0YWtlX2xhc3RfZW1wdHlcbiIsCisgICAgICAgICAgICAgICAgICAg
IHZpZXcpOworICAgICAgICB9CisgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdCgKKyAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfYm91bmRhcnkocGFnZSwgbXlfcGFnZV9jb25m
aWcpLAorICAgICAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUpOworICAgICAg
ICBkZWNvbW1pdF9sb2ctPnRvdGFsICs9IG15X3BhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplOwor
ICAgICAgICBteV9wYWdlX2NvbmZpZy5iYXNlLmRlc3Ryb3lfcGFnZV9oZWFkZXIoJnBhZ2UtPmJh
c2UsIHBhc19sb2NrX2lzX2hlbGQpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
dmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOworICAg
ICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisgICAgICAgIGRhdGEtPnJl
c3VsdCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3N1Y2Nlc3M7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKyAgICAKKyAgICBpZiAocGFnZS0+bnVtX25vbl9lbXB0eV93b3Jkcykg
eworICAgICAgICBib29sIGRlY29tbWl0X3Jlc3VsdDsKKyAgICAgICAgc2l6ZV90IG51bV9jb21t
aXR0ZWRfZ3JhbnVsZXM7CisgICAgICAgIAorICAgICAgICAvKiBObyBwYXJ0aWFsIGRlY29tbWl0
IGluIHRoZSB1dGlsaXR5IGhlYXAhICovCisgICAgICAgIFBBU19BU1NFUlQoIXBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9jb25maWcpKTsKKyAgICAgICAgCisg
ICAgICAgIC8qIFdlIGtub3cgdGhhdCB0aGVyZSBtdXN0IGJlIGVtcHR5IGdyYW51bGVzIGluIHRo
aXMgcGFnZSwgc2luY2UgZWl0aGVyIHRoZSBlbXB0eQorICAgICAgICAgICBvciB0aGUgcGFydGx5
X2VtcHR5IGJpdCB3YXMgc2V0LiBUaG9zZSBiaXRzIHdvdWxkbid0IGdldCBzZXQgdW5sZXNzIHdl
IG5vdGljZWQKKyAgICAgICAgICAgYW4gZW1wdHkgZ3JhbnVsZS4gSWYgd2UgZGlkIHRyeSB0byBh
bGxvY2F0ZSBmcm9tIHRob3NlIGdyYW51bGVzLCB3ZSB3b3VsZCBmaXJzdAorICAgICAgICAgICBo
YXZlIHRvIHRha2UgYXdheSBpdHMgZWxpZ2liaWxpdHkgYW5kIHRoZW4gY2xlYXIgaXRzIGVtcHR5
IGJpdHMuIEJ1dCB3ZSBrbm93IHRoYXQKKyAgICAgICAgICAgdGhpcyBjb3VsZCBub3QgaGF2ZSBo
YXBwZW5lZCBzaW5jZSAqd2UqIHRvb2sgYXdheSBpdHMgZWxpZ2liaWxpdHkuICovCisgICAgICAg
IAorICAgICAgICBkZWNvbW1pdF9yZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9wYWdlX3Rha2VfZW1w
dHlfZ3JhbnVsZXMoCisgICAgICAgICAgICBwYWdlLCBkZWNvbW1pdF9sb2csICZoZWxkX2xvY2ss
IHBhc19yYW5nZV9pc19ub3RfbG9ja2VkLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAg
CisgICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKKyAgICAgICAgCisg
ICAgICAgIG51bV9jb21taXR0ZWRfZ3JhbnVsZXMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2dldF9u
dW1fY29tbWl0dGVkX2dyYW51bGVzKHBhZ2UpOworICAgICAgICBQQVNfQVNTRVJUKG51bV9jb21t
aXR0ZWRfZ3JhbnVsZXMpOworICAgICAgICAKKyAgICAgICAgLyogVGhlIHBhZ2UgY2FuIGJlY29t
ZSBlbGlnaWJsZSBhZ2FpbiBub3cgdGhhdCB3ZSd2ZSBtYXJrZWQgdGhpbmdzIGZvciBkZWNvbW1p
dC4gKi8KKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9l
bGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgCisgICAgICAgIGlm
IChkZWNvbW1pdF9yZXN1bHQpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgICAgIHBhc19sb2coIiVwOiBkaWQgcGFydGx5IHRha2UgaW5kZXggJXp1XG4iLCBkaXJlY3Rv
cnksIGluZGV4KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRl
eCk7CisgICAgICAgICAgICBkYXRhLT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZV9sb2Nrc191bmF2YWlsYWJsZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgfSBlbHNlIHsKKyAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssICZ2aWV3
LT5vd25lcnNoaXBfbG9jayk7CisgICAgICAgIHZpZXctPmlzX293bmVkID0gZmFsc2U7CisgICAg
ICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBpc19v
d25lZCA9IGZhbHNlIGR1ZSB0byBub3JtYWwgZGVjb21taXQgaW4gdGFrZV9sYXN0X2VtcHR5XG4i
LAorICAgICAgICAgICAgICAgICAgICB2aWV3KTsKKyAgICAgICAgfQorICAgICAgICBwYXNfbG9j
a19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisgICAgICAgIAorICAgICAgICBpZiAoIXBhc19z
ZWdyZWdhdGVkX3BhZ2VfdGFrZV9waHlzaWNhbGx5KAorICAgICAgICAgICAgICAgIHBhZ2UsIGRl
Y29tbWl0X2xvZywgcGFzX3JhbmdlX2lzX25vdF9sb2NrZWQsIGhlYXBfbG9ja19ob2xkX21vZGUp
KSB7CisgICAgICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKSk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCAmdmlldy0+b3duZXJz
aGlwX2xvY2spOworICAgICAgICAgICAgdmlldy0+aXNfb3duZWQgPSB0cnVlOworICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBp
c19vd25lZCA9IHRydWUgZHVlIHRvIHVuZG8gb2YgZGVjb21taXQgaW4gdGFrZV9sYXN0X2VtcHR5
XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgdmlldyk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxp
Z2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KGRpcmVjdG9yeSwg
aW5kZXgpOworICAgICAgICAgICAgCisgICAgICAgICAgICBkYXRhLT5yZXN1bHQgPSBwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2xfdGFrZV9sb2Nrc191bmF2YWlsYWJsZTsKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAodmVyYm9zZSkgeworICAg
ICAgICAgICAgcGFzX2xvZygiJXA6IGRpZCBmdWxseSB0YWtlIGluZGV4ICV6dVxuIiwgZGlyZWN0
b3J5LCBpbmRleCk7CisgICAgICAgICAgICBwYXNfbG9nKCJEZXN0cm95aW5nIHBhZ2UgaGVhZGVy
IGZvciB2aWV3ID0gJXAsIHBhZ2UgPSAlcCwgYm91bmRhcnkgPSAlcCAoJXApICIKKyAgICAgICAg
ICAgICAgICAgICAgImFzIHBhcnQgb2YgZGVjb21taXQuXG4iLAorICAgICAgICAgICAgICAgICAg
ICB2aWV3LCBwYWdlLCBwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIG15X3BhZ2Vf
Y29uZmlnKSwKKyAgICAgICAgICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSk7CisgICAg
ICAgIH0KKyAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZw
YWdlLT5iYXNlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKworICAgICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwg
aW5kZXgpOworICAgIH0KKyAgICAKKyAgICBkYXRhLT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfdGFrZV9zdWNjZXNzOworICAgIHJldHVybiB0cnVlOworCityZWxlYXNlX2hlbGRfbG9j
a19hbmRfcmV0dXJuX2ZhbHNlOgorICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxM
KTsKKworICAgIC8qIFJldHVybmluZyBmYWxzZSBtZWFucyB0aGF0IHRoZSBiYWNrd2FyZHMgaXRl
cmF0aW9uIGtlZXBzIGdvaW5nIGFuZCB0aGlzIHNob3VsZCBnZXQgY2FsbGVkCisgICAgICAgYWdh
aW4gaWYgdGhlcmUgYXJlIGFueSBvdGhlciB2aWV3cyBtYXJrZWQgZW1wdHkuICovCisgICAgcmV0
dXJuIGZhbHNlOworfQorCitwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQKK3Bhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnksCisgICAgcGFzX2RlZmVycmVkX2Rl
Y29tbWl0X2xvZyogZGVjb21taXRfbG9nLAorICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xv
Y2tfaG9sZF9tb2RlKQoreworICAgIC8qIEJlIGNhcmVmdWw6IGhlYXBfbG9ja19ob2xkX21vZGUg
aGVyZSBjYW4gYmUgdW5yZWxhdGVkIHRvIHdoYXQgcGFnZV9jb25maWcgc2F5cywgc2luY2UKKyAg
ICAgICB3ZSBtYXkgYmUgYXNrZWQgYnkgdGhlIHBoeXNpY2FsIHBhZ2Ugc2hhcmluZyBwb29sIHRv
IGRlY29tbWl0IG9uIGJlaGFsZiBvZiBhbnkgb3RoZXIgaGVhcCwKKyAgICAgICBpbmNsdWRpbmcg
b25lcyB0aGF0IGhvbGQgdGhlIGhlYXAgbG9jayB3aGlsZSBkb2luZyBidXNpbmVzcy4gKi8KKwor
ICAgIHRha2VfbGFzdF9lbXB0eV9kYXRhIGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2l0ZXJhdGVfY29uZmlnIGNvbmZpZzsKKyAgICBib29sIGRpZF9maW5kX3NvbWV0aGluZzsK
ICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKworICAgIGRpcmVjdG9y
eSA9ICZzaXplX2RpcmVjdG9yeS0+YmFzZTsKKworICAgIFBBU19URVNUSU5HX0FTU0VSVChkaXJl
Y3RvcnktPnBhZ2VfY29uZmlnX2tpbmQgIT0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZF9udWxsKTsKKworICAgIGRhdGEuZGVjb21taXRfbG9nID0gZGVjb21taXRfbG9nOworICAgIGRh
dGEuaGVhcF9sb2NrX2hvbGRfbW9kZSA9IGhlYXBfbG9ja19ob2xkX21vZGU7CisgICAgZGF0YS5y
ZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZTsKKworICAg
IGRhdGEubXlfcGFnZV9jb25maWdfcHRyID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCk7CisKKyAgICBjb25maWcu
ZGlyZWN0b3J5ID0gZGlyZWN0b3J5OworICAgIGNvbmZpZy5zaG91bGRfY29uc2lkZXJfdmlld19w
YXJhbGxlbCA9IHRha2VfbGFzdF9lbXB0eV9zaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbDsK
KyAgICBjb25maWcuY29uc2lkZXJfdmlldyA9IHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3
OworICAgIGNvbmZpZy5hcmcgPSAmZGF0YTsKKworICAgIGRpZF9maW5kX3NvbWV0aGluZyA9Cisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2JhY2t3YXJkX3RvX3Rha2Vf
bGFzdF9lbXB0eSgmY29uZmlnKTsKKworICAgIGlmICghZGlkX2ZpbmRfc29tZXRoaW5nKQorICAg
ICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFibGU7CisK
KyAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19kb2luZ19zaGFyaW5n
KGRpcmVjdG9yeSkpOworICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9kaWRfY3JlYXRlX2RlbHRh
KAorICAgICAgICAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sLAorICAgICAgICBwYXNf
cGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKKyAgICAgICAgICAgIGRpcmVjdG9yeSwK
KyAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZF9zZWxlY3RfZm9y
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KAorICAgICAgICAgICAgICAgIGRpcmVjdG9yeS0+ZGlyZWN0
b3J5X2tpbmQpKSk7CisgICAgCisgICAgcmV0dXJuIGRhdGEucmVzdWx0OworfQorCitwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9y
X29iamVjdCgKKyAgICB1aW50cHRyX3QgYmVnaW4sCisgICAgcGFzX2hlYXBfY29uZmlnKiBjb25m
aWcpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OworICAgIHZpZXcgPSBwYXNfc2Vn
cmVnYXRlZF92aWV3X2Zvcl9vYmplY3QoYmVnaW4sIGNvbmZpZyk7CisgICAgaWYgKHZpZXcpCisg
ICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3
KTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQK
K3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMoCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBzaXplX3Qg
Y291bnQsCisgICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAorICAg
IHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAorICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCit7
CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgdGxjX3Jlc3VsdDsKKyAgICB1bnNpZ25l
ZCBiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXg7CisKKyAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkpOworICAgIFBB
U19BU1NFUlQoIXBhc19oZWFwX2NvbmZpZ19pc191dGlsaXR5KGNvbmZpZykpOworICAgIAorICAg
IHBhc19oZWFwX2xvY2tfbG9jaygpOworICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2Fs
bG9jYXRvcl9pbmRleCgKKyAgICAgICAgZGlyZWN0b3J5LT5oZWFwLAorICAgICAgICBkaXJlY3Rv
cnksCisgICAgICAgIGNvdW50LAorICAgICAgICBjb3VudF9sb29rdXBfbW9kZSwKKyAgICAgICAg
Y29uZmlnLAorICAgICAgICBjYWNoZWRfaW5kZXgpOworICAgIHBhc19oZWFwX2xvY2tfdW5sb2Nr
KCk7CisKKyAgICAvKiBDdXJyZW50bHkgYXMgc29vbiBhcyB3ZSBzd2l0Y2ggdG8gVExDIGFsbG9j
YXRvcnMsIHdlIGNhbm5vdCBwb3NzaWJseSBoYXZlIGEgYmFzZWxpbmUKKyAgICAgICBhbGxvY2F0
b3IuIEJ1dCBpZiB3ZSBkbywgd2Ugc2hvdWxkIHN0b3AgaXQgbm93LiAqLworICAgIGJhc2VsaW5l
X2FsbG9jYXRvcl9pbmRleCA9IGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4Owor
ICAgIGlmIChiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPCBQQVNfTlVNX0JBU0VMSU5FX0FMTE9D
QVRPUlMpIHsKKyAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogYmFzZWxpbmVfYWxsb2Nh
dG9yOworICAgICAgICAKKyAgICAgICAgYmFzZWxpbmVfYWxsb2NhdG9yID0gcGFzX2Jhc2VsaW5l
X2FsbG9jYXRvcl90YWJsZSArIGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKKyAgICAgICAgCisg
ICAgICAgIHBhc19sb2NrX2xvY2soJmJhc2VsaW5lX2FsbG9jYXRvci0+bG9jayk7CisKKyAgICAg
ICAgLyogSXQncyBwb3NzaWJsZSB0aGF0IGR1ZSB0byBhIHJhY2UsIHRoZSBkaXJlY3RvcnkncyBp
bmRleCBoYXMgYmVlbiByZWFzc2lnbmVkIHRvIHNvbWV0aGluZworICAgICAgICAgICBlbHNlLiBB
dCB3b3JzdCwgdGhhdCByYWNlIHdpbGwgbWVhbiB0aGF0IHNvbWUgYmFzZWxpbmUgYWxsb2NhdG9y
IHdpbGwgYmUgdXNlZCBmb3IKKyAgICAgICAgICAgYWxsb2NhdGlvbi4gVGhlcmUncyBub3QgYSB3
aG9sZSBsb3Qgd2UgY2FuIGRvIGFib3V0IHRoYXQuIEF0IHdvcnN0LCBpdCBtZWFucyBsZXR0aW5n
IHRoZQorICAgICAgICAgICBoaWdoIHdhdGVybWFyayBncm93IGEgYml0IGluIGNhc2Ugb2YgYSB3
ZWlyZCByYWNlLiAqLworICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3Jf
aW5kZXggPT0gYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4KSB7CisgICAgICAgICAgICBwYXNfYmFz
ZWxpbmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlY3RvcnkoYmFzZWxpbmVfYWxsb2NhdG9yKTsKKyAg
ICAgICAgICAgIHBhc19mZW5jZSgpOworICAgICAgICAgICAgZGlyZWN0b3J5LT5iYXNlbGluZV9h
bGxvY2F0b3JfaW5kZXggPSAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBwYXNfbG9ja191bmxvY2soJmJhc2VsaW5lX2FsbG9jYXRv
ci0+bG9jayk7CisgICAgfQorICAgIAorICAgIHRsY19yZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfZ2V0KGNvbmZpZyksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRleCwK
KyAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworICAgIAorICAgIFBBU19BU1NFUlQodGxj
X3Jlc3VsdC5kaWRfc3VjY2VlZCk7CisKKyAgICByZXR1cm4gcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
cl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3ModGxjX3Jlc3VsdC5hbGxvY2F0b3IsIE5VTEwpOworfQor
CitwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NvbXB1dGVf
c3VtbWFyeV9mb3JfdW5vd25lZF9leGNsdXNpdmUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhKiBkYXRhOworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmln
OworICAgIHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0OworICAgIHNpemVfdCBwYXlsb2FkX3NpemU7
CisKKyAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kICE9IHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7CisKKyAgICBkYXRhID0gcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsK
KyAgICBwYWdlX2NvbmZpZyA9ICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9j
b25maWcoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOworICAgIAorICAgIHJlc3Vs
dCA9IHBhc19oZWFwX3N1bW1hcnlfY3JlYXRlX2VtcHR5KCk7CisgICAgCisgICAgcGF5bG9hZF9z
aXplID0gKGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2Jq
ZWN0IC0KKyAgICAgICAgICAgICAgICAgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFy
eV90b19maXJzdF9vYmplY3QpOworICAgIAorICAgIHJlc3VsdC5kZWNvbW1pdHRlZCArPSBwYWdl
X2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsKKyAgICByZXN1bHQuZnJlZSArPSBwYXlsb2FkX3NpemU7
CisgICAgcmVzdWx0LmZyZWVfZGVjb21taXR0ZWQgKz0gcGF5bG9hZF9zaXplOworICAgIAorICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNrOwogICAgIHZvaWQq
IGFyZzsKIH0gZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGF0YTsKQEAgLTY4LDE0ICs5NzIsMTMgQEAg
c3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0XwogCiAgICAgZGF0YSA9IGFy
ZzsKIAotICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2ds
b2JhbChkYXRhLT5kaXJlY3RvcnkpLT5vYmplY3Rfc2l6ZQotICAgICAgICAgICAgICAgPT0gcGFz
X3JhbmdlX3NpemUocmFuZ2UpKTsKKyAgICBQQVNfQVNTRVJUKGRhdGEtPmRpcmVjdG9yeS0+b2Jq
ZWN0X3NpemUgPT0gcGFzX3JhbmdlX3NpemUocmFuZ2UpKTsKIAogICAgIHJldHVybiBkYXRhLT5j
YWxsYmFjayhkYXRhLT5kaXJlY3RvcnksIHZpZXcsIHJhbmdlLmJlZ2luLCBkYXRhLT5hcmcpOwog
fQogCiBib29sIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2Jq
ZWN0KAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3RfY2FsbGJhY2sgY2FsbGJhY2ssCiAg
ICAgdm9pZCogYXJnKQogewpAQCAtODgsMTAgKzk5MSwxMCBAQCBib29sIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2Zvcl9lCiAKICAgICAvKiBUaGUgY29vbCB0aGluZyBhYm91dCB0aGlz
IGxvb3AgaXMgdGhhdCBpbiBjYXNlIG9mIHJhY2VzIGl0J2xsIHRlbmQgdG8gZ28gY2hlY2sgb3V0
CiAgICAgICAgbW9yZSB2aWV3LiAqLwotICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeSk7ICsraW5kZXgpIHsKKyAgICBmb3Ig
KGluZGV4ID0gMDsgaW5kZXggPCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0
b3J5LT5iYXNlKTsgKytpbmRleCkgewogICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7
CiAKLSAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5
LCBpbmRleCk7CisgICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZk
aXJlY3RvcnktPmJhc2UsIGluZGV4KTsKICAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3
X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KAogICAgICAgICAgICAgICAgIHZpZXcsIGZvcl9lYWNoX2xp
dmVfb2JqZWN0X29iamVjdF9jYWxsYmFjaywgJmRhdGEsIHBhc19sb2NrX2lzX25vdF9oZWxkKSkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwMCwxNSArMTAwMyw2MSBAQCBib29sIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9lCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX29iamVjdCgKLSAgICB1aW50cHRyX3QgYmVnaW4sCi0gICAgcGFzX2hlYXBfY29uZmlnKiBj
b25maWcpCit1aW50OF90IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfY2FjaGVf
Y2FwYWNpdHkocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKLSAg
ICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0gICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZm9yX29iamVjdChiZWdpbiwgY29uZmlnKTsKLSAgICBpZiAodmlldykKLSAgICAgICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpOwotICAgIHJl
dHVybiBOVUxMOworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQga2luZDsKKyAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogY29uZmlnOworCisgICAga2luZCA9IGRpcmVj
dG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOworCisgICAgaWYgKGtpbmQgPT0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZF9udWxsKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNv
bmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhraW5kKTsK
KyAgICBpZiAoIWNvbmZpZy0+ZW5hYmxlX3ZpZXdfY2FjaGUpCisgICAgICAgIHJldHVybiAwOwor
ICAgIAorICAgIHJldHVybiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ192aWV3X2NhY2hlX2NhcGFj
aXR5X2Zvcl9vYmplY3Rfc2l6ZSgKKyAgICAgICAgZGlyZWN0b3J5LT5oZWFwLT5ydW50aW1lX2Nv
bmZpZywgZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSwgY29uZmlnKTsKK30KKworc2l6ZV90IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKAorICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfa2luZCBraW5kOworCisgICAga2luZCA9IGRpcmVjdG9yeS0+YmFzZS5w
YWdlX2NvbmZpZ19raW5kOworCisgICAgaWYgKGtpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZF9udWxsKQorICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX251bGxfY29uZmlnKCk7CisgICAgCisgICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXpl
X2Zvcl9jb25maWcoCisgICAgICAgICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dl
dF9jb25maWcoa2luZCkpOworfQorCitwYXNfYWxsb2NhdG9yX2luZGV4IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlcygKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2FsbG9jYXRvcl9zaXpl
KAorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jf
c2l6ZShkaXJlY3RvcnkpKTsKK30KKwordm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kdW1wX3JlZmVyZW5jZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0pCit7CisgICAgcGFzX3N0cmVhbV9wcmludGYoCisg
ICAgICAgIHN0cmVhbSwKKyAgICAgICAgIiVwKHNlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnksICV1
LCAlcCwgJXMpIiwKKyAgICAgICAgZGlyZWN0b3J5LAorICAgICAgICBkaXJlY3RvcnktPm9iamVj
dF9zaXplLAorICAgICAgICBkaXJlY3RvcnktPmhlYXAsCisgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdf
a2luZCkpOworfQorCit2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9y
X3NwZWN0cnVtKAorICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGlyZWN0b3J5KQorewor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKGRpcmVjdG9y
eSwgc3RyZWFtKTsKIH0KIAogI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDM0ICsyNywxOTAgQEAKICNkZWZpbmUgUEFTX1NFR1JFR0FU
RURfU0laRV9ESVJFQ1RPUllfSAogCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgor
I2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIuaCIKKyNp
bmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmgiCisjaW5j
bHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgi
CisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZS5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2Nv
dW50X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCIK
ICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnLmgiCisj
aW5jbHVkZSAicGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCIKICNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jcmVhdGlvbl9tb2RlLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotUEFTX0FQSSBl
eHRlcm4gYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZzsKK3N0
cnVjdCBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhOworc3RydWN0
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2RhdGE7Cit0eXBlZGVmIHN0cnVjdCBwYXNfZXh0ZW5kZWRfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kYXRhIHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RhdGE7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9k
YXRhIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGE7Cit0eXBlZGVmIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YTsKKworUEFTX0RFRklORV9DT01QQUNUX0FU
T01JQ19QVFIocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRy
KTsKKworc3RydWN0IFBBU19BTElHTkVEKHNpemVvZihwYXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgeworICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eSBiYXNlOworICAgIAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXA7CisKKyAgICB1bnNp
Z25lZCBvYmplY3Rfc2l6ZSA6IDI3OworICAgIHVuc2lnbmVkIGFsaWdubWVudF9zaGlmdCA6IDU7
CisKKyAgICAvKiBUaGlzIGhhcyBhIGZ1bm55IGVuY29kaW5nIChsZXQgTiA9IFBBU19OVU1fQkFT
RUxJTkVfQUxMT0NBVE9SUyk6CisgICAgICAgCisgICAgICAgaW5kZXggaW4gWzAsIE4pICAgICA9
PiBhdHRhY2hlZCB0byBpbmRleAorICAgICAgIGluZGV4IGluIFtOLCAyTikgICAgPT4gYXR0YWNo
aW5nIHRvIGluZGV4IC0gTgorICAgICAgIDJOICAgICAgICAgICAgICAgICAgPT4gZGV0YWNoZWQK
KyAgICAgICAKKyAgICAgICBJbiB0aGUgZGV0YWNoZWQgc3RhdGUsIHRoZSBvbmx5IHdheSB0byBj
aGFuZ2UgdGhpcyBpcyB0byBDQVMgaXQuCisgICAgICAgCisgICAgICAgSW4gdGhlIGF0dGFjaGVk
IGFuZCBhdHRhY2hpbmcgc3RhdGVzLCB0aGUgY29ycmVzcG9uZGluZyBpbmRleCdzIGxvY2sgcHJv
dGVjdHMgdGhpcyBmaWVsZC4gKi8KKyAgICB1aW50MTZfdCBiYXNlbGluZV9hbGxvY2F0b3JfaW5k
ZXg7CisKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4IHZpZXdfY2FjaGVfaW5kZXg7IC8qIFRoaXMg
Y291bGQgYmUgaW4gdGhlIHNpemVfZGlyZWN0b3J5X2RhdGEgYnV0IHdlIHB1dCBpdCBoZXJlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWNhdXNlIGl0IHRh
a2VzIGxlc3Mgc3BhY2UgdG8gcHV0IGl0IGhlcmUuICovCisgICAgCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHIgZGF0YTsKKyAgICBwYXNfY29tcGFjdF9hdG9taWNf
Yml0Zml0X3NpemVfY2xhc3NfcHRyIGJpdGZpdF9zaXplX2NsYXNzOworCisgICAgLyogVGhlIG93
bmluZyBzZWdyZWdhdGVkIGhlYXAgaG9sZHMgdGhlc2UgaW4gYSBzaW5nbHkgbGlua2VkIGxpc3Qu
ICovCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
IG5leHRfZm9yX2hlYXA7Cit9OworCitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSB7CisgICAgdW5zaWduZWQgb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJz
dF9vYmplY3Q7IC8qIENhY2hlZCB0byBtYWtlIHJlZmlsbCBmYXN0LiAqLworICAgIHVuc2lnbmVk
IG9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0OyAvKiBDYWNo
ZWQgdG8gbWFrZSByZWZpbGwgZmFzdC4gKi8KKyAgICAKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4
IGFsbG9jYXRvcl9pbmRleDsKKyAgICAKKyAgICB1aW50OF90IGZ1bGxfbnVtX25vbl9lbXB0eV93
b3JkczsKKworICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIgZnVsbF9hbGxvY19i
aXRzOyAvKiBQcmVjb21wdXRlZCBhbGxvYyBiaXRzIGluIHRoZSBjYXNlIHRoYXQgYSBwYWdlIGlz
IGVtcHR5LiAqLworICAgIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbmV4dF9mb3JfbGF5b3V0OworfTsKKworc3RydWN0IHBhc19leHRlbmRlZF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEgeworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2RhdGEgYmFzZTsKKyAgICBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3Vz
ZV9jb3VudF9wdHIgZnVsbF91c2VfY291bnRzOworfTsKKworc3RhdGljIGlubGluZSBwYXNfc2Vn
cmVnYXRlZF92aWV3CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hc192aWV3KHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcmV0dXJuIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfY3JlYXRlKGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3Rvcnlfdmlld19raW5kKTsKK30KKworc3RhdGljIGlubGluZSBzaXplX3QKK3Bhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQoreworICAgIHJldHVybiAoc2l6ZV90KTEgPDwgKHNpemVfdClkaXJlY3Rv
cnktPmFsaWdubWVudF9zaGlmdDsKK30KKworUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlKAorICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgdW5zaWduZWQgb2JqZWN0X3NpemUsCisgICAgdW5z
aWduZWQgYWxpZ25tZW50LAorICAgIHBhc19oZWFwX2NvbmZpZyogaGVhcF9jb25maWcsCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnLAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUgY3JlYXRpb25fbW9kZSk7CisKK1BBU19B
UEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9maW5pc2hfY3JlYXRpb24ocGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kaWRfdHJ5X3RvX2NyZWF0ZV92aWV3
X2NhY2hlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7
CisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfbWlzY19iaXQoJmRpcmVj
dG9yeS0+YmFzZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9zZXRfZGlkX3RyeV90b19jcmVhdGVfdmlld19jYWNoZSgKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIGJvb2wgdmFsdWUpCit7Cisg
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zZXRfbWlzY19iaXQoJmRpcmVjdG9y
eS0+YmFzZSwgdmFsdWUpOworfQorCitQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RhdGEqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKAorICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2xvY2tf
aG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOworCitQQVNfQVBJIHBhc19leHRlbmRlZF9z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KTsKKworLyogQ2FsbCB3aXRoIGhlYXAgbG9jayBoZWxkLiAqLworUEFTX0FQ
SSB2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9y
KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitzdGF0
aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxv
Y2F0b3IoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOworICAgIGRhdGEg
PSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3Rvcnkt
PmRhdGEpOworICAgIHJldHVybiBkYXRhICYmIGRhdGEtPmFsbG9jYXRvcl9pbmRleCAhPSAocGFz
X2FsbG9jYXRvcl9pbmRleClVSU5UX01BWDsKK30KKworLyogQ2FsbCB3aXRoIGhlYXAgbG9jayBo
ZWxkLiAqLworUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0
ZV90bGNfdmlld19jYWNoZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5KTsKKworLyogQ2FsbCB3aXRoIGhlYXAgbG9jayBoZWxkLiAqLworUEFTX0FQSSB2b2lk
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2VuYWJsZV9leGNsdXNpdmVfdmlld3MoCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hcmVfZXhjbHVzaXZlX3Zp
ZXdzX2VuYWJsZWQoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSkKK3sKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOworICAg
IGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJl
Y3RvcnktPmRhdGEpOworICAgIHJldHVybiBkYXRhICYmIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0
eV93b3JkczsKK30KKworUEFTX0FQSSBwYXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK1BBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19w
b29sX3Rha2VfcmVzdWx0CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2xhc3Rf
ZW1wdHkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAg
ICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBsb2csCisgICAgcGFzX2xvY2tfaG9sZF9tb2Rl
IGhlYXBfbG9ja19ob2xkX21vZGUpOwogCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfY29uc3RydWN0KAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGly
ZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFnZV9jb25maWdf
a2luZCwKLSAgICBwYXNfcGFnZV9zaGFyaW5nX21vZGUgcGFnZV9zaGFyaW5nX21vZGUsCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQga2luZCk7CitQQVNfQVBJIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2Jq
ZWN0KAorICAgIHVpbnRwdHJfdCBiZWdpbiwKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZyk7
CisKKy8qIFRoaXMgYXNzdW1lcyB0aGF0IHdlIGFscmVhZHkgaGF2ZSBhIGRhdGEuIFRoYXQncyBh
IHZhbGlkIGFzc3VtcHRpb24gaWYgd2UgaGF2ZSBleGNsdXNpdmVzLiAqLworUEFTX0FQSSBwYXNf
aGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFy
eV9mb3JfdW5vd25lZF9leGNsdXNpdmUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSk7CiAKIHR5cGVkZWYgYm9vbCAoKnBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrKSgKLSAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICB1aW50cHRy
X3QgYmVnaW4sCiAgICAgdm9pZCogYXJnKTsKIAogUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KAotICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hf
bGl2ZV9vYmplY3RfY2FsbGJhY2sgY2FsbGJhY2ssCiAgICAgdm9pZCogYXJnKTsKIAotUEFTX0FQ
SSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2Zvcl9vYmplY3QoCi0gICAgdWludHB0cl90IGJlZ2luLAotICAgIHBhc19oZWFwX2NvbmZpZyog
Y29uZmlnKTsKK1BBU19BUEkgdWludDhfdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92
aWV3X2NhY2hlX2NhcGFjaXR5KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpOworCitQQVNfQVBJIHNpemVfdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KTsKKworUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlcygKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworUEFTX0FQSSB2b2lkIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKAorICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHBhc19zdHJlYW0qIHN0cmVhbSk7CisKK1BBU19B
UEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSgK
KyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQqIGRpcmVjdG9yeSk7CiAKIFBBU19FTkRfRVhU
RVJOX0M7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jcmVhdGlvbl9tb2RlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVD
VE9SWV9DUkVBVElPTl9NT0RFX0gKKyNkZWZpbmUgUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RP
UllfQ1JFQVRJT05fTU9ERV9ICisKKyNpbmNsdWRlICJwYXNfdXRpbHMuaCIKKworUEFTX0JFR0lO
X0VYVEVSTl9DOworCitlbnVtIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9u
X21vZGUgeworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2luaXRpYWxfY3JlYXRp
b25fbW9kZSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mdWxsX2NyZWF0aW9u
X21vZGUKK307CisKK3R5cGVkZWYgZW51bSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9j
cmVhdGlvbl9tb2RlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGU7
CisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfY3JlYXRpb25fbW9kZV9nZXRfc3RyaW5nKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2NyZWF0aW9uX21vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2luaXRpYWxfY3JlYXRpb25fbW9kZToK
KyAgICAgICAgcmV0dXJuICJpbml0aWFsIjsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2Z1bGxfY3JlYXRpb25fbW9kZToKKyAgICAgICAgcmV0dXJuICJmdWxsIjsKKyAg
ICB9CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVy
biBOVUxMOworfQorCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX1NFR1JFR0FU
RURfU0laRV9ESVJFQ1RPUllfQ1JFQVRJT05fTU9ERV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNDYgKzIzLDEzMSBAQAogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCiAgKi8KIAotI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9S
WV9JTkxJTkVTX0gKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfSU5MSU5F
U19ICisjaWZuZGVmIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9JTkxJTkVT
X0gKKyNkZWZpbmUgUEFTX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX0lOTElORVNf
SAogCiAjaW5jbHVkZSAicGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQuaCIKICNpbmNsdWRl
ICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmgiCiAjaW5jbHVkZSAicGFzX2NvdW50X2xv
b2t1cF9tb2RlLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnku
aCIKKyNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCiAj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkCi1wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90
YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfbm90X3RhYmxlZF9w
YXJhbGxlbCgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQg
c2VnbWVudCwKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcqIGNv
bmZpZykKK1BBU19BUEkgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQKK3Bhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMoCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBzaXplX3QgY291bnQsCisgICAg
cGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAorICAgIHBhc19oZWFwX2Nv
bmZpZyogY29uZmlnLAorICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpOworCitQQVNfQVBJIHBh
c19iYXNlbGluZV9hbGxvY2F0b3IqCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZWxl
Y3RfYWxsb2NhdG9yX3Nsb3coCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSk7CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3Jlc3VsdAorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRv
cigKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHNp
emVfdCBjb3VudCwKKyAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUs
CisgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCisgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRl
eCkKIHsKLSAgICBQQVNfVU5VU0VEX1BBUkFNKGNvbmZpZyk7CisgICAgaWYgKHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkKKyAgICAgICAg
JiYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpIHx8IHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfY2FuX3NldCgpKSkgeworICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZ2V0X2FsbG9jYXRvcl9mcm9tX3RsYygKKyAgICAgICAgICAgIGRpcmVjdG9yeSwg
Y291bnQsIGNvdW50X2xvb2t1cF9tb2RlLCBjb25maWcsIGNhY2hlZF9pbmRleCk7CisgICAgfQor
CisgICAgZm9yICg7OykgeworICAgICAgICB1bnNpZ25lZCBpbmRleDsKKyAgICAgICAgcGFzX2Jh
c2VsaW5lX2FsbG9jYXRvciogYWxsb2NhdG9yOworCisgICAgICAgIGluZGV4ID0gZGlyZWN0b3J5
LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXg7CisgICAgICAgIGlmIChpbmRleCA+PSBQQVNfTlVN
X0JBU0VMSU5FX0FMTE9DQVRPUlMpCisgICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yX3Nsb3coZGlyZWN0b3J5KTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3RhYmxlICsgaW5kZXg7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBhc19sb2NrX2xv
Y2soJmFsbG9jYXRvci0+bG9jayk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChkaXJl
Y3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCAhPSBpbmRleCkgeworICAgICAgICAgICAg
ICAgIHBhc19sb2NrX3VubG9jaygmYWxsb2NhdG9yLT5sb2NrKTsKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFBBU19BU1NFUlQo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT51LmFsbG9j
YXRvci52aWV3KSA9PSBkaXJlY3RvcnkpOworCisgICAgICAgIHJldHVybiBwYXNfYmFzZWxpbmVf
YWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcygKKyAgICAgICAgICAgICZhbGxvY2F0b3It
PnUuYWxsb2NhdG9yLCAmYWxsb2NhdG9yLT5sb2NrKTsKKyAgICB9Cit9CisKK3N0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBzaXplX3QKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2Fs
X2FsbG9jYXRvcl9zaXplX2Zvcl9udWxsX2NvbmZpZyh2b2lkKQoreworICAgIHJldHVybiBQQVNf
TE9DQUxfQUxMT0NBVE9SX1NJWkUoMCk7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBz
aXplX3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVf
Zm9yX2NvbmZpZygKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBjb25maWcpCit7Cisg
ICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVkKTsKKyAgICByZXR1cm4gUEFTX0xP
Q0FMX0FMTE9DQVRPUl9TSVpFKGNvbmZpZy5udW1fYWxsb2NfYml0cyk7Cit9CisKK3N0YXRpYyBp
bmxpbmUgcGFzX2FsbG9jYXRvcl9pbmRleAorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
bnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9hbGxvY2F0b3Jfc2l6ZShzaXplX3Qgc2l6ZSkKK3sK
KyAgICBwYXNfYWxsb2NhdG9yX2luZGV4IHJlc3VsdDsKKworICAgIHJlc3VsdCA9IChwYXNfYWxs
b2NhdG9yX2luZGV4KShzaXplIC8gOCk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKChzaXplX3Qp
cmVzdWx0ICogOCA9PSBzaXplKTsKICAgICAKLSAgICByZXR1cm4gc2VnbWVudC5lbGlnaWJsZV9i
aXRzICYgfnNlZ21lbnQudGFibGVkX2JpdHM7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0b3JfaW5kZXgKK3Bhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfY29uZmlnKAorICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZykKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgc2l6ZV90IHNpemU7CisKKyAgICBQQVNfQVNT
RVJUKGNvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOworICAgIAorICAgIHNpemUgPSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfY29uZmlnKGNvbmZp
Zyk7CisKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAgICBwYXNfbG9nKAorICAgICAgICAgICAg
ImtpbmQgPSAlcywgc2l6ZSA9ICV6dS5cbiIsCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoY29uZmlnLmtpbmQpLAorICAgICAgICAgICAgc2l6
ZSk7CisgICAgfQorCisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X251
bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxsb2NhdG9yX3NpemUoc2l6ZSk7CiB9CiAKIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB1bnNpZ25lZAotcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3X3RhYmxlZF9w
YXJhbGxlbCgKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2li
bGVfaW1wbF9zaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbCgKICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQgc2VnbWVudCwKICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcqIGNvbmZpZykKIHsKICAgICBQQVNfVU5VU0VEX1BB
UkFNKGNvbmZpZyk7CiAgICAgCi0gICAgcmV0dXJuIHNlZ21lbnQuZWxpZ2libGVfYml0cyAmIHNl
Z21lbnQudGFibGVkX2JpdHM7CisgICAgcmV0dXJuIHNlZ21lbnQuZWxpZ2libGVfYml0czsKIH0K
IAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3ZpZXcKIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbCgKICAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXRlcmF0ZV9jb25maWcqIGNvbmZpZywKLSAgICB2b2lkICgqbG9vcF9oZWFkX2NhbGxi
YWNrKShwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSksCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlldyAoKmNyZWF0ZV9uZXdfdmlld19jYWxsYmFjaykoCiAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKSkKIHsKQEAgLTg1LDExMSAr
MTcwLDUwIEBAIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3QKICAgICAg
ICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCIlcDogQXQgdG9wIG9mIHRha2Vf
Zmlyc3RfZWxpZ2libGVfaW1wbCBsb29wLlxuIiwgZGlyZWN0b3J5KTsKICAgICAgICAgCi0gICAg
ICAgIGxvb3BfaGVhZF9jYWxsYmFjayhkaXJlY3RvcnkpOwotICAgICAgICAKICAgICAgICAgY29u
ZmlnLT5kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7CiAgICAgICAgIGNvbmZpZy0+c2hvdWxkX2NvbnNp
ZGVyX3ZpZXdfcGFyYWxsZWwgPQotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3X25vdF90
YWJsZWRfcGFyYWxsZWw7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWw7
CiAgICAgICAgIGNvbmZpZy0+Y29uc2lkZXJfdmlldyA9IE5VTEw7CiAgICAgICAgIGNvbmZpZy0+
YXJnID0gTlVMTDsKIAotICAgICAgICBkaWRfZmluZF9zb21ldGhpbmcgPSBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkX3RvX3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAg
ICAgICAgICBjb25maWcsIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9i
dXRfbm90X3RhYmxlZF9raW5kKTsKKyAgICAgICAgZGlkX2ZpbmRfc29tZXRoaW5nID0gcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZF90b190YWtlX2ZpcnN0X2VsaWdpYmxl
KGNvbmZpZyk7CiAKICAgICAgICAgaWYgKGRpZF9maW5kX3NvbWV0aGluZykgewogICAgICAgICAg
ICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5LCBjb25maWct
PmluZGV4KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAg
ICAgICAgICAgICBwYXNfbG9nKCJBdCBpbmRleCAlenU6IFRha2luZyBleGlzdGluZyB2aWV3ICVw
IChub3QgdGFibGVkKS5cbiIsCisgICAgICAgICAgICAgICAgcGFzX2xvZygiQXQgaW5kZXggJXp1
OiBUYWtpbmcgZXhpc3RpbmcgdmlldyAlcC5cbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAo
c2l6ZV90KWNvbmZpZy0+aW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9wdHIodmlldykpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoY29uZmlnLT5zZWdtZW50LmVsaWdpYmxlX2Jp
dHMgJiBjb25maWctPmJpdF9yZWZlcmVuY2UubWFzayk7Ci0gICAgICAgICAgICBQQVNfVEVTVElO
R19BU1NFUlQoIShjb25maWctPnNlZ21lbnQudGFibGVkX2JpdHMgJiBjb25maWctPmJpdF9yZWZl
cmVuY2UubWFzaykpOwogCiAgICAgICAgICAgICBpZiAoUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X0JJVF9SRUZFUkVOQ0VfU0VUKAogICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGNvbmZp
Zy0+Yml0X3JlZmVyZW5jZSwgZWxpZ2libGUsIGZhbHNlKSkgewogICAgICAgICAgICAgICAgIGlm
ICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJEaWQgdGFrZSBmaXJzdCBl
bGlnaWJsZS5cbiIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmICghcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3RhYmxpbmcpCi0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmICghcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19zaG91bGRfdGFibGUodmlldywgcGFnZV9jb25maWdfcHRyKSkKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvZygiVGFibGluZy5cbiIpOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRfUkVGRVJFTkNF
X1NFVCgKLSAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBjb25maWctPmJpdF9yZWZlcmVu
Y2UsIHRhYmxlZCwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgUEFTX1NFR1JFR0FURURfRElSRUNU
T1JZX0JJVF9SRUZFUkVOQ0VfU0VUKAotICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGNv
bmZpZy0+Yml0X3JlZmVyZW5jZSwgZWxpZ2libGUsIHRydWUpOwotICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9taW5pbWl6ZV9maXJzdF9lbGlnaWJsZSgKLSAgICAgICAg
ICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxp
Z2libGVfYW5kX3RhYmxlZF9raW5kLCBjb25maWctPmluZGV4KTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHNpemVf
dCBub3RfdGFibGVkX2luZGV4OwotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJEaWRuJ3QgZmluZCBhbnl0aGluZywgc2VhcmNoaW5nIHRhYmxlZC5c
biIpOwotCi0gICAgICAgICAgICBub3RfdGFibGVkX2luZGV4ID0gY29uZmlnLT5pbmRleDsKLQot
ICAgICAgICAgICAgY29uZmlnLT5kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7Ci0gICAgICAgICAgICBj
b25maWctPnNob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsID0KLSAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGxfc2hv
dWxkX2NvbnNpZGVyX3ZpZXdfdGFibGVkX3BhcmFsbGVsOwotICAgICAgICAgICAgY29uZmlnLT5j
b25zaWRlcl92aWV3ID0gTlVMTDsKLSAgICAgICAgICAgIGNvbmZpZy0+YXJnID0gTlVMTDsKLSAg
ICAgICAgICAgIGRpZF9maW5kX3NvbWV0aGluZyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
dGVyYXRlX2ZvcndhcmRfdG9fdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICAgICAgICAgICAgICBj
b25maWcsIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9hbmRfdGFibGVk
X2tpbmQpOwotCi0gICAgICAgICAgICBpZiAoZGlkX2ZpbmRfc29tZXRoaW5nKSB7Ci0gICAgICAg
ICAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5LCBj
b25maWctPmluZGV4KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkgewotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJBdCBpbmRleCAlenU6IFRha2lu
ZyBleGlzdGluZyB2aWV3ICVwICh0YWJsZWQpLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25maWctPmluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChjb25maWctPnNlZ21l
bnQuZWxpZ2libGVfYml0cyAmIGNvbmZpZy0+Yml0X3JlZmVyZW5jZS5tYXNrKTsKLSAgICAgICAg
ICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoY29uZmlnLT5zZWdtZW50LnRhYmxlZF9iaXRzICYg
Y29uZmlnLT5iaXRfcmVmZXJlbmNlLm1hc2spOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIGlmIChQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUX1JFRkVSRU5DRV9TRVQoCi0g
ICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGNvbmZpZy0+Yml0X3JlZmVyZW5jZSwg
ZWxpZ2libGUsIGZhbHNlKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkRpZCB0YWtlIGZpcnN0IGVsaWdpYmxlLlxu
Iik7Ci0KLSAgICAgICAgICAgICAgICAgICAgLyogRklYTUU6IFRoaXMgaXMgd2VpcmQgZm9yIHBh
cnRpYWxzLiBJZGVhbGx5LCB3ZSdkIHdhbnQgdG8gdW50YWJsZSBhbGwgb2YgdGhlIHBhcnRpYWxz
Ci0gICAgICAgICAgICAgICAgICAgICAgIHRoYXQgc2hhcmUgdGhlIHNhbWUgc2hhcmVkIHZpZXcg
YXMgdGhpcyBvbmUuIEJ1dCB0YWJsaW5nIGlzIG1vc3QgbGlrZWx5IHRvIGhhcHBlbgotICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgZGVjb21taXR0ZWQgcGFnZXMsIGluIHdoaWNoIGNhc2Ugd2Ug
Y2Fubm90IGZpbmQgdGhlIG90aGVyIHBhcnRpYWxzIC0gd2Ugd291bGQKLSAgICAgICAgICAgICAg
ICAgICAgICAgaGF2ZSBmb3Jnb3R0ZW4gYWJvdXQgdGhlbS4gU28sIHdlIGxldCB0aGUgb3RoZXIg
cGFydGlhbHMgc3RheSB0YWJsZWQuICovCi0gICAgICAgICAgICAgICAgICAgIFBBU19TRUdSRUdB
VEVEX0RJUkVDVE9SWV9CSVRfUkVGRVJFTkNFX1NFVCgKLSAgICAgICAgICAgICAgICAgICAgICAg
IGRpcmVjdG9yeSwgY29uZmlnLT5iaXRfcmVmZXJlbmNlLCB0YWJsZWQsIGZhbHNlKTsKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICBzaXplX3QgbmV3X3NpemU7Ci0KLSAgICAgICAgICAgICAg
ICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseSgKLSAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZp
ZykpOwotCi0gICAgICAgICAgICAgICAgbmV3X3NpemUgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfc2l6ZShkaXJlY3RvcnkpOwotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQobmV3X3NpemUg
Pj0gbm90X3RhYmxlZF9pbmRleCk7Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVChuZXdfc2l6
ZSA+PSBjb25maWctPmluZGV4KTsKLSAgICAgICAgICAgICAgICBpZiAobmV3X3NpemUgPT0gbm90
X3RhYmxlZF9pbmRleCAmJiBuZXdfc2l6ZSA9PSBjb25maWctPmluZGV4KSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHZpZXcgPSBjcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2soY29uZmlnKTsKLSAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2FwcGVuZChkaXJlY3Rvcnks
IGNvbmZpZy0+aW5kZXgsIHZpZXcpOwotICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2Nr
X3VubG9ja19jb25kaXRpb25hbGx5KAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykpOwotICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICBzaXplX3QgbmV3X3NpemU7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcp
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgbmV3X3NpemUgPSBwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkpOworICAgICAgICAgICAgUEFTX0FTU0VSVChuZXdfc2l6
ZSA+PSBjb25maWctPmluZGV4KTsKKyAgICAgICAgICAgIGlmIChuZXdfc2l6ZSA9PSBjb25maWct
PmluZGV4KSB7CisgICAgICAgICAgICAgICAgdmlldyA9IGNyZWF0ZV9uZXdfdmlld19jYWxsYmFj
ayhjb25maWcpOworICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9hcHBl
bmQoZGlyZWN0b3J5LCBjb25maWctPmluZGV4LCB2aWV3KTsKICAgICAgICAgICAgICAgICBwYXNf
aGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KAogICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKSk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoCisgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdl
X2NvbmZpZykpOwogICAgICAgICB9CiAgICAgfQogICAgIApAQCAtMjA1LDI1ICsyMjksNyBAQCBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0CiAgICAgcmV0dXJuIHZpZXc7
CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqCi1wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFsKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIGlmICghZGlyZWN0b3J5
KQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5
X2tpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9r
aW5kOgotICAgICAgICByZXR1cm4gKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSopZGlyZWN0b3J5OwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlf
a2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJigocGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVjdG9yeSktPnBhcmVudF9nbG9iYWwpOwotICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5v
dCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KIFBBU19FTkRfRVhURVJOX0M7
CiAKLSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9JTkxJTkVTX0ggKi8K
KyNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19I
ICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF92aWV3LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuYwkod29ya2luZyBjb3B5
KQpAQCAtMzAsOCArMzAsNiBAQAogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKIAog
I2luY2x1ZGUgInBhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKICNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaCIKQEAgLTQxLDQxICszOSwxNiBAQAogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NoYXJl
ZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmgiCiAKLXBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnlfc2xvdyhwYXNf
c2VncmVnYXRlZF92aWV3IHZpZXcpCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKK3Bh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5X3Nsb3cocGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3KQogewogICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2
aWV3KSkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAg
ICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAg
ICAgICAgcmV0dXJuICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9leGNsdXNpdmUodmlldyktPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2li
bGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAmcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKHZpZXcpLT5kaXJlY3RvcnkpLT5iYXNlOwot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVy
biAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoCi0gICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbCh2
aWV3KS0+ZGlyZWN0b3J5KS0+YmFzZTsKLSAgICBkZWZhdWx0OgotICAgICAgICBQQVNfQVNTRVJU
KCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0K
LX0KLQotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgotcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Nsb3cocGFzX3NlZ3JlZ2F0ZWRfdmll
dyB2aWV3KQotewotICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3
KSkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICAg
ICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKAorICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICZwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldyktPmRpcmVjdG9yeSk7Ci0gICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2lu
ZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAg
ICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2Fk
X25vbl9udWxsKAotICAgICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFz
aW5nKHZpZXcpLT5kaXJlY3RvcnkpLT5wYXJlbnRfZ2xvYmFsKTsKICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAg
IHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25v
bl9udWxsKAogICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmll
dyktPmRpcmVjdG9yeSk7CiAgICAgZGVmYXVsdDoKICAgICAgICAgUEFTX0FTU0VSVCghIlNob3Vs
ZCBub3QgYmUgcmVhY2hlZCIpOwpAQCAtODgsMTIgKzYxLDggQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZCBwYXNfc2VncgogICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfa2luZCh2aWV3KSkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
a2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdf
a2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAg
ICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldyktPmRpcmVjdG9yeSktPmJh
c2UucGFnZV9jb25maWdfa2luZDsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
d19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdf
a2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfYmlhc2luZyh2aWV3KS0+ZGlyZWN0b3J5KS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOwog
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9raW5kOgogICAgICAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkX2hhbmRsZSh2aWV3KS0+ZGlyZWN0b3J5
LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
dmlld19raW5kOgpAQCAtMTAxLDEwICs3MCwxMCBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kIHBhc19zZWdyCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaGFy
ZWQodmlldyktPnNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeSkKICAgICAgICAgICAgIC0+
ZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICByZXR1
cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgKICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYXJ0aWFsKHZpZXcpLT5k
aXJlY3RvcnkpLT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHZpZXcpLT5iYXNlLnBhZ2Vf
Y29uZmlnX2tpbmQ7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3
X2tpbmQ6CisgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVj
dG9yeSh2aWV3KS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOwogICAgIGRlZmF1bHQ6CiAgICAgICAg
IFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKICAgICAgICAgcmV0dXJuIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbDsKQEAgLTEyMyw5ICs5Miw2IEBAIHNp
emVfdCBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9pbmRleChwYXMKICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVs
aWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAoKHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpLT5p
bmRleDsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAg
cmV0dXJuICgocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KilwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9wdHIodmlldykpLT5pbmRleDsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92
aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAoKHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3Kilw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpLT5pbmRleDsKICAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKQEAgLTE0NSwxMyArMTExLDYgQEAgdm9pZCog
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9ib3VuZAogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2li
bGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICgocGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSktPnBhZ2Vf
Ym91bmRhcnk7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAg
ICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6IHsKLSAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZTsKLSAgICAgICAg
ZXhjbHVzaXZlID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
cHRyX2xvYWQoCi0gICAgICAgICAgICAmKChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqKXBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSktPmV4Y2x1c2l2ZSk7Ci0gICAgICAgIHJl
dHVybiBleGNsdXNpdmUgPyBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkgOiBOVUxMOwotICAgIH0K
ICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVy
biBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2dldF9wYWdlX2JvdW5kYXJ5X25v
X2xpdmVuZXNzX2NoZWNrcygKICAgICAgICAgICAgICgocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3Zp
ZXcqKQpAQCAtMTY4LDcgKzEyNyw3IEBAIHZvaWQqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3Bh
Z2VfYm91bmQKICAgICAgICAgcmV0dXJuIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRh
cnlfZ2V0X3BhZ2VfYm91bmRhcnkoCiAgICAgICAgICAgICBzaGFyZWRfdmlldy0+c2hhcmVkX2hh
bmRsZV9vcl9wYWdlX2JvdW5kYXJ5LAogICAgICAgICAgICAgKnBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfZ2V0X2NvbmZpZygKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAg
ICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25v
bl9udWxsKAogICAgICAgICAgICAgICAgICAgICAmcGFydGlhbF92aWV3LT5kaXJlY3RvcnkpLT5i
YXNlLnBhZ2VfY29uZmlnX2tpbmQpKTsKICAgICB9CiAgICAgZGVmYXVsdDoKQEAgLTE4NCwxMTIg
KzE0MywxMiBAQCBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYXNfc2VncmVnYXRlZF92aWV3CiAgICAg
ICAgICpwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2NvbmZpZyh2aWV3KSk7CiB9CiAKLWJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19zaG91bGRfcmVzdGFydChwYXNfc2VncmVnYXRlZF92aWV3
IG93bmVyX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X21hZ2F6aW5lKiBtYWdhemluZSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQga2lu
ZDsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICB1bnNpZ25l
ZCBpbmRleDsKLQotICAgIGtpbmQgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKG93bmVy
X3ZpZXcpOwotICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfa2luZDogewotICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dyogZXhjbHVzaXZlOwotICAgICAgICBleGNsdXNpdmUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9leGNsdXNpdmUob3duZXJfdmlldyk7Ci0gICAgICAgIGRpcmVjdG9yeSA9ICZwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAg
ICAgICAgICAgICZleGNsdXNpdmUtPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgICAgIGluZGV4ID0g
ZXhjbHVzaXZlLT5pbmRleDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgcGFzX3Nl
Z3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDogewotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIGJpYXNpbmc7Ci0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeTsKLSAgICAgICAg
Ymlhc2luZyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcob3duZXJfdmlldyk7Ci0g
ICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5n
X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZiaWFzaW5nLT5kaXJl
Y3RvcnkpOwotICAgICAgICBpZiAoIW1hZ2F6aW5lIHx8Ci0gICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9tYWdhemluZV9pbmRleCgKLSAgICAgICAgICAgICAgICBi
aWFzaW5nX2RpcmVjdG9yeSkgIT0gbWFnYXppbmUtPm1hZ2F6aW5lX2luZGV4KQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBkaXJlY3RvcnkgPSAmYmlhc2luZ19kaXJlY3Rvcnkt
PmJhc2U7Ci0gICAgICAgIGluZGV4ID0gYmlhc2luZy0+aW5kZXg7Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tp
bmQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlld19raW5kOiB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFy
dGlhbDsKLSAgICAgICAgcGFydGlhbCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwo
b3duZXJfdmlldyk7Ci0gICAgICAgIGlmICghcGFydGlhbC0+ZWxpZ2liaWxpdHlfaGFzX2JlZW5f
bm90ZWQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGRpcmVjdG9yeSA9ICZw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25f
bnVsbCgKLSAgICAgICAgICAgICZwYXJ0aWFsLT5kaXJlY3RvcnkpLT5iYXNlOwotICAgICAgICBp
bmRleCA9IHBhcnRpYWwtPmluZGV4OwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgLyogVGhlcmUncyBzb21ldGhpbmcgaW50ZXJl
c3RpbmcgaGVyZTogdGhlIDw9IGNvbXBhcmlzb24gb2YgdmlldyBpbmRpY2VzLiBJdCByZWFsbHkg
b3VnaHQgdG8KLSAgICAgICBiZSA8LCBzaW5jZSB0aGUgb3duZXJfdmlldyBpc24ndCBhY3R1YWxs
eSBlbGlnaWJsZS4KLSAgICAgICAKLSAgICAgICBCdXQgdGhlIGZpcnN0X2VsaWdpYmxlIHByb3Bl
cnR5IGhhcyBhbiBvZmYtYnktb25lIHN0aWNraW5lc3MgdG8gaXQuIFRoYXQganVzdCBzb3J0IG9m
IGZhbGxzCi0gICAgICAgb3V0IG9mIHRoZSBnZW5lcmljIHRha2VfZmlyc3RfZWxpZ2libGUgYWxn
b3JpdGhtLiBUaGF0IG5lY2Vzc2l0YXRlcyB0aGUgPD0uCi0gICAgICAgCi0gICAgICAgVGhpcyBk
b2Vzbid0IGhhdmUgdG8gYmUgc3VwZXIgY29ycmVjdC4gSXQncyBpbXBvcnRhbnQgZm9yIHRoZSBh
bGdvcml0aG0gdG8gdGVuZCB0b3dhcmRzIHVzaW5nCi0gICAgICAgdGhlIGxvd2VzdC1pbmRleGVk
IHZpZXcuIEJ1dCBpZiBpdCBzb21ldGltZXMgZmFpbHMgdG8gZG8gdGhhdCwgdGhlbiBpdCdzIG5v
dCB0aGUgZW5kIG9mIHRoZQotICAgICAgIHdvcmxkLgotICAgIAotICAgICAgIEhvd2V2ZXIsIGl0
IG1pZ2h0IGJlIG5pY2UgdG8gcmV2aXNpdCB3aGV0aGVyIHRoaXMgaXMgcmVhbGx5IHRoZSBiZXN0
IHRoYXQgd2UgY2FuIGRvLiBJIHRoaW5rCi0gICAgICAgdGhhdCB1bmRlciBjb21wbGV4IHJhY2Vz
LCB3ZSBtaWdodCBoYXZlIGZpcnN0X2VsaWdpYmxlIHBvaW50aW5nIHRvbyBsb3csIG1ha2luZyBp
dCBzZWVtIGxpa2UKLSAgICAgICBvd25lcl92aWV3IGlzbid0IHRoZSBmaXJzdF9lbGlnaWJsZSBv
bmUuIE9uZSB3YXkgdG8gZml4IHRoaXMgaXMgdG8ganVzdCBoYXZlCi0gICAgICAgdGFrZV9maXJz
dF9lbGlnaWJsZSB0YWtlIG91ciBpbmRleCBhbmQgaGF2ZSBpdCBub3QgcmV0dXJuIGFueXRoaW5n
IHVubGVzcyB0aGF0IHNvbWV0aGluZyBoYXMKLSAgICAgICBhIGxvd2VyIGluZGV4IHRoYW4gdXMu
IFRoYXQgc2VlbXMgYmV0dGVyIGFuZCBtb3JlIGVmZmljaWVudCBpbiBsb3RzIG9mIHdheXMuICov
Ci0gICAgcmV0dXJuIChpbmRleCA8PSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0
X2VsaWdpYmxlX3Rvcm4oCi0gICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2luZCkudmFsdWUpCi0g
ICAgICAgICYmIChpbmRleCA8PSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2Vs
aWdpYmxlX3Rvcm4oCi0gICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYW5kX3RhYmxlZF9raW5kKS52YWx1ZSk7Ci19Ci0KLWJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19jb3VsZF9idW1wKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmll
dykKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7Ci0gICAg
cGFnZV9jb25maWcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2NvbmZpZyh2aWV3KTsK
LSAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKLSAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAh
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkoCi0gICAgICAgICAgICAoKHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykp
LT5wYWdlX2JvdW5kYXJ5LAotICAgICAgICAgICAgKnBhZ2VfY29uZmlnKS0+bnVtX25vbl9lbXB0
eV93b3JkczsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAg
ICAgcmV0dXJuICFwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeSgKLSAgICAgICAgICAg
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25v
bl9udWxsKAotICAgICAgICAgICAgICAgICYoKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyop
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKAotICAgICAgICAgICAgICAgICAgICAgIHZpZXcp
KS0+ZXhjbHVzaXZlKS0+cGFnZV9ib3VuZGFyeSwKLSAgICAgICAgICAgICpwYWdlX2NvbmZpZykt
Pm51bV9ub25fZW1wdHlfd29yZHM7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBB
U19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLX0KLQogcGFzX2xvY2sqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2NvbW1pdF9s
b2NrKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1
c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
ZXhjbHVzaXZlKHZpZXcpLT5jb21taXRfbG9jazsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFz
aW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuICZwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKHZpZXcpLT5leGNsdXNpdmUpLT5jb21taXRfbG9j
azsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJl
dHVybiAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpLT5jb21taXRfbG9jazsK
ICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKQEAgLTMxMCwxMCAr
MTY5LDYgQEAgcGFzX2xvY2sqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X293bmVycwogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICZw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldyktPm93bmVyc2hpcF9sb2NrOwot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4g
JnBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25v
bl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmll
dyktPmV4Y2x1c2l2ZSktPm93bmVyc2hpcF9sb2NrOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICZwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9zaGFyZWQodmlldyktPm93bmVyc2hpcF9sb2NrOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX2hhbmRsZV9raW5kOgpAQCAtMzMzLDExICsxODgsNyBAQCBib29sIHBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfb3duZWQocGFzX3NlCiAgICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9raW5kKHZpZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmll
d19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmRfaXNfb3duZWQoCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9leGNsdXNpdmUodmlldyktPm93bmVyc2hpcF9raW5kKTsKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJs
ZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfdmlld19pc19vd25lZChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKHZpZXcpKTsK
KyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KS0+
aXNfb3duZWQ7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAg
ICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpLT5pc19vd25l
ZDsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKQEAgLTM1NSw1
OSArMjA2LDE4IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19vd25lZChwYXNfc2UKICAg
ICB9CiB9CiAKLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19zaG91bGRfdGFibGUoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9j
b25maWcpCi17Ci0gICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcp
KSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLCBwYWdlX2Nv
bmZpZyk7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KSwgcGFnZV9jb25maWcp
OwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6Ci0gICAgICAgIHJl
dHVybiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KSwgcGFnZV9jb25maWcpOwot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQi
KTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotfQotCi1ib29sIHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfYmlhc2VkX2V4Y2x1c2l2ZShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCit2b2lk
IHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNfc2VncmVnYXRlZF92
aWV3IHZpZXcpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2
ZTsKLSAgICAKLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlKHZpZXcp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgZXhjbHVzaXZlID0gcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpOwotICAgIAotICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19iaWFzZWQoZXhjbHVzaXZl
LT5vd25lcnNoaXBfa2luZCk7Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293
bmVyc2hpcF9sb2NrKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICBpZiAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19zb21lX2JpYXNpbmcodmlldykpCi0gICAgICAgIHJldHVybiBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9iaWFzaW5nKHZpZXcpKTsKLQogICAgIHBhc19sb2NrX2xvY2socGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfb3duZXJzaGlwX2xvY2sodmlldykpOwotICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRp
b25hbGx5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKK3ZvaWQgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2
aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgbG9ja19ob2xkX21vZGUpCiB7Ci0gICAgYm9vbCBy
ZXN1bHQ7CiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgaWYgKGxvY2tfaG9sZF9tb2Rl
KQotICAgICAgICByZXN1bHQgPSB0cnVlOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHZpZXcpOworICAgIGlmICghbG9j
a19ob2xkX21vZGUpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBf
bG9jayh2aWV3KTsKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICByZXR1cm4gcmVzdWx0
OwogfQogCiBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19pZl9v
d25lZChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCkBAIC00MTgsMTIgKzIyOCw3IEBAIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF8KIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19sb2NrX293bmVyc2hpcF9sb2NrX2lmX293bmVkX2NvbmRpdGlvbmFsbHkocGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgbG9ja19ob2xk
X21vZGUpCiB7Ci0gICAgYm9vbCByZXN1bHQ7Ci0KLSAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRl
ZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfY29uZGl0aW9uYWxseSh2aWV3LCBsb2NrX2hvbGRf
bW9kZSk7Ci0KLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KHZpZXcs
IGxvY2tfaG9sZF9tb2RlKTsKIAogICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVk
KHZpZXcpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ1NywzMyArMjYyLDYgQEAgYm9vbCBw
YXNfc2VncmVnYXRlZF92aWV3X2lzX3ByaW1vcmRpYWxfcAogICAgICAgICAmcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KS0+c2hhcmVkX3ZpZXcpOwogfQogCi12b2lkIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSgKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3
IHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSkKLXsKLSAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0KLSAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgcGFz
X2xvZygiTm90aW5nIGVsaWdpYmlsaXR5IGZvciB2aWV3ICVwLCBwYWdlICVwLlxuIiwgdmlldywg
cGFnZSk7Ci0gICAgCi0gICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZp
ZXcpKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VsaWdpYmlsaXR5KHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KSwgcGFnZSk7Ci0gICAgICAgIHJldHVy
bjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X25vdGVfZWxpZ2liaWxpdHkocGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfYmlhc2luZyh2aWV3KSwgcGFnZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOgotICAgICAgICBwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9w
YXJ0aWFsKHZpZXcpLCBwYWdlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLX0KLQogdm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZW1wdGluZXNzKAog
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBw
YWdlKQpAQCAtNDk0LDExICsyNzIsNiBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfbm90ZV9l
bXB0aW5lc3MoCiAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZW1w
dGluZXNzKAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZp
ZXcpLCBwYWdlKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNp
bmdfdmlld19raW5kOgotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfbm90ZV9l
bXB0aW5lc3MoCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKHZp
ZXcpLCBwYWdlKTsKLSAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX2hhbmRsZV9raW5kOgogICAgICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX25v
dGVfZW1wdGluZXNzKAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVk
X2hhbmRsZSh2aWV3KSk7CkBAIC01OTQsNyArMzY3LDcgQEAgc3RhdGljIGJvb2wgZm9yX2VhY2hf
bGl2ZV9vYmplY3QoCiAgICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2Z1bGxfYWxsb2NfYml0c19j
cmVhdGVfZm9yX3ZpZXcodmlldywgcGFnZV9jb25maWcpOwogICAgIHBhZ2UgPSBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9wYWdlKHZpZXcpOwogICAgIHBhZ2VfYm91bmRhcnkgPSAodWludHB0cl90
KXBhc19zZWdyZWdhdGVkX3BhZ2VfYm91bmRhcnkocGFnZSwgcGFnZV9jb25maWcpOwotICAgIG9i
amVjdF9zaXplID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KHZpZXcpLT5vYmplY3Rfc2l6ZTsKKyAgICBvYmplY3Rfc2l6ZSA9IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpLT5vYmplY3Rfc2l6ZTsKIAogICAgIGlmICh2ZXJi
b3NlKSB7CiAgICAgICAgIHBhc19sb2coInBhZ2UgPSAlcCwgZ290IGFsbG9jIGJpdHMgcmFuZ2Ug
JXp1Li4uJXp1LlxuIiwKQEAgLTY1NCwxMSArNDI3LDkgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92
aWV3X2Zvcl9lYWNoX2xpdmVfbwogICAgIC8qIEZvciBwYXJ0aWFsIGFuZCBzaGFyZWQgdmlld3Ms
IHRoZSBwYWdlIGxvY2sgaXMgdGhlIG93bmVyc2hpcCBsb2NrLiBGb3IgZXhjbHVzaXZlIHZpZXdz
LAogICAgICAgIGhvbGRpbmcgdGhlIG93bmVyc2hpcCBsb2NrIGlzIGFkZXF1YXRlIGFueXdheS4g
Ki8KIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfY29u
ZGl0aW9uYWxseSh2aWV3LCBvd25lcnNoaXBfbG9ja19ob2xkX21vZGUpKSB7Ci0gICAgICAgIHJl
c3VsdCA9IGZvcl9lYWNoX2xpdmVfb2JqZWN0KHZpZXcsIGNhbGxiYWNrLCBhcmcpOwotICAgICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3X3VubG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5
KHZpZXcsIG93bmVyc2hpcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIHJl
c3VsdCA9IHRydWU7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2Nr
X2NvbmRpdGlvbmFsbHkodmlldywgb3duZXJzaGlwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICByZXN1
bHQgPSBmb3JfZWFjaF9saXZlX29iamVjdCh2aWV3LCBjYWxsYmFjaywgYXJnKTsKKyAgICBwYXNf
c2VncmVnYXRlZF92aWV3X3VubG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KHZpZXcs
IG93bmVyc2hpcF9sb2NrX2hvbGRfbW9kZSk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAt
NzA0LDkgKzQ3NSw2IEBAIHN0YXRpYyBwYXNfdHJpX3N0YXRlIHNob3VsZF9iZV9lbGlnaWJsZSgK
ICAgICAgICAgcmV0dXJuIHBhc190cmlfc3RhdGVfbWF5YmU7CiAgICAgfQogICAgIAotICAgIGlm
IChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUodmlldykpCi0gICAgICAg
IHJldHVybiBwYXNfdHJpX3N0YXRlX25vOwotCiAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3
X2lzX293bmVkKHZpZXcpKQogICAgICAgICByZXR1cm4gcGFzX3RyaV9zdGF0ZV95ZXM7CiAgICAg
CkBAIC03NzEsMTMgKzUzOSw5IEBAIHBhc190cmlfc3RhdGUgcGFzX3NlZ3JlZ2F0ZWRfdmlld19z
aG91bGQKICAgICAgICAgICAgICAgICB2aWV3LCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfZ2V0
X3N0cmluZyhwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKSk7CiAgICAgfQogCi0g
ICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayh2aWV3KSkgewot
ICAgICAgICByZXN1bHQgPSBzaG91bGRfYmVfZWxpZ2libGUodmlldywgcGFnZV9jb25maWcpOwot
ICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X3VubG9ja19vd25lcnNoaXBfbG9jayh2aWV3KTsK
LSAgICB9IGVsc2UgewotICAgICAgICAvKiBUaGlzIGhhcHBlbnMgd2hlbiBhIGJpYXNpbmcgdmll
dyBpcyB1bm93bmVkLiBTbyBpdCBzaG91bGQgYmUgZWxpZ2libGUhICovCi0gICAgICAgIHJlc3Vs
dCA9IHBhc190cmlfc3RhdGVfeWVzOwotICAgIH0KKyAgICBwYXNfc2VncmVnYXRlZF92aWV3X2xv
Y2tfb3duZXJzaGlwX2xvY2sodmlldyk7CisgICAgcmVzdWx0ID0gc2hvdWxkX2JlX2VsaWdpYmxl
KHZpZXcsIHBhZ2VfY29uZmlnKTsKKyAgICBwYXNfc2VncmVnYXRlZF92aWV3X3VubG9ja19vd25l
cnNoaXBfbG9jayh2aWV3KTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC04MDcsMTEgKzU3
MSw2IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfdmlld18KICAgICAgICAg
ICAgVGhpcyBtYWtlcyBlcXVhbGl0eSBhc3NlcnRpb25zIGluIHRoZSB0ZXN0cyBlYXNpZXIgdG8g
d3JpdGUuICovCiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19h
c192aWV3KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShvd25pbmdfdmlldykpOwog
Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIC8qIFNl
ZSBhYm92ZS4gKi8KLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19h
c192aWV3KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcob3duaW5nX3ZpZXcpKTsKLQog
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9raW5kOgogICAgICAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXcoCiAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX3BhcnRpYWxfdmlld19mb3Jfb2JqZWN0KApAQCAtODMx
LDEwICs1OTAsNiBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX3ZpZXdfY29tCiAg
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAg
ICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19jb21wdXRlX3N1bW1h
cnkocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpKTsKIAotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3X2NvbXB1dGVfc3VtbWFyeShwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9iaWFzaW5nKHZpZXcpKTsKLQogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdf
a2luZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NvbXB1dGVf
c3VtbWFyeShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaGFyZWQodmlldyksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25m
aWcpOwpAQCAtODU1LDEwICs2MTAsNiBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxp
Z2libGUocGFzCiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92
aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19p
c19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldykpOwogCi0g
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfaXNfZWxpZ2libGUocGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfYmlhc2luZyh2aWV3KSk7Ci0KICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lz
X2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldykpOwogCkBAIC04
NjgsMTIgKzYxOSw2IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZShwYXMK
ICAgICB9CiB9CiAKLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9vcl9iaWFz
ZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF92aWV3X2lzX2VsaWdpYmxlKHZpZXcpCi0gICAgICAgIHx8IHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfYmlhc2VkX2V4Y2x1c2l2ZSh2aWV3KTsKLX0KLQogc3RhdGljIGJvb2wgaXNfcGF5bG9hZF9l
bXB0eV9jYWxsYmFjayhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19yYW5nZSByYW5nZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYXJnKQpAQCAtODk3LDEwICs2NDIsNiBAQCBib29s
IHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHkocGFzX3NlCiAgICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pc19lbXB0eShwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9leGNsdXNpdmUodmlldykpOwogCi0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3
X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfaXNfZW1w
dHkocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KSk7Ci0KICAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVn
YXRlZF9zaGFyZWRfdmlld19pc19lbXB0eShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaGFyZWQo
dmlldykpOwogCkBAIC05MTgsMTAgKzY1OSw0IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19lbXB0eShwYXNfc2UKICAgICB9CiB9CiAKLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19l
bXB0eV9vcl9iaWFzZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5KHZpZXcpCi0gICAgICAgIHx8IHBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfYmlhc2VkX2V4Y2x1c2l2ZSh2aWV3KTsKLX0KLQogI2VuZGlmIC8qIExJQlBB
U19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF92aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDcgKzQ1LDYgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdHJ1Y3Qg
cGFzX2hlYXBfY29uZmlnOwogc3RydWN0IHBhc19tYWdhemluZTsKLXN0cnVjdCBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXc7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5Owogc3Ry
dWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3Owogc3RydWN0IHBhc19zZWdyZWdhdGVk
X3BhZ2U7CkBAIC01NCwxMSArNTMsMTAgQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlldzsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlOwogc3RydWN0IHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9z
aGFyZWRfdmlldzsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7
CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19vcGFxdWU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9jb25maWcgcGFzX2hl
YXBfY29uZmlnOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX21hZ2F6aW5lIHBhc19tYWdhemluZTsKLXR5
cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXc7CiB0eXBlZGVmIHN0cnVj
dCBwYXNfc2VncmVnYXRlZF9wYWdlIHBhc19zZWdyZWdhdGVkX3BhZ2U7CkBAIC02Nyw3ICs2NSw3
IEBAIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmkKIHR5cGVkZWYgc3Ry
dWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hh
bmRsZTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldzsKLXR5
cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVk
ZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3ZpZXdfb3BhcXVlKiBwYXNfc2VncmVnYXRlZF92aWV3
OwogCiAvKiBOT1RFOiBpdCdzIGFuIGFudGlwYXR0ZXJuIHRvIHVzZSB0aGlzIGZ1bmN0aW9uIGRp
cmVjdGx5IHdoZW4geW91IGNvdWxkIGhhdmUgdXNlZCB0aGUgbXVjaCBtb3JlCkBAIC0xMTUsNzIg
KzExMywzNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pCiAKIHN0
YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKHBh
c19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19leGNsdXNpdmUodmlldykKLSAgICAgICAgfHwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19p
bmVsaWdpYmxlX2V4Y2x1c2l2ZSh2aWV3KTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcp
Ci17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19leGNsdXNpdmVfaXNo
KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpOwotfQotCi1zdGF0aWMgaW5saW5l
IGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzaW5nKHBhc19zZWdyZWdhdGVkX3ZpZXcg
dmlldykKLXsKLSAgICByZXR1cm4gIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfbnVsbCh2aWV3KQot
ICAgICAgICAmJiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpID09IHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19pbmVsaWdpYmxlX2JpYXNpbmcocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2
aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpID09
IHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfYmlhc2luZyhwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNf
Ymlhc2luZyh2aWV3KQotICAgICAgICB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2luZWxpZ2li
bGVfYmlhc2luZyh2aWV3KTsKLX0KLQotc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcocGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3KQotewotICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21l
X2JpYXNpbmcodmlldykpOwotICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg
Ym9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlX2tpbmQocGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfZWxp
Z2libGUocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSk7Ci19Ci0KLXN0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2luZWxpZ2libGVfa2luZChwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2lu
ZF9pc19pbmVsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpOworICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfc29tZV9leGNsdXNpdmUocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3Nl
Z3JlZ2F0ZWRfdmlldyBwYXNfc2VncmVnYXRlZF92aWV3X2FzX2luZWxpZ2libGUocGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3KQogewogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgcmVzdWx0OwotICAg
IFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2go
dmlldykpOworICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3Nv
bWVfZXhjbHVzaXZlKHZpZXcpKTsKICAgICByZXN1bHQgPSAocGFzX3NlZ3JlZ2F0ZWRfdmlldyko
CiAgICAgICAgICh1aW50cHRyX3QpdmlldyB8ICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfaW5l
bGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kKTsKICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpID09IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3B0cihyZXN1bHQpKTsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KQotICAgICAgICAgICAgICAgICAgICAgICA9PSBwYXNf
c2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKHJlc3VsdCkpOworICAgIFBBU19URVNU
SU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKHZpZXcpKTsK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgcGFzX3NlZ3JlZ2F0ZWRfdmlld19hc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcpCiB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyByZXN1bHQ7Ci0gICAgUEFTX1RFU1RJTkdf
QVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaCh2aWV3KSk7CisgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUo
dmlldykpOwogICAgIHJlc3VsdCA9IChwYXNfc2VncmVnYXRlZF92aWV3KSgKICAgICAgICAgKHVp
bnRwdHJfdCl2aWV3ICYgfih1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNs
dXNpdmVfdmlld19raW5kKTsKICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfcHRyKHZpZXcpID09IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cihyZXN1bHQp
KTsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4
Y2x1c2l2ZSh2aWV3KQotICAgICAgICAgICAgICAgICAgICAgICA9PSBwYXNfc2VncmVnYXRlZF92
aWV3X2lzX3NvbWVfZXhjbHVzaXZlKHJlc3VsdCkpOworICAgIFBBU19URVNUSU5HX0FTU0VSVChw
YXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKHZpZXcpKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
KiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2
aWV3KQoreworICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3Nv
bWVfZXhjbHVzaXZlKHZpZXcpKTsKKyAgICByZXR1cm4gKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7Cit9CisKIHN0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NoYXJlZChwYXNfc2VncmVnYXRlZF92
aWV3IHZpZXcpCiB7CiAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmll
dykgPT0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDsKQEAgLTIxNSwzMyArMTc4LDIy
IEBAIHN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWUKICAgICByZXR1cm4g
KHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRy
KHZpZXcpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQorc3RhdGljIGlu
bGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc2l6ZV9kaXJlY3RvcnkocGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3KQogewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9r
aW5kKHZpZXcpID09IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV92aWV3X2tp
bmQ7CisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykgPT0gcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kOwogfQogCi1QQVNfQVBJIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeSoKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqCiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeV9zbG93KHBhc19zZWdy
ZWdhdGVkX3ZpZXcgdmlldyk7CiAKLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5Kgorc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmll
dykKIHsKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkodmlldykpCi0gICAgICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KilwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7CisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfaXNfc2l6ZV9kaXJlY3RvcnkodmlldykpCisgICAgICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnlfc2xvdyh2aWV3
KTsKIH0KIAotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCi1w
YXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2xvdyhwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXcpOwotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSoKLXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2Rp
cmVjdG9yeShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgaWYgKHBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHZpZXcpKQotICAgICAgICByZXR1cm4g
KHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSopcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfcHRyKHZpZXcpOwotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9i
YWxfc2l6ZV9kaXJlY3Rvcnlfc2xvdyh2aWV3KTsKLX0KLQogUEFTX0FQSSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19raW5kCiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2NvbmZpZ19r
aW5kKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnKiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2NvbmZpZyhwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcpOwpAQCAtMjUxLDIzICsyMDMsOSBAQCBQQVNfQVBJIHNpemVfdCBwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9pCiBQQVNfQVBJIHZvaWQqIHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3BhZ2VfYm91bmRhcnkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIFBBU19BUEkgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZSogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZShwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcpOwogCi0vKiBUaGlzIGFzc3VtZXMgdGhhdCBvd25lcl92aWV3IGlzIGVp
dGhlcjoKLSAgIAotICAgPT4gQW4gZXhjbHVzaXZlLWlzaCB2aWV3IChleGNsdXNpdmUgb3IgYmlh
c2luZykgdGhhdCB3YXMgbG9hZGVkIGZyb20gcGFnZS0+b3duZXIsIHNvIGl0cyBraW5kCi0gICAg
ICBjYW4gdGVsbCB1cyBhYm91dCBlbGlnaWJpbGl0eS4KLQotICAgPT4gQSBwYXJ0aWFsIHZpZXcg
aWYgdGhlIHBhZ2Ugb3duZXIgd2FzIGEgc2hhcmVkIGhhbmRsZS4KLQotICAgVGhpcyBzZXQgb2Yg
YXNzdW1wdGlvbnMgaGFwcGVucyB0byBtYXRjaCBsb2NhbF9hbGxvY2F0b3IncyB2aWV3IG9mIHRo
ZSB3b3JsZC4gKi8KLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZF9yZXN0
YXJ0KHBhc19zZWdyZWdhdGVkX3ZpZXcgb3duZXJfdmlldywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19tYWdhemluZSogbWFnYXppbmUpOwotCi1Q
QVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19jb3VsZF9idW1wKHBhc19zZWdyZWdhdGVk
X3ZpZXcgdmlldyk7Ci0KIC8qIEl0J3Mgb25seSBPSyB0byBjYWxsIHRoaXMgd2hlbiB5b3UgaGF2
ZSBvd25lcnNoaXAgb2YgdGhlIHBhZ2UsIGxpa2UgaWYgeW91IG1hZGUgaXQgaW5lbGlnaWJsZSBv
cgogICAgZ3JhYmJlZCB0aGUgb3duZXJzaGlwIGxvY2suIE9mIGNvdXJzZSwgaWYgeW91IGdyYWJi
ZWQgdGhlIG93bmVyc2hpcCBsb2NrIHRoZW4geW91IGNhbm5vdCBncmFiIHRoZQotICAgY29tbWl0
IGxvY2ssIHNvIGhvcGVmdWxseSB5b3UgZ290IGhlcmUgYnkgbWFraW5nIHRoZSBwYWdlIGluZWxp
Z2libGUuIEFsc28sIGZvciBiaWFzaW5nIHZpZXdzLCBpdCdzCi0gICBvbmx5IE9LIGlmIHRoZSBi
aWFzaW5nIHZpZXcgaXMgYXR0YWNoZWQgdG8gYW4gZXhjbHVzaXZlLiAqLworICAgY29tbWl0IGxv
Y2ssIHNvIGhvcGVmdWxseSB5b3UgZ290IGhlcmUgYnkgbWFraW5nIHRoZSBwYWdlIGluZWxpZ2li
bGUuICovCiBQQVNfQVBJIHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9jb21taXRf
bG9jayhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogCiAvKiBJdCdzIG9ubHkgT0sgdG8gY2Fs
bCB0aGlzIGlmIHlvdSBhbHJlYWR5IGhvbGQgdGhlIG93bmVyc2hpcCBsb2NrIG9yIHRoZSB2aWV3
IGlzIGluZWxpZ2libGUuICovCkBAIC0yNzUsMTUgKzIxMyw5IEBAIFBBU19BUEkgcGFzX2xvY2sq
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2UKIAogUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfaXNfb3duZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIAotUEFTX0FQSSBib29sIHBh
c19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcg
dmlldywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKLQotLyogVHJ1
ZSBpZiB0aGlzIGlzIGFuIGV4Y2x1c2l2ZSB2aWV3IHRoYXQgaXMgYmlhc2VkLiAqLwotUEFTX0FQ
SSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2VkX2V4Y2x1c2l2ZShwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcpOwotCi0vKiBMb2NrcyB0aGUgb3duZXJzaGlwIGxvY2sgYW5kIHRlbGxz
IHlvdSBpZiBhbnkgbG9jayB3YXMgc3VjY2Vzc2Z1bGx5IGxvY2tlZC4gKi8KLVBBU19BUEkgYm9v
bCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3KTsKLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJz
aGlwX2xvY2tfY29uZGl0aW9uYWxseShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCisvKiBMb2Nr
cyB0aGUgb3duZXJzaGlwIGxvY2suICovCitQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19sb2NrX293bmVyc2hpcF9sb2NrKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CitQQVNfQVBJ
IHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFs
bHkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9k
ZSBsb2NrX2hvbGRfbW9kZSk7CiAvKiBMb2NrcyB0aGUgb3duZXJzaGlwIGxvY2sgYW5kIHRlbGxz
IHlvdSBpZiB0aGUgdmlldyBpcyBvd25lZC4gSWYgaXQgaXNuJ3Qgb3duZWQgaXQgYWxzbyB1bmxv
Y2tzIGl0LiAqLwogUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNo
aXBfbG9ja19pZl9vd25lZChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwpAQCAtMjk4LDEwICsy
MzAsNiBAQCBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfdmlld191bmxvY2tfCiAvKiBUaGlz
IGlzIG9ubHkgdmFsaWQgdG8gY2FsbCBvbiBhIHBhcnRpYWwgdmlldyB0aGF0IHdhcyBqdXN0IG1h
ZGUgaW5lbGlnaWJsZS4gKi8KIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3By
aW1vcmRpYWxfcGFydGlhbChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogCi1QQVNfQVBJIHZv
aWQgcGFzX3NlZ3JlZ2F0ZWRfdmlld19ub3RlX2VsaWdpYmlsaXR5KAotICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKLQogUEFTX0FQ
SSB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpOwpAQCAtMzM3
LDEwICsyNjUsOCBAQCBQQVNfQVBJIHBhc19oZWFwX3N1bW1hcnkgcGFzX3NlZ3JlZ2F0ZWRfCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKIAogUEFTX0FQSSBi
b29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGUocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2
aWV3KTsKLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlX29yX2Jp
YXNlZChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogUEFTX0FQSSBib29sIHBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfcGF5bG9hZF9lbXB0eShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogUEFT
X0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfdmll
dyB2aWV3KTsKLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5X29yX2Jp
YXNlZChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogCiBQQVNfRU5EX0VYVEVSTl9DOwogCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3
X2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oCShyZXZp
c2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEy
ICsyNywxMCBAQAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9WSUVXX0FMTE9DQVRPUl9JTkxJTkVT
X0gKIAogI2luY2x1ZGUgInBhc19lcG9jaC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCIKKyNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmgiCisj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAK
QEAgLTU3LDcgKzU1LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRp
bgogICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7CiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsOwogICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgaW5lbGlnaWJsZV9vd25pbmdfdmlldzsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIHNp
emVfZGlyZWN0b3J5X2Jhc2U7CiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xk
X21vZGU7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBzaGFyZWRf
cGFnZV9kaXJlY3Rvcnk7CkBAIC02NywzMjQgKzY1LDI0NyBAQCBwYXNfc2VncmVnYXRlZF92aWV3
X3dpbGxfc3RhcnRfYWxsb2NhdGluCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZSog
c2hhcmVkX2hhbmRsZTsKIAogICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2lu
ZCh2aWV3KSkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0g
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOiB7Ci0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2luZ192aWV3OwotICAgICAg
ICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0K
LSAgICAgICAgYmlhc2luZ192aWV3ID0gKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOwotCi0gICAgICAgIGV4Y2x1c2l2ZSA9IHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKCZiaWFz
aW5nX3ZpZXctPmV4Y2x1c2l2ZSk7Ci0gICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0KLSAgICAg
ICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoJmJpYXNpbmdfdmlldy0+ZGlyZWN0b3J5KTsKLQotICAgICAgICBpZiAoIWV4Y2x1
c2l2ZSkgewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBzaXplX2RpcmVjdG9yeTsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgcmVzdWx0
aW5nX3ZpZXc7Ci0gICAgICAgICAgICBwYXNfbG9jayogaGVsZF9sb2NrOwotCi0gICAgICAgICAg
ICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVj
dG9yeS0+cGFyZW50X2dsb2JhbCk7Ci0KLSAgICAgICAgICAgIHJlc3VsdGluZ192aWV3ID0KLSAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfdGFrZV9m
aXJzdF9lbGlnaWJsZV9kaXJlY3Qoc2l6ZV9kaXJlY3RvcnkpOwotCi0gICAgICAgICAgICBpZiAo
IXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlKHJlc3VsdGluZ192aWV3KSkgewotICAg
ICAgICAgICAgICAgIFBBU19BU1NFUlQoIXJlc3VsdGluZ192aWV3IHx8IHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfcGFydGlhbChyZXN1bHRpbmdfdmlldykpOwotICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoCi0g
ICAgICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZSwgYmlhc2luZ192aWV3
LT5pbmRleCk7Ci0gICAgICAgICAgICAgICAgdmlldyA9IHJlc3VsdGluZ192aWV3OwotICAgICAg
ICAgICAgICAgIGdvdG8gcGFydGlhbF92aWV3X2Nhc2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGV4Y2x1c2l2ZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShyZXN1
bHRpbmdfdmlldyk7Ci0KLSAgICAgICAgICAgIGhlbGRfbG9jayA9IE5VTEw7Ci0gICAgICAgICAg
ICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgJmV4Y2x1c2l2ZS0+b3duZXJzaGlwX2xvY2sp
OwotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfcHRyX3N0b3JlKCZiaWFzaW5nX3ZpZXctPmV4Y2x1c2l2ZSwgZXhjbHVzaXZlKTsKLSAgICAg
ICAgICAgIFBBU19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kX2lzX2JpYXNlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+
b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAgICAgIGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQg
PQotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kX3dpdGhfYmlhc2VkKAotICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPm93bmVy
c2hpcF9raW5kLCB0cnVlKTsKLSAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAg
ICAgICAgcGFzX2xvZygidmlldyAlcCBoYXMgb3duZXJzaGlwIGtpbmQgPSAlcyBkdWUgdG8gYmlh
c2luZyB3aWxsX3N0YXJ0X2FsbG9jYXRpbmdcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBl
eGNsdXNpdmUsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9p
c19vd25lZChleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7Ci0KLSAgICAgICAgICAgICAgICBwYWdlID0gcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdl
X2NvbmZpZyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX3N3aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIC8qIElmIHRoaXMgZXhjbHVzaXZlIGFscmVhZHkgaGFkIGEg
cGFnZSwgdGhlbiB0aGUgcGFnZSBtdXN0IGJlIHNheWluZyB0aGF0IGl0J3MgZWxpZ2libGUuICov
Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1
c2l2ZShwYWdlLT5vd25lcikpOwotCi0gICAgICAgICAgICAgICAgcGFnZS0+b3duZXIgPSBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfYXNfdmlld19ub25fbnVsbChiaWFzaW5nX3ZpZXcpOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywg
TlVMTCk7Ci0KLSAgICAgICAgICAgIC8qIFRoZSBleGNsdXNpdmUgaXMgaW5lbGlnaWJsZSBpbiB0
aGUgc2l6ZSBkaXJlY3Rvcnkgbm93LCBzbyBpdCdzIG5vdyBvdXJzIHRvIGRvIHdpdGggYXMKLSAg
ICAgICAgICAgICAgIHdlIHBsZWFzZS4gKi8KLSAgICAgICAgfQotCi0gICAgICAgIGluZWxpZ2li
bGVfb3duaW5nX3ZpZXcgPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfYXNfaW5lbGlnaWJs
ZV92aWV3X25vbl9udWxsKGJpYXNpbmdfdmlldyk7Ci0KLSAgICAgICAgZ290byBleGNsdXNpdmVf
dmlld19jYXNlOwotICAgIH0KICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3
X2tpbmQ6IHsKICAgICAgICAgZXhjbHVzaXZlID0gKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7CiAgICAgICAgIGluZWxpZ2li
bGVfb3duaW5nX3ZpZXcgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19hc19pbmVsaWdp
YmxlX3ZpZXdfbm9uX251bGwoZXhjbHVzaXZlKTsKIAotICAgICAgICBnb3RvIGV4Y2x1c2l2ZV92
aWV3X2Nhc2U7Ci0gICAgfQotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tp
bmQ6IHsKLSAgICAgICAgZ290byBwYXJ0aWFsX3ZpZXdfY2FzZTsKLSAgICB9Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgICAg
ICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgICAgIC8qIFRoaXMgaXMgY2FsbGVkIHdpdGggdGhl
IHBhZ2UgbG9jayBOT1QgaGVsZC4gKi8KIAotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGRy
b3AgZG93biB0byBoZXJlLiIpOworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoCisgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKGluZWxpZ2libGVfb3duaW5nX3ZpZXcp
CisgICAgICAgICAgICA9PSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3
X2tpbmQpOworICAgIAorICAgICAgICBzaXplX2RpcmVjdG9yeSA9CisgICAgICAgICAgICBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZleGNs
dXNpdmUtPmRpcmVjdG9yeSk7CisgICAgICAgIHNpemVfZGlyZWN0b3J5X2Jhc2UgPSAmc2l6ZV9k
aXJlY3RvcnktPmJhc2U7CisgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUgPSBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKTsKIAotZXhj
bHVzaXZlX3ZpZXdfY2FzZToKLSAgICAvKiBUaGlzIGlzIGNhbGxlZCB3aXRoIHRoZSBwYWdlIGxv
Y2sgTk9UIGhlbGQuICovCisgICAgICAgIC8qIENvb2wgZmFjdDogdGhpcyB3b24ndCBjYXVzZSB0
aGUgc2l6ZSBkaXJlY3RvcnkgdG8gaGF2ZSBzaGFyaW5nIHBheWxvYWRzIHVudGlsIHRoYXQKKyAg
ICAgICAgICAgc2l6ZSBkaXJlY3RvcnkgYWxsb2NhdGVzIGV4Y2x1c2l2ZSB2aWV3cy4gKi8KIAot
ICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2luZWxpZ2libGVf
a2luZChpbmVsaWdpYmxlX293bmluZ192aWV3KSk7Ci0gICAgCi0gICAgc2l6ZV9kaXJlY3Rvcnkg
PQotICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHJfbG9hZF9ub25fbnVsbCgmZXhjbHVzaXZlLT5kaXJlY3RvcnkpOwotICAgIHNpemVfZGlyZWN0
b3J5X2Jhc2UgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7Ci0gICAgaGVhcF9sb2NrX2hvbGRfbW9k
ZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9j
b25maWcpOwotCi0gICAgLyogQ29vbCBmYWN0OiB0aGlzIHdvbid0IGNhdXNlIHRoZSBzaXplIGRp
cmVjdG9yeSB0byBoYXZlIHNoYXJpbmcgcGF5bG9hZHMgdW50aWwgdGhhdAotICAgICAgIHNpemUg
ZGlyZWN0b3J5IGFsbG9jYXRlcyBleGNsdXNpdmUgdmlld3MuICovCi0KLSAgICAvKiBFdmVuIHRo
b3VnaCB3ZSBob2xkIG5vIGxvY2tzLCB3ZSBjYW4gdG90YWxseSBjaGVjayB0aGlzIGJpdC4gVGhl
IGVsaWdpYmxlIGJpdCBpcyBhIHNlY29uZGFyeQotICAgICAgIHByb3RlY3Rpb24gaGVyZSBzaW5j
ZSBpdCBpcyBvbmx5IGxlZ2FsIHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgdGhpcyBiaXQgaWYgeW91
J3ZlIHN0b2xlbgotICAgICAgIGVsaWdpYmlsaXR5IGFuZCBsb2NrZWQgdGhlIHBhZ2UuICovCi0g
ICAgaWYgKCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19v
d25lZChleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICBib29sIHdhc19zdG9s
ZW47CisgICAgICAgIC8qIEV2ZW4gdGhvdWdoIHdlIGhvbGQgbm8gbG9ja3MsIHdlIGNhbiB0b3Rh
bGx5IGNoZWNrIHRoaXMgYml0LiBUaGUgZWxpZ2libGUgYml0IGlzIGEgc2Vjb25kYXJ5CisgICAg
ICAgICAgIHByb3RlY3Rpb24gaGVyZSBzaW5jZSBpdCBpcyBvbmx5IGxlZ2FsIHRvIGNoYW5nZSB0
aGUgdmFsdWUgb2YgdGhpcyBiaXQgaWYgeW91J3ZlIHN0b2xlbgorICAgICAgICAgICBlbGlnaWJp
bGl0eSBhbmQgbG9ja2VkIHRoZSBwYWdlLiAqLworICAgICAgICBpZiAoIWV4Y2x1c2l2ZS0+aXNf
b3duZWQpIHsKKyAgICAgICAgICAgIGJvb2wgd2FzX3N0b2xlbjsKIAotICAgICAgICB3YXNfc3Rv
bGVuID0gZmFsc2U7CisgICAgICAgICAgICB3YXNfc3RvbGVuID0gZmFsc2U7CiAgICAgICAgIAot
ICAgICAgICBpZiAoIWV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSkgewotICAgICAgICAgICAgaWYg
KHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiTm8gcGFnZSwgdHJ5aW5nIHRvIGdl
dCBvbmUgc29tZWhvdy5cbiIpOwotICAgICAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91
bmRhcnkKLSAgICAgICAgICAgICAgICAmJiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfY2FuX2Rv
X3NoYXJpbmcoc2l6ZV9kaXJlY3RvcnlfYmFzZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiVHJ5aW5nIHBoeXNpY2FsLlxuIik7
Ci0gICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9y
X3BhZ2VfY29uZmlnKAotICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vf
c2l6ZSwgcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIsCi0gICAgICAgICAgICAgICAg
ICAgIGhlYXBfbG9ja19ob2xkX21vZGUsIE5VTEwsIDApOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgCiAgICAgICAgICAgICBpZiAoIWV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSkgewogICAg
ICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJB
bGxvY2F0aW5nIGEgcGFnZS5cbiIpOwotICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9j
a19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICAgICAgICAgIGV4
Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9hbGxvY2F0b3Io
c2l6ZV9kaXJlY3RvcnktPmhlYXApOwotICAgICAgICAgICAgICAgIGlmIChleGNsdXNpdmUtPnBh
Z2VfYm91bmRhcnkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkNyZWF0aW5nIHBhZ2UgaGVhZGVyIGZvciBuZXcg
ZXhjbHVzaXZlIHBhZ2UsIGJvdW5kYXJ5ID0gJXAuXG4iLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpOworICAgICAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJObyBwYWdlLCB0cnlpbmcgdG8gZ2V0IG9uZSBzb21laG93LlxuIik7CisgICAg
ICAgICAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkKKyAgICAgICAgICAgICAg
ICAgICAgJiYgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Nhbl9kb19zaGFyaW5nKHNpemVfZGly
ZWN0b3J5X2Jhc2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvZygiVHJ5aW5nIHBoeXNpY2FsLlxuIik7CisgICAgICAg
ICAgICAgICAgICAgIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2Zvcl9wYWdl
X2NvbmZpZygKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9z
aXplLCBwYWdlX2NvbmZpZy5iYXNlLnBhZ2VfY29uZmlnX3B0ciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUsIE5VTEwsIDApOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghZXhjbHVzaXZlLT5wYWdlX2JvdW5k
YXJ5KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2xvZygiQWxsb2NhdGluZyBhIHBhZ2UuXG4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7CisgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSA9IHBhZ2Vf
Y29uZmlnLmJhc2UucGFnZV9hbGxvY2F0b3Ioc2l6ZV9kaXJlY3RvcnktPmhlYXApOworICAgICAg
ICAgICAgICAgICAgICBpZiAoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19sb2coIkNyZWF0aW5nIHBhZ2UgaGVhZGVyIGZvciBuZXcgZXhjbHVzaXZlIHBhZ2UsIGJv
dW5kYXJ5ID0gJXAuXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhj
bHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKICAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9w
YWdlX2hlYWRlcigKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3Vu
ZGFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQpOworICAgICAg
ICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9j
a19ob2xkX21vZGUpOworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19sb2coIkdvdCBwYWdlID0gJXAuXG4iLCBleGNsdXNpdmUtPnBh
Z2VfYm91bmRhcnkpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwYXNfaGVh
cF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgICAg
ICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJHb3Qg
cGFnZSA9ICVwLlxuIiwgZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKLSAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkp
IHsKLSAgICAgICAgICAgICAgICAvKiBPdXQgb2YgbWVtb3J5LiAqLwotICAgICAgICAgICAgICAg
IHJldHVybiBOVUxMOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhfbnVtX2xvY2tzX2hlbGQgPSAxOwotICAgICAgICAg
ICAgcGFzX2xvY2sqIGxvY2tzX2hlbGRbbWF4X251bV9sb2Nrc19oZWxkXTsKLSAgICAgICAgICAg
IHNpemVfdCBudW1fbG9ja3NfaGVsZDsKLSAgICAgICAgICAgIGJvb2wgZGlkX2xvY2tfbG9jazsK
KyAgICAgICAgICAgICAgICBpZiAoIWV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSkgeworICAgICAg
ICAgICAgICAgICAgICAvKiBPdXQgb2YgbWVtb3J5LiAqLworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gTlVMTDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4X251bV9sb2Nrc19oZWxkID0gMTsK
KyAgICAgICAgICAgICAgICBwYXNfbG9jayogbG9ja3NfaGVsZFttYXhfbnVtX2xvY2tzX2hlbGRd
OworICAgICAgICAgICAgICAgIHNpemVfdCBudW1fbG9ja3NfaGVsZDsKKyAgICAgICAgICAgICAg
ICBib29sIGRpZF9sb2NrX2xvY2s7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIEF0IHRo
aXMgcG9pbnQgbm9ib2R5IGJ1dCB1cyBjYW4gKmluaXRpYXRlKiBhbnl0aGluZyBvbiB0aGlzIHBh
Z2UuIEJ1dCBpdCdzCi0gICAgICAgICAgICAgICBwb3NzaWJsZSB0aGF0IHdob2V2ZXIgZGVjb21t
aXR0ZWQgdGhpcyBwYWdlIGlzbid0IGFjdHVhbGx5IGRvbmUgZGVjb21taXR0aW5nCi0gICAgICAg
ICAgICAgICB5ZXQuIFNvIHdlIGdyYWIgdGhlIGNvbW1pdCBsb2NrIGZvciB0aGlzIHBhZ2UgdG8g
ZW5zdXJlIHRoYXQgd2UgYXJlIHRoZSBvbmVzCi0gICAgICAgICAgICAgICB3aG8gZ2V0IHRvIGRv
IGl0LiBOb3RlIHRoYXQgaWYgdGhlIGhlYXAgbG9jayBpcyBoZWxkIHRoZW4gd2UgaGF2ZSB0byBk
byB0aGlzCi0gICAgICAgICAgICAgICB2aWEgdGhlIHBoeXNpY2FsIG1lbW9yeSB0cmFuc2FjdGlv
bi4gQWxzbyBub3RlIHRoYXQgaXQncyB2ZXJ5IHVubGlrZWx5IHRoYXQKLSAgICAgICAgICAgICAg
IHRoZSBjb21taXQgbG9jayBpcyBoZWxkIGhlcmUsIHNpbmNlIHdlIHRyeSB0byBvbmx5IGRlY29t
bWl0IHBhZ2VzIHRoYXQgYXJlCi0gICAgICAgICAgICAgICB1bmxpa2VseSB0byBiZSB1c2VkIGFu
eXRpbWUgc29vbi4gKi8KKyAgICAgICAgICAgICAgICAvKiBBdCB0aGlzIHBvaW50IG5vYm9keSBi
dXQgdXMgY2FuICppbml0aWF0ZSogYW55dGhpbmcgb24gdGhpcyBwYWdlLiBCdXQgaXQncworICAg
ICAgICAgICAgICAgICAgIHBvc3NpYmxlIHRoYXQgd2hvZXZlciBkZWNvbW1pdHRlZCB0aGlzIHBh
Z2UgaXNuJ3QgYWN0dWFsbHkgZG9uZSBkZWNvbW1pdHRpbmcKKyAgICAgICAgICAgICAgICAgICB5
ZXQuIFNvIHdlIGdyYWIgdGhlIGNvbW1pdCBsb2NrIGZvciB0aGlzIHBhZ2UgdG8gZW5zdXJlIHRo
YXQgd2UgYXJlIHRoZSBvbmVzCisgICAgICAgICAgICAgICAgICAgd2hvIGdldCB0byBkbyBpdC4g
Tm90ZSB0aGF0IGlmIHRoZSBoZWFwIGxvY2sgaXMgaGVsZCB0aGVuIHdlIGhhdmUgdG8gZG8gdGhp
cworICAgICAgICAgICAgICAgICAgIHZpYSB0aGUgcGh5c2ljYWwgbWVtb3J5IHRyYW5zYWN0aW9u
LiBBbHNvIG5vdGUgdGhhdCBpdCdzIHZlcnkgdW5saWtlbHkgdGhhdAorICAgICAgICAgICAgICAg
ICAgIHRoZSBjb21taXQgbG9jayBpcyBoZWxkIGhlcmUsIHNpbmNlIHdlIHRyeSB0byBvbmx5IGRl
Y29tbWl0IHBhZ2VzIHRoYXQgYXJlCisgICAgICAgICAgICAgICAgICAgdW5saWtlbHkgdG8gYmUg
dXNlZCBhbnl0aW1lIHNvb24uICovCiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG51bV9sb2Nr
c19oZWxkID0gMDsKLSAgICAgICAgICAgIGRpZF9sb2NrX2xvY2sgPSBmYWxzZTsKKyAgICAgICAg
ICAgICAgICBudW1fbG9ja3NfaGVsZCA9IDA7CisgICAgICAgICAgICAgICAgZGlkX2xvY2tfbG9j
ayA9IGZhbHNlOwogCi0gICAgICAgICAgICAvKiBUaGUgdXRpbGl0eSBoZWFwIGRvZXMgYWxsIGNv
bW1pdC9kZWNvbW1pdCB1bmRlciB0aGUgaGVhcCBsb2NrLCBzbyB3ZSBkb24ndCBuZWVkIHRvCi0g
ICAgICAgICAgICAgICBwbGF5IGFueSBnYW1lcyB3aXRoIHRoZSBjb21taXQgbG9jay4gICovCi0g
ICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdl
X2NvbmZpZykpCi0gICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwot
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVChoZWFwX2xvY2tf
aG9sZF9tb2RlID09IHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLSAgICAgICAgICAgICAgICBwYXNf
bG9ja19sb2NrKCZleGNsdXNpdmUtPmNvbW1pdF9sb2NrKTsKLSAgICAgICAgICAgICAgICBsb2Nr
c19oZWxkW251bV9sb2Nrc19oZWxkKytdID0gJmV4Y2x1c2l2ZS0+Y29tbWl0X2xvY2s7Ci0gICAg
ICAgICAgICAgICAgZGlkX2xvY2tfbG9jayA9IHRydWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKyAgICAgICAgICAgICAgICAvKiBUaGUgdXRpbGl0
eSBoZWFwIGRvZXMgYWxsIGNvbW1pdC9kZWNvbW1pdCB1bmRlciB0aGUgaGVhcCBsb2NrLCBzbyB3
ZSBkb24ndCBuZWVkIHRvCisgICAgICAgICAgICAgICAgICAgcGxheSBhbnkgZ2FtZXMgd2l0aCB0
aGUgY29tbWl0IGxvY2suICAqLworICAgICAgICAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2VfY29uZmlnKSkKKyAgICAgICAgICAgICAgICAgICAg
cGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworICAgICAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKGhlYXBfbG9ja19ob2xkX21vZGUgPT0gcGFzX2xv
Y2tfaXNfbm90X2hlbGQpOworICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZleGNs
dXNpdmUtPmNvbW1pdF9sb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgbG9ja3NfaGVsZFtudW1f
bG9ja3NfaGVsZCsrXSA9ICZleGNsdXNpdmUtPmNvbW1pdF9sb2NrOworICAgICAgICAgICAgICAg
ICAgICBkaWRfbG9ja19sb2NrID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIFBB
U19BU1NFUlQobnVtX2xvY2tzX2hlbGQgPD0gbWF4X251bV9sb2Nrc19oZWxkKTsKKyAgICAgICAg
ICAgICAgICBQQVNfQVNTRVJUKG51bV9sb2Nrc19oZWxkIDw9IG1heF9udW1fbG9ja3NfaGVsZCk7
CiAKLSAgICAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfY2FuX2RvX3NoYXJp
bmcoc2l6ZV9kaXJlY3RvcnlfYmFzZSkpIHsKLSAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9mb3JfcGFnZV9jb25maWcoCi0gICAgICAgICAgICAgICAg
ICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplLAotICAgICAgICAgICAgICAgICAgICBwYWdl
X2NvbmZpZy5iYXNlLnBhZ2VfY29uZmlnX3B0ciwKLSAgICAgICAgICAgICAgICAgICAgaGVhcF9s
b2NrX2hvbGRfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgbG9ja3NfaGVsZCwKLSAgICAgICAg
ICAgICAgICAgICAgbnVtX2xvY2tzX2hlbGQpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfY2FuX2RvX3NoYXJpbmcoc2l6ZV9kaXJl
Y3RvcnlfYmFzZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hh
cmluZ19wb29sX3Rha2VfZm9yX3BhZ2VfY29uZmlnKAorICAgICAgICAgICAgICAgICAgICAgICAg
cGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICBwYWdl
X2NvbmZpZy5iYXNlLnBhZ2VfY29uZmlnX3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhl
YXBfbG9ja19ob2xkX21vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICBsb2Nrc19oZWxkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgbnVtX2xvY2tzX2hlbGQpOworICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdChleGNs
dXNpdmUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsKLSAgICAg
ICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygiQ3JlYXRpbmcg
cGFnZSBoZWFkZXIgd2hlbiBjb21taXR0aW5nIGV4Y2x1c2l2ZSBwYWdlLCB2aWV3ID0gJXAsICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICJib3VuZGFyeSA9ICVwLlxuIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGV4Y2x1c2l2ZSwgZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVy
KAotICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwKLSAgICAgICAgICAg
ICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgICAgICAgICBwYXNfcGFnZV9tYWxs
b2NfY29tbWl0KGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcuYmFzZS5wYWdl
X3NpemUpOworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2coIkNyZWF0aW5nIHBhZ2UgaGVhZGVyIHdoZW4gY29tbWl0dGluZyBleGNsdXNp
dmUgcGFnZSwgdmlldyA9ICVwLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJvdW5k
YXJ5ID0gJXAuXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZSwgZXhj
bHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgcGFnZV9jb25maWcuYmFzZS5jcmVhdGVfcGFnZV9oZWFkZXIoCisgICAgICAgICAgICAgICAg
ICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwKKyAgICAgICAgICAgICAgICAgICAgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19jb21waWxlcl9m
ZW5jZSgpOwotICAgICAgICAgICAgaWYgKGRpZF9sb2NrX2xvY2spCi0gICAgICAgICAgICAgICAg
cGFzX2xvY2tfdW5sb2NrKCZleGNsdXNpdmUtPmNvbW1pdF9sb2NrKTsKLQotICAgICAgICAgICAg
aWYgKFBBU19ERUJVR19TUEVDVFJVTV9VU0VfRk9SX0NPTU1JVCkgewotICAgICAgICAgICAgICAg
IHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwot
ICAgICAgICAgICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoCi0gICAgICAgICAgICAgICAg
ICAgIHNpemVfZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
ZHVtcF9mb3Jfc3BlY3RydW0sCi0gICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2Uu
cGFnZV9zaXplKTsKLSAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRp
b25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICAgICAgICAgIHBhc19jb21waWxl
cl9mZW5jZSgpOworICAgICAgICAgICAgICAgIGlmIChkaWRfbG9ja19sb2NrKQorICAgICAgICAg
ICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJmV4Y2x1c2l2ZS0+Y29tbWl0X2xvY2spOworCisg
ICAgICAgICAgICAgICAgaWYgKFBBU19ERUJVR19TUEVDVFJVTV9VU0VfRk9SX0NPTU1JVCkgewor
ICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVt
X2FkZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfZGlyZWN0b3J5LCBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAgICAgICAgICAgICAg
cGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsK
KyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uc3RydWN0KAotICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnlfdW5jaGVja2VkKGV4Y2x1c2l2ZS0+cGFnZV9ib3Vu
ZGFyeSwgcGFnZV9jb25maWcpLAotICAgICAgICAgICAgaW5lbGlnaWJsZV9vd25pbmdfdmlldywK
LSAgICAgICAgICAgIHdhc19zdG9sZW4sCi0gICAgICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcqKXBhZ2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyKTsKLQotICAgICAgICBw
YXNfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoJmV4Y2x1c2l2ZS0+b3duZXJzaGlwX2xvY2ssIGhl
YXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICBleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kID0K
LSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5k
X3dpdGhfb3duZWQoZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCwgdHJ1ZSk7Ci0gICAgICAgIGlm
ICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25lcnNoaXAg
a2luZCA9ICVzIGR1ZSB0byBleGNsdXNpdmUgd2lsbF9zdGFydF9hbGxvY2F0aW5nXG4iLAotICAg
ICAgICAgICAgICAgICAgICBleGNsdXNpdmUsCi0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2dldF9zdHJpbmcoCi0gICAgICAg
ICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIH0K
LSAgICAgICAgcGFzX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoJmV4Y2x1c2l2ZS0+b3duZXJz
aGlwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgIH0KKyAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uc3RydWN0KAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfZm9yX2JvdW5kYXJ5X3VuY2hlY2tlZChleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksIHBh
Z2VfY29uZmlnKSwKKyAgICAgICAgICAgICAgICBpbmVsaWdpYmxlX293bmluZ192aWV3LAorICAg
ICAgICAgICAgICAgIHdhc19zdG9sZW4sCisgICAgICAgICAgICAgICAgKHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnKilwYWdlX2NvbmZpZy5iYXNlLnBhZ2VfY29uZmlnX3B0cik7CiAKLSAgICBQ
QVNfVEVTVElOR19BU1NFUlQoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKKyAgICAgICAgICAg
IHBhc19sb2NrX2xvY2tfY29uZGl0aW9uYWxseSgmZXhjbHVzaXZlLT5vd25lcnNoaXBfbG9jaywg
aGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICBleGNsdXNpdmUtPmlzX293bmVkID0g
dHJ1ZTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgcGFzX2xv
ZygidmlldyAlcCBoYXMgaXMgb3duZWQgPSB0cnVlIGR1ZSB0byBleGNsdXNpdmUgd2lsbF9zdGFy
dF9hbGxvY2F0aW5nXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZl
eGNsdXNpdmUtPm93bmVyc2hpcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAg
fQogCi0gICAgcmV0dXJuIHZpZXc7CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChleGNsdXNp
dmUtPnBhZ2VfYm91bmRhcnkpOwogCi1wYXJ0aWFsX3ZpZXdfY2FzZToKLSAgICBwYXJ0aWFsID0g
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KTsKLSAgICAKLSAgICBzaXplX2Rp
cmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFsLT5kaXJlY3RvcnkpOwotICAgIHNpemVfZGlyZWN0b3J5
X2Jhc2UgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7Ci0gICAgaGVhcCA9IHNpemVfZGlyZWN0b3J5
LT5oZWFwOwotICAgIHNoYXJlZF9wYWdlX2RpcmVjdG9yeSA9IHBhZ2VfY29uZmlnLnNoYXJlZF9w
YWdlX2RpcmVjdG9yeV9zZWxlY3RvcihoZWFwLCBzaXplX2RpcmVjdG9yeSk7Ci0gICAgc2hhcmVk
X3BhZ2VfZGlyZWN0b3J5X2Jhc2UgPSAmc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LT5iYXNlOwotICAg
IGhlYXBfbG9ja19ob2xkX21vZGUgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xv
Y2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKTsKLQotICAgIHNoYXJlZF92aWV3ID0gcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHJfbG9hZCgmcGFydGlhbC0+c2hhcmVkX3ZpZXcp
OwotICAgIGlmICghc2hhcmVkX3ZpZXcpIHsKLSAgICAgICAgLyogV2UgaGF2ZSBhIHByaW1vcmRp
YWwgcGFydGlhbCB2aWV3ISBMZXQgdGhlIGxvY2FsIGFsbG9jYXRvciB3b3JyeSBhYm91dCBpdC4g
VGhlcmUncwotICAgICAgICAgICBub3RoaW5nIHdlIGNhbiBkbyBzaW5jZSB3ZSBkb24ndCByZWFs
bHkgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24uIFRoaXMgcGF0aCBoYXMgdG8gZG8KLSAgICAgICAg
ICAgdGhpcyBjYXJlZnVsIGRhbmNlIHdoZXJlIGl0IGF0b21pY2FsbHkgcGlja3MgYSBzaGFyZWQg
dmlldyBhbmQgYWxsb2NhdGVzIHNvbWV0aGluZwotICAgICAgICAgICBmcm9tIGl0LCBhbmQgdGhl
biB0aGF0IHNvbWV0aGluZyBoYXMgdG8gYmUgaW1tZWRpYXRlbHkgc2hvdmVkIGludG8gdGhlIGxv
Y2FsCi0gICAgICAgICAgIGFsbG9jYXRvci4gKi8KICAgICAgICAgcmV0dXJuIHZpZXc7CiAgICAg
fQorICAgICAgICAKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOiB7
CisgICAgICAgIHBhcnRpYWwgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYXJ0aWFsKHZpZXcp
OworICAgIAorICAgICAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnBhcnRpYWwtPmRpcmVjdG9yeSk7Cisg
ICAgICAgIHNpemVfZGlyZWN0b3J5X2Jhc2UgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7CisgICAg
ICAgIGhlYXAgPSBzaXplX2RpcmVjdG9yeS0+aGVhcDsKKyAgICAgICAgc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5ID0gcGFnZV9jb25maWcuc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yKGhlYXAs
IHNpemVfZGlyZWN0b3J5KTsKKyAgICAgICAgc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2Jhc2UgPSAm
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5LT5iYXNlOworICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2Rl
ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2Nv
bmZpZyk7CiAKLSAgICBwYXNfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoJnNoYXJlZF92aWV3LT5j
b21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgIHNoYXJlZF92aWV3ID0g
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHJfbG9hZCgmcGFydGlhbC0+c2hh
cmVkX3ZpZXcpOworICAgICAgICBpZiAoIXNoYXJlZF92aWV3KSB7CisgICAgICAgICAgICAvKiBX
ZSBoYXZlIGEgcHJpbW9yZGlhbCBwYXJ0aWFsIHZpZXchIExldCB0aGUgbG9jYWwgYWxsb2NhdG9y
IHdvcnJ5IGFib3V0IGl0LiBUaGVyZSdzCisgICAgICAgICAgICAgICBub3RoaW5nIHdlIGNhbiBk
byBzaW5jZSB3ZSBkb24ndCByZWFsbHkgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24uIFRoaXMgcGF0
aCBoYXMgdG8gZG8KKyAgICAgICAgICAgICAgIHRoaXMgY2FyZWZ1bCBkYW5jZSB3aGVyZSBpdCBh
dG9taWNhbGx5IHBpY2tzIGEgc2hhcmVkIHZpZXcgYW5kIGFsbG9jYXRlcyBzb21ldGhpbmcKKyAg
ICAgICAgICAgICAgIGZyb20gaXQsIGFuZCB0aGVuIHRoYXQgc29tZXRoaW5nIGhhcyB0byBiZSBp
bW1lZGlhdGVseSBzaG92ZWQgaW50byB0aGUgbG9jYWwKKyAgICAgICAgICAgICAgIGFsbG9jYXRv
ci4gKi8KKyAgICAgICAgICAgIHJldHVybiB2aWV3OworICAgICAgICB9CiAKLSAgICBzaGFyZWRf
aGFuZGxlID0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY29tbWl0X3BhZ2VfaWZfbmVjZXNz
YXJ5KAotICAgICAgICBzaGFyZWRfdmlldywgaGVhcCwgc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LCBw
YXJ0aWFsLCBwYWdlX2NvbmZpZyk7CisgICAgICAgIHBhc19sb2NrX2xvY2tfY29uZGl0aW9uYWxs
eSgmc2hhcmVkX3ZpZXctPmNvbW1pdF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAotICAg
IGlmICghc2hhcmVkX2hhbmRsZSkgewotICAgICAgICAvKiBUaGlzIG1lYW5zIE9PTSAqLwotICAg
ICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgmc2hhcmVkX3ZpZXctPmNvbW1pdF9s
b2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQor
ICAgICAgICBzaGFyZWRfaGFuZGxlID0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY29tbWl0
X3BhZ2VfaWZfbmVjZXNzYXJ5KAorICAgICAgICAgICAgc2hhcmVkX3ZpZXcsIGhlYXAsIHNoYXJl
ZF9wYWdlX2RpcmVjdG9yeSwgcGFydGlhbCwgcGFnZV9jb25maWcpOworCisgICAgICAgIGlmICgh
c2hhcmVkX2hhbmRsZSkgeworICAgICAgICAgICAgLyogVGhpcyBtZWFucyBPT00gKi8KKyAgICAg
ICAgICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZzaGFyZWRfdmlldy0+Y29tbWl0
X2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cisg
ICAgICAgIH0KIAotICAgIGlmICghcGFydGlhbC0+aXNfYXR0YWNoZWRfdG9fc2hhcmVkX2hhbmRs
ZSkgewotICAgICAgICB1bnNpZ25lZCogZnVsbF9hbGxvY19iaXRzOwotICAgICAgICB1bnNpZ25l
ZCBiZWdpbl93b3JkX2luZGV4OwotICAgICAgICB1bnNpZ25lZCBlbmRfd29yZF9pbmRleDsKLSAg
ICAgICAgdW5zaWduZWQgd29yZF9pbmRleDsKLSAgICAgICAgCi0gICAgICAgIGZ1bGxfYWxsb2Nf
Yml0cyA9IHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfbG9hZF9ub25fbnVsbCgmcGFy
dGlhbC0+YWxsb2NfYml0cyk7Ci0gICAgICAgIAotICAgICAgICBiZWdpbl93b3JkX2luZGV4ID0g
cGFydGlhbC0+YWxsb2NfYml0c19vZmZzZXQ7Ci0gICAgICAgIGVuZF93b3JkX2luZGV4ID0gYmVn
aW5fd29yZF9pbmRleCArIHBhcnRpYWwtPmFsbG9jX2JpdHNfc2l6ZTsKLSAgICAgICAgCi0gICAg
ICAgIGlmIChwYWdlX2NvbmZpZy5zaGFyaW5nX3NoaWZ0ID09IFBBU19CSVRWRUNUT1JfV09SRF9T
SElGVCkgewotICAgICAgICAgICAgZm9yICh3b3JkX2luZGV4ID0gYmVnaW5fd29yZF9pbmRleDsg
d29yZF9pbmRleCA8IGVuZF93b3JkX2luZGV4OyArK3dvcmRfaW5kZXgpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoZnVsbF9hbGxvY19iaXRzW3dvcmRfaW5kZXhdKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIFBBU19BU1NFUlQoIXBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
d19wdHJfbG9hZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX2hh
bmRsZS0+cGFydGlhbF92aWV3cyArIHdvcmRfaW5kZXgpKTsKLSAgICAgICAgICAgICAgICAgICAg
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0cl9zdG9yZSgKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9oYW5kbGUtPnBhcnRpYWxfdmlld3MgKyB3b3Jk
X2luZGV4LCBwYXJ0aWFsKTsKKyAgICAgICAgaWYgKCFwYXJ0aWFsLT5pc19hdHRhY2hlZF90b19z
aGFyZWRfaGFuZGxlKSB7CisgICAgICAgICAgICB1bnNpZ25lZCogZnVsbF9hbGxvY19iaXRzOwor
ICAgICAgICAgICAgdW5zaWduZWQgYmVnaW5fd29yZF9pbmRleDsKKyAgICAgICAgICAgIHVuc2ln
bmVkIGVuZF93b3JkX2luZGV4OworICAgICAgICAgICAgdW5zaWduZWQgd29yZF9pbmRleDsKKyAg
ICAgICAgCisgICAgICAgICAgICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfY29tcGFjdF90YWdnZWRf
dW5zaWduZWRfcHRyX2xvYWRfbm9uX251bGwoJnBhcnRpYWwtPmFsbG9jX2JpdHMpOworICAgICAg
ICAKKyAgICAgICAgICAgIGJlZ2luX3dvcmRfaW5kZXggPSBwYXJ0aWFsLT5hbGxvY19iaXRzX29m
ZnNldDsKKyAgICAgICAgICAgIGVuZF93b3JkX2luZGV4ID0gYmVnaW5fd29yZF9pbmRleCArIHBh
cnRpYWwtPmFsbG9jX2JpdHNfc2l6ZTsKKyAgICAgICAgCisgICAgICAgICAgICBpZiAocGFnZV9j
b25maWcuc2hhcmluZ19zaGlmdCA9PSBQQVNfQklUVkVDVE9SX1dPUkRfU0hJRlQpIHsKKyAgICAg
ICAgICAgICAgICBmb3IgKHdvcmRfaW5kZXggPSBiZWdpbl93b3JkX2luZGV4OyB3b3JkX2luZGV4
IDwgZW5kX3dvcmRfaW5kZXg7ICsrd29yZF9pbmRleCkgeworICAgICAgICAgICAgICAgICAgICBp
ZiAoZnVsbF9hbGxvY19iaXRzW3dvcmRfaW5kZXhdKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBQQVNfQVNTRVJUKCFwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdf
cHRyX2xvYWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRf
aGFuZGxlLT5wYXJ0aWFsX3ZpZXdzICsgd29yZF9pbmRleCkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0cl9zdG9y
ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfaGFuZGxlLT5wYXJ0aWFsX3Zp
ZXdzICsgd29yZF9pbmRleCwgcGFydGlhbCk7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBmb3IgKHdvcmRfaW5kZXggPSBiZWdpbl93b3JkX2luZGV4OyB3b3JkX2luZGV4IDwgZW5kX3dv
cmRfaW5kZXg7ICsrd29yZF9pbmRleCkgewotICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZ1bGxf
YWxsb2Nfd29yZDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9yICh3
b3JkX2luZGV4ID0gYmVnaW5fd29yZF9pbmRleDsgd29yZF9pbmRleCA8IGVuZF93b3JkX2luZGV4
OyArK3dvcmRfaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgZnVsbF9hbGxv
Y193b3JkOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGZ1bGxfYWxsb2Nfd29y
ZCA9IGZ1bGxfYWxsb2NfYml0c1t3b3JkX2luZGV4XTsKLSAgICAgICAgICAgICAgICBpZiAoIWZ1
bGxfYWxsb2Nfd29yZCkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bGxfYWxsb2Nfd29yZCA9IGZ1bGxfYWxsb2NfYml0c1t3b3JkX2luZGV4XTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFmdWxsX2FsbG9jX3dvcmQpCisgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfdGVsbF9zaGFyZWRfaGFuZGxlX2Zvcl93b3JkX2dl
bmVyYWxfY2FzZSgKLSAgICAgICAgICAgICAgICAgICAgcGFydGlhbCwgc2hhcmVkX2hhbmRsZSwg
d29yZF9pbmRleCwgZnVsbF9hbGxvY193b3JkLCBwYWdlX2NvbmZpZy5zaGFyaW5nX3NoaWZ0KTsK
KyAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3RlbGxfc2hh
cmVkX2hhbmRsZV9mb3Jfd29yZF9nZW5lcmFsX2Nhc2UoCisgICAgICAgICAgICAgICAgICAgICAg
ICBwYXJ0aWFsLCBzaGFyZWRfaGFuZGxlLCB3b3JkX2luZGV4LCBmdWxsX2FsbG9jX3dvcmQsIHBh
Z2VfY29uZmlnLnNoYXJpbmdfc2hpZnQpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KLSAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgcGFzX2xvY2tfbG9jaygmc2hhcmVkX3Zp
ZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgcGFydGlhbC0+aXNfYXR0YWNoZWRfdG9fc2hh
cmVkX2hhbmRsZSA9IHRydWU7Ci0gICAgICAgIHBhc19sb2NrX3VubG9jaygmc2hhcmVkX3ZpZXct
Pm93bmVyc2hpcF9sb2NrKTsKLSAgICB9CisgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZzaGFy
ZWRfdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICAgICAgcGFydGlhbC0+aXNfYXR0YWNo
ZWRfdG9fc2hhcmVkX2hhbmRsZSA9IHRydWU7CisgICAgICAgICAgICBwYXNfbG9ja191bmxvY2so
JnNoYXJlZF92aWV3LT5vd25lcnNoaXBfbG9jayk7CisgICAgICAgIH0KIAotICAgIGlmIChwYWdl
X2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplKSB7
Ci0gICAgICAgIC8qIFdlIGFsd2F5cyBtYW5hZ2UgcGFydGlhbCBjb21taXQgb2YgbWVkaXVtIHBh
Z2VzIHVuZGVyIHRoZSBjb21taXQgbG9jay4gT3RoZXJ3aXNlLAotICAgICAgICAgICBtdWx0aXBs
ZSBydW5zIG9mIHRoaXMgZnVuY3Rpb24gY291bGQgaW50ZXJsZWF2ZSBpbiB3ZWlyZCB3YXlzLiAq
LwotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOwotICAgICAgICBwYXNfbG9jayog
aGVsZF9sb2NrOwotCi0gICAgICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3Vu
ZGFyeShzaGFyZWRfaGFuZGxlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyk7Ci0gICAgICAg
IGhlbGRfbG9jayA9IE5VTEw7Ci0gICAgICAgIAotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X3N3aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb21taXRfZnVsbHkoCi0gICAgICAgICAgICBwYWdlLCAmaGVsZF9s
b2NrLCBwYXNfY29tbWl0X2Z1bGx5X2hvbGRpbmdfcGFnZV9hbmRfY29tbWl0X2xvY2tzKTsKLSAg
ICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotICAgIH0KKyAgICAgICAg
aWYgKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplID4gcGFnZV9jb25maWcuYmFzZS5ncmFudWxl
X3NpemUpIHsKKyAgICAgICAgICAgIC8qIFdlIGFsd2F5cyBtYW5hZ2UgcGFydGlhbCBjb21taXQg
b2YgbWVkaXVtIHBhZ2VzIHVuZGVyIHRoZSBjb21taXQgbG9jay4gT3RoZXJ3aXNlLAorICAgICAg
ICAgICAgICAgbXVsdGlwbGUgcnVucyBvZiB0aGlzIGZ1bmN0aW9uIGNvdWxkIGludGVybGVhdmUg
aW4gd2VpcmQgd2F5cy4gKi8KKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7
CisgICAgICAgICAgICBwYXNfbG9jayogaGVsZF9sb2NrOworCisgICAgICAgICAgICBwYWdlID0g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkoc2hhcmVkX2hhbmRsZS0+cGFnZV9ib3Vu
ZGFyeSwgcGFnZV9jb25maWcpOworICAgICAgICAgICAgaGVsZF9sb2NrID0gTlVMTDsKKyAgICAg
ICAgCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBhZ2UsICZo
ZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29tbWl0X2Z1bGx5KAorICAgICAgICAgICAgICAgIHBhZ2UsICZoZWxkX2xvY2ssIHBhc19jb21t
aXRfZnVsbHlfaG9sZGluZ19wYWdlX2FuZF9jb21taXRfbG9ja3MpOworICAgICAgICAgICAgcGFz
X2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgICAgICB9CiAKLSAgICAvKiBBdCB0
aGlzIHBvaW50IHRoZSBzaGFyZWQgaGFuZGxlIGtub3dzIGFib3V0IHRoaXMgcGFydGlhbCB2aWV3
IGFuZCB0aGlzIHBhcnRpYWwgdmlldwotICAgICAgIGlzIGluZWxpZ2libGUuIFRoaXMgYWN0cyBh
cyBhIGhvbGQgb24gdGhlIHNoYXJlZCB2aWV3OiBldmVuIGlmIHdlIHJlbGVhc2UgdGhlIGNvbW1p
dAotICAgICAgIGxvY2ssIHRoYXQgc2hhcmVkIHZpZXcgY2Fubm90IGJlIGRlY29tbWl0dGVkLCBl
dmVuIHRob3VnaCBpdCBtYXkgYmUgZW1wdHkuICovCisgICAgICAgIC8qIEF0IHRoaXMgcG9pbnQg
dGhlIHNoYXJlZCBoYW5kbGUga25vd3MgYWJvdXQgdGhpcyBwYXJ0aWFsIHZpZXcgYW5kIHRoaXMg
cGFydGlhbCB2aWV3CisgICAgICAgICAgIGlzIGluZWxpZ2libGUuIFRoaXMgYWN0cyBhcyBhIGhv
bGQgb24gdGhlIHNoYXJlZCB2aWV3OiBldmVuIGlmIHdlIHJlbGVhc2UgdGhlIGNvbW1pdAorICAg
ICAgICAgICBsb2NrLCB0aGF0IHNoYXJlZCB2aWV3IGNhbm5vdCBiZSBkZWNvbW1pdHRlZCwgZXZl
biB0aG91Z2ggaXQgbWF5IGJlIGVtcHR5LiAqLwogCi0gICAgcGFzX2xvY2tfdW5sb2NrX2NvbmRp
dGlvbmFsbHkoJnNoYXJlZF92aWV3LT5jb21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CisgICAgICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZzaGFyZWRfdmlldy0+Y29t
bWl0X2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCi0gICAgcmV0dXJuIHZpZXc7CisgICAg
ICAgIHJldHVybiB2aWV3OworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBQQVNfQVNTRVJU
KCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0K
IH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKQEAgLTM5NCwxMyArMzE1LDggQEAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKAogewogICAgIHN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3KiBleGNsdXNpdmU7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBvd25pbmdf
ZGlyZWN0b3J5OwotICAgIHVuc2lnbmVkIGluZGV4X2luX293bmluZzsKICAgICBib29sIHNob3Vs
ZF9ub3RpZnlfZWxpZ2liaWxpdHk7CiAgICAgYm9vbCBzaG91bGRfbm90aWZ5X2VtcHRpbmVzczsK
LSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICB1bnNpZ25lZCB2
aWV3X2luZGV4OwogCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkRpZCBzdG9w
IGFsbG9jYXRpbmcgaW4gdmlldyAlcCwgcGFnZSAlcC5cbiIsIHZpZXcsIHBhZ2UpOwpAQCAtNDA4
LDMxICszMjQsMzQgQEAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKAog
ICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkgewogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDogeworICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOworICAgICAgICAKICAgICAgICAgaWYg
KHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCJJdCdzIGV4Y2x1c2l2ZS5cbiIpOwogICAg
ICAgICBleGNsdXNpdmUgPSAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqKXBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKLSAgICAgICAgb3duaW5nX2RpcmVjdG9yeSA9Ci0g
ICAgICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJmV4Y2x1c2l2ZS0+ZGlyZWN0b3J5KS0+YmFzZTsKLSAgICAgICAg
aW5kZXhfaW5fb3duaW5nID0gZXhjbHVzaXZlLT5pbmRleDsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOiB7Ci0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2luZzsKLSAgICAgICAgaWYgKHZlcmJvc2Up
Ci0gICAgICAgICAgICBwYXNfbG9nKCJJdCdzIGJpYXNpbmcuXG4iKTsKLSAgICAgICAgYmlhc2lu
ZyA9IChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3B0cih2aWV3KTsKLSAgICAgICAgZXhjbHVzaXZlID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoJmJpYXNpbmctPmV4Y2x1c2l2
ZSk7Ci0gICAgICAgIG93bmluZ19kaXJlY3RvcnkgPQotICAgICAgICAgICAgJnBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJmJpYXNpbmct
PmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgICAgIGluZGV4X2luX293bmluZyA9IGJpYXNpbmctPmlu
ZGV4OwotICAgICAgICBicmVhazsKKworICAgICAgICBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5
ID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAocGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZp
Y2F0aW9uX2hhc19iZWVuX2RlZmVycmVkKSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgICAgICAgICBwYXNfbG9nKCJFbGlnaWJpbGl0eSBub3RpZmljYXRpb24gaGFzIGJlZW4g
ZGVmZXJyZWQuXG4iKTsKKyAgICAgICAgICAgIHBhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlv
bl9oYXNfYmVlbl9kZWZlcnJlZCA9IGZhbHNlOworICAgICAgICAgICAgc2hvdWxkX25vdGlmeV9l
bGlnaWJpbGl0eSA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJObyBkZWZlcnJlZCBlbGlnaWJpbGl0eSBu
b3RpZmljYXRpb24uXG4iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZygKKyAgICAgICAgICAgIGV4
Y2x1c2l2ZSwgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgmZXhjbHVzaXZlLT5kaXJlY3RvcnkpLAorICAgICAgICAgICAgcGFnZSwgcGFnZV9j
b25maWcsIHNob3VsZF9ub3RpZnlfZWxpZ2liaWxpdHkpOworICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6IHsKICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsX3ZpZXc7CiAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFyZWRfdmlldzsKICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX2hhbmRsZSogc2hhcmVkX2hhbmRsZTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5OwogICAgICAgICBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5X2Jhc2U7CiAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogc2hhcmVkX3BhZ2VfZGlyZWN0b3J5OwogICAgICAg
ICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIHNoYXJlZF9wYWdlX2RpcmVjdG9yeV9iYXNlOwpA
QCAtNDQ1LDcgKzM2NCw3IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGlu
ZygKICAgICAgICAgCiAgICAgICAgIHNoYXJlZF92aWV3ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9zaGFyZWRfdmlld19wdHJfbG9hZF9ub25fbnVsbCgmcGFydGlhbF92aWV3LT5zaGFyZWRfdmll
dyk7CiAgICAgICAgIHNpemVfZGlyZWN0b3J5ID0KLSAgICAgICAgICAgIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFs
X3ZpZXctPmRpcmVjdG9yeSk7CisgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFsX3ZpZXctPmRpcmVjdG9yeSk7
CiAgICAgICAgIHNpemVfZGlyZWN0b3J5X2Jhc2UgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7CiAg
ICAgICAgIHNoYXJlZF9oYW5kbGUgPSBwYXNfdW53cmFwX3NoYXJlZF9oYW5kbGUoc2hhcmVkX3Zp
ZXctPnNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZyk7CkBAIC01MTIsNTQgKzQz
MSw2IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZygKICAgICAgICAg
UEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotCi0gICAgZGlyZWN0b3J5ID0gJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkKCZleGNsdXNpdmUtPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAg
dmlld19pbmRleCA9IGV4Y2x1c2l2ZS0+aW5kZXg7Ci0KLSAgICBpZiAodmVyYm9zZSkKLSAgICAg
ICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdGlvbiBpbiBleGNsdXNpdmUgJXAvJXAuXG4iLCBl
eGNsdXNpdmUsIHBhZ2UpOwotCi0gICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19p
c191dGlsaXR5KHBhZ2VfY29uZmlnKSkKLSAgICAgICAgcGFzX2xvY2tfdGVzdGluZ19hc3NlcnRf
aGVsZChwYWdlLT5sb2NrX3B0cik7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhZ2UtPmlzX2lu
X3VzZV9mb3JfYWxsb2NhdGlvbik7Ci0gICAgCi0gICAgc2hvdWxkX25vdGlmeV9lbGlnaWJpbGl0
eSA9IGZhbHNlOwotCi0gICAgc2hvdWxkX25vdGlmeV9lbXB0aW5lc3MgPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQoCi0gICAgICAgIHBhZ2UsIHBhZ2VfY29uZmln
KTsKLQotICAgIGlmIChwYWdlLT5lbGlnaWJpbGl0eV9ub3RpZmljYXRpb25faGFzX2JlZW5fZGVm
ZXJyZWQpIHsKLSAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICBwYXNfbG9nKCJFbGln
aWJpbGl0eSBub3RpZmljYXRpb24gaGFzIGJlZW4gZGVmZXJyZWQuXG4iKTsKLSAgICAgICAgcGFn
ZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2RlZmVycmVkID0gZmFsc2U7Ci0g
ICAgICAgIHNob3VsZF9ub3RpZnlfZWxpZ2liaWxpdHkgPSB0cnVlOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygiTm8gZGVmZXJyZWQgZWxp
Z2liaWxpdHkgbm90aWZpY2F0aW9uLlxuIik7Ci0gICAgfQotCi0gICAgcGFnZS0+aXNfaW5fdXNl
X2Zvcl9hbGxvY2F0aW9uID0gZmFsc2U7Ci0gICAgCi0gICAgaWYgKHNob3VsZF9ub3RpZnlfZWxp
Z2liaWxpdHkpIHsKLSAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICBwYXNfbG9nKCJU
ZWxsaW5nIGRpcmVjdG9yeSBhYm91dCBkZWZlcnJlZCBlbGlnaWJpbGl0eS5cbiIpOwotCi0gICAg
ICAgIC8qIFBhZ2UgbXVzdCBrbm93IHRoYXQgd2UgYXJlIGVsaWdpYmxlIGZpcnN0LiAqLwotICAg
ICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9r
aW5kKHBhZ2UtPm93bmVyKSk7Ci0gICAgICAgIAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAotICAgICAgICAgICAgb3du
aW5nX2RpcmVjdG9yeSwKLSAgICAgICAgICAgIGluZGV4X2luX293bmluZyk7Ci0gICAgfQotCi0g
ICAgLyogSXQncyBpbXBvcnRhbnQgdG8gbm90aWZ5IGVtcHRpbmVzcyBsYXN0LCBzbyB0aGF0IHdl
IG5ldmVyIGZpbmQgb3V0c2VsdmVzIGluIGEgY2FzZSB3aGVyZSB0aGUKLSAgICAgICBzY2F2ZW5n
ZXIgdGFrZXMgdGhlIGVtcHR5IGJpdCwgY2Fubm90IHRha2UgdGhlIGVsaWdpYmxlIGJpdCwgYW5k
IHRoaXMgY29kZSBoYWQgYWxyZWFkeSBzZXQgdGhlCi0gICAgICAgZW1wdHkgYml0IGJ1dCBub3Qg
dGhlIGVsaWdpYmxlIGJpdC4gKi8KLSAgICBpZiAoc2hvdWxkX25vdGlmeV9lbXB0aW5lc3MpIHsK
LSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9h
dF9pbmRleCgKLSAgICAgICAgICAgIGRpcmVjdG9yeSwKLSAgICAgICAgICAgIHZpZXdfaW5kZXgp
OwotICAgIH0KIH0KIAogUEFTX0VORF9FWFRFUk5fQzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdf
aW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaAkobm9uZXhpc3RlbnQpCkBAIC0x
LDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX1ZJRVdfSU5MSU5FU19ICi0jZGVmaW5lIFBB
U19TRUdSRUdBVEVEX1ZJRVdfSU5MSU5FU19ICi0KLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCi0KLVBBU19C
RUdJTl9FWFRFUk5fQzsKLQotc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldykKLXsKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2
ZSh2aWV3KSkKLSAgICAgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyop
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOwotICAgIHJldHVybiBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZCgKLSAgICAgICAgJigo
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIo
dmlldykpLT5leGNsdXNpdmUpOwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyog
UEFTX1NFR1JFR0FURURfVklFV19JTkxJTkVTX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19r
aW5kLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxOSAr
MzIsMTMgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBlbnVtIHBhc19zZWdyZWdhdGVkX3ZpZXdf
a2luZCB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZCwKLSAgICBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZCwgLyogSXQncyBzcGVjaWFsIHRoYXQgZXhjbHVz
aXZlIGFuZCBiaWFzaW5nIGNvbWUgZmlyc3QsIHNlZQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfZWxpZ2liaWxlKCks
IGJlbG93LiAqLwogICAgIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdf
a2luZCwgLyogUmVhbGx5IHRoZSBzYW1lIHR5cGUgYXMgZXhjbHVzaXZlX3ZpZXcsIGJ1dCB0aGlz
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
ZXRzIHVzIHVzZSB0aGUga2luZCBiaXRzIG9mIGEgdmlldyB0byBzYXkgaWYKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWdpYmlsaXR5IGhh
cyBiZWVuIG5vdGVkLiAqLwotICAgIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192
aWV3X2tpbmQsIC8qIExpa2UgaW5lbGlnaWJsZV9leGNsdXNpdmUsIGJ1dCBmb3IgYmlhc2luZy4g
SXQncwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNwZWNpYWwgdGhhdCB0aGlzIGlzIHdoZXJlIHRoaXMgaXMsIHNlZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdf
a2luZF9pc19leGNsdXNpdmVfaXNoKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmVsb3cuICovCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXdfa2luZCwKICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQsCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3ZpZXdfa2luZAogfTsKIAogdHlwZWRlZiBlbnVtIHBhc19zZWdyZWdhdGVkX3ZpZXdf
a2luZCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQ7CkBAIC01NywxNiArNTEsMTMgQEAgc3RhdGlj
IGlubGluZSBjaGFyIHBhc19zZWdyZWdhdGVkX3ZpZXdfawogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2li
bGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICdFJzsKLSAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
aW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuICdCJzsKICAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAnUyc7
CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQ6CiAgICAgICAgIHJl
dHVybiAnSCc7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKICAg
ICAgICAgcmV0dXJuICdQJzsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV92aWV3X2tpbmQ6CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAnUyc7CiAgICAgfQogICAgIFBBU19BU1NFUlQo
ISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKQEAgLTgwLDM4ICs3MSwyMiBAQCBzdGF0aWMgaW5s
aW5lIGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkCiAgICAgICAgIHJldHVybiAiZXhjbHVzaXZl
X3ZpZXciOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmll
d19raW5kOgogICAgICAgICByZXR1cm4gImluZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXciOwotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAi
Ymlhc2luZ192aWV3IjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2lu
Z192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAiaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXciOwog
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJu
ICJzaGFyZWRfdmlldyI7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tp
bmQ6CiAgICAgICAgIHJldHVybiAic2hhcmVkX2hhbmRsZSI7CiAgICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICJwYXJ0aWFsX3ZpZXciOwot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDoK
LSAgICAgICAgcmV0dXJuICJnbG9iYWxfc2l6ZV9kaXJlY3RvcnkiOworICAgIGNhc2UgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kOgorICAgICAgICByZXR1cm4gInNpemVf
ZGlyZWN0b3J5IjsKICAgICB9CiAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hl
ZCIpOwogICAgIHJldHVybiBOVUxMOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19raW5kX2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCBraW5k
KQorc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19zb21lX2V4
Y2x1c2l2ZShwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQga2luZCkKIHsKLSAgICByZXR1cm4ga2lu
ZCA8PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDsKLX0KLQotLyogSXMgdGhpcyBl
aXRoZXIgZXhjbHVzaXZlIG9yIGJpYXNpbmc/ICovCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19raW5kX2lzX2V4Y2x1c2l2ZV9pc2gocGFzX3NlZ3JlZ2F0ZWRfdmlld19r
aW5kIGtpbmQpCi17Ci0gICAgcmV0dXJuIGtpbmQgPD0gcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJs
ZV9iaWFzaW5nX3ZpZXdfa2luZDsKLX0KLQotc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdh
dGVkX3ZpZXdfa2luZF9pc19pbmVsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCBraW5k
KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfZXhjbHVzaXZlX2lz
aChraW5kKQotICAgICAgICAmJiAhcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2VsaWdpYmxl
KGtpbmQpOworICAgIHJldHVybiBraW5kIDw9IHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhj
bHVzaXZlX3ZpZXdfa2luZDsKIH0KIAogc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVk
X3ZpZXdfa2luZF9jYW5fYmVjb21lX2VtcHR5KHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCBraW5k
KQpAQCAtMTE5LDE0ICs5NCwxMiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19rCiAgICAgc3dpdGNoIChraW5kKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNs
dXNpdmVfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tp
bmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5k
OgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDoKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRs
ZV9raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Zp
ZXdfa2luZDoKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2lu
ZDoKICAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRl
ci5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw5ICszMiw3IEBACiAjaW5jbHVkZSAicGFzX2FsbF9o
ZWFwcy5oIgogI2luY2x1ZGUgInBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuaCIKICNp
bmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmgiCi0jaW5jbHVkZSAicGFzX2Jp
YXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCisj
aW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X2hl
YXAuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3NpemVfY2xhc3MuaCIKICNpbmNsdWRlICJwYXNf
Yml0Zml0X3ZpZXcuaCIKQEAgLTUwLDggKzQ4LDcgQEAKICNpbmNsdWRlICJwYXNfbGFyZ2VfdXRp
bGl0eV9mcmVlX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCiAjaW5jbHVkZSAicGFzX3Bh
Z2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
aW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKQEAgLTEzOCwyNCArMTM1LDYgQEAgc3RhdGljIHZvaWQgcmVw
b3J0X2JpdGZpdF9kaXJlY3RvcnlfY29udAogCiAgICAgICAgIG1heF9mcmVlID0gcGFzX2JpdGZp
dF9kaXJlY3RvcnlfZ2V0X21heF9mcmVlKGRpcmVjdG9yeSwgaW5kZXgpOwogCi0gICAgICAgIHN3
aXRjaCAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICBjYXNlIHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kOiB7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X3ZpZXcq
IHZpZXc7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X2RpcmVj
dG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQo
dmlldyk7Ci0KLSAgICAgICAgICAgIGlmICghcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgmdmlldy0+Ymlhc2luZ19kaXJlY3RvcnkpKSB7Ci0g
ICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiYiIpOwotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIH0KLQotICAgICAgICBjYXNlIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZDoK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBpZiAobWF4
X2ZyZWUgPT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSkKICAgICAgICAgICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIkUiKTsKICAgICAgICAgZWxzZQpAQCAtMTY1LDU2ICsxNDQsMTYg
QEAgc3RhdGljIHZvaWQgcmVwb3J0X2JpdGZpdF9kaXJlY3RvcnlfY29udAogICAgIAogICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICBFbXB0eSAoYml0KTogIiwgcHJlZml4KTsKICAg
ICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfYml0Zml0X2RpcmVjdG9yeV9zaXplKGRpcmVj
dG9yeSk7ICsraW5kZXgpIHsKLSAgICAgICAgc3dpdGNoIChkaXJlY3RvcnktPmRpcmVjdG9yeV9r
aW5kKSB7Ci0gICAgICAgIGNhc2UgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQ6IHsK
LSAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9y
eTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9IChwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIGlmIChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9p
bmRleChnbG9iYWxfZGlyZWN0b3J5LCBpbmRleCkpCi0gICAgICAgICAgICAgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAieCIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
IHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB9Ci0KLSAgICAgICAgY2FzZSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQ6
IHsKLSAgICAgICAgICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKLSAgICAgICAgICAgIHBhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KGRpcmVjdG9y
eSwgaW5kZXgpOwotICAgICAgICAgICAgaWYgKCF2aWV3KSB7Ci0gICAgICAgICAgICAgICAgcGFz
X3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBnbG9iYWxfZGlyZWN0b3J5ID0KLSAgICAgICAg
ICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25f
bnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSk7Ci0KLSAgICAgICAgICAgIGlmIChwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleCgKLSAgICAgICAgICAg
ICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSwgdmlldy0+aW5kZXhfaW5fZ2xvYmFsKSkKLSAgICAg
ICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gfQorICAgICAgICBpZiAocGFzX2JpdGZpdF9kaXJl
Y3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KSkKKyAgICAgICAg
ICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIngiKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwogICAgIH0KICAgICBwYXNfc3Ry
ZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogICAgIAotICAgIHN3aXRjaCAoZGlyZWN0b3J5LT5k
aXJlY3Rvcnlfa2luZCkgewotICAgIGNhc2UgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tp
bmQ6IHsKLSAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9iYWxfZGlyZWN0
b3J5OwotICAgICAgICAKLSAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9IChwYXNfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgcGFz
X3N0cmVhbV9wcmludGYoc3RyZWFtLCAiJXMgTGFzdCBFbXB0eSsxOiAiLCBwcmVmaXgpOwotICAg
ICAgICBkdW1wX2Fycm93KHN0cmVhbSwgKHVpbnRwdHJfdClnbG9iYWxfZGlyZWN0b3J5LT5sYXN0
X2VtcHR5X3BsdXNfb25lLnZhbHVlKTsKLSAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFt
LCAiXG4iKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBicmVhazsKLSAgICB9CisgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiJXMgTGFzdCBFbXB0eSsxOiAiLCBwcmVmaXgpOworICAgIGR1bXBf
YXJyb3coc3RyZWFtLCAodWludHB0cl90KWRpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZS52
YWx1ZSk7CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIAogICAgIHBhc19z
dHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgIENvbW1pdHRlZDogIiwgcHJlZml4KTsKICAgICBm
b3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfYml0Zml0X2RpcmVjdG9yeV9zaXplKGRpcmVjdG9y
eSk7ICsraW5kZXgpIHsKQEAgLTI1NCw2OCArMTkzLDE3IEBAIHN0YXRpYyB2b2lkIHJlcG9ydF9i
aXRmaXRfZGlyZWN0b3J5X2NvbnQKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIp
OwogfQogCi12b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpCit2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfZGly
ZWN0b3J5KAorICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSkKIHsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICAgICAg
ICAgJXMgQmlhc2luZyBEaXIgJXAoJXUpOiAiLAotICAgICAgICAgICAgICAgICAgICAgIHBhc19i
aXRmaXRfcGFnZV9jb25maWdfdmFyaWFudF9nZXRfY2FwaXRhbGl6ZWRfc3RyaW5nKAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZp
ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeS0+YmFzZS5jb25maWdf
a2luZCktPnZhcmlhbnQpLAotICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwKLSAgICAg
ICAgICAgICAgICAgICAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVfaW5kZXgoJmRp
cmVjdG9yeS0+Ymlhc2luZ19iYXNlKSk7Ci0gICAgcGFzX2hlYXBfc3VtbWFyeV9kdW1wKHBhc19i
aXRmaXRfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeSgmZGlyZWN0b3J5LT5iYXNlKSwgc3RyZWFt
KTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwotCi0gICAgcmVwb3J0X2Jp
dGZpdF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCAmZGlyZWN0b3J5LT5iYXNlLCAiICAgICAg
ICAgICAgICAgICAgICAiKTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAg
ICAgICAgICAgICAgICAgIEVsaWdpYmxlIEhXTTogIik7Ci0gICAgZHVtcF9hcnJvdyhzdHJlYW0s
ICh1aW50cHRyX3QpZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93YXRlcm1h
cmsudmFsdWUpOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0gICAgcGFz
X3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgSFdN
OiAiKTsKLSAgICBkdW1wX2Fycm93KHN0cmVhbSwgZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuY3Vy
cmVudF9oaWdoX3dhdGVybWFyayk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4i
KTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICAgICAgICAgICAgICBQ
cmV2aW91cyBIV006ICIpOwotICAgIGR1bXBfYXJyb3coc3RyZWFtLCBkaXJlY3RvcnktPmJpYXNp
bmdfYmFzZS5wcmV2aW91c19oaWdoX3dhdGVybWFyayk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYo
c3RyZWFtLCAiXG4iKTsKLX0KLQotdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wq
IGJpYXNfcG9vbDsKLSAgICAKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAg
ICAgICAlcyBHbG9iYWwgRGlyICglcCk6ICIsCiAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ192YXJpYW50X2dldF9jYXBpdGFsaXplZF9zdHJpbmcoCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmln
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LT5iYXNlLmNvbmZpZ19r
aW5kKS0+dmFyaWFudCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+Y29uZmlnX2tpbmQpLT52YXJpYW50
KSwKICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkpOwotICAgIHBhc19oZWFwX3N1bW1h
cnlfZHVtcChwYXNfYml0Zml0X2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnkoJmRpcmVjdG9yeS0+
YmFzZSksIHN0cmVhbSk7CisgICAgcGFzX2hlYXBfc3VtbWFyeV9kdW1wKHBhc19iaXRmaXRfZGly
ZWN0b3J5X2NvbXB1dGVfc3VtbWFyeShkaXJlY3RvcnkpLCBzdHJlYW0pOwogICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CiAKLSAgICByZXBvcnRfYml0Zml0X2RpcmVjdG9yeV9j
b250ZW50cyhzdHJlYW0sICZkaXJlY3RvcnktPmJhc2UsICIgICAgICAgICAgICAgICAgIik7Ci0K
LSAgICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRy
X2xvYWQoJmRpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotICAgIGlmIChiaWFzX3Bvb2wp
IHsKLSAgICAgICAgc2l6ZV90IGluZGV4OwotICAgICAgICAKLSAgICAgICAgZm9yIChpbmRleCA9
IDA7IGluZGV4IDwgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX251bV9wYXJ0aWNpcGFudHMoYmlhc19w
b29sKTsgKytpbmRleCkgewotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dCBwYXJ0aWNpcGFudDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX2ZlbmNlX2FmdGVy
X2xvYWQoKTsgLyogTWFrZSBzdXJlIHRoYXQgdGhlIHNpemUgaXMgd2hhdCB0aGUgdGhpbmcgc2F5
cyBpdCBpcy4gKi8KLSAgICAgICAgICAgIAotICAgICAgICAgICAgcGFydGljaXBhbnQgPSBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfZ2V0X3BhcnRpY2lwYW50KGJpYXNfcG9vbCwgaW5kZXgpOwotICAg
ICAgICAgICAgaWYgKCFwYXJ0aWNpcGFudCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfcGFnZV9zaGFyaW5nX3BhcnRp
Y2lwYW50X2dldF9raW5kKHBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAgICAgICAgICA9PSBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2JpdGZpdF9iaWFzaW5n
X2RpcmVjdG9yeSgKLSAgICAgICAgICAgICAgICBzdHJlYW0sCi0gICAgICAgICAgICAgICAgcGFz
X3Vud3JhcF9iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAgICAgICAgICAgIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFudCkpKTsKLSAgICAg
ICAgfQotICAgIH0KKyAgICByZXBvcnRfYml0Zml0X2RpcmVjdG9yeV9jb250ZW50cyhzdHJlYW0s
IGRpcmVjdG9yeSwgIiAgICAgICAgICAgICAgICAiKTsKIH0KIAogc3RhdGljIHZvaWQgcmVwb3J0
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2NvbnRlbnRzKApAQCAtMzMyLDExICsyMjAsNiBAQCBzdGF0
aWMgdm9pZCByZXBvcnRfc2VncmVnYXRlZF9kaXJlY3RvcnlfCiAgICAgICAgIAogICAgICAgICB2
aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnksIGluZGV4KTsKIAot
ICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzZWRfZXhjbHVzaXZlKHZpZXcp
KSB7Ci0gICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJiIik7Ci0gICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgcGFzX3N0cmVhbV9w
cmludGYoCiAgICAgICAgICAgICBzdHJlYW0sICIlYyIsCiAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF92aWV3X2tpbmRfZ2V0X2NoYXJhY3Rlcl9jb2RlKApAQCAtNDAzLDYwICsyODYsMjMgQEAg
c3RhdGljIHZvaWQgcmVwb3J0X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5XwogICAgIH0KICAgICBwYXNf
c3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCi0gICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiJXMgICAgICBUYWJsZWQ6ICIsIHByZWZpeCk7CisgICAgcGFzX3N0cmVhbV9wcmludGYo
c3RyZWFtLCAiJXMgRmlyc3QgRWxnYmw6ICIsIHByZWZpeCk7CisgICAgZHVtcF9hcnJvdyhzdHJl
YW0sICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJs
ZShkaXJlY3RvcnkpLnZhbHVlKTsKKyAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIp
OworCisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiJXMgICAgICAgRW1wdHk6ICIsIHBy
ZWZpeCk7CiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X3NpemUoZGlyZWN0b3J5KTsgKytpbmRleCkgewotICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2lzX3RhYmxlZChkaXJlY3RvcnksIGluZGV4KSkKKyAgICAgICAgaWYgKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eShkaXJlY3RvcnksIGluZGV4KSkKICAgICAg
ICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIngiKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwogICAgIH0KICAgICBwYXNf
c3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCi0gICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiJXMgIEZpcnN0IEUmflQ6ICIsIHByZWZpeCk7Ci0gICAgZHVtcF9hcnJvdyhzdHJlYW0s
ICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZSgK
LSAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9m
aXJzdF9lbGlnaWJsZV9idXRfbm90X3RhYmxlZF9raW5kKS52YWx1ZSk7Ci0gICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IiVzICAgRmlyc3QgRSZUOiAiLCBwcmVmaXgpOwotICAgIGR1bXBfYXJyb3coc3RyZWFtLCAodWlu
dHB0cl90KXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGUoCi0gICAg
ICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3Rf
ZWxpZ2libGVfYW5kX3RhYmxlZF9raW5kKS52YWx1ZSk7CisgICAgcGFzX3N0cmVhbV9wcmludGYo
c3RyZWFtLCAiJXMgTGFzdCBFbXB0KzE6ICIsIHByZWZpeCk7CisgICAgZHVtcF9hcnJvdyhzdHJl
YW0sICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9sYXN0X2VtcHR5X3Bs
dXNfb25lKGRpcmVjdG9yeSkudmFsdWUpOwogICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IlxuIik7CiAKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgICAgICBFbXB0eTog
IiwgcHJlZml4KTsKLSAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7Ci0gICAgICAgIHN3aXRjaCAoZGly
ZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3No
YXJlZF9wYWdlX2RpcmVjdG9yeV9raW5kOgotICAgICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9pc19lbXB0eShkaXJlY3RvcnksIGluZGV4KSkKLSAgICAgICAgICAgICAgICBw
YXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwotICAgICAgICAgICAgYnJl
YWs7Ci0KLSAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5k
OiB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0gICAgICAgICAgICB2
aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnksIGluZGV4KTsKLSAg
ICAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5KHZpZXcpKQotICAgICAg
ICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIngiKTsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgIik7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfSB9Ci0gICAgfQotICAgIHBhc19zdHJlYW1fcHJpbnRm
KHN0cmVhbSwgIlxuIik7Ci0KLSAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQp
IHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kOgot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2tpbmQ6Ci0gICAg
ICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgIExhc3QgRSsxOiAiLCBwcmVmaXgp
OwotICAgICAgICBkdW1wX2Fycm93KHN0cmVhbSwgKHVpbnRwdHJfdClwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0X2xhc3RfZW1wdHlfcGx1c19vbmUoCi0gICAgICAgICAgICAgICAgICAgICAg
IGRpcmVjdG9yeSkudmFsdWUpOwotICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJc
biIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5X2tpbmQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIHBhc19zdHJlYW1fcHJp
bnRmKHN0cmVhbSwgIiVzICAgQ29tbWl0dGVkOiAiLCBwcmVmaXgpOwogICAgIGZvciAoaW5kZXgg
PSAwOyBpbmRleCA8IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeSk7ICsr
aW5kZXgpIHsKICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0
ZWQoZGlyZWN0b3J5LCBpbmRleCkpCkBAIC00NjcsNDkgKzMxMywxMyBAQCBzdGF0aWMgdm9pZCBy
ZXBvcnRfc2VncmVnYXRlZF9kaXJlY3RvcnlfCiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFt
LCAiXG4iKTsKIH0KIAotdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcGFzX2hlYXBfc3VtbWFyeSBz
dW1tYXJ5OwotICAgIAotICAgIHBhc19zdHJlYW1fcHJpbnRmKAotICAgICAgICBzdHJlYW0sCi0g
ICAgICAgICIgICAgICAgICAgICAgICAgQmlhc2luZyBEaXIgJXAoJXUpOiBOdW0gVmlld3M6ICV6
dSIsCi0gICAgICAgIGRpcmVjdG9yeSwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnlfbWFnYXppbmVfaW5kZXgoZGlyZWN0b3J5KSwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeS0+YmFzZSkpOwotCi0gICAgaWYgKHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmJhc2UuZGF0YSkpCi0g
ICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwgSGFzIEJhc2UgRGF0YSIpOwotCi0g
ICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiLCAiKTsKLQotICAgIHN1bW1hcnkgPSBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5KCZkaXJlY3RvcnktPmJhc2UpOwot
ICAgIHBhc19oZWFwX3N1bW1hcnlfZHVtcChzdW1tYXJ5LCBzdHJlYW0pOwotCi0gICAgcGFzX3N0
cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLQotICAgIHJlcG9ydF9zZWdyZWdhdGVkX2RpcmVj
dG9yeV9jb250ZW50cyhzdHJlYW0sICZkaXJlY3RvcnktPmJhc2UsICIgICAgICAgICAgICAgICAg
ICAgICIpOwotCi0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAgICAg
ICAgICBFbGlnaWJsZSBIV006ICIpOwotICAgIGR1bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90
KWRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlKTsK
LSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwotICAgIHBhc19zdHJlYW1fcHJp
bnRmKHN0cmVhbSwgIiAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgSFdNOiAiKTsKLSAgICBk
dW1wX2Fycm93KHN0cmVhbSwgZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuY3VycmVudF9oaWdoX3dh
dGVybWFyayk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLSAgICBwYXNf
c3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICAgICAgICAgICAgIFByZXZpb3VzIEhXTTog
Iik7Ci0gICAgZHVtcF9hcnJvdyhzdHJlYW0sIGRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLnByZXZp
b3VzX2hpZ2hfd2F0ZXJtYXJrKTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIp
OwotfQotCi12b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQordm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVy
X2R1bXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0s
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcGFzX2hl
YXBfc3VtbWFyeSBwYXJ0aWFsX3N1bW1hcnk7CiAgICAgcGFzX2hlYXBfc3VtbWFyeSBleGNsdXNp
dmVfc3VtbWFyeTsKICAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBi
aWFzX3Bvb2w7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsK
ICAgICAKICAgICBwYXNfc3RyZWFtX3ByaW50ZigKICAgICAgICAgc3RyZWFtLApAQCAtNTIxLDE3
ICszMzEsMTIgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZAogCiAg
ICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3Rvcnkt
PmJhc2UuZGF0YSkpCiAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwgSGFzIEJh
c2UgRGF0YSIpOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICBpZiAoZGF0YSkgeworICAg
IGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJl
Y3RvcnktPmRhdGEpOworICAgIGlmIChkYXRhKQogICAgICAgICBwYXNfc3RyZWFtX3ByaW50Zihz
dHJlYW0sICIsIEhhcyBEYXRhIik7Ci0gICAgICAgIGJpYXNfcG9vbCA9IHBhc19jb21wYWN0X2F0
b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wp
OwotICAgICAgICBpZiAoYmlhc19wb29sKQotICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYo
c3RyZWFtLCAiLCBFeHBsb2RlZCIpOwotICAgIH0gZWxzZQotICAgICAgICBiaWFzX3Bvb2wgPSBO
VUxMOwotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaGFzX3Rs
Y19hbGxvY2F0b3IoZGlyZWN0b3J5KSkKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KSkKICAgICAgICAgcGFzX3N0cmVhbV9w
cmludGYoc3RyZWFtLCAiLCBIYXMgVExBIik7Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9hcmVfZXhjbHVzaXZlX3ZpZXdzX2VuYWJsZWQoZGlyZWN0b3J5KSkK
KyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3
c19lbmFibGVkKGRpcmVjdG9yeSkpCiAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IiwgRW5hYmxlZCBFeGNsdXNpdmVzIik7CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAi
XG4iKTsKIApAQCAtNTY4LDI2ICszNzMsNiBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVt
cF9zZWdyZWdhdGVkCiAgICAgfQogICAgIAogICAgIHJlcG9ydF9zZWdyZWdhdGVkX2RpcmVjdG9y
eV9jb250ZW50cyhzdHJlYW0sICZkaXJlY3RvcnktPmJhc2UsICIgICAgICAgICAgICAgICAgIik7
Ci0KLSAgICBpZiAoYmlhc19wb29sKSB7Ci0gICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8
IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9udW1fcGFydGljaXBhbnRzKGJpYXNfcG9vbCk7ICsraW5k
ZXgpIHsKLSAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBh
bnQ7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19mZW5jZV9hZnRlcl9sb2FkKCk7IC8q
IE1ha2Ugc3VyZSB0aGF0IHRoZSBzaXplIGlzIHdoYXQgdGhlIHRoaW5nIHNheXMgaXQgaXMuICov
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFzX3Bvb2wsIGluZGV4KTsKLSAgICAgICAgICAgIGlm
ICghcGFydGljaXBhbnQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRf
a2luZChwYXJ0aWNpcGFudCkKLSAgICAgICAgICAgICAgICAgICAgICAgPT0gcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5KAotICAgICAgICAgICAgICAgIHN0cmVhbSwKLSAgICAgICAgICAgICAgICBwYXNfdW53cmFw
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAgICAgICAgICAgIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFudCkpKTsKLSAgICAgICAg
fQotICAgIH0KIH0KIAogdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9z
aGFyZWRfcGFnZV9kaXJlY3RvcnkoCkBAIC03MDIsNyArNDg3LDcgQEAgdm9pZCBwYXNfc3RhdHVz
X3JlcG9ydGVyX2R1bXBfYm9vdHN0cmFwXwogCiBzdGF0aWMgYm9vbCBkdW1wX3NlZ3JlZ2F0ZWRf
aGVhcF9kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFy
ZykKIHsKICAgICBwYXNfc3RyZWFtKiBzdHJlYW07CkBAIC03MTEsNyArNDk2LDcgQEAgc3RhdGlj
IGJvb2wgZHVtcF9zZWdyZWdhdGVkX2hlYXBfZGlyZWN0bwogCiAgICAgc3RyZWFtID0gYXJnOwog
Ci0gICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KHN0cmVhbSwgZGlyZWN0b3J5KTsKKyAgICBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShzdHJlYW0sIGRpcmVjdG9yeSk7CiAKICAgICByZXR1
cm4gdHJ1ZTsKIH0KQEAgLTcyNSw3ICs1MTAsNyBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJf
ZHVtcF9iaXRmaXRfaGVhCiAgICAgaWYgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZW5hYmxlZCA+PSAz
KSB7CiAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudCB2YXJpYW50OwogICAg
ICAgICBmb3IgKFBBU19FQUNIX0JJVEZJVF9QQUdFX0NPTkZJR19WQVJJQU5UX0FTQ0VORElORyh2
YXJpYW50KSkgewotICAgICAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5KAorICAgICAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2Jp
dGZpdF9kaXJlY3RvcnkoCiAgICAgICAgICAgICAgICAgc3RyZWFtLAogICAgICAgICAgICAgICAg
IHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KGhlYXAsIHZhcmlhbnQpKTsKICAgICAgICAg
fQpAQCAtNzU1LDcgKzU0MCw3IEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3Jl
Z2F0ZWQKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCiAgICAgaWYgKHBh
c19zdGF0dXNfcmVwb3J0ZXJfZW5hYmxlZCA+PSAzKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVk
X2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorICAgICAgICBwYXNfc2VncmVn
YXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICAgICAgaGVhcCwgZHVt
cF9zZWdyZWdhdGVkX2hlYXBfZGlyZWN0b3J5X2NhbGxiYWNrLCBzdHJlYW0pOwogICAgIH0KICAg
ICAKQEAgLTkwMSw5ICs2ODYsOSBAQCBzdGF0aWMgdm9pZCBkdW1wX2hpc3RvZ3JhbShwYXNfc3Ry
ZWFtKiBzCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCB0b3RhbF9mcmFnbWVudGF0aW9uX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaygKK3N0YXRpYyBib29sIHRvdGFsX2ZyYWdtZW50YXRp
b25fc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQq
IGFyZykKIHsKICAgICB0b3RhbF9mcmFnbWVudGF0aW9uX2RhdGEqIGRhdGE7CkBAIC05NDMsOCAr
NzI4LDggQEAgc3RhdGljIGJvb2wgdG90YWxfZnJhZ21lbnRhdGlvbl9oZWFwX2NhbAogCiAgICAg
ZGF0YSA9IGFyZzsKIAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KAotICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLCB0b3RhbF9mcmFn
bWVudGF0aW9uX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaywgZGF0YSk7CisgICAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKKyAgICAgICAgJmhlYXAt
PnNlZ3JlZ2F0ZWRfaGVhcCwgdG90YWxfZnJhZ21lbnRhdGlvbl9zaXplX2RpcmVjdG9yeV9jYWxs
YmFjaywgZGF0YSk7CiAKICAgICBkYXRhLT5sYXJnZV9mcmFnbWVudGF0aW9uICs9IHBhc19oZWFw
X3N1bW1hcnlfZnJhZ21lbnRhdGlvbigKICAgICAgICAgcGFzX2xhcmdlX2hlYXBfY29tcHV0ZV9z
dW1tYXJ5KCZoZWFwLT5sYXJnZV9oZWFwKSk7CkBAIC05NzMsOCArNzU4LDggQEAgdm9pZCBwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfdG90YWxfZnJhZwogICAgIHBhc19hbGxfaGVhcHNfZm9yX2Vh
Y2hfaGVhcCh0b3RhbF9mcmFnbWVudGF0aW9uX2hlYXBfY2FsbGJhY2ssICZkYXRhKTsKICAgICBw
YXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzX2Zvcl9lYWNoKAogICAgICAgICB0b3RhbF9m
cmFnbWVudGF0aW9uX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9jYWxsYmFjaywgJmRhdGEpOwotICAg
IHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAotICAg
ICAgICAmcGFzX3V0aWxpdHlfc2VncmVnYXRlZF9oZWFwLCB0b3RhbF9mcmFnbWVudGF0aW9uX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaywgJmRhdGEpOworICAgIHBhc19zZWdyZWdhdGVk
X2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCisgICAgICAgICZwYXNfdXRpbGl0eV9zZWdy
ZWdhdGVkX2hlYXAsIHRvdGFsX2ZyYWdtZW50YXRpb25fc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ss
ICZkYXRhKTsKICAgICBkYXRhLmxhcmdlX2ZyYWdtZW50YXRpb24gKz0gcGFzX2hlYXBfc3VtbWFy
eV9mcmFnbWVudGF0aW9uKAogICAgICAgICBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfY29t
cHV0ZV9zdW1tYXJ5KCkpOwogICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICBTZWdy
ZWdhdGVkIEV4Y2x1c2l2ZSBGcmFnbWVudGF0aW9uIEhpc3RvZ3JhbTpcbiIpOwpAQCAtMTAwMyw5
ICs3ODgsOSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgc2l6ZV90IG51bV9oZWFwczsKIH0gdGll
cl91cF9yYXRlX2RhdGE7CiAKLXN0YXRpYyBib29sIHRpZXJfdXBfcmF0ZV9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfY2FsbGJhY2soCitzdGF0aWMgYm9vbCB0aWVyX3VwX3JhdGVfc2l6ZV9kaXJlY3Rv
cnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFyZykKIHsKICAgICB0
aWVyX3VwX3JhdGVfZGF0YSogZGF0YTsKQEAgLTEwMTQsMTEgKzc5OSwxMSBAQCBzdGF0aWMgYm9v
bCB0aWVyX3VwX3JhdGVfZ2xvYmFsX3NpemVfZGlyCiAKICAgICBkYXRhID0gYXJnOwogCi0gICAg
aWYgKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZk
aXJlY3RvcnktPmRhdGEpKQorICAgIGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9k
YXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpKQogICAgICAgICBkYXRhLT5udW1fZGlyZWN0
b3JpZXNfd2l0aF9kYXRhKys7Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpKQorICAgIGlmIChwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpKQogICAgICAg
ICBkYXRhLT5udW1fZGlyZWN0b3JpZXNfd2l0aF90bGFzKys7Ci0gICAgaWYgKHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hcmVfZXhjbHVzaXZlX3ZpZXdzX2VuYWJsZWQoZGly
ZWN0b3J5KSkKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1
c2l2ZV92aWV3c19lbmFibGVkKGRpcmVjdG9yeSkpCiAgICAgICAgIGRhdGEtPm51bV9kaXJlY3Rv
cmllc193aXRoX2V4Y2x1c2l2ZXMrKzsKICAgICBkYXRhLT5udW1fZGlyZWN0b3JpZXMrKzsKIApA
QCAtMTAzMSw4ICs4MTYsOCBAQCBzdGF0aWMgYm9vbCB0aWVyX3VwX3JhdGVfaGVhcF9jYWxsYmFj
ayhwCiAKICAgICBkYXRhID0gYXJnOwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFj
aF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCi0gICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAs
IHRpZXJfdXBfcmF0ZV9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEpOworICAg
IHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCisgICAgICAgICZo
ZWFwLT5zZWdyZWdhdGVkX2hlYXAsIHRpZXJfdXBfcmF0ZV9zaXplX2RpcmVjdG9yeV9jYWxsYmFj
aywgZGF0YSk7CiAKICAgICBkYXRhLT5udW1faGVhcHMrKzsKIApAQCAtMTA5Niw3ICs4ODEsNyBA
QCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iYXNlbGluZV9hCiAgICAgICAgIHBhc19z
dHJlYW1fcHJpbnRmKHN0cmVhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAg
ICV6dTogZGlyZWN0b3J5ID0gJXAsICVzXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICBp
bmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA/IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KSA6IE5VTEwsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZpZXcgPyBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9y
eSh2aWV3KSA6IE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9zdGF0
ZShhbGxvY2F0b3IpKTsKICAgICB9CiB9CkBAIC0xMTA5LDggKzg5NCwxMCBAQCB2b2lkIHBhc19z
dGF0dXNfcmVwb3J0ZXJfZHVtcF90aHJlYWRfbG9jCiAKICAgICBwYXNfc3RyZWFtX3ByaW50Zihz
dHJlYW0sICIgICAgVGhyZWFkIExvY2FsIENhY2hlIExheW91dDpcbiIpOwogICAgIGZvciAoUEFT
X1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7
Ci0gICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAgICAgJXU6IGRpcmVjdG9y
eSA9ICVwXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5b3V0X25vZGUpLAorICAgICAg
ICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICV1OiAlcywgZGlyZWN0b3J5ID0g
JXBcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKGxheW91dF9ub2RlKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9raW5kX2dldF9zdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9raW5kKGxheW91dF9ub2RlKSksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
Z2V0X2RpcmVjdG9yeShsYXlvdXRfbm9kZSkpOwogICAgIH0KIApAQCAtMTE0MCw3ICs5MjcsMTEg
QEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvYwogICAgICAgICAgICAg
cGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CiAgICAgICAgICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CiAKLSAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChs
YXlvdXRfbm9kZSk7CisgICAgICAgICAgICBpZiAoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3IobGF5b3V0X25vZGUpKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPQorICAgICAgICAg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9p
bmRleF9mb3JfYWxsb2NhdG9yKGxheW91dF9ub2RlKTsKIAogICAgICAgICAgICAgaWYgKGFsbG9j
YXRvcl9pbmRleCA+PSBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQogICAgICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMTE0OSw3ICs5NDAsNyBAQCB2b2lkIHBhc19zdGF0dXNfcmVw
b3J0ZXJfZHVtcF90aHJlYWRfbG9jCiAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJl
YW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJXU6IGRpcmVj
dG9yeSA9ICVwLCAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRv
cl9pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rv
cnkoYWxsb2NhdG9yLT52aWV3KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9j
YXRvcl9zdGF0ZShhbGxvY2F0b3IpKTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVy
LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zdGF0dXNfcmVwb3J0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMzYgKzMxLDI2IEBA
CiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RydWN0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJl
Y3Rvcnk7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Oworc3RydWN0IHBhc19i
aXRmaXRfZGlyZWN0b3J5Owogc3RydWN0IHBhc19sYXJnZV9oZWFwOwotc3RydWN0IHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXA7CiBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5Owotc3RydWN0IHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc3RyZWFtOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2Jp
dGZpdF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5OwotdHlw
ZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5IHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5IHBhc19iaXRm
aXRfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2xhcmdlX2hlYXAgcGFzX2xhcmdlX2hl
YXA7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdh
dGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJl
Y3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc3RyZWFtIHBhc19zdHJlYW07CiAKIFBBU19BUEkgZXh0
ZXJuIHVuc2lnbmVkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZW5hYmxlZDsKIFBBU19BUEkgZXh0ZXJu
IHVuc2lnbmVkIHBhc19zdGF0dXNfcmVwb3J0ZXJfcGVyaW9kX2luX21pY3Jvc2Vjb25kczsKIAot
UEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpOwotUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVz
X3JlcG9ydGVyX2R1bXBfYml0Zml0X2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0s
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLVBBU19BUEkgdm9pZCBw
YXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAg
ICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpOwotUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKyAgICBwYXNfc3Ry
ZWFtKiBzdHJlYW0sIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworUEFTX0FQSSB2
b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KAor
ICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSk7CiBQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KAogICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogUEFTX0FQSSB2b2lk
IHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9sYXJnZV9oZWFwKHBhc19zdHJlYW0qIHN0cmVhbSwg
cGFzX2xhcmdlX2hlYXAqIGhlYXApOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3N1YnBhZ2VfbWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5jCShub25leGlz
dGVudCkKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFT
X0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19zdWJwYWdlX21hcC5oIgotCi0jaW5jbHVkZSAicGFz
X2hlYXBfbG9jay5oIgotI2luY2x1ZGUgInBhc19pbnRlcm5hbF9jb25maWcuaCIKLSNpbmNsdWRl
ICJwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKLQotcGFzX3N1YnBhZ2VfbWFwX2hhc2h0
YWJsZSBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2luc3RhbmNlOwotCi1wYXNfc3VicGFnZV9t
YXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9hZGQodm9pZCogYmFzZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnl0ZXMsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbW1pdF9tb2RlIGNvbW1pdF9tb2Rl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hv
bGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQotewotICAgIHZvaWQqIGZ1bGxfYmFzZTsKLSAg
ICBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2FkZF9yZXN1bHQgYWRkX3Jlc3VsdDsKLSAgICBw
YXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5OwotCi0gICAgUEFTX0FTU0VSVChiYXNlKTsKLSAg
ICBmdWxsX2Jhc2UgPSBwYXNfc3VicGFnZV9tYXBfZ2V0X2Z1bGxfYmFzZShiYXNlLCBieXRlcyk7
Ci0gICAgCi0gICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hv
bGRfbW9kZSk7Ci0KLSAgICBhZGRfcmVzdWx0ID0gcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9h
ZGQoCi0gICAgICAgICZwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2luc3RhbmNlLCBmdWxsX2Jh
c2UsIE5VTEwsCi0gICAgICAgICZwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGlv
bl9jb25maWcpOwotICAgIGlmIChhZGRfcmVzdWx0LmlzX25ld19lbnRyeSkgewotICAgICAgICBw
YXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHJfc3RvcmUoCi0gICAgICAgICAgICBhZGRf
cmVzdWx0LmVudHJ5LCBwYXNfc3VicGFnZV9tYXBfZW50cnlfY3JlYXRlKGZ1bGxfYmFzZSwgY29t
bWl0X21vZGUpKTsKLSAgICB9Ci0KLSAgICBlbnRyeSA9IHBhc19jb21wYWN0X3N1YnBhZ2VfbWFw
X2VudHJ5X3B0cl9sb2FkX25vbl9udWxsKGFkZF9yZXN1bHQuZW50cnkpOwotICAgIHBhc19zdWJw
YWdlX21hcF9hc3NlcnRfY29tbWl0X3N0YXRlKGVudHJ5LCBiYXNlLCBieXRlcywgY29tbWl0X21v
ZGUpOwotICAgIAotICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9s
b2NrX2hvbGRfbW9kZSk7Ci0KLSAgICByZXR1cm4gZW50cnk7Ci19Ci0KLXBhc19zdWJwYWdlX21h
cF9lbnRyeSogcGFzX3N1YnBhZ2VfbWFwX2dldCh2b2lkKiBiYXNlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2Nr
X2hvbGRfbW9kZSkKLXsKLSAgICBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIqIGVu
dHJ5OwotICAgIHZvaWQqIGZ1bGxfYmFzZTsKLQotICAgIFBBU19BU1NFUlQoYmFzZSk7Ci0KLSAg
ICBmdWxsX2Jhc2UgPSBwYXNfc3VicGFnZV9tYXBfZ2V0X2Z1bGxfYmFzZShiYXNlLCBieXRlcyk7
Ci0KLSAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9t
b2RlKTsKLQotICAgIGVudHJ5ID0gcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9maW5kKCZwYXNf
c3VicGFnZV9tYXBfaGFzaHRhYmxlX2luc3RhbmNlLCBmdWxsX2Jhc2UpOwotCi0gICAgcGFzX2hl
YXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotICAg
IFBBU19BU1NFUlQoZW50cnkpOwotICAgIHJldHVybiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9l
bnRyeV9wdHJfbG9hZF9ub25fbnVsbChlbnRyeSk7Ci19Ci0KLXZvaWQqIHBhc19zdWJwYWdlX21h
cF9nZXRfZnVsbF9iYXNlKHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcykKLXsKLSAgICB2b2lkKiBm
dWxsX2Jhc2U7Ci0gICAgCi0gICAgUEFTX0FTU0VSVCghKCh1aW50cHRyX3QpYmFzZSAmIChQQVNf
U1VCUEFHRV9TSVpFIC0gMSkpKTsKLSAgICBQQVNfQVNTRVJUKCEoKHVpbnRwdHJfdClieXRlcyAm
IChQQVNfU1VCUEFHRV9TSVpFIC0gMSkpKTsKLQotICAgIGZ1bGxfYmFzZSA9ICh2b2lkKikoKHVp
bnRwdHJfdCliYXNlICYgLXBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSk7Ci0KLSAgICBQQVNf
QVNTRVJUKCh1aW50cHRyX3QpYmFzZSArIGJ5dGVzIDw9ICh1aW50cHRyX3QpZnVsbF9iYXNlICsg
cGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpKTsKLQotICAgIHJldHVybiBmdWxsX2Jhc2U7Ci19
Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwLmgJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5o
CShub25leGlzdGVudCkKQEAgLTEsMTIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU1VCUEFHRV9NQVBfSAotI2RlZmlu
ZSBQQVNfU1VCUEFHRV9NQVBfSAotCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBf
ZW50cnlfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2hhc2h0YWJsZS5oIgotI2luY2x1ZGUgInBhc19z
dWJwYWdlX21hcF9lbnRyeS5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXR5cGVkZWYgcGFz
X2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVf
ZW50cnk7Ci10eXBlZGVmIHZvaWQqIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfa2V5OwotCi1z
dGF0aWMgaW5saW5lIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnkgcGFzX3N1YnBhZ2Vf
bWFwX2hhc2h0YWJsZV9lbnRyeV9jcmVhdGVfZW1wdHkodm9pZCkKLXsKLSAgICBwYXNfc3VicGFn
ZV9tYXBfaGFzaHRhYmxlX2VudHJ5IHJlc3VsdCA9IFBBU19DT01QQUNUX1BUUl9JTklUSUFMSVpF
UjsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19zdWJwYWdlX21h
cF9oYXNodGFibGVfZW50cnkgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeV9jcmVhdGVf
ZGVsZXRlZCh2b2lkKQotewotICAgIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnkgcmVz
dWx0ID0gUEFTX0NPTVBBQ1RfUFRSX0lOSVRJQUxJWkVSOwotICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbmV2ZXIgY3JlYXRlZCBhIGRlbGV0ZWQgc3VicGFnZSBtYXAgaGFzaHRhYmxlIGVudHJ5IChh
bmQgaXQncyBpbXBvc3NpYmxlKSIpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBp
bmxpbmUgYm9vbAotcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeV9pc19lbXB0eV9vcl9k
ZWxldGVkKHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnkgZW50cnkpCi17Ci0gICAgcmV0
dXJuIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0cl9pc19udWxsKCZlbnRyeSk7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbAotcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeV9p
c19lbXB0eShwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IGVudHJ5KQotewotICAgIHJl
dHVybiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHJfaXNfbnVsbCgmZW50cnkpOwot
fQotCi1zdGF0aWMgaW5saW5lIGJvb2wKLXBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnlf
aXNfZGVsZXRlZChwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IGVudHJ5KQotewotICAg
IFBBU19VTlVTRURfUEFSQU0oZW50cnkpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGlj
IGlubGluZSB2b2lkKiBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5X2dldF9rZXkocGFz
X3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSBlbnRyeSkKLXsKLSAgICByZXR1cm4gcGFzX3N1
YnBhZ2VfbWFwX2VudHJ5X2Z1bGxfYmFzZShwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9w
dHJfbG9hZCgmZW50cnkpKTsKLX0KLQotc3RhdGljIHVuc2lnbmVkIHBhc19zdWJwYWdlX21hcF9o
YXNodGFibGVfa2V5X2dldF9oYXNoKHZvaWQqIGtleSkKLXsKLSAgICByZXR1cm4gcGFzX2hhc2hf
cHRyKGtleSk7Ci19Ci0KLXN0YXRpYyBib29sIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfa2V5
X2lzX2VxdWFsKHZvaWQqIGEsIHZvaWQqIGIpCi17Ci0gICAgcmV0dXJuIGEgPT0gYjsKLX0KLQot
UEFTX0NSRUFURV9IQVNIVEFCTEUocGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZSwKLSAgICAgICAg
ICAgICAgICAgICAgIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnksCi0gICAgICAgICAg
ICAgICAgICAgICBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2tleSk7Ci0KLWV4dGVybiBQQVNf
QVBJIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGUgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9p
bnN0YW5jZTsKLQotLyogVGhpcyBpbml0aWFsaXplcyBhbiBlbnRyeSBmb3IgYSBzeXN0ZW0gKGFr
YSBmdWxsKSBwYWdlIGluIHRoZSBtYXAgYmFzZWQgb24gYW4gYWxsb2NhdGlvbiBvZgotICAgemVy
byBvciBtb3JlIHN1YnBhZ2VzLiBUaGlzIGhhcyBzb21lIGltcGxpY2F0aW9uczoKLQotICAgLSBJ
ZiB5b3UgYWxsb2NhdGUgbWVtb3J5IGZvciBhIHN1YnBhZ2Ugc29tZWhvdywgdGhlbiB5b3UgbXVz
dCBhbHNvIGFsbG9jYXRlIHRoZSByZXN0IG9mIHRoZQotICAgICBtZW1vcnkgaW4gdGhlIGZ1bGwg
cGFnZSBhcyBzdWJwYWdlcy4KLQotICAgLSBUaGUgY29tbWl0IHN0YXRlIG9mIGFsbCBzdWJwYWdl
cyB3aXRoaW4gdGhlIGZ1bGwgcGFnZSBtdXN0IHN0YXJ0IHRoZSBzYW1lIHdheS4gU28sIGlmIHlv
dQotICAgICBhbGxvY2F0ZSB0aGUgZmlyc3Qgc3VicGFnZSBpbiBhIGZ1bGwgcGFnZSBhbmQgdGVs
bCB0aGUgbWFwIHRoYXQgaXQncyBjb21taXR0ZWQsIHRoZW4gd2hlbmV2ZXIKLSAgICAgeW91IGRv
IGdldCBhcm91bmQgdG8gYWxsb2NhdGluZyB0aGUgb3RoZXIgc3VicGFnZXMsIHRob3NlIG11c3Qg
YWxzbyBzdGFydCBjb21taXR0ZWQuIEl0J3MgT0sKLSAgICAgaWYgaW4gdGhlIG1lYW50aW1lIHRo
ZSBmaXJzdCBzdWJwYWdlIGdvdCBkZWNvbW1pdHRlZDsgdGhlIHBvaW50IGlzIHRoYXQgd2hhdGV2
ZXIgdGhlIHN0YXJ0Ci0gICAgIHN0YXRlIHdhcyAoY29tbWl0dGVkIGluIHRoZSBleGFtcGxlKSBt
dXN0IGFsc28gYmUgdGhlIHN0YXJ0IHN0YXRlIGZvciBhbGwgb3RoZXIgcGFnZXMuIFRoYXQncwot
ICAgICBiZWNhdXNlIGlmIHRoZSBzdWJwYWdlIG1hcCBpcyB0b2xkIGFib3V0IGEgZnVsbCBwYWdl
IGZvciB0aGUgZmlyc3QgdGltZSBpbiB0aGUgZm9ybSBvZiBhCi0gICAgIGNhbGwgdG8gdGhpcyB0
aGF0IGluaXRpYWxpemVzIHNvbWUgc3VicGFnZSB0aGVuIHRoZSBtYXAgd2lsbCBpbml0aWFsaXpl
IHRoZSBjb21taXQgc3RhdGUgb2YKLSAgICAgdGhlIGVudGlyZSBmdWxsIHBhZ2UgdG8gd2hhdGV2
ZXIgeW91IHRvbGQgdGhpcy4KLQotICAgLSBUaGUgYnl0ZXMgY2Fubm90IGJlIHNvIGJpZyB0aGF0
IHRoaXMgcmVxdWlyZXMgbW9yZSB0aGFuIG9uZSBmdWxsIHBhZ2UuICovCi1QQVNfQVBJIHBhc19z
dWJwYWdlX21hcF9lbnRyeSogcGFzX3N1YnBhZ2VfbWFwX2FkZCh2b2lkKiBiYXNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ5dGVz
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2NvbW1pdF9tb2RlIGNvbW1pdF9tb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21v
ZGUpOwotCi1QQVNfQVBJIHBhc19zdWJwYWdlX21hcF9lbnRyeSogcGFzX3N1YnBhZ2VfbWFwX2dl
dCh2b2lkKiBiYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUp
OwotCi0vKiBUaGlzIGlzIGEgaGVscGVyIHRoYXQgc3VicGFnZV9tYXAgYW5kIHN1YnBhZ2VfbWFw
X2VudHJ5IHNoYXJlLiAqLwotUEFTX0FQSSB2b2lkKiBwYXNfc3VicGFnZV9tYXBfZ2V0X2Z1bGxf
YmFzZSh2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0j
ZW5kaWYgLyogUEFTX1NVQlBBR0VfTUFQX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMJKHJl
dmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
dWJwYWdlX21hcF9lbnRyeS5jCShub25leGlzdGVudCkKQEAgLTEsMTc5ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19j
b25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfc3VicGFnZV9t
YXBfZW50cnkuaCIKLQotI2luY2x1ZGUgInBhc19iaXR2ZWN0b3IuaCIKLSNpbmNsdWRlICJwYXNf
ZGVmZXJyZWRfZGVjb21taXRfbG9nLmgiCi0jaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIK
LSNpbmNsdWRlICJwYXNfaW50ZXJuYWxfY29uZmlnLmgiCi0jaW5jbHVkZSA8c3RkYWxpZ24uaD4K
LQotc3RhdGljIHZvaWQgc2V0X3BhY2tlZF92YWx1ZShwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVu
dHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBmdWxsX2Jhc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGJpdHMpCi17Ci0gICAgZW50cnktPnBh
Y2tlZF92YWx1ZSA9ICh1aW50cHRyX3QpZnVsbF9iYXNlIHwgYml0czsKLSAgICBQQVNfQVNTRVJU
KHBhc19zdWJwYWdlX21hcF9lbnRyeV9mdWxsX2Jhc2UoZW50cnkpID09IGZ1bGxfYmFzZSk7Ci0g
ICAgUEFTX0FTU0VSVChwYXNfc3VicGFnZV9tYXBfZW50cnlfYml0cyhlbnRyeSkgPT0gYml0cyk7
Ci19Ci0KLXBhc19zdWJwYWdlX21hcF9lbnRyeSogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2NyZWF0
ZSh2b2lkKiBmdWxsX2Jhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2NvbW1pdF9tb2RlIGNvbW1pdF9tb2RlKQotewotICAgIHBhc19z
dWJwYWdlX21hcF9lbnRyeSogZW50cnk7Ci0gICAgdW5zaWduZWQgYml0czsKLQotICAgIFBBU19B
U1NFUlQoISgodWludHB0cl90KWZ1bGxfYmFzZSAmIChwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50
KCkgLSAxKSkpOwotICAgIFBBU19BU1NFUlQocGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpIC8g
UEFTX1NVQlBBR0VfU0laRSA8PSBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3NoaWZ0KCkpOwot
Ci0gICAgZW50cnkgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX21hbnVhbF9hbGln
bm1lbnQoCi0gICAgICAgIHNpemVvZihwYXNfc3VicGFnZV9tYXBfZW50cnkpLAotICAgICAgICBh
bGlnbm9mKHBhc19sb2NrKSwKLSAgICAgICAgInBhc19zdWJwYWdlX21hcF9lbnRyeSIsCi0gICAg
ICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0KLSAgICBwYXNfbG9ja19jb25zdHJ1Y3QoJmVu
dHJ5LT5jb21taXRfbG9jayk7Ci0KLSAgICBiaXRzID0gMDsKLSAgICBpZiAoY29tbWl0X21vZGUp
IHsKLSAgICAgICAgdWludHB0cl90IGluZGV4OwotICAgICAgICBmb3IgKGluZGV4ID0gcGFzX3Bh
Z2VfbWFsbG9jX2FsaWdubWVudCgpIC8gUEFTX1NVQlBBR0VfU0laRTsgaW5kZXgtLTspCi0gICAg
ICAgICAgICBwYXNfYml0dmVjdG9yX3NldF9pbl9vbmVfd29yZCgmYml0cywgaW5kZXgsIHRydWUp
OwotICAgIH0KLQotICAgIHNldF9wYWNrZWRfdmFsdWUoZW50cnksIGZ1bGxfYmFzZSwgYml0cyk7
Ci0KLSAgICBwYXNfZmVuY2UoKTsKLQotICAgIHJldHVybiBlbnRyeTsKLX0KLQotc3RhdGljIHZv
aWQgcHJlcGFyZV9pbmRpY2VzKHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdm9pZCogYmFzZSwgc2l6ZV90IGJ5dGVzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZvaWQqKiBmdWxsX2Jhc2UsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWludHB0cl90KiBiZWdpbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50cHRyX3QqIGVuZCkKLXsKLSAgICAqZnVsbF9iYXNlID0gcGFzX3N1YnBhZ2VfbWFwX2VudHJ5
X2Z1bGxfYmFzZShlbnRyeSk7Ci0KLSAgICAqYmVnaW4gPSAoKHVpbnRwdHJfdCliYXNlIC0gKHVp
bnRwdHJfdCkqZnVsbF9iYXNlKSAvIFBBU19TVUJQQUdFX1NJWkU7Ci0gICAgKmVuZCA9ICpiZWdp
biArIGJ5dGVzIC8gUEFTX1NVQlBBR0VfU0laRTsKLX0KLQotdm9pZCBwYXNfc3VicGFnZV9tYXBf
YXNzZXJ0X2NvbW1pdF9zdGF0ZShwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0
ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21taXRf
bW9kZSBjb21taXRfbW9kZSkKLXsKLSAgICAvKiBUaGlzIGRvZXNuJ3QgYm90aGVyIHdpdGggbG9j
a2luZyBvbiB0aGUgZ3JvdW5kcyB0aGF0IHdlIGRvbid0IGhhdmUgb3V0LW9mLXRoaW4tYWlyIHZh
bHVlcy4KLSAgICAgICBXZSdyZSBvbmx5IGFzc2VydGluZyBjb21taXQgc3RhdGUgd2hlbiBhZGRp
bmcgYW5vdGhlciBzdWJwYWdlIHRvIGEgZnVsbCBwYWdlIHRoYXQgd2UKLSAgICAgICBwcmV2aW91
c2x5IGNyZWF0ZWQsIGFuZCB3ZSB3YW50IHRvIGFzc2VydCB0aGF0IG5vYm9keSBjaGFuZ2VkIHRo
ZSBjb21taXQgc3RhdGUgb2YgdGhvc2UKLSAgICAgICBwYWdlcyBpbiB0aGUgbWVhbnRpbWUuIEV2
ZW4gaWYgdGhlIGNvbW1pdCBzdGF0ZSBvZiBvdGhlciBzdWJwYWdlcyBpcyBjaGFuZ2luZyBjb25j
dXJyZW50bHksCi0gICAgICAgdGhlIGxhY2sgb2Ygb3V0LW9mLXRoaW4tYWlyIHZhbHVlcyBtZWFu
cyB0aGF0IHRoZSBiaXRzIHdlJ3JlIGFzc2VydGluZyBhYm91dCB3aWxsIHN0aWxsIGJlCi0gICAg
ICAgc3R1Y2sgaW4gdGhlIHN0YXRlIHRoYXQgd2UgZXhwZWN0ZWQgdGhlbSB0byBiZSBpbi4gKi8K
LQotICAgIHZvaWQqIGZ1bGxfYmFzZTsKLSAgICB1aW50cHRyX3QgYmVnaW47Ci0gICAgdWludHB0
cl90IGVuZDsKLSAgICB1aW50cHRyX3QgaW5kZXg7Ci0gICAgdW5zaWduZWQgYml0czsKLQotICAg
IHByZXBhcmVfaW5kaWNlcyhlbnRyeSwgYmFzZSwgYnl0ZXMsICZmdWxsX2Jhc2UsICZiZWdpbiwg
JmVuZCk7Ci0KLSAgICBiaXRzID0gcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2JpdHMoZW50cnkpOwot
Ci0gICAgZm9yIChpbmRleCA9IGVuZDsgaW5kZXgtLSA+IGJlZ2luOykKLSAgICAgICAgUEFTX0FT
U0VSVChwYXNfYml0dmVjdG9yX2dldF9mcm9tX29uZV93b3JkKCZiaXRzLCBpbmRleCkgPT0gISFj
b21taXRfbW9kZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldF9iaXRzKHBhc19zdWJwYWdlX21hcF9l
bnRyeSogZW50cnksCi0gICAgICAgICAgICAgICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0
ZXMsCi0gICAgICAgICAgICAgICAgICAgICBwYXNfY29tbWl0X21vZGUgY29tbWl0X21vZGUsCi0g
ICAgICAgICAgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBsb2csCi0gICAg
ICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkK
LXsKLSAgICB2b2lkKiBmdWxsX2Jhc2U7Ci0gICAgdWludHB0cl90IGJlZ2luOwotICAgIHVpbnRw
dHJfdCBlbmQ7Ci0gICAgdWludHB0cl90IGluZGV4OwotICAgIHVuc2lnbmVkIG9sZF9iaXRzOwot
ICAgIHVuc2lnbmVkIGJpdHM7Ci0KLSAgICBwYXNfbG9ja19hc3NlcnRfaGVsZCgmZW50cnktPmNv
bW1pdF9sb2NrKTsKLQotICAgIHByZXBhcmVfaW5kaWNlcyhlbnRyeSwgYmFzZSwgYnl0ZXMsICZm
dWxsX2Jhc2UsICZiZWdpbiwgJmVuZCk7Ci0KLSAgICBvbGRfYml0cyA9IHBhc19zdWJwYWdlX21h
cF9lbnRyeV9iaXRzKGVudHJ5KTsKLSAgICBiaXRzID0gb2xkX2JpdHM7Ci0KLSAgICBmb3IgKGlu
ZGV4ID0gZW5kOyBpbmRleC0tID4gYmVnaW47KQotICAgICAgICBwYXNfYml0dmVjdG9yX3NldF9p
bl9vbmVfd29yZCgmYml0cywgaW5kZXgsIGNvbW1pdF9tb2RlKTsKLQotICAgIHNldF9wYWNrZWRf
dmFsdWUoZW50cnksIGZ1bGxfYmFzZSwgYml0cyk7Ci0KLSAgICBpZiAoIW9sZF9iaXRzICYmIGJp
dHMpIHsKLSAgICAgICAgUEFTX0FTU0VSVChjb21taXRfbW9kZSk7Ci0gICAgICAgIHBhc19wYWdl
X21hbGxvY19jb21taXQoZnVsbF9iYXNlLCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKG9sZF9iaXRzICYmICFiaXRzKSB7Ci0g
ICAgICAgIFBBU19BU1NFUlQoIWNvbW1pdF9tb2RlKTsKLSAgICAgICAgcGFzX2RlZmVycmVkX2Rl
Y29tbWl0X2xvZ19hZGRfbWF5YmVfbG9ja2VkKAotICAgICAgICAgICAgbG9nLAotICAgICAgICAg
ICAgcGFzX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKAotICAgICAgICAgICAgICAgICh1aW50cHRyX3Qp
ZnVsbF9iYXNlLCAodWludHB0cl90KWZ1bGxfYmFzZSArIHBhc19wYWdlX21hbGxvY19hbGlnbm1l
bnQoKSwKLSAgICAgICAgICAgICAgICAmZW50cnktPmNvbW1pdF9sb2NrKSwKLSAgICAgICAgICAg
IHBhc19yYW5nZV9pc19sb2NrZWQsCi0gICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghY29tbWl0X21vZGUpCi0gICAgICAg
IHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfdW5sb2NrX2FmdGVyX2Fib3J0ZWRfYWRkKGxvZywg
JmVudHJ5LT5jb21taXRfbG9jayk7Ci19Ci0KLXZvaWQgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2Nv
bW1pdChwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcykKLXsKLSAgICAvKiBOT1RFOiBw
YXNfbG9ja19pc19ub3RfaGVsZCBjYW4gYmUgYSBsaWUgc2luY2Ugc2V0X2JpdHMgZG9lcyBub3Qg
dXNlIHRoYXQgdmFsdWUgdW5sZXNzCi0gICAgICAgd2UgYXJlIGRlY29tbWl0dGluZy4gKi8KLSAg
ICBzZXRfYml0cyhlbnRyeSwgYmFzZSwgYnl0ZXMsIHBhc19jb21taXR0ZWQsIE5VTEwsIHBhc19s
b2NrX2lzX25vdF9oZWxkKTsKLX0KLQotLyogSGF2ZSB0byBhbHJlYWR5IGhvbGQgdGhlIGNvbW1p
dCBsb2NrIHRvIGRvIHRoaXMuICovCi12b2lkIHBhc19zdWJwYWdlX21hcF9lbnRyeV9kZWNvbW1p
dChwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdm9pZCogYmFzZSwgc2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogbG9nLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpCi17Ci0gICAgc2V0X2JpdHMoZW50cnksIGJhc2UsIGJ5dGVzLCBwYXNfZGVj
b21taXR0ZWQsIGxvZywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQ
QVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3N1YnBhZ2VfbWFwX2VudHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmgJKHJldmlzaW9uIDI4MjIzOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5o
CShub25leGlzdGVudCkKQEAgLTEsOTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19TVUJQQUdFX01BUF9FTlRSWV9ICi0j
ZGVmaW5lIFBBU19TVUJQQUdFX01BUF9FTlRSWV9ICi0KLSNpbmNsdWRlICJwYXNfY29tbWl0X21v
ZGUuaCIKLSNpbmNsdWRlICJwYXNfbG9jay5oIgotI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5o
IgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfZGVmZXJyZWRfZGVjb21taXRf
bG9nOwotc3RydWN0IHBhc19zdWJwYWdlX21hcF9lbnRyeTsKLXR5cGVkZWYgc3RydWN0IHBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2cgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZzsKLXR5cGVkZWYg
c3RydWN0IHBhc19zdWJwYWdlX21hcF9lbnRyeSBwYXNfc3VicGFnZV9tYXBfZW50cnk7Ci0KLS8q
IE5PVEU6IFRoaXMgaXMgNC1ieXRlIGFsaWduZWQhICovCi1zdHJ1Y3QgcGFzX3N1YnBhZ2VfbWFw
X2VudHJ5IHsKLSAgICBwYXNfbG9jayBjb21taXRfbG9jazsKLQotICAgIC8qIFRoaXMgaXMgbGlr
ZSBhIHBhZ2UgcG9pbnRlciwgZXhjZXB0IHRoYXQgdGhlIGxvdyBiaXRzIHRoYXQgd291bGQgbm9y
bWFsbHkgYmUgemVybyBmb3IgYSBwYWdlCi0gICAgICAgcG9pbnRlciAoaS5lLiB0aGUgcGFnZSBv
ZmZzZXQgYml0cykgYXJlIHVzZWQgYXMgYSBiaXRtYXAuIFRoaXMgY29uc3RyYWlucyB0aGUgcG9z
c2libGUgc3lzdGVtCi0gICAgICAgcGFnZSBzaXplIGFzIGZvbGxvd3M6Ci0gICAgICAgCi0gICAg
ICAgICAgIFNZU1RFTV9QQUdFX1NJWkUvbG9nKFNZU1RFTV9QQUdFX1NJWkUpIDw9IFBBU19TVUJQ
QUdFX1NJWkUKLQotICAgICAgIFdoaWNoIGNhbiBiZSBhbHNvIHdyaXR0ZW4gYXMgKGlmIHdlIHdh
bnQgdG8gdXNlIGludGVnZXJzKToKLSAgICAKLSAgICAgICAgICAgU1lTVEVNX1BBR0VfU0laRS9Q
QVNfU1VCUEFHRV9TSVpFIDw9IGxvZyhTWVNURU1fUEFHRV9TSVpFKQotCi0gICAgICAgTk9URTog
VGhpcyBpcyBub3QgdWludHB0cl90LWFsaWduZWQhIFdlIGxldmVyYWdlIHRoZSBmYWN0IHRoYXQg
dGhpcyBpcyBhbHdheXMgYWNjZXNzZWQgdW5kZXIKLSAgICAgICB0aGUgY29tbWl0IGxvY2sgYW5k
IHNhdmUgc29tZSBzcGFjZS4gV2UgYWxzbyBsZXZlcmFnZSB0aGUgZmFjdCB0aGF0IHRoZSBwYWdl
IGZ1bGwgYmFzZSBiaXRzCi0gICAgICAgYXJlIGltbXV0YWJsZSwgc28gcmVhZGluZyB0aG9zZSBj
YW4gYmUgZG9uZSBhdCBhbnkgdGltZSwgd2l0aG91dCBsb2NraW5nLiAqLwotICAgIHVpbnRwdHJf
dCBwYWNrZWRfdmFsdWU7Ci19OwotCi1QQVNfQVBJIHBhc19zdWJwYWdlX21hcF9lbnRyeSogcGFz
X3N1YnBhZ2VfbWFwX2VudHJ5X2NyZWF0ZSh2b2lkKiBmdWxsX2Jhc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tbWl0
X21vZGUgY29tbWl0X21vZGUpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQqIHBhc19zdWJwYWdlX21h
cF9lbnRyeV9mdWxsX2Jhc2UocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSkKLXsKLSAgICBy
ZXR1cm4gKHZvaWQqKShlbnRyeS0+cGFja2VkX3ZhbHVlICYgLXBhc19wYWdlX21hbGxvY19hbGln
bm1lbnQoKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgcGFzX3N1YnBhZ2VfbWFwX2Vu
dHJ5X2JpdHMocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSkKLXsKLSAgICB1aW50cHRyX3Qg
cmVzdWx0ID0gZW50cnktPnBhY2tlZF92YWx1ZSAmIChwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50
KCkgLSAxKTsKLSAgICBQQVNfQVNTRVJUKCh1bnNpZ25lZClyZXN1bHQgPT0gcmVzdWx0KTsKLSAg
ICByZXR1cm4gKHVuc2lnbmVkKXJlc3VsdDsKLX0KLQotUEFTX0FQSSB2b2lkIHBhc19zdWJwYWdl
X21hcF9hc3NlcnRfY29tbWl0X3N0YXRlKHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYmFz
ZSwgc2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19jb21taXRfbW9kZSBjb21taXRfbW9kZSk7Ci0KLS8qIEhhdmUgdG8gYWxy
ZWFkeSBob2xkIHRoZSBjb21taXQgbG9jayB0byBkbyB0aGlzLiAqLwotUEFTX0FQSSB2b2lkIHBh
c19zdWJwYWdlX21hcF9lbnRyeV9jb21taXQocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGJhc2UsIHNp
emVfdCBieXRlcyk7Ci0KLS8qIEhhdmUgdG8gYWxyZWFkeSBob2xkIHRoZSBjb21taXQgbG9jayB0
byBkbyB0aGlzLiBUaGlzIHdpbGwgcmVsZWFzZSB0aGUgY29tbWl0IGxvY2suICovCi1QQVNfQVBJ
IHZvaWQgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2RlY29tbWl0KHBhc19zdWJwYWdlX21hcF9lbnRy
eSogZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZv
aWQqIGJhc2UsIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogbG9nLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfU1VC
UEFHRV9NQVBfRU5UUllfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlLmMJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSwxMyBAQAogCiAjaW5jbHVk
ZSA8bWFjaC90aHJlYWRfYWN0Lmg+CiAjaW5jbHVkZSAicGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCIK
LSNpbmNsdWRlICJwYXNfYWxsX21hZ2F6aW5lcy5oIgogI2luY2x1ZGUgInBhc19jb21wYWN0X2xh
cmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2RlYnVnX2hlYXAuaCIKICNp
bmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX2xvZy5oIgogI2luY2x1ZGUg
InBhc19tb25vdG9uaWNfdGltZS5oIgogI2luY2x1ZGUgInBhc19zY2F2ZW5nZXIuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgorI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKICNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF9wYWdlLmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXQuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaCIKQEAg
LTU5LDE4ICs1OCw2IEBAIHNpemVfdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NpemVfZm9yX2EK
IHN0YXRpYyB2b2lkIGRlYWxsb2NhdGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xv
Y2FsX2NhY2hlKQogewogICAgIGNoYXIqIGJlZ2luOwotICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUgbGF5b3V0X25vZGU7Ci0KLSAgICBmb3IgKFBBU19USFJFQURfTE9DQUxf
Q0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkgewotICAgICAgICBwYXNf
YWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKLQotICAgICAgICBhbGxvY2F0b3JfaW5k
ZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5k
ZXgobGF5b3V0X25vZGUpOwotICAgICAgICAKLSAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+
PSB0aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCkKLSAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2Rlc3RydWN0KAotICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwo
dGhyZWFkX2xvY2FsX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpKTsKLSAgICB9CiAKICAgICBwYXNf
Y29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9kZWFsbG9jYXRlKAogICAgICAgICB0aHJl
YWRfbG9jYWxfY2FjaGUtPnNob3VsZF9zdG9wX2JpdHZlY3RvciwKQEAgLTE3MywxMyArMTYwLDgg
QEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbAogICAgIAogICAgIHRo
cmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kID0gYWxsb2NhdG9y
X2luZGV4X3VwcGVyX2JvdW5kOwogCi0gICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xB
WU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKLSAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9jb25zdHJ1Y3QoCi0gICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dl
dF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKLSAgICAgICAgICAgICAgICB0aHJlYWRfbG9jYWxfY2Fj
aGUsCi0gICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9n
ZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2RlKSksCi0gICAgICAgICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkobGF5b3V0X25vZGUpKTsKLSAg
ICB9CisgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRP
UihsYXlvdXRfbm9kZSkpCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfY29uc3RydWN0KGxheW91dF9ub2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUpOwogCiAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9zZXRfaW1wbCh0aHJlYWRfbG9jYWxfY2FjaGUpOwogICAgIApA
QCAtMjQyLDEwICsyMjQsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFk
X2xvCiAgICAgb2xkX2luZGV4X3VwcGVyX2JvdW5kID0gdGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxv
Y2F0b3JfaW5kZXhfdXBwZXJfYm91bmQ7CiAgICAgCiAgICAgUEFTX0FTU0VSVChkZXNpcmVkX2Fs
bG9jYXRvcl9pbmRleCA+PSBvbGRfaW5kZXhfdXBwZXJfYm91bmQpOwotICAgIAotICAgIC8qIEl0
IGNvdWxkIGJlIHRoYXQgd2UganVzdCBkb24ndCBoYXZlIGFuIGFsbG9jYXRvciBpbmRleCB5ZXQu
ICovCi0gICAgaWYgKGRlc2lyZWRfYWxsb2NhdG9yX2luZGV4ID49IChwYXNfYWxsb2NhdG9yX2lu
ZGV4KVVJTlRfTUFYKQotICAgICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRf
Y3JlYXRlX2ZhaWx1cmUoKTsKKyAgICBQQVNfQVNTRVJUKGRlc2lyZWRfYWxsb2NhdG9yX2luZGV4
IDwgKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogICAgIAogICAgIC8qIFJhdGhlciB0
aGFuIGNvcHkgdGhlIGRlYWxsb2NhdGlvbiBsb2cgbGV0J3MganVzdCBmbHVzaCBpdC4gKi8KICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2codGhyZWFkX2xv
Y2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKQEAgLTI3OCwxNSArMjU3LDEzIEBAIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBhc190aHJlYWRfbG8KICAgICAgICAgZm9yIChQQVNf
VEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsK
ICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OwogICAgICAg
ICAgICAgCi0gICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5b3V0X25vZGUpOworICAgICAg
ICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0X25vZGUpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IG9sZF9pbmRleF91cHBlcl9ib3Vu
ZCkKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0
b3JfbW92ZSgKLSAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2Nh
bF9hbGxvY2F0b3JfaW1wbCgKLSAgICAgICAgICAgICAgICAgICAgbmV3X3RocmVhZF9sb2NhbF9j
YWNoZSwgYWxsb2NhdG9yX2luZGV4KSwKLSAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKLSAgICAgICAgICAgICAgICAgICAgdGhy
ZWFkX2xvY2FsX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpKTsKKworICAgICAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9tb3ZlKAorICAgICAgICAgICAgICAgIGxheW91
dF9ub2RlLCBuZXdfdGhyZWFkX2xvY2FsX2NhY2hlLCB0aHJlYWRfbG9jYWxfY2FjaGUpOwogICAg
ICAgICB9CiAKICAgICAgICAgbWVtY3B5KG5ld190aHJlYWRfbG9jYWxfY2FjaGUtPnNob3VsZF9z
dG9wX2JpdHZlY3RvciwKQEAgLTMwMCwxNiArMjc3LDE0IEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVzdWx0IHBhc190aHJlYWRfbG8KICAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZ
T1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkgewogICAgICAgICBwYXNfYWxsb2NhdG9y
X2luZGV4IGFsbG9jYXRvcl9pbmRleDsKIAotICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5b3V0
X25vZGUpOworICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhsYXlvdXRfbm9kZSk7CiAg
ICAgICAgIAogICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4IDwgb2xkX2luZGV4X3VwcGVyX2Jv
dW5kKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXgg
Pj0gZGVzaXJlZF9pbmRleF91cHBlcl9ib3VuZCkKICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdCgKLSAgICAgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAotICAgICAgICAgICAgICAgIG5l
d190aHJlYWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9pbmRleCksCi0gICAgICAgICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkobGF5b3V0X25vZGUp
KTsKKworICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbnN0cnVj
dChsYXlvdXRfbm9kZSwgbmV3X3RocmVhZF9sb2NhbF9jYWNoZSk7CiAgICAgfQogCiAgICAgcGFz
X2NvbXBpbGVyX2ZlbmNlKCk7CkBAIC0zNDUsMzAgKzMyMCwyNiBAQCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0CiB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3Rv
cF9sb2NhbF9hbGxvY2F0b3JzKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9j
YWNoZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAogICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUgbGF5b3V0X25vZGU7CiAKICAgICAvKiBXZSBoYXZlIHRvIGhvbGQgdGhl
IGhlYXAgbG9jayB0byBkbyB0aGluZ3MgdG8gb3VyIGxvY2FsIGFsbG9jYXRvcnMgdW5sZXNzIHdl
IGFsc28gc2V0IHRoZQogICAgICAgIGlzX2luX3VzZSBiaXQuICovCiAgICAgcGFzX2hlYXBfbG9j
a19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgCisgICAgcGFz
X2xvY2tfbG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hfbG9jayk7CisK
ICAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxh
eW91dF9ub2RlKSkgewogICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRl
eDsKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciAqYWxsb2NhdG9yOwogCi0gICAgICAgIGFs
bG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2Fs
bG9jYXRvcl9pbmRleChsYXlvdXRfbm9kZSk7CisgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5l
cmljKGxheW91dF9ub2RlKTsKICAgICAgICAgCiAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXgg
Pj0gdGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCiAgICAg
ICAgICAgICBicmVhazsKIAotICAgICAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKLSAgICAgICAgICAgIHRocmVhZF9sb2NhbF9j
YWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKLSAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAg
ICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgYmVjYXVzZSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9yc1xuIiwgYWxsb2NhdG9yKTsKLSAgICAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zdG9wKGFsbG9jYXRvciwgcGFzX2xvY2tfbG9ja19tb2RlX2xvY2ss
IHBhc19sb2NrX2lzX2hlbGQpOworICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX3N0b3AoCisgICAgICAgICAgICBsYXlvdXRfbm9kZSwgdGhyZWFkX2xvY2FsX2NhY2hl
LCBwYXNfbG9ja19sb2NrX21vZGVfbG9jaywgcGFzX2xvY2tfaXNfaGVsZCk7CiAgICAgfQogCisg
ICAgcGFzX2xvY2tfdW5sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9s
b2NrKTsKICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19o
b2xkX21vZGUpOwogfQogCkBAIC0zOTgsNyArMzY5LDcgQEAgc3RhdGljIGJvb2wgc3RvcF9sb2Nh
bF9hbGxvY2F0b3JzX2lmX25lYwogICAgIAogICAgIHN0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9u
ZWNlc3NhcnlfZGF0YSogZGF0YTsKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9p
bmRleDsKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CisgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogc2NhdmVuZ2VyX2RhdGE7CiAKICAgICBkYXRhID0g
YXJnOwogCkBAIC00MDgsMTggKzM3OSwxOSBAQCBzdGF0aWMgYm9vbCBzdG9wX2xvY2FsX2FsbG9j
YXRvcnNfaWZfbmVjCiAgICAgCiAgICAgcGFzX2JpdHZlY3Rvcl9zZXQoZGF0YS0+c2hvdWxkX3N0
b3BfYml0dmVjdG9yLCBhbGxvY2F0b3JfaW5kZXgsIGZhbHNlKTsKICAgICAKLSAgICBhbGxvY2F0
b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKKyAg
ICBzY2F2ZW5nZXJfZGF0YSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9j
YXRvcl9pbXBsKAogICAgICAgICBkYXRhLT50aHJlYWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9p
bmRleCk7Ci0gICAgCi0gICAgaWYgKGFsbG9jYXRvciA9PSBkYXRhLT5yZXF1ZXN0aW5nX2FsbG9j
YXRvcikKKworICAgIGlmICgocGFzX2xvY2FsX2FsbG9jYXRvciopc2NhdmVuZ2VyX2RhdGEgPT0g
ZGF0YS0+cmVxdWVzdGluZ19hbGxvY2F0b3IpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAot
ICAgIGlmICghYWxsb2NhdG9yLT5zaG91bGRfc3RvcF9jb3VudCkKKyAgICBpZiAoIXNjYXZlbmdl
cl9kYXRhLT5zaG91bGRfc3RvcF9jb3VudCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAg
ICAgaWYgKHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9jYXRvciAlcCBi
ZWNhdXNlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxvY2F0b3JzX2lmX25l
Y2Vzc2FyeVxuIiwgYWxsb2NhdG9yKTsKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3AoYWxs
b2NhdG9yLCBwYXNfbG9ja19sb2NrX21vZGVfbG9jaywgZGF0YS0+aGVhcF9sb2NrX2hvbGRfbW9k
ZSk7CisgICAgICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9jYXRvciAlcCBiZWNhdXNlIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxvY2F0b3JzX2lmX25lY2Vzc2FyeVxuIiwg
c2NhdmVuZ2VyX2RhdGEpOworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFf
c3RvcCgKKyAgICAgICAgc2NhdmVuZ2VyX2RhdGEsIHBhc19sb2NrX2xvY2tfbW9kZV9sb2NrLCBk
YXRhLT5oZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDUx
LDYgKzQyMyw3IEBAIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2EKIAog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKIHByb2Nlc3NfZGVhbGxvY2F0aW9uX2xvZ193
aXRoX2NvbmZpZyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZSBk
ZWFsbG9jYXRpb25fbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3QqIGluZGV4LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBlbmNvZGVkX2JlZ2luLApAQCAtNDc3LDcgKzQ1MCw4
IEBAIHByb2Nlc3NfZGVhbGxvY2F0aW9uX2xvZ193aXRoX2NvbmZpZyhwYXMKIAogICAgICAgICBk
ZWZhdWx0OgogICAgICAgICAgICAgbGFzdF9oZWxkX2xvY2sgPSAqaGVsZF9sb2NrOwotICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlKGJlZ2luLCBoZWxkX2xvY2ssIHBh
Z2VfY29uZmlnKTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZSgK
KyAgICAgICAgICAgICAgICBiZWdpbiwgaGVsZF9sb2NrLCBkZWFsbG9jYXRpb25fbW9kZSwgY2Fj
aGUsIHBhZ2VfY29uZmlnKTsKICAgICAgICAgICAgIGlmICh2ZXJib3NlICYmICpoZWxkX2xvY2sg
IT0gbGFzdF9oZWxkX2xvY2sgJiYgbGFzdF9oZWxkX2xvY2spCiAgICAgICAgICAgICAgICAgcGFz
X2xvZygiU3dpdGNoZWQgbG9jayBmcm9tICVwIHRvICVwLlxuIiwgbGFzdF9oZWxkX2xvY2ssICpo
ZWxkX2xvY2spOwogICAgICAgICAgICAgCkBAIC00OTcsMTkgKzQ3MSwxNSBAQCBwcm9jZXNzX2Rl
YWxsb2NhdGlvbl9sb2dfd2l0aF9jb25maWcocGFzCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBm
bHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2Nh
bF9jYWNoZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9s
ZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJvb2wgaXNfbG9jYWwpCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBmbHVz
aF9kZWFsbG9jYXRpb25fbG9nKAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9s
b2NhbF9jYWNoZSwKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZSBkZWFsbG9j
YXRpb25fbW9kZSkKIHsKICAgICBzaXplX3QgaW5kZXg7CiAgICAgcGFzX2xvY2sqIGhlbGRfbG9j
azsKLSAgICAKLSAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNoZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgcGFzX2xvY2tfbG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hf
bG9jayk7Ci0gICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAKKyAgICBwYXNfbG9ja190ZXN0aW5n
X2Fzc2VydF9oZWxkKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsK
KyAgICAKICAgICBpbmRleCA9IHRocmVhZF9sb2NhbF9jYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19p
bmRleDsKICAgICBoZWxkX2xvY2sgPSBOVUxMOwogCkBAIC01MjMsNyArNDkzLDcgQEAgc3RhdGlj
IHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyhwYXNfdAogI2RlZmluZSBQQVNfREVGSU5FX1NF
R1JFR0FURURfUEFHRV9DT05GSUdfS0lORChuYW1lLCB2YWx1ZSkgXAogICAgICAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfICMjIG5hbWU6IFwKICAgICAgICAgICAgIHBy
b2Nlc3NfZGVhbGxvY2F0aW9uX2xvZ193aXRoX2NvbmZpZyggXAotICAgICAgICAgICAgICAgIHRo
cmVhZF9sb2NhbF9jYWNoZSwgdmFsdWUsICZpbmRleCwgZW5jb2RlZF9iZWdpbiwgJmhlbGRfbG9j
ayk7IFwKKyAgICAgICAgICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUsIGRlYWxsb2NhdGlvbl9t
b2RlLCB2YWx1ZSwgJmluZGV4LCBlbmNvZGVkX2JlZ2luLCAmaGVsZF9sb2NrKTsgXAogICAgICAg
ICAgICAgYnJlYWs7CiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5k
ZWYiCiAjdW5kZWYgUEFTX0RFRklORV9TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkQKQEAgLTUz
MSwyNCArNTAxLDM3IEBAIHN0YXRpYyB2b2lkIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3QK
ICAgICB9CiAgICAgCiAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotICAg
IAotICAgIGlmIChpc19sb2NhbCkgewotICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxs
b2NhdGlvbl9sb2dfaW5kZXggPSAwOwotICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPm51bV9s
b2dnZWRfYnl0ZXMgPSAwOwotICAgIH0KK30KIAotICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwot
ICAgIHBhc19sb2NrX3VubG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hf
bG9jayk7CitzdGF0aWMgdm9pZCBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX2Zvcl9zY2F2ZW5nZXIo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlKQoreworICAgIGlmICgh
dGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4KQorICAgICAgICByZXR1
cm47CiAgICAgCi0gICAgaWYgKGhlYXBfbG9ja19ob2xkX21vZGUgPT0gcGFzX2xvY2tfaXNfbm90
X2hlbGQpCi0gICAgICAgIHBhc19zY2F2ZW5nZXJfbm90aWZ5X2VsaWdpYmlsaXR5X2lmX25lZWRl
ZCgpOworICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2codGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNf
c2VncmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGUpOwogfQogCiB2b2lkIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyhwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9k
ZSkKIHsKLSAgICBib29sIGlzX2xvY2FsID0gdHJ1ZTsKLSAgICBmbHVzaF9kZWFsbG9jYXRpb25f
bG9nKHRocmVhZF9sb2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSwgaXNfbG9jYWwpOwor
ICAgIGlmICghdGhyZWFkX2xvY2FsX2NhY2hlKQorICAgICAgICByZXR1cm47CisKKyAgICBwYXNf
bG9ja19sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKKwor
ICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2codGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNfc2VncmVn
YXRlZF9kZWFsbG9jYXRpb25fdG9fdmlld19jYWNoZV9tb2RlKTsKKyAgICAKKyAgICB0aHJlYWRf
bG9jYWxfY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfaW5kZXggPSAwOworICAgIHRocmVhZF9sb2Nh
bF9jYWNoZS0+bnVtX2xvZ2dlZF9ieXRlcyA9IDA7CisKKyAgICAvKiBEaXJ0eWluZyB0aGUgZGVh
bGxvY2F0aW9uIGxvZyBpcyBhIHNpZ25hbCB0byB0aGUgc2NhdmVuZ2VyIHRoYXQgd2UgYXJlIGFj
dGl2ZWx5IG9wZXJhdGluZyBvbgorICAgICAgIHRoaXMgbG9nLiAqLworICAgIHRocmVhZF9sb2Nh
bF9jYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19kaXJ0eSA9IHRydWU7CisKKyAgICBwYXNfbG9ja191
bmxvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNoX2xvY2spOworICAgIAor
ICAgIGlmIChoZWFwX2xvY2tfaG9sZF9tb2RlID09IHBhc19sb2NrX2lzX25vdF9oZWxkKQorICAg
ICAgICBwYXNfc2NhdmVuZ2VyX25vdGlmeV9lbGlnaWJpbGl0eV9pZl9uZWVkZWQoKTsKIH0KIAog
c3RhdGljIHZvaWQgc3VzcGVuZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKQEAgLTU4
Nyw3ICs1NzAsNyBAQCBzdGF0aWMgdm9pZCByZXN1bWUocGFzX3RocmVhZF9sb2NhbF9jYWNoCiAg
ICAgCiAgICAgaWYgKGNhY2hlLT50aHJlYWQgPT0gcHRocmVhZF9zZWxmKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICAKKwogICAgIHJlc3VsdCA9IHRocmVhZF9yZXN1bWUocHRocmVhZF9tYWNoX3Ro
cmVhZF9ucChjYWNoZS0+dGhyZWFkKSk7CiAgICAgCiAgICAgUEFTX0FTU0VSVChyZXN1bHQgPT0g
S0VSTl9TVUNDRVNTKTsKQEAgLTYyNyw3ICs2MTAsMjYgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2Zvcl9hbGwocGFzXwogICAgICAgICBjYWNoZSA9IG5vZGUtPmNhY2hlOwogICAgICAg
ICBpZiAoIWNhY2hlKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIAorCisgICAgICAg
IHBhc19sb2NrX2xvY2soJm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKKworICAgICAgICBzd2l0Y2gg
KGRlYWxsb2NhdG9yX2FjdGlvbikgeworICAgICAgICBjYXNlIHBhc19kZWFsbG9jYXRvcl9zY2F2
ZW5nZV9ub19hY3Rpb246CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAg
ICBjYXNlIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfaWZfY2xlYW5fYWN0aW9u
OgorICAgICAgICAgICAgaWYgKGNhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2RpcnR5KSB7CisgICAg
ICAgICAgICAgICAgY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfZGlydHkgPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICByZXN1bHQgPSAhIWNhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4OworICAg
ICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19m
b3Jfc2NhdmVuZ2VyKGNhY2hlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisg
ICAgICAgIGNhc2UgcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2ZsdXNoX2xvZ19hY3Rpb246Cisg
ICAgICAgICAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX2Zvcl9zY2F2ZW5nZXIoY2FjaGUpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgICBpZiAoYWxsb2NhdG9yX2Fj
dGlvbiAhPSBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX25vX2FjdGlvbikgewogICAgICAgICAgICAg
Ym9vbCBkaWRfc3VzcGVuZDsKICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbGF5b3V0X25vZGU7CkBAIC02MzYsMzkgKzYzOCw0MCBAQCBib29sIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfCiAKICAgICAgICAgICAgIGZvciAoUEFTX1RIUkVB
RF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7CiAgICAg
ICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAg
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOworICAgICAgICAgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRhOwogCi0g
ICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2RlKTsKKyAgICAgICAgICAg
ICAgICBhbGxvY2F0b3JfaW5kZXggPQorICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhsYXlvdXRf
bm9kZSk7CiAKICAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IGNhY2hlLT5h
bGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKGNhY2hlLCBhbGxvY2F0b3JfaW5k
ZXgpOwotICAgICAgICAgICAgICAgIAorCisgICAgICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbChjYWNoZSwg
YWxsb2NhdG9yX2luZGV4KTsKKwogICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JfYWN0aW9u
ID09IHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfcmVxdWVzdF9zdG9wX2FjdGlvbikgewogICAgICAg
ICAgICAgICAgICAgICB1aW50OF90IHNob3VsZF9zdG9wX2NvdW50OwogICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJEb2luZyB0aGUgcmVxdWVzdCB0aGluZ3kuXG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3ItPmRpcnR5KSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChzY2F2ZW5nZXJfZGF0YS0+ZGlydHkpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2coIkl0IHdhcyBkaXJ0eS5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
YWxsb2NhdG9yLT5kaXJ0eSA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgc2NhdmVu
Z2VyX2RhdGEtPmRpcnR5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQg
PSB0cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgICAgICAgICAvKiBCYWlsIG91dCBpZiBpdCdzIG5vIGxv
bmdlciBhY3RpdmUuICovCi0gICAgICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9j
YXRvcl9pc19hY3RpdmUoYWxsb2NhdG9yKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXBh
c19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZlKHNjYXZlbmdlcl9kYXRh
KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvZygiSXQgd2FzIGVtcHR5LlxuIik7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICAgICAgICAgIHNob3VsZF9zdG9wX2NvdW50ID0gYWxsb2NhdG9yLT5zaG91bGRfc3RvcF9jb3Vu
dDsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkX3N0b3BfY291bnQgPSBzY2F2ZW5nZXJfZGF0
YS0+c2hvdWxkX3N0b3BfY291bnQ7CiAgICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRfc3Rv
cF9jb3VudCA8IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hvdWxkX3N0b3BfY291bnRfZm9yX3N1c3Bl
bmQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvci0+c2hvdWxkX3N0b3BfY291
bnQgPSArK3Nob3VsZF9zdG9wX2NvdW50OworICAgICAgICAgICAgICAgICAgICAgICAgc2NhdmVu
Z2VyX2RhdGEtPnNob3VsZF9zdG9wX2NvdW50ID0gKytzaG91bGRfc3RvcF9jb3VudDsKICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChz
aG91bGRfc3RvcF9jb3VudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PSBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kKTsKQEAgLTY5
Myw3ICs2OTYsNyBAQCBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfCiAg
ICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoYWxsb2NhdG9yX2FjdGlvbiA9PSBwYXNfYWxs
b2NhdG9yX3NjYXZlbmdlX2ZvcmNlX3N0b3BfYWN0aW9uKTsKICAgICAgICAgICAgICAgICB9CiAK
LSAgICAgICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3JfaXNfYWN0aXZlKGFsbG9j
YXRvcikpIHsKKyAgICAgICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGFfaXNfYWN0aXZlKHNjYXZlbmdlcl9kYXRhKSkgewogICAgICAgICAgICAgICAgICAg
ICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkl0IHdhcyBl
bXB0eS5cbiIpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTcwNywyMyArNzEw
LDIyIEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc18KICAgICAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvZygiTmVlZCB0byBzdXNwZW5kIGZvciBhbGxvY2F0b3IgJXBcbiIsIGFsbG9j
YXRvcik7CisgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIk5lZWQgdG8gc3VzcGVuZCBmb3Ig
YWxsb2NhdG9yICVwXG4iLCBzY2F2ZW5nZXJfZGF0YSk7CiAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgaWYgKCFkaWRfc3VzcGVuZCkgewogICAgICAgICAgICAgICAgICAgICBzdXNw
ZW5kKGNhY2hlKTsKLSAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGRp
ZF9zdXNwZW5kID0gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRvci0+aXNfaW5fdXNlKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHNjYXZlbmdlcl9kYXRhLT5pc19pbl91c2UpIHsKICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAg
ICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9jYXRvciAlcCB3aGlsZSBzdXNwZW5kZWRcbiIsIGFs
bG9jYXRvcik7Ci0gICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3Ao
Ci0gICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3IsIHBhc19sb2NrX2xvY2tfbW9kZV90
cnlfbG9jaywgcGFzX2xvY2tfaXNfaGVsZCkpCisgICAgICAgICAgICAgICAgICAgIHBhc19sb2co
IlN0b3BwaW5nIGFsbG9jYXRvciAlcCB3aGlsZSBzdXNwZW5kZWRcbiIsIHNjYXZlbmdlcl9kYXRh
KTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGFfc3RvcCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjYXZlbmdlcl9kYXRhLCBwYXNfbG9j
a19sb2NrX21vZGVfdHJ5X2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpKQogICAgICAgICAgICAgICAg
ICAgICByZXN1bHQgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC03MzEs
MTIgKzczMyw3IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc18KICAg
ICAgICAgICAgICAgICByZXN1bWUoY2FjaGUpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICBpZiAoZGVhbGxvY2F0b3JfYWN0aW9uID09IHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVz
aF9sb2dfYWN0aW9uKSB7Ci0gICAgICAgICAgICBib29sIGlzX2xvY2FsOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBpc19sb2NhbCA9IGZhbHNlOwotICAgICAgICAgICAgZmx1c2hfZGVhbGxv
Y2F0aW9uX2xvZyhjYWNoZSwgcGFzX2xvY2tfaXNfaGVsZCwgaXNfbG9jYWwpOwotICAgICAgICB9
CisgICAgICAgIHBhc19sb2NrX3VubG9jaygmbm9kZS0+bG9nX2ZsdXNoX2xvY2spOwogICAgIH0K
ICAgICAKICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19o
b2xkX21vZGUpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaAkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFBBU19USFJFQURfTE9D
QUxfQ0FDSEVfSAogI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0gKIAorI2luY2x1ZGUg
InBhc19hbGxvY2F0b3JfaW5kZXguaCIKICNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX3NjYXZlbmdl
X2FjdGlvbi5oIgogI2luY2x1ZGUgInBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCIK
ICNpbmNsdWRlICJwYXNfZmFzdF90bHMuaCIKQEAgLTU2LDYgKzU3LDEwIEBAIHN0cnVjdCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlIHsKIAogICAgIHVuc2lnbmVkIGRlYWxsb2NhdGlvbl9sb2dfaW5k
ZXg7CiAKKyAgICAvKiBBIGRpcnR5IGFsbG9jYXRpb24gbG9nIGlzIG9uZSB0aGF0IGhhcyBiZWVu
IGZsdXNoZWQgYnkgdGhlIHRocmVhZCByZWNlbnRseS4gQSBjbGVhbiBvbmUgaXMKKyAgICAgICBv
bmUgdGhhdCBoYXNuJ3QgYmVlbiB0b3VjaGVkIGJ5IHRoZSB0aHJlYWQgKGV4Y2VwdCBtYXliZSBi
eSBhcHBlbmRpbmcgbW9yZSB0aGluZ3MgdG8gaXQpLiAqLworICAgIGJvb2wgZGVhbGxvY2F0aW9u
X2xvZ19kaXJ0eTsKKwogICAgIHNpemVfdCBudW1fbG9nZ2VkX2J5dGVzOyAvKiBUaGlzIHVuZGVy
Y291bnRzIHNpbmNlIHdoZW4gd2UgYXBwZW5kIHNtYWxsIG9iamVjdHMgd2UgZG9uJ3QKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG91Y2ggdGhpcy4gKi8KIApAQCAtMTY4LDEyICsx
NzMsMTIgQEAgUEFTX0FQSSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdAogICAgIHVu
c2lnbmVkIGFsbG9jYXRvcl9pbmRleCwKICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2Nr
X2hvbGRfbW9kZSk7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfbG9jYWxfYWxsb2Nh
dG9yKgorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgdWludHB0cl90IGFsbG9jYXRvcl9pbmRleCkKIHsK
LSAgICByZXR1cm4gKHBhc19sb2NhbF9hbGxvY2F0b3IqKSh0aHJlYWRfbG9jYWxfY2FjaGUtPmxv
Y2FsX2FsbG9jYXRvcnMgKyBhbGxvY2F0b3JfaW5kZXgpOworICAgIHJldHVybiAodm9pZCopKHRo
cmVhZF9sb2NhbF9jYWNoZS0+bG9jYWxfYWxsb2NhdG9ycyArIGFsbG9jYXRvcl9pbmRleCk7CiB9
CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdApA
QCAtMTgzLDYgKzE4OCwxMCBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxv
Y2F0CiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7CiAgICAg
aWYgKFBBU19VTkxJS0VMWShhbGxvY2F0b3JfaW5kZXggPj0gdGhyZWFkX2xvY2FsX2NhY2hlLT5h
bGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpKSB7CisgICAgICAgIC8qIEl0IGNvdWxkIGJlIHRo
YXQgd2UganVzdCBkb24ndCBoYXZlIGFuIGFsbG9jYXRvciBpbmRleCB5ZXQuICovCisgICAgICAg
IGlmIChhbGxvY2F0b3JfaW5kZXggPj0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpCisg
ICAgICAgICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX2ZhaWx1
cmUoKTsKKyAgICAKICAgICAgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xv
Y2FsX2FsbG9jYXRvcl9zbG93KAogICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBhbGxv
Y2F0b3JfaW5kZXgsIGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwkod29y
a2luZyBjb3B5KQpAQCAtMzEsOCArMzEsOSBAQAogCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5o
IgogI2luY2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgorI2luY2x1ZGUgInBh
c19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCIKICNpbmNsdWRlICJwYXNfcmVkdW5kYW50X2xvY2Fs
X2FsbG9jYXRvcl9ub2RlLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZmlyc3Rf
bm9kZSA9IE5VTEw7CkBAIC00NSwxNyArNDYsMTMgQEAgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNf
dGhyZWFkX2xvY2FsX2NhYwogCiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCByZXN1bHQ7CiAgICAg
Ym9vbCBkaWRfb3ZlcmZsb3c7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3Rvcnk7CiAKICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CiAKICAg
ICBQQVNfQVNTRVJUKAotICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2dldF9hbGxvY2F0b3JfaW5kZXgobm9kZSkKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSkKICAgICAgICAg
PT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogCi0gICAgZGlyZWN0b3J5ID0gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KG5vZGUpOwotICAg
IFBBU19BU1NFUlQoZGlyZWN0b3J5KTsKLQogICAgIFBBU19BU1NFUlQoIXBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X25leHQobm9kZSkpOwogICAgIAogICAgIHJlc3VsdCA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4OwpAQCAt
NjYsMTIgKzYzLDEyIEBAIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMK
ICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBwYXNfbG9nKCJwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9hZGRfbm9kZTogbm9kZSA9ICVwLCBhbGxvY2F0b3JfaW5kZXggPSAldSwgIgog
ICAgICAgICAgICAgICAgICJudW1fYWxsb2NhdG9yX2luZGljZXMgPSAldVxuIiwKLSAgICAgICAg
ICAgICAgICBub2RlLCByZXN1bHQsIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9udW1fYWxsb2NhdG9yX2luZGljZXMoZGlyZWN0b3J5KSk7CisgICAgICAgICAgICAgICAgbm9k
ZSwgcmVzdWx0LCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9yX2lu
ZGljZXMobm9kZSkpOwogICAgIH0KIAogICAgIGRpZF9vdmVyZmxvdyA9IF9fYnVpbHRpbl9hZGRf
b3ZlcmZsb3coCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxs
b2NhdG9yX2luZGV4LAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGRpcmVjdG9yeSksCisgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxvY2F0b3JfaW5kaWNlcyhub2RlKSwKICAgICAgICAg
JnBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4KTsKICAg
ICBQQVNfQVNTRVJUKCFkaWRfb3ZlcmZsb3cpOwogCkBAIC05Myw3ICs5MCw3IEBAIHBhc19hbGxv
Y2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMKIH0KIAogcGFzX2FsbG9jYXRvcl9pbmRl
eCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGQoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiAKQEAgLTEwNCwxMSArMTAxLDExIEBAIHBhc19hbGxvY2F0b3JfaW5kZXggcGFz
X3RocmVhZF9sb2NhbF9jYWMKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X2FkZF9ub2RlKAotICAgICAgICBwYXNfd3JhcF9zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeShkaXJlY3RvcnkpKTsKKyAgICAgICAgcGFzX3dyYXBfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeShkaXJlY3RvcnkpKTsKIH0KIAogcGFzX2FsbG9jYXRvcl9pbmRl
eCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9kdXBsaWNhdGUoCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICBwYXNfcmVkdW5kYW50X2xvY2Fs
X2FsbG9jYXRvcl9ub2RlKiByZWR1bmRhbnRfbm9kZTsKIApAQCAtMTE4LDQgKzExNSwxNCBAQCBw
YXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjCiAgICAgICAgIHBhc193cmFw
X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShyZWR1bmRhbnRfbm9kZSkpOwogfQogCitw
YXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZF92aWV3
X2NhY2hlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7
CisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSogY2FjaGVfbm9kZTsKKworICAgIGNhY2hl
X25vZGUgPSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlX2NyZWF0ZShkaXJlY3RvcnkpOworCisg
ICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZF9ub2RlKHBhc193cmFw
X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShjYWNoZV9ub2RlKSk7Cit9CisKICNlbmRpZiAvKiBMSUJQ
QVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oCShyZXZp
c2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDMsMTAgKzQzLDEz
IEBAIFBBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2wKICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpOwogCiBQQVNfQVBJIHBhc19hbGxvY2F0
b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkKAotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogUEFTX0FQSSBwYXNfYWxsb2NhdG9y
X2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2R1cGxpY2F0ZSgKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK1BBU19BUEkgcGFzX2FsbG9j
YXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfdmlld19jYWNoZSgK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogI2RlZmlu
ZSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihub2RlKSBcCiAg
ICAgbm9kZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2ZpcnN0X25vZGU7IFwKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwzNiArMjksNzUgQEAKIAog
I2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKIAorI2luY2x1
ZGUgInBhc19sb2NhbF92aWV3X2NhY2hlLmgiCisjaW5jbHVkZSAicGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZS5oIgogI2luY2x1ZGUgInBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUu
aCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAKLXBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KgogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKIHsKLSAgICBpZiAocGFz
X2lzX3dyYXBwZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9kZSkpCi0gICAg
ICAgIHJldHVybiBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG5v
ZGUpOworICAgIGlmIChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5v
ZGUpKQorICAgICAgICByZXR1cm4gcGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KG5vZGUpOwogCi0gICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKAotICAgICAgICAmcGFzX3Vud3JhcF9yZWR1bmRhbnRfbG9jYWxf
YWxsb2NhdG9yX25vZGUobm9kZSktPmRpcmVjdG9yeSk7CisgICAgaWYgKHBhc19pc193cmFwcGVk
X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKSl7CisgICAgICAgIHJldHVybiBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAor
ICAgICAgICAgICAgJnBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5v
ZGUpLT5kaXJlY3RvcnkpOworICAgIH0KKworICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAmcGFzX3Vud3Jh
cF9sb2NhbF92aWV3X2NhY2hlX25vZGUobm9kZSktPmRpcmVjdG9yeSk7Cit9CisKK3Bhc19hbGxv
Y2F0b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxvY2F0b3Jf
aW5kaWNlcyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCit7CisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKworICAgIGRpcmVjdG9y
eSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShub2Rl
KTsKKyAgICAKKyAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXBy
ZXNlbnRzX2FsbG9jYXRvcihub2RlKSkKKyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlcyhkaXJlY3RvcnkpOworCisgICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19m
b3JfYWxsb2NhdG9yX3NpemUoCisgICAgICAgIFBBU19MT0NBTF9WSUVXX0NBQ0hFX1NJWkUocGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eShkaXJlY3Rvcnkp
KSk7CiB9CiAKIHN0YXRpYyBwYXNfYWxsb2NhdG9yX2luZGV4KgogYWxsb2NhdG9yX2luZGV4X3B0
cihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0gICAgaWYgKHBh
c19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG5vZGUpKSB7Ci0g
ICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFf
cHRyX2xvYWQoCi0gICAgICAgICAgICAmcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeShub2RlKS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRleDsKKyAgICBpZiAocGFzX2lz
X3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2RlKSkgeworICAgICAgICByZXR1
cm4gJnBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoCisgICAgICAg
ICAgICAmcGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5vZGUpLT5kYXRhKS0+
YWxsb2NhdG9yX2luZGV4OwogICAgIH0KIAotICAgIHJldHVybiAmcGFzX3Vud3JhcF9yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobm9kZSktPmFsbG9jYXRvcl9pbmRleDsKKyAgICBpZiAo
cGFzX2lzX3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5vZGUpKQorICAg
ICAgICByZXR1cm4gJnBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5v
ZGUpLT5hbGxvY2F0b3JfaW5kZXg7CisKKyAgICByZXR1cm4gJnBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgICZwYXNfdW53cmFw
X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShub2RlKS0+ZGlyZWN0b3J5KS0+dmlld19jYWNoZV9pbmRl
eDsKIH0KIAogcGFzX2FsbG9jYXRvcl9pbmRleAotcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUgbm9kZSkKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9j
YXRvcl9pbmRleF9nZW5lcmljKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9k
ZSkKIHsKICAgICByZXR1cm4gKmFsbG9jYXRvcl9pbmRleF9wdHIobm9kZSk7CiB9CiAKK3Bhc19h
bGxvY2F0b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2Fs
bG9jYXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUgbm9kZSkKK3sKKyAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3Iobm9kZSkpOworICAgIHJldHVybiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhu
b2RlKTsKK30KKworcGFzX2FsbG9jYXRvcl9pbmRleAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl92aWV3X2NhY2hlKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3sKKyAgICBQQVNfQVNTRVJUKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c192aWV3X2NhY2hlKG5vZGUpKTsK
KyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2Nh
dG9yX2luZGV4X2dlbmVyaWMobm9kZSk7Cit9CisKIHZvaWQKIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfc2V0X2FsbG9jYXRvcl9pbmRleChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlIG5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBpbmRleCkKQEAgLTY5LDEyICsx
MDgsMTUgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zZXRfYQogc3RhdGlj
IHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUqCiBuZXh0
X3B0cihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0gICAgaWYg
KHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG5vZGUpKSB7
Ci0gICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Rh
dGFfcHRyX2xvYWQoCi0gICAgICAgICAgICAmcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeShub2RlKS0+ZGF0YSktPm5leHRfZm9yX2xheW91dDsKKyAgICBpZiAocGFz
X2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2RlKSkgeworICAgICAgICBy
ZXR1cm4gJnBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoCisgICAg
ICAgICAgICAmcGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5vZGUpLT5kYXRh
KS0+bmV4dF9mb3JfbGF5b3V0OwogICAgIH0KLSAgICAKLSAgICByZXR1cm4gJnBhc191bndyYXBf
cmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5vZGUpLT5uZXh0OworCisgICAgaWYgKHBh
c19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKSkKKyAgICAg
ICAgcmV0dXJuICZwYXNfdW53cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2Rl
KS0+bmV4dDsKKworICAgIHJldHVybiAmcGFzX3Vud3JhcF9sb2NhbF92aWV3X2NhY2hlX25vZGUo
bm9kZSktPm5leHQ7CiB9CiAKIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUKQEAg
LTgzLDExICsxMjUsNzIgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRf
bgogICAgIHJldHVybiBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2xvYWQobmV4dF9wdHIobm9kZSkpOwogfQogCi12b2lkCi1wYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX3NldF9uZXh0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUgbm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0X25vZGUpCit2b2lkIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc2V0X25leHQocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbmV4dF9u
b2RlKQogewogICAgIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfc3RvcmUobmV4dF9wdHIobm9kZSksIG5leHRfbm9kZSk7CiB9CiAKK3ZvaWQgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb25zdHJ1Y3QocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKK3sKKyAgICBp
ZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRv
cihub2RlKSkgeworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdCgKKyAgICAg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAor
ICAgICAgICAgICAgICAgIGNhY2hlLCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcihub2RlKSksCisgICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3Rvcnkobm9kZSkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfY29uc3Ry
dWN0KAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3Jf
aW1wbCgKKyAgICAgICAgICAgIGNhY2hlLCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX3ZpZXdfY2FjaGUobm9kZSkpLAorICAgICAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2NhY2hlX2NhcGFjaXR5KAorICAgICAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KG5v
ZGUpKSk7Cit9CisKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9tb3Zl
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRv
X2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZSogZnJvbV9jYWNoZSkKK3sKKyAgICBwYXNfYWxsb2NhdG9yX2lu
ZGV4IGFsbG9jYXRvcl9pbmRleDsKKworICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5vZGUp
OworICAgIAorICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJl
c2VudHNfYWxsb2NhdG9yKG5vZGUpKSB7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfbW92
ZSgKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9pbXBsKHRvX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpLAorICAgICAgICAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoZnJvbV9jYWNoZSwgYWxsb2Nh
dG9yX2luZGV4KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYXNfbG9jYWxfdmll
d19jYWNoZV9tb3ZlKAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9h
bGxvY2F0b3JfaW1wbCh0b19jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSwKKyAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoZnJvbV9jYWNoZSwgYWxs
b2NhdG9yX2luZGV4KSk7Cit9CisKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9zdG9wKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19o
b2xkX21vZGUpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAg
IAorICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OworICAgIHZvaWQqIGFs
bG9jYXRvcjsKKworICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5vZGUpOworICAgIGFsbG9j
YXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKGNh
Y2hlLCBhbGxvY2F0b3JfaW5kZXgpOworICAgIAorICAgIGlmICh2ZXJib3NlKQorICAgICAgICBw
YXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgYmVjYXVzZSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9yc1xuIiwgYWxsb2NhdG9yKTsKKyAgICAKKyAgICBpZiAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihu
b2RlKSkgeworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3AoYWxsb2NhdG9yLCBwYWdl
X2xvY2tfbW9kZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKGFsbG9jYXRvciwgcGFnZV9sb2NrX21v
ZGUpOworfQorCiAjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChj
KSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2NiArMjcsMTQzIEBACiAjZGVmaW5lIFBBU19USFJF
QURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfSAogCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9p
bmRleC5oIgorI2luY2x1ZGUgInBhc19sb2NrLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKIFBB
U19CRUdJTl9FWFRFUk5fQzsKIAorc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGU7CiBz
dHJ1Y3QgcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZTsKLXN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZTsKIHN0cnVjdCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX29wYXF1ZTsKK3R5cGVkZWYgc3RydWN0IHBh
c19sb2NhbF92aWV3X2NhY2hlX25vZGUgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZTsKIHR5cGVk
ZWYgc3RydWN0IHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUgcGFzX3JlZHVuZGFu
dF9sb2NhbF9hbGxvY2F0b3Jfbm9kZTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7
Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZTsKIHR5cGVkZWYgc3RydWN0IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfb3BhcXVlKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlOwogCi0jZGVmaW5lIFBBU19JU19SRURVTkRBTlRfTE9DQUxfQUxMT0NBVE9SX05PREVf
QklUICgodWludHB0cl90KTEpCisjZGVmaW5lIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VU
X05PREVfS0lORF9NQVNLIDNsdQorCitzdGF0aWMgaW5saW5lIHZvaWQqIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X3B0cihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlIG5vZGUpCit7CisgICAgcmV0dXJuICh2b2lkKikoKHVpbnRwdHJfdClub2RlICYgflBB
U19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfS0lORF9NQVNLKTsKK30KKworc3RhdGlj
IGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQKK3Bhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2tpbmQocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZSBub2RlKQoreworICAgIHJldHVybiAocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9raW5kKSgKKyAgICAgICAgKHVpbnRwdHJfdClub2RlICYgUEFTX1RIUkVB
RF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9LSU5EX01BU0spOworfQorCitzdGF0aWMgaW5saW5l
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUKK3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfY3JlYXRlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
a2luZCBraW5kLCB2b2lkKiBwdHIpCit7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZSByZXN1bHQ7CisgICAgCisgICAgUEFTX0FTU0VSVChwdHIpOworCisgICAgcmVzdWx0
ID0gKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUpKCh1aW50cHRyX3QpcHRyIHwg
KHVpbnRwdHJfdClraW5kKTsKKyAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZ2V0X3B0cihyZXN1bHQpID09IHB0cik7CisgICAgUEFTX0FTU0VSVChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9raW5kKHJlc3VsdCkgPT0ga2luZCk7
CisKKyAgICByZXR1cm4gcmVzdWx0OworfQogCiBzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUKLXBhc193cmFwX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQor
cGFzX3dyYXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KQogewotICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5KTsKLSAgICBy
ZXR1cm4gKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUpZGlyZWN0b3J5OworICAg
IHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NyZWF0ZSgKKyAgICAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9ub2RlX2tpbmQsIGRpcmVjdG9yeSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZQogcGFzX3dyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRv
cl9ub2RlKHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUqIG5vZGUpCiB7Ci0gICAg
UEFTX0FTU0VSVChub2RlKTsKLSAgICByZXR1cm4gKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUpKAotICAgICAgICAodWludHB0cl90KW5vZGUgfCBQQVNfSVNfUkVEVU5EQU5UX0xP
Q0FMX0FMTE9DQVRPUl9OT0RFX0JJVCk7CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfY3JlYXRlKAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfa2luZCwgbm9kZSk7Cit9CisKK3N0
YXRpYyBpbmxpbmUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZQorcGFzX3dyYXBf
bG9jYWxfdmlld19jYWNoZV9ub2RlKHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqIG5vZGUpCit7
CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY3JlYXRlKAor
ICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sb2NhbF92aWV3X2NhY2hlX25v
ZGVfa2luZCwgbm9kZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbAotcGFzX2lzX3dyYXBwZWRf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZSBub2RlKQorcGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0gICAgcmV0dXJu
ICEoKHVpbnRwdHJfdClub2RlICYgUEFTX0lTX1JFRFVOREFOVF9MT0NBTF9BTExPQ0FUT1JfTk9E
RV9CSVQpOworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dl
dF9raW5kKG5vZGUpCisgICAgICAgID09IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfbm9kZV9raW5kOwogfQogCiBzdGF0aWMgaW5saW5lIGJv
b2wKIHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0gICAgcmV0dXJuICFwYXNfaXNf
d3JhcHBlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShub2RlKTsKKyAgICByZXR1
cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfa2luZChub2RlKQorICAg
ICAgICA9PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9yZWR1bmRhbnRfbG9jYWxfYWxs
b2NhdG9yX25vZGVfa2luZDsKK30KKworc3RhdGljIGlubGluZSBib29sCitwYXNfaXNfd3JhcHBl
ZF9sb2NhbF92aWV3X2NhY2hlX25vZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSBub2RlKQoreworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2dldF9raW5kKG5vZGUpCisgICAgICAgID09IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZV9raW5kOwogfQogCi1zdGF0aWMgaW5saW5lIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKLXBhc191bndyYXBfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2Rl
KQorc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKK3Bhc191bndy
YXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlIG5vZGUpCiB7Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeShub2RlKSk7Ci0gICAgcmV0dXJuIChwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKW5vZGU7CisgICAgUEFTX0FTU0VSVChwYXNfaXNfd3Jh
cHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5vZGUpKTsKKyAgICByZXR1cm4gKHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KilwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9wdHIobm9kZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3JlZHVuZGFudF9sb2Nh
bF9hbGxvY2F0b3Jfbm9kZSoKIHBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9u
b2RlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKIHsKICAgICBQQVNf
QVNTRVJUKHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2Rl
KSk7Ci0gICAgcmV0dXJuIChwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKikoCi0g
ICAgICAgICh1aW50cHRyX3Qpbm9kZSAmIH5QQVNfSVNfUkVEVU5EQU5UX0xPQ0FMX0FMTE9DQVRP
Ul9OT0RFX0JJVCk7CisgICAgcmV0dXJuIChwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9u
b2RlKilwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9wdHIobm9kZSk7CiB9
CiAKLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kgorc3RhdGlj
IGlubGluZSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKgorcGFzX3Vud3JhcF9sb2NhbF92aWV3
X2NhY2hlX25vZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQorewor
ICAgIFBBU19BU1NFUlQocGFzX2lzX3dyYXBwZWRfbG9jYWxfdmlld19jYWNoZV9ub2RlKG5vZGUp
KTsKKyAgICByZXR1cm4gKHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqKXBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X3B0cihub2RlKTsKK30KKworUEFTX0FQSSBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfZ2V0X2RpcmVjdG9yeShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUp
OwogCiBQQVNfQVBJIHBhc19hbGxvY2F0b3JfaW5kZXgKLXBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlIG5vZGUpOworcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9j
YXRvcl9pbmRpY2VzKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7CisK
K3N0YXRpYyBpbmxpbmUgYm9vbAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9y
ZXByZXNlbnRzX2FsbG9jYXRvcihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5v
ZGUpCit7CisgICAgcmV0dXJuIHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkobm9kZSkKKyAgICAgICAgfHwgcGFzX2lzX3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2FsbG9j
YXRvcl9ub2RlKG5vZGUpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wKK3Bhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c192aWV3X2NhY2hlKHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3sKKyAgICByZXR1cm4gcGFzX2lzX3dyYXBwZWRf
bG9jYWxfdmlld19jYWNoZV9ub2RlKG5vZGUpOworfQorCitQQVNfQVBJIHBhc19hbGxvY2F0b3Jf
aW5kZXgKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9p
bmRleF9nZW5lcmljKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7CisK
K1BBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IoCisgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKKworUEFTX0FQSSBwYXNfYWxsb2NhdG9y
X2luZGV4CitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3Jf
aW5kZXhfZm9yX3ZpZXdfY2FjaGUoCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZSBub2RlKTsKIAogUEFTX0FQSSB2b2lkCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX3NldF9hbGxvY2F0b3JfaW5kZXgocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZSBub2RlLApAQCAtOTksNiArMTc2LDE4IEBAIFBBU19BUEkgdm9pZAogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zZXRfbmV4dChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlIG5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbmV4dF9ub2RlKTsKIAorUEFT
X0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29uc3RydWN0KHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiBjYWNoZSk7CisKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX21vdmUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlKiB0b19jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogZnJvbV9j
YWNoZSk7CisKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X3N0b3AocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19o
b2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNl
bmRpZiAvKiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0ggKi8KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfa2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0tJTkRfSAorI2RlZmluZSBQQVNf
VEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0tJTkRfSAorCisjaW5jbHVkZSAicGFzX3V0
aWxzLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworZW51bSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2tpbmQgeworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfbm9kZV9raW5kLAorICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9raW5kLAorICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZV9raW5k
Cit9OworCit0eXBlZGVmIGVudW0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9r
aW5kIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZDsKK3N0YXRpYyBpbmxp
bmUgY29uc3QgY2hhciogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kX2dl
dF9zdHJpbmcoCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kIGtp
bmQpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X25vZGVfa2luZDoKKyAgICAgICAg
cmV0dXJuICJzZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IjsKKyAgICBjYXNlIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9raW5kOgor
ICAgICAgICByZXR1cm4gInJlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3IiOworICAgIGNhc2UgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbG9jYWxfdmlld19jYWNoZV9ub2RlX2tpbmQ6Cisg
ICAgICAgIHJldHVybiAibG9jYWxfdmlld19jYWNoZSI7CisgICAgfQorICAgIFBBU19BU1NFUlQo
ISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworUEFTX0VO
RF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05P
REVfS0lORF9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jCShyZXZpc2lv
biAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX25vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtNDgsOCArNDgsMTkgQEAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKiBwYXNfdGhyZWFkXwogCiAgICAgcmVzdWx0ID0gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlX2ZpcnN0X2ZyZWU7CiAgICAgaWYgKCFyZXN1bHQpIHsK
LSAgICAgICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCi0gICAgICAgICAg
ICBzaXplb2YocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKSwKKyAgICAgICAgY29uc3Qgc2l6
ZV90IGludGVyZmVyZW5jZV9wYWRkaW5nID0gNjQ7CisgICAgICAgIAorICAgICAgICBzaXplX3Qg
c2l6ZTsKKworICAgICAgICBzaXplID0gUEFTX01BWCgKKyAgICAgICAgICAgIGludGVyZmVyZW5j
ZV9wYWRkaW5nLAorICAgICAgICAgICAgcGFzX3JvdW5kX3VwX3RvX25leHRfcG93ZXJfb2ZfMihz
aXplb2YocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKSkpOworCisgICAgICAgIGlmICh2ZXJi
b3NlKQorICAgICAgICAgICAgcGFzX2xvZygiQWxsb2NhdGluZyBUTEMgbm9kZSB3aXRoIHNpemUv
YWxpZ25tZW50ID0gJXp1LlxuIiwgc2l6ZSk7CisgICAgICAgIAorICAgICAgICByZXN1bHQgPSBw
YXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgKKyAgICAgICAgICAgIHNp
emUsIHNpemUsCiAgICAgICAgICAgICAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlIiwKICAg
ICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAgICAgICAgIApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9ub2RlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVmaW5lIFBBU19USFJFQURfTE9DQUxfQ0FDSEVf
Tk9ERV9ICiAKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX21hZ2F6aW5l
LmgiCiAjaW5jbHVkZSAicGFzX2xvY2suaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxs
b2NhdGUuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RyeV9hbGxvY2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw3ICs3Myw3IEBA
IHBhc190cnlfYWxsb2NhdGVfaW1wbChwYXNfaGVhcF9yZWYqIGhlYXAKICAgICAgICAgICAgIGNh
Y2hlLAogICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4KTsKICAgICAgICAgaWYgKFBBU19MSUtF
TFkoYWxsb2NhdG9yLmRpZF9zdWNjZWVkKSkgewotICAgICAgICAgICAgcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1
bHQgcmVzdWx0OwogICAgICAgICAgICAgcGFzX3RyeV9hbGxvY2F0ZV9pbXBsX3NpemVfdGh1bmtf
ZGF0YSBzaXplX3RodW5rX2RhdGE7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8qIFRoaXMg
dGhpbmcgd2l0aCB0aGUgc2l6ZSB0aHVuayBtZWFucyB0aGF0IGlzb2hlYXBzIHVzdWFsbHkgZG9u
J3QgaGF2ZSB0byBnZXQgdGhlCkBAIC04Myw3ICs4Myw4IEBAIHBhc190cnlfYWxsb2NhdGVfaW1w
bChwYXNfaGVhcF9yZWYqIGhlYXAKICAgICAgICAgICAgIHNpemVfdGh1bmtfZGF0YS5oZWFwX3Jl
ZiA9IGhlYXBfcmVmOwogCiAgICAgICAgICAgICByZXN1bHQgPSB0cnlfYWxsb2NhdGVfY29tbW9u
X2Zhc3QoCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yLmFsbG9jYXRvciwgcGFzX3RyeV9hbGxv
Y2F0ZV9pbXBsX3NpemVfdGh1bmssICZzaXplX3RodW5rX2RhdGEsIDEpOworICAgICAgICAgICAg
ICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3IuYWxsb2NhdG9yLCBwYXNfdHJ5X2Fs
bG9jYXRlX2ltcGxfc2l6ZV90aHVuaywKKyAgICAgICAgICAgICAgICAmc2l6ZV90aHVua19kYXRh
LCAxKTsKIAogICAgICAgICAgICAgdHlwZSA9IGhlYXBfcmVmLT50eXBlOwogICAgICAgICAgICAg
cmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHQoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRl
X2FycmF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAgcGFzX3RyeV9hbGxvY2F0
ZV9hcnJheV9pbXBsKHBhc19oZWFwX3JlZgogICAgICAgICBhbGxvY2F0b3JfaW5kZXgsIGNvbmZp
Zy5jb25maWdfcHRyKTsKIAogICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3IuZGlk
X3N1Y2NlZWQKLSAgICAgICAgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGln
bm1lbnQoYWxsb2NhdG9yLmFsbG9jYXRvcikpCisgICAgICAgICYmIGFsaWdubWVudCA+IHBhc19s
b2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3Iu
YWxsb2NhdG9yKSkKICAgICAgICAgYWxsb2NhdG9yLmRpZF9zdWNjZWVkID0gZmFsc2U7CiAgICAg
CiAgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfY29tbW9uLmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlf
YWxsb2NhdGVfY29tbW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgInBhc19kZWJ1Z19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfaW5saW5lcy5oIgot
I2luY2x1ZGUgInBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKKyNpbmNsdWRlICJw
YXNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX2lu
bGluZXMuaCIKICNpbmNsdWRlICJwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgiCkBAIC00MiwyNiArNDIsNDMgQEAgcGFzX3Ry
eV9hbGxvY2F0ZV9jb21tb25fY2FuX2dvX2Zhc3QocGFzXwogICAgIHJldHVybiBhbGxvY2F0b3Jf
cmVzdWx0LmRpZF9zdWNjZWVkOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdAorcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9mYXN0X2lubGlu
ZV9vbmx5KAorICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCisgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyLAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFs
bG9jYXRvcikKK3sKKyAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVf
aW5saW5lX29ubHkoYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9maWx0ZXIpOworfQorCitzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X2FsbG9j
YXRlX2NvbW1vbl9pbXBsX2Zhc3QoCiAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKICAgICBw
YXNfYWxsb2NhdG9yX2NvdW50cyogYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0ICgqcmVzdWx0X2ZpbHRlcikocGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdCByZXN1bHQpLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVz
dWx0X2ZpbHRlciwKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgcGFz
X3NpemVfdGh1bmsgc2l6ZV90aHVuaywKICAgICB2b2lkKiBzaXplX3RodW5rX2FyZywKICAgICBz
aXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiByZXN1bHRfZmlsdGVyKHBhc19pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKAotICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZShhbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdGh1bmssCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdGh1bmtfYXJnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhbGlnbm1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxs
b2NhdG9yX2NvdW50cykpKTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CisgICAgCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICByZXN1bHQgPSBw
YXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShhbGxvY2F0b3IsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90aHVuaywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3RodW5rX2FyZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9jb3VudHMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X2Zp
bHRlcik7CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coImluIGNvbW1vbiAtIHJl
c3VsdC5iZWdpbiA9ICVwXG4iLCByZXN1bHQuYmVnaW4pOworICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNf
dHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3coCiAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3Jl
ZiwKICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9raW5kLApAQCAtNzksNyArOTYsNyBA
QCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3coCiAgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0IHJlc3VsdDsKICAgICBwYXNfaGVhcCogaGVhcDsKICAgICBwYXNfaGVhcF90eXBlKiB0
eXBlOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgdW5z
aWduZWQqIGNhY2hlZF9pbmRleDsKIAogICAgIGlmICh2ZXJib3NlKQpAQCAtMTA0LDcgKzEyMSw3
IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdygKICAgICAgICAgICAgIHJlc3Vs
dC5iZWdpbiA9ICh1aW50cHRyX3QpcmF3X3Jlc3VsdDsKICAgICAgICAgfQogCi0gICAgICAgIHJl
dHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZShyZXN1bHQpOworICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIGhlYXAgPSBwYXNfZW5zdXJlX2hlYXAo
aGVhcF9yZWYsIGhlYXBfcmVmX2tpbmQsIGNvbmZpZy5jb25maWdfcHRyLCBydW50aW1lX2NvbmZp
Zyk7CkBAIC0xNTYsNyArMTczLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93
KAogICAgICAgICAKICAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlfZWxpZ2liaWxpdHlfaWZf
bmVlZGVkKCk7CiAgICAgICAgIAotICAgICAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmVhdGUocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpCkBAIC0xNjQsNyArMTgxLDcgQEAgcGFzX3RyeV9hbGxv
Y2F0ZV9jb21tb25faW1wbF9zbG93KAogICAgIAogICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5KTsK
ICAgICAKLSAgICBiYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3IoCisgICAgYmFzZWxpbmVfYWxsb2Nh
dG9yX3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxvY2F0
b3IoCiAgICAgICAgIGRpcmVjdG9yeSwgYWxpZ25lZF9jb3VudCwgY291bnRfbG9va3VwX21vZGUs
IGNvbmZpZy5jb25maWdfcHRyLCBjYWNoZWRfaW5kZXgpOwogICAgIAogICAgIHJlc3VsdCA9IHBh
c19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKGJhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQu
YWxsb2NhdG9yLApAQCAtMTcyLDE2ICsxODksMTcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25f
aW1wbF9zbG93KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICh2b2lkKilzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFsaWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWxsb2NhdG9yX2NvdW50cyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWxsb2NhdG9yX2NvdW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOwogICAg
IAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogICAgIGlmIChiYXNlbGluZV9hbGxvY2F0b3Jf
cmVzdWx0LmxvY2spCiAgICAgICAgIHBhc19sb2NrX3VubG9jayhiYXNlbGluZV9hbGxvY2F0b3Jf
cmVzdWx0LmxvY2spOwogCi0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1
bHRfY3JlYXRlKHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlfYWxsb2NhdGVfY29t
bW9uX2ltcGwoCiAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICBzaXplX3QgYWxpZ25l
ZF9jb3VudCwgLyogTXVzdCBiZSA9IHJvdW5kX3VwKGNvdW50ICogdHlwZV9zaXplLCBhbGlnbm1l
bnQpIC8gdHlwZV9zaXplICovCkBAIC0xODksOCArMjA3LDggQEAgcGFzX3RyeV9hbGxvY2F0ZV9j
b21tb25faW1wbCgKICAgICBzaXplX3QgYWxpZ25tZW50LAogICAgIHBhc19oZWFwX2NvbmZpZyBj
b25maWcsCiAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGFsbG9jYXRvcl9jb3VudHMsCi0gICAg
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnJlc3VsdF9maWx0ZXIpKHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KSwKLSAgICBwYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0ICgqc2xvdykoCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcmVzdWx0
X2ZpbHRlcikocGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCksCisgICAgcGFzX2FsbG9jYXRp
b25fcmVzdWx0ICgqc2xvdykoCiAgICAgICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVf
dCBhbGlnbmVkX2NvdW50LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCksCiAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdCkKIHsKQEAgLTIwMyw3ICsy
MjEsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsKAogCiAgICAgaWYgKFBBU19MSUtF
TFkocGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fY2FuX2dvX2Zhc3QoYWxsb2NhdG9yX3Jlc3VsdCkp
KSB7CiAgICAgICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX2Zhc3QoCi0g
ICAgICAgICAgICBjb25maWcsIGFsbG9jYXRvcl9jb3VudHMsIHJlc3VsdF9maWx0ZXIsIGFsbG9j
YXRvcl9yZXN1bHQuYWxsb2NhdG9yLAorICAgICAgICAgICAgY29uZmlnLCBhbGxvY2F0b3JfY291
bnRzLCByZXN1bHRfZmlsdGVyLCAocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yX3Jlc3Vs
dC5hbGxvY2F0b3IsCiAgICAgICAgICAgICBwYXNfdHJpdmlhbF9zaXplX3RodW5rLCAodm9pZCop
c2l6ZSwgYWxpZ25tZW50KTsKICAgICB9CiAKQEAgLTIxMSw3ICsyMjksMTQgQEAgcGFzX3RyeV9h
bGxvY2F0ZV9jb21tb25faW1wbCgKIH0KIAogI2RlZmluZSBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FU
RV9DT01NT04obmFtZSwgaGVhcF9yZWZfa2luZCwgaGVhcF9jb25maWcsIHJ1bnRpbWVfY29uZmln
LCBhbGxvY2F0b3JfY291bnRzLCBjb3VudF9sb29rdXBfbW9kZSwgcmVzdWx0X2ZpbHRlcikgXAot
ICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQgXAorICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCisgICAgbmFtZSAjIyBfZmFzdF9pbmxpbmVfb25seShw
YXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpIFwKKyAgICB7IFwKKyAgICAgICAgcmV0dXJu
IHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfZmFzdF9pbmxpbmVfb25seSggXAorICAgICAg
ICAgICAgKGhlYXBfY29uZmlnKSwgKHJlc3VsdF9maWx0ZXIpLCBhbGxvY2F0b3IpOyBcCisgICAg
fSBcCisgICAgXAorICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19BTFdBWVNfSU5MSU5FIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbmFtZSAjIyBfZmFzdChwYXNfbG9jYWxfYWxsb2NhdG9y
KiBhbGxvY2F0b3IsIHBhc19zaXplX3RodW5rIHNpemVfdGh1bmssIHZvaWQqIHNpemVfdGh1bmtf
YXJnLCBcCiAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50KSBcCiAgICAgeyBcCkBA
IC0yMjAsNyArMjQ1LDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbCgKICAgICAgICAg
ICAgIHNpemVfdGh1bmssIHNpemVfdGh1bmtfYXJnLCBhbGlnbm1lbnQpOyBcCiAgICAgfSBcCiAg
ICAgXAotICAgIHN0YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHQgXAorICAgIHN0YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdCBcCiAgICAgbmFtZSAjIyBfc2xvdyhwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qg
YWxpZ25lZF9jb3VudCwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKICAgICB7IFwK
ICAgICAgICAgcmV0dXJuIChyZXN1bHRfZmlsdGVyKSggXApAQCAtMjI5LDcgKzI1NCw3IEBAIHBh
c190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGwoCiAgICAgICAgICAgICAgICAgKGFsbG9jYXRvcl9j
b3VudHMpLCAoY291bnRfbG9va3VwX21vZGUpKSk7IFwKICAgICB9IFwKICAgICBcCi0gICAgc3Rh
dGljIFBBU19VTlVTRUQgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdCBcCisgICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0IFwKICAgICBuYW1lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVf
dCBhbGlnbmVkX2NvdW50LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCwgXAogICAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdCkgXAogICAgIHsg
XApAQCAtMjQwLDEzICsyNjUsMTYgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbCgKICAg
ICBcCiAgICAgc3RydWN0IHBhc19kdW1teQogCi10eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0KSgKK3R5cGVkZWYgcGFz
X2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fZmFzdF9pbmxpbmVf
b25seSkoCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKTsKKwordHlwZWRlZiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0KSgKICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIHBhc19zaXplX3RodW5rIHNpemVfdGh1
bmssIHZvaWQqIHNpemVfdGh1bmtfYXJnLCBzaXplX3QgYWxpZ25tZW50KTsKIAotdHlwZWRlZiBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25f
c2xvdykoCit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVf
Y29tbW9uX3Nsb3cpKAogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBhbGlnbmVk
X2NvdW50LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCk7CiAKLXR5cGVkZWYgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfY29tbW9uKSgKK3R5
cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24pKAog
ICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBhbGlnbmVkX2NvdW50LCBzaXplX3Qg
c2l6ZSwgc2l6ZV90IGFsaWdubWVudCwKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBh
bGxvY2F0b3JfcmVzdWx0KTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5z
aWNfcHJpbWl0aXZlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OSw2NSArNTksOCBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgICAg
IC5jb25maWdfa2luZCA9IChwYXNzZWRfY29uZmlnKS5raW5kLCBcCiAgICAgfQogCi1zdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3RyeV9hbGxvY2F0
ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZSgKLSAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKLSAgICBwYXNfaGVhcCogaGVhcCwKLSAgICBzaXplX3Qg
YWxpZ25lZF9zaXplLAotICAgIHNpemVfdCBhbGlnbm1lbnQsCi0gICAgcGFzX2hlYXBfY29uZmln
IGNvbmZpZywKLSAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0IHRyeV9hbGxvY2F0ZV9j
b21tb25fZmFzdCwKLSAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93IHRyeV9hbGxvY2F0
ZV9jb21tb25fc2xvdykKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
Ci0gICAgCi0gICAgc2l6ZV90IGluZGV4OwotICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleDsK
LSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxvY2F0b3I7Ci0gICAgcGFzX2hlYXBf
cmVmIGZha2VfaGVhcF9yZWY7Ci0KLSAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5k
ZXhfZm9yX3ByaW1pdGl2ZV9jb3VudChhbGlnbmVkX3NpemUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnKTsKLSAgICAKLSAg
ICBhbGxvY2F0b3JfaW5kZXggPQotICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9h
bGxvY2F0b3JfaW5kZXhfZm9yX2luZGV4KAotICAgICAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRf
aGVhcCwKLSAgICAgICAgICAgIGluZGV4LAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9tZWRpdW1fc2l6ZV9kaXJlY3Rvcnlfc2VhcmNoX3dpdGhpbl9zaXplX2NsYXNzX3Byb2dyZXNz
aW9uLAotICAgICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotCi0gICAgYWxsb2NhdG9y
ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yKAotICAgICAgICBj
YWNoZSwgYWxsb2NhdG9yX2luZGV4LCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0gICAgCi0gICAg
UEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3IuZGlkX3N1Y2NlZWQgfHwgYWxsb2NhdG9yLmFs
bG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxpZ25lZF9zaXplKTsKLSAgICAKLSAgICAvKiBUaGlz
IHNob3VsZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4gdGhlIG5vbi1hbGlnbm1lbnQgY2FzZSBiZWNh
dXNlIG9mIEFMV0FZU19JTkxJTkUgYW5kCi0gICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25z
dGFudCAxLiAqLwotICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3IuZGlkX3N1Y2Nl
ZWQKLSAgICAgICAgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQo
YWxsb2NhdG9yLmFsbG9jYXRvcikpIHsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAg
ICAgIHBhc19sb2coIkRpc2NhcmRpbmcgZ29vZCBhbGxvY2F0b3IgcmVzdWx0IGJlY2F1c2UgYWxp
Z25tZW50IGlzIGluYWRlcXVhdGUgIgotICAgICAgICAgICAgICAgICAgICAiKCV6dSwgbmVlZGVk
ICV6dSkuXG4iLAotICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdu
bWVudChhbGxvY2F0b3IuYWxsb2NhdG9yKSwgYWxpZ25tZW50KTsKLSAgICAgICAgfQotICAgICAg
ICBhbGxvY2F0b3IuZGlkX3N1Y2NlZWQgPSBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKFBB
U19MSUtFTFkoYWxsb2NhdG9yLmRpZF9zdWNjZWVkKSkgewotICAgICAgICByZXR1cm4gdHJ5X2Fs
bG9jYXRlX2NvbW1vbl9mYXN0KAotICAgICAgICAgICAgYWxsb2NhdG9yLmFsbG9jYXRvciwgcGFz
X3RyaXZpYWxfc2l6ZV90aHVuaywgKHZvaWQqKWFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsKLSAg
ICB9Ci0KLSAgICBmYWtlX2hlYXBfcmVmLnR5cGUgPSBoZWFwLT50eXBlOwotICAgIGZha2VfaGVh
cF9yZWYuaGVhcCA9IGhlYXA7Ci0gICAgZmFrZV9oZWFwX3JlZi5hbGxvY2F0b3JfaW5kZXggPSBV
SU5UX01BWDsKLQotICAgIHJldHVybiB0cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3coJmZha2VfaGVh
cF9yZWYsIGFsaWduZWRfc2l6ZSwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQpOwotICAgIAotfQot
Ci1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dAotcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcGwoCiAgICAgcGFzX2hl
YXAqIGhlYXAsCiAgICAgc2l6ZV90IHNpemUsCiAgICAgc2l6ZV90IGFsaWdubWVudCwKQEAgLTEy
NSw5ICs2OCw2IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXAKICAg
ICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAogICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Zh
c3QgdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0LAogICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9u
X3Nsb3cgdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93LAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHQgKCptZWRpdW1fc2xvd19jYXNlKShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0
aHJlYWRfbG9jYWxfY2FjaGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbmVkX3NpemUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQp
LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGlvbl9tb2RlIGRlc2lnbmF0aW9uX21v
ZGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAtMTQxLDcg
KzgxLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcAogICAgIFBB
U19BU1NFUlQoYWxpZ25tZW50ID09IDEgfHwgIWRlc2lnbmF0aW9uX21vZGUpOwogCiAgICAgaWYg
KCFwYXNfaXNfcG93ZXJfb2ZfMihhbGlnbm1lbnQpKQotICAgICAgICByZXR1cm4gcGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogCiAgICAgLyogSW4gdGhlIG5v
bi1tZW1hbGlnbiBjYXNlLCB3ZSBjYW4gaGFwcGlseSBoYW5kbGUgemVyby1zaXplZCBhbGxvY2F0
aW9ucyB3aXRoIGFsaWduZWRfc2l6ZQogICAgICAgIGJlaW5nIDAuIFRoaXMgd29ya3MgYmVjYXVz
ZSB0aGUgaGVhcCdzIDAgc2l6ZSBjbGFzcyBpcyBqdXN0IGEgY29weSBvZiB0aGUgbWluYWxpZ24g
c2l6ZQpAQCAtMTY2LDQ0ICsxMDYsNTMgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJp
bWl0aXZlX2ltcAogICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7
CiAgICAgaWYgKFBBU19MSUtFTFkoY2FjaGUpKSB7CiAgICAgICAgIHVuc2lnbmVkIGFsbG9jYXRv
cl9pbmRleDsKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yOwor
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxvY2F0b3JfcmVzdWx0OworICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CiAgICAgICAgIAogICAgICAgICBk
ZXNpZ25hdGVkX2luZGV4ID0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfZGVzaWduYXRl
ZF9pbmRleCgKICAgICAgICAgICAgIGluZGV4LCBkZXNpZ25hdGlvbl9tb2RlLCBjb25maWcpOwog
ICAgICAgICBpZiAoUEFTX0xJS0VMWShkZXNpZ25hdGVkX2luZGV4LmRpZF9zdWNjZWVkKSkgewot
ICAgICAgICAgICAgYWxsb2NhdG9yID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRl
X3N1Y2Nlc3MoCisgICAgICAgICAgICBhbGxvY2F0b3JfcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9j
YXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCiAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCiAgICAgICAgICAgICAgICAgICAg
IGNhY2hlLAogICAgICAgICAgICAgICAgICAgICBkZXNpZ25hdGVkX2luZGV4LmluZGV4ICogcGFz
X2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGNvbmZpZykp
KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChQQVNfVU5MSUtFTFkoaW5kZXgg
Pj0gUEFTX05VTV9JTlRSSU5TSUNfU0laRV9DTEFTU0VTKSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gbWVkaXVtX3Nsb3dfY2FzZShjYWNoZSwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQpOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBpbnRyaW5zaWNfc3VwcG9y
dC0+aW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4W2luZGV4XTsKKyAgICAgICAgICAgIGlmIChQQVNf
VU5MSUtFTFkoaW5kZXggPj0gUEFTX05VTV9JTlRSSU5TSUNfU0laRV9DTEFTU0VTKSkgeworICAg
ICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9CisgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2FsbG9jYXRvcl9pbmRleF9mb3JfaW5kZXgoCisgICAgICAg
ICAgICAgICAgICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9o
ZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfd2l0aGluX3NpemVfY2xhc3NfcHJvZ3Jl
c3Npb24sCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBpbnRy
aW5zaWNfc3VwcG9ydC0+aW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4W2luZGV4XTsKICAgICAgICAg
CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBwYXNfbG9nKCJhbGxv
Y2F0b3JfaW5kZXggPSAldS5cbiIsIGFsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgIAotICAgICAg
ICAgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2Fs
bG9jYXRvcihjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKKyAgICAgICAgICAgIGFsbG9jYXRvcl9y
ZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IoCisgICAg
ICAgICAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9pbmRleCwgcGFzX2xvY2tfaXNfbm90X2hlbGQp
OwogICAgICAgICB9CiAKLSAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3IuZGlk
X3N1Y2NlZWQgfHwgYWxsb2NhdG9yLmFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gc2l6ZSk7Cisg
ICAgICAgIGFsbG9jYXRvciA9IChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3JfcmVzdWx0
LmFsbG9jYXRvcjsKKworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvcl9yZXN1
bHQuZGlkX3N1Y2NlZWQgfHwgYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSA+PSBhbGlnbmVkX3NpemUp
OwogICAgIAogICAgICAgICAvKiBUaGlzIHNob3VsZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4gdGhl
IG5vbi1hbGlnbm1lbnQgY2FzZSBiZWNhdXNlIG9mIEFMV0FZU19JTkxJTkUgYW5kCiAgICAgICAg
ICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KLSAgICAgICAgaWYgKGFsaWdu
bWVudCAhPSAxICYmIGFsbG9jYXRvci5kaWRfc3VjY2VlZAotICAgICAgICAgICAgJiYgYWxpZ25t
ZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yLmFsbG9jYXRvcikp
IHsKKyAgICAgICAgaWYgKGFsaWdubWVudCAhPSAxICYmIGFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1
Y2NlZWQKKyAgICAgICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxp
Z25tZW50KGFsbG9jYXRvcikpIHsKICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAg
ICAgICAgICAgcGFzX2xvZygiRGlzY2FyZGluZyBnb29kIGFsbG9jYXRvciByZXN1bHQgYmVjYXVz
ZSBhbGlnbm1lbnQgaXMgaW5hZGVxdWF0ZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiKCV6
dSwgbmVlZGVkICV6dSkuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yLmFsbG9jYXRvciksIGFsaWdubWVudCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0
b3IpLCBhbGlnbm1lbnQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYWxsb2NhdG9yLmRp
ZF9zdWNjZWVkID0gZmFsc2U7CisgICAgICAgICAgICBhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNj
ZWVkID0gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoUEFTX0xJS0VMWShhbGxvY2F0
b3IuZGlkX3N1Y2NlZWQpKSB7CisgICAgICAgIGlmIChQQVNfTElLRUxZKGFsbG9jYXRvcl9yZXN1
bHQuZGlkX3N1Y2NlZWQpKSB7CiAgICAgICAgICAgICByZXR1cm4gdHJ5X2FsbG9jYXRlX2NvbW1v
bl9mYXN0KAotICAgICAgICAgICAgICAgIGFsbG9jYXRvci5hbGxvY2F0b3IsIHBhc190cml2aWFs
X3NpemVfdGh1bmssICh2b2lkKilhbGlnbmVkX3NpemUsIGFsaWdubWVudCk7CisgICAgICAgICAg
ICAgICAgYWxsb2NhdG9yLCBwYXNfdHJpdmlhbF9zaXplX3RodW5rLCAodm9pZCopYWxpZ25lZF9z
aXplLCBhbGlnbm1lbnQpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMTQsNiArMTYzLDk0IEBA
IHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXAKICAgICByZXR1cm4gdHJ5
X2FsbG9jYXRlX2NvbW1vbl9zbG93KCZmYWtlX2hlYXBfcmVmLCBhbGlnbmVkX3NpemUsIGFsaWdu
ZWRfc2l6ZSwgYWxpZ25tZW50KTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdAorcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2lt
cGxfaW5saW5lX29ubHkoCisgICAgc2l6ZV90IHNpemUsCisgICAgc2l6ZV90IGFsaWdubWVudCwK
KyAgICBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydCogaW50cmluc2ljX3N1cHBvcnQsCisgICAg
cGFzX2hlYXBfY29uZmlnIGNvbmZpZywKKyAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0
X2lubGluZV9vbmx5IHRyeV9hbGxvY2F0ZV9jb21tb25fZmFzdF9pbmxpbmVfb25seSwKKyAgICBw
YXNfaW50cmluc2ljX2hlYXBfZGVzaWduYXRpb25fbW9kZSBkZXNpZ25hdGlvbl9tb2RlKQorewor
ICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBzaXplX3Qg
YWxpZ25lZF9zaXplOworICAgIHNpemVfdCBpbmRleDsKKyAgICBwYXNfZGVzaWduYXRlZF9pbmRl
eF9yZXN1bHQgZGVzaWduYXRlZF9pbmRleDsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBj
YWNoZTsKKyAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXg7CisgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdDsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBh
bGxvY2F0b3I7CisKKyAgICBQQVNfQVNTRVJUKGFsaWdubWVudCA9PSAxIHx8ICFkZXNpZ25hdGlv
bl9tb2RlKTsKKworICAgIGlmICghcGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25tZW50KSkKKyAgICAg
ICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworCisgICAg
LyogSW4gdGhlIG5vbi1tZW1hbGlnbiBjYXNlLCB3ZSBjYW4gaGFwcGlseSBoYW5kbGUgemVyby1z
aXplZCBhbGxvY2F0aW9ucyB3aXRoIGFsaWduZWRfc2l6ZQorICAgICAgIGJlaW5nIDAuIFRoaXMg
d29ya3MgYmVjYXVzZSB0aGUgaGVhcCdzIDAgc2l6ZSBjbGFzcyBpcyBqdXN0IGEgY29weSBvZiB0
aGUgbWluYWxpZ24gc2l6ZQorICAgICAgIGNsYXNzLiBCdXQgd2UgY2Fubm90IGRvIHRoaXMgcHJv
cGVybHkgaWYgdGhlIDAgc2l6ZSBjbGFzcyBoYXMgdG8gaGF2ZSBzb21lIGFsaWdubWVudC4gVGhh
dCdzCisgICAgICAgYmVjYXVzZSB3ZSBleHBlY3QgdGhhdCBmb3IgYSBzaXplIGNsYXNzIHRvIHNh
dGlzZnkgc29tZSBhbGlnbm1lbnQsIHRoYXQgc2l6ZSBtdXN0IGl0c2VsZgorICAgICAgIGJlIGFs
aWduZWQgdG8gdGhhdCBhbGlnbm1lbnQuICovCisgICAgaWYgKGFsaWdubWVudCA9PSAxKQorICAg
ICAgICBhbGlnbmVkX3NpemUgPSBzaXplOworICAgIGVsc2UgaWYgKHNpemUgPCBhbGlnbm1lbnQp
CisgICAgICAgIGFsaWduZWRfc2l6ZSA9IGFsaWdubWVudDsKKyAgICBlbHNlCisgICAgICAgIGFs
aWduZWRfc2l6ZSA9IHBhc19yb3VuZF91cF90b19wb3dlcl9vZl8yKHNpemUsIGFsaWdubWVudCk7
CisgICAgCisgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9wcmltaXRp
dmVfY291bnQoYWxpZ25lZF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZyk7CisKKyAgICBpZiAodmVyYm9zZSkgewor
ICAgICAgICBwYXNfbG9nKCJhbGlnbmVkX3NpemUgPSAlenUsIGluZGV4ID0gJXp1LCBhbGlnbm1l
bnQgPSAlenUuXG4iLAorICAgICAgICAgICAgICAgIGFsaWduZWRfc2l6ZSwgaW5kZXgsIGFsaWdu
bWVudCk7CisgICAgfQorCisgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9n
ZXQoKTsKKyAgICBpZiAoUEFTX1VOTElLRUxZKCFjYWNoZSkpCisgICAgICAgIHJldHVybiBwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKyAgICAKKyAgICBkZXNpZ25hdGVk
X2luZGV4ID0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfZGVzaWduYXRlZF9pbmRleCgK
KyAgICAgICAgaW5kZXgsIGRlc2lnbmF0aW9uX21vZGUsIGNvbmZpZyk7CisgICAgaWYgKFBBU19M
SUtFTFkoZGVzaWduYXRlZF9pbmRleC5kaWRfc3VjY2VlZCkpIHsKKyAgICAgICAgYWxsb2NhdG9y
X3Jlc3VsdCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKAorICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwo
CisgICAgICAgICAgICAgICAgY2FjaGUsCisgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9pbmRl
eC5pbmRleCAqIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9hbGxvY2F0b3JfaW5k
aWNlcyhjb25maWcpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKFBBU19VTkxJS0VMWShp
bmRleCA+PSBQQVNfTlVNX0lOVFJJTlNJQ19TSVpFX0NMQVNTRVMpKQorICAgICAgICAgICAgcmV0
dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworICAgICAgICAKKyAg
ICAgICAgYWxsb2NhdG9yX2luZGV4ID0gaW50cmluc2ljX3N1cHBvcnQtPmluZGV4X3RvX2FsbG9j
YXRvcl9pbmRleFtpbmRleF07CisgICAgICAgIAorICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgIHBhc19sb2coImFsbG9jYXRvcl9pbmRleCA9ICV1LlxuIiwgYWxsb2NhdG9yX2luZGV4
KTsKKyAgICAgICAgCisgICAgICAgIGFsbG9jYXRvcl9yZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3RyeV9nZXRfbG9jYWxfYWxsb2NhdG9yKGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOwor
ICAgIH0KKyAgICAKKyAgICBpZiAoUEFTX1VOTElLRUxZKCFhbGxvY2F0b3JfcmVzdWx0LmRpZF9z
dWNjZWVkKSkKKyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFp
bHVyZSgpOworICAgIAorICAgIGFsbG9jYXRvciA9IChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxv
Y2F0b3JfcmVzdWx0LmFsbG9jYXRvcjsKKyAgICAKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFs
bG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQgfHwgYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSA+PSBh
bGlnbmVkX3NpemUpOworICAgIAorICAgIC8qIFRoaXMgc2hvdWxkIGJlIHNwZWNpYWxpemVkIG91
dCBpbiB0aGUgbm9uLWFsaWdubWVudCBjYXNlIGJlY2F1c2Ugb2YgQUxXQVlTX0lOTElORSBhbmQK
KyAgICAgICBhbGlnbm1lbnQgYmVpbmcgdGhlIGNvbnN0YW50IDEuICovCisgICAgaWYgKGFsaWdu
bWVudCAhPSAxICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KGFs
bG9jYXRvcikpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2co
IkRpc2NhcmRpbmcgZ29vZCBhbGxvY2F0b3IgcmVzdWx0IGJlY2F1c2UgYWxpZ25tZW50IGlzIGlu
YWRlcXVhdGUgIgorICAgICAgICAgICAgICAgICAgICAiKCV6dSwgbmVlZGVkICV6dSkuXG4iLAor
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0
b3IpLCBhbGlnbm1lbnQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIHRyeV9h
bGxvY2F0ZV9jb21tb25fZmFzdF9pbmxpbmVfb25seShhbGxvY2F0b3IpOworfQorCiAjZGVmaW5l
IFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVRJVkUobmFtZSwgaGVhcF9j
b25maWcsIHJ1bnRpbWVfY29uZmlnLCBhbGxvY2F0b3JfY291bnRzLCByZXN1bHRfZmlsdGVyLCBo
ZWFwLCBoZWFwX3N1cHBvcnQsIGRlc2lnbmF0aW9uX21vZGUpIFwKICAgICBQQVNfQ1JFQVRFX1RS
WV9BTExPQ0FURV9DT01NT04oIFwKICAgICAgICAgbmFtZSAjIyBfaW1wbCwgXApAQCAtMjI0LDM1
ICsyNjEsNTAgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcAogICAg
ICAgICBwYXNfZm9yY2VfY291bnRfbG9va3VwLCBcCiAgICAgICAgIChyZXN1bHRfZmlsdGVyKSk7
IFwKICAgICBcCi0gICAgc3RhdGljIFBBU19ORVZFUl9JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdCBcCi0gICAgbmFtZSAjIyBfbWVkaXVtX3Nsb3dfY2FzZShwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlKiBjYWNoZSwgc2l6ZV90IGFsaWduZWRfc2l6ZSwgc2l6ZV90IGFsaWdubWVu
dCkgXAorICAgIHN0YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBc
CisgICAgbmFtZSAjIyBfbWVkaXVtX3Nsb3dfY2FzZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdu
bWVudCkgXAogICAgIHsgXAogICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5z
aWNfcHJpbWl0aXZlX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZSggXAotICAgICAgICAgICAgY2FjaGUs
IChoZWFwKSwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQsIChoZWFwX2NvbmZpZyksIFwKLSAgICAg
ICAgICAgIG5hbWUgIyMgX2ltcGxfZmFzdCwgbmFtZSAjIyBfaW1wbF9zbG93KTsgXAorICAgICAg
ICAgICAgKGhlYXApLCBzaXplLCBhbGlnbm1lbnQsIChoZWFwX3N1cHBvcnQpLCAoaGVhcF9jb25m
aWcpLCBcCisgICAgICAgICAgICBuYW1lICMjIF9pbXBsX2Zhc3QsIG5hbWUgIyMgX2ltcGxfc2xv
dywgKGRlc2lnbmF0aW9uX21vZGUpKTsgXAogICAgIH0gXAogICAgIFwKLSAgICBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lKHNpemVf
dCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSBcCisgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9pbmxpbmVfb25seShzaXplX3Qgc2l6ZSwg
c2l6ZV90IGFsaWdubWVudCkgXAogICAgIHsgXAotICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxv
Y2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcGwoIFwKLSAgICAgICAgICAgIChoZWFwKSwgc2l6
ZSwgYWxpZ25tZW50LCAoaGVhcF9zdXBwb3J0KSwgKGhlYXBfY29uZmlnKSwgXAotICAgICAgICAg
ICAgbmFtZSAjIyBfaW1wbF9mYXN0LCBuYW1lICMjIF9pbXBsX3Nsb3csIG5hbWUgIyMgX21lZGl1
bV9zbG93X2Nhc2UsIFwKLSAgICAgICAgICAgIChkZXNpZ25hdGlvbl9tb2RlKSk7IFwKKyAgICAg
ICAgcmV0dXJuIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsX2lubGlu
ZV9vbmx5KCBcCisgICAgICAgICAgICBzaXplLCBhbGlnbm1lbnQsIChoZWFwX3N1cHBvcnQpLCAo
aGVhcF9jb25maWcpLCBcCisgICAgICAgICAgICBuYW1lICMjIF9pbXBsX2Zhc3RfaW5saW5lX29u
bHksIChkZXNpZ25hdGlvbl9tb2RlKSk7IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lKHNpemVfdCBzaXplLCBz
aXplX3QgYWxpZ25tZW50KSBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsgXAorICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OyBc
CisgICAgICAgIHJlc3VsdCA9IG5hbWUgIyMgX2lubGluZV9vbmx5KHNpemUsIGFsaWdubWVudCk7
IFwKKyAgICAgICAgaWYgKFBBU19MSUtFTFkocmVzdWx0LmRpZF9zdWNjZWVkKSkgeyBcCisgICAg
ICAgICAgICBpZiAodmVyYm9zZSkgXAorICAgICAgICAgICAgICAgIHBhc19sb2coIlJldHVybmlu
ZyBzdWNjZXNzZnVsIHJlc3VsdCAoYmVnaW4gPSAlcClcbiIsICh2b2lkKilyZXN1bHQuYmVnaW4p
OyBcCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyBcCisgICAgICAgIH0gXAorICAgICAgICBy
ZXR1cm4gbmFtZSAjIyBfbWVkaXVtX3Nsb3dfY2FzZShzaXplLCBhbGlnbm1lbnQpOyBcCiAgICAg
fSBcCiAgICAgXAotICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19ORVZFUl9JTkxJTkUgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBcCisgICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX05F
VkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIG5hbWUgIyMgX2Zvcl9yZWFs
bG9jKHNpemVfdCBzaXplKSBcCiAgICAgeyBcCi0gICAgICAgIHJldHVybiBuYW1lKHNpemUsIDEp
OyBcCisgICAgICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsgXAorICAgICAg
ICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0ID0gbmFtZShzaXplLCAxKTsgXAorICAgICAg
ICBpZiAodmVyYm9zZSkgXAorICAgICAgICAgICAgcGFzX2xvZygicmVzdWx0LmJlZ2luID0gJXBc
biIsIHJlc3VsdC5iZWdpbik7IFwKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsgXAogICAgIH0gXAog
ICAgIFwKICAgICBzdHJ1Y3QgcGFzX2R1bW15CiAKLXR5cGVkZWYgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSkoc2l6
ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpOwordHlw
ZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19w
cmltaXRpdmUpKHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpOwog
Ci10eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKLSgqcGFzX3RyeV9hbGxv
Y2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2Zvcl9yZWFsbG9jKShzaXplX3Qgc2l6ZSk7ICAgICAg
IAordHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2ludHJp
bnNpY19wcmltaXRpdmVfZm9yX3JlYWxsb2MpKHNpemVfdCBzaXplKTsKIAogUEFTX0VORF9FWFRF
Uk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9h
bGxvY2F0ZV9wcmltaXRpdmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxNCArMzAsMTQgQEAKICNpbmNsdWRlICJw
YXNfaGVhcC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19o
ZWFwX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Lmgi
CisjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX2xvY2Fs
X2FsbG9jYXRvcl9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3BoeXNpY2FsX21lbW9yeV90cmFu
c2FjdGlvbi5oIgogI2luY2x1ZGUgInBhc19wcmltaXRpdmVfaGVhcF9yZWYuaCIKIAogUEFTX0JF
R0lOX0VYVEVSTl9DOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdAogcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbWl0aXZlX2hl
YXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQs
CkBAIC01Myw3ICs1Myw3IEBAIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFzX3By
aW0KICAgICBzaXplX3QgaW5kZXg7CiAgICAgCiAgICAgaWYgKCFwYXNfaXNfcG93ZXJfb2ZfMihh
bGlnbm1lbnQpKQotICAgICAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dF9jcmVhdGVfZW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9j
cmVhdGVfZmFpbHVyZSgpOwogICAgIAogICAgIGFsaWduZWRfc2l6ZSA9IHBhc19yb3VuZF91cF90
b19wb3dlcl9vZl8yKHNpemUsIGFsaWdubWVudCk7CiAgICAgCkBAIC05Miw3ICs5Miw3IEBAIHBh
c190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFzX3ByaW0KICAgICAvKiBUaGlzIHNob3Vs
ZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4gdGhlIG5vbi1hbGlnbm1lbnQgY2FzZSBiZWNhdXNlIG9m
IEFMV0FZU19JTkxJTkUgYW5kCiAgICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25zdGFudCAx
LiAqLwogICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3IuZGlkX3N1Y2NlZWQKLSAg
ICAgICAgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2Nh
dG9yLmFsbG9jYXRvcikpCisgICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0
b3JfYWxpZ25tZW50KChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0b3IuYWxsb2NhdG9yKSkK
ICAgICAgICAgYWxsb2NhdG9yLmRpZF9zdWNjZWVkID0gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ5
X2FsbG9jYXRlX2NvbW1vbigmaGVhcF9yZWYtPmJhc2UsIGFsaWduZWRfc2l6ZSwgYWxpZ25lZF9z
aXplLCBhbGlnbm1lbnQsIGFsbG9jYXRvcik7CkBAIC0xMDgsNyArMTA4LDcgQEAgcGFzX3RyeV9h
bGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbQogICAgICAgICBwYXNfYXZvaWRfY291bnRf
bG9va3VwLCBcCiAgICAgICAgIChyZXN1bHRfZmlsdGVyKSk7IFwKICAgICBcCi0gICAgc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSgg
XAorICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFt
ZSggXAogICAgICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgXAogICAgICAg
ICBzaXplX3Qgc2l6ZSwgXAogICAgICAgICBzaXplX3QgYWxpZ25tZW50KSBcCkBAIC0xMTcsNyAr
MTE3LDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbQogICAgICAg
ICAgICAgaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCwgKGhlYXBfY29uZmlnKSwgKHJ1bnRpbWVf
Y29uZmlnKSwgbmFtZSAjIyBfaW1wbCk7IFwKICAgICB9IFwKICAgICBcCi0gICAgc3RhdGljIFBB
U19VTlVTRUQgUEFTX05FVkVSX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
IG5hbWUgIyMgX2Zvcl9yZWFsbG9jKCBcCisgICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX05FVkVS
X0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSAjIyBfZm9yX3JlYWxsb2MoIFwKICAg
ICAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplKSBcCiAg
ICAgeyBcCiAgICAgICAgIHJldHVybiBuYW1lKGhlYXBfcmVmLCBzaXplLCAxKTsgXApAQCAtMTI1
LDEwICsxMjUsMTAgQEAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbQog
ICAgIFwKICAgICBzdHJ1Y3QgcGFzX2R1bW15CiAKLXR5cGVkZWYgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlKSgKK3R5cGVkZWYgcGFz
X2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUpKAogICAgIHBh
c19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdu
bWVudCk7CiAKLXR5cGVkZWYgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190
cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2Zvcl9yZWFsbG9jKSgKK3R5cGVkZWYgcGFzX2FsbG9jYXRp
b25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfZm9yX3JlYWxsb2MpKAogICAg
IHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSk7CiAKIFBBU19F
TkRfRVhURVJOX0M7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
dHJ5X3JlYWxsb2NhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2NhdGUuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUEFTX1RSWV9SRUFMTE9DQVRFX0gKICNk
ZWZpbmUgUEFTX1RSWV9SRUFMTE9DQVRFX0gKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVk
ZSAicGFzX2RlYWxsb2NhdGUuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfbWFwLmgiCiAjaW5jbHVk
ZSAicGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlLmgiCkBAIC01NCw2ICs1NCw4IEBAIHBhc190cnlf
YWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVfYW5kX2NvcHkKICAgICBwYXNfdHJ5X3JlYWxsb2NhdGVf
YWxsb2NhdGVfY2FsbGJhY2sgYWxsb2NhdGVfY2FsbGJhY2ssCiAgICAgdm9pZCogYWxsb2NhdGVf
Y2FsbGJhY2tfYXJnKQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
KyAgICAKICAgICBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwogCiAgICAgLyog
SWYgaGVhcHMgYXJlIGJhc2VkIG9uIHNvbWUgcmlnb3JvdXMgbm90aW9uIG9mIHR5cGUsIHRoZW4g
d2Ugc2hvdWxkIGRpc2FsbG93IGhlYXAKQEAgLTkxLDYgKzkzLDggQEAgcGFzX3RyeV9hbGxvY2F0
ZV9mb3JfcmVhbGxvY2F0ZV9hbmRfY29weQogICAgIHJlc3VsdCA9IGFsbG9jYXRlX2NhbGxiYWNr
KHRhcmdldF9oZWFwLCBuZXdfY291bnQsIGFsbG9jYXRlX2NhbGxiYWNrX2FyZyk7CiAgICAgCiAg
ICAgaWYgKHJlc3VsdC5wdHIpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBw
YXNfbG9nKCJyZXN1bHQucHRyID0gJXBcbiIsIHJlc3VsdC5wdHIpOwogICAgICAgICAvKiBGSVhN
RTogV2UgbmVlZCB0byBhY3R1YWxseSBiZSByb3VuZGluZyBkb3duIHRoZSBvbGQgc2l6ZSB0byBv
dXIKICAgICAgICAgICAgdHlwZSBzaXplLiBUbyBkbyB0aGF0IHdlJ2Qgd2FudCB0aGUgdHlwZWQg
YWxsb2NhdGlvbiByZXN1bHQgdG8KICAgICAgICAgICAgZ2l2ZSB1cyB0aGUgdHlwZSBzaXplLiBG
b3IgcHJpbWl0aXZlIGFsbG9jYXRpb25zLCBpdCB3b3VsZApAQCAtMTMzLDcgKzEzNyw3IEBAIHBh
c190cnlfcmVhbGxvY2F0ZV90YWJsZV9zZWdyZWdhdGVkX2Nhc2UKICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIAogICAgIGNhc2UgcGFzX3JlYWxsb2NhdGVfZGlzYWxsb3dfaGVhcF90ZWxlcG9ydDog
ewotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAg
ICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZGlyZWN0b3J5X2Zvcl9h
ZGRyZXNzX2luX3BhZ2UoCiAgICAgICAgICAgICBwYWdlLCBiZWdpbiwgc2VncmVnYXRlZF9jb25m
aWcpOwogICAgICAgICBvbGRfc2l6ZSA9IGRpcmVjdG9yeS0+b2JqZWN0X3NpemU7CkBAIC0xNzUs
OSArMTc5LDkgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX3RhYmxlX2JpdGZpdF9jYXNlKHBhcwogICAg
ICAgICAKICAgICBjYXNlIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBvcnQ6CiAg
ICAgICAgIG9sZF9oZWFwID0gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0ZWRfaGVhcCgKLSAgICAgICAg
ICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KAorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25f
bnVsbCgKICAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0
cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICAgICAmcGFnZS0+b3duZXIpLT5nbG9i
YWxfZGlyZWN0b3J5KS0+aGVhcCk7CisgICAgICAgICAgICAgICAgICAgICZwYWdlLT5vd25lcikt
PmRpcmVjdG9yeSktPmhlYXApOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgCkBAIC0yMTcs
NyArMjIxLDcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlKHZvaWQqIG9sZF9wdHIsCiAgICAgICAgICAg
ICBicmVhazsKIAogICAgICAgICBjYXNlIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVs
ZXBvcnQ6IHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5OworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeTsKICAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Z2V0X2RpcmVjdG9yeV9mb3JfYWRkcmVzc19hbmRfcGFnZV9jb25maWcoCiAgICAgICAgICAgICAg
ICAgYmVnaW4sIGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7CiAgICAgICAgICAgICBv
bGRfc2l6ZSA9IGRpcmVjdG9yeS0+b2JqZWN0X3NpemU7CkBAIC0yNDksOSArMjUzLDkgQEAgcGFz
X3RyeV9yZWFsbG9jYXRlKHZvaWQqIG9sZF9wdHIsCiAKICAgICAgICAgY2FzZSBwYXNfcmVhbGxv
Y2F0ZV9kaXNhbGxvd19oZWFwX3RlbGVwb3J0OgogICAgICAgICAgICAgb2xkX2hlYXAgPSBwYXNf
aGVhcF9mb3Jfc2VncmVnYXRlZF9oZWFwKAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAgICAg
IHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAg
ICAgICAgICAgICAgICZwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX2xvYWRfbm9u
X251bGwoCi0gICAgICAgICAgICAgICAgICAgICAgICAmcGFnZS0+b3duZXIpLT5nbG9iYWxfZGly
ZWN0b3J5KS0+aGVhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAmcGFnZS0+b3duZXIpLT5k
aXJlY3RvcnkpLT5oZWFwKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IApAQCAtMzg0LDcgKzM4OCw3IEBAIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0
aXZlX2EKICAgICAgICAgbmV3X2NvdW50KTsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJp
bWl0aXZlKAogICAgIHZvaWQqIG9sZF9wdHIsCiAgICAgcGFzX2hlYXAqIGhlYXAsCkBAIC01MjMs
MTkgKzUyNywyNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRlX2NhCiAg
ICAgc2l6ZV90IG5ld19jb3VudCwKICAgICB2b2lkKiBhcmcpCiB7CisgICAgc3RhdGljIGNvbnN0
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAogICAgIHBhc190cnlfcmVhbGxvY2F0ZV9wcmlt
aXRpdmVfYWxsb2NhdGVfZGF0YSogZGF0YTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVz
dWx0OwogCiAgICAgUEFTX1VOVVNFRF9QQVJBTShoZWFwKTsKICAgICAKICAgICBkYXRhID0gKHBh
c190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmVfYWxsb2NhdGVfZGF0YSopYXJnOworCisgICAgcmVz
dWx0ID0gZGF0YS0+dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShkYXRhLT5oZWFwX3JlZiwgbmV3X2Nv
dW50KTsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJpbiByZWFsbG9jIC0g
cmVzdWx0LmJlZ2luID0gJXBcbiIsICh2b2lkKilyZXN1bHQuYmVnaW4pOwogICAgIAogICAgIHJl
dHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0KAotICAgICAgICBkYXRhLT50cnlfYWxsb2NhdGVfcHJpbWl0aXZlKGRh
dGEtPmhlYXBfcmVmLCBuZXdfY291bnQpLAorICAgICAgICByZXN1bHQsCiAgICAgICAgIE5VTEws
CiAgICAgICAgIG5ld19jb3VudCk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAgIHZv
aWQqIG9sZF9wdHIsCiAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHlwZWRfYWxsb2NhdGlvbl9y
ZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUEFTX1RZUEVEX0FMTE9D
QVRJT05fUkVTVUxUX0gKICNkZWZpbmUgUEFTX1RZUEVEX0FMTE9DQVRJT05fUkVTVUxUX0gKIAot
I2luY2x1ZGUgInBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKKyNpbmNsdWRlICJw
YXNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIAogUEFTX0JF
R0lOX0VYVEVSTl9DOwpAQCAtNzEsMTIgKzcxLDEyIEBAIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jl
c3VsdF9jcmVhdGUocGFzX2gKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgKICAgICBwYXNfdHlwZWRfYWxs
b2NhdGlvbl9yZXN1bHQgaW50ZXJuYWxfcmVzdWx0KQogewotICAgIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQgcmVzdWx0OwotICAgIHJlc3VsdC5wdHIgPSBpbnRlcm5hbF9yZXN1bHQu
cHRyOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0LmJlZ2lu
ID0gKHVpbnRwdHJfdClpbnRlcm5hbF9yZXN1bHQucHRyOwogICAgIHJlc3VsdC5kaWRfc3VjY2Vl
ZCA9IGludGVybmFsX3Jlc3VsdC5kaWRfc3VjY2VlZDsKICAgICByZXN1bHQuemVyb19tb2RlID0g
aW50ZXJuYWxfcmVzdWx0Lnplcm9fbW9kZTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtODQsMTMg
Kzg0LDEzIEBAIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWMKIAogc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3R5
cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdCgKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IGludHJpbnNpY19yZXN1
bHQsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IGludHJpbnNpY19yZXN1bHQsCiAgICAgcGFz
X2hlYXBfdHlwZSogdHlwZSwKICAgICBzaXplX3Qgc2l6ZSkKIHsKICAgICBwYXNfdHlwZWRfYWxs
b2NhdGlvbl9yZXN1bHQgcmVzdWx0OwogICAgIHJlc3VsdC50eXBlID0gdHlwZTsKLSAgICByZXN1
bHQucHRyID0gaW50cmluc2ljX3Jlc3VsdC5wdHI7CisgICAgcmVzdWx0LnB0ciA9ICh2b2lkKilp
bnRyaW5zaWNfcmVzdWx0LmJlZ2luOwogICAgIHJlc3VsdC5zaXplID0gc2l6ZTsKICAgICByZXN1
bHQuZGlkX3N1Y2NlZWQgPSBpbnRyaW5zaWNfcmVzdWx0LmRpZF9zdWNjZWVkOwogICAgIHJlc3Vs
dC56ZXJvX21vZGUgPSBpbnRyaW5zaWNfcmVzdWx0Lnplcm9fbW9kZTsKQEAgLTEwMCw3ICsxMDAs
NyBAQCBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHlwZWRfYWxs
b2NhdGlvbl9yZXN1bHRfemVybyhwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQog
ewotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKKyAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpLAogICAgICAgICByZXN1bHQu
c2l6ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTEwOSw3ICsxMDksNyBAQCBwYXNfdHlwZWRf
YWxsb2NhdGlvbl9yZXN1bHRfemVybyhwYXNfdHlwCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
cGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRf
c2V0X2Vycm5vKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCiB7Ci0gICAgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8oCisgICAgcGFzX2FsbG9jYXRp
b25fcmVzdWx0X3NldF9lcnJubygKICAgICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQpAQCAtMTE3LDcgKzExNyw3IEBAIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9z
ZXRfZXJybm8ocGEKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHQKIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcihwYXNf
dHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQogewotICAgIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IoCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2NyYXNoX29uX2Vycm9yKAogICAgICAgICBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KHJlc3VsdCkpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9o
ZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3V0aWxpdHlfaGVhcC5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDE0
ICs0MiwxMiBAQCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyBwYXNfdXRpbGl0eV9oZWFwCiAgICAg
LnNoYXJpbmdfbW9kZSA9IHBhc19zaGFyZV9wYWdlcywKICAgICAuc3RhdGljYWxseV9hbGxvY2F0
ZWQgPSB0cnVlLAogICAgIC5pc19wYXJ0X29mX2hlYXAgPSBmYWxzZSwKLSAgICAuZGlyZWN0b3J5
X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MgPQotICAgICAgICBQQVNfVVRJTElUWV9CT1VO
RF9GT1JfUEFSVElBTF9WSUVXUywKLSAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2Vs
aW5lX2FsbG9jYXRvcnMgPQotICAgICAgICBQQVNfVVRJTElUWV9CT1VORF9GT1JfQkFTRUxJTkVf
QUxMT0NBVE9SUywKLSAgICAubWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemUgPQotICAgICAgICBQ
QVNfVVRJTElUWV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwKLSAgICAubWF4X2JpdGZpdF9v
YmplY3Rfc2l6ZSA9Ci0gICAgICAgIFBBU19VVElMSVRZX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUK
KyAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MgPSBQQVNfVVRJTElU
WV9CT1VORF9GT1JfUEFSVElBTF9WSUVXUywKKyAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9y
X2Jhc2VsaW5lX2FsbG9jYXRvcnMgPSBQQVNfVVRJTElUWV9CT1VORF9GT1JfQkFTRUxJTkVfQUxM
T0NBVE9SUywKKyAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUgPSBQ
QVNfVVRJTElUWV9CT1VORF9GT1JfTk9fVklFV19DQUNIRSwKKyAgICAubWF4X3NlZ3JlZ2F0ZWRf
b2JqZWN0X3NpemUgPSBQQVNfVVRJTElUWV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwKKyAg
ICAubWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSA9IFBBU19VVElMSVRZX01BWF9CSVRGSVRfT0JKRUNU
X1NJWkUsCisgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplID0gcGFzX2hl
YXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5CiB9OwogCiBwYXNfc2Vn
cmVnYXRlZF9oZWFwIHBhc191dGlsaXR5X3NlZ3JlZ2F0ZWRfaGVhcCA9IHsKQEAgLTEwNSwxMyAr
MTAzLDE0IEBAIHZvaWQqIHBhc191dGlsaXR5X2hlYXBfdHJ5X2FsbG9jYXRlX3dpdGgKIAogICAg
IGlmIChwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX251bGwoYWxsb2NhdG9yKQogICAgICAgICB8fCBh
bGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0b3IpKSB7Ci0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5Owor
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgICAg
ICAKICAgICAgICAgcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0X2luc3RhbmNlLnNsb3dfcGF0aF9j
b3VudCsrOwogCiAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJl
X3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKICAgICAgICAgICAgICZwYXNfdXRpbGl0eV9zZWdy
ZWdhdGVkX2hlYXAsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LAotICAgICAgICAgICAgcGFzX2Zv
cmNlX2NvdW50X2xvb2t1cCwgJnBhc191dGlsaXR5X2hlYXBfY29uZmlnLCBOVUxMKTsKKyAgICAg
ICAgICAgIHBhc19mb3JjZV9jb3VudF9sb29rdXAsICZwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZywg
TlVMTCwKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Z1bGxfY3Jl
YXRpb25fbW9kZSk7CiAKICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnkpOwogCkBAIC0xMjQs
NyArMTIzLDggQEAgdm9pZCogcGFzX3V0aWxpdHlfaGVhcF90cnlfYWxsb2NhdGVfd2l0aAogICAg
ICAgICAodm9pZCopYWxpZ25lZF9zaXplLAogICAgICAgICBhbGlnbm1lbnQsCiAgICAgICAgIFBB
U19VVElMSVRZX0hFQVBfQ09ORklHLAotICAgICAgICAmcGFzX3V0aWxpdHlfYWxsb2NhdG9yX2Nv
dW50cykuYmVnaW47CisgICAgICAgICZwYXNfdXRpbGl0eV9hbGxvY2F0b3JfY291bnRzLAorICAg
ICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpLmJlZ2luOwogCiAgICAgcGFzX2Rp
ZF9hbGxvY2F0ZShyZXN1bHQsIHNpemUsIHBhc191dGlsaXR5X2hlYXBfa2luZCwgbmFtZSwgcGFz
X29iamVjdF9hbGxvY2F0aW9uKTsKIApAQCAtMTY2LDcgKzE2Niw5IEBAIHZvaWQgcGFzX3V0aWxp
dHlfaGVhcF9kZWFsbG9jYXRlKHZvaWQqIHAKIAogICAgIGJlZ2luID0gKHVpbnRwdHJfdClwdHI7
CiAKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUoYmVnaW4sIE5VTEwsIFBBU19V
VElMSVRZX0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKKyAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUoCisgICAgICAgIGJlZ2luLCBOVUxMLCBwYXNfc2VncmVn
YXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGUsIE5VTEwsCisgICAgICAgIFBBU19VVElMSVRZ
X0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKIH0KIAogc2l6ZV90IHBhc191
dGlsaXR5X2hlYXBfZ2V0X251bV9mcmVlX2J5dGVzKHZvaWQpCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5oCShyZXZpc2lv
biAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0
eV9oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEwICszOCwxMCBAQCBQQVNfQkVHSU5fRVhU
RVJOX0M7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwogc3RydWN0IHBhc19zZWdyZWdh
dGVkX3BhZ2U7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Owor
c3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcCBwYXNfc2VncmVnYXRlZF9oZWFwOwogdHlwZWRlZiBzdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZSBwYXNfc2VncmVnYXRlZF9wYWdlOwotdHlwZWRlZiBzdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogCiAvKiBUaGUgdXRpbGl0eSBoZWFw
IGlzIGZvciBhbGxvY2F0aW5nIGhpZ2ggdm9sdW1lcyBvZiBzbWFsbCBvYmplY3RzIGFzIHBhcnQg
b2YgYm9va2tlZXBpbmcgZm9yCiAgICB0aGUgaGVhcHMgdGhhdCBsaWJwYXMgYWN0dWFsbHkgcHJv
dmlkZXMuIEl0IGNhbiBvbmx5IGhhbmRsZSBvYmplY3RzIHVwIHRvIHNvbWUgc2l6ZSAocm91Z2hs
eQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVh
cF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIFBBU19BUEkgdm9pZCogcGFzX3V0aWxpdHlfaGVh
cF9hbGxvY2F0ZV8KIAogc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9k
aXJlY3RvcnkqCiBwYXNfdXRpbGl0eV9oZWFwX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3Rv
cihwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIFBB
U19VTlVTRURfUEFSQU0oaGVhcCk7CiAgICAgUEFTX1VOVVNFRF9QQVJBTShkaXJlY3RvcnkpOwpA
QCAtMTI2LDYgKzEyNiw3IEBAIFBBU19BUEkgYm9vbCBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZ19m
b3IKICAgICAgICAgICAgIC51c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0LCBc
CiAgICAgICAgICAgICAuY2hlY2tfZGVhbGxvY2F0aW9uID0gZmFsc2UsIFwKICAgICAgICAgICAg
IC5lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAor
ICAgICAgICAgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gZmFsc2UsIFwKICAgICAgICAgICAgIC5z
aGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IgPSBwYXNfdXRpbGl0eV9oZWFwX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeV9zZWxlY3RvciwgXAogICAgICAgICAgICAgUEFTX1NFR1JFR0FURURfUEFH
RV9DT05GSUdfU1BFQ0lBTElaQVRJT05TKHBhc191dGlsaXR5X2hlYXBfcGFnZV9jb25maWcpIFwK
ICAgICAgICAgfSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3V0aWxpdHlfaGVhcF9zdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0LmgJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBf
c3VwcG9ydC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHR5cGVkZWYgc3RydWN0
IHBhc191dGlsaXR5X2hlYXBfc3VwcG9ydCAKIHR5cGVkZWYgdW5pb24gcGFzX3V0aWxpdHlfaGVh
cF9hbGxvY2F0b3IgcGFzX3V0aWxpdHlfaGVhcF9hbGxvY2F0b3I7CiAKIHN0cnVjdCBwYXNfdXRp
bGl0eV9oZWFwX3N1cHBvcnQgewotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHIKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHIKICAgICAgICAgaW5kZXhfdG9fc2l6ZV9kaXJlY3RvcnlbUEFT
X05VTV9VVElMSVRZX1NJWkVfQ0xBU1NFU107CiAgICAgcGFzX3V0aWxpdHlfaGVhcF9hbGxvY2F0
b3IqIGFsbG9jYXRvcnM7CiAgICAgdWludDY0X3Qgc2xvd19wYXRoX2NvdW50OwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zODgsNiArMzg4LDExIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQg
cGFzX2xvZzJfcm91bmRlZF8KICAgICByZXR1cm4gcGFzX2xvZzJfcm91bmRlZF91cCh2YWx1ZSk7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgdWludHB0cl90IHBhc19yb3VuZF91cF90b19uZXh0X3Bvd2Vy
X29mXzIodWludHB0cl90IHZhbHVlKQoreworICAgIHJldHVybiAodWludHB0cl90KTEgPDwgcGFz
X2xvZzJfcm91bmRlZF91cF9zYWZlKHZhbHVlKTsKK30KKwogI2RlZmluZSBQQVNfU1dBUChsZWZ0
LCByaWdodCkgZG8geyBcCiAgICAgICAgIHR5cGVvZiAobGVmdCkgX3N3YXBfdG1wID0gbGVmdDsg
XAogICAgICAgICBsZWZ0ID0gcmlnaHQ7IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3RoaW5neV9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXAuYwkod29ya2luZyBjb3B5KQpA
QCAtNjgsMzYgKzY4LDM2IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklN
SVQKICAgICBUSElOR1lfSEVBUF9DT05GSUcsCiAgICAgJnRoaW5neV9pbnRyaW5zaWNfcHJpbWl0
aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJnRoaW5neV9hbGxvY2F0b3JfY291bnRzLAot
ICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisgICAgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAogICAgICZ0aGluZ3lfcHJpbWl0aXZlX2hlYXAsCiAg
ICAgJnRoaW5neV9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVh
cF9pc19ub3RfZGVzaWduYXRlZCk7CiAKIHZvaWQqIHRoaW5neV90cnlfYWxsb2NhdGVfcHJpbWl0
aXZlKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiB0cnlfYWxsb2NhdGVfcHJpbWl0aXZlKHNp
emUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoc2l6
ZSwgMSkuYmVnaW47CiB9CiAKIHZvaWQqIHRoaW5neV90cnlfYWxsb2NhdGVfcHJpbWl0aXZlX3pl
cm9lZChzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdF96ZXJvKHRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoc2l6ZSwgMSksIHNpemUpLnB0cjsK
KyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHRyeV9hbGxvY2F0
ZV9wcmltaXRpdmUoc2l6ZSwgMSksIHNpemUpLmJlZ2luOwogfQogCiB2b2lkKiB0aGluZ3lfdHJ5
X2FsbG9jYXRlX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudChzaXplX3Qgc2l6ZSwgc2l6ZV90IGFs
aWdubWVudCkKIHsKLSAgICByZXR1cm4gdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShzaXplLCBhbGln
bm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoc2l6
ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAogdm9pZCogdGhpbmd5X3RyeV9yZWFsbG9jYXRlX3By
aW1pdGl2ZSh2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUpCiB7Ci0gICAgcmV0dXJuIHBh
c190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCop
cGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIs
CiAgICAgICAgICZ0aGluZ3lfcHJpbWl0aXZlX2hlYXAsCiAgICAgICAgIG5ld19zaXplLAogICAg
ICAgICBUSElOR1lfSEVBUF9DT05GSUcsCiAgICAgICAgIHRyeV9hbGxvY2F0ZV9wcmltaXRpdmVf
Zm9yX3JlYWxsb2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBv
cnQsCi0gICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1bCkucHRyOworICAg
ICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX2lmX3N1Y2Nlc3NmdWwpLmJlZ2luOwogfQogCiBQQVNf
Q1JFQVRFX1RSWV9BTExPQ0FURSgKQEAgLTEwNSw3ICsxMDUsNyBAQCBQQVNfQ1JFQVRFX1RSWV9B
TExPQ0FURSgKICAgICBUSElOR1lfSEVBUF9DT05GSUcsCiAgICAgJnRoaW5neV90eXBlZF9ydW50
aW1lX2NvbmZpZy5iYXNlLAogICAgICZ0aGluZ3lfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKKyAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfaWRlbnRpdHkpOwogCiBfX2F0dHJpYnV0ZV9fKChtYWxsb2MpKQogdm9pZCogdGhp
bmd5X3RyeV9hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQpAQCAtMTIzLDcgKzEyMyw3
IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0FSUkFZKAogICAgIFRISU5HWV9IRUFQX0NPTkZJ
RywKICAgICAmdGhpbmd5X3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJnRoaW5neV9h
bGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRl
bnRpdHkpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk7CiAKIF9fYXR0cmli
dXRlX18oKG1hbGxvYykpCiB2b2lkKiB0aGluZ3lfdHJ5X2FsbG9jYXRlX2FycmF5KHBhc19oZWFw
X3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCkKQEAgLTE3MCwx
NCArMTcwLDE0IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAg
ICBUSElOR1lfSEVBUF9DT05GSUcsCiAgICAgJnRoaW5neV9pbnRyaW5zaWNfcHJpbWl0aXZlX3J1
bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJnRoaW5neV9hbGxvY2F0b3JfY291bnRzLAotICAgIHBh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZ0aGluZ3lfdXRpbGl0eV9oZWFw
LAogICAgICZ0aGluZ3lfdXRpbGl0eV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19o
ZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKIAogdm9pZCogdGhpbmd5X3V0aWxpdHlfaGVhcF9hbGxv
Y2F0ZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gdXRpbGl0eV9oZWFwX2FsbG9jYXRlKHNp
emUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXV0aWxpdHlfaGVhcF9hbGxvY2F0ZShzaXpl
LCAxKS5iZWdpbjsKIH0KIAogI2VuZGlmIC8qIFBBU19FTkFCTEVfVEhJTkdZICovCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9j
b25maWcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsOCBAQCBw
YXNfaGVhcF9jb25maWcgdGhpbmd5X2hlYXBfY29uZmlnID0gVEhJCiAKIFBBU19CQVNJQ19IRUFQ
X0NPTkZJR19ERUZJTklUSU9OUygKICAgICB0aGluZ3ksIFRISU5HWSwKLSAgICAuYWxsb2NhdGVf
cGFnZV9zaG91bGRfemVybyA9IHRydWUpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJv
ID0gdHJ1ZSwKKyAgICAuaW50cmluc2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5ID0g
cGFzX2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAogI2Vu
ZGlmIC8qIFBBU19FTkFCTEVfVEhJTkdZICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3RoaW5neV9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9j
b25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsOCBAQCBQQVNfQkVHSU5fRVhURVJO
X0M7CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVG
QVVMVF9TSVpFLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQ
QVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9l
bXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IGZhbHNlLCBcCi0gICAgLnNtYWxs
X3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxfc2Vn
cmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0LCBcCisgICAgLmVu
YWJsZV92aWV3X2NhY2hlID0gZmFsc2UsIFwKICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUs
IFwKICAgICAuc21hbGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCA9IFRISU5HWV9NSU5fQUxJR05f
U0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRGSVRf
UEFHRV9ERUZBVUxUX1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVz
dC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcAkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzg5LDggKzM4OSwxMCBAQCB2b2lkIHRlc3RBbGxvY2F0aW9uQ2hhb3Mo
dW5zaWduZWQgbnVtVGhyCiAgICAgICAgICAgICBvcHRpb25hbE9iamVjdHMucHVzaF9iYWNrKE9w
dGlvbmFsT2JqZWN0KCkpOwogICAgIH0KIAotICAgIGlmICghc2VsZWN0ZWRBbGxvY2F0ZSkKLSAg
ICAgICAgbnVtSXNvbGF0ZWRIZWFwcyA9IDA7CisgICAgaWYgKCFzZWxlY3RlZEFsbG9jYXRlICYm
IG51bUlzb2xhdGVkSGVhcHMpIHsKKyAgICAgICAgY291dCA8PCAiU2tpcHBpbmcgYmVjYXVzZSB0
ZXN0IHJlcXVpcmVzIGlzb2xhdGVkIGhlYXBzIGFuZCB3ZSBkb24ndCBzdXBwb3J0IHRoZW0gaW4g
dGhpcyBjb25maWd1cmF0aW9uLlxuIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICAKICAg
ICB2ZWN0b3I8cGFzX2hlYXBfcmVmKj4gaXNvbGF0ZWRIZWFwczsKICAgICBmb3IgKHVuc2lnbmVk
IGlzb2xhdGVkSGVhcEluZGV4ID0gbnVtSXNvbGF0ZWRIZWFwczsgaXNvbGF0ZWRIZWFwSW5kZXgt
LTspIHsKQEAgLTc4MSw2ICs3ODMsNyBAQCB2b2lkIHRlc3RBbGxvY2F0aW9uQ2hhb3ModW5zaWdu
ZWQgbnVtVGhyCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0Ogog
ICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoISJiYWQgcmFuZG9tIG51bWJlciIpOworICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmICh2
ZXJib3NlKQpAQCAtODUyLDM1ICs4NTUsMzkgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVu
c2lnbmVkIG51bVRocgogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiB9CiAKLXZvaWQgYWRk
VGhlVGVzdHMoYm9vbCB0ZXN0RW51bWVyYXRvcikKK3ZvaWQgYWRkVGhlVGVzdHModW5zaWduZWQg
bXVsdGlwbGllciwgYm9vbCB0ZXN0RW51bWVyYXRvcikKIHsKLSAgICBBRERfVEVTVCh0ZXN0QWxs
b2NhdGlvbkNoYW9zKDEsIDEwLCAxMDAwLCAxMDAwMDAwLCAxMDAwMDAwMCwgZmFsc2UpKTsKLSAg
ICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEwLCAxMCwgMTAwMCwgMjAwMDAwLCAxMDAw
MDAwMCwgZmFsc2UpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEsIDAsIDEw
MDAgKiBtdWx0aXBsaWVyLCAxMDAwMDAwICogbXVsdGlwbGllciwgMTAwMDAwMDAgKiBtdWx0aXBs
aWVyLCBmYWxzZSkpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMTAsIDEw
MDAgKiBtdWx0aXBsaWVyLCAxMDAwMDAwICogbXVsdGlwbGllciwgMTAwMDAwMDAgKiBtdWx0aXBs
aWVyLCBmYWxzZSkpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDAsIDEw
MDAgKiBtdWx0aXBsaWVyLCAyMDAwMDAgKiBtdWx0aXBsaWVyLCAxMDAwMDAwMCAqIG11bHRpcGxp
ZXIsIGZhbHNlKSk7CisgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMTAsIDEw
MDAgKiBtdWx0aXBsaWVyLCAyMDAwMDAgKiBtdWx0aXBsaWVyLCAxMDAwMDAwMCAqIG11bHRpcGxp
ZXIsIGZhbHNlKSk7CiAgICAgaWYgKHRlc3RFbnVtZXJhdG9yKSB7CisgICAgICAgIEFERF9URVNU
KHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMCwgMTAwMCwgNzAwMCwgMTAwMDAwMDAsIHRydWUpKTsK
ICAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxLCAxMCwgMTAwMCwgNzAwMCwg
MTAwMDAwMDAsIHRydWUpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygx
MCwgMCwgMTAwMCwgNDAwMCwgMTAwMDAwMDAsIHRydWUpKTsKICAgICAgICAgQUREX1RFU1QodGVz
dEFsbG9jYXRpb25DaGFvcygxMCwgMTAsIDEwMDAsIDQwMDAsIDEwMDAwMDAwLCB0cnVlKSk7CiAg
ICAgfQogfQogCiB2b2lkIGFkZFNwb3RUZXN0cyhib29sIHRlc3RFbnVtZXJhdG9yKQogewotICAg
IGFkZFRoZVRlc3RzKHRlc3RFbnVtZXJhdG9yKTsKKyAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMo
MTAsIHRlc3RFbnVtZXJhdG9yKSk7CiAgICAgCiAgICAgewogICAgICAgICBGb3JjZUV4Y2x1c2l2
ZXMgZm9yY2VFeGNsdXNpdmVzOwogICAgICAgICBEaXNhYmxlQml0Zml0IGRpc2FibGVCaXRmaXQ7
Ci0gICAgICAgIGFkZFRoZVRlc3RzKHRlc3RFbnVtZXJhdG9yKTsKKyAgICAgICAgQUREX0dST1VQ
KGFkZFRoZVRlc3RzKDEsIHRlc3RFbnVtZXJhdG9yKSk7CiAgICAgfQogICAgIAogICAgIHsKICAg
ICAgICAgRm9yY2VUTEFzIGZvcmNlVExBczsKICAgICAgICAgRm9yY2VQYXJ0aWFscyBmb3JjZVBh
cnRpYWxzOwotICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7CisgICAgICAgIEFERF9HUk9VUChh
ZGRUaGVUZXN0cygxLCBmYWxzZSkpOwogICAgIH0KICAgICAKICAgICB7CiAgICAgICAgIEZvcmNl
Qml0Zml0IGZvcmNlQml0Zml0OwotICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7CisgICAgICAg
IEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOwogICAgIH0KIH0KIApAQCAtOTA0LDUw
ICs5MTEsNTAgQEAgdm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAgICAgICAgICAgICAgICAg
c2VsZWN0ZWRIZWFwUmVmR2V0SGVhcCA9IGlzb19oZWFwX3JlZl9nZXRfaGVhcDsKICAgICAgICAg
ICAgIH0pOwogICAgIAotICAgICAgICBhZGRUaGVUZXN0cyh0cnVlKTsKKyAgICAgICAgQUREX0dS
T1VQKGFkZFRoZVRlc3RzKDEwLCB0cnVlKSk7CiAKICAgICAgICAgewogICAgICAgICAgICAgRGlz
YWJsZUJpdGZpdCBkaXNhYmxlQml0Zml0OwotICAgICAgICAgICAgYWRkVGhlVGVzdHMoZmFsc2Up
OworICAgICAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIGZhbHNlKSk7CiAgICAgICAg
IH0KICAgICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VFeGNsdXNpdmVzIGZvcmNlRXhj
bHVzaXZlczsKLSAgICAgICAgICAgIGFkZFRoZVRlc3RzKGZhbHNlKTsKKyAgICAgICAgICAgIEFE
RF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOwogICAgICAgICB9CiAgICAgCiAgICAgICAg
IHsKICAgICAgICAgICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7CiAgICAgICAg
ICAgICBEaXNhYmxlQml0Zml0IGRpc2FibGVCaXRmaXQ7Ci0gICAgICAgICAgICBhZGRUaGVUZXN0
cyh0cnVlKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGV4Y2x1c2l2ZXMgb24gZm9y
IHN1cmUuCisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgdHJ1ZSkpOyAvLyBU
aGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggZXhjbHVzaXZlcyBvbiBmb3Igc3VyZS4KICAgICAg
ICAgfQogICAgIAogICAgICAgICB7CiAgICAgICAgICAgICBGb3JjZVRMQXMgZm9yY2VUTEFzOwog
ICAgICAgICAgICAgRm9yY2VQYXJ0aWFscyBmb3JjZVBhcnRpYWxzOwotICAgICAgICAgICAgYWRk
VGhlVGVzdHModHJ1ZSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBwYXJ0aWFscyBh
bmQgVExBcyBvbiBmb3Igc3VyZS4KKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygx
LCB0cnVlKSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBwYXJ0aWFscyBhbmQgVExB
cyBvbiBmb3Igc3VyZS4KICAgICAgICAgfQogICAgIAogICAgICAgICB7CiAgICAgICAgICAgICBG
b3JjZUJpdGZpdCBmb3JjZUJpdGZpdDsKLSAgICAgICAgICAgIGFkZFRoZVRlc3RzKHRydWUpOyAv
LyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggYml0Zml0IG9uIGZvciBzdXJlLgorICAgICAg
ICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIHRydWUpKTsgLy8gVGhpcyB0ZXN0cyBlbnVt
ZXJhdGlvbiB3aXRoIGJpdGZpdCBvbiBmb3Igc3VyZS4KICAgICAgICAgfQogICAgIAogICAgICAg
ICB7CiAgICAgICAgICAgICBGb3JjZUJhc2VsaW5lcyBmb3JjZUJhc2VsaW5lczsKICAgICAgICAg
ICAgIERpc2FibGVCaXRmaXQgZGlzYWJsZUJpdGZpdDsKLSAgICAgICAgICAgIGFkZFRoZVRlc3Rz
KHRydWUpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggYmFzZWxpbmVzIGFuZCBzZWdo
ZWFwcyBvbiBmb3Igc3VyZS4KKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0
cnVlKSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBiYXNlbGluZXMgYW5kIHNlZ2hl
YXBzIG9uIGZvciBzdXJlLgogICAgICAgICB9CiAgICAgCiAgICAgICAgIHsKICAgICAgICAgICAg
IEZvcmNlVExBcyBmb3JjZVRMQXM7Ci0gICAgICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7Cisg
ICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICAgICAgfQog
ICAgIAogICAgICAgICB7CiAgICAgICAgICAgICBGb3JjZUJhc2VsaW5lcyBmb3JjZUJhc2VsaW5l
czsKICAgICAgICAgICAgIEZvcmNlUGFydGlhbHMgZm9yY2VQYXJ0aWFsczsKLSAgICAgICAgICAg
IGFkZFRoZVRlc3RzKGZhbHNlKTsKKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygx
LCBmYWxzZSkpOwogICAgICAgICB9CiAKICAgICAgICAgewpAQCAtMTAzMCw3ICsxMDM3LDcgQEAg
dm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAgICAgICAgICAgICAgICAgc2VsZWN0ZWRIZWFw
UmVmR2V0SGVhcCA9IGJtYWxsb2NfaGVhcF9yZWZfZ2V0X2hlYXA7CiAgICAgICAgICAgICB9KTsK
ICAgICAKLSAgICAgICAgYWRkU3BvdFRlc3RzKGZhbHNlKTsKKyAgICAgICAgYWRkU3BvdFRlc3Rz
KHRydWUpOwogICAgIH0KICNlbmRpZiAvLyBQQVNfRU5BQkxFX0JNQUxMT0MKIApAQCAtMTA2OCw3
ICsxMDc1LDcgQEAgdm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAKICAgICAgICAgQm9vdEpJ
VEhlYXAgYm9vdEpJVEhlYXA7CiAKLSAgICAgICAgYWRkVGhlVGVzdHModHJ1ZSk7CisgICAgICAg
IEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7CiAgICAgfQogCiAgICAgewpAQCAtMTA4
Nyw3ICsxMDk0LDcgQEAgdm9pZCBhZGRJc29IZWFwQ2hhb3NUZXN0cygpCiAKICAgICAgICAgQm9v
dEpJVEhlYXAgYm9vdEpJVEhlYXA7CiAKLSAgICAgICAgYWRkVGhlVGVzdHMoZmFsc2UpOworICAg
ICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICB9CiAjZW5kaWYgLy8g
UEFTX0VOQUJMRV9IT1RCSVQKICNlbmRpZiAvLyBQQVNfRU5BQkxFX0lTTwpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFy
aW5nVGVzdHMuY3BwCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCiAj
aW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3NjYXZlbmdlci5oIgot
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3RocmVh
ZF9sb2NhbF9jYWNoZS5oIgogI2luY2x1ZGUgPHNldD4KICNpbmNsdWRlIDx2ZWN0b3I+CkBAIC05
Niw3ICs5Niw3IEBAIHZvaWQgdGVzdFRha2VQYWdlcyh1bnNpZ25lZCBmaXJzdE9iamVjdFMKICAg
ICAgICAgQ0hFQ0soIW9iamVjdHMuY291bnQob2JqZWN0KSk7CiAgICAgICAgIG9iamVjdHMuaW5z
ZXJ0KG9iamVjdCk7CiAgICAgICAgIG9iamVjdExpc3QucHVzaF9iYWNrKG9iamVjdCk7Ci0gICAg
ICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jf
b2JqZWN0KAorICAgICAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAmaXNvX2hlYXBfY29u
ZmlnKS0+b2JqZWN0X3NpemUsCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdGluZ0ZpcnN0T2Jq
ZWN0U2l6ZSk7CkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCB0ZXN0VGFrZVBhZ2VzKHVuc2lnbmVk
IGZpcnN0T2JqZWN0UwogICAgICAgICBDSEVDSyghb2JqZWN0cy5jb3VudChvYmplY3QpKTsKICAg
ICAgICAgb2JqZWN0cy5pbnNlcnQob2JqZWN0KTsKICAgICAgICAgb2JqZWN0TGlzdC5wdXNoX2Jh
Y2sob2JqZWN0KTsKLSAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAgICAgICAgICAgICBy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICZpc29faGVhcF9jb25maWcpLT5vYmplY3Rfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0aW5nU2Vjb25kT2JqZWN0U2l6ZSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCB0ZXN0
VGFrZVBhZ2VzKHVuc2lnbmVkIGZpcnN0T2JqZWN0UwogICAgICAgICBDSEVDSyhvYmplY3QpOwog
ICAgICAgICBDSEVDSyghb2JqZWN0cy5jb3VudChvYmplY3QpKTsKICAgICAgICAgb2JqZWN0cy5p
bnNlcnQob2JqZWN0KTsKLSAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgICAgIENIRUNLX0VRVUFMKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAgICAgICAgICAg
ICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICZpc29faGVhcF9jb25maWcpLT5vYmplY3Rfc2l6ZSwKICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0aW5nRmlyc3RPYmplY3RTaXplKTsKQEAgLTIyOSw3ICsyMjksNyBAQCB2b2lkIHRl
c3RUYWtlUGFnZXNGcm9tQ29ycmVjdEhlYXAodW5zaWduCiAgICAgCiAgICAgcGFzX2hlYXBfcmVm
KiBoZWFwUmVmcyA9IG5ldyBwYXNfaGVhcF9yZWZbbnVtSGVhcHNdOwogICAgIHZvaWQqKiBvYmpl
Y3RzID0gbmV3IHZvaWQqW251bUhlYXBzXTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqKiBkaXJlY3RvcmllcyA9IG5ldyBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqW251bUhlYXBzXTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSoqIGRpcmVjdG9yaWVzID0gbmV3IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KltudW1I
ZWFwc107CiAgICAgCiAgICAgdW5zaWduZWQgbnVtSGVhcHNJblNlY29uZFBoYXNlID0gbnVtSGVh
cHMgLSBudW1IZWFwc0luRmlyc3RQaGFzZTsKICAgICAKQEAgLTI0Miw3ICsyNDIsNyBAQCB2b2lk
IHRlc3RUYWtlUGFnZXNGcm9tQ29ycmVjdEhlYXAodW5zaWduCiAgICAgICAgIG9iamVjdHNbaV0g
PSBpc29fdHJ5X2FsbG9jYXRlKGhlYXBSZWZzICsgaSk7CiAgICAgICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICAgICAgY291dCA8PCAiICAgIEFsbG9jYXRlZCBvYmplY3QgYXQgIiA8PCBvYmplY3Rz
W2ldIDw8ICJcbiI7Ci0gICAgICAgIGRpcmVjdG9yaWVzW2ldID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgICAgIGRpcmVjdG9yaWVzW2ldID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3RzW2ldKSwgJmlzb19oZWFwX2NvbmZpZyk7
CiAgICAgICAgIGlmIChkaXJlY3Rvcmllc1tpXSkKICAgICAgICAgICAgIENIRUNLX0VRVUFMKGRp
cmVjdG9yaWVzW2ldLT5vYmplY3Rfc2l6ZSwgc2l6ZUZ1bmMoaSkpOwpAQCAtMTk4MCw5ICsxOTgw
LDkgQEAgcGFzX2hlYXAqIHNtYWxsSGVhcFR3bzsKIHBhc19oZWFwKiBzbWFsbEhlYXBUaHJlZTsK
IHBhc19oZWFwKiBsYXJnZUhlYXBPbmU7CiBwYXNfaGVhcCogbGFyZ2VIZWFwVHdvOwotcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwcmltaXRpdmVTbWFsbE9uZURpcmVjdG9y
eTsKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcHJpbWl0aXZlU21hbGxU
d29EaXJlY3Rvcnk7Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHByaW1p
dGl2ZVNtYWxsVGhyZWVEaXJlY3Rvcnk7CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
cHJpbWl0aXZlU21hbGxPbmVEaXJlY3Rvcnk7CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogcHJpbWl0aXZlU21hbGxUd29EaXJlY3Rvcnk7CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogcHJpbWl0aXZlU21hbGxUaHJlZURpcmVjdG9yeTsKIAogdm9pZCBzZXR1cFRoaW5neSgp
CiB7CkBAIC0yMDg2LDkgKzIwODYsOSBAQCB2b2lkIGFsbG9jYXRlVGhpbmdpZXNJbXBsKFRoaW5n
eUtpbmQga2luCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGFsbG9jYXRlTWFueSA/IDE1NjI1
MCA6IDE7IGktLTspIHsKICAgICAgICAgICAgIHZvaWQqIG9iamVjdCA9IGFkZE9iamVjdChpc29f
dHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoMzIpKTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Cisg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAgICAgICAgICAgJmlzb19o
ZWFwX2NvbmZpZyk7CiAgICAgICAgICAgICAKQEAgLTIxMDIsOSArMjEwMiw5IEBAIHZvaWQgYWxs
b2NhdGVUaGluZ2llc0ltcGwoVGhpbmd5S2luZCBraW4KICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gYWxsb2NhdGVNYW55ID8gMzkwNjIgOiAxOyBpLS07KSB7CiAgICAgICAgICAgICB2b2lkKiBv
YmplY3QgPSBhZGRPYmplY3QoaXNvX3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKDEyOCkp
OwogICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRpcmVjdG9yeSA9
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAorICAgICAg
ICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVj
dCgKICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwK
ICAgICAgICAgICAgICAgICAmaXNvX2hlYXBfY29uZmlnKTsKICAgICAgICAgICAgIApAQCAtMjEx
OCw5ICsyMTE4LDkgQEAgdm9pZCBhbGxvY2F0ZVRoaW5naWVzSW1wbChUaGluZ3lLaW5kIGtpbgog
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBhbGxvY2F0ZU1hbnkgPyAxMDQxNjYgOiAxOyBpLS07
KSB7CiAgICAgICAgICAgICB2b2lkKiBvYmplY3QgPSBhZGRPYmplY3QoaXNvX3RyeV9hbGxvY2F0
ZV9jb21tb25fcHJpbWl0aXZlKDQ4KSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICAgICAgICAgIAot
ICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2Zvcl9vYmplY3QoCisgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90PihvYmplY3QpLAogICAgICAgICAgICAgICAgICZpc29faGVhcF9jb25maWcp
OwogICAgICAgICAgICAgCkBAIC00NTQyLDcgKzQ1NDIsNiBAQCB2b2lkIGFkZElzb0hlYXBQYWdl
U2hhcmluZ1Rlc3RzKCkKICAgICBGb3JjZUV4Y2x1c2l2ZXMgZm9yY2VFeGNsdXNpdmVzOwogICAg
IEZvcmNlVExBcyBmb3JjZVRMQXM7CiAgICAgRGlzYWJsZUJpdGZpdCBkaXNhYmxlQml0Zml0Owot
ICAgIEZvcmNlT25lTWFnYXppbmUgZm9yY2VPbmVNYWdhemluZTsKICAgICAKICAgICB7CiAgICAg
ICAgIFRlc3RTY29wZSB0ZXN0U2NvcGUoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRl
c3RzLmNwcAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90
ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4NSw3ICsxODUsNyBAQCB2b2lkIHRlc3RTaW1wbGVQYXJ0aWFsQWxsb2NhdGlvbnMoc2l6ZV90
CiAgICAgc2V0PHZvaWQqPiBvYmplY3RTZXQ7CiAgICAgc2V0PHBhc19zZWdyZWdhdGVkX3ZpZXc+
IHZpZXdTZXQ7CiAgICAgc2V0PHBhc19zZWdyZWdhdGVkX3BhZ2UqPiBwYWdlU2V0OwotICAgIHNl
dDxwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqPiBzaXplRGlyZWN0b3J5U2V0
OworICAgIHNldDxwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSo+IHNpemVEaXJlY3RvcnlT
ZXQ7CiAgICAgCiAgICAgcGFzX2hlYXBfcmVmIGhlYXAgPSBJU09fSEVBUF9SRUZfSU5JVElBTEla
RVJfV0lUSF9BTElHTk1FTlQoc2l6ZSwgYWxpZ25tZW50KTsKIApAQCAtMjA5LDkgKzIwOSw5IEBA
IHZvaWQgdGVzdFNpbXBsZVBhcnRpYWxBbGxvY2F0aW9ucyhzaXplX3QKICAgICAgICAgb2JqZWN0
U2V0Lmluc2VydChwdHIpOwogICAgICAgICB2aWV3U2V0Lmluc2VydCh2aWV3KTsKICAgICAgICAg
cGFnZVNldC5pbnNlcnQocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZSh2aWV3KSk7Ci0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZURpcmVjdG9yeSA9
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVEaXJlY3RvcnkgPSBwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKICAgICAgICAgQ0hFQ0tf
RVFVQUwoc2l6ZURpcmVjdG9yeS0+b2JqZWN0X3NpemUsIHNpemUpOwotICAgICAgICBDSEVDSyhw
YXNfaXNfYWxpZ25lZChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYWxpZ25t
ZW50KHNpemVEaXJlY3RvcnkpLCBhbGlnbm1lbnQpKTsKKyAgICAgICAgQ0hFQ0socGFzX2lzX2Fs
aWduZWQocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHNpemVEaXJlY3Rv
cnkpLCBhbGlnbm1lbnQpKTsKICAgICAgICAgc2l6ZURpcmVjdG9yeVNldC5pbnNlcnQoc2l6ZURp
cmVjdG9yeSk7CiAgICAgfQogCkBAIC0yODcsOSArMjg3LDkgQEAgdm9pZCB0ZXN0U2ltcGxlUGFy
dGlhbEFsbG9jYXRpb25zKHNpemVfdAogICAgICAgICBvYmplY3RTZXQuaW5zZXJ0KHB0cik7CiAg
ICAgICAgIHZpZXdTZXQuaW5zZXJ0KHZpZXcpOwogICAgICAgICBwYWdlU2V0Lmluc2VydChwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9wYWdlKHZpZXcpKTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplRGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHZpZXcpOworICAgICAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogc2l6ZURpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3NpemVfZGlyZWN0b3J5KHZpZXcpOwogICAgICAgICBDSEVDS19FUVVBTChzaXplRGlyZWN0b3J5
LT5vYmplY3Rfc2l6ZSwgc2l6ZSk7Ci0gICAgICAgIENIRUNLKHBhc19pc19hbGlnbmVkKHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQoc2l6ZURpcmVjdG9yeSks
IGFsaWdubWVudCkpOworICAgICAgICBDSEVDSyhwYXNfaXNfYWxpZ25lZChwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQoc2l6ZURpcmVjdG9yeSksIGFsaWdubWVudCkpOwog
ICAgICAgICBzaXplRGlyZWN0b3J5U2V0Lmluc2VydChzaXplRGlyZWN0b3J5KTsKICAgICB9CiAK
QEAgLTYwMyw4ICs2MDMsNiBAQCB2b2lkIHRlc3RNdWx0aXBsZVBhcnRpYWxzRnJvbURpZmZlcmVu
dFRoCiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAotICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5nID0gZmFsc2U7Ci0gICAg
CiAgICAgcGFzX2hlYXBfcmVmIGhlYXAgPSBJU09fSEVBUF9SRUZfSU5JVElBTElaRVJfV0lUSF9B
TElHTk1FTlQoc2l6ZSwgYWxpZ25tZW50KTsKIAogICAgIHZlY3Rvcjx0aHJlYWQ+IHRocmVhZHM7
CkBAIC03OTIsNyArNzkwLDYgQEAgdm9pZCB0ZXN0VHdvQmFzZWxpbmVzRXZpY3Rpb25zKHNpemVf
dCBzaQogdm9pZCBhZGRTY2F2ZW5nZXJEZXBlbmRlbnRUZXN0cygpCiB7CiAgICAgRGlzYWJsZUJp
dGZpdCBkaXNhYmxlQml0Zml0OwotICAgIERpc2FibGVFeHBsb3Npb24gZGlzYWJsZUV4cGxvc2lv
bjsKICAgICAKICAgICB7CiAgICAgICAgIEZvcmNlUGFydGlhbHMgZm9yY2VQYXJ0aWFsczsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwVGFibGluZ1Rlc3RzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFRh
YmxpbmdUZXN0cy5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvdGVzdC9Jc29IZWFwVGFibGluZ1Rlc3RzLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDIy
NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpbmNsdWRlICJUZXN0SGFybmVzcy5oIgotCi0jaWYgUEFTX0VOQUJMRV9JU08KLQotI2luY2x1
ZGUgImlzb190ZXN0X2hlYXAuaCIKLSNpbmNsdWRlICJpc29fdGVzdF9oZWFwX2NvbmZpZy5oIgot
I2luY2x1ZGUgPG1hcD4KLSNpbmNsdWRlIDx2ZWN0b3I+Ci0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7
Ci0KLW5hbWVzcGFjZSB7Ci0KLXZvaWQgdGVzdFRhYmxpbmcodW5zaWduZWQgc2l6ZSwKLSAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCB2YXJpYW50LAot
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1QYWdlc1RvRW1wdHksCi0gICAgICAgICAgICAg
ICAgIHVuc2lnbmVkIG51bVBhZ2VzTm90VG9FbXB0eSwKLSAgICAgICAgICAgICAgICAgYm9vbCB1
c2VUYWJsaW5nLAotICAgICAgICAgICAgICAgICBib29sIHJhZ2VTY2F2ZW5nZUR1cmluZ1JlZmls
bCkKLXsKLSAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAot
ICAgIG1hcDxwYXNfc2VncmVnYXRlZF92aWV3LCB2ZWN0b3I8dm9pZCo+PiBwYWdlc1RvRW1wdHk7
Ci0gICAgbWFwPHBhc19zZWdyZWdhdGVkX3ZpZXcsIHZlY3Rvcjx2b2lkKj4+IHBhZ2VzTm90VG9F
bXB0eTsKLSAgICB1bnNpZ25lZCBudW1iZXJPZk9iamVjdHNQZXJQYWdlID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9udW1iZXJfb2Zfb2JqZWN0cygKLSAgICAgICAgc2l6ZSwgKnBhc19oZWFwX2NvbmZp
Z19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudCgmaXNvX3Rlc3RfaGVhcF9j
b25maWcsIHZhcmlhbnQpKTsKLQotICAgIGF1dG8gZmlsbCA9Ci0gICAgICAgIFsmXSAoYXV0byYg
bWFwLCB1bnNpZ25lZCBsaW1pdCkgewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwYWdlSW5k
ZXggPSAwOyBwYWdlSW5kZXggPCBsaW1pdDsgKytwYWdlSW5kZXgpIHsKLSAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcgPSBudWxscHRyOwotICAgICAgICAgICAgICAgIHZl
Y3Rvcjx2b2lkKj4gb2JqZWN0czsKLSAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG9iamVj
dEluZGV4ID0gMDsgb2JqZWN0SW5kZXggPCBudW1iZXJPZk9iamVjdHNQZXJQYWdlOyArK29iamVj
dEluZGV4KSB7Ci0gICAgICAgICAgICAgICAgICAgIHZvaWQqIG9iamVjdCA9IGlzb190ZXN0X2Fs
bG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgbXlWaWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KAot
ICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVj
dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAmaXNvX3Rlc3RfaGVhcF9jb25maWcpOwotICAg
ICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNv
dXQgPDwgIkFsbG9jYXRlZCBvYmplY3QgIiA8PCBvYmplY3QgPDwgIiBpbiB2aWV3ICIgPDwgbXlW
aWV3IDw8ICJcbiI7Ci0gICAgICAgICAgICAgICAgICAgIENIRUNLKG15Vmlldyk7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICghb2JqZWN0SW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IFBBU19BU1NFUlQoIXZpZXcpOwotICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA9IG15Vmll
dzsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBD
SEVDS19FUVVBTChteVZpZXcsIHZpZXcpOwotICAgICAgICAgICAgICAgICAgICBvYmplY3RzLnB1
c2hfYmFjayhvYmplY3QpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBDSEVD
Syh2aWV3KTsKLSAgICAgICAgICAgICAgICBDSEVDSyghbWFwLmNvdW50KHZpZXcpKTsKLSAgICAg
ICAgICAgICAgICBtYXBbdmlld10gPSBvYmplY3RzOwotICAgICAgICAgICAgfQotICAgICAgICB9
OwotCi0gICAgZmlsbChwYWdlc1RvRW1wdHksIG51bVBhZ2VzVG9FbXB0eSk7Ci0gICAgZmlsbChw
YWdlc05vdFRvRW1wdHksIG51bVBhZ2VzTm90VG9FbXB0eSk7Ci0KLSAgICBmb3IgKGF1dG8mIGVu
dHJ5IDogcGFnZXNUb0VtcHR5KSB7Ci0gICAgICAgIHdoaWxlIChlbnRyeS5zZWNvbmQuc2l6ZSgp
KSB7Ci0gICAgICAgICAgICBpc29fdGVzdF9kZWFsbG9jYXRlKGVudHJ5LnNlY29uZC5iYWNrKCkp
OwotICAgICAgICAgICAgZW50cnkuc2Vjb25kLnBvcF9iYWNrKCk7Ci0gICAgICAgIH0KLSAgICB9
Ci0gICAgZm9yIChhdXRvJiBlbnRyeSA6IHBhZ2VzTm90VG9FbXB0eSkgewotICAgICAgICB3aGls
ZSAoZW50cnkuc2Vjb25kLnNpemUoKSA+PSAyKSB7Ci0gICAgICAgICAgICBpc29fdGVzdF9kZWFs
bG9jYXRlKGVudHJ5LnNlY29uZC5iYWNrKCkpOwotICAgICAgICAgICAgZW50cnkuc2Vjb25kLnBv
cF9iYWNrKCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzY2F2ZW5nZSgpOwotCi0gICAgYXV0
byByZWZpbGwgPQotICAgICAgICBbJl0gKGF1dG8mIG1hcCwgdW5zaWduZWQgbGltaXQsIHVuc2ln
bmVkIGV4Y2x1ZGUpIHsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgcGFnZUluZGV4ID0gMDsg
cGFnZUluZGV4IDwgbGltaXQ7ICsrcGFnZUluZGV4KSB7Ci0gICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlldyB2aWV3ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICB2ZWN0b3I8dm9p
ZCo+IG9iamVjdHM7Ci0gICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBvYmplY3RJbmRleCA9
IDA7Ci0gICAgICAgICAgICAgICAgICAgICBvYmplY3RJbmRleCA8IG51bWJlck9mT2JqZWN0c1Bl
clBhZ2UgLSBleGNsdWRlOwotICAgICAgICAgICAgICAgICAgICAgKytvYmplY3RJbmRleCkgewot
ICAgICAgICAgICAgICAgICAgICBpZiAocmFnZVNjYXZlbmdlRHVyaW5nUmVmaWxsKQotICAgICAg
ICAgICAgICAgICAgICAgICAgc2NhdmVuZ2UoKTsKLSAgICAgICAgICAgICAgICAgICAgdm9pZCog
b2JqZWN0ID0gaXNvX3Rlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplKTsKLSAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBteVZpZXcgPSBwYXNfc2VncmVnYXRl
ZF92aWV3X2Zvcl9vYmplY3QoCi0gICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9j
YXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICZpc29fdGVz
dF9oZWFwX2NvbmZpZyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghb2JqZWN0SW5kZXgpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoIXZpZXcpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgdmlldyA9IG15VmlldzsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgICAgICBDSEVDS19FUVVBTChteVZpZXcsIHZpZXcpOwotICAgICAg
ICAgICAgICAgICAgICBvYmplY3RzLnB1c2hfYmFjayhvYmplY3QpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHZpZXcpOwotICAgICAgICAgICAgICAgIENI
RUNLKG1hcC5jb3VudCh2aWV3KSk7Ci0gICAgICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobWFwW3Zp
ZXddLnNpemUoKSArIG9iamVjdHMuc2l6ZSgpLCBudW1iZXJPZk9iamVjdHNQZXJQYWdlKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgIGlmICh1c2VUYWJsaW5nKSB7Ci0gICAgICAg
IHJlZmlsbChwYWdlc05vdFRvRW1wdHksIG51bVBhZ2VzTm90VG9FbXB0eSwgMSk7Ci0gICAgICAg
IHJlZmlsbChwYWdlc1RvRW1wdHksIG51bVBhZ2VzVG9FbXB0eSwgMCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgcmVmaWxsKHBhZ2VzVG9FbXB0eSwgbnVtUGFnZXNUb0VtcHR5LCAwKTsKLSAgICAg
ICAgcmVmaWxsKHBhZ2VzTm90VG9FbXB0eSwgbnVtUGFnZXNOb3RUb0VtcHR5LCAxKTsKLSAgICB9
Ci19Ci0KLXZvaWQgdGVzdFVudGFibGluZygpCi17Ci0gICAgdmVjdG9yPHZlY3Rvcjx2b2lkKj4+
IG9iamVjdHNJblBhZ2U7Ci0KLSAgICB1bnNpZ25lZCBudW1iZXJPZk9iamVjdHNQZXJQYWdlID0g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9udW1iZXJfb2Zfb2JqZWN0cygKLSAgICAgICAgMTYsIElTT19U
RVNUX0hFQVBfQ09ORklHLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKLQotICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCAyOyArK2kpIHsKLSAgICAgICAgdmVjdG9yPHZvaWQqPiBvYmplY3Rz
OwotICAgICAgICBmb3IgKHVuc2lnbmVkIGogPSAwOyBqIDwgbnVtYmVyT2ZPYmplY3RzUGVyUGFn
ZTsgKytqKQotICAgICAgICAgICAgb2JqZWN0cy5wdXNoX2JhY2soaXNvX3Rlc3RfYWxsb2NhdGVf
Y29tbW9uX3ByaW1pdGl2ZSgxNikpOwotICAgICAgICBvYmplY3RzSW5QYWdlLnB1c2hfYmFjayhv
YmplY3RzKTsKLSAgICB9Ci0KLSAgICBmb3IgKHZvaWQqIG9iamVjdCA6IG9iamVjdHNJblBhZ2Vb
MF0pCi0gICAgICAgIGlzb190ZXN0X2RlYWxsb2NhdGUob2JqZWN0KTsKLQotICAgIGZvciAodW5z
aWduZWQgaSA9IDE7IGkgPCBvYmplY3RzSW5QYWdlWzFdLnNpemUoKTsgKytpKQotICAgICAgICBp
c29fdGVzdF9kZWFsbG9jYXRlKG9iamVjdHNJblBhZ2VbMV1baV0pOwotCi0gICAgc2NhdmVuZ2Uo
KTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBvYmplY3RzSW5QYWdlWzFdLnNpemUo
KTsgKytpKSB7Ci0gICAgICAgIENIRUNLX0VRVUFMKGlzb190ZXN0X2FsbG9jYXRlX2NvbW1vbl9w
cmltaXRpdmUoMTYpLAotICAgICAgICAgICAgICAgICAgICBvYmplY3RzSW5QYWdlWzFdW2ldKTsK
LSAgICB9Ci0KLSAgICBDSEVDS19FUVVBTChpc29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0
aXZlKDE2KSwKLSAgICAgICAgICAgICAgICBvYmplY3RzSW5QYWdlWzBdWzBdKTsKLQotICAgIGlz
b190ZXN0X2RlYWxsb2NhdGUob2JqZWN0c0luUGFnZVsxXVswXSk7Ci0KLSAgICBzY2F2ZW5nZSgp
OwotCi0gICAgQ0hFQ0tfRVFVQUwoaXNvX3Rlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZSgx
NiksCi0gICAgICAgICAgICAgICAgb2JqZWN0c0luUGFnZVswXVsxXSk7Ci19Ci0KLXZvaWQgYWRk
VGFibGluZ1Rlc3RzKGJvb2wgdXNlVGFibGluZykKLXsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGlu
ZygxNiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMSwgdXNl
VGFibGluZywgZmFsc2UpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxNiwgcGFzX3NtYWxs
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMTAsIHVzZVRhYmxpbmcsIGZhbHNl
KSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxLCB1c2VUYWJsaW5nLCBmYWxzZSkpOwotICAgIEFERF9U
RVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJp
YW50LCAxMCwgMTAsIHVzZVRhYmxpbmcsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxp
bmcoMTk5NjgsIHBhc19tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxLCAx
LCB1c2VUYWJsaW5nLCBmYWxzZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4LCBw
YXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMTAsIHVzZVRhYmxp
bmcsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTk5NjgsIHBhc19tZWRpdW1f
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMSwgdXNlVGFibGluZywgZmFsc2Up
KTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxOTk2OCwgcGFzX21lZGl1bV9zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxMCwgdXNlVGFibGluZywgZmFsc2UpKTsKLQotICAg
IEFERF9URVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z192YXJpYW50LCAxLCAxLCB1c2VUYWJsaW5nLCB0cnVlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRh
YmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEw
LCB1c2VUYWJsaW5nLCB0cnVlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBhc19z
bWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxLCB1c2VUYWJsaW5nLCB0
cnVlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxMCwgdXNlVGFibGluZywgdHJ1ZSkpOwotICAgIEFE
RF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfdmFyaWFudCwgMSwgMSwgdXNlVGFibGluZywgdHJ1ZSkpOwotICAgIEFERF9URVNUKHRlc3RU
YWJsaW5nKDE5OTY4LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwg
MSwgMTAsIHVzZVRhYmxpbmcsIHRydWUpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxOTk2
OCwgcGFzX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxLCB1c2VU
YWJsaW5nLCB0cnVlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTk5NjgsIHBhc19tZWRp
dW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMTAsIHVzZVRhYmxpbmcsIHRy
dWUpKTsKLX0KLQotfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCi0KLSNlbmRpZiAvLyBQQVNfRU5B
QkxFX0lTTwotCi12b2lkIGFkZElzb0hlYXBUYWJsaW5nVGVzdHMoKQotewotICAgIFJ1blNjYXZl
bmdlckZ1bGx5IHJ1blNjYXZlbmdlckZ1bGx5OwotICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4
Y2x1c2l2ZXM7Ci0gICAgRm9yY2VUTEFzIGZvcmNlVExBczsKLSAgICBEaXNhYmxlQml0Zml0IGRp
c2FibGVCaXRmaXQ7Ci0KLSAgICB7Ci0gICAgICAgIFRlc3RTY29wZSBlbmFibGVUYWJsaW5nKAot
ICAgICAgICAgICAgImVuYWJsZS10YWJsaW5nIiwKLSAgICAgICAgICAgIFtdICgpIHsKLSAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9IHRy
dWU7Ci0gICAgICAgICAgICB9KTsKLQotICAgICAgICBhZGRUYWJsaW5nVGVzdHModHJ1ZSk7Ci0g
ICAgICAgIAotICAgICAgICBBRERfVEVTVCh0ZXN0VW50YWJsaW5nKCkpOwotICAgIH0KLQotICAg
IHsKLSAgICAgICAgVGVzdFNjb3BlIGVuYWJsZVRhYmxpbmcoCi0gICAgICAgICAgICAiZGlzYWJs
ZS10YWJsaW5nIiwKLSAgICAgICAgICAgIFtdICgpIHsKLSAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9IGZhbHNlOwotICAgICAgICAgICAg
fSk7Ci0KLSAgICAgICAgYWRkVGFibGluZ1Rlc3RzKGZhbHNlKTsKLSAgICB9Ci19Ci0KLQotCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvUmFjZVRlc3RzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvUmFjZVRlc3RzLmNwcAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1JhY2VUZXN0
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIHRlc3RMb2NhbEFs
bG9jYXRvclN0b3BSYWNlKHBhc19yYWNlCiAgICAgICAgICAgICBpZiAoa2luZCAhPSBraW5kVG9T
dG9wT24pCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBDSEVDS19FUVVB
TChsb2Nrc0hlbGRGb3JUaHJlYWRbdGhpc190aHJlYWQ6OmdldF9pZCgpXS5zaXplKCksIDIpOwor
ICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobG9ja3NIZWxkRm9yVGhyZWFkW3RoaXNfdGhyZWFkOjpn
ZXRfaWQoKV0uc2l6ZSgpLCAzKTsKICAgICAgICAgICAgIENIRUNLKG9rVG9HZXRUb0hvb2spOwog
CiAgICAgICAgICAgICB1bmlxdWVfbG9jazxtdXRleD4gbG9ja2VyKGdsb2JhbExvY2spOwpAQCAt
MjAyLDcgKzIwMiw3IEBAIHZvaWQgdGVzdExvY2FsQWxsb2NhdG9yU3RvcFJhY2VBZ2FpbnN0U2MK
ICAgICAgICAgICAgIGlmIChraW5kICE9IGtpbmRUb1N0b3BPbikKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgICAgIENIRUNLX0VRVUFMKGxvY2tzSGVsZEZvclRocmVhZFt0aGlz
X3RocmVhZDo6Z2V0X2lkKCldLnNpemUoKSwgMik7CisgICAgICAgICAgICBDSEVDS19FUVVBTChs
b2Nrc0hlbGRGb3JUaHJlYWRbdGhpc190aHJlYWQ6OmdldF9pZCgpXS5zaXplKCksIDMpOwogICAg
ICAgICAgICAgQ0hFQ0sob2tUb0dldFRvSG9vayk7CiAKICAgICAgICAgICAgIHVuaXF1ZV9sb2Nr
PG11dGV4PiBsb2NrZXIoZ2xvYmFsTG9jayk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJqaXRfaGVhcF9jb25maWcuaCIKICNpbmNsdWRl
ICJtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFnZXNpemU2NGtfaGVhcF9j
b25maWcuaCIKLSNpbmNsdWRlICJwYXNfYWxsX21hZ2F6aW5lcy5oIgogI2luY2x1ZGUgInBhc19l
cG9jaC5oIgogI2luY2x1ZGUgInBhc19mZF9zdHJlYW0uaCIKICNpbmNsdWRlICJwYXNfaGVhcC5o
IgpAQCAtMjA5LDM1ICsyMDgsNiBAQCBJbnN0YWxsVmVyaWZpZXI6Okluc3RhbGxWZXJpZmllcigp
CiB7CiB9CiAKLURpc2FibGVFeHBsb3Npb246OkRpc2FibGVFeHBsb3Npb24oKQotICAgIDogVGVz
dFNjb3BlKAotICAgICAgICAiZGlzYWJsZS1leHBsb3Npb24iLAotICAgICAgICBbXSAoKSB7Ci0g
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FuX2V4cGxv
ZGUgPSBmYWxzZTsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9mb3JjZV9leHBsb2RlID0gZmFsc2U7Ci0gICAgICAgIH0pCi17Ci19Ci0KLUZvcmNlRXhw
bG9zaW9uOjpGb3JjZUV4cGxvc2lvbigpCi0gICAgOiBUZXN0U2NvcGUoCi0gICAgICAgICJmb3Jj
ZS1leHBsb3Npb24iLAotICAgICAgICBbXSAoKSB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FuX2V4cGxvZGUgPSB0cnVlOwotICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2ZvcmNlX2V4cGxvZGUgPSB0cnVl
OwotICAgICAgICB9KQotewotfQotCi1Gb3JjZU9uZU1hZ2F6aW5lOjpGb3JjZU9uZU1hZ2F6aW5l
KCkKLSAgICA6IFRlc3RTY29wZSgKLSAgICAgICAgImZvcmNlLW9uZS1tYWdhemluZSIsCi0gICAg
ICAgIFtdICgpIHsKLSAgICAgICAgICAgIHBhc19hbGxfbWFnYXppbmVzX2ZvcmNlZF9jcHVfbnVt
YmVyID0gMDsKLSAgICAgICAgfSkKLXsKLX0KLQogRXBvY2hJc0NvdW50ZXI6OkVwb2NoSXNDb3Vu
dGVyKCkKICAgICA6IFRlc3RTY29wZSgKICAgICAgICAgImVwb2NoLWlzLWNvdW50ZXIiLApAQCAt
MzU2LDcgKzMyNiw2IEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKTsKIHZvaWQgYWRkSXNv
SGVhcFBhZ2VTaGFyaW5nVGVzdHMoKTsKIHZvaWQgYWRkSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGlu
ZVRlc3RzKCk7CiB2b2lkIGFkZElzb0hlYXBSZXNlcnZlZE1lbW9yeVRlc3RzKCk7Ci12b2lkIGFk
ZElzb0hlYXBUYWJsaW5nVGVzdHMoKTsKIHZvaWQgYWRkSklUSGVhcFRlc3RzKCk7CiB2b2lkIGFk
ZExhcmdlRnJlZUhlYXBUZXN0cygpOwogdm9pZCBhZGRMYXJnZVNoYXJpbmdQb29sVGVzdHMoKTsK
QEAgLTcxNCw3ICs2ODMsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICAg
QUREX1NVSVRFKElzb0hlYXBQYWdlU2hhcmluZyk7CiAgICAgQUREX1NVSVRFKElzb0hlYXBQYXJ0
aWFsQW5kQmFzZWxpbmUpOwogICAgIEFERF9TVUlURShJc29IZWFwUmVzZXJ2ZWRNZW1vcnkpOwot
ICAgIEFERF9TVUlURShJc29IZWFwVGFibGluZyk7CiAgICAgQUREX1NVSVRFKEpJVEhlYXApOwog
ICAgIEFERF9TVUlURShMYXJnZUZyZWVIZWFwKTsKICAgICBBRERfU1VJVEUoTGFyZ2VTaGFyaW5n
UG9vbCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5l
c3MuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0
L1Rlc3RIYXJuZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSwyMSArMjc1LDYgQEAgcHVibGlj
OgogICAgIEluc3RhbGxWZXJpZmllcigpOwogfTsKIAotY2xhc3MgRGlzYWJsZUV4cGxvc2lvbiA6
IHB1YmxpYyBUZXN0U2NvcGUgewotcHVibGljOgotICAgIERpc2FibGVFeHBsb3Npb24oKTsKLX07
Ci0KLWNsYXNzIEZvcmNlRXhwbG9zaW9uIDogcHVibGljIFRlc3RTY29wZSB7Ci1wdWJsaWM6Ci0g
ICAgRm9yY2VFeHBsb3Npb24oKTsKLX07Ci0KLWNsYXNzIEZvcmNlT25lTWFnYXppbmUgOiBwdWJs
aWMgVGVzdFNjb3BlIHsKLXB1YmxpYzoKLSAgICBGb3JjZU9uZU1hZ2F6aW5lKCk7Ci19OwotCiBj
bGFzcyBFcG9jaElzQ291bnRlciA6IHB1YmxpYyBUZXN0U2NvcGUgewogcHVibGljOgogICAgIEVw
b2NoSXNDb3VudGVyKCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGhp
bmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25U
ZXN0cy5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
dGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ3LDcgKzQ3LDcgQEAKICNpbmNsdWRlICJwYXNfbWVnYXBhZ2VfY2FjaGUuaCIKICNp
bmNsdWRlICJwYXNfcGFnZV9tYWxsb2MuaCIKICNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCi0j
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2Nh
bF9jYWNoZS5oIgogI2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXAuaCIKQEAgLTgxLDEwICs4MSwx
MCBAQCB2b2lkIGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3RvcEFsbG9jYXRvCiAvLyBGSVhNRTog
T25jZSB3ZSBhZGQgcmVhbCBzY2F2ZW5naW5nLCB3ZSB3aWxsIHdhbnQgdG8gYWRkIGEgc2hyaW5r
SGVhcHMoKSBmdW5jdGlvbiB0aGF0IGRvZXMKIC8vIGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3Rv
cEFsbG9jYXRvcnMoKSBwbHVzIHRoZSBhY3R1YWwgc2NhdmVuZ2luZy4KIAotcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplQ2xhc3NGb3Iodm9pZCogb2JqZWN0KQorcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVDbGFzc0Zvcih2b2lkKiBvYmplY3QpCiB7
CiAjaWYgU0VHSEVBUAotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZm9yX29iamVjdCgKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZm9yX29iamVjdCgKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVj
dCksICZ0aGluZ3lfaGVhcF9jb25maWcpOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKQEAg
LTExMyw3ICsxMTMsNyBAQCB2b2lkIGZvckVhY2hMaXZlVXRpbGl0eU9iamVjdChmdW5jdGlvbjxi
CiAKICNpZiBTRUdIRUFQCiBib29sIGZvckVhY2hDb21taXR0ZWRWaWV3QWRhcHRlcihwYXNfc2Vn
cmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplQ2xhc3MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6
ZUNsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQog
ewpAQCAtMjYyLDkgKzI2Miw5IEBAIHZvaWQgdmVyaWZ5SGVhcEVtcHR5KHBhc19oZWFwKiBoZWFw
KQogICAgIGZvckVhY2hDb21taXR0ZWRWaWV3KAogICAgICAgICBoZWFwLAogICAgICAgICBbJl0g
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykgLT4gYm9vbCB7Ci0gICAgICAgICAgICBDSEVDSyhw
YXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlX29yX2JpYXNlZCh2aWV3KSk7CisgICAgICAg
ICAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlKHZpZXcpKTsKICNpZiBU
TEMKLSAgICAgICAgICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHlfb3JfYmlh
c2VkKHZpZXcpKTsKKyAgICAgICAgICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1w
dHkodmlldykpOwogI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfSk7
CkBAIC05NjYsMjggKzk2NiwyNiBAQCB2b2lkIHRlc3RJbnRlcm5hbFNjYXZlbmdlRnJvbUNvcnJl
Y3REaXJlCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3MSA9IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZm9yX29iamVjdChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0MSksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmdGhpbmd5X2hlYXBfY29uZmlnKTsKICAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeTEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0
KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkxID0gcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgcmVpbnRlcnByZXRf
Y2FzdDx1aW50cHRyX3Q+KG9iamVjdDEpLCAmdGhpbmd5X2hlYXBfY29uZmlnKTsKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2JhbERpcmVjdG9yeTEgPQotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFsKGRpcmVjdG9yeTEp
OwogICAgIAotICAgIENIRUNLX0VRVUFMKGdsb2JhbERpcmVjdG9yeTEtPm9iamVjdF9zaXplLCBm
aXJzdFNpemUpOwotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXpl
KGRpcmVjdG9yeTEpLCAxKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VsaWdpYmxlKGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0so
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkxLCAwKSk7Cisg
ICAgQ0hFQ0tfRVFVQUwoZGlyZWN0b3J5MS0+b2JqZWN0X3NpemUsIGZpcnN0U2l6ZSk7CisgICAg
Q0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJh
c2UpLCAxKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxl
KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKICAg
ICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJl
Y3RvcnkxLCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0
b3J5MS0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcxKTsKICAgICAKICAgICBmbHVzaERlYWxsb2Nh
dGlvbkxvZ0FuZFN0b3BBbGxvY2F0b3JzKCk7CiAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkxKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVDSygh
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNl
LCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChk
aXJlY3RvcnkxLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSygh
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7
CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0
b3J5MS0+YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTEsIDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSwKICAgICAgICAgdmlldzEpOwogICAg
IAogICAgIHZvaWQqIG9iamVjdDIgPSB0aGluZ3lfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShzZWNv
bmRTaXplKTsKQEAgLTk5Niw0NSArOTk0LDQzIEBAIHZvaWQgdGVzdEludGVybmFsU2NhdmVuZ2VG
cm9tQ29ycmVjdERpcmUKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcyID0gcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19mb3Jfb2JqZWN0KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3Qy
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZ0aGluZ3lfaGVhcF9jb25maWcpOwogICAgIAotICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeSogZGlyZWN0b3J5MiA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zv
cl9vYmplY3QoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTIg
PSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICByZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0MiksICZ0aGluZ3lfaGVhcF9jb25maWcpOwot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZ2xvYmFsRGlyZWN0b3J5
MiA9Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9nbG9iYWwoZGly
ZWN0b3J5Mik7CiAgICAgCi0gICAgQ0hFQ0tfRVFVQUwoZ2xvYmFsRGlyZWN0b3J5Mi0+b2JqZWN0
X3NpemUsIHNlY29uZFNpemUpOworICAgIENIRUNLX0VRVUFMKGRpcmVjdG9yeTItPm9iamVjdF9z
aXplLCBzZWNvbmRTaXplKTsKIAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9zaXplKGRpcmVjdG9yeTEpLCAxKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5MSwgMCkpOwotICAgIENIRUNLKCFwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERpcmVjdG9yeTEtPmJhc2UsIDApKTsKLSAg
ICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeTEs
IDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGly
ZWN0b3J5MS0+YmFzZSksIDEpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
c19lbGlnaWJsZSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOworICAgIENIRUNLKCFwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVD
SyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNl
LCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9nZXQoZGlyZWN0b3J5MSwgMCksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9n
ZXQoJmRpcmVjdG9yeTEtPmJhc2UsIDApLAogICAgICAgICB2aWV3MSk7CiAgICAgCi0gICAgQ0hF
Q0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5MiksIDEpOwot
ICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5
MiwgMCkpOwotICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmds
b2JhbERpcmVjdG9yeTItPmJhc2UsIDApKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeTIsIDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5Mi0+YmFzZSksIDEpOworICAgIENI
RUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTItPmJh
c2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZk
aXJlY3RvcnkyLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFMKAot
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTIsIDApLAorICAg
ICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkyLT5iYXNlLCAwKSwK
ICAgICAgICAgdmlldzIpOwogICAgIAogICAgIGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3RvcEFs
bG9jYXRvcnMoKTsKIAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9z
aXplKGRpcmVjdG9yeTEpLCAxKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXNfZWxpZ2libGUoZGlyZWN0b3J5MSwgMCkpOwotICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERpcmVjdG9yeTEtPmJhc2UsIDApKTsKLSAgICBDSEVD
SyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeTEsIDApKTsK
KyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5
MS0+YmFzZSksIDEpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGln
aWJsZSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOworICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7
CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQo
ZGlyZWN0b3J5MSwgMCksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRp
cmVjdG9yeTEtPmJhc2UsIDApLAogICAgICAgICB2aWV3MSk7CiAgICAgCi0gICAgQ0hFQ0tfRVFV
QUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5MiksIDEpOwotICAgIENI
RUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3RvcnkyLCAwKSk7
Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGly
ZWN0b3J5Mi0+YmFzZSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
c19jb21taXR0ZWQoZGlyZWN0b3J5MiwgMCkpOworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnkyLT5iYXNlKSwgMSk7CisgICAgQ0hFQ0socGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7
CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5
Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21t
aXR0ZWQoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnkyLCAwKSwKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCksCiAgICAgICAg
IHZpZXcyKTsKICAgICAKICAgICB0aGluZ3lfZGVhbGxvY2F0ZShvYmplY3QxKTsKQEAgLTEwNDIs
MjAgKzEwMzgsMjAgQEAgdm9pZCB0ZXN0SW50ZXJuYWxTY2F2ZW5nZUZyb21Db3JyZWN0RGlyZQog
CiAgICAgZmx1c2hEZWFsbG9jYXRpb25Mb2dBbmRTdG9wQWxsb2NhdG9ycygpOwogCi0gICAgQ0hF
Q0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5MSksIDEpOwot
ICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3Rvcnkx
LCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9i
YWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkxLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAgICBDSEVD
SyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTEtPmJhc2Us
IDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVj
dG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNf
Y29tbWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5MSwgMCksCisgICAgICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVjdG9yeTEtPmJhc2UsIDApLAogICAg
ICAgICB2aWV3MSk7CiAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
c2l6ZShkaXJlY3RvcnkyKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTIsIDApKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERpcmVjdG9yeTItPmJhc2UsIDApKTsKLSAgICBDSEVD
SyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeTIsIDApKTsK
KyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5
Mi0+YmFzZSksIDEpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGln
aWJsZSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsK
ICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChk
aXJlY3RvcnkyLCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGly
ZWN0b3J5Mi0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcyKTsKICAgICAKICAgICB2b2lkKiBvYmpl
Y3QzID0gdGhpbmd5X3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUodGhpcmRTaXplKTsKQEAgLTEwNjQs
MzEgKzEwNjAsMjkgQEAgdm9pZCB0ZXN0SW50ZXJuYWxTY2F2ZW5nZUZyb21Db3JyZWN0RGlyZQog
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzMgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9v
YmplY3QocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdDMpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRoaW5n
eV9oZWFwX2NvbmZpZyk7CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkzID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5MyA9IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihvYmplY3QzKSwgJnRoaW5neV9oZWFwX2NvbmZpZyk7Ci0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBnbG9iYWxEaXJlY3RvcnkzID0KLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2dsb2JhbChkaXJlY3RvcnkzKTsKLSAgICBD
SEVDS19FUVVBTChnbG9iYWxEaXJlY3RvcnkzLT5vYmplY3Rfc2l6ZSwgdGhpcmRTaXplKTsKLSAg
ICAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3Rv
cnkxKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxl
KGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5MSwgMCkpOwotCi0gICAgQ0hF
Q0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5MiksIDEpOwot
ICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3Rvcnky
LCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9i
YWxEaXJlY3RvcnkyLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkyLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwoZGlyZWN0
b3J5My0+b2JqZWN0X3NpemUsIHRoaXJkU2l6ZSk7CisgICAgCisgICAgQ0hFQ0tfRVFVQUwocGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAgICBD
SEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTEtPmJh
c2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZk
aXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKworICAgIENIRUNLX0VRVUFM
KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnkyLT5iYXNlKSwgMSk7Cisg
ICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3Rvcnky
LT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5
KCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFM
KAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTIsIDApLAor
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkyLT5iYXNlLCAw
KSwKICAgICAgICAgdmlldzIpOwogICAgIAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTMpLCAxKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTMsIDApKTsKLSAgICBDSEVDSyghcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkzLT5iYXNlLCAw
KSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJl
Y3RvcnkzLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Np
emUoJmRpcmVjdG9yeTMtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkzLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5My0+YmFzZSwgMCkpOwor
ICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9y
eTMtPmJhc2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2dldChkaXJlY3RvcnkzLCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2dldCgmZGlyZWN0b3J5My0+YmFzZSwgMCksCiAgICAgICAgIHZpZXczKTsKIAogICAg
IENIRUNLX0VRVUFMKHBhc19zY2F2ZW5nZXJfY3VycmVudF9zdGF0ZSwgcGFzX3NjYXZlbmdlcl9z
dGF0ZV9ub190aHJlYWQpOwpAQCAtMTEzMCwxMSArMTEyNCwxMSBAQCB2b2lkIHRlc3RTaXplQ2xh
c3NDcmVhdGlvbkltcGwoY29uc3QgdmVjCiAjaWYgVExDCiAgICAgcGFzX2xhcmdlX3NoYXJpbmdf
cG9vbF92YWxpZGF0ZV9lYWNoX3NwbGF0ID0gdHJ1ZTsKICNlbmRpZgotICAgIG1hcDxzaXplX3Qs
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSo+IHNpemVNYXA7CisgICAgbWFw
PHNpemVfdCwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqPiBzaXplTWFwOwogICAgIGZv
ciAoY29uc3QgU2l6ZUNsYXNzUHJvZ3JhbSYgcHJvZ3JhbSA6IHByb2dyYW1zKSB7CiAgICAgICAg
IGNvdXQgPDwgIiAgICBQcm9ncmFtOiAiIDw8IHByb2dyYW0ubmFtZSA8PCBlbmRsOwogICAgICAg
ICAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiByZXN1bHRp
bmdTaXplQ2xhc3MgPSBudWxscHRyOworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogcmVzdWx0aW5nU2l6ZUNsYXNzID0gbnVsbHB0cjsKICAgICAgICAgCiAgICAgICAgIHsK
ICNpZiBQQVNfRU5BQkxFX1RFU1RJTkcKQEAgLTExNzcsNyArMTE3MSw2IEBAIHZvaWQgdGVzdFNw
dXJpb3VzRWxpZ2liaWxpdHkoKQogI2lmIFRMQwogICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgp
OwogICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfdmFsaWRhdGVfZWFjaF9zcGxhdCA9IHRydWU7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3RhYmxpbmcgPSBmYWxzZTsK
ICNlbmRpZgogICAgIAogICAgIHVuc2lnbmVkIG9iamVjdFNpemUgPSAxNjsKQEAgLTE1MzgsNiAr
MTUzMSw4IEBAIHZvaWQgdGVzdENvbXBsZXhMYXJnZUFsbG9jYXRpb25JbXBsKGNvbnMKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cGVjdGVkQnl0ZXMgZXhwZWN0ZWROdW1N
YXBwZWRCeXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZl
Y3RvcjxBbGxvY2F0aW9uUHJvZ3JhbT4mIHByb2dyYW1zKQogeworICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCiAjaWYgVExDCiAgICAgcGFzX2xhcmdlX3No
YXJpbmdfcG9vbF92YWxpZGF0ZV9lYWNoX3NwbGF0ID0gdHJ1ZTsKICNlbmRpZgpAQCAtMTU1MCw2
ICsxNTQ1LDEwIEBAIHZvaWQgdGVzdENvbXBsZXhMYXJnZUFsbG9jYXRpb25JbXBsKGNvbnMKICAg
ICAgICAgICAgIGNvdXQgPDwgIiAgICBQcm9ncmFtOiBhbGxvY2F0ZSgiIDw8IHByb2dyYW0ua2V5
KCkgPDwgIiwgIiA8PCBwcm9ncmFtLmNvdW50KCkgPDwgIiwgIgogICAgICAgICAgICAgICAgICA8
PCBwcm9ncmFtLmFsaWdubWVudCgpIDw8ICIpIiA8PCBlbmRsOwogICAgICAgICAgICAgdm9pZCog
cHRyID0gYWxsb2NhdG9yLmFsbG9jYXRlKHByb2dyYW0uY291bnQoKSwgcHJvZ3JhbS5hbGlnbm1l
bnQoKSk7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgIGNvdXQg
PDwgIkFsbG9jYXRlZCBwdHIgPSAiIDw8IHB0ciA8PCAiIHdpdGgga2luZCAiCisgICAgICAgICAg
ICAgICAgICAgICA8PCBwYXNfZ2V0X29iamVjdF9raW5kKHB0ciwgVEhJTkdZX0hFQVBfQ09ORklH
KSA8PCBlbmRsOworICAgICAgICAgICAgfQogICAgICAgICAgICAgQ0hFQ0socGFzX2lzX2FsaWdu
ZWQocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0ciksIHByb2dyYW0uYWxpZ25tZW50KCkp
KTsKICAgICAgICAgICAgIENIRUNLKCFvYmplY3RCeUtleS5jb3VudChwcm9ncmFtLmtleSgpKSk7
CiAgICAgICAgICAgICBvYmplY3RCeUtleVtwcm9ncmFtLmtleSgpXSA9IHB0cjsKQEAgLTMyMTgs
MTUgKzMyMTcsNyBAQCB2b2lkIGFkZEFsbFRlc3RzKCkKICAgICAgICAgICAgIH0pOwogICAgICAg
ICAKICAgICAgICAgYWRkQWxsVGVzdHNJbXBsKCk7Ci0KLSAgICAgICAgewotICAgICAgICAgICAg
RGlzYWJsZUV4cGxvc2lvbiBEaXNhYmxlRXhwbG9zaW9uOwotICAgICAgICAgICAgYWRkU21hbGxI
ZWFwVGVzdHMoKTsKLSAgICAgICAgfQotICAgICAgICB7Ci0gICAgICAgICAgICBGb3JjZUV4cGxv
c2lvbiBmb3JjZUV4cGxvc2lvbjsKLSAgICAgICAgICAgIGFkZFNtYWxsSGVhcFRlc3RzKCk7Ci0g
ICAgICAgIH0KKyAgICAgICAgYWRkU21hbGxIZWFwVGVzdHMoKTsKICAgICB9CiB9CiAKQEAgLTMy
NDQsNyArMzIzNSw2IEBAIHZvaWQgYWRkVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGUK
IAogICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7CiAgICAgRm9yY2VUTEFzIGZv
cmNlVExBczsKLSAgICBGb3JjZU9uZU1hZ2F6aW5lIGZvcmNlT25lTWFnYXppbmU7CiAgICAgRXBv
Y2hJc0NvdW50ZXIgZXBvY2hJc0NvdW50ZXI7CiAKICAgICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437786</attachid>
            <date>2021-09-09 14:29:37 -0700</date>
            <delta_ts>2021-09-09 15:20:56 -0700</delta_ts>
            <desc>better changelog</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>1216199</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxNiBAQAorMjAyMS0wOS0wOSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIFVwZGF0ZSB0byA5
NzZmOGRkZGZiODcyMTA5NWY2OGNlNTY5NzM0MDFhMzQyYjE4Y2I1IGFuZCBmdWxseSBlbmFibGUg
b24gQVMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MDEyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgdXBkYXRlcyBsaWJwYXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIGFuZCBlbmFibGVzIGl0IGNv
bXBsZXRlbHkgb24gQVMgKG5vdCBqdXN0IGZvcgorICAgICAgICBqaXRfaGVhcCBhcyBiZWZvcmUp
LgorCisgICAgICAgIFRoZSBtYWluIGNoYW5nZXMgYXJlOgorCisgICAgICAgIC0gUmVwbGFjZSBi
aWFzaW5nIGFuZCBtYWdhemluZXMgd2l0aCBwZXItdGhyZWFkIHZpZXcgY2FjaGVzLiBBIHZpZXcg
Y2FjaGUgaXMgYSBib3VuZGVkLXNpemUKKyAgICAgICAgICBxdWV1ZSBvZiBleGNsdXNpdmVfdmll
d3MgKGkuZS4gcGFnZXMpIHRoYXQgaXMgbG9jYWwgdG8gYSB0aHJlYWQuIEVhY2ggdGhyZWFkIGhh
cyBhIHZpZXcKKyAgICAgICAgICBjYWNoZSBmb3IgZXZlcnkgc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSB0aGF0IGl0IHRhbGtzIHRvIGFuZCB0aGF0IGhhcyB2aWV3IGNhY2hpbmcKKyAgICAgICAg
ICBlbmFibGVkLiBUaGUgc2l6ZSBkaXJlY3RvcmllcyBjYW4gY29udHJvbCB2aWV3IGNhY2hlIHNp
emUgc29tZXdoYXQgZHluYW1pY2FsbHkgKGRpZmZlcmVudAorICAgICAgICAgIGRpcmVjdG9yaWVz
IGNhbiBoYXZlIGRpZmZlcmVudCBzaXplIHZpZXcgY2FjaGVzKS4gVmlld3MgZ2V0IGVucXVldWVk
IHdoZW4gYSB0aHJlYWQgZnJlZXMKKyAgICAgICAgICB0aGUgZmlyc3Qgb2JqZWN0IGluIHRoZSBw
YWdlLiBWaWV3cyBnZXQgZGVxdWV1ZWQgd2hlbmV2ZXIgYSB0aHJlYWQgd291bGQgaGF2ZSBhc2tl
ZCB0aGUKKyAgICAgICAgICBkaXJlY3RvcnkgZm9yIGEgdmlldyBidXQgdGhlIHZpZXcgY2FjaGUg
d2FzIG5vbi1lbXB0eS4KKworICAgICAgICAgIFRoaXMgY2hhbmdlIGluY3JlYXNlcyB0aGUgZWZm
aWNpZW5jeSBvZiBsb2NhbF9hbGxvY2F0b3JfcmVmaWxsLCBzaW5jZSBwYWdlcyBoYXZlIGEgbG9u
Z2VyCisgICAgICAgICAgdGltZSB0byAiY29vayIgYmVmb3JlIGFueW9uZSBhbGxvY2F0ZXMgZnJv
bSB0aGVtIChzaW5jZSB0aGUgdmlldyBjYWNoZSBpcyBhIHF1ZXVlKS4gQXMKKyAgICAgICAgICB3
ZWxsLCB2aWV3IGNhY2hlcycgdGhyZWFkLWxvY2FsaXR5IG1lYW5zIHRoYXQgdGhlcmUgaXMgbm8g
bG9ja2luZyBvciBjb250ZW50aW9uIHdoZW4KKyAgICAgICAgICBhY2Nlc3NpbmcgdGhlbS4gVGhl
IHNjYXZlbmdlciBoYXMgY2xldmVyIHRyaWNrcyBmb3IgY2xlYXJpbmcgb3V0IHZpZXcgY2FjaGVz
LCBzaW1pbGFybHkgdG8KKyAgICAgICAgICBob3cgaXQgY2xlYXJzIG91dCBsb2NhbCBhbGxvY2F0
b3JzIChpdCB1c2VzIHRocmVhZF9zdXNwZW5kKS4KKworICAgICAgICAtIEZpeCBoYXNoIGNvbGxp
c2lvbnMgaW4gdGhlIHBhZ2UgaGVhZGVyIHRhYmxlLiBQcmV2aW91c2x5LCBJIHdhcyB1c2luZyBh
biB1bmFjY2VwdGFibHkKKyAgICAgICAgICB0cml2aWFsIGhhc2ggZnVuY3Rpb24gYW5kIGl0IF9z
b21ldGltZXNfIGNhdXNlZCBwZXJmIHBhdGhvbG9naWVzLgorCisgICAgICAgIC0gR2V0IHJpZCBv
ZiBpbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQsIHNpbmNlIHRoaXMgd2FzIGFubm95aW5nbHkg
cmVkdW5kYW50IHdpdGgKKyAgICAgICAgICBhbGxvY2F0aW9uX3Jlc3VsdC4KKworICAgICAgICAt
IFJlZmFjdG9yIHNvbWUgYWxsb2NhdGlvbiBmYXN0IHBhdGhzIHNvIHRoYXQgdGhleSBoYXZlIGZl
d2VyIGNhbGxlZS1zYXZlcy4KKworICAgICAgICAtIE1ha2Ugc2NhdmVuZ2luZyBhIHdob2xlIGxv
dCBtb3JlIHByZWNpc2UuIFNjYXZlbmdpbmcgaXMgbm93IGJhc2VkIG9uIHRpbWUgc2luY2Ugd2hl
biBhCisgICAgICAgICAgcGFnZSBiZWNvbWUgZW1wdHkuIElmIGVub3VnaCB0aW1lIHBhc3NlcyAo
Y3VycmVudGx5IDMwMG1zKSB0aGVuIHN1Y2ggYSBwYWdlIGlzIGRlY29tbWl0dGVkLgorICAgICAg
ICAgIFByZXZpb3VzbHkgdGhlIGhldXJpc3RpYyB3YXMgbm90IG5lYXJseSBzbyBjbGVhci4gVGhp
cyBpbXByb3ZlcyBtZW1vcnkgdXNhZ2Ugd2l0aG91dAorICAgICAgICAgIHJlYWxseSBodXJ0aW5n
IHBlcmZvcm1hbmNlIChpdCBzaGlmdHMgdGhlIHRpbWUtbWVtb3J5IGN1cnZlIGNsb3NlciB0byB0
aGUgb3JpZ2luLCBhbmQKKyAgICAgICAgICB0aGlzIGFsc28gY2hhbmdlcyB0dW5pbmcgcGFyYW1l
dGVycyBzbyB0aGF0IGl0J3MgYSBzbGlnaHQgc3BlZWQtdXAgYW5kIGEgc2xpZ2h0IG1lbW9yeQor
ICAgICAgICAgIGltcHJvdmVtZW50LCBidXQgaXQgY291bGQgaGF2ZSBiZWVuIGEgYmlnZ2VyIG1l
bW9yeSBpbXByb3ZlbWVudCB3aXRoIG5vIHNwZWVkLXVwLCBvciBhbgorICAgICAgICAgIGV2ZW4g
YmlnZ2VyIG1lbW9yeSBpbXByb3ZlbWVudCB3aXRoIGEgc2xvdy1kb3duKS4KKworICAgICAgICAx
LjMlIGZhc3RlciBvbiBTcGVlZG9tZXRlcjIuIE5ldXRyYWwgb24gSmV0U3RyZWFtMi4gRklYTUUs
IHN0aWxsIG5lZWQgdG8gY29uZmlybQorICAgICAgICBSQU1pZmljYXRpb24gYW5kIG1heWJlIG90
aGVyIGJlbmNobWFya3MuCisKKyAgICAgICAgKiBibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYm1hbGxvYy9CUGxhdGZvcm0uaDoKKyAgICAgICAgKiBsaWJwYXMv
ZXhwb3J0LnNoOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmM6
CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX3Nsb3cpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuYzoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9ibWFsbG9jX2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1h
bGxvY19oZWFwX2lubGluZXMuaDoKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2lubGlu
ZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbmxpbmUp
OgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkX2lubGluZSk6CisgICAgICAg
IChibWFsbG9jX2FsbG9jYXRlX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX3dp
dGhfYWxpZ25tZW50X2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX3plcm9lZF9p
bmxpbmUpOgorICAgICAgICAoYm1hbGxvY190cnlfcmVhbGxvY2F0ZV9pbmxpbmUpOgorICAgICAg
ICAoYm1hbGxvY19yZWFsbG9jYXRlX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxv
Y2F0ZV9hdXhpbGlhcnlfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxp
YXJ5X2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfemVy
b2VkX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRf
aW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV93aXRoX2Fs
aWdubWVudF9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0
aF9hbGlnbm1lbnRfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYXV4
aWxpYXJ5X2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2lu
bGluZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmM6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmg6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfaW5saW5lcy5oOgorICAgICAgICAo
aG90Yml0X3RyeV9hbGxvY2F0ZV9pbmxpbmUpOgorICAgICAgICAoaG90Yml0X3RyeV9hbGxvY2F0
ZV93aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAgICAoaG90Yml0X3RyeV9yZWFsbG9jYXRl
X2lubGluZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmM6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmg6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfaW5saW5lcy5oOgorICAgICAgICAoaXNvX3Ry
eV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2lubGluZSk6CisgICAgICAgIChpc29fdHJ5X2Fs
bG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKToKKyAgICAgICAg
KGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKToKKyAgICAg
ICAgKGlzb19hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2lubGluZSk6CisgICAgICAgIChpc29f
YWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAg
ICAoaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfemVyb2VkX2lubGluZSk6CisgICAgICAg
IChpc29fdHJ5X3JlYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbmxpbmUpOgorICAgICAgICAo
aXNvX3JlYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbmxpbmUpOgorICAgICAgICAoaXNvX3Ry
eV9hbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb19hbGxvY2F0ZV9wcmlt
aXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX3plcm9l
ZF9pbmxpbmUpOgorICAgICAgICAoaXNvX2FsbG9jYXRlX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5l
KToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2lu
bGluZSk6CisgICAgICAgIChpc29fYWxsb2NhdGVfcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2lu
bGluZSk6CisgICAgICAgIChpc29fdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2lubGluZSk6Cisg
ICAgICAgIChpc29fcmVhbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb190
cnlfYWxsb2NhdGVfZm9yX29iamNfaW5saW5lKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9pc29fdGVzdF9oZWFwLmM6CisgICAgICAgIChpc29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJp
bWl0aXZlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZp
Zy5jOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmg6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXAuYzoKKyAgICAgICAgKGppdF9o
ZWFwX3RyeV9hbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBf
Y29uZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmM6
CisgICAgICAgIChtaW5hbGlnbjMyX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuYzoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcC5jOgorICAgICAgICAocGFnZXNpemU2
NGtfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYzoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfaGVhcHMuYzoKKyAgICAgICAgKGZvcl9l
YWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAg
ICAgKGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ3JlZ2F0ZWRfaGVhcF9jYWxsYmFj
ayk6CisgICAgICAgIChkdW1wX2RpcmVjdG9yeV9uaWNlbHkpOgorICAgICAgICAoY29tcHV0ZV90
b3RhbF9ub25fdXRpbGl0eV9zZWdyZWdhdGVkX3N1bW1hcnlfZGlyZWN0b3J5X2NhbGxiYWNrKToK
KyAgICAgICAgKGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9jYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X2FsbF9tYWdhemluZXMuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfYWxsX21hZ2F6aW5lcy5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5oOgorICAgICAgICAocGFzX2FsbG9jYXRpb25f
cmVzdWx0X2lkZW50aXR5KToKKyAgICAgICAgKHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKToK
KyAgICAgICAgKHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOgorICAgICAgICAocGFz
X2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmM6CisgICAgICAgIChwYXNfYmFzZWxpbmVf
YWxsb2NhdG9yX2F0dGFjaF9kaXJlY3RvcnkpOgorICAgICAgICAocGFzX2Jhc2VsaW5lX2FsbG9j
YXRvcl9kZXRhY2hfZGlyZWN0b3J5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
YmFzZWxpbmVfYWxsb2NhdG9yLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
YXNpbmdfZGlyZWN0b3J5LmM6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpYXNpbmdfZGlyZWN0b3J5Lmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jOgorICAgICAgICAocGFz
X2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcpOgorICAgICAgICAocGFzX2JpdGZpdF9hbGxv
Y2F0b3JfZmluaXNoX2ZhaWxpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfYWxsb2NhdG9yLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZp
dF9hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfcmVz
ZXQpOgorICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfYXNzZXJ0X3Jlc2V0KToKKyAgICAg
ICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jOiBSZW1vdmVkLgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaDog
UmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9y
eS5jOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfY29uc3RydWN0KToKKyAgICAgICAg
KHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWQpOgor
ICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91bnByb2Nl
c3NlZF91bmNoZWNrZWQpOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVf
ZGlkX2JlY29tZV9lbXB0eSk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmly
c3RfZnJlZV92aWV3KToKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X2RvZXNfc2hhcmlu
Zyk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdXNlX2Vwb2NoKToKKyAgICAg
ICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgpOgorICAgICAg
ICAocGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0X2VtcHR5X2JpdF9hdF9pbmRleCk6CisgICAgICAg
IChwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgpOgor
ICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5KToKKyAg
ICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSk6CisgICAgICAgIChw
YXNfYml0Zml0X2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSk6CisgICAgICAgIChwYXNfYml0Zml0
X2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVj
dG9yeV91cGRhdGVfYmlhc2luZ19lbGlnaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNf
Yml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX2VtcHR5X3dpdGhvdXRfYmlhc2lu
Z191cGRhdGUpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfZGlyZWN0b3J5Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9k
aXJlY3RvcnlfYW5kX2luZGV4Lmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oOgorICAgICAgICAocGFzX2JpdGZpdF9k
aXJlY3RvcnlfZ2V0X2dsb2JhbCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jOiBSZW1vdmVkLgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3MuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzLmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9oZWFwLmM6CisgICAgICAgIChwYXNfYml0Zml0X2hlYXBfY3JlYXRl
KToKKyAgICAgICAgKHBhc19iaXRmaXRfaGVhcF9lbnN1cmVfc2l6ZV9jbGFzcyk6CisgICAgICAg
IChwYXNfYml0Zml0X2hlYXBfY29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAgKHBhc19iaXRmaXRf
aGVhcF9mb3JfZWFjaF9saXZlX29iamVjdCk6CisgICAgICAgIChwYXNfYml0Zml0X2hlYXBfZW5z
dXJlX2dsb2JhbF9zaXplX2NsYXNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X2hlYXAuaDoKKyAgICAgICAgKHBhc19iaXRmaXRfaGVhcF9nZXRfZGly
ZWN0b3J5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuYzoK
KyAgICAgICAgKHBhc19iaXRmaXRfcGFnZV9nZXRfY29uZmlnKToKKyAgICAgICAgKHBhc19iaXRm
aXRfcGFnZV9mb3JfZWFjaF9saXZlX29iamVjdCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oOgorICAgICAgICAocGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZ191c2VzX3N1YnBhZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oOgorICAgICAgICAocGFzX2JpdGZpdF9wYWdlX2Rl
YWxsb2NhdGVfd2l0aF9wYWdlX2ltcGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfc2l6ZV9jbGFzcy5jOgorICAgICAgICAocGFzX2JpdGZpdF9zaXplX2NsYXNzX2Ny
ZWF0ZSk6CisgICAgICAgIChwYXNfYml0Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2ZyZWVfdmll
dyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmg6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3LmM6CisgICAgICAg
IChwYXNfYml0Zml0X3ZpZXdfY3JlYXRlKToKKyAgICAgICAgKHBhc19iaXRmaXRfdmlld19ub3Rl
X25vbmVtcHRpbmVzcyk6CisgICAgICAgIChkaWRfYmVjb21lX2VtcHR5X2Zvcl9iaXRzKToKKyAg
ICAgICAgKHBhc19iaXRmaXRfdmlld19ub3RlX2Z1bGxfZW1wdGluZXNzKToKKyAgICAgICAgKHBh
c19iaXRmaXRfdmlld19ub3RlX21heF9mcmVlKToKKyAgICAgICAgKGNvbXB1dGVfc3VtbWFyeSk6
CisgICAgICAgIChmb3JfZWFjaF9saXZlX29iamVjdCk6CisgICAgICAgIChwYXNfYml0Zml0X3Zp
ZXdfbG9ja19vd25lcnNoaXBfbG9ja19zbG93KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXcuaDoKKyAgICAgICAgKHBhc19iaXRmaXRfdmlld19s
b2NrX293bmVyc2hpcF9sb2NrKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oOgorICAgICAgICAocGFzX2JpdGZpdF92aWV3X2N1
cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRleCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfYml0Zml0
X3ZpZXdfY3VycmVudF9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAocGFzX2JpdGZpdF92
aWV3X2luZGV4X2luX2N1cnJlbnQpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmg6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5jOgorICAgICAgICAoZGVh
bGxvY2F0ZV9zZWdyZWdhdGVkKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVh
bGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmg6CisgICAgICAgIChwYXNfZGVhbGxvY2F0b3Jfc2Nh
dmVuZ2VfYWN0aW9uX2dldF9zdHJpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmM6CisgICAgICAgIChzZXRfdXBfcmFuZ2UpOgor
ICAgICAgICAocGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5pdGlhbGl6ZSk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5s
aW5lcy5oOgorICAgICAgICAocGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2FsbG9j
YXRvcl9pbmRpY2VzKToKKyAgICAgICAgKHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251
bV9kZXNpZ25hdGVkX2luZGljZXNfZm9yX3NtYWxsX2NvbmZpZyk6CisgICAgICAgIChwYXNfZGVz
aWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGVkX2luZGV4X2Zvcl9zbWFsbF9jb25maWcp
OgorICAgICAgICAocGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2Rlc2lnbmF0ZWRf
aW5kaWNlcyk6CisgICAgICAgIChwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25h
dGVkX2luZGV4KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2Jp
dGZpdF9oZWFwcy5jOgorICAgICAgICAodmlld19jYWxsYmFjayk6CisgICAgICAgIChlbnVtZXJh
dGVfYml0Zml0X2RpcmVjdG9yeSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Vu
dW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmM6CisgICAgICAgIChyZWNvcmRfcGFnZV9vYmplY3Rz
KToKKyAgICAgICAgKGVudW1lcmF0ZV9leGNsdXNpdmVfdmlldyk6CisgICAgICAgIChlbnVtZXJh
dGVfcGFydGlhbF92aWV3KToKKyAgICAgICAgKGVudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBfY2Fs
bGJhY2spOgorICAgICAgICAocGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzKToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190
YWJsZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19mdWxsX2FsbG9jX2JpdHNf
aW5saW5lcy5oOgorICAgICAgICAocGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX2V4Y2x1
c2l2ZSk6CisgICAgICAgIChwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3Jfdmlld19hbmRf
ZGlyZWN0b3J5KToKKyAgICAgICAgKHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl92aWV3
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2V0X2hlYXAuaDoKKyAgICAgICAg
KHBhc19nZXRfaGVhcCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuYzoK
KyAgICAgICAgKHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnRfc2xvdyk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfaGVhcF9jb25maWdfaW5saW5lcy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfaW5saW5lcy5oOgorICAgICAgICAocGFzX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3J5X2Zvcl9jb3VudCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfcnVudGltZV9jb25maWcuYzogQWRkZWQuCisgICAgICAgIChwYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZ192aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSk6CisgICAgICAgIChwYXNf
aGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHkpOgorICAgICAgICAo
cGFzX2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5KToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaDoKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Lmg6
IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19oZWFw
X3N1cHBvcnQuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9w
aHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYzoKKyAgICAgICAgKGxhcmdlX2FsaWduZWRfYWxs
b2NhdG9yKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9y
LmM6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdCk6CisgICAgICAgIChw
YXNfbG9jYWxfYWxsb2NhdG9yX3Jlc2V0KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jf
bW92ZSk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX2ZpbmlzaF9yZWZpbGxfd2l0aF9i
aXRmaXQpOgorICAgICAgICAoc3RvcF9pbXBsKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0
b3Jfc3RvcCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlKToKKyAgICAg
ICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfZGVzdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVzZXRfaW1wbCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9y
X3NldF91cF9idW1wKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nhbl9iaXRzX3Rv
X3NldF91cF9mcmVlX2JpdHMpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBf
ZnJlZV9iaXRzKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90b19hbGxv
Y2F0ZSk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3N0YXJ0X2FsbG9jYXRpbmdfaW5f
cHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9y
ZWZpbGxfd2l0aF9rbm93bl9jb25maWcpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9y
ZXR1cm5fbWVtb3J5X3RvX3BhZ2Vfc2V0X2JpdF9jYWxsYmFjayk6CisgICAgICAgIChwYXNfbG9j
YWxfYWxsb2NhdG9yX3JldHVybl9tZW1vcnlfdG9fcGFnZSk6CisgICAgICAgIChwYXNfbG9jYWxf
YWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV93aXRoX2ZyZWVfYml0cyk6CisgICAgICAgIChwYXNfbG9j
YWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfY2FzZXMpOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9zbG93KToKKyAgICAg
ICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3cpOgorICAgICAgICAocGFz
X2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfaW5saW5lX29ubHkpOgorICAgICAgICAocGFz
X2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oOiBBZGRlZC4KKyAgICAgICAgKHBhc19sb2Nh
bF9hbGxvY2F0b3Jfa2luZF9nZXRfc3RyaW5nKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MpOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYzogQWRkZWQuCisg
ICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2ZSk6Cisg
ICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3ApOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEu
aDogQWRkZWQuCisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2Nv
bnN0cnVjdCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2Rp
ZF91c2VfZm9yX2FsbG9jYXRpb24pOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF92aWV3X2NhY2hlLmM6IEFkZGVkLgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVf
Y29uc3RydWN0KToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX21vdmUpOgorICAgICAg
ICAoc3RvcF9pbXBsKToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3ApOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmg6IEFkZGVkLgor
ICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkpOgorICAgICAgICAocGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfcG9wKToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1
bGwpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcHVzaCk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jOiBBZGRlZC4KKyAgICAg
ICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGVfY3JlYXRlKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmg6IEFkZGVkLgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5j
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRy
X2hhc2h0YWJsZS5oOgorICAgICAgICAocGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRh
YmxlX2ZpbmQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5jOiBS
ZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnX3V0
aWxzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxl
Lmg6CisgICAgICAgIChwYXNfcGFnZV9oZWFkZXJfdGFibGVfaGFzaCk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jOgorICAgICAgICAo
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfcGF5bG9hZCk6CisgICAgICAgIChwYXNf
cGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF91c2VfZXBvY2gpOgorICAgICAgICAocGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfcGFyZW50X3Bvb2wpOgorICAgICAgICAocGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9pc19lbGlnaWJsZSk6CisgICAgICAgIChwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X3Rha2VfbGVhc3RfcmVjZW50bHlfdXNlZCk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5o
OgorICAgICAgICAocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kX3NlbGVjdF9mb3Jf
c2VncmVnYXRlZF9kaXJlY3RvcnkpOgorICAgICAgICAocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9raW5kX2dldF9zdHJpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX3NoYXJpbmdfcG9vbC5jOgorICAgICAgICAocGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19w
b29sX3NjYXZlbmdlKToKKyAgICAgICAgKHBhc19iaWFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Up
OiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdf
cG9vbC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9v
bF9zY2F2ZW5nZV9yZXN1bHQuaDogQWRkZWQuCisgICAgICAgIChwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfc2NhdmVuZ2VfcmVzdWx0X2NyZWF0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5jOgorICAgICAgICAocGFzX3JlZHVu
ZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9jcmVhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuaDoKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmM6CisgICAgICAgIChzY2F2ZW5nZXJfdGhy
ZWFkX21haW4pOgorICAgICAgICAocGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzX2V4Y2Vw
dF9yZW1vdGVfdGxjcyk6CisgICAgICAgIChwYXNfc2NhdmVuZ2VyX2RlY29tbWl0X2ZyZWVfbWVt
b3J5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmg6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnku
YzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeS5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2Rl
Lmg6IEFkZGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGVfZ2V0
X3N0cmluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5LmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2RhdGFfc2xv
dyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfbWluaW1pemVfZmlyc3RfZWxp
Z2libGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3VwZGF0ZV9maXJzdF9l
bGlnaWJsZV9hZnRlcl9zZWFyY2gpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCk6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfYXBwZW5kKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0
ZSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRf
YmVjb21lX2VsaWdpYmxlX3dpdGhvdXRfYmlhc2luZ191cGRhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5oOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Nwb29mX2lubGluZV9zZWdtZW50KToKKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfaW1wbCk6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlKToKKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfdG9ybik6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfd2F0Y2hfZmlyc3RfZWxpZ2libGUp
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGFfZ2V0X2ZpcnN0X2VsaWdp
YmxlX3B0cik6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNf
dGFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkX3RvX3Rha2VfZmlyc3RfZWxpZ2libGUp
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9r
aW5kLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZF9nZXRfc3RyaW5n
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldy5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY3JlYXRlKToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZW1wdGluZXNzKToK
KyAgICAgICAgKGNvbXB1dGVfc3VtbWFyeV9pbXBsKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X2NvbXB1dGVfc3VtbWFyeSk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19pbnN0YWxsX2Z1bGxfdXNlX2NvdW50cyk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pc19lbGlnaWJsZSk6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19pc19lbXB0eSk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19zaG91bGRfdGFibGUpOiBEZWxldGVkLgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3X25vdGVfZWxpZ2liaWxpdHlfaW1wbCk6IERlbGV0
ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VsaWdpYmls
aXR5KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmll
d19jb21wdXRlX3N1bW1hcnlfaW1wbCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmg6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19kaWRfc3RhcnRfYWxsb2NhdGluZyk6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19kaWRfc3RvcF9hbGxvY2F0
aW5nKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2li
aWxpdHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3X2RpZF9z
dGFydF9hbGxvY2F0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeS5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
Lmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
aGVhcC5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jb25zdHJ1Y3QpOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KToK
KyAgICAgICAgKGVuc3VyZV9jb3VudF9sb29rdXApOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZGV4KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hl
YXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCk6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KToKKyAgICAgICAgKGZvcl9lYWNoX2Nv
bW1pdHRlZF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9oZWFwX2Zvcl9lYWNoX2NvbW1pdHRlZF92aWV3KToKKyAgICAgICAgKGZvcl9lYWNoX3ZpZXdf
aW5kZXhfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBf
Zm9yX2VhY2hfdmlld19pbmRleCk6CisgICAgICAgIChmb3JfZWFjaF9saXZlX29iamVjdF9vYmpl
Y3RfY2FsbGJhY2spOgorICAgICAgICAoZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGlyZWN0b3J5X2Nh
bGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfbGl2ZV9vYmpl
Y3QpOgorICAgICAgICAobnVtX2NvbW1pdHRlZF92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2spOgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fY29tbWl0dGVkX3ZpZXdzKToKKyAgICAg
ICAgKG51bV9lbXB0eV92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9udW1fZW1wdHlfdmlld3MpOgorICAgICAgICAobnVtX2VtcHR5X2dyYW51
bGVzX2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX251
bV9lbXB0eV9ncmFudWxlcyk6CisgICAgICAgIChudW1fdmlld3NfZGlyZWN0b3J5X2NhbGxiYWNr
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfbnVtX3ZpZXdzKToKKyAgICAgICAgKGNv
bXB1dGVfc3VtbWFyeV9kaXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9jb21wdXRlX3N1bW1hcnkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9m
b3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuaDoKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX2hlYXBfc2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmM6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfd2hpbGVfaW5lbGlnaWJsZV9pbXBsKToKKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29tbWl0X2Z1bGx5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vf
c3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19tYWdhemluZV93aGlsZV9pbmVsaWdpYmxlX2ltcGwp
OiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Bh
Z2UuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1p
dCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19pbmxpbmVzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdXRpbHMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmg6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3Vu
dHMpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19pbXBsKToKKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9tb2RlKToKKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc193aGlsZV9pbmVs
aWdpYmxlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3Bh
Z2UpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2RpcmVjdG9yeV9mb3JfYWRkcmVzc19pbl9wYWdlKToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X29iamVjdF9zaXplX2Zvcl9hZGRyZXNz
X2luX3BhZ2UpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRf
cmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2luZWxpZ2libGUpOiBEZWxldGVkLgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYzoK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jcmVhdGUpOgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X25vdGVfZWxpZ2liaWxpdHkpOgorICAgICAgICAo
Y29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19p
c19lbGlnaWJsZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
cGFydGlhbF92aWV3Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfcGFnZV9kaXJlY3RvcnlfZmluZF9maXJzdF9lbGlnaWJsZSk6CisgICAgICAgICh0YWtlX2xh
c3RfZW1wdHlfY29uc2lkZXJfdmlldyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5Lmg6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYzoKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9maW5pc2hfY3JlYXRpb24pOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZW5zdXJlX2RhdGEpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19hbGxvY2F0b3IpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY192aWV3X2NhY2hlKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2VuYWJsZV9leGNsdXNpdmVfdmlld3MpOgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9z
bG93KToKKyAgICAgICAgKHRha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0X2NyZWF0ZV9uZXdfdmll
d19jYWxsYmFjayk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtl
X2ZpcnN0X2VsaWdpYmxlKToKKyAgICAgICAgKHRha2VfbGFzdF9lbXB0eV9zaG91bGRfY29uc2lk
ZXJfdmlld19wYXJhbGxlbCk6CisgICAgICAgICh0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmll
dyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1w
dHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCk6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zy
b21fdGxjKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NvbXB1dGVf
c3VtbWFyeV9mb3JfdW5vd25lZF9leGNsdXNpdmUpOgorICAgICAgICAoZm9yX2VhY2hfbGl2ZV9v
YmplY3Rfb2JqZWN0X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3ZpZXdfY2FjaGVfY2FwYWNpdHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemUpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtKToKKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NvbnN0cnVjdCk6IERlbGV0ZWQuCisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnku
aDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FzX3ZpZXcpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RpZF90cnlfdG9fY3JlYXRlX3ZpZXdfY2Fj
aGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X2RpZF90cnlf
dG9fY3JlYXRlX3ZpZXdfY2FjaGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfaGFzX3RsY19hbGxvY2F0b3IpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmg6
IEFkZGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25f
bW9kZV9nZXRfc3RyaW5nKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9udWxsX2NvbmZpZyk6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6
ZV9mb3JfY29uZmlnKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X251
bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxsb2NhdG9yX3NpemUpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9jb25maWcp
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGln
aWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsKToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbCk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2lt
cGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfbm90X3RhYmxlZF9wYXJhbGxlbCk6IERlbGV0ZWQuCisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxl
X2ltcGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfdGFibGVkX3BhcmFsbGVsKTogRGVsZXRlZC4KKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9nbG9iYWwpOiBEZWxldGVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuYzoKKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5X3Nsb3cpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9jb25maWdfa2luZCk6CisgICAgICAg
IChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9pbmRleCk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9wYWdlX2JvdW5kYXJ5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X2NvbW1pdF9sb2NrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X293bmVy
c2hpcF9sb2NrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfb3duZWQpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19pZl9vd25l
ZF9jb25kaXRpb25hbGx5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfbm90ZV9lbXB0
aW5lc3MpOgorICAgICAgICAoZm9yX2VhY2hfbGl2ZV9vYmplY3QpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19mb3JfZWFjaF9saXZlX29iamVjdCk6CisgICAgICAgIChzaG91bGRfYmVf
ZWxpZ2libGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19zaG91bGRfYmVfZWxpZ2li
bGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19lbXB0eSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9k
aXJlY3Rvcnlfc2xvdyk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X3No
b3VsZF9yZXN0YXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfY291
bGRfYnVtcCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZF90
YWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9l
eGNsdXNpdmUpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19ub3RlX2Vs
aWdpYmlsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxp
Z2libGVfb3JfYmlhc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfZW1wdHlfb3JfYmlhc2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF92aWV3Lmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lz
X3NvbWVfZXhjbHVzaXZlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfaW5lbGln
aWJsZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2FzX2VsaWdpYmxlKToKKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSk6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX3NpemVfZGlyZWN0b3J5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfZXhjbHVzaXZlX2lzaCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3
X2lzX2JpYXNpbmcpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19p
bmVsaWdpYmxlX2JpYXNpbmcpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19zb21lX2JpYXNpbmcpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfYmlhc2luZyk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lz
X2VsaWdpYmxlX2tpbmQpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19pbmVsaWdpYmxlX2tpbmQpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19nbG9iYWxfc2l6ZV9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVz
Lmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X3dpbGxfc3RhcnRfYWxsb2NhdGluZyk6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdf
a2luZC5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9jaGFyYWN0ZXJf
Y29kZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfZ2V0X3N0cmluZyk6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfc29tZV9leGNsdXNpdmUpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2Nhbl9iZWNvbWVfZW1wdHkpOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2VsaWdpYmxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19leGNsdXNpdmVfaXNoKTogRGVsZXRlZC4K
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19pbmVsaWdpYmxlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmM6Cisg
ICAgICAgIChyZXBvcnRfYml0Zml0X2RpcmVjdG9yeV9jb250ZW50cyk6CisgICAgICAgIChwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2RpcmVjdG9yeSk6CisgICAgICAgIChyZXBvcnRf
c2VncmVnYXRlZF9kaXJlY3RvcnlfY29udGVudHMpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBv
cnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkpOgorICAgICAgICAoZHVtcF9zZWdy
ZWdhdGVkX2hlYXBfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zdGF0dXNfcmVw
b3J0ZXJfZHVtcF9iaXRmaXRfaGVhcCk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1
bXBfc2VncmVnYXRlZF9oZWFwKToKKyAgICAgICAgKHRvdGFsX2ZyYWdtZW50YXRpb25fc2l6ZV9k
aXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAgICAodG90YWxfZnJhZ21lbnRhdGlvbl9oZWFwX2Nh
bGxiYWNrKToKKyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90b3RhbF9mcmFnbWVu
dGF0aW9uKToKKyAgICAgICAgKHRpZXJfdXBfcmF0ZV9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayk6
CisgICAgICAgICh0aWVyX3VwX3JhdGVfaGVhcF9jYWxsYmFjayk6CisgICAgICAgIChwYXNfc3Rh
dHVzX3JlcG9ydGVyX2R1bXBfYmFzZWxpbmVfYWxsb2NhdG9ycyk6CisgICAgICAgIChwYXNfc3Rh
dHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvY2FsX2NhY2hlcyk6CisgICAgICAgIChwYXNfc3Rh
dHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KTogRGVsZXRlZC4KKyAg
ICAgICAgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSk6
IERlbGV0ZWQuCisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVy
X2R1bXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAg
ICAodG90YWxfZnJhZ21lbnRhdGlvbl9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2spOiBE
ZWxldGVkLgorICAgICAgICAodGllcl91cF9yYXRlX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxs
YmFjayk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19y
ZXBvcnRlci5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5j
OiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5o
OiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9l
bnRyeS5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdl
X21hcF9lbnRyeS5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190
aHJlYWRfbG9jYWxfY2FjaGUuYzoKKyAgICAgICAgKGRlYWxsb2NhdGUpOgorICAgICAgICAocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9jcmVhdGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX3Nsb3cpOgorICAgICAgICAocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnMpOgorICAgICAgICAoc3RvcF9sb2NhbF9hbGxv
Y2F0b3JzX2lmX25lY2Vzc2FyeV9zZXRfYml0X2NhbGxiYWNrKToKKyAgICAgICAgKHByb2Nlc3Nf
ZGVhbGxvY2F0aW9uX2xvZ193aXRoX2NvbmZpZyk6CisgICAgICAgIChmbHVzaF9kZWFsbG9jYXRp
b25fbG9nKToKKyAgICAgICAgKGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZm9yX3NjYXZlbmdlcik6
CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2cp
OgorICAgICAgICAocmVzdW1lKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9y
X2FsbCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZS5oOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9y
X2ltcGwpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2Nh
dG9yKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dC5jOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX25v
ZGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkKToKKyAgICAg
ICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2R1cGxpY2F0ZSk6CisgICAgICAgIChw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfdmlld19jYWNoZSk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaDoKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
LmM6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJl
Y3RvcnkpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9j
YXRvcl9pbmRpY2VzKToKKyAgICAgICAgKGFsbG9jYXRvcl9pbmRleF9wdHIpOgorICAgICAgICAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dl
bmVyaWMpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRf
YWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IpOgorICAgICAgICAocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl92aWV3X2NhY2hlKToK
KyAgICAgICAgKG5leHRfcHRyKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfc2V0X25leHQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9jb25zdHJ1Y3QpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9tb3ZlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfc3RvcCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dl
dF9hbGxvY2F0b3JfaW5kZXgpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaDoKKyAgICAgICAgKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X3B0cik6CisgICAgICAgIChwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9raW5kKToKKyAgICAgICAgKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY3JlYXRlKToKKyAgICAgICAgKHBhc193cmFwX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkpOgorICAgICAgICAocGFzX3dyYXBfcmVkdW5kYW50X2xvY2Fs
X2FsbG9jYXRvcl9ub2RlKToKKyAgICAgICAgKHBhc193cmFwX2xvY2FsX3ZpZXdfY2FjaGVfbm9k
ZSk6CisgICAgICAgIChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KToK
KyAgICAgICAgKHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSk6
CisgICAgICAgIChwYXNfaXNfd3JhcHBlZF9sb2NhbF92aWV3X2NhY2hlX25vZGUpOgorICAgICAg
ICAocGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KToKKyAgICAgICAgKHBhc191
bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKToKKyAgICAgICAgKHBhc191bndy
YXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3IpOgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX3ZpZXdfY2FjaGUpOgorICAgICAg
ICAocGFzX3dyYXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkpOiBEZWxldGVkLgor
ICAgICAgICAocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkp
OiBEZWxldGVkLgorICAgICAgICAocGFzX3Vud3JhcF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmg6IEFkZGVkLgorICAgICAgICAocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kX2dldF9zdHJpbmcpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jOgorICAgICAg
ICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlX2FsbG9jYXRlKToKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaDoKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmg6CisgICAgICAgIChwYXNfdHJ5X2Fs
bG9jYXRlX2ltcGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2Nh
dGVfYXJyYXkuaDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfYXJyYXlfaW1wbCk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24uaDoKKyAgICAg
ICAgKHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfZmFzdF9pbmxpbmVfb25seSk6CisgICAg
ICAgIChwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX2Zhc3QpOgorICAgICAgICAocGFzX3Ry
eV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KToKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVf
Y29tbW9uX2ltcGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2Nh
dGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWNfcHJpbWl0aXZlX2ltcGxfbWVkaXVtX3Nsb3dfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5
X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1wbF9pbmxpbmVfb25seSk6CisgICAgICAg
IChwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1wbCk6IERlbGV0ZWQuCisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaDoK
KyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5oOgorICAgICAgICAocGFzX3RyeV9h
bGxvY2F0ZV9mb3JfcmVhbGxvY2F0ZV9hbmRfY29weSk6CisgICAgICAgIChwYXNfdHJ5X3JlYWxs
b2NhdGVfdGFibGVfc2VncmVnYXRlZF9jYXNlKToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0
ZV90YWJsZV9iaXRmaXRfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5X3JlYWxsb2NhdGUpOgorICAg
ICAgICAocGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZV9hbGxvY2F0ZV9jYWxsYmFjayk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0Lmg6
CisgICAgICAgIChwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0KToKKyAgICAgICAgKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVh
dGVfd2l0aF9pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQpOgorICAgICAgICAocGFzX3R5cGVk
X2FsbG9jYXRpb25fcmVzdWx0X3plcm8pOgorICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0X3NldF9lcnJubyk6CisgICAgICAgIChwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRf
Y3Jhc2hfb25fZXJyb3IpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5
X2hlYXAuYzoKKyAgICAgICAgKHBhc191dGlsaXR5X2hlYXBfZGVhbGxvY2F0ZSk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmg6CisgICAgICAgIChwYXNfdXRp
bGl0eV9oZWFwX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3Rvcik6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0Lmg6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmg6CisgICAgICAgIChwYXNfcm91bmRfdXBfdG9fbmV4
dF9wb3dlcl9vZl8yKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcC5j
OgorICAgICAgICAodGhpbmd5X3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUpOgorICAgICAgICAodGhp
bmd5X3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfemVyb2VkKToKKyAgICAgICAgKHRoaW5neV90cnlf
YWxsb2NhdGVfcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50KToKKyAgICAgICAgKHRoaW5neV90cnlf
cmVhbGxvY2F0ZV9wcmltaXRpdmUpOgorICAgICAgICAodGhpbmd5X3V0aWxpdHlfaGVhcF9hbGxv
Y2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmM6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmg6CisgICAg
ICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcDoKKyAgICAgICAgKHN0
ZDo6dGVzdEFsbG9jYXRpb25DaGFvcyk6CisgICAgICAgIChzdGQ6OmFkZFRoZVRlc3RzKToKKyAg
ICAgICAgKHN0ZDo6YWRkU3BvdFRlc3RzKToKKyAgICAgICAgKGFkZElzb0hlYXBDaGFvc1Rlc3Rz
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3Bw
OgorICAgICAgICAoc3RkOjp0ZXN0VGFrZVBhZ2VzKToKKyAgICAgICAgKHN0ZDo6dGVzdFRha2VQ
YWdlc0Zyb21Db3JyZWN0SGVhcCk6CisgICAgICAgIChzdGQ6OmFsbG9jYXRlVGhpbmdpZXNJbXBs
KToKKyAgICAgICAgKGFkZElzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzKToKKyAgICAgICAgKiBsaWJw
YXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcDoKKyAgICAgICAg
KHN0ZDo6dGVzdFNpbXBsZVBhcnRpYWxBbGxvY2F0aW9ucyk6CisgICAgICAgIChzdGQ6OnRlc3RN
dWx0aXBsZVBhcnRpYWxzRnJvbURpZmZlcmVudFRocmVhZHNQZXJTaGFyZWQpOgorICAgICAgICAo
c3RkOjphZGRTY2F2ZW5nZXJEZXBlbmRlbnRUZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90
ZXN0L0lzb0hlYXBUYWJsaW5nVGVzdHMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9z
cmMvdGVzdC9SYWNlVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjp0ZXN0TG9jYWxBbGxvY2F0b3JT
dG9wUmFjZSk6CisgICAgICAgIChzdGQ6OnRlc3RMb2NhbEFsbG9jYXRvclN0b3BSYWNlQWdhaW5z
dFNjYXZlbmdlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwOgor
ICAgICAgICAobWFpbik6CisgICAgICAgIChEaXNhYmxlRXhwbG9zaW9uOjpEaXNhYmxlRXhwbG9z
aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEZvcmNlRXhwbG9zaW9uOjpGb3JjZUV4cGxvc2lvbik6
IERlbGV0ZWQuCisgICAgICAgIChGb3JjZU9uZU1hZ2F6aW5lOjpGb3JjZU9uZU1hZ2F6aW5lKTog
RGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuaDoKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMu
Y3BwOgorICAgICAgICAoc3RkOjpzaXplQ2xhc3NGb3IpOgorICAgICAgICAoc3RkOjpmb3JFYWNo
Q29tbWl0dGVkVmlld0FkYXB0ZXIpOgorICAgICAgICAoc3RkOjp2ZXJpZnlIZWFwRW1wdHkpOgor
ICAgICAgICAoc3RkOjp0ZXN0SW50ZXJuYWxTY2F2ZW5nZUZyb21Db3JyZWN0RGlyZWN0b3J5KToK
KyAgICAgICAgKHN0ZDo6dGVzdFNpemVDbGFzc0NyZWF0aW9uSW1wbCk6CisgICAgICAgIChzdGQ6
OnRlc3RTcHVyaW91c0VsaWdpYmlsaXR5KToKKyAgICAgICAgKHN0ZDo6dGVzdENvbXBsZXhMYXJn
ZUFsbG9jYXRpb25JbXBsKToKKyAgICAgICAgKHN0ZDo6YWRkQWxsVGVzdHMpOgorICAgICAgICAo
YWRkVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMpOgorCiAyMDIxLTA5LTAyICBN
YXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbW9yZSBzdXBwb3J0
IGZvciBKSVQgb3BlcmF0aW9uIHZhbGlkYXRpb24gdGVzdGluZy4KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMzEsOCArMzEsNiBAQAogCQkwRjE4Rjg0QzI1QzM0Njc3MDA3
MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYxOEY4NDMyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRr
X2hlYXAuaCAqLzsgfTsKIAkJMEYxOEY4NEQyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJf
aGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGMThGODQ0MjVDMzQ2NzcwMDcyMUMyQSAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmMg
Ki87IH07CiAJCTBGMThGODU4MjVDMzQ3RjMwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF92aWV3
X2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjE4Rjg1NzI1QzM0N0YzMDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfdmll
d19hbGxvY2F0b3JfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTBGMUFFQ0VDMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYx
QUVDRUEyNjU4MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEYxQUVDRUQyNjU4MUI1RTAw
MEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFBRUNFQjI2NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9t
YWdhemluZXMuYyAqLzsgfTsKIAkJMEYxQkZENDcyNjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19oZWFw
X2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYxQkZENDUyNjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jICovOyB9OwogCQkw
RjFCRkQ0ODI2NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMUJGRDQ2MjY2NDVBQzcw
MENFQzI4RCAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oICovOyB9OwogCQkwRjI2QTdBNTIwNTQ4
MzEzMDA5MEExNDEgLyogUGVyUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI2QTdBNDIwNTQ4MzBEMDA5MEExNDEgLyogUGVyUHJvY2Vz
cy5jcHAgKi87IH07CkBAIC02Myw3ICs2MSw2IEBACiAJCTBGNUZFN0RGMjVCNjIxMEQwMDE4NTlG
QyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGRTdDQTI1QjYyMTBDMDAx
ODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUZFN0UwMjVC
NjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1RkU3Q0IyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY1RkU3RTEyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY1RkU3Q0MyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGNUZFN0UzMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNf
Y29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUZFN0NFMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfY29t
cGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVGRTdFNDI1QjYyMTBEMDAxODU5RkMgLyogcGFzX3No
YXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjVGRTdDRjI1QjYyMTBDMDAxODU5RkMgLyog
cGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RkU3RTYyNUI2MjEwRDAw
MTg1OUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RkU3RDEyNUI2MjEwQzAwMTg1OUZD
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZpZy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUZFN0U3MjVCNjIxMEQwMDE4NTlGQyAv
KiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RkU3RDIyNUI2MjEw
QzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Nf
cHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTgwLDYgKzc3LDIyIEBACiAJCTBGNzRCOTNGMUY4OTcxM0UwMEI5MzVEMyAvKiBDcnlwdG9SYW5k
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3
NEI5M0QxRjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1JhbmRvbS5jcHAgKi87IH07CiAJCTBGNzU0
OTgyMjQ4Njk3NDAwMDJBNEM3RCAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc1NDk4MDI0ODY5NzNDMDAyQTRD
N0QgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTBGNzU0OTgzMjQ4Njk3NDIwMDJBNEM3RCAvKiBwYXNfY29t
cGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NTQ5ODEyNDg2OTczQzAwMkE0QzdEIC8qIHBhc19j
b21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRTIyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkQyMjZFNTdGNzQwMDZBRjAxMiAv
KiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRTMyNkU1N0Y3NTAwNkFG
MDEyIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJEMzI2RTU3Rjc0
MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJF
NDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDQy
NkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJF
NTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkQ1MjZF
NTdGNzQwMDZBRjAxMiAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGN0M5MkU2MjZF
NTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDYyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19sb2NhbF92aWV3X2NhY2hlLmMgKi87IH07CisJCTBGN0M5MkU3MjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkQ3MjZF
NTdGNzUwMDZBRjAxMiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkwRjdDOTJFODI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjdDOTJEODI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9raW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRTkyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjdDOTJEOTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyAq
LzsgfTsKKwkJMEY3QzkyRUEyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGN0M5MkRBMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhLmMgKi87IH07CisJCTBGN0M5MkVCMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyREIyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRUMyNkU1N0Y3NTAw
NkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkRDMjZFNTdGNzUwMDZBRjAxMiAvKiBw
YXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggKi87IH07CisJCTBGN0M5MkVEMjZFNTdGNzUwMDZB
RjAxMiAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJERDI2RTU3
Rjc1MDA2QUYwMTIgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9k
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBG
N0M5MkVFMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyREUyNkU1N0Y3NTAw
NkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRUYyNkU1N0Y3NTAwNkFGMDEyIC8qIHBh
c19sb2NrX2ZyZWVfcmVhZF9oYXNodGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkRGMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9ja19m
cmVlX3JlYWRfaGFzaHRhYmxlLmggKi87IH07CisJCTBGN0M5MkYwMjZFNTdGNzUwMDZBRjAxMiAv
KiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkUwMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxf
YWxsb2NhdG9yX2tpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkwRjdDOTJGMTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY3QzkyRTEyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyAq
LzsgfTsKIAkJMEY3RUI4MjMxRjk1NDFCMDAwRjFBQkNCIC8qIEVsaWdpYmlsaXR5UmVzdWx0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdFQjdGQzFG
OTU0MUFEMDBGMUFCQ0IgLyogRWxpZ2liaWxpdHlSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdFQjgyNDFGOTU0MUIwMDBGMUFCQ0Ig
LyogSXNvSGVhcEltcGxJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjdFQjdGRDFGOTU0MUFEMDBGMUFCQ0IgLyogSXNvSGVhcEltcGxJbmxp
bmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEY3RUI4MjUxRjk1NDFCMDAwRjFBQkNCIC8qIERlZmVycmVkVHJpZ2dlcklubGluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0VCN0ZFMUY5NTQx
QUQwMEYxQUJDQiAvKiBEZWZlcnJlZFRyaWdnZXJJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyOCw3ICsxNDEsNiBAQAogCQkwRjg3
MDAwMjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkNDMjVBRjg5
N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODcwMDAzMjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQ0QyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRm
aXRfYWxsb2NhdG9yLmMgKi87IH07CiAJCTBGODcwMDA0MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
YmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZDRTI1QUY4OTdDMDAwRTFBQkYgLyogcGFz
X2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODcwMDA1MjVBRjg5N0MwMDBFMUFCRiAv
KiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkNGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxs
X2JpYXNpbmdfZGlyZWN0b3JpZXMuYyAqLzsgfTsKIAkJMEY4NzAwMDYyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZEMDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Vu
dW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyAqLzsgfTsKIAkJMEY4NzAwMDcyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfcGFnZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY4N0ZGRDEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5j
ICovOyB9OwogCQkwRjg3MDAwODI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3X2Fu
ZF9pbmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY4N0ZGRDIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTg5LDEw
ICsyMDEsNiBAQAogCQkwRjg3MDA3RDI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9j
b25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
ODcwMDYwMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODcwMDdFMjVBRjhB
MUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMDYxMjVBRjhBMUIwMDBFMUFCRiAvKiBw
YXNfcGFnZV9oZWFkZXJfdGFibGUuYyAqLzsgfTsKIAkJMEY4NzAwN0YyNUFGOEExQjAwMEUxQUJG
IC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDA2MjI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQkwRjg3MDA4ODI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2Vf
bWFwX2VudHJ5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjg3MDA4MzI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi87
IH07Ci0JCTBGODcwMDg5MjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMDg0MjVBRjk0
NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjg3MDA4QTI1QUY5NDYyMDAwRTFBQkYgLyogcGFz
X3N1YnBhZ2VfbWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjg3MDA4NTI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwLmMgKi87IH07
Ci0JCTBGODcwMDhCMjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMDg2MjVB
Rjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3MDA4QzI1QUY5NDYyMDAwRTFB
QkYgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwODcyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc192ZXJzaW9u
ZWRfZmllbGQuYyAqLzsgfTsKIAkJMEY4NzAwQ0YyNUIwQ0IwMzAwMEUxQUJGIC8qIHRoaW5neV9o
ZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3
MDBDQTI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3MDBEMDI1QjBDQjAzMDAwRTFBQkYg
LyogdGhpbmd5X2hlYXBfcHJlZml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjg3MDBDQjI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfcHJl
Zml4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAg
LTIwMCwzNSArMjA4LDIyIEBACiAJCTBGODcwMEQyMjVCMENCMDMwMDBFMUFCRiAvKiB0aGluZ3lf
aGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGODcwMENEMjVCMENCMDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9jb25maWcuYyAqLzsg
fTsKIAkJMEY4NzAwRDMyNUIwQ0IwMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDBDRTI1QjBDQjAzMDAw
RTFBQkYgLyogdGhpbmd5X2hlYXAuYyAqLzsgfTsKIAkJMEY4N0ZGRDgyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBMTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZp
dF9wYWdlX2lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkwRjg3RkZEOTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxf
c2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4N0ZGQTIyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xh
c3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
Rjg3RkZEQTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2NvbW1pdF9zcGFuLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBMzI1QUY4OTc5MDAwRTFB
QkYgLyogcGFzX2NvbW1pdF9zcGFuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGREIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY4N0ZGQTQyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWdfdmFyaWFudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGODdGRkRDMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkE1MjVB
Rjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjg3RkZERDI1QUY4OTdDMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBNjI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGREUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGODdGRkE3MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2JpYXNp
bmdfZGlyZWN0b3J5LmMgKi87IH07CiAJCTBGODdGRkRGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Y29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBODI1QUY4OTdBMDAwRTFBQkYgLyog
cGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkUwMjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBOTI1QUY4OTdBMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jICovOyB9OwogCQkwRjg3RkZFMjI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQUIyNUFGODk3QTAwMEUx
QUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZFMzI1QUY4OTdDMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBQzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZp
dF9zaXplX2NsYXNzLmMgKi87IH07CiAJCTBGODdGRkU0MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGODdGRkFEMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmQuYyAqLzsgfTsKIAkJMEY4N0ZGRTUyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjg3RkZBRTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkw
Rjg3RkZFNjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBRjI1QUY4OTdB
MDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi87IH07CiAJCTBGODdGRkU3MjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCMDI1QUY4OTdBMDAwRTFB
QkYgLyogcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5jICovOyB9OwotCQkwRjg3RkZFODI1QUY4
OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkIxMjVBRjg5N0EwMDBF
MUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkU5MjVBRjg5N0MwMDBFMUFC
RiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkIzMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2lu
Z19kaXJlY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjg3RkZFQTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZC
NDI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGRUIyNUFGODk3QzAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkI1MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGRUMyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVf
Yml0Zml0X2hlYXBzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjg3RkZCNjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVh
cHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
Rjg3RkZFRDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQjcy
NUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjg3RkZFRTI1QUY4
OTdDMDAwRTFBQkYgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCODI1QUY4OTdCMDAwRTFBQkYgLyog
cGFzX2FsbG9jYXRpb25fcmVzdWx0LmMgKi87IH07CiAJCTBGODdGRkVGMjVBRjg5N0MwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCOTI1QUY4OTdCMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkYwMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjg3RkZCQTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGODdGRkYxMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRv
cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjg3RkZCQjI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5l
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBG
ODdGRkYyMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkJDMjVB
Rjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZGMzI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCRDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZp
dF9oZWFwLmMgKi87IH07Ci0JCTBGODdGRkY0MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjg3RkZCRTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
a2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTBGODdGRkY1MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnku
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkJG
MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyAqLzsgfTsK
LQkJMEY4N0ZGRjYyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZG
QzAyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkY3MjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkMxMjVBRjg5N0IwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZGODI1QUY4OTdDMDAwRTFBQkYg
LyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGODdGRkMyMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2Rp
cmVjdG9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGODdGRkY5MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91
bmFjY291bnRlZF9wYWdlcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY4N0ZGQzMyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfaW5pdGlh
bGx5X3VuYWNjb3VudGVkX3BhZ2VzLmMgKi87IH07CkBAIC0yNTEsMjUgKzI0NiwxMSBAQAogCQkw
RjhBODEzNDI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhBODEyNTI1RjgzRTI0MDA3OTBCNEEg
LyogYm1hbGxvY19oZWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY4QTgxMzUyNUY4M0UyNTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhBODEyNjI1Rjgz
RTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCAqLzsgfTsKIAkJMEY4QTgxMzYyNUY4M0UyNTAw
NzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY4QTgxMjcyNUY4M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5j
ICovOyB9OwotCQkwRjhBODEzNzI1RjgzRTI1MDA3OTBCNEEgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9saW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjhBODEyODI1RjgzRTI1MDA3OTBCNEEgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4QTgxMzgy
NUY4M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEE4MTI5MjVGODNFMjUwMDc5MEI0QSAv
KiBibWFsbG9jX2hlYXBfY29uZmlnLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NjAyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19tYWdhemlu
ZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4
NEIyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19tYWdhemluZS5jICovOyB9OwogCQkwRjhFNzg2MTI0
Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4
NEMyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9v
bF9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjhFNzg2MjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODREMjQ3
ODczOTQwMEUxMjRBNiAvKiBwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOEU3ODYzMjQ3ODczOTUwMEUx
MjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODRF
MjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQkwRjhFNzg2NDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NEYyNDc4NzM5NDAwRTEyNEE2IC8qIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhFNzg2
NjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1MTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFz
X21hZ2F6aW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJMEY4RTc4NjcyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlldy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4
RTc4NTIyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jICov
OyB9OwotCQkwRjhFNzg2OTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOEU3ODU0MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODZBMjQ3ODczOTUwMEUxMjRBNiAvKiBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODU1MjQ3ODczOTUwMEUxMjRBNiAvKiBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYyAqLzsgfTsKLQkJMEY4RTc4NkIy
NDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4RTc4NTYyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODZDMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY4RTc4NTcyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY4RTc4NkQyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1ODI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhFNzg2RTI0Nzg3Mzk1MDBFMTI0
QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1OTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NzAyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1QjI0Nzg3Mzk1MDBFMTI0QTYgLyog
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhFNzg3MTI0Nzg3Mzk1
MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODVDMjQ3ODczOTUwMEUx
MjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jICovOyB9OwotCQkwRjhF
Nzg3MjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhF
Nzg1RDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJ
MEY4RTc4NzMyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NUUy
NDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOEU4MzJDMjQ5MkVB
RjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTgzMjQyNDkyRUFGMzAwNDZE
N0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4RTgzMkQyNDkyRUFGMzAwNDZEN0Y4
IC8qIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU4MzI1MjQ5
MkVBRjMwMDQ2RDdGOCAvKiBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEY4RTgzMkUyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNp
Y19oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjhFODMyNjI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAu
YyAqLzsgfTsKQEAgLTUyMiw3ICs1MDMsNiBAQAogCQkwRkM0MEI4RDI0NTE0OTk0MDA4NzZEQTAg
LyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUIyMjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc2lt
cGxlX2xhcmdlX2ZyZWVfaGVhcC5jICovOyB9OwogCQkwRkM0MEI4RjI0NTE0OTk0MDA4NzZEQTAg
LyogcGFzX2ZvdW5kX2luZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkM0MEFCNDI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2ZvdW5kX2luZGV4Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBC
OTAyNDUxNDk5NDAwODc2REEwIC8qIHBhc19oZWFwX3JlZl9raW5kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFCNTI0NTE0OThGMDA4NzZEQTAg
LyogcGFzX2hlYXBfcmVmX2tpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQkwRkM0MEI5MjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZDNDBBQjcyNDUxNDk4RjAwODc2REEwIC8qIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQkwRkM0MEI5MzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZWZpbGxfbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZDNDBBQjgyNDUxNDk4RjAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVm
aWxsX21vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRkM0MEI5NDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0cmVhbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBQjkyNDUxNDk4RjAwODc2
REEwIC8qIHBhc19zdHJlYW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRkM0MEI5NTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2hlYXBfcGFnZV9w
cm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZDNDBBQkEyNDUxNDk4RjAwODc2REEwIC8qIHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjk5LDggKzY3
OSw2IEBACiAJCTBGMThGODQzMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhZ2VzaXplNjRrX2hlYXAuaDsgcGF0
aCA9IGxpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYxOEY4NDQyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVh
cF9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gbWluYWxpZ24zMl9o
ZWFwX2NvbmZpZy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2Nv
bmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE4Rjg1NzI1QzM0N0YzMDA3
MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9p
bmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2Fs
bG9jYXRvcl9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMUFFQ0VB
MjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBwYXNfYWxsX21hZ2F6aW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2FsbF9tYWdhemluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEYxQUVDRUIyNjU4MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19hbGxfbWFnYXppbmVzLmM7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfYWxsX21hZ2F6aW5lcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjFCRkQ0NTI2NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19oZWFwX2NvbmZpZy5jOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGMUJGRDQ2MjY2NDVBQzcwMENFQzI4RCAvKiBwYXNfYWxsX2hlYXBfY29uZmln
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYWxsX2hlYXBfY29uZmln
cy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYyNkE3QTQyMDU0ODMwRDAwOTBBMTQxIC8qIFBl
clByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGVyUHJv
Y2Vzcy5jcHA7IHBhdGggPSBibWFsbG9jL1BlclByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNzMwLDcgKzcwOCw2IEBACiAJCTBGNUZFN0NBMjVCNjIxMEMwMDE4NTlG
QyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9j
bGFzc19wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19i
aXRmaXRfc2l6ZV9jbGFzc19wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1
RkU3Q0IyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5
X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVGRTdDQzI1QjYyMTBDMDAx
ODU5RkMgLyogcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
NUZFN0NFMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9w
dHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rfc3VicGFn
ZV9tYXBfZW50cnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9z
dWJwYWdlX21hcF9lbnRyeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1
RkU3Q0YyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRh
cnlfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2hhcmVk
X2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVGRTdEMTI1QjYyMTBDMDAxODU5RkMgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZpZy5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGNUZFN0QyMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0
ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9n
bG9iYWxfc2l6ZV9jbGFzc19wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc0
Nyw2ICs3MjQsMjIgQEAKIAkJMEY3NEI5M0QxRjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1JhbmRv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDcnlwdG9SYW5kb20u
Y3BwOyBwYXRoID0gYm1hbGxvYy9DcnlwdG9SYW5kb20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjc1NDk4MDI0ODY5NzNDMDAyQTRDN0QgLyogcGFzX2FsbG9jYXRvcl9pbmRl
eC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYWxsb2NhdG9yX2luZGV4
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdG9yX2luZGV4Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNzU0OTgxMjQ4Njk3M0MwMDJBNEM3RCAvKiBwYXNf
Y29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRl
eF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRDIyNkU1N0Y3NDAw
NkFGMDEyIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdl
X3Jlc3VsdC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3NjYXZlbmdlX3Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJE
MzI2RTU3Rjc0MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGN0M5MkQ0MjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxs
b2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaDsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRDUyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19zZWdyZWdh
dGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkwRjdDOTJENjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdf
Y2FjaGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2xvY2FsX3ZpZXdf
Y2FjaGUuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkQ3MjZFNTdGNzUwMDZBRjAxMiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRDgyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2lu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJEOTI2RTU3Rjc1MDA2QUYw
MTIgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBuYW1lID0gcGFzX2hlYXBfcnVudGltZV9jb25maWcuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwX3J1bnRpbWVfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGN0M5MkRBMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY3QzkyREIyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJEQzI2RTU3Rjc1MDA2QUYwMTIgLyog
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGN0M5MkREMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jcmVhdGlvbl9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyREUyNkU1N0Y3NTAwNkFGMDEy
IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19sb2NhbF92aWV3X2NhY2hlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfdmlld19jYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJE
RjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxl
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkUwMjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY3QzkyRTEyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25v
ZGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjdFQjdGQzFGOTU0MUFEMDBG
MUFCQ0IgLyogRWxpZ2liaWxpdHlSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gRWxpZ2liaWxpdHlSZXN1bHQuaDsgcGF0aCA9IGJtYWxsb2MvRWxpZ2liaWxpdHlSZXN1
bHQuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQkwRjdFQjdGRDFGOTU0MUFEMDBG
MUFCQ0IgLyogSXNvSGVhcEltcGxJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IElzb0hlYXBJbXBsSW5saW5lcy5oOyBwYXRoID0gYm1hbGxvYy9Jc29IZWFwSW1wbElu
bGluZXMuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQkwRjdFQjdGRTFGOTU0MUFE
MDBGMUFCQ0IgLyogRGVmZXJyZWRUcmlnZ2VySW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBEZWZlcnJlZFRyaWdnZXJJbmxpbmVzLmg7IHBhdGggPSBibWFsbG9jL0Rl
ZmVycmVkVHJpZ2dlcklubGluZXMuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAt
ODQzLDEwICs4MzYsNiBAQAogCQkwRjg3MDA2MDI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2Vf
YmFzZV9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3BhZ2Vf
YmFzZV9jb25maWcuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29u
ZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODcwMDYxMjVBRjhBMUIwMDBF
MUFCRiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBuYW1lID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4NzAwNjIyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19wYWdlX2dyYW51bGVfdXNlX2Nv
dW50Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9ncmFudWxlX3VzZV9jb3Vu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3MDA4MzI1QUY5NDYxMDAwRTFB
QkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
bmFtZSA9IHBhc19zdWJwYWdlX21hcF9lbnRyeS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
ODcwMDg0MjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3N1YnBhZ2VfbWFwLmg7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEY4NzAwODUyNUFGOTQ2MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfc3VicGFnZV9tYXAuYzsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwRjg3MDA4NjI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zdWJwYWdlX21hcF9lbnRyeS5oOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwX2VudHJ5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODcwMDg3MjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfdmVy
c2lvbmVkX2ZpZWxkLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc192ZXJz
aW9uZWRfZmllbGQuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc192ZXJzaW9uZWRfZmll
bGQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4NzAwQ0EyNUIwQ0IwMjAwMEUx
QUJGIC8qIHRoaW5neV9oZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHRo
aW5neV9oZWFwLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3MDBDQjI1QjBDQjAyMDAwRTFBQkYgLyogdGhp
bmd5X2hlYXBfcHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHRoaW5n
eV9oZWFwX3ByZWZpeC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfcHJl
Zml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NTQsMzYgKzg0MywyMyBAQAog
CQkwRjg3MDBDRDI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHRoaW5neV9oZWFwX2NvbmZpZy5jOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGODcwMENFMjVCMENCMDMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSB0aGluZ3lfaGVhcC5jOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXAuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY4N0ZGQTEyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfcGFnZV9pbmxpbmVz
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZBMjI1QUY4OTc5MDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmg7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGODdGRkEzMjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfY29tbWl0X3NwYW4u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbW1pdF9zcGFuLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQTQyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfdmFyaWFudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjg3RkZBNTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfdmlldy5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGODdGRkE2MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9h
bmRfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9k
aXJlY3RvcnlfYW5kX2luZGV4Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X2RpcmVjdG9yeV9hbmRfaW5kZXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4
N0ZGQTcyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZBODI1QUY4OTdBMDAw
RTFBQkYgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19k
aXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9t
aWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGODdGRkE5MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3MuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3MuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQUIyNUFGODk3
QTAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5o
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZBQzI1QUY4OTdBMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
bmFtZSA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9zaXplX2NsYXNzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
ODdGRkFEMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19r
aW5kLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tp
bmQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQUUyNUFGODk3QTAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19iaXRmaXRfYWxsb2NhdG9yLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X2FsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3
RkZBRjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGODdGRkIwMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRl
X2xhcmdlX2hlYXBzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19lbnVt
ZXJhdGVfbGFyZ2VfaGVhcHMuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJh
dGVfbGFyZ2VfaGVhcHMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQjEy
NUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVz
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZCMjI1QUY4OTdBMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmRlZiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGlu
ZyA9IDQ7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuZGVmOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmRlZjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQjMyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFz
aW5nX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYmlh
c2luZ19kaXJlY3RvcnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2Rp
cmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZCNDI1QUY4OTdB
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGODdGRkI1MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfcGFnZV9jb25maWcu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQjYyNUFGODk3QTAwMEUxQUJGIC8qIHBh
c19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjg3RkZCNzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191
dGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX3V0aWxzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX3V0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkI4MjVB
Rjg5N0IwMDBFMUFCRiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBuYW1lID0gcGFzX2FsbG9jYXRpb25fcmVzdWx0LmM7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY4N0ZGQjkyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5
X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9k
aXJlY3RvcnlfaW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9k
aXJlY3RvcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZC
QTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkJCMjVBRjg5N0IwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQkMyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
Rjg3RkZCRDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9oZWFwLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19iaXRmaXRfaGVhcC5jOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGODdGRkJFMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2tp
bmQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQkYyNUFGODk3QjAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IG5hbWUgPSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYzsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwRjg3RkZDMDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5n
X2RpcmVjdG9yaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19hbGxf
Ymlhc2luZ19kaXJlY3Rvcmllcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9i
aWFzaW5nX2RpcmVjdG9yaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdG
RkMxMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5k
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQzIyNUFGODk3QjAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZD
MzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRf
cGFnZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2VudW1lcmF0ZV9p
bml0aWFsbHlfdW5hY2NvdW50ZWRfcGFnZXMuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC04OTcsNyArODczLDYgQEAKIAkJMEY4N0ZGQ0MyNUFGODk3QzAwMEUx
QUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjg3RkZDRDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxv
Y2F0b3IuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZpdF9hbGxv
Y2F0b3IuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkNFMjVBRjg5N0MwMDBFMUFCRiAv
KiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJh
dG9yX2RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQ0YyNUFGODk3
QzAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYzsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZEMDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Vu
dW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0g
cGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGODdGRkQxMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZpdF9wYWdlLmM7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY4N0ZGRDIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXgu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF92aWV3X2FuZF9p
bmRleC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRl
eC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTE5LDI1ICs4OTQsMTEgQEAKIAkJ
MEY4QTgxMjUyNUY4M0UyNDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBibWFsbG9jX2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL2JtYWxsb2NfaGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhBODEy
NjI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gaG90Yml0X2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL2hvdGJp
dF9oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEE4MTI3MjVGODNFMjUw
MDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1l
ID0gYm1hbGxvY19oZWFwLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAu
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4QTgxMjgyNUY4M0UyNTAwNzkwQjRB
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjhBODEyOTI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBibWFsbG9jX2hlYXBfY29uZmlnLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODRCMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfbWFnYXpp
bmUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX21hZ2F6aW5lLmM7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY4RTc4NEMyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21p
Y19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhFNzg0RDI0Nzg3Mzk0MDBFMTI0QTYg
LyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGOEU3ODRFMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmg7IHBhdGgg
PSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NEYyNDc4
NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhF
Nzg1MTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc19tYWdhemluZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX21hZ2F6aW5lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODUyMjQ3
ODczOTQwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmM7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NTQyNDc4NzM5NTAwRTEyNEE2IC8qIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVy
c2hpcF9raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwRjhFNzg1NTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGOEU3ODU2MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4
RTc4NTcyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhFNzg1
ODI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODU5MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMEY4RTc4NUIyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5s
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhFNzg1QzI0Nzg3Mzk1MDBF
MTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYzsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODVEMjQ3ODczOTUwMEUxMjRB
NiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NUUyNDc4NzM5
NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhFODMyNDI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rl
c2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGOEU4MzI1MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfY29tcGFjdF9hdG9taWNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4RTgzMjYyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19kZXNpZ25hdGVkX2ludHJp
bnNpY19oZWFwLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRy
aW5zaWNfaGVhcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE5NCw3ICsxMTU1
LDYgQEAKIAkJMEZDNDBBQjIyNDUxNDk4RjAwODc2REEwIC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJl
ZV9oZWFwLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19zaW1wbGVfbGFy
Z2VfZnJlZV9oZWFwLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2ltcGxlX2xhcmdl
X2ZyZWVfaGVhcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEFCNDI0NTE0
OThGMDA4NzZEQTAgLyogcGFzX2ZvdW5kX2luZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IHBhc19mb3VuZF9pbmRleC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X2ZvdW5kX2luZGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQUI1MjQ1
MTQ5OEYwMDg3NkRBMCAvKiBwYXNfaGVhcF9yZWZfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfaGVhcF9yZWZfa2luZC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXBfcmVmX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZD
NDBBQjcyNDUxNDk4RjAwODc2REEwIC8qIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEFCODI0
NTE0OThGMDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9t
b2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmls
bF9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQUI5MjQ1MTQ5OEYw
MDg3NkRBMCAvKiBwYXNfc3RyZWFtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19zdHJlYW0uaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdHJlYW0uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBQkEyNDUxNDk4RjAwODc2REEwIC8qIHBh
c19oZWFwX3BhZ2VfcHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
cGFzX2hlYXBfcGFnZV9wcm92aWRlci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfcGFnZV9wcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzNSwx
MTYgKzEzOTUsMTAwIEBACiAJCTBGQzQwOTBFMjQ1MTQ5MkUwMDg3NkRBMCAvKiBsaWJwYXMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTBGOEE4MTI3MjVG
ODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyAqLywKLQkJCQkwRjhBODEyNTI1RjgzRTI0
MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmggKi8sCiAJCQkJMEY4QTgxMUQyNUY4M0UyNDAwNzkw
QjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjhBODEyOTI1RjgzRTI1MDA3
OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGOEE4MTFCMjVGODNFMjMw
MDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBGOEE4MTFGMjVGODNF
MjQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5uYXJkcy5oICovLAogCQkJCTBGOEE4MTIzMjVG
ODNFMjQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfcmVmLmggKi8sCi0JCQkJMEY4QTgxMjAyNUY4
M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmMgKi8sCi0JCQkJMEY4QTgxMjYyNUY4M0UyNDAw
NzkwQjRBIC8qIGhvdGJpdF9oZWFwLmggKi8sCisJCQkJMEY4QTgxMjcyNUY4M0UyNTAwNzkwQjRB
IC8qIGJtYWxsb2NfaGVhcC5jICovLAorCQkJCTBGOEE4MTI1MjVGODNFMjQwMDc5MEI0QSAvKiBi
bWFsbG9jX2hlYXAuaCAqLywKIAkJCQkwRjhBODExRTI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0
X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY4QTgxMjEyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJp
dF9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGOEE4MTFDMjVGODNFMjQwMDc5MEI0QSAvKiBob3Ri
aXRfaGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY4QTgxMjIyNUY4M0UyNDAwNzkwQjRBIC8qIGhv
dGJpdF9oZWFwX2lubmFyZHMuaCAqLywKLQkJCQkwRkM0MDkyMTI0NTE0OTQyMDA4NzZEQTAgLyog
aXNvX2hlYXAuYyAqLywKLQkJCQkwRkM0MDkyOTI0NTE0OTQzMDA4NzZEQTAgLyogaXNvX2hlYXAu
aCAqLywKKwkJCQkwRjhBODEyMDI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyAqLywK
KwkJCQkwRjhBODEyNjI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCAqLywKIAkJCQkw
RkM0MDkyRjI0NTE0OTQzMDA4NzZEQTAgLyogaXNvX2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEZD
NDA5MjUyNDUxNDk0MzAwODc2REEwIC8qIGlzb19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGNUZF
N0I2MjVCNjFFQzEwMDE4NTlGQyAvKiBpc29faGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY1MTZF
RTgyNDU2MUFFODAwNEUyQjhEIC8qIGlzb19oZWFwX2lubmFyZHMuaCAqLywKIAkJCQkwRjUyOURF
MDI0NTU0NjNGMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggKi8sCi0JCQkJMEZDNDA5MEYyNDUx
NDk0MjAwODc2REEwIC8qIGlzb190ZXN0X2hlYXAuYyAqLywKLQkJCQkwRkM0MDkxMDI0NTE0OTQy
MDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcC5oICovLAorCQkJCTBGQzQwOTIxMjQ1MTQ5NDIwMDg3
NkRBMCAvKiBpc29faGVhcC5jICovLAorCQkJCTBGQzQwOTI5MjQ1MTQ5NDMwMDg3NkRBMCAvKiBp
c29faGVhcC5oICovLAogCQkJCTBGQzQwOTM3MjQ1MTQ5NDQwMDg3NkRBMCAvKiBpc29fdGVzdF9o
ZWFwX2NvbmZpZy5jICovLAogCQkJCTBGQzQwOTIzMjQ1MTQ5NDIwMDg3NkRBMCAvKiBpc29fdGVz
dF9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBGNTE5M0VDMjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRf
aGVhcC5jICovLAotCQkJCTBGNTE5M0U5MjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcC5oICov
LAorCQkJCTBGQzQwOTBGMjQ1MTQ5NDIwMDg3NkRBMCAvKiBpc29fdGVzdF9oZWFwLmMgKi8sCisJ
CQkJMEZDNDA5MTAyNDUxNDk0MjAwODc2REEwIC8qIGlzb190ZXN0X2hlYXAuaCAqLywKKwkJCQkw
RjUxOTNFQTI2NkM0MkFDMDA0ODNBMkMgLyogaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICov
LAogCQkJCTBGNTE5M0VCMjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcF9jb25maWcuYyAqLywK
IAkJCQkwRjUxOTNFODI2NkM0MkFDMDA0ODNBMkMgLyogaml0X2hlYXBfY29uZmlnLmggKi8sCi0J
CQkJMEY1MTkzRUEyNjZDNDJBQzAwNDgzQTJDIC8qIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEu
aCAqLywKLQkJCQkwRjE4RjgzRDI1QzM0Njc3MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwLmMg
Ki8sCi0JCQkJMEYxOEY4NDEyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcC5oICov
LAorCQkJCTBGNTE5M0VDMjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcC5jICovLAorCQkJCTBG
NTE5M0U5MjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcC5oICovLAogCQkJCTBGMThGODQ0MjVD
MzQ2NzcwMDcyMUMyQSAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEYxOEY4
NDIyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuaCAqLywKLQkJCQkw
RjE4RjgzRTI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5jICovLAotCQkJCTBG
MThGODQzMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmggKi8sCisJCQkJMEYx
OEY4M0QyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcC5jICovLAorCQkJCTBGMThG
ODQxMjVDMzQ2NzcwMDcyMUMyQSAvKiBtaW5hbGlnbjMyX2hlYXAuaCAqLywKIAkJCQkwRjE4Rjg0
MDI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYyAqLywKIAkJCQkw
RjE4RjgzRjI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaCAqLywK
KwkJCQkwRjE4RjgzRTI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5jICovLAor
CQkJCTBGMThGODQzMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmggKi8sCiAJ
CQkJMEZDNDA5MkEyNDUxNDk0MzAwODc2REEwIC8qIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVz
dWx0LmggKi8sCiAJCQkJMEZDNDA5MkIyNDUxNDk0MzAwODc2REEwIC8qIHBhc19hbGlnbmVkX2Fs
bG9jYXRvci5oICovLAogCQkJCTBGQzQwOTJEMjQ1MTQ5NDMwMDg3NkRBMCAvKiBwYXNfYWxpZ25t
ZW50LmMgKi8sCiAJCQkJMEZDNDA5MzAyNDUxNDk0MzAwODc2REEwIC8qIHBhc19hbGlnbm1lbnQu
aCAqLywKLQkJCQkwRjg3RkZDRjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2Rp
cmVjdG9yaWVzLmMgKi8sCi0JCQkJMEY4N0ZGQzAyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19hbGxf
Ymlhc2luZ19kaXJlY3Rvcmllcy5oICovLAogCQkJCTBGMUJGRDQ2MjY2NDVBQzcwMENFQzI4RCAv
KiBwYXNfYWxsX2hlYXBfY29uZmlncy5oICovLAogCQkJCTBGQzQwOTM0MjQ1MTQ5NDMwMDg3NkRB
MCAvKiBwYXNfYWxsX2hlYXBzLmMgKi8sCiAJCQkJMEZDNDA5ODgyNDUxNDk2MDAwODc2REEwIC8q
IHBhc19hbGxfaGVhcHMuaCAqLywKLQkJCQkwRjFBRUNFQjI2NTgxQjVFMDAwQzUyMTggLyogcGFz
X2FsbF9tYWdhemluZXMuYyAqLywKLQkJCQkwRjFBRUNFQTI2NTgxQjVFMDAwQzUyMTggLyogcGFz
X2FsbF9tYWdhemluZXMuaCAqLywKIAkJCQkwRkM0MDlCRjI0NTE0OTYzMDA4NzZEQTAgLyogcGFz
X2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5jICovLAogCQkJCTBGQzQwOTcyMjQ1MTQ5NUUw
MDg3NkRBMCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmggKi8sCiAJCQkJMEZD
NDA5OUUyNDUxNDk2MTAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5jICovLAog
CQkJCTBGQzQwOTg5MjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3Mu
aCAqLywKIAkJCQkwRkM0MDk4MTI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fY29u
ZmlnLmggKi8sCiAJCQkJMEZDNDA5NzcyNDUxNDk1RjAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9u
X2tpbmQuaCAqLywKLQkJCQkwRjg3RkZCODI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2FsbG9jYXRp
b25fcmVzdWx0LmMgKi8sCiAJCQkJMEZDNDA5QkUyNDUxNDk2MzAwODc2REEwIC8qIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGQzQwOUFBMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNf
YWxsb2NhdG9yX2NvdW50cy5oICovLAogCQkJCTBGNzU0OTgwMjQ4Njk3M0MwMDJBNEM3RCAvKiBw
YXNfYWxsb2NhdG9yX2luZGV4LmggKi8sCiAJCQkJMEZDNDA5OEQyNDUxNDk2MDAwODc2REEwIC8q
IHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmggKi8sCi0JCQkJMEZDNDA5ODQyNDUxNDk1
RjAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3IuYyAqLywKLQkJCQkwRkM0MDlBMjI0
NTE0OTYxMDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oICovLAogCQkJCTBGQzQw
OTgyMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5oICov
LAogCQkJCTBGQzQwOTk3MjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
X3RhYmxlLmMgKi8sCiAJCQkJMEZDNDA5N0IyNDUxNDk1RjAwODc2REEwIC8qIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3JfdGFibGUuaCAqLywKKwkJCQkwRkM0MDk4NDI0NTE0OTVGMDA4NzZEQTAgLyog
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jICovLAorCQkJCTBGQzQwOUEyMjQ1MTQ5NjEwMDg3NkRB
MCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEY1MTkzRUQyNjZDNDJBRDAw
NDgzQTJDIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuYyAqLywKIAkJ
CQkwRjg3RkZDRTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1l
cmF0b3JfZGF0YS5oICovLAogCQkJCTBGODdGRkFCMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmFz
aWNfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8sCiAJCQkJMEZDNDA5QTYyNDUxNDk2MjAwODc2
REEwIC8qIHBhc19iYXNpY19oZWFwX3BhZ2VfY2FjaGVzLmggKi8sCiAJCQkJMEZDNDA5N0UyNDUx
NDk1RjAwODc2REEwIC8qIHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmlnLmggKi8sCiAJCQkJ
MEZDNDA5OTYyNDUxNDk2MTAwODc2REEwIC8qIHBhc19iYXNpY19zZWdyZWdhdGVkX3BhZ2VfY2Fj
aGVzLmggKi8sCi0JCQkJMEY4N0ZGQUYyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2Rp
cmVjdG9yeS5jICovLAotCQkJCTBGODdGRkIzMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2lu
Z19kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjg3RkZCMTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2Jp
YXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKIAkJCQkwRjg3RkZDQzI1QUY4OTdDMDAwRTFB
QkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCAqLywKIAkJCQkwRkM0MDlCNTI0NTE0
OTYzMDA4NzZEQTAgLyogcGFzX2JpdGZpZWxkX3ZlY3Rvci5oICovLAogCQkJCTBGODdGRkQ2MjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCisJCQkJ
MEY4N0ZGQkIyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMu
aCAqLywKIAkJCQkwRjg3RkZDRDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0
b3IuYyAqLywKIAkJCQkwRjg3RkZBRTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxv
Y2F0b3IuaCAqLywKLQkJCQkwRjg3RkZCQjI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9h
bGxvY2F0b3JfaW5saW5lcy5oICovLAotCQkJCTBGODdGRkE3MjVBRjg5N0EwMDBFMUFCRiAvKiBw
YXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEY4N0ZGQkEyNUFGODk3QjAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLywKKwkJCQkwRjg3RkZC
OTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oICovLAog
CQkJCTBGODdGRkNCMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5jICov
LAogCQkJCTBGODdGRkMyMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5o
ICovLAotCQkJCTBGODdGRkE2MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9y
eV9hbmRfaW5kZXguaCAqLywKLQkJCQkwRjg3RkZCOTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oICovLAotCQkJCTBGODdGRkJFMjVBRjg5N0IwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmggKi8sCi0JCQkJMEY4N0ZGQkYyNUFGODk3
QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jICovLAotCQkJCTBGODdG
RkJDMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCAqLywK
LQkJCQkwRjg3RkZBOTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzcy5jICovLAotCQkJCTBGODdGRkEyMjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2ds
b2JhbF9zaXplX2NsYXNzLmggKi8sCiAJCQkJMEY4N0ZGQkQyNUFGODk3QjAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfaGVhcC5jICovLAogCQkJCTBGODdGRkM3MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X2hlYXAuaCAqLywKIAkJCQkwRjg3RkZDNDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9tYXhfZnJlZS5oICovLAotCQkJCTBGODdGRkQxMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3BhZ2UuYyAqLywKLQkJCQkwRjg3RkZDNTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9wYWdlLmggKi8sCi0JCQkJMEY4N0ZGQjUyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRm
aXRfcGFnZV9jb25maWcuaCAqLywKIAkJCQkwRjg3RkZEMzI1QUY4OTdDMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEY4N0ZGQUQyNUFGODk3QTAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jICovLAogCQkJCTBGODdGRkIy
MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuZGVmICovLAog
CQkJCTBGODdGRkMxMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tp
bmQuaCAqLywKLQkJCQkwRjg3RkZCNzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZ191dGlscy5oICovLAogCQkJCTBGODdGRkM5MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJCQkwRjg3RkZCNzI1QUY4
OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBG
ODdGRkE0MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQu
aCAqLywKKwkJCQkwRjg3RkZCNTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZy5oICovLAogCQkJCTBGODdGRkExMjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3Bh
Z2VfaW5saW5lcy5oICovLAorCQkJCTBGODdGRkQxMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X3BhZ2UuYyAqLywKKwkJCQkwRjg3RkZDNTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZp
dF9wYWdlLmggKi8sCiAJCQkJMEY4N0ZGQUMyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
c2l6ZV9jbGFzcy5jICovLAogCQkJCTBGODdGRkI0MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X3NpemVfY2xhc3MuaCAqLywKLQkJCQkwRjg3RkZDODI1QUY4OTdDMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF92aWV3LmMgKi8sCi0JCQkJMEY4N0ZGQTUyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfdmlldy5oICovLAogCQkJCTBGODdGRkQyMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X3ZpZXdfYW5kX2luZGV4LmggKi8sCiAJCQkJMEY4N0ZGRDUyNUFGODk3QzAwMEUxQUJGIC8q
IHBhc19iaXRmaXRfdmlld19pbmxpbmVzLmggKi8sCisJCQkJMEY4N0ZGQzgyNUFGODk3QzAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfdmlldy5jICovLAorCQkJCTBGODdGRkE1MjVBRjg5NzkwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAqLywKIAkJCQkwRkM0MDlBOTI0NTE0OTYyMDA4NzZEQTAg
LyogcGFzX2JpdHZlY3Rvci5oICovLAogCQkJCTBGQzQwOUJCMjQ1MTQ5NjMwMDg3NkRBMCAvKiBw
YXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5jICovLAogCQkJCTBGQzQwOUE3MjQ1MTQ5NjIwMDg3NkRB
MCAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oICovLApAQCAtMTU2OCw5ICsxNTEyLDkgQEAK
IAkJCQkwRjhFNzg0QzI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vf
c2hhcmluZ19wb29sX3B0ci5oICovLAogCQkJCTBGQzQwOUMyMjQ1MTQ5NjMwMDg3NkRBMCAvKiBw
YXNfY29tcGFjdF9hdG9taWNfcHRyLmggKi8sCiAJCQkJMEY4RTc4NEUyNDc4NzM5NDAwRTEyNEE2
IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oICov
LAotCQkJCTBGOEU3ODRGMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJMEZDNDA5ODYyNDUx
NDk2MDAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2hlYXBfcGFnZV9z
aGFyaW5nX3Bvb2xzX3B0ci5oICovLAogCQkJCTBGQzQwOUFCMjQ1MTQ5NjIwMDg3NkRBMCAvKiBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfcHRyLmggKi8sCisJCQkJ
MEY3QzkyRDcyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0ci5oICovLAogCQkJCTBGQzQwOUJDMjQ1MTQ5NjMwMDg3NkRBMCAv
KiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF92aWV3LmggKi8sCiAJCQkJMEY4RTgzMjUy
NDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGUuaCAqLywKIAkJCQkwRkM0MDk4QjI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX3Vuc2lnbmVkX3B0ci5oICovLApAQCAtMTU4OSwxNCArMTUzMywxNCBAQAog
CQkJCTBGNUZFN0Q4MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9wYWdlX2dyYW51bGVf
dXNlX2NvdW50X3B0ci5oICovLAogCQkJCTBGQzQwOTg3MjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNf
Y29tcGFjdF9wdHIuaCAqLywKIAkJCQkwRjhFNzg1ODI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLywKLQkJCQkwRjhFNzg1
NjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfcHRyLmggKi8sCisJCQkJMEY3QzkyRDMyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi8sCiAJCQkJMEZDNDA5QkEy
NDUxNDk2MzAwODc2REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfaGVhcF9wdHIuaCAqLywK
IAkJCQkwRkM0MDlBMTI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9z
aGFyZWRfcGFnZV9kaXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJMEZDNDA5NzAyNDUxNDk1RTAwODc2
REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyLmggKi8sCisJCQkJ
MEY3QzkyREIyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJMEZDNDA5OEYyNDUxNDk2MDAwODc2REEwIC8qIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfdmlldy5oICovLAotCQkJCTBGQzQwOTdEMjQ1MTQ5NUYwMDg3NkRB
MCAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIuaCAqLywKIAkJCQkwRkM0MDk5OTI0
NTE0OTYxMDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0ci5oICov
LAotCQkJCTBGNUZFN0NFMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21h
cF9lbnRyeV9wdHIuaCAqLywKKwkJCQkwRkM0MDk3RDI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2Nv
bXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmggKi8sCiAJCQkJMEZDNDA5QzEyNDUxNDk2MzAwODc2
REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRyLmggKi8sCiAJCQkJMEY1RkU3RDky
NUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2Nv
dW50X3B0ci5oICovLAogCQkJCTBGQzQwOTcxMjQ1MTQ5NUUwMDg3NkRBMCAvKiBwYXNfY29tcGFj
dF90YWdnZWRfcHRyLmggKi8sCkBAIC0xNjA0LDI0ICsxNTQ4LDI0IEBACiAJCQkJMEZDNDA5OUEy
NDUxNDk2MTAwODc2REEwIC8qIHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovLAogCQkJCTBG
QzQwOTc5MjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxs
YmFja3MuYyAqLywKIAkJCQkwRkM0MDlCMzI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2NvbXB1dGVf
c3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggKi8sCi0JCQkJMEZDNDA5QjgyNDUxNDk2MzAwODc2
REEwIC8qIHBhc19jb25maWcuaCAqLywKIAkJCQkwRkM0MDlBODI0NTE0OTYyMDA4NzZEQTAgLyog
cGFzX2NvbmZpZ19wcmVmaXguaCAqLywKKwkJCQkwRkM0MDlCODI0NTE0OTYzMDA4NzZEQTAgLyog
cGFzX2NvbmZpZy5oICovLAogCQkJCTBGQzQwOUFEMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY291
bnRfbG9va3VwX21vZGUuaCAqLywKIAkJCQkwRkM0MDlBNTI0NTE0OTYyMDA4NzZEQTAgLyogcGFz
X2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMgKi8s
CiAJCQkJMEZDNDA5NkYyNDUxNDk1RTAwODc2REEwIC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9w
YWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5oICovLAogCQkJCTBGQzQwOTk4MjQ1MTQ5
NjEwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0ZS5jICovLAogCQkJCTBGQzQwOTlCMjQ1MTQ5NjEw
MDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0ZS5oICovLAogCQkJCTBGNUZFN0RBMjVCNjIxMEQwMDE4
NTlGQyAvKiBwYXNfZGVhbGxvY2F0aW9uX21vZGUuaCAqLywKLQkJCQkwRkM0MDlBMzI0NTE0OTYx
MDA4NzZEQTAgLyogcGFzX2RlYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZDNDA5ODUyNDUxNDk2MDAw
ODc2REEwIC8qIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCAqLywKKwkJCQkwRkM0
MDlBMzI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2RlYWxsb2NhdG9yLmggKi8sCiAJCQkJMEYzNzNF
NTMyNjU5RUE3MDAwMzRCQTk2IC8qIHBhc19kZWJ1Z19oZWFwLmggKi8sCiAJCQkJMEZCQzYyQzQy
NjVGMTgwQzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5jICovLAogCQkJCTBGQkM2MkM1
MjY1RjE4MEMwMDVBNTcyMCAvKiBwYXNfZGVidWdfc3BlY3RydW0uaCAqLywKIAkJCQkwRkM0MDlC
OTI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5jICovLAogCQkJ
CTBGQzQwOUEwMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmgg
Ki8sCisJCQkJMEY4RTgzMkIyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJp
bnNpY19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjhFODMyNjI0OTJFQUYzMDA0NkQ3RjggLyog
cGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYyAqLywKIAkJCQkwRjhFODMyNDI0OTJFQUYz
MDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaCAqLywKLQkJCQkwRjhF
ODMyQjI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5s
aW5lcy5oICovLAogCQkJCTBGQzQwOThBMjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfZHlsZF9zdGF0
ZS5jICovLAogCQkJCTBGQzQwOTlEMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfZHlsZF9zdGF0ZS5o
ICovLAogCQkJCTBGQzQwOTgwMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfZHluYW1pY19wcmltaXRp
dmVfaGVhcF9tYXAuYyAqLywKQEAgLTE2NDQsMTEgKzE1ODgsMTEgQEAKIAkJCQkwRjg3MDAxMjI1
QUY4OUM3MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmggKi8sCiAJ
CQkJMEY4NzAwMUQyNUFGODlDODAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRf
cGFnZXNfYXNfbWV0YS5jICovLAogCQkJCTBGODcwMDFFMjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNf
ZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuaCAqLywKLQkJCQkwRjg3MDAxNDI1
QUY4OUM3MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0b3IuYyAqLywKLQkJCQkwRjg3MDAyNzI1QUY4
OUM5MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0b3IuaCAqLywKIAkJCQkwRjg3MDAyODI1QUY4OUM5
MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0b3JfaW50ZXJuYWwuaCAqLywKIAkJCQkwRjg3MDAyMDI1
QUY4OUM4MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmMgKi8sCiAJCQkJMEY4NzAw
MjEyNUFGODlDODAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdG9yX3JlZ2lvbi5oICovLAorCQkJCTBG
ODcwMDE0MjVBRjg5QzcwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRvci5jICovLAorCQkJCTBGODcw
MDI3MjVBRjg5QzkwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRvci5oICovLAogCQkJCTBGQzQwOUFG
MjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfZXBvY2guYyAqLywKIAkJCQkwRkM0MDlCMTI0NTE0OTYy
MDA4NzZEQTAgLyogcGFzX2Vwb2NoLmggKi8sCiAJCQkJMEZDNDA5QjAyNDUxNDk2MjAwODc2REEw
IC8qIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmMgKi8sCkBAIC0xNjYy
LDggKzE2MDYsOCBAQAogCQkJCTBGODcwMDIzMjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNfZmFzdF9t
ZWdhcGFnZV9raW5kLmggKi8sCiAJCQkJMEY4NzAwMjIyNUFGODlDODAwMEUxQUJGIC8qIHBhc19m
YXN0X21lZ2FwYWdlX3RhYmxlLmMgKi8sCiAJCQkJMEY4NzAwMjQyNUFGODlDODAwMEUxQUJGIC8q
IHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmggKi8sCi0JCQkJMEY4NzAwMTYyNUFGODlDNzAwMEUx
QUJGIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRjg3MDAx
MTI1QUY4OUM3MDAwRTFBQkYgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5k
LmggKi8sCisJCQkJMEY4NzAwMTYyNUFGODlDNzAwMEUxQUJGIC8qIHBhc19mYXN0X3BhdGhfYWxs
b2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRkI1NzA2QzI2N0QwNTU5MDA4MEZBOEIgLyogcGFz
X2Zhc3RfdGxzLmggKi8sCiAJCQkJMEZDNDBBQzkyNDUxNDk5MDAwODc2REEwIC8qIHBhc19mZF9z
dHJlYW0uYyAqLywKIAkJCQkwRkM0MEFDQTI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2ZkX3N0cmVh
bS5oICovLApAQCAtMTY3NCw4ICsxNjE4LDggQEAKIAkJCQkwRjg3MDAxRjI1QUY4OUM4MDAwRTFB
QkYgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuaCAqLywKIAkJCQkwRkM0MEFBODI0NTE0OThFMDA4NzZE
QTAgLyogcGFzX2ZyZWVfbW9kZS5oICovLAogCQkJCTBGQzQwQTM0MjQ1MTQ5ODYwMDg3NkRBMCAv
KiBwYXNfZnJlZV9yYW5nZV9raW5kLmggKi8sCi0JCQkJMEZDNDBBQ0IyNDUxNDk5MTAwODc2REEw
IC8qIHBhc19mdWxsX2FsbG9jX2JpdHMuaCAqLywKIAkJCQkwRkM0MEE0NTI0NTE0OTg3MDA4NzZE
QTAgLyogcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmggKi8sCisJCQkJMEZDNDBBQ0IyNDUx
NDk5MTAwODc2REEwIC8qIHBhc19mdWxsX2FsbG9jX2JpdHMuaCAqLywKIAkJCQkwRkM0MEEzQTI0
NTE0OTg2MDA4NzZEQTAgLyogcGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9oZWFwLmggKi8sCiAJCQkJ
MEZDNDBBOTYyNDUxNDk4RDAwODc2REEwIC8qIHBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmggKi8s
CiAJCQkJMEZDNDBBRTEyNDUxNDk5MjAwODc2REEwIC8qIHBhc19nZXRfaGVhcC5oICovLApAQCAt
MTY4MywxNyArMTYyNywxNSBAQAogCQkJCTBGODcwMDFDMjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNf
Z2V0X3BhZ2VfYmFzZS5oICovLAogCQkJCTBGQzQwQTcyMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNf
aGFzX29iamVjdC5oICovLAogCQkJCTBGQzQwQTQ4MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfaGFz
aHRhYmxlLmggKi8sCi0JCQkJMEZDNDBBQ0MyNDUxNDk5MTAwODc2REEwIC8qIHBhc19oZWFwLmMg
Ki8sCi0JCQkJMEZDNDBBNUYyNDUxNDk4OTAwODc2REEwIC8qIHBhc19oZWFwLmggKi8sCi0JCQkJ
MEYxQkZENDUyNjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jICovLAotCQkJCTBG
QzQwQUFBMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRjhF
Nzg0RDI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCAqLywKIAkJ
CQkwRkM0MEE2OTI0NTE0OThBMDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuYyAqLywK
IAkJCQkwRkM0MEE4RDI0NTE0OThDMDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuZGVm
ICovLAogCQkJCTBGQzQwQTU4MjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdfa2lu
ZC5oICovLAorCQkJCTBGQzQwQTQyMjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdf
dXRpbHNfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTVFMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNf
aGVhcF9jb25maWdfdXRpbHMuYyAqLywKIAkJCQkwRkM0MEFEQjI0NTE0OTkyMDA4NzZEQTAgLyog
cGFzX2hlYXBfY29uZmlnX3V0aWxzLmggKi8sCi0JCQkJMEZDNDBBNDIyNDUxNDk4NzAwODc2REEw
IC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8sCisJCQkJMEYxQkZENDUyNjY0
NUFDNzAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jICovLAorCQkJCTBGQzQwQUFBMjQ1MTQ5
OEUwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRkM0MEE3NzI0NTE0OThC
MDA4NzZEQTAgLyogcGFzX2hlYXBfZm9yX2NvbmZpZy5jICovLAogCQkJCTBGQzQwQTlBMjQ1MTQ5
OEQwMDg3NkRBMCAvKiBwYXNfaGVhcF9mb3JfY29uZmlnLmggKi8sCiAJCQkJMEZDNDBBRDkyNDUx
NDk5MjAwODc2REEwIC8qIHBhc19oZWFwX2lubGluZXMuaCAqLywKQEAgLTE3MDEsMjMgKzE2NDMs
MjQgQEAKIAkJCQkwRkM0MEFFNDI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX2hlYXBfbG9jay5jICov
LAogCQkJCTBGQzQwQTdCMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfaGVhcF9sb2NrLmggKi8sCiAJ
CQkJMEZDNDBBQkEyNDUxNDk4RjAwODc2REEwIC8qIHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaCAq
LywKLQkJCQkwRkM0MEE0RjI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX2hlYXBfcmVmLmMgKi8sCi0J
CQkJMEZDNDBBNjYyNDUxNDk4OTAwODc2REEwIC8qIHBhc19oZWFwX3JlZi5oICovLAogCQkJCTBG
QzQwQUI1MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfaGVhcF9yZWZfa2luZC5oICovLAogCQkJCTBG
QzQwQThFMjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfaGVhcF9yZWZfcHJlZml4LmggKi8sCisJCQkJ
MEZDNDBBNEYyNDUxNDk4ODAwODc2REEwIC8qIHBhc19oZWFwX3JlZi5jICovLAorCQkJCTBGQzQw
QTY2MjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfaGVhcF9yZWYuaCAqLywKKwkJCQkwRjdDOTJEOTI2
RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyAqLywKIAkJCQkwRkM0
MEFFOTI0NTE0OTkzMDA4NzZEQTAgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuaCAqLywKIAkJ
CQkwRkM0MEFGMjI0NTE0OTkzMDA4NzZEQTAgLyogcGFzX2hlYXBfc3VtbWFyeS5jICovLAogCQkJ
CTBGQzQwQUQ2MjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfaGVhcF9zdW1tYXJ5LmggKi8sCisJCQkJ
MEZDNDBBNEUyNDUxNDk4ODAwODc2REEwIC8qIHBhc19oZWFwX3RhYmxlX3N0YXRlLmggKi8sCiAJ
CQkJMEZDNDBBQzYyNDUxNDk5MDAwODc2REEwIC8qIHBhc19oZWFwX3RhYmxlLmMgKi8sCiAJCQkJ
MEZDNDBBMkUyNDUxNDk4NjAwODc2REEwIC8qIHBhc19oZWFwX3RhYmxlLmggKi8sCi0JCQkJMEZD
NDBBNEUyNDUxNDk4ODAwODc2REEwIC8qIHBhc19oZWFwX3RhYmxlX3N0YXRlLmggKi8sCisJCQkJ
MEZDNDBBQ0MyNDUxNDk5MTAwODc2REEwIC8qIHBhc19oZWFwLmMgKi8sCisJCQkJMEZDNDBBNUYy
NDUxNDk4OTAwODc2REEwIC8qIHBhc19oZWFwLmggKi8sCiAJCQkJMEZDNDBBNjQyNDUxNDk4OTAw
ODc2REEwIC8qIHBhc19pbW1vcnRhbF9oZWFwLmMgKi8sCiAJCQkJMEZDNDBBOUYyNDUxNDk4RDAw
ODc2REEwIC8qIHBhc19pbW1vcnRhbF9oZWFwLmggKi8sCiAJCQkJMEZDNDBBOTQyNDUxNDk4RDAw
ODc2REEwIC8qIHBhc19pbW11dGFibGVfdmVjdG9yLmggKi8sCiAJCQkJMEY1MTZFRTQyNDU2MTg0
RjAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCAqLywKLQkJCQkwRkM0MEFCNzI0NTE0
OThGMDA4NzZEQTAgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJ
CTBGQzQwQTUxMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5o
ICovLAotCQkJCTBGQzQwQTlDMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZS5oICov
LAogCQkJCTBGQzQwQTU0MjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2Nv
bmZpZy5oICovLAogCQkJCTBGQUJERENGMjQ4QUIwODQwMEE4NDBCMyAvKiBwYXNfbGFyZ2VfZnJl
ZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgKi8sCiAJCQkJMEZDNDBBQ0QyNDUxNDk5MTAwODc2REEw
IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5jICovLApAQCAtMTcy
NywzNSArMTY3MCw0MSBAQAogCQkJCTBGQUJERENFMjQ4QUIwODQwMEE4NDBCMyAvKiBwYXNfbGFy
Z2VfZnJlZV9oZWFwX2hlbHBlcnMuaCAqLywKIAkJCQkwRkM0MEE3NDI0NTE0OThBMDA4NzZEQTAg
LyogcGFzX2xhcmdlX2ZyZWVfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTIzMjQ1MTQ5ODUwMDg3
NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZV92aXNpdG9yLmggKi8sCi0JCQkJMEZDNDBBOTMyNDUxNDk4
RDAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwLmMgKi8sCi0JCQkJMEZDNDBBN0EyNDUxNDk4QjAw
ODc2REEwIC8qIHBhc19sYXJnZV9oZWFwLmggKi8sCisJCQkJMEZDNDBBOUMyNDUxNDk4RDAwODc2
REEwIC8qIHBhc19sYXJnZV9mcmVlLmggKi8sCiAJCQkJMEZDNDBBODMyNDUxNDk4QjAwODc2REEw
IC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5jICovLAogCQkJ
CTBGQzQwQUIwMjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdl
X3NoYXJpbmdfY2FjaGUuaCAqLywKKwkJCQkwRkM0MEE5MzI0NTE0OThEMDA4NzZEQTAgLyogcGFz
X2xhcmdlX2hlYXAuYyAqLywKKwkJCQkwRkM0MEE3QTI0NTE0OThCMDA4NzZEQTAgLyogcGFzX2xh
cmdlX2hlYXAuaCAqLywKKwkJCQkwRkM0MEFENDI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2xhcmdl
X21hcF9lbnRyeS5oICovLAogCQkJCTBGQzQwQUY0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbGFy
Z2VfbWFwLmMgKi8sCiAJCQkJMEZDNDBBMzYyNDUxNDk4NjAwODc2REEwIC8qIHBhc19sYXJnZV9t
YXAuaCAqLywKLQkJCQkwRkM0MEFENDI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2xhcmdlX21hcF9l
bnRyeS5oICovLAorCQkJCTBGQzQwQUJEMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfbGFyZ2Vfc2hh
cmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmggKi8sCiAJCQkJMEZDNDBBNEIyNDUxNDk4ODAw
ODc2REEwIC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyAqLywKIAkJCQkwRkM0MEExRDI0NTE0
OTg0MDA4NzZEQTAgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oICovLAotCQkJCTBGQzQwQUJE
MjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9t
b2RlLmggKi8sCiAJCQkJMEZDNDBBQTMyNDUxNDk4RTAwODc2REEwIC8qIHBhc19sYXJnZV91dGls
aXR5X2ZyZWVfaGVhcC5jICovLAogCQkJCTBGQzQwQUYxMjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNf
bGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCAqLywKIAkJCQkwRjhBODEyNDI1RjgzRTI0MDA3OTBC
NEEgLyogcGFzX2xpbmVfd29yZF9jb25maWcuaCAqLywKIAkJCQkwRkM0MEE3RDI0NTE0OThCMDA4
NzZEQTAgLyogcGFzX2xpc3RfZGlyZWN0aW9uLmggKi8sCi0JCQkJMEZDNDBBMjgyNDUxNDk4NTAw
ODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuYyAqLywKLQkJCQkwRkM0MEE0QTI0NTE0OTg4
MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5oICovLAogCQkJCTBGQzQwQTRDMjQ1MTQ5
ODgwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kLmggKi8sCiAJCQkJ
MEZDNDBBOTgyNDUxNDk4RDAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5o
ICovLAotCQkJCTBGOEE4MTI4MjVGODNFMjUwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9y
X2xpbmUuaCAqLywKKwkJCQkwRjdDOTJFMDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX2Fs
bG9jYXRvcl9raW5kLmggKi8sCiAJCQkJMEZDNDBBQjgyNDUxNDk4RjAwODc2REEwIC8qIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUuaCAqLywKIAkJCQkwRkM0MEE1MDI0NTE0OTg4MDA4
NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQuaCAqLywKLQkJCQkwRkM0MEJEOTI0
NTI0M0E0MDA4NzZEQTAgLyogcGFzX2xvY2suYyAqLywKLQkJCQkwRkM0MEE4QjI0NTE0OThDMDA4
NzZEQTAgLyogcGFzX2xvY2suaCAqLywKKwkJCQkwRjdDOTJEQTI2RTU3Rjc1MDA2QUYwMTIgLyog
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jICovLAorCQkJCTBGN0M5MkQ0MjZF
NTdGNzQwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggKi8s
CisJCQkJMEZDNDBBMjgyNDUxNDk4NTAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuYyAq
LywKKwkJCQkwRkM0MEE0QTI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5o
ICovLAorCQkJCTBGN0M5MkUxMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNo
ZV9ub2RlLmMgKi8sCisJCQkJMEY3QzkyREMyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92
aWV3X2NhY2hlX25vZGUuaCAqLywKKwkJCQkwRjdDOTJENjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFz
X2xvY2FsX3ZpZXdfY2FjaGUuYyAqLywKKwkJCQkwRjdDOTJERTI2RTU3Rjc1MDA2QUYwMTIgLyog
cGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCAqLywKKwkJCQkwRjdDOTJERjI2RTU3Rjc1MDA2QUYwMTIg
LyogcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oICovLAogCQkJCTBGQzQwQTU2MjQ1MTQ5
ODgwMDg3NkRBMCAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYyAqLywK
IAkJCQkwRkM0MEFBNDI0NTE0OThFMDA4NzZEQTAgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9w
dHJfaGFzaHRhYmxlLmggKi8sCisJCQkJMEZDNDBCRDkyNDUyNDNBNDAwODc2REEwIC8qIHBhc19s
b2NrLmMgKi8sCisJCQkJMEZDNDBBOEIyNDUxNDk4QzAwODc2REEwIC8qIHBhc19sb2NrLmggKi8s
CiAJCQkJMEZDNDBBRDcyNDUxNDk5MTAwODc2REEwIC8qIHBhc19sb2cuYyAqLywKIAkJCQkwRkM0
MEFDMTI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX2xvZy5oICovLAotCQkJCTBGOEU3ODRCMjQ3ODcz
OTQwMEUxMjRBNiAvKiBwYXNfbWFnYXppbmUuYyAqLywKLQkJCQkwRjhFNzg1MTI0Nzg3Mzk0MDBF
MTI0QTYgLyogcGFzX21hZ2F6aW5lLmggKi8sCiAJCQkJMEY4NzAwNEIyNUFGOEExOTAwMEUxQUJG
IC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyAqLywKIAkJCQkwRjg3MDA0ODI1QUY4QTE5
MDAwRTFBQkYgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oICovLAogCQkJCTBGQzQwQTgx
MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuYyAqLywKQEAgLTE3NjYsMTMg
KzE3MTUsMTMgQEAKIAkJCQkwRkM0MEFEMjI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX211dGF0aW9u
X2NvdW50LmggKi8sCiAJCQkJMEY4NzAwNEUyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19vYmplY3Rf
a2luZC5oICovLAogCQkJCTBGQzQwQTNCMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfb2JqZWN0X3Np
emVfbW9kZS5oICovLAotCQkJCTBGODcwMDUyMjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcGFnZV9i
YXNlLmMgKi8sCi0JCQkJMEY4NzAwNUQyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2Uu
aCAqLywKLQkJCQkwRjg3MDA2MDI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25m
aWcuaCAqLywKIAkJCQkwRjg3MDA1RTI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9j
b25maWdfaW5saW5lcy5oICovLAotCQkJCTBGODcwMDREMjVBRjhBMTkwMDBFMUFCRiAvKiBwYXNf
cGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBGODcwMDU2MjVBRjhBMUEwMDBFMUFC
RiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8sCisJCQkJMEY4NzAw
NEQyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmggKi8sCisJ
CQkJMEY4NzAwNjAyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi8s
CiAJCQkJMEY4NzAwNTAyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfaW5saW5lcy5o
ICovLAorCQkJCTBGODcwMDUyMjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlLmMgKi8s
CisJCQkJMEY4NzAwNUQyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2UuaCAqLywKIAkJ
CQkwRjg3MDA0QTI1QUY4QTE5MDAwRTFBQkYgLyogcGFzX3BhZ2VfY29uZmlnX2tpbmQuaCAqLywK
IAkJCQkwRjg3MDA2MjI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291
bnQuaCAqLywKIAkJCQkwRjg3MDA0OTI1QUY4QTE5MDAwRTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVy
X3BsYWNlbWVudF9tb2RlLmggKi8sCkBAIC0xNzgyLDEyICsxNzMxLDEzIEBACiAJCQkJMEZDNDBB
ODkyNDUxNDk4QzAwODc2REEwIC8qIHBhc19wYWdlX21hbGxvYy5jICovLAogCQkJCTBGQzQwQUY1
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFnZV9tYWxsb2MuaCAqLywKIAkJCQkwRjg3MDA1QjI1
QUY4QTFBMDAwRTFBQkYgLyogcGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmggKi8sCisJCQkJMEZDNDBB
QTAyNDUxNDk4RTAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5o
ICovLAogCQkJCTBGQzQwQTMzMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50LmMgKi8sCiAJCQkJMEZDNDBBNEQyNDUxNDk4ODAwODc2REEwIC8qIHBhc19wYWdl
X3NoYXJpbmdfcGFydGljaXBhbnQuaCAqLywKLQkJCQkwRkM0MEFBMDI0NTE0OThFMDA4NzZEQTAg
LyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmggKi8sCisJCQkJMEY3QzkyRDIy
NkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQu
aCAqLywKKwkJCQkwRkM0MEE3MzI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19w
b29sX3Rha2VfcmVzdWx0LmggKi8sCiAJCQkJMEZDNDBBQUYyNDUxNDk4RjAwODc2REEwIC8qIHBh
c19wYWdlX3NoYXJpbmdfcG9vbC5jICovLAogCQkJCTBGQzQwQUE5MjQ1MTQ5OEUwMDg3NkRBMCAv
KiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCAqLywKLQkJCQkwRkM0MEE3MzI0NTE0OThBMDA4NzZE
QTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmggKi8sCiAJCQkJMEY4NzAw
NEMyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5j
ICovLAogCQkJCTBGODcwMDVDMjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZh
dGlvbl9wYWdlX2xpc3QuaCAqLywKIAkJCQkwRkM0MEEzNzI0NTE0OTg2MDA4NzZEQTAgLyogcGFz
X3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUuaCAqLywKQEAgLTE4MDUsMTEg
KzE3NTUsMTEgQEAKIAkJCQkwRkM0MEE0MDI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3JhY2VfdGVz
dF9ob29rcy5oICovLAogCQkJCTBGQzQwQTFGMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfcmFuZG9t
LmMgKi8sCiAJCQkJMEZDNDBBODQyNDUxNDk4QzAwODc2REEwIC8qIHBhc19yYW5kb20uaCAqLywK
LQkJCQkwRkM0MEEyNzI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3JhbmdlLmggKi8sCi0JCQkJMEZD
NDBBNzUyNDUxNDk4QjAwODc2REEwIC8qIHBhc19yYW5nZTE2LmggKi8sCiAJCQkJMEY4NzAwNTQy
NUFGOEExQTAwMEUxQUJGIC8qIHBhc19yYW5nZV9iZWdpbl9taW5faGVhcC5oICovLAogCQkJCTBG
QzQwQUQ4MjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfcmFuZ2VfbG9ja2VkX21vZGUuaCAqLywKIAkJ
CQkwRkM0MEFCQzI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3JhbmdlX21pbl9oZWFwLmggKi8sCisJ
CQkJMEZDNDBBMjcyNDUxNDk4NTAwODc2REEwIC8qIHBhc19yYW5nZS5oICovLAorCQkJCTBGQzQw
QTc1MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfcmFuZ2UxNi5oICovLAogCQkJCTBGQzQwQTQ0MjQ1
MTQ5ODcwMDg3NkRBMCAvKiBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUuaCAqLywKIAkJCQkwRkM0
MEE4NjI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3JlYWxsb2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxl
LmggKi8sCiAJCQkJMEZDNDBBQkYyNDUxNDk5MDAwODc2REEwIC8qIHBhc19yZWRfYmxhY2tfdHJl
ZS5jICovLApAQCAtMTgyMyw2NyArMTc3Myw2MCBAQAogCQkJCTBGQzQwQTZEMjQ1MTQ5OEEwMDg3
NkRBMCAvKiBwYXNfc2NhdmVuZ2VyLmMgKi8sCiAJCQkJMEZDNDBBNTcyNDUxNDk4ODAwODc2REEw
IC8qIHBhc19zY2F2ZW5nZXIuaCAqLywKIAkJCQkwRkM0MEE3MDI0NTE0OThBMDA4NzZEQTAgLyog
cGFzX3NlZ21lbnRlZF92ZWN0b3IuaCAqLywKLQkJCQkwRjhFNzg1QzI0Nzg3Mzk1MDBFMTI0QTYg
LyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYyAqLywKLQkJCQkwRjhFNzg1NzI0
Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLywK
LQkJCQkwRjhFNzg1MjI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3LmMgKi8sCi0JCQkJMEY4RTc4NTkyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfdmlldy5oICovLAotCQkJCTBGQzQwQTI0MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnkuYyAqLywKLQkJCQkwRkM0MEE2RjI0NTE0OThBMDA4NzZEQTAg
LyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmggKi8sCisJCQkJMEY3QzkyRDUyNkU1N0Y3NDAw
NkFGMDEyIC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggKi8sCiAJCQkJMEZD
NDBBOTAyNDUxNDk4QzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVm
ZXJlbmNlLmggKi8sCiAJCQkJMEY4NzAwNTgyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kLmggKi8sCiAJCQkJMEZDNDBBODAyNDUx
NDk4QjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJ
CQkJMEZDNDBBRUUyNDUxNDk5MzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9r
aW5kLmggKi8sCisJCQkJMEZDNDBBMjQyNDUxNDk4NTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeS5jICovLAorCQkJCTBGQzQwQTZGMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkuaCAqLywKKwkJCQkwRjE4RjgzQzI1QzM0Njc3MDA3MjFDMkEgLyog
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUU2
MjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jICovLAog
CQkJCTBGQzQwQTZCMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldy5oICovLAotCQkJCTBGMThGODNDMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmggKi8sCi0JCQkJMEY4RTc4NTQyNDc4NzM5NTAwRTEy
NEE2IC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggKi8s
Ci0JCQkJMEY4RTc4NTUyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeS5jICovLAotCQkJCTBGOEU3ODVEMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjhFNzg1QjI0Nzg3
Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaCAqLywKLQkJCQkwRkM0MEFEQzI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRf
aGVhcC5jICovLAotCQkJCTBGQzQwQTJGMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRl
ZF9oZWFwLmggKi8sCiAJCQkJMEZDNDBBMjAyNDUxNDk4NTAwODc2REEwIC8qIHBhc19zZWdyZWdh
dGVkX2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTdGMjQ1MTQ5OEIwMDg3NkRBMCAvKiBw
YXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9raW5kLmggKi8sCiAJCQkJMEZDNDBBNTkyNDUxNDk4
OTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX21vZGUuaCAqLywK
LQkJCQkwRkM0MEFERjI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jICov
LAotCQkJCTBGQzQwQTM4MjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmgg
Ki8sCisJCQkJMEZDNDBBREMyNDUxNDk5MjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAu
YyAqLywKKwkJCQkwRkM0MEEyRjI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVh
cC5oICovLAogCQkJCTBGNUZFN0QxMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2FuZF9jb25maWcuaCAqLywKLQkJCQkwRkM0MEE0MTI0NTE0OTg3MDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyAqLywKLQkJCQkwRkM0MEFEMTI0NTE0OTkxMDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCAqLywKIAkJCQkwRkM0MEFEQTI0NTE0
OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oICovLAog
CQkJCTBGQzQwQUU1MjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kLmMgKi8sCiAJCQkJMEZDNDBBNzYyNDUxNDk4QjAwODc2REEwIC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmICovLAogCQkJCTBGQzQwQTVBMjQ1MTQ5ODkwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmggKi8sCi0JCQkJMEZDNDBBOTcy
NDUxNDk4RDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggKi8s
CiAJCQkJMEZDNDBBNTUyNDUxNDk4ODAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJCQkwRkM0MEE5NzI0NTE0OThEMDA4NzZEQTAgLyog
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaCAqLywKIAkJCQkwRjVGRTdDOTI1QjYy
MTBCMDAxODU5RkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oICovLAor
CQkJCTBGQzQwQTQxMjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Zy5jICovLAorCQkJCTBGQzQwQUQxMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQUFDMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2VtcHRpbmVzc19raW5kLmggKi8sCiAJCQkJMEZDNDBBOTkyNDUxNDk4RDAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLywKIAkJ
CQkwRkM0MEE2NzI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFkZXJf
cGxhY2VtZW50X21vZGUuaCAqLywKIAkJCQkwRkM0MEFERDI0NTE0OTkyMDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmggKi8sCisJCQkJMEZDNDBBREYyNDUxNDk5MjAwODc2
REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuYyAqLywKKwkJCQkwRkM0MEEzODI0NTE0OTg2MDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oICovLAorCQkJCTBGQzQwQURFMjQ1MTQ5OTIw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfaW5saW5lcy5oICovLAogCQkJ
CTBGQzQwQTNDMjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcu
YyAqLywKIAkJCQkwRkM0MEEyMTI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3LmggKi8sCi0JCQkJMEZDNDBBREUyNDUxNDk5MjAwODc2REEwIC8qIHBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlld19pbmxpbmVzLmggKi8sCisJCQkJMEZDNDBBRjcyNDUxNDk5NDAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfaW5saW5lcy5oICovLAogCQkJ
CTBGQzQwQUYzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxl
LmMgKi8sCiAJCQkJMEZDNDBBNkEyNDUxNDk4QTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3No
YXJlZF9oYW5kbGUuaCAqLywKLQkJCQkwRkM0MEFGNzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBNTMyNDUxNDk4
ODAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jICovLAog
CQkJCTBGQzQwQUJCMjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFn
ZV9kaXJlY3RvcnkuaCAqLywKKwkJCQkwRkM0MEE4ODI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTQ5MjQ1MTQ5ODcw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5jICovLAogCQkJCTBGQzQwQTMy
MjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oICovLAotCQkJ
CTBGQzQwQTg4MjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19p
bmxpbmVzLmggKi8sCisJCQkJMEY3QzkyREQyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCAqLywKKwkJCQkwRkM0MEEyMjI0NTE0
OTg1MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICov
LAogCQkJCTBGQzQwQUFCMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeS5jICovLAogCQkJCTBGQzQwQUY2MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeS5oICovLAotCQkJCTBGQzQwQTIyMjQ1MTQ5ODUwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJMEZDNDBB
NkUyNDUxNDk4QTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuYyAqLywKLQkJCQkwRkM0
MEFFRjI0NTE0OTkzMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oICovLAogCQkJCTBG
MThGODU3MjVDMzQ3RjMwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9p
bmxpbmVzLmggKi8sCi0JCQkJMEY4RTc4NUUyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdh
dGVkX3ZpZXdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTg1MjQ1MTQ5OEMwMDg3NkRBMCAvKiBw
YXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCAqLywKLQkJCQkwRkM0MEFDMDI0NTE0OTkwMDA4NzZE
QTAgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZS5oICovLAotCQkJCTBGNUZFN0RCMjVCNjIx
MEQwMDE4NTlGQyAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggKi8sCisJ
CQkJMEZDNDBBNkUyNDUxNDk4QTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuYyAqLywK
KwkJCQkwRkM0MEFFRjI0NTE0OTkzMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oICov
LAogCQkJCTBGNUZFN0NGMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9w
YWdlX2JvdW5kYXJ5X2lubGluZXMuaCAqLywKKwkJCQkwRjVGRTdEQjI1QjYyMTBEMDAxODU5RkMg
LyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oICovLAogCQkJCTBGQzQwQUFE
MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2lubGluZXMuaCAq
LywKKwkJCQkwRkM0MEFDMDI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3Jf
cGFnZS5oICovLAogCQkJCTBGQ0NEMTQyMjY1NjAxODYwMDE3MUExRiAvKiBwYXNfc2hhcmVkX3Bh
Z2VfZGlyZWN0b3J5X2J5X3NpemUuYyAqLywKIAkJCQkwRkNDRDE0MzI2NTYwMTg2MDAxNzFBMUYg
LyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmggKi8sCiAJCQkJMEZDNDBBNDYy
NDUxNDk4NzAwODc2REEwIC8qIHBhc19zaW1wbGVfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYg
Ki8sCkBAIC0xODk0LDExICsxODM3LDExIEBACiAJCQkJMEZDNDBBOUIyNDUxNDk4RDAwODc2REEw
IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmggKi8sCiAJCQkJMEZDNDBBMjYyNDUxNDk4
NTAwODc2REEwIC8qIHBhc19zaW1wbGVfdHlwZS5oICovLAogCQkJCTBGOTlGOTg2MjVDQjJDRDEw
MEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5oICovLAorCQkJCTBGQzQwQTJBMjQ1MTQ5ODUwMDg3
NkRBMCAvKiBwYXNfc2tpcF9saXN0X2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEFBRTI0NTE0OThG
MDA4NzZEQTAgLyogcGFzX3NraXBfbGlzdC5jICovLAogCQkJCTBGQzQwQUM0MjQ1MTQ5OTAwMDg3
NkRBMCAvKiBwYXNfc2tpcF9saXN0LmggKi8sCi0JCQkJMEZDNDBBMkEyNDUxNDk4NTAwODc2REEw
IC8qIHBhc19za2lwX2xpc3RfaW5saW5lcy5oICovLAotCQkJCTBGQzQwQTkyMjQ1MTQ5OEQwMDg3
NkRBMCAvKiBwYXNfc2xvd19wYXRoX21vZGUuaCAqLywKIAkJCQkwRkM0MEE2MTI0NTE0OTg5MDA4
NzZEQTAgLyogcGFzX3Nsb3dfcGF0aF9tb2RlX3ByZWZpeC5oICovLAorCQkJCTBGQzQwQTkyMjQ1
MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc2xvd19wYXRoX21vZGUuaCAqLywKIAkJCQkwRkM0MEFENTI0
NTE0OTkxMDA4NzZEQTAgLyogcGFzX3NtYWxsX2xhcmdlX21hcF9lbnRyeS5oICovLAogCQkJCTBG
QzQwQUVCMjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNfc25wcmludGYuaCAqLywKIAkJCQkwRkM0MEEx
RTI0NTE0OTg0MDA4NzZEQTAgLyogcGFzX3N0YXR1c19yZXBvcnRlci5jICovLApAQCAtMTkwNyw0
OCArMTg1MCw0NSBAQAogCQkJCTBGQzQwQUI5MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc3RyZWFt
LmggKi8sCiAJCQkJMEZDNDBBOTUyNDUxNDk4RDAwODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFt
LmMgKi8sCiAJCQkJMEZDNDBBM0YyNDUxNDk4NzAwODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFt
LmggKi8sCi0JCQkJMEY4NzAwODUyNUFGOTQ2MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5j
ICovLAotCQkJCTBGODcwMDg0MjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuaCAq
LywKLQkJCQkwRjg3MDA4MzI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5
LmMgKi8sCi0JCQkJMEY4NzAwODYyNUFGOTQ2MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcF9l
bnRyeS5oICovLAotCQkJCTBGQzQwQTdDMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlLmMgKi8sCi0JCQkJMEZDNDBBQzcyNDUxNDk5MDAwODc2REEwIC8qIHBhc190aHJl
YWRfbG9jYWxfY2FjaGUuaCAqLywKLQkJCQkwRkM0MEE2MjI0NTE0OTg5MDA4NzZEQTAgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYyAqLywKLQkJCQkwRkM0MEE4MjI0NTE0OThCMDA4
NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCAqLywKKwkJCQkwRjdDOTJE
ODI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9r
aW5kLmggKi8sCiAJCQkJMEY4RTgzMjcyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUuYyAqLywKIAkJCQkwRjhFODMyODI0OTJFQUYzMDA0NkQ3Rjgg
LyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oICovLAorCQkJCTBGQzQwQTYy
MjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jICovLAor
CQkJCTBGQzQwQTgyMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dC5oICovLAogCQkJCTBGQzQwQUEyMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX25vZGUuYyAqLywKIAkJCQkwRkM0MEFBNzI0NTE0OThFMDA4NzZEQTAgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmggKi8sCisJCQkJMEZDNDBBN0MyNDUxNDk4QjAwODc2
REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuYyAqLywKKwkJCQkwRkM0MEFDNzI0NTE0OTkw
MDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oICovLAogCQkJCTBGQzQwQTc4MjQ1
MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdGlueV9sYXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkwRkM0
MEFDNTI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3RyZWVfZGlyZWN0aW9uLmggKi8sCiAJCQkJMEY4
QTgwMUMyNUNGOTM4QTAwNzkwQjRBIC8qIHBhc190cmlfc3RhdGUuaCAqLywKLQkJCQkwRkM0MEE2
NTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3RyeV9hbGxvY2F0ZS5oICovLAogCQkJCTBGQzQwQTUy
MjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmggKi8sCiAJCQkJMEZD
NDBBMzkyNDUxNDk4NjAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfY29tbW9uLmggKi8sCiAJ
CQkJMEZDNDBBODcyNDUxNDk4QzAwODc2REEwIC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2lj
X3ByaW1pdGl2ZS5oICovLAogCQkJCTBGQzQwQTJCMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfdHJ5
X2FsbG9jYXRlX3ByaW1pdGl2ZS5oICovLAorCQkJCTBGQzQwQTY1MjQ1MTQ5ODkwMDg3NkRBMCAv
KiBwYXNfdHJ5X2FsbG9jYXRlLmggKi8sCiAJCQkJMEZDNDBBMzAyNDUxNDk4NjAwODc2REEwIC8q
IHBhc190cnlfcmVhbGxvY2F0ZS5oICovLAogCQkJCTBGNTE5M0Y0MjY2QzQyQkYwMDQ4M0EyQyAv
KiBwYXNfdHJ5X3Nocmluay5oICovLAogCQkJCTBGQzQwQTc5MjQ1MTQ5OEIwMDg3NkRBMCAvKiBw
YXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKLQkJCQkwRkM0MEEzMTI0NTE0OTg2MDA4
NzZEQTAgLyogcGFzX3V0aWxpdHlfaGVhcC5jICovLAotCQkJCTBGQzQwQUQwMjQ1MTQ5OTEwMDg3
NkRBMCAvKiBwYXNfdXRpbGl0eV9oZWFwLmggKi8sCiAJCQkJMEZDNDBBMkMyNDUxNDk4NTAwODc2
REEwIC8qIHBhc191dGlsaXR5X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEZDNDBBOUQyNDUxNDk4
RDAwODc2REEwIC8qIHBhc191dGlsaXR5X2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEZDNDBBMUMy
NDUxNDk4NDAwODc2REEwIC8qIHBhc191dGlsaXR5X2hlYXBfc3VwcG9ydC5oICovLAorCQkJCTBG
QzQwQTMxMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfdXRpbGl0eV9oZWFwLmMgKi8sCisJCQkJMEZD
NDBBRDAyNDUxNDk5MTAwODc2REEwIC8qIHBhc191dGlsaXR5X2hlYXAuaCAqLywKKwkJCQkwRkM0
MEE1QzI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3V0aWxzX3ByZWZpeC5oICovLAogCQkJCTBGQzQw
QUU3MjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNfdXRpbHMuYyAqLywKIAkJCQkwRkM0MEFEMzI0NTE0
OTkxMDA4NzZEQTAgLyogcGFzX3V0aWxzLmggKi8sCi0JCQkJMEZDNDBBNUMyNDUxNDk4OTAwODc2
REEwIC8qIHBhc191dGlsc19wcmVmaXguaCAqLywKIAkJCQkwRjg3MDA4NzI1QUY5NDYyMDAwRTFB
QkYgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5jICovLAogCQkJCTBGQzQwQTJEMjQ1MTQ5ODYwMDg3
NkRBMCAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmggKi8sCisJCQkJMEZDNDBBRTAyNDUxNDk5MjAw
ODc2REEwIC8qIHBhc192aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggKi8sCiAJCQkJMEZDNDBBQkUy
NDUxNDk5MDAwODc2REEwIC8qIHBhc192aXJ0dWFsX3JhbmdlLmMgKi8sCiAJCQkJMEZDNDBBRUQy
NDUxNDk5MzAwODc2REEwIC8qIHBhc192aXJ0dWFsX3JhbmdlLmggKi8sCi0JCQkJMEZDNDBBRTAy
NDUxNDk5MjAwODc2REEwIC8qIHBhc192aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggKi8sCiAJCQkJ
MEZDNDBBRUEyNDUxNDk5MzAwODc2REEwIC8qIHBhc196ZXJvX21vZGUuaCAqLywKLQkJCQkwRjg3
MDBDRTI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuYyAqLywKLQkJCQkwRjg3MDBDQTI1
QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuaCAqLywKIAkJCQkwRjg3MDBDRDI1QjBDQjAy
MDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY4NzAwQ0MyNUIwQ0Iw
MjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGODcwMENCMjVCMENC
MDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9wcmVmaXguaCAqLywKKwkJCQkwRjg3MDBDRTI1QjBD
QjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuYyAqLywKKwkJCQkwRjg3MDBDQTI1QjBDQjAyMDAw
RTFBQkYgLyogdGhpbmd5X2hlYXAuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gbGlicGFzOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIxMzYsNiArMjA3Niw3IEBACiAJCQlidWlsZEFj
dGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMTRERDc4QzUxOEY0OEQ3
NTAwOTUwNzAyIC8qIEFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRUQyNkU1
N0Y3NTAwNkFGMDEyIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VCODM0MUY5NTQxQjAwMEYxQUJDQiAvKiBBbGxJ
c29IZWFwcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4NEYxRjk1NEQ0RTAwRjFBQkNCIC8q
IEFsbElzb0hlYXBzSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTgxOEY0OEQ0
QTAwOTUwNzAyIC8qIEFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjE5LDYgKzIxNjAs
NyBAQAogCQkJCTBGN0VCODI3MUY5NTQxQjAwMEYxQUJDQiAvKiBJc29UTFNEZWFsbG9jYXRvckVu
dHJ5SW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4MkQxRjk1NDFCMDAwRjFBQkNC
IC8qIElzb1RMU0VudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjgzNTFGOTU0MUIwMDBG
MUFCQ0IgLyogSXNvVExTRW50cnlJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJG
MDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjdFQjg0NjFGOTU0MUIwMDBGMUFCQ0IgLyogSXNvVExTSW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4NDAxRjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMU0xheW91
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1MTkzRUYyNjZDNDJBRDAwNDgzQTJDIC8qIGppdF9o
ZWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNDMsMTAgKzIxODUsOCBAQAogCQkJCTBGQzQwOTVB
MjQ1MTQ5NDQwMDg3NkRBMCAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDA5NUIyNDUxNDk0NDAwODc2REEwIC8qIHBhc19hbGlnbmVkX2Fs
bG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5NjAyNDUxNDk0NDAwODc2REEwIC8q
IHBhc19hbGlnbm1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODdGRkY2MjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMUJGRDQ4MjY2NDVBQzcwMENFQzI4RCAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDA5REUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxfaGVhcHMu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGMUFFQ0VDMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxs
X21hZ2F6aW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5QzgyNDUxNDk2NDAwODc2REEw
IC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwOURGMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzQwOUQ3MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsb2Nh
dGlvbl9jb25maWcuaCBpbiBIZWFkZXJzICovLApAQCAtMjI1Niw2ICsyMTk2LDcgQEAKIAkJCQkw
Rjc1NDk4MjI0ODY5NzQwMDAyQTRDN0QgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDA5RTMyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxvY2F0b3Jfc2Nh
dmVuZ2VfYWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlGODI0NTE0OTY0MDA4NzZE
QTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3Qzky
RTMyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlEODI0NTE0OTY0MDA4NzZEQTAgLyog
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQw
OUQxMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjg3MDAwNDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hl
YXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjYzLDIwICsy
MjA0LDEzIEBACiAJCQkJMEZDNDA5RkMyNDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNpY19oZWFw
X3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlENDI0NTE0OTY0MDA4NzZE
QTAgLyogcGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwOUVDMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2Nh
Y2hlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4N0ZGRTkyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4N0ZGRTgyNUFGODk3
QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjg3MDAwMjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTBCMjQ1MTQ5NjQwMDg3NkRBMCAvKiBw
YXNfYml0ZmllbGRfdmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDAwQzI1QUY4OTdE
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY4N0ZGRTUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjg3RkZGMTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZp
dF9hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4N0ZGRjAyNUFGODk3
QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGODdGRkY4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4N0ZGREQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRm
aXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGRUYyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGODdGRkY0MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9y
eV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3RkZGMjI1QUY4OTdDMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3RkZE
OTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY4N0ZGRkQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfaGVh
cC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGRkEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfbWF4X2ZyZWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODdGRkZCMjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjMxMSw3ICsyMjQ1
LDYgQEAKIAkJCQkwRjhFNzg2MTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMTgyNDUx
NDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0b21pY19wdHIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGOEU3ODYzMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3ODY0MjQ3
ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlEQzI0NTE0OTY0MDA4
NzZEQTAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdf
cG9vbHNfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEEwMTI0NTE0OTY0MDA4NzZEQTAg
LyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDBBMTIyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX3ZpZXcuaCBpbiBIZWFkZXJzICovLApAQCAtMjMyOSwyNCArMjI2Miwy
NSBAQAogCQkJCTBGNUZFN0VEMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9wYWdlX2dy
YW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5REQyNDUxNDk2
NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RTc4
NkQyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg2QjI0Nzg3Mzk1MDBFMTI0QTYg
LyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MEExMDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9oZWFwX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RjcyNDUxNDk2
NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5QzYyNDUxNDk2NDAwODc2REEwIC8qIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkM0MDlFNTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF92aWV3
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFMjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
NDA5RDMyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RUYyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21w
YWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUZFN0Uz
MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzQwQTE3MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFj
dF90YWdnZWRfYXRvbWljX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3RUUyNUI2MjEw
RDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5QzcyNDUxNDk2NDAwODc2REEwIC8qIHBhc19j
b21wYWN0X3RhZ2dlZF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUY1MjQ1MTQ5NjQw
MDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MDlGMDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdW5zaWduZWRf
cHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEEwOTI0NTE0OTY0MDA4NzZEQTAgLyogcGFz
X2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjdDOTJFRjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMEUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb25m
aWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUZFMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
Y29uZmlnX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMDMyNDUxNDk2NDAwODc2
REEwIC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5
QzUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193
aXRoX3Jlc2VydmVkX21lbW9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRUMyNkU1N0Y3
NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwOUYxMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY1RkU3RUYyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19kZWFsbG9jYXRpb25f
bW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RjkyNDUxNDk2NDAwODc2REEwIC8qIHBh
c19kZWFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDE4LDcgKzIzNTIsNiBAQAogCQkJ
CTBGQzQwQjdBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDBCNkYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19pbW11dGFibGVfdmVj
dG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjUxNkVFNTI0NTYxODRGMDA0RTJCOEQgLyogcGFz
X2ludGVybmFsX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDNDBCOTIyNDUxNDk5NDAw
ODc2REEwIC8qIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQjJGMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaW50cmluc2ljX2hlYXBfc3Vw
cG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNzcyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19sYXJnZV9mcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIzMjI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0
MCwxMyArMjM3MywxMiBAQAogCQkJCTBGQzQwQjI4MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9j
YWxfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIyQTI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDBCNzMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgxMzcyNUY4M0UyNTAwNzkwQjRBIC8qIHBhc19s
b2NhbF9hbGxvY2F0b3JfbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCOTMyNDUxNDk5
NDAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQzQwQjJFMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9y
X3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNjcyNDUxNDk5NDAwODc2REEwIC8q
IHBhc19sb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFNzI2RTU3Rjc1MDA2QUYwMTIg
LyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MEI3RjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2tfZnJl
ZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI5QzI0
NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4NjYy
NDc4NzM5NTAwRTEyNEE2IC8qIHBhc19tYWdhemluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4
NzAwNjUyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQjA0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbWVnYXBhZ2Vf
Y2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjVBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ2Niw2ICsyMzk4LDcgQEAKIAkJCQkw
Rjg3MDA2QzI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjg3MDA3NzI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2Vfa2luZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCRDAyNDUxNDk5NDAwODc2REEwIC8qIHBhc19wYWdl
X21hbGxvYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRTQyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGODcwMDc4MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQjJCMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI3QjI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmggaW4gSGVhZGVycyAq
LywKQEAgLTI0ODMsNiArMjQxNiw3IEBACiAJCQkJMEZDNDBCMUYyNDUxNDk5NDAwODc2REEwIC8q
IHBhc19yYWNlX3Rlc3RfaG9va3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjYwMjQ1MTQ5
OTQwMDg3NkRBMCAvKiBwYXNfcmFuZG9tLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIwNjI0
NTE0OTk0MDA4NzZEQTAgLyogcGFzX3JhbmdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJF
ODI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9r
aW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI1MjI0NTE0OTk0MDA4NzZEQTAgLyogcGFz
X3JhbmdlMTYuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDcxMjVBRjhBMUIwMDBFMUFCRiAv
KiBwYXNfcmFuZ2VfYmVnaW5fbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkIz
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcmFuZ2VfbG9ja2VkX21vZGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMjQ5NSw4ICsyNDI5LDYgQEAKIAkJCQkwRjg3MDA3NjI1QUY4QTFCMDAwRTFBQkYgLyog
cGFzX3Jvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjM1MjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfc2NhdmVuZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI0RDI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3NlZ21lbnRlZF92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3
ODZDMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4NkUyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNEMyNDUxNDk5
NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDBCNkIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9i
aXRfcmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA3NTI1QUY4QTFCMDAwRTFB
QkYgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjUwNCw5ICsyNDM2LDYgQEAKIAkJCQkwRkM0MEJDOTI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwQjQ4MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxOEY4NDUyNUMzNDY3NzAwNzIxQzJBIC8qIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOEU3ODY5MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4NzIyNDc4NzM5NTAw
RTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY4RTc4NzAyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIw
RTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDBBRkYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNUIyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tpbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxNSwx
MiArMjQ0NCwxNCBAQAogCQkJCTBGNUZFN0U2MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlX2FuZF9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkFDMjQ1MTQ5
OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDBCQjUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0M5MkU1MjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDBCRDYyNDUxNDlBRTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmQuZGVmIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMzgyNDUxNDk5NDAwODc2REEwIC8q
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwQjcyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGls
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMzMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNUZFN0RFMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192
YXJpYW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI4NzI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5lc3Nfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY3QzkyRUUyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkM0MEI3NDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9ncmFudWxlX3VzZV9jb3VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNDQyNDUx
NDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJCODI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MzUsNyArMjQ2Niw2
IEBACiAJCQkJMEZDNDBCMDEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkNBMjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE4
Rjg1ODI1QzM0N0YzMDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4NzMyNDc4NzM5NTAwRTEyNEE2IC8qIHBh
c19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNjEy
NDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDNDBCOUIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zaGFyZWRfaGFuZGxlX29y
X3BhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUZFN0YwMjVCNjIxMEQwMDE4NTlGQyAvKiBw
YXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTI1
NTcsOCArMjQ4Nyw2IEBACiAJCQkJMEZDNDBBRkEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zdGF0
dXNfcmVwb3J0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjk0MjQ1MTQ5OTQwMDg3NkRB
MCAvKiBwYXNfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIxRTI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3N0cmluZ19zdHJlYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODcwMDg5
MjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGODcwMDhCMjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQkEyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI1RTI0NTE0OTk0MDA4NzZEQTAg
LyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
OEU4MzMwMjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1OTIsNiArMjUyMCw3IEBACiAJCQkJMEY1QkYxNTMx
RjIyRTE1NzAwMjlEOTFEIC8qIFNjYXZlbmdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ4RUZB
RTgxRDZCOTUzQjAwOEU3MjFFIC8qIFNjb3BlRXhpdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRE
RDc4OTAxOEY0OENFQjAwOTUwNzAyIC8qIFNpemVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdD
OTJFQjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3OEJDMThGNDhENkIwMDk1MDcwMiAv
KiBTbWFsbExpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3OEJEMThGNDhENkIwMDk1MDcw
MiAvKiBTbWFsbFBhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMUU3NDgwMjIzOENBNUMwMDVE
MDg0QSAvKiBTdGF0aWNQZXJQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MzUsMjIgKzI2
NjQsMTYgQEAKIAkJCQkwRjE4Rjg0NzI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVh
cC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEY4NDkyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2Vz
aXplNjRrX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MDk1RDI0NTE0OTQ0
MDA4NzZEQTAgLyogcGFzX2FsaWdubWVudC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4NzAwMDUy
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZDNDA5NjQyNDUxNDk0NDAwODc2REEwIC8qIHBhc19hbGxfaGVhcHMuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGMUFFQ0VEMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21h
Z2F6aW5lcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBBMTUyNDUxNDk2NDAwODc2REEwIC8q
IHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
QzQwOUY0MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGODdGRkVFMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHQuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwOURBMjQ1MTQ5NjQwMDg3NkRBMCAv
KiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MDlFRDI0
NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY1MTkzRjMyNjZDNDJBRDAwNDgzQTJDIC8qIHBhc19iYXNpY19oZWFwX2Nv
bmZpZ19lbnVtZXJhdG9yX2RhdGEuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGODdGRkU2MjVBRjg5
N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTBGODcwMDAzMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY4N0ZGREUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMDAxMjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4N0ZG
RjUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY4N0ZGRTAyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODdGRkYzMjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGN0M5MkYxMjZF
NTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgaW4gU291cmNlcyAq
LywKIAkJCQkwRjg3MDAwNzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlLmMgaW4g
U291cmNlcyAqLywKIAkJCQkwRjg3RkZFNDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ19raW5kLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3RkZFMzI1QUY4OTdDMDAw
RTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLywKQEAgLTI3NzYs
NiArMjY5OSw4IEBACiAJCQkJMEY4NzAwNDIyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19lbnVtZXJh
YmxlX3JhbmdlX2xpc3QuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMDA2MjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY4N0ZGRjkyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNj
b3VudGVkX3BhZ2VzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjdDOTJFOTI2RTU3Rjc1MDA2QUYw
MTIgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGN0M5
MkVBMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3RkZFNzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Vu
dW1lcmF0ZV9sYXJnZV9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwMzAyNUFGODlD
OTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY4NzAwMzYyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfdW5hY2Nv
dW50ZWRfcGFnZXNfYXNfbWV0YS5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNzgzLDYgKzI3MDgsNyBA
QAogCQkJCTBGODcwMDM5MjVBRjg5QzkwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24u
YyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQTA1MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZXBv
Y2guYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQTA2MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
ZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY3QzkyRTYyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRkM0MDlDQjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2V4dGVuZGVkX2dj
ZC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNzkyNDUxNDk5NDAwODc2REEwIC8qIHBhc19m
YXN0X2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwMzEyNUFGODlD
OTAwMEUxQUJGIC8qIHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLywKQEAg
LTI4MTAsNyArMjczNiw2IEBACiAJCQkJMEZDNDBCREEyNDUyNDNBNDAwODc2REEwIC8qIHBhc19s
b2NrLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEIzNDI0NTE0OTk0MDA4NzZEQTAgLyogcGFz
X2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RkM0MEJCMjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEY4RTc4NjAyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19tYWdhemluZS5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEY4NzAwNjgyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2Fj
aGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjVEMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
bWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjZBMjQ1MTQ5OTQwMDg3
NkRBMCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuYyBpbiBTb3VyY2VzICovLApAQCAtMjgzMCwxMSAr
Mjc1NSw4IEBACiAJCQkJMEZDNDBCNjYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19yZXNlcnZlZF9t
ZW1vcnlfcHJvdmlkZXIuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMDcwMjVBRjhBMUIwMDBF
MUFCRiAvKiBwYXNfcm9vdC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNEEyNDUxNDk5NDAw
ODc2REEwIC8qIHBhc19zY2F2ZW5nZXIuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOEU3ODcxMjQ3
ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY4RTc4NjcyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfdmlldy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCMDMyNDUxNDk5NDAwODc2
REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZD
NDBCQzEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjhFNzg2QTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEJC
NzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZDNDBCQkEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuYyBp
biBTb3VyY2VzICovLAogCQkJCTBGQzQwQjIwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCkBAIC0yODUyLDggKzI3NzQsNiBAQAog
CQkJCTBGQzQwQUZEMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmMgaW4g
U291cmNlcyAqLywKIAkJCQkwRkM0MEI0NTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0cmVhbS5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNzAyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zdHJp
bmdfc3RyZWFtLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3MDA4QTI1QUY5NDYyMDAwRTFBQkYg
LyogcGFzX3N1YnBhZ2VfbWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3MDA4ODI1QUY5NDYy
MDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RkM0MEI1ODI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZDNDBCNDAyNDUxNDk5NDAwODc2REEwIC8qIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjhFODMyRjI0OTJFQUYzMDA0
NkQ3RjggLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JQbGF0Zm9ybS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlBsYXRmb3JtLmgJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlBsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMyMCw4ICszMjAsMTIgQEAKIAogLyogQlVTRShMSUJQQVMpIGlzIHVzaW5nIGxpYnBhcyBmb3Ig
Ym1hbGxvYyByZXBsYWNlbWVudC4gKi8KICNpZiAhZGVmaW5lZChCVVNFX0xJQlBBUykKKyNpZiBk
ZWZpbmVkKEJFTkFCTEVfTElCUEFTKSAmJiBCRU5BQkxFX0xJQlBBUworI2RlZmluZSBCVVNFX0xJ
QlBBUyAxCisjZWxzZQogI2RlZmluZSBCVVNFX0xJQlBBUyAwCiAjZW5kaWYKKyNlbmRpZgogCiAj
aWYgIWRlZmluZWQoQlVTRV9QUkVDT01QVVRFRF9DT05TVEFOVFNfVk1QQUdFNEspCiAjZGVmaW5l
IEJVU0VfUFJFQ09NUFVURURfQ09OU1RBTlRTX1ZNUEFHRTRLIDEKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9leHBvcnQuc2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L2V4cG9ydC5zaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvZXhwb3J0
LnNoCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAgQEAKKyMhL2Jpbi9zaAorIyBDb3B5cmln
aHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAK
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworc2V0IC1lCitzZXQgLXgKKworcm0gLXJmIGxpYnBh
cy1leHBvcnQKK2dpdCBjbG9uZSAuIGxpYnBhcy1leHBvcnQKK3JtIC1yZiBsaWJwYXMtZXhwb3J0
Ly5naXQKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9leHBvcnQu
c2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4ZWN1dGFibGUKIyMgLTAsMCArMSAjIworKgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
bGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM5LDI3ICszOSwyNSBAQAogLyogQmVnaW4gUEJY
QnVpbGRGaWxlIHNlY3Rpb24gKi8KIAkJMEYwMzdBRjMyNUFFQTkxQTAwNzlCNTgyIC8qIHBhc19t
ZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMDM3QUYxMjVBRUE5MTkwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2Fw
YWdlX2NhY2hlLmMgKi87IH07CiAJCTBGMDM3QUY0MjVBRUE5MUEwMDc5QjU4MiAvKiBwYXNfbWVk
aXVtX21lZ2FwYWdlX2NhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjAzN0FGMjI1QUVBOTFBMDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdhcGFn
ZV9jYWNoZS5oICovOyB9OwotCQkwRjA0QzIxNDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMDRDMjAyMjQ2MERCNkQwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeS5oICovOyB9OwotCQkwRjA0QzIxNTI0NjBEQjZGMDAxRDMxRjAg
LyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwMzI0NjBEQjZFMDAxRDMxRjAg
LyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmMgKi87IH07Ci0JCTBGMDRD
MjE2MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRD
MjA0MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkuaCAqLzsgfTsKLQkJMEYwNEMyMTkyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwNzI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaCAqLzsgfTsKLQkJMEYwNEMy
MUEyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19tYWdhemluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMDgyNDYwREI2RTAwMUQzMUYwIC8qIHBh
c19tYWdhemluZS5oICovOyB9OwotCQkwRjA0QzIxQzI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjA0QzIwQTI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3LmMgKi87IH07CiAJCTBGMDRDMjFEMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNf
aGVhcF9jb25maWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYwNEMyMEIyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19oZWFwX2NvbmZpZ19p
bmxpbmVzLmggKi87IH07Ci0JCTBGMDRDMjFFMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMDRDMjBDMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcuaCAqLzsgfTsKIAkJMEYwNEMyMUYyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19sb2Nr
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIw
RDI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX2xvY2suYyAqLzsgfTsKLQkJMEYwNEMyMjAyNDYwREI2
RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwRTI0NjBEQjZFMDAx
RDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYyAqLzsgfTsKLQkJMEYw
NEMyMjEyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjA0QzIwRjI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2lubGluZXMuaCAqLzsgfTsKLQkJMEYwNEMyMjIyNDYwREI2RjAwMUQzMUYw
IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMTAyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICovOyB9OwotCQkwRjA0QzIyNDI0NjBEQjZGMDAxRDMx
RjAgLyogcGFzX21hZ2F6aW5lLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjA0QzIxMjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmMgKi87
IH07CiAJCTBGMDRDMjI1MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFn
ZV9zaGFyaW5nX3Bvb2xfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjA0QzIxMzI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oICovOyB9OwotCQkwRjA0QzIyODI0NjExQ0ZEMDAxRDMx
RjAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIyNjI0
NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfcHRyLmggKi87IH07Ci0JCTBGMDRDMjI5MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIyNzI0NjExQ0ZE
MDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0ci5oICovOyB9OwogCQkwRjA4M0Y1QTIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwODNGNTgyMkMyOTc5QjAwRjNDREIzIC8qIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLzsgfTsKIAkJMEYwODNG
NUIyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA4M0Y1OTIyQzI5
NzlCMDBGM0NEQjMgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLzsgfTsKIAkJ
MEYwOTIyNkEyMkIwN0MyMTAwN0Q1RDNBIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwOTIyNjkyMkIwN0MyMTAw
N0Q1RDNBIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oICovOyB9OwogCQkwRjA5MjI2QzIyQjJEODhF
MDA3RDVEM0EgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDkyMjZCMjJCMkQ4OEUwMDdE
NUQzQSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oICovOyB9OwogCQkwRjA5
MjI2RTIyQjJEOTA5MDA3RDVEM0EgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA5MjI2RDIyQjJEOTA5MDA3
RDVEM0EgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmggKi87IH07CisJCTBGMTQ4NzEwMjY5Qjc1
MTgwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MEEyNjlCNzUxNzAw
Njg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggKi87IH07CisJCTBG
MTQ4NzExMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMTQ4NzBCMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLzsgfTsKKwkJMEYxNDg3MTIyNjlCNzUx
ODAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcwQzI2OUI3NTE4MDA2ODg3QTkgLyogcGFz
X2xvY2FsX3ZpZXdfY2FjaGUuaCAqLzsgfTsKKwkJMEYxNDg3MTMyNjlCNzUxODAwNjg4N0E5IC8q
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcwRDI2OUI3NTE4MDA2ODg3
QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLzsgfTsK
KwkJMEYxNDg3MTQyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcwRTI2
OUI3NTE4MDA2ODg3QTkgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyAqLzsgfTsKKwkJMEYx
NDg3MTUyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjE0ODcwRjI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHIuaCAqLzsgfTsKKwkJMEYxNDg3MUYyNjlGNUZDQTAwNjg4N0E5IC8qIHBh
c19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzFBMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmll
d19jYWNoZV9ub2RlLmggKi87IH07CisJCTBGMTQ4NzIwMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNf
bG9jYWxfdmlld19jYWNoZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYxNDg3MUIyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hl
LmMgKi87IH07CisJCTBGMTQ4NzIxMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcxQzI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oICovOyB9OworCQkwRjE0ODcyMjI2
OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MUQyNjlGNUZDQTAwNjg4
N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyAqLzsgfTsKKwkJMEYxNDg3MjMyNjlG
NUZDQTAwNjg4N0E5IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MUUy
NjlGNUZDQTAwNjg4N0E5IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2lu
ZC5oICovOyB9OwogCQkwRjE1MThGRDIzNDQxRTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmplY3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTUxOEZD
MjM0NDFFMzIwMDgzMkI1QyAvKiBwYXNfaGFzX29iamVjdC5oICovOyB9OwogCQkwRjE4RTYzRTI2
MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTYzQzI2MjhC
RkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmggKi87IH07
CiAJCTBGMThFNjNGMjYyOEJGQjcwMEY2OTAzRCAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
X2J5X3NpemUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGMThFNjNEMjYyOEJGQjYwMEY2OTAzRCAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5
X3NpemUuYyAqLzsgfTsKQEAgLTc1LDggKzczLDYgQEAKIAkJMEYxOTMyNjkyMkYzQjNGMzAwRkJB
NzEzIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOTMyNjcyMkYzQjNG
MzAwRkJBNzEzIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5o
ICovOyB9OwogCQkwRjE5MzI2QzIyRjczRTg1MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOTMyNkEyMkY3
M0U4NDAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuaCAqLzsgfTsKIAkJMEYxOTMyNkQyMkY3M0U4
NTAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTkzMjZCMjJGNzNFODQwMEZCQTcxMyAvKiBwYXNfc2NhdmVu
Z2VyLmMgKi87IH07Ci0JCTBGMUFFQ0U4MjY1ODE5NjEwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6
aW5lcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYx
QUVDRTYyNjU4MTk2MDAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgKi87IH07Ci0JCTBG
MUFFQ0U5MjY1ODE5NjEwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQUVDRTcyNjU4MTk2MTAwMEM1
MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggKi87IH07CiAJCTBGMUJGRDQ0MjY2NDU3RjEwMENF
QzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMUJGRDQzMjY2NDU3RjEwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25m
aWcuYyAqLzsgfTsKIAkJMEYyMTUwRUIyNDg0QkIyQTAwMEQ2MzRCIC8qIHBhc19hbGxvY2F0b3Jf
aW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MjE1MEVBMjQ4NEJCMkEwMDBENjM0QiAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggKi87IH07CiAJ
CTBGMjE1MEVEMjQ4NEJCODYwMDBENjM0QiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9y
X2luZGV4X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYyMTUwRUMyNDg0QkI4NjAwMEQ2MzRCIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0
b3JfaW5kZXhfcHRyLmggKi87IH07CkBAIC0xMDcsNiArMTAzLDkgQEAKIAkJMEY0NDNCNDgyMzQx
NzYxNTAwQkU1MEQxIC8qIG1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkYwOEY1NTIyQTg2RTJFMDAz
ODY1NzUgLyogbWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmUuYyAqLzsgc2V0dGluZ3MgPSB7
Q09NUElMRVJfRkxBR1MgPSAiLURQQVNfVkVSSUZJRUQiOyB9OyB9OwogCQkwRjQ0M0I0QTIzNDE3
NjE1MDBCRTUwRDEgLyogbGlicGFzLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZERUE1RDkyMjk1RkM4QzAwODVFMzQwIC8qIGxpYnBhcy5k
eWxpYiAqLzsgfTsKIAkJMEY0NDNCNEYyMzQxNzc4MzAwQkU1MEQxIC8qIGxpYnBhc192ZXJpZmll
ci5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNDQzQjNBMjM0MTZBN0MwMEJFNTBEMSAvKiBsaWJwYXNfdmVyaWZpZXIuZHlsaWIgKi87IH07
CisJCTBGNDVENUE5MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDVENUE2
MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCAqLzsgfTsKKwkJ
MEY0NUQ1QUEyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
NDVENUE3MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9k
YXRhLmMgKi87IH07CisJCTBGNDVENUFCMjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxs
b2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjQ1RDVBODI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YS5oICovOyB9OwogCQkwRjQ3QzMxQTIzMzk2RDFGMDAyQTFDRjcg
LyogcGFzX2FsbG9jYXRpb25fa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0N0MzMTgyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9u
X2tpbmQuaCAqLzsgfTsKIAkJMEY0N0MzMUIyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19oZWFwX2tp
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDdD
MzE5MjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfaGVhcF9raW5kLmggKi87IH07CiAJCTBGNDdDMzFF
MjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDdDMzFDMjMzOTZFMEIwMDJB
MUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyAqLzsgfTsKQEAgLTE0NCw3ICsxNDMs
NiBAQAogCQkwRjRGNjFDQTI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRp
b25fcGFnZV9saXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjRGNjFDODI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25f
cGFnZV9saXN0LmggKi87IH07CiAJCTBGNEY2MUNCMjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5
bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEY2MUM5MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9h
ZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYyAqLzsgfTsKIAkJMEY1MDhENTMyNThFQ0ZEMzAwMTUx
RUQ4IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUwOEQ1MjI1OEVD
RkQzMDAxNTFFRDggLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tp
bmQuaCAqLzsgfTsKLQkJMEY1MDhENUMyNThFRENBNzAwMTUxRUQ4IC8qIElzb0hlYXBUYWJsaW5n
VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1MDhENUIyNThFRENBNzAwMTUxRUQ4IC8qIElzb0hlYXBUYWJsaW5nVGVzdHMuY3BwICovOyB9
OwogCQkwRjUxNkVFMzI0NTYwRkY1MDA0RTJCOEQgLyogcGFzX2ludGVybmFsX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTZFRTIyNDU2
MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCAqLzsgfTsKIAkJMEY1MTZFRTcy
NDU2MUE2MDAwNEUyQjhEIC8qIGlzb19oZWFwX2lubmFyZHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTE2RUU2MjQ1NjFBNjAwMDRFMkI4RCAvKiBp
c29faGVhcF9pbm5hcmRzLmggKi87IH07CiAJCTBGNTE5M0U3MjY2QUU1RDQwMDQ4M0EyQyAvKiBK
SVRIZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY1MTkzRTYyNjZBRTVENDAwNDgzQTJDIC8qIEpJVEhlYXBUZXN0cy5jcHAgKi87IH07
CkBAIC0yNjksMzQgKzI2NywyNSBAQAogCQkwRjk3RTYyRTIyQTlBODVGMDBDMzU1RjggLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOTdFNjJEMjJBOUE4NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZy5oICovOyB9OwogCQkwRjk3RTYzMDIyQTlBQUMxMDBDMzU1RjggLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOTdFNjJGMjJBOUFBQzEwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZy5jICovOyB9OwogCQkwRjk5Rjk4QzI1Q0IyQ0U4MDBFRUU0NDkgLyogcGFz
X3NpemVfdGh1bmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOTlGOThCMjVDQjJDRTgwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5oICovOyB9Owot
CQkwRjlBMUNFMzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUM5NzI1NTk5
NjExMDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggKi87IH07Ci0JCTBGOUExQ0U0
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQzk4MjU1OTk2MTEw
MEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCAqLzsgfTsKIAkJMEY5QTFD
RTUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2lu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFD
OTkyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2lu
ZC5oICovOyB9OwogCQkwRjlBMUNFNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5QTFDOUEyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdf
dXRpbHMuaCAqLzsgfTsKIAkJMEY5QTFDRTcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
bWF4X2ZyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUExQzlCMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0X21heF9mcmVlLmggKi87IH07
Ci0JCTBGOUExQ0U4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQzlDMjU1
OTk2MTEwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyAqLzsgfTsKIAkJMEY5QTFD
RTkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQzlE
MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5Lmgg
Ki87IH07CiAJCTBGOUExQ0VCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjlBMUM5RjI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfdmFyaWFudC5oICovOyB9OwogCQkwRjlBMUNFQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2Zhc3RfbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOUExQ0EwMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFn
ZV9jYWNoZS5jICovOyB9OwogCQkwRjlBMUNFRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF92aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjlBMUNBMTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmggKi87IH07CiAJCTBG
OUExQ0VFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0EyMjU1OTk2MTIwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X3ZpZXcuYyAqLzsgfTsKLQkJMEY5QTFDRUYyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTMyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdC5jICovOyB9OwogCQkwRjlBMUNGMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Nv
bW1pdF9zcGFuLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjlBMUNBNDI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmMgKi87IH07CiAJ
CTBGOUExQ0YxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
OUExQ0E1MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9yeV9w
dHIuaCAqLzsgfTsKIAkJMEY5QTFDRjIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRl
cl90YWJsZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5QTFDQTYyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5jICovOyB9
OwotCQkwRjlBMUNGMzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5
QTFDQTcyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCAq
LzsgfTsKIAkJMEY5QTFDRjQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTgyNTU5
OTYxMjAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5oICovOyB9OwogCQkwRjlBMUNGNTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0E5MjU1OTk2MTIwMEM4RDEx
QiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oICovOyB9OwotCQkwRjlBMUNGNjI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBQTI1NTk5NjEyMDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmggKi87IH07CiAJCTBGOUEx
Q0Y3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNB
QjI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5lcy5o
ICovOyB9OwogCQkwRjlBMUNGODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9pbmxp
bmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlB
MUNBQzI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmggKi87IH07CiAJ
CTBGOUExQ0Y5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcHJvbW90ZV9pbnRyaW5zaWNfaGVhcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQUQy
NTU5OTYxMzAwQzhEMTFCIC8qIHBhc19wcm9tb3RlX2ludHJpbnNpY19oZWFwLmggKi87IH07CiAJ
CTBGOUExQ0ZBMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0FF
MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCAqLzsgfTsK
LQkJMEY5QTFDRkIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xh
c3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUEx
Q0FGMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmggKi87
IH07Ci0JCTBGOUExQ0ZDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGly
ZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjlBMUNCMDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5j
ICovOyB9OwogCQkwRjlBMUNGRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3ZlcnNpb25lZF9maWVs
ZC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFD
QjEyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc192ZXJzaW9uZWRfZmllbGQuYyAqLzsgfTsKIAkJMEY5
QTFDRkUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Iy
MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0LmggKi87
IH07Ci0JCTBGOUExQ0ZGMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9r
aW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlB
MUNCMzI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oICovOyB9
OwogCQkwRjlBMUQwMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0I0MjU1OTk2
MTMwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5jICovOyB9OwogCQkwRjlBMUQwMTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0I1MjU1OTk2MTMwMEM4RDExQiAv
KiBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oICovOyB9OwogCQkwRjlBMUQwMjI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0I2MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2RpcmVjdG9yeS5oICovOyB9OwpAQCAtMzA2LDM5ICsyOTUsMjkgQEAKIAkJMEY5QTFEMDYy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0JBMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNf
cGFnZV9iYXNlLmMgKi87IH07CiAJCTBGOUExRDA3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjlBMUNCQjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxv
Y2F0aW9uX3Jlc3VsdC5oICovOyB9OwogCQkwRjlBMUQwODI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGOUExQ0JDMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRv
ci5oICovOyB9OwotCQkwRjlBMUQwOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjlBMUNCRDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5LmMgKi87IH07Ci0JCTBGOUExRDBBMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNp
bmdfZGlyZWN0b3JpZXMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOUExQ0JFMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXMuYyAqLzsgfTsKLQkJMEY5QTFEMEIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaWFzaW5n
X2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjlBMUNCRjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0
b3J5X2lubGluZXMuaCAqLzsgfTsKIAkJMEY5QTFEMEMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19w
YWdlX2Jhc2VfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjlBMUNDMDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcu
aCAqLzsgfTsKIAkJMEY5QTFEMEQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0
b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlB
MUNDMTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuYyAqLzsgfTsKLQkJ
MEY5QTFEMEUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQzIyNTU5OTYxNDAwQzhE
MTFCIC8qIHBhc19zdWJwYWdlX21hcC5oICovOyB9OwotCQkwRjlBMUQwRjI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDMzI1NTk5NjE0MDBDOEQxMUIg
LyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmggKi87IH07CiAJCTBGOUExRDEw
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQzQyNTU5OTYxNDAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgKi87IH07CiAJCTBGOUExRDExMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfYml0Zml0X3BhZ2UuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOUExQ0M1MjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Bh
Z2UuYyAqLzsgfTsKIAkJMEY5QTFEMTIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2NvbmZp
Z19raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjlBMUNDNjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfY29uZmlnX2tpbmQuaCAqLzsgfTsK
LQkJMEY5QTFEMTMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQzcyNTU5
OTYxNTAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jICovOyB9OwogCQkwRjlBMUQx
NDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQzgyNTU5OTYx
NTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCAqLzsgfTsKIAkJMEY5
QTFEMTUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQzkyNTU5
OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jICovOyB9OwogCQkw
RjlBMUQxNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQ0EyNTU5OTYx
NTAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2tpbmQuaCAqLzsgfTsKIAkJMEY5QTFEMTcy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQ0IyNTU5OTYx
NTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oICovOyB9OwogCQkw
RjlBMUQxODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDRDI1NTk5NjE1MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9oZWFwLmggKi87IH07CiAJCTBGOUExRDE5MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQ0UyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19mYXN0
X21lZ2FwYWdlX3RhYmxlLmggKi87IH07Ci0JCTBGOUExRDFCMjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0QwMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXMuaCAqLzsgfTsKIAkJMEY5QTFEMUMyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfaGVhcC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY5QTFDRDEyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5jICov
OyB9OwogCQkwRjlBMUQxRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3Jf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5QTFDRDIyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMu
aCAqLzsgfTsKIAkJMEY5QTFEMUUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dl
ZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDMyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19jb21w
YWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oICovOyB9OwogCQkwRjlBMUQx
RjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Q0MjU1OTk2MTYw
MEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICovOyB9OwogCQkwRjlBMUQy
MDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNENTI1NTk5
NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggKi87IH07CiAJ
CTBGOUExRDIxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Q2MjU1OTk2
MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCAqLzsgfTsKLQkJMEY5QTFEMjIy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDcyNTU5OTYxNjAwQzhEMTFCIC8qIHBh
c19zdWJwYWdlX21hcC5jICovOyB9OwotCQkwRjlBMUQyMzI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjlBMUNEODI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0
b3J5LmggKi87IH07CiAJCTBGOUExRDI0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9zaGFy
aW5nX21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOUExQ0Q5MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCAqLzsg
fTsKIAkJMEY5QTFEMjUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2Nv
dW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlB
MUNEQTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLzsg
fTsKIAkJMEY5QTFEMjYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3Bh
Z2VfYm91bmRhcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY5QTFDREIyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxl
X29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oICovOyB9OwogCQkwRjlBMUQyNzI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0RDMjU1OTk2MTYw
MEM4RDExQiAvKiBwYXNfY29tcGFjdF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oICovOyB9
OwogCQkwRjlBMUQyODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDREQy
NTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCAqLzsgfTsKIAkJMEY5
QTFEMjkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2tpbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0RFMjU1OTk2MTYwMEM4RDExQiAv
KiBwYXNfcGFnZV9raW5kLmggKi87IH07Ci0JCTBGOUExRDJBMjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNERjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9nbG9iYWxfc2l6ZV9jbGFzcy5jICovOyB9OwogCQkwRjlBMUQyQjI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNFMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9z
aXplX2NsYXNzLmMgKi87IH07CiAJCTBGOUExRDJDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJl
ZV9ncmFudWxlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5QTFDRTEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmggKi87IH07
CiAJCTBGOUExRDJEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0UyMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuaCAqLzsgfTsKQEAgLTQwMCw2
ICszNzksNyBAQAogCQkwRkM2ODIzMTIxMjlDQjQ2MDAzQzZBMTMgLyogRXh0ZW5kZWRHQ0RUZXN0
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2
ODIyRjIxMjlDQjQzMDAzQzZBMTMgLyogRXh0ZW5kZWRHQ0RUZXN0cy5jcHAgKi87IH07CiAJCTBG
QzY4MjM4MjEyOUQ0RUUwMDNDNkExMyAvKiBDb2FsaWduVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNjgyMzYyMTI5RDRFQjAwM0M2QTEz
IC8qIENvYWxpZ25UZXN0cy5jcHAgKi87IH07CiAJCTBGQzg0Nzk1MjMyRDY5NDkwMEIzODZCNiAv
KiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM4NDc5NDIzMkQ2OTQ5MDBCMzg2
QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oICovOyB9Owor
CQkwRkNCRDAzNDI2QURGOTI1MDBEMjZENjggLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZl
bmdlX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEZDQkQwMzMyNkFERjkyNTAwRDI2RDY4IC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2
ZW5nZV9yZXN1bHQuaCAqLzsgfTsKIAkJMEZDQ0QxNDEyNjU1RTZFNzAwMTcxQTFGIC8qIHBhc19j
b21wYWN0X2F0b21pY19lbnVtZXJhYmxlX3JhbmdlX2xpc3RfY2h1bmtfcHRyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNDRDE0MDI2NTVFNkU3MDAx
NzFBMUYgLyogcGFzX2NvbXBhY3RfYXRvbWljX2VudW1lcmFibGVfcmFuZ2VfbGlzdF9jaHVua19w
dHIuaCAqLzsgfTsKIAkJMEZDRkE0OUEyMzgzNTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFy
aW5nX3Bvb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGQ0ZBNDk4MjM4MzUyRUIwMENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggKi87
IH07CiAJCTBGQ0ZBNDlCMjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29s
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNGQTQ5
OTIzODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jICovOyB9OwpAQCAt
NTEzLDcgKzQ5Myw2IEBACiAJCTBGRTdFRTE0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9y
ZWZfcHJlZml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjQ3RDQwQTIxNDBEQjA1MDA4QzQxRjAgLyogcGFzX2hlYXBfcmVmX3ByZWZpeC5oICovOyB9
OwogCQkwRkU3RUUxNTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfcmVmLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2ODFDNzIxMEY3QzlGMDAz
QzZBMTMgLyogcGFzX2hlYXBfcmVmLmggKi87IH07CiAJCTBGRTdFRTE2MjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZDNjgxQzAyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc19oZWFwLmggKi87IH07Ci0JCTBG
RTdFRTFBMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkRFQTQy
NzIyOEI2NDMzMDA4NUUzNDAgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oICov
OyB9OwogCQkwRkU3RUUxQzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9j
b25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
QzY4MjQ2MjEyQTBGMUYwMDNDNkExMyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZy5oICov
OyB9OwogCQkwRkU3RUUxRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzY4MUE4MjEwM0NB
QzkwMDNDNkExMyAvKiBwYXNfbGFyZ2VfZnJlZS5oICovOyB9OwogCQkwRkU3RUUxRjIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX2xhcmdlX2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzY4MUE3MjEwM0IwRTYwMDNDNkExMyAvKiBwYXNfbGFyZ2Vf
aGVhcC5oICovOyB9OwpAQCAtNzI5LDI3ICs3MDgsMjUgQEAKIC8qIEJlZ2luIFBCWEZpbGVSZWZl
cmVuY2Ugc2VjdGlvbiAqLwogCQkwRjAzN0FGMTI1QUVBOTE5MDA3OUI1ODIgLyogcGFzX21lZGl1
bV9tZWdhcGFnZV9jYWNoZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNf
bWVkaXVtX21lZ2FwYWdlX2NhY2hlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
MDM3QUYyMjVBRUE5MUEwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMDIyNDYwREI2RDAwMUQzMUYw
IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjAzMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjA0MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjA3MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNo
aXBfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIwODI0NjBEQjZF
MDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IHBhc19tYWdhemluZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIw
QTI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA0QzIwQjI0NjBEQjZFMDAxRDMxRjAg
LyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMEYwNEMyMEMyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwNEMyMEQyNDYw
REI2RTAwMUQzMUYwIC8qIHBhc19sb2NrLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0
aCA9IHBhc19sb2NrLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjBFMjQ2
MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIwRjI0NjBEQjZFMDAx
RDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYw
NEMyMTAyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF92aWV3X2lubGlu
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMTIyNDYwREI2RjAwMUQz
MUYwIC8qIHBhc19tYWdhemluZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBw
YXNfbWFnYXppbmUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwNEMyMTMyNDYw
REI2RjAwMUQzMUYwIC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfYXRvbWljX3Bh
Z2Vfc2hhcmluZ19wb29sX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0
QzIyNjI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIyNzI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGMDgzRjU4MjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191
dGlsc19pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEYwODNGNTkyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19oZWFwX2NvbmZpZ191dGls
c19pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19oZWFwX2Nv
bmZpZ191dGlsc19pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDky
MjY5MjJCMDdDMjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX211dGF0aW9uX2NvdW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGMDkyMjZCMjJCMkQ4OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ191dGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjA5MjI2RDIyQjJEOTA5MDA3RDVEM0EgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19oZWFwX2NvbmZpZ191dGls
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcwQTI2OUI3NTE3MDA2ODg3
QTkgLyogcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MEIyNjlCNzUxODAwNjg4N0E5IC8qIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3
MEMyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sb2NhbF92aWV3X2NhY2hlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTBGMTQ4NzBEMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcwRTI2OUI3NTE4MDA2ODg3QTkgLyog
cGFzX2hlYXBfcnVudGltZV9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRo
ID0gcGFzX2hlYXBfcnVudGltZV9jb25maWcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEYxNDg3MEYyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTBGMTQ4NzFBMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19j
YWNoZV9ub2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sb2NhbF92
aWV3X2NhY2hlX25vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MUIy
NjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19sb2NhbF92aWV3X2NhY2hlLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGMTQ4NzFDMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MUQyNjlGNUZDQTAwNjg4N0E5IC8q
IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBw
YXRoID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjE0ODcxRTI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjE1MThGQzIzNDQxRTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmplY3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2hhc19vYmplY3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2M0MyNjI4QkZCNjAwRjY5MDNEIC8qIHBh
c19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2M0QyNjI4QkZCNjAwRjY5MDNEIC8qIHBhc19zaGFy
ZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBh
dGggPSBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTc2NSw4ICs3NDIsNiBAQAogCQkwRjE5MzI2NzIyRjNCM0YzMDBGQkE3
MTMgLyogcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vf
c2hhcmluZ19jYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE5MzI2QTIy
RjczRTg0MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfc2NhdmVuZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGMTkzMjZCMjJGNzNFODQwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zY2F2ZW5nZXIuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEYxQUVDRTYyNjU4MTk2MDAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVz
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19hbGxfbWFnYXppbmVzLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMUFFQ0U3MjY1ODE5NjEwMDBDNTIxOCAv
KiBwYXNfYWxsX21hZ2F6aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfYWxsX21hZ2F6aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjFCRkQ0
MzI2NjQ1N0YxMDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuYzsgcGF0aCA9IHBhc19oZWFwX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjIxNTBFQTI0ODRCQjJBMDAwRDYzNEIgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYWxsb2NhdG9yX2luZGV4Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjE1MEVDMjQ4NEJCODYwMDBENjM0QiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzk1LDYgKzc3MCw5IEBACiAJCTBG
NDQzQjNBMjM0MTZBN0MwMEJFNTBEMSAvKiBsaWJwYXNfdmVyaWZpZXIuZHlsaWIgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8u
ZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJwYXNfdmVyaWZpZXIuZHlsaWI7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTBGNDQzQjNGMjM0MTZCNjMw
MEJFNTBEMSAvKiBWZXJpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWZXJpZmllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ0M0I0RTIzNDE3NjE1MDBCRTUwRDEgLyogbGlibWJt
YWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmVfdmVyaWZpZWQuZHlsaWIgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIi
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBsaWJtYm1hbGxvY19pc29fY29tbW9uX3ByaW1p
dGl2ZV92ZXJpZmllZC5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
KwkJMEY0NUQ1QTYyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2tp
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0NUQ1QTcyNkFCNzMxNDAwQzM1
RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjQ1RDVBODI2QUI3MzE0MDBDMzVEOTMg
LyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDdDMzE4MjMzOTZEMUYwMDJBMUNGNyAvKiBw
YXNfYWxsb2NhdGlvbl9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19hbGxvY2F0aW9uX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0N0Mz
MTkyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19oZWFwX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX2hlYXBfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjQ3QzMxQzIzMzk2RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tz
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19hbGxvY2F0aW9uX2NhbGxi
YWNrcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODM0LDcgKzgxMiw2IEBACiAJ
CTBGNEY2MUM4MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdl
X2xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BheWxvYWRfcmVz
ZXJ2YXRpb25fcGFnZV9saXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNEY2
MUM5MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3Qu
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3BheWxvYWRfcmVzZXJ2YXRp
b25fcGFnZV9saXN0LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTA4RDUyMjU4
RUNGRDMwMDE1MUVEOCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVf
a2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRjUwOEQ1QjI1OEVEQ0E3MDAxNTFFRDggLyogSXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJc29IZWFwVGFibGluZ1Rlc3Rz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1MTZFRTIyNDU2MEZGNTAwNEUy
QjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX2ludGVybmFsX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjUxNkVFNjI0NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBpc29faGVhcF9pbm5hcmRzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNTE5M0U2MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVz
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSklUSGVhcFRlc3Rz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk2MiwzNCArOTM5LDI1IEBACiAJ
CTBGOTdFNjJEMjJBOUE4NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk3RTYyRjIyQTlBQUMxMDBD
MzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY5OUY5OEIyNUNCMkNFODAwRUVFNDQ5IC8qIHBhc19zaXplX3Ro
dW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaXplX3RodW5rLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQzk3MjU1OTk2MTEwMEM4RDExQiAv
KiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX3N1YnBhZ2VfbWFwX2VudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGOUExQzk4MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQzk5MjU1OTk2MTEw
MEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3Vs
dF9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQzlBMjU1OTk2MTEw
MEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDOUIyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfbWF4X2ZyZWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Jp
dGZpdF9tYXhfZnJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUM5QzI1
NTk5NjExMDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zdWJwYWdlX21hcF9lbnRyeS5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjlBMUM5RDI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3NoYXJlZF9o
YW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOUExQzlGMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ192YXJpYW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY5QTFDQTAyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2Nh
Y2hlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19mYXN0X21lZ2FwYWdl
X2NhY2hlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0ExMjU1OTk2MTIw
MEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX2JpdGZpdF92aWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OUExQ0EyMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2JpdGZpdF92aWV3LmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTBGOUExQ0EzMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2FsbG9jYXRpb25f
cmVzdWx0LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0E0MjU1OTk2MTIw
MEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBw
YXRoID0gcGFzX2NvbW1pdF9zcGFuLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OUExQ0E1MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9yeV9w
dHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfYmlhc2lu
Z19kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0E2
MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0E3MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5QTFDQTgyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tbWl0X3NwYW4uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTkyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaWFzaW5n
X2RpcmVjdG9yeV9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19i
aWFzaW5nX2RpcmVjdG9yeV9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
OUExQ0FBMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXgu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
YW5kX2luZGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0FCMjU1OTk2
MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQUMyNTU5OTYxMjAw
QzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfcGFnZV9iYXNlX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY5QTFDQUQyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19wcm9tb3RlX2ludHJpbnNp
Y19oZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wcm9tb3RlX2lu
dHJpbnNpY19oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0FFMjU1
OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0FGMjU1OTk2MTMwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEY5QTFDQjAyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlB
MUNCMTI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfdmVyc2lvbmVkX2ZpZWxkLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0IyMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfZmFzdF9w
YXRoX2FsbG9jYXRpb25fcmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEY5QTFDQjMyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5
X2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9kaXJl
Y3Rvcnlfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNCNDI1NTk5
NjEzMDBDOEQxMUIgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBwYXRoID0gcGFzX2ZyZWVfZ3JhbnVsZXMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY5QTFDQjUyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZV9pbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0I2MjU1OTk2MTMwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfYml0Zml0X2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtOTk5LDE3ICs5NjcsMTEgQEAKIAkJMEY5QTFDQkEyNTU5OTYxNDAwQzhEMTFCIC8qIHBh
c19wYWdlX2Jhc2UuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3BhZ2Vf
YmFzZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNCQjI1NTk5NjE0MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0JDMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2FsbG9jYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0
Zml0X2FsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNCRDI1
NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNCRTI1NTk5NjE0MDBDOEQxMUIgLyog
cGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
cGF0aCA9IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwRjlBMUNCRjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0
b3J5X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpYXNp
bmdfZGlyZWN0b3J5X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5
QTFDQzAyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2Jhc2VfY29uZmlnLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0MxMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2RpcmVjdG9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0
Zml0X2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNDMjI1
NTk5NjE0MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19zdWJwYWdlX21hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRjlBMUNDMzI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBf
ZW50cnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0
X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjlBMUNDNDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2JpdGZpdF9hbGxvY2F0b3IuYzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQzUyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfcGFnZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0
X3BhZ2UuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQzYyNTU5OTYxNDAw
QzhEMTFCIC8qIHBhc19wYWdlX2NvbmZpZ19raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19wYWdlX2NvbmZpZ19raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGOUExQ0M3MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnku
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0M4MjU1OTk2MTUwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQzkyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfa2luZC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY5QTFDQ0EyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2tpbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAxNywyMiArOTc5LDE4IEBACiAJCTBGOUEx
Q0NDMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuZGVmICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5kZWY7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0NEMjU1OTk2MTUwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Jp
dGZpdF9oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0NFMjU1OTk2
MTUwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkwRjlBMUNEMDI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19h
bGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjlBMUNEMTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfaGVhcC5jOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjlBMUNEMjI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxv
Y2F0b3JfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0
Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
OUExQ0QzMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxl
X3VzZV9jb3VudF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Nv
bXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOUExQ0Q0MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNl
X2NvbmZpZ191dGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFn
ZV9iYXNlX2NvbmZpZ191dGlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlB
MUNENTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2hlYWRlcl9wbGFjZW1l
bnRfbW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNENjI1NTk5NjE2
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwRjlBMUNENzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zdWJwYWdlX21hcC5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNEODI1NTk5NjE2MDBDOEQxMUIgLyogcGFz
X2JpYXNpbmdfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19iaWFzaW5nX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlB
MUNEOTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNEQTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY5QTFDREIyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2Vf
Ym91bmRhcnlfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
c2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY5QTFDREMyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0REMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRm
aXRfcGFnZV9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDREUy
NTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gcGFzX3BhZ2Vfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwRjlBMUNERjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
cy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X2dsb2JhbF9z
aXplX2NsYXNzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0UwMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBwYXRoID0gcGFzX2JpdGZpdF9zaXplX2NsYXNzLmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOUExQ0UxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZnJlZV9ncmFudWxlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNFMjI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IHBhc19wYWdlX2hlYWRlcl90YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTE0OCw2ICsxMTA2LDcgQEAKIAkJMEZDNjgyNEMyMTJBNUJGRTAwM0M2QTEzIC8qIHBhc19k
ZWFsbG9jYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZGVhbGxv
Y2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNjgyNUQyMTJDQTc2RDAw
M0M2QTEzIC8qIHBhc19sb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19sb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzg0Nzk0MjMyRDY5NDkw
MEIzODZCNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBv
Y2hfdXBkYXRlX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZDQkQwMzMy
NkFERjkyNTAwRDI2RDY4IC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3NjYXZlbmdlX3Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNDRDE0
MDI2NTVFNkU3MDAxNzFBMUYgLyogcGFzX2NvbXBhY3RfYXRvbWljX2VudW1lcmFibGVfcmFuZ2Vf
bGlzdF9jaHVua19wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Nv
bXBhY3RfYXRvbWljX2VudW1lcmFibGVfcmFuZ2VfbGlzdF9jaHVua19wdHIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRkE0OTgyMzgzNTJFQjAwQ0NENzI2IC8qIHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2wuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xh
cmdlX3NoYXJpbmdfcG9vbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNGQTQ5
OTIzODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjIwLDcgKzExNzksNiBAQAogCQkwRkRFQTQxQTIyOEI2
NDMyMDA4NUUzNDAgLyogcGFzX2NhcmVzX2Fib3V0X3NpemVfbW9kZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY2FyZXNfYWJvdXRfc2l6ZV9tb2RlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREVBNDFCMjI4QjY0MzIwMDg1RTM0MCAvKiBwYXNfdXRp
bGl0eV9oZWFwX2NvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
dXRpbGl0eV9oZWFwX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkRF
QTQyMzIyOEI2NDMzMDA4NUUzNDAgLyogcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZERUE0MjcyMjhCNjQzMzAwODVFMzQwIC8qIHBh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkRFQTQyQjIyOEI2NDMzMDA4NUUzNDAgLyogcGFzX2FsaWdubWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYWxpZ25tZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREVBNDVEMjI4QjY1MUIwMDg1RTM0MCAvKiBC
aXRmaWVsZFZlY3RvclRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJpdGZpZWxkVmVjdG9yVGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRkRFQTQ2RDIyOEI2NTQzMDA4NUUzNDAgLyogcGFzX3plcm9fbW9kZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfemVyb19tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzUyLDggKzEzMTAsOCBAQAogCQkwRjQ0M0IzNDIzNDA1MEU1MDBCRTUw
RDEgLyogdmVyaWZpZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAotCQkJCTBGNDQzQjM1MjM0MTZBNDAwMEJFNTBEMSAvKiBWZXJpZmllci5jcHAgKi8sCiAJCQkJ
MEY0NDNCM0YyMzQxNkI2MzAwQkU1MEQxIC8qIFZlcmlmaWVyLmggKi8sCisJCQkJMEY0NDNCMzUy
MzQxNkE0MDAwQkU1MEQxIC8qIFZlcmlmaWVyLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdmVy
aWZpZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTM4MSw3ICsxMzM5LDYgQEAK
IAkJCQkwRkYyNDhGQjIzMENDNEM3MDA3NzIwMkUgLyogSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMu
Y3BwICovLAogCQkJCTBGRDQ4QjY2MjNCNTg5OTEwMDI2QzQ2RCAvKiBJc29IZWFwUGFydGlhbEFu
ZEJhc2VsaW5lVGVzdHMuY3BwICovLAogCQkJCTBGNUI2MDkzMjM1RTkxOTkwMENBRTYyOSAvKiBJ
c29IZWFwUmVzZXJ2ZWRNZW1vcnlUZXN0cy5jcHAgKi8sCi0JCQkJMEY1MDhENUIyNThFRENBNzAw
MTUxRUQ4IC8qIElzb0hlYXBUYWJsaW5nVGVzdHMuY3BwICovLAogCQkJCTBGNTE5M0U2MjY2QUU1
RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwICovLAogCQkJCTBGQzY0MTkwMjEzNzQ1RkEw
MDQwQ0U1RSAvKiBMYXJnZUZyZWVIZWFwVGVzdHMuY3BwICovLAogCQkJCTBGRUI2NjY2MjMxQzg3
QkMwMDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sRHVtcC5jcHAgKi8sCkBAIC0xNDA1LDExNiAr
MTM2MiwxMDAgQEAKIAkJMEZDNjgxRTcyMTBGRTc1MTAwM0M2QTEzIC8qIGxpYnBhcyAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMEY4QTgwNUYyNUVFQ0Mx
QzAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5jICovLAotCQkJCTBGOEE4MDYwMjVFRUNDMUMwMDc5
MEI0QSAvKiBibWFsbG9jX2hlYXAuaCAqLywKIAkJCQkwRjhBODA2MTI1RUVDQzFDMDA3OTBCNEEg
LyogYm1hbGxvY19oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGOEE4MDYyMjVFRUNDMUMwMDc5MEI0
QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY4QTgwNUUyNUVFQ0MxQzAwNzkw
QjRBIC8qIGJtYWxsb2NfaGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY4QTgwNjQyNUVFQ0MxRDAw
NzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9pbm5hcmRzLmggKi8sCiAJCQkJMEY4QTgwNjMyNUVFQ0Mx
RDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9yZWYuaCAqLywKLQkJCQkwRjhBODBGRTI1RjZBNzk1
MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyAqLywKLQkJCQkwRjhBODBGRjI1RjZBNzk1MDA3OTBC
NEEgLyogaG90Yml0X2hlYXAuaCAqLywKKwkJCQkwRjhBODA1RjI1RUVDQzFDMDA3OTBCNEEgLyog
Ym1hbGxvY19oZWFwLmMgKi8sCisJCQkJMEY4QTgwNjAyNUVFQ0MxQzAwNzkwQjRBIC8qIGJtYWxs
b2NfaGVhcC5oICovLAogCQkJCTBGOEE4MEZCMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVh
cF9jb25maWcuYyAqLywKIAkJCQkwRjhBODBGRDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hl
YXBfY29uZmlnLmggKi8sCiAJCQkJMEY4QTgxMDAyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9o
ZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjhBODBGQzI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0
X2hlYXBfaW5uYXJkcy5oICovLAotCQkJCTBGRTdFRTc0MjI5RjAxMEYwMDRGNDE2NiAvKiBpc29f
aGVhcC5jICovLAotCQkJCTBGRTdFRTc1MjI5RjAxMEYwMDRGNDE2NiAvKiBpc29faGVhcC5oICov
LAorCQkJCTBGOEE4MEZFMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5jICovLAorCQkJ
CTBGOEE4MEZGMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oICovLAogCQkJCTBGRTdF
RTU1MjI5NzQzMzUwMDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuYyAqLywKIAkJCQkwRkU3RUU1
NDIyOTc0MzM1MDA0RjQxNjYgLyogaXNvX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY1RkU3QTMy
NUI2MTRGMjAwMTg1OUZDIC8qIGlzb19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjUxNkVFNjI0
NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oICovLAogCQkJCTBGNTI5RERFMjQ1
NTQ2MEMwMDM4NUE4QyAvKiBpc29faGVhcF9yZWYuaCAqLywKLQkJCQkwRjVFNUNFOTIzQkVGMzVG
MDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcC5jICovLAotCQkJCTBGNUU1Q0VBMjNCRUYzNjAwMEFB
MEI2RiAvKiBpc29fdGVzdF9oZWFwLmggKi8sCisJCQkJMEZFN0VFNzQyMjlGMDEwRjAwNEY0MTY2
IC8qIGlzb19oZWFwLmMgKi8sCisJCQkJMEZFN0VFNzUyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19o
ZWFwLmggKi8sCiAJCQkJMEY1RTVDRTgyM0JFRjM1RjAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXBf
Y29uZmlnLmMgKi8sCiAJCQkJMEY1RTVDRUIyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hl
YXBfY29uZmlnLmggKi8sCi0JCQkJMEY1OUEzOUQyNjY4NDcwRTAwQTM4NjU3IC8qIGppdF9oZWFw
LmMgKi8sCi0JCQkJMEY1OUEzOEYyNjY3RjAwRTAwQTM4NjU3IC8qIGppdF9oZWFwLmggKi8sCisJ
CQkJMEY1RTVDRTkyM0JFRjM1RjAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuYyAqLywKKwkJCQkw
RjVFNUNFQTIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcC5oICovLAorCQkJCTBGNTlB
Mzk3MjY2ODMxNzQwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8sCiAJ
CQkJMEY1OUEzOTkyNjY4NDRBMzAwQTM4NjU3IC8qIGppdF9oZWFwX2NvbmZpZy5jICovLAogCQkJ
CTBGNTlBMzkwMjY2N0YwMEUwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWcuaCAqLywKLQkJCQkw
RjU5QTM5NzI2NjgzMTc0MDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICov
LAotCQkJCTBGQkQ2N0Q2MjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXAuYyAqLywK
LQkJCQkwRkJENjdEODI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwLmggKi8sCisJ
CQkJMEY1OUEzOUQyNjY4NDcwRTAwQTM4NjU3IC8qIGppdF9oZWFwLmMgKi8sCisJCQkJMEY1OUEz
OEYyNjY3RjAwRTAwQTM4NjU3IC8qIGppdF9oZWFwLmggKi8sCiAJCQkJMEZCRDY3RDcyNUJEMzYz
QTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRkJENjdEOTI1
QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBGQkQ2
N0VGMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwLmMgKi8sCi0JCQkJMEZCRDY3
RUQyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXAuaCAqLywKKwkJCQkwRkJENjdE
NjI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwLmMgKi8sCisJCQkJMEZCRDY3RDgy
NUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcC5oICovLAogCQkJCTBGQkQ2N0VDMjVC
RTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGQkQ2
N0VFMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oICovLAorCQkJ
CTBGQkQ2N0VGMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwLmMgKi8sCisJCQkJ
MEZCRDY3RUQyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXAuaCAqLywKIAkJCQkw
RkM2ODFGNjIxMUNENURGMDAzQzZBMTMgLyogcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQu
aCAqLywKIAkJCQkwRkM2ODFGMzIxMUNENURGMDAzQzZBMTMgLyogcGFzX2FsaWduZWRfYWxsb2Nh
dG9yLmggKi8sCiAJCQkJMEZERUE0MTYyMjhCNjQzMjAwODVFMzQwIC8qIHBhc19hbGlnbm1lbnQu
YyAqLywKIAkJCQkwRkRFQTQyQjIyOEI2NDMzMDA4NUUzNDAgLyogcGFzX2FsaWdubWVudC5oICov
LAotCQkJCTBGOUExQ0JFMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXMuYyAqLywKLQkJCQkwRjlBMUNEMDI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzLmggKi8sCiAJCQkJMEY1OUEzOTEyNjY3RjAwRTAwQTM4NjU3IC8qIHBh
c19hbGxfaGVhcF9jb25maWdzLmggKi8sCiAJCQkJMEZDNjgxRUUyMTE0RDk4MzAwM0M2QTEzIC8q
IHBhc19hbGxfaGVhcHMuYyAqLywKIAkJCQkwRkM2ODFFRjIxMTREOTg0MDAzQzZBMTMgLyogcGFz
X2FsbF9oZWFwcy5oICovLAotCQkJCTBGMUFFQ0U2MjY1ODE5NjAwMDBDNTIxOCAvKiBwYXNfYWxs
X21hZ2F6aW5lcy5jICovLAotCQkJCTBGMUFFQ0U3MjY1ODE5NjEwMDBDNTIxOCAvKiBwYXNfYWxs
X21hZ2F6aW5lcy5oICovLAogCQkJCTBGRDQ4QjBCMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfYWxs
X3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmMgKi8sCiAJCQkJMEZENDhCMjcyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuaCAqLywKIAkJCQkwRjQ3QzMx
QzIzMzk2RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgKi8sCiAJCQkJ
MEY0N0MzMUQyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5oICov
LAogCQkJCTBGNzgwODhDMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfYWxsb2NhdGlvbl9jb25maWcu
aCAqLywKIAkJCQkwRjQ3QzMxODIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fa2lu
ZC5oICovLAotCQkJCTBGOUExQ0EzMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQuYyAqLywKIAkJCQkwRkM2ODFCMjIxMDY1QTAwMDAzQzZBMTMgLyogcGFzX2FsbG9jYXRp
b25fcmVzdWx0LmggKi8sCiAJCQkJMEZEQkIwN0EyMkJCRkY4MzAwNkJBNUZDIC8qIHBhc19hbGxv
Y2F0b3JfY291bnRzLmggKi8sCiAJCQkJMEYyMTUwRUEyNDg0QkIyQTAwMEQ2MzRCIC8qIHBhc19h
bGxvY2F0b3JfaW5kZXguaCAqLywKIAkJCQkwRjZCNDdGQzIzMzE1QUU0MDAyQTVFMEMgLyogcGFz
X2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCAqLywKLQkJCQkwRkQ0OEIyODIzQTlBQkIzMDAy
NkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jICovLAotCQkJCTBGRDQ4QjAwMjNBOUFC
QjAwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZENDhCMDUy
M0E5QUJCMDAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0LmggKi8sCiAJ
CQkJMEZENDhCMDQyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFi
bGUuYyAqLywKIAkJCQkwRkQ0OEIxRjIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvcl90YWJsZS5oICovLAorCQkJCTBGRDQ4QjI4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yLmMgKi8sCisJCQkJMEZENDhCMDAyM0E5QUJCMDAwMjZDNDZEIC8q
IHBhc19iYXNlbGluZV9hbGxvY2F0b3IuaCAqLywKIAkJCQkwRjU5QTM5QTI2Njg0NEEzMDBBMzg2
NTcgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5jICovLAogCQkJCTBG
NEY2MTYzMjU5QkZCODUwMDhCNEE4MiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRv
cl9kYXRhLmggKi8sCiAJCQkJMEY0RjYxNkMyNTlCRkY5MTAwOEI0QTgyIC8qIHBhc19iYXNpY19o
ZWFwX2NvbmZpZ19yb290X2RhdGEuaCAqLywKIAkJCQkwRjMyOUExRTIzRjExMzJBMDBBMTMzQzQg
LyogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXMuaCAqLywKIAkJCQkwRjMyOUExRDIzRjExMzJB
MDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWcuaCAqLywKIAkJCQkwRjMy
OUEyMDIzRjExMzJBMDBBMTMzQzQgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMu
aCAqLywKLQkJCQkwRjlBMUNDNzI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0
b3J5LmMgKi8sCi0JCQkJMEY5QTFDRDgyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2Rp
cmVjdG9yeS5oICovLAotCQkJCTBGOUExQ0JGMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYmlhc2lu
Z19kaXJlY3RvcnlfaW5saW5lcy5oICovLAogCQkJCTBGOUExQ0E5MjU1OTk2MTIwMEM4RDExQiAv
KiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2luZC5oICovLAogCQkJCTBGREVBNDE5MjI4QjY0MzIw
MDg1RTM0MCAvKiBwYXNfYml0ZmllbGRfdmVjdG9yLmggKi8sCiAJCQkJMEY5QTFDQkIyNTU5OTYx
NDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKKwkJCQkwRjlB
MUNEMjI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oICov
LAogCQkJCTBGOUExQ0M0MjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5j
ICovLAogCQkJCTBGOUExQ0JDMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRv
ci5oICovLAotCQkJCTBGOUExQ0QyMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9j
YXRvcl9pbmxpbmVzLmggKi8sCi0JCQkJMEY5QTFDQjAyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyAqLywKLQkJCQkwRjlBMUNBNzI1NTk5NjEyMDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oICovLAorCQkJCTBGOUExQ0M4MjU1
OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJCQkJ
MEY5QTFDQzEyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmMgKi8sCiAJ
CQkJMEY5QTFDQjYyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggKi8s
Ci0JCQkJMEY5QTFDQUEyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2Fu
ZF9pbmRleC5oICovLAotCQkJCTBGOUExQ0M4MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0
X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJMEY5QTFDQjMyNTU5OTYxMzAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCAqLywKLQkJCQkwRjlBMUNCRDI1NTk5NjE0MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEY5QTFDOTgy
NTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovLAotCQkJ
CTBGOUExQ0RGMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
LmMgKi8sCi0JCQkJMEY5QTFDQUYyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFs
X3NpemVfY2xhc3MuaCAqLywKIAkJCQkwRjlBMUNEMTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF9oZWFwLmMgKi8sCiAJCQkJMEY5QTFDQ0QyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfaGVhcC5oICovLAogCQkJCTBGOUExQzlCMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0
X21heF9mcmVlLmggKi8sCi0JCQkJMEY5QTFDQzUyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfcGFnZS5jICovLAotCQkJCTBGOUExQ0I3MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0
X3BhZ2UuaCAqLywKLQkJCQkwRjlBMUNERDI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZy5oICovLAogCQkJCTBGNTcwOTE3MjU2QUIyMTEwMDAzN0JCMyAvKiBwYXNfYml0
Zml0X3BhZ2VfY29uZmlnX2lubGluZXMuaCAqLywKIAkJCQkwRjlBMUNDOTI1NTk5NjE1MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgKi8sCiAJCQkJMEY5QTFDQ0MyNTU5
OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5kZWYgKi8sCiAJCQkJ
MEY5QTFDQUUyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5o
ICovLAotCQkJCTBGOUExQzlBMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY1NzA5MTkyNTZBQjQxNzAwMDM3QkIzIC8qIHBhc19iaXRm
aXRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oICovLAorCQkJCTBGOUExQzlBMjU1OTk2MTEw
MEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY5QTFD
Q0IyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oICov
LAorCQkJCTBGOUExQ0REMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmln
LmggKi8sCiAJCQkJMEY5QTFDQjUyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9p
bmxpbmVzLmggKi8sCisJCQkJMEY5QTFDQzUyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
cGFnZS5jICovLAorCQkJCTBGOUExQ0I3MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Bh
Z2UuaCAqLywKIAkJCQkwRjlBMUNFMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXpl
X2NsYXNzLmMgKi8sCiAJCQkJMEY5QTFDRDYyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
c2l6ZV9jbGFzcy5oICovLAotCQkJCTBGOUExQ0EyMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0
Zml0X3ZpZXcuYyAqLywKLQkJCQkwRjlBMUNBMTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZp
dF92aWV3LmggKi8sCiAJCQkJMEY5QTFENDQyNTVEQkU2MTAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
dmlld19hbmRfaW5kZXguaCAqLywKIAkJCQkwRjlBMUQ0MDI1NUFGMjc5MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF92aWV3X2lubGluZXMuaCAqLywKKwkJCQkwRjlBMUNBMjI1NTk5NjEyMDBDOEQxMUIg
LyogcGFzX2JpdGZpdF92aWV3LmMgKi8sCisJCQkJMEY5QTFDQTEyNTU5OTYxMjAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfdmlldy5oICovLAogCQkJCTBGQzY4MUIzMjEwNkNENzkwMDNDNkExMyAvKiBw
YXNfYml0dmVjdG9yLmggKi8sCiAJCQkJMEZDNjgyM0QyMTI5RUQ1MDAwM0M2QTEzIC8qIHBhc19i
b290c3RyYXBfZnJlZV9oZWFwLmMgKi8sCiAJCQkJMEZDNjgyM0YyMTI5RUQ1MTAwM0M2QTEzIC8q
IHBhc19ib290c3RyYXBfZnJlZV9oZWFwLmggKi8sCkBAIC0xNTM4LDkgKzE0NzksOSBAQAogCQkJ
CTBGMDRDMjEzMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFy
aW5nX3Bvb2xfcHRyLmggKi8sCiAJCQkJMEY2RDU2NDEyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19j
b21wYWN0X2F0b21pY19wdHIuaCAqLywKIAkJCQkwRjY2RDU0MjI0ODc2MEE4MDBGQzczNDcgLyog
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi8sCi0J
CQkJMEYwNEMyMjcyNDYxMUNGRDAwMUQzMUYwIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkwRjZENTY1RjIzQ0JEMTlE
MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJp
bmdfcG9vbHNfcHRyLmggKi8sCiAJCQkJMEY2RDU2NTkyM0NCRDE5QzAwRjQwREJCIC8qIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHIuaCAqLywKKwkJCQkwRjE0
ODcwQjI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJMEY2RDU2NjAyM0NCRDE5RDAwRjQwREJCIC8qIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3ZpZXcuaCAqLywKIAkJCQkwRkE1RTQ1NTI0OTJE
NUI5MDBDRTk2MkEgLyogcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZS5oICovLAogCQkJCTBGNkQ1NjUxMjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfY29tcGFj
dF9hdG9taWNfdW5zaWduZWRfcHRyLmggKi8sCkBAIC0xNTU5LDE0ICsxNTAwLDE0IEBACiAJCQkJ
MEY5QTFDREMyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2Vf
Y291bnRfcHRyLmggKi8sCiAJCQkJMEY2RDU2M0YyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19jb21w
YWN0X3B0ci5oICovLAogCQkJCTBGNjZENTQxMjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovLAotCQkJCTBGMDRDMjI2MjQ2
MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9wdHIuaCAqLywKKwkJCQkwRjE0ODcwRDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLywKIAkJCQkwRjZENTY3NTIzQ0Mx
NDFFMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9oZWFwX3B0ci5oICovLAogCQkJ
CTBGNkQ1NjU1MjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkwRjZENTY1QjIzQ0JEMTlDMDBGNDBEQkIg
LyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIuaCAqLywKKwkJCQkwRjE0
ODcwRjI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHIuaCAqLywKIAkJCQkwRjZENTY1MzIzQ0JEMTlDMDBGNDBEQkIgLyogcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF92aWV3LmggKi8sCi0JCQkJMEYzMUE2M0YyM0RDRjg0ODAwMkMwQ0EzIC8q
IHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5oICovLAogCQkJCTBGMzFBNjQ1MjNFNEM0
NDEwMDJDMENBMyAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmggKi8sCi0J
CQkJMEY5QTFDQzMyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2Vu
dHJ5X3B0ci5oICovLAorCQkJCTBGMzFBNjNGMjNEQ0Y4NDgwMDJDMENBMyAvKiBwYXNfY29tcGFj
dF9za2lwX2xpc3Rfbm9kZV9wdHIuaCAqLywKIAkJCQkwRjZENTY0RDIzQ0FCQTY1MDBGNDBEQkIg
LyogcGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHIuaCAqLywKIAkJCQkwRjlBMUNEMzI1NTk5
NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRf
cHRyLmggKi8sCiAJCQkJMEY2RDU2NDQyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Rh
Z2dlZF9wdHIuaCAqLywKQEAgLTE1NzQsMjQgKzE1MTUsMjQgQEAKIAkJCQkwRjZENTY0RjIzQ0JE
MTlCMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi8sCiAJCQkJMEZDNEVD
MzUyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNr
cy5jICovLAogCQkJCTBGQzRFQzMwMjM0QTkxRTIwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1t
YXJ5X29iamVjdF9jYWxsYmFja3MuaCAqLywKLQkJCQkwRkM2ODFBMjIxMDM5MTdCMDAzQzZBMTMg
LyogcGFzX2NvbmZpZy5oICovLAogCQkJCTBGODVFRkQ1MjJFMkJFQzcwMDNBMzYyQiAvKiBwYXNf
Y29uZmlnX3ByZWZpeC5oICovLAorCQkJCTBGQzY4MUEyMjEwMzkxN0IwMDNDNkExMyAvKiBwYXNf
Y29uZmlnLmggKi8sCiAJCQkJMEZENDhCMEEyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19jb3VudF9s
b29rdXBfbW9kZS5oICovLAogCQkJCTBGMzI5QTI2MjNGMUQ2MzUwMEExMzNDNCAvKiBwYXNfY3Jl
YXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuYyAqLywKIAkJ
CQkwRjMyOUEyNTIzRjFENjM1MDBBMTMzQzQgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2Vf
Y2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggKi8sCiAJCQkJMEZFN0VFNUYyMjlFMTRGQTAw
NEY0MTY2IC8qIHBhc19kZWFsbG9jYXRlLmMgKi8sCiAJCQkJMEZFN0VFNUUyMjlFMTRGQTAwNEY0
MTY2IC8qIHBhc19kZWFsbG9jYXRlLmggKi8sCiAJCQkJMEZGRkQ1MTQyNTZCMEZCQzAwMUVCOTRD
IC8qIHBhc19kZWFsbG9jYXRpb25fbW9kZS5oICovLAotCQkJCTBGQzY4MjRDMjEyQTVCRkUwMDND
NkExMyAvKiBwYXNfZGVhbGxvY2F0b3IuaCAqLywKIAkJCQkwRjZCNDdGQjIzMzE1QUU0MDAyQTVF
MEMgLyogcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oICovLAorCQkJCTBGQzY4MjRD
MjEyQTVCRkUwMDNDNkExMyAvKiBwYXNfZGVhbGxvY2F0b3IuaCAqLywKIAkJCQkwRjM3M0U1MTI2
NTlFQTVFMDAzNEJBOTYgLyogcGFzX2RlYnVnX2hlYXAuaCAqLywKIAkJCQkwRkJDNjJDMDI2NUYx
MkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmMgKi8sCiAJCQkJMEZCQzYyQzEyNjVG
MTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5oICovLAogCQkJCTBGNzgwODk4MjJG
QTZGMDgwMEYzNzQ1MSAvKiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmMgKi8sCiAJCQkJMEY3
ODA4OTkyMkZBNkYwODAwRjM3NDUxIC8qIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCAqLywK
KwkJCQkwRjVCODNCRTI0OTE4OTlFMDBGNDEwNTIgLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2lj
X2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBGNUI4M0JCMjQ5MTg4OEEwMEY0MTA1MiAvKiBwYXNf
ZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jICovLAogCQkJCTBGNUI4M0JBMjQ5MTg4ODkwMEY0
MTA1MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5oICovLAotCQkJCTBGNUI4M0JF
MjQ5MTg5OUUwMEY0MTA1MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVz
LmggKi8sCiAJCQkJMEY5RTk0NjQyMzQ2NjBEMzAwOUZBRkREIC8qIHBhc19keWxkX3N0YXRlLmMg
Ki8sCiAJCQkJMEY5RTk0NjUyMzQ2NjBEMzAwOUZBRkREIC8qIHBhc19keWxkX3N0YXRlLmggKi8s
CiAJCQkJMEZFQTQ1QzEyMzZDRTg5RDAwQjVBMzc1IC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9o
ZWFwX21hcC5jICovLApAQCAtMTYxNCwxMSArMTU1NSwxMSBAQAogCQkJCTBGNEY2MTJCMjU5OTA4
NzcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuaCAqLywKIAkJCQkw
RjRGNjFBNTI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdl
c19hc19tZXRhLmMgKi8sCiAJCQkJMEY0RjYxQTkyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVt
ZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0YS5oICovLAotCQkJCTBGNEY2MTA0MjU5N0FG
ODcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvci5jICovLAotCQkJCTBGNEY2MTAzMjU5N0FGODcw
MDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvci5oICovLAogCQkJCTBGNEY2MTgwMjU5RTczNEYwMDhC
NEE4MiAvKiBwYXNfZW51bWVyYXRvcl9pbnRlcm5hbC5oICovLAogCQkJCTBGNEY2MTE5MjU5ODM4
QjEwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24uYyAqLywKIAkJCQkwRjRGNjExQTI1
OTgzOEIxMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmggKi8sCisJCQkJMEY0RjYx
MDQyNTk3QUY4NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yLmMgKi8sCisJCQkJMEY0RjYxMDMy
NTk3QUY4NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yLmggKi8sCiAJCQkJMEYxOTMyNEYyMkVE
MDRBNjAwRkJBNzEzIC8qIHBhc19lcG9jaC5jICovLAogCQkJCTBGMTkzMjREMjJFRDA0QTUwMEZC
QTcxMyAvKiBwYXNfZXBvY2guaCAqLywKIAkJCQkwRkQ0OEFGOTIzQTlBQkFGMDAyNkM0NkQgLyog
cGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuYyAqLywKQEAgLTE2MzIsOCAr
MTU3Myw4IEBACiAJCQkJMEY5QTFDQ0EyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2Fw
YWdlX2tpbmQuaCAqLywKIAkJCQkwRjlBMUQ0NzI1NUUyODQyMDBDOEQxMUIgLyogcGFzX2Zhc3Rf
bWVnYXBhZ2VfdGFibGUuYyAqLywKIAkJCQkwRjlBMUNDRTI1NTk5NjE1MDBDOEQxMUIgLyogcGFz
X2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCAqLywKLQkJCQkwRjlBMUNCMjI1NTk5NjEzMDBDOEQxMUIg
LyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGOUExQzk5MjU1
OTk2MTEwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaCAq
LywKKwkJCQkwRjlBMUNCMjI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0
aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGQjU3MDZBMjY3RDAzQ0QwMDgwRkE4QiAvKiBwYXNfZmFz
dF90bHMuaCAqLywKIAkJCQkwRkM0RUMyRjIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX2ZkX3N0cmVh
bS5jICovLAogCQkJCTBGQzRFQzM2MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFtLmgg
Ki8sCkBAIC0xNjQ0LDggKzE1ODUsOCBAQAogCQkJCTBGOUExQ0UxMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfZnJlZV9ncmFudWxlcy5oICovLAogCQkJCTBGMTkzMjUxMjJFRDA0QTYwMEZCQTcxMyAv
KiBwYXNfZnJlZV9tb2RlLmggKi8sCiAJCQkJMEZENDhCMTMyM0E5QUJCMTAwMjZDNDZEIC8qIHBh
c19mcmVlX3JhbmdlX2tpbmQuaCAqLywKLQkJCQkwRkQ0OEIxRDIzQTlBQkIyMDAyNkM0NkQgLyog
cGFzX2Z1bGxfYWxsb2NfYml0cy5oICovLAogCQkJCTBGRDQ4QUZGMjNBOUFCQjAwMDI2QzQ2RCAv
KiBwYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCAqLywKKwkJCQkwRkQ0OEIxRDIzQTlBQkIy
MDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0cy5oICovLAogCQkJCTBGRjA4RjM3MjJBNUIz
RTIwMDM4NjU3NSAvKiBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaCAqLywKIAkJCQkwRkU3
RUU1ODIyOUUxNEY5MDA0RjQxNjYgLyogcGFzX2dldF9hbGxvY2F0aW9uX3NpemUuaCAqLywKIAkJ
CQkwRkU3RUU1QzIyOUUxNEY5MDA0RjQxNjYgLyogcGFzX2dldF9oZWFwLmggKi8sCkBAIC0xNjUz
LDE3ICsxNTk0LDE1IEBACiAJCQkJMEY5QTFENEUyNTYzMDVCNDAwQzhEMTFCIC8qIHBhc19nZXRf
cGFnZV9iYXNlLmggKi8sCiAJCQkJMEYxNTE4RkMyMzQ0MUUzMjAwODMyQjVDIC8qIHBhc19oYXNf
b2JqZWN0LmggKi8sCiAJCQkJMEZDNjgyMEEyMTIxRjZFODAwM0M2QTEzIC8qIHBhc19oYXNodGFi
bGUuaCAqLywKLQkJCQkwRkM2ODFDODIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX2hlYXAuYyAqLywK
LQkJCQkwRkM2ODFDMDIxMEY3QzlFMDAzQzZBMTMgLyogcGFzX2hlYXAuaCAqLywKLQkJCQkwRjFC
RkQ0MzI2NjQ1N0YxMDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi8sCi0JCQkJMEZDNjgy
NDcyMTJBMTA1NDAwM0M2QTEzIC8qIHBhc19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGMDRDMjBC
MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oICovLAogCQkJCTBG
NkQ1NjU0MjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5jICovLAogCQkJ
CTBGNkQ1NjUyMjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5kZWYgKi8s
CiAJCQkJMEY2RDU2NUQyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmgg
Ki8sCisJCQkJMEYwODNGNTkyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19oZWFwX2NvbmZpZ191dGls
c19pbmxpbmVzLmggKi8sCiAJCQkJMEZDNjgyNDkyMTJBMTYwQjAwM0M2QTEzIC8qIHBhc19oZWFw
X2NvbmZpZ191dGlscy5jICovLAogCQkJCTBGMDkyMjZEMjJCMkQ5MDkwMDdENUQzQSAvKiBwYXNf
aGVhcF9jb25maWdfdXRpbHMuaCAqLywKLQkJCQkwRjA4M0Y1OTIyQzI5NzlCMDBGM0NEQjMgLyog
cGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJCQkwRjFCRkQ0MzI2NjQ1N0Yx
MDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi8sCisJCQkJMEZDNjgyNDcyMTJBMTA1NDAw
M0M2QTEzIC8qIHBhc19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGQzJGRDM2MjM3NjE1MTMwMDUz
REQ0MSAvKiBwYXNfaGVhcF9mb3JfY29uZmlnLmMgKi8sCiAJCQkJMEZDMkZEMzUyMzc2MTUxMjAw
NTNERDQxIC8qIHBhc19oZWFwX2Zvcl9jb25maWcuaCAqLywKIAkJCQkwRkQ0OEI2ODIzQjZBRUQ1
MDAyNkM0NkQgLyogcGFzX2hlYXBfaW5saW5lcy5oICovLApAQCAtMTY3MSwyMyArMTYxMCwyNCBA
QAogCQkJCTBGQzY4MTlFMjEwMzkxN0IwMDNDNkExMyAvKiBwYXNfaGVhcF9sb2NrLmMgKi8sCiAJ
CQkJMEZDNjgxOUYyMTAzOTE3QjAwM0M2QTEzIC8qIHBhc19oZWFwX2xvY2suaCAqLywKIAkJCQkw
RjZEQjg4QjIzNUU1NEE2MDA2OUNBREIgLyogcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oICovLAot
CQkJCTBGQzY4MUM2MjEwRjdDOUYwMDNDNkExMyAvKiBwYXNfaGVhcF9yZWYuYyAqLywKLQkJCQkw
RkM2ODFDNzIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX2hlYXBfcmVmLmggKi8sCiAJCQkJMEY4Nzky
QjIyMzhBMUQwQzAwQUVFN0YxIC8qIHBhc19oZWFwX3JlZl9raW5kLmggKi8sCiAJCQkJMEY0N0Q0
MEEyMTQwREIwNTAwOEM0MUYwIC8qIHBhc19oZWFwX3JlZl9wcmVmaXguaCAqLywKKwkJCQkwRkM2
ODFDNjIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX2hlYXBfcmVmLmMgKi8sCisJCQkJMEZDNjgxQzcy
MTBGN0M5RjAwM0M2QTEzIC8qIHBhc19oZWFwX3JlZi5oICovLAorCQkJCTBGMTQ4NzBFMjY5Qjc1
MTgwMDY4ODdBOSAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jICovLAogCQkJCTBGMzI5QTFG
MjNGMTEzMkEwMEExMzNDNCAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oICovLAogCQkJCTBG
QzRFQzMxMjM0QTkxRTIwMEI3MTBBMyAvKiBwYXNfaGVhcF9zdW1tYXJ5LmMgKi8sCiAJCQkJMEZF
QjY2NjQyMzFCMkE1NzAwOUMwMDFCIC8qIHBhc19oZWFwX3N1bW1hcnkuaCAqLywKKwkJCQkwRjZE
NTQ4MTIzQzU4MUMxMDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGVfc3RhdGUuaCAqLywKIAkJCQkw
RjZENTQ3NDIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGUuYyAqLywKIAkJCQkwRjZE
NTQ3NjIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGUuaCAqLywKLQkJCQkwRjZENTQ4
MTIzQzU4MUMxMDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGVfc3RhdGUuaCAqLywKKwkJCQkwRkM2
ODFDODIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX2hlYXAuYyAqLywKKwkJCQkwRkM2ODFDMDIxMEY3
QzlFMDAzQzZBMTMgLyogcGFzX2hlYXAuaCAqLywKIAkJCQkwRkQ0OEFGRTIzQTlBQkIwMDAyNkM0
NkQgLyogcGFzX2ltbW9ydGFsX2hlYXAuYyAqLywKIAkJCQkwRkQ0OEIwOTIzQTlBQkIxMDAyNkM0
NkQgLyogcGFzX2ltbW9ydGFsX2hlYXAuaCAqLywKIAkJCQkwRkQ0OEFGQzIzQTlBQkIwMDAyNkM0
NkQgLyogcGFzX2ltbXV0YWJsZV92ZWN0b3IuaCAqLywKIAkJCQkwRjUxNkVFMjI0NTYwRkY1MDA0
RTJCOEQgLyogcGFzX2ludGVybmFsX2NvbmZpZy5oICovLAotCQkJCTBGREVBNDI3MjI4QjY0MzMw
MDg1RTM0MCAvKiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCiAJCQkJMEZG
MDhGNDkyMkE4NDQ2QjAwMzg2NTc1IC8qIHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmggKi8s
Ci0JCQkJMEZDNjgxQTgyMTAzQ0FDOTAwM0M2QTEzIC8qIHBhc19sYXJnZV9mcmVlLmggKi8sCiAJ
CQkJMEZDNjgyNDYyMTJBMEYxRjAwM0M2QTEzIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmln
LmggKi8sCiAJCQkJMEY2NkQ1M0YyNDg3NjBBNzAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hl
YXBfZGVjbGFyYXRpb25zLmRlZiAqLywKIAkJCQkwRjc4MDg4OTIyRkE1MzQxMDBGMzc0NTEgLyog
cGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmMgKi8sCkBAIC0xNjk3LDM1
ICsxNjM3LDQxIEBACiAJCQkJMEY2NkQ1M0UyNDg3NjBBNzAwRkM3MzQ3IC8qIHBhc19sYXJnZV9m
cmVlX2hlYXBfaGVscGVycy5oICovLAogCQkJCTBGRjAwRDM3MjM3NzZENjQwMEMyMEFDMCAvKiBw
YXNfbGFyZ2VfZnJlZV9pbmxpbmVzLmggKi8sCiAJCQkJMEZGMDhGM0YyMkE1RjY1NTAwMzg2NTc1
IC8qIHBhc19sYXJnZV9mcmVlX3Zpc2l0b3IuaCAqLywKLQkJCQkwRkM2ODFBQzIxMDRGRUFEMDAz
QzZBMTMgLyogcGFzX2xhcmdlX2hlYXAuYyAqLywKLQkJCQkwRkM2ODFBNzIxMDNCMEU2MDAzQzZB
MTMgLyogcGFzX2xhcmdlX2hlYXAuaCAqLywKKwkJCQkwRkM2ODFBODIxMDNDQUM5MDAzQzZBMTMg
LyogcGFzX2xhcmdlX2ZyZWUuaCAqLywKIAkJCQkwRjE5MzI2NjIyRjNCM0YyMDBGQkE3MTMgLyog
cGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMgKi8sCiAJCQkJMEYx
OTMyNjcyMkYzQjNGMzAwRkJBNzEzIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hh
cmluZ19jYWNoZS5oICovLAorCQkJCTBGQzY4MUFDMjEwNEZFQUQwMDNDNkExMyAvKiBwYXNfbGFy
Z2VfaGVhcC5jICovLAorCQkJCTBGQzY4MUE3MjEwM0IwRTYwMDNDNkExMyAvKiBwYXNfbGFyZ2Vf
aGVhcC5oICovLAorCQkJCTBGRjA4RjQ3MjJBNzYzRjEwMDM4NjU3NSAvKiBwYXNfbGFyZ2VfbWFw
X2VudHJ5LmggKi8sCiAJCQkJMEZDNjgxQTAyMTAzOTE3QjAwM0M2QTEzIC8qIHBhc19sYXJnZV9t
YXAuYyAqLywKIAkJCQkwRkM2ODFBMTIxMDM5MTdCMDAzQzZBMTMgLyogcGFzX2xhcmdlX21hcC5o
ICovLAotCQkJCTBGRjA4RjQ3MjJBNzYzRjEwMDM4NjU3NSAvKiBwYXNfbGFyZ2VfbWFwX2VudHJ5
LmggKi8sCisJCQkJMEZDODQ3OTQyMzJENjk0OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9zaGFyaW5n
X3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCAqLywKIAkJCQkwRkNGQTQ5OTIzODM1MkVDMDBDQ0Q3
MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jICovLAogCQkJCTBGQ0ZBNDk4MjM4MzUyRUIw
MENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggKi8sCi0JCQkJMEZDODQ3OTQyMzJE
Njk0OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUu
aCAqLywKIAkJCQkwRjZENTQ3NTIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX2xhcmdlX3V0aWxpdHlf
ZnJlZV9oZWFwLmMgKi8sCiAJCQkJMEY2RDU0NzIyM0M1NzNFMDAwRjQwREJCIC8qIHBhc19sYXJn
ZV91dGlsaXR5X2ZyZWVfaGVhcC5oICovLAogCQkJCTBGOEE4MDI3MjVFQzU4ODgwMDc5MEI0QSAv
KiBwYXNfbGluZV93b3JkX2NvbmZpZy5oICovLAogCQkJCTBGMzFBNjQzMjNFMzUwOUUwMDJDMENB
MyAvKiBwYXNfbGlzdF9kaXJlY3Rpb24uaCAqLywKLQkJCQkwRkRCQjA3MTIyQjg3NUE2MDA2QkE1
RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5jICovLAotCQkJCTBGREJCMDcyMjJCODc1QTYwMDZC
QTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZENDhCMDIyM0E5QUJCMDAw
MjZDNDZEIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQuaCAqLywKIAkJCQkwRkRC
QjA3NjIyQjg3N0ZBMDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggKi8s
CisJCQkJMEY0NUQ1QTYyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2lu
ZC5oICovLAogCQkJCTBGOEE4MDI4MjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2xpbmUuaCAqLywKIAkJCQkwRkRCQjA3MDIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oICovLAogCQkJCTBGQzY4MUJGMjEwRjdDOUUwMDNDNkEx
MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oICovLAotCQkJCTBGMDRDMjBEMjQ2MERC
NkUwMDFEMzFGMCAvKiBwYXNfbG9jay5jICovLAotCQkJCTBGQzY4MjVEMjEyQ0E3NkQwMDNDNkEx
MyAvKiBwYXNfbG9jay5oICovLAorCQkJCTBGNDVENUE3MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgKi8sCisJCQkJMEY0NUQ1QTgyNkFCNzMx
NDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCAqLywKKwkJ
CQkwRkRCQjA3MTIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5jICovLAor
CQkJCTBGREJCMDcyMjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmggKi8s
CisJCQkJMEYxNDg3MUQyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25v
ZGUuYyAqLywKKwkJCQkwRjE0ODcxQTI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdf
Y2FjaGVfbm9kZS5oICovLAorCQkJCTBGMTQ4NzFCMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9j
YWxfdmlld19jYWNoZS5jICovLAorCQkJCTBGMTQ4NzBDMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNf
bG9jYWxfdmlld19jYWNoZS5oICovLAogCQkJCTBGRUE0NUJBMjM2Q0Q1QUMwMEI1QTM3NSAvKiBw
YXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYyAqLywKIAkJCQkwRkVBNDVCQjIz
NkNENUFDMDBCNUEzNzUgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmgg
Ki8sCisJCQkJMEYwNEMyMEQyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19sb2NrLmMgKi8sCisJCQkJ
MEZDNjgyNUQyMTJDQTc2RDAwM0M2QTEzIC8qIHBhc19sb2NrLmggKi8sCiAJCQkJMEY5RTk0NTYy
MzQ1MjI2MjAwOUZBRkREIC8qIHBhc19sb2cuYyAqLywKIAkJCQkwRjlFOTQ1NzIzNDUyMjYyMDA5
RkFGREQgLyogcGFzX2xvZy5oICovLAotCQkJCTBGMDRDMjEyMjQ2MERCNkYwMDFEMzFGMCAvKiBw
YXNfbWFnYXppbmUuYyAqLywKLQkJCQkwRjA0QzIwODI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX21h
Z2F6aW5lLmggKi8sCiAJCQkJMEYwMzdBRjEyNUFFQTkxOTAwNzlCNTgyIC8qIHBhc19tZWRpdW1f
bWVnYXBhZ2VfY2FjaGUuYyAqLywKIAkJCQkwRjAzN0FGMjI1QUVBOTFBMDA3OUI1ODIgLyogcGFz
X21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oICovLAogCQkJCTBGQzY4MjAwMjEyMTBCMTkwMDNDNkEx
MyAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuYyAqLywKQEAgLTE3MzUsMTMgKzE2ODEsMTMgQEAKIAkJ
CQkwRkQ0OEFGRDIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX21vbm90b25pY190aW1lLmggKi8sCiAJ
CQkJMEYwOTIyNjkyMkIwN0MyMTAwN0Q1RDNBIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oICovLAog
CQkJCTBGOUExRDRBMjU1RjJDRDcwMEM4RDExQiAvKiBwYXNfb2JqZWN0X2tpbmQuaCAqLywKLQkJ
CQkwRjlBMUNCQTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5jICovLAotCQkJCTBG
OUExQ0I5MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmggKi8sCi0JCQkJMEY5QTFD
QzAyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi8sCiAJCQkJMEY5
QTFENDIyNTVBRjczMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX2lubGluZXMuaCAq
LywKLQkJCQkwRjlBMUNENDI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdf
dXRpbHMuaCAqLywKIAkJCQkwRjlBMUNBQjI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFz
ZV9jb25maWdfdXRpbHNfaW5saW5lcy5oICovLAorCQkJCTBGOUExQ0Q0MjU1OTk2MTYwMEM4RDEx
QiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICovLAorCQkJCTBGOUExQ0MwMjU1OTk2
MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oICovLAogCQkJCTBGOUExQ0FDMjU1
OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCAqLywKKwkJCQkwRjlBMUNC
QTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5jICovLAorCQkJCTBGOUExQ0I5MjU1
OTk2MTMwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmggKi8sCiAJCQkJMEY5QTFDQzYyNTU5OTYx
NDAwQzhEMTFCIC8qIHBhc19wYWdlX2NvbmZpZ19raW5kLmggKi8sCiAJCQkJMEY5QTFDREEyNTU5
OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggKi8sCiAJCQkJMEY5
QTFDRDUyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5o
ICovLApAQCAtMTc1MSwxMiArMTY5NywxMyBAQAogCQkJCTBGQzY4MThDMjEwMjdCNDcwMDNDNkEx
MyAvKiBwYXNfcGFnZV9tYWxsb2MuYyAqLywKIAkJCQkwRkM2ODE4OTIxMDI3QjQ2MDAzQzZBMTMg
LyogcGFzX3BhZ2VfbWFsbG9jLmggKi8sCiAJCQkJMEY5QTFDRDkyNTU5OTYxNjAwQzhEMTFCIC8q
IHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oICovLAorCQkJCTBGMTkzMjVCMjJGMTE5M0QwMEZCQTcx
MyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaCAqLywKIAkJCQkwRjE5MzI1
RDIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jICovLAog
CQkJCTBGMTkzMjVFMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lw
YW50LmggKi8sCi0JCQkJMEYxOTMyNUIyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnRfa2luZC5oICovLAorCQkJCTBGQ0JEMDMzMjZBREY5MjUwMEQyNkQ2OCAv
KiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmggKi8sCisJCQkJMEZGMjQ4
RjgyMkZDOUVEQjAwNzcyMDJFIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5o
ICovLAogCQkJCTBGRDIyQ0ZFMjJDQzAxRDMwMEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2wuYyAqLywKIAkJCQkwRkQyMkNGRDIyQ0MwMUQzMDBCMjE4NDEgLyogcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sLmggKi8sCi0JCQkJMEZGMjQ4RjgyMkZDOUVEQjAwNzcyMDJFIC8qIHBhc19wYWdlX3No
YXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oICovLAogCQkJCTBGNEY2MUM5MjVBNENEM0IwMDhCNEE4
MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYyAqLywKIAkJCQkwRjRGNjFD
ODI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0Lmgg
Ki8sCiAJCQkJMEY2RDU0NzMyM0M1NzNFMDAwRjQwREJCIC8qIHBhc19waHlzaWNhbF9tZW1vcnlf
c3luY2hyb25pemF0aW9uX3N0eWxlLmggKi8sCkBAIC0xNzc0LDExICsxNzIxLDExIEBACiAJCQkJ
MEY1RTQ4MzUyM0Q2OTYwRjAwNDZEQTVDIC8qIHBhc19yYWNlX3Rlc3RfaG9va3MuaCAqLywKIAkJ
CQkwRkQ0OEFGNTIzQTlBQkFGMDAyNkM0NkQgLyogcGFzX3JhbmRvbS5jICovLAogCQkJCTBGRDQ4
QjBGMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfcmFuZG9tLmggKi8sCi0JCQkJMEYxOTMyNTIyMkVE
MDRBNjAwRkJBNzEzIC8qIHBhc19yYW5nZS5oICovLAotCQkJCTBGNkQ1NjM5MjNDNzlEMzcwMEY0
MERCQiAvKiBwYXNfcmFuZ2UxNi5oICovLAogCQkJCTBGNEY2MUFEMjVBM0QwQkIwMDhCNEE4MiAv
KiBwYXNfcmFuZ2VfYmVnaW5fbWluX2hlYXAuaCAqLywKIAkJCQkwRkQ0OEFGMTIzQTlBQkFGMDAy
NkM0NkQgLyogcGFzX3JhbmdlX2xvY2tlZF9tb2RlLmggKi8sCiAJCQkJMEY3ODA4OEEyMkZBNTM0
MTAwRjM3NDUxIC8qIHBhc19yYW5nZV9taW5faGVhcC5oICovLAorCQkJCTBGMTkzMjUyMjJFRDA0
QTYwMEZCQTcxMyAvKiBwYXNfcmFuZ2UuaCAqLywKKwkJCQkwRjZENTYzOTIzQzc5RDM3MDBGNDBE
QkIgLyogcGFzX3JhbmdlMTYuaCAqLywKIAkJCQkwRkU3RUU3RTIyQTFBNTgwMDA0RjQxNjYgLyog
cGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlLmggKi8sCiAJCQkJMEZFN0VFN0MyMkExQTMxQzAwNEY0
MTY2IC8qIHBhc19yZWFsbG9jYXRlX2hlYXBfdGVsZXBvcnRfcnVsZS5oICovLAogCQkJCTBGRjA4
RjMyMjJBNThGMTIwMDM4NjU3NSAvKiBwYXNfcmVkX2JsYWNrX3RyZWUuYyAqLywKQEAgLTE3OTIs
NjIgKzE3MzksNTUgQEAKIAkJCQkwRjE5MzI2QjIyRjczRTg0MDBGQkE3MTMgLyogcGFzX3NjYXZl
bmdlci5jICovLAogCQkJCTBGMTkzMjZBMjJGNzNFODQwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2Vy
LmggKi8sCiAJCQkJMEY2ODEyNzEyMkJENEJGNDAwMzZBMDJCIC8qIHBhc19zZWdtZW50ZWRfdmVj
dG9yLmggKi8sCi0JCQkJMEYwNEMyMEUyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEYwNEMyMDIyNDYwREI2RDAwMUQzMUYwIC8q
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEYwNEMyMEEyNDYw
REI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jICovLAotCQkJCTBG
MDRDMjBDMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCAq
LywKLQkJCQkwRkQ0OEIxRTIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5LmMgKi8sCi0JCQkJMEZENDhCMUIyM0E5QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeS5oICovLAorCQkJCTBGMTQ4NzBBMjY5Qjc1MTcwMDY4ODdBOSAvKiBwYXNfc2Vn
cmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oICovLAogCQkJCTBGRDQ4QjBDMjNBOUFCQjEwMDI2
QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oICovLAogCQkJ
CTBGNTA4RDUyMjU4RUNGRDMwMDE1MUVEOCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmly
c3RfZWxpZ2libGVfa2luZC5oICovLAogCQkJCTBGRDQ4QUY4MjNBOUFCQUYwMDI2QzQ2RCAvKiBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaW5saW5lcy5oICovLAogCQkJCTBGRDQ4QjIyMjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oICovLAorCQkJCTBG
RDQ4QjFFMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYyAqLywK
KwkJCQkwRkQ0OEIxQjIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
LmggKi8sCisJCQkJMEZFNjcyQjYyNUMyMUQ1MzAwNkY2MEEyIC8qIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X2lubGluZXMuaCAqLywKIAkJCQkwRkQ0OEIxODIzQTlBQkIyMDAyNkM0NkQg
LyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYyAqLywKIAkJCQkwRkQ0OEIwNjIzQTlB
QkIwMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCAqLywKLQkJCQkw
RkU2NzJCNjI1QzIxRDUzMDA2RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
aW5saW5lcy5oICovLAotCQkJCTBGMDRDMjA3MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oICovLAotCQkJCTBGMDRDMjAzMjQ2
MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYyAq
LywKLQkJCQkwRjA0QzIwNDI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEYwNEMyMEYyNDYwREI2RTAwMUQzMUYwIC8qIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJMEZD
NjgxQzEyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuYyAqLywKLQkJCQkw
RkM2ODFDNTIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oICovLAogCQkJ
CTBGRDQ4QUYwMjNBOUFCQUYwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMu
aCAqLywKIAkJCQkwRkRFQTU4NzIyOEY3RDRGMDA4NUUzNDAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9sb29rdXBfa2luZC5oICovLAotCQkJCTBGQzY4MUI0MjEwNkNENzkwMDNDNkExMyAvKiBwYXNf
c2VncmVnYXRlZF9wYWdlLmMgKi8sCi0JCQkJMEZDNjgxQUYyMTA2NUEwMDAwM0M2QTEzIC8qIHBh
c19zZWdyZWdhdGVkX3BhZ2UuaCAqLywKKwkJCQkwRkM2ODFDMTIxMEY3QzlFMDAzQzZBMTMgLyog
cGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jICovLAorCQkJCTBGQzY4MUM1MjEwRjdDOUYwMDNDNkExMyAv
KiBwYXNfc2VncmVnYXRlZF9oZWFwLmggKi8sCiAJCQkJMEY5QTFEM0UyNTVBNTBENjAwQzhEMTFC
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZpZy5oICovLAotCQkJCTBGOTdFNjJGMjJB
OUFBQzEwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jICovLAotCQkJCTBG
OTdFNjJEMjJBOUE4NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oICov
LAogCQkJCTBGREJCMDc4MjJCOTgwNTQwMDZCQTVGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhCMjMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuYyAqLywKIAkJCQkwRkY4RDYyNjIyQzA0QTZEMDBF
QzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5kZWYgKi8sCiAJCQkJMEZE
RUE0MEEyMjhCNjQzMTAwODVFMzQwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQu
aCAqLywKLQkJCQkwRjA5MjI2QjIyQjJEODhFMDA3RDVEM0EgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfdXRpbHMuaCAqLywKIAkJCQkwRjA4M0Y1ODIyQzI5NzlCMDBGM0NEQjMgLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oICovLAorCQkJCTBGMDkyMjZC
MjJCMkQ4OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oICov
LAogCQkJCTBGOUExQzlGMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ192YXJpYW50LmggKi8sCisJCQkJMEY5N0U2MkYyMkE5QUFDMTAwQzM1NUY4IC8qIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgKi8sCisJCQkJMEY5N0U2MkQyMkE5QTg1RjAwQzM1NUY4
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggKi8sCiAJCQkJMEZDNEVDNzgyMzUxNzA3
QjAwQjcxMEEzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfZW1wdGluZXNzX2tpbmQuaCAqLywKIAkJ
CQkwRkY4RDYyODIyQzE2NkY1MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVz
LmggKi8sCisJCQkJMEZDNjgxQjQyMTA2Q0Q3OTAwM0M2QTEzIC8qIHBhc19zZWdyZWdhdGVkX3Bh
Z2UuYyAqLywKKwkJCQkwRkM2ODFBRjIxMDY1QTAwMDAzQzZBMTMgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZS5oICovLAorCQkJCTBGRDQ4QjJBMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXdfaW5saW5lcy5oICovLAogCQkJCTBGRDQ4QjExMjNBOUFCQjEwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYyAqLywKIAkJCQkwRkQ0OEFGQTIzQTlB
QkIwMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmggKi8sCi0JCQkJMEZE
NDhCMkEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pbmxp
bmVzLmggKi8sCisJCQkJMEZENDhCMDEyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF9oYW5kbGVfaW5saW5lcy5oICovLAogCQkJCTBGRDQ4QjBEMjNBOUFCQjEwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmMgKi8sCiAJCQkJMEZENDhCMUEyM0E5
QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaCAqLywKLQkJCQkw
RkQ0OEIwMTIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9p
bmxpbmVzLmggKi8sCiAJCQkJMEZENDhBRjMyM0E5QUJBRjAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jICovLAogCQkJCTBGRDQ4QjFDMjNBOUFCQjIwMDI2
QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaCAqLywKKwkJCQkw
RjVFNUNGMTIzQkZCRkI4MDBBQTBCNkYgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5s
aW5lcy5oICovLAogCQkJCTBGRDQ4QjE3MjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfdmlldy5jICovLAogCQkJCTBGRDQ4QjI1MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfdmlldy5oICovLAotCQkJCTBGNUU1Q0YxMjNCRkJGQjgwMEFBMEI2
RiAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxpbmVzLmggKi8sCisJCQkJMEYxNDg3
MUMyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0
aW9uX21vZGUuaCAqLywKKwkJCQkwRkQ0OEIxOTIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovLAogCQkJCTBGRDQ4QjIxMjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jICovLAogCQkJCTBGRDQ4
QjI5MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oICov
LAotCQkJCTBGRDQ4QjE5MjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJMEZENDhBRkIyM0E5QUJCMDAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX3ZpZXcuYyAqLywKLQkJCQkwRkQ0OEIwRTIzQTlBQkIxMDAyNkM0NkQgLyog
cGFzX3NlZ3JlZ2F0ZWRfdmlldy5oICovLAogCQkJCTBGRTY3MkM2MjVDMjFGNjcwMDZGNjBBMiAv
KiBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCi0JCQkJMEYwNEMy
MTAyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICovLAog
CQkJCTBGRDQ4QjE0MjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQu
aCAqLywKLQkJCQkwRjlBMUM5RDI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVf
b3JfcGFnZV9ib3VuZGFyeS5oICovLAorCQkJCTBGRDQ4QUZCMjNBOUFCQjAwMDI2QzQ2RCAvKiBw
YXNfc2VncmVnYXRlZF92aWV3LmMgKi8sCisJCQkJMEZENDhCMEUyM0E5QUJCMTAwMjZDNDZEIC8q
IHBhc19zZWdyZWdhdGVkX3ZpZXcuaCAqLywKIAkJCQkwRjlBMUNEQjI1NTk5NjE2MDBDOEQxMUIg
LyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmggKi8sCisJCQkJ
MEY5QTFDOUQyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91
bmRhcnkuaCAqLywKIAkJCQkwRjE4RTYzRDI2MjhCRkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeV9ieV9zaXplLmMgKi8sCiAJCQkJMEYxOEU2M0MyNjI4QkZCNjAwRjY5MDNE
IC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5oICovLAogCQkJCTBGNkQ1NjNF
MjNDQUExQjkwMEY0MERCQiAvKiBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVm
ICovLApAQCAtMTg1OCwxMSArMTc5OCwxMSBAQAogCQkJCTBGRjA4RjNCMjJBNURDNjkwMDM4NjU3
NSAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5oICovLAogCQkJCTBGREVBNTc2MjI4RTIz
NDQwMDg1RTM0MCAvKiBwYXNfc2ltcGxlX3R5cGUuaCAqLywKIAkJCQkwRjk5Rjk4QjI1Q0IyQ0U4
MDBFRUU0NDkgLyogcGFzX3NpemVfdGh1bmsuaCAqLywKKwkJCQkwRjMxQTYzOTIzRENGODA0MDAy
QzBDQTMgLyogcGFzX3NraXBfbGlzdF9pbmxpbmVzLmggKi8sCiAJCQkJMEYzMUE2M0EyM0RDRjgw
NDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuYyAqLywKIAkJCQkwRjMxQTYzQjIzRENGODA0MDAy
QzBDQTMgLyogcGFzX3NraXBfbGlzdC5oICovLAotCQkJCTBGMzFBNjM5MjNEQ0Y4MDQwMDJDMENB
MyAvKiBwYXNfc2tpcF9saXN0X2lubGluZXMuaCAqLywKLQkJCQkwRkM2NDE4NDIxMzBERkI2MDA0
MENFNUUgLyogcGFzX3Nsb3dfcGF0aF9tb2RlLmggKi8sCiAJCQkJMEY0N0Q0MEUyMTQwREIwNTAw
OEM0MUYwIC8qIHBhc19zbG93X3BhdGhfbW9kZV9wcmVmaXguaCAqLywKKwkJCQkwRkM2NDE4NDIx
MzBERkI2MDA0MENFNUUgLyogcGFzX3Nsb3dfcGF0aF9tb2RlLmggKi8sCiAJCQkJMEY2RDU0Nzgy
M0M1NzNFMTAwRjQwREJCIC8qIHBhc19zbWFsbF9sYXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkw
RkM2ODIxNzIxMjUzNjI3MDAzQzZBMTMgLyogcGFzX3NucHJpbnRmLmggKi8sCiAJCQkJMEZDNEVD
MzIyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuYyAqLywKQEAgLTE4NzEs
NDggKzE4MTEsNDUgQEAKIAkJCQkwRkM2ODIxOTIxMjUzNjI3MDAzQzZBMTMgLyogcGFzX3N0cmVh
bS5oICovLAogCQkJCTBGQzRFQzJFMjM0QTkxRTIwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVh
bS5jICovLAogCQkJCTBGQzRFQzMzMjM0QTkxRTIwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVh
bS5oICovLAotCQkJCTBGOUExQ0Q3MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAu
YyAqLywKLQkJCQkwRjlBMUNDMjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmgg
Ki8sCi0JCQkJMEY5QTFDOUMyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRy
eS5jICovLAotCQkJCTBGOUExQzk3MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXBf
ZW50cnkuaCAqLywKLQkJCQkwRkM2ODFDOTIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZS5jICovLAotCQkJCTBGQzY4MUM0MjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlLmggKi8sCi0JCQkJMEZDNjgxQzIyMTBGN0M5RTAwM0M2QTEzIC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmMgKi8sCi0JCQkJMEZDNjgxQ0EyMTBGN0M5RjAw
M0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmggKi8sCisJCQkJMEYxNDg3
MUUyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
a2luZC5oICovLAogCQkJCTBGQTVFNDUxMjQ5MkQ1QjkwMENFOTYyQSAvKiBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlLmMgKi8sCiAJCQkJMEZBNUU0NTMyNDkyRDVCOTAwQ0U5NjJB
IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLywKKwkJCQkwRkM2ODFD
MjIxMEY3QzlFMDAzQzZBMTMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYyAqLywK
KwkJCQkwRkM2ODFDQTIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXQuaCAqLywKIAkJCQkwRjdGNTFCQzIzMTU5RUMwMDA3NTUyQUUgLyogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9ub2RlLmMgKi8sCiAJCQkJMEY3RjUxQkQyMzE1OUVDMDAwNzU1MkFFIC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oICovLAorCQkJCTBGQzY4MUM5MjEwRjdDOUYwMDND
NkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgKi8sCisJCQkJMEZDNjgxQzQyMTBGN0M5
RTAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCAqLywKIAkJCQkwRjZENTQ3MTIz
QzU3M0UwMDBGNDBEQkIgLyogcGFzX3RpbnlfbGFyZ2VfbWFwX2VudHJ5LmggKi8sCiAJCQkJMEYz
MUE2NjkyM0U4RTU5NDAwMkMwQ0EzIC8qIHBhc190cmVlX2RpcmVjdGlvbi5oICovLAogCQkJCTBG
OEE4MDBDMjVDRjY0QzkwMDc5MEI0QSAvKiBwYXNfdHJpX3N0YXRlLmggKi8sCi0JCQkJMEZFN0VF
NUIyMjlFMTRGOTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGUuaCAqLywKIAkJCQkwRkU3RUU1
QTIyOUUxNEY5MDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oICovLAogCQkJCTBG
RDQ4QjAzMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oICovLAog
CQkJCTBGRTdFRTU5MjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNp
Y19wcmltaXRpdmUuaCAqLywKIAkJCQkwRkU3RUU1RDIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX3Ry
eV9hbGxvY2F0ZV9wcmltaXRpdmUuaCAqLywKKwkJCQkwRkU3RUU1QjIyOUUxNEY5MDA0RjQxNjYg
LyogcGFzX3RyeV9hbGxvY2F0ZS5oICovLAogCQkJCTBGRTdFRTc4MjJBMDQ4QkEwMDRGNDE2NiAv
KiBwYXNfdHJ5X3JlYWxsb2NhdGUuaCAqLywKIAkJCQkwRjU5QTM5MjI2NjdGMDBFMDBBMzg2NTcg
LyogcGFzX3RyeV9zaHJpbmsuaCAqLywKIAkJCQkwRkRFQTQ3NjIyOEI2NTQzMDA4NUUzNDAgLyog
cGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCi0JCQkJMEZDNjgyM0UyMTI5RUQ1MTAw
M0M2QTEzIC8qIHBhc191dGlsaXR5X2hlYXAuYyAqLywKLQkJCQkwRkM2ODI0MTIxMjlFRDUxMDAz
QzZBMTMgLyogcGFzX3V0aWxpdHlfaGVhcC5oICovLAogCQkJCTBGREVBNDIzMjI4QjY0MzMwMDg1
RTM0MCAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGREVBNDFCMjI4QjY0
MzIwMDg1RTM0MCAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGRDQ4QUYy
MjNBOUFCQUYwMDI2QzQ2RCAvKiBwYXNfdXRpbGl0eV9oZWFwX3N1cHBvcnQuaCAqLywKKwkJCQkw
RkM2ODIzRTIxMjlFRDUxMDAzQzZBMTMgLyogcGFzX3V0aWxpdHlfaGVhcC5jICovLAorCQkJCTBG
QzY4MjQxMjEyOUVENTEwMDNDNkExMyAvKiBwYXNfdXRpbGl0eV9oZWFwLmggKi8sCisJCQkJMEZD
NjQxOTYyMTQwQ0FEQzAwNDBDRTVFIC8qIHBhc191dGlsc19wcmVmaXguaCAqLywKIAkJCQkwRkM2
ODE4RjIxMDI3QzQ0MDAzQzZBMTMgLyogcGFzX3V0aWxzLmMgKi8sCiAJCQkJMEZDNjgxODgyMTAy
N0I0NjAwM0M2QTEzIC8qIHBhc191dGlscy5oICovLAotCQkJCTBGQzY0MTk2MjE0MENBREMwMDQw
Q0U1RSAvKiBwYXNfdXRpbHNfcHJlZml4LmggKi8sCiAJCQkJMEY5QTFDQjEyNTU5OTYxMzAwQzhE
MTFCIC8qIHBhc192ZXJzaW9uZWRfZmllbGQuYyAqLywKIAkJCQkwRjY4MTI2RjIyQkQ0MTlFMDAz
NkEwMkIgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5oICovLAorCQkJCTBGNzgwODg4MjJGQTUzNDEw
MEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oICovLAogCQkJCTBGNzgwODgz
MjJGQTIyRDIwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5nZS5jICovLAogCQkJCTBGNzgwODgy
MjJGQTIyRDEwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5nZS5oICovLAotCQkJCTBGNzgwODg4
MjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oICovLAogCQkJ
CTBGREVBNDZEMjI4QjY1NDMwMDg1RTM0MCAvKiBwYXNfemVyb19tb2RlLmggKi8sCi0JCQkJMEY4
NzAwQTIyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmMgKi8sCi0JCQkJMEY4NzAwQTMy
NUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmggKi8sCiAJCQkJMEY4NzAwQTQyNUIwQThD
MjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGODcwMEE1MjVCMEE4
QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRjg3MDBBMTI1QjBB
OEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfcHJlZml4LmggKi8sCisJCQkJMEY4NzAwQTIyNUIw
QThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmMgKi8sCisJCQkJMEY4NzAwQTMyNUIwQThDMjAw
MEUxQUJGIC8qIHRoaW5neV9oZWFwLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGxpYnBhczsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xOTIwLDggKzE4NTcsOCBAQAogCQkwRkU3RUU4
QzIyQTFEQzMzMDA0RjQxNjYgLyogbWJtYWxsb2MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAotCQkJCTBGOEE4MDU0MjVFRUNCRDQwMDc5MEI0QSAvKiBtYm1hbGxv
Y19ibWFsbG9jLmMgKi8sCiAJCQkJMEY4QTgwQjMyNUY2QTQ2QzAwNzkwQjRBIC8qIG1ibWFsbG9j
X2hvdGJpdC5jICovLAorCQkJCTBGOEE4MDU0MjVFRUNCRDQwMDc5MEI0QSAvKiBtYm1hbGxvY19i
bWFsbG9jLmMgKi8sCiAJCQkJMEZGMDhGNTUyMkE4NkUyRTAwMzg2NTc1IC8qIG1ibWFsbG9jX2lz
b19jb21tb25fcHJpbWl0aXZlLmMgKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1ibWFsbG9jOwpAQCAt
MTkzOSwxNCArMTg3NiwxNCBAQAogCQkzQTZDQTY1ODIxMDEyODk1MDAzRUZEQkYgLyogUHJvZHVj
dHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTBGQkFF
NjgzMjQ4RUMxQzAwMDMxMUU2RiAvKiBjaGFvcyAqLywKIAkJCQkwRkM2ODFEQjIxMEZBQzRCMDAz
QzZBMTMgLyogdGVzdF9wYXMgKi8sCi0JCQkJMEY4QTgwM0IyNUVFQ0JBRjAwNzkwQjRBIC8qIGxp
Ym1ibWFsbG9jX2JtYWxsb2MuZHlsaWIgKi8sCi0JCQkJMEY4QTgwOTcyNUY2QTQ0RjAwNzkwQjRB
IC8qIGxpYm1ibWFsbG9jX2hvdGJpdC5keWxpYiAqLywKLQkJCQkwRkYwOEY1NDIyQTg2QzlBMDAz
ODY1NzUgLyogbGlibWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmUuZHlsaWIgKi8sCi0JCQkJ
MEY0NDNCNEUyMzQxNzYxNTAwQkU1MEQxIC8qIGxpYm1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0
aXZlX3ZlcmlmaWVkLmR5bGliICovLAogCQkJCTBGREVBNUQ5MjI5NUZDOEMwMDg1RTM0MCAvKiBs
aWJwYXMuZHlsaWIgKi8sCisJCQkJMEZGMDhGNTQyMkE4NkM5QTAwMzg2NTc1IC8qIGxpYm1ibWFs
bG9jX2lzb19jb21tb25fcHJpbWl0aXZlLmR5bGliICovLAogCQkJCTBGNDQzQjNBMjM0MTZBN0Mw
MEJFNTBEMSAvKiBsaWJwYXNfdmVyaWZpZXIuZHlsaWIgKi8sCisJCQkJMEY0NDNCNEUyMzQxNzYx
NTAwQkU1MEQxIC8qIGxpYm1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlX3ZlcmlmaWVkLmR5
bGliICovLAorCQkJCTBGQkFFNjgzMjQ4RUMxQzAwMDMxMUU2RiAvKiBjaGFvcyAqLywKKwkJCQkw
RjhBODAzQjI1RUVDQkFGMDA3OTBCNEEgLyogbGlibWJtYWxsb2NfYm1hbGxvYy5keWxpYiAqLywK
KwkJCQkwRjhBODA5NzI1RjZBNDRGMDA3OTBCNEEgLyogbGlibWJtYWxsb2NfaG90Yml0LmR5bGli
ICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9kdWN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7CkBAIC0yMDA1LDM2NSArMTk0MiwzNTQgQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBo
YXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJ
CTBGOEE4MDY3MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGOEE4MDY5MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODA2NTI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19o
ZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEE4MDZCMjVFRUNDMUQwMDc5MEI0
QSAvKiBibWFsbG9jX2hlYXBfaW5uYXJkcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgwNkEy
NUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOEE4MTA1MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY4QTgxMDMyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgxMDYyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFw
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEE4MTAyMjVGNkE3OTUwMDc5MEI0QSAv
KiBob3RiaXRfaGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUU3NzIyOUYw
MTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTU2MjI5
NzQzMzUwMDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
NUZFN0E0MjVCNjE0RjIwMDE4NTlGQyAvKiBpc29faGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjUxNkVFNzI0NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY1MjlEREYyNDU1NDYwQzAwMzg1QThDIC8qIGlzb19oZWFwX3Jl
Zi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1RTVDRUUyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190
ZXN0X2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUU1Q0VGMjNCRUYzNjAwMEFBMEI2RiAv
KiBpc29fdGVzdF9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1OUEzOTMyNjY3
RjAwRTAwQTM4NjU3IC8qIGppdF9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjU5QTM5NDI2
NjdGMDBFMDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjU5QTM5ODI2NjgzMTc0MDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZCRDY3REMyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJf
aGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZCRDY3REQyNUJEMzYzQTAwQTQ5MEQyIC8qIG1p
bmFsaWduMzJfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQkQ2N0YxMjVCRTA3
ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkJE
NjdGMjI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRTdFREZFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxpZ25lZF9hbGxv
Y2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFNjQyMjlFMTRGQTAwNEY0
MTY2IC8qIHBhc19nZXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1RTVDRjIyM0JGQkZC
OTAwQUEwQjZGIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lubGluZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGRTdFRTJFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9o
ZWFwX2xvb2t1cF9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI1QjIzQTlBQkIzMDAy
NkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGRTdFRTMzMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc3RyZWFtLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkU3RUU2NTIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxv
Y2F0ZV9wcmltaXRpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzIzMjY5RjVGQ0EwMDY4
ODdBOSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGMjE1MEVEMjQ4NEJCODYwMDBENjM0QiAvKiBwYXNfY29tcGFjdF9hdG9t
aWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VERkYyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19hbGlnbmVkX2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZFN0VFMDAyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGlnbm1lbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGOUExRDFCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGly
ZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTlBMzk1MjY2N0YwMEUwMEEzODY1NyAv
KiBwYXNfYWxsX2hlYXBfY29uZmlncy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMDEyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19hbGxfaGVhcHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMUFF
Q0U5MjY1ODE5NjEwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZENDhCNjIyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGly
ZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDdDMzFGMjMzOTZFMEIwMDJBMUNGNyAv
KiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNzgwODky
MjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfYWxsb2NhdGlvbl9jb25maWcuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGNDdDMzFBMjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9raW5kLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwMjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsbG9j
YXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkRCQjA3QjIyQkJGRjgzMDA2QkE1
RkMgLyogcGFzX2FsbG9jYXRvcl9jb3VudHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMjE1MEVC
MjQ4NEJCMkEwMDBENjM0QiAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjZCNDdGRTIzMzE1QUU1MDAyQTVFMEMgLyogcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9h
Y3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjNCMjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfYmFzZWxpbmVfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0MDIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRDQ4QjVBMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3RhYmxlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjE2NDI1OUJGQjg1MDA4QjRBODIg
LyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY0RjYxNkQyNTlCRkY5MTAwOEI0QTgyIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19y
b290X2RhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzI5QTIyMjNGMTEzMkIwMEExMzNDNCAv
KiBwYXNfYmFzaWNfaGVhcF9wYWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMjlB
MjEyM0YxMTMyQTAwQTEzM0M0IC8qIHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjMyOUEyNDIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2Jhc2ljX3Nl
Z3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDIzMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOUExRDBCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRjUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19i
aWFzaW5nX2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwMzIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX2JpdGZpZWxkX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY2NkQ1NDgyNDg3NjBBODAwRkM3MzQ3IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCNDdGRDIzMzE1QUU1MDAy
QTVFMEMgLyogcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZDNEVDM0YyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19mZF9zdHJlYW0uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGOUExQ0U1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2Fs
bG9jYXRpb25fcmVzdWx0X2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTBDMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfZXh0ZW5kZWRfZ2NkLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlB
MUNGNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMjYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19z
aGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY5QTFEMDcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1
bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNUZFN0E0MjVCNjE0RjIwMDE4NTlGQyAvKiBpc29f
aGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQwODI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDFE
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjlBMUNGMzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMDIyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNG
NjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjlBMUQxNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9k
aXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRkYyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOUExQ0U0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnku
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0ZCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQxODI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlB
MUNFNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9tYXhfZnJlZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY5QTFEMDMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
cGFnZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTcwOTE4MjU2QUIyMTEwMDAzN0JC
MyAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOUExQ0ZBMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0U2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjU3MDkxQTI1NkFC
NDE3MDAwMzdCQjMgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjlBMUQxNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQwMTI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOUExRDIxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExQ0VEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Zp
ZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDQ1MjU1REJFNjEwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X3ZpZXdfYW5kX2luZGV4LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQ0MTI1NUFG
Mjc5MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRTdFRTA0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYml0dmVjdG9yLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkU3RUUwNTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Jvb3RzdHJhcF9mcmVl
X2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUI2MDg0MjM1RTU3MjAwMENBRTYyOSAvKiBw
YXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZF
N0VFMDgyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jYXJlc19hYm91dF9zaXplX21vZGUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGMzFBNjY2MjNFOEE5NDIwMDJDMENBMyAvKiBwYXNfY2FydGVzaWFu
X3RyZWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTA5MjI5NjAxNDIwMDRGNDE2NiAvKiBw
YXNfY29hbGlnbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxOTMyNTMyMkVEMDRBNjAwRkJBNzEz
IC8qIHBhc19jb21taXRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRjQyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYyMTUw
RUQyNDg0QkI4NjAwMEQ2MzRCIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhf
cHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQ0ODI1NUUyODQyMDBDOEQxMUIgLyogcGFz
X2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY5QTFEM0MyNTVBNEJBNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyRjI1NTlC
QTdBMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
c19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDMxMjU1OUJCNUQwMEM4RDExQiAvKiBw
YXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2hlYXBfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjlBMUQzNzI1NUE0NDczMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXpl
X2NsYXNzX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMzYyNTVBNDQ3MzAwQzhEMTFC
IC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGQ0NEMTQxMjY1NUU2RTcwMDE3MUExRiAvKiBwYXNfY29tcGFjdF9hdG9taWNfZW51bWVy
YWJsZV9yYW5nZV9saXN0X2NodW5rX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMjUy
NDYwREI2RjAwMUQzMUYwIC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9w
dHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjQ5MjNDQUExQkEwMEY0MERCQiAvKiBwYXNf
Y29tcGFjdF9hdG9taWNfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY2RDU0OTI0ODc2MEE4
MDBGQzczNDcgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
cHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIyOTI0NjExQ0ZEMDAxRDMxRjAgLyogcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMTAyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oYXNodGFi
bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTE2RUUzMjQ1NjBGRjUwMDRFMkI4RCAvKiBwYXNf
aW50ZXJuYWxfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjc4MDg5MzIyRkE1MzQxMDBG
Mzc0NTEgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkQ0OEI0MDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvcl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1NjcxMjNDQkQxOUQwMEY0
MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19w
b29sc19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjZCMjNDQkQxOUQwMEY0MERCQiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfcHRyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjZENTY3MjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZBNUU0NUEyNDkyRDVC
QTAwQ0U5NjJBIC8qIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjY0MjNDQkQxOUQwMEY0MERCQiAvKiBw
YXNfY29tcGFjdF9hdG9taWNfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlB
MUNGMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYmlhc2luZ19kaXJlY3RvcnlfcHRy
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjEyRDI1OTkwODc3MDA4QjRBODIgLyogcGFzX2Vu
dW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjg3MDBBNjI1
QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfcHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjlBMUQzODI1NUE0NDczMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9y
eV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDNEMjU1QTRCQTYwMEM4RDExQiAvKiBw
YXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGOUExRDM5MjU1QTQ0NzMwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9iaXRmaXRfdmlld19w
dHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjQ4MjNDQUExQkEwMEY0MERCQiAvKiBwYXNf
Y29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjFD
MDI1QTRDQjA5MDA4QjRBODIgLyogcGFzX2NvbXBhY3RfY2FydGVzaWFuX3RyZWVfbm9kZV9wdHIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjcwMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29t
cGFjdF9oZWFwX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NjgyM0NCRDE5RDAwRjQw
REJCIC8qIHBhc19jb21wYWN0X2hlYXBfcmVzZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGNjZENTQ1MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2Zy
ZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjcyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjZENTY0NzIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfcHRyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjY2RDU0ODI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDRD
MjI4MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1Njc3MjNDQzE0MUUwMEY0
MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2hlYXBfcHRyLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjZENTY2NzIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9z
aGFyZWRfcGFnZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY2RDIz
Q0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjA4RjRBMjJBODQ0NkIwMDM4NjU3NSAvKiBwYXNfaW50
cmluc2ljX2hlYXBfc3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDRkE0OUEyMzgzNTJF
QzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRTdFRTA0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYml0dmVjdG9yLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjlBMUQyRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTY2NTIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF92aWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMxQTY0MDIzRENG
ODQ4MDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjMxQTY0NjIzRTRDNDQxMDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rfc2tpcF9s
aXN0X25vZGVfcHRyX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMEYyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY2RDU2NEUyM0NBQkE2NTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9h
dG9taWNfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQxRTI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjZENTY0QjIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFn
Z2VkX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NzkyM0NENzA1OTAwRjQwREJCIC8q
IHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
NkQ1NjYyMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGQzRFQzM5MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9z
dW1tYXJ5X29iamVjdF9jYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTBBMjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg1RUZE
QTIyRTJCRUM3MDAzQTM2MkIgLyogcGFzX2NvbmZpZ19wcmVmaXguaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRDQ4QjQ1MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfY291bnRfbG9va3VwX21vZGUuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGMzI5QTJCMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfY3JlYXRl
X2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRTdFRTY2MjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0ZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZGRkQ1MTUyNTZCMEZCRDAwMUVCOTRDIC8qIHBhc19kZWFsbG9j
YXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMEIyMjk2MDE0MjAwNEY0MTY2
IC8qIHBhc19kZWFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2QjQ3RkQyMzMxNUFF
NTAwMkE1RTBDIC8qIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGMzczRTUyMjY1OUVBNUUwMDM0QkE5NiAvKiBwYXNfZGVidWdfaGVhcC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZCQzYyQzMyNjVGMTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19z
cGVjdHJ1bS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxQjAyNUEzRDBCQjAwOEI0QTgyIC8q
IHBhc19wdHJfbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MTQ3MjU5QkIxMDkw
MDhCNEE4MiAvKiBwYXNfcHRyX2hhc2hfc2V0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RURG
RTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRUE0NUMyMjM2Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHluYW1pY19w
cmltaXRpdmVfaGVhcF9tYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDIyQ0ZDMjJDQUYxNjQw
MEIyMTg0MSAvKiBwYXNfbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzgwODlCMjJG
QTZGMDgwMEYzNzQ1MSAvKiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjlBMUNFOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3Jf
cGFnZV9ib3VuZGFyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCM0UyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc190cnlfYWxsb2NhdGVfY29tbW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlB
MUQwMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRDQ4QjJDMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfcmFuZ2VfbG9ja2VkX21v
ZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDI3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Y29tcGFjdF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFN0VFMTQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZl9wcmVmaXguaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNTlBMzk0MjY2N0YwMEUwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWcu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTMxODBGMjJDOTUyOTQwMDNGN0I2QSAvKiBwYXNfZm91
bmRfaW5kZXguaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTJEMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfc2xvd19wYXRoX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGODc5MkIzMjM4QTFE
MEMwMEFFRTdGMSAvKiBwYXNfaGVhcF9yZWZfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1
QjYwODQyMzVFNTcyMDAwQ0FFNjI5IC8qIHBhc19ib290c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI1ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Z1
bGxfYWxsb2NfYml0cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFNTYyMjk3NDMzNTAwNEY0
MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDODQ3OTUyMzJE
Njk0OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkzMjY5MjJGM0IzRjMwMEZCQTcxMyAvKiBwYXNfbGFy
Z2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNkQ1NjZGMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZFN0VERkQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zaW1wbGVfdHlw
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYwODNGNUEyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGMzI5QTI0MjNGMTEzMkIwMEExMzNDNCAvKiBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2Nh
Y2hlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFN0YyMkExQTU4MDAwNEY0MTY2IC8qIHBh
c19yZWFsbG9jYXRlX2ZyZWVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1QjgzQkMyNDkx
ODg4QTAwRjQxMDUyIC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjY4MTI3MDIyQkQ0MTlFMDAzNkEwMkIgLyogcGFzX3ZlcnNpb25lZF9maWVs
ZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMDMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19i
aXRmaWVsZF92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTExMjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjZENTY2QjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGOEQ2MjkyMkMx
NjZGNTAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFQjY2NjUyMzFCMkE1NzAwOUMwMDFCIC8qIHBhc19oZWFwX3N1bW1hcnkuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGOUExRDA1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9i
YXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVCODNCRjI0OTE4OTlFMDBGNDEwNTIgLyogcGFz
X2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY5RTk0NjcyMzQ2NjBENDAwOUZBRkREIC8qIHBhc19keWxkX3N0YXRlLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkVBNDVDMjIzNkNFODlEMDBCNUEzNzUgLyogcGFzX2R5bmFtaWNfcHJpbWl0aXZl
X2hlYXBfbWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMyOUEyRDIzRjFENjM2MDBBMTMzQzQg
LyogcGFzX2Vuc3VyZV9oZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21lbW9yeS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEYzMjlBMkUyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF93
aXRoX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjFCMTI1QTNEMEJCMDA4
QjRBODIgLyogcGFzX2VudW1lcmFibGVfcGFnZV9tYWxsb2MuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGNEY2MUI1MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjE3ODI1OUQxMDY1MDA4QjRBODIgLyogcGFzX2VudW1l
cmF0ZV9iaXRmaXRfaGVhcHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEY2MUFFMjVBM0QwQkIw
MDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxMTEyNTk3RjgxRTAwOEI0QTgyIC8qIHBhc19lbnVtZXJh
dGVfbGFyZ2VfaGVhcHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MTJEMjU5OTA4NzcwMDhC
NEE4MiAvKiBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNEY2MUIzMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX3VuYWNjb3VudGVk
X3BhZ2VzX2FzX21ldGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTMxMjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU2
NjIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2RlYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGOUExRDI5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9raW5kLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkRCQjA3MzIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9y
ZWZpbGxfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNDUyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NEUy
M0NBQkE2NTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkU3RUUxRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjU1MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfaGFuZGxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkRCQjA3QjIyQkJG
RjgzMDA2QkE1RkMgLyogcGFzX2FsbG9jYXRvcl9jb3VudHMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGQzRFQzNEMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkU3RUU3OTIyQTA0OEJCMDA0RjQxNjYgLyogcGFzX3RyeV9yZWFsbG9j
YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUzQjIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X3plcm9fbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDQ0QxNDEyNjU1RTZFNzAwMTcxQTFG
IC8qIHBhc19jb21wYWN0X2F0b21pY19lbnVtZXJhYmxlX3JhbmdlX2xpc3RfY2h1bmtfcHRyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUzMjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NucHJp
bnRmLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMxQTY0MDIzRENGODQ4MDAyQzBDQTMgLyogcGFz
X2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUw
MjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkZGRDUxNTI1NkIwRkJEMDAxRUI5NEMgLyogcGFzX2RlYWxsb2NhdGlvbl9tb2Rl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcxRjI2
OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY5QTFDRUIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX3ZhcmlhbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEY2MTA1MjU5N0FGODcwMDhC
NEE4MiAvKiBwYXNfZW51bWVyYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxODEyNTlF
NzM0RjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjRGNjExQzI1OTgzOEIxMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjE5MzI1NDIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2Vwb2No
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI1QjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2V4
Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
RTdFRTBDMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfZXh0ZW5kZWRfZ2NkLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkYwOEY0NDIyQTYyN0MxMDAzODY1NzUgLyogcGFzX2Zhc3RfbGFyZ2VfZnJlZV9o
ZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQwNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2Zhc3RfbWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDE2MjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjlBMUQxOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGOUExQ0ZFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9w
YXRoX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNFNTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkI1NzA2QjI2N0QwM0NEMDA4MEZBOEIgLyogcGFzX2Zhc3RfdGxz
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM0RUMzRjIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2Zk
X3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU0N0YyM0M1NzNFMTAwRjQwREJCIC8q
IHBhc19maXJzdF9sZXZlbF90aW55X2xhcmdlX21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZENDhCNTEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19mb3VuZF9iaXRfaW5kZXguaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGNTMxODBGMjJDOTUyOTQwMDNGN0I2QSAvKiBwYXNfZm91bmRfaW5k
ZXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDJDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
ZnJlZV9ncmFudWxlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxOTMyNTgyMkVEMDRBNjAwRkJB
NzEzIC8qIHBhc19mcmVlX21vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjRFMjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfZnJlZV9yYW5nZV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkQ0OEI1ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0cy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZENDhCM0EyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19mdWxsX2FsbG9jX2Jp
dHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZGMDhGM0EyMkE1QjQwMzAwMzg2NTc1
IC8qIHBhc19nZW5lcmljX2xhcmdlX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZF
N0VFNjAyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkU3RUU2NDIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2dldF9oZWFwLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQ0RDI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX2dldF9v
YmplY3Rfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFENEYyNTYzMDVCNDAwQzhEMTFC
IC8qIHBhc19nZXRfcGFnZV9iYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjE1MThGRDIzNDQx
RTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmplY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdF
RTEwMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGFzaHRhYmxlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkU3RUUxNjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXAuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRTdFRTEyMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9jb25maWcuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGMDRDMjFEMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfaGVhcF9jb25maWdf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NkYyM0NCRDE5RDAwRjQwREJCIC8q
IHBhc19oZWFwX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA5MjI2RTIyQjJE
OTA5MDA3RDVEM0EgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkU3RUUwMDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsaWdubWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY5QTFEMUQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9y
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMDgzRjVCMjJDMjk3OUIwMEYzQ0RCMyAv
KiBwYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZD
MkZEMzgyMzc2MTUxMzAwNTNERDQxIC8qIHBhc19oZWFwX2Zvcl9jb25maWcuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRDQ4QjY5MjNCNkFFRDUwMDI2QzQ2RCAvKiBwYXNfaGVhcF9pbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjQ3QzMxQjIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2hlYXBf
a2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxQjEyNUEzRDBCQjAwOEI0QTgyIC8qIHBh
c19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9jLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUwOTIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvYWxpZ24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkz
MjYzMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkU3RUUxMzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfbG9j
ay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2REI4OEMyMzVFNTRBNjAwNjlDQURCIC8qIHBhc19o
ZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTE1MjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODc5MkIzMjM4
QTFEMEMwMEFFRTdGMSAvKiBwYXNfaGVhcF9yZWZfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZFN0VFMTQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZl9wcmVmaXguaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGMzI5QTIzMjNGMTEzMkIwMEExMzNDNCAvKiBwYXNfaGVhcF9ydW50aW1l
X2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFQjY2NjUyMzFCMkE1NzAwOUMwMDFCIC8q
IHBhc19oZWFwX3N1bW1hcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NDdFMjNDNTczRTEw
MEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU0ODIy
M0M1ODFDMTAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxlX3N0YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkQ0OEI0NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2ltbW9ydGFsX2hlYXAuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRDQ4QjM3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfaW1tdXRhYmxl
X3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1MTZFRTMyNDU2MEZGNTAwNEUyQjhEIC8q
IHBhc19pbnRlcm5hbF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTFBMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkYwOEY0QTIyQTg0NDZCMDAzODY1NzUgLyogcGFzX2ludHJpbnNpY19oZWFw
X3N1cHBvcnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTFFMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfbGFyZ2VfZnJlZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMUMyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjY2RDU0QjI0ODc2MEFGMDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNsYXJh
dGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3ODA4OTMyMkZBNTM0MTAwRjM3NDUxIC8q
IHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY2NkQ1NEMyNDg3NjBCNDAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVm
aW5pdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxNkQyNTlCRkY5MTAwOEI0QTgy
IC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNUU0ODM3MjNENjk2MEYwMDQ2REE1QyAvKiBwYXNfcmFjZV90ZXN0X2hvb2tzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjA5MjI2QTIyQjA3QzIxMDA3RDVEM0EgLyogcGFzX211dGF0aW9uX2Nv
dW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTQ3OTIzQzU3M0UxMDBGNDBEQkIgLyogcGFz
X3RpbnlfbGFyZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQxNDI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZENDhCNjAyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF92aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkNCRDAzNDI2QURGOTI1MDBEMjZENjggLyog
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY5QTFEMkYyNTU5QkE3QTAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3NfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY0NzIzQ0FB
MUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZE
NTY2NDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3Vuc2lnbmVkX3B0ci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY1QjYwOTIyMzVFODhFRjAwQ0FFNjI5IC8qIHBhc19yZXNl
cnZlZF9tZW1vcnlfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1Njc5MjNDRDcw
NTkwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkQ0OEIzNTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY2RDU0NjI0ODc2MEE4MDBGQzczNDcg
LyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkYw
MEQzODIzNzc2RDY1MDBDMjBBQzAgLyogcGFzX2xhcmdlX2ZyZWVfaW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZGMDhGNDAyMkE1RjY1NTAwMzg2NTc1IC8qIHBhc19sYXJnZV9mcmVlX3Zp
c2l0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTFGMjI5NjAxNDIwMDRGNDE2NiAvKiBw
YXNfbGFyZ2VfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxOTMyNjkyMkYzQjNGMzAwRkJB
NzEzIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZFN0VFMjAyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9tYXAu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGQzRFQzM5MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29t
cHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdF
RTBEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZENDhCNUEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxv
Y2F0b3JfdGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQkQ2N0REMjVCRDM2M0EwMEE0OTBE
MiAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNG
NTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGOUExRDIxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVf
Y2xhc3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGREJCMDc5MjJCOTgwNTQwMDZCQTVGQyAvKiBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjlBMUQyQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGOUExRDNGMjU1QTUwRDYwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2FuZF9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjA4RjQ4MjJBNzYzRjEwMDM4NjU3
NSAvKiBwYXNfbGFyZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkNGQTQ5QTIz
ODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZDODQ3OTUyMzJENjk0OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xf
ZXBvY2hfdXBkYXRlX21vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NDdBMjNDNTczRTEw
MEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGOEE4MDI5MjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbGluZV93b3JkX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEYzMUE2NDQyM0UzNTA5RTAwMkMwQ0EzIC8qIHBhc19saXN0X2Rp
cmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZEQkIwNzUyMkI4NzVBNjAwNkJBNUZDIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjNEMjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkRCQjA3NzIyQjg3N0ZBMDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjg3MDBBQTI1QjBBOEMzMDAwRTFBQkYg
LyogdGhpbmd5X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzNzIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX2ltbXV0YWJsZV92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGOUExRDRGMjU2MzA1QjQwMEM4RDExQiAvKiBwYXNfZ2V0X3BhZ2VfYmFzZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY2RDU0ODIyM0M1ODFDMTAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxlX3N0
YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQ0RDI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFz
X2dldF9vYmplY3Rfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMTUyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc19oZWFwX3JlZi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2M0EyM0M3
OUQzNzAwRjQwREJCIC8qIHBhc19yYW5nZTE2LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcx
MTI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY0QjIzQ0FBMUJBMDBGNDBE
QkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4QTgw
MkEyNUVDNTg4ODAwNzkwQjRBIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZEQkIwNzMyMkI4NzVBNjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0
b3JfcmVmaWxsX21vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTBFMjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZFN0VFMjEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sb2NrLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkVBNDVCRDIzNkNENUFDMDBCNUEzNzUgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJf
aGFzaHRhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhBODAwRDI1Q0Y2NEM5MDA3OTBCNEEg
LyogcGFzX3RyaV9zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NDgyM0NBQTFCQTAw
RjQwREJCIC8qIHBhc19jb21wYWN0X2Jvb3RzdHJhcF9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGNEY2MTgxMjU5RTczNEYwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvcl9pbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFNjcyQzcyNUMyMUY2NzAwNkY2MEEyIC8qIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
REJCMDc1MjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkQ0OEI1MTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2ZvdW5kX2JpdF9pbmRl
eC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4NUVGREEyMkUyQkVDNzAwM0EzNjJCIC8qIHBhc19j
b25maWdfcHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlFOTQ1OTIzNDUyMjYyMDA5RkFG
REQgLyogcGFzX2xvZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMUEyNDYwREI2RjAwMUQz
MUYwIC8qIHBhc19tYWdhemluZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwMzdBRjQyNUFFQTkx
QTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRTdFRTIyMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRDIyQ0ZDMjJDQUYxNjQwMEIyMTg0MSAvKiBwYXNfbWluX2hlYXAu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjM4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfbW9u
b3RvbmljX3RpbWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDkyMjZBMjJCMDdDMjEwMDdENUQz
QSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDRDMjU1
RjJDRDcwMEM4RDExQiAvKiBwYXNfb2JqZWN0X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
OUExRDA1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjlBMUQwQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjZEMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgx
MDMyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY2RDU0ODAyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19zbWFsbF9sYXJnZV9tYXBfZW50
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDQzMjU1QUY3MzIwMEM4RDExQiAvKiBwYXNf
cGFnZV9iYXNlX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ3QzMxQjIz
Mzk2RDFGMDAyQTFDRjcgLyogcGFzX2hlYXBfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3
ODA4OTIyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19hbGxvY2F0aW9uX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5QTFEMjgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjU0MjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjhBODA2NTI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2lubGluZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRTdFRTM4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbGl0eV9o
ZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQzOTI1NUE0NDczMDBDOEQxMUIgLyogcGFz
X2NvbXBhY3RfYml0Zml0X3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcyMTI2
OUY1RkNBMDA2ODg3QTkgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25f
bW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEM0QyNTVBNEJBNjAwQzhEMTFCIC8qIHBh
c19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZENDhCNDQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19pbW1vcnRhbF9oZWFwLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjhBODA2OTI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2Nv
bmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NDkyM0NBQTFCQTAwRjQwREJCIC8qIHBh
c19jb21wYWN0X2F0b21pY19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDFGMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5QTFDRjcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0
aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0Y4MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MUI3
MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfcmFuZ2VfYmVnaW5fbWluX2hlYXAuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGMTkzMjZDMjJGNzNFODUwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjlBMUQxMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfY29u
ZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDI1MjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFE
MjAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMkQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hl
YWRlcl90YWJsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjkyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19wYWdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTI3MjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfcGFnZV9tYWxsb2MuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDI0
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGMTkzMjYzMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRp
Y2lwYW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjE5MzI2MDIyRjExOTNEMDBGQkE3MTMgLyog
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkQyMkNGRjIyQ0MwMUQzMDBCMjE4NDEgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkYyNDhGQTIyRkM5RURCMDA3NzIwMkUgLyogcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2VfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcxNTI2OUI3NTE4
MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRjAwRDM4MjM3NzZENjUwMEMyMEFDMCAvKiBwYXNfbGFyZ2Vf
ZnJlZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzQzIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjlBMUQzMTI1NTlCQjVEMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF9oZWFwX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZBNUU0NTgyNDkyRDVCQTAwQ0U5
NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRTdFRTIxMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbG9jay5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY5QTFEMDQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2Nh
Y2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI0RTIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X2ZyZWVfcmFuZ2Vfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMzUyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
OEE4MTA2MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjc4MDg5MDIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX3JhbmdlX21pbl9oZWFw
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjIxNTBFQjI0ODRCQjJBMDAwRDYzNEIgLyogcGFzX2Fs
bG9jYXRvcl9pbmRleC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMTgyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCM0IyM0E5
QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGODcwMEE4MjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY2RDU2NzIyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX3ZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTI5RERGMjQ1NTQ2MEMwMDM4
NUE4QyAvKiBpc29faGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEY2MUNBMjVBNENE
M0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGMTkzMjUzMjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfY29tbWl0X21vZGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjA4RjQ0MjJBNjI3QzEwMDM4NjU3NSAvKiBwYXNfZmFz
dF9sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDQxMjU1QUYyNzkw
MEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY5QTFEMzcyNTVBNDQ3MzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6
ZV9jbGFzc19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1NDdCMjNDNTczRTEwMEY0MERC
QiAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY3ODA4ODcyMkZBMkU0OTAwRjM3NDUxIC8qIHBhc19waHlzaWNhbF9tZW1v
cnlfdHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTI5MjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlB
MUNGOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Byb21vdGVfaW50cmluc2ljX2hlYXAuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNEY2MTVCMjU5QkY2RUMwMDhCNEE4MiAvKiBwYXNfcHRyX2hhc2hf
bWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjE0NzI1OUJCMTA5MDA4QjRBODIgLyogcGFz
X3B0cl9oYXNoX3NldC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxQjAyNUEzRDBCQjAwOEI0
QTgyIC8qIHBhc19wdHJfbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MTUyMjU5
QkMzMzMwMDhCNEE4MiAvKiBwYXNfcHRyX3dvcmtsaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjVFNDgzNzIzRDY5NjBGMDA0NkRBNUMgLyogcGFzX3JhY2VfdGVzdF9ob29rcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZENDhCNEEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19yYW5kb20uaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGMTkzMjU5MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfcmFuZ2UuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjNBMjNDNzlEMzcwMEY0MERCQiAvKiBwYXNfcmFuZ2Ux
Ni5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxQjcyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19y
YW5nZV9iZWdpbl9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCMkMyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19yYW5nZV9sb2NrZWRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY3ODA4OTAyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19yYW5nZV9taW5faGVhcC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VFN0YyMkExQTU4MDAwNEY0MTY2IC8qIHBhc19yZWFsbG9jYXRlX2Zy
ZWVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRjQyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19jb21taXRfc3Bhbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNjUyM0E5QUJCMzAw
MjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkYwOEYzQTIyQTVCNDAzMDAzODY1NzUgLyogcGFzX2dlbmVyaWNfbGFyZ2Vf
ZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY2NzIzQ0JEMTlEMDBGNDBEQkIg
LyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfcHRyLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjMxQTY2NjIzRThBOTQyMDAyQzBDQTMgLyogcGFzX2NhcnRlc2lh
bl90cmVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjY2RDU0OTI0ODc2MEE4MDBGQzczNDcgLyog
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkJENjdGMjI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVh
cF9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTdEMjJBMUEzMUMwMDRGNDE2NiAv
KiBwYXNfcmVhbGxvY2F0ZV9oZWFwX3RlbGVwb3J0X3J1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGREJCMDc3MjJCODc3RkEwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjU3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUEx
RDNDMjU1QTRCQTYwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMjlBMjEyM0YxMTMyQTAwQTEz
M0M0IC8qIHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkU3RUUyRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY5QTFDRjkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wcm9tb3RlX2lu
dHJpbnNpY19oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzODIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX21vbm90b25pY190aW1lLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMyOUEyRDIz
RjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21l
bW9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMjlBMjIyM0YxMTMyQjAwQTEzM0M0IC8qIHBh
c19iYXNpY19oZWFwX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMxQTY0NjIz
RTRDNDQxMDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0ci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZFQTQ1QkQyMzZDRDVBQzAwQjVBMzc1IC8qIHBhc19sb2NrX2Zy
ZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMUE2NkEy
M0U4RTU5NDAwMkMwQ0EzIC8qIHBhc190cmVlX2RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZENDhCM0QyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmln
X2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzEyMjY5Qjc1MTgwMDY4ODdBOSAvKiBw
YXNfbG9jYWxfdmlld19jYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0N0MzMUEyMzM5NkQx
RjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RjA4RjMzMjJBNThGMTIwMDM4NjU3NSAvKiBwYXNfcmVkX2JsYWNrX3RyZWUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRTdFRTAxMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxsX2hlYXBzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkE1RTQ1NzI0OTJENUJBMDBDRTk2MkEgLyogcGFzX3JlZHVuZGFu
dF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1QjYwOTIyMzVF
ODhFRjAwQ0FFNjI5IC8qIHBhc19yZXNlcnZlZF9tZW1vcnlfcHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGNEY2MEZCMjU5NzlCQzgwMDhCNEE4MiAvKiBwYXNfcm9vdC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEYxOTMyNkMyMkY3M0U4NTAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGNjgxMjcyMjJCRDRCRjQwMDM2QTAyQiAvKiBwYXNfc2VnbWVu
dGVkX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMTQyNDYwREI2RjAwMUQzMUYw
IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjA0QzIxRTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI1NjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0NzIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGNTA4RDUzMjU4RUNGRDMwMDE1MUVEOCAvKiBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZE
NDhCMzMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhBODA2NzI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxv
Y19oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ1RDVBOTI2QUI3MzE0MDBDMzVEOTMgLyog
cGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkJENjdGMTI1
QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFN0VFMUMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEI1RDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjQxMjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFNjcyQjcyNUMyMUQ1MzAwNkY2MEEyIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDRDMjE5MjQ2MERCNkYw
MDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMTYyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMy
MjEyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUyRjIyOTYwMTQyMDA0RjQxNjYg
LyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYwMzdBRjQyNUFF
QTkxQTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGNjZENTQ1MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9sYXJnZV91dGls
aXR5X2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFM0EyMjk2MDE0MjAwNEY0
MTY2IC8qIHBhc191dGlscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFNjEyMjlFMTRGQTAw
NEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5QTFEMEMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29u
ZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjU5QTM5ODI2NjgzMTc0MDBBMzg2NTcgLyogaml0
X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxMTEyNTk3
RjgxRTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRTdFRTM0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxNDg3MTAyNjlCNzUxODAwNjg4N0E5IC8q
IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkU3RUU2MjIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZFN0VFMjkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19wcmltaXRpdmVf
aGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkzMjU0MjJFRDA0QTYwMEZCQTcxMyAv
KiBwYXNfZXBvY2guaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4MDZBMjVFRUNDMUQwMDc5MEI0
QSAvKiBibWFsbG9jX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQwMzI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZE
NTY3NzIzQ0MxNDFFMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9oZWFwX3B0ci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMUE2M0UyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lw
X2xpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzgwODhFMjJGQTUzNDEwMEYzNzQ1MSAvKiBw
YXNfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMzky
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsc19wcmVmaXguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRDQ4QjJCMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTJFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2xvb2t1cF9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUzMTIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY5QTFEM0YyNTVBNTBENjAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2Nv
bmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5N0U2MkUyMkE5QTg1RjAwQzM1NUY4IC8qIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkRCQjA3OTIy
Qjk4MDU0MDA2QkE1RkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZGOEQ2MjcyMkMwNEE3NzAwRUM3MkZFIC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMTEyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGMDkyMjZDMjJCMkQ4OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwODNGNUEyMkMyOTc5QjAw
RjNDREIzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExQ0VCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM0RUM3OTIzNTE3
MDdCMDBCNzEwQTMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5lc3Nfa2luZC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZGOEQ2MjkyMkMxNjZGNTAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVk
X3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCMzUyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZENDhCNjUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI1NTIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhC
M0MyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNTcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZE
NDhCNjAyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjVFNUNGMjIzQkZCRkI5MDBBQTBCNkYgLyogcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNjQyM0E5
QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkQ0OEI1NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNDkyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
RTY3MkM3MjVDMjFGNjcwMDZGNjBBMiAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIyMjI0NjBEQjZGMDAxRDMxRjAgLyog
cGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0
RjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjlBMUNFOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVf
b3JfcGFnZV9ib3VuZGFyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjYyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEYxOEU2M0UyNjI4QkZCNzAwRjY5MDNEIC8qIHBhc19zaGFyZWRf
cGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3ODA4ODcyMkZB
MkU0OTAwRjM3NDUxIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNEY2MEZCMjU5NzlCQzgwMDhCNEE4MiAvKiBwYXNfcm9vdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY0N0MzMUYyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9u
X2NhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFENEMyNTVGMkNENzAwQzhEMTFC
IC8qIHBhc19vYmplY3Rfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NjIyM0NCRDE5
RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZDNEVDM0MyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFtLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkI1NzA2QjI2N0QwM0NEMDA4MEZBOEIgLyogcGFzX2Zhc3RfdGxzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTY0QzIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX3NpbXBs
ZV9mcmVlX2hlYXBfaGVscGVycy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZGMDhGM0QyMkE1REM2
OTAwMzg2NTc1IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkU3RURGRDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NpbXBsZV90eXBlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkU3RUUxNjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXAuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGMTkzMjYwMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50X2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMDRDMjI1MjQ2MERC
NkYwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNGODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2Vf
YmFzZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUyMjIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI2MjIz
QTlBQkIzMDAyNkM0NkQgLyogcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY0RjYxMUMyNTk4MzhCMTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9y
X3JlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNjkyM0I2QUVENTAwMjZDNDZEIC8q
IHBhc19oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNDVENUFCMjZBQjczMTQw
MEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjlBMUNFNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRkEyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYx
NTE4RkQyMzQ0MUUzMjAwODMyQjVDIC8qIHBhc19oYXNfb2JqZWN0LmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkU3RUUwRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1
bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NDdFMjNDNTczRTEwMEY0MERCQiAvKiBwYXNf
aGVhcF90YWJsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCM0EyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZF
N0VFNjMyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGOEE4MTA1MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZFN0VFMTIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX2NvbmZpZy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNjQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkJENjdEQzI1QkQz
NjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk5
Rjk4QzI1Q0IyQ0U4MDBFRUU0NDkgLyogcGFzX3NpemVfdGh1bmsuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGMzFBNjNFMjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkU3RUU2MDIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2dldF9hbGxvY2F0aW9u
X3NpemUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMDkyMjZFMjJCMkQ5MDkwMDdENUQzQSAvKiBw
YXNfaGVhcF9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkzMjU4MjJFRDA0
QTYwMEZCQTcxMyAvKiBwYXNfZnJlZV9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkYwOEY0
MDIyQTVGNjU1MDAzODY1NzUgLyogcGFzX2xhcmdlX2ZyZWVfdmlzaXRvci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY1RTVDRUYyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXBfY29uZmln
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xh
cmdlX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0U3MjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfYml0Zml0X21heF9mcmVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjA0QzIxRDI0NjBE
QjZGMDAxRDMxRjAgLyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNEY2MUI1MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUwODIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Nh
cmVzX2Fib3V0X3NpemVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMjlBMjMyM0YxMTMy
QjAwQTEzM0M0IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjY2RDU0QzI0ODc2MEI0MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZpbml0
aW9ucy5kZWYgaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQwMTI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MTc4MjU5
RDEwNjUwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY2RDU2NjgyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBfcmVz
ZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzgwODg0MjJGQTIyRDIwMEYzNzQ1MSAv
KiBwYXNfdmlydHVhbF9yYW5nZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1NzA5MUEyNTZBQjQx
NzAwMDM3QkIzIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZDMkZEMzgyMzc2MTUxMzAwNTNERDQxIC8qIHBhc19oZWFwX2Zvcl9j
b25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjcwMjNDQkQxOUQwMEY0MERCQiAvKiBw
YXNfY29tcGFjdF9oZWFwX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxQzAyNUE0Q0Iw
OTAwOEI0QTgyIC8qIHBhc19jb21wYWN0X2NhcnRlc2lhbl90cmVlX25vZGVfcHRyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjUxNkVFNzI0NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJk
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOEU2M0UyNjI4QkZCNzAwRjY5MDNEIC8qIHBhc19z
aGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFE
NDUyNTVEQkU2MTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGMDkyMjZDMjJCMkQ4OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMUE2NDQyM0UzNTA5RTAw
MkMwQ0EzIC8qIHBhc19saXN0X2RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjQ3
RkUyMzMxNUFFNTAwMkE1RTBDIC8qIHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjE5MzI1OTIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX3JhbmdlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUyNzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3BhZ2Vf
bWFsbG9jLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzMzIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
N0Y1MUJGMjMxNTlFQzAwMDc1NTJBRSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjU2MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzFBNjNDMjNEQ0Y4MDQwMDJD
MENBMyAvKiBwYXNfc2tpcF9saXN0X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdF
RTJEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2xvd19wYXRoX21vZGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRDQ4QjRGMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tp
bmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDM2MjU1QTQ0NzMwMEM4RDExQiAvKiBwYXNf
Y29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0
OEI0QTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3JhbmRvbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY2RDU0N0YyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19maXJzdF9sZXZlbF90aW55X2xhcmdlX21h
cF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMTYyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19mYXN0X21lZ2FwYWdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQkM2MkMzMjY1
RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdfc3BlY3RydW0uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRTdFRTJDMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2xvd19wYXRoX21vZGVfcHJlZml4Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTQ4MDIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX3NtYWxs
X2xhcmdlX21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMzIyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc19zbnByaW50Zi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDNEVDM0QyMzRB
OTFFMzAwQjcxMEEzIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRTdFRTMzMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc3RyZWFtLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkM0RUMzQzIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX3N0cmluZ19zdHJlYW0uaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExRDBFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9t
YXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0UzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
c3VicGFnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTM1MjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkU3RUUzNDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGQTVFNDU4MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjdGNTFC
RjIzMTU5RUMwMDA3NTUyQUUgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjZENTQ3OTIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX3RpbnlfbGFyZ2Vf
bWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMxQTY2QTIzRThFNTk0MDAyQzBDQTMg
LyogcGFzX3RyZWVfZGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODAwRDI1Q0Y2
NEM5MDA3OTBCNEEgLyogcGFzX3RyaV9zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VF
NjMyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRTdFRTYyMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzRTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3RyeV9h
bGxvY2F0ZV9jb21tb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTYxMjI5RTE0RkEwMDRG
NDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRTdFRTY1MjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNzkyMkEwNDhCQjAwNEY0MTY2IC8q
IHBhc190cnlfcmVhbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1OUEzOTYyNjY3RjAw
RTAwQTM4NjU3IC8qIHBhc190cnlfc2hyaW5rLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU2NzJC
NzI1QzIxRDUzMDA2RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGMDhGM0QyMkE1REM2OTAwMzg2NTc1IC8qIHBhc19z
aW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjU5QTM5NTI2NjdG
MDBFMDBBMzg2NTcgLyogcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGOEE4MTAyMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9pbm5hcmRzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkYyNDhGQTIyRkM5RURCMDA3NzIwMkUgLyogcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2VfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUwQTIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxNDg3MTMyNjlC
NzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRy
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Bh
Z2Vfc2hhcmluZ19tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjE1MjI1OUJDMzMzMDA4
QjRBODIgLyogcGFzX3B0cl93b3JrbGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMzcy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VFMzgyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXAu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTBEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRp
bGl0eV9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMDUyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc19ib290c3RyYXBfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjlFOTQ2NzIzNDY2MEQ0MDA5RkFGREQgLyogcGFzX2R5bGRfc3RhdGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRjhENjI3MjJDMDRBNzcwMEVDNzJGRSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kLmRlZiBpbiBIZWFkZXJzICovLAorCQkJCTBGRDIyQ0ZGMjJDQzAxRDMwMEIyMTg0
MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NDdB
MjNDNTczRTEwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGMzI5QTJFMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBf
d2l0aF9wYWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1OUEzOTYyNjY3RjAwRTAw
QTM4NjU3IC8qIHBhc190cnlfc2hyaW5rLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjFCMzI1
QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdlc19hc19tZXRh
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjY2RDU0QjI0ODc2MEFGMDBGQzczNDcgLyogcGFzX2xh
cmdlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2REI4
OEMyMzVFNTRBNjAwNjlDQURCIC8qIHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGNTlBMzkzMjY2N0YwMEUwMEEzODY1NyAvKiBqaXRfaGVhcC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY4QTgwMjkyNUVDNTg4ODAwNzkwQjRBIC8qIHBhc19saW5lX3dvcmRfY29u
ZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMyOUEyQjIzRjFENjM2MDBBMTMzQzQgLyogcGFz
X2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjlBMUNFRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92
aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQ0ODI1NUUyODQyMDBDOEQxMUIgLyogcGFz
X2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZBNUU0NUEyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0ZFMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkQ0OEI0OTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
dmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFNzcyMjlGMDEwRjAwNEY0MTY2IC8qIGlz
b19oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjUwOEQ1MzI1OEVDRkQzMDAxNTFFRDggLyog
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRTdFRTBCMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0b3IuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGOUExQ0YxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFj
dF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOTdFNjJFMjJB
OUE4NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZDNEVDNzkyMzUxNzA3QjAwQjcxMEEzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
ZW1wdGluZXNzX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4MDZCMjVFRUNDMUQwMDc5
MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5uYXJkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFE
MjUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjlBMUQxRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFn
Z2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0
OEI0MTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGNUU1Q0VFMjNCRUYzNjAwMEFBMEI2RiAvKiBpc29fdGVzdF9o
ZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjY4MTI3MjIyQkQ0QkY0MDAzNkEwMkIgLyogcGFz
X3NlZ21lbnRlZF92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MTY0MjU5QkZCODUw
MDhCNEE4MiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkU3RUUyMDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX21hcC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY1NzA5MTgyNTZBQjIxMTAwMDM3QkIzIC8qIHBhc19iaXRm
aXRfcGFnZV9jb25maWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZENDhCMkQyM0E5
QUJCMzAwMjZDNDZEIC8qIHBhc191dGlsaXR5X2hlYXBfc3VwcG9ydC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZFN0VFM0EyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlscy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFN0VFMzkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsc19wcmVmaXguaCBp
biBIZWFkZXJzICovLAotCQkJCTBGNjgxMjcwMjJCRDQxOUUwMDM2QTAyQiAvKiBwYXNfdmVyc2lv
bmVkX2ZpZWxkLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjc4MDg4NDIyRkEyMkQyMDBGMzc0NTEg
LyogcGFzX3ZpcnR1YWxfcmFuZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNzgwODhFMjJGQTUz
NDEwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZFN0VFM0IyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc196ZXJvX21vZGUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGODcwMEE4MjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY4NzAwQUEyNUIwQThDMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFw
X2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4NzAwQTYyNUIwQThDMjAwMEUxQUJGIC8q
IHRoaW5neV9oZWFwX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMTkyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjM3M0U1MjI2NTlFQTVFMDAzNEJBOTYgLyogcGFzX2RlYnVnX2hlYXAuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGOUExRDE3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnX3ZhcmlhbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjQ3MjNBOUFCQjMwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yNjIwLDMxICsyNTQ2LDMwIEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFz
ZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQkw
RkRFQTQ2MTIyOEI2NTFCMDA4NUUzNDAgLyogQml0ZmllbGRWZWN0b3JUZXN0cy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRkM2ODFFRDIxMTI3QTE5MDAzQzZBMTMgLyogVGVzdEhhcm5lc3MuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMEZGMDhGMzYyMkE1OURCMzAwMzg2NTc1IC8qIFJlZEJsYWNr
VHJlZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQzY4MjM4MjEyOUQ0RUUwMDNDNkEx
MyAvKiBDb2FsaWduVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1MTkzRTcyNjZBRTVE
NDAwNDgzQTJDIC8qIEpJVEhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjg3MDBD
MjI1QjBCMjZBMDAwRTFBQkYgLyogVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1QjYwOTQyMzVFOTE5OTAwQ0FFNjI5IC8qIElzb0hl
YXBSZXNlcnZlZE1lbW9yeVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUI2NjY4MjMx
Qzg3QkMwMDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sRHVtcC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwRjUzMTgxMTIyQzk1NEVEMDAzRjdCNkEgLyogQml0dmVjdG9yVGVzdHMuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEYzMUE2NjgyM0U4QjMzNjAwMkMwQ0EzIC8qIENhcnRlc2lhblRyZWVU
ZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkM2ODIzODIxMjlENEVFMDAzQzZBMTMgLyog
Q29hbGlnblRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGQzY4MjMxMjEyOUNCNDYwMDND
NkExMyAvKiBFeHRlbmRlZEdDRFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGQzY4MjE1
MjEyNDhBNzkwMDNDNkExMyAvKiBIYXNodGFibGVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkVBNDVDNTIzNkUxMEFBMDBCNUEzNzUgLyogSXNvRHluYW1pY1ByaW1pdGl2ZUhlYXBUZXN0
cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjMxQTY0MjIzREQ0RTAyMDAyQzBDQTMgLyogU2tp
cExpc3RUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkExODU0NjIzNkIzQzgyMDAzNjA5
QUQgLyogSXNvSGVhcENoYW9zVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZGMjQ4RkQy
MzBDQzRDQjAwNzcyMDJFIC8qIElzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGRUE0NUM1MjM2RTEwQUEwMEI1QTM3NSAvKiBJc29EeW5hbWljUHJpbWl0aXZl
SGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGNUU0ODNBMjNENjlGNjEwMDQ2REE1
QyAvKiBSYWNlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY4NzAwRjUyNUIxNEM4QjAw
MEUxQUJGIC8qIFRTRFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjY3MjNCNTg5
OTEwMDI2QzQ2RCAvKiBJc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY1QjYwOTQyMzVFOTE5OTAwQ0FFNjI5IC8qIElzb0hlYXBSZXNlcnZlZE1l
bW9yeVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGNTA4RDVDMjU4RURDQTcwMDE1MUVE
OCAvKiBJc29IZWFwVGFibGluZ1Rlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGNTE5M0U3
MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEZDNjQxOTEyMTM3NDVGQTAwNDBDRTVFIC8qIExhcmdlRnJlZUhlYXBUZXN0cy5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQkwRkVCNjY2ODIzMUM4N0JDMDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9v
bER1bXAuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQjY2NkEyMzFEQTg2RjAwOUMwMDFCIC8q
IExhcmdlU2hhcmluZ1Bvb2xUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjMxQTY2ODIz
RThCMzM2MDAyQzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTBGRjI0OEZEMjMwQ0M0Q0IwMDc3MjAyRSAvKiBJc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkRFQTQ2MTIyOEI2NTFCMDA4NUUzNDAgLyogQml0Zmll
bGRWZWN0b3JUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBNDVCRjIzNkNEQUVEMDBC
NUEzNzUgLyogTG9ja0ZyZWVSZWFkUHRyUHRySGFzaHRhYmxlVGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZEMjJEMDgyMkNEOEE3NTAwQjIxODQxIC8qIE1pbkhlYXBUZXN0cy5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkwRjVFNDgzQTIzRDY5RjYxMDA0NkRBNUMgLyogUmFjZVRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGRjA4RjM2MjJBNTlEQjMwMDM4NjU3NSAvKiBSZWRCbGFj
a1RyZWVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjMxQTY0MjIzREQ0RTAyMDAyQzBD
QTMgLyogU2tpcExpc3RUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkM2ODFFRDIxMTI3
QTE5MDAzQzZBMTMgLyogVGVzdEhhcm5lc3MuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4NzAw
QzIyNUIwQjI2QTAwMEUxQUJGIC8qIFRoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3Rz
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGODcwMEY1MjVCMTRDOEIwMDBFMUFCRiAvKiBUU0RU
ZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkVCNjY2QTIzMURBODZGMDA5QzAwMUIgLyog
TGFyZ2VTaGFyaW5nUG9vbFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQzY4MjE1MjEy
NDhBNzkwMDNDNkExMyAvKiBIYXNodGFibGVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjUzMTgxMzIyQzk2MDlEMDAzRjdCNkEgLyogVXRpbHNUZXN0cy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkwRkM2NDE5MTIxMzc0NUZBMDA0MENFNUUgLyogTGFyZ2VGcmVlSGVhcFRlc3RzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTBGQzY4MjMxMjEyOUNCNDYwMDNDNkExMyAvKiBFeHRlbmRlZEdD
RFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjY1MiwxNTEgKzI1NzcsMTQyIEBACiAJCQlp
c2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQkwRjhBODA2NjI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxv
Y19oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjhBODA2ODI1RUVDQzFEMDA3OTBCNEEgLyog
Ym1hbGxvY19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4QTgxMDQyNUY2QTc5
NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjhBODEwMTI1
RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkU3RUU3NjIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGRTdFRTU3MjI5NzQzMzUwMDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGNUU1Q0YwMjNCRUY1NTMwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjVFNUNFQzIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3Rf
aGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNTlBMzlFMjY2ODQ3MEUwMEEzODY1
NyAvKiBqaXRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1OUEzOUIyNjY4NDRBMzAwQTM4
NjU3IC8qIGppdF9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VERDUyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGQzRFQzM3MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5jIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY0RjYwRkEyNTk3OUJDODAwOEI0QTgyIC8qIHBhc19yb290LmMgaW4g
U291cmNlcyAqLywKIAkJCQkwRkJENjdEQTI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9o
ZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkJENjdEQjI1QkQzNjNBMDBBNDkwRDIgLyogbWlu
YWxpZ24zMl9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZCRDY3RjMyNUJFMDc4
NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQkQ2
N0YwMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZFN0VEQjQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGlnbm1lbnQuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGOUExRDBBMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREI1MjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfYWxsX2hlYXBzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjFBRUNFODI2
NTgxOTYxMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTBGRDQ4QjQ2MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9y
aWVzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjQ3QzMxRTIzMzk2RTBCMDAyQTFDRjcgLyogcGFz
X2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUNFRjI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkQ0OEI2MzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCM0YyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3JfdGFibGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNTlBMzlDMjY2ODQ0QTMw
MEEzODY1NyAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmMgaW4gU291
cmNlcyAqLywKLQkJCQkwRjlBMUQxMzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGly
ZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQxMDI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExQ0ZDMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRjlBMUQwRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnku
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDA5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDJBMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRjlBMUQxQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRjlBMUQxMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9w
YWdlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQxNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQyQjI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjlBMUNFRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmMgaW4gU291
cmNlcyAqLywKLQkJCQkwRkU3RURCNjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Jvb3RzdHJhcF9m
cmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNUI2MDgzMjM1RTU3MjAwMENBRTYyOSAv
KiBwYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEZFN0VEQjkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jb2FsaWduLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjlBMUNGMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmMgaW4gU291
cmNlcyAqLywKLQkJCQkwRjZENTY0QTIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYm9v
dHN0cmFwX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2RDU2NkUyM0NCRDE5RDAw
RjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBfcmVzZXJ2YXRpb24uYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGNjZENTQ3MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5
X2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNEVDM0UyMzRBOTFFMzAwQjcxMEEz
IC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEYzMjlBMkMyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9w
YWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZF
N0VFNjcyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19kZWFsbG9jYXRlLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRkJDNjJDMjI2NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmMgaW4g
U291cmNlcyAqLywKKwkJCQkwRkU3RUREMTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY3ODA4OUEyMkZBNkYwODAwRjM3NDUxIC8q
IHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNUI4M0JE
MjQ5MTg4OEEwMEY0MTA1MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY5RTk0NjYyMzQ2NjBENDAwOUZBRkREIC8qIHBhc19keWxkX3N0YXRl
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkVBNDVDMzIzNkNFODlEMDBCNUEzNzUgLyogcGFzX2R5
bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjMyOUEzMDIz
RjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21l
bW9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYzMjlBMkYyM0YxRDYzNjAwQTEzM0M0IC8qIHBh
c19lbnN1cmVfaGVhcF93aXRoX3BhZ2VfY2FjaGVzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjRG
NjFCNjI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFibGVfcGFnZV9tYWxsb2MuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGNEY2MUI0MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJs
ZV9yYW5nZV9saXN0LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjRGNjE3NzI1OUQxMDY1MDA4QjRB
ODIgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
NEY2MUIyMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91bmFjY291
bnRlZF9wYWdlcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxMTAyNTk3RjgxRTAwOEI0QTgy
IC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2
MTJFMjU5OTA4NzcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGNEY2MUFGMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVy
YXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2
MTA2MjU5N0FGODcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvci5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY0RjYxMUIyNTk4MzhCMTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yX3JlZ2lvbi5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEYxOTMyNTYyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19lcG9jaC5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCMzQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19leGNs
dXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3
RURCQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2V4dGVuZGVkX2djZC5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEZGMDhGNDMyMkE2MjdDMTAwMzg2NTc1IC8qIHBhc19mYXN0X2xhcmdlX2ZyZWVfaGVh
cC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFDRjIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19w
YWdlX2hlYWRlcl90YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0N0MzMUUyMzM5NkUwQjAw
MkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEZFQTQ1QkMyMzZDRDVBQzAwQjVBMzc1IC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hh
c2h0YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYxNDg3MTQyNjlCNzUxODAwNjg4N0E5IC8q
IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjE3NzI1
OUQxMDY1MDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGRDQ4QjNGMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3RhYmxlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjlBMUNFQzI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDQ5
MjU1RTI4NDIwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEZDNEVDMzgyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19mZF9zdHJlYW0uYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGOUExRDAwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFu
dWxlcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQzAyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjFCRkQ0NDI2NjQ1N0YxMDBDRUMyOEQgLyog
cGFzX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjZENTY2NjIzQ0JEMTlEMDBG
NDBEQkIgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdF
REJEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHMuYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGQzJGRDM5MjM3NjE1MTMwMDUzREQ0MSAvKiBwYXNfaGVhcF9mb3JfY29uZmln
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURCRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hl
YXBfbG9jay5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQkYyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19oZWFwX3JlZi5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNEVDM0EyMzRBOTFFMzAwQjcx
MEEzIC8qIHBhc19oZWFwX3N1bW1hcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNkQ1NDdDMjND
NTczRTEwMEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYx
NDg3MjAyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRkU3RUU3NjIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTBGOUExRDFDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAu
YyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjM5MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfaW1t
b3J0YWxfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY3ODA4OEYyMkZBNTM0MTAwRjM3NDUx
IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEY2NkQ1NEEyNDg3NjBBODAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBf
aGVscGVycy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQzYyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19sYXJnZV9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkJENjdGMDI1QkUwNzg3MDBB
NDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
RDQ4QjUyMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZENDhCMzYyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3ZpZXcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDIyRDAwMjJDQzAxRDMwMEIyMTg0MSAv
KiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOEE4MTAxMjVG
NkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGNEY2MTUxMjU5QkMzMzMwMDhCNEE4MiAvKiBwYXNfcHRyX3dvcmtsaXN0LmMgaW4gU291cmNl
cyAqLywKIAkJCQkwRjE5MzI2ODIyRjNCM0YzMDBGQkE3MTMgLyogcGFzX2xhcmdlX2hlYXBfcGh5
c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURDNzIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX21hcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZD
RkE0OUIyMzgzNTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGNkQ1NDdEMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0
eV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGREJCMDc0MjJCODc1QTYwMDZCQTVG
QyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjA0QzIxRjI0
NjBEQjZGMDAxRDMxRjAgLyogcGFzX2xvY2suYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRUE0NUJD
MjM2Q0Q1QUMwMEI1QTM3NSAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUu
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUU5NDU4MjM0NTIyNjIwMDlGQUZERCAvKiBwYXNfbG9n
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjA0QzIyNDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX21h
Z2F6aW5lLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURCNDIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2FsaWdubWVudC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCNDgyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRjI0OEY5MjJGQzlFREIwMDc3MjAyRSAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0
aW9uLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkM0RUMzQTIzNEE5MUUzMDBCNzEwQTMgLyogcGFz
X2hlYXBfc3VtbWFyeS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQkQyMjk2MDE0MjAwNEY0
MTY2IC8qIHBhc19oZWFwX2NvbmZpZ191dGlscy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VE
QkYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZi5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY1RTVDRjAyM0JFRjU1MzAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGRDQ4QjRDMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREQ4MjI5NjAxNDIwMDRGNDE2NiAvKiBw
YXNfdXRpbHMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNUI4M0JEMjQ5MTg4OEEwMEY0MTA1MiAv
KiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZD
MkZEMzkyMzc2MTUxMzAwNTNERDQxIC8qIHBhc19oZWFwX2Zvcl9jb25maWcuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGNkQ1NjY2MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfaGVhcF9jb25maWdfa2lu
ZC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQzAyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19o
ZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjU5QTM5QjI2Njg0NEEzMDBBMzg2NTcgLyogaml0
X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjMxQTYzRDIzRENGODA0MDAyQzBD
QTMgLyogcGFzX3NraXBfbGlzdC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwMzdBRjMyNUFFQTkx
QTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGRTdFREM3MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfbWFwLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRkU3RURCRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfbG9jay5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEYzMjlBMkMyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19jcmVhdGVf
YmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEY2RDU2NkUyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBfcmVz
ZXJ2YXRpb24uYyBpbiBTb3VyY2VzICovLAorCQkJCTBGQTVFNDU5MjQ5MkQ1QkEwMENFOTYyQSAv
KiBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmMgaW4gU291cmNlcyAqLywKKwkJ
CQkwRjZENTY0NjIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfaGVscGVy
cy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY4QTgxMDQyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJp
dF9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUNGRDI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX3ZlcnNpb25lZF9maWVsZC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYxMDYyNTk3QUY4
NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjE5MzI2
RDIyRjczRTg1MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY5RTk0NjYyMzQ2NjBENDAwOUZBRkREIC8qIHBhc19keWxkX3N0YXRlLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRjY2RDU0NzI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3RfbGFyZ2VfdXRp
bGl0eV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNUU0ODM4MjNENjk2MEYwMDQ2
REE1QyAvKiBwYXNfcmFjZV90ZXN0X2hvb2tzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURE
MzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3N0cmVhbS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY4
NzAwQTkyNUIwQThDMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEY0RjYxQUYyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfdW5hY2Nv
dW50ZWRfcGFnZXNfYXNfbWV0YS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VFNTcyMjk3NDMz
NTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhC
NTMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMgaW4g
U291cmNlcyAqLywKIAkJCQkwRkU3RURDODIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX21lZ2FwYWdl
X2NhY2hlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkM0RUMzQjIzNEE5MUUzMDBCNzEwQTMgLyog
cGFzX3N0YXR1c19yZXBvcnRlci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYxMTAyNTk3Rjgx
RTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGNTlBMzlDMjY2ODQ0QTMwMEEzODY1NyAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51
bWVyYXRvcl9kYXRhLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEI2MzIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYwNEMy
MUYyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19sb2NrLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjQ1
RDVBQTI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQzYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19s
YXJnZV9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkYwOEY0MzIyQTYyN0MxMDAzODY1NzUg
LyogcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjVCNjA4
MzIzNUU1NzIwMDBDQUU2MjkgLyogcGFzX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjJFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVn
YXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGODcwMEE3
MjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZE
NDhCNEIyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19tb25vdG9uaWNfdGltZS5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEY5QTFEMDYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGOUExQ0YyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFk
ZXJfdGFibGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFRENCMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfcGFnZV9tYWxsb2MuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMTkzMjYyMjJGMTE5M0Qw
MEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRkQyMkQwMDIyQ0MwMUQzMDBCMjE4NDEgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjRGNjFDQjI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxv
YWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkYyNDhGOTIy
RkM5RURCMDA3NzIwMkUgLyogcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbi5jIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY3ODA4OEYyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19sYXJnZV9mcmVl
X2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFDRjAy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY2NkQ1NEEyNDg3NjBBODAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEYxOEU2M0YyNjI4QkZCNzAwRjY5MDNEIC8qIHBhc19zaGFy
ZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMkIy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5jIGluIFNvdXJjZXMgKi8s
CisJCQkJMEZFN0VFNjcyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19kZWFsbG9jYXRlLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRkQ0OEIzNDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92
aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNTlBMzlFMjY2
ODQ3MEUwMEEzODY1NyAvKiBqaXRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNEVDMzgy
MzRBOTFFMzAwQjcxMEEzIC8qIHBhc19mZF9zdHJlYW0uYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
NkQ1NDdEMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyBp
biBTb3VyY2VzICovLAogCQkJCTBGRTdFRENDMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfcHJpbWl0
aXZlX2hlYXBfcmVmLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjRGNjE1MTI1OUJDMzMzMDA4QjRB
ODIgLyogcGFzX3B0cl93b3JrbGlzdC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1RTQ4MzgyM0Q2
OTYwRjAwNDZEQTVDIC8qIHBhc19yYWNlX3Rlc3RfaG9va3MuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTBGRDQ4QjMwMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfcmFuZG9tLmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRkU3RURCQjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxpdHlfaGVhcF9jb25maWcu
YyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjA4RjM0MjJBNThGMTIwMDM4NjU3NSAvKiBwYXNfcmVk
X2JsYWNrX3RyZWUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQTVFNDU5MjQ5MkQ1QkEwMENFOTYy
QSAvKiBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjVCNjA5MTIzNUU4OEVGMDBDQUU2MjkgLyogcGFzX3Jlc2VydmVkX21lbW9yeV9wcm92
aWRlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYwRkEyNTk3OUJDODAwOEI0QTgyIC8qIHBh
c19yb290LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjE5MzI2RDIyRjczRTg1MDBGQkE3MTMgLyog
cGFzX3NjYXZlbmdlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYwNEMyMjAyNDYwREI2RjAwMUQz
MUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjA0QzIxQzI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlFOTQ1ODIzNDUyMjYyMDA5RkFGREQgLyogcGFz
X2xvZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZEQkIwNzQyMkI4NzVBNjAwNkJBNUZDIC8qIHBh
c19sb2NhbF9hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGN0Y1MUJFMjMxNTlFQzAw
MDc1NTJBRSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYyBpbiBTb3VyY2VzICovLAog
CQkJCTBGRDQ4QjU5MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnku
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjUzMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYwNEMyMTUyNDYw
REI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQ0YyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdh
dGVkX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREQxMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjk3RTYzMDIyQTlB
QUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyBpbiBTb3VyY2VzICov
LAotCQkJCTBGRDQ4QjVFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEI0QzIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0
OEI0ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCMkUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCNTIy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRkU3RURCNTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsbF9oZWFwcy5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY5QTFDRUUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
dmlldy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNUMyM0E5QUJCMzAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEIz
NjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEYxOEU2M0YyNjI4QkZCNzAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3Rv
cnlfYnlfc2l6ZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2RDU2NDYyM0NBQTFCQTAwRjQwREJC
IC8qIHBhc19zaW1wbGVfZnJlZV9oZWFwX2hlbHBlcnMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
RjA4RjNFMjJBNURDNjkwMDM4NjU3NSAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEYzMUE2M0QyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xp
c3QuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQzRFQzNCMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNf
c3RhdHVzX3JlcG9ydGVyLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RUREMzIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX3N0cmVhbS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNEVDMzcyMzRBOTFF
MzAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlB
MUQyMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjlBMUNFODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURENTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2RDU2NEEyM0NBQTFCQTAwRjQw
REJCIC8qIHBhc19jb21wYWN0X2Jvb3RzdHJhcF9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGNEY2MUIyMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91
bmFjY291bnRlZF9wYWdlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMEQyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3
RURENDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGQTVFNDU2MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjdGNTFCRTIz
MTU5RUMwMDA3NTUyQUUgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRjlBMUQwNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZENDhCMzAyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19yYW5kb20u
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGRUE0NUMzMjM2Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHlu
YW1pY19wcmltaXRpdmVfaGVhcF9tYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOEE4MDY4MjVF
RUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJ
CQkwRjRGNjFCNjI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFibGVfcGFnZV9tYWxsb2Mu
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGQ0ZBNDlCMjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFy
Z2Vfc2hhcmluZ19wb29sLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjFCNDI1QTNEMEJCMDA4
QjRBODIgLyogcGFzX2VudW1lcmFibGVfcmFuZ2VfbGlzdC5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEYxOTMyNTYyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19lcG9jaC5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEZENDhCNUUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmQuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MUNCMjVBNENEM0IwMDhCNEE4MiAvKiBw
YXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
RTdFREI2MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5jIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY5N0U2MzAyMkE5QUFDMTAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RURENzIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3V0aWxpdHlfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQkIyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRkU3RUREODIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxzLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRjlBMUNGRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEYxNDg3MjIyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2Nh
bF92aWV3X2NhY2hlX25vZGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGNzgwODg1MjJGQTIyRDIw
MEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5nZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4NzAw
QTcyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
Rjg3MDBBOTI1QjBBOEMzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRjZENTQ3QzIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGUuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGRjA4RjNFMjJBNURDNjkwMDM4NjU3NSAvKiBwYXNfc2ltcGxl
X2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCNDYyM0E5QUJCMzAw
MjZDNDZEIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGOUExRDQ5MjU1RTI4NDIwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJs
ZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQjkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19j
b2FsaWduLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkJENjdEQjI1QkQzNjNBMDBBNDkwRDIgLyog
bWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1QjYwOTEyMzVF
ODhFRjAwQ0FFNjI5IC8qIHBhc19yZXNlcnZlZF9tZW1vcnlfcHJvdmlkZXIuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGOUExRDEwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRv
ci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZCRDY3RjMyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2Vz
aXplNjRrX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMzI5QTJGMjNGMUQ2MzYwMEExMzND
NCAvKiBwYXNfZW5zdXJlX2hlYXBfd2l0aF9wYWdlX2NhY2hlcy5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEZDNEVDM0UyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0
X2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYxOTMyNjIyMkYxMTkzRDAwRkJBNzEz
IC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
OUExRDE1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGNEY2MTJFMjU5OTA4NzcwMDhCNEE4MiAvKiBwYXNfZW51bWVy
YXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExRDAwMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZF
N0VEQ0YyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGMUJGRDQ0MjY2NDU3RjEwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGQTVFNDU2MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkJDNjJDMjI2
NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmMgaW4gU291cmNlcyAqLywKKwkJ
CQkwRjVFNUNFQzIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuYyBpbiBT
b3VyY2VzICovLAorCQkJCTBGOUExRDExMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Bh
Z2UuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOEE4MDY2MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFs
bG9jX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMzI5QTMwMjNGMUQ2MzYwMEExMzNDNCAv
KiBwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmMgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVh
cC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxs
b2NfaGVhcC5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9ibWFsbG9jX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEgQEAg
dm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkKHNpemVfdAogICAgIHJldHVybiBibWFs
bG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfaW5saW5lKHNpemUpOwogfQogCitQQVNfTkVWRVJfSU5M
SU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfc2xvdyhzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1
cm4gKHZvaWQqKWJtYWxsb2NfYWxsb2NhdGVfaW1wbF9tZWRpdW1fc2xvd19jYXNlKHNpemUsIDEp
LmJlZ2luOworfQorCiB2b2lkKiBibWFsbG9jX2FsbG9jYXRlKHNpemVfdCBzaXplKQogewogICAg
IHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2lubGluZShzaXplKTsKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmMJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2Jt
YWxsb2NfaGVhcF9jb25maWcuYwkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsOCBAQCBwYXNf
aGVhcF9jb25maWcgYm1hbGxvY19oZWFwX2NvbmZpZyA9IEJNCiAKIFBBU19CQVNJQ19IRUFQX0NP
TkZJR19ERUZJTklUSU9OUygKICAgICBibWFsbG9jLCBCTUFMTE9DLAotICAgIC5hbGxvY2F0ZV9w
YWdlX3Nob3VsZF96ZXJvID0gZmFsc2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJv
ID0gZmFsc2UsCisgICAgLmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9
IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk7
CiAKIHZvaWQgYm1hbGxvY19oZWFwX2NvbmZpZ19hY3RpdmF0ZSh2b2lkKQogewpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9j
b25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw5ICs1MSwx
MCBAQCBQQVNfQVBJIHZvaWQgYm1hbGxvY19oZWFwX2NvbmZpZ19hY3RpdmF0CiAgICAgLnNtYWxs
X3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAg
ICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9I
QU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdp
YmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUsIFwKLSAgICAuc21hbGxfdXNlX3JldmVyc2VkX2N1
cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZl
cnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuZW5hYmxlX3ZpZXdfY2FjaGUg
PSB0cnVlLCBcCiAgICAgLnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCi0gICAgLnNtYWxsX2Jp
dGZpdF9taW5fYWxpZ25fc2hpZnQgPSA0LCBcCisgICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25f
c2hpZnQgPSBCTUFMTE9DX01JTkFMSUdOX1NISUZULCBcCiAgICAgLnNtYWxsX2JpdGZpdF9wYWdl
X3NpemUgPSBQQVNfU01BTExfQklURklUX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLm1lZGl1
bV9wYWdlX3NpemUgPSBQQVNfTUVESVVNX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLmdyYW51
bGVfc2l6ZSA9IFBBU19HUkFOVUxFX0RFRkFVTFRfU0laRSwgXApJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfaW5saW5lcy5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9i
bWFsbG9jX2hlYXBfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIFBB
U19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBCTUFMTE9DX0hFQVBf
Q09ORklHLAogICAgICZibWFsbG9jX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcu
YmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lk
ZW50aXR5LAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmYm1hbGxv
Y19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBf
aXNfZGVzaWduYXRlZCk7CkBAIC01Niw3ICs1Niw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRF
X0lOVFJJTlNJQ19QUklNSVQKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9j
X2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19h
bGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRl
bnRpdHksCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAogICAgICZibWFsbG9j
X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hl
YXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwpA
QCAtNjYsNyArNjYsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlU
CiAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKICAgICAmYm1hbGxvY19pbnRyaW5zaWNfcHJpbWl0
aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywK
LSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAorICAg
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKICAgICAmYm1hbGxvY19jb21t
b25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmJtYWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1
cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX2Rlc2lnbmF0ZWQpOwpAQCAtNzYsNzMg
Kzc2LDc5IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBC
TUFMTE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX2ludHJpbnNpY19wcmltaXRpdmVfcnVu
dGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZibWFsbG9jX2NvbW1vbl9wcmlt
aXRpdmVfaGVhcCwKICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwK
ICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwogCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfaW5saW5lKHNpemVfdCBz
aXplKQogewotICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbXBsKHNpemUsIDEpLnB0
cjsKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSku
YmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogYm1hbGxvY190cnlf
YWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25t
ZW50KQogewotICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9p
bXBsKHNpemUsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopYm1hbGxvY190cnlf
YWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQog
CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfemVy
b2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVz
dWx0X3plcm8oCiAgICAgICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSksCi0g
ICAgICAgIHNpemUpLnB0cjsKKyAgICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKK1BBU19BUEkgdm9p
ZCogYm1hbGxvY19hbGxvY2F0ZV9zbG93KHNpemVfdCBzaXplKTsKKwogc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfaW5saW5lKHNpemVfdCBzaXplKQogewot
ICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSkucHRyOworICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0ID0gYm1hbGxvY19hbGxvY2F0ZV9p
bXBsX2lubGluZV9vbmx5KHNpemUsIDEpOworICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRf
c3VjY2VlZCkpCisgICAgICAgIHJldHVybiAodm9pZCopcmVzdWx0LmJlZ2luOworICAgIHJldHVy
biBibWFsbG9jX2FsbG9jYXRlX3Nsb3coc2l6ZSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKgogYm1hbGxvY19hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbmxpbmUoc2l6ZV90
IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVf
d2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZv
aWQqKWJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQp
LmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hbGxv
Y2F0ZV96ZXJvZWRfaW5saW5lKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgcmV0dXJuICh2b2lkKilwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfemVybygKICAgICAgICAgYm1hbGxvY19hbGxvY2F0ZV9pbXBsKHNpemUsIDEp
LAotICAgICAgICBzaXplKS5wdHI7CisgICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfaW5saW5lKHZv
aWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBh
c190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCop
cGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIs
CiAgICAgICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAgICAgbmV3X3Np
emUsCiAgICAgICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgICAgIGJtYWxsb2NfdHJ5X2Fs
bG9jYXRlX2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hl
YXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUp
LmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGJtYWxsb2NfcmVh
bGxvY2F0ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQogewot
ICAgIHJldHVybiBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKKyAgICBy
ZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAogICAg
ICAgICBvbGRfcHRyLAogICAgICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAg
ICAgICAgIG5ld19zaXplLAogICAgICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAgICAgICBi
bWFsbG9jX2FsbG9jYXRlX2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRl
X2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBm
cmVlX21vZGUpLmJlZ2luOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKQEAgLTE1MCw3
ICsxNTYsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKICAgICBCTUFMTE9DX0hFQVBfQ09O
RklHLAogICAgICZibWFsbG9jX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmJtYWxs
b2NfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
X2lkZW50aXR5KTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOwogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2lubGlu
ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQogewpAQCAtMTYyLDcgKzE2OCw3IEBAIFBBU19DUkVB
VEVfVFJZX0FMTE9DQVRFKAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2Nf
dHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRz
LAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwor
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CiAKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX2lzb19hbGxvY2F0ZV9pbmxpbmUocGFzX2hlYXBf
cmVmKiBoZWFwX3JlZikKIHsKQEAgLTE3NCwxMiArMTgwLDEyIEBAIFBBU19DUkVBVEVfVFJZX0FM
TE9DQVRFX1BSSU1JVElWRSgKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9j
X3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZibWFsbG9jX2FsbG9jYXRvcl9j
b3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk7Cisg
ICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKIAogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUocGFzX3By
aW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsK
LSAgICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYs
IHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1
eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKS5iZWdpbjsKIH0KIAogUEFTX0NSRUFURV9U
UllfQUxMT0NBVEVfUFJJTUlUSVZFKApAQCAtMTg3LDI5ICsxOTMsMjkgQEAgUEFTX0NSRUFURV9U
UllfQUxMT0NBVEVfUFJJTUlUSVZFKAogICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJt
YWxsb2NfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmJtYWxsb2NfYWxsb2Nh
dG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29u
X2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlf
aW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
c2l6ZSkKIHsKLSAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFw
X3JlZiwgc2l6ZSwgMSkucHRyOworICAgIHJldHVybiAodm9pZCopYm1hbGxvY19hbGxvY2F0ZV9h
dXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2Vk
X2lubGluZSgKICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICBzaXpl
X3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96
ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAg
ICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAx
KSwKLSAgICAgICAgc2l6ZSkucHRyOworICAgICAgICBzaXplKS5iZWdpbjsKIH0KIAogc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9l
ZF9pbmxpbmUocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8o
CiAgICAgICAgIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUs
IDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAgLTIxNyw3ICsyMjMsNyBAQCBibWFsbG9jX3Ry
eV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50KQog
ewotICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3Jl
Ziwgc2l6ZSwgYWxpZ25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilibWFsbG9jX3RyeV9h
bGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsK
IH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCkBAIC0yMjUsNyArMjMxLDcgQEAg
Ym1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnbm1lbgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQp
CiB7Ci0gICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYs
IHNpemUsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopYm1hbGxvY19hbGxvY2F0
ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYXV4
aWxpYXJ5X2lubGluZSgKQEAgLTIzNCw3ICsyNDAsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCogYm1hbGxvY190CiAgICAgc2l6ZV90IG5ld19zaXplLAogICAgIHBhc19yZWFsbG9j
YXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0
ZV9wcmltaXRpdmUoCisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0
aXZlKAogICAgICAgICBvbGRfcHRyLAogICAgICAgICBoZWFwX3JlZiwKICAgICAgICAgbmV3X3Np
emUsCkBAIC0yNDIsNyArMjQ4LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJt
YWxsb2NfdAogICAgICAgICBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbF9mb3Jf
cmVhbGxvYywKICAgICAgICAgJmJtYWxsb2NfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2Us
CiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZy
ZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19yZWFsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUo
dm9pZCogb2xkX3B0ciwKQEAgLTI1MCw3ICsyNTYsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCogYm1hbGxvY19yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190
cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxs
b2NhdGVfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRyLAogICAgICAgICBoZWFwX3JlZiwKICAg
ICAgICAgbmV3X3NpemUsCkBAIC0yNTgsNyArMjY0LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQqIGJtYWxsb2NfcgogICAgICAgICBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9p
bXBsX2Zvcl9yZWFsbG9jLAogICAgICAgICAmYm1hbGxvY19wcmltaXRpdmVfcnVudGltZV9jb25m
aWcuYmFzZSwKICAgICAgICAgcGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAg
ICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIGJtYWxsb2NfZGVhbGxvY2F0ZV9pbmxpbmUodm9p
ZCogcHRyKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hl
YXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvaG90Yml0X2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw3ICszOSw4IEBAIHBhc19oZWFwX2NvbmZpZyBob3RiaXRfaGVhcF9jb25maWcgPSBI
T1QKIAogUEFTX0JBU0lDX0hFQVBfQ09ORklHX0RFRklOSVRJT05TKAogICAgIGhvdGJpdCwgSE9U
QklULAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UpOworICAgIC5hbGxv
Y2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJpbnNpY19wcmltaXRpdmVf
dmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVf
dmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZvaWQgaG90Yml0X2hlYXBfY29uZmlnX2FjdGl2YXRl
KHZvaWQpCiB7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRf
aGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9ob3RiaXRfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU0LDcgKzU0LDggQEAgUEFTX0FQSSB2b2lkIGhvdGJpdF9oZWFwX2NvbmZpZ19hY3Rp
dmF0ZQogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RF
RkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwID0g
UEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF9lbmFibGVf
ZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSB0cnVlLCBcCi0gICAgLnNtYWxs
X3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxfc2Vn
cmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0LCBcCisgICAgLmVu
YWJsZV92aWV3X2NhY2hlID0gdHJ1ZSwgXAogICAgIC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwg
XAogICAgIC5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0ID0gSE9UQklUX01JTkFMSUdOX1NI
SUZULCBcCiAgICAgLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUgPSBQQVNfU01BTExfQklURklUX1BB
R0VfREVGQVVMVF9TSVpFLCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9ob3RiaXRfaGVhcF9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9pbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVf
SU5UUklOU0lDX1BSSU1JVAogICAgIEhPVEJJVF9IRUFQX0NPTkZJRywKICAgICAmaG90Yml0X2lu
dHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaG90Yml0X2FsbG9j
YXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0
eSwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCiAgICAgJmhvdGJpdF9jb21t
b25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXBfc3Vw
cG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfZGVzaWduYXRlZCk7CkBAIC01NCwzNCAr
NTQsMzQgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEhP
VEJJVF9IRUFQX0NPTkZJRywKICAgICAmaG90Yml0X2ludHJpbnNpY19wcmltaXRpdmVfcnVudGlt
ZV9jb25maWcuYmFzZSwKICAgICAmaG90Yml0X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKKyAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHRfaWRlbnRpdHksCiAgICAgJmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAg
JmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2lj
X2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCogaG90Yml0X3RyeV9hbGxvY2F0ZV9pbmxpbmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJu
IGhvdGJpdF90cnlfYWxsb2NhdGVfaW1wbChzaXplLCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lk
Kilob3RiaXRfdHJ5X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSB2b2lkKgogaG90Yml0X3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVu
dF9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGhv
dGJpdF90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLnB0
cjsKKyAgICByZXR1cm4gKHZvaWQqKWhvdGJpdF90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRf
aW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCoKIGhvdGJpdF90cnlfcmVhbGxvY2F0ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwgc2l6
ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2Nh
dGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRl
X2ludHJpbnNpY19wcmltaXRpdmUoCisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2Nh
dGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKICAgICAgICAgb2xkX3B0ciwKICAgICAgICAgJmhvdGJp
dF9jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgICAgIG5ld19zaXplLAogICAgICAgICBIT1RC
SVRfSEVBUF9DT05GSUcsCiAgICAgICAgIGhvdGJpdF90cnlfYWxsb2NhdGVfaW1wbF9mb3JfcmVh
bGxvYywKICAgICAgICAgcGFzX3JlYWxsb2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAg
ICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIGhvdGJpdF9kZWFsbG9jYXRlX2lubGluZSh2b2lkKiBw
dHIpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25m
aWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29f
aGVhcF9jb25maWcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICsz
Nyw4IEBAIHBhc19oZWFwX2NvbmZpZyBpc29faGVhcF9jb25maWcgPSBJU09fSEUKIAogUEFTX0JB
U0lDX0hFQVBfQ09ORklHX0RFRklOSVRJT05TKAogICAgIGlzbywgSVNPLAotICAgIC5hbGxvY2F0
ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96
ZXJvID0gZmFsc2UsCisgICAgLmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0
eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CiAK
ICNlbmRpZiAvKiBQQVNfRU5BQkxFX0lTTyAqLwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDggQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAg
IC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0la
RSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxM
X1BBR0VfSEFORElDQVAsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29y
ZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAotICAgIC5zbWFsbF91c2VfcmV2
ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRf
dXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAorICAgIC5lbmFibGVfdmll
d19jYWNoZSA9IGZhbHNlLCBcCiAgICAgLnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAg
LnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQgPSBJU09fTUlOQUxJR05fU0hJRlQsIFwKICAg
ICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxU
X1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFw
X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9pc29faGVhcF9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
NDgsNyArNDgsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAg
ICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29faW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1l
X2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubywKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfc2V0X2Vycm5vLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZpc29f
Y29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lz
X25vdF9kZXNpZ25hdGVkKTsKQEAgLTYwLDcgKzYwLDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NB
VEVfSU5UUklOU0lDX1BSSU1JVAogICAgIElTT19IRUFQX0NPTkZJRywKICAgICAmaXNvX2ludHJp
bnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9j
b3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8sCisg
ICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubywKICAgICAmaXNvX2NvbW1vbl9wcmlt
aXRpdmVfaGVhcCwKICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAg
IHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CkBAIC03MCw3ICs3MCw3IEBA
IFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBJU09fSEVBUF9D
T05GSUcsCiAgICAgJmlzb19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2Us
CiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNo
X29uX2Vycm9yLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZpc29fY29t
bW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25v
dF9kZXNpZ25hdGVkKTsKQEAgLTgwLDczICs4MCw3MyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FU
RV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29faW50cmlu
c2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2Nv
dW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9y
LAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKICAgICAmaXNvX2Nv
bW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBw
b3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CiAKIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRp
dmVfaW5saW5lKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBpc29fdHJ5X2FsbG9jYXRlX2Nv
bW1vbl9wcmltaXRpdmVfaW1wbChzaXplLCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilpc29f
dHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1wbChzaXplLCAxKS5iZWdpbjsKIH0KIAog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9w
cmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25t
ZW50KQogewotICAgIHJldHVybiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0
aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQq
KWlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbXBsKHNp
emUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
KiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfemVyb2VkX2lubGluZShzaXplX3Qg
c2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJv
KAorICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAg
IGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbXBsKHNpemUsIDEpLAotICAgICAg
ICBzaXplKS5wdHI7CisgICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdm9pZCogaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKHNpemVf
dCBzaXplKQogewotICAgIHJldHVybiBpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbXBs
KHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlzb19hbGxvY2F0ZV9jb21tb25fcHJp
bWl0aXZlX2ltcGwoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSB2b2lkKgogaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW5s
aW5lKHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiBpc29fYWxs
b2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVu
dCkucHRyOworICAgIHJldHVybiAodm9pZCopaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVf
d2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfemVy
b2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVz
dWx0X3plcm8oCiAgICAgICAgIGlzb19hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6
ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsKKyAgICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogaXNvX3RyeV9yZWFsbG9jYXRlX2NvbW1vbl9w
cmltaXRpdmVfaW5saW5lKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21v
ZGUgZnJlZV9tb2RlKQogewotICAgIHJldHVybiBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2lj
X3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5z
aWNfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRyLAogICAgICAgICAmaXNvX2NvbW1vbl9wcmlt
aXRpdmVfaGVhcCwKICAgICAgICAgbmV3X3NpemUsCiAgICAgICAgIElTT19IRUFQX0NPTkZJRywK
ICAgICAgICAgaXNvX3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGxfZm9yX3JlYWxs
b2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAg
IGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGlzb19yZWFsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVf
aW5saW5lKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUp
CiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAor
ICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUo
CiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAog
ICAgICAgICBuZXdfc2l6ZSwKICAgICAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICAgICBpc29f
YWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbXBsX2Zvcl9yZWFsbG9jLAogICAgICAgICBwYXNf
cmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0LAotICAgICAgICBmcmVlX21vZGUpLnB0cjsK
KyAgICAgICAgZnJlZV9tb2RlKS5iZWdpbjsKIH0KIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEUo
CkBAIC0xNTQsNyArMTU0LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCiAgICAgSVNPX0hF
QVBfQ09ORklHLAogICAgICZpc29fdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNv
X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9z
ZXRfZXJybm8pOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOwogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3RyeV9hbGxvY2F0ZV9pbmxpbmUocGFzX2hl
YXBfcmVmKiBoZWFwX3JlZikKIHsKQEAgLTE2Niw3ICsxNjYsNyBAQCBQQVNfQ1JFQVRFX1RSWV9B
TExPQ0FURSgKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb190eXBlZF9ydW50aW1lX2Nv
bmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCog
aXNvX2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQogewpAQCAtMTc4LDcg
KzE3OCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0FSUkFZKAogICAgIElTT19IRUFQX0NP
TkZJRywKICAgICAmaXNvX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxv
Y2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vy
cm5vKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKTsKIAogc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHZvaWQqCiBpc29fdHJ5X2FsbG9jYXRlX2FycmF5X2lubGluZShwYXNf
aGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpCkBAIC0x
OTEsNyArMTkxLDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQVJSQVkoCiAgICAgSVNPX0hF
QVBfQ09ORklHLAogICAgICZpc29fdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNv
X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9j
cmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9y
KTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBpc29fYWxsb2NhdGVfYXJyYXlf
aW5saW5lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdu
bWVudCkKQEAgLTI0NywxMiArMjQ3LDEyIEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1J
VElWRSgKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb19wcmltaXRpdmVfcnVudGltZV9j
b25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9zZXRfZXJybm8pOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3RyeV9h
bGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVm
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gaXNvX3RyeV9hbGxvY2F0ZV9w
cmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkucHRyOworICAgIHJldHVybiAodm9pZCop
aXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkuYmVnaW47
CiB9CiAKIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1JVElWRSgKQEAgLTI2MCwyOCArMjYw
LDI4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1JVElWRSgKICAgICBJU09fSEVBUF9D
T05GSUcsCiAgICAgJmlzb19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNv
X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9j
cmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9y
KTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb19hbGxvY2F0ZV9wcmltaXRp
dmVfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBz
aXplKQogewotICAgIHJldHVybiBpc29fYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYs
IHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlzb19hbGxvY2F0ZV9wcmltaXRpdmVf
aW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKHBhc19w
cmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUp
CiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKKyAg
ICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAogICAgICAgICBpc29f
dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKSwKLSAgICAgICAg
c2l6ZSkucHRyOworICAgICAgICBzaXplKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQqIGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfemVyb2VkX2lubGluZShwYXNfcHJp
bWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCiB7Ci0g
ICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKKyAgICByZXR1
cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAogICAgICAgICBpc29fYWxsb2Nh
dGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7
CisgICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCoKQEAgLTI4OSw3ICsyODksNyBAQCBpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV93aXRoX2Fs
aWdubWVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4gaXNvX3RyeV9hbGxvY2F0ZV9w
cmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5wdHI7CisgICAgcmV0dXJu
ICh2b2lkKilpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhlYXBfcmVmLCBzaXplLCBh
bGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAg
LTI5Nyw3ICsyOTcsNyBAQCBpc29fYWxsb2NhdGVfcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2lu
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBh
bGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFw
X3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilpc29fYWxsb2Nh
dGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAK
IHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X3JlYWxsb2NhdGVfcHJpbWl0
aXZlX2lubGluZSh2b2lkKiBvbGRfcHRyLApAQCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X3IKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbmV3X3NpemUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICBy
ZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBh
c190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgIGhl
YXBfcmVmLAogICAgICAgICBuZXdfc2l6ZSwKQEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3RyeV9yCiAgICAgICAgIGlzb190cnlfYWxsb2NhdGVf
cHJpbWl0aXZlX2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAgICZpc29fcHJpbWl0aXZlX3J1bnRp
bWVfY29uZmlnLmJhc2UsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBv
cnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwog
fQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3JlYWxsb2NhdGVfcHJpbWl0
aXZlX2lubGluZSh2b2lkKiBvbGRfcHRyLApAQCAtMzIxLDcgKzMyMSw3IEBAIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKiBpc29fcmVhbGwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBh
c190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3Jl
YWxsb2NhdGVfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRyLAogICAgICAgICBoZWFwX3JlZiwK
ICAgICAgICAgbmV3X3NpemUsCkBAIC0zMjksNyArMzI5LDcgQEAgc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQqIGlzb19yZWFsbAogICAgICAgICBpc29fYWxsb2NhdGVfcHJpbWl0aXZlX2lt
cGxfZm9yX3JlYWxsb2MsCiAgICAgICAgICZpc29fcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJh
c2UsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAg
IGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCiBQQVNfQ1JF
QVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUoCkBAIC0zMzcsMTYgKzMzNywxNiBAQCBQQVNfQ1JF
QVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUoCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZp
c29fb2JqY19ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywK
LSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk7CisgICAgcGFz
X2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2Zvcl9vYmpjX2lubGluZShjb25zdCB2b2lkKiBjbHMs
IHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0X3plcm8oCisgICAgcmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygK
ICAgICAgICAgaXNvX3RyeV9hbGxvY2F0ZV9mb3Jfb2JqY19pbXBsKAogICAgICAgICAgICAgcGFz
X2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwX2ZpbmQoCiAgICAgICAgICAgICAgICAgJmlzb19v
YmpjX2R5bmFtaWNfaGVhcF9tYXAsIGNscywgc2l6ZSksCiAgICAgICAgICAgICBzaXplLCAxKSwK
LSAgICAgICAgc2l6ZSkucHRyOworICAgICAgICBzaXplKS5iZWdpbjsKIH0KIAogc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIGJvb2wgaXNvX2hhc19vYmplY3RfaW5saW5lKHZvaWQqIHB0cikKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXAuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFw
LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L2lzb190ZXN0X2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBQQVNfQ1JF
QVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgSVNPX1RFU1RfSEVBUF9DT05G
SUcsCiAgICAgJmlzb190ZXN0X2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFz
ZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jh
c2hfb25fZXJyb3IsCiAgICAgJmlzb190ZXN0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAm
aXNvX3Rlc3RfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNp
Y19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKQEAgLTY1LDE4ICs2NSwxOCBAQCBQQVNfQ1JFQVRF
X1RSWV9BTExPQ0FURSgKICAgICBJU09fVEVTVF9IRUFQX0NPTkZJRywKICAgICAmaXNvX3Rlc3Rf
dHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0g
ICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAg
cGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogUEFTX0NSRUFURV9UUllf
QUxMT0NBVEVfQVJSQVkoCiAgICAgdGVzdF9hbGxvY2F0ZV9hcnJheV9pbXBsLAogICAgIElTT19U
RVNUX0hFQVBfQ09ORklHLAogICAgICZpc29fdGVzdF90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNl
LAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jh
c2hfb25fZXJyb3IpOwogCiB2b2lkKiBpc29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZl
KHNpemVfdCBzaXplKQogewotICAgIHJldHVybiB0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRp
dmUoc2l6ZSwgMSkucHRyOworICAgIHJldHVybiAodm9pZCopdGVzdF9hbGxvY2F0ZV9jb21tb25f
cHJpbWl0aXZlKHNpemUsIDEpLmJlZ2luOwogfQogCiB2b2lkKiBpc29fdGVzdF9hbGxvY2F0ZShw
YXNfaGVhcF9yZWYqIGhlYXBfcmVmKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvaXNvX3Rlc3RfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2Nv
bmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw4IEBAIHBhc19oZWFwX2NvbmZpZyBp
c29fdGVzdF9oZWFwX2NvbmZpZyA9IEkKIAogUEFTX0JBU0lDX0hFQVBfQ09ORklHX0RFRklOSVRJ
T05TKAogICAgIGlzb190ZXN0LCBJU09fVEVTVCwKLSAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRf
emVybyA9IGZhbHNlKTsKKyAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNlLAor
ICAgIC5pbnRyaW5zaWNfcHJpbWl0aXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkgPSBwYXNfaGVhcF9y
dW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHkpOwogCiAjZW5kaWYgLyogUEFT
X0VOQUJMRV9JU09fVEVTVCAqLwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29u
ZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDggQEAgUEFTX0JFR0lOX0VYVEVSTl9D
OwogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFV
TFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwID0gUEFT
X1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF9lbmFibGVfZW1w
dHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAotICAgIC5zbWFsbF91
c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gZmFsc2UsIFwKKyAgICAuc21hbGxfc2VncmVnYXRl
ZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gZmFsc2UsIFwKKyAgICAuZW5hYmxlX3ZpZXdf
Y2FjaGUgPSBmYWxzZSwgXAogICAgIC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwgXAogICAgIC5z
bWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0ID0gSVNPX1RFU1RfTUlOQUxJR05fU0hJRlQsIFwK
ICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZB
VUxUX1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9o
ZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0
X2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvaml0X2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtNjAsMTQgKzYwLDE0IEBAIFBBU19D
UkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBKSVRfSEVBUF9DT05GSUcs
CiAgICAgJmppdF9oZWFwX3J1bnRpbWVfY29uZmlnLAogICAgICZqaXRfYWxsb2NhdG9yX2NvdW50
cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAorICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKICAgICAmaml0X2NvbW1vbl9wcmltaXRpdmVf
aGVhcCwKICAgICAmaml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19p
bnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CiAKIHZvaWQqIGppdF9oZWFwX3RyeV9h
bGxvY2F0ZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gaml0X3RyeV9hbGxvY2F0ZV9jb21t
b25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSkucHRyOworICAgIHJldHVybiAodm9pZCopaml0X3Ry
eV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHZv
aWQgaml0X2hlYXBfc2hyaW5rKHZvaWQqIG9iamVjdCwgc2l6ZV90IG5ld19zaXplKQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmln
LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L2ppdF9oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw4ICs5NywxMCBAQCBwYXNf
aGVhcF9ydW50aW1lX2NvbmZpZyBqaXRfaGVhcF9ydW50aW1lCiAgICAgLmlzX3BhcnRfb2ZfaGVh
cCA9IHRydWUsCiAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzID0g
MCwKICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMgPSAw
LAorICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IFVJTlRfTUFY
LAogICAgIC5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IDAsCi0gICAgLm1heF9iaXRmaXRf
b2JqZWN0X3NpemUgPSBVSU5UX01BWAorICAgIC5tYXhfYml0Zml0X29iamVjdF9zaXplID0gVUlO
VF9NQVgsCisgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplID0gcGFzX2hl
YXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5CiB9OwogCiBqaXRfaGVh
cF9jb25maWdfcm9vdF9kYXRhIGppdF9yb290X2RhdGEgPSB7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXAuYwkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9o
ZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgUEFTX0NSRUFURV9UUllfQUxM
T0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIE1JTkFMSUdOMzJfSEVBUF9DT05GSUcsCiAgICAg
Jm1pbmFsaWduMzJfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAg
ICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0X2NyYXNoX29uX2Vycm9yLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9l
cnJvciwKICAgICAmbWluYWxpZ24zMl9jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJm1pbmFs
aWduMzJfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19o
ZWFwX2lzX2Rlc2lnbmF0ZWQpOwpAQCAtNjQsMTggKzY0LDE4IEBAIFBBU19DUkVBVEVfVFJZX0FM
TE9DQVRFKAogICAgIE1JTkFMSUdOMzJfSEVBUF9DT05GSUcsCiAgICAgJm1pbmFsaWduMzJfdHlw
ZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAg
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogUEFTX0NSRUFURV9UUllfQUxM
T0NBVEVfQVJSQVkoCiAgICAgdGVzdF9hbGxvY2F0ZV9hcnJheV9pbXBsLAogICAgIE1JTkFMSUdO
MzJfSEVBUF9DT05GSUcsCiAgICAgJm1pbmFsaWduMzJfdHlwZWRfcnVudGltZV9jb25maWcuYmFz
ZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2Ny
YXNoX29uX2Vycm9yKTsKIAogdm9pZCogbWluYWxpZ24zMl9hbGxvY2F0ZV9jb21tb25fcHJpbWl0
aXZlKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiB0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmlt
aXRpdmUoc2l6ZSwgMSkucHRyOworICAgIHJldHVybiAodm9pZCopdGVzdF9hbGxvY2F0ZV9jb21t
b25fcHJpbWl0aXZlKHNpemUsIDEpLmJlZ2luOwogfQogCiB2b2lkKiBtaW5hbGlnbjMyX2FsbG9j
YXRlKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jCShyZXZp
c2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGln
bjMyX2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDggQEAgcGFzX2hl
YXBfY29uZmlnIG1pbmFsaWduMzJfaGVhcF9jb25maWcgPQogCiBQQVNfQkFTSUNfSEVBUF9DT05G
SUdfREVGSU5JVElPTlMoCiAgICAgbWluYWxpZ24zMiwgTUlOQUxJR04zMiwKLSAgICAuYWxsb2Nh
dGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNlKTsKKyAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRf
emVybyA9IGZhbHNlLAorICAgIC5pbnRyaW5zaWNfcHJpbWl0aXZlX3ZpZXdfY2FjaGVfY2FwYWNp
dHkgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVfY2FwYWNp
dHkpOwogCiB2b2lkIG1pbmFsaWduMzJfaGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKIHsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25m
aWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5h
bGlnbjMyX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5
KQpAQCAtNTQsNyArNTQsOCBAQCBQQVNfQVBJIHZvaWQgbWluYWxpZ24zMl9oZWFwX2NvbmZpZ19h
Y3RpCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVG
QVVMVF9TSVpFLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQ
QVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9l
bXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUsIFwKLSAgICAuc21hbGxf
dXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IHRydWUsIFwKKyAgICAuc21hbGxfc2VncmVnYXRl
ZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gdHJ1ZSwgXAorICAgIC5lbmFibGVfdmlld19j
YWNoZSA9IHRydWUsIFwKICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAuc21h
bGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCA9IE1JTkFMSUdOMzJfTUlOQUxJR05fU0hJRlQsIFwK
ICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZB
VUxUX1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2Vz
aXplNjRrX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYWdlc2l6ZTY0a19oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAuYwkod29ya2luZyBjb3B5KQpA
QCAtNTQsNyArNTQsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlU
CiAgICAgUEFHRVNJWkU2NEtfSEVBUF9DT05GSUcsCiAgICAgJnBhZ2VzaXplNjRrX2ludHJpbnNp
Y19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3Vu
dHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwK
KyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCiAgICAgJnBhZ2VzaXpl
NjRrX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmcGFnZXNpemU2NGtfY29tbW9uX3ByaW1p
dGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX2Rlc2lnbmF0ZWQp
OwpAQCAtNjQsMTggKzY0LDE4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIFBBR0VT
SVpFNjRLX0hFQVBfQ09ORklHLAogICAgICZwYWdlc2l6ZTY0a190eXBlZF9ydW50aW1lX2NvbmZp
Zy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKICAg
ICB0ZXN0X2FsbG9jYXRlX2FycmF5X2ltcGwsCiAgICAgUEFHRVNJWkU2NEtfSEVBUF9DT05GSUcs
CiAgICAgJnBhZ2VzaXplNjRrX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19h
bGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jh
c2hfb25fZXJyb3IpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7
CiAKIHZvaWQqIHBhZ2VzaXplNjRrX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZV90IHNp
emUpCiB7Ci0gICAgcmV0dXJuIHRlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplLCAx
KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKil0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUo
c2l6ZSwgMSkuYmVnaW47CiB9CiAKIHZvaWQqIHBhZ2VzaXplNjRrX2FsbG9jYXRlKHBhc19oZWFw
X3JlZiogaGVhcF9yZWYpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBf
Y29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDggQEAgcGFzX2hlYXBfY29uZmln
IHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnIAogCiBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5J
VElPTlMoCiAgICAgcGFnZXNpemU2NGssIFBBR0VTSVpFNjRLLAotICAgIC5hbGxvY2F0ZV9wYWdl
X3Nob3VsZF96ZXJvID0gZmFsc2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0g
ZmFsc2UsCisgICAgLmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBh
c19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZvaWQg
cGFnZXNpemU2NGtfaGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKIHsKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVh
cF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTcs
NyArNTcsOCBAQCBQQVNfQVBJIHZvaWQgcGFnZXNpemU2NGtfaGVhcF9jb25maWdfYWN0CiAgICAg
LnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFHRVNJWkU2NEtfU01BTExfUEFHRV9TSVpF
LCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExf
UEFHRV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3Jk
X2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IGZhbHNlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZl
cnNlZF9jdXJyZW50X3dvcmQgPSAhUEFTX0FSTTY0LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRf
dXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9ICFQQVNfQVJNNjQsIFwKKyAgICAuZW5hYmxlX3Zp
ZXdfY2FjaGUgPSBmYWxzZSwgXAogICAgIC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwgXAogICAg
IC5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0ID0gUEFHRVNJWkU2NEtfTUlOQUxJR05fU0hJ
RlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBBR0VTSVpFNjRLX1NNQUxMX1BB
R0VfU0laRSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Fs
bF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2lu
Z19kaXJlY3Rvcmllcy5jCShub25leGlzdGVudCkKQEAgLTEsMTk4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25m
aWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfYWxsX2JpYXNpbmdf
ZGlyZWN0b3JpZXMuaCIKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVz
LmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3Nj
YXZlbmdlci5oIgotCi1wYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rv
ciBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5jZTsK
LXBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3IgcGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzX3ZlY3Rvcl9pbnN0YW5jZTsKLQotdm9pZCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3Jp
ZXNfYXBwZW5kKHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHNpemVf
dCBpbmRleDsKLSAgICBzaXplX3Qgd29yZF9pbmRleDsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNf
Ymlhc2luZ19kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeV9wdHI7Ci0KLSAgICBwYXNfaGVhcF9sb2Nr
X2Fzc2VydF9oZWxkKCk7Ci0gICAgCi0gICAgaW5kZXggPSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXNfdmVjdG9yX2luc3RhbmNlLnNpemU7Ci0KLSAgICBQQVNfQVNTRVJUKCFkaXJlY3Rvcnkt
PmluZGV4X2luX2FsbCk7Ci0gICAgUEFTX0FTU0VSVCgodW5zaWduZWQpaW5kZXggPT0gaW5kZXgp
OwotICAgIGRpcmVjdG9yeS0+aW5kZXhfaW5fYWxsID0gKHVuc2lnbmVkKWluZGV4OwotCi0gICAg
cGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9zdG9yZSgmZGlyZWN0b3J5
X3B0ciwgZGlyZWN0b3J5KTsKLSAgICBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9y
X2FwcGVuZCgKLSAgICAgICAgJnBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfaW5z
dGFuY2UsIGRpcmVjdG9yeV9wdHIsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIAotICAgIC8qIFdl
IGhhdmUgdG8gc3RvcmUgdG8gdGhlIGJpdHZlY3RvciBzZWNvbmQsIHNvIHRoYXQgd2hlbiB3ZSBz
ZWUgYSBiaXQgc2V0IGluIHRoZSBiaXR2ZWN0b3IsCi0gICAgICAgd2Uga25vdyB0aGF0IHRoZSB0
aGluZyBpbiBxdWVzdGlvbiBpcyBhbHJlYWR5IGFwcGVuZGVkIHRvIHRoZSB2ZWN0b3IuIFRoaXMg
aXMgYWN0dWFsbHkKLSAgICAgICBvdmVya2lsbCBzaW5jZSB3ZSBvbmx5IHN0b3JlIHRoZSBiaXQg
dXNpbmcgYSBDQVMgYW5kIG9ubHkgYWZ0ZXIgcmVsZWFzaW5nIHRoZSBoZWFwIGxvY2ssIGJ1dAot
ICAgICAgIHdoYXRldmVyIC0gaXQncyBub3Qgd29ydGggaXQgdG8gdHJ5IHRvIGJlIGZhc3QgaGVy
ZS4gKi8KLSAgICBwYXNfZmVuY2UoKTsKLQotICAgIHdvcmRfaW5kZXggPSBQQVNfQklUVkVDVE9S
X1dPUkRfSU5ERVgoaW5kZXgpOwotCi0gICAgd2hpbGUgKHdvcmRfaW5kZXggPj0gcGFzX2FsbF9i
aWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfaW5zdGFuY2Uuc2l6ZSkgewotICAg
ICAgICBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9hcHBlbmQo
Ci0gICAgICAgICAgICAmcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0
b3JfaW5zdGFuY2UsIDAsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIH0KLX0KLQotYm9vbCBwYXNf
YWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZhdGUocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpCi17Ci0gICAgc2l6ZV90IGluZGV4OwotICAgIHNpemVfdCB3b3JkX2luZGV4Owot
ICAgIGJvb2wgZGlkX2FjdGl2YXRlOwotCi0gICAgaW5kZXggPSBkaXJlY3RvcnktPmluZGV4X2lu
X2FsbDsKLSAgICAKLSAgICB3b3JkX2luZGV4ID0gUEFTX0JJVFZFQ1RPUl9XT1JEX0lOREVYKGlu
ZGV4KTsKLSAgICAKLSAgICBQQVNfQVNTRVJUKHdvcmRfaW5kZXggPCBwYXNfYWxsX2JpYXNpbmdf
ZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5jZS5zaXplKTsKLSAgICAKLSAgICBk
aWRfYWN0aXZhdGUgPSBwYXNfYml0dmVjdG9yX3NldF9hdG9taWNfaW5fd29yZCgKLSAgICAgICAg
cGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfZ2V0X3B0cigKLSAg
ICAgICAgICAgICZwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9p
bnN0YW5jZSwKLSAgICAgICAgICAgIHdvcmRfaW5kZXgpLAotICAgICAgICBpbmRleCwKLSAgICAg
ICAgdHJ1ZSk7Ci0KLSAgICBpZiAoZGlkX2FjdGl2YXRlKQotICAgICAgICBwYXNfc2NhdmVuZ2Vy
X2RpZF9jcmVhdGVfZWxpZ2libGUoKTsKLQotICAgIHJldHVybiBkaWRfYWN0aXZhdGU7Ci19Ci0K
LXR5cGVkZWYgc3RydWN0IHsKLSAgICBib29sIHNob3VsZF9nb19hZ2FpbjsKLSAgICB1bnNpZ25l
ZCogd29yZF9wdHI7Ci19IHNjYXZlbmdlX2RhdGE7Ci0KLXN0YXRpYyB1bnNpZ25lZCBzY2F2ZW5n
ZV9mb3JfZWFjaF9zZXRfYml0X2JpdHNfc291cmNlKHNpemVfdCB3b3JkX2luZGV4LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJn
KQotewotICAgIHNjYXZlbmdlX2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNfVU5VU0VEX1BBUkFNKHdv
cmRfaW5kZXgpOwotCi0gICAgZGF0YSA9IGFyZzsKLQotICAgIHJldHVybiAqZGF0YS0+d29yZF9w
dHI7Ci19Ci0KLXN0YXRpYyBib29sIHNjYXZlbmdlX2Zvcl9lYWNoX3NldF9iaXRfY2FsbGJhY2so
cGFzX2ZvdW5kX2JpdF9pbmRleCBmb3VuZF9iaXRfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZykKLXsKLSAgICBzY2F2ZW5nZV9k
YXRhKiBkYXRhOwotICAgIHVuc2lnbmVkIGluZGV4OwotICAgIHVuc2lnbmVkIHdvcmQ7Ci0gICAg
dW5zaWduZWQqIHdvcmRfcHRyOwotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5
OwotICAgIHVuc2lnbmVkIGN1cnJlbnRfaGlnaF93YXRlcm1hcms7Ci0gICAgdWludHB0cl90IGxh
cmdlX2VsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrOwotICAgIHVuc2lnbmVkIGVsaWdpYmxlX2hpZ2hf
d2F0ZXJtYXJrOwotCi0gICAgZGF0YSA9IGFyZzsKLQotICAgIGluZGV4ID0gKHVuc2lnbmVkKWZv
dW5kX2JpdF9pbmRleC5pbmRleDsKLSAgICBQQVNfQVNTRVJUKGluZGV4ID09IGZvdW5kX2JpdF9p
bmRleC5pbmRleCk7Ci0KLSAgICB3b3JkID0gZm91bmRfYml0X2luZGV4LndvcmQ7Ci0gICAgd29y
ZF9wdHIgPSBkYXRhLT53b3JkX3B0cjsKLQotICAgIFBBU19BU1NFUlQoaW5kZXggPCBwYXNfYWxs
X2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9yX2luc3RhbmNlLnNpemUpOwotICAgIGRpcmVjdG9y
eSA9IHBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZCgKLSAgICAg
ICAgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3Rvcl9nZXRfcHRyKAotICAgICAgICAg
ICAgJnBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfaW5zdGFuY2UsIGluZGV4KSk7
Ci0KLSAgICBjdXJyZW50X2hpZ2hfd2F0ZXJtYXJrID0gZGlyZWN0b3J5LT5jdXJyZW50X2hpZ2hf
d2F0ZXJtYXJrOwotCi0gICAgaWYgKGN1cnJlbnRfaGlnaF93YXRlcm1hcmspCi0gICAgICAgIGRh
dGEtPnNob3VsZF9nb19hZ2FpbiA9IHRydWU7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8qIFdlJ3Zl
IGdvdCB0byBjbGVhciB0aGUgYml0IGJlZm9yZSB3ZSBkbyBhbnl0aGluZyBlbHNlLiBPdGhlcndp
c2UgdGhlcmUncyBhIHJhY2Ugd2hlcmUgd2UKLSAgICAgICAgICAgbWlnaHQgbWlzcyBhIG5vdGlm
aWNhdGlvbiBhYm91dCBhY3RpdmF0aW9uLiAqLwotICAgICAgICBwYXNfYml0dmVjdG9yX3NldF9h
dG9taWNfaW5fd29yZCh3b3JkX3B0ciwgaW5kZXgsIGZhbHNlKTsKLSAgICB9Ci0gICAgCi0gICAg
bGFyZ2VfZWxpZ2libGVfaGlnaF93YXRlcm1hcmsgPSBkaXJlY3RvcnktPmVsaWdpYmxlX2hpZ2hf
d2F0ZXJtYXJrLnZhbHVlOwotICAgIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrID0gKHVuc2lnbmVk
KWxhcmdlX2VsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrOwotICAgIFBBU19BU1NFUlQoZWxpZ2libGVf
aGlnaF93YXRlcm1hcmsgPT0gbGFyZ2VfZWxpZ2libGVfaGlnaF93YXRlcm1hcmspOwotCi0gICAg
ZGlyZWN0b3J5LT5wcmV2aW91c19oaWdoX3dhdGVybWFyayA9IGN1cnJlbnRfaGlnaF93YXRlcm1h
cms7Ci0gICAgZGlyZWN0b3J5LT5jdXJyZW50X2hpZ2hfd2F0ZXJtYXJrID0gMDsKLQotICAgIGlm
IChjdXJyZW50X2hpZ2hfd2F0ZXJtYXJrIDwgZWxpZ2libGVfaGlnaF93YXRlcm1hcmspCi0gICAg
ICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfY3JlYXRlX2RlbHRhKGRpcmVjdG9yeSk7Ci0K
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGJvb2wgc2NhdmVuZ2VfYml0dmVjdG9yX3dv
cmRfY2FsbGJhY2sodW5zaWduZWQqIHdvcmRfcHRyLCBzaXplX3Qgd29yZF9pbmRleCwgdm9pZCog
YXJnKQotewotICAgIHNjYXZlbmdlX2RhdGEqIGRhdGE7Ci0gICAgYm9vbCByZXN1bHQ7Ci0KLSAg
ICBkYXRhID0gYXJnOwotICAgIGRhdGEtPndvcmRfcHRyID0gd29yZF9wdHI7Ci0gICAgCi0gICAg
cmVzdWx0ID0gcGFzX2JpdHZlY3Rvcl9mb3JfZWFjaF9zZXRfYml0KHNjYXZlbmdlX2Zvcl9lYWNo
X3NldF9iaXRfYml0c19zb3VyY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdvcmRfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdvcmRfaW5kZXggKyAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzY2F2ZW5nZV9mb3JfZWFjaF9zZXRfYml0X2NhbGxiYWNrLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhKTsKLSAgICBQQVNfQVNT
RVJUKHJlc3VsdCk7Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgcGFzX2FsbF9i
aWFzaW5nX2RpcmVjdG9yaWVzX3NjYXZlbmdlKHZvaWQpCi17Ci0gICAgc2NhdmVuZ2VfZGF0YSBk
YXRhOwotICAgIHBhc19mb3VuZF9pbmRleCByZXN1bHQ7Ci0KLSAgICBkYXRhLnNob3VsZF9nb19h
Z2FpbiA9IGZhbHNlOwotICAgIGRhdGEud29yZF9wdHIgPSBOVUxMOwotCi0gICAgcmVzdWx0ID0g
cGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfaXRlcmF0ZSgKLSAg
ICAgICAgJnBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yX2luc3Rh
bmNlLAotICAgICAgICAwLAotICAgICAgICBzY2F2ZW5nZV9iaXR2ZWN0b3Jfd29yZF9jYWxsYmFj
aywKLSAgICAgICAgJmRhdGEpOwotCi0gICAgUEFTX0FTU0VSVCghcmVzdWx0LmRpZF9zdWNjZWVk
KTsKLQotICAgIHJldHVybiBkYXRhLnNob3VsZF9nb19hZ2FpbjsKLX0KLQotI2VuZGlmIC8qIExJ
QlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaAkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9i
aWFzaW5nX2RpcmVjdG9yaWVzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0FM
TF9CSUFTSU5HX0RJUkVDVE9SSUVTX0gKLSNkZWZpbmUgUEFTX0FMTF9CSUFTSU5HX0RJUkVDVE9S
SUVTX0gKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBh
c19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCIKLSNpbmNsdWRlICJwYXNf
c2VnbWVudGVkX3ZlY3Rvci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLVBBU19ERUNMQVJF
X1NFR01FTlRFRF9WRUNUT1IocGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2
ZWN0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA0KTsKLVBBU19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFz
X2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0ciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNCk7Ci0KLVBBU19BUEkgZXh0ZXJuIHBhc19hbGxfYmlhc2lu
Z19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
c19hY3RpdmVfYml0dmVjdG9yX2luc3RhbmNlOwotUEFTX0FQSSBleHRlcm4gcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzX3ZlY3RvciBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9y
X2luc3RhbmNlOwotCi1QQVNfQVBJIHZvaWQgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2Fw
cGVuZChwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgYm9vbCBw
YXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZhdGUocGFzX2JpYXNpbmdfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIGJvb2wgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVz
X3NjYXZlbmdlKHZvaWQpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0FM
TF9CSUFTSU5HX0RJUkVDVE9SSUVTX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2FsbF9oZWFwcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfaGVhcHMuYwkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9oZWFwcy5jCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiwxNCArMzYsMTIgQEAKICNpbmNsdWRlICJqaXRfaGVhcC5oIgogI2luY2x1
ZGUgIm1pbmFsaWduMzJfaGVhcC5oIgogI2luY2x1ZGUgInBhZ2VzaXplNjRrX2hlYXAuaCIKLSNp
bmNsdWRlICJwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19i
aXRmaXRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBf
bG9jay5oIgogI2luY2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgogI2luY2x1
ZGUgInBhc19wdHJfaGFzaF9zZXQuaCIKICNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCi0jaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5oIgogI2luY2x1
ZGUgInBhc191dGlsaXR5X2hlYXBfY29uZmlnLmgiCkBAIC0yMjMsNDMgKzIyMSwxOCBAQCB0eXBl
ZGVmIHN0cnVjdCB7CiAgICAgdm9pZCogYXJnOwogfSBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVj
dG9yeV9kYXRhOwogCi1zdGF0aWMgYm9vbCBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2soCitzdGF0aWMgYm9vbCBmb3JfZWFjaF9zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVn
YXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCiAgICAgdm9pZCogYXJnKQogewogICAgIGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2RhdGEqIGRhdGE7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwb29sOwotICAgIHNpemVf
dCBpbmRleDsKIAogICAgIFBBU19VTlVTRURfUEFSQU0oaGVhcCk7CiAKICAgICBkYXRhID0gYXJn
OwogCi0gICAgaWYgKCFkYXRhLT5jYWxsYmFjaygmZGlyZWN0b3J5LT5iYXNlLCBkYXRhLT5hcmcp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBwb29sID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2JpYXNfc2hhcmluZ19wb29sKGRpcmVjdG9yeSk7Ci0gICAgZm9y
IChpbmRleCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9udW1fcGFydGljaXBhbnRzKHBvb2wpOyBp
bmRleC0tOykgewotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50IHBhcnRpY2lw
YW50OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19k
aXJlY3Rvcnk7Ci0KLSAgICAgICAgcGFydGljaXBhbnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
Z2V0X3BhcnRpY2lwYW50KHBvb2wsIGluZGV4KTsKLQotICAgICAgICBpZiAoIXBhcnRpY2lwYW50
KQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgUEFTX0FTU0VSVChwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2dldF9raW5kKHBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAg
ICAgID09IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnkpOwot
Ci0gICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5KAotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9n
ZXRfcHRyKHBhcnRpY2lwYW50KSk7Ci0KLSAgICAgICAgaWYgKCFkYXRhLT5jYWxsYmFjaygmYmlh
c2luZ19kaXJlY3RvcnktPmJhc2UsIGRhdGEtPmFyZykpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotICAgIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBkYXRhLT5jYWxs
YmFjaygmZGlyZWN0b3J5LT5iYXNlLCBkYXRhLT5hcmcpOwogfQogCiBzdGF0aWMgYm9vbCBmb3Jf
ZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfY2FsbGJhY2so
CkBAIC0yODcsOCArMjYwLDggQEAgc3RhdGljIGJvb2wgZm9yX2VhY2hfc2VncmVnYXRlZF9kaXJl
Y3RvcgogCiAgICAgZGF0YSA9IGFyZzsKIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9m
b3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCi0gICAgICAgICAgICBoZWFwLCBmb3JfZWFj
aF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRh
dGEpKQorICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9y
eSgKKyAgICAgICAgICAgIGhlYXAsIGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemVf
ZGlyZWN0b3J5X2NhbGxiYWNrLCBkYXRhKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKCFjb25maWctPmZvcl9lYWNoX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSgKQEAgLTMyOCwxMyAr
MzAxLDggQEAgc3RhdGljIHZvaWQgZHVtcF9kaXJlY3RvcnlfbmljZWx5KHBhc19zZQogICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9y
eS0+cGFnZV9jb25maWdfa2luZCksCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpKTsKICAgICBzd2l0
Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBwYXNfbG9nKCIsICV1IiwgKChw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKWRpcmVjdG9yeSktPm9iamVjdF9z
aXplKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeV9raW5kOgotICAgICAgICBwYXNfbG9nKCIsICV1IiwKLSAgICAgICAgICAgICAgICBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKLSAg
ICAgICAgICAgICAgICAgICAgJigocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqKWRp
cmVjdG9yeSktPnBhcmVudF9nbG9iYWwpLT5vYmplY3Rfc2l6ZSk7CisgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5kOgorICAgICAgICBwYXNfbG9nKCIsICV1IiwgKChw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSopZGlyZWN0b3J5KS0+b2JqZWN0X3NpemUpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeV9raW5kOgogICAgICAgICBicmVhazsKQEAgLTQ0NSw5ICs0MTMsNiBAQCBzdGF0aWMgYm9v
bCBjb21wdXRlX3RvdGFsX25vbl91dGlsaXR5X3NlCiAgICAgc2l6ZV90IGluZGV4OwogICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKIAotICAgIGlmIChkaXJlY3Rv
cnktPmRpcmVjdG9yeV9raW5kID09IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tp
bmQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYWxsX21hZ2F6aW5lcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfbWFnYXppbmVzLmMJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfbWFnYXppbmVzLmMJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw4OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIw
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lm
IExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfYWxsX21hZ2F6aW5lcy5oIgotCi0jaW5j
bHVkZSAicGFzX2hlYXBfbG9jay5oIgotI2luY2x1ZGUgInBhc19tYWdhemluZS5oIgotI2luY2x1
ZGUgInBhc19tb25vdG9uaWNfdGltZS5oIgotI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbm9kZS5oIgotCi0jaWYgZGVmaW5lZChfX2hhc19pbmNsdWRlKSAmJiBfX2hhc19pbmNsdWRl
KDxvcy90c2QuaD4pCi0jaW5jbHVkZSA8b3MvdHNkLmg+Ci0jZGVmaW5lIFBBU19IQVZFX09TX1RT
RCAxCi0jZWxzZQotI2RlZmluZSBQQVNfSEFWRV9PU19UU0QgMAotI2VuZGlmCi0KLXBhc19hbGxf
bWFnYXppbmVzX3ZlY3RvciBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2UgPSBQQVNf
SU1NVVRBQkxFX1ZFQ1RPUl9JTklUSUFMSVpFUjsKLXVuc2lnbmVkIHBhc19hbGxfbWFnYXppbmVz
X2ZvcmNlZF9jcHVfbnVtYmVyID0gVUlOVF9NQVg7Ci0KLXBhc19tYWdhemluZSogcGFzX2FsbF9t
YWdhemluZXNfZ2V0X2N1cnJlbnQodm9pZCkKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7Ci0gICAgCi0gICAgdW5zaWduZWQgY3B1OwotICAgIHVuc2lnbmVkIHNpemU7
Ci0KLSAgICBjcHUgPSBwYXNfYWxsX21hZ2F6aW5lc19mb3JjZWRfY3B1X251bWJlcjsKLSAgICBp
ZiAoY3B1ID09IFVJTlRfTUFYKSB7Ci0jaWYgUEFTX0hBVkVfT1NfVFNECi0gICAgICAgIGNwdSA9
IF9vc19jcHVfbnVtYmVyKCk7Ci0jZWxzZQotICAgICAgICBjcHUgPSAwOyAvKiBGSVhNRTogV2Ug
c2hvdWxkIGJlIGFibGUgdG8gZG8gYmV0dGVyIHRoYW4gdGhpcyEgKi8KLSNlbmRpZgotICAgIH0K
LQotICAgIGlmICh2ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJjcHUgPSAldVxuIiwgY3B1KTsK
LQotICAgIHNpemUgPSBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2Uuc2l6ZTsKLQot
ICAgIGlmIChQQVNfTElLRUxZKGNwdSA8IHNpemUpKQotICAgICAgICByZXR1cm4gcGFzX2FsbF9t
YWdhemluZXNfdmVjdG9yX2dldCgmcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2luc3RhbmNlICsg
cGFzX2RlcGVuZChzaXplKSwgY3B1KTsKLQotICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotCi0g
ICAgd2hpbGUgKGNwdSA+PSBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2Uuc2l6ZSkg
ewotICAgICAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lOwotCi0gICAgICAgIG1hZ2F6aW5lID0g
cGFzX21hZ2F6aW5lX2NyZWF0ZShwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2Uuc2l6
ZSk7Ci0gICAgICAgIAotICAgICAgICBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfYXBwZW5kKCZw
YXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWFnYXppbmUsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIH0KLQot
ICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7Ci0KLSAgICBQQVNfQVNTRVJUKGNwdSA8IHBhc19h
bGxfbWFnYXppbmVzX3ZlY3Rvcl9pbnN0YW5jZS5zaXplKTsKLSAgICByZXR1cm4gcGFzX2FsbF9t
YWdhemluZXNfdmVjdG9yX2dldCgmcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2luc3RhbmNlLCBj
cHUpOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfbWFnYXppbmVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuaAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Fs
bF9tYWdhemluZXMuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19BTExf
TUFHQVpJTkVTX0gKLSNkZWZpbmUgUEFTX0FMTF9NQUdBWklORVNfSAotCi0jaW5jbHVkZSAicGFz
X2ltbXV0YWJsZV92ZWN0b3IuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFz
X21hZ2F6aW5lOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX21hZ2F6aW5lIHBhc19tYWdhemluZTsKLQot
UEFTX0RFQ0xBUkVfSU1NVVRBQkxFX1ZFQ1RPUihwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3IsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19tYWdhemluZSopOwotCi1QQVNfQVBJIGV4
dGVybiBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3IgcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2lu
c3RhbmNlOwotUEFTX0FQSSBleHRlcm4gdW5zaWduZWQgcGFzX2FsbF9tYWdhemluZXNfZm9yY2Vk
X2NwdV9udW1iZXI7Ci0KLVBBU19BUEkgcGFzX21hZ2F6aW5lKiBwYXNfYWxsX21hZ2F6aW5lc19n
ZXRfY3VycmVudCh2b2lkKTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19B
TExfTUFHQVpJTkVTX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jl
c3VsdC5jCShub25leGlzdGVudCkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
YykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0j
aWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIgot
Ci12b2lkIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCog
cmVzdWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKLXsK
LSAgICBpZiAoIXJlc3VsdC0+emVyb19tb2RlICYmIHJlc3VsdC0+ZGlkX3N1Y2NlZWQpIHsKLSAg
ICAgICAgcGFzX3plcm9fbWVtb3J5KCh2b2lkKilyZXN1bHQtPmJlZ2luLCBzaXplKTsKLSAgICAg
ICAgcmVzdWx0LT56ZXJvX21vZGUgPSBwYXNfemVyb19tb2RlX2lzX2FsbF96ZXJvOwotICAgIH0K
LX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaAko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2FsbG9jYXRpb25fcmVzdWx0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAj
aWZuZGVmIFBBU19BTExPQ0FUSU9OX1JFU1VMVF9ICiAjZGVmaW5lIFBBU19BTExPQ0FUSU9OX1JF
U1VMVF9ICiAKKyNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgInBhc191dGlscy5oIgogI2lu
Y2x1ZGUgInBhc196ZXJvX21vZGUuaCIKIApAQCAtMzgsMTEgKzM5LDEzIEBAIHR5cGVkZWYgc3Ry
dWN0IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBwYXMKICAgIHRvIHNlcGFyYXRlIG91dCB0aGUgYWxs
b2NhdGlvbiByZXN1bHQgc3RhdHVzIGZyb20gdGhlIHBvaW50ZXIgdG8gbWFrZSBjb21waWxlciB0
cmFuc2Zvcm1hdGlvbnMKICAgIG9uIHRoZSBhbGxvY2F0aW9uIGZhc3QgcGF0aCB3b3JrLiAqLwog
c3RydWN0IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCB7CisgICAgdWludHB0cl90IGJlZ2luOwogICAg
IGJvb2wgZGlkX3N1Y2NlZWQ7CiAgICAgcGFzX3plcm9fbW9kZSB6ZXJvX21vZGU7Ci0gICAgdWlu
dHB0cl90IGJlZ2luOwogfTsKIAordHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyKShwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KTsK
Kwogc3RhdGljIGlubGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzX2FsbG9jYXRpb25fcmVz
dWx0X2NyZWF0ZV9mYWlsdXJlKHZvaWQpCiB7CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJl
c3VsdDsKQEAgLTY5LDggKzcyLDM5IEBAIHN0YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRpb25fcmVz
dWx0IHBhc18KICAgICAgICAgYmVnaW4sIHBhc196ZXJvX21vZGVfbWF5X2hhdmVfbm9uX3plcm8p
OwogfQogCi1QQVNfQVBJIHZvaWQgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8ocGFzX2FsbG9j
YXRpb25fcmVzdWx0KiByZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZV90IHNpemUpOworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdAorcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KHBhc19hbGxvY2F0aW9u
X3Jlc3VsdCByZXN1bHQpCit7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2FsbG9jYXRpb25fcmVzdWx0
X3plcm8ocGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBzaXplKQoreworICAgIGlmIChyZXN1bHQuZGlkX3N1Y2NlZWQKKyAgICAg
ICAgJiYgcmVzdWx0Lnplcm9fbW9kZSA9PSBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJv
KSB7CisgICAgICAgIHBhc196ZXJvX21lbW9yeSgodm9pZCopcmVzdWx0LmJlZ2luLCBzaXplKTsK
KyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRo
X3plcm9fbW9kZSgKKyAgICAgICAgICAgIHJlc3VsdC5iZWdpbiwgcGFzX3plcm9fbW9kZV9pc19h
bGxfemVybyk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKK3Bhc19hbGxvY2F0aW9uX3Jlc3VsdF9z
ZXRfZXJybm8ocGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKK3sKKyAgICBpZiAoIXJlc3Vs
dC5kaWRfc3VjY2VlZCkKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAor
cGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCByZXN1bHQpCit7CisgICAgUEFTX0FTU0VSVChyZXN1bHQuZGlkX3N1Y2NlZWQpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CiAKIFBBU19FTkRfRVhURVJOX0M7CiAKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpAQCAtMjksMTYgKzI5
LDE2IEBACiAKICNpbmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmgiCiAKLSNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCiB2b2lkIHBhc19iYXNlbGluZV9hbGxvY2F0
b3JfYXR0YWNoX2RpcmVjdG9yeShwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpCiB7CiAgICAgUEFTX0FTU0VSVCghYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3
KTsKICAgICAKICAgICBQQVNfQVNTRVJUKAogICAgICAgICBQQVNfQkFTRUxJTkVfTE9DQUxfQUxM
T0NBVE9SX1NJWkUKLSAgICAgICAgPj0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSkpOworICAgICAgICA+PSBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZShkaXJlY3RvcnkpKTsK
ICAgICAKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdCgmYWxsb2NhdG9yLT51LmFs
bG9jYXRvciwgZGlyZWN0b3J5KTsKIH0KQEAgLTUwLDcgKzUwLDYgQEAgdm9pZCBwYXNfYmFzZWxp
bmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlYwogICAgICAgICAmYWxsb2NhdG9yLT51LmFsbG9jYXRv
ciwKICAgICAgICAgcGFzX2xvY2tfbG9ja19tb2RlX2xvY2ssCiAgICAgICAgIHBhc19sb2NrX2lz
X25vdF9oZWxkKTsKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2Rlc3RydWN0KCZhbGxvY2F0b3It
PnUuYWxsb2NhdG9yKTsKICAgICBwYXNfemVyb19tZW1vcnkoJmFsbG9jYXRvci0+dS5hbGxvY2F0
b3IsIHNpemVvZihwYXNfbG9jYWxfYWxsb2NhdG9yKSk7IC8qIERvZXMgbm90IHplcm8gdGhlIGJp
dHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB3aGljaCBpcyBPSy4gKi8KIH0KSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVf
YWxsb2NhdG9yLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTUs
NyArNTUsNyBAQCBzdHJ1Y3QgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciB7CiAgICAgfSkKIAogUEFT
X0FQSSB2b2lkIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfYXR0YWNoX2RpcmVjdG9yeShwYXNfYmFz
ZWxpbmVfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7
CiAKIFBBU19BUEkgdm9pZCBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlY3Rvcnko
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogYWxsb2NhdG9yKTsKIApJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5
LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaWFzaW5nX2RpcmVjdG9yeS5jCShub25leGlzdGVudCkKQEAgLTEsMTQ3ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5j
bHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBh
c19iaWFzaW5nX2RpcmVjdG9yeS5oIgotCi0jaW5jbHVkZSAicGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzLmgiCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNp
bmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2wuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkuaCIKLQotdm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfY29uc3RydWN0KHBhc19i
aWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kIGtpbmQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbWFnYXppbmVfaW5kZXgpCi17Ci0gICAg
cGFzX3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+ZWxpZ2libGVfaGlnaF93
YXRlcm1hcmssIDApOwotICAgIAotICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5
bG9hZF93aXRoX3VzZV9lcG9jaF9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bh
eWxvYWQpOwotCi0gICAgZGlyZWN0b3J5LT5jdXJyZW50X2hpZ2hfd2F0ZXJtYXJrID0gMDsKLSAg
ICBkaXJlY3RvcnktPnByZXZpb3VzX2hpZ2hfd2F0ZXJtYXJrID0gMDsKLQotICAgIGRpcmVjdG9y
eS0+aW5kZXhfaW5fYWxsID0gMDsKLSAgICAKLSAgICBkaXJlY3RvcnktPmtpbmQgPSBraW5kOwot
Ci0gICAgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FwcGVuZChkaXJlY3RvcnkpOwotCi0g
ICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2FkZF9hdF9pbmRleCgKLSAgICAgICAgcGFzX2JpYXNp
bmdfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3Bvb2woZGlyZWN0b3J5KSwKLSAgICAgICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCi0gICAgICAgICAgICBkaXJlY3RvcnksIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnkpLAotICAgICAgICBt
YWdhemluZV9pbmRleCk7Ci19Ci0KLXBhc19wYWdlX3NoYXJpbmdfcG9vbCogcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X2dldF9zaGFyaW5nX3Bvb2wocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpCi17Ci0gICAgaWYgKHBhc19pc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KGRpcmVj
dG9yeSkpIHsKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdf
cG9vbF9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAg
ICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoCi0gICAgICAgICAgICAgICAgICAgICZwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkpLT5wYXJl
bnRfZ2xvYmFsKS0+ZGF0YSktPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkX25vbl9udWxs
KAotICAgICAgICAmcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoCi0gICAgICAgICAgICAmcGFzX3Vud3JhcF9iaXRmaXRfYmlhc2luZ19kaXJlY3Rv
cnkoCi0gICAgICAgICAgICAgICAgZGlyZWN0b3J5KS0+cGFyZW50X2dsb2JhbCktPmJpYXNfc2hh
cmluZ19wb29sKTsKLX0KLQotdm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZGlkX2NyZWF0ZV9k
ZWx0YShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2wqIHBvb2w7Ci0gICAgCi0gICAgcG9vbCA9IHBhc19iaWFzaW5nX2RpcmVjdG9y
eV9nZXRfc2hhcmluZ19wb29sKGRpcmVjdG9yeSk7Ci0gICAgCi0gICAgcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX2RpZF9jcmVhdGVfZGVsdGEoCi0gICAgICAgIHBvb2wsCi0gICAgICAgIHBhc19wYWdl
X3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAotICAgICAgICAgICAgZGlyZWN0b3J5LAotICAg
ICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSkp
OwotfQotCi1wYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpYXNpbmdfZGly
ZWN0b3J5X3Rha2VfbGFzdF91bnVzZWQoCi0gICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpCi17Ci0gICAgaWYgKHBhc19pc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KGRp
cmVjdG9yeSkpIHsKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5X3Rha2VfbGFzdF91bnVzZWQoCi0gICAgICAgICAgICBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5KSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHBhc19i
aXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgKLSAgICAgICAgcGFzX3Vu
d3JhcF9iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5KSk7Ci19Ci0KLXZvaWQgcGFz
X2JpYXNpbmdfZGlyZWN0b3J5X2RpZF91c2VfaW5kZXhfc2xvdyhwYXNfYmlhc2luZ19kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAgc2l6ZV90IGxhcmdlX2luZGV4X3BsdXNfb25lOwot
ICAgIHVuc2lnbmVkIGluZGV4X3BsdXNfb25lOwotICAgIGJvb2wgZGlkX292ZXJmbG93OwotCi0g
ICAgZGlkX292ZXJmbG93ID0gX19idWlsdGluX2FkZF9vdmVyZmxvdyhpbmRleCwgMSwgJmxhcmdl
X2luZGV4X3BsdXNfb25lKTsKLSAgICBQQVNfQVNTRVJUKCFkaWRfb3ZlcmZsb3cpOwotICAgIGlu
ZGV4X3BsdXNfb25lID0gKHVuc2lnbmVkKWxhcmdlX2luZGV4X3BsdXNfb25lOwotICAgIFBBU19B
U1NFUlQoaW5kZXhfcGx1c19vbmUgPT0gbGFyZ2VfaW5kZXhfcGx1c19vbmUpOwotICAgIGRpcmVj
dG9yeS0+Y3VycmVudF9oaWdoX3dhdGVybWFyayA9IGluZGV4X3BsdXNfb25lOwotICAgIHBhc19m
ZW5jZSgpOwotICAgIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmF0ZShkaXJlY3Rv
cnkpOwotfQotCi12b2lkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmRleF9kaWRfYmVjb21lX2Vs
aWdpYmxlKHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpCi17Ci0g
ICAgc2l6ZV90IHdhdGVybWFya19pbmRleDsKLSAgICBib29sIGRpZF9vdmVyZmxvdzsKLSAgICBi
b29sIHNob3VsZF9ub3RpZnlfZGVsdGE7Ci0KLSAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1aWx0aW5f
YWRkX292ZXJmbG93KGluZGV4LCAxLCAmd2F0ZXJtYXJrX2luZGV4KTsKLSAgICBQQVNfQVNTRVJU
KCFkaWRfb3ZlcmZsb3cpOwotCi0gICAgc2hvdWxkX25vdGlmeV9kZWx0YSA9Ci0gICAgICAgIHBh
c192ZXJzaW9uZWRfZmllbGRfbWF4aW1pemUoCi0gICAgICAgICAgICAmZGlyZWN0b3J5LT5lbGln
aWJsZV9oaWdoX3dhdGVybWFyaywgd2F0ZXJtYXJrX2luZGV4KQotICAgICAgICA8IHdhdGVybWFy
a19pbmRleDsKLQotICAgIGlmIChzaG91bGRfbm90aWZ5X2RlbHRhKSB7Ci0gICAgICAgIHBhc19w
YWdlX3NoYXJpbmdfcG9vbCogcG9vbDsKLQotICAgICAgICBwb29sID0gcGFzX2JpYXNpbmdfZGly
ZWN0b3J5X2dldF9zaGFyaW5nX3Bvb2woZGlyZWN0b3J5KTsKLQotICAgICAgICBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YSgKLSAgICAgICAgICAgIHBvb2wsCi0gICAgICAg
ICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKLSAgICAgICAgICAgICAg
ICBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9iaWFzaW5nX2RpcmVjdG9yeSkpOwotICAgIH0KLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFC
TEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2lu
Z19kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgJKG5vbmV4
aXN0ZW50KQpAQCAtMSwxMjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0JJQVNJTkdfRElSRUNUT1JZX0gKLSNk
ZWZpbmUgUEFTX0JJQVNJTkdfRElSRUNUT1JZX0gKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2Rp
cmVjdG9yeV9raW5kLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5o
IgotI2luY2x1ZGUgInBhc192ZXJzaW9uZWRfZmllbGQuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9D
OwotCi1zdHJ1Y3QgcGFzX2JpYXNpbmdfZGlyZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfYmlh
c2luZ19kaXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnk7
Ci10eXBlZGVmIHN0cnVjdCBwYXNfYmlhc2luZ19kaXJlY3RvcnkgcGFzX2JpYXNpbmdfZGlyZWN0
b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfYml0
Zml0X2JpYXNpbmdfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnk7Ci0KLXN0cnVj
dCBwYXNfYmlhc2luZ19kaXJlY3RvcnkgewotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZWxpZ2li
bGVfaGlnaF93YXRlcm1hcms7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXls
b2FkX3dpdGhfdXNlX2Vwb2NoIGJpYXNfc2hhcmluZ19wYXlsb2FkOwotICAgIHVuc2lnbmVkIGN1
cnJlbnRfaGlnaF93YXRlcm1hcms7Ci0gICAgdW5zaWduZWQgcHJldmlvdXNfaGlnaF93YXRlcm1h
cms7Ci0gICAgdW5zaWduZWQgaW5kZXhfaW5fYWxsIDogMzE7Ci0gICAgcGFzX2JpYXNpbmdfZGly
ZWN0b3J5X2tpbmQga2luZCA6IDE7Ci19OwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpYXNpbmdfZGly
ZWN0b3J5X2NvbnN0cnVjdChwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaWFzaW5nX2RpcmVj
dG9yeV9raW5kIGtpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBtYWdhemluZV9pbmRleCk7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNf
aXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRp
cmVjdG9yeSkKLXsKLSAgICByZXR1cm4gZGlyZWN0b3J5LT5raW5kID09IHBhc19iaWFzaW5nX2Rp
cmVjdG9yeV9zZWdyZWdhdGVkX2tpbmQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfaXNf
Yml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5
KQotewotICAgIHJldHVybiAhcGFzX2lzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoZGly
ZWN0b3J5KTsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfYmlhc2luZ19kaXJlY3Rv
cnlfbWFnYXppbmVfaW5kZXgocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0g
ICAgcmV0dXJuIGRpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3BheWxvYWQuYmFzZS5pbmRleF9pbl9z
aGFyaW5nX3Bvb2w7Ci19Ci0KLS8qIEFsbCB2aWV3cyBhdCBpbmRpY2VzIGJlbG93IHRoZSBvd25l
cnNoaXAgdGhyZXNob2xkIGFyZSBnb2luZyB0byBiZSBrZXB0IGZyb20gdGhlIGdsb2JhbAotICAg
ZGlyZWN0b3J5LiAqLwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfYmlhc2luZ19kaXJlY3Rv
cnlfb3duZXJzaGlwX3RocmVzaG9sZChwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkK
LXsKLSAgICByZXR1cm4gUEFTX01BWChkaXJlY3RvcnktPmN1cnJlbnRfaGlnaF93YXRlcm1hcmss
Ci0gICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LT5wcmV2aW91c19oaWdoX3dhdGVybWFyayk7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3VudXNl
ZF9zcGFuX3NpemUocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgdW5z
aWduZWQgb3duZXJzaGlwX3RocmVzaG9sZDsKLSAgICBzaXplX3QgZWxpZ2libGVfdGhyZXNob2xk
OwotICAgIHVuc2lnbmVkIHNtYWxsX2VsaWdpYmxlX3RocmVzaG9sZDsKLQotICAgIC8qIFRoaXMg
aXMgd3JpdHRlbiBzbyB0aGF0IGl0IHJldHVybnMgc29tZXRoaW5nIHNlbnNpYmxlIGV2ZW4gaW4g
Y2FzZSBvZiByYWNlcy4gKi8KLSAgICBvd25lcnNoaXBfdGhyZXNob2xkID0gcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X293bmVyc2hpcF90aHJlc2hvbGQoZGlyZWN0b3J5KTsKLSAgICBlbGlnaWJsZV90
aHJlc2hvbGQgPSBkaXJlY3RvcnktPmVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlOwotCi0g
ICAgc21hbGxfZWxpZ2libGVfdGhyZXNob2xkID0gKHVuc2lnbmVkKWVsaWdpYmxlX3RocmVzaG9s
ZDsKLSAgICBQQVNfQVNTRVJUKHNtYWxsX2VsaWdpYmxlX3RocmVzaG9sZCA9PSBlbGlnaWJsZV90
aHJlc2hvbGQpOwotCi0gICAgaWYgKG93bmVyc2hpcF90aHJlc2hvbGQgPiBzbWFsbF9lbGlnaWJs
ZV90aHJlc2hvbGQpCi0gICAgICAgIHJldHVybiAwOyAvKiBUaGlzIGlzIHRvdGFsbHkgcG9zc2li
bGUgLSBvd25lcnNoaXAgYW5kIGVsaWdpYmxpdHkgZmxvYXQgaW5kZXBlbmRlbnRseS4gKi8KLQot
ICAgIHJldHVybiBzbWFsbF9lbGlnaWJsZV90aHJlc2hvbGQgLSBvd25lcnNoaXBfdGhyZXNob2xk
OwotfQotCi1QQVNfQVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcGFzX2JpYXNpbmdfZGlyZWN0
b3J5X2dldF9zaGFyaW5nX3Bvb2wocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwot
Ci1QQVNfQVBJIHZvaWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2RpZF9jcmVhdGVfZGVsdGEocGFz
X2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNl
ZCgKLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgdm9p
ZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZGlkX3VzZV9pbmRleF9zbG93KHBhc19iaWFzaW5nX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4KTsKLQotc3RhdGljIGlubGluZSB2b2lkIHBh
c19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4KHBhc19iaWFzaW5nX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBlcG9jaCkKLXsKLSAgICBpZiAoUEFTX1VO
TElLRUxZKGluZGV4ID49IGRpcmVjdG9yeS0+Y3VycmVudF9oaWdoX3dhdGVybWFyaykpCi0gICAg
ICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4X3Nsb3coZGlyZWN0b3J5LCBp
bmRleCk7Ci0KLSAgICBkaXJlY3RvcnktPmJpYXNfc2hhcmluZ19wYXlsb2FkLnVzZV9lcG9jaCA9
IGVwb2NoOwotfQotCi1QQVNfQVBJIHZvaWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2luZGV4X2Rp
ZF9iZWNvbWVfZWxpZ2libGUocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IGluZGV4KTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19CSUFT
SU5HX0RJUkVDVE9SWV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMu
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDU0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lm
bmRlZiBQQVNfQklBU0lOR19ESVJFQ1RPUllfSU5MSU5FU19ICi0jZGVmaW5lIFBBU19CSUFTSU5H
X0RJUkVDVE9SWV9JTkxJTkVTX0gKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeS5o
IgotI2luY2x1ZGUgInBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7
Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIHBhc191
bndyYXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICBwYXNfYmlhc2luZ19kaXJl
Y3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBQQVNfQVNTRVJUKHBhc19pc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5KGRpcmVjdG9yeSkpOwotICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ19kaXJlY3RvcnkqKSgKLSAgICAgICAgKHVpbnRwdHJfdClkaXJlY3RvcnkgLSBQQVNf
T0ZGU0VUT0YocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnksIGJpYXNpbmdfYmFzZSkp
OwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIHBhc191
bndyYXBfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KAotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQotewotICAgIFBBU19BU1NFUlQocGFzX2lzX2JpdGZpdF9iaWFzaW5nX2Rp
cmVjdG9yeShkaXJlY3RvcnkpKTsKLSAgICByZXR1cm4gKHBhc19iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnkqKSgKLSAgICAgICAgKHVpbnRwdHJfdClkaXJlY3RvcnkgLSBQQVNfT0ZGU0VUT0YocGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSwgYmlhc2luZ19iYXNlKSk7Ci19Ci0KLVBBU19FTkRf
RVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQklBU0lOR19ESVJFQ1RPUllfSU5MSU5FU19IICov
Ci0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxs
b2NhdG9yLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9hbGxvY2F0b3IuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5
KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgInBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIgog
I2luY2x1ZGUgInBhc19iaXRmaXRfdmlld19pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX2Vwb2No
LmgiCi0jaW5jbHVkZSAicGFzX3N1YnBhZ2VfbWFwLmgiCiAKIGJvb2wgcGFzX2JpdGZpdF9hbGxv
Y2F0b3JfY29tbWl0X3ZpZXcocGFzX2JpdGZpdF92aWV3KiB2aWV3LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBsb2NhbCwKQEAgLTQz
LDEwICs0Miw5IEBAIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGEKIHsK
ICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCi0gICAgcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgYm9vbCB1c2VzX3N1YnBhZ2Vz
OworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAKLSAgICBkaXJlY3Rvcnkg
PSBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZCgmdmlldy0+Z2xv
YmFsX2RpcmVjdG9yeSk7CisgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVj
dG9yeV9wdHJfbG9hZCgmdmlldy0+ZGlyZWN0b3J5KTsKIAogICAgIC8qIFdlJ3JlIGFsbW9zdCBj
ZXJ0YWlubHkgZ29ubmEgY29tbWl0IGEgcGFnZSwgc28gbGV0J3MganVzdCBnZXQgdGhpcyBvdXQg
b2YgdGhlIHdheS4gV2UgbmVlZCB0bwogICAgICAgIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2Nr
IHRvIGRvIHRoaXMuIEJ1dCwgd2UgY2FuJ3QgZG8gaXQgYXQgYWxsIGlmIHdlIGFscmVhZHkgaG9s
ZCB0aGUgY29tbWl0CkBAIC01NSwxNiArNTMsMTMgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRv
cl9jb21taXRfdmlldyhwYQogICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hp
cF9sb2NrKTsKICAgICAgICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9y
X3BhZ2VfY29uZmlnKAogICAgICAgICAgICAgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgJmNvbmZp
Zy0+YmFzZSwgcGFzX2xvY2tfaXNfbm90X2hlbGQsIE5VTEwsIDApOwotICAgICAgICBwYXNfYml0
Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayh2aWV3KTsKKyAgICAgICAgcGFzX2xvY2tfbG9j
aygmdmlldy0+b3duZXJzaGlwX2xvY2spOwogICAgIH0KIAotICAgIHVzZXNfc3VicGFnZXMgPSBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX3VzZXNfc3VicGFnZXMoKmNvbmZpZyk7Ci0KICAgICBpZiAo
dmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygiY29tbWl0dGluZyBiaXRmaXQgdmlldyFcbiIpOwog
CiAgICAgZm9yICg7OykgewotICAgICAgICBwYXNfc3VicGFnZV9tYXBfZW50cnkqIHN1YnBhZ2Vf
ZW50cnk7CiAgICAgICAgIHBhc19sb2NrKiBjb21taXRfbG9jazsKICAgICAgICAgYm9vbCBoYXNf
cGFnZV9ib3VuZGFyeTsKICAgICAgICAgCkBAIC05MSw3ICs4Niw3IEBAIGJvb2wgcGFzX2JpdGZp
dF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGEKICAgICAgICAgICAgICAgICBwYXNfbG9nKCJuZWVk
IHRvIGFsbG9jYXRlIG5ldyBwYWdlLlxuIik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHBh
c19oZWFwX2xvY2tfbG9jaygpOwotICAgICAgICAgICAgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3du
ZXJzaGlwX2xvY2sodmlldyk7CisgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25l
cnNoaXBfbG9jayk7CiAgICAgICAgICAgICBpZiAodmlldy0+cGFnZV9ib3VuZGFyeSkgewogICAg
ICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiAgICAgICAgICAgICAgICAgY29u
dGludWU7CkBAIC0xMDcsMjMgKzEwMiwxNCBAQCBib29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2Nv
bW1pdF92aWV3KHBhCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHZp
ZXctPnBhZ2VfYm91bmRhcnkgPSBjb25maWctPmJhc2UucGFnZV9hbGxvY2F0b3IoCi0gICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGxv
Y2FsLT52aWV3KS0+aGVhcCk7CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfc2l6ZV9kaXJlY3RvcnkobG9jYWwtPnZpZXcpLT5oZWFwKTsKICAgICAgICAgICAgIGRpZF9z
dWNjZWVkID0gISF2aWV3LT5wYWdlX2JvdW5kYXJ5OwogCiAgICAgICAgICAgICBpZiAodmVyYm9z
ZSkKICAgICAgICAgICAgICAgICBwYXNfbG9nKCJwYWdlX2JvdW5kYXJ5ID0gJXAsIGRpZF9zdWNj
ZWVkID0gJWRcbiIsIHZpZXctPnBhZ2VfYm91bmRhcnksIGRpZF9zdWNjZWVkKTsKICAgICAgICAg
ICAgIAotICAgICAgICAgICAgaWYgKGRpZF9zdWNjZWVkKSB7CisgICAgICAgICAgICBpZiAoZGlk
X3N1Y2NlZWQpCiAgICAgICAgICAgICAgICAgY29uZmlnLT5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRl
cih2aWV3LT5wYWdlX2JvdW5kYXJ5LCBwYXNfbG9ja19pc19oZWxkKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBpZiAodXNlc19zdWJwYWdlcykgewotICAgICAgICAgICAgICAg
ICAgICBwYXNfc3VicGFnZV9tYXBfYWRkKAotICAgICAgICAgICAgICAgICAgICAgICAgdmlldy0+
cGFnZV9ib3VuZGFyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy0+YmFzZS5wYWdl
X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tbWl0dGVkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9j
aygpOwogCkBAIC0xMzcsMTYgKzEyMyw3IEBAIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29t
bWl0X3ZpZXcocGEKICAgICAgICAgICAgIHJldHVybiBkaWRfc3VjY2VlZDsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmICh1c2VzX3N1YnBhZ2VzKSB7Ci0gICAgICAgICAgICAvKiBJdCdzIG5vdCBn
cmVhdCB0aGF0IHRoaXMgaGFzIHRvIGFjcXVpcmUgdGhlIGhlYXAgbG9jaywgYnV0IHRoZW4gYWdh
aW4gaWYgd2UncmUKLSAgICAgICAgICAgICAgIGhlcmUgdGhlbiB3ZSdyZSBjb21taXR0ZWQgdG8g
Y29tbWl0dGluZyB0aGUgcGFnZSwgc28gaXQncyBwcm9iYWJseSBmaW5lLiAqLwotICAgICAgICAg
ICAgc3VicGFnZV9lbnRyeSA9IHBhc19zdWJwYWdlX21hcF9nZXQoCi0gICAgICAgICAgICAgICAg
dmlldy0+cGFnZV9ib3VuZGFyeSwgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgcGFzX2xvY2tfaXNf
bm90X2hlbGQpOwotICAgICAgICAgICAgY29tbWl0X2xvY2sgPSAmc3VicGFnZV9lbnRyeS0+Y29t
bWl0X2xvY2s7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzdWJwYWdlX2VudHJ5ID0g
TlVMTDsKLSAgICAgICAgICAgIGNvbW1pdF9sb2NrID0gJnZpZXctPmNvbW1pdF9sb2NrOwotICAg
ICAgICB9CisgICAgICAgIGNvbW1pdF9sb2NrID0gJnZpZXctPmNvbW1pdF9sb2NrOwogCiAgICAg
ICAgIHBhc19sb2NrX2xvY2tfY29uZGl0aW9uYWxseShjb21taXRfbG9jaywgY29tbWl0X2xvY2tf
aG9sZF9tb2RlKTsKIApAQCAtMTY5LDE4ICsxNDYsMTEgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9j
YXRvcl9jb21taXRfdmlldyhwYQogICAgICAgICBQQVNfQVNTRVJUKHZpZXctPnBhZ2VfYm91bmRh
cnkpOwogICAgICAgICBQQVNfQVNTRVJUKCF2aWV3LT5pc19vd25lZCk7CiAKLSAgICAgICAgaWYg
KHVzZXNfc3VicGFnZXMpIHsKLSAgICAgICAgICAgIHBhc19zdWJwYWdlX21hcF9lbnRyeV9jb21t
aXQoCi0gICAgICAgICAgICAgICAgc3VicGFnZV9lbnRyeSwKLSAgICAgICAgICAgICAgICB2aWV3
LT5wYWdlX2JvdW5kYXJ5LAotICAgICAgICAgICAgICAgIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCgK
LSAgICAgICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5LCBjb25maWctPmJhc2UucGFnZV9z
aXplKTsKLSAgICAgICAgfQorICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KAorICAgICAg
ICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7CiAgICAg
ICAgIGNvbmZpZy0+YmFzZS5jcmVhdGVfcGFnZV9oZWFkZXIodmlldy0+cGFnZV9ib3VuZGFyeSwg
cGFzX2xvY2tfaXNfbm90X2hlbGQpOwogCi0gICAgICAgIHBhc19iaXRmaXRfdmlld19sb2NrX293
bmVyc2hpcF9sb2NrKHZpZXcpOworICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNo
aXBfbG9jayk7CiAKICAgICAgICAgUEFTX0FTU0VSVCghdmlldy0+aXNfb3duZWQpOwogCkBAIC0x
OTQsNyArMTY0LDcgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYQog
ICAgICAgICBpZiAoUEFTX0RFQlVHX1NQRUNUUlVNX1VTRV9GT1JfQ09NTUlUKSB7CiAgICAgICAg
ICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKICAgICAgICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1
bV9hZGQoCi0gICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0sIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOworICAgICAg
ICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3Ry
dW0sIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOwogICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191
bmxvY2soKTsKICAgICAgICAgfQogICAgICAgICAKQEAgLTIxMiw3ICsxODIsNyBAQCBwYXNfYml0
Zml0X3ZpZXcqIHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpCiAgICAgcGFzX2JpdGZpdF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeTsKICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3M7CiAg
ICAgcGFzX2JpdGZpdF92aWV3KiBuZXdfdmlldzsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9h
bmRfaW5kZXggdmlld19kaXJlY3RvcnlfYW5kX2luZGV4OworICAgIHVuc2lnbmVkIHZpZXdfaW5k
ZXg7CiAKICAgICBQQVNfVU5VU0VEX1BBUkFNKGFsaWdubWVudCk7CiAKQEAgLTIyMiwxNCArMTky
LDkgQEAgcGFzX2JpdGZpdF92aWV3KiBwYXNfYml0Zml0X2FsbG9jYXRvcl9maQogCiAgICAgZGly
ZWN0b3J5ID0gcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgm
c2l6ZV9jbGFzcy0+ZGlyZWN0b3J5KTsKIAotICAgIC8qIElmIHdlJ3JlIGluIHRoZSB3cm9uZyBk
aXJlY3RvcnksIHRoZW4gcmVnYXJkbGVzcyBvZiBhbnl0aGluZyBlbHNlIChhbGlnbm1lbnQgZXRj
KSB3ZSBzaG91bGQKLSAgICAgICBqdXN0IGNsZWFuIHVwIHRoZSBhbGxvY2F0b3IgYW5kIGJhaWwu
ICovCi0gICAgdmlld19kaXJlY3RvcnlfYW5kX2luZGV4ID0gcGFzX2JpdGZpdF92aWV3X2N1cnJl
bnRfZGlyZWN0b3J5X2FuZF9pbmRleCh2aWV3KTsKLSAgICBpZiAoZGlyZWN0b3J5ICE9IHZpZXdf
ZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3RvcnkpIHsKLSAgICAgICAgcGFzX2JpdGZpdF9hbGxv
Y2F0b3JfcmVzZXQoYWxsb2NhdG9yKTsKLSAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5v
d25lcnNoaXBfbG9jayk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KKyAgICBQQVNfQVNT
RVJUKHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXct
PmRpcmVjdG9yeSkgPT0gZGlyZWN0b3J5KTsKKworICAgIHZpZXdfaW5kZXggPSB2aWV3LT5pbmRl
eDsKIAogICAgIC8qIElmIHdlJ3JlIHN0aWxsIG9uIHRoZSB2aWV3IHRoYXQgdGhlIGFsbG9jYXRv
ciB3YXMgb24gYW5kIHdlIGZvdW5kIHRoYXQgdGhpcyB2aWV3IG5vIGxvbmdlcgogICAgICAgIGhh
cyBlbm91Z2ggbWF4X2ZyZWUgZm9yIG91ciBzaXplIGNsYXNzLCB0aGVuIHRlbGwgZXZlcnlvbmUg
YWJvdXQgdGhpcyBhbmQgYmFpbC4KQEAgLTI0Niw3ICsyMTEsNyBAQCBwYXNfYml0Zml0X3ZpZXcq
IHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpCiAgICAgICAgIFBBU19BU1NFUlQodmlldy0+cGFnZV9i
b3VuZGFyeSk7CiAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9mb3JfYm91bmRhcnkodmlldy0+cGFn
ZV9ib3VuZGFyeSwgKmNvbmZpZyktPmRpZF9ub3RlX21heF9mcmVlID0gZmFsc2U7CiAgICAgICAg
IAotICAgICAgICBpbmRleCA9IHZpZXdfZGlyZWN0b3J5X2FuZF9pbmRleC5pbmRleDsKKyAgICAg
ICAgaW5kZXggPSB2aWV3X2luZGV4OwogICAgICAgICAKICAgICAgICAgcGFzX2JpdGZpdF9kaXJl
Y3Rvcnlfc2V0X3Byb2Nlc3NlZF9tYXhfZnJlZSgKICAgICAgICAgICAgIGRpcmVjdG9yeSwgaW5k
ZXgsIGxhcmdlc3RfYXZhaWxhYmxlID4+IGNvbmZpZy0+YmFzZS5taW5fYWxpZ25fc2hpZnQsCkBA
IC0yOTIsOCArMjU3LDcgQEAgcGFzX2JpdGZpdF92aWV3KiBwYXNfYml0Zml0X2FsbG9jYXRvcl9m
aQogICAgICAgIFRoaXMgaXMgYW4gdW51c3VhbCBkZWdlbmVyYXRlIGNhc2UgdGhhdCBoYXBwZW5z
IG9ubHkgZm9yIG1lbWFsaWduLiAqLwogICAgIFBBU19BU1NFUlQoKHVuc2lnbmVkKXNpemUgPT0g
c2l6ZSk7CiAgICAgbmV3X3ZpZXcgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJl
ZV92aWV3KAotICAgICAgICBkaXJlY3RvcnksIGFsbG9jYXRvci0+Z2xvYmFsX3NpemVfY2xhc3Ms
Ci0gICAgICAgIHZpZXdfZGlyZWN0b3J5X2FuZF9pbmRleC5pbmRleCArIDEsICh1bnNpZ25lZClz
aXplLCBjb25maWcpLnZpZXc7CisgICAgICAgIGRpcmVjdG9yeSwgdmlld19pbmRleCArIDEsICh1
bnNpZ25lZClzaXplLCBjb25maWcpLnZpZXc7CiAgICAgUEFTX0FTU0VSVChuZXdfdmlldyk7CiAg
ICAgcmV0dXJuIG5ld192aWV3OwogfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9j
YXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxOCArMzEsMTcgQEAKIFBBU19CRUdJTl9FWFRF
Uk5fQzsKIAogc3RydWN0IHBhc19iaXRmaXRfYWxsb2NhdG9yOwotc3RydWN0IHBhc19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3M7CitzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogc3RydWN0
IHBhc19iaXRmaXRfcGFnZTsKIHN0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3M7CiBzdHJ1Y3Qg
cGFzX2JpdGZpdF92aWV3OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9hbGxvY2F0b3IgcGFz
X2JpdGZpdF9hbGxvY2F0b3I7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXpl
X2NsYXNzIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBwYXNf
Yml0Zml0X3NpemVfY2xhc3MgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogdHlwZWRlZiBzdHJ1Y3Qg
cGFzX2JpdGZpdF9wYWdlIHBhc19iaXRmaXRfcGFnZTsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRm
aXRfc2l6ZV9jbGFzcyBwYXNfYml0Zml0X3NpemVfY2xhc3M7CiB0eXBlZGVmIHN0cnVjdCBwYXNf
Yml0Zml0X3ZpZXcgcGFzX2JpdGZpdF92aWV3OwogCiBzdHJ1Y3QgcGFzX2JpdGZpdF9hbGxvY2F0
b3IgewotICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIGdsb2JhbF9zaXplX2NsYXNz
OwogICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzczsKICAgICBwYXNfYml0Zml0
X3ZpZXcqIHZpZXc7CiAgICAgdW5zaWduZWQgY291bnRkb3duOwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxs
b2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCwyNyArMjgsMjcgQEAKIAogI2luY2x1ZGUgInBhc19iaXRmaXRfYWxsb2NhdGlv
bl9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X2FsbG9jYXRvci5oIgotI2luY2x1ZGUg
InBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3MuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgorI2lu
Y2x1ZGUgInBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFn
ZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3LmgiCiAjaW5jbHVkZSAicGFz
X2RlYnVnX3NwZWN0cnVtLmgiCiAjaW5jbHVkZSAicGFzX2Vwb2NoLmgiCiAjaW5jbHVkZSAicGFz
X2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0
YXRpYyBpbmxpbmUgdm9pZCBwYXNfYml0Zml0X2FsbG9jYXRvcl9yZXNldChwYXNfYml0Zml0X2Fs
bG9jYXRvciogYWxsb2NhdG9yKQogewotICAgIGFsbG9jYXRvci0+Z2xvYmFsX3NpemVfY2xhc3Mg
PSBOVUxMOworICAgIGFsbG9jYXRvci0+c2l6ZV9jbGFzcyA9IE5VTEw7CiAgICAgYWxsb2NhdG9y
LT5zaXplX2NsYXNzID0gTlVMTDsKICAgICBhbGxvY2F0b3ItPnZpZXcgPSBOVUxMOwogfQogCiBz
dGF0aWMgaW5saW5lIHZvaWQgcGFzX2JpdGZpdF9hbGxvY2F0b3JfYXNzZXJ0X3Jlc2V0KHBhc19i
aXRmaXRfYWxsb2NhdG9yKiBhbGxvY2F0b3IpCiB7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFh
bGxvY2F0b3ItPmdsb2JhbF9zaXplX2NsYXNzKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFs
bG9jYXRvci0+c2l6ZV9jbGFzcyk7CiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3It
PnNpemVfY2xhc3MpOwogICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yLT52aWV3KTsK
IH0KQEAgLTExOCw3ICsxMTgsNyBAQCBwYXNfYml0Zml0X2FsbG9jYXRvcl90cnlfYWxsb2NhdGUo
cGFzX2JpCiAgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+Y29tbWl0X2xvY2sp
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25l
cnNoaXBfbG9jayh2aWV3KTsKKyAgICAgICAgICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVy
c2hpcF9sb2NrKTsKIAogICAgICAgICAgICAgaWYgKFBBU19VTkxJS0VMWSghdmlldy0+aXNfb3du
ZWQpKSB7CiAgICAgICAgICAgICAgICAgLyogTm90ZSB0aGF0IHRoaXMgd291bGQgaGF2ZSBmbGFz
aGVkIHRoZSBvd25lcnNoaXAgbG9jayBwb3NzaWJseS4gKi8KQEAgLTE4NSw4ICsxODUsOCBAQCBw
YXNfYml0Zml0X2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2JpCiAgICAgICAgIGlmIChQQVNf
REVCVUdfU1BFQ1RSVU1fVVNFX0ZPUl9DT01NSVQgJiYgYnl0ZXNfY29tbWl0dGVkKSB7CiAgICAg
ICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKICAgICAgICAgICAgIHBhc19kZWJ1Z19zcGVj
dHJ1bV9hZGQoCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9w
dHJfbG9hZCgmYWxsb2NhdG9yLT5nbG9iYWxfc2l6ZV9jbGFzcy0+YmFzZS5kaXJlY3RvcnkpLAot
ICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVj
dHJ1bSwKKyAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9s
b2FkKCZhbGxvY2F0b3ItPnNpemVfY2xhc3MtPmRpcmVjdG9yeSksCisgICAgICAgICAgICAgICAg
cGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0sCiAgICAgICAgICAgICAgICAg
Ynl0ZXNfY29tbWl0dGVkKTsKICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiAg
ICAgICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnkuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDE2NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29u
ZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeS5oIgotCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19i
aXRmaXRfdmlld19pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIKLQot
cGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eV9jcmVhdGUoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBwYXJlbnRfZ2xvYmFs
LAotICAgIHVuc2lnbmVkIG1hZ2F6aW5lX2luZGV4KQotewotICAgIHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkqIHJlc3VsdDsKLSAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25maWdf
cHRyOwotCi0gICAgY29uZmlnX3B0ciA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRf
Y29uZmlnKHBhcmVudF9nbG9iYWwtPmJhc2UuY29uZmlnX2tpbmQpOwotCi0gICAgcmVzdWx0ID0g
cGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQoCi0gICAgICAgIHNpemVv
ZihwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KSwKLSAgICAgICAgYWxpZ25vZihwYXNfYml0
Zml0X2JpYXNpbmdfZGlyZWN0b3J5KSwKLSAgICAgICAgInBhc19iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnkiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotICAgIAotICAgIHBhc19j
b21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5wYXJlbnRf
Z2xvYmFsLCBwYXJlbnRfZ2xvYmFsKTsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9jb25zdHJ1
Y3QoJnJlc3VsdC0+YmFzZSwgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kLCBjb25m
aWdfcHRyKTsKLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfY29uc3RydWN0KAotICAgICAgICAm
cmVzdWx0LT5iaWFzaW5nX2Jhc2UsIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9iaXRmaXRfa2luZCwg
bWFnYXppbmVfaW5kZXgpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotcGFzX3BhZ2Vfc2hh
cmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9s
YXN0X3VudXNlZCgKLSAgICBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rvcnkp
Ci17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICB1bnNpZ25l
ZCBvd25lcnNoaXBfdGhyZXNob2xkOwotICAgIGJvb2wgZGlkX2ZpbmRfZWxpZ2libGVfcGFnZTsK
LSAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFzX3ZlcnNpb25lZF9maWVsZCBlbGlnaWJsZV9oaWdo
X3dhdGVybWFyazsKLSAgICBzaXplX3QgbmV3X2VsaWdpYmxlX3dhdGVybWFyazsKLSAgICBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnOwotCi0gICAgcGFnZV9jb25maWcgPSAqcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLmNvbmZp
Z19raW5kKTsKLQotICAgIGdsb2JhbF9kaXJlY3RvcnkgPQotICAgICAgICBwYXNfY29tcGFjdF9i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmZGlyZWN0b3J5LT5wYXJl
bnRfZ2xvYmFsKTsKLQotICAgIG93bmVyc2hpcF90aHJlc2hvbGQgPSBwYXNfYmlhc2luZ19kaXJl
Y3Rvcnlfb3duZXJzaGlwX3RocmVzaG9sZCgmZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UpOwotCi0g
ICAgLyogUmVhZCB0byB3YXRjaCBzbyB0aGF0IGlmIGFueW9uZSB1cGRhdGVzIHRoZSBlbGlnaWJs
ZV9oaWdoX3dhdGVybWFyayBkdXJpbmcgb3VyIHNjYW4sIHdlIHdvbid0Ci0gICAgICAgb3Zlcndy
aXRlIGl0LiAqLwotICAgIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrID0gcGFzX3ZlcnNpb25lZF9m
aWVsZF9yZWFkX3RvX3dhdGNoKAotICAgICAgICAmZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuZWxp
Z2libGVfaGlnaF93YXRlcm1hcmspOwotCi0gICAgUEFTX0FTU0VSVChlbGlnaWJsZV9oaWdoX3dh
dGVybWFyay52YWx1ZSA8PSBwYXNfYml0Zml0X2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnktPmJh
c2UpKTsKLQotICAgIGlmICgoc2l6ZV90KW93bmVyc2hpcF90aHJlc2hvbGQgPj0gZWxpZ2libGVf
aGlnaF93YXRlcm1hcmsudmFsdWUpCi0gICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfdGFrZV9ub25lX2F2YWlsYWJsZTsKLQotICAgIGRpZF9maW5kX2VsaWdpYmxlX3BhZ2UgPSBm
YWxzZTsKLQotICAgIG5ld19lbGlnaWJsZV93YXRlcm1hcmsgPSBvd25lcnNoaXBfdGhyZXNob2xk
OwotCi0gICAgZm9yIChpbmRleCA9IG93bmVyc2hpcF90aHJlc2hvbGQ7IGluZGV4IDwgZWxpZ2li
bGVfaGlnaF93YXRlcm1hcmsudmFsdWU7ICsraW5kZXgpIHsKLSAgICAgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX2JpdGZpdF92aWV3X3B0ciogdmlld19wdHI7Ci0gICAgICAgIHBhc19iaXRmaXRfdmll
dyogdmlldzsKLQotICAgICAgICB2aWV3X3B0ciA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92
aWV3X3B0cigmZGlyZWN0b3J5LT5iYXNlLCBpbmRleCk7Ci0gICAgICAgIGZvciAoOzspIHsKLSAg
ICAgICAgICAgIHZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX2xvYWQo
dmlld19wdHIpOwotICAgICAgICAgICAgaWYgKCF2aWV3KQotICAgICAgICAgICAgICAgIGJyZWFr
OwotCi0gICAgICAgICAgICBkaWRfZmluZF9lbGlnaWJsZV9wYWdlID0gdHJ1ZTsKLQotICAgICAg
ICAgICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgPT0gZ2xvYmFsX2RpcmVjdG9yeSk7Ci0KLSAgICAgICAgICAgIHBhc19sb2NrX2xvY2so
JnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgIGlmIChwYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkKCZ2aWV3LT5iaWFzaW5nX2RpcmVj
dG9yeSkKLSAgICAgICAgICAgICAgICA9PSBkaXJlY3RvcnkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiVW5iaWFzaW5nIHZpZXcg
JXAgZnJvbSAlcDolenVcbiIsIHZpZXcsIGRpcmVjdG9yeSwgaW5kZXgpOwotCi0gICAgICAgICAg
ICAgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0IHRoaXMgcGFydGljdWxhciB2aWV3IGdvdCB1bmJp
YXNlZCBhbmQgdGhlbiByZWJpYXNlZCBhdCBhIGRpZmZlcmVudAotICAgICAgICAgICAgICAgICAg
IGluZGV4IGFscmVhZHkuICovCi0gICAgICAgICAgICAgICAgaWYgKHZpZXctPmluZGV4X2luX2Jp
YXNpbmcgIT0gaW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2
aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBQQVNfQVNT
RVJUKHZpZXctPmluZGV4X2luX2JpYXNpbmcgPT0gaW5kZXgpOwotCi0gICAgICAgICAgICAgICAg
LyogSWYgdGhlIHZpZXcgYmVsaWV2ZXMgdGhhdCBpdCBpcyBiaWFzZWQgdG8gdGhpcyBpbmRleCwg
dGhlbiB0aGUgZGlyZWN0b3J5IG11c3QgYWxzbwotICAgICAgICAgICAgICAgICAgIGFncmVlIHdp
dGggdGhpcy4gKi8KLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21p
Y19iaXRmaXRfdmlld19wdHJfbG9hZCh2aWV3X3B0cikgPT0gdmlldyk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAvKiBXZSBzYXkgdGhhdCB1bmJpYXNlZCBlbnRyaWVzIGFyZSBlbXB0
eSwgbm90IHVucHJvY2Vzc2VkLiAqLwotICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0
b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHlfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAg
ICAgICAgICAgICAgICAgICAgJmRpcmVjdG9yeS0+YmFzZSwgaW5kZXgsICJiZWNvbWluZyBlbXB0
eSBvbiBub3JtYWwgdW5iaWFzIik7Ci0KLSAgICAgICAgICAgICAgICAvKiBOZWVkIGEgZmVuY2Ug
aGVyZSBiZWNhdXNlIGFzIHNvb24gYXMgd2Ugc3RhcnQgY2xlYXJpbmcgb3V0IHRoZSB2aWV3IGZy
b20gdGhlIGJpYXNpbmcKLSAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGl0J3MgcG9zc2li
bGUgZm9yIHNvbWVvbmUgZWxzZSB0byBzdGFydCBtZXNzaW5nIHdpdGggdGhpcyBtYXhfZnJlZSBl
bnRyeQotICAgICAgICAgICAgICAgICAgIGluIHRoZSBiaWFzaW5nIGRpcmVjdG9yeS4gU28gdGhl
IHN0b3JlIGFib3ZlIGhhcyB0byBoYXBwZW4gYmVmb3JlIGFueSBvZiB0aGlzLiAqLwotICAgICAg
ICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRy
X3N0b3JlKCZ2aWV3LT5iaWFzaW5nX2RpcmVjdG9yeSwgTlVMTCk7Ci0gICAgICAgICAgICAgICAg
dmlldy0+aW5kZXhfaW5fYmlhc2luZyA9IDA7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAvKiBNYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBjbGVhciB0aGUgdmlldyBvdXQgb2YgdGhlIGRp
cmVjdG9yeSB1bnRpbCB3ZSdyZSBkb25lIHRlbGxpbmcgdGhlCi0gICAgICAgICAgICAgICAgICAg
dmlldyB0aGF0IGl0J3Mgbm90IGJpYXNlZC4gKi8KLSAgICAgICAgICAgICAgICBwYXNfZmVuY2Uo
KTsKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX3N0
b3JlKHZpZXdfcHRyLCBOVUxMKTsKLQotICAgICAgICAgICAgICAgIGlmIChwYXNfYml0Zml0X3Zp
ZXdfaXNfZW1wdHkodmlldywgcGFnZV9jb25maWcpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBh
c19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHkoCi0gICAgICAgICAg
ICAgICAgICAgICAgICAmZ2xvYmFsX2RpcmVjdG9yeS0+YmFzZSwgdmlldy0+aW5kZXhfaW5fZ2xv
YmFsLAotICAgICAgICAgICAgICAgICAgICAgICAgImluaXRpYWxpemUgdG8gZW1wdHkgaW4gZ2xv
YmFsIG9uIG5vcm1hbCB1bmJpYXMiKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX3Vu
cHJvY2Vzc2VkKAotICAgICAgICAgICAgICAgICAgICAgICAgJmdsb2JhbF9kaXJlY3RvcnktPmJh
c2UsIHZpZXctPmluZGV4X2luX2dsb2JhbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbml0
aWFsaXplIHRvIHVucHJvY2Vzc2VkIGluIGdsb2JhbCBvbiBub3JtYWwgdW5iaWFzIik7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2Nr
KCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQot
ICAgIH0KLSAgICAKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgKLSAgICAgICAg
JmRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLAotICAgICAg
ICBlbGlnaWJsZV9oaWdoX3dhdGVybWFyaywgbmV3X2VsaWdpYmxlX3dhdGVybWFyayk7Ci0KLSAg
ICByZXR1cm4gZGlkX2ZpbmRfZWxpZ2libGVfcGFnZQotICAgICAgICA/IHBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX3N1Y2Nlc3MKLSAgICAgICAgOiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZV9ub25lX2F2YWlsYWJsZTsKLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2JpYXNpbmdfZGly
ZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5
LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0JJVEZJVF9CSUFTSU5HX0RJUkVD
VE9SWV9ICi0jZGVmaW5lIFBBU19CSVRGSVRfQklBU0lOR19ESVJFQ1RPUllfSAotCi0jaW5jbHVk
ZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3Rv
cnkuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIu
aCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQuaCIKLQotUEFT
X0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeTsK
LXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkgcGFzX2JpdGZpdF9i
aWFzaW5nX2RpcmVjdG9yeTsKLQotc3RydWN0IFBBU19BTElHTkVEKHNpemVvZih1aW50cHRyX3Qp
ICogMikgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSB7Ci0gICAgcGFzX2JpdGZpdF9kaXJl
Y3RvcnkgYmFzZTsKLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnkgYmlhc2luZ19iYXNlOwotICAg
IHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ciBwYXJlbnRfZ2xvYmFsOwot
fTsKLQotUEFTX0FQSSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KiBwYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5X2NyZWF0ZSgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnkq
IHBhcmVudF9nbG9iYWwsCi0gICAgdW5zaWduZWQgbWFnYXppbmVfaW5kZXgpOwotCi1QQVNfQVBJ
IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNfYml0Zml0X2JpYXNpbmdfZGly
ZWN0b3J5X3Rha2VfbGFzdF91bnVzZWQoCi0gICAgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eSogZGlyZWN0b3J5KTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19CSVRG
SVRfQklBU0lOR19ESVJFQ1RPUllfSCAqLwotCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuYwkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZp
dF9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5KQpAQCAtMzAsNDMgKzMwLDQ0IEBACiAjaW5jbHVk
ZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKIAogI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0
b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgi
CisjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2NsYXNzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZp
dF92aWV3X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmgi
CiAjaW5jbHVkZSAicGFzX2Vwb2NoLmgiCisjaW5jbHVkZSAicGFzX2ZyZWVfZ3JhbnVsZXMuaCIK
ICNpbmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19w
b29sLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgorI2luY2x1ZGUgInBhc19z
dHJlYW0uaCIKIAogdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9jb25zdHJ1Y3QocGFzX2JpdGZp
dF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQgZGlyZWN0b3J5X2tpbmQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25maWcp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnKiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9oZWFwKiBoZWFwKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKIAotICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIHBhc19sb2coIkNyZWF0aW5nIGRp
cmVjdG9yeSAlcCAoJXMpXG4iLAotICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX2JpdGZp
dF9kaXJlY3Rvcnlfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeV9raW5kKSk7Ci0gICAgfQorICAg
IGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBkaXJlY3RvcnkgJXBcbiIs
IGRpcmVjdG9yeSk7CiAgICAgCiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJmRp
cmVjdG9yeS0+Zmlyc3RfdW5wcm9jZXNzZWRfZnJlZSwgMCk7CiAgICAgcGFzX3ZlcnNpb25lZF9m
aWVsZF9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+Zmlyc3RfZW1wdHksIDApOwogICAgIHBhc19iaXRm
aXRfZGlyZWN0b3J5X21heF9mcmVlX3ZlY3Rvcl9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+bWF4X2Zy
ZWVzKTsKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X3ZlY3Rvcl9jb25zdHJ1Y3QoJmRp
cmVjdG9yeS0+dmlld3MpOwogICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFz
c19wdHJfc3RvcmUoJmRpcmVjdG9yeS0+bGFyZ2VzdF9zaXplX2NsYXNzLCBOVUxMKTsKLSAgICBk
aXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID0gZGlyZWN0b3J5X2tpbmQ7CiAgICAgZGlyZWN0b3J5
LT5jb25maWdfa2luZCA9IGNvbmZpZy0+a2luZDsKLX0KIAotdm9pZCBwYXNfYml0Zml0X2RpcmVj
dG9yeV91cGRhdGVfYmlhc2luZ19lbGlnaWJpbGl0eShwYXNfYml0Zml0X2RpcmVjdG9yeSogZGly
ZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSog
Ymlhc2luZ19kaXJlY3Rvcnk7Ci0gICAgCi0gICAgaWYgKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tp
bmQgIT0gcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IChwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5
KilkaXJlY3Rvcnk7Ci0KLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5kZXhfZGlkX2JlY29t
ZV9lbGlnaWJsZSgmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwgaW5kZXgpOworICAg
IGRpcmVjdG9yeS0+aGVhcCA9IGhlYXA7CisgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2VnbWVu
dGVkX2JpdHZlY3RvcnNfY29uc3RydWN0KCZkaXJlY3RvcnktPmJpdHZlY3RvcnMpOworICAgIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9hZF9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+
cGh5c2ljYWxfc2hhcmluZ19wYXlsb2FkKTsKKworICAgIC8qIFdlIGNvdWxkIGhhdmUgYmVlbiBs
YXp5IGFib3V0IHRoaXMgLSBidXQgaXQncyBwcm9iYWJseSBub3Qgc3VwZXIgbmVjZXNzYXJ5IHNp
bmNlIHRoZSBwb2ludAorICAgICAgIG9mIGJpdGZpdCBnbG9iYWwgZGlyZWN0b3JpZXMgaXMgdGhh
dCB0aGVyZSB3b24ndCBiZSB0b28gbWFueSBvZiB0aGVtLiAqLworICAgIGlmIChwYXNfYml0Zml0
X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcoZGlyZWN0b3J5KSkgeworICAgICAgICBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfYWRkKAorICAgICAgICAgICAgJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdf
cG9vbCwKKyAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAor
ICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9i
aXRmaXRfZGlyZWN0b3J5KSk7CisgICAgfQogfQogCiB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5
X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWQocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKQEAgLTc1LDcgKzc2LDYgQEAgdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhf
ZnJlZV9kaWRfYgogewogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF91bnByb2Nlc3NlZF9t
YXhfZnJlZShkaXJlY3RvcnksIGluZGV4LCByZWFzb24pOwogICAgIHBhc192ZXJzaW9uZWRfZmll
bGRfbWluaW1pemUoJmRpcmVjdG9yeS0+Zmlyc3RfdW5wcm9jZXNzZWRfZnJlZSwgaW5kZXgpOwot
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3VwZGF0ZV9iaWFzaW5nX2VsaWdpYmlsaXR5KGRpcmVj
dG9yeSwgaW5kZXgpOwogfQogCiB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2Rp
ZF9iZWNvbWVfdW5wcm9jZXNzZWRfdW5jaGVja2VkKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCkBAIC04NCwxMCArODQsOSBAQCB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9m
cmVlX2RpZF9iCiB7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0X3VucHJvY2Vzc2VkX21h
eF9mcmVlX3VuY2hlY2tlZChkaXJlY3RvcnksIGluZGV4LCByZWFzb24pOwogICAgIHBhc192ZXJz
aW9uZWRfZmllbGRfbWluaW1pemUoJmRpcmVjdG9yeS0+Zmlyc3RfdW5wcm9jZXNzZWRfZnJlZSwg
aW5kZXgpOwotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3VwZGF0ZV9iaWFzaW5nX2VsaWdpYmls
aXR5KGRpcmVjdG9yeSwgaW5kZXgpOwogfQogCi12b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21h
eF9mcmVlX2RpZF9iZWNvbWVfZW1wdHlfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKK3ZvaWQgcGFz
X2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0eSgKICAgICBwYXNfYml0
Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBpbmRleCwKICAgICBjb25zdCBj
aGFyKiByZWFzb24pCkBAIC05NiwxNyArOTUsOCBAQCB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5
X21heF9mcmVlX2RpZF9iCiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9taW5pbWl6ZSgmZGlyZWN0
b3J5LT5maXJzdF9lbXB0eSwgaW5kZXgpOwogfQogCi12b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5
X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHkocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciogcmVhc29uKQotewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5
X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHlfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZShkaXJlY3Rv
cnksIGluZGV4LCByZWFzb24pOwotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3VwZGF0ZV9iaWFz
aW5nX2VsaWdpYmlsaXR5KGRpcmVjdG9yeSwgaW5kZXgpOwotfQotCiBwYXNfYml0Zml0X3ZpZXdf
YW5kX2luZGV4CiBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJlZV92aWV3KHBhc19i
aXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIHNpemVfY2xhc3MsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0X2lu
ZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBz
aXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykKQEAgLTExOCwxOSArMTA4LDYgQEAgcGFzX2JpdGZp
dF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2ZyZWVfdmlldwogICAgICAgICBzaXplX3QgbWF4X2ZyZWVz
X3NpemU7CiAgICAgICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKIAotICAgICAgICBpZiAoZGly
ZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2lu
ZCkgewotICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9iYWxfZGly
ZWN0b3J5OwotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBiaWFzX3Bvb2w7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIGdsb2JhbF9kaXJlY3RvcnkgPSAocGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGJp
YXNfcG9vbCA9IHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgK
LSAgICAgICAgICAgICAgICAmZ2xvYmFsX2RpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwot
Ci0gICAgICAgICAgICBpZiAoYmlhc19wb29sKQotICAgICAgICAgICAgICAgIHBhc19iaWFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3Rha2UoYmlhc19wb29sKTsKLSAgICAgICAgfQotCiAgICAgICAgIHZp
ZXcgPSBOVUxMOwogCiAgICAgICAgIG1heF9mcmVlc19zaXplID0gZGlyZWN0b3J5LT5tYXhfZnJl
ZXMuc2l6ZTsKQEAgLTE3NSwyMiArMTUyLDE2IEBAIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9m
aXJzdF9mcmVlX3ZpZXcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGRp
cmVjdG9yeS0+dmlld3Muc2l6ZSwgZGlyZWN0b3J5LT5tYXhfZnJlZXMuc2l6ZSk7CiAgICAgICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tp
bmQgPT0gcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9iYWxfZGlyZWN0b3J5OwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBnbG9iYWxfZGlyZWN0b3J5ID0gKHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSopZGlyZWN0b3J5OwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICBpZiAoUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFMoZGlyZWN0b3J5
LT52aWV3cy5zaXplKQotICAgICAgICAgICAgICAgICAgICAgICAgIT0gZ2xvYmFsX2RpcmVjdG9y
eS0+Yml0dmVjdG9ycy5zaXplKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJU
KFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTKGRpcmVjdG9yeS0+dmlld3Muc2l6ZSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gZ2xvYmFsX2RpcmVjdG9yeS0+Yml0dmVjdG9y
cy5zaXplICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfYXBwZW5kKAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZnbG9iYWxfZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBBU19CSVRGSVRfR0xPQkFMX0RJUkVDVE9SWV9CSVRWRUNUT1JfU0VHTUVO
VF9JTklUSUFMSVpFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19o
ZWxkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoUEFTX0JJVFZFQ1RPUl9O
VU1fV09SRFMoZGlyZWN0b3J5LT52aWV3cy5zaXplKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9PSBnbG9iYWxfZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLnNpemUpOwotICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKFBBU19CSVRWRUNUT1JfTlVNX1dP
UkRTKGRpcmVjdG9yeS0+dmlld3Muc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgIT0gZGlyZWN0
b3J5LT5iaXR2ZWN0b3JzLnNpemUpIHsKKyAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChQ
QVNfQklUVkVDVE9SX05VTV9XT1JEUyhkaXJlY3RvcnktPnZpZXdzLnNpemUpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPT0gZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLnNpemUgKyAxKTsK
KyAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZl
Y3RvcnNfYXBwZW5kKAorICAgICAgICAgICAgICAgICAgICAgICAgJmRpcmVjdG9yeS0+Yml0dmVj
dG9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgIFBBU19CSVRGSVRfRElSRUNUT1JZX0JJVFZF
Q1RPUl9TRUdNRU5UX0lOSVRJQUxJWkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xv
Y2tfaXNfaGVsZCk7CisgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoUEFTX0JJVFZFQ1RP
Ul9OVU1fV09SRFMoZGlyZWN0b3J5LT52aWV3cy5zaXplKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID09IGRpcmVjdG9yeS0+Yml0dmVjdG9ycy5zaXplKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygp
OwpAQCAtMjA3LDEyNyArMTc4LDIzIEBAIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9maXJzdF9m
cmVlX3ZpZXcKICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCAodW5zaWduZWQpZm91bmRf
aW5kZXguaW5kZXgsIHZpZXcpOwogICAgICAgICB9CiAKLSAgICAgICAgc3dpdGNoIChkaXJlY3Rv
cnktPmRpcmVjdG9yeV9raW5kKSB7Ci0gICAgICAgIGNhc2UgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X2tpbmQ6IHsKLSAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSog
Z2xvYmFsX2RpcmVjdG9yeTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZ2xvYmFsX2RpcmVj
dG9yeSA9IChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICAgICAg
ICAgIAorICAgICAgICBpZiAoIXZpZXcpIHsKKyAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9j
aygpOworICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KGRp
cmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgpOwogICAgICAgICAgICAgaWYgKCF2aWV3KSB7Ci0g
ICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0gICAgICAgICAgICAgICAgdmll
dyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KGRpcmVjdG9yeSwgZm91bmRfaW5kZXgu
aW5kZXgpOwotICAgICAgICAgICAgICAgIGlmICghdmlldykgewotICAgICAgICAgICAgICAgICAg
ICBQQVNfQVNTRVJUKCh1bnNpZ25lZClmb3VuZF9pbmRleC5pbmRleCA9PSBmb3VuZF9pbmRleC5p
bmRleCk7Ci0gICAgICAgICAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X3ZpZXdfY3JlYXRl
KGdsb2JhbF9kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICh1bnNpZ25lZClmb3VuZF9pbmRleC5pbmRleCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHBhc19zdG9yZV9zdG9yZV9mZW5jZSgpOwotICAgICAgICAgICAgICAgICAgICBwYXNf
Y29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX3N0b3JlKAotICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXdfcHRyKGRpcmVjdG9yeSwgZm91bmRf
aW5kZXguaW5kZXgpLCB2aWV3KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
cGFzX2hlYXBfbG9ja191bmxvY2soKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5nbG9iYWxf
ZGlyZWN0b3J5KQotICAgICAgICAgICAgICAgID09IGdsb2JhbF9kaXJlY3RvcnkpOwotICAgICAg
ICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHZpZXctPmluZGV4X2luX2dsb2JhbCA9PSBmb3VuZF9p
bmRleC5pbmRleCk7Ci0KLSAgICAgICAgICAgIC8qIE5vdGU6IGl0J3MgcG9zc2libGUgZm9yIHRo
aXMgdG8gbm93IGhhdmUgYmVjb21lIGEgYmlhc2VkIHZpZXcuIEl0IHNob3VsZCBub3QgaGFwcGVu
Ci0gICAgICAgICAgICAgICBvZnRlbi4gSWYgaXQgaXMgbm93IGEgYmlhc2VkIHZpZXcsIHRoZW4g
aXQgbXVzdCBoYXZlIGVhcmxpZXIgaGFkIGl0cyBtYXhfZnJlZQotICAgICAgICAgICAgICAgemVy
b2VkLiAqLwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIHBh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZDogewotICAgICAgICAgICAgcGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0gICAgICAgICAgICBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0KLSAgICAgICAgICAg
IGJpYXNpbmdfZGlyZWN0b3J5ID0gKHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVj
dG9yeTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKHZpZXcpIHsKLSAgICAgICAgICAg
ICAgICAvKiBJZiB0aGVyZSB3YXMgYW55IHZpZXcgYXQgYWxsIHRoZW4gaXQgbXVzdCBoYXZlIGJl
ZW4gYmlhc2VkIHRvIHRoaXMgZGlyZWN0b3J5IGF0Ci0gICAgICAgICAgICAgICAgICAgc29tZSBw
b2ludCBvciBhbm90aGVyLiBPZiBjb3Vyc2UgaXQgY291bGQgYmUgdW5iaWFzZWQgYXQgYW55IG1v
bWVudCwgYnV0IGl0IGNvdWxkCi0gICAgICAgICAgICAgICAgICAgZXZlbiBiZSB1bmJpYXNlZCBy
aWdodCBhZnRlciB3ZSB2ZXJpZnkgdGhhdCBpdCBpcyBvdXJzLiAqLwotICAgICAgICAgICAgICAg
IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4KCZiaWFzaW5nX2RpcmVjdG9yeS0+
Ymlhc2luZ19iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZvdW5kX2luZGV4LmluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19nZXRfZXBvY2goKSk7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGdsb2JhbF9kaXJlY3Rvcnkg
PQotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3Rvcnkt
PnBhcmVudF9nbG9iYWwpOwotICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAotICAgICAg
ICAgICAgICAgICZnbG9iYWxfZGlyZWN0b3J5LT5iYXNlCi0gICAgICAgICAgICAgICAgPT0gcGFz
X2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmc2l6ZV9jbGFzcy0+
YmFzZS5kaXJlY3RvcnkpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZm9yICg7Oykgewot
ICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfdmlldyogcHJldmlvdXNfdmlldzsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF9zaXplX2NsYXNzX2dl
dF9maXJzdF9mcmVlX3ZpZXcoCi0gICAgICAgICAgICAgICAgICAgICZzaXplX2NsYXNzLT5iYXNl
LCBzaXplX2NsYXNzLCBwYWdlX2NvbmZpZyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBQQVNfVEVTVElOR19BU1NFUlQoCi0gICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5nbG9iYWxfZGly
ZWN0b3J5KQotICAgICAgICAgICAgICAgICAgICA9PSBnbG9iYWxfZGlyZWN0b3J5KTsKLQotICAg
ICAgICAgICAgICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAg
ICAgICAgICAgICAvKiBXZSBzaG91bGQgbm90IGJpYXMgYSB2aWV3IHRoYXQgaXMgYWxyZWFkeSBi
aWFzZWQuIFRoZSBnbG9iYWwgZGlyZWN0b3J5IHdvdWxkIG5vdCBoYXZlCi0gICAgICAgICAgICAg
ICAgICAgZ2l2ZW4gdXMgYSB2aWV3IHRoYXQgd2FzIGFscmVhZHkgYmlhc2VkIGlmIGl0IGtuZXcg
dGhhdCBpdCB3YXMgYmlhc2VkIGF0IHRoZSB0aW1lIG9mCi0gICAgICAgICAgICAgICAgICAgdGhl
IHNlYXJjaC4gKi8KLSAgICAgICAgICAgICAgICBpZiAoIXBhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2lzX251bGwoJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5
KSkgewotICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hp
cF9sb2NrKTsKLSAgICAgICAgICAgICAgICAgICAgLyogU2VhcmNoIHRoZSBnbG9iYWwgZGlyZWN0
b3J5IGFnYWluLiAqLwotICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6JXU6IGZvdW5kIGFscmVhZHkgYmlhc2VkIHZp
ZXcgPSAlcC5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwg
KHVuc2lnbmVkKWZvdW5kX2luZGV4LmluZGV4LCB2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgICAgICBwcmV2aW91c192aWV3ID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92
aWV3X3B0cl9zdHJvbmdfY2FzKAotICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVj
dG9yeV9nZXRfdmlld19wdHIoZGlyZWN0b3J5LCBmb3VuZF9pbmRleC5pbmRleCksCi0gICAgICAg
ICAgICAgICAgICAgIE5VTEwsIHZpZXcpOwotICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c192
aWV3KSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIFRoaXMgaXMgYW4gdW5saWtlbHkgcmFjZSBj
b25kaXRpb24gc2luY2UgYmlhc2luZyBkaXJlY3RvcmllcyBhcmUgdXN1YWxseSBvd25lZAotICAg
ICAgICAgICAgICAgICAgICAgICBieSBhIHRocmVhZC4gTm90ZSB0aGF0IHRoZSBwcmV2aW91c192
aWV3IGNhbm5vdCBiZSBvdXIgdmlldywgc2luY2Ugd2UgaGFkIGp1c3QKLSAgICAgICAgICAgICAg
ICAgICAgICAgZGV0ZWN0ZWQgdGhhdCBvdXIgdmlldyB3YXMgbm90IGJpYXNlZCwgYW5kIHdlIHN0
aWxsIGhvbGQgaXRzIGxvY2suICovCi0gICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQocHJl
dmlvdXNfdmlldyAhPSB2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2Nr
KCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICAgICAgICAgIHZpZXcgPSBwcmV2
aW91c192aWV3OwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgcGFz
X2xvZygiQmlhc2luZyB2aWV3ICVwIHRvICVwOiV1XG4iLCB2aWV3LCBkaXJlY3RvcnksICh1bnNp
Z25lZClmb3VuZF9pbmRleC5pbmRleCk7Ci0KLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9h
dG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICAg
ICAgICAgJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5LCBiaWFzaW5nX2RpcmVjdG9yeSk7CiAgICAg
ICAgICAgICAgICAgUEFTX0FTU0VSVCgodW5zaWduZWQpZm91bmRfaW5kZXguaW5kZXggPT0gZm91
bmRfaW5kZXguaW5kZXgpOwotICAgICAgICAgICAgICAgIHZpZXctPmluZGV4X2luX2JpYXNpbmcg
PSAodW5zaWduZWQpZm91bmRfaW5kZXguaW5kZXg7Ci0KLSAgICAgICAgICAgICAgICAvKiBXZSBh
dm9pZCB0aGUgY2hlY2tpbmcgaGVyZSBiZWNhdXNlIHRoaXMgbWlnaHQgaGF2ZSBiZWVuIGVtcHR5
LCBhbmQgdGhhdCdzIE9LLiAqLwotICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5
X3NldF9tYXhfZnJlZV91bmNoZWNrZWQoCi0gICAgICAgICAgICAgICAgICAgICZnbG9iYWxfZGly
ZWN0b3J5LT5iYXNlLCB2aWV3LT5pbmRleF9pbl9nbG9iYWwsIDAsICJjbGVhcmluZyBnbG9iYWwg
b24gYmlhcyIpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHBhc19iaXRmaXRf
dmlld19pc19lbXB0eSh2aWV3LCAqcGFnZV9jb25maWcpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8qIFRoaXMgaGVscHMgcHJlc2VydmUgY29uc2lzdGVuY3kgYnV0IGl0J3Mgbm90IHN1cGVyIGlu
dGVyZXN0aW5nOyBhcyBzb29uIGFzIHdlCi0gICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRl
IHdlIHdpbGwgbWFyayB0aGlzIHVucHJvY2Vzc2VkLiAqLwotICAgICAgICAgICAgICAgICAgICBw
YXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX2VtcHR5KAotICAgICAgICAg
ICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBmb3VuZF9pbmRleC5pbmRleCwgImluaXRpYWxpemUg
dG8gZW1wdHkgb24gYmlhcyIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9j
ZXNzZWRfdW5jaGVja2VkKAotICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBmb3Vu
ZF9pbmRleC5pbmRleCwgImluaXRpYWxpemUgdG8gdW5wcm9jZXNzZWQgb24gYmlhcyIpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93
bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB2
aWV3ID0gcGFzX2JpdGZpdF92aWV3X2NyZWF0ZShkaXJlY3RvcnksICh1bnNpZ25lZClmb3VuZF9p
bmRleC5pbmRleCk7CisgICAgICAgICAgICAgICAgcGFzX3N0b3JlX3N0b3JlX2ZlbmNlKCk7Cisg
ICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9zdG9yZSgK
KyAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXdfcHRyKGRp
cmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgpLCB2aWV3KTsKICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2RpZF91c2VfaW5kZXgoCi0gICAgICAgICAg
ICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UsIGZvdW5kX2luZGV4LmluZGV4
LCBwYXNfZ2V0X2Vwb2NoKCkpOwotCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfSB9Cisg
ICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoCisgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRm
aXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpCisgICAgICAg
ICAgICA9PSBkaXJlY3RvcnkpOworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQodmlldy0+aW5k
ZXggPT0gZm91bmRfaW5kZXguaW5kZXgpOwogCiAgICAgICAgIHJldHVybiBwYXNfYml0Zml0X3Zp
ZXdfYW5kX2luZGV4X2NyZWF0ZSh2aWV3LCBmb3VuZF9pbmRleC5pbmRleCk7CiAgICAgfQpAQCAt
Mzk4LDQgKzI2NSwyOTEgQEAgYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9mb3JfZWFjaF9saXZl
XwogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X2RvZXNf
c2hhcmluZyhwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHJldHVybiBw
YXNfcGFnZV9zaGFyaW5nX21vZGVfZG9lc19zaGFyaW5nKAorICAgICAgICBkaXJlY3RvcnktPmhl
YXAtPnJ1bnRpbWVfY29uZmlnLT5zaGFyaW5nX21vZGUpOworfQorICAgIAordWludDY0X3QgcGFz
X2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGly
ZWN0b3J5KQoreworICAgIHVpbnRwdHJfdCBsYXN0X2VtcHR5X3BsdXNfb25lOworICAgIHNpemVf
dCBpbmRleDsKKyAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIGNvbmZpZzsKKworICAgIGxhc3Rf
ZW1wdHlfcGx1c19vbmUgPSBkaXJlY3RvcnktPmxhc3RfZW1wdHlfcGx1c19vbmUudmFsdWU7Cisg
ICAgY29uZmlnID0gKnBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVj
dG9yeS0+Y29uZmlnX2tpbmQpOworCisgICAgZm9yIChpbmRleCA9IGxhc3RfZW1wdHlfcGx1c19v
bmU7IGluZGV4LS07KSB7CisgICAgICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKKyAgICAgICAg
dWludDY0X3QgZXBvY2g7CisKKyAgICAgICAgLyogUHJvdGVjdCBhZ2FpbnN0IHVuc2V0IGVwb2No
cy4gKi8KKyAgICAgICAgaWYgKCFwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZW1wdHlfYml0X2F0
X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KGRpcmVjdG9yeSwgaW5kZXgp
OworICAgICAgICBpZiAoIXZpZXcpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBw
YXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CisgICAgICAgIGVwb2NoID0gMDsK
KyAgICAgICAgaWYgKHZpZXctPmlzX293bmVkKSB7CisgICAgICAgICAgICBwYXNfYml0Zml0X3Bh
Z2UqIHBhZ2U7CisgICAgICAgICAgICBwYWdlID0gcGFzX2JpdGZpdF9wYWdlX2Zvcl9ib3VuZGFy
eSh2aWV3LT5wYWdlX2JvdW5kYXJ5LCBjb25maWcpOworICAgICAgICAgICAgaWYgKCFwYWdlLT5u
dW1fbGl2ZV9iaXRzKSB7CisgICAgICAgICAgICAgICAgZXBvY2ggPSBwYWdlLT51c2VfZXBvY2g7
CisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChlcG9jaCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CisK
KyAgICAgICAgaWYgKGVwb2NoKQorICAgICAgICAgICAgcmV0dXJuIGVwb2NoOworICAgIH0KKwor
ICAgIHJldHVybiAwOworfQorCitib29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9lbXB0eV9i
aXRfYXRfaW5kZXgoCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBz
aXplX3QgaW5kZXgpCit7CisgICAgcmV0dXJuIHBhc19iaXR2ZWN0b3JfZ2V0X2Zyb21fd29yZCgK
KyAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfZ2V0X3B0
cl9jaGVja2VkKAorICAgICAgICAgICAgJmRpcmVjdG9yeS0+Yml0dmVjdG9ycywgUEFTX0JJVFZF
Q1RPUl9XT1JEX0lOREVYKGluZGV4KSktPmVtcHR5X2JpdHMsCisgICAgICAgIGluZGV4KTsKK30K
KworLyogUmV0dXJucyB3aGV0aGVyIHdlIGNoYW5nZWQgdGhlIHZhbHVlLiAqLworYm9vbCBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2luZGV4KAorICAgIHBhc19iaXRmaXRf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgc2l6ZV90IGluZGV4LAorICAgIGJvb2wgdmFsdWUp
Cit7CisgICAgcmV0dXJuIHBhc19iaXR2ZWN0b3Jfc2V0X2F0b21pY19pbl93b3JkKAorICAgICAg
ICAmcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfZ2V0X3B0cl9jaGVj
a2VkKAorICAgICAgICAgICAgJmRpcmVjdG9yeS0+Yml0dmVjdG9ycywgUEFTX0JJVFZFQ1RPUl9X
T1JEX0lOREVYKGluZGV4KSktPmVtcHR5X2JpdHMsCisgICAgICAgIGluZGV4LAorICAgICAgICB2
YWx1ZSk7Cit9CisKK3ZvaWQgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2Vt
cHR5X2F0X2luZGV4KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAg
c2l6ZV90IGluZGV4KQoreworICAgIGlmICghcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0X2VtcHR5
X2JpdF9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4LCB0cnVlKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLyogSWYgd2UgYWxyZWFkeSBrbmV3IGFib3V0IGVtcHRpZXMsIHRoZW4gd2UgaGF2ZSBu
b3RoaW5nIG1vcmUgdG8gZG8uICovCisgICAgaWYgKHBhc192ZXJzaW9uZWRfZmllbGRfbWF4aW1p
emUoJmRpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZSwgaW5kZXggKyAxKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFwYXNfYml0Zml0X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcoZGly
ZWN0b3J5KSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF9kaWRfY3JlYXRlX2RlbHRhKAorICAgICAgICAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19w
b29sLAorICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKKyAgICAg
ICAgICAgIGRpcmVjdG9yeSwgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGly
ZWN0b3J5KSk7Cit9CisKK3ZvaWQgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21l
X2VtcHR5KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2Jp
dGZpdF92aWV3KiB2aWV3KQoreworICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgcGFz
X2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0
b3J5KQorICAgICAgICA9PSBkaXJlY3RvcnkpOworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3Zp
ZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKKyAgICAgICAgZGlyZWN0b3J5LCB2aWV3LT5p
bmRleCk7Cit9CisKK3Bhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNfYml0Zml0
X2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKKyAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2csCisg
ICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCit7CisgICAgc3RhdGlj
IGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHBhc192ZXJzaW9uZWRfZmll
bGQgbGFzdF9lbXB0eV9wbHVzX29uZV92YWx1ZTsKKyAgICBzaXplX3QgaW5kZXg7CisgICAgcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CisgICAgc2l6ZV90IG51bV9ncmFudWxl
czsKKworICAgIGxhc3RfZW1wdHlfcGx1c19vbmVfdmFsdWUgPSBwYXNfdmVyc2lvbmVkX2ZpZWxk
X3JlYWQoJmRpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZSk7CisKKyAgICBwYWdlX2NvbmZp
ZyA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+Y29u
ZmlnX2tpbmQpOworICAgIG51bV9ncmFudWxlcyA9IHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6
ZSAvIHBhZ2VfY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZTsKKworICAgIGZvciAoaW5kZXggPSBs
YXN0X2VtcHR5X3BsdXNfb25lX3ZhbHVlLnZhbHVlOyBpbmRleC0tOykgeworICAgICAgICBwYXNf
Yml0Zml0X3ZpZXcqIHZpZXc7CisgICAgICAgIHBhc19iaXRmaXRfcGFnZSogcGFnZTsKKyAgICAg
ICAgdWludHB0cl90IGJhc2U7CisgICAgICAgIHBhc19sb2NrKiBjb21taXRfbG9jazsKKyAgICAg
ICAgYm9vbCBwYWdlX2lzX2RlYWQ7CisgICAgICAgIHBhc19iaXRmaXRfbWF4X2ZyZWUgbWF4X2Zy
ZWU7CisgICAgICAgIAorICAgICAgICBpZiAoIXBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF9lbXB0
eV9iaXRfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCwgZmFsc2UpKQorICAgICAgICAgICAgY29u
dGludWU7CisKKyAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KGRp
cmVjdG9yeSwgaW5kZXgpOworCisgICAgICAgIFBBU19BU1NFUlQodmlldyk7CisgICAgICAgIFBB
U19BU1NFUlQodmlldy0+cGFnZV9ib3VuZGFyeSk7IC8qIFlvdSBkb24ndCBiZWNvbWUgZW1wdHkg
dW50aWwgeW91IGhhdmUgYSBwYWdlIGFuZCB0aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHlvdSBuZXZlciBsb3NlIHRoZSBwYWdlLiAqLworICAgICAgICBQ
QVNfQVNTRVJUKHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
JnZpZXctPmRpcmVjdG9yeSkgPT0gZGlyZWN0b3J5KTsKKyAgICAgICAgUEFTX0FTU0VSVCh2aWV3
LT5pbmRleCA9PSBpbmRleCk7CisKKyAgICAgICAgY29tbWl0X2xvY2sgPSAmdmlldy0+Y29tbWl0
X2xvY2s7CisKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJHcmFi
YmluZyBjb21taXQgbG9jayAlcFxuIiwgY29tbWl0X2xvY2spOworICAgICAgICBpZiAoIXBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2dfbG9ja19mb3JfYWRkaW5nKAorICAgICAgICAgICAgICAgIGRl
Y29tbWl0X2xvZywgY29tbWl0X2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpKSB7CisgICAgICAg
ICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgo
ZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19w
b29sX3Rha2VfbG9ja3NfdW5hdmFpbGFibGU7CisgICAgICAgIH0KKworICAgICAgICBwYXNfbG9j
a19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CisKKyAgICAgICAgaWYgKCF2aWV3LT5pc19v
d25lZCkgeworICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9j
ayk7CisgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9h
Ym9ydGVkX2FkZChkZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrKTsKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICB9CisKKyAgICAgICAgYmFzZSA9ICh1aW50cHRyX3Qpdmlldy0+cGFnZV9i
b3VuZGFyeTsKKyAgICAgICAgUEFTX0FTU0VSVChiYXNlKTsKKyAgICAgICAgcGFnZSA9IHBhc19i
aXRmaXRfcGFnZV9mb3JfYm91bmRhcnkoKHZvaWQqKWJhc2UsICpwYWdlX2NvbmZpZyk7CisgICAg
ICAgIFBBU19BU1NFUlQocGFnZSk7CisKKyAgICAgICAgcGFnZV9pc19kZWFkID0gIXBhZ2UtPm51
bV9saXZlX2JpdHM7CisKKyAgICAgICAgbWF4X2ZyZWUgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9n
ZXRfbWF4X2ZyZWUoZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAgIGlmIChwYWdlX2lzX2RlYWQp
IHsKKyAgICAgICAgICAgIC8qIElmIGEgcGFnZSdzIG51bV9saXZlX2JpdHMgZHJvcHMgdG8gemVy
byB0aGVuIHdlIHdpbGwgbWFyayBpdCBlbXB0eSBpbiB0aGUgZGlyZWN0b3J5IHRoYXQKKyAgICAg
ICAgICAgICAgIG93bnMgaXQgd2hpbGUgaG9sZGluZyB0aGUgbG9jay4gTmV3bHkgY3JlYXRlZCBw
YWdlcyBzdGFydCBvdXQgZW1wdHkuICAqLworICAgICAgICAgICAgaWYgKG1heF9mcmVlICE9IFBB
U19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcDol
dTogZm91bmQgbm9uLWVtcHR5IHBhZ2UgdGhhdCBpcyBkZWFkIHdoZW4gdGFraW5nIGxhc3QgZW1w
dHkuXG4iKTsKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKG1heF9mcmVlID09IFBBU19CSVRG
SVRfTUFYX0ZSRUVfRU1QVFkpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgLyogSWYgYSBwYWdlJ3MgbnVtX2xpdmVfYml0cyBnb2VzIGFib3ZlIHplcm8gdGhl
biB3ZSBtYXJrIGl0IHVucHJvY2Vzc2VkIHdoaWxlIGhvbGRpbmcgdGhlCisgICAgICAgICAgICAg
ICBsb2NrLiAqLworICAgICAgICAgICAgaWYgKG1heF9mcmVlID09IFBBU19CSVRGSVRfTUFYX0ZS
RUVfRU1QVFkpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcDoldTogZm91bmQgZW1wdHkg
cGFnZSB0aGF0IGlzIG5vdCBkZWFkIHdoZW4gdGFraW5nIGxhc3QgZW1wdHkuXG4iKTsKKyAgICAg
ICAgICAgICAgICBQQVNfQVNTRVJUKG1heF9mcmVlICE9IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1Q
VFkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobnVt
X2dyYW51bGVzID4gMSkgeworICAgICAgICAgICAgcGFzX2ZyZWVfZ3JhbnVsZXMgZnJlZV9ncmFu
dWxlczsKKyAgICAgICAgICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRz
OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJEZWNvbW1pdHRpbmcgZ3JhbnVsZXMgZm9yIHBhZ2UgJXBcbiIsIHBhZ2UpOwor
ICAgICAgICAgICAgdXNlX2NvdW50cyA9IHBhc19iaXRmaXRfcGFnZV9nZXRfZ3JhbnVsZV91c2Vf
Y291bnRzKHBhZ2UsICpwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBh
c19mcmVlX2dyYW51bGVzX2NvbXB1dGVfYW5kX21hcmtfZGVjb21taXR0ZWQoCisgICAgICAgICAg
ICAgICAgJmZyZWVfZ3JhbnVsZXMsIHVzZV9jb3VudHMsIG51bV9ncmFudWxlcyk7CisKKyAgICAg
ICAgICAgIGlmIChwYWdlX2lzX2RlYWQgIT0gKChmcmVlX2dyYW51bGVzLm51bV9hbHJlYWR5X2Rl
Y29tbWl0dGVkX2dyYW51bGVzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
cmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzKSA9PSBudW1fZ3JhbnVsZXMpKSB7CisgICAg
ICAgICAgICAgICAgcGFzX2xvZygicGFnZV9pc19kZWFkID0gJWRcbiIsIHBhZ2VfaXNfZGVhZCk7
CisgICAgICAgICAgICAgICAgcGFzX2xvZygiZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxl
cyA9ICV6dVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVfZ3JhbnVsZXMubnVtX2Zy
ZWVfZ3JhbnVsZXMpOworICAgICAgICAgICAgICAgIHBhc19sb2coImZyZWVfZ3JhbnVsZXMubnVt
X2FscmVhZHlfZGVjb21taXR0ZWRfZ3JhbnVsZXMgPSAlenVcbiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICBmcmVlX2dyYW51bGVzLm51bV9hbHJlYWR5X2RlY29tbWl0dGVkX2dyYW51bGVzKTsK
KyAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCEicGFnZV9pc19kZWFkIGRvZXMgbm90IG1hdGNo
IGZyZWVfZ3JhbnVsZXMiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgUEFTX0FTU0VSVChmcmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzIDw9IG51bV9ncmFu
dWxlcyk7CisKKyAgICAgICAgICAgIGlmICghZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxl
cykgeworICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xv
Y2spOworICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfdW5sb2NrX2Fm
dGVyX2Fib3J0ZWRfYWRkKGRlY29tbWl0X2xvZywgY29tbWl0X2xvY2spOworICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBp
ZiAocGFnZV9pc19kZWFkKQorICAgICAgICAgICAgICAgIHZpZXctPmlzX293bmVkID0gZmFsc2U7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIC8qIFdlIGhhdmUgdG8gcmVsZWFzZSB0aGUgb3du
ZXJzaGlwIGxvY2sgdG8gZGVjb21taXQgYmVjYXVzZSBkZWNvbW1pdCB3YW50cyB0aGUgaGVhcAor
ICAgICAgICAgICAgICAgbG9jay4gVGhhdCdzIHNhZmUgc2luY2Ugd2UndmUgYWxyZWFkeSBtYXJr
ZWQgdGhlIHN0dWZmIGRlY29tbWl0dGVkLiBUaGF0IG1lYW5zCisgICAgICAgICAgICAgICB0aGF0
IGFueSBhdHRlbXB0IHRvIHVzZSB0aG9zZSBncmFudWxlcyB3aWxsIGhhdmUgdG8gZ3JhYiB0aGUg
Y29tbWl0IGxvY2ssIHdoaWNoCisgICAgICAgICAgICAgICB3ZSBob2xkLiAqLworICAgICAgICAg
ICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIkRvaW5n
IGZyZWUgZ3JhbnVsZSBkZWNvbW1pdCB3aXRoIGxvY2sgJXBcbiIsIGNvbW1pdF9sb2NrKTsKKyAg
ICAgICAgICAgIHBhc19mcmVlX2dyYW51bGVzX2RlY29tbWl0X2FmdGVyX2xvY2tpbmdfcmFuZ2Uo
CisgICAgICAgICAgICAgICAgJmZyZWVfZ3JhbnVsZXMsICZwYWdlLT5iYXNlLCBkZWNvbW1pdF9s
b2csIGNvbW1pdF9sb2NrLCAmcGFnZV9jb25maWctPmJhc2UsCisgICAgICAgICAgICAgICAgaGVh
cF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3Nl
KQorICAgICAgICAgICAgICAgIHBhc19sb2coIkRvbmUsIHN1Y2Nlc3MhXG4iKTsKKyAgICAgICAg
ICAgIAorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFwYWdlX2lzX2RlYWQpIHsK
KyAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsK
KyAgICAgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9h
Ym9ydGVkX2FkZChkZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrKTsKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogV2UgZG8gdGhpcyB3aGls
ZSBob2xkaW5nIGJvdGggbG9ja3MuIFdoZW4gd2UgcmVsZWFzZSB0aGUgb3duZXJzaGlwIGxvY2ss
IHRoZW4gaWYgc29tZW9uZQorICAgICAgICAgICAgICAgZWxzZSBnZXRzIGl0LCB0aGV5IHdpbGwg
aW1tZWRpYXRlbHkgcmVsZWFzZSBpdCB0byB0cnkgdG8gY29tcGV0ZSBmb3IgdGhlIGNvbW1pdCBs
b2NrLAorICAgICAgICAgICAgICAgd2hpY2ggd2UgaG9sZC4gKi8KKyAgICAgICAgICAgIHZpZXct
PmlzX293bmVkID0gZmFsc2U7CisKKyAgICAgICAgICAgIC8qIEFuZCB3ZSBoYXZlIHRvIHJlbGVh
c2UgdGhlIG93bmVyc2hpcCBsb2NrIGJlY2F1c2UgZGVjb21taXR0aW5nIG1heSBuZWVkIHRvIGhv
bGQgdGhlIGhlYXAKKyAgICAgICAgICAgICAgIGxvY2ssIGFuZCB0aGUgaGVhcCBsb2NrIGlzIG91
dGVyIHRvIHRoZSBvd25lcnNoaXAgbG9jay4gKi8KKyAgICAgICAgICAgIHBhc19sb2NrX3VubG9j
aygmdmlldy0+b3duZXJzaGlwX2xvY2spOworCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgICAgICAgICBwYXNfbG9nKCJEZWNvbWl0dGluZyBwYWdlICVwXG4iLCBwYWdlKTsKKwor
ICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ19hZGRfYWxyZWFkeV9sb2NrZWQo
CisgICAgICAgICAgICAgICAgZGVjb21taXRfbG9nLAorICAgICAgICAgICAgICAgIHBhc192aXJ0
dWFsX3JhbmdlX2NyZWF0ZShiYXNlLCBiYXNlICsgcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXpl
LCBjb21taXRfbG9jayksCisgICAgICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhc192ZXJzaW9uZWRfZmllbGRfdHJ5X3dyaXRl
KCZkaXJlY3RvcnktPmxhc3RfZW1wdHlfcGx1c19vbmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxhc3RfZW1wdHlfcGx1c19vbmVfdmFsdWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4KTsKKyAgICAgICAgCisgICAgICAgIGlmIChw
YWdlX2lzX2RlYWQpCisgICAgICAgICAgICBwYWdlX2NvbmZpZy0+YmFzZS5kZXN0cm95X3BhZ2Vf
aGVhZGVyKCZwYWdlLT5iYXNlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKworICAgICAgICBQQVNf
QVNTRVJUKHBhc19iaXRmaXRfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhkaXJlY3RvcnkpKTsKKyAg
ICAgICAgCisgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9kaWRfY3JlYXRlX2RlbHRhKAor
ICAgICAgICAgICAgJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbCwKKyAgICAgICAgICAg
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAorICAgICAgICAgICAgICAgIGRp
cmVjdG9yeSwgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5KSk7
CisgICAgICAgIAorICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3Vj
Y2VzczsKKyAgICB9CisKKyAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgmZGlyZWN0
b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxhc3RfZW1wdHlfcGx1c19vbmVfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgMCk7CisgICAgCisgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtl
X25vbmVfYXZhaWxhYmxlOworfQorCit2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X2R1bXBfcmVm
ZXJlbmNlKAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHBhc19zdHJlYW0q
IHN0cmVhbSkKK3sKKyAgICBwYXNfc3RyZWFtX3ByaW50ZigKKyAgICAgICAgc3RyZWFtLCAiJXAo
Yml0Zml0X2RpcmVjdG9yeSwgJXMpIiwKKyAgICAgICAgZGlyZWN0b3J5LCBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhkaXJlY3RvcnktPmNvbmZpZ19raW5kKSk7Cit9CisK
K3ZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0ocGFzX3N0cmVhbSog
c3RyZWFtLCB2b2lkKiBkaXJlY3RvcnkpCit7CisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVt
cF9yZWZlcmVuY2UoZGlyZWN0b3J5LCBzdHJlYW0pOworfQorCiAjZW5kaWYgLyogTElCUEFTX0VO
QUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfZGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yNiwyNiArMjYsMzAgQEAKICNpZm5kZWYgUEFTX0JJVEZJVF9ESVJFQ1RPUllfSAog
I2RlZmluZSBQQVNfQklURklUX0RJUkVDVE9SWV9ICiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2Rp
cmVjdG9yeV9raW5kLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9tYXhfZnJlZS5oIgogI2luY2x1
ZGUgInBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRf
dmlld19hbmRfaW5kZXguaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3Np
emVfY2xhc3NfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3
X3B0ci5oIgogI2luY2x1ZGUgInBhc19oZWFwX3N1bW1hcnkuaCIKKyNpbmNsdWRlICJwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50LmgiCiAjaW5jbHVkZSAicGFzX3NlZ21lbnRlZF92ZWN0b3Iu
aCIKICNpbmNsdWRlICJwYXNfdmVyc2lvbmVkX2ZpZWxkLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5f
QzsKIAogc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3M7CitzdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYml0dmVjdG9yX3Nl
Z21lbnQ7CitzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogc3RydWN0IHBhc19iaXRmaXRf
cGFnZTsKIHN0cnVjdCBwYXNfYml0Zml0X3ZpZXc7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cDsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5IHBhc19iaXRmaXRfZGlyZWN0
b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyBwYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfYml0dmVjdG9yX3NlZ21lbnQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21l
bnQ7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3MgcGFzX2JpdGZpdF9zaXpl
X2NsYXNzOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlIHBhc19iaXRmaXRfcGFnZTsK
IHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfdmlldyBwYXNfYml0Zml0X3ZpZXc7Cit0eXBlZGVm
IHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdyZWdhdGVkX2hlYXA7CiAKICNkZWZp
bmUgUEFTX0JJVEZJVF9ESVJFQ1RPUllfVkVSQk9TRV9NQVhfRlJFRSBmYWxzZQogCkBAIC01Nywx
OSArNjEsMzUgQEAgUEFTX0RFQ0xBUkVfU0VHTUVOVEVEX1ZFQ1RPUihwYXNfYml0Zml0XwogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdf
cHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4KTsKIAorc3RydWN0IHBhc19iaXRm
aXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50IHsKKyAgICB1bnNpZ25lZCBlbXB0eV9iaXRz
OworfTsKKworI2RlZmluZSBQQVNfQklURklUX0RJUkVDVE9SWV9CSVRWRUNUT1JfU0VHTUVOVF9J
TklUSUFMSVpFUiBcCisgICAgKChwYXNfYml0Zml0X2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVu
dCl7IFwKKyAgICAgICAgIC5lbXB0eV9iaXRzID0gMCwgXAorICAgICB9KQorCitQQVNfREVDTEFS
RV9TRUdNRU5URURfVkVDVE9SKHBhc19iaXRmaXRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0
b3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9i
aXR2ZWN0b3Jfc2VnbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCk7CisKIHN0
cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19iaXRmaXRf
ZGlyZWN0b3J5IHsKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X3VucHJvY2Vzc2VkX2Zy
ZWU7CiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZCBmaXJzdF9lbXB0eTsKKyAgICBwYXNfdmVyc2lv
bmVkX2ZpZWxkIGxhc3RfZW1wdHlfcGx1c19vbmU7IC8qIFplcm8gbWVhbnMgdGhlcmUgYXJlbid0
IGFueS4gKi8KKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwOworICAgIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzIGJpdHZlY3RvcnM7CiAgICAgcGFzX2JpdGZp
dF9kaXJlY3RvcnlfbWF4X2ZyZWVfdmVjdG9yIG1heF9mcmVlczsKICAgICBwYXNfYml0Zml0X2Rp
cmVjdG9yeV92aWV3X3ZlY3RvciB2aWV3czsKKyAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lw
YW50X3BheWxvYWQgcGh5c2ljYWxfc2hhcmluZ19wYXlsb2FkOwogICAgIHBhc19jb21wYWN0X2F0
b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIgbGFyZ2VzdF9zaXplX2NsYXNzOwotICAgIHBhc19i
aXRmaXRfZGlyZWN0b3J5X2tpbmQgZGlyZWN0b3J5X2tpbmQgOiA4OwogICAgIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfa2luZCBjb25maWdfa2luZCA6IDg7CiB9OwogCiBQQVNfQVBJIHZvaWQgcGFz
X2JpdGZpdF9kaXJlY3RvcnlfY29uc3RydWN0KHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRm
aXRfZGlyZWN0b3J5X2tpbmQgZGlyZWN0b3J5X2tpbmQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFn
ZV9jb25maWcqIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCk7CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWdu
ZWQgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2l6ZShwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0
b3J5KQogewpAQCAtMTk1LDcgKzIxNSw2IEBAIHN0YXRpYyBpbmxpbmUgcGFzX2JpdGZpdF92aWV3
KiBwYXNfYml0ZmkKICAgIHNpemVfY2xhc3MncyB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24uICov
CiBQQVNfQVBJIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXgKIHBhc19iaXRmaXRfZGlyZWN0b3J5
X2dldF9maXJzdF9mcmVlX3ZpZXcocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxf
c2l6ZV9jbGFzcyogc2l6ZV9jbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgc3RhcnRfaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKQEAg
LTIxNCw2ICsyMzMsMzcgQEAgUEFTX0FQSSBib29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X2Zvcl9l
YQogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNr
IGNhbGxiYWNrLAogICAgIHZvaWQqIGFyZyk7CiAKK1BBU19BUEkgYm9vbCBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9kb2VzX3NoYXJpbmcocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisK
K1BBU19BUEkgdWludDY0X3QgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaChwYXNf
Yml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworUEFTX0FQSSBib29sIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoCisgICAgcGFzX2JpdGZpdF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKKyAgICBzaXplX3QgaW5kZXgpOworCisvKiBSZXR1cm5zIHdoZXRoZXIg
d2UgY2hhbmdlZCB0aGUgdmFsdWUuICovCitQQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfc2V0X2VtcHR5X2JpdF9hdF9pbmRleCgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGly
ZWN0b3J5LAorICAgIHNpemVfdCBpbmRleCwKKyAgICBib29sIHZhbHVlKTsKKworUEFTX0FQSSB2
b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgK
KyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHNpemVfdCBpbmRleCk7
CitQQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5
KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2JpdGZpdF92
aWV3KiB2aWV3KTsKKworUEFTX0FQSSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQg
cGFzX2JpdGZpdF9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KAorICAgIHBhc19iaXRmaXRfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21t
aXRfbG9nLAorICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKwor
UEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKAorICAgIHBh
c19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHBhc19zdHJlYW0qIHN0cmVhbSk7CisKK1BB
U19BUEkgdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bShwYXNfc3Ry
ZWFtKiBzdHJlYW0sIHZvaWQqIGRpcmVjdG9yeSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNl
bmRpZiAvKiBQQVNfQklURklUX0RJUkVDVE9SWV9IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVj
dG9yeV9hbmRfaW5kZXguaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0JJVEZJVF9ESVJFQ1RPUllfQU5EX0lOREVYX0gKLSNk
ZWZpbmUgUEFTX0JJVEZJVF9ESVJFQ1RPUllfQU5EX0lOREVYX0gKLQotI2luY2x1ZGUgInBhc19i
aXRmaXRfZGlyZWN0b3J5X2tpbmQuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3Qg
cGFzX2JpdGZpdF9kaXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2lu
ZGV4OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnkgcGFzX2JpdGZpdF9kaXJl
Y3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXggcGFz
X2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4OwotCi1zdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfYW5kX2luZGV4IHsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAg
IHVuc2lnbmVkIGluZGV4OwotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQga2luZDsKLX07
Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4IHBhc19iaXRm
aXRfZGlyZWN0b3J5X2FuZF9pbmRleF9jcmVhdGUoCi0gICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwgdW5zaWduZWQgaW5kZXgsIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQga2lu
ZCkKLXsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXggcmVzdWx0OwotICAgIHJl
c3VsdC5kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7Ci0gICAgcmVzdWx0LmluZGV4ID0gaW5kZXg7Ci0g
ICAgcmVzdWx0LmtpbmQgPSBraW5kOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVBBU19FTkRf
RVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQklURklUX0RJUkVDVE9SWV9BTkRfSU5ERVhfSCAq
LwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2Rp
cmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9y
eV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDI3ICsyNiwxMSBAQAogI2lmbmRlZiBQ
QVNfQklURklUX0RJUkVDVE9SWV9JTkxJTkVTX0gKICNkZWZpbmUgUEFTX0JJVEZJVF9ESVJFQ1RP
UllfSU5MSU5FU19ICiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5Lmgi
CiAjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgi
CiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RhdGljIGlubGluZSBwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnkqCi1wYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZ2xvYmFsKHBhc19iaXRmaXRf
ZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgc3dpdGNoIChkaXJlY3RvcnktPmRpcmVjdG9y
eV9raW5kKSB7Ci0gICAgY2FzZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZDoKLSAg
ICAgICAgcmV0dXJuIChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAg
ICBjYXNlIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgcmV0dXJu
IHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAot
ICAgICAgICAgICAgJigocGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSopZGlyZWN0b3J5KS0+
cGFyZW50X2dsb2JhbCk7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJl
YWNoZWQiKTsKLSAgICByZXR1cm4gTlVMTDsKLX0KLQogdHlwZWRlZiBzdHJ1Y3QgewogICAgIHVu
c2lnbmVkIG51bV9iaXRzOwogfSBwYXNfYml0Zml0X2RpcmVjdG9yeV9maW5kX2ZpcnN0X2ZyZWVf
Zm9yX251bV9iaXRzX2l0ZXJhdGVfZGF0YTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDY0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQ
QVNfQklURklUX0RJUkVDVE9SWV9LSU5EX0gKLSNkZWZpbmUgUEFTX0JJVEZJVF9ESVJFQ1RPUllf
S0lORF9ICi0KLSNpbmNsdWRlICJwYXNfdXRpbHMuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwot
Ci0vKiBCaXRmaXQgZGlyZWN0b3JpZXMgZm9ybSBhIHR5cGUgaGllcmFyY2h5IGxpa2Ugc286Ci0g
ICAKLSAgICAgICAtIGRpcmVjdG9yeQotICAgICAgICAgICAtIGdsb2JhbCBkaXJlY3RvcnkKLSAg
ICAgICAgICAgLSBiaWFzaW5nIGRpcmVjdG9yeQotICAgCi0gICBPbmx5IHRoZSB0eXBlcyBhdCB0
aGUgbGVhdmVzIGFyZSBpbnN0YW50aWFibGUuIFRoZSBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5k
IGVudW0gaXMgZm9yCi0gICBkZXNjcmliaW5nIHRoZSBpbnN0YW50aWFibGUgbGVhdmVzLiAqLwot
Ci1lbnVtIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQgewotICAgIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9raW5kLAotICAgIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZAot
fTsKLQotdHlwZWRlZiBlbnVtIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQgcGFzX2JpdGZpdF9k
aXJlY3Rvcnlfa2luZDsKLQotc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9raW5kX2dldF9zdHJpbmcocGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZCBraW5kKQot
ewotICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiAiYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkiOwotICAg
IGNhc2UgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kOgotICAgICAgICByZXR1cm4g
ImJpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSI7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICByZXR1cm4gTlVMTDsKLX0KLQotUEFTX0VORF9FWFRF
Uk5fQzsKLQotI2VuZGlmIC8qIFBBU19CSVRGSVRfRElSRUNUT1JZX0tJTkRfSCAqLwotCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw0MDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAy
MC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNp
ZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
LmgiCi0KLSNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2UuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0
X3ZpZXdfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCIK
LSNpbmNsdWRlICJwYXNfZnJlZV9ncmFudWxlcy5oIgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJp
bmdfcG9vbC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXAuaCIKLSNpbmNsdWRlICJw
YXNfc3RyZWFtLmgiCi0jaW5jbHVkZSAicGFzX3N1YnBhZ2VfbWFwLmgiCi0KLWJvb2wgcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X2Nhbl9leHBsb2RlID0gdHJ1ZTsKLWJvb2wgcGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5X2ZvcmNlX2V4cGxvZGUgPSBmYWxzZTsKLQotdm9pZCBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnlfY29uc3RydWN0KHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwKQotewotICAgIHBh
c19iaXRmaXRfZGlyZWN0b3J5X2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5iYXNlLCBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3Rvcnlfa2luZCwgY29uZmlnKTsKLSAgICBkaXJlY3RvcnktPmhlYXAgPSBo
ZWFwOwotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9y
c19jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+Yml0dmVjdG9ycyk7Ci0gICAgcGFzX2NvbXBhY3RfYXRv
bWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9zdG9yZSgmZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdf
cG9vbCwgTlVMTCk7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkX2Nv
bnN0cnVjdCgmZGlyZWN0b3J5LT5waHlzaWNhbF9zaGFyaW5nX3BheWxvYWQpOwotICAgIGRpcmVj
dG9yeS0+Y29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24gPQotICAgICAgICBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnlfY2FuX2V4cGxvZGUgJiBwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfZm9yY2VfZXhwbG9kZTsKLQotICAgIC8qIFdlIGNvdWxkIGhhdmUgYmVlbiBsYXp5IGFi
b3V0IHRoaXMgLSBidXQgaXQncyBwcm9iYWJseSBub3Qgc3VwZXIgbmVjZXNzYXJ5IHNpbmNlIHRo
ZSBwb2ludAotICAgICAgIG9mIGJpdGZpdCBnbG9iYWwgZGlyZWN0b3JpZXMgaXMgdGhhdCB0aGVy
ZSB3b24ndCBiZSB0b28gbWFueSBvZiB0aGVtLiAqLwotICAgIGlmIChwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKGRpcmVjdG9yeSkpIHsKLSAgICAgICAgcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX2FkZCgKLSAgICAgICAgICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5n
X3Bvb2wsCi0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgK
LSAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
Yml0Zml0X2RpcmVjdG9yeSkpOwotICAgIH0KLX0KLQotYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnlfZG9lc19zaGFyaW5nKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0
b3J5KQotewotICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX21vZGVfZG9lc19zaGFyaW5nKAot
ICAgICAgICBkaXJlY3RvcnktPmhlYXAtPnJ1bnRpbWVfY29uZmlnLT5zaGFyaW5nX21vZGUpOwot
fQotICAgIAotdWludDY0X3QgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF91c2VfZXBv
Y2gocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgdWludHB0
cl90IGxhc3RfZW1wdHlfcGx1c19vbmU7Ci0gICAgc2l6ZV90IGluZGV4OwotICAgIHBhc19iaXRm
aXRfcGFnZV9jb25maWcgY29uZmlnOwotCi0gICAgbGFzdF9lbXB0eV9wbHVzX29uZSA9IGRpcmVj
dG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZS52YWx1ZTsKLSAgICBjb25maWcgPSAqcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLmNvbmZpZ19raW5k
KTsKLQotICAgIGZvciAoaW5kZXggPSBsYXN0X2VtcHR5X3BsdXNfb25lOyBpbmRleC0tOykgewot
ICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7Ci0gICAgICAgIHVpbnQ2NF90IGVwb2NoOwot
Ci0gICAgICAgIC8qIFByb3RlY3QgYWdhaW5zdCB1bnNldCBlcG9jaHMuICovCi0gICAgICAgIGlm
ICghcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoZGly
ZWN0b3J5LCBpbmRleCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICB2aWV3ID0g
cGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoJmRpcmVjdG9yeS0+YmFzZSwgaW5kZXgpOwot
ICAgICAgICBpZiAoIXZpZXcpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBwYXNf
bG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgIGVwb2NoID0gMDsKLSAg
ICAgICAgaWYgKHZpZXctPmlzX293bmVkKSB7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2Uq
IHBhZ2U7Ci0gICAgICAgICAgICBwYWdlID0gcGFzX2JpdGZpdF9wYWdlX2Zvcl9ib3VuZGFyeSh2
aWV3LT5wYWdlX2JvdW5kYXJ5LCBjb25maWcpOwotICAgICAgICAgICAgaWYgKCFwYWdlLT5udW1f
bGl2ZV9iaXRzKSB7Ci0gICAgICAgICAgICAgICAgZXBvY2ggPSBwYWdlLT51c2VfZXBvY2g7Ci0g
ICAgICAgICAgICAgICAgUEFTX0FTU0VSVChlcG9jaCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0KLSAg
ICAgICAgaWYgKGVwb2NoKQotICAgICAgICAgICAgcmV0dXJuIGVwb2NoOwotICAgIH0KLQotICAg
IHJldHVybiAwOwotfQotCi1ib29sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9nZXRfZW1w
dHlfYml0X2F0X2luZGV4KAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAotICAgIHNpemVfdCBpbmRleCkKLXsKLSAgICByZXR1cm4gcGFzX2JpdHZlY3Rvcl9nZXRf
ZnJvbV93b3JkKAotICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2VnbWVudGVk
X2JpdHZlY3RvcnNfZ2V0X3B0cl9jaGVja2VkKAotICAgICAgICAgICAgJmRpcmVjdG9yeS0+Yml0
dmVjdG9ycywgUEFTX0JJVFZFQ1RPUl9XT1JEX0lOREVYKGluZGV4KSktPmVtcHR5X2JpdHMsCi0g
ICAgICAgIGluZGV4KTsKLX0KLQotLyogUmV0dXJucyB3aGV0aGVyIHdlIGNoYW5nZWQgdGhlIHZh
bHVlLiAqLwotYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2V0X2VtcHR5X2JpdF9h
dF9pbmRleCgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAg
ICBzaXplX3QgaW5kZXgsCi0gICAgYm9vbCB2YWx1ZSkKLXsKLSAgICByZXR1cm4gcGFzX2JpdHZl
Y3Rvcl9zZXRfYXRvbWljX2luX3dvcmQoCi0gICAgICAgICZwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfZ2V0X3B0cl9jaGVja2VkKAotICAgICAgICAgICAg
JmRpcmVjdG9yeS0+Yml0dmVjdG9ycywgUEFTX0JJVFZFQ1RPUl9XT1JEX0lOREVYKGluZGV4KSkt
PmVtcHR5X2JpdHMsCi0gICAgICAgIGluZGV4LAotICAgICAgICB2YWx1ZSk7Ci19Ci0KLXZvaWQg
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRl
eCgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXpl
X3QgaW5kZXgpCi17Ci0gICAgaWYgKCFwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2V0X2Vt
cHR5X2JpdF9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4LCB0cnVlKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgLyogSWYgd2UgYWxyZWFkeSBrbmV3IGFib3V0IGVtcHRpZXMsIHRoZW4gd2UgaGF2
ZSBub3RoaW5nIG1vcmUgdG8gZG8uICovCi0gICAgaWYgKHBhc192ZXJzaW9uZWRfZmllbGRfbWF4
aW1pemUoJmRpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZSwgaW5kZXggKyAxKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKCFwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZG9lc19z
aGFyaW5nKGRpcmVjdG9yeSkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YSgKLSAgICAgICAgJnBhc19waHlzaWNhbF9wYWdl
X3NoYXJpbmdfcG9vbCwKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVh
dGUoCi0gICAgICAgICAgICBkaXJlY3RvcnksIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
Yml0Zml0X2RpcmVjdG9yeSkpOwotfQotCi12b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eV92aWV3X2RpZF9iZWNvbWVfZW1wdHkoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCi0gICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3KQotewotICAgIFBBU19URVNU
SU5HX0FTU0VSVCgKLSAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmdsb2JhbF9kaXJlY3RvcnkpCi0gICAgICAgID09IGRp
cmVjdG9yeSk7Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29t
ZV9lbXB0eV9hdF9pbmRleCgKLSAgICAgICAgZGlyZWN0b3J5LCB2aWV3LT5pbmRleF9pbl9nbG9i
YWwpOwotfQotCi1wYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkqIGdsb2JhbF9kaXJlY3RvcnksCi0gICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xv
ZyogZGVjb21taXRfbG9nLAotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9t
b2RlKQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKLSAg
ICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgIHBhc192ZXJzaW9uZWRfZmll
bGQgbGFzdF9lbXB0eV9wbHVzX29uZV92YWx1ZTsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7Ci0gICAgc2l6ZV90IG51bV9ncmFudWxl
czsKLSAgICBib29sIHVzZXNfc3VicGFnZXM7Ci0KLSAgICBkaXJlY3RvcnkgPSAmZ2xvYmFsX2Rp
cmVjdG9yeS0+YmFzZTsKLQotICAgIGxhc3RfZW1wdHlfcGx1c19vbmVfdmFsdWUgPSBwYXNfdmVy
c2lvbmVkX2ZpZWxkX3JlYWQoJmdsb2JhbF9kaXJlY3RvcnktPmxhc3RfZW1wdHlfcGx1c19vbmUp
OwotCi0gICAgcGFnZV9jb25maWcgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2Nv
bmZpZyhkaXJlY3RvcnktPmNvbmZpZ19raW5kKTsKLSAgICBudW1fZ3JhbnVsZXMgPSBwYWdlX2Nv
bmZpZy0+YmFzZS5wYWdlX3NpemUgLyBwYWdlX2NvbmZpZy0+YmFzZS5ncmFudWxlX3NpemU7Ci0g
ICAgdXNlc19zdWJwYWdlcyA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXNlc19zdWJwYWdlcygq
cGFnZV9jb25maWcpOwotCi0gICAgZm9yIChpbmRleCA9IGxhc3RfZW1wdHlfcGx1c19vbmVfdmFs
dWUudmFsdWU7IGluZGV4LS07KSB7Ci0gICAgICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKLSAg
ICAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlOwotICAgICAgICB1aW50cHRyX3QgYmFzZTsKLSAg
ICAgICAgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBzdWJwYWdlX2VudHJ5OwotICAgICAgICBwYXNf
bG9jayogY29tbWl0X2xvY2s7Ci0gICAgICAgIGJvb2wgcGFnZV9pc19kZWFkOwotICAgICAgICBw
YXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXggZGlyZWN0b3J5X2FuZF9pbmRleDsKLSAgICAg
ICAgcGFzX2JpdGZpdF9tYXhfZnJlZSBtYXhfZnJlZTsKLSAgICAgICAgCi0gICAgICAgIGlmICgh
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgoZ2xvYmFs
X2RpcmVjdG9yeSwgaW5kZXgsIGZhbHNlKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAg
ICAgIHZpZXcgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4
KTsKLQotICAgICAgICBQQVNfQVNTRVJUKHZpZXcpOwotICAgICAgICBQQVNfQVNTRVJUKHZpZXct
PnBhZ2VfYm91bmRhcnkpOyAvKiBZb3UgZG9uJ3QgYmVjb21lIGVtcHR5IHVudGlsIHlvdSBoYXZl
IGEgcGFnZSBhbmQgdGhlbgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB5b3UgbmV2ZXIgbG9zZSB0aGUgcGFnZS4gKi8KLQotICAgICAgICBpZiAodXNlc19zdWJw
YWdlcykgewotICAgICAgICAgICAgc3VicGFnZV9lbnRyeSA9IHBhc19zdWJwYWdlX21hcF9nZXQo
Ci0gICAgICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWctPmJhc2Uu
cGFnZV9zaXplLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgICAgIGNvbW1pdF9sb2Nr
ID0gJnN1YnBhZ2VfZW50cnktPmNvbW1pdF9sb2NrOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgc3VicGFnZV9lbnRyeSA9IE5VTEw7Ci0gICAgICAgICAgICBjb21taXRfbG9jayA9ICZ2
aWV3LT5jb21taXRfbG9jazsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJib3NlKQotICAg
ICAgICAgICAgcGFzX2xvZygiR3JhYmJpbmcgY29tbWl0IGxvY2sgJXBcbiIsIGNvbW1pdF9sb2Nr
KTsKLSAgICAgICAgaWYgKCFwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX2xvY2tfZm9yX2FkZGlu
ZygKLSAgICAgICAgICAgICAgICBkZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrLCBoZWFwX2xvY2tf
aG9sZF9tb2RlKSkgewotICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3Zp
ZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleChnbG9iYWxfZGlyZWN0b3J5LCBpbmRleCk7Ci0g
ICAgICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbG9ja3NfdW5hdmFp
bGFibGU7Ci0gICAgICAgIH0KLQotICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNo
aXBfbG9jayk7Ci0KLSAgICAgICAgaWYgKCF2aWV3LT5pc19vd25lZCkgewotICAgICAgICAgICAg
cGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICBwYXNf
ZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVkX2FkZChkZWNvbW1pdF9s
b2csIGNvbW1pdF9sb2NrKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAg
ICAgICAgYmFzZSA9ICh1aW50cHRyX3Qpdmlldy0+cGFnZV9ib3VuZGFyeTsKLSAgICAgICAgUEFT
X0FTU0VSVChiYXNlKTsKLSAgICAgICAgcGFnZSA9IHBhc19iaXRmaXRfcGFnZV9mb3JfYm91bmRh
cnkoKHZvaWQqKWJhc2UsICpwYWdlX2NvbmZpZyk7Ci0gICAgICAgIFBBU19BU1NFUlQocGFnZSk7
Ci0KLSAgICAgICAgcGFnZV9pc19kZWFkID0gIXBhZ2UtPm51bV9saXZlX2JpdHM7Ci0KLSAgICAg
ICAgZGlyZWN0b3J5X2FuZF9pbmRleCA9IHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9y
eV9hbmRfaW5kZXgodmlldyk7Ci0gICAgICAgIG1heF9mcmVlID0gcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfZ2V0X21heF9mcmVlKGRpcmVjdG9yeV9hbmRfaW5kZXguZGlyZWN0b3J5LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnlfYW5k
X2luZGV4LmluZGV4KTsKLSAgICAgICAgaWYgKHBhZ2VfaXNfZGVhZCkgewotICAgICAgICAgICAg
LyogSWYgYSBwYWdlJ3MgbnVtX2xpdmVfYml0cyBkcm9wcyB0byB6ZXJvIHRoZW4gd2Ugd2lsbCBt
YXJrIGl0IGVtcHR5IGluIHRoZSBkaXJlY3RvcnkgdGhhdAotICAgICAgICAgICAgICAgb3ducyBp
dCB3aGlsZSBob2xkaW5nIHRoZSBsb2NrLiBOZXdseSBjcmVhdGVkIHBhZ2VzIHN0YXJ0IG91dCBl
bXB0eS4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgICAgVGhlIGZhY3QgdGhhdCBkZWFkIHBh
Z2VzIGFyZSBlbXB0eSBpbiBiaWFzaW5nIGRpcmVjdG9yaWVzIGhhcyBhbiBpbnRlcmVzdGluZyBj
b25zZXF1ZW5jZS4KLSAgICAgICAgICAgICAgIEl0IG1lYW5zIHRoYXQgd2hlbiB3ZSBkZWNvbW1p
dCBpdCB0aGVuIHRoZSBiaWFzaW5nIGRpcmVjdG9yeSB3aWxsIHNraXAgdGhpcyBwYWdlLiBXZSBh
bHNvCi0gICAgICAgICAgICAgICB1bmJpYXMgaXQgc28gdGhhdCBpZiB3ZSBkbyBjb21lIGJhY2sg
dG8gaXQsIHdlJ2xsIGdldCBhIGZyZXNoIHBhZ2UgZnJvbSB0aGUgZ2xvYmFsCi0gICAgICAgICAg
ICAgICBkaXJlY3RvcnkgcmF0aGVyIHRoYW4gdHJ5aW5nIHRvIGNvbW1pdCB0aGlzIG9uZS4gICov
Ci0gICAgICAgICAgICBpZiAobWF4X2ZyZWUgIT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSkg
ewotICAgICAgICAgICAgICAgIHBhc19sb2coIiVwOiV1OiBmb3VuZCBub24tZW1wdHkgcGFnZSB0
aGF0IGlzIGRlYWQgd2hlbiB0YWtpbmcgbGFzdCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgICAg
IFBBU19BU1NFUlQobWF4X2ZyZWUgPT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSk7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmIChkaXJlY3RvcnlfYW5kX2luZGV4LmtpbmQgPT0g
cGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKSB7Ci0gICAgICAgICAgICAgICAgdmll
dy0+aW5kZXhfaW5fYmlhc2luZyA9IDA7Ci0gICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJl
Y3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0eSgKLSAgICAgICAgICAgICAgICAgICAgZGly
ZWN0b3J5LCBpbmRleCwgImJlY29tZSBlbXB0eSBpbiBnbG9iYWwgb24gdW5iaWFzIGR1cmluZyBw
YWdlIHRha2UiKTsKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5X3B0cl9zdG9yZSgmdmlldy0+Ymlhc2luZ19kaXJlY3RvcnksIE5VTEwp
OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdl
IGRvbid0IGNsZWFyIHRoZSB2aWV3IG91dCBvZiB0aGUgZGlyZWN0b3J5IHVudGlsIHdlJ3JlIGRv
bmUgdGVsbGluZwotICAgICAgICAgICAgICAgICAgIHRoZSB2aWV3IHRoYXQgaXQncyBub3QgYmlh
c2VkLiAqLwotICAgICAgICAgICAgICAgIHBhc19mZW5jZSgpOwotICAgICAgICAgICAgICAgIHBh
c19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfc3RvcmUoCi0gICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3X3B0cihkaXJlY3RvcnlfYW5kX2luZGV4
LmRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpcmVjdG9yeV9hbmRfaW5kZXguaW5kZXgpLAotICAgICAgICAgICAgICAgICAg
ICBOVUxMKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8q
IElmIGEgcGFnZSdzIG51bV9saXZlX2JpdHMgZ29lcyBhYm92ZSB6ZXJvIHRoZW4gd2UgbWFyayBp
dCB1bnByb2Nlc3NlZCB3aGlsZSBob2xkaW5nIHRoZQotICAgICAgICAgICAgICAgbG9jay4gKi8K
LSAgICAgICAgICAgIGlmIChtYXhfZnJlZSA9PSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZKSB7
Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6JXU6IGZvdW5kIGVtcHR5IHBhZ2UgdGhhdCBp
cyBub3QgZGVhZCB3aGVuIHRha2luZyBsYXN0IGVtcHR5LlxuIik7Ci0gICAgICAgICAgICAgICAg
UEFTX0FTU0VSVChtYXhfZnJlZSAhPSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKG51bV9ncmFudWxlcyA+
IDEpIHsKLSAgICAgICAgICAgIHBhc19mcmVlX2dyYW51bGVzIGZyZWVfZ3JhbnVsZXM7Ci0gICAg
ICAgICAgICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50czsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgUEFTX0FTU0VSVCghdXNlc19zdWJwYWdlcyk7IC8qIFdlIHNob3Vs
ZCBuZXZlciBzZXQgdXAgc3VicGFnZXMgZm9yIGEgcGFnZSB3aXRoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JhbnVsZXMuIFdlIGNvdWxkIGNoYW5nZSB0aGF0
IChieSBhZGRpbmcgYSBiaXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtb3JlIGxvZ2ljKSBidXQgZm9yIG5vdyBpdCBtYWtlcyBubyBzZW5zZS4gSXQgd291bGQK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5IG1ha2Ugc2Vu
c2UgaWYgd2UgaGFkIHRvIGRlYWwgd2l0aCBhIGR5bmFtaWMKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW0gcGFnZSBzaXplIGFuZCB3ZSBkaWRuJ3Qgd2Fu
dCB0byBhY2hpZXZlIHRoYXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBieSBzaGlwcGluZyBtdWx0aXBsZSBjb25maWdzLiAqLwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJEZWNvbW1pdHRp
bmcgZ3JhbnVsZXMgZm9yIHBhZ2UgJXBcbiIsIHBhZ2UpOwotICAgICAgICAgICAgdXNlX2NvdW50
cyA9IHBhc19iaXRmaXRfcGFnZV9nZXRfZ3JhbnVsZV91c2VfY291bnRzKHBhZ2UsICpwYWdlX2Nv
bmZpZyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19mcmVlX2dyYW51bGVzX2NvbXB1
dGVfYW5kX21hcmtfZGVjb21taXR0ZWQoCi0gICAgICAgICAgICAgICAgJmZyZWVfZ3JhbnVsZXMs
IHVzZV9jb3VudHMsIG51bV9ncmFudWxlcyk7Ci0KLSAgICAgICAgICAgIGlmIChwYWdlX2lzX2Rl
YWQgIT0gKChmcmVlX2dyYW51bGVzLm51bV9hbHJlYWR5X2RlY29tbWl0dGVkX2dyYW51bGVzICsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlX2dyYW51bGVzLm51bV9mcmVl
X2dyYW51bGVzKSA9PSBudW1fZ3JhbnVsZXMpKSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygi
cGFnZV9pc19kZWFkID0gJWRcbiIsIHBhZ2VfaXNfZGVhZCk7Ci0gICAgICAgICAgICAgICAgcGFz
X2xvZygiZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxlcyA9ICV6dVxuIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGZyZWVfZ3JhbnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMpOwotICAgICAg
ICAgICAgICAgIHBhc19sb2coImZyZWVfZ3JhbnVsZXMubnVtX2FscmVhZHlfZGVjb21taXR0ZWRf
Z3JhbnVsZXMgPSAlenVcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBmcmVlX2dyYW51bGVz
Lm51bV9hbHJlYWR5X2RlY29tbWl0dGVkX2dyYW51bGVzKTsKLSAgICAgICAgICAgICAgICBQQVNf
QVNTRVJUKCEicGFnZV9pc19kZWFkIGRvZXMgbm90IG1hdGNoIGZyZWVfZ3JhbnVsZXMiKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgUEFTX0FTU0VSVChmcmVlX2dy
YW51bGVzLm51bV9mcmVlX2dyYW51bGVzIDw9IG51bV9ncmFudWxlcyk7Ci0KLSAgICAgICAgICAg
IGlmICghZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxlcykgewotICAgICAgICAgICAgICAg
IHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICAgICAgICAg
IHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfdW5sb2NrX2FmdGVyX2Fib3J0ZWRfYWRkKGRlY29t
bWl0X2xvZywgY29tbWl0X2xvY2spOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAocGFnZV9pc19kZWFkKQotICAg
ICAgICAgICAgICAgIHZpZXctPmlzX293bmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIC8qIFdlIGhhdmUgdG8gcmVsZWFzZSB0aGUgb3duZXJzaGlwIGxvY2sgdG8gZGVjb21t
aXQgYmVjYXVzZSBkZWNvbW1pdCB3YW50cyB0aGUgaGVhcAotICAgICAgICAgICAgICAgbG9jay4g
VGhhdCdzIHNhZmUgc2luY2Ugd2UndmUgYWxyZWFkeSBtYXJrZWQgdGhlIHN0dWZmIGRlY29tbWl0
dGVkLiBUaGF0IG1lYW5zCi0gICAgICAgICAgICAgICB0aGF0IGFueSBhdHRlbXB0IHRvIHVzZSB0
aG9zZSBncmFudWxlcyB3aWxsIGhhdmUgdG8gZ3JhYiB0aGUgY29tbWl0IGxvY2ssIHdoaWNoCi0g
ICAgICAgICAgICAgICB3ZSBob2xkLiAqLwotICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2
aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIkRvaW5nIGZyZWUgZ3JhbnVsZSBkZWNvbW1p
dCB3aXRoIGxvY2sgJXBcbiIsIGNvbW1pdF9sb2NrKTsKLSAgICAgICAgICAgIHBhc19mcmVlX2dy
YW51bGVzX2RlY29tbWl0X2FmdGVyX2xvY2tpbmdfcmFuZ2UoCi0gICAgICAgICAgICAgICAgJmZy
ZWVfZ3JhbnVsZXMsICZwYWdlLT5iYXNlLCBkZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrLCAmcGFn
ZV9jb25maWctPmJhc2UsCi0gICAgICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBh
c19sb2coIkRvbmUsIHN1Y2Nlc3MhXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgaWYgKCFwYWdlX2lzX2RlYWQpIHsKLSAgICAgICAgICAgICAgICBwYXNf
bG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgICAgICBwYXNf
ZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVkX2FkZChkZWNvbW1pdF9s
b2csIGNvbW1pdF9sb2NrKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgLyogV2UgZG8gdGhpcyB3aGlsZSBob2xkaW5nIGJvdGggbG9ja3Mu
IFdoZW4gd2UgcmVsZWFzZSB0aGUgb3duZXJzaGlwIGxvY2ssIHRoZW4gaWYgc29tZW9uZQotICAg
ICAgICAgICAgICAgZWxzZSBnZXRzIGl0LCB0aGV5IHdpbGwgaW1tZWRpYXRlbHkgcmVsZWFzZSBp
dCB0byB0cnkgdG8gY29tcGV0ZSBmb3IgdGhlIGNvbW1pdCBsb2NrLAotICAgICAgICAgICAgICAg
d2hpY2ggd2UgaG9sZC4gKi8KLSAgICAgICAgICAgIHZpZXctPmlzX293bmVkID0gZmFsc2U7Ci0K
LSAgICAgICAgICAgIC8qIEFuZCB3ZSBoYXZlIHRvIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2Nr
IGJlY2F1c2UgZGVjb21taXR0aW5nIG1heSBuZWVkIHRvIGhvbGQgdGhlIGhlYXAKLSAgICAgICAg
ICAgICAgIGxvY2ssIGFuZCB0aGUgaGVhcCBsb2NrIGlzIG91dGVyIHRvIHRoZSBvd25lcnNoaXAg
bG9jay4gKi8KLSAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xv
Y2spOwotCi0gICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9n
KCJEZWNvbWl0dGluZyBwYWdlICVwXG4iLCBwYWdlKTsKLQotICAgICAgICAgICAgaWYgKHVzZXNf
c3VicGFnZXMpIHsKLSAgICAgICAgICAgICAgICBwYXNfc3VicGFnZV9tYXBfZW50cnlfZGVjb21t
aXQoCi0gICAgICAgICAgICAgICAgICAgIHN1YnBhZ2VfZW50cnksCi0gICAgICAgICAgICAgICAg
ICAgICh2b2lkKiliYXNlLAotICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy0+YmFzZS5w
YWdlX3NpemUsCi0gICAgICAgICAgICAgICAgICAgIGRlY29tbWl0X2xvZywKLSAgICAgICAgICAg
ICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfYWRkX2FscmVhZHlfbG9ja2Vk
KAotICAgICAgICAgICAgICAgICAgICBkZWNvbW1pdF9sb2csCi0gICAgICAgICAgICAgICAgICAg
IHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZShiYXNlLCBiYXNlICsgcGFnZV9jb25maWctPmJhc2Uu
cGFnZV9zaXplLCBjb21taXRfbG9jayksCi0gICAgICAgICAgICAgICAgICAgIGhlYXBfbG9ja19o
b2xkX21vZGUpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBw
YXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgmZ2xvYmFsX2RpcmVjdG9yeS0+bGFzdF9lbXB0
eV9wbHVzX29uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9l
bXB0eV9wbHVzX29uZV92YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW5kZXgpOwotICAgICAgICAKLSAgICAgICAgaWYgKHBhZ2VfaXNfZGVhZCkKLSAgICAgICAg
ICAgIHBhZ2VfY29uZmlnLT5iYXNlLmRlc3Ryb3lfcGFnZV9oZWFkZXIoJnBhZ2UtPmJhc2UsIGhl
YXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgICAgIFBBU19BU1NFUlQocGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhnbG9iYWxfZGlyZWN0b3J5KSk7Ci0gICAgICAgIAot
ICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YSgKLSAgICAgICAg
ICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCi0gICAgICAgICAgICBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKLSAgICAgICAgICAgICAgICBnbG9iYWxfZGly
ZWN0b3J5LCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3RvcnkpKTsK
LSAgICAgICAgCi0gICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNj
ZXNzOwotICAgIH0KLQotICAgIHBhc192ZXJzaW9uZWRfZmllbGRfdHJ5X3dyaXRlKCZnbG9iYWxf
ZGlyZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxhc3RfZW1wdHlfcGx1c19vbmVfdmFsdWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCk7Ci0gICAgCi0gICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF90YWtlX25vbmVfYXZhaWxhYmxlOwotfQotCi12b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeV9kdW1wX3JlZmVyZW5jZSgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKQotewotICAgIHBhc19zdHJlYW1fcHJpbnRmKAot
ICAgICAgICBzdHJlYW0sICIlcChiaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSwgJXMpIiwKLSAgICAg
ICAgZGlyZWN0b3J5LCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhkaXJl
Y3RvcnktPmJhc2UuY29uZmlnX2tpbmQpKTsKLX0KLQotdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0ocGFzX3N0cmVhbSogc3RyZWFtLCB2b2lkKiBkaXJl
Y3RvcnkpCi17Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNl
KGRpcmVjdG9yeSwgc3RyZWFtKTsKLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykg
MjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0JJVEZJVF9HTE9CQUxf
RElSRUNUT1JZX0gKLSNkZWZpbmUgUEFTX0JJVEZJVF9HTE9CQUxfRElSRUNUT1JZX0gKLQotI2lu
Y2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRv
bWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oIgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnQuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9i
aXR2ZWN0b3Jfc2VnbWVudDsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwotdHlwZWRlZiBz
dHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9iaXR2ZWN0
b3Jfc2VnbWVudCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQ7
Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdyZWdhdGVkX2hlYXA7
Ci0KLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQg
ewotICAgIHVuc2lnbmVkIGVtcHR5X2JpdHM7Ci19OwotCi0jZGVmaW5lIFBBU19CSVRGSVRfR0xP
QkFMX0RJUkVDVE9SWV9CSVRWRUNUT1JfU0VHTUVOVF9JTklUSUFMSVpFUiBcCi0gICAgKChwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQpeyBcCi0gICAgICAgICAu
ZW1wdHlfYml0cyA9IDAsIFwKLSAgICAgfSkKLQotUEFTX0RFQ0xBUkVfU0VHTUVOVEVEX1ZFQ1RP
UihwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9iaXR2
ZWN0b3Jfc2VnbWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCk7Ci0KLXN0cnVj
dCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeSB7Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkgYmFzZTsKLSAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwOwotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9z
ZWdtZW50ZWRfYml0dmVjdG9ycyBiaXR2ZWN0b3JzOwotICAgIHBhc192ZXJzaW9uZWRfZmllbGQg
bGFzdF9lbXB0eV9wbHVzX29uZTsgLyogWmVybyBtZWFucyB0aGVyZSBhcmVuJ3QgYW55LiAqLwot
ICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9hZCBwaHlzaWNhbF9zaGFyaW5n
X3BheWxvYWQ7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ciBi
aWFzX3NoYXJpbmdfcG9vbDsKLSAgICBib29sIGNvbnRlbnRpb25fZGlkX3RyaWdnZXJfZXhwbG9z
aW9uOwotfTsKLQotZXh0ZXJuIFBBU19BUEkgYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnlfY2FuX2V4cGxvZGU7Ci1leHRlcm4gUEFTX0FQSSBib29sIHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9mb3JjZV9leHBsb2RlOwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5X2NvbnN0cnVjdChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIHNlZ3JlZ2F0ZWRf
aGVhcCk7Ci0KLVBBU19BUEkgYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZG9lc19z
aGFyaW5nKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQ
SSB1aW50NjRfdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaChwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgYm9vbCBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleCgKLSAgICBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgpOwot
Ci0vKiBSZXR1cm5zIHdoZXRoZXIgd2UgY2hhbmdlZCB0aGUgdmFsdWUuICovCi1QQVNfQVBJIGJv
b2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgoCi0g
ICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGlu
ZGV4LAotICAgIGJvb2wgdmFsdWUpOwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKLSAgICBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgpOwotUEFTX0FQ
SSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHko
Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX2Jp
dGZpdF92aWV3KiB2aWV3KTsKLQotUEFTX0FQSSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9y
ZXN1bHQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgKLSAgICBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfZGVmZXJyZWRf
ZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2csCi0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBf
bG9ja19ob2xkX21vZGUpOwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X2R1bXBfcmVmZXJlbmNlKAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGly
ZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0pOwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtKHBhc19zdHJlYW0qIHN0cmVhbSwgdm9p
ZCogZGlyZWN0b3J5KTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19CSVRG
SVRfR0xPQkFMX0RJUkVDVE9SWV9IICovCi0KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3MuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jCShub25leGlzdGVudCkKQEAgLTEs
MTY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQot
I2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCIKLQotI2luY2x1ZGUgInBh
c19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5o
IgotI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfaW1tb3J0YWxfaGVh
cC5oIgotI2luY2x1ZGUgInBhc19tYWdhemluZS5oIgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnQuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKLQot
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
c19jcmVhdGUoCi0gICAgdW5zaWduZWQgc2l6ZSwKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xh
c3NfcHRyKiBpbnNlcnRpb25fcG9pbnQpCi17Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzcyogcmVzdWx0OwotCi0gICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVf
d2l0aF9hbGlnbm1lbnQoCi0gICAgICAgIHNpemVvZihwYXNfYml0Zml0X2dsb2JhbF9zaXplX2Ns
YXNzKSwKLSAgICAgICAgYWxpZ25vZihwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKSwKLSAg
ICAgICAgInBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MiLAotICAgICAgICBwYXNfb2JqZWN0
X2FsbG9jYXRpb24pOwotCi0gICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzX2NvbnN0cnVjdCgmcmVz
dWx0LT5iYXNlLCBzaXplLCAmZGlyZWN0b3J5LT5iYXNlLCBpbnNlcnRpb25fcG9pbnQpOwotICAg
IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfYmlhc2luZ192ZWN0b3JfY29uc3RydWN0KCZy
ZXN1bHQtPmJpYXNpbmdfdmVjdG9yKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXBhc19i
aXRmaXRfc2l6ZV9jbGFzcyoKLXBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Nfc2VsZWN0X2Zv
cl9tYWdhemluZShwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBnbG9iYWxfc2l6ZV9jbGFz
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
bWFnYXppbmUqIG1hZ2F6aW5lKQotewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rv
cnk7Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9iYWxfZGlyZWN0b3J5Owot
ICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQ7Ci0gICAgcGFzX2Jp
dGZpdF9zaXplX2NsYXNzKiByZXN1bHQ7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwb29s
OwotICAgIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5Owot
ICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIqIHNpemVfY2xhc3Nf
cHRyOwotICAgIHVuc2lnbmVkIG1hZ2F6aW5lX2luZGV4OwotCi0gICAgZGlyZWN0b3J5ID0gcGFz
X2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZCgmZ2xvYmFsX3NpemVfY2xhc3MtPmJh
c2UuZGlyZWN0b3J5KTsKLSAgICBnbG9iYWxfZGlyZWN0b3J5ID0gKHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeSopZGlyZWN0b3J5OwotICAgIAotICAgIGlmICghZ2xvYmFsX2RpcmVjdG9yeS0+
Y29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24gfHwgIW1hZ2F6aW5lKQotICAgICAgICBy
ZXR1cm4gJmdsb2JhbF9zaXplX2NsYXNzLT5iYXNlOwotICAgIAotICAgIFBBU19BU1NFUlQocGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2Nhbl9leHBsb2RlKTsKLSAgICBtYWdhemluZV9pbmRl
eCA9IG1hZ2F6aW5lLT5tYWdhemluZV9pbmRleDsKLQotICAgIGlmIChtYWdhemluZV9pbmRleCA8
IGdsb2JhbF9zaXplX2NsYXNzLT5iaWFzaW5nX3ZlY3Rvci5zaXplKSB7Ci0gICAgICAgIHJlc3Vs
dCA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfbG9hZCgKLSAgICAg
ICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfYmlhc2luZ192ZWN0b3JfZ2V0X3B0
cigKLSAgICAgICAgICAgICAgICAmZ2xvYmFsX3NpemVfY2xhc3MtPmJpYXNpbmdfdmVjdG9yLCBt
YWdhemluZV9pbmRleCkpOwotICAgICAgICBpZiAocmVzdWx0KQotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICB9Ci0KLSAgICBwb29sID0gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hh
cmluZ19wb29sX3B0cl9sb2FkKCZnbG9iYWxfZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdfcG9vbCk7
Ci0gICAgaWYgKCFwb29sKSB7Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotCi0gICAg
ICAgIHBvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQo
Jmdsb2JhbF9kaXJlY3RvcnktPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICAgICAgaWYgKCFwb29s
KSB7Ci0gICAgICAgICAgICBwb29sID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9h
bGlnbm1lbnQoCi0gICAgICAgICAgICAgICAgc2l6ZW9mKHBhc19wYWdlX3NoYXJpbmdfcG9vbCks
Ci0gICAgICAgICAgICAgICAgYWxpZ25vZihwYXNfcGFnZV9zaGFyaW5nX3Bvb2wpLAotICAgICAg
ICAgICAgICAgICJwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzL2JpYXNfc2hhcmluZ19wb29s
IiwKLSAgICAgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotICAgICAgICAgICAg
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX2NvbnN0cnVjdChwb29sKTsKLSAgICAgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfc3RvcmUoCi0gICAgICAgICAgICAg
ICAgJmdsb2JhbF9kaXJlY3RvcnktPmJpYXNfc2hhcmluZ19wb29sLCBwb29sKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7Ci0KLSAgICAgICAgUEFTX0FTU0VS
VCgKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJf
bG9hZCgmZ2xvYmFsX2RpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wpCi0gICAgICAgICAgICA9
PSBwb29sKTsKLSAgICB9Ci0KLSAgICBQQVNfQVNTRVJUKHBvb2wpOwotCi0gICAgcGFydGljaXBh
bnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZ2V0X3BhcnRpY2lwYW50KHBvb2wsIG1hZ2F6aW5l
X2luZGV4KTsKLSAgICBpZiAoIXBhcnRpY2lwYW50KSB7Ci0gICAgICAgIGJpYXNpbmdfZGlyZWN0
b3J5ID0gTlVMTDsKLSAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0gICAgICAgIHBhcnRp
Y2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChwb29sLCBtYWdh
emluZV9pbmRleCk7Ci0gICAgICAgIGlmICghcGFydGljaXBhbnQpIHsKLSAgICAgICAgICAgIGJp
YXNpbmdfZGlyZWN0b3J5ID0gcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9jcmVhdGUoCi0g
ICAgICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSwgbWFnYXppbmVfaW5kZXgpOwotICAgICAg
ICB9Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7Ci0KLSAgICAgICAgaWYgKCFwYXJ0
aWNpcGFudCkgewotICAgICAgICAgICAgcGFydGljaXBhbnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfZ2V0X3BhcnRpY2lwYW50KHBvb2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICAgICAgICAgIFBB
U19BU1NFUlQoCi0gICAgICAgICAgICAgICAgcGFydGljaXBhbnQgPSBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2NyZWF0ZSgKLSAgICAgICAgICAgICAgICAgICAgJmJpYXNpbmdfZGlyZWN0
b3J5LT5iaWFzaW5nX2Jhc2UsCi0gICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnkpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAK
LSAgICBQQVNfQVNTRVJUKHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X2tpbmQocGFy
dGljaXBhbnQpCi0gICAgICAgICAgICAgICA9PSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50
X2JpYXNpbmdfZGlyZWN0b3J5KTsKLQotICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX3Vud3Jh
cF9iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFudCkpOwotCi0gICAgcGFzX2hlYXBfbG9ja19sb2Nr
KCk7Ci0KLSAgICB3aGlsZSAobWFnYXppbmVfaW5kZXggPj0gZ2xvYmFsX3NpemVfY2xhc3MtPmJp
YXNpbmdfdmVjdG9yLnNpemUpIHsKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9z
aXplX2NsYXNzX3B0ciBudWxsX3B0ciA9IFBBU19DT01QQUNUX0FUT01JQ19QVFJfSU5JVElBTEla
RVI7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfYmlhc2luZ192ZWN0b3Jf
YXBwZW5kKAotICAgICAgICAgICAgJmdsb2JhbF9zaXplX2NsYXNzLT5iaWFzaW5nX3ZlY3Rvciwg
bnVsbF9wdHIsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIH0KLQotICAgIHNpemVfY2xhc3NfcHRy
ID0gcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19iaWFzaW5nX3ZlY3Rvcl9nZXRfcHRyKAot
ICAgICAgICAmZ2xvYmFsX3NpemVfY2xhc3MtPmJpYXNpbmdfdmVjdG9yLCBtYWdhemluZV9pbmRl
eCk7Ci0gICAgcmVzdWx0ID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0
cl9sb2FkKHNpemVfY2xhc3NfcHRyKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICByZXN1
bHQgPSBwYXNfYml0Zml0X3NpemVfY2xhc3NfY3JlYXRlKAotICAgICAgICAgICAgZ2xvYmFsX3Np
emVfY2xhc3MtPmJhc2Uuc2l6ZSwgJmJpYXNpbmdfZGlyZWN0b3J5LT5iYXNlKTsKLSAgICAgICAg
cGFzX2ZlbmNlKCk7Ci0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFz
c19wdHJfc3RvcmUoc2l6ZV9jbGFzc19wdHIsIHJlc3VsdCk7Ci0gICAgfQotCi0gICAgcGFzX2hl
YXBfbG9ja191bmxvY2soKTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLSNlbmRpZiAvKiBM
SUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oCShub25leGlzdGVudCkKQEAgLTEsNjIgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBB
U19CSVRGSVRfR0xPQkFMX1NJWkVfQ0xBU1NfSAotI2RlZmluZSBQQVNfQklURklUX0dMT0JBTF9T
SVpFX0NMQVNTX0gKLQotI2luY2x1ZGUgInBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIgotI2luY2x1
ZGUgInBhc19zZWdtZW50ZWRfdmVjdG9yLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3Ry
dWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeTsKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2Jh
bF9zaXplX2NsYXNzOwotc3RydWN0IHBhc19tYWdhemluZTsKLXR5cGVkZWYgc3RydWN0IHBhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Ci10eXBl
ZGVmIHN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzIHBhc19iaXRmaXRfZ2xvYmFs
X3NpemVfY2xhc3M7Ci10eXBlZGVmIHN0cnVjdCBwYXNfbWFnYXppbmUgcGFzX21hZ2F6aW5lOwot
Ci1QQVNfREVDTEFSRV9TRUdNRU5URURfVkVDVE9SKHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xh
c3NfYmlhc2luZ192ZWN0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21w
YWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDQpOwotCi1zdHJ1Y3QgUEFTX0FMSUdORUQoc2l6ZW9mKHBhc192ZXJzaW9uZWRfZmll
bGQpKSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzIHsKLSAgICBwYXNfYml0Zml0X3NpemVf
Y2xhc3MgYmFzZTsKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVj
dG9yIGJpYXNpbmdfdmVjdG9yOwotfTsKLQotUEFTX0FQSSBwYXNfYml0Zml0X2dsb2JhbF9zaXpl
X2NsYXNzKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX2NyZWF0ZSgKLSAgICB1bnNpZ25l
ZCBzaXplLAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAg
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIqIGluc2VydGlvbl9wb2lu
dCk7Ci0KLVBBU19BUEkgcGFzX2JpdGZpdF9zaXplX2NsYXNzKgotcGFzX2JpdGZpdF9nbG9iYWxf
c2l6ZV9jbGFzc19zZWxlY3RfZm9yX21hZ2F6aW5lKHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xh
c3MqIHNpemVfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0K
LSNlbmRpZiAvKiBQQVNfQklURklUX0dMT0JBTF9TSVpFX0NMQVNTX0ggKi8KLQpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmMJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMyArMjksMTMgQEAKIAogI2lu
Y2x1ZGUgInBhc19iaXRmaXRfaGVhcC5oIgogCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIgor
I2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9z
aXplX2NsYXNzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlLmgiCiAjaW5jbHVkZSAicGFz
X2JpdGZpdF92aWV3LmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAi
cGFzX2ltbW9ydGFsX2hlYXAuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5o
IgogCiBwYXNfYml0Zml0X2hlYXAqIHBhc19iaXRmaXRfaGVhcF9jcmVhdGUocGFzX3NlZ3JlZ2F0
ZWRfaGVhcCogc2VncmVnYXRlZF9oZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogaGVhcF9jb25maWcpCkBAIC01MCw3ICs1MCw3IEBA
IHBhc19iaXRmaXRfaGVhcCogcGFzX2JpdGZpdF9oZWFwX2NyZWF0ZSgKICAgICAgICAgcGFzX29i
amVjdF9hbGxvY2F0aW9uKTsKIAogICAgIGZvciAoUEFTX0VBQ0hfQklURklUX1BBR0VfQ09ORklH
X1ZBUklBTlRfQVNDRU5ESU5HKHZhcmlhbnQpKSB7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9jb25zdHJ1Y3QoCisgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2NvbnN0
cnVjdCgKICAgICAgICAgICAgIHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KHJlc3VsdCwg
dmFyaWFudCksCiAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWdfYml0Zml0X3BhZ2VfY29uZmln
X3B0cl9mb3JfdmFyaWFudChoZWFwX2NvbmZpZywgdmFyaWFudCksCiAgICAgICAgICAgICBzZWdy
ZWdhdGVkX2hlYXApOwpAQCAtMTA3LDE1ICsxMDcsMTUgQEAgcGFzX2JpdGZpdF92YXJpYW50X3Nl
bGVjdGlvbiBwYXNfYml0Zml0XwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXBhc19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3MqCi1wYXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2JhbF9zaXplX2Ns
YXNzKHBhc19iaXRmaXRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCitwYXNfYml0Zml0X3NpemVfY2xhc3MqCitwYXNfYml0Zml0X2hlYXBfZW5zdXJlX3NpemVf
Y2xhc3MocGFzX2JpdGZpdF9oZWFwKiBoZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcq
IGNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xv
Y2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xh
c3MqIHJlc3VsdDsKKyAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHJlc3VsdDsKICAgICBwYXNf
Yml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIGJlc3Q7CiAKICAgICBpZiAodmVyYm9zZSkgewpAQCAt
MTMzLDEwICsxMzMsMTAgQEAgcGFzX2JpdGZpdF9oZWFwX2Vuc3VyZV9nbG9iYWxfc2l6ZV9jbGFz
cwogICAgICAgICAgICAgICAgICIoZGlyZWN0b3J5IHNpemUgPSAldSwgYmVzdCBvYmplY3Qgc2l6
ZSA9ICV1KS5cbiIsCiAgICAgICAgICAgICAgICAgaGVhcCwgZGlyZWN0b3J5LCBkaXJlY3Rvcnkt
Pm9iamVjdF9zaXplLCBiZXN0Lm9iamVjdF9zaXplKTsKICAgICB9Ci0gICAgcmVzdWx0ID0gcGFz
X2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHJfbG9hZCgmZGlyZWN0
b3J5LT5iaXRmaXRfc2l6ZV9jbGFzcyk7CisgICAgcmVzdWx0ID0gcGFzX2NvbXBhY3RfYXRvbWlj
X2JpdGZpdF9zaXplX2NsYXNzX3B0cl9sb2FkKCZkaXJlY3RvcnktPmJpdGZpdF9zaXplX2NsYXNz
KTsKICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0
X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQ7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeSogYml0Zml0X2RpcmVjdG9yeTsKKyAgICAgICAgcGFzX2JpdGZpdF9kaXJl
Y3RvcnkqIGJpdGZpdF9kaXJlY3Rvcnk7CiAgICAgICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyog
c2l6ZV9jbGFzczsKIAogICAgICAgICBpZiAodmVyYm9zZSkKQEAgLTE0NSw3ICsxNDUsNyBAQCBw
YXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2JhbF9zaXplX2NsYXNzCiAgICAgICAgIGJpdGZpdF9k
aXJlY3RvcnkgPSBwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeShoZWFwLCBiZXN0LnZhcmlh
bnQpOwogCiAgICAgICAgIGluc2VydGlvbl9wb2ludCA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzc19m
aW5kX2luc2VydGlvbl9wb2ludCgKLSAgICAgICAgICAgICZiaXRmaXRfZGlyZWN0b3J5LT5iYXNl
LCBiZXN0Lm9iamVjdF9zaXplKTsKKyAgICAgICAgICAgIGJpdGZpdF9kaXJlY3RvcnksIGJlc3Qu
b2JqZWN0X3NpemUpOwogICAgICAgICBpZiAoaW5zZXJ0aW9uX3BvaW50KQogICAgICAgICAgICAg
c2l6ZV9jbGFzcyA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfbG9h
ZChpbnNlcnRpb25fcG9pbnQpOwogICAgICAgICBlbHNlCkBAIC0xNTQsMTMgKzE1NCwxMyBAQCBw
YXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2JhbF9zaXplX2NsYXNzCiAgICAgICAgIGlmIChzaXpl
X2NsYXNzICYmIHNpemVfY2xhc3MtPnNpemUgPT0gYmVzdC5vYmplY3Rfc2l6ZSkgewogICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgcGFzX2xvZygiQWN0dWFsbHkgaXQg
ZG9lcyFcbiIpOwotICAgICAgICAgICAgcmVzdWx0ID0gKHBhc19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3MqKXNpemVfY2xhc3M7CisgICAgICAgICAgICByZXN1bHQgPSAocGFzX2JpdGZpdF9zaXpl
X2NsYXNzKilzaXplX2NsYXNzOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0
ID0gcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19jcmVhdGUoCisgICAgICAgICAgICByZXN1
bHQgPSBwYXNfYml0Zml0X3NpemVfY2xhc3NfY3JlYXRlKAogICAgICAgICAgICAgICAgIGJlc3Qu
b2JqZWN0X3NpemUsIGJpdGZpdF9kaXJlY3RvcnksIGluc2VydGlvbl9wb2ludCk7CiAgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3NfcHRyX3N0b3JlKAorICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3Np
emVfY2xhc3NfcHRyX3N0b3JlKAogICAgICAgICAgICAgJmRpcmVjdG9yeS0+Yml0Zml0X3NpemVf
Y2xhc3MsIHJlc3VsdCk7CiAgICAgfQogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlv
bmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CkBAIC0xNzgsOCArMTc4LDcgQEAgcGFzX2hlYXBf
c3VtbWFyeSBwYXNfYml0Zml0X2hlYXBfY29tcHV0ZQogICAgIGZvciAoUEFTX0VBQ0hfQklURklU
X1BBR0VfQ09ORklHX1ZBUklBTlRfQVNDRU5ESU5HKHZhcmlhbnQpKSB7CiAgICAgICAgIHJlc3Vs
dCA9IHBhc19oZWFwX3N1bW1hcnlfYWRkKAogICAgICAgICAgICAgcmVzdWx0LAotICAgICAgICAg
ICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5KAotICAgICAgICAgICAgICAg
ICZwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeShoZWFwLCB2YXJpYW50KS0+YmFzZSkpOwor
ICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5KHBhc19iaXRm
aXRfaGVhcF9nZXRfZGlyZWN0b3J5KGhlYXAsIHZhcmlhbnQpKSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIHJlc3VsdDsKQEAgLTIxNywxNSArMjE2LDE1IEBAIGJvb2wgcGFzX2JpdGZpdF9oZWFwX2Zv
cl9lYWNoX2xpdmVfb2JqZWMKICAgICBkYXRhLmFyZyA9IGFyZzsKIAogICAgIGZvciAoUEFTX0VB
Q0hfQklURklUX1BBR0VfQ09ORklHX1ZBUklBTlRfQVNDRU5ESU5HKHZhcmlhbnQpKSB7Ci0gICAg
ICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgICAgICBwYXNf
Yml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgICAgICBzaXplX3QgaW5kZXg7CiAKICAg
ICAgICAgZGlyZWN0b3J5ID0gcGFzX2JpdGZpdF9oZWFwX2dldF9kaXJlY3RvcnkoaGVhcCwgdmFy
aWFudCk7CiAKLSAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX2JpdGZpdF9kaXJl
Y3Rvcnlfc2l6ZSgmZGlyZWN0b3J5LT5iYXNlKTsgKytpbmRleCkgeworICAgICAgICBmb3IgKGlu
ZGV4ID0gMDsgaW5kZXggPCBwYXNfYml0Zml0X2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeSk7ICsr
aW5kZXgpIHsKICAgICAgICAgICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKIAotICAgICAgICAg
ICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KCZkaXJlY3RvcnktPmJhc2Us
IGluZGV4KTsKKyAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmll
dyhkaXJlY3RvcnksIGluZGV4KTsKICAgICAgICAgICAgIGlmICghdmlldykKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNiwyOCArMjYsMjggQEAKICNpZm5kZWYgUEFTX0JJVEZJVF9IRUFQX0gKICNkZWZpbmUg
UEFTX0JJVEZJVF9IRUFQX0gKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3Ry
dWN0IHBhc19iaXRmaXRfaGVhcDsKIHN0cnVjdCBwYXNfaGVhcF9jb25maWc7Ci1zdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfYml0Zml0X2hlYXAgcGFzX2JpdGZpdF9oZWFwOwogdHlwZWRlZiBzdHJ1Y3QgcGFz
X2hlYXBfY29uZmlnIHBhc19oZWFwX2NvbmZpZzsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVk
X2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIAogc3RydWN0IFBBU19BTElHTkVEKHNpemVvZihw
YXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFzX2JpdGZpdF9oZWFwIHsKLSAgICBwYXNfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnkgZGlyZWN0b3JpZXNbUEFTX05VTV9CSVRGSVRfUEFHRV9DT05GSUdfVkFS
SUFOVFNdOworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5IGRpcmVjdG9yaWVzW1BBU19OVU1fQklU
RklUX1BBR0VfQ09ORklHX1ZBUklBTlRTXTsKIH07CiAKIFBBU19BUEkgcGFzX2JpdGZpdF9oZWFw
KiBwYXNfYml0Zml0X2hlYXBfY3JlYXRlKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25m
aWcqIGhlYXBfY29uZmlnKTsKIAotc3RhdGljIGlubGluZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnkqIHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KAorc3RhdGljIGlubGluZSBwYXNf
Yml0Zml0X2RpcmVjdG9yeSogcGFzX2JpdGZpdF9oZWFwX2dldF9kaXJlY3RvcnkoCiAgICAgcGFz
X2JpdGZpdF9oZWFwKiBoZWFwLAogICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudCB2
YXJpYW50KQogewpAQCAtNjMsOSArNjMsOSBAQCB0eXBlZGVmIHN0cnVjdCB7CiBQQVNfQVBJIHBh
c19iaXRmaXRfdmFyaWFudF9zZWxlY3Rpb24KIHBhc19iaXRmaXRfaGVhcF9zZWxlY3RfdmFyaWFu
dChzaXplX3Qgb2JqZWN0X3NpemUsIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKTsKIAotUEFTX0FQ
SSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKgotcGFzX2JpdGZpdF9oZWFwX2Vuc3VyZV9n
bG9iYWxfc2l6ZV9jbGFzcyhwYXNfYml0Zml0X2hlYXAqIGhlYXAsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAorUEFTX0FQSSBwYXNfYml0Zml0X3NpemVfY2xhc3MqCitwYXNfYml0
Zml0X2hlYXBfZW5zdXJlX3NpemVfY2xhc3MocGFzX2JpdGZpdF9oZWFwKiBoZWFwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwog
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2Uu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X3BhZ2UuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlLmMJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcg
QEAKIAogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZS5oIgogCi0jaW5jbHVkZSAicGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIK
ICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNp
bmNsdWRlICJwYXNfbG9nLmgiCkBAIC0xMjUsOSArMTI1LDkgQEAgdm9pZCBwYXNfYml0Zml0X3Bh
Z2VfY29uc3RydWN0KHBhc19iaXRmaQogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogcGFzX2JpdGZp
dF9wYWdlX2dldF9jb25maWcocGFzX2JpdGZpdF9wYWdlKiBwYWdlKQogewogICAgIHJldHVybiBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZygKLSAgICAgICAgcGFzX2NvbXBh
Y3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgIHBh
c19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAg
ICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9sb2FkX25vbl9udWxsKAotICAg
ICAgICAgICAgICAgICZwYWdlLT5vd25lciktPmdsb2JhbF9kaXJlY3RvcnkpLT5iYXNlLmNvbmZp
Z19raW5kKTsKKyAgICAgICAgICAgICAgICAmcGFnZS0+b3duZXIpLT5kaXJlY3RvcnkpLT5jb25m
aWdfa2luZCk7CiB9CiAKIHZvaWQgcGFzX2JpdGZpdF9wYWdlX2xvZ19iaXRzKApAQCAtMjAxLDgg
KzIwMSw4IEBAIGJvb2wgcGFzX2JpdGZpdF9wYWdlX2Zvcl9lYWNoX2xpdmVfb2JqZWMKIAogICAg
IHZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX2xvYWQoJnBhZ2UtPm93
bmVyKTsKICAgICBjb25maWdfcHRyID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9j
b25maWcoCi0gICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9s
b2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnZpZXctPmdsb2JhbF9kaXJlY3RvcnkpLT5iYXNl
LmNvbmZpZ19raW5kKTsKKyAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgICZ2aWV3LT5kaXJlY3RvcnkpLT5jb25maWdfa2lu
ZCk7CiAgICAgY29uZmlnID0gKmNvbmZpZ19wdHI7CiAKICAgICBib3VuZGFyeSA9IHBhc19iaXRm
aXRfcGFnZV9ib3VuZGFyeShwYWdlLCBjb25maWcpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaAko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjYsMTIgKzE2Niw2IEBA
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfYnl0ZV9vZmZzZXRfZm9yX28KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmJh
c2UubWluX2FsaWduX3NoaWZ0KTsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wK
LXBhc19iaXRmaXRfcGFnZV9jb25maWdfdXNlc19zdWJwYWdlcyhwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnIGNvbmZpZykKLXsKLSAgICByZXR1cm4gY29uZmlnLmJhc2UucGFnZV9zaXplIDwgcGFzX3Bh
Z2VfbWFsbG9jX2FsaWdubWVudCgpOwotfQotCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYg
LyogUEFTX0JJVEZJVF9QQUdFX0NPTkZJR19IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfcGFnZV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5OSw3ICs1OTksNyBA
QCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdWludHB0cl90IHBhc19iCiAgICAgICAgIAogICAg
IGNhc2UgcGFzX2JpdGZpdF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlX2ltcGxfZGVhbGxvY2F0
ZV9tb2RlOgogICAgIGNhc2UgcGFzX2JpdGZpdF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlX2lt
cGxfc2hyaW5rX21vZGU6Ci0gICAgICAgIHBhc19iaXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9s
b2NrKG93bmVyKTsKKyAgICAgICAgcGFzX2xvY2tfbG9jaygmb3duZXItPm93bmVyc2hpcF9sb2Nr
KTsKICAgICAgICAgCiAgICAgICAgIHBhc19iaXRmaXRfcGFnZV90ZXN0aW5nX3ZlcmlmeShwYWdl
KTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9z
aXplX2NsYXNzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5jCSh3b3JraW5n
IGNvcHkpCkBAIC03NSw4ICs3NSwxMCBAQCB2b2lkIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jb25z
dHJ1Y3QocGFzCiAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9z
dG9yZShpbnNlcnRpb25fcG9pbnQsIHNpemVfY2xhc3MpOwogfQogCi1wYXNfYml0Zml0X3NpemVf
Y2xhc3MqIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jcmVhdGUodW5zaWduZWQgc2l6ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0
X2RpcmVjdG9yeSogZGlyZWN0b3J5KQorcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBwYXNfYml0Zml0
X3NpemVfY2xhc3NfY3JlYXRlKAorICAgIHVuc2lnbmVkIHNpemUsCisgICAgcGFzX2JpdGZpdF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVf
Y2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQpCiB7CiAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNz
KiByZXN1bHQ7CiAKQEAgLTg2LDE2ICs4OCwxMyBAQCBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHBh
c19iaXRmaXRfc2l6ZV9jCiAgICAgICAgICJwYXNfYml0Zml0X3NpemVfY2xhc3MiLAogICAgICAg
ICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwogCi0gICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzX2Nv
bnN0cnVjdCgKLSAgICAgICAgcmVzdWx0LCBzaXplLCBkaXJlY3RvcnksCi0gICAgICAgIHBhc19i
aXRmaXRfc2l6ZV9jbGFzc19maW5kX2luc2VydGlvbl9wb2ludChkaXJlY3RvcnksIHNpemUpKTsK
KyAgICBwYXNfYml0Zml0X3NpemVfY2xhc3NfY29uc3RydWN0KHJlc3VsdCwgc2l6ZSwgZGlyZWN0
b3J5LCBpbnNlcnRpb25fcG9pbnQpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogcGFzX2Jp
dGZpdF92aWV3KgogcGFzX2JpdGZpdF9zaXplX2NsYXNzX2dldF9maXJzdF9mcmVlX3ZpZXcocGFz
X2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogZ2xvYmFsX3Np
emVfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykKIHsKICAgICBwYXNfYml0Zml0X2RpcmVj
dG9yeSogZGlyZWN0b3J5OwpAQCAtMTE0LDcgKzExMyw3IEBAIHBhc19iaXRmaXRfc2l6ZV9jbGFz
c19nZXRfZmlyc3RfZnJlZV92aWUKICAgICBQQVNfQVNTRVJUKCh1bnNpZ25lZClzdGFydF9pbmRl
eCA9PSBzdGFydF9pbmRleCk7CiAgICAgCiAgICAgdmlld19hbmRfaW5kZXggPSBwYXNfYml0Zml0
X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJlZV92aWV3KAotICAgICAgICBkaXJlY3RvcnksIGdsb2Jh
bF9zaXplX2NsYXNzLCAodW5zaWduZWQpc3RhcnRfaW5kZXgsIHNpemVfY2xhc3MtPnNpemUsIHBh
Z2VfY29uZmlnKTsKKyAgICAgICAgZGlyZWN0b3J5LCAodW5zaWduZWQpc3RhcnRfaW5kZXgsIHNp
emVfY2xhc3MtPnNpemUsIHBhZ2VfY29uZmlnKTsKIAogICAgIFBBU19BU1NFUlQodmlld19hbmRf
aW5kZXgudmlldyk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfc2l6ZV9jbGFzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5oCShyZXZpc2lvbiAyODIyMzgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3NpemVfY2xhc3Mu
aAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDExIEBACiAKIFBBU19CRUdJTl9FWFRFUk5f
QzsKIAotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3M7CitzdHJ1Y3QgcGFzX2Jp
dGZpdF9zaXplX2NsYXNzOwogc3RydWN0IHBhc19iaXRmaXRfcGFnZV9jb25maWc7CiBzdHJ1Y3Qg
cGFzX2JpdGZpdF9zaXplX2NsYXNzOwogc3RydWN0IHBhc19iaXRmaXRfdmlldzsKLXR5cGVkZWYg
c3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MgcGFzX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzczsKK3R5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFzcyBwYXNfYml0Zml0
X3NpemVfY2xhc3M7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIHBhc19i
aXRmaXRfcGFnZV9jb25maWc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3Mg
cGFzX2JpdGZpdF9zaXplX2NsYXNzOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF92aWV3IHBh
c19iaXRmaXRfdmlldzsKQEAgLTU5LDEyICs1OSwxMyBAQCBQQVNfQVBJIHZvaWQgcGFzX2JpdGZp
dF9zaXplX2NsYXNzX2NvbnN0CiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25f
cG9pbnQpOwogCi1QQVNfQVBJIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogcGFzX2JpdGZpdF9zaXpl
X2NsYXNzX2NyZWF0ZSh1bnNpZ25lZCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSk7CitQQVNfQVBJIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogcGFzX2JpdGZpdF9zaXpl
X2NsYXNzX2NyZWF0ZSgKKyAgICB1bnNpZ25lZCBzaXplLAorICAgIHBhc19iaXRmaXRfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNz
X3B0ciogaW5zZXJ0aW9uX3BvaW50KTsKIAogUEFTX0FQSSBwYXNfYml0Zml0X3ZpZXcqCiBwYXNf
Yml0Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2ZyZWVfdmlldyhwYXNfYml0Zml0X3NpemVfY2xh
c3MqIHNpemVfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBnbG9iYWxfc2l6ZV9jbGFzcywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25m
aWcqIHBhZ2VfY29uZmlnKTsKIAogUEFTX0VORF9FWFRFUk5fQzsKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlldy5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlldy5jCShyZXZpc2lv
biAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMjksMTMgKzI5LDE0IEBACiAKICNpbmNsdWRlICJw
YXNfYml0Zml0X3ZpZXcuaCIKIAorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAj
aW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3X2lu
bGluZXMuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFy
aW5nX3Bvb2wuaCIKIAotcGFzX2JpdGZpdF92aWV3KiBwYXNfYml0Zml0X3ZpZXdfY3JlYXRlKHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4X2luX2dsb2JhbCkKK3Bhc19iaXRm
aXRfdmlldyogcGFzX2JpdGZpdF92aWV3X2NyZWF0ZShwYXNfYml0Zml0X2RpcmVjdG9yeSogZGly
ZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGluZGV4KQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAK
QEAgLTQ4LDQyICs0OSwyNCBAQCBwYXNfYml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfdmlld19jcmVh
dGUoCiAKICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyB2aWV3
ICVwIHdpdGggY29uZmlnICVzXG4iLAotICAgICAgICAgICAgICAgIHJlc3VsdCwgcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGlyZWN0b3J5LT5iYXNlLmNvbmZpZ19raW5k
KSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRf
Z2V0X3N0cmluZyhkaXJlY3RvcnktPmNvbmZpZ19raW5kKSk7CiAgICAgfQogCiAgICAgcmVzdWx0
LT5wYWdlX2JvdW5kYXJ5ID0gTlVMTDsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5iaWFzaW5nX2RpcmVjdG9yeSwgTlVM
TCk7Ci0gICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX3N0b3JlKCZy
ZXN1bHQtPmdsb2JhbF9kaXJlY3RvcnksIGRpcmVjdG9yeSk7CisgICAgcGFzX2NvbXBhY3RfYml0
Zml0X2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOwog
ICAgIHJlc3VsdC0+aXNfb3duZWQgPSBmYWxzZTsKLSAgICByZXN1bHQtPmluZGV4X2luX2dsb2Jh
bCA9IGluZGV4X2luX2dsb2JhbDsKLSAgICByZXN1bHQtPmluZGV4X2luX2JpYXNpbmcgPSAwOwor
ICAgIHJlc3VsdC0+aW5kZXggPSBpbmRleDsKICAgICBwYXNfbG9ja19jb25zdHJ1Y3QoJnJlc3Vs
dC0+b3duZXJzaGlwX2xvY2spOwotCi0gICAgaWYgKHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXNl
c19zdWJwYWdlcygKLSAgICAgICAgICAgICpwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0
X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQpKSkKLSAgICAgICAgcGFzX2xvY2tf
Y29uc3RydWN0X2Rpc2FibGVkKCZyZXN1bHQtPmNvbW1pdF9sb2NrKTsKLSAgICBlbHNlCi0gICAg
ICAgIHBhc19sb2NrX2NvbnN0cnVjdCgmcmVzdWx0LT5jb21taXRfbG9jayk7CisgICAgcGFzX2xv
Y2tfY29uc3RydWN0KCZyZXN1bHQtPmNvbW1pdF9sb2NrKTsKIAogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXZvaWQgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfc2xvdyhwYXNf
Yml0Zml0X3ZpZXcqIHZpZXcpCi17Ci0gICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfcHRyX2xvYWQoCi0gICAgICAgICZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KS0+Y29udGVu
dGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24gPQotICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnlfY2FuX2V4cGxvZGU7Ci0gICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlw
X2xvY2spOwotfQotCiB2b2lkIHBhc19iaXRmaXRfdmlld19ub3RlX25vbmVtcHRpbmVzcyhwYXNf
Yml0Zml0X3ZpZXcqIHZpZXcpCiB7Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4
IGRpcmVjdG9yeV9hbmRfaW5kZXg7Ci0gICAgCi0gICAgZGlyZWN0b3J5X2FuZF9pbmRleCA9IHBh
c19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRfaW5kZXgodmlldyk7CiAgICAgcGFz
X2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91bnByb2Nlc3NlZF91bmNoZWNr
ZWQoCi0gICAgICAgIGRpcmVjdG9yeV9hbmRfaW5kZXguZGlyZWN0b3J5LAotICAgICAgICBkaXJl
Y3RvcnlfYW5kX2luZGV4LmluZGV4LAorICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0
b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLAorICAgICAgICB2aWV3LT5p
bmRleCwKICAgICAgICAgImJlY29tZSB1bnByb2Nlc3NlZCBvbiBub3RlX25vbmVtcHRpbmVzcyIp
OwogfQogCkBAIC05MSwyMCArNzQsMTcgQEAgc3RhdGljIHZvaWQgZGlkX2JlY29tZV9lbXB0eV9m
b3JfYml0cyhwYQogewogICAgIHBhZ2UtPnVzZV9lcG9jaCA9IHBhc19nZXRfZXBvY2goKTsKIAot
ICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHkoCi0g
ICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9u
dWxsKCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KSwgdmlldyk7CisgICAgcGFzX2JpdGZpdF9kaXJl
Y3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5KAorICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRf
ZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLCB2aWV3KTsKIH0K
IAogdm9pZCBwYXNfYml0Zml0X3ZpZXdfbm90ZV9mdWxsX2VtcHRpbmVzcyhwYXNfYml0Zml0X3Zp
ZXcqIHZpZXcsIHBhc19iaXRmaXRfcGFnZSogcGFnZSkKIHsKLSAgICBwYXNfYml0Zml0X2RpcmVj
dG9yeV9hbmRfaW5kZXggZGlyZWN0b3J5X2FuZF9pbmRleDsKLQogICAgIGRpZF9iZWNvbWVfZW1w
dHlfZm9yX2JpdHModmlldywgcGFnZSk7CiAgICAgCi0gICAgZGlyZWN0b3J5X2FuZF9pbmRleCA9
IHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRfaW5kZXgodmlldyk7CiAgICAg
cGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0eSgKLSAgICAgICAg
ZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3RvcnksCi0gICAgICAgIGRpcmVjdG9yeV9hbmRfaW5k
ZXguaW5kZXgsCisgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSksCisgICAgICAgIHZpZXctPmluZGV4LAogICAgICAg
ICAiYmVjb21lIGVtcHR5IG9uIG5vdGVfZW1wdGluZXNzIik7CiB9CiAKQEAgLTExNSwxMSArOTUs
OSBAQCB2b2lkIHBhc19iaXRmaXRfdmlld19ub3RlX3BhcnRpYWxfZW1wdGluCiAKIHZvaWQgcGFz
X2JpdGZpdF92aWV3X25vdGVfbWF4X2ZyZWUocGFzX2JpdGZpdF92aWV3KiB2aWV3KQogewotICAg
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCBkaXJlY3RvcnlfYW5kX2luZGV4OwotICAg
IGRpcmVjdG9yeV9hbmRfaW5kZXggPSBwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3Rvcnlf
YW5kX2luZGV4KHZpZXcpOwogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9i
ZWNvbWVfdW5wcm9jZXNzZWQoCi0gICAgICAgIGRpcmVjdG9yeV9hbmRfaW5kZXguZGlyZWN0b3J5
LAotICAgICAgICBkaXJlY3RvcnlfYW5kX2luZGV4LmluZGV4LAorICAgICAgICBwYXNfY29tcGFj
dF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLAor
ICAgICAgICB2aWV3LT5pbmRleCwKICAgICAgICAgImJlY29tZSB1bnByb2Nlc3NlZCBvbiBub3Rl
X21heF9mcmVlIik7CiB9CiAKQEAgLTEzNyw4ICsxMTUsOCBAQCBzdGF0aWMgcGFzX2hlYXBfc3Vt
bWFyeSBjb21wdXRlX3N1bW1hcnkoCiAgICAgc2l6ZV90IG9mZnNldDsKIAogICAgIGNvbmZpZ19w
dHIgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZygKLSAgICAgICAgcGFz
X2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAg
ICAgICAgICAmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSktPmJhc2UuY29uZmlnX2tpbmQpOworICAg
ICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAg
ICAgICAgICAgJnZpZXctPmRpcmVjdG9yeSktPmNvbmZpZ19raW5kKTsKICAgICBjb25maWcgPSAq
Y29uZmlnX3B0cjsKIAogICAgIHJlc3VsdCA9IHBhc19oZWFwX3N1bW1hcnlfY3JlYXRlX2VtcHR5
KCk7CkBAIC0yMjksOCArMjA3LDcgQEAgc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3Qo
CiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgY29uZmlnX3B0ciA9IHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfa2luZF9nZXRfY29uZmlnKAotICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZ2aWV3LT5nbG9i
YWxfZGlyZWN0b3J5KS0+YmFzZS5jb25maWdfa2luZCk7CisgICAgICAgIHBhc19jb21wYWN0X2Jp
dGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmNvbmZp
Z19raW5kKTsKICAgICBjb25maWcgPSAqY29uZmlnX3B0cjsKIAogICAgIGJvdW5kYXJ5ID0gdmll
dy0+cGFnZV9ib3VuZGFyeTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaXRmaXRfdmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfdmlldy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXcuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsNDIgKzI3LDMwIEBACiAjZGVmaW5lIFBBU19CSVRGSVRfVklFV19ICiAKICNpbmNs
dWRlICJwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRv
bWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFj
dF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9i
aXRmaXRfZGlyZWN0b3J5X3B0ci5oIgogI2luY2x1ZGUgInBhc19oZWFwX3N1bW1hcnkuaCIKICNp
bmNsdWRlICJwYXNfbG9jay5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0cnVjdCBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3Rvcnk7CiBz
dHJ1Y3QgcGFzX2JpdGZpdF9wYWdlOwogc3RydWN0IHBhc19iaXRmaXRfdmlldzsKLXR5cGVkZWYg
c3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSBwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeSBwYXNfYml0Zml0X2Rp
cmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfcGFnZSBwYXNfYml0Zml0X3BhZ2U7
CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3ZpZXcgcGFzX2JpdGZpdF92aWV3OwogCiBzdHJ1
Y3QgcGFzX2JpdGZpdF92aWV3IHsKICAgICB2b2lkKiBwYWdlX2JvdW5kYXJ5OwotICAgIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyIGJpYXNpbmdfZGlyZWN0
b3J5OwotICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ciBnbG9iYWxf
ZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyIGRpcmVjdG9y
eTsKICAgICBib29sIGlzX293bmVkOwotICAgIHVuc2lnbmVkIGluZGV4X2luX2dsb2JhbDsKLSAg
ICB1bnNpZ25lZCBpbmRleF9pbl9iaWFzaW5nOworICAgIHVuc2lnbmVkIGluZGV4OwogICAgIHBh
c19sb2NrIG93bmVyc2hpcF9sb2NrOwogICAgIHBhc19sb2NrIGNvbW1pdF9sb2NrOwogfTsKIAot
UEFTX0FQSSBwYXNfYml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfdmlld19jcmVhdGUocGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleF9pbl9nbG9iYWwpOwotCi1QQVNf
QVBJIHZvaWQgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfc2xvdyhwYXNfYml0
Zml0X3ZpZXcqIHZpZXcpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgcGFzX2JpdGZpdF92aWV3X2xv
Y2tfb3duZXJzaGlwX2xvY2socGFzX2JpdGZpdF92aWV3KiB2aWV3KQotewotICAgIGlmIChwYXNf
bG9ja190cnlfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spKQotICAgICAgICByZXR1cm47Ci0g
ICAgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfc2xvdyh2aWV3KTsKLX0KK1BB
U19BUEkgcGFzX2JpdGZpdF92aWV3KiBwYXNfYml0Zml0X3ZpZXdfY3JlYXRlKHBhc19iaXRmaXRf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleCk7CiAKIFBBU19BUEkgdm9pZCBwYXNfYml0Zml0
X3ZpZXdfbm90ZV9ub25lbXB0aW5lc3MocGFzX2JpdGZpdF92aWV3KiB2aWV3KTsKIFBBU19BUEkg
dm9pZCBwYXNfYml0Zml0X3ZpZXdfbm90ZV9mdWxsX2VtcHRpbmVzcyhwYXNfYml0Zml0X3ZpZXcq
IHZpZXcsIHBhc19iaXRmaXRfcGFnZSogcGFnZSk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlld19pbmxpbmVzLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfdmlld19pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDM5ICsyNiwxMSBA
QAogI2lmbmRlZiBQQVNfQklURklUX1ZJRVdfSU5MSU5FU19ICiAjZGVmaW5lIFBBU19CSVRGSVRf
VklFV19JTkxJTkVTX0gKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnku
aCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCIKLSNpbmNsdWRl
ICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3Bh
Z2UuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9D
OwogCi1zdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleAotcGFzX2Jp
dGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRleChwYXNfYml0Zml0X3ZpZXcqIHZp
ZXcpCi17Ci0gICAgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAg
IGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlf
cHRyX2xvYWQoJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5KTsKLSAgICBpZiAoZGlyZWN0b3J5KSB7
Ci0gICAgICAgIHJldHVybiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXhfY3JlYXRlKAot
ICAgICAgICAgICAgJmRpcmVjdG9yeS0+YmFzZSwgdmlldy0+aW5kZXhfaW5fYmlhc2luZywgcGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKTsKLSAgICB9Ci0gICAgcmV0dXJuIHBhc19i
aXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleF9jcmVhdGUoCi0gICAgICAgICZwYXNfY29tcGFjdF9i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+Z2xvYmFsX2Rp
cmVjdG9yeSktPmJhc2UsCi0gICAgICAgIHZpZXctPmluZGV4X2luX2dsb2JhbCwgcGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQpOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19iaXRmaXRf
ZGlyZWN0b3J5KiBwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3RvcnkocGFzX2JpdGZpdF92
aWV3KiB2aWV3KQotewotICAgIHJldHVybiBwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3Rv
cnlfYW5kX2luZGV4KHZpZXcpLmRpcmVjdG9yeTsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25l
ZCBwYXNfYml0Zml0X3ZpZXdfaW5kZXhfaW5fY3VycmVudChwYXNfYml0Zml0X3ZpZXcqIHZpZXcp
Ci17Ci0gICAgcmV0dXJuIHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRfaW5k
ZXgodmlldykuaW5kZXg7Ci19Ci0KLQogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFz
X2JpdGZpdF92aWV3X2lzX2VtcHR5KHBhc19iaXRmaXRfdmlldyogdmlldywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29t
cGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwx
MSArMzAsMTEgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1zdHJ1Y3QgcGFzX2JpdGZpdF9n
bG9iYWxfc2l6ZV9jbGFzczsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3MgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzczsKK3N0cnVjdCBwYXNfYml0Zml0X3Np
emVfY2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3MgcGFzX2JpdGZp
dF9zaXplX2NsYXNzOwogCi1QQVNfREVGSU5FX0NPTVBBQ1RfQVRPTUlDX1BUUihwYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIpOworUEFTX0RFRklORV9D
T01QQUNUX0FUT01JQ19QVFIocGFzX2JpdGZpdF9zaXplX2NsYXNzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cik7
CiAKIFBBU19FTkRfRVhURVJOX0M7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9wdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaAko
bm9uZXhpc3RlbnQpCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQ09NUEFDVF9BVE9NSUNfU0VHUkVHQVRF
RF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfUFRSX0gKLSNkZWZpbmUgUEFTX0NPTVBBQ1RfQVRPTUlD
X1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX1BUUl9ICi0KLSNpbmNsdWRlICJwYXNf
Y29tcGFjdF9hdG9taWNfcHRyLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3Rvcnk7Ci0KLVBBU19ERUZJTkVfQ09NUEFDVF9BVE9NSUNfUFRSKHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIp
OwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0NPTVBBQ1RfQVRPTUlDX1NF
R1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX1BUUl9IICovCi0KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
ci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfQ09NUEFDVF9BVE9NSUNfU0VHUkVHQVRFRF9TSVpF
X0RJUkVDVE9SWV9QVFJfSAorI2RlZmluZSBQQVNfQ09NUEFDVF9BVE9NSUNfU0VHUkVHQVRFRF9T
SVpFX0RJUkVDVE9SWV9QVFJfSAorCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3B0ci5o
IgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OworCitQQVNfREVGSU5FX0NPTVBBQ1RfQVRPTUlD
X1BUUihwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
cik7CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfQ09NUEFDVF9BVE9NSUNf
U0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9QVFJfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X3B0ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19wdHIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisv
KgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFT
X0NPTVBBQ1RfU0VHUkVHQVRFRF9FWENMVVNJVkVfVklFV19QVFJfSAorI2RlZmluZSBQQVNfQ09N
UEFDVF9TRUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX1BUUl9ICisKKyNpbmNsdWRlICJwYXNfY29t
cGFjdF9wdHIuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXc7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlldyBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldzsKKworUEFTX0RFRklORV9DT01Q
QUNUX1BUUihwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldywKKyAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIpOworCitQQVNf
RU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9FWENMVVNJ
VkVfVklFV19QVFJfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaAkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5k
ZWYgUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfUFRSX0gKLSNk
ZWZpbmUgUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfUFRSX0gK
LQotI2luY2x1ZGUgInBhc19jb21wYWN0X3B0ci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0K
LXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5OwotCi1QQVNfREVGSU5FX0NPTVBBQ1RfUFRSKHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyKTsKLQotUEFTX0VO
RF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19DT01QQUNUX1NFR1JFR0FURURfR0xPQkFMX1NJ
WkVfRElSRUNUT1JZX1BUUl9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfQ09NUEFDVF9TRUdS
RUdBVEVEX1NJWkVfRElSRUNUT1JZX1BUUl9ICisjZGVmaW5lIFBBU19DT01QQUNUX1NFR1JFR0FU
RURfU0laRV9ESVJFQ1RPUllfUFRSX0gKKworI2luY2x1ZGUgInBhc19jb21wYWN0X3B0ci5oIgor
CitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OworCitQQVNfREVGSU5FX0NPTVBBQ1RfUFRSKHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cik7CisKK1BBU19FTkRfRVhURVJOX0M7
CisKKyNlbmRpZiAvKiBQQVNfQ09NUEFDVF9TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX1BUUl9I
ICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0
X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oCShyZXZp
c2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29t
cGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDQxICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRl
ZiBQQVNfQ09NUEFDVF9TVUJQQUdFX01BUF9FTlRSWV9QVFJfSAotI2RlZmluZSBQQVNfQ09NUEFD
VF9TVUJQQUdFX01BUF9FTlRSWV9QVFJfSAotCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfcHRyLmgi
Ci0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19zdWJwYWdlX21hcF9lbnRyeTsK
LXR5cGVkZWYgc3RydWN0IHBhc19zdWJwYWdlX21hcF9lbnRyeSBwYXNfc3VicGFnZV9tYXBfZW50
cnk7Ci0KLVBBU19ERUZJTkVfQ09NUEFDVF9QVFIocGFzX3N1YnBhZ2VfbWFwX2VudHJ5LCBwYXNf
Y29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0j
ZW5kaWYgLyogUEFTX0NPTVBBQ1RfU1VCUEFHRV9NQVBfRU5UUllfUFRSX0ggKi8KLQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdGUuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5j
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfZGVhbGxvY2F0ZS5jCSh3b3JraW5nIGNvcHkpCkBAIC04Myw3ICs4Myw4IEBAIHN0YXRpYyB2
b2lkIGRlYWxsb2NhdGVfc2VncmVnYXRlZCh1aW50cHQKIHsKICAgICBwYXNfbG9jayogaGVsZF9s
b2NrOwogICAgIGhlbGRfbG9jayA9IE5VTEw7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFs
bG9jYXRlKGJlZ2luLCAmaGVsZF9sb2NrLCAqcGFnZV9jb25maWcpOworICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfZGVhbGxvY2F0ZSgKKyAgICAgICAgYmVnaW4sICZoZWxkX2xvY2ssIHBhc19zZWdy
ZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZSwgTlVMTCwgKnBhZ2VfY29uZmlnKTsKICAg
ICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVh
bGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMiw2ICszMiw3IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogZW51
bSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uIHsKICAgICBwYXNfZGVhbGxvY2F0b3Jf
c2NhdmVuZ2Vfbm9fYWN0aW9uLAorICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9s
b2dfaWZfY2xlYW5fYWN0aW9uLAogICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9s
b2dfYWN0aW9uCiB9OwogCkBAIC00NCw2ICs0NSw4IEBAIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5n
ZV9hY3Rpb25fZ2V0X3N0cmkKICAgICB7CiAgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVu
Z2Vfbm9fYWN0aW9uOgogICAgICAgICByZXR1cm4gIm5vX2FjdGlvbiI7CisgICAgY2FzZSBwYXNf
ZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hfbG9nX2lmX2NsZWFuX2FjdGlvbjoKKyAgICAgICAg
cmV0dXJuICJmbHVzaF9sb2dfaWZfY2xlYW5fYWN0aW9uIjsKICAgICBjYXNlIHBhc19kZWFsbG9j
YXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfYWN0aW9uOgogICAgICAgICByZXR1cm4gImZsdXNoX2xv
Z19hY3Rpb24iOwogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYwko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgs
NyBAQCBzdGF0aWMgdm9pZCBzZXRfdXBfcmFuZ2UoaW5pdGlhbGl6ZV9kYXRhCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCiB7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBk
ZXNpZ25hdGVkX2luZGV4OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnk7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBkZXNpZ25hdGVkX2VuZDsKIAogICAgIFBBU19B
U1NFUlQoCkBAIC04OCwxNyArODgsMjIgQEAgc3RhdGljIHZvaWQgc2V0X3VwX3JhbmdlKGluaXRp
YWxpemVfZGF0YQogICAgICAgICAgICAgUEFTX0FTU0VSVCghZGlyZWN0b3J5KTsKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVf
c2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KAotICAgICAgICAgICAgICAgIGRhdGEtPmhlYXAsIHNp
emUsIDEsIHBhc19mb3JjZV9jb3VudF9sb29rdXAsIGRhdGEtPmNvbmZpZ19wdHIsIE5VTEwpOwor
ICAgICAgICAgICAgICAgIGRhdGEtPmhlYXAsIHNpemUsIDEsIHBhc19mb3JjZV9jb3VudF9sb29r
dXAsIGRhdGEtPmNvbmZpZ19wdHIsIE5VTEwsCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfaW5pdGlhbF9jcmVhdGlvbl9tb2RlKTsKKworICAgICAgICAgICAg
UEFTX0FTU0VSVCgKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9udW1fYWxsb2NhdG9yX2luZGljZXMoZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgIDw9IHBh
c19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9hbGxvY2F0b3JfaW5kaWNlcygqZGF0YS0+
Y29uZmlnX3B0cikpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvKiBUaGlzIGlzIGEgd2Vp
cmQgYXNzZXJ0IC0gaWYgaXQgd2FzIGZhbHNlIHRoZW4gaXQgZG9lc24ndCBsaXRlcmFsbHkgbWFr
ZSB0aGlzIGJyb2tlbi4KICAgICAgICAgICAgICAgIEl0IGp1c3QgbWVhbnMgdGhhdCB0aGVyZSBp
cyBhIGNoYW5jZSBvZiBtZW1vcnkgd2FzdGVhZ2UuIFNvLCBpZiB3ZSBoaXQgaXQsIHRoZW4KICAg
ICAgICAgICAgICAgIG1heWJlIHdlIGNhbiBqdXN0IHNheSB0aGF0IHRoYXQncyBPSyBhbmQgcmVt
b3ZlIHRoZSBhc3NlcnQ/ICovCiAgICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+b2Jq
ZWN0X3NpemUgPT0gc2l6ZSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihkaXJlY3Rvcnkp
OworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19h
bGxvY2F0b3IoZGlyZWN0b3J5KTsKIAogICAgICAgICAgICAgUEFTX0FTU0VSVCgKLSAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9h
ZCgmZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2NhdG9yX2luZGV4CisgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRh
KS0+YWxsb2NhdG9yX2luZGV4CiAgICAgICAgICAgICAgICAgPT0gdGFyZ2V0X2FsbG9jYXRvcl9p
bmRleCk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4
IHJlc3VsdGluZ19pbmRleDsKQEAgLTEwOSwxMCArMTE0LDEwIEBAIHN0YXRpYyB2b2lkIHNldF91
cF9yYW5nZShpbml0aWFsaXplX2RhdGEKICAgICAgICAgICAgIFBBU19BU1NFUlQocmVzdWx0aW5n
X2luZGV4ID09IHRhcmdldF9hbGxvY2F0b3JfaW5kZXgpOwogICAgICAgICAgICAgUEFTX0FTU0VS
VChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkoCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0
X25vZGUpID09IGRpcmVjdG9yeSk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleCgKKyAgICAgICAgICAg
IFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2Nh
dG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0X25vZGUpID09IHRhcmdldF9hbGxvY2F0b3Jf
aW5kZXgpOwogICAgICAgICAgICAgUEFTX0FTU0VSVCgKLSAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5k
YXRhKS0+YWxsb2NhdG9yX2luZGV4CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2NhdG9yX2lu
ZGV4CiAgICAgICAgICAgICAgICAgPT0gZGVzaWduYXRlZF9iZWdpbiAqIGRhdGEtPm51bV9hbGxv
Y2F0b3JfaW5kaWNlcyk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjUsNiArMTMwLDcgQEAgdm9p
ZCBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbml0aQogewogICAgIHBhc19oZWFwX2Nv
bmZpZyBjb25maWc7CiAgICAgaW5pdGlhbGl6ZV9kYXRhIGRhdGE7CisgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBsYXlvdXRfbm9kZTsKIAogICAgIGNvbmZpZyA9ICpjb25m
aWdfcHRyOwogCkBAIC0xMzIsNyArMTM4LDcgQEAgdm9pZCBwYXNfZGVzaWduYXRlZF9pbnRyaW5z
aWNfaGVhcF9pbml0aQogICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKICAgICBQQVNf
QVNTRVJUKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGVfZmlyc3QpOwogICAgIFBBU19BU1NF
UlQoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4KTsK
LSAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgKKyAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKAogICAgICAgICAgICAgICAg
ICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCkpOwogCiAgICAgZGF0YS5o
ZWFwID0gaGVhcDsKQEAgLTIwMSw2ICsyMDcsMTQgQEAgdm9pZCBwYXNfZGVzaWduYXRlZF9pbnRy
aW5zaWNfaGVhcF9pbml0aQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICAvKiBDYXVzZSB0
aGUgYWxsb2NhdGlvbiBvZiB2aWV3IGNhY2hlcyB0byBoYXBwZW4gYWZ0ZXIgd2UgaGF2ZSBsYWlk
IG91dCBhbGwgb2YgdGhlIGxvY2FsIGFsbG9jYXRvcnMuICovCisgICAgZm9yIChQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKKyAgICAg
ICAgaWYgKCFwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KGxheW91dF9u
b2RlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2ZpbmlzaF9jcmVhdGlvbihwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkobGF5b3V0X25vZGUpKTsKKyAgICB9CisKICAgICBpZiAoUEFTX0VOQUJMRV9URVNU
SU5HKSB7CiAgICAgICAgIC8qIENoZWNrIHRoYXQgd2Ugd29uJ3QgcmV0dXJuIGEgZGVzaWduYXRl
ZCBpbmRleCB0aGF0IGlzIGludmFsaWQuICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRl
ZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lu
bGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQAogI2RlZmluZSBQQVNfREVT
SUdOQVRFRF9JTlRSSU5TSUNfSEVBUF9JTkxJTkVTX0gKIAogI2luY2x1ZGUgInBhc19kZXNpZ25h
dGVkX2ludHJpbnNpY19oZWFwLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9pbmxpbmVzLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIApAQCAtMzUsMTAgKzM1
LDggQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0b3JfaQogcGFzX2Rlc2ln
bmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKHBhc19oZWFwX2NvbmZp
ZyBjb25maWcpCiB7CiAgICAgcmV0dXJuIFBBU19NQVgoCi0gICAgICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2NvbmZpZygK
LSAgICAgICAgICAgIGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyksCi0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNf
Zm9yX2NvbmZpZygKLSAgICAgICAgICAgIGNvbmZpZy5tZWRpdW1fc2VncmVnYXRlZF9jb25maWcp
KTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9p
bmRpY2VzX2Zvcl9jb25maWcoY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKSwKKyAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zv
cl9jb25maWcoY29uZmlnLm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZykpOwogfQogCiB0eXBlZGVm
IHN0cnVjdCB7CkBAIC02NSwxMSArNjMsMTIgQEAgcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0
X2NyZWF0ZV9zdWNjZQogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90Ci1wYXNf
ZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2VzKHBhc19oZWFw
X2NvbmZpZyBjb25maWcpCitwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVzaWdu
YXRlZF9pbmRpY2VzX2Zvcl9zbWFsbF9jb25maWcoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcgc21hbGxfY29uZmlnKQogewogICAgIC8qIEZJWE1FOiBUaGVzZSBjb25zdGFudHMgaGF2
ZSB0byBtYXRjaCB3aGF0IHdlIGRvIHdpdGggc2V0X3VwX3JhbmdlIGluCiAgICAgICAgcGFzX2Rl
c2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5pdGlhbGl6ZS4gKi8KLSAgICBzd2l0Y2ggKHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihjb25maWcuc21hbGxfc2VncmVnYXRlZF9j
b25maWcpKSB7CisgICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxp
Z24oc21hbGxfY29uZmlnKSkgewogICAgIGNhc2UgODoKICAgICAgICAgcmV0dXJuIDM4OwogICAg
IGNhc2UgMTY6CkBAIC04MiwyMiArODEsMzkgQEAgcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hl
YXBfbnVtX2Rlc2lnbgogICAgIH0KIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19k
ZXNpZ25hdGVkX2luZGV4X3Jlc3VsdCBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNp
Z25hdGVkX2luZGV4KAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19kZXNpZ25hdGVkX2lu
ZGV4X3Jlc3VsdAorcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfZGVzaWduYXRlZF9pbmRl
eF9mb3Jfc21hbGxfY29uZmlnKAogICAgIHNpemVfdCBpbmRleCwKICAgICBwYXNfaW50cmluc2lj
X2hlYXBfZGVzaWduYXRpb25fbW9kZSBkZXNpZ25hdGlvbl9tb2RlLAotICAgIHBhc19oZWFwX2Nv
bmZpZyBjb25maWcpCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgc21hbGxfY29uZmln
KQogewogICAgIGlmICghZGVzaWduYXRpb25fbW9kZSkKICAgICAgICAgcmV0dXJuIHBhc19kZXNp
Z25hdGVkX2luZGV4X3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogCiAgICAgLyogTk9URTogV2Ug
Y291bGQgZG8gbWF0aCBoZXJlLiBXZSBjaG9vc2Ugbm90IHRvIGJlY2F1c2Ugc28gZmFyIHRoYXQg
aGFzIHByb3ZlZCB0byBiZQogICAgICAgIGEgcGVyZiBwcm9ibGVtLiAqLwotICAgIGlmIChpbmRl
eCA8PSBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2Vz
KGNvbmZpZykpCisgICAgaWYgKGluZGV4IDw9IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
X251bV9kZXNpZ25hdGVkX2luZGljZXNfZm9yX3NtYWxsX2NvbmZpZyhzbWFsbF9jb25maWcpKQog
ICAgICAgICByZXR1cm4gcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0X2NyZWF0ZV9zdWNjZXNz
KGluZGV4KTsKIAogICAgIHJldHVybiBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1bHRfY3JlYXRl
X2ZhaWx1cmUoKTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdAorcGFzX2Rl
c2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2Rlc2lnbmF0ZWRfaW5kaWNlcyhwYXNfaGVhcF9j
b25maWcgY29uZmlnKQoreworICAgIHJldHVybiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVh
cF9udW1fZGVzaWduYXRlZF9pbmRpY2VzX2Zvcl9zbWFsbF9jb25maWcoCisgICAgICAgIGNvbmZp
Zy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1bHQgcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hl
YXBfZGVzaWduYXRlZF9pbmRleCgKKyAgICBzaXplX3QgaW5kZXgsCisgICAgcGFzX2ludHJpbnNp
Y19oZWFwX2Rlc2lnbmF0aW9uX21vZGUgZGVzaWduYXRpb25fbW9kZSwKKyAgICBwYXNfaGVhcF9j
b25maWcgY29uZmlnKQoreworICAgIHJldHVybiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVh
cF9kZXNpZ25hdGVkX2luZGV4X2Zvcl9zbWFsbF9jb25maWcoCisgICAgICAgIGluZGV4LCBkZXNp
Z25hdGlvbl9tb2RlLCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpOworfQorCiBQQVNf
RU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0RFU0lHTkFURURfSU5UUklOU0lDX0hFQVBf
SU5MSU5FU19IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVf
Yml0Zml0X2hlYXBzLmMJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1
ZGUgInBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmgiCiAKLSNpbmNsdWRlICJwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgog
I2luY2x1ZGUgInBhc19iaXRmaXRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZS5o
IgogI2luY2x1ZGUgInBhc19iaXRmaXRfdmlldy5oIgpAQCAtNDMsNyArNDMsNyBAQCBzdGF0aWMg
Ym9vbCB2aWV3X2NhbGxiYWNrKHBhc19lbnVtZXJhdG9yCiAgICAgc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwogICAgIAogICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKLSAgICBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfYml0Zml0X2Rp
cmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIHBhZ2VfY29u
ZmlnOwogICAgIHVpbnRwdHJfdCBwYWdlX2JvdW5kYXJ5OwogICAgIHBhc19iaXRmaXRfcGFnZSog
cGFnZTsKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGJvb2wgdmlld19jYWxsYmFjayhwYXNfZW51
bWVyYXRvcgogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHBhZ2VfYm91bmRhcnkgPSAodWlu
dHB0cl90KXZpZXctPnBhZ2VfYm91bmRhcnk7Ci0gICAgcGFnZV9jb25maWcgPSBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQp
OworICAgIHBhZ2VfY29uZmlnID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25m
aWcoZGlyZWN0b3J5LT5jb25maWdfa2luZCk7CiAgICAgCiAgICAgaWYgKHBhZ2VfYm91bmRhcnkp
IHsKICAgICAgICAgcGFzX2VudW1lcmF0b3JfZXhjbHVkZV9hY2NvdW50ZWRfcGFnZXMoCkBAIC0x
NDYsMTAgKzE0NiwxMCBAQCBzdGF0aWMgYm9vbCB2aWV3X2NhbGxiYWNrKHBhc19lbnVtZXJhdG9y
CiB9CiAKIHN0YXRpYyBib29sIGVudW1lcmF0ZV9iaXRmaXRfZGlyZWN0b3J5KHBhc19lbnVtZXJh
dG9yKiBlbnVtZXJhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KQog
ewogICAgIHJldHVybiBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X3ZlY3Rvcl9pdGVyYXRlX3Jl
bW90ZSgKLSAgICAgICAgJmRpcmVjdG9yeS0+YmFzZS52aWV3cywgZW51bWVyYXRvciwgMCwgdmll
d19jYWxsYmFjaywgZGlyZWN0b3J5KTsKKyAgICAgICAgJmRpcmVjdG9yeS0+dmlld3MsIGVudW1l
cmF0b3IsIDAsIHZpZXdfY2FsbGJhY2ssIGRpcmVjdG9yeSk7CiB9CiAKIHN0YXRpYyBib29sIGVu
dW1lcmF0ZV9iaXRmaXRfaGVhcF9jYWxsYmFjayhwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2Vn
cmVnYXRlZF9oZWFwcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX3NlZ3Jl
Z2F0ZWRfaGVhcHMuYwkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDEyIEBACiAjaW5jbHVk
ZSAicGFzX2VudW1lcmF0b3JfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJwYXNfZnVsbF9hbGxvY19i
aXRzLmgiCiAjaW5jbHVkZSAicGFzX2hhc2h0YWJsZS5oIgorI2luY2x1ZGUgInBhc19sb2NhbF92
aWV3X2NhY2hlX25vZGUuaCIKICNpbmNsdWRlICJwYXNfcHRyX2hhc2hfc2V0LmgiCiAjaW5jbHVk
ZSAicGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oIgogI2luY2x1ZGUgInBhc19y
b290LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlldy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oIgpAQCAtMjI4LDcgKzIy
OSw3IEBAIHN0YXRpYyB2b2lkIHJlY29yZF9wYWdlX3BheWxvYWRfYW5kX21ldGEKIAogc3RhdGlj
IHZvaWQgcmVjb3JkX3BhZ2Vfb2JqZWN0cyhwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYXRpb25fY29udGV4dCogY29udGV4
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2Nv
bmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IHBhZ2VfYm91
bmRhcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2UqIHBhZ2UsCkBAIC0zMTQsMTYgKzMxNSwxNiBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfZXhj
bHVzaXZlX3ZpZXcocGFzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZW51bWVyYXRpb25fY29udGV4dCogY29udGV4dCkKIHsKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9k
YXRhKiBkYXRhOwogICAgIHVpbnRwdHJfdCBwYWdlX2JvdW5kYXJ5OwogICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2UqIHBhZ2U7CiAgICAgbG9jYWxfYWxsb2NhdG9yX25vZGUqIGFsbG9jYXRvcl9ub2Rl
OwogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKICAgICBwYXNfZnVsbF9hbGxv
Y19iaXRzIGFsbG9jX2JpdHM7CiAKLSAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1vdGUoZW51bWVyYXRvciwgJnZp
ZXctPmRpcmVjdG9yeSk7CisgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1vdGUoZW51bWVyYXRvciwgJnZpZXctPmRpcmVjdG9y
eSk7CiAgICAgcGFnZV9jb25maWcgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dl
dF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogCiAgICAgcGFnZV9i
b3VuZGFyeSA9ICh1aW50cHRyX3Qpdmlldy0+cGFnZV9ib3VuZGFyeTsKQEAgLTMzNCwxMCArMzM1
LDEwIEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9leGNsdXNpdmVfdmlldyhwYXMKICAgICBwYXNf
ZW51bWVyYXRvcl9leGNsdWRlX2FjY291bnRlZF9wYWdlcygKICAgICAgICAgZW51bWVyYXRvciwg
KHZvaWQqKXBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7CiAgICAg
Ci0gICAgaWYgKCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9p
c19vd25lZCh2aWV3LT5vd25lcnNoaXBfa2luZCkpCisgICAgaWYgKCF2aWV3LT5pc19vd25lZCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3IsICZkaXJlY3Rv
cnktPmRhdGEpOworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRh
X3B0cl9sb2FkX3JlbW90ZShlbnVtZXJhdG9yLCAmZGlyZWN0b3J5LT5kYXRhKTsKIAogICAgIHBh
Z2UgPSAocGFzX3NlZ3JlZ2F0ZWRfcGFnZSopcGFnZV9jb25maWctPmJhc2UucGFnZV9oZWFkZXJf
Zm9yX2JvdW5kYXJ5X3JlbW90ZSgKICAgICAgICAgZW51bWVyYXRvciwgKHZvaWQqKXBhZ2VfYm91
bmRhcnkpOwpAQCAtNDQ4LDcgKzQ0OSw3IEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9wYXJ0aWFs
X3ZpZXcocGFzX2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbnVtZXJhdGlvbl9jb250ZXh0KiBjb250ZXh0KQogewotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcq
IHBhZ2VfY29uZmlnOwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFyZWRfdmll
dzsKICAgICBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5IHNoYXJlZF9oYW5kbGVf
b3JfcGFnZV9ib3VuZGFyeTsKQEAgLTQ2Miw3ICs0NjMsNyBAQCBzdGF0aWMgYm9vbCBlbnVtZXJh
dGVfcGFydGlhbF92aWV3KHBhc19lCiAgICAgaWYgKCF2aWV3LT5pc19hdHRhY2hlZF90b19zaGFy
ZWRfaGFuZGxlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGRpcmVjdG9yeSA9IHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX3JlbW90ZShl
bnVtZXJhdG9yLCAmdmlldy0+ZGlyZWN0b3J5KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX3JlbW90ZShlbnVtZXJhdG9yLCAm
dmlldy0+ZGlyZWN0b3J5KTsKICAgICBwYWdlX2NvbmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7
CiAKICAgICBzaGFyZWRfdmlldyA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdf
cHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3IsICZ2aWV3LT5zaGFyZWRfdmlldyk7CkBAIC01NjYs
MTQgKzU2NywxNCBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwX2NhCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZykK
IHsKICAgICBlbnVtZXJhdGlvbl9jb250ZXh0KiBjb250ZXh0OwotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAKICAgICBjb250ZXh0ID0gYXJnOwogCi0gICAgZm9y
IChkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWRfcmVtb3RlKAorICAgIGZvciAoZGlyZWN0b3J5ID0gcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfcmVtb3RlKAogICAg
ICAgICAgICAgIGVudW1lcmF0b3IsICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAuYmFzaWNfc2l6ZV9k
aXJlY3RvcnlfYW5kX2hlYWQpOwogICAgICAgICAgZGlyZWN0b3J5OwotICAgICAgICAgZGlyZWN0
b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX3JlbW90ZSgKKyAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX3JlbW90ZSgKICAgICAgICAgICAg
ICBlbnVtZXJhdG9yLCAmZGlyZWN0b3J5LT5uZXh0X2Zvcl9oZWFwKSkKICAgICAgICAgZm9yX2Vh
Y2hfdmlldyhlbnVtZXJhdG9yLCAmZGlyZWN0b3J5LT5iYXNlLCBzaXplX2RpcmVjdG9yeV92aWV3
X2NhbGxiYWNrLCBjb250ZXh0KTsKICAgICAKQEAgLTY3OCwyMyArNjc5LDI0IEBAIGJvb2wgcGFz
X2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzKHBhc18KIAogICAgICAgICBsYXlvdXRfbm9kZSA9
IHBhc19lbnVtZXJhdG9yX3JlYWRfY29tcGFjdChlbnVtZXJhdG9yLCAqdGxjX2xheW91dF9maXJz
dF9ub2RlX3B0cik7CiAgICAgICAgIHdoaWxlIChsYXlvdXRfbm9kZSkgeworICAgICAgICAgICAg
Ym9vbCBoYXNfYWxsb2NhdG9yOwogICAgICAgICAgICAgdW5zaWduZWQgYWxsb2NhdG9yX2luZGV4
OwotICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOwogICAgICAgICAg
ICAgCi0gICAgICAgICAgICBpZiAocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkobGF5b3V0X25vZGUpKSB7Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgICAgICAg
ICBpZiAocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShsYXlvdXRfbm9k
ZSkpIHsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5OworICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGEqIGRhdGE7CiAKLSAgICAgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfdW53cmFwX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGxheW91dF9ub2RlKTsKKyAgICAgICAgICAgICAg
ICBkaXJlY3RvcnkgPSBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkobGF5b3V0
X25vZGUpOwogCi0gICAgICAgICAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX3JlbW90ZSgKKyAgICAgICAgICAgICAgICBkYXRh
ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9yZW1vdGUoCiAg
ICAgICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsICZkaXJlY3RvcnktPmRhdGEpOwogCiAgICAg
ICAgICAgICAgICAgbGF5b3V0X25vZGUgPSBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2xvYWRfcmVtb3RlKAogICAgICAgICAgICAgICAgICAgICBlbnVt
ZXJhdG9yLCAmZGF0YS0+bmV4dF9mb3JfbGF5b3V0KTsKIAogICAgICAgICAgICAgICAgIGFsbG9j
YXRvcl9pbmRleCA9IGRhdGEtPmFsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgaGFzX2FsbG9jYXRvciA9IHRydWU7CisgICAgICAgICAgICB9IGVs
c2UgaWYgKHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShsYXlv
dXRfbm9kZSkpIHsKICAgICAgICAgICAgICAgICBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRv
cl9ub2RlKiByZWR1bmRhbnRfbm9kZTsKIAogICAgICAgICAgICAgICAgIHJlZHVuZGFudF9ub2Rl
ID0gcGFzX3Vud3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobGF5b3V0X25vZGUp
OwpAQCAtNzAzLDE0ICs3MDUsMzEgQEAgYm9vbCBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVh
cHMocGFzXwogICAgICAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLCAmcmVkdW5kYW50X25vZGUt
Pm5leHQpOwogCiAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcmVkdW5kYW50X25v
ZGUtPmFsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBoYXNf
YWxsb2NhdG9yID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSogY2FjaGVfbm9kZTsKKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19pc193cmFwcGVkX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZShsYXlvdXRfbm9kZSkpOwogCi0gICAgICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4
ID49IHRsYy0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQotICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgIGNhY2hlX25vZGUgPSBwYXNfdW53cmFwX2xvY2FsX3ZpZXdf
Y2FjaGVfbm9kZShsYXlvdXRfbm9kZSk7CiAKLSAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKHRsYywgYWxsb2NhdG9y
X2luZGV4KTsKKyAgICAgICAgICAgICAgICBsYXlvdXRfbm9kZSA9IHBhc19jb21wYWN0X2F0b21p
Y190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbG9hZF9yZW1vdGUoCisgICAgICAgICAg
ICAgICAgICAgIGVudW1lcmF0b3IsICZjYWNoZV9ub2RlLT5uZXh0KTsKIAotICAgICAgICAgICAg
Y29uc2lkZXJfYWxsb2NhdG9yKGVudW1lcmF0b3IsICZjb250ZXh0LCBhbGxvY2F0b3IpOworICAg
ICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IFVJTlRfTUFYOworICAgICAgICAgICAgICAg
IGhhc19hbGxvY2F0b3IgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYg
KGhhc19hbGxvY2F0b3IpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBh
bGxvY2F0b3I7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRv
cl9pbmRleCA+PSB0bGMtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCkKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCh0bGMsIGFsbG9jYXRvcl9pbmRl
eCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY29uc2lkZXJfYWxsb2NhdG9y
KGVudW1lcmF0b3IsICZjb250ZXh0LCBhbGxvY2F0b3IpOworICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9t
ZW1vX3RhYmxlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCiAKICNp
bmNsdWRlICJwYXNfaGFzaHRhYmxlLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC01Miw3ICs1Miw3IEBAIHBhc19leGNs
dXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX2tleV9jcmUKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci10eXBlZGVmIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFzX2V4Y2x1
c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fZW50cnk7Cit0eXBlZGVmIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb19lbnRyeTsKIAog
c3RhdGljIGlubGluZSBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb19lbnRyeQogcGFz
X2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fZW50cnlfY3JlYXRlX2VtcHR5KHZvaWQpCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZnVsbF9hbGxvY19iaXRz
X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE5ICszMCwxOSBAQAogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKIAogUEFT
X0JFR0lOX0VYVEVSTl9DOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Z1bGxfYWxs
b2NfYml0cwogcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX2V4Y2x1c2l2ZSgKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewogICAgIHJldHVybiBwYXNfZnVsbF9hbGxvY19i
aXRzX2NyZWF0ZSgKICAgICAgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9sb2Fk
X25vbl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAgICAg
JmRpcmVjdG9yeS0+ZGF0YSktPmZ1bGxfYWxsb2NfYml0cyksCiAgICAgICAgIDAsCiAgICAgICAg
ICh1bnNpZ25lZClwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFn
ZV9jb25maWcpKTsKQEAgLTY0LDEwICs2NCwxMCBAQCBwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0
ZV9mb3JfcGFydGlhbChwCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Z1bGxfYWxsb2Nf
Yml0cwogcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3ZpZXdfYW5kX2RpcmVjdG9yeSgK
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2Nv
bmZpZykKIHsKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKHZp
ZXcpKQorICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKHZpZXcp
KQogICAgICAgICByZXR1cm4gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX2V4Y2x1c2l2
ZShkaXJlY3RvcnksIHBhZ2VfY29uZmlnKTsKIAogICAgIHJldHVybiBwYXNfZnVsbF9hbGxvY19i
aXRzX2NyZWF0ZV9mb3JfcGFydGlhbCh2aWV3KTsKQEAgLTc4LDkgKzc4LDkgQEAgcGFzX2Z1bGxf
YWxsb2NfYml0c19jcmVhdGVfZm9yX3ZpZXcoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewotICAgIGlm
IChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2godmlldykpIHsKLSAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKLSAg
ICAgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSkgeworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CisgICAgICAgIHNpemVfZGlyZWN0b3J5ID0gcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAg
ICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldyktPmRpcmVj
dG9yeSk7CiAgICAgICAgIHJldHVybiBwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfZXhj
bHVzaXZlKHNpemVfZGlyZWN0b3J5LCBwYWdlX2NvbmZpZyk7CiAgICAgfQpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2dldF9oZWFwLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2dldF9oZWFwLmgJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfaGVh
cC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykg
MjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
YykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBQQVNfR0VUX0hF
QVBfSAogI2RlZmluZSBQQVNfR0VUX0hFQVBfSAogCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNs
dWRlICJwYXNfaGVhcC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUg
InBhc19sYXJnZV9tYXAuaCIKQEAgLTU4LDEwICs1OCwxMCBAQCBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgcGFzX2hlYXAqIHBhc19nCiAgICAgICAgICAgICAgICAgYmVnaW4sIGNvbmZpZy5zbWFs
bF9zZWdyZWdhdGVkX2NvbmZpZyktPmhlYXApOwogICAgIGNhc2UgcGFzX3NtYWxsX2JpdGZpdF9m
YXN0X21lZ2FwYWdlX2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNfaGVhcF9mb3Jfc2VncmVnYXRl
ZF9oZWFwKAotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0
b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAgICZwYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAgICAgICAgICZw
YXNfYml0Zml0X3BhZ2VfZm9yX2FkZHJlc3NfYW5kX3BhZ2VfY29uZmlnKAotICAgICAgICAgICAg
ICAgICAgICAgICAgYmVnaW4sIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmlnKS0+b3duZXIpLT5n
bG9iYWxfZGlyZWN0b3J5KS0+aGVhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiwg
Y29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWcpLT5vd25lciktPmRpcmVjdG9yeSktPmhlYXApOwog
ICAgIGNhc2UgcGFzX25vdF9hX2Zhc3RfbWVnYXBhZ2Vfa2luZDogewogICAgICAgICBwYXNfcGFn
ZV9iYXNlKiBwYWdlX2Jhc2U7CiAgICAgICAgIHBhc19sYXJnZV9tYXBfZW50cnkgZW50cnk7CkBA
IC04NSw5ICs4NSw5IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaGVhcCogcGFzX2cK
ICAgICAgICAgICAgIGNhc2UgcGFzX21lZGl1bV9iaXRmaXRfcGFnZV9raW5kOgogICAgICAgICAg
ICAgY2FzZSBwYXNfbWFyZ2VfYml0Zml0X3BhZ2Vfa2luZDoKICAgICAgICAgICAgICAgICByZXR1
cm4gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0ZWRfaGVhcCgKLSAgICAgICAgICAgICAgICAgICAgcGFz
X2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAg
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoCiAgICAgICAgICAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZp
dF92aWV3X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZw
YXNfcGFnZV9iYXNlX2dldF9iaXRmaXQocGFnZV9iYXNlKS0+b3duZXIpLT5nbG9iYWxfZGlyZWN0
b3J5KS0+aGVhcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhc19wYWdlX2Jhc2Vf
Z2V0X2JpdGZpdChwYWdlX2Jhc2UpLT5vd25lciktPmRpcmVjdG9yeSktPmhlYXApOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgUEFTX0FTU0VSVCghIkJhZCBwYWdlIGtpbmQiKTsKICAgICAg
ICAgICAgIHJldHVybiBOVUxMOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfaGVhcC5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBA
CiAjaW5jbHVkZSAicGFzX2xvZy5oIgogI2luY2x1ZGUgInBhc19tb25vdG9uaWNfdGltZS5oIgog
I2luY2x1ZGUgInBhc19wcmltaXRpdmVfaGVhcF9yZWYuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5oIgogCiBwYXNfaGVhcCogcGFzX2hlYXBfY3JlYXRlKHBhc19oZWFwX3Jl
ZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3JlZl9raW5k
IGhlYXBfcmVmX2tpbmQsCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBwYXNfaGVhcF9yZXNldF9o
ZWFwX3JlZihwYXNfaGVhcCogaAogICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNo
ZWQiKTsKIH0KIAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgorcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX2NvdW50X3Nsb3coCiAgICAgcGFzX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGNvdW50LApA
QCAtMTkxLDExICsxOTEsMTIgQEAgcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9j
b3VudAogICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAogICAgIHVuc2lnbmVkKiBjYWNoZWRf
aW5kZXgpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiByZXN1
bHQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKICAgICAKICAg
ICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9oZWFw
X2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQoCi0gICAgICAgICZoZWFwLT5zZWdyZWdh
dGVkX2hlYXAsIGNvdW50LCBhbGlnbm1lbnQsIGZvcmNlX2NvdW50X2xvb2t1cCwgY29uZmlnLCBj
YWNoZWRfaW5kZXgpOworICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLCBjb3VudCwgYWxp
Z25tZW50LCBmb3JjZV9jb3VudF9sb29rdXAsIGNvbmZpZywgY2FjaGVkX2luZGV4LAorICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mdWxsX2NyZWF0aW9uX21vZGUpOwogICAg
IHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiAgICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuaAko
d29ya2luZyBjb3B5KQpAQCAtMzUsMTEgKzM1LDExIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAog
c3RydWN0IHBhc19oZWFwOwogc3RydWN0IHBhc19oZWFwX3JlZjsKLXN0cnVjdCBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKIHR5cGVkZWYgc3RydWN0IHBh
c19oZWFwIHBhc19oZWFwOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfcmVmIHBhc19oZWFwX3Jl
ZjsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsK
IHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsK
IAogc3RydWN0IHBhc19oZWFwIHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaAkod29ya2luZyBj
b3B5KQpAQCAtMzksNyArMzksNyBAQAogI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZ19raW5kLmgi
CiAjaW5jbHVkZSAicGFzX2hlYXBfcmVmLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfcmVmX2tpbmQu
aCIKLSNpbmNsdWRlICJwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmgiCisjaW5jbHVk
ZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9sb29rdXBfa2luZC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgi
CiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCkBAIC04Niw3ICs4Niw4IEBAIHR5cGVkZWYgYm9vbCAo
KnBhc19oZWFwX2NvbmZpZ19mb3JfZWFjaF8KIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0
CiAoKnBhc19oZWFwX2NvbmZpZ19zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9j
YXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfc2xvdykoCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxs
b2NhdG9yLAotICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpOworICAgIHBhc19hbGxv
Y2F0b3JfY291bnRzKiBjb3VudHMsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciBy
ZXN1bHRfZmlsdGVyKTsKIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiAoKnBhc19oZWFw
X2NvbmZpZ19zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX21lZGl1bV9z
ZWdyZWdhdGVkX3dpdGhfZnJlZV9iaXRzKSgKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxv
Y2F0b3IpOwpAQCAtOTYsOCArOTcsOSBAQCB0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAo
KnBhc19oZWFwCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgIHNpemVf
dCBzaXplLAogICAgIHNpemVfdCBhbGlnbm1lbnQsCi0gICAgcGFzX2FsbG9jYXRvcl9jb3VudHMq
IGNvdW50cyk7Ci10eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNf
aGVhcF9jb25maWdfc3BlY2lhbGl6ZWRfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3cpKAor
ICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsCisgICAgcGFzX2FsbG9jYXRpb25fcmVz
dWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKTsKK3R5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0
ICgqcGFzX2hlYXBfY29uZmlnX3NwZWNpYWxpemVkX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9z
bG93KSgKICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgIHBhc19oZWFwX3JlZl9raW5k
IGhlYXBfcmVmX2tpbmQsCiAgICAgc2l6ZV90IGFsaWduZWRfY291bnQsIC8qIE11c3QgYmUgPSBy
b3VuZF91cChjb3VudCAqIHR5cGVfc2l6ZSwgYWxpZ25tZW50KSAvIHR5cGVfc2l6ZSAqLwpAQCAt
MjAwLDcgKzIwMiw4IEBAIHN0cnVjdCBwYXNfaGVhcF9jb25maWcgewogI2RlZmluZSBQQVNfSEVB
UF9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVDTEFSQVRJT05TKGxvd2VyX2Nhc2VfaGVhcF9jb25m
aWdfbmFtZSkgXAogICAgIFBBU19BUEkgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBsb3dl
cl9jYXNlX2hlYXBfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9zbG93KCBcCi0gICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50KTsgXAorICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIHBhc19hbGxvY2F0b3JfY291bnRz
KiBjb3VudCwgXAorICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9m
aWx0ZXIpOyBcCiAgICAgUEFTX0FQSSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIGxvd2Vy
X2Nhc2VfaGVhcF9jb25maWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3Ry
eV9hbGxvY2F0ZV9pbmxpbmVfY2FzZXMoIFwKICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciog
YWxsb2NhdG9yKTsgXApAQCAtMjEyLDggKzIxNSw5IEBAIHN0cnVjdCBwYXNfaGVhcF9jb25maWcg
ewogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIFwKICAgICAgICAgc2l6
ZV90IHNpemUsIFwKICAgICAgICAgc2l6ZV90IGFsaWdubWVudCwgXAotICAgICAgICBwYXNfYWxs
b2NhdG9yX2NvdW50cyogY291bnRzKTsgXAotICAgIFBBU19BUEkgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdCBcCisgICAgICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsIFwK
KyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKTsgXAor
ICAgIFBBU19BUEkgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBsb3dlcl9jYXNlX2hlYXBf
Y29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93
KCBcCiAgICAgICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIFwKICAgICAgICAgcGFzX2hlYXBf
cmVmX2tpbmQgaGVhcF9yZWZfa2luZCwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfaW5saW5lcy5oCShyZXZp
c2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVh
cF9jb25maWdfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMCArMzYsMTEgQEAgUEFT
X0JFR0lOX0VYVEVSTl9DOwogI2RlZmluZSBQQVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05f
REVGSU5JVElPTlMobG93ZXJfY2FzZV9oZWFwX2NvbmZpZ19uYW1lLCBoZWFwX2NvbmZpZ192YWx1
ZSkgXAogICAgIFBBU19ORVZFUl9JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBs
b3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9zbG93KCBcCi0gICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50KSBcCisg
ICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX2FsbG9jYXRvcl9jb3Vu
dHMqIGNvdW50LCBcCisgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0
X2ZpbHRlcikgXAogICAgIHsgXAogICAgICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9zbG93KCBcCi0gICAgICAgICAgICBhbGxvY2F0
b3IsIChoZWFwX2NvbmZpZ192YWx1ZSksIGNvdW50KTsgXAorICAgICAgICAgICAgYWxsb2NhdG9y
LCAoaGVhcF9jb25maWdfdmFsdWUpLCBjb3VudCwgcmVzdWx0X2ZpbHRlcik7IFwKICAgICB9IFwK
ICAgICBcCiAgICAgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXApAQCAt
NjIsMTMgKzYzLDE0IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yLCBcCiAgICAgICAgIHNpemVfdCBzaXplLCBcCiAgICAgICAgIHNp
emVfdCBhbGlnbm1lbnQsIFwKLSAgICAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cykg
XAorICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzLCBcCisgICAgICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcikgXAogICAgIHsgXAogICAgICAg
ICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc2xvdyggXAotICAgICAg
ICAgICAgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQsIChoZWFwX2NvbmZpZ192YWx1ZSksIGNv
dW50cyk7IFwKKyAgICAgICAgICAgIGFsbG9jYXRvciwgc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9j
b25maWdfdmFsdWUpLCBjb3VudHMsIHJlc3VsdF9maWx0ZXIpOyBcCiAgICAgfSBcCiAgICAgXAot
ICAgIFBBU19ORVZFUl9JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBcCisg
ICAgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIGxvd2VyX2Nh
c2VfaGVhcF9jb25maWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfdHJ5X2FsbG9jYXRlX2NvbW1vbl9p
bXBsX3Nsb3coIFwKICAgICAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgXAogICAgICAgICBw
YXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9raW5kLCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaAko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2hlYXBfY29uZmlnX3V0aWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDggQEAgdHlw
ZWRlZiBzdHJ1Y3QgewogICAgIHNpemVfdCBzbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZTsKICAg
ICBkb3VibGUgc21hbGxfc2VncmVnYXRlZF93YXN0ZWFnZV9oYW5kaWNhcDsKICAgICBib29sIHNt
YWxsX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9u
OwotICAgIGJvb2wgc21hbGxfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZDsKKyAgICBib29sIHNt
YWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZDsKKyAgICBib29sIGVuYWJs
ZV92aWV3X2NhY2hlOwogICAgIGJvb2wgdXNlX3NtYWxsX2JpdGZpdDsKICAgICB1aW50OF90IHNt
YWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQ7CiAgICAgc2l6ZV90IHNtYWxsX2JpdGZpdF9wYWdl
X3NpemU7CkBAIC0xMzQsMTAgKzEzNSwxMiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgICAg
ICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxf
c2VncmVnYXRlZF93YXN0ZWFnZV9oYW5kaWNhcCwgXAogICAgICAgICAuZGVhbGxvY19mdW5jID0g
bmFtZSAjIyBfc21hbGxfc2VncmVnYXRlZF9kZWFsbG9jX2Z1bmMsIFwKICAgICAgICAgLnVzZV9y
ZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBcCi0gICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2Nv
bmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfdXNlX3JldmVyc2VkX2N1cnJlbnRf
d29yZCwgXAorICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtf
X1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCwg
XAogICAgICAgICAuY2hlY2tfZGVhbGxvY2F0aW9uID0gKChwYXNfYmFzaWNfaGVhcF9jb25maWdf
YXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLmNoZWNrX2RlYWxsb2NhdGlvbiwgXAogICAgICAgICAu
ZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0gXAogICAgICAgICAg
ICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxs
X3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uLCBc
CisgICAgICAgIC5lbmFibGVfdmlld19jYWNoZSA9IFwKKyAgICAgICAgICAgICgocGFzX2Jhc2lj
X2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5lbmFibGVfdmlld19jYWNoZSwg
XAogICAgICAgICAuc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yID0gXAogICAgICAgICAg
ICAgbmFtZSAjIyBfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19zZWxlY3Rfc2hhcmVkX3Bh
Z2VfZGlyZWN0b3J5LCBcCiAgICAgICAgIFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX1NQRUNJ
QUxJWkFUSU9OUyhuYW1lICMjIF9zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKSBcCkBAIC0x
ODUsNiArMTg4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAudXNlX3JldmVyc2VkX2N1
cnJlbnRfd29yZCA9IGZhbHNlLCBcCiAgICAgICAgIC5jaGVja19kZWFsbG9jYXRpb24gPSAoKHBh
c19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuY2hlY2tfZGVhbGxv
Y2F0aW9uLCBcCiAgICAgICAgIC5lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6
YXRpb24gPSBmYWxzZSwgXAorICAgICAgICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSBcCisgICAgICAg
ICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuZW5h
YmxlX3ZpZXdfY2FjaGUsIFwKICAgICAgICAgLnNoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3Rv
ciA9IFwKICAgICAgICAgICAgIG5hbWUgIyMgX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X3NlbGVjdF9zaGFyZWRfcGFnZV9kaXJlY3RvcnksIFwKICAgICAgICAgUEFTX1NFR1JFR0FURURf
UEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05TKG5hbWUgIyMgX21lZGl1bV9zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnKSBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
aGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFw
X2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAg
UEFTX0FQSSB2b2lkKiBwYXNfaGVhcF9jb25maWdfdXRpbHNfcHJlcAogCiB0eXBlZGVmIHN0cnVj
dCB7CiAgICAgYm9vbCBhbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvOworICAgIHBhc19oZWFwX3J1
bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplX2NhbGxiYWNr
IGludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eTsKIH0gcGFzX2Jhc2ljX2hl
YXBfY29uZmlnX2RlZmluaXRpb25zX2FyZ3VtZW50czsKIAogI2RlZmluZSBQQVNfQkFTSUNfSEVB
UF9DT05GSUdfREVGSU5JVElPTlMobmFtZSwgdXBjYXNlX25hbWUsIC4uLikgXApAQCAtNjUsMTAg
KzY2LDE0IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgICAgICAgICBQQVNfSU5UUklOU0lD
X1BSSU1JVElWRV9CT1VORF9GT1JfUEFSVElBTF9WSUVXUywgXAogICAgICAgICAgICAgLmRpcmVj
dG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0gXAogICAgICAgICAgICAg
ICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JT
LCBcCisgICAgICAgICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUg
PSBcCisgICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfQk9VTkRfRk9SX05P
X1ZJRVdfQ0FDSEUsIFwKICAgICAgICAgICAgIC5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9
IFwKICAgICAgICAgICAgICAgICBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9NQVhfU0VHUkVHQVRF
RF9PQkpFQ1RfU0laRSwgXAogICAgICAgICAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBc
Ci0gICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX0JJVEZJVF9PQkpF
Q1RfU0laRSBcCisgICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX0JJ
VEZJVF9PQkpFQ1RfU0laRSwgXAorICAgICAgICAgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9y
X29iamVjdF9zaXplID0gXAorICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmln
X2RlZmluaXRpb25zX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5pbnRyaW5zaWNfcHJpbWl0aXZl
X3ZpZXdfY2FjaGVfY2FwYWNpdHksIFwKICAgICAgICAgfSwgXAogICAgICAgICAucGFnZV9jYWNo
ZXMgPSAmbmFtZSAjIyBfcGFnZV9jYWNoZXMgXAogICAgIH07IFwKQEAgLTgzLDEwICs4OCwxMyBA
QCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9CT1VORF9G
T1JfUEFSVElBTF9WSUVXUywgXAogICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zv
cl9iYXNlbGluZV9hbGxvY2F0b3JzID0gXAogICAgICAgICAgICAgICAgIFBBU19QUklNSVRJVkVf
Qk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMsIFwKKyAgICAgICAgICAgIC5kaXJlY3Rvcnlf
c2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IFwKKyAgICAgICAgICAgICAgICBQQVNfUFJJ
TUlUSVZFX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFLCBcCiAgICAgICAgICAgICAubWF4X3NlZ3Jl
Z2F0ZWRfb2JqZWN0X3NpemUgPSBcCiAgICAgICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9NQVhf
U0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwgXAogICAgICAgICAgICAgLm1heF9iaXRmaXRfb2JqZWN0
X3NpemUgPSBcCi0gICAgICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9NQVhfQklURklUX09CSkVD
VF9TSVpFIFwKKyAgICAgICAgICAgICAgICBQQVNfUFJJTUlUSVZFX01BWF9CSVRGSVRfT0JKRUNU
X1NJWkUsIFwKKyAgICAgICAgICAgIC52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6
ZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSwgXAog
ICAgICAgICB9LCBcCiAgICAgICAgIC5wYWdlX2NhY2hlcyA9ICZuYW1lICMjIF9wYWdlX2NhY2hl
cyBcCiAgICAgfTsgXApAQCAtMTAxLDEwICsxMDksMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAg
ICAgICAgICAgICAgIFBBU19UWVBFRF9CT1VORF9GT1JfUEFSVElBTF9WSUVXUywgXAogICAgICAg
ICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0gXAog
ICAgICAgICAgICAgICAgIFBBU19UWVBFRF9CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUywg
XAorICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0g
XAorICAgICAgICAgICAgICAgIFBBU19UWVBFRF9CT1VORF9GT1JfTk9fVklFV19DQUNIRSwgXAog
ICAgICAgICAgICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gXAogICAgICAgICAgICAg
ICAgIFBBU19UWVBFRF9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwgXAogICAgICAgICAgICAg
Lm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBcCi0gICAgICAgICAgICAgICAgUEFTX1RZUEVEX01B
WF9CSVRGSVRfT0JKRUNUX1NJWkUgXAorICAgICAgICAgICAgICAgIFBBU19UWVBFRF9NQVhfQklU
RklUX09CSkVDVF9TSVpFLCBcCisgICAgICAgICAgICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jf
b2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2Fw
YWNpdHksIFwKICAgICAgICAgfSwgXAogICAgICAgICAucGFnZV9jYWNoZXMgPSAmbmFtZSAjIyBf
cGFnZV9jYWNoZXMgXAogICAgIH07IFwKQEAgLTExOSwxMCArMTMwLDEzIEBAIHR5cGVkZWYgc3Ry
dWN0IHsKICAgICAgICAgICAgICAgICBQQVNfT0JKQ19CT1VORF9GT1JfUEFSVElBTF9WSUVXUywg
XAogICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0
b3JzID0gXAogICAgICAgICAgICAgICAgIFBBU19PQkpDX0JPVU5EX0ZPUl9CQVNFTElORV9BTExP
Q0FUT1JTLCBcCisgICAgICAgICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdf
Y2FjaGUgPSBcCisgICAgICAgICAgICAgICAgUEFTX09CSkNfQk9VTkRfRk9SX05PX1ZJRVdfQ0FD
SEUsIFwKICAgICAgICAgICAgIC5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IFwKICAgICAg
ICAgICAgICAgICBQQVNfT0JKQ19NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwgXAogICAgICAg
ICAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBcCi0gICAgICAgICAgICAgICAgUEFTX09C
SkNfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSBcCisgICAgICAgICAgICAgICAgUEFTX09CSkNfTUFY
X0JJVEZJVF9PQkpFQ1RfU0laRSwgXAorICAgICAgICAgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlf
Zm9yX29iamVjdF9zaXplID0gcGFzX2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hl
X2NhcGFjaXR5LCBcCiAgICAgICAgIH0sIFwKICAgICAgICAgLnBhZ2VfY2FjaGVzID0gJm5hbWUg
IyMgX3BhZ2VfY2FjaGVzIFwKICAgICB9OyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaGVhcF9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9pbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwog
Ci1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK1BBU19BUEkg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJl
Y3RvcnlfZm9yX2NvdW50X3Nsb3coCiAgICAgcGFzX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGNv
dW50LApAQCAtNDMsNyArNDMsNyBAQCBwYXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9y
X2NvdW50CiAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCiAgICAgdW5zaWduZWQqIGNhY2hl
ZF9pbmRleCk7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2Nv
dW50KAogICAgIHBhc19oZWFwKiBoZWFwLAogICAgIHNpemVfdCBjb3VudCwKQEAgLTU1LDcgKzU1
LDcgQEAgcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudAogewogICAgIHN0
YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogcmVzdWx0OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiByZXN1bHQ7CiAKICAgICBQQVNfVU5VU0VEX1BBUkFNKGNvdW50cyk7CiAgICAgCkBA
IC02Niw3ICs2Niw3IEBAIHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQK
ICAgICAKICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZGlyZWN0b3J5X2Zv
cl9jb3VudCgKICAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwgY291bnQsIGNvbmZpZywg
Y2FjaGVkX2luZGV4KTsKLSAgICBpZiAocmVzdWx0ICYmIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0KSA+PSBhbGlnbm1lbnQpCisgICAgaWYgKHJl
c3VsdCAmJiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0KSA+
PSBhbGlnbm1lbnQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKICNpZiBQQVNfRU5BQkxFX1RF
U1RJTkcKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1
bnRpbWVfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25maWcuYwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19F
TkFCTEVECisKKyNpbmNsdWRlICJwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIgorCisjaW5jbHVk
ZSAicGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5oIgorCit1aW50OF90IHBh
c19oZWFwX3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXpl
KAorICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBjb25maWcsCisgICAgc2l6ZV90IG9iamVj
dF9zaXplLAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykKK3sK
KyAgICBzaXplX3QgcmVzdWx0OworCisgICAgcmVzdWx0ID0gY29uZmlnLT52aWV3X2NhY2hlX2Nh
cGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZShvYmplY3Rfc2l6ZSwgcGFnZV9jb25maWcpOworCisgICAg
UEFTX0FTU0VSVCgodWludDhfdClyZXN1bHQgPT0gcmVzdWx0KTsKKyAgICByZXR1cm4gKHVpbnQ4
X3QpcmVzdWx0OworfQorCitzaXplX3QgcGFzX2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3
X2NhY2hlX2NhcGFjaXR5KAorICAgIHNpemVfdCBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKQoreworICAgIFBBU19VTlVTRURfUEFSQU0ob2JqZWN0
X3NpemUpOworICAgIFBBU19VTlVTRURfUEFSQU0ocGFnZV9jb25maWcpOworICAgIHJldHVybiAw
OworfQorCitzaXplX3QgcGFzX2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2Nh
Y2hlX2NhcGFjaXR5KAorICAgIHNpemVfdCBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcqIHBhZ2VfY29uZmlnKQoreworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY2FjaGVf
c2l6ZSA9IDE2Mzg0MDA7CisKKyAgICBQQVNfVU5VU0VEX1BBUkFNKG9iamVjdF9zaXplKTsKKwor
ICAgIFBBU19BU1NFUlQocGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplIDwgY2FjaGVfc2l6ZSk7
CisKKyAgICByZXR1cm4gY2FjaGVfc2l6ZSAvIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZTsK
K30KKworI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1bnRpbWVfY29uZmlnLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25m
aWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXBfcnVudGltZV9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4
LDE4IEBACiAKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCIKICNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9raW5kLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgogCiBQQVNf
QkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKK3N0cnVj
dCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZzsKIHR5cGVkZWYgc3RydWN0IHBhc19oZWFwX3J1
bnRpbWVfY29uZmlnIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnOwordHlwZWRlZiBzdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWc7CisKK3R5
cGVkZWYgc2l6ZV90ICgqcGFzX2hlYXBfcnVudGltZV9jb25maWdfdmlld19jYWNoZV9jYXBhY2l0
eV9mb3Jfb2JqZWN0X3NpemVfY2FsbGJhY2spKAorICAgIHNpemVfdCBvYmplY3Rfc2l6ZSwgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKIAogc3RydWN0IHBhc19oZWFw
X3J1bnRpbWVfY29uZmlnIHsKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9raW5kIGxv
b2t1cF9raW5kIDogODsKQEAgLTQ0LDEyICs1MCwyOCBAQCBzdHJ1Y3QgcGFzX2hlYXBfcnVudGlt
ZV9jb25maWcgewogICAgIAogICAgIHVuc2lnbmVkIGRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9w
YXJ0aWFsX3ZpZXdzOwogICAgIHVuc2lnbmVkIGRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNl
bGluZV9hbGxvY2F0b3JzOworICAgIHVuc2lnbmVkIGRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9u
b192aWV3X2NhY2hlOwogCiAgICAgLyogSXQncyBPSyB0byBzZXQgdGhlc2UgdG8gVUlOVF9NQVgs
IGluIHdoaWNoIGNhc2UgdGhlIG1heGltdW0gaXMgZGVjaWRlZCBieSB0aGUgaGVhcF9jb25maWcu
ICovCiAgICAgdW5zaWduZWQgbWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemU7CiAgICAgdW5zaWdu
ZWQgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZTsKKworICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmln
X3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplX2NhbGxiYWNrIHZpZXdfY2FjaGVf
Y2FwYWNpdHlfZm9yX29iamVjdF9zaXplOwogfTsKIAorUEFTX0FQSSB1aW50OF90IHBhc19oZWFw
X3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplKAorICAg
IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBjb25maWcsCisgICAgc2l6ZV90IG9iamVjdF9zaXpl
LAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7CisKK1BBU19B
UEkgc2l6ZV90IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0
eSgKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcqIHBhZ2VfY29uZmlnKTsKKworUEFTX0FQSSBzaXplX3QgcGFzX2hlYXBfcnVudGltZV9jb25m
aWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5KAorICAgIHNpemVfdCBvYmplY3Rfc2l6
ZSwKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOworCiBQQVNf
RU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0hFQVBfUlVOVElNRV9DT05GSUdfSCAqLwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZp
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19p
bnRlcm5hbF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDgsMjYgKzE0OCwzMSBAQAogCiAjZGVmaW5lIFBBU19VVElMSVRZX0JPVU5EX0ZPUl9QQVJUSUFM
X1ZJRVdTICAgICAgICAgICAgICAgICAgICAgMAogI2RlZmluZSBQQVNfVVRJTElUWV9CT1VORF9G
T1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAgICAgICAgICAgICAgIDAKKyNkZWZpbmUgUEFTX1VUSUxJ
VFlfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUgICAgICAgICAgICAgICAgICAgICBVSU5UX01BWAog
I2RlZmluZSBQQVNfVVRJTElUWV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSAgICAgICAgICAg
ICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBBU19VVElMSVRZX01BWF9CSVRGSVRfT0JKRUNUX1NJ
WkUgICAgICAgICAgICAgICAgICAgICAgMAogCiAjZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJTUlU
SVZFX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTICAgICAgICAgMAogI2RlZmluZSBQQVNfSU5UUklO
U0lDX1BSSU1JVElWRV9CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAgIDAKKyNkZWZpbmUg
UEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUgICAgICAgICAw
CiAjZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX01BWF9TRUdSRUdBVEVEX09CSkVDVF9T
SVpFICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX0JJ
VEZJVF9PQkpFQ1RfU0laRSAgICAgICAgICBVSU5UX01BWAogCiAjZGVmaW5lIFBBU19QUklNSVRJ
VkVfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MgICAgICAgICAgICAgICAgICAgMAogI2RlZmluZSBQ
QVNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTICAgICAgICAgICAgIDAK
KyNkZWZpbmUgUEFTX1BSSU1JVElWRV9CT1VORF9GT1JfTk9fVklFV19DQUNIRSAgICAgICAgICAg
ICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfUFJJTUlUSVZFX01BWF9TRUdSRUdBVEVEX09C
SkVDVF9TSVpFICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBBU19QUklNSVRJVkVf
TUFYX0JJVEZJVF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICAgICAgVUlOVF9NQVgKIAogI2Rl
ZmluZSBQQVNfVFlQRURfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MgICAgICAgICAgICAgICAgICAg
ICAgIDEwCiAjZGVmaW5lIFBBU19UWVBFRF9CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAg
ICAgICAgICAgICAgICAgMAorI2RlZmluZSBQQVNfVFlQRURfQk9VTkRfRk9SX05PX1ZJRVdfQ0FD
SEUgICAgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBBU19UWVBFRF9NQVhf
U0VHUkVHQVRFRF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZp
bmUgUEFTX1RZUEVEX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICAgICAg
ICAwCiAKICNkZWZpbmUgUEFTX09CSkNfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MgICAgICAgICAg
ICAgICAgICAgICAgICAxMAogI2RlZmluZSBQQVNfT0JKQ19CT1VORF9GT1JfQkFTRUxJTkVfQUxM
T0NBVE9SUyAgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIFBBU19PQkpDX0JPVU5EX0ZPUl9O
T19WSUVXX0NBQ0hFICAgICAgICAgICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFT
X09CSkNfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICAgICBVSU5U
X01BWAogI2RlZmluZSBQQVNfT0JKQ19NQVhfQklURklUX09CSkVDVF9TSVpFICAgICAgICAgICAg
ICAgICAgICAgICAgIDAKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQu
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oCShub25leGlzdGVudCkKQEAgLTEsMTA5
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
I2lmbmRlZiBQQVNfSU5UUklOU0lDX0FMTE9DQVRJT05fUkVTVUxUX0gKLSNkZWZpbmUgUEFTX0lO
VFJJTlNJQ19BTExPQ0FUSU9OX1JFU1VMVF9ICi0KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1
ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIgotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLSNp
bmNsdWRlICJwYXNfdXRpbHMuaCIKLSNpbmNsdWRlICJwYXNfemVyb19tb2RlLmgiCi0KLVBBU19C
RUdJTl9FWFRFUk5fQzsKLQotLyogV2Uga2VlcCB0aGlzIHNlcGFyYXRlIGZyb20gcGFzX2FsbG9j
YXRpb25fcmVzdWx0IHNpbmNlIHRoaXMgaXMgc3VwcG9zZWQgdG8gYmUgYWJsZSB0bwotICAgY29t
bXVuaWNhdGUgYW55IG90aGVyIG1ldGEtZGF0YSB0aGF0IHRoZSBpbnRyaW5zaWMvcHJpbWl0aXZl
IGFsbG9jYXRvciBoYXMgYXZhaWxhYmxlLiBBdAotICAgb25lIHBvaW50IHRoYXQgaW5jbHVkZWQg
dGhlIG9iamVjdF9zaXplX21vZGUsIGJ1dCB0aGF0J3Mgbm8gbG9uZ2VyIHRoZSBjYXNlLgotCi0g
ICBJZiB3ZSBnbyBhIGxvbmcgdGltZSB3aXRob3V0IGFkZGluZyBhZGRpdGlvbmFsIGZpZWxkcyB0
byB0aGlzIHRvIGRpc3Rpbmd1aXNoIGl0IGZyb20KLSAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCB0
aGVuIHdlIHNob3VsZCBwcm9iYWJseSBnZXQgcmlkIG9mIHRoaXMuICovCi0KLXN0cnVjdCBwYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdCBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0OwotCi1z
dHJ1Y3QgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCB7Ci0gICAgdm9pZCogcHRyOwot
ICAgIGJvb2wgZGlkX3N1Y2NlZWQ7Ci0gICAgcGFzX3plcm9fbW9kZSB6ZXJvX21vZGU7Ci19Owot
Ci1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dAotcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZW1wdHkodm9pZCkKLXsK
LSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKLSAgICByZXN1bHQu
ZGlkX3N1Y2NlZWQgPSBmYWxzZTsKLSAgICByZXN1bHQuemVyb19tb2RlID0gcGFzX3plcm9fbW9k
ZV9tYXlfaGF2ZV9ub25femVybzsKLSAgICByZXN1bHQucHRyID0gTlVMTDsKLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUocGFz
X2FsbG9jYXRpb25fcmVzdWx0IGFsbG9jYXRpb25fcmVzdWx0KQotewotICAgIHBhc19pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwotICAgIHJlc3VsdC5wdHIgPSAodm9pZCopYWxs
b2NhdGlvbl9yZXN1bHQuYmVnaW47Ci0gICAgcmVzdWx0LmRpZF9zdWNjZWVkID0gYWxsb2NhdGlv
bl9yZXN1bHQuZGlkX3N1Y2NlZWQ7Ci0gICAgcmVzdWx0Lnplcm9fbW9kZSA9IGFsbG9jYXRpb25f
cmVzdWx0Lnplcm9fbW9kZTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eShwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0IHJlc3VsdCkKLXsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVz
dWx0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQot
ewotICAgIGlmIChyZXN1bHQuZGlkX3N1Y2NlZWQKLSAgICAgICAgJiYgcmVzdWx0Lnplcm9fbW9k
ZSA9PSBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvKQotICAgICAgICBwYXNfemVyb19t
ZW1vcnkocmVzdWx0LnB0ciwgc2l6ZSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKLXBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKAotICAgIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQotewotICAgIGlmICghcmVzdWx0LmRpZF9zdWNjZWVk
KQotICAgICAgICBlcnJubyA9IEVOT01FTTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAotcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcigKLSAgICBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKLXsKLSAgICBQQVNfQVNTRVJUKHJlc3Vs
dC5kaWRfc3VjY2VlZCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotUEFTX0VORF9FWFRFUk5f
QzsKLQotI2VuZGlmIC8qIFBBU19JTlRSSU5TSUNfQUxMT0NBVElPTl9SRVNVTFRfSCAqLwotCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2hlYXBf
c3VwcG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgUEFTX0lOVFJJTlNJQ19I
RUFQX1NVUFBPUlRfSAogCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgotI2luY2x1
ZGUgInBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHIuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHIuaCIKICNpbmNsdWRlICJwYXNfaW50ZXJuYWxfY29uZmlnLmgiCiAjaW5jbHVkZSAi
cGFzX3V0aWxzLmgiCiAKQEAgLTM3LDcgKzM3LDcgQEAgc3RydWN0IHBhc19pbnRyaW5zaWNfaGVh
cF9zdXBwb3J0OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQgcGFz
X2ludHJpbnNpY19oZWFwX3N1cHBvcnQ7CiAKIHN0cnVjdCBwYXNfaW50cmluc2ljX2hlYXBfc3Vw
cG9ydCB7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0ciBpbmRleF90b19zaXplX2RpcmVjdG9yeVsKKyAgICBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIgaW5kZXhfdG9fc2l6ZV9kaXJlY3Rvcnlb
CiAgICAgICAgIFBBU19OVU1fSU5UUklOU0lDX1NJWkVfQ0xBU1NFU107CiAgICAgcGFzX2FsbG9j
YXRvcl9pbmRleCBpbmRleF90b19hbGxvY2F0b3JfaW5kZXhbUEFTX05VTV9JTlRSSU5TSUNfU0la
RV9DTEFTU0VTXTsKIH07CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNh
bF9wYWdlX3NoYXJpbmdfY2FjaGUuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5n
X2NhY2hlLmMJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgcGFzX2Fs
aWduZWRfYWxsb2NhdGlvbl9yZXN1bHQgbGFyCiAgICAgICAgICAgICAgICAgICAgIChjaGFyKilh
bGxvY2F0aW9uX3Jlc3VsdC5iZWdpbiArIGFsaWduZWRfc2l6ZSk7CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKCZhbGxvY2F0aW9uX3Jlc3Vs
dCwgYWxpZ25lZF9zaXplKTsKKyAgICAgICAgYWxsb2NhdGlvbl9yZXN1bHQgPSBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfemVybyhhbGxvY2F0aW9uX3Jlc3VsdCwgYWxpZ25lZF9zaXplKTsKICAgICB9
CiAKICAgICBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0X2FwcGVuZCgKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9y
LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sb2NhbF9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpAQCAtMzMsMTYgKzMzLDIzIEBA
CiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFz
X3JhY2VfdGVzdF9ob29rcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2UuaCIKLSNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKLSNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKICNp
bmNsdWRlICJwYXNfdXRpbGl0eV9oZWFwLmgiCiAKLXVpbnQ4X3QgcGFzX2xvY2FsX2FsbG9jYXRv
cl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZCA9IDU7CisjaWYgUEFTX0xPQ0FMX0FMTE9D
QVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCitkb3VibGUgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZWZpbGxfZWZmaWNpZW5jeV9zdW0gPSAwLjsKK2RvdWJsZSBwYXNfbG9jYWxfYWxsb2NhdG9y
X3JlZmlsbF9lZmZpY2llbmN5X24gPSAwLjsKK1BBU19ERUZJTkVfTE9DSyhwYXNfbG9jYWxfYWxs
b2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5KTsKKyNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9S
X01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KIAogdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9y
X2NvbnN0cnVjdChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKKworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGFfY29uc3RydWN0KAorICAgICAgICAmYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YSwgcGFz
X2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZCk7CiAgICAgCiAgICAgYWxsb2NhdG9yLT5w
YXlsb2FkX2VuZCA9IDA7CiAgICAgYWxsb2NhdG9yLT5yZW1haW5pbmcgPSAwOwpAQCAtNTYsMzAg
KzYzLDIzIEBAIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QocGFzX2wKICAgICBh
bGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0ID0gMDsKICAgICBhbGxvY2F0b3ItPmVuZF9vZmZzZXQg
PSAwOwogICAgIAotICAgIGFsbG9jYXRvci0+dmlldyA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9hc192aWV3KGRpcmVjdG9yeSk7CisgICAgYWxsb2NhdG9yLT52aWV3ID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXNfdmlldyhkaXJlY3RvcnkpOwogICAgIGFs
bG9jYXRvci0+Y29uZmlnX2tpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2Ny
ZWF0ZV9ub3JtYWwoCiAgICAgICAgIGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsK
ICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3IgJXAgaGFzIGtp
bmQgJXNcbiIsCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9jYWxfYWxsb2NhdG9y
X2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5jb25maWdfa2luZCksICJcbiIpOwor
ICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3IgJXAgaGFzIGtpbmQgJXMsIGVuZHMgYXQgJXBcbiIs
CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19r
aW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5jb25maWdfa2luZCksCisgICAgICAgICAgICAgICAg
KGNoYXIqKWFsbG9jYXRvciArIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2Fs
bG9jYXRvcl9zaXplKGRpcmVjdG9yeSkpOwogICAgIH0KICAgICAKLSAgICBhbGxvY2F0b3ItPmlz
X2luX3VzZSA9IGZhbHNlOwotICAgIGFsbG9jYXRvci0+c2hvdWxkX3N0b3BfY291bnQgPSAwOwot
ICAgIGFsbG9jYXRvci0+ZGlydHkgPSBmYWxzZTsKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfd29y
ZF9pc192YWxpZCA9IGZhbHNlOwogfQogCi12b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVzdHJ1
Y3QocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKQotewotICAgIFBBU19VTlVTRURfUEFS
QU0oYWxsb2NhdG9yKTsKLX0KLQogdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc2V0KHBhc19s
b2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcikKIHsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5OwogCi0gICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyk7CisgICAgZGlyZWN0b3J5
ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3
KTsKIAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzZXRfaW1wbChhbGxvY2F0b3IsIGRpcmVj
dG9yeSwgZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogfQpAQCAtODgsMTMgKzg4
LDEzIEBAIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9tb3ZlKHBhc19sb2NhbF8KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIHNyYykKIHsKICAgICBz
aXplX3Qgc2l6ZTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5Owog
ICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3OwogICAgIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFyZWRfdmlldzsKIAotICAgIGRpcmVjdG9yeSA9IHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeShzcmMtPnZpZXcpOwor
ICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHNy
Yy0+dmlldyk7CiAgICAgCi0gICAgc2l6ZSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZShkaXJlY3RvcnkpOworICAgIHNpemUgPSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZShkaXJlY3Rvcnkp
OwogICAgIAogICAgIG1lbWNweShkc3QsIHNyYywgc2l6ZSk7CiAKQEAgLTEzMSwxMyArMTMxLDEx
IEBAIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9iaXQKIAogdm9pZCBwYXNf
bG9jYWxfYWxsb2NhdG9yX2ZpbmlzaF9yZWZpbGxfd2l0aF9iaXRmaXQoCiAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvciogYWxsb2NhdG9yLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogc2l6ZV9kaXJlY3RvcnksCi0gICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSkKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpCiB7CiAgICAg
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogICAgIHBhc19iaXRmaXRf
YWxsb2NhdG9yKiBiaXRmaXQ7Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogZ2xv
YmFsX3NpemVfY2xhc3M7CiAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNzOwog
ICAgIHBhc19iaXRmaXRfdmlldyogYml0Zml0X3ZpZXc7CiAgICAgcGFzX2JpdGZpdF9wYWdlX2Nv
bmZpZ19raW5kIGJpdGZpdF9raW5kOwpAQCAtMTQ4LDI4ICsxNDYsMjEgQEAgdm9pZCBwYXNfbG9j
YWxfYWxsb2NhdG9yX2ZpbmlzaF9yZWZpbGxfdwogICAgICAgICAgICAgICAgIGFsbG9jYXRvciwg
c2l6ZV9kaXJlY3RvcnkpOwogICAgIH0KICAgICAKLSAgICBnbG9iYWxfc2l6ZV9jbGFzcyA9IHBh
c19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyX2xvYWRfbm9uX251
bGwoCisgICAgc2l6ZV9jbGFzcyA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFz
c19wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgJnNpemVfZGlyZWN0b3J5LT5iaXRmaXRfc2l6
ZV9jbGFzcyk7CiAgICAgCi0gICAgYml0Zml0X2tpbmQgPSBwYXNfY29tcGFjdF9iaXRmaXRfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAmZ2xvYmFsX3NpemVfY2xhc3MtPmJh
c2UuZGlyZWN0b3J5KS0+Y29uZmlnX2tpbmQ7CisgICAgYml0Zml0X2tpbmQgPSBwYXNfY29tcGFj
dF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZzaXplX2NsYXNzLT5kaXJlY3Rv
cnkpLT5jb25maWdfa2luZDsKICAgICAKICAgICBhbGxvY2F0b3ItPmNvbmZpZ19raW5kID0gcGFz
X2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9jcmVhdGVfYml0Zml0KGJpdGZpdF9raW5kKTsK
ICAgICAKICAgICBiaXRmaXQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9iaXRmaXQoYWxsb2Nh
dG9yKTsKICAgICAKLSAgICBzaXplX2NsYXNzID0gcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
c19zZWxlY3RfZm9yX21hZ2F6aW5lKGdsb2JhbF9zaXplX2NsYXNzLCBtYWdhemluZSk7Ci0gICAg
Ci0gICAgUEFTX0FTU0VSVChzaXplX2NsYXNzKTsKLSAgICAKICAgICBiaXRmaXRfY29uZmlnID0g
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoYml0Zml0X2tpbmQpOwogICAg
IAotICAgIGJpdGZpdF92aWV3ID0gcGFzX2JpdGZpdF9zaXplX2NsYXNzX2dldF9maXJzdF9mcmVl
X3ZpZXcoCi0gICAgICAgIHNpemVfY2xhc3MsIGdsb2JhbF9zaXplX2NsYXNzLCBiaXRmaXRfY29u
ZmlnKTsKKyAgICBiaXRmaXRfdmlldyA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzc19nZXRfZmlyc3Rf
ZnJlZV92aWV3KHNpemVfY2xhc3MsIGJpdGZpdF9jb25maWcpOwogICAgIAogICAgIFBBU19BU1NF
UlQoYml0Zml0X3ZpZXcpOwogICAgIAotICAgIGJpdGZpdC0+Z2xvYmFsX3NpemVfY2xhc3MgPSBn
bG9iYWxfc2l6ZV9jbGFzczsKICAgICBiaXRmaXQtPnNpemVfY2xhc3MgPSBzaXplX2NsYXNzOwog
ICAgIGJpdGZpdC0+dmlldyA9IGJpdGZpdF92aWV3OwogfQpAQCAtMTgzLDcgKzE3NCw3IEBAIHN0
YXRpYyBib29sIHN0b3BfaW1wbCgKICAgICAKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2Vf
Y29uZmlnOwogICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7CiAKQEAgLTE5Myw4ICsxODQsMTAgQEAg
c3RhdGljIGJvb2wgc3RvcF9pbXBsKAogICAgIGlmICghYWxsb2NhdG9yLT5wYWdlX2lzaCkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBoZWxkX2xvY2sgPSBOVUxMOworCiAgICAgdmlldyA9
IGFsbG9jYXRvci0+dmlldzsKLSAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkodmlldyk7CisgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkodmlldyk7CiAKICAgICBwYWdlX2NvbmZpZyA9
ICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5i
YXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogCkBAIC0yMDIsMjkgKzE5NSwyOCBAQCBzdGF0aWMgYm9v
bCBzdG9wX2ltcGwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhbGxvY2F0b3IsIHBhZ2VfY29uZmlnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcpOwogICAgIAotICAgIGlmIChwYXNfc2VncmVn
YXRlZF92aWV3X2lzX2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KSkgeworICAgIGlmIChwYXNf
c2VncmVnYXRlZF92aWV3X2lzX3NpemVfZGlyZWN0b3J5KHZpZXcpKSB7CiAgICAgICAgIHZpZXcg
PSBwYWdlLT5vd25lcjsKLSAgICAgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lz
X2V4Y2x1c2l2ZV9pc2godmlldykpOworICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykpOwogICAgIH0gZWxzZQogICAgICAgICBQQVNf
QVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfcGFydGlhbCh2aWV3KSk7Ci0KLSAgICBoZWxk
X2xvY2sgPSBOVUxMOworICAgIAogICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hf
bG9ja193aXRoX21vZGUocGFnZSwgJmhlbGRfbG9jaywgcGFnZV9sb2NrX21vZGUsIHBhZ2VfY29u
ZmlnKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIHBhZ2VfY29uZmlnLnNwZWNp
YWxpemVkX2xvY2FsX2FsbG9jYXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZ2UoCiAgICAgICAgIGFs
bG9jYXRvciwgdmlldywgcGFnZSwgZGlyZWN0b3J5LCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQor
ICAgIAogICAgIHBhc19yYWNlX3Rlc3RfaG9vayhwYXNfcmFjZV90ZXN0X2hvb2tfbG9jYWxfYWxs
b2NhdG9yX3N0b3BfYmVmb3JlX2RpZF9zdG9wX2FsbG9jYXRpbmcpOwogICAgIAogICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZyh2aWV3LCBwYWdlLCBwYWdlX2NvbmZp
Zyk7CiAgICAgCiAgICAgcGFzX3JhY2VfdGVzdF9ob29rKHBhc19yYWNlX3Rlc3RfaG9va19sb2Nh
bF9hbGxvY2F0b3Jfc3RvcF9iZWZvcmVfdW5sb2NrKTsKLQotICAgIHBhc19sb2NrX3N3aXRjaCgm
aGVsZF9sb2NrLCBOVUxMKTsKICAgICAKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc2V0KGFs
bG9jYXRvcik7CiAgICAgCisgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwor
ICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC0yMzksOSArMjMxLDkgQEAgYm9vbCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3N0b3AoCiAgICAgCiAgICAgYm9vbCByZXN1bHQ7CiAKLSAgICBQQVNf
QVNTRVJUKCFhbGxvY2F0b3ItPmlzX2luX3VzZSk7CisgICAgUEFTX0FTU0VSVCghYWxsb2NhdG9y
LT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOwogCi0gICAgYWxsb2NhdG9yLT5pc19pbl91c2Ug
PSB0cnVlOworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gdHJ1ZTsK
ICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKIAogICAgIHJlc3VsdCA9IHN0b3BfaW1wbChhbGxv
Y2F0b3IsIHBhZ2VfbG9ja19tb2RlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKQEAgLTI0OSwxMSAr
MjQxLDExIEBAIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKAogICAgIGlmIChyZXN1bHQp
IHsKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCJEaWQgc3RvcCBh
bGxvY2F0b3IgJXBcbiIsIGFsbG9jYXRvcik7Ci0gICAgICAgIGFsbG9jYXRvci0+c2hvdWxkX3N0
b3BfY291bnQgPSAwOworICAgICAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLnNob3VsZF9z
dG9wX2NvdW50ID0gMDsKICAgICB9CiAgICAgCiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0g
ICAgYWxsb2NhdG9yLT5pc19pbl91c2UgPSBmYWxzZTsKKyAgICBhbGxvY2F0b3ItPnNjYXZlbmdl
cl9kYXRhLmlzX2luX3VzZSA9IGZhbHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTI2
Nyw4ICsyNTksOCBAQCBib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2UocGFzX2xvCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBpZiAoYWN0aW9uID09IHBhc19hbGxvY2F0
b3Jfc2NhdmVuZ2VfcmVxdWVzdF9zdG9wX2FjdGlvbikgewotICAgICAgICBpZiAoYWxsb2NhdG9y
LT5kaXJ0eSkgewotICAgICAgICAgICAgYWxsb2NhdG9yLT5kaXJ0eSA9IGZhbHNlOworICAgICAg
ICBpZiAoYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5kaXJ0eSkgeworICAgICAgICAgICAgYWxs
b2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5kaXJ0eSA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2Nh
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJwYXNfYml0
Zml0X2FsbG9jYXRvci5oIgogI2luY2x1ZGUgInBhc19jb25maWcuaCIKICNpbmNsdWRlICJwYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kLmgiCi0jaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9j
YXRvcl9saW5lLmgiCisjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YS5oIgogI2luY2x1ZGUgInBhc19sb2NrLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCkBAIC01MCw2ICs1
MCwxMiBAQCB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zCiB0eXBlZGVm
IHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlIHBhc19zZWdyZWdhdGVkX3BhZ2U7CiAKIHN0cnVj
dCBwYXNfbG9jYWxfYWxsb2NhdG9yIHsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhIHNjYXZlbmdlcl9kYXRhOworICAgIAorICAgIHVpbnQ4X3QgYWxpZ25tZW50X3NoaWZ0
OworICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQgY29uZmlnX2tpbmQgOiA4Owor
ICAgIGJvb2wgY3VycmVudF93b3JkX2lzX3ZhbGlkOyAvKiBUaGlzIGlzIGp1c3QgdXNlZCBieSBl
bnVtZXJhdGlvbi4gKi8KKwogICAgIC8qIFRoaXMgaGFzIHRvIGhhdmUgYSBwb2ludGVyIHRvIG91
ciBpbmRleCB3aXRoaW4gdGhlIHZpZXcuIFdlIGNhbiBnZXQgdG8gdGhlIHZpZXcgdXNpbmcKICAg
ICAgICBwYWdlX2lzaC4gTWF5YmUgd29ydGggcmVjb25zaWRlcmluZyB0aGF0LCBidXQgdGhlbiBh
Z2FpbiBtYXliZSBpdCdzIGdvb2QgZW5vdWdoLiAKICAgICAKQEAgLTcxLDE3ICs3NywxMiBAQCBz
dHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvciB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
OyAvKiBwb2ludHMgdG8gYSBwYXJ0aWFsIHZpZXcgaWYgd2UncmUgaW4gcGFydGlhbCBtb2RlIG9y
IHRoZSBzaXplCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rvcnkgb3Ro
ZXJ3aXNlLiBUaGlzIHdpbGwgcG9pbnQgdG8gYSBwYXJ0aWFsIHZpZXcgaW4gZWl0aGVyCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltb3JkaWFsIHBhcnRpYWwgbW9kZSBvciBp
biBub3JtYWwgcGFydGlhbCBtb2RlLiAqLwotICAgIHVpbnQxNl90IG51bV9saW5lczsKLSAgICB1
aW50OF90IGFsaWdubWVudF9zaGlmdDsKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19r
aW5kIGNvbmZpZ19raW5kIDogODsKLSAgICBib29sIGlzX2luX3VzZTsKLSAgICB1aW50OF90IHNo
b3VsZF9zdG9wX2NvdW50OwotICAgIGJvb2wgZGlydHk7Ci0gICAgYm9vbCBjdXJyZW50X3dvcmRf
aXNfdmFsaWQ7IC8qIFRoaXMgaXMganVzdCB1c2VkIGJ5IGVudW1lcmF0aW9uLiAqLwogICAgIHVp
bnQ2NF90IGJpdHNbMV07CiB9OwogCiAjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfTlVMTF9J
TklUSUFMSVpFUiAoKHBhc19sb2NhbF9hbGxvY2F0b3IpeyBcCisgICAgICAgIC5zY2F2ZW5nZXJf
ZGF0YSA9IFwKKyAgICAgICAgICAgIFBBU19MT0NBTF9BTExPQ0FUT1JfU0NBVkVOR0VSX0RBVEFf
SU5JVElBTElaRVIocGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZCksIFwKICAgICAg
ICAgLnBheWxvYWRfZW5kID0gMCwgXAogICAgICAgICAucmVtYWluaW5nID0gMCwgXAogICAgICAg
ICAub2JqZWN0X3NpemUgPSAwLCBcCkBAIC04OSwxMCArOTAsNyBAQCBzdHJ1Y3QgcGFzX2xvY2Fs
X2FsbG9jYXRvciB7CiAgICAgICAgIC5jdXJyZW50X29mZnNldCA9IDAsIFwKICAgICAgICAgLmVu
ZF9vZmZzZXQgPSAwLCBcCiAgICAgICAgIC52aWV3ID0gTlVMTCwgXAotICAgICAgICAuY29uZmln
X2tpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX25vcm1hbF9udWxsLCBcCi0g
ICAgICAgIC5pc19pbl91c2UgPSBmYWxzZSwgXAotICAgICAgICAuc2hvdWxkX3N0b3BfY291bnQg
PSAwLCBcCi0gICAgICAgIC5kaXJ0eSA9IGZhbHNlIFwKKyAgICAgICAgLmNvbmZpZ19raW5kID0g
cGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9ub3JtYWxfbnVsbCBcCiAgICAgfSkKIAog
I2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX1NJWkUobnVtX2FsbG9jX2JpdHMpIFwKQEAgLTEw
MSw3ICs5OSwxMyBAQCBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvciB7CiAgICAgICAgICBzaXpl
b2YodWludDY0X3QpICogUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFM2NChudW1fYWxsb2NfYml0cyks
IFwKICAgICAgICAgIFBBU19ST1VORF9VUF9UT19QT1dFUl9PRl8yKHNpemVvZihwYXNfYml0Zml0
X2FsbG9jYXRvciksIHNpemVvZih1aW50NjRfdCkpKSkKIAotUEFTX0FQSSBleHRlcm4gdWludDhf
dCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kOworI2Rl
ZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgMAorCisj
aWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCitQQVNfQVBJ
IGV4dGVybiBkb3VibGUgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9zdW07
CitQQVNfQVBJIGV4dGVybiBkb3VibGUgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNp
ZW5jeV9uOworUEFTX0RFQ0xBUkVfTE9DSyhwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZp
Y2llbmN5KTsKKyNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VG
RklDSUVOQ1kgKi8KIAogc3RhdGljIGlubGluZSBib29sIHBhc19sb2NhbF9hbGxvY2F0b3JfaXNf
bnVsbChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpCiB7CkBAIC0xMzQsOSArMTM4LDcg
QEAgc3RhdGljIGlubGluZSB1aW50cHRyX3QgcGFzX2xvY2FsX2FsbG9jYQogfQogCiBQQVNfQVBJ
IHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QocGFzX2xvY2FsX2FsbG9jYXRvciog
YWxsb2NhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQ
SSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVzdHJ1Y3QocGFzX2xvY2FsX2FsbG9jYXRvciog
YWxsb2NhdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAogUEFTX0FQSSB2b2lk
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzZXQocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9y
KTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2Fs
bG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jf
aW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNyArMjYsMTYgQEAKICNpZm5kZWYgUEFT
X0xPQ0FMX0FMTE9DQVRPUl9JTkxJTkVTX0gKICNkZWZpbmUgUEFTX0xPQ0FMX0FMTE9DQVRPUl9J
TkxJTkVTX0gKIAotI2luY2x1ZGUgInBhc19hbGxfbWFnYXppbmVzLmgiCiAjaW5jbHVkZSAicGFz
X2FsbG9jYXRvcl9jb3VudHMuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxp
bmVzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2Ns
YXNzLmgiCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19lcG9jaC5oIgog
I2luY2x1ZGUgInBhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19z
Y2F2ZW5nZXIuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxp
bmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lu
bGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlld19pbmxpbmVzLmgiCkBAIC01MSw3ICs1MCw3IEBACiBQQVNfQkVHSU5fRVhURVJOX0M7CiAK
IHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc2V0X2ltcGwocGFzX2xv
Y2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZCBraW5kKQogewogICAgIGFsbG9jYXRvci0+cGFnZV9pc2ggPSAwOwpA
QCAtNTksMTEgKzU4LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3IKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfd29yZF9pc192YWxpZCA9IGZhbHNlOwogICAgIGFs
bG9jYXRvci0+cGF5bG9hZF9lbmQgPSAwOwogICAgIGFsbG9jYXRvci0+cmVtYWluaW5nID0gMDsK
LSAgICBhbGxvY2F0b3ItPm51bV9saW5lcyA9IDA7CiAgICAgYWxsb2NhdG9yLT5jdXJyZW50X29m
ZnNldCA9IDA7CiAgICAgYWxsb2NhdG9yLT5lbmRfb2Zmc2V0ID0gMDsKICAgICBhbGxvY2F0b3It
PmN1cnJlbnRfd29yZCA9IDA7Ci0gICAgYWxsb2NhdG9yLT52aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2FzX3ZpZXcoZGlyZWN0b3J5KTsKKyAgICBhbGxvY2F0b3It
PnZpZXcgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hc192aWV3KGRpcmVjdG9yeSk7
CiAgICAgYWxsb2NhdG9yLT5jb25maWdfa2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmln
X2tpbmRfY3JlYXRlX25vcm1hbChraW5kKTsKIH0KIApAQCAtNzIsOSArNzAsOSBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgZW5kKQog
eworICAgIFBBU19URVNUSU5HX0FTU0VSVChlbmQpOwogICAgIGFsbG9jYXRvci0+cGF5bG9hZF9l
bmQgPSBlbmQ7CiAgICAgYWxsb2NhdG9yLT5yZW1haW5pbmcgPSAodW5zaWduZWQpKGVuZCAtIGJl
Z2luKTsKLSAgICBhbGxvY2F0b3ItPm51bV9saW5lcyA9IDA7CiAgICAgYWxsb2NhdG9yLT5jdXJy
ZW50X29mZnNldCA9IDA7CiAgICAgYWxsb2NhdG9yLT5lbmRfb2Zmc2V0ID0gMDsKICAgICBhbGxv
Y2F0b3ItPmN1cnJlbnRfd29yZCA9IDA7CkBAIC0xMjIsNyArMTIwLDcgQEAgc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIGJvb2wgcGFzX2xvY2FsXwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYW5fYml0c190b19zZXRfdXBfZnJlZV9iaXRzKAog
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKLSAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAg
ICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnksCiAgICAgdW5zaWduZWQgY3VycmVudF9vZmZzZXQs
CkBAIC0xMzksNiArMTM3LDExIEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19s
b2NhbF8KICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYW5fYml0c190b19zZXRfdXBfdXNlX2Nv
dW50c19kYXRhIGRhdGE7CiAgICAgdW5zaWduZWQgb2JqZWN0X3NpemU7CiAKKyNpZiBQQVNfTE9D
QUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kKKyAgICB1bnNpZ25lZCBudW1f
dG90YWxfb2JqZWN0czsKKyAgICB1bnNpZ25lZCBudW1fdGFrZW5fb2JqZWN0czsKKyNlbmRpZiAv
KiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KKwogICAg
IFBBU19BU1NFUlQocGFnZV9jb25maWcuYmFzZS5pc19lbmFibGVkKTsKICAgICBQQVNfVU5VU0VE
X1BBUkFNKGRpcmVjdG9yeSk7CiAKQEAgLTE5Myw2ICsxOTYsMTEgQEAgc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsXwogCiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAK
KyNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kKKyAgICBu
dW1fdG90YWxfb2JqZWN0cyA9IDA7CisgICAgbnVtX3Rha2VuX29iamVjdHMgPSAwOworI2VuZGlm
IC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAqLworCiAg
ICAgZm9yIChpbmRleCA9IGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2JlZ2luOyBpbmRleCA8
IGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2VuZDsgKytpbmRleCkgewogICAgICAgICB1bnNp
Z25lZCBmdWxsOwogICAgICAgICB1bnNpZ25lZCBhbGxvYzsKQEAgLTIwMiw2ICsyMTAsMTIgQEAg
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsXwogICAgICAgICBhbGxvYyA9
IGFsbG9jX2JpdHNbaW5kZXhdOwogICAgICAgICBmcmVlID0gZnVsbCAmIH5hbGxvYzsKICAgICAg
ICAgKCh1bnNpZ25lZCopYWxsb2NhdG9yLT5iaXRzKVtpbmRleF0gPSBmcmVlOworCisjaWYgUEFT
X0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCisgICAgICAgIG51bV90
b3RhbF9vYmplY3RzICs9IF9fYnVpbHRpbl9wb3Bjb3VudChmdWxsKTsKKyAgICAgICAgbnVtX3Rh
a2VuX29iamVjdHMgKz0gX19idWlsdGluX3BvcGNvdW50KGZyZWUpOworI2VuZGlmIC8qIFBBU19M
T0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAqLworICAgICAgICAKICAg
ICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAgICAgICAgIGFsbG9jX2JpdHNbaW5kZXhdID0g
YWxsb2MgfCBmdWxsOwogICAgICAgICBzd2l0Y2ggKHZpZXdfa2luZCkgewpAQCAtMjQzLDYgKzI1
NywxNSBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfCiAgICAgICAg
IH0KICAgICB9CiAKKyNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklD
SUVOQ1kKKyAgICBQQVNfQVNTRVJUKG51bV90YWtlbl9vYmplY3RzIDw9IG51bV90b3RhbF9vYmpl
Y3RzKTsKKworICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja19s
b2NrKCk7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9zdW0gKz0g
KGRvdWJsZSludW1fdGFrZW5fb2JqZWN0cyAvIChkb3VibGUpbnVtX3RvdGFsX29iamVjdHM7Cisg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9uKys7CisgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9sb2NrX3VubG9jaygpOworI2VuZGlmIC8q
IFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAqLworCiAgICAg
aWYgKHBhZ2VfY29uZmlnLnVzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQpIHsKICAgICAgICAgUEFT
X0FTU0VSVChwYWdlX2NvbmZpZy52YXJpYW50ID09IHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX3ZhcmlhbnQpOwogICAgICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfd29yZCA9IHBhc19y
ZXZlcnNlNjQoYWxsb2NhdG9yLT5iaXRzW2N1cnJlbnRfb2Zmc2V0XSk7CkBAIC0yNjIsNyArMjg1
LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsXwogICAgIHN3aXRj
aCAodmlld19raW5kKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19r
aW5kOgogICAgICAgICBwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzID0KLSAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxs
KAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9h
ZF9ub25fbnVsbCgKICAgICAgICAgICAgICAgICAmZGlyZWN0b3J5LT5kYXRhKS0+ZnVsbF9udW1f
bm9uX2VtcHR5X3dvcmRzOwogICAgICAgICBicmVhazsKICAgICAgICAgCkBAIC0yODAsNyArMzAz
LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2V0X3VwX2ZyZWVfYml0cyhwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kIHZp
ZXdfa2luZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiB2aWV3
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgcGFn
ZV9ib3VuZGFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKQEAgLTMwNCw3ICszMjcsNyBAQCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3NldF91cF9mcmVlX2JpdHMocGFzCiAKICAgICAgICAgYmVnaW5fb2Zm
c2V0ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2Zp
cnN0X29iamVjdCgKICAgICAgICAgICAgIHBhZ2UsIGRpcmVjdG9yeSwgcGFnZV9jb25maWcpOwot
ICAgICAgICBlbmRfb2Zmc2V0ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgIGVuZF9vZmZzZXQgPSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAg
JmRpcmVjdG9yeS0+ZGF0YSktPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xh
c3Rfb2JqZWN0OwogCiAgICAgICAgIGJlZ2luX29mZnNldCA9IFBBU19CSVRWRUNUT1JfV09SRDY0
X0lOREVYKApAQCAtMzUzLDcgKzM3Niw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90
b19hbGxvY2F0ZSgKICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQgdmlld19raW5kLAogICAg
IHZvaWQqIHZpZXcsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnIHBhZ2VfY29uZmlnKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKQEAgLTM3NSw3ICszOTgsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9f
YWxsb2NhdGUoCiAgICAgaWYgKHZpZXdfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19raW5kICYmICFwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzKSB7CiAgICAgICAgIHVpbnRw
dHJfdCBwYXlsb2FkX2JlZ2luOwogICAgICAgICB1aW50cHRyX3QgcGF5bG9hZF9lbmQ7Ci0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOworICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwogCiAgICAgICAg
IGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiUmVmaWxsaW5nIHdpdGggYnVtcC5c
biIpOwpAQCAtMzgzLDcgKzQwNiw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90b19h
bGxvY2F0ZSgKICAgICAgICAgaWYgKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplID4gcGFnZV9j
b25maWcuYmFzZS5ncmFudWxlX3NpemUpCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19pbnN0YWxsX2Z1bGxfdXNlX2NvdW50cygocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXcqKXZpZXcpOwogCi0gICAgICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgmZGlyZWN0b3J5LT5kYXRhKTsK
KyAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xv
YWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CiAgICAgICAgIAogICAgICAgICBwYXlsb2Fk
X2JlZ2luID0gcGFnZV9ib3VuZGFyeSArIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlf
dG9fZmlyc3Rfb2JqZWN0OwogICAgICAgICBwYXlsb2FkX2VuZCA9IHBhZ2VfYm91bmRhcnkgKyBk
YXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKQEAg
LTM5OCw2ICs0MjEsMTMgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9wcmVwYXJlX3RvX2FsbG9jYXRl
KAogICAgICAgICBtZW1jcHkocGFnZS0+YWxsb2NfYml0cywgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vu
c2lnbmVkX3B0cl9sb2FkX25vbl9udWxsKCZkYXRhLT5mdWxsX2FsbG9jX2JpdHMpLAogICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX2J5dGVzKHBhZ2Vf
Y29uZmlnKSk7CiAKKyNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklD
SUVOQ1kKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9sb2Nr
X2xvY2soKTsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9z
dW0rKzsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9uKys7
CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja191bmxv
Y2soKTsKKyNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklD
SUVOQ1kgKi8KKyAgICAgICAgCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCkBAIC01MzIs
NyArNTYyLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wKIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxfdmlldygKICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
c2l6ZV9kaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVf
ZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQog
ewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKQEAgLTgyMSw4ICs4NTEs
NyBAQCBQQVNfQVBJIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfCiAKIFBBU19BUEkg
dm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2ZpbmlzaF9yZWZpbGxfd2l0aF9iaXRmaXQoCiAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnksCi0gICAgcGFzX21hZ2F6aW5lKiBtYWdh
emluZSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5
KTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wKIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVmaWxsX3dpdGhfa25vd25fY29uZmlnKApAQCAtODM4LDE0ICs4NjcsMTUgQEAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jbwogICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogb2xkX3BhZ2U7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZSogbmV3X3BhZ2U7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBzaXplX2RpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6
ZV9kaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0g
ICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZTsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25v
ZGUqIGNhY2hlX25vZGU7CiAgICAgYm9vbCBkaWRfaW5pdGlhbGl6ZV9iaXRmaXQ7CiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZTsKICAgICBwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWw7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcq
IHNoYXJlZDsKICAgICBib29sIGVuYWJsZV9zZWdyZWdhdGVkOworICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIGNhY2hlOwogCiAgICAgUEFTX1VOVVNFRF9QQVJBTShjb3VudHMpOwogCkBAIC04
NTYsNyArODg2LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jbwog
ICAgIGlmIChza2lwX2JpdGZpdCkKICAgICAgICAgUEFTX0FTU0VSVChlbmFibGVfc2VncmVnYXRl
ZCk7CiAgICAgCi0gICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KTsKKyAgICBzaXplX2RpcmVjdG9y
eSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmll
dyk7CiAgICAgZGlyZWN0b3J5ID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOwogCiAgICAgaWYgKHZl
cmJvc2UpIHsKQEAgLTg3NywxMCArOTA3LDkgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxf
d2l0aF9rbm93bl9jbwogICAgICAgICBwYXNfYml0Zml0X2FsbG9jYXRvcl9hc3NlcnRfcmVzZXQo
Yml0Zml0KTsKICAgICB9CiAKLSAgICBpZiAoIWFsbG9jYXRvci0+ZGlydHkgJiYgdmVyYm9zZSkK
KyAgICBpZiAoIWFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuZGlydHkgJiYgdmVyYm9zZSkKICAg
ICAgICAgcGFzX2xvZygiVXNpbmcgYWxsb2NhdG9yICVwXG4iLCBhbGxvY2F0b3IpOwotICAgIGFs
bG9jYXRvci0+ZGlydHkgPSB0cnVlOwotICAgIGFsbG9jYXRvci0+c2hvdWxkX3N0b3BfY291bnQg
PSAwOworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3Jf
YWxsb2NhdGlvbigmYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YSk7CiAgICAgCiAgICAgaWYgKHBh
c19zY2F2ZW5nZXJfZGlkX2NyZWF0ZV9lbGlnaWJsZSgpKSB7CiAgICAgICAgIGlmIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKSA9PSBw
YXNfbG9ja19pc19ub3RfaGVsZCkKQEAgLTg5Nyw3ICs5MjYsNyBAQCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3JlZmlsbF93aXRoX2tub3duX2NvCiAgICAgICAgIG9sZF9wYWdlID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9mb3JfYm91bmRhcnkoCiAgICAgICAgICAgICAodm9pZCopcGFzX2xvY2FsX2FsbG9j
YXRvcl9wYWdlX2JvdW5kYXJ5KGFsbG9jYXRvciwgcGFnZV9jb25maWcpLCBwYWdlX2NvbmZpZyk7
CiAgICAgICAgIG9sZF92aWV3ID0gb2xkX3BhZ2UtPm93bmVyOwotICAgICAgICBpZiAoIXBhc19z
ZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaChvbGRfdmlldykpIHsKKyAgICAgICAgaWYg
KCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKG9sZF92aWV3KSkgewogICAg
ICAgICAgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NoYXJlZF9oYW5kbGUo
b2xkX3ZpZXcpKTsKICAgICAgICAgICAgIG9sZF92aWV3ID0gYWxsb2NhdG9yLT52aWV3OwogICAg
ICAgICAgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3BhcnRpYWwob2xkX3Zp
ZXcpKTsKQEAgLTkxOCwzNCArOTQ3LDI5IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dp
dGhfa25vd25fY28KICAgICAgICAgY291bnRzLT5zbG93X3JlZmlsbHMrKzsKICNlbmRpZiAvKiBQ
QVNfRU5BQkxFX1RFU1RJTkcgKi8KIAotICAgIG1hZ2F6aW5lID0gTlVMTDsKKyAgICBjYWNoZSA9
IE5VTEw7CisgICAgY2FjaGVfbm9kZSA9IE5VTEw7CiAgICAgCiAgICAgaWYgKCFwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2VfY29uZmlnKSkgewotICAgICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZTsKLSAgICAgICAgCiAgICAgICAgIGNhY2hlID0gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7CiAgICAgICAgIAogICAgICAgICBpZiAoY2Fj
aGUpIHsKKyAgICAgICAgICAgIGNhY2hlX25vZGUgPSBjYWNoZS0+bm9kZTsKKyAgICAgICAgICAg
IAogICAgICAgICAgICAgLyogRG9pbmcgdGhpcyBoZXJlIGhhcyBzb21lIHNwZWNpYWwgcHJvcGVy
dGllcy4gRm9yIGV4YW1wbGUsIGl0IGRvZXNuJ3QgcHJldmVudCBmYXN0IHJldXNlCiAgICAgICAg
ICAgICAgICBvZiB0aGUgcGFnZSB3ZSBqdXN0IGZpbmlzaGVkIGFsbG9jYXRpbmcgb3V0IG9mLiAq
LwogICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRv
cnNfaWZfbmVjZXNzYXJ5KAogICAgICAgICAgICAgICAgIGNhY2hlLCBhbGxvY2F0b3IsIHBhc19s
b2NrX2lzX25vdF9oZWxkKTsKICAgICAgICAgfQotCi0gICAgICAgIC8qIE5PVEU6IFRoaXMgaXMg
cmFjeSwgYW5kIHRoYXQncyBPSy4gTWFnYXppbmVzIGFyZSBkZXNpZ25lZCBzbyB0aGF0IGlmIGEg
dGhyZWFkIGFjY2Vzc2VzIGl0Ci0gICAgICAgICAgIGZyb20gdGhlIHdyb25nIGNvcmUgdGhlbiB0
aGUgd29yc3QgdGhpbmcgdGhhdCB3aWxsIGhhcHBlbiBpcyBhIGJpdCBvZiBjb250ZW50aW9uLiAq
LwotICAgICAgICBtYWdhemluZSA9IHBhc19hbGxfbWFnYXppbmVzX2dldF9jdXJyZW50KCk7CiAg
ICAgfQogCiAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgcGFzX2xvZygib2xkX3ZpZXcgPSAl
cC5cbiIsIG9sZF92aWV3KTsKICAgICAgICAgaWYgKG9sZF92aWV3KSB7Ci0gICAgICAgICAgICBw
YXNfbG9nKCIgICAgc2hvdWxkIHJlc3RhcnQgPSAlZCwgaW5kZXggPSAlenUsIGZpcnN0X2VsaWdp
YmxlX2J1dF9ub3RfdGFibGVkID0gJXp1LlxuIiwKLSAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19zaG91bGRfcmVzdGFydChvbGRfdmlldywgbWFnYXppbmUpLAorICAgICAg
ICAgICAgcGFzX2xvZygiICAgIGluZGV4ID0gJXp1LCBmaXJzdF9lbGlnaWJsZSA9ICV6dS5cbiIs
CiAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KG9sZF92
aWV3KSwKICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9m
aXJzdF9lbGlnaWJsZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3NpemVfZGlyZWN0b3J5KG9sZF92aWV3KSwKLSAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9idXRfbm90X3RhYmxlZF9r
aW5kKS52YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfc2l6ZV9kaXJlY3Rvcnkob2xkX3ZpZXcpLT5iYXNlKS52YWx1ZSk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTk2OSwzOCArOTkzLDE0IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxs
X3dpdGhfa25vd25fY28KICAgICAgICAgICAgIG5ld19wYWdlID0gb2xkX3BhZ2U7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGV4Y2x1c2l2ZSA9IChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKG5ld192aWV3KTsKLQotICAgICAgICAg
ICAgZ290byByZXN0YXJ0X2V4Y2x1c2l2ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6IHsKLSAgICAgICAgICAgIGlmIChtYWdhemlu
ZSkgewotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2lu
ZzsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlh
c2luZ19kaXJlY3Rvcnk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgYmlhc2lu
ZyA9IChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3B0cihvbGRfdmlldyk7Ci0gICAgICAgICAgICAgICAgYmlhc2luZ19kaXJlY3RvcnkgPSBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAot
ICAgICAgICAgICAgICAgICAgICAmYmlhc2luZy0+ZGlyZWN0b3J5KTsKLSAgICAgICAgICAgICAg
ICBpZiAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVfaW5kZXgoYmlh
c2luZ19kaXJlY3RvcnkpCi0gICAgICAgICAgICAgICAgICAgID09IG1hZ2F6aW5lLT5tYWdhemlu
ZV9pbmRleCkgewotICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBlcG9jaDsKLSAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIG5ld192aWV3ID0gb2xkX3ZpZXc7Ci0g
ICAgICAgICAgICAgICAgICAgIG5ld19wYWdlID0gb2xkX3BhZ2U7Ci0KLSAgICAgICAgICAgICAg
ICAgICAgZXBvY2ggPSBwYXNfZ2V0X2Vwb2NoKCk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZGlkX3VzZV9pbmRleCgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBi
aWFzaW5nLT5pbmRleCwgZXBvY2gpOwotCi0gICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZSA9
Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmYmlhc2luZy0+ZXhjbHVzaXZlKTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgIGdvdG8gcmVzdGFydF9leGNsdXNpdmU7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIlJlc3RhcnRpbmcgb24g
c2FtZSBwYWdlIGFzIGJlZm9yZS5cbiIpOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3doaWxlX2luZWxpZ2libGUoCisgICAgICAgICAgICAg
ICAgbmV3X3BhZ2UsICZoZWxkX2xvY2ssIGNhY2hlX25vZGUsIHBhZ2VfY29uZmlnKTsKKyAgICAg
ICAgICAgIG5ld19wYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfaW5lbGlnaWJs
ZShuZXdfdmlldyk7CisgICAgICAgICAgICBuZXdfcGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0
aW9uX2hhc19iZWVuX2RlZmVycmVkID0gZmFsc2U7CisgICAgICAgICAgICBnb3RvIHByZXBhcmVf
ZXhjbHVzaXZlOwogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0
aWFsX3ZpZXdfa2luZDogewpAQCAtMTAyNCwyOCArMTAyNCw4NSBAQCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3JlZmlsbF93aXRoX2tub3duX2NvCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19s
b2coIkZpbmRpbmcgYSBkaWZmZXJlbnQgcGFnZS5cbiIpOwogCisgICAgbmV3X3ZpZXcgPSBOVUxM
OworICAgIG5ld19wYWdlID0gTlVMTDsKKyAgICAKICAgICBpZiAoZW5hYmxlX3NlZ3JlZ2F0ZWQp
IHsKLSAgICAgICAgbmV3X3ZpZXcgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfdGFrZV9maXJzdF9lbGlnaWJsZShzaXplX2RpcmVjdG9yeSwgbWFnYXppbmUpOwotICAgICAg
ICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2coIkdvdCBhIG5ldyB2aWV3ICVwXG4i
LCBuZXdfdmlldyk7Ci0gICAgICAgIGlmIChuZXdfdmlldykKLSAgICAgICAgICAgIG5ld192aWV3
ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbmcobmV3X3ZpZXcsIHBh
Z2VfY29uZmlnKTsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2co
IkFuZCBhZnRlciB3aWxsX3N0YXJ0IGdvdCBhIG5ldyB2aWV3ICVwLCBwYWdlID0gJXAsIGJvdW5k
YXJ5ID0gJXBcbiIsCi0gICAgICAgICAgICAgICAgICAgIG5ld192aWV3LAotICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlKG5ld192aWV3KSwKLSAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9ib3VuZGFyeShuZXdfdmll
dykpOworICAgICAgICBib29sIGRpZF9nZXRfdmlldzsKKworICAgICAgICBkaWRfZ2V0X3ZpZXcg
PSBmYWxzZTsKKworICAgICAgICBpZiAocGFnZV9jb25maWcuZW5hYmxlX3ZpZXdfY2FjaGUgJiYg
Y2FjaGUpIHsKKyAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHZpZXdfY2Fj
aGVfcmVzdWx0OworCisgICAgICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19pc191dGlsaXR5KHBhZ2VfY29uZmlnKSk7CisKKyAgICAgICAgICAgIHZpZXdfY2Fj
aGVfcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yKAor
ICAgICAgICAgICAgICAgIGNhY2hlLCBzaXplX2RpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCwg
cGFzX2xvY2tfaXNfbm90X2hlbGQpOworICAgICAgICAgICAgY2FjaGUgPSBOVUxMOyAvKiBUaGUg
Y2FjaGUgY291bGQgaGF2ZSBiZWVuIHJlc2l6ZWQsIHNvIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRo
aXMgcG9pbnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnltb3JlLiAqLworICAg
ICAgICAgICAgaWYgKHZpZXdfY2FjaGVfcmVzdWx0LmRpZF9zdWNjZWVkKSB7CisgICAgICAgICAg
ICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGUqIHZpZXdfY2FjaGU7CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgdmlld19jYWNoZSA9IChwYXNfbG9jYWxfdmlld19jYWNoZSopdmll
d19jYWNoZV9yZXN1bHQuYWxsb2NhdG9yOworCisgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKCF2aWV3X2NhY2hlLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIHZpZXdfY2FjaGUtPnNjYXZlbmdlcl9kYXRhLmlzX2lu
X3VzZSA9IHRydWU7CisgICAgICAgICAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisKKyAg
ICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91c2Vf
Zm9yX2FsbG9jYXRpb24oJnZpZXdfY2FjaGUtPnNjYXZlbmdlcl9kYXRhKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2VtcHR5
KHZpZXdfY2FjaGUpKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld192aWV3ID0gcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfdmlldyhwYXNfbG9jYWxfdmlld19jYWNoZV9wb3Aodmll
d19jYWNoZSkpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUobmV3
X3ZpZXcpKTsKKyAgICAgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfb3duZWQobmV3X3ZpZXcpKTsKKyAgICAgICAgICAgICAgICAgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlKG5ld192aWV3
KSk7CisgICAgICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9wYWdlKG5ld192aWV3KS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKTsKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiJXAsIGE9JXAsIHZjPSVwOiBHb3QgZnJvbSBj
YWNoZSAoJXUpLlxuIiwgY2FjaGVfbm9kZSwgYWxsb2NhdG9yLCB2aWV3X2NhY2hlLCBhbGxvY2F0
b3ItPm9iamVjdF9zaXplKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
ICAgIGRpZF9nZXRfdmlldyA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgICAgICAgICAgICAgdmlld19jYWNoZS0+
c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICBpZiAoIWRpZF9nZXRfdmlldykgeworICAgICAgICAgICAgbmV3X3ZpZXcg
PSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKHNpemVf
ZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBh
c19sb2coIkdvdCBhIG5ldyB2aWV3ICVwXG4iLCBuZXdfdmlldyk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGln
aWJsZShuZXdfdmlldykpOworICAgICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNf
c29tZV9leGNsdXNpdmUobmV3X3ZpZXcpKSB7CisgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKAorICAgICAgICAgICAgICAgICAgICAhcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19vd25l
ZChuZXdfdmlldykKKyAgICAgICAgICAgICAgICAgICAgfHwgIXBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3BhZ2UobmV3X3ZpZXcpLT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb24pOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAobmV3X3ZpZXcpIHsKKyAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiJXAsICVwOiBHb3QgZnJvbSBk
aXJlY3RvcnkgKCV1KS5cbiIsIGNhY2hlX25vZGUsIGFsbG9jYXRvciwgYWxsb2NhdG9yLT5vYmpl
Y3Rfc2l6ZSk7CisgICAgICAgICAgICAgICAgbmV3X3ZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3
X3dpbGxfc3RhcnRfYWxsb2NhdGluZyhuZXdfdmlldywgcGFnZV9jb25maWcpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9n
KCJBbmQgYWZ0ZXIgd2lsbF9zdGFydCBnb3QgYSBuZXcgdmlldyAlcCwgcGFnZSA9ICVwLCBib3Vu
ZGFyeSA9ICVwXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3ZpZXcsCisgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlKG5ld192aWV3KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfYm91
bmRhcnkobmV3X3ZpZXcpKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7
Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfZmluaXNoX3JlZmlsbF93aXRoX2JpdGZpdChh
bGxvY2F0b3IsIHNpemVfZGlyZWN0b3J5LCBtYWdhemluZSk7CisgICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3JfZmluaXNoX3JlZmlsbF93aXRoX2JpdGZpdChhbGxvY2F0b3IsIHNpemVfZGlyZWN0
b3J5KTsKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCJpbml0aWFs
aXplZCBiaXRmaXQhXG4iKTsKICAgICAgICAgZGlkX2luaXRpYWxpemVfYml0Zml0ID0gdHJ1ZTsK
LSAgICAgICAgbmV3X3ZpZXcgPSBOVUxMOwogICAgIH0KIAotICAgIG5ld19wYWdlID0gTlVMTDsK
LSAgICAKICAgICAvKiBBdCB0aGlzIHBvaW50IHdlIG5lZWQgdG8gZ2V0IHRoZSBwYWdlLiBXZSBj
YW4ndCBkbyB0aGF0IGZvciBwcmltb3JkaWFsIHBhcnRpYWwgdmlld3MsCiAgICAgICAgdGhvdWdo
LiAqLwogICAgIApAQCAtMTA3MCwxNCArMTEyNywxNCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jl
ZmlsbF93aXRoX2tub3duX2NvCiAKICAgICBQQVNfQVNTRVJUKGVuYWJsZV9zZWdyZWdhdGVkKTsK
IAotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gobmV3X3ZpZXcp
KSB7CisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUobmV3X3Zp
ZXcpKSB7CiAgICAgICAgIGV4Y2x1c2l2ZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1
c2l2ZShuZXdfdmlldyk7CiAgICAgICAgIG5ld19wYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9m
b3JfYm91bmRhcnkoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyk7CiAKLSAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6
aW5lX3doaWxlX2luZWxpZ2libGUoCi0gICAgICAgICAgICBuZXdfcGFnZSwgJmhlbGRfbG9jaywg
bWFnYXppbmUsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0
Y2hfbG9ja19hbmRfcmViaWFzX3doaWxlX2luZWxpZ2libGUoCisgICAgICAgICAgICBuZXdfcGFn
ZSwgJmhlbGRfbG9jaywgY2FjaGVfbm9kZSwgcGFnZV9jb25maWcpOwogCi0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmlld19kaWRfc3RhcnRfYWxsb2NhdGluZygKKyAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfZGlkX3N0YXJ0X2FsbG9jYXRpbmcoCiAg
ICAgICAgICAgICBleGNsdXNpdmUsIG5ld192aWV3LCBzaXplX2RpcmVjdG9yeSwgbmV3X3BhZ2Us
ICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKICAgICAgICAgZ290byBwcmVwYXJlX2V4Y2x1c2l2
ZTsKICAgICB9CkBAIC0xMTA2LDE0ICsxMTYzLDYgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZp
bGxfd2l0aF9rbm93bl9jbwogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19kaWRfc3Rh
cnRfYWxsb2NhdGluZyhwYXJ0aWFsLCBzaGFyZWQsIHBhZ2VfY29uZmlnKTsKICAgICBnb3RvIHBy
ZXBhcmVfcGFydGlhbDsKICAgICAKLXJlc3RhcnRfZXhjbHVzaXZlOgotICAgIGlmICh2ZXJib3Nl
KQotICAgICAgICBwYXNfbG9nKCJSZXN0YXJ0aW5nIG9uIHNhbWUgcGFnZSBhcyBiZWZvcmUuXG4i
KTsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfdG9fbWFn
YXppbmVfd2hpbGVfaW5lbGlnaWJsZSgKLSAgICAgICAgbmV3X3BhZ2UsICZoZWxkX2xvY2ssIG1h
Z2F6aW5lLCBwYWdlX2NvbmZpZyk7Ci0gICAgbmV3X3BhZ2UtPm93bmVyID0gcGFzX3NlZ3JlZ2F0
ZWRfdmlld19hc19pbmVsaWdpYmxlKG5ld192aWV3KTsKLSAgICBuZXdfcGFnZS0+ZWxpZ2liaWxp
dHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2RlZmVycmVkID0gZmFsc2U7Ci0gICAgCiBwcmVwYXJl
X2V4Y2x1c2l2ZToKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxsb2NhdGUo
CiAgICAgICAgIGFsbG9jYXRvciwgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZCwg
ZXhjbHVzaXZlLCBuZXdfcGFnZSwgc2l6ZV9kaXJlY3RvcnksCkBAIC0xMTcwLDcgKzEyMTksOCBA
QCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JldHVybl9tZW1vcnlfdG9fcGFnCiAgICAgb2JqZWN0ID0g
ZGF0YS0+cGFnZV9ib3VuZGFyeSArIHBhc19wYWdlX2Jhc2Vfb2JqZWN0X29mZnNldF9mcm9tX3Bh
Z2VfYm91bmRhcnlfYXRfaW5kZXgoCiAgICAgICAgICh1bnNpZ25lZClpbmRleC5pbmRleCwgZGF0
YS0+cGFnZV9jb25maWcuYmFzZSk7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2Nh
dGVfd2l0aF9wYWdlKGRhdGEtPnBhZ2UsIG9iamVjdCwgZGF0YS0+cGFnZV9jb25maWcpOworICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UoCisgICAgICAgIGRhdGEt
PnBhZ2UsIG9iamVjdCwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2RpcmVjdF9tb2RlLCBO
VUxMLCBkYXRhLT5wYWdlX2NvbmZpZyk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTExNzks
NyArMTIyOSw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCiBwYXNfbG9jYWxfYWxs
b2NhdG9yX3JldHVybl9tZW1vcnlfdG9fcGFnZShwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0
b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21v
ZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKQEAgLTExOTQsOCArMTI0NCw2IEBAIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmV0dXJuX21lbW9yeV90b19wYWcKIAogICAgIFBBU19BU1NFUlQo
cGFnZV9jb25maWcuYmFzZS5pc19lbmFibGVkKTsKIAotICAgIHBhZ2UtPmF2b2lkX2xpbmVfYWxs
b2NhdG9yID0gdHJ1ZTsKLQogICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNf
dXRpbGl0eShwYWdlX2NvbmZpZykpCiAgICAgICAgIHBhc19sb2NrX2Fzc2VydF9oZWxkKHBhZ2Ut
PmxvY2tfcHRyKTsKIApAQCAtMTIxOCw4ICsxMjY2LDEwIEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmV0dXJuX21lbW9yeV90b19wYWcKICAgICAgICAgYmVnaW4gPSBhbGxvY2F0b3ItPnBheWxvYWRf
ZW5kIC0gYWxsb2NhdG9yLT5yZW1haW5pbmc7CiAgICAgICAgIGVuZCA9IGFsbG9jYXRvci0+cGF5
bG9hZF9lbmQ7CiAgICAgICAgIAotICAgICAgICBmb3IgKG9iamVjdCA9IGJlZ2luOyBvYmplY3Qg
PCBlbmQ7IG9iamVjdCArPSBvYmplY3Rfc2l6ZSkKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UocGFnZSwgb2JqZWN0LCBwYWdlX2NvbmZpZyk7Cisg
ICAgICAgIGZvciAob2JqZWN0ID0gYmVnaW47IG9iamVjdCA8IGVuZDsgb2JqZWN0ICs9IG9iamVj
dF9zaXplKSB7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0
aF9wYWdlKAorICAgICAgICAgICAgICAgIHBhZ2UsIG9iamVjdCwgcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX2RpcmVjdF9tb2RlLCBOVUxMLCBwYWdlX2NvbmZpZyk7CisgICAgICAgIH0KICAg
ICB9CiAgICAgCiAgICAgaWYgKGFsbG9jYXRvci0+Y3VycmVudF9vZmZzZXQgPT0gYWxsb2NhdG9y
LT5lbmRfb2Zmc2V0KQpAQCAtMTMxMSwxOCArMTM2MSwyNCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZV93aXRoX2ZyCiAgICAgaWYgKFBBU19VTkxJS0VMWSghY3VycmVudF93b3Jk
KSkgewogICAgICAgICB1bnNpZ25lZCBlbmRfb2Zmc2V0OwogCisgICAgICAgIGVuZF9vZmZzZXQg
PSBhbGxvY2F0b3ItPmVuZF9vZmZzZXQ7CisKICAgICAgICAgaWYgKHVzZV9jdXJyZW50X3dvcmQp
IHsKICAgICAgICAgICAgIGlmIChhbGxvY2F0b3ItPmNvbmZpZ19raW5kCiAgICAgICAgICAgICAg
ICAgIT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9jcmVhdGVfbm9ybWFsKHBhZ2Vf
Y29uZmlnLmtpbmQpKQogICAgICAgICAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgY3VycmVudF9v
ZmZzZXQgPSBhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0OworICAgICAgICAgICAgaWYgKGN1cnJl
bnRfb2Zmc2V0ID49IGVuZF9vZmZzZXQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogICAgICAgICAgICAgCisgICAgICAgICAg
ICBQQVNfVEVTVElOR19BU1NFUlQoY3VycmVudF9vZmZzZXQgPCBQQVNfQklUVkVDVE9SX05VTV9X
T1JEUzY0KHBhZ2VfY29uZmlnLm51bV9hbGxvY19iaXRzKSk7CisKKyAgICAgICAgICAgIGlmICh2
ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIlplcm9pbmcgJXBcbiIsIGFsbG9jYXRv
ci0+Yml0cyArIGN1cnJlbnRfb2Zmc2V0KTsKICAgICAgICAgICAgIGFsbG9jYXRvci0+Yml0c1tj
dXJyZW50X29mZnNldF0gPSAwOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBlbmRfb2Zm
c2V0ID0gYWxsb2NhdG9yLT5lbmRfb2Zmc2V0OwotCiAgICAgICAgIGRvIHsKICAgICAgICAgICAg
ICsrY3VycmVudF9vZmZzZXQ7CiAgICAgICAgICAgICBwYWdlX2lzaCArPSA2NCA8PCBwYWdlX2Nv
bmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdDsKQEAgLTEzNjksNyArMTQyNSw3IEBAIHBhc19sb2Nh
bF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3dpdGhfZnIKICAgICAgICAgcGFzX2xvZygKICAgICAg
ICAgICAgICIlcCglcCk6IFJldHVybmluZyByZXN1bHQgdXNpbmcgZnJlZSBiaXRzOiAlcC5cbiIs
CiAgICAgICAgICAgICBhbGxvY2F0b3IsCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KSwKKyAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyks
CiAgICAgICAgICAgICAodm9pZCopcmVzdWx0KTsKICAgICB9CiAgICAgCkBAIC0xMzk0LDcgKzE0
NTAsMTEgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfaW5saW5lXwogICAgIAog
ICAgIGlmIChyZW1haW5pbmcpIHsKICAgICAgICAgdWludHB0cl90IHJlc3VsdDsKKworICAgICAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coInBheWxvYWRfZW5kID0gJXBcbiIs
IGFsbG9jYXRvci0+cGF5bG9hZF9lbmQpOwogICAgICAgICAKKyAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKGFsbG9jYXRvci0+cGF5bG9hZF9lbmQpOwogICAgICAgICBQQVNfVEVTVElOR19BU1NF
UlQocmVtYWluaW5nIC0gb2JqZWN0X3NpemUgPCBhbGxvY2F0b3ItPnJlbWFpbmluZyk7CiAgICAg
ICAgIAogICAgICAgICAvKiBUaGlzIGlzIHRoZSBmYXN0ZXN0IGZhc3QgcGF0aCBmb3IgYWxsb2Nh
dGlvbi4gSXQgd2lsbCBoYXBwZW4gaWY6CkBAIC0xNDU4LDE2ICsxNTE4LDE3IEBAIHN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl8KIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5
X2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfc2xvdygKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
KiBhbGxvY2F0b3IsCiAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKLSAgICBwYXNfYWxsb2Nh
dG9yX2NvdW50cyogY291bnRzKQorICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsCisg
ICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKQogewogICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAKICAgICByZXN1bHQgPSBwYXNfbG9jYWxfYWxs
b2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zZWdyZWdhdGVkX3Nsb3dfaW1wbChhbGxvY2F0b3Is
IGNvbmZpZywgY291bnRzKTsKIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAgIGFsbG9j
YXRvci0+aXNfaW5fdXNlID0gZmFsc2U7CisgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5p
c19pbl91c2UgPSBmYWxzZTsKIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIHJlc3Vs
dF9maWx0ZXIocmVzdWx0KTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19mYXN0
X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQKQEAgLTE1OTQsNyArMTY1NSw4IEBAIHBhc19sb2NhbF9h
bGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3cocGEKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9maWx0ZXIgcmVzdWx0X2ZpbHRlcikKIHsKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVz
dWx0OwogCkBAIC0xNjAyLDkgKzE2NjQsNDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxs
b2NhdGVfc2xvdyhwYQogICAgICAgICBhbGxvY2F0b3IsIHNpemUsIGFsaWdubWVudCwgY29uZmln
LCBjb3VudHMpOwogCiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgYWxsb2NhdG9yLT5p
c19pbl91c2UgPSBmYWxzZTsKKyAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3Vz
ZSA9IGZhbHNlOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gcmVzdWx0X2ZpbHRl
cihyZXN1bHQpOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25f
cmVzdWx0CitwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfb25seShwYXNf
bG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRl
ciByZXN1bHRfZmlsdGVyKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworCisgICAgaWYgKHZlcmJvc2Up
IHsKKyAgICAgICAgcGFzX2xvZygiQWxsb2NhdG9yICVwICglcykgYWxsb2NhdGluZyBpbmxpbmUg
b25seS5cbiIsCisgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9jYWxfYWxsb2NhdG9y
X2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5jb25maWdfa2luZCkpOworICAgIH0K
KyAgICAKKyAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IHRydWU7Cisg
ICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisKKyAgICByZXN1bHQgPSBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfY2FzZXMoYWxsb2NhdG9yLCBjb25maWcpOworICAgIGlm
IChyZXN1bHQuZGlkX3N1Y2NlZWQpIHsKKyAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Cisg
ICAgICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gZmFsc2U7CisgICAg
ICAgIAorICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgcGFzX2xvZygiQWxsb2Nh
dG9yICVwICglcykgYWxsb2NhdGVkICVwIChpbmxpbmUgY2FzZXMpLlxuIiwKKyAgICAgICAgICAg
ICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9z
dHJpbmcoYWxsb2NhdG9yLT5jb25maWdfa2luZCksCisgICAgICAgICAgICAgICAgICAgICh2b2lk
KilyZXN1bHQuYmVnaW4pOworICAgICAgICB9CisgICAgCisgICAgICAgIHJldHVybiByZXN1bHRf
ZmlsdGVyKAorICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNz
X3dpdGhfemVyb19tb2RlKHJlc3VsdC5iZWdpbiwgcmVzdWx0Lnplcm9fbW9kZSkpOworICAgIH0K
KworICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2Rh
dGEuaXNfaW5fdXNlID0gZmFsc2U7CisKKyAgICAvKiBOT1RFOiBJdCdzIGludGVudGlvbmFsIHRo
YXQgd2Ugb25seSBhcHBseSB0aGUgcmVzdWx0IGZpbHRlciBvbiB0aGUgc3VjY2VzcyBjYXNlLiAq
LworICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKIH0K
IAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdApAQCAtMTYx
MywxMiArMTcxMywxMyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShwYXNfbG9j
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBzaXplX3RodW5rX2FyZywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50
cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfY291bnRz
KiBjb3VudHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0ZXIpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAKLSAg
ICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+aXNfaW5fdXNlKTsKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQoIWFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKIAogICAg
IGlmICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coIkFsbG9jYXRvciAlcCAoJXMpIGFsbG9j
YXRpbmcgc2l6ZSA9ICV6dSwgYWxpZ25tZW50ID0gJXp1LlxuIiwKQEAgLTE2MjYsMTMgKzE3Mjcs
MTMgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2xvYwogICAgICAgICAg
ICAgICAgIHNpemVfdGh1bmsoc2l6ZV90aHVua19hcmcpLCBhbGlnbm1lbnQpOwogICAgIH0KICAg
ICAKLSAgICBhbGxvY2F0b3ItPmlzX2luX3VzZSA9IHRydWU7CisgICAgYWxsb2NhdG9yLT5zY2F2
ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOwogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwog
CiAgICAgcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfaW5saW5lX2Nh
c2VzKGFsbG9jYXRvciwgY29uZmlnKTsKICAgICBpZiAocmVzdWx0LmRpZF9zdWNjZWVkKSB7CiAg
ICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAgICAgICBhbGxvY2F0b3ItPmlzX2luX3Vz
ZSA9IGZhbHNlOworICAgICAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9
IGZhbHNlOwogICAgICAgICAKICAgICAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgICAgIHBh
c19sb2coIkFsbG9jYXRvciAlcCAoJXMpIGFsbG9jYXRlZCAlcCAoaW5saW5lIGNhc2VzKS5cbiIs
CkBAIC0xNjQwLDcgKzE3NDEsOCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShw
YXNfbG9jCiAgICAgICAgICAgICAgICAgICAgICh2b2lkKilyZXN1bHQuYmVnaW4pOwogICAgICAg
ICB9CiAgICAgCi0gICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1
Y2Nlc3Nfd2l0aF96ZXJvX21vZGUocmVzdWx0LmJlZ2luLCByZXN1bHQuemVyb19tb2RlKTsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdF9maWx0ZXIoCisgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUocmVzdWx0LmJlZ2luLCByZXN1bHQu
emVyb19tb2RlKSk7CiAgICAgfQogCiAgICAgaWYgKGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2Nv
bmZpZy5iYXNlLmlzX2VuYWJsZWQgJiYKQEAgLTE2NTMsMzIgKzE3NTUsMTggQEAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2xvYwogICAgICAgICAgICAgICAgICAgICBhbGxv
Y2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhhbGxvY2F0
b3ItPmNvbmZpZ19raW5kKSk7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gY29uZmlnLnNw
ZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9z
bG93KAotICAgICAgICAgICAgYWxsb2NhdG9yLCBjb3VudHMpOworICAgICAgICByZXN1bHQgPSBj
b25maWcuc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zZWdy
ZWdhdGVkX3Nsb3coCisgICAgICAgICAgICBhbGxvY2F0b3IsIGNvdW50cywgcmVzdWx0X2ZpbHRl
cik7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygiaW4gc21hbGwg
c2VncmVnYXRlZCBzbG93IHJldHVybiAtIHJlc3VsdC5iZWdpbiA9ICVwXG4iLCAodm9pZCopcmVz
dWx0LmJlZ2luKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKICAgICByZXN1bHQg
PSBjb25maWcuc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbG93KAot
ICAgICAgICBhbGxvY2F0b3IsIHNpemVfdGh1bmsoc2l6ZV90aHVua19hcmcpLCBhbGlnbm1lbnQs
IGNvdW50cyk7Ci0gICAgaWYgKHJlc3VsdC5kaWRfc3VjY2VlZCkgewotICAgICAgICBwYXNfY29t
cGlsZXJfZmVuY2UoKTsKLQotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgcGFz
X2xvZygiQWxsb2NhdG9yICVwICglcykgYWxsb2NhdGVkICVwIChzbG93KS5cbiIsCi0gICAgICAg
ICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9n
ZXRfc3RyaW5nKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQpLAotICAgICAgICAgICAgICAgICAgICAo
dm9pZCopcmVzdWx0LmJlZ2luKTsKLSAgICAgICAgfQotICAgIAotICAgICAgICByZXR1cm4gcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzX3dpdGhfemVyb19tb2RlKHJlc3VsdC5i
ZWdpbiwgcmVzdWx0Lnplcm9fbW9kZSk7Ci0gICAgfQotCi0gICAgcGFzX2NvbXBpbGVyX2ZlbmNl
KCk7Ci0gICAgCi0gICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgcGFzX2xvZygiQWxsb2NhdG9y
ICVwICglcykgZmFpbGVkLlxuIiwKLSAgICAgICAgICAgICAgICBhbGxvY2F0b3IsIHBhc19sb2Nh
bF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5k
KSk7Ci0gICAgfQotICAgIAotICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRl
X2ZhaWx1cmUoKTsKKyAgICAgICAgYWxsb2NhdG9yLCBzaXplX3RodW5rKHNpemVfdGh1bmtfYXJn
KSwgYWxpZ25tZW50LCBjb3VudHMsIHJlc3VsdF9maWx0ZXIpOworICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICBwYXNfbG9nKCJpbiBnZW5lcmljIHJldHVybiAtIHJlc3VsdC5iZWdpbiA9ICVwXG4i
LCAodm9pZCopcmVzdWx0LmJlZ2luKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBQQVNfRU5E
X0VYVEVSTl9DOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX2FsbG9jYXRvcl9raW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5k
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19MT0NBTF9BTExPQ0FUT1JfS0lO
RAorI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX0tJTkQKKworI2luY2x1ZGUgInBhc191dGls
cy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK2VudW0gcGFzX2xvY2FsX2FsbG9jYXRvcl9r
aW5kIHsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kLAorICAgIHBhc19s
b2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kCit9OworCit0eXBlZGVmIGVudW0gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9raW5kIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZDsKKworc3RhdGljIGlu
bGluZSBjb25zdCBjaGFyKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmRfZ2V0X3N0cmluZyhwYXNf
bG9jYWxfYWxsb2NhdG9yX2tpbmQga2luZCkKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBj
YXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQ6CisgICAgICAgIHJldHVybiAi
YWxsb2NhdG9yIjsKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5k
OgorICAgICAgICByZXR1cm4gInZpZXdfY2FjaGUiOworICAgIH0KKyAgICBQQVNfQVNTRVJUKCEi
U2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1BBU19FTkRf
RVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9SX0tJTkQgKi8KKwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9s
aW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xvY2FsX2FsbG9jYXRvcl9saW5lLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oCShub25leGlz
dGVudCkKQEAgLTEsMTE0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfTE9DQUxfQUxMT0NBVE9SX0xJTkVfSAotI2RlZmlu
ZSBQQVNfTE9DQUxfQUxMT0NBVE9SX0xJTkVfSAotCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9saW5lOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5l
IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZTsKLQotc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3Jf
bGluZSB7Ci0gICAgdWludDE2X3QgZW5jb2RlZF9yZW1haW5pbmc7Ci0gICAgdWludDE2X3QgZW5j
b2RlZF9wYXlsb2FkX2VuZF9kZWx0YTsKLX07Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBi
b29sIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9maXRzX3dpdGhvdXRfc2hpZnQoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0gICAgc2l6ZV90IG1heF9w
YWdlX29mZnNldDsKLSAgICBzaXplX3Qgc2hpZnRlZDsKLQotICAgIG1heF9wYWdlX29mZnNldCA9
IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC0gMTsKLQotICAgIGlmICgodWludDE2X3QpbWF4
X3BhZ2Vfb2Zmc2V0ID09IG1heF9wYWdlX29mZnNldCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0K
LSAgICBzaGlmdGVkID0gbWF4X3BhZ2Vfb2Zmc2V0ID4+IHBhZ2VfY29uZmlnLmJhc2UubWluX2Fs
aWduX3NoaWZ0OwotCi0gICAgUEFTX0FTU0VSVCgodWludDE2X3Qpc2hpZnRlZCA9PSBzaGlmdGVk
KTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXpl
X3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX2RlY29kZSh1aW50MTZfdCB2YWx1ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICBpZiAocGFz
X2xvY2FsX2FsbG9jYXRvcl9saW5lX2ZpdHNfd2l0aG91dF9zaGlmdChwYWdlX2NvbmZpZykpCi0g
ICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICByZXR1cm4gKHNpemVfdCl2YWx1ZSA8PCBwYWdlX2Nv
bmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHVpbnQxNl90IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9lbmNvZGUoc2l6ZV90IHZhbHVlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0gICAg
dWludDE2X3QgZW5jb2RlZDsKLSAgICAKLSAgICBpZiAocGFzX2xvY2FsX2FsbG9jYXRvcl9saW5l
X2ZpdHNfd2l0aG91dF9zaGlmdChwYWdlX2NvbmZpZykpCi0gICAgICAgIGVuY29kZWQgPSAodWlu
dDE2X3QpdmFsdWU7Ci0gICAgZWxzZQotICAgICAgICBlbmNvZGVkID0gKHVpbnQxNl90KSh2YWx1
ZSA+PiBwYWdlX2NvbmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdCk7Ci0KLSAgICBQQVNfVEVTVElO
R19BU1NFUlQocGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX2RlY29kZShlbmNvZGVkLCBwYWdlX2Nv
bmZpZykgPT0gdmFsdWUpOwotCi0gICAgcmV0dXJuIGVuY29kZWQ7Ci19Ci0KLXN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBzaXplX3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX3JlbWFpbmluZygK
LSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUgbGluZSwKLSAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRv
cl9saW5lX2RlY29kZShsaW5lLmVuY29kZWRfcmVtYWluaW5nLCBwYWdlX2NvbmZpZyk7Ci19Ci0K
LXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9z
ZXRfcmVtYWluaW5nKAotICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZSogbGluZSwKLSAgICBz
aXplX3QgcmVtYWluaW5nLAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29u
ZmlnKQotewotICAgIGxpbmUtPmVuY29kZWRfcmVtYWluaW5nID0gcGFzX2xvY2FsX2FsbG9jYXRv
cl9saW5lX2VuY29kZShyZW1haW5pbmcsIHBhZ2VfY29uZmlnKTsKLX0KLQotc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHNpemVfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfcGF5bG9hZF9lbmRf
ZGVsdGEoCi0gICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lIGxpbmUsCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0gICAgcmV0dXJuIHBhc19sb2NhbF9h
bGxvY2F0b3JfbGluZV9kZWNvZGUobGluZS5lbmNvZGVkX3BheWxvYWRfZW5kX2RlbHRhLCBwYWdl
X2NvbmZpZyk7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF9h
bGxvY2F0b3JfbGluZV9zZXRfcGF5bG9hZF9lbmRfZGVsdGEoCi0gICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9saW5lKiBsaW5lLAotICAgIHNpemVfdCBwYXlsb2FkX2VuZF9kZWx0YSwKLSAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICBsaW5lLT5lbmNvZGVk
X3BheWxvYWRfZW5kX2RlbHRhID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX2VuY29kZShwYXls
b2FkX2VuZF9kZWx0YSwgcGFnZV9jb25maWcpOwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0j
ZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9MSU5FX0ggKi8KLQpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxs
b2NhdG9yX3Jlc3VsdC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCwxNSArMzAsMTMgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1zdHJ1Y3QgcGFz
X2xvY2FsX2FsbG9jYXRvcjsKIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdDsKLXR5
cGVkZWYgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3IgcGFzX2xvY2FsX2FsbG9jYXRvcjsKIHR5
cGVkZWYgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBhc19sb2NhbF9hbGxvY2F0
b3JfcmVzdWx0OwogCiAvKiBUaGlzIGV4aXN0cyB0byBhbGxvdyBqdW1wLXRocmVhZGluZyBvZiBz
dWNjZXNzLiAqLwogc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHsKICAgICBib29s
IGRpZF9zdWNjZWVkOwotICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKKyAgICB2
b2lkKiBhbGxvY2F0b3I7IC8qIENvdWxkIHJlYWxseSBiZSBhIGxvY2FsX2FsbG9jYXRvciBvciBh
IGxvY2FsX3ZpZXdfY2FjaGUuICovCiB9OwogCiBzdGF0aWMgaW5saW5lIHBhc19sb2NhbF9hbGxv
Y2F0b3JfcmVzdWx0IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKHZv
aWQpCkBAIC00OSw3ICs0Nyw3IEBAIHN0YXRpYyBpbmxpbmUgcGFzX2xvY2FsX2FsbG9jYXRvcl9y
ZXN1bHQKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW5saW5lIHBhc19sb2NhbF9h
bGxvY2F0b3JfcmVzdWx0IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNz
KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcikKK3N0YXRpYyBpbmxpbmUgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZXN1bHQgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nl
c3Modm9pZCogYWxsb2NhdG9yKQogewogICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHJl
c3VsdDsKICAgICByZXN1bHQuZGlkX3N1Y2NlZWQgPSB0cnVlOwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
LmMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgorCisjaWYg
TElCUEFTX0VOQUJMRUQKKworI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGEuaCIKKworI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJw
YXNfbG9jYWxfdmlld19jYWNoZS5oIgorCit1aW50OF90IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hv
dWxkX3N0b3BfY291bnRfZm9yX3N1c3BlbmQgPSA1OworCitib29sIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZlKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGEqIGRhdGEpCit7CisgICAgc3dpdGNoIChkYXRhLT5raW5kKSB7CisgICAgY2FzZSBwYXNf
bG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOgorICAgICAgICByZXR1cm4gcGFzX2xvY2Fs
X2FsbG9jYXRvcl9pc19hY3RpdmUoKHBhc19sb2NhbF9hbGxvY2F0b3IqKWRhdGEpOworICAgIGNh
c2UgcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tpbmQ6CisgICAgICAgIHJldHVybiAh
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkoKHBhc19sb2NhbF92aWV3X2NhY2hlKilkYXRh
KTsKKyAgICB9CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9k
YXRhX3N0b3AoCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwK
KyAgICBwYXNfbG9ja19sb2NrX21vZGUgcGFnZV9sb2NrX21vZGUsCisgICAgcGFzX2xvY2tfaG9s
ZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCit7CisgICAgc3dpdGNoIChkYXRhLT5raW5kKSB7
CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOgorICAgICAgICBy
ZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKChwYXNfbG9jYWxfYWxsb2NhdG9yKilkYXRh
LCBwYWdlX2xvY2tfbW9kZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgY2FzZSBwYXNfbG9j
YWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZDoKKyAgICAgICAgcmV0dXJuIHBhc19sb2NhbF92
aWV3X2NhY2hlX3N0b3AoKHBhc19sb2NhbF92aWV3X2NhY2hlKilkYXRhLCBwYWdlX2xvY2tfbW9k
ZSk7CisgICAgfQorICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKKyNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLworCisKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRv
cl9zY2F2ZW5nZXJfZGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfTE9D
QUxfQUxMT0NBVE9SX1NDQVZFTkdFUl9EQVRBX0gKKyNkZWZpbmUgUEFTX0xPQ0FMX0FMTE9DQVRP
Ul9TQ0FWRU5HRVJfREFUQV9ICisKKyNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQu
aCIKKyNpbmNsdWRlICJwYXNfbG9jay5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0cnVj
dCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhOwordHlwZWRlZiBzdHJ1Y3QgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhOworCisvKiBUaGlzIHNob3VsZCBqdXN0IGJlIDMyLWJpdC4gKi8KK3N0cnVjdCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhIHsKKyAgICBib29sIGlzX2luX3VzZTsK
KyAgICB1aW50OF90IHNob3VsZF9zdG9wX2NvdW50OworICAgIGJvb2wgZGlydHk7CisgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9raW5kIGtpbmQgOiA4OworfTsKKworI2RlZmluZSBQQVNfTE9DQUxf
QUxMT0NBVE9SX1NDQVZFTkdFUl9EQVRBX0lOSVRJQUxJWkVSKHBhc3NlZF9raW5kKSBcCisgICAg
KChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKXsgXAorICAgICAgICAgLmlzX2lu
X3VzZSA9IGZhbHNlLCBcCisgICAgICAgICAuc2hvdWxkX3N0b3BfY291bnQgPSAwLCBcCisgICAg
ICAgICAuZGlydHkgPSBmYWxzZSwgXAorICAgICAgICAgLmtpbmQgPSAocGFzc2VkX2tpbmQpIFwK
KyAgICAgfSkKKworUEFTX0FQSSBleHRlcm4gdWludDhfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3No
b3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kOworCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb25zdHJ1Y3QocGFzX2xvY2FsX2FsbG9jYXRv
cl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQg
a2luZCkKK3sKKyAgICAqZGF0YSA9IFBBU19MT0NBTF9BTExPQ0FUT1JfU0NBVkVOR0VSX0RBVEFf
SU5JVElBTElaRVIoa2luZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91c2VfZm9yX2FsbG9jYXRpb24oCisgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSkKK3sKKyAgICBkYXRhLT5kaXJ0eSA9
IHRydWU7CisgICAgZGF0YS0+c2hvdWxkX3N0b3BfY291bnQgPSAwOworfQorCitQQVNfQVBJIGJv
b2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19hY3RpdmUocGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSk7CisKK1BBU19BUEkgYm9vbCBwYXNfbG9j
YWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCisgICAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKKyAgICBwYXNfbG9ja19sb2NrX21vZGUgcGFnZV9sb2Nr
X21vZGUsCisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOworCitQ
QVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9TQ0FWRU5H
RVJfREFUQV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF92aWV3X2NhY2hlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYwkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMTI3IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisKKyNpZiBMSUJQQVNf
RU5BQkxFRAorCisjaW5jbHVkZSAicGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCIKKworI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeS5oIgorCit2b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX2NvbnN0cnVjdChwYXNf
bG9jYWxfdmlld19jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1aW50OF90IGNhcGFjaXR5KQoreworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGFfY29uc3RydWN0KAorICAgICAgICAmY2FjaGUtPnNjYXZlbmdlcl9kYXRhLCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZCk7CisgICAgCisgICAgY2FjaGUtPmNhcGFj
aXR5ID0gY2FwYWNpdHk7CisgICAgY2FjaGUtPmJvdHRvbV9pbmRleCA9IDA7CisgICAgY2FjaGUt
PnRvcF9pbmRleCA9IDA7CisgICAgY2FjaGUtPmlzX2Z1bGwgPSBmYWxzZTsKKworICAgIGlmIChQ
QVNfRU5BQkxFX1RFU1RJTkcpIHsKKyAgICAgICAgdWludDhfdCBpbmRleDsKKworICAgICAgICBm
b3IgKGluZGV4ID0gY2FwYWNpdHk7IGluZGV4LS07KQorICAgICAgICAgICAgcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfc3RvcmUoY2FjaGUtPnZpZXdzICsgaW5kZXgs
IE5VTEwpOworICAgIH0KK30KKwordm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9tb3ZlKHBhc19s
b2NhbF92aWV3X2NhY2hlKiBkZXN0aW5hdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9jYWxfdmlld19jYWNoZSogc291cmNlKQoreworICAgIG1lbWNweShkZXN0aW5h
dGlvbiwgc291cmNlLCBQQVNfTE9DQUxfVklFV19DQUNIRV9TSVpFKHNvdXJjZS0+Y2FwYWNpdHkp
KTsKK30KKworc3RhdGljIGJvb2wgc3RvcF9pbXBsKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNo
ZSwKKyAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrX21vZGUgcGFnZV9sb2NrX21v
ZGUpCit7CisgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBh
Z2VfY29uZmlnOworICAgIAorICAgIGRpcmVjdG9yeSA9IE5VTEw7CisgICAgcGFnZV9jb25maWcg
PSAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcpeyB9OworICAgIGhlbGRfbG9jayA9IE5VTEw7
CisgICAgCisgICAgd2hpbGUgKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eShjYWNoZSkp
IHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGNhY2hlZF92aWV3Owor
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOworICAgICAgICBib29sIHNob3VsZF9u
b3RpZnlfZWxpZ2liaWxpdHk7CisgICAgICAgIAorICAgICAgICBjYWNoZWRfdmlldyA9IHBhc19s
b2NhbF92aWV3X2NhY2hlX3BvcChjYWNoZSk7CisgICAgICAgIAorICAgICAgICBpZiAoZGlyZWN0
b3J5KSB7CisgICAgICAgICAgICBQQVNfQVNTRVJUKAorICAgICAgICAgICAgICAgIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJmNhY2hlZF92
aWV3LT5kaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgPT0gZGlyZWN0b3J5KTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJmNhY2hlZF92aWV3LT5kaXJlY3Rvcnkp
OworICAgICAgICAgICAgcGFnZV9jb25maWcgPSAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2Jv
dW5kYXJ5KGNhY2hlZF92aWV3LT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyk7CisgICAgICAg
IAorICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9tb2Rl
KHBhZ2UsICZoZWxkX2xvY2ssIHBhZ2VfbG9ja19tb2RlLCBwYWdlX2NvbmZpZykpIHsKKyAgICAg
ICAgICAgIFBBU19BU1NFUlQoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwoY2FjaGUpKTsK
KyAgICAgICAgICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3B1c2goY2FjaGUsIGNhY2hlZF92aWV3
KTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgc2hvdWxkX25vdGlmeV9lbGlnaWJpbGl0eSA9IHRydWU7CisgICAgICAgIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcoCisgICAgICAgICAgICBjYWNo
ZWRfdmlldywgZGlyZWN0b3J5LCBwYWdlLCBwYWdlX2NvbmZpZywgc2hvdWxkX25vdGlmeV9lbGln
aWJpbGl0eSk7CisgICAgfQorCisgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwp
OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3Ao
cGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSkKK3sKKyAgICBib29sIHJlc3Vs
dDsKKworICAgIFBBU19BU1NFUlQoIWNhY2hlLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOwor
CisgICAgY2FjaGUtPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IHRydWU7CisgICAgcGFzX2Nv
bXBpbGVyX2ZlbmNlKCk7CisKKyAgICByZXN1bHQgPSBzdG9wX2ltcGwoY2FjaGUsIHBhZ2VfbG9j
a19tb2RlKTsKKworICAgIGlmIChyZXN1bHQpCisgICAgICAgIGNhY2hlLT5zY2F2ZW5nZXJfZGF0
YS5zaG91bGRfc3RvcF9jb3VudCA9IDA7CisKKyAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKyAg
ICBjYWNoZS0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gZmFsc2U7CisKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCisjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KKwpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19j
YWNoZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sb2NhbF92aWV3X2NhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQ
QVNfTE9DQUxfVklFV19DQUNIRV9ICisjZGVmaW5lIFBBU19MT0NBTF9WSUVXX0NBQ0hFX0gKKwor
I2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmgiCisj
aW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oIgorI2luY2x1ZGUg
InBhc19sb2NrLmgiCisjaW5jbHVkZSAicGFzX2xvZy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7
CisKK3N0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZTsKK3R5cGVkZWYgc3RydWN0IHBhc19sb2Nh
bF92aWV3X2NhY2hlIHBhc19sb2NhbF92aWV3X2NhY2hlOworCitzdHJ1Y3QgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGUgeworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEgc2NhdmVu
Z2VyX2RhdGE7CisgICAgdWludDhfdCBjYXBhY2l0eTsKKyAgICAvKiBib3R0b21faW5kZXggYW5k
IHRvcF9pbmRleCBtdXN0IGJlIDwgY2FwYWNpdHkuICovCisgICAgdWludDhfdCBib3R0b21faW5k
ZXg7CisgICAgdWludDhfdCB0b3BfaW5kZXg7CisgICAgYm9vbCBpc19mdWxsOworICAgIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyIHZpZXdzWzFdOworfTsKKworI2Rl
ZmluZSBQQVNfTE9DQUxfVklFV19DQUNIRV9TSVpFKGNhcGFjaXR5KSBcCisgICAgUEFTX1JPVU5E
X1VQX1RPX1BPV0VSX09GXzIoKFBBU19PRkZTRVRPRihwYXNfbG9jYWxfdmlld19jYWNoZSwgdmll
d3MpICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cikgKiAoY2FwYWNpdHkpKSwgXAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1aW50NjRfdCkpCisKK1BBU19BUEkgdm9p
ZCBwYXNfbG9jYWxfdmlld19jYWNoZV9jb25zdHJ1Y3QocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNh
Y2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90
IGNhcGFjaXR5KTsKKworc3RhdGljIGlubGluZSBib29sIHBhc19sb2NhbF92aWV3X2NhY2hlX2lz
X2VtcHR5KHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKK3sKKyAgICBQQVNfVEVTVElOR19B
U1NFUlQoY2FjaGUtPmJvdHRvbV9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKGNhY2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBB
U19URVNUSU5HX0FTU0VSVCghY2FjaGUtPmlzX2Z1bGwgfHwgY2FjaGUtPmJvdHRvbV9pbmRleCA9
PSBjYWNoZS0+dG9wX2luZGV4KTsKKworICAgIHJldHVybiBjYWNoZS0+dG9wX2luZGV4ID09IGNh
Y2hlLT5ib3R0b21faW5kZXggJiYgIWNhY2hlLT5pc19mdWxsOworfQorCitzdGF0aWMgaW5saW5l
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBwYXNfbG9jYWxfdmlld19jYWNoZV9wb3Ao
cGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB0YWtlX2ZpcnN0ID0gdHJ1ZTsg
LyogSWYgc2V0dGluZyB0aGlzIHRvIGZhbHNlIHdhcyBwcm9maXRhYmxlLCB0aGVuIHRoaXMgd291
bGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgd3JpdHRl
biBhcyBhIHN0YWNrLiBJIGtlZXAgdGhpcyBvcHRpb24gaGVyZSBqdXN0IHNvCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEkgY2FuIG9jY2FzaW9uYWxseSB0ZXN0
IGlmIGl0IG1hdHRlcnMuICovCisgICAgCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXcqIHJlc3VsdDsKKyAgICB1aW50OF90IHBvcF9pbmRleDsKKworICAgIFBBU19URVNUSU5HX0FT
U0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eShjYWNoZSkpOwor
CisgICAgaWYgKHRha2VfZmlyc3QpIHsKKyAgICAgICAgdWludDhfdCBib3R0b21faW5kZXg7Cisg
ICAgICAgIHVpbnQ4X3QgbmV4dF9ib3R0b21faW5kZXg7CisKKyAgICAgICAgYm90dG9tX2luZGV4
ID0gY2FjaGUtPmJvdHRvbV9pbmRleDsKKyAgICAgICAgbmV4dF9ib3R0b21faW5kZXggPSBib3R0
b21faW5kZXggKyAxOworICAgICAgICBpZiAobmV4dF9ib3R0b21faW5kZXggPj0gY2FjaGUtPmNh
cGFjaXR5KSB7CisgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQobmV4dF9ib3R0b21faW5k
ZXggPT0gY2FjaGUtPmNhcGFjaXR5KTsKKyAgICAgICAgICAgIG5leHRfYm90dG9tX2luZGV4ID0g
MDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcG9wX2luZGV4ID0gYm90dG9tX2luZGV4
OworCisgICAgICAgIGNhY2hlLT5ib3R0b21faW5kZXggPSBuZXh0X2JvdHRvbV9pbmRleDsKKyAg
ICB9IGVsc2UgeworICAgICAgICB1aW50OF90IHRvcF9pbmRleDsKKyAgICAgICAgCisgICAgICAg
IHRvcF9pbmRleCA9IGNhY2hlLT50b3BfaW5kZXg7CisgICAgICAgIAorICAgICAgICBpZiAoIXRv
cF9pbmRleCkKKyAgICAgICAgICAgIHRvcF9pbmRleCA9IGNhY2hlLT5jYXBhY2l0eSAtIDE7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRvcF9pbmRleC0tOworCisgICAgICAgIHBvcF9pbmRl
eCA9IHRvcF9pbmRleDsKKyAgICAgICAgCisgICAgICAgIGNhY2hlLT50b3BfaW5kZXggPSB0b3Bf
aW5kZXg7CisgICAgfQorICAgIAorICAgIHJlc3VsdCA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoY2FjaGUtPnZpZXdzICsgcG9wX2luZGV4
KTsKKyAgICAKKyAgICBpZiAoUEFTX0VOQUJMRV9URVNUSU5HKQorICAgICAgICBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9zdG9yZShjYWNoZS0+dmlld3MgKyBwb3Bf
aW5kZXgsIE5VTEwpOworICAgIAorICAgIGNhY2hlLT5pc19mdWxsID0gZmFsc2U7CisgICAgCisg
ICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coIiVwOiBwb3BwZWQgJXAuXG4iLCBjYWNo
ZSwgcmVzdWx0KTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9v
bCBwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxsKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNo
ZSkKK3sKKyAgICByZXR1cm4gY2FjaGUtPmlzX2Z1bGw7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9p
ZCBwYXNfbG9jYWxfdmlld19jYWNoZV9wdXNoKAorICAgIHBhc19sb2NhbF92aWV3X2NhY2hlKiBj
YWNoZSwKKyAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldykKK3sKKyAgICBz
dGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgdWludDhfdCB0b3Bf
aW5kZXg7CisgICAgdWludDhfdCBuZXh0X3RvcF9pbmRleDsKKworICAgIFBBU19URVNUSU5HX0FT
U0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxsKGNhY2hlKSk7Cisg
ICAgUEFTX1RFU1RJTkdfQVNTRVJUKHZpZXcpOworCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAg
IHBhc19sb2coIiVwOiBwdXNoaW5nICVwLlxuIiwgY2FjaGUsIHZpZXcpOworCisgICAgdG9wX2lu
ZGV4ID0gY2FjaGUtPnRvcF9pbmRleDsKKyAgICBuZXh0X3RvcF9pbmRleCA9IHRvcF9pbmRleCAr
IDE7CisgICAgaWYgKG5leHRfdG9wX2luZGV4ID49IGNhY2hlLT5jYXBhY2l0eSkgeworICAgICAg
ICBQQVNfVEVTVElOR19BU1NFUlQobmV4dF90b3BfaW5kZXggPT0gY2FjaGUtPmNhcGFjaXR5KTsK
KyAgICAgICAgbmV4dF90b3BfaW5kZXggPSAwOworICAgIH0KKworICAgIGlmIChuZXh0X3RvcF9p
bmRleCA9PSBjYWNoZS0+Ym90dG9tX2luZGV4KQorICAgICAgICBjYWNoZS0+aXNfZnVsbCA9IHRy
dWU7CisgICAgCisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfcHRyX2lzX251bGwoY2FjaGUtPnZpZXdzICsgdG9wX2luZGV4KSk7CisK
KyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9zdG9yZShjYWNo
ZS0+dmlld3MgKyB0b3BfaW5kZXgsIHZpZXcpOworICAgIGNhY2hlLT50b3BfaW5kZXggPSBuZXh0
X3RvcF9pbmRleDsKK30KKworUEFTX0FQSSB2b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX21vdmUo
cGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGRlc3RpbmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGUqIHNvdXJjZSk7CisKK1BBU19B
UEkgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKHBhc19sb2NhbF92aWV3X2NhY2hlKiBj
YWNoZSwgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlKTsKKworUEFTX0VORF9FWFRF
Uk5fQzsKKworI2VuZGlmIC8qIFBBU19MT0NBTF9WSUVXX0NBQ0hFX0ggKi8KKwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF92aWV3X2NhY2hlX25vZGUuYwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgorCisjaWYgTElCUEFTX0VOQUJMRUQKKwor
I2luY2x1ZGUgInBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCIKKworI2luY2x1ZGUgInBhc19p
bW1vcnRhbF9oZWFwLmgiCisKK3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqCitwYXNfbG9jYWxf
dmlld19jYWNoZV9ub2RlX2NyZWF0ZShwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5KQoreworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqIHJlc3VsdDsKKworICAg
IHJlc3VsdCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAorICAgICAgICBzaXplb2YocGFz
X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSksCisgICAgICAgICJwYXNfbG9jYWxfdmlld19jYWNoZV9u
b2RlIiwKKyAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKKworICAgIHBhc19jb21wYWN0
X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcmUoJnJlc3VsdC0+bmV4
dCwgTlVMTCk7CisgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJf
c3RvcmUoJnJlc3VsdC0+ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOworCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQ5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUEFTX0xPQ0FMX1ZJRVdfQ0FDSEVfTk9ERV9ICisjZGVmaW5lIFBBU19MT0NBTF9WSUVX
X0NBQ0hFX05PREVfSAorCisjaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHIuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlLmgiCisjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgor
CitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2Rl
OwordHlwZWRlZiBzdHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSBwYXNfbG9jYWxfdmll
d19jYWNoZV9ub2RlOworCitzdHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSB7CisgICAg
cGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0Owor
ICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsK
K307CisKK1BBU19BUEkgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSoKK3Bhc19sb2NhbF92aWV3
X2NhY2hlX25vZGVfY3JlYXRlKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpOworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0xPQ0FMX1ZJRVdfQ0FD
SEVfTk9ERV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hh
c2h0YWJsZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYwkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSAicGFzX2hhc2h0YWJsZS5oIgogI2lu
Y2x1ZGUgInBhc19oZWFwX2xvY2suaCIKIAorI2lmIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRS
X0hBU0hUQUJMRV9FTkFCTEVfQ09MTElTSU9OX0NPVU5UCit1aW50NjRfdCBwYXNfbG9ja19mcmVl
X3JlYWRfcHRyX3B0cl9oYXNodGFibGVfY29sbGlzaW9uX2NvdW50OworI2VuZGlmIC8qIFBBU19M
T0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09MTElTSU9OX0NPVU5UICov
CisKIHZvaWQgcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlX3NldCgKICAgICBw
YXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUqIGhhc2h0YWJsZSwKICAgICB1bnNp
Z25lZCAoKmhhc2hfa2V5KShjb25zdCB2b2lkKiBrZXksIHZvaWQqIGFyZyksCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9o
YXNodGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFk
X3B0cl9wdHJfaGFzaHRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw3ICsyNiw5IEBACiAj
aWZuZGVmIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9ICiAjZGVmaW5lIFBB
U19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9ICiAKKyNpbmNsdWRlICJwYXNfbG9n
LmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIFBBU19C
RUdJTl9FWFRFUk5fQzsKIApAQCAtNTIsNiArNTQsMTIgQEAgc3RydWN0IFBBU19BTElHTkVEKHNp
emVvZihwYXNfcGFpcikpIHBhcwogICAgICAgICAgLnRhYmxlID0gTlVMTCBcCiAgICAgIH0pCiAK
KyNkZWZpbmUgUEFTX0xPQ0tfRlJFRV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxFX0VOQUJMRV9DT0xM
SVNJT05fQ09VTlQgMAorCisjaWYgUEFTX0xPQ0tfRlJFRV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxF
X0VOQUJMRV9DT0xMSVNJT05fQ09VTlQKK1BBU19BUEkgZXh0ZXJuIHVpbnQ2NF90IHBhc19sb2Nr
X2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZV9jb2xsaXNpb25fY291bnQ7CisjZW5kaWYgLyog
UEFTX0xPQ0tfRlJFRV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxFX0VOQUJMRV9DT0xMSVNJT05fQ09V
TlQgKi8KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIHBhc19sb2NrX2ZyZWVfcmVh
ZF9wdHJfcHRyX2hhc2h0YWJsZV9maW5kKAogICAgIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRy
X2hhc2h0YWJsZSogaGFzaHRhYmxlLAogICAgIHVuc2lnbmVkICgqaGFzaF9rZXkpKGNvbnN0IHZv
aWQqIGtleSwgdm9pZCogYXJnKSwKQEAgLTg1LDYgKzkzLDI0IEBAIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkKiBwYXNfbG9ja18KIAogICAgICAgICBpZiAobG9hZGVkX2tleSA9PSBVSU5U
UFRSX01BWCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOworCisjaWYgUEFTX0xPQ0tfRlJFRV9S
RUFEX1BUUl9QVFJfSEFTSFRBQkxFX0VOQUJMRV9DT0xMSVNJT05fQ09VTlQKKyAgICAgICAgZm9y
ICg7OykgeworICAgICAgICAgICAgdWludDY0X3Qgb2xkX2NvbGxpc2lvbl9jb3VudDsKKyAgICAg
ICAgICAgIHVpbnQ2NF90IG5ld19jb2xsaXNpb25fY291bnQ7CisKKyAgICAgICAgICAgIG9sZF9j
b2xsaXNpb25fY291bnQgPSBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGVfY29s
bGlzaW9uX2NvdW50OworICAgICAgICAgICAgbmV3X2NvbGxpc2lvbl9jb3VudCA9IG9sZF9jb2xs
aXNpb25fY291bnQgKyAxOworCisgICAgICAgICAgICBpZiAocGFzX2NvbXBhcmVfYW5kX3N3YXBf
dWludDY0X3dlYWsoCisgICAgICAgICAgICAgICAgICAgICZwYXNfbG9ja19mcmVlX3JlYWRfcHRy
X3B0cl9oYXNodGFibGVfY29sbGlzaW9uX2NvdW50LAorICAgICAgICAgICAgICAgICAgICBvbGRf
Y29sbGlzaW9uX2NvdW50LCBuZXdfY29sbGlzaW9uX2NvdW50KSkgeworICAgICAgICAgICAgICAg
IGlmICghKG5ld19jb2xsaXNpb25fY291bnQgJSAxMDAwMCkpCisgICAgICAgICAgICAgICAgICAg
IHBhc19sb2coIiVkOiBTYXcgJWxsdSBjb2xsaXNpb25zLlxuIiwgZ2V0cGlkKCksIG5ld19jb2xs
aXNpb25fY291bnQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisjZW5kaWYgLyogUEFTX0xPQ0tfRlJFRV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxFX0VO
QUJMRV9DT0xMSVNJT05fQ09VTlQgKi8KICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5jCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuYwkobm9u
ZXhpc3RlbnQpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElC
UEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19tYWdhemluZS5oIgotCi0jaW5jbHVkZSAicGFz
X2ltbW9ydGFsX2hlYXAuaCIKLQotcGFzX21hZ2F6aW5lKiBwYXNfbWFnYXppbmVfY3JlYXRlKHVu
c2lnbmVkIG1hZ2F6aW5lX2luZGV4KQotewotICAgIHBhc19tYWdhemluZSogcmVzdWx0OwotCi0g
ICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCi0gICAgICAgIHNpemVvZihw
YXNfbWFnYXppbmUpLAotICAgICAgICAicGFzX21hZ2F6aW5lIiwKLSAgICAgICAgcGFzX29iamVj
dF9hbGxvY2F0aW9uKTsKLQotICAgIHBhc19sb2NrX2NvbnN0cnVjdCgmcmVzdWx0LT5sb2NrKTsK
LQotICAgIHJlc3VsdC0+bWFnYXppbmVfaW5kZXggPSBtYWdhemluZV9pbmRleDsKLQotICAgIHJl
dHVybiByZXN1bHQ7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21hZ2F6aW5lLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21hZ2F6aW5lLmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdh
emluZS5oCShub25leGlzdGVudCkKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
YykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX01BR0FaSU5FX0gK
LSNkZWZpbmUgUEFTX01BR0FaSU5FX0gKLQotI2luY2x1ZGUgInBhc19sb2NrLmgiCi0jaW5jbHVk
ZSAicGFzX3V0aWxzLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19tYWdh
emluZTsKLXN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGU7Ci10eXBlZGVmIHN0cnVj
dCBwYXNfbWFnYXppbmUgcGFzX21hZ2F6aW5lOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9ub2RlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZTsKLQotc3RydWN0IHBh
c19tYWdhemluZSB7Ci0gICAgLyogVGhpcyBpcyB0aGUgbG9jayB0aGF0IHdlIGJpYXMgcGFnZXMg
dG8uCi0gICAgIAotICAgICAgIEZvciBsb2NrIG9yZGVyaW5nLCB3ZSBzYXkgdGhhdDoKLSAgICAK
LSAgICAgICAtIE1hZ2F6aW5lIGxvY2tzIGFyZSBhY3F1aXJlZCBiZWZvcmUgcGFnZSBvd25lcnNo
aXAgbG9ja3MuCi0gICAgCi0gICAgICAgLSBNYWdhemluZSBsb2NrcyBhcmUgYWNxdWlyZWQgaW4g
cG9pbnRlci1hcy1pbnRlZ2VyIG9yZGVyIHJlbGF0aXZlIHRvIG9uZSBhbm90aGVyLiAqLwotICAg
IHBhc19sb2NrIGxvY2s7Ci0KLSAgICAvKiBUaGlzIGdldHMgdXNlZCBhcyBhbiBpbmRleCBpbiBi
aWFzaW5nIGRpcmVjdG9yaWVzLiAqLwotICAgIHVuc2lnbmVkIG1hZ2F6aW5lX2luZGV4OwotfTsK
LQotUEFTX0FQSSBwYXNfbWFnYXppbmUqIHBhc19tYWdhemluZV9jcmVhdGUodW5zaWduZWQgbWFn
YXppbmVfaW5kZXgpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX01BR0Fa
SU5FX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Bh
Z2VfYmFzZV9jb25maWdfdXRpbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2Nv
bmZpZ191dGlscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAKIFBBU19CRUdJ
Tl9FWFRFUk5fQzsKIAotI2RlZmluZSBQQVNfQkFTSUNfUEFHRV9CQVNFX0NPTkZJR19GT1JXQVJE
X0RFQ0xBUkFUSU9OUyhuYW1lKSAgICAgXAorI2RlZmluZSBQQVNfQkFTSUNfUEFHRV9CQVNFX0NP
TkZJR19GT1JXQVJEX0RFQ0xBUkFUSU9OUyhuYW1lKSBcCiAgICAgc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHBhc19wYWdlX2Jhc2UqIFwKICAgICBuYW1lICMjIF9wYWdlX2hlYWRlcl9mb3JfYm91
bmRhcnkodm9pZCogYm91bmRhcnkpOyBcCiAgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQqIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2hl
YWRlcl90YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19wYWdlX2hlYWRlcl90YWJsZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19wYWdl
X2hlYWRlcl90CiAKICAgICBwYWdlX3NpemUgPSAoc2l6ZV90KWFyZzsKIAotICAgIHJldHVybiAo
dW5zaWduZWQpKCh1aW50cHRyX3Qpa2V5IC8gcGFnZV9zaXplKTsKKyAgICByZXR1cm4gcGFzX2hh
c2gzMigodW5zaWduZWQpKCh1aW50cHRyX3Qpa2V5IC8gcGFnZV9zaXplKSk7CiB9CiAKIFBBU19B
UEkgcGFzX3BhZ2VfYmFzZSogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlX2FkZChwYXNfcGFnZV9oZWFk
ZXJfdGFibGUqIHRhYmxlLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuYwkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMTMgKzI5LDEy
IEBACiAKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmgiCiAKLSNpbmNs
dWRlICJwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgogI2luY2x1
ZGUgInBhc19lcG9jaC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJw
YXNfbGFyZ2Vfc2hhcmluZ19wb29sLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29s
LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCkBAIC02Niw5ICs2NSw3IEBAIHBhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnRfZ2V0X3BheWxvYWQKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9kYXRhX3RyeV9nZXRfc2hhcmluZ19wYXlsb2FkKAogICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJigocGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5KilwdHIpLT5kYXRhKSk7CiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lw
YW50X2JpdGZpdF9kaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAmKChwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnkqKXB0ciktPnBoeXNpY2FsX3NoYXJpbmdfcGF5bG9hZDsKLSAgICBjYXNlIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3Rvcnk6Ci0gICAgICAgIHJl
dHVybiAmKChwYXNfYmlhc2luZ19kaXJlY3RvcnkqKXB0ciktPmJpYXNfc2hhcmluZ19wYXlsb2Fk
LmJhc2U7CisgICAgICAgIHJldHVybiAmKChwYXNfYml0Zml0X2RpcmVjdG9yeSopcHRyKS0+cGh5
c2ljYWxfc2hhcmluZ19wYXlsb2FkOwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9sYXJnZV9zaGFyaW5nX3Bvb2w6CiAgICAgICAgIHJldHVybiAmcGFzX2xhcmdlX3NoYXJp
bmdfcGFydGljaXBhbnRfcGF5bG9hZC5iYXNlOwogICAgIH0KQEAgLTk4LDkgKzk1LDcgQEAgdWlu
dDY0X3QgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZQogICAgIGNhc2UgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OgogICAgICAgICBy
ZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF91c2VfZXBvY2gocHRyKTsKICAgICBj
YXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeToKLSAgICAg
ICAgcmV0dXJuIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9nZXRfdXNlX2Vwb2NoKHB0cik7
Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5
OgotICAgICAgICByZXR1cm4gKChwYXNfYmlhc2luZ19kaXJlY3RvcnkqKXB0ciktPmJpYXNfc2hh
cmluZ19wYXlsb2FkLnVzZV9lcG9jaDsKKyAgICAgICAgcmV0dXJuIHBhc19iaXRmaXRfZGlyZWN0
b3J5X2dldF91c2VfZXBvY2gocHRyKTsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfbGFyZ2Vfc2hhcmluZ19wb29sOgogICAgICAgICByZXR1cm4gcGFzX2xhcmdlX3NoYXJp
bmdfcGFydGljaXBhbnRfcGF5bG9hZC51c2VfZXBvY2g7CiAgICAgfQpAQCAtMTI5LDggKzEyNCw2
IEBAIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3BhcmVudF8KICAgICBjYXNlIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeToKICAg
ICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeToKICAg
ICAgICAgcmV0dXJuICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2w7Ci0gICAgY2FzZSBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5OgotICAgICAgICBy
ZXR1cm4gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3Bvb2wocHRyKTsKICAgICBj
YXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbGFyZ2Vfc2hhcmluZ19wb29sOgogICAg
ICAgICByZXR1cm4gJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbDsKICAgICB9CkBAIC0x
NTIsOSArMTQ1LDcgQEAgYm9vbCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2lzX2VsaQog
ICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5OgogICAgICAgICByZXR1cm4gISFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2xh
c3RfZW1wdHlfcGx1c19vbmUocHRyKS52YWx1ZTsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuICEhKChwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkqKXB0ciktPmxhc3RfZW1wdHlfcGx1c19vbmUudmFsdWU7Ci0g
ICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5Ogot
ICAgICAgICByZXR1cm4gISFwYXNfYmlhc2luZ19kaXJlY3RvcnlfdW51c2VkX3NwYW5fc2l6ZShw
dHIpOworICAgICAgICByZXR1cm4gISEoKHBhc19iaXRmaXRfZGlyZWN0b3J5KilwdHIpLT5sYXN0
X2VtcHR5X3BsdXNfb25lLnZhbHVlOwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9sYXJnZV9zaGFyaW5nX3Bvb2w6CiAgICAgICAgIHJldHVybiAhIXBhc19sYXJnZV9zaGFy
aW5nX21pbl9oZWFwX2luc3RhbmNlLnNpemU7CiAgICAgfQpAQCAtMTc5LDcgKzE3MCw3IEBAIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfdGFrZV9sZWFzdF8KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCisgICAgICAgIHJldHVybiBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCiAgICAgICAgICAgICBw
dHIsIGRlY29tbWl0X2xvZywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKICAgICBjYXNlIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnk6
CkBAIC0xODksMTIgKzE4MCw3IEBAIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfdGFrZV9s
ZWFzdF8KIAogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGly
ZWN0b3J5OgogICAgICAgICBQQVNfQVNTRVJUKGRlY29tbWl0X2xvZyk7Ci0gICAgICAgIHJldHVy
biBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KHB0ciwgZGVjb21t
aXRfbG9nLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgCi0gICAgY2FzZSBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5OgotICAgICAgICBQQVNfQVNT
RVJUKCFkZWNvbW1pdF9sb2cpOwotICAgICAgICBQQVNfQVNTRVJUKGhlYXBfbG9ja19ob2xkX21v
ZGUgPT0gcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgICAgICByZXR1cm4gcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X3Rha2VfbGFzdF91bnVzZWQocHRyKTsKKyAgICAgICAgcmV0dXJuIHBhc19iaXRm
aXRfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eShwdHIsIGRlY29tbWl0X2xvZywgaGVhcF9sb2Nr
X2hvbGRfbW9kZSk7CiAgICAgICAgIAogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9sYXJnZV9zaGFyaW5nX3Bvb2w6CiAgICAgICAgIFBBU19BU1NFUlQoZGVjb21taXRfbG9n
KTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmgJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsOSBAQCBzdHJ1Y3QgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsCiAgICAgICAgCiAgICAgICAgSWYgdGhpcyBpcyB0
cnVlIHRoZW46CiAgICAgICAgCi0gICAgICAgLSB3ZSBtdXN0IGJlIHRyYWNrZWQgYXMgYSBkZWx0
YS4gKi8KKyAgICAgICAtIHdlIG11c3QgYmUgdHJhY2tlZCBhcyBhIGRlbHRhLgorICAgIAorICAg
ICAgIEZJWE1FOiBUaGVyZSdzIGEgcHJldHR5IG9idmlvdXMgc2l6ZSB3aW4gdG8gYmUgaGFkIGp1
c3QgZnJvbSByZW1vdmluZyB0aGlzIGZpZWxkLiAqLwogICAgIGJvb2wgZGVsdGFfaGFzX2JlZW5f
bm90ZWQ7CiB9OwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
cGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQu
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDcgKzM2LDYgQEAgZW51bSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQgewogICAg
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJl
Y3RvcnksCiAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5LAogICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVj
dG9yeSwKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5
LAogICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbGFyZ2Vfc2hhcmluZ19wb29sCiB9
OwogCkBAIC00OSwxNCArNDgsMTAgQEAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5k
X3NlbGVjdAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kIGRpcmVjdG9yeV9raW5k
KQogewogICAgIHN3aXRjaCAoZGlyZWN0b3J5X2tpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kOgorICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3Rvcnlfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKICAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9raW5kOgogICAgICAgICByZXR1cm4gcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeTsKLSAg
ICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIFBB
U19BU1NFUlQoISJTaG91bGQgbm90IHVzZSBzZWdyZWdhdGVkIGJpYXNpbmcgZGlyZWN0b3JpZXMg
YXMgc2hhcmluZyBwYXJ0aWNpcGFudHMgZXhjZXB0ICIKLSAgICAgICAgICAgICAgICAgICAidmlh
IHRoZSBiaWFzaW5nIGRpcmVjdG9yeSBiYXNlIik7Ci0gICAgICAgIHJldHVybiBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X251bGw7CiAgICAgfQogICAgIFBBU19BU1NFUlQoISJTaG91bGQg
bm90IGJlIHJlYWNoZWQiKTsKICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9udWxsOwpAQCAtNzQsOCArNjksNiBAQCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tp
bmRfZ2V0X3N0CiAgICAgICAgIHJldHVybiAic2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSI7CiAg
ICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rvcnk6CiAg
ICAgICAgIHJldHVybiAiYml0Zml0X2RpcmVjdG9yeSI7Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gImJpYXNp
bmdfZGlyZWN0b3J5IjsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbGFy
Z2Vfc2hhcmluZ19wb29sOgogICAgICAgICByZXR1cm4gImxhcmdlX3NoYXJpbmdfcG9vbCI7CiAg
ICAgfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hh
cmluZ19wb29sLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5jCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNzM5LDE2ICs3MzksMTkgQEAgdm9pZCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFy
aW5nX3Bvb2xfdGFrZQogICAgIGF0b21pY19hZGRfYmFsYW5jZShiYWxhbmNlX2FkZGVuZCk7CiB9
CiAKLXBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdAorcGFzX3BhZ2Vfc2hhcmluZ19w
b29sX3NjYXZlbmdlX3Jlc3VsdAogcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZl
bmdlKHVpbnQ2NF90IG1heF9lcG9jaCkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7Ci0gICAgCisKICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQg
dGFrZV9yZXN1bHQ7CiAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiB0cmFuc2Fj
dGlvbjsKKyAgICBzaXplX3QgdG90YWxfYnl0ZXM7CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpCiAg
ICAgICAgIHBhc19sb2coIkRvaW5nIHNjYXZlbmdlIHVwIHRvICVsbHVcbiIsIG1heF9lcG9jaCk7
CisKKyAgICB0b3RhbF9ieXRlcyA9IDA7CiAgICAgCiAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90
cmFuc2FjdGlvbl9jb25zdHJ1Y3QoJnRyYW5zYWN0aW9uKTsKICAgICBkbyB7CkBAIC03NzIsNiAr
Nzc1LDggQEAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlKAogICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0X2dldF9z
dHJpbmcodGFrZV9yZXN1bHQpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSB3aGlsZSAodGFr
ZV9yZXN1bHQgPT0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2Vzcyk7CisKKyAgICAg
ICAgdG90YWxfYnl0ZXMgKz0gZGVjb21taXRfbG9nLnRvdGFsOwogICAgICAgICAKICAgICAgICAg
Zm9yICg7OykgewogICAgICAgICAgICAgaW50cHRyX3QgYmFsYW5jZTsKQEAgLTgwMSw3ICs4MDYs
NyBAQCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2UoCiAgICAgUEFTX0FT
U0VSVCh0YWtlX3Jlc3VsdCAhPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9sb2Nrc191bmF2
YWlsYWJsZSk7CiAgICAgUEFTX0FTU0VSVCh0YWtlX3Jlc3VsdCAhPSBwYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfdGFrZV9zdWNjZXNzKTsKICAgICAKLSAgICByZXR1cm4gdGFrZV9yZXN1bHQ7CisgICAg
cmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHRfY3JlYXRlKHRha2Vf
cmVzdWx0LCB0b3RhbF9ieXRlcyk7CiB9CiAKIHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2VfbGF0ZXIoc2l6ZV90IGJ5dGVzKQpAQCAtODUxLDE5ICs4NTYsNiBAQCB2b2lk
IHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbG9ja3NfYWxyZWFkeV9oZWxkLCBudW1fbG9ja3NfYWxyZWFk
eV9oZWxkKTsKIH0KIAotYm9vbCBwYXNfYmlhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlKHBhc19w
YWdlX3NoYXJpbmdfcG9vbCogcG9vbCkKLXsKLSAgICBzd2l0Y2ggKHBhc19wYWdlX3NoYXJpbmdf
cG9vbF90YWtlX2xlYXN0X3JlY2VudGx5X3VzZWQocG9vbCwgTlVMTCwgcGFzX2xvY2tfaXNfbm90
X2hlbGQsIDApKSB7Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2
YWlsYWJsZToKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2Vfc3VjY2VzczoKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotfQotCiB2b2lkIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9kaWRf
Y3JlYXRlX2RlbHRhKHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcG9vbCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dCBwYXJ0aWNpcGFudCkKIHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5oCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bv
b2wuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgInBhc19sb2Nr
LmgiCiAjaW5jbHVkZSAicGFzX21pbl9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmlu
Z19wYXJ0aWNpcGFudC5oIgorI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5n
ZV9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQu
aCIKICNpbmNsdWRlICJwYXNfc2VnbWVudGVkX3ZlY3Rvci5oIgogI2luY2x1ZGUgInBhc191dGls
cy5oIgpAQCAtMTIxLDcgKzEyMiw3IEBAIFBBU19BUEkgdm9pZCBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfYWRkKHAKIAogLyogVGhpcyBpcyB0aGUgbG93LWxldmVsIGludGVyZmFjZSBmb3IgdGFraW5n
IHRoaW5ncyBmcm9tIHRoZSBzaGFyaW5nIHBvb2wuIFVzdWFsbHkgeW91IHdhbnQgdG8gY2FsbAog
ICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UsIHBhc19waHlzaWNhbF9wYWdl
X3NoYXJpbmdfcG9vbF9zY2F2ZW5nZSwKLSAgIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9v
bF90YWtlX2Zvcl9wYWdlX2NvbmZpZywgb3IgcGFzX2JpYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZS4KKyAgIG9yIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2Zvcl9wYWdlX2Nv
bmZpZy4KICAgIAogICAgVGhpcyBqdXN0IHRha2VzIHRoZSBsZWFzdCByZWNlbnRseSB1c2VkIHBp
ZWNlIG9mIG1lbW9yeSAoY291bGQgYmUgYSBwYWdlLCBhIHNwYW4gb2YgbXVsdGlwbGUgcGFnZXMs
CiAgICBvciBldmVuIGEgc2V0IG9mIGRpc2pvaW50IHBhZ2VzKS4gVGhlIGFtb3VudCBvZiBtZW1v
cnkgcmV0dXJuZWQgaXMgZ29pbmcgdG8gYmUgd2hhdGV2ZXIgaXMKQEAgLTE1MCw3ICsxNTEsNyBA
QCBQQVNfQVBJIHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wCiAgICAgc2l6ZV90IG51
bV9sb2Nrc19hbHJlYWR5X2hlbGQpOwogCiAvKiBUaGlzIHJldHVybnMgdGhlIGV4Y3VzZSBmb3Ig
d2h5IGl0IHN0b3BwZWQgc2NhdmVuZ2luZy4gKi8KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19w
b29sX3Rha2VfcmVzdWx0CitQQVNfQVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9y
ZXN1bHQKIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZSh1aW50NjRfdCBt
YXhfZXBvY2gpOwogCiBQQVNfQVBJIHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29s
X3Rha2VfbGF0ZXIoc2l6ZV90IGJ5dGVzKTsKQEAgLTE2Myw4ICsxNjQsNiBAQCBQQVNfQVBJIHZv
aWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wCiAgICAgcGFzX2xvY2sqKiBsb2Nrc19hbHJl
YWR5X2hlbGQsCiAgICAgc2l6ZV90IG51bV9sb2Nrc19hbHJlYWR5X2hlbGQpOwogCi1QQVNfQVBJ
IGJvb2wgcGFzX2JpYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZShwYXNfcGFnZV9zaGFyaW5nX3Bv
b2wqIHBvb2wpOwotCiBQQVNfQVBJIHZvaWQgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVh
dGVfZGVsdGEocGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwb29sLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnQgcGFydGljaXBhbnQpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3NjYXZlbmdlX3Jlc3VsdC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX1BBR0VfU0hBUklOR19QT09MX1NDQVZFTkdF
X1JFU1VMVF9ICisjZGVmaW5lIFBBU19QQUdFX1NIQVJJTkdfUE9PTF9TQ0FWRU5HRV9SRVNVTFRf
SAorCisjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmgiCisKK1BB
U19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5n
ZV9yZXN1bHQ7Cit0eXBlZGVmIHN0cnVjdCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2Vf
cmVzdWx0IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQ7CisKK3N0cnVjdCBw
YXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0IHsKKyAgICBwYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfdGFrZV9yZXN1bHQgdGFrZV9yZXN1bHQ7CisgICAgc2l6ZV90IHRvdGFsX2J5dGVz
OworfTsKKworc3RhdGljIGlubGluZSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVz
dWx0IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHRfY3JlYXRlKAorICAgIHBh
c19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCB0YWtlX3Jlc3VsdCwKKyAgICBzaXplX3Qg
dG90YWxfYnl0ZXMpCit7CisgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3Vs
dCByZXN1bHQ7CisgICAgcmVzdWx0LnRha2VfcmVzdWx0ID0gdGFrZV9yZXN1bHQ7CisgICAgcmVz
dWx0LnRvdGFsX2J5dGVzID0gdG90YWxfYnl0ZXM7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
UEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19QQUdFX1NIQVJJTkdfUE9PTF9TQ0FW
RU5HRV9SRVNVTFRfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0
b3Jfbm9kZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJwYXNfaW1tb3J0YWxfaGVhcC5oIgogCiBw
YXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKgotcGFzX3JlZHVuZGFudF9sb2NhbF9h
bGxvY2F0b3Jfbm9kZV9jcmVhdGUocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpCitwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlX2NyZWF0ZShw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHBhc19yZWR1
bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUqIHJlc3VsdDsKIApAQCAtNDIsNyArNDIsNyBAQCBw
YXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlX2NyZWF0CiAgICAgICAgIHBhc19vYmpl
Y3RfYWxsb2NhdGlvbik7CiAKICAgICBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX3N0b3JlKCZyZXN1bHQtPm5leHQsIE5VTEwpOwotICAgIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5k
aXJlY3RvcnksIGRpcmVjdG9yeSk7CisgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOwogICAgIHJl
c3VsdC0+YWxsb2NhdG9yX2luZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7CiAK
ICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2Nh
dG9yX25vZGUuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFBBU19SRURVTkRBTlRfTE9DQUxfQUxMT0NB
VE9SX05PREVfSAogI2RlZmluZSBQQVNfUkVEVU5EQU5UX0xPQ0FMX0FMTE9DQVRPUl9OT0RFX0gK
IAotI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oIgogI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXguaCIKIApAQCAtMzcs
MTIgKzM3LDEyIEBAIHR5cGVkZWYgc3RydWN0IHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2MKIAog
c3RydWN0IHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUgewogICAgIHBhc19jb21w
YWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbmV4dDsKLSAgICBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5Owor
ICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsK
ICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKIH07CiAKIFBBU19BUEkg
cGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSoKLXBhc19yZWR1bmRhbnRfbG9jYWxf
YWxsb2NhdG9yX25vZGVfY3JlYXRlKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KTsKK3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfY3JlYXRl
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCiBQQVNfRU5EX0VY
VEVSTl9DOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Nh
dmVuZ2VyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NjYXZlbmdlci5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMw
LDYgQEAKICNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCiAKICNpbmNsdWRlIDxtYXRoLmg+Ci0j
aW5jbHVkZSAicGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmgiCiAjaW5jbHVkZSAicGFzX2Fs
bF9oZWFwcy5oIgogI2luY2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIKICNp
bmNsdWRlICJwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmgiCkBAIC00NSw2ICs0NCw3IEBACiAj
aW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVk
ZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KIAogc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwogCkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIHZvaWQqIHNjYXZl
bmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAgIGRhdGEgPSBlbnN1cmVfZGF0YV9pbnN0YW5jZShw
YXNfbG9ja19pc19ub3RfaGVsZCk7CiAgICAgCiAgICAgZm9yICg7OykgewotICAgICAgICBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgdGFrZV9yZXN1bHQ7CisgICAgICAgIHBhc19w
YWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQgc2NhdmVuZ2VfcmVzdWx0OwogICAgICAg
ICBib29sIHNob3VsZF9zaHV0X2Rvd247CiAgICAgICAgIGRvdWJsZSB0aW1lX2luX21pbGxpc2Vj
b25kczsKICAgICAgICAgZG91YmxlIGFic29sdXRlX3RpbWVvdXRfaW5fbWlsbGlzZWNvbmRzX2Zv
cl9wZXJpb2Rfc2xlZXA7CkBAIC0xNjYsNiArMTY2LDE0IEBAIHN0YXRpYyB2b2lkKiBzY2F2ZW5n
ZXJfdGhyZWFkX21haW4odm9pZCoKICAgICAgICAgCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAg
ICAgICAgICAgcHJpbnRmKCJTY2F2ZW5nZXIgaXMgcnVubmluZy5cbiIpOworCisjaWYgUEFTX0xP
Q0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCisgICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja19sb2NrKCk7CisgICAgICAgIHBhc19s
b2coIiVkOiBSZWZpbGwgZWZmaWNpZW5jeTogJWxmXG4iLAorICAgICAgICAgICAgICAgIGdldHBp
ZCgpLAorICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVu
Y3lfc3VtIC8gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9uKTsKKyAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9sb2NrX3VubG9jaygpOwor
I2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAq
LwogICAgICAgICAKICAgICAgICAgc2hvdWxkX2dvX2FnYWluIHw9CiAgICAgICAgICAgICBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9y
ZXF1ZXN0X3N0b3BfYWN0aW9uKTsKQEAgLTE3NiwxMSArMTg0LDkgQEAgc3RhdGljIHZvaWQqIHNj
YXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAgICAgICAKICAgICAgICAgc2hvdWxkX2dvX2Fn
YWluIHw9CiAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2Fs
bG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9s
b2dfYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfaWZfY2xlYW5fYWN0aW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxk
KTsKIAotICAgICAgICBzaG91bGRfZ29fYWdhaW4gfD0gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9y
aWVzX3NjYXZlbmdlKCk7Ci0KICAgICAgICAgLyogRm9yIHRoZSBwdXJwb3NlcyBvZiBwZXJmb3Jt
YW5jZSB0dW5pbmcsIGFzIHdlbGwgYXMgc29tZSBvZiB0aGUgc2NhdmVuZ2VyIHRlc3RzLCB0aGUg
ZXBvY2gKICAgICAgICAgICAgaXMgdGltZSBpbiBuYW5vc2Vjb25kcy4KICAgICAgICAgICAgCkBA
IC0xOTgsOCArMjA0LDkgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lk
KgogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coImVwb2NoID0gJWxs
dSwgZGVsdGEgPSAlbGx1LCBtYXhfZXBvY2ggPSAlbGx1XG4iLCBlcG9jaCwgZGVsdGEsIG1heF9l
cG9jaCk7CiAKLSAgICAgICAgdGFrZV9yZXN1bHQgPSBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5n
X3Bvb2xfc2NhdmVuZ2UobWF4X2Vwb2NoKTsKLSAgICAgICAgc3dpdGNoICh0YWtlX3Jlc3VsdCkg
eworICAgICAgICBzY2F2ZW5nZV9yZXN1bHQgPSBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bv
b2xfc2NhdmVuZ2UobWF4X2Vwb2NoKTsKKworICAgICAgICBzd2l0Y2ggKHNjYXZlbmdlX3Jlc3Vs
dC50YWtlX3Jlc3VsdCkgewogICAgICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtl
X25vbmVfYXZhaWxhYmxlOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKQEAgLTIx
Niw2ICsyMjMsMTMgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgog
ICAgICAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3Qgc2VlIHBhc19wYWdlX3NoYXJpbmdf
cG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlLiIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0gfQorCisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBwYXNfbG9nKCIl
ZDogJS4wbGY6IHNjYXZlbmdlciBmcmVlZCAlenUgYnl0ZXMgKCVzLCBzaG91bGRfZ29fYWdhaW4g
PSAlcykuXG4iLAorICAgICAgICAgICAgICAgICAgICBnZXRwaWQoKSwgZ2V0X3RpbWVfaW5fbWls
bGlzZWNvbmRzKCksIHNjYXZlbmdlX3Jlc3VsdC50b3RhbF9ieXRlcywKKyAgICAgICAgICAgICAg
ICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0X2dldF9zdHJpbmcoc2NhdmVu
Z2VfcmVzdWx0LnRha2VfcmVzdWx0KSwKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkX2dvX2Fn
YWluID8gInllcyIgOiAibm8iKTsKKyAgICAgICAgfQogICAgICAgICAKICAgICAgICAgY29tcGxl
dGlvbl9jYWxsYmFjayA9IHBhc19zY2F2ZW5nZXJfY29tcGxldGlvbl9jYWxsYmFjazsKICAgICAg
ICAgaWYgKGNvbXBsZXRpb25fY2FsbGJhY2spCkBAIC0yNDEsNyArMjU1LDEwIEBAIHN0YXRpYyB2
b2lkKiBzY2F2ZW5nZXJfdGhyZWFkX21haW4odm9pZCoKICAgICAgICAgICAgIGlmICh2ZXJib3Nl
KQogICAgICAgICAgICAgICAgIHByaW50ZigiV2FpdGluZyBmb3IgYSBwZXJpb2QuXG4iKTsKIAot
ICAgICAgICAgICAgcGFzX3NjYXZlbmdlcl9jdXJyZW50X3N0YXRlID0gcGFzX3NjYXZlbmdlcl9z
dGF0ZV9wb2xsaW5nOworICAgICAgICAgICAgLyogVGhpcyBmaWVsZCBpcyBhY2Nlc3NlZCBhIGxv
dCBieSBvdGhlciB0aHJlYWRzLCBzbyBkb24ndCB3cml0ZSB0byBpdCBpZiB3ZSBkb24ndAorICAg
ICAgICAgICAgICAgaGF2ZSB0by4gKi8KKyAgICAgICAgICAgIGlmIChwYXNfc2NhdmVuZ2VyX2N1
cnJlbnRfc3RhdGUgIT0gcGFzX3NjYXZlbmdlcl9zdGF0ZV9wb2xsaW5nKQorICAgICAgICAgICAg
ICAgIHBhc19zY2F2ZW5nZXJfY3VycmVudF9zdGF0ZSA9IHBhc19zY2F2ZW5nZXJfc3RhdGVfcG9s
bGluZzsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGRvdWJsZSBhYnNvbHV0ZV90aW1l
b3V0X2luX21pbGxpc2Vjb25kc19mb3JfZGVlcF9wcmVfc2xlZXA7CiAgICAgICAgICAgICAKQEAg
LTQyNSwxMSArNDQyLDExIEBAIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzX2V4
Y2UKIHsKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZTsKICAgICAKLSAgICBwYXNf
c2NhdmVuZ2VyX2NsZWFyX2FsbF9ub25fdGxjX2NhY2hlcygpOwotCiAgICAgY2FjaGUgPSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKICAgICBpZiAoY2FjaGUpCiAgICAgICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5rKGNhY2hlLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7
CisKKyAgICBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9ub25fdGxjX2NhY2hlcygpOwogfQogCiB2
b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlcyh2b2lkKQpAQCAtNDQxLDEzICs0NTgs
MTUgQEAgdm9pZCBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9jYWNoZXModm9pZAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CiB9CiAKLXZv
aWQgcGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9mcmVlX21lbW9yeSh2b2lkKQorc2l6ZV90IHBhc19z
Y2F2ZW5nZXJfZGVjb21taXRfZnJlZV9tZW1vcnkodm9pZCkKIHsKLSAgICBwYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfdGFrZV9yZXN1bHQgcmVzdWx0OworICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9z
Y2F2ZW5nZV9yZXN1bHQgcmVzdWx0OwogCiAgICAgcmVzdWx0ID0gcGFzX3BoeXNpY2FsX3BhZ2Vf
c2hhcmluZ19wb29sX3NjYXZlbmdlKFBBU19FUE9DSF9NQVgpOwogICAgIAotICAgIFBBU19BU1NF
UlQocmVzdWx0ID09IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlKTsK
KyAgICBQQVNfQVNTRVJUKHJlc3VsdC50YWtlX3Jlc3VsdCA9PSBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfdGFrZV9ub25lX2F2YWlsYWJsZSk7CisKKyAgICByZXR1cm4gcmVzdWx0LnRvdGFsX2J5dGVz
OwogfQogCiB2b2lkIHBhc19zY2F2ZW5nZXJfcnVuX3N5bmNocm9ub3VzbHlfbm93KHZvaWQpCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdl
ci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2NhdmVuZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcgKzk4LDcgQEAgUEFTX0FQ
SSB2b2lkIHBhc19zY2F2ZW5nZXJfcmVzdW1lKHZvaWQpOwogUEFTX0FQSSB2b2lkIHBhc19zY2F2
ZW5nZXJfY2xlYXJfYWxsX25vbl90bGNfY2FjaGVzKHZvaWQpOwogUEFTX0FQSSB2b2lkIHBhc19z
Y2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3Modm9pZCk7CiBQQVNf
QVBJIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzKHZvaWQpOwotUEFTX0FQSSB2
b2lkIHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZnJlZV9tZW1vcnkodm9pZCk7CitQQVNfQVBJIHNp
emVfdCBwYXNfc2NhdmVuZ2VyX2RlY29tbWl0X2ZyZWVfbWVtb3J5KHZvaWQpOwogCiBQQVNfQVBJ
IHZvaWQgcGFzX3NjYXZlbmdlcl9ydW5fc3luY2hyb25vdXNseV9ub3codm9pZCk7CiAKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnkuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDI2MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19j
b25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotCi0jaW5jbHVkZSAicGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzLmgiCi0jaW5jbHVkZSAicGFzX2Vwb2NoLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hh
cmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmgiCi0j
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9wYWdlX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9pbmxpbmVzLmgiCi0KLXBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXJlbnRfZ2xvYmFsLCB1bnNpZ25lZCBtYWdhemluZV9p
bmRleCkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogcmVzdWx0Owot
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLQotICAgIC8qIFRo
aXMgY3JlYXRlcyBhIGJpYXNpbmcgZGlyZWN0b3J5IHdpdGgganVzdCBpbmRleF9pbl9hbGwgaW5p
dGlhbGl6ZWQgYW5kIGV2ZXJ5dGhpbmcgZWxzZQotICAgICAgIHplcm9lZC4gKi8KLSAgICByZXN1
bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgKLSAgICAgICAg
c2l6ZW9mKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KSwKLSAgICAgICAgYWxpZ25v
ZihwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSksCi0gICAgICAgICJwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeSIsCi0gICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7
Ci0KLSAgICBwYWdlX2NvbmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0
X2NvbmZpZyhwYXJlbnRfZ2xvYmFsLT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwotICAgIFBBU19B
U1NFUlQocGFnZV9jb25maWcpOwotCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Y29uc3RydWN0KAotICAgICAgICAmcmVzdWx0LT5iYXNlLCBwYWdlX2NvbmZpZy0+a2luZCwKLSAg
ICAgICAgcGFzX2RvX25vdF9zaGFyZV9wYWdlcywKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3Rvcnlfa2luZCk7Ci0KLSAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+cGFyZW50X2dsb2JhbCwgcGFyZW50
X2dsb2JhbCk7Ci0KLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfY29uc3RydWN0KAotICAgICAg
ICAmcmVzdWx0LT5iaWFzaW5nX2Jhc2UsIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9zZWdyZWdhdGVk
X2tpbmQsIG1hZ2F6aW5lX2luZGV4KTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRp
YyB2b2lkIHRha2VfZmlyc3RfZWxpZ2libGVfbG9vcF9oZWFkX2NhbGxiYWNrKHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIC8qIE5vdGhpbmcgdG8gZG8gZm9yIGJp
YXNpbmcgZGlyZWN0b3JpZXMuIFRoaXMgY2FsbGJhY2sgaXMgbWVhbmluZ2Z1bCBmb3IgZ2xvYmFs
IHNpemUgZGlyZWN0b3JpZXMsCi0gICAgICAgd2hpY2ggdXNlIGl0IHRvIHRha2UgZnJvbSB0aGUg
Ymlhc2luZyBwb29sLiAqLwotICAgIFBBU19VTlVTRURfUEFSQU0oZGlyZWN0b3J5KTsKLX0KLQot
c3RhdGljIHBhc19zZWdyZWdhdGVkX3ZpZXcgdGFrZV9maXJzdF9lbGlnaWJsZV9jcmVhdGVfbmV3
X3ZpZXdfY2FsbGJhY2soCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29u
ZmlnKiBjb25maWcpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJp
YXNpbmdfZGlyZWN0b3J5OwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+ZGlyZWN0
b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9r
aW5kKTsKLSAgICAKLSAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IChwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeSopY29uZmlnLT5kaXJlY3Rvcnk7Ci0KLSAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXdfbm9uX251bGwoCi0gICAgICAgIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlld19jcmVhdGUoYmlhc2luZ19kaXJlY3RvcnksIGNvbmZpZy0+aW5kZXgp
KTsKLX0KLQotcGFzX3NlZ3JlZ2F0ZWRfdmlldyBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIHBhcmVudF9nbG9iYWwpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29u
ZmlnX3B0cjsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLSAg
ICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2l0ZXJhdGVfY29uZmlnIGNvbmZpZzsKLQotICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAg
ICAgcGFyZW50X2dsb2JhbCA9PQotICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZiaWFzaW5n
X2RpcmVjdG9yeS0+cGFyZW50X2dsb2JhbCkpOwotCi0gICAgZGlyZWN0b3J5ID0gJmJpYXNpbmdf
ZGlyZWN0b3J5LT5iYXNlOwotICAgIHBhZ2VfY29uZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpOwot
ICAgIHBhZ2VfY29uZmlnID0gKnBhZ2VfY29uZmlnX3B0cjsKLQotICAgIFBBU19URVNUSU5HX0FT
U0VSVCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRf
bW9kZShwYWdlX2NvbmZpZykgPT0gcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgIAotICAgIHZp
ZXcgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2lt
cGwoCi0gICAgICAgIGRpcmVjdG9yeSwgJmNvbmZpZywKLSAgICAgICAgdGFrZV9maXJzdF9lbGln
aWJsZV9sb29wX2hlYWRfY2FsbGJhY2ssCi0gICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGVfY3Jl
YXRlX25ld192aWV3X2NhbGxiYWNrKTsKLQotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRf
dXNlX2luZGV4KAotICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwgY29u
ZmlnLmluZGV4LCBwYXNfZ2V0X2Vwb2NoKCkpOwotICAgIAotICAgIFBBU19URVNUSU5HX0FTU0VS
VCghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHZpZXcpLCBl
bGlnaWJsZSkpOwotCi0gICAgcmV0dXJuIHZpZXc7Ci19Ci0KLXBhc19wYWdlX3NoYXJpbmdfcG9v
bF90YWtlX3Jlc3VsdAotcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0
X3VudXNlZCgKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19k
aXJlY3RvcnkpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAg
IAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rv
cnk7Ci0gICAgdW5zaWduZWQgb3duZXJzaGlwX3RocmVzaG9sZDsKLSAgICBib29sIGRpZF9maW5k
X2VsaWdpYmxlX3BhZ2U7Ci0gICAgc2l6ZV90IGluZGV4OwotICAgIHBhc192ZXJzaW9uZWRfZmll
bGQgZWxpZ2libGVfaGlnaF93YXRlcm1hcms7Ci0gICAgc2l6ZV90IG5ld19lbGlnaWJsZV93YXRl
cm1hcms7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWc7Ci0KLSAg
ICBwYWdlX2NvbmZpZyA9ICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25m
aWcoYmlhc2luZ19kaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7Ci0KLSAgICBQQVNf
QVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFn
ZV9jb25maWcpID09IHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLSAgICAKLSAgICBzaXplX2RpcmVj
dG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkX25vbl9udWxsKAotICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPnBhcmVudF9nbG9iYWwp
OwotCi0gICAgb3duZXJzaGlwX3RocmVzaG9sZCA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9vd25l
cnNoaXBfdGhyZXNob2xkKCZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlKTsKLQotICAg
IC8qIFJlYWQgdG8gd2F0Y2ggc28gdGhhdCBpZiBhbnlvbmUgdXBkYXRlcyB0aGUgZWxpZ2libGVf
aGlnaF93YXRlcm1hcmsgZHVyaW5nIG91ciBzY2FuLCB3ZSB3b24ndAotICAgICAgIG92ZXJ3cml0
ZSBpdC4gKi8KLSAgICBlbGlnaWJsZV9oaWdoX3dhdGVybWFyayA9IHBhc192ZXJzaW9uZWRfZmll
bGRfcmVhZF90b193YXRjaCgKLSAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jh
c2UuZWxpZ2libGVfaGlnaF93YXRlcm1hcmspOwotCi0gICAgUEFTX0FTU0VSVChlbGlnaWJsZV9o
aWdoX3dhdGVybWFyay52YWx1ZQotICAgICAgICAgICAgICAgPD0gcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3NpemUoJmJpYXNpbmdfZGlyZWN0b3J5LT5iYXNlKSk7Ci0KLSAgICBpZiAoKHNpemVf
dClvd25lcnNoaXBfdGhyZXNob2xkID49IGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlKQot
ICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFibGU7
Ci0KLSAgICBkaWRfZmluZF9lbGlnaWJsZV9wYWdlID0gZmFsc2U7Ci0KLSAgICBuZXdfZWxpZ2li
bGVfd2F0ZXJtYXJrID0gb3duZXJzaGlwX3RocmVzaG9sZDsKLQotICAgIGZvciAoaW5kZXggPSBv
d25lcnNoaXBfdGhyZXNob2xkOyBpbmRleCA8IGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVl
OyArK2luZGV4KSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2lu
Z192aWV3OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZl
X3ZpZXc7Ci0gICAgICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7Ci0gICAgICAgIGJvb2wgcmVzdWx0
OwotICAgICAgICBib29sIHNob3VsZF9ub3RpZnlfZW1wdGluZXNzOwotICAgICAgICAKLSAgICAg
ICAgaWYgKCFQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfU0VUX0JJVCgmYmlhc2luZ19kaXJlY3Rv
cnktPmJhc2UsIGluZGV4LCBlbGlnaWJsZSwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAvKiBJZiBp
dCdzIGluZWxpZ2libGUgdGhlbiB3ZSBqdXN0IGRvbid0IGRvIGFueXRoaW5nIHRvIGl0IGFuZCBs
ZWF2ZSBpdCBiZS4gSWYgaXQgYmVjb21lcwotICAgICAgICAgICAgICAgZWxpZ2libGUgdGhlbiB0
aGF0J2xsIHRyaWdnZXIgdGhpcyBjb2RlIHRvIHJlcnVuLiAqLwotICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgIH0KLQotICAgICAgICBkaWRfZmluZF9lbGlnaWJsZV9wYWdlID0gdHJ1ZTsK
LQotICAgICAgICBiaWFzaW5nX3ZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5n
KAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmYmlhc2luZ19kaXJl
Y3RvcnktPmJhc2UsIGluZGV4KSk7Ci0gICAgICAgIGV4Y2x1c2l2ZV92aWV3ID0gcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWQoCi0gICAgICAgICAg
ICAmYmlhc2luZ192aWV3LT5leGNsdXNpdmUpOwotCi0gICAgICAgIGlmICghZXhjbHVzaXZlX3Zp
ZXcpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3
X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAg
ICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKLSAgICAgICAg
ICAgIFBBU19BU1NFUlQocmVzdWx0KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9
Ci0gICAgICAgIAotICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgZXhj
bHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIFBBU19BU1NFUlQoIVBBU19T
RUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAgICAgICAgICAgICAgICAgICAmc2l6
ZV9kaXJlY3RvcnktPmJhc2UsIGV4Y2x1c2l2ZV92aWV3LT5pbmRleCwgZWxpZ2libGUpKTsKLSAg
ICAgICAgCi0gICAgICAgIC8qIFRoZSBlbXB0eSBiaXRzIHNob3VsZG4ndCBoYXZlIGV2ZXIgYmVl
biBzZXQuICovCi0gICAgICAgIFBBU19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9H
RVRfQklUKAotICAgICAgICAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2Us
IGluZGV4LCBlbXB0eSkpOwotICAgICAgICAKLSAgICAgICAgaGVsZF9sb2NrID0gTlVMTDsKLSAg
ICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssICZleGNsdXNpdmVfdmlldy0+b3duZXJz
aGlwX2xvY2spOwotICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZCgKLSAgICAgICAgICAgICAgICAgICAgICAgZXhj
bHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIGV4Y2x1c2l2ZV92aWV3LT5v
d25lcnNoaXBfa2luZCA9Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNlZCgKLSAgICAgICAgICAgICAgICBleGNsdXNpdmVf
dmlldy0+b3duZXJzaGlwX2tpbmQsIGZhbHNlKTsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAg
ICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIG93bmVyc2hpcCBraW5kID0gJXMgZHVlIHRv
IHRha2VfbGFzdF91bnVzZWRcbiIsCi0gICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZV92aWV3
LAotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25l
cnNoaXBfa2luZF9nZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZl
X3ZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBzaG91bGRfbm90
aWZ5X2VtcHRpbmVzcyA9IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgaWYgKHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKAotICAgICAgICAgICAg
ICAgIGV4Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBfa2luZCkpIHsKLSAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7Ci0KLSAgICAgICAgICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2Zvcl9ib3VuZGFyeShleGNsdXNpdmVfdmlldy0+cGFnZV9ib3VuZGFyeSwgcGFnZV9j
b25maWcpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3
aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgLyogSWYgdGhpcyBleGNsdXNpdmUgYWxyZWFkeSBoYWQgYSBwYWdlLCB0aGVu
IHRoZSBwYWdlIG11c3QgYmUgc2F5aW5nIHRoYXQgaXQncwotICAgICAgICAgICAgICAgZWxpZ2li
bGUuICovCi0gICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlh
c2luZyhwYWdlLT5vd25lcikpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYWdlLT5vd25l
ciA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwoZXhjbHVz
aXZlX3ZpZXcpOwotCi0gICAgICAgICAgICBzaG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9IHBhc19z
ZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdChwYWdlLCBwYWdlX2NvbmZpZyk7
Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBUaGlzIGp1c3QgbmVlZHMgdG8gaGFwcGVuIGJlZm9y
ZSB3ZSByZWxlYXNlIGVsaWdpYmlsaXR5LiAqLwotICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfc3RvcmUoJmJpYXNpbmdfdmlldy0+ZXhjbHVz
aXZlLCBOVUxMKTsKLQotICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
dmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAotICAgICAgICAgICAgJnNpemVfZGly
ZWN0b3J5LT5iYXNlLCBleGNsdXNpdmVfdmlldy0+aW5kZXgpOwotICAgICAgICBQQVNfQVNTRVJU
KHJlc3VsdCk7Ci0gICAgICAgIAotICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJl
Y3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4X3dpdGhvdXRfYmlhc2luZ191
cGRhdGUoCi0gICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKLSAg
ICAgICAgUEFTX0FTU0VSVChyZXN1bHQpOwotCi0gICAgICAgIGlmIChzaG91bGRfbm90aWZ5X2Vt
cHRpbmVzcykgewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlk
X2JlY29tZV9lbXB0eV9hdF9pbmRleCgKLSAgICAgICAgICAgICAgICAmc2l6ZV9kaXJlY3Rvcnkt
PmJhc2UsIGV4Y2x1c2l2ZV92aWV3LT5pbmRleCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICB9Ci0KLSAgICBwYXNf
dmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgKLSAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5i
aWFzaW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93YXRlcm1hcmssCi0gICAgICAgIGVsaWdpYmxlX2hp
Z2hfd2F0ZXJtYXJrLCBuZXdfZWxpZ2libGVfd2F0ZXJtYXJrKTsKLQotICAgIHJldHVybiBkaWRf
ZmluZF9lbGlnaWJsZV9wYWdlCi0gICAgICAgID8gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vf
c3VjY2VzcwotICAgICAgICA6IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxh
YmxlOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnku
aAkobm9uZXhpc3RlbnQpCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX0JJQVNJ
TkdfRElSRUNUT1JZX0gKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfQklBU0lOR19ESVJFQ1RPUllf
SAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCi0jaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwot
Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVj
dCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X2RpcmVjdG9yeTsKLQotc3RydWN0IFBBU19BTElHTkVEKHNpemVvZih1aW50cHRyX3QpICogMikg
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkgewotICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeSBiYXNlOwotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeSBiaWFzaW5nX2Jhc2U7Ci0g
ICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyIHBhcmVu
dF9nbG9iYWw7Ci19OwotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkCi1wYXNfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeV9tYWdhemluZV9pbmRleChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlf
bWFnYXppbmVfaW5kZXgoJmRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlKTsKLX0KLQotUEFTX0FQSSBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnlfY3JlYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogcGFyZW50X2dsb2JhbCwgdW5zaWduZWQgbWFnYXppbmVfaW5kZXgpOwotCi1QQVNfQVBJIHBh
c19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9m
aXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogZGly
ZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFyZW50
X2dsb2JhbCk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0Ci1w
YXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2xhc3RfdW51c2VkKAotICAgIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfRU5EX0VY
VEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX1NFR1JFR0FURURfQklBU0lOR19ESVJFQ1RPUllfSCAq
LwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYwkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3LmMJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgot
Ci0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlldy5oIgotCi0jaW5jbHVkZSAicGFzX2Vwb2NoLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hh
cmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnku
aCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIgotI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9p
bmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5l
cy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oIgotCi1wYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jcmVhdGUo
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBz
aXplX3QgaW5kZXgpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiByZXN1bHQ7
Ci0KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZShzaXplb2YocGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3IiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKCZyZXN1
bHQtPmV4Y2x1c2l2ZSwgTlVMTCk7Ci0gICAgcmVzdWx0LT5pbmRleCA9ICh1bnNpZ25lZClpbmRl
eDsKLSAgICBQQVNfQVNTRVJUKHJlc3VsdC0+aW5kZXggPT0gaW5kZXgpOwotICAgIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVj
dG9yeSwgZGlyZWN0b3J5KTsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX293bmVkKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dyogdmlldykKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZl
X3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQg
b3duZXJzaGlwX2tpbmQ7Ci0gICAgCi0gICAgZXhjbHVzaXZlX3ZpZXcgPSBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZCgmdmlldy0+ZXhjbHVzaXZl
KTsKLSAgICAKLSAgICBpZiAoIWV4Y2x1c2l2ZV92aWV3KQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBvd25lcnNoaXBfa2luZCA9IGV4Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBfa2luZDsK
LSAgICAKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlw
X2tpbmRfaXNfb3duZWQob3duZXJzaGlwX2tpbmQpCi0gICAgICAgICYmIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZChvd25lcnNoaXBfa2luZCk7
Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xv
Y2socGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAgIGZvciAoOzspIHsK
LSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZV92aWV3Owot
ICAgICAgICAKLSAgICAgICAgZXhjbHVzaXZlX3ZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZCgmdmlldy0+ZXhjbHVzaXZlKTsKLSAgICAg
ICAgCi0gICAgICAgIGlmICghZXhjbHVzaXZlX3ZpZXcpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9jaygmZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9s
b2NrKTsKLQotICAgICAgICBpZiAoZXhjbHVzaXZlX3ZpZXcgPT0gcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWQoJnZpZXctPmV4Y2x1c2l2ZSkKLSAg
ICAgICAgICAgICYmIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5k
X2lzX2JpYXNlZChleGNsdXNpdmVfdmlldy0+b3duZXJzaGlwX2tpbmQpKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0KLSAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZleGNsdXNpdmVfdmlldy0+
b3duZXJzaGlwX2xvY2spOwotICAgIH0KLX0KLQotYm9vbCBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmll
dywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKQotewotICAgIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmVfdmlldzsKLSAgICAKLSAgICBleGNs
dXNpdmVfdmlldyA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X3B0cl9sb2FkKCZ2aWV3LT5leGNsdXNpdmUpOwotICAgIAotICAgIGlmICghZXhjbHVzaXZlX3Zp
ZXcpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X3Nob3VsZF90YWJsZShleGNsdXNpdmVfdmlldywgcGFnZV9jb25maWcpOwot
fQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3RlX2VsaWdpYmlsaXR5KHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSkKLXsK
LSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQg
dmlld19pbmRleDsKLSAgICAKLSAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVj
dG9yeSk7Ci0gICAgZGlyZWN0b3J5ID0gJmJpYXNpbmdfZGlyZWN0b3J5LT5iYXNlOwotICAgIHZp
ZXdfaW5kZXggPSB2aWV3LT5pbmRleDsKLSAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfaXNoX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eV9pbXBsKAotICAgICAgICBwYWdlLCBkaXJlY3Rv
cnksIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19hc192aWV3X25vbl9udWxsKHZpZXcpLCB2
aWV3X2luZGV4KTsKLX0KLQotdm9pZCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfbm90ZV9l
bXB0aW5lc3MoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3LAotICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfbm90ZV9lbXB0aW5lc3MoCi0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5leGNsdXNpdmUpLAot
ICAgICAgICBwYWdlKTsKLX0KLQotcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmll
dykKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOwotICAg
IHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0OwotICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xvY2sodmlldykpCi0gICAgICAgIHJldHVybiBw
YXNfaGVhcF9zdW1tYXJ5X2NyZWF0ZV9lbXB0eSgpOwotICAgIAotICAgIGV4Y2x1c2l2ZSA9IHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25vbl9u
dWxsKCZ2aWV3LT5leGNsdXNpdmUpOwotICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2VkKGV4Y2x1c2l2ZS0+b3duZXJzaGlw
X2tpbmQpKTsKLSAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdf
Y29tcHV0ZV9zdW1tYXJ5X2ltcGwoZXhjbHVzaXZlKTsKLQotICAgIHBhc19sb2NrX3VubG9jaygm
ZXhjbHVzaXZlLT5vd25lcnNoaXBfbG9jayk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1i
b29sIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0gICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVD
VE9SWV9HRVRfQklUKAotICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKLSAgICAg
ICAgdmlldy0+aW5kZXgsIGVsaWdpYmxlKTsKLX0KLQotYm9vbCBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewot
ICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7Ci0gICAgZXhjbHVz
aXZlID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xv
YWQoJnZpZXctPmV4Y2x1c2l2ZSk7Ci0gICAgaWYgKGV4Y2x1c2l2ZSkKLSAgICAgICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lzX2VtcHR5KGV4Y2x1c2l2ZSk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDg4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9CSUFTSU5HX1ZJRVdfSAot
I2RlZmluZSBQQVNfU0VHUkVHQVRFRF9CSUFTSU5HX1ZJRVdfSAotCi0jaW5jbHVkZSAicGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmgiCi0jaW5jbHVkZSAi
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCIKLSNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldzsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlldyBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXc7Ci0KLXN0cnVjdCBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcgewotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ciBleGNsdXNpdmU7Ci0gICAgdW5zaWduZWQgaW5kZXg7
IC8qIElmIHdlIHdhbnRlZCB0byBiZSBoYXJkY29yZSwgd2UgY291bGQgbWFrZSB0aGlzIG9uZSBi
eXRlLiAqLwotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRy
IGRpcmVjdG9yeTsKLX07Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3KiB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2NyZWF0ZSh2aWV3
LCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg
cGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX2luZWxp
Z2libGVfdmlldyhwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0gICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3JlYXRlKHZpZXcsIHBhc19zZWdyZWdhdGVkX2luZWxp
Z2libGVfYmlhc2luZ192aWV3X2tpbmQpOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdh
dGVkX3ZpZXcKLXBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19hc192aWV3X25vbl9udWxsKHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19jcmVhdGVfbm9uX251bGwodmlldywgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2tpbmQpOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcKLXBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlld19hc19pbmVsaWdpYmxlX3ZpZXdfbm9uX251bGwocGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF92aWV3X2NyZWF0ZV9ub25fbnVsbCh2aWV3LCBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2Jp
YXNpbmdfdmlld19raW5kKTsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXcqIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgpOwotCi1Q
QVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX293bmVkKHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X3Nob3VsZF90YWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXcqIHZpZXcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7Ci1QQVNf
QVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xvY2so
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KTsKLQotUEFTX0FQSSB2b2lkIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3RlX2VsaWdpYmlsaXR5KHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldyogdmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKLVBBU19BUEkg
dm9pZCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfbm90ZV9lbXB0aW5lc3MocGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKLVBB
U19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfY29tcHV0
ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci1QQVNfQVBJIGJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfdmlldyogdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci0KLVBB
U19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9CSUFTSU5HX1ZJRVdf
SCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZGVhbGxvY2F0aW9uX21vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU2IEBACisv
KgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFT
X1NFR1JFR0FURURfREVBTExPQ0FUSU9OX01PREVfSAorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9E
RUFMTE9DQVRJT05fTU9ERV9ICisKKyNpbmNsdWRlICJwYXNfdXRpbHMuaCIKKworUEFTX0JFR0lO
X0VYVEVSTl9DOworCitlbnVtIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlIHsKKyAg
ICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGUsCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZQorfTsKKwordHlwZWRlZiBlbnVt
IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlIHBhc19zZWdyZWdhdGVkX2RlYWxsb2Nh
dGlvbl9tb2RlOworCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkX2Rl
YWxsb2NhdGlvbl9tb2RlX2dldF9zdHJpbmcoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0
aW9uX21vZGUgbW9kZSkKK3sKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZToKKyAgICAgICAgcmV0dXJuICJkaXJlY3Qi
OworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9k
ZToKKyAgICAgICAgcmV0dXJuICJ0b192aWV3X2NhY2hlIjsKKyAgICB9CisgICAgUEFTX0FTU0VS
VCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBOVUxMOworfQorCitQQVNf
RU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX1NFR1JFR0FURURfREVBTExPQ0FUSU9OX01P
REVfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTYxLDggKzYxLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2dldF9kYXRhX3Nsb3cocAogICAgICAgICAgICAgInBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9kYXRhIiwKICAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAKLSAgICAg
ICAgcGFzX3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJnJlc3VsdC0+Zmlyc3RfZWxpZ2libGVf
YnV0X25vdF90YWJsZWQsIDApOwotICAgICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0cnVj
dCgmcmVzdWx0LT5maXJzdF9lbGlnaWJsZV9hbmRfdGFibGVkLCAwKTsKKyAgICAgICAgcGFzX3Zl
cnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJnJlc3VsdC0+Zmlyc3RfZWxpZ2libGUsIDApOwogICAg
ICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0cnVjdCgmcmVzdWx0LT5sYXN0X2VtcHR5X3Bs
dXNfb25lLCAwKTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ21lbnRlZF9i
aXR2ZWN0b3JzX2NvbnN0cnVjdCgmcmVzdWx0LT5iaXR2ZWN0b3JzKTsKICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfdmVjdG9yX2NvbnN0cnVjdCgmcmVzdWx0LT52aWV3cyk7
CkBAIC0xODYsNyArMTg1LDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9zaGFyaW5n
X3BheQogCiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X21pbmltaXplX2Zp
cnN0X2VsaWdpYmxlKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAot
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQsCiAg
ICAgc2l6ZV90IGluZGV4KQogewogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhKiBk
YXRhOwpAQCAtMTk3LDEyICsxOTUsMTEgQEAgUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9taQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcGFzX3ZlcnNpb25lZF9m
aWVsZF9taW5pbWl6ZShwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV9nZXRfZmlyc3RfZWxp
Z2libGVfcHRyKGRhdGEsIGtpbmQpLCBpbmRleCk7CisgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9t
aW5pbWl6ZSgmZGF0YS0+Zmlyc3RfZWxpZ2libGUsIGluZGV4KTsKIH0KIAogUEFTX0FQSSB2b2lk
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV91cGRhdGVfZmlyc3RfZWxpZ2libGVfYWZ0ZXJfc2Vh
cmNoKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQsCiAgICAgcGFzX3Zl
cnNpb25lZF9maWVsZCBmaXJzdF9lbGlnaWJsZSwKICAgICBzaXplX3QgbmV3X3ZhbHVlKQogewpA
QCAtMjE2LDUwICsyMTMsMjIgQEAgUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV91cAogICAgIH0KIAogICAgIHBhc192ZXJzaW9uZWRfZmllbGRfdHJ5X3dyaXRlX3dhdGNoZWQo
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX2dldF9maXJzdF9lbGlnaWJs
ZV9wdHIoZGF0YSwga2luZCksCisgICAgICAgICZkYXRhLT5maXJzdF9lbGlnaWJsZSwKICAgICAg
ICAgZmlyc3RfZWxpZ2libGUsCiAgICAgICAgIG5ld192YWx1ZSk7CiB9CiAKLWJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRo
b3V0X2JpYXNpbmdfdXBkYXRlKAorYm9vbCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19k
aWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBpbmRleCkKIHsKICAgICBpZiAoUEFTX1NFR1JFR0FU
RURfRElSRUNUT1JZX1NFVF9CSVQoZGlyZWN0b3J5LCBpbmRleCwgZWxpZ2libGUsIHRydWUpKSB7
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9taW5pbWl6ZV9maXJzdF9lbGlnaWJs
ZSgKLSAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0
X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkX2tpbmQsIGluZGV4KTsKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X21pbmltaXplX2ZpcnN0X2VsaWdpYmxlKGRpcmVjdG9yeSwgaW5kZXgp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1i
b29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRf
aW5kZXgoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6
ZV90IGluZGV4KQotewotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFz
aW5nX2RpcmVjdG9yeTsKLSAgICAKLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92
aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgK
LSAgICAgICAgICAgIGRpcmVjdG9yeSwgaW5kZXgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBpZiAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeV9raW5kKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGJpYXNpbmdf
ZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KilkaXJlY3Rvcnk7
Ci0KLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5kZXhfZGlkX2JlY29tZV9lbGlnaWJsZSgm
Ymlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwgaW5kZXgpOwotICAgIHJldHVybiB0cnVl
OwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxp
Z2libGVfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRf
aW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9pbmRleCh2aWV3KSk7Ci19Ci0KIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZSgKICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCkBAIC00
MTIsMTEgKzM4MSw3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2FwcGVuZCgKICAg
ICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgUEFTX0FTU0VSVChkaXJlY3Rv
cnktPmRpcmVjdG9yeV9raW5kID09IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9raW5kKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192
aWV3X2tpbmQ6Ci0gICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9
PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKTsKKyAgICAgICAgUEFTX0FT
U0VSVChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09IHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2tpbmQpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3No
YXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5LT5kaXJlY3Rvcnlf
a2luZCA9PSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfa2luZCk7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc2LDMwICs3NiwyMyBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2JpdHZlY3RvCiAgICAgLyogRW1wdHkgbWVhbnMgdGhhdCB0aGUgcGFnZSBoYXMgc3R1ZmYgdGhh
dCBjYW4gYmUgZGVjb21taXR0ZWQuIEhvd2V2ZXIsIHRoaXMgYml0IGhhcyBubyBtZWFuaW5nIGlm
CiAgICAgICAgdGhlIGVsaWdpYmxlIGJpdCBpcyBub3Qgc2V0LiAqLwogICAgIHVuc2lnbmVkIGVt
cHR5X2JpdHM7Ci0KLSAgICAvKiBUYWJsZWQgbWVhbnMgdGhhdCB3ZSBoYXZlIHByZXZpb3VzbHkg
Zm91bmQgdGhpcyBwYWdlIHRvIGJlIHRvdGFsbHkgZnJlZSBvZiBvYmplY3RzLCBzbyB3ZSdkIGxp
a2UKLSAgICAgICB0byBkZWZlciBhbGxvY2F0aW5nIGluIHRoZSBwYWdlIHVudGlsIHdlIGFsbG9j
YXRlIGluIHBhZ2VzIHRoYXQgYXJlbid0IHRvdGFsbHkgZnJlZS4gKi8KLSAgICB1bnNpZ25lZCB0
YWJsZWRfYml0czsKIH07CiAKIC8qIEZJWE1FOiBBdHRlbXB0IHRvIGludHJvZHVjZSBjb2RlIHRv
IHBhY2sgdGhlIGJpdHZlY3RvciBpZiB3ZSBkb24ndCBuZWVkIHRoZSBlbXB0eSBiaXRzLiBDdXJy
ZW50bHkKICAgIHRoaXMgaXMgbm90IHVzZWQsIGJ1dCBzaG91bGQgYmUuICovCiBzdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpbXBsZV9iaXR2ZWN0b3Jfc2VnbWVudCB7CiAgICAgdW5z
aWduZWQgZWxpZ2libGVfYml0czsKLSAgICB1bnNpZ25lZCB0YWJsZWRfYml0czsKIH07CiAKICNk
ZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFZFQ1RPUl9TRUdNRU5UX0lOSVRJQUxJ
WkVSIFwKICAgICAoKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCl7
IFwKICAgICAgICAgLmVsaWdpYmxlX2JpdHMgPSAwLCBcCi0gICAgICAgIC5lbXB0eV9iaXRzID0g
MCwgXAotICAgICAgICAudGFibGVkX2JpdHMgPSAwIFwKKyAgICAgICAgLmVtcHR5X2JpdHMgPSAw
IFwKICAgICB9KQogCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TSU1QTEVfQklU
VkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIgXAogICAgICgocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X3NpbXBsZV9iaXR2ZWN0b3Jfc2VnbWVudCl7IFwKLSAgICAgICAgLmVsaWdpYmxlX2JpdHMg
PSAwLCBcCi0gICAgICAgIC50YWJsZWRfYml0cyA9IDAgXAorICAgICAgICAuZWxpZ2libGVfYml0
cyA9IDAgXAogICAgIH0pCiAKIFBBU19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzLApAQCAtMTI3LDIyICsxMjAsMTgg
QEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSB7CiAKICNkZWZpbmUgUEFTX1NFR1JF
R0FURURfRElSRUNUT1JZX0JJVFNfRUxJR0lCTEVfU0hJRlQgICAgICAgMHUKICNkZWZpbmUgUEFT
X1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRU1QVFlfU0hJRlQgICAgICAgICAgMXUKLSNkZWZp
bmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfVEFCTEVEX1NISUZUICAgICAgICAgMnUK
IAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVNDX1NISUZUICAgICAg
ICAgICAzdQotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19PVEhFUl9NSVND
X1NISUZUICAgICA0dQorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVND
X1NISUZUICAgICAgICAgICAydQorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklU
U19PVEhFUl9NSVNDX1NISUZUICAgICAzdQogCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVD
VE9SWV9CSVRTX0VMSUdJQkxFX01BU0sgXAogICAgICgxdSA8PCBQQVNfU0VHUkVHQVRFRF9ESVJF
Q1RPUllfQklUU19FTElHSUJMRV9TSElGVCkKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNU
T1JZX0JJVFNfRU1QVFlfTUFTSyBcCiAgICAgKDF1IDw8IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9S
WV9CSVRTX0VNUFRZX1NISUZUKQotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklU
U19UQUJMRURfTUFTSyBcCi0gICAgKDF1IDw8IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRT
X1RBQkxFRF9TSElGVCkKIAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19W
SUVXX01BU0sgXAogICAgIChQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9N
QVNLIHwgXAotICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTVBUWV9NQVNLIHwg
XAotICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19UQUJMRURfTUFTSykKKyAgICAg
UEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRU1QVFlfTUFTSykKIAogI2RlZmluZSBQQVNf
U0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVNDX01BU0sgXAogICAgICgxdSA8PCBQQVNfU0VH
UkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVNDX1NISUZUKQpAQCAtMTU0LDE2ICsxNDMsOSBAQCBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5IHsKICAgICBQQVNfU0VHUkVHQVRFRF9ESVJF
Q1RPUllfQklUU19FTElHSUJMRV9NQVNLCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9S
WV9CSVRTX2VtcHR5X01BU0sgXAogICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VN
UFRZX01BU0sKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfdGFibGVkX01B
U0sgXAotICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX1RBQkxFRF9NQVNLCi0KLSNk
ZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfZWxpZ2libGVfQVZBSUxBQkxFX0lO
X0JJQVNJTkcgICAgIHRydWUKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNf
ZW1wdHlfQVZBSUxBQkxFX0lOX0JJQVNJTkcgIGZhbHNlCi0jZGVmaW5lIFBBU19TRUdSRUdBVEVE
X0RJUkVDVE9SWV9CSVRTX3RhYmxlZF9BVkFJTEFCTEVfSU5fQklBU0lORyAgICAgICB0cnVlCiAK
IHN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9kYXRhIHsKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2Vs
aWdpYmxlX2J1dF9ub3RfdGFibGVkOwotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZmlyc3RfZWxp
Z2libGVfYW5kX3RhYmxlZDsKKyAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2VsaWdpYmxl
OwogICAgIHBhc192ZXJzaW9uZWRfZmllbGQgbGFzdF9lbXB0eV9wbHVzX29uZTsgLyogWmVybyBt
ZWFucyB0aGVyZSBhcmVuJ3QgYW55LiAqLwogCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3NlZ21lbnRlZF9iaXR2ZWN0b3JzIGJpdHZlY3RvcnM7CkBAIC0yNjEsNyArMjQzLDYgQEAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Nwb29mX2lubGluZV9zZQogICAgIAogICAgIHNlZ21lbnQu
ZWxpZ2libGVfYml0cyA9IChiaXRzID4+IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VM
SUdJQkxFX1NISUZUKSAmIDF1OwogICAgIHNlZ21lbnQuZW1wdHlfYml0cyA9IChiaXRzID4+IFBB
U19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VNUFRZX1NISUZUKSAmIDF1OwotICAgIHNlZ21l
bnQudGFibGVkX2JpdHMgPSAoYml0cyA+PiBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19U
QUJMRURfU0hJRlQpICYgMXU7CiAKICAgICByZXR1cm4gc2VnbWVudDsKIH0KQEAgLTMwNSwxMCAr
Mjg2LDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Nwb29mX2lubGluZV9zZQogICAgICAg
ICBfdmFsdWUgPSAodmFsdWUpOyBcCiAgICAgICAgIFwKICAgICAgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKF9pbmRleCA8IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeSkpOyBc
Ci0gICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCggXAotICAgICAgICAgICAgIV92YWx1ZSBcCi0g
ICAgICAgICAgICB8fCBfZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCAhPSBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kIFwKLSAgICAgICAgICAgIHx8IFBBU19TRUdSRUdBVEVE
X0RJUkVDVE9SWV9CSVRTXyMjYml0X25hbWUjI19BVkFJTEFCTEVfSU5fQklBU0lORyk7IFwKICAg
ICAgICAgXAogICAgICAgICBpZiAoIV9pbmRleCkgeyBcCiAgICAgICAgICAgICBfcmVzdWx0ID0g
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHNfc2V0X2J5X21hc2soIFwKQEAgLTQwNywzNyAr
Mzg0LDE1IEBAIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zdGFydF9zaGFyaW5nX2kKICAgICBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X3NoYXJpbmdfcGF5bG9hZChkaXJlY3RvcnksIGhl
YXBfbG9ja19ob2xkX21vZGUpOwogfQogCi1zdGF0aWMgaW5saW5lIHBhc192ZXJzaW9uZWRfZmll
bGQqIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX2dldF9maXJzdF9lbGlnaWJsZV9wdHIo
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGEqIGRhdGEsCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCkKLXsKLSAgICBzd2l0Y2gg
KGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJs
ZV9idXRfbm90X3RhYmxlZF9raW5kOgotICAgICAgICByZXR1cm4gJmRhdGEtPmZpcnN0X2VsaWdp
YmxlX2J1dF9ub3RfdGFibGVkOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Zp
cnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZDoKLSAgICAgICAgcmV0dXJuICZkYXRhLT5maXJz
dF9lbGlnaWJsZV9hbmRfdGFibGVkOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5v
dCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KIFBBU19BUEkgdm9pZCBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfbWluaW1pemVfZmlyc3RfZWxpZ2libGUoCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCwKICAgICBzaXplX3QgaW5kZXgpOwogCiBQQVNf
QVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3VwZGF0ZV9maXJzdF9lbGlnaWJsZV9h
ZnRlcl9zZWFyY2goCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCwKICAg
ICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2VsaWdpYmxlLAogICAgIHNpemVfdCBuZXdfdmFs
dWUpOwogCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2Jl
Y29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRleCk7Ci1QQVNf
QVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJs
ZV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiBQQVNfQVBJIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRl
eCgKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBzaXplX3Qg
aW5kZXgpOwpAQCAtNDYzLDEyICs0MTgsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0CiAgICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklU
KGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5KTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9pc190YWJsZWQoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3RvcnksIHNpemVfdCBpbmRleCkKLXsKLSAgICByZXR1cm4gUEFTX1NFR1JFR0FU
RURfRElSRUNUT1JZX0dFVF9CSVQoZGlyZWN0b3J5LCBpbmRleCwgdGFibGVkKTsKLX0KLQogUEFT
X0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHNpemVfdCBpbmRleCk7CiAKQEAgLTQ4
MywzMCArNDMyLDE1IEBAIFBBU19BUEkgc2l6ZV90IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV8K
IAogc3RhdGljIGlubGluZSBwYXNfdmVyc2lvbmVkX2ZpZWxkIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfaW1wbCgKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2li
bGVfa2luZCBraW5kLAogICAgIHBhc192ZXJzaW9uZWRfZmllbGQgKCpyZWFkKShwYXNfdmVyc2lv
bmVkX2ZpZWxkKiBmaWVsZCkpCiB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGEq
IGRhdGE7Ci0gICAgdW5zaWduZWQgZXhwZWN0ZWQ7CiAKICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7CiAgICAgaWYgKGRh
dGEpCi0gICAgICAgIHJldHVybiByZWFkKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX2dl
dF9maXJzdF9lbGlnaWJsZV9wdHIoZGF0YSwga2luZCkpOworICAgICAgICByZXR1cm4gcmVhZCgm
ZGF0YS0+Zmlyc3RfZWxpZ2libGUpOwogCi0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2lu
ZDoKLSAgICAgICAgZXhwZWN0ZWQgPSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElH
SUJMRV9NQVNLOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9maXJzdF9lbGlnaWJsZV9hbmRfdGFibGVkX2tpbmQ6Ci0gICAgICAgIGV4cGVjdGVkID0K
LSAgICAgICAgICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX01BU0sg
fAotICAgICAgICAgICAgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfVEFCTEVEX01BU0s7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICAKLSAgICBpZiAoKGRpcmVjdG9yeS0+Yml0cyAm
IChQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9NQVNLIHwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19UQUJMRURf
TUFTSykpCi0gICAgICAgID09IGV4cGVjdGVkKQorICAgIGlmIChkaXJlY3RvcnktPmJpdHMgJiBQ
QVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9NQVNLKQogICAgICAgICByZXR1
cm4gcGFzX3ZlcnNpb25lZF9maWVsZF9jcmVhdGVfd2l0aF9pbnZhbGlkX3ZlcnNpb24oMCk7CiAK
ICAgICByZXR1cm4gIXBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3ZpZXdfaXNfbnVsbCgm
ZGlyZWN0b3J5LT5maXJzdF92aWV3KQpAQCAtNTE1LDI3ICs0NDksMjQgQEAgc3RhdGljIGlubGlu
ZSBwYXNfdmVyc2lvbmVkX2ZpZWxkIHBhc19zZQogfQogCiBzdGF0aWMgaW5saW5lIHBhc192ZXJz
aW9uZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZSgK
LSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZCBraW5kKQorICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlX2ltcGwoCi0gICAgICAgIGRpcmVjdG9yeSwga2lu
ZCwgcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkKTsKKyAgICAgICAgZGlyZWN0b3J5LCBwYXNfdmVy
c2lvbmVkX2ZpZWxkX3JlYWQpOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc192ZXJzaW9uZWRfZmll
bGQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZV90b3JuKAotICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQpCisgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfaW1wbCgKLSAgICAgICAgZGlyZWN0b3J5LCBraW5kLCBw
YXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWRfdG9ybik7CisgICAgICAgIGRpcmVjdG9yeSwgcGFzX3Zl
cnNpb25lZF9maWVsZF9yZWFkX3Rvcm4pOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc192ZXJzaW9u
ZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3dhdGNoX2ZpcnN0X2VsaWdpYmxlKAot
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQpCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfaW1wbCgKLSAgICAgICAgZGlyZWN0b3J5LCBraW5k
LCBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWRfdG9fd2F0Y2gpOworICAgICAgICBkaXJlY3Rvcnks
IHBhc192ZXJzaW9uZWRfZmllbGRfcmVhZF90b193YXRjaCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
cGFzX3ZlcnNpb25lZF9maWVsZCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2xhc3RfZW1w
dHlfcGx1c19vbmVfaW1wbCgKQEAgLTYxMyw4ICs1NDQsNyBAQCBQQVNfQVBJIHZvaWQgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2FwCiAKIC8qIFRoaXMgaGFzIGEgbWF4aW1hbGx5IGluY2x1c2lv
biB3YXkgb2YgdHJlYXRpbmcgbWVtb3J5IHRoYXQgbXVsdGlwbGUgdmlld3MgbWF5IGhhdmUgZGli
cyBvbi4gRm9yCiAgICBleGFtcGxlLCBzaGFyZWQgcGFnZSBkaXJlY3RvcmllcyBhbmQgcGFydGlh
bCB2aWV3cyBpbiBzaXplIGRpcmVjdG9yaWVzIG1heSByZXBvcnQgb24gdGhlIHNhbWUKLSAgIGJ5
dGVzIG9mIG1lbW9yeS4gRXhjbHVzaXZlIHZpZXdzIGluIGEgZ2xvYmFsIHNpemUgZGlyZWN0b3J5
IG1heSByZXBvcnQgb24gdGhlIHNhbWUgbWVtb3J5IGFzCi0gICBiaWFzaW5nIHZpZXdzIGluIGJp
YXNpbmcgZGlyZWN0b3JpZXMuICovCisgICBieXRlcyBvZiBtZW1vcnkuICovCiBQQVNfQVBJIHBh
c19oZWFwX3N1bW1hcnkKIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnko
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVy
ZW5jZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmgJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9iaXRfcmVmZXJlbmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNSwxMCArMTI1LDYgQEAg
c3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdAogICAgICAgICBfdmFsdWUg
PSAodmFsdWUpOyBcCiAgICAgICAgIFwKICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZV9pc19udWxsKF9yZWZlcmVuY2UpKTsg
XAotICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIFwKLSAgICAgICAgICAgICFfdmFsdWUgXAot
ICAgICAgICAgICAgfHwgX2RpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgIT0gcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCBcCi0gICAgICAgICAgICB8fCBQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfQklUU18jI2JpdF9uYW1lIyNfQVZBSUxBQkxFX0lOX0JJQVNJTkcpOyBcCiAg
ICAgICAgIFwKICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJl
bmNlX2lzX2lubGluZShfcmVmZXJlbmNlKSkgeyBcCiAgICAgICAgICAgICBmb3IgKDs7KSB7IFwK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaAkocmV2aXNpb24gMjgy
MjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDggKzI0Miw3IEBAIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2JhY2t3YXIKIAogc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIGJvb2wKIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2ZvcndhcmRf
dG9fdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRl
cmF0ZV9jb25maWcqIGNvbmZpZywKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3Rf
ZWxpZ2libGVfa2luZCBmaXJzdF9lbGlnaWJsZV9raW5kKQorICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQogewogICAgIHN0YXRpYyBjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzaW1wbGVfZWxpZ2liaWxp
dHkgPSBmYWxzZTsKQEAgLTI1OSw4ICsyNTgsNyBAQCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXRlcmF0ZV9mb3J3YXJkCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xv
ZygicHJldmlvdXNfc2l6ZSA9ICV6dVxuIiwgcHJldmlvdXNfc2l6ZSk7CiAKLSAgICAgICAgZmly
c3RfZWxpZ2libGUgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfd2F0Y2hfZmlyc3RfZWxpZ2li
bGUoCi0gICAgICAgICAgICBjb25maWctPmRpcmVjdG9yeSwgZmlyc3RfZWxpZ2libGVfa2luZCk7
CisgICAgICAgIGZpcnN0X2VsaWdpYmxlID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3dhdGNo
X2ZpcnN0X2VsaWdpYmxlKGNvbmZpZy0+ZGlyZWN0b3J5KTsKIAogICAgICAgICBpZiAoc2ltcGxl
X2VsaWdpYmlsaXR5KQogICAgICAgICAgICAgY29uZmlnLT5pbmRleCA9IDA7CkBAIC0zMDUsNyAr
MzAzLDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZAogICAgICAg
ICAKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3VwZGF0ZV9maXJzdF9lbGlnaWJs
ZV9hZnRlcl9zZWFyY2goCiAgICAgICAgICAgICBjb25maWctPmRpcmVjdG9yeSwKLSAgICAgICAg
ICAgIGZpcnN0X2VsaWdpYmxlX2tpbmQsCiAgICAgICAgICAgICBmaXJzdF9lbGlnaWJsZSwKICAg
ICAgICAgICAgIGNvbmZpZy0+Zmlyc3RfY29uc2lkZXJlZCk7CiAgICAgICAgIApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tp
bmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM0LDE2ICszNCwxMyBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAK
ICAgICAgICAtIGRpcmVjdG9yeQogICAgICAgICAgICAtIHNpemUgZGlyZWN0b3J5Ci0gICAgICAg
ICAgICAgICAtIGdsb2JhbCBzaXplIGRpcmVjdG9yeQotICAgICAgICAgICAgICAgLSBiaWFzaW5n
IGRpcmVjdG9yeQogICAgICAgICAgICAtIHNoYXJlZCBwYWdlIGRpcmVjdG9yeQogICAgCiAgICBP
bmx5IHRoZSB0eXBlcyBhdCB0aGUgbGVhdmVzIGFyZSBpbnN0YW50aWFibGUuIFRoZSBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3Rvcnlfa2luZCBlbnVtIGlzIGZvcgogICAgZGVzY3JpYmluZyB0aGUgaW5z
dGFudGlhYmxlIGxlYXZlcy4gKi8KIAogZW51bSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2lu
ZCB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2tpbmQsCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCwKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9raW5kLAogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9raW5kCiB9OwogCkBAIC01MywxMCArNTAsOCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0
IGNoYXIqIHBhc19zZWdyZWdhdGVkCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQg
a2luZCkKIHsKICAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9raW5kOgotICAgICAgICByZXR1cm4gInNlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5IjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiAic2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eSI7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5kOgorICAgICAg
ICByZXR1cm4gInNlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkiOwogICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2tpbmQ6CiAgICAgICAgIHJldHVybiAic2VncmVn
YXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkiOwogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwkod29ya2luZyBj
b3B5KQpAQCAtMzYsMTAgKzM2LDEwIEBACiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29s
LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
LmgiCiAKIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKICAgICBzaXplX3QgaW5kZXgpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwpAQCAtNTYsNjcgKzU2LDE2IEBAIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3KiBwYXNfc2VncmUKIAogICAgIC8qIFdlIGFsbG9jYXRlIHRoaXMgbGF6aWx5LiAqLwogICAg
IHJlc3VsdC0+cGFnZV9ib3VuZGFyeSA9IE5VTEw7Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGly
ZWN0b3J5KTsKKyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9z
dG9yZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRpcmVjdG9yeSk7CiAgICAgcmVzdWx0LT5pbmRleCA9
ICh1bnNpZ25lZClpbmRleDsKICAgICBQQVNfQVNTRVJUKHJlc3VsdC0+aW5kZXggPT0gaW5kZXgp
OwotICAgIHJlc3VsdC0+b3duZXJzaGlwX2tpbmQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19ub3Rfb3duZWQ7CisgICAgcmVzdWx0LT5pc19vd25lZCA9IGZhbHNlOwogICAgIHBhc19s
b2NrX2NvbnN0cnVjdCgmcmVzdWx0LT5jb21taXRfbG9jayk7CiAgICAgcGFzX2xvY2tfY29uc3Ry
dWN0KCZyZXN1bHQtPm93bmVyc2hpcF9sb2NrKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnKiBwYWdlX2NvbmZpZykKLXsKLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZpZXctPm93bmVyc2hpcF9raW5kKSkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gIXBhc19zZWdyZWdhdGVkX3BhZ2Vf
Zm9yX2JvdW5kYXJ5KHZpZXctPnBhZ2VfYm91bmRhcnksICpwYWdlX2NvbmZpZyktPm51bV9ub25f
ZW1wdHlfd29yZHM7Ci19Ci0KLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3
X25vdGVfZWxpZ2liaWxpdHlfaW1wbCgKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAot
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXcgZWxpZ2libGVfb3duaW5nX3ZpZXcsCi0gICAgdW5zaWduZWQgdmlld19pbmRleCkK
LXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0KLSAgICBQQVNfVEVT
VElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9raW5kKGVsaWdpYmxl
X293bmluZ192aWV3KSk7Ci0gICAgCi0gICAgaWYgKHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2co
Ik5vdGluZyBlbGlnaWJpbGl0eSBpbiBleGNsdXNpdmUgJXAvJXAuXG4iLCBlbGlnaWJsZV9vd25p
bmdfdmlldywgcGFnZSk7Ci0gICAgICAgIAotICAgIGlmIChwYWdlLT5sb2NrX3B0cikKLSAgICAg
ICAgcGFzX2xvY2tfdGVzdGluZ19hc3NlcnRfaGVsZChwYWdlLT5sb2NrX3B0cik7Ci0gICAgCi0g
ICAgaWYgKHBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbikgewotICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgIHBhc19sb2coIkRlZmVycmluZyBlbGlnaWJpbGl0eSBub3RpZmlj
YXRpb24uXG4iKTsKLSAgICAgICAgcGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19i
ZWVuX2RlZmVycmVkID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAodmVyYm9zZSkK
LSAgICAgICAgICAgIHBhc19sb2coIlRlbGxpbmcgdGhlIGRpcmVjdG9yeSB0aGF0IHdlIGFyZSBl
bGlnaWJsZS5cbiIpOwotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRf
YmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgdmlld19pbmRleCk7Ci0gICAgfQot
ICAgIAotICAgIC8qIENsZWFyIHRoZSBpbmVsaWdpYmxlIGJpdCBmcm9tIHRoZSBvd25lciBmaWVs
ZC4gKi8KLSAgICBwYWdlLT5vd25lciA9IGVsaWdpYmxlX293bmluZ192aWV3OwotfQotCi12b2lk
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZSogcGFnZSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfbm90ZV9l
bGlnaWJpbGl0eV9pbXBsKAotICAgICAgICBwYWdlLAotICAgICAgICAmcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRp
cmVjdG9yeSktPmJhc2UsCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2Fz
X3ZpZXdfbm9uX251bGwodmlldyksCi0gICAgICAgIHZpZXctPmluZGV4KTsKLX0KLQogdm9pZCBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VtcHRpbmVzcygKICAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldywKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBw
YWdlKQpAQCAtMTMwLDE2ICs3OSwxNSBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X25vdGVfCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkaXJlY3RvcnkgPSAmcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251
bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2U7CisgICAgZGlyZWN0b3J5ID0gJnBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVj
dG9yeSktPmJhc2U7CiAgICAgdmlld19pbmRleCA9IHZpZXctPmluZGV4OwogICAgIAogICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoZGly
ZWN0b3J5LCB2aWV3X2luZGV4KTsKIH0KIAotcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwoCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcpCitzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21w
dXRlX3N1bW1hcnlfaW1wbChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldykKIHsK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5
OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKICAg
ICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWdfcHRyOwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnIHBhZ2VfY29uZmlnOwpAQCAtMTUwLDEyICs5OCwxMiBAQCBwYXNfaGVhcF9zdW1tYXJ5
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2CiAgICAgc2l6ZV90IG9mZnNldDsKICAgICBzaXplX3Qg
YmVnaW47CiAgICAgc2l6ZV90IGVuZDsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9k
YXRhKiBkYXRhOwogCi0gICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5
KTsKKyAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSk7CiAKLSAgICBpZiAoIXBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZpZXct
Pm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeV9mb3JfdW5vd25lZF9leGNsdXNpdmUoCisg
ICAgaWYgKCF2aWV3LT5pc19vd25lZCkgeworICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKICAg
ICAgICAgICAgIHNpemVfZGlyZWN0b3J5KTsKICAgICB9CiAKQEAgLTE2NSw3ICsxMTMsNyBAQCBw
YXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2CiAgICAgCiAgICAgcmVzdWx0
ID0gcGFzX2hlYXBfc3VtbWFyeV9jcmVhdGVfZW1wdHkoKTsKIAotICAgIGRhdGEgPSBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmc2l6ZV9kaXJlY3Rv
cnktPmRhdGEpOworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRh
X3B0cl9sb2FkKCZzaXplX2RpcmVjdG9yeS0+ZGF0YSk7CiAgICAgYm91bmRhcnkgPSB2aWV3LT5w
YWdlX2JvdW5kYXJ5OwogICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFy
eShib3VuZGFyeSwgcGFnZV9jb25maWcpOwogCkBAIC0yMDksNyArMTU3LDcgQEAgcGFzX2hlYXBf
c3VtbWFyeSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdgogICAgIHBhc19oZWFwX3N1bW1hcnkgcmVz
dWx0OwogICAgIAogICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAg
ICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1t
YXJ5X2ltcGwodmlldyk7CisgICAgcmVzdWx0ID0gY29tcHV0ZV9zdW1tYXJ5X2ltcGwodmlldyk7
CiAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CiAKICAgICByZXR1
cm4gcmVzdWx0OwpAQCAtMjIwLDEzICsxNjgsMTMgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19pbnN0YQogewogICAgIHZvaWQqIGJvdW5kYXJ5OwogICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2UqIHBhZ2U7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKICAgICBwYXNf
cGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50czsKICAgICBwYXNfcGFnZV9ncmFudWxl
X3VzZV9jb3VudCogZnVsbF91c2VfY291bnRzOwogICAgIHNpemVfdCBudW1fZ3JhbnVsZXM7CiAK
LSAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KTsKKyAgICBkaXJlY3Rvcnkg
PSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KCZ2aWV3LT5kaXJlY3RvcnkpOwogICAgIHBhZ2VfY29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2lu
ZCk7CiAgICAgYm91bmRhcnkgPSB2aWV3LT5wYWdlX2JvdW5kYXJ5OwogICAgIHBhZ2UgPSBwYXNf
c2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShib3VuZGFyeSwgcGFnZV9jb25maWcpOwpAQCAt
MjM3LDcgKzE4NSw3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5zdGEK
ICAgICBudW1fZ3JhbnVsZXMgPSAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgLyBwYWdlX2Nv
bmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CiAKICAgICBmdWxsX3VzZV9jb3VudHMgPSBwYXNfY29t
cGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHJfbG9hZF9ub25fbnVsbCgKLSAg
ICAgICAgJnBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRf
ZGF0YShkaXJlY3RvcnkpLT5mdWxsX3VzZV9jb3VudHMpOworICAgICAgICAmcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoZGlyZWN0b3J5KS0+ZnVsbF91c2Vf
Y291bnRzKTsKICAgICAKICAgICBtZW1jcHkodXNlX2NvdW50cywKICAgICAgICAgICAgZnVsbF91
c2VfY291bnRzLApAQCAtMjQ3LDE0ICsxOTUsMTQgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19pbnN0YQogYm9vbCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pc19l
bGlnaWJsZShwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldykKIHsKICAgICByZXR1
cm4gUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICZwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmll
dy0+ZGlyZWN0b3J5KS0+YmFzZSwKKyAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCiAg
ICAgICAgIHZpZXctPmluZGV4LCBlbGlnaWJsZSk7CiB9CiAKIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZp
ZXcpCiB7CiAgICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAg
ICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCisgICAgICAgICZwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJl
Y3RvcnkpLT5iYXNlLAogICAgICAgICB2aWV3LT5pbmRleCwgZW1wdHkpOwogfQogCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDI0ICsyNiwyNiBAQAogI2lmbmRlZiBQQVNfU0VHUkVH
QVRFRF9FWENMVVNJVkVfVklFV19ICiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0VYQ0xVU0lWRV9W
SUVXX0gKIAotI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oIgorI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmll
dy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldzsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlOworc3RydWN0IHBhc190aHJl
YWRfbG9jYWxfY2FjaGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldyBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldzsKIHR5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKK3R5cGVkZWYgc3RydWN0IHBhc190
aHJlYWRfbG9jYWxfY2FjaGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZTsKIAogc3RydWN0IHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHsKICAgICB2b2lkKiBwYWdlX2JvdW5kYXJ5OwogICAg
IAotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBk
aXJlY3Rvcnk7CisgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIg
ZGlyZWN0b3J5OwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlw
X2tpbmQgb3duZXJzaGlwX2tpbmQ7CisgICAgYm9vbCBpc19vd25lZDsKIAogICAgIHVuc2lnbmVk
IGluZGV4OwogCkBAIC05MSwyOSArOTMsMTMgQEAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfYXNfaW5lbGlnaQogCiBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3Kgog
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY3JlYXRlKAotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGluZGV4KTsKIAotUEFTX0FQSSBi
b29sIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3Nob3VsZF90YWJsZSgKLSAgICBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyogcGFnZV9jb25maWcpOwotCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX2lzaF92aWV3X25vdGVfZWxpZ2liaWxpdHlfaW1wbCgKLSAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlKiBwYWdlLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAot
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgZWxpZ2libGVfb3duaW5nX3ZpZXcsCi0gICAgdW5zaWdu
ZWQgdmlld19pbmRleCk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19ub3RlX2VsaWdpYmlsaXR5KAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpOwotCiBQQVNfQVBJIHZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZSk7CiAKLVBBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcqIHZpZXcpOwogUEFTX0FQSSBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X2NvbXB1dGVfc3VtbWFyeSgKICAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlldyogdmlldyk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTcgKzI2LDIxIEBACiAjaWZuZGVmIFBBU19TRUdSRUdB
VEVEX0VYQ0xVU0lWRV9WSUVXX0lOTElORVNfSAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9FWENM
VVNJVkVfVklFV19JTkxJTkVTX0gKIAorI2luY2x1ZGUgInBhc19kZXNpZ25hdGVkX2ludHJpbnNp
Y19oZWFwX2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNoZS5oIgogI2lu
Y2x1ZGUgInBhc19sb2cuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25f
bW9kZS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCi0jaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlLmgiCisjaW5j
bHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAK
LXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9p
c2hfdmlld19kaWRfc3RhcnRfYWxsb2NhdGluZygKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdGFydF9hbGxvY2F0aW5nKAog
ICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3LAogICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXcgb3duZXJfdmlldywgLyogQ291bGQgYmUgdGhlIGJpYXNpbmcgdmlldywgb3IgdGhl
IGV4Y2x1c2l2ZSB2aWV3LiAqLwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZ2xvYmFsX2RpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZ2xvYmFsX2RpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAg
IHBhc19sb2NrKiogaGVsZF9sb2NrLAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBh
Z2VfY29uZmlnKQpAQCAtNTQsNyArNTgsOCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCBwYXNfc2VncmVnCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkRpZCBzdGFy
dCBhbGxvY2F0aW5nIGluICVwLlxuIiwgcGFnZSk7CiAKLSAgICBQQVNfVEVTVElOR19BU1NFUlQo
IXBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbik7CisgICAgLyogTk9URTogV2UgY2Fubm90
IGFzc2VydCB0aGF0IHRoZSBwYWdlIGlzIG5vdCBpbiB1c2UgZm9yIGFsbG9jYXRpb24gc2luY2Ug
d2UgbWF5IGJlIGNvbWluZyBoZXJlCisgICAgICAgdmlhIHRoZSB2aWV3IGNhY2hlLCB3aGljaCBh
bHdheXMgc2F5cyB0aGF0IHBhZ2VzIGFyZSBpbiB1c2UgZm9yIGFsbG9jYXRpb24uICovCiAKICAg
ICAvKiBXZSB3YW50IHRvIGRlZmVyIG5vdGlmeWluZyBhbnlvbmUgYWJvdXQgYW55IG5ld2x5IGZy
ZWVkIG9iamVjdHMuIERvIHRoaXMgaGVyZSBzaW5jZQogICAgICAgIHRoZSBjb2RlIGJlbG93IG1h
eSByZWxlYXNlIChhbmQgdGhlbiByZWFjcXVpcmUpIHRoZSBwYWdlIGxvY2suIFRoYXQgY291bGQg
Y2F1c2Ugc29tZQpAQCAtNjgsNiArNzMsMTQ2IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkIHBhc19zZWdyZWcKICAgICBwYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNf
aW5lbGlnaWJsZShvd25lcl92aWV3KTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZygKKyAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldywKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBh
Z2UsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCisgICAgYm9v
bCBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5KQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKKworICAgIHVuc2lnbmVkIHZpZXdfaW5kZXg7CisgICAgYm9vbCBzaG91
bGRfbm90aWZ5X2VtcHRpbmVzczsKKworICAgIHZpZXdfaW5kZXggPSB2aWV3LT5pbmRleDsKKyAg
ICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdGlv
biBpbiBleGNsdXNpdmUgJXAvJXAuXG4iLCB2aWV3LCBwYWdlKTsKKyAgICAKKyAgICBpZiAoIXBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKQorICAgICAg
ICBwYXNfbG9ja190ZXN0aW5nX2Fzc2VydF9oZWxkKHBhZ2UtPmxvY2tfcHRyKTsKKyAgICBQQVNf
VEVTVElOR19BU1NFUlQocGFnZS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKTsKKyAgICAKKyAg
ICBzaG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVz
X2Zvcl9kZWNvbW1pdChwYWdlLCBwYWdlX2NvbmZpZyk7CisgICAgCisgICAgcGFnZS0+aXNfaW5f
dXNlX2Zvcl9hbGxvY2F0aW9uID0gZmFsc2U7CisgICAgCisgICAgaWYgKHNob3VsZF9ub3RpZnlf
ZWxpZ2liaWxpdHkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9n
KCJUZWxsaW5nIGRpcmVjdG9yeSBhYm91dCBkZWZlcnJlZCBlbGlnaWJpbGl0eS5cbiIpOworICAg
ICAgICAKKyAgICAgICAgLyogUGFnZSBtdXN0IGtub3cgdGhhdCB3ZSBhcmUgZWxpZ2libGUgZmly
c3QuICovCisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2tpbmQocGFnZS0+b3duZXIpID09IHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X2tpbmQpOworICAgICAgICAKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKKyAgICAgICAgICAgICZkaXJl
Y3RvcnktPmJhc2UsCisgICAgICAgICAgICB2aWV3X2luZGV4KTsKKyAgICB9CisgICAgCisgICAg
LyogSXQncyBpbXBvcnRhbnQgdG8gbm90aWZ5IGVtcHRpbmVzcyBsYXN0LCBzbyB0aGF0IHdlIG5l
dmVyIGZpbmQgb3V0c2VsdmVzIGluIGEgY2FzZSB3aGVyZSB0aGUKKyAgICAgICBzY2F2ZW5nZXIg
dGFrZXMgdGhlIGVtcHR5IGJpdCwgY2Fubm90IHRha2UgdGhlIGVsaWdpYmxlIGJpdCwgYW5kIHRo
aXMgY29kZSBoYWQgYWxyZWFkeSBzZXQgdGhlCisgICAgICAgZW1wdHkgYml0IGJ1dCBub3QgdGhl
IGVsaWdpYmxlIGJpdC4gKi8KKyAgICBpZiAoc2hvdWxkX25vdGlmeV9lbXB0aW5lc3MpIHsKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9p
bmRleCgKKyAgICAgICAgICAgICZkaXJlY3RvcnktPmJhc2UsCisgICAgICAgICAgICB2aWV3X2lu
ZGV4KTsKKyAgICB9Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwK
KyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZSBkZWFsbG9jYXRpb25fbW9kZSwK
KyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CisgICAgCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVf
ZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OworCisg
ICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpOworICAgIGRpcmVjdG9yeSA9ICZz
aXplX2RpcmVjdG9yeS0+YmFzZTsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFz
X2xvZygiTm90aW5nIGVsaWdpYmlsaXR5IGluIGV4Y2x1c2l2ZSAlcC8lcC5cbiIsIHZpZXcsIHBh
Z2UpOworICAgICAgICAKKyAgICBpZiAocGFnZS0+bG9ja19wdHIpCisgICAgICAgIHBhc19sb2Nr
X3Rlc3RpbmdfYXNzZXJ0X2hlbGQocGFnZS0+bG9ja19wdHIpOworICAgIAorICAgIGlmIChwYWdl
LT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb24pIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAg
ICAgICAgICBwYXNfbG9nKCJEZWZlcnJpbmcgZWxpZ2liaWxpdHkgbm90aWZpY2F0aW9uLlxuIik7
CisgICAgICAgIHBhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJl
ZCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYm9vbCBkaWRfY2FjaGVfdmlldzsKKwor
ICAgICAgICBkaWRfY2FjaGVfdmlldyA9IGZhbHNlOworCisgICAgICAgIHN3aXRjaCAoZGVhbGxv
Y2F0aW9uX21vZGUpIHsKKyAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25f
ZGlyZWN0X21vZGU6CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBw
YXNfbG9nKCJVc2luZyBkaXJlY3QgZGVhbGxvY2F0aW9uIG1vZGUgKCV1KS5cbiIsIHBhZ2UtPm9i
amVjdF9zaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZTogeworICAgICAgICAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdDsKKyAgICAgICAgICAgIHBh
c19sb2NhbF92aWV3X2NhY2hlKiB2aWV3X2NhY2hlOworCisgICAgICAgICAgICBpZiAodmVyYm9z
ZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJVc2luZyB0b192aWV3X2NhY2hlIGRlYWxsb2Nh
dGlvbiBtb2RlICgldSkuXG4iLCBwYWdlLT5vYmplY3Rfc2l6ZSk7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGlmICghcGFnZV9jb25maWcuZW5hYmxlX3ZpZXdfY2FjaGUpIHsKKyAgICAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6IFZp
ZXcgY2FjaGUgZGlzYWJsZWQgaW4gY29uZmlnIiwgY2FjaGUtPm5vZGUpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhbGxvY2F0b3JfcmVzdWx0
ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcigKKyAgICAg
ICAgICAgICAgICBjYWNoZSwgcGFnZS0+dmlld19jYWNoZV9pbmRleCk7CisgICAgICAgICAgICBp
ZiAoIWFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcDogVmlldyBjYWNoZSBp
cyBkaXNhYmxlZCBmb3IgdGhpcyBwYWdlIG9yIGl0IGRvZXNuJ3QgZXhpc3QgeWV0IGluIHRoaXMg
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUTEMuXG4iLCBjYWNoZS0+bm9kZSk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgICAgICB2aWV3X2NhY2hlID0gKHBhc19sb2NhbF92aWV3X2Nh
Y2hlKilhbGxvY2F0b3JfcmVzdWx0LmFsbG9jYXRvcjsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiVHJ5aW5nIHRvIHB1c2gg
dG8gdmlldyBjYWNoZS5cbiIpOworCisgICAgICAgICAgICBpZiAocGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfaXNfZnVsbCh2aWV3X2NhY2hlKSkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcCwgJXA6IENhY2hlIGlzIGZ1bGwgKCV1KS5c
biIsIGNhY2hlLT5ub2RlLCB2aWV3X2NhY2hlLCBwYWdlLT5vYmplY3Rfc2l6ZSk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGRpZF9jYWNoZV92aWV3ID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcGFnZS0+
aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiJXAsICVwOiBQdXNoaW5n
IHRvIGNhY2hlICgldSkuXG4iLCBjYWNoZS0+bm9kZSwgdmlld19jYWNoZSwgcGFnZS0+b2JqZWN0
X3NpemUpOworCisgICAgICAgICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9wdXNoKHZpZXdfY2Fj
aGUsIHZpZXcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0gfQorCisgICAgICAgIGlm
ICghZGlkX2NhY2hlX3ZpZXcpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgICAgIHBhc19sb2coIlRlbGxpbmcgdGhlIGRpcmVjdG9yeSB0aGF0IHdlIGFyZSBlbGlnaWJs
ZSAoJXUpLlxuIiwgcGFnZS0+b2JqZWN0X3NpemUpOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3Rvcnks
IHZpZXctPmluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIENsZWFyIHRoZSBpbmVs
aWdpYmxlIGJpdCBmcm9tIHRoZSBvd25lciBmaWVsZC4gKi8KKyAgICBwYWdlLT5vd25lciA9IHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwodmlldyk7Cit9CisK
IFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9FWENMVVNJVkVf
VklFV19JTkxJTkVTX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZXJzaGlwX2tpbmQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDE0NiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNf
U0VHUkVHQVRFRF9FWENMVVNJVkVfVklFV19PV05FUlNISVBfS0lORF9ICi0jZGVmaW5lIFBBU19T
RUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX09XTkVSU0hJUF9LSU5EX0gKLQotI2luY2x1ZGUgInBh
c191dGlscy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLS8qIFRoaXMgaXMgcmVhbGx5IHR3
byBmbGFncyAtLSBvd25lZCBhbmQgYmlhc2VkLgotCi0gICBPd25lcnNoaXAgbWVhbnMgdGhhdCB0
aGUgcGFnZSBwb2ludGVyIHBvaW50cyB0byBhIGNvbW1pdHRlZCBhbmQgZnVsbHkgY29uc3RydWN0
ZWQKLSAgIHBhZ2UuIFRoZSBvd25lcnNoaXAgbG9jayBpcyB0YWtlbiB3aGVuIHRoaXMgc3RhdGUg
Y2hhbmdlcy4gU28gaWYgeW91IGdyYWIgdGhlIG93bmVyc2hpcAotICAgbG9jayBhbmQgb2JzZXJ2
ZSB0aGUgb3duZXJzaGlwIGJpdCB0byBiZSBzZXQsIHRoZW4geW91IGtub3cgdGhhdCB5b3UgY2Fu
IGRlcmVmZXJlbmNlCi0gICB0aGUgcGFnZSBwb2ludGVyIGFuZCBhY2Nlc3MgdGhlIHBhZ2Uga25v
d2luZyB0aGF0IGl0J3MgZnVsbHkgaW5pdGlhbGl6ZWQuIEJ1dCB0aGF0Ci0gICByZXF1aXJlcyBj
b250aW51aW5nIHRvIGhvbGQgdGhlIG93bmVyc2hpcCBsb2NrLgotCi0gICBCaWFzaW5nIG1lYW5z
IHRoYXQgdGhlcmUgaXMgYSBiaWFzaW5nX3ZpZXcgdGhhdCBoYXMgdGFrZW4gb3ZlciB0aGUgZXhj
bHVzaXZlIHZpZXcgYW5kCi0gICBzbyB0aGUgZXhjbHVzaXZlIHZpZXcgaXNuJ3QgcmVhbGx5IGFj
dGluZyBhcyBhIG1lbWJlciBvZiBpdHMgZGlyZWN0b3J5IChpdCBzaG91bGQgYmUKLSAgIGluZWxp
Z2libGUgaW4gdGhhdCBkaXJlY3RvcnkgYW5kIGlnbm9yZWQpLiAqLwotZW51bSBfX2F0dHJpYnV0
ZV9fKChfX3BhY2tlZF9fKSkgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlw
X2tpbmQgewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZCwKLSAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZCwKLSAgICBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWRfYW5kX2JpYXNlZCwKLSAgICBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19vd25lZF9hbmRfYmlhc2VkLAotfTsKLQotdHlwZWRlZiBlbnVtIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQoCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQga2luZCkKLXsKLSAg
ICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X25vdF9vd25lZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9v
d25lZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2VkKAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kIGtpbmQpCi17Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0g
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ6Ci0gICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2Fu
ZF9iaWFzZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZF9h
bmRfYmlhc2VkOgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCgh
IlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGlj
IGlubGluZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZAotcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfd2l0aF9vd25lZCgKLSAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZCBraW5kLAotICAg
IGJvb2wgaXNfb3duZWQpCi17Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAgICAgICAgcmV0dXJuIGlzX293bmVkCi0gICAgICAg
ICAgICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkCi0gICAgICAgICAgICA6
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZDsKLSAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZF9hbmRfYmlhc2VkOgotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWRfYW5kX2JpYXNlZDoKLSAgICAgICAg
cmV0dXJuIGlzX293bmVkCi0gICAgICAgICAgICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X293bmVkX2FuZF9iaWFzZWQKLSAgICAgICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQ7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJT
aG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfbm90X293bmVkOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kCi1wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNlZCgKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19vd25lcnNoaXBfa2luZCBraW5kLAotICAgIGJvb2wgaXNfYmlhc2VkKQotewotICAg
IHN3aXRjaCAoa2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
bm90X293bmVkOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293
bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiBpc19iaWFzZWQKLSAgICAgICAgICAgID8g
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQKLSAgICAg
ICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOwotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWQ6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4g
aXNfYmlhc2VkCi0gICAgICAgICAgICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293
bmVkX2FuZF9iaWFzZWQKLSAgICAgICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfb3duZWQ7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQi
KTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOwot
fQotCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X293bmVyc2hpcF9raW5kX2dldF9zdHJpbmcoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQga2luZCkKLXsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAg
ICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZDoKLSAgICAgICAg
cmV0dXJuICJub3Rfb3duZWQiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfb3duZWQ6Ci0gICAgICAgIHJldHVybiAib3duZWQiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiAi
bm90X293bmVkX2FuZF9iaWFzZWQiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZWRfYW5kX2JpYXNlZDoKLSAgICAgICAgcmV0dXJuICJvd25lZF9hbmRfYmlhc2Vk
IjsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAg
IHJldHVybiBOVUxMOwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX1NF
R1JFR0FURURfRVhDTFVTSVZFX1ZJRVdfT1dORVJTSElQX0tJTkRfSCAqLwotCi0KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDEyMjEgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNs
dWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCi0KLSNpbmNsdWRlICJwYXNfYmlh
c2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfaGVhcC5oIgot
I2luY2x1ZGUgInBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCIKLSNpbmNsdWRlICJwYXNfZXhj
bHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5oIgotI2luY2x1ZGUgInBhc19tb25vdG9u
aWNfdGltZS5oIgotI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5oIgotI2luY2x1ZGUgInBhc19w
YWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
bmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKLSNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVk
ZSAicGFzX3N0cmVhbS5oIgotI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
LmgiCi0jaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5oIgotCi1ib29sIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZSA9IGZhbHNlOwotYm9vbCBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yY2VfZXhwbG9kZSA9IGZhbHNlOwotCi1w
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwK
LSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZSwKLSAgICB1bnNpZ25lZCBhbGlnbm1lbnQsCi0gICAg
cGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZyogcGFnZV9jb25maWcpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZh
bHNlOwotICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcmVz
dWx0OwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFnZV9jb25maWdfa2lu
ZDsKLQotICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKLQotICAgIGlmIChwYWdlX2Nv
bmZpZykKLSAgICAgICAgcGFnZV9jb25maWdfa2luZCA9IHBhZ2VfY29uZmlnLT5raW5kOwotICAg
IGVsc2UKLSAgICAgICAgcGFnZV9jb25maWdfa2luZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfbnVsbDsKLQotICAgIGlmIChwYWdlX2NvbmZpZykKLSAgICAgICAgUEFTX0FTU0VS
VChoZWFwX2NvbmZpZyA9PSBwYWdlX2NvbmZpZy0+YmFzZS5oZWFwX2NvbmZpZ19wdHIpOwotCi0g
ICAgcGFzX2hlYXBfY29uZmlnX2FjdGl2YXRlKGhlYXBfY29uZmlnKTsKLQotICAgIGlmICh2ZXJi
b3NlICYmIHBhZ2VfY29uZmlnKSB7Ci0gICAgICAgIHBhc19sb2coImxvY2FsIGFsbG9jYXRvciBz
aXplIGZvciAlczogJXp1XG4iLAotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZ19raW5kKSwKLSAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3Np
emVfZm9yX2NvbmZpZygqcGFnZV9jb25maWcpKTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBwYXNf
aW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKLSAgICAgICAgc2l6ZW9mKHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSksCi0gICAgICAgICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgaWYg
KHZlcmJvc2UpIHsKLSAgICAgICAgcGFzX2xvZygiQ3JlYXRpbmcgZGlyZWN0cm95ICVwIGZvciAl
c1xuIiwKLSAgICAgICAgICAgICAgICByZXN1bHQsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZ19raW5kKSk7Ci0gICAgfQotCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29uc3RydWN0KAotICAgICAgICAmcmVzdWx0LT5iYXNl
LCBwYWdlX2NvbmZpZ19raW5kLAotICAgICAgICBoZWFwLT5ydW50aW1lX2NvbmZpZy0+c2hhcmlu
Z19tb2RlLAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2lu
ZCk7Ci0KLSAgICByZXN1bHQtPmhlYXAgPSBoZWFwOwotICAgIHJlc3VsdC0+b2JqZWN0X3NpemUg
PSBvYmplY3Rfc2l6ZTsKLQotICAgIFBBU19BU1NFUlQocGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25t
ZW50KSk7Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgYWxpZ25t
ZW50KSk7Ci0gICAgcmVzdWx0LT5hbGlnbm1lbnRfc2hpZnQgPSBwYXNfbG9nMihhbGlnbm1lbnQp
OwotICAgIAotICAgIHJlc3VsdC0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gMiAqIFBBU19O
VU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGF0YSwgTlVMTCk7Ci0KLSAgICBpZiAo
cGFnZV9jb25maWcpCi0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3NfcHRyX3N0b3JlKCZyZXN1bHQtPmJpdGZpdF9zaXplX2NsYXNzLCBOVUxMKTsKLSAg
ICBlbHNlIHsKLSAgICAgICAgcGFzX2JpdGZpdF9oZWFwKiBiaXRmaXRfaGVhcDsKLSAgICAgICAg
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogYml0Zml0X3NpemVfY2xhc3M7Ci0KLSAgICAg
ICAgYml0Zml0X2hlYXAgPSBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9iaXRmaXQoaGVhcCwgaGVh
cF9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgICAgICBQQVNfQVNTRVJUKGJpdGZpdF9o
ZWFwKTsKLSAgICAgICAgCi0gICAgICAgIGJpdGZpdF9zaXplX2NsYXNzID0KLSAgICAgICAgICAg
IHBhc19iaXRmaXRfaGVhcF9lbnN1cmVfZ2xvYmFsX3NpemVfY2xhc3MoCi0gICAgICAgICAgICAg
ICAgYml0Zml0X2hlYXAsIHJlc3VsdCwgaGVhcF9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwot
ICAgICAgICAKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzc19wdHJfc3RvcmUoCi0gICAgICAgICAgICAmcmVzdWx0LT5iaXRmaXRfc2l6ZV9jbGFzcywg
Yml0Zml0X3NpemVfY2xhc3MpOwotICAgIH0KLSAgICAKLSAgICBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPm5leHRf
Zm9yX2hlYXAsIE5VTEwpOwotCi0gICAgaWYgKCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0
b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMpCi0gICAgICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihyZXN1bHQp
OwotICAgIGlmICghaGVhcC0+cnVudGltZV9jb25maWctPmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zv
cl9wYXJ0aWFsX3ZpZXdzKQotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cyhyZXN1bHQpOwotCi0gICAgaWYgKHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JjZV9leHBsb2RlCi0gICAgICAgICYmIHBh
Z2VfY29uZmlnCi0gICAgICAgICYmICFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2lz
X3V0aWxpdHkocGFnZV9jb25maWdfa2luZCkpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9leHBsb2RlKHJlc3VsdCwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0KLSAg
ICByZXR1cm4gcmVzdWx0OwotfQotCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRh
KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAot
ICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQotewotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLQotICAgIGRhdGEgPSBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRh
KTsKLQotICAgIGlmIChkYXRhKQotICAgICAgICByZXR1cm4gZGF0YTsKLQotICAgIHBhZ2VfY29u
ZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9y
eS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKLQotICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25k
aXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEp
OwotICAgIGlmIChkYXRhKSB7Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlv
bmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIHJldHVybiBkYXRhOwotICAgIH0K
LQotICAgIGlmIChwYWdlX2NvbmZpZyAmJiBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgPiBw
YWdlX2NvbmZpZy0+YmFzZS5ncmFudWxlX3NpemUpIHsKLSAgICAgICAgZGF0YSA9IHBhc19pbW1v
cnRhbF9oZWFwX2FsbG9jYXRlKAotICAgICAgICAgICAgc2l6ZW9mKHBhc19leHRlbmRlZF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKSwKLSAgICAgICAgICAgICJwYXNfZXh0
ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSIsCi0gICAgICAgICAg
ICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9w
YWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICYoKHBhc19leHRl
bmRlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKilkYXRhKS0+ZnVsbF91
c2VfY291bnRzLCBOVUxMKTsKLSAgICB9IGVsc2UgewotICAgICAgICBkYXRhID0gcGFzX2ltbW9y
dGFsX2hlYXBfYWxsb2NhdGUoCi0gICAgICAgICAgICBzaXplb2YocGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGEpLAotICAgICAgICAgICAgInBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhIiwKLSAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2Nh
dGlvbik7Ci0gICAgfQotCi0gICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9zdG9y
ZSgmZGF0YS0+ZnVsbF9hbGxvY19iaXRzLCBOVUxMKTsKLSAgICBkYXRhLT5vZmZzZXRfZnJvbV9w
YWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCA9IDA7Ci0gICAgZGF0YS0+b2Zmc2V0X2Zyb21f
cGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSAwOwotICAgIGRhdGEtPmZ1bGxf
bnVtX25vbl9lbXB0eV93b3JkcyA9IDA7Ci0gICAgZGF0YS0+YWxsb2NhdG9yX2luZGV4ID0gKHBh
c19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgmZGF0YS0+bmV4dF9mb3JfbGF5b3V0LCBO
VUxMKTsKLQotICAgIHBhc19mZW5jZSgpOwotCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2RhdGFfcHRyX3N0b3JlKCZkaXJlY3RvcnktPmRhdGEsIGRhdGEpOwotCi0g
ICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKLQotICAgIHJldHVybiBkYXRhOwotfQotCi1wYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSoKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyog
cGFnZV9jb25maWc7Ci0KLSAgICBwYWdlX2NvbmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7Ci0g
ICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZyk7Ci0gICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy0+
YmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy0+YmFzZS5ncmFudWxlX3NpemUpOwotCi0gICAg
cmV0dXJuIChwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0
YSopCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0
cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcigKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICAKLSAgICBwYXNfaGVhcF9s
b2NrX2Fzc2VydF9oZWxkKCk7Ci0KLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0K
LSAgICBpZiAoZGF0YS0+YWxsb2NhdG9yX2luZGV4ICE9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJ
TlRfTUFYKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZF9pc191dGlsaXR5KGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRk
KGRpcmVjdG9yeSk7Ci0KLSAgICBQQVNfQVNTRVJUKGRhdGEtPmFsbG9jYXRvcl9pbmRleCA8IChw
YXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKLX0KLQotdm9pZCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cygKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHRlbXBsYXRlX2RpcmVjdG9yeTsKLSAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIHBhZ2VfY29uZmlnX2tpbmQ7Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnX3B0cjsKLSAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZTsKLSAg
ICBzaXplX3QgYWxsb2NfYml0c19ieXRlczsKLSAgICB1bnNpZ25lZCBvZmZzZXQ7Ci0gICAgdW5z
aWduZWQgYmVnaW47Ci0gICAgdW5zaWduZWQgZW5kOwotICAgIHVuc2lnbmVkKiBmdWxsX2FsbG9j
X2JpdHM7Ci0gICAgdW5zaWduZWQgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOwotICAgIHNpemVf
dCBpbmRleDsKLSAgICBwYXNfYWxsb2NhdGlvbl9jb25maWcgYm9vdHN0cmFwX2FsbG9jYXRpb25f
Y29uZmlnOwotCi0gICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwotCi0gICAgZGF0YSA9
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9lbnN1cmVfZGF0YShkaXJlY3Rv
cnksIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIGlmIChkYXRhLT5mdWxsX251bV9ub25fZW1wdHlf
d29yZHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2VfY29uZmlnX2tpbmQgPSBkaXJlY3Rv
cnktPmJhc2UucGFnZV9jb25maWdfa2luZDsKLSAgICBpZiAocGFnZV9jb25maWdfa2luZCA9PSBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpCi0gICAgICAgIHJldHVybjsKLSAg
ICAKLSAgICBwYWdlX2NvbmZpZ19wdHIgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
X2dldF9jb25maWcocGFnZV9jb25maWdfa2luZCk7Ci0gICAgb2JqZWN0X3NpemUgPSBkaXJlY3Rv
cnktPm9iamVjdF9zaXplOwotICAgIAotICAgIHRlbXBsYXRlX2RpcmVjdG9yeSA9IHBhc19leGNs
dXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2dldCgKLSAgICAgICAgJnBhc19leGNsdXNp
dmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2luc3RhbmNlLAotICAgICAgICBwYXNfZXhjbHVz
aXZlX3ZpZXdfdGVtcGxhdGVfbWVtb19rZXlfY3JlYXRlKG9iamVjdF9zaXplLCBwYWdlX2NvbmZp
Z19raW5kKSk7Ci0gICAgaWYgKHRlbXBsYXRlX2RpcmVjdG9yeSkgewotICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogdGVtcGxhdGVfZGF0YTsKLQotICAg
ICAgICB0ZW1wbGF0ZV9kYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2RhdGFfcHRyX2xvYWQoJnRlbXBsYXRlX2RpcmVjdG9yeS0+ZGF0YSk7Ci0gICAgICAgIAotICAg
ICAgICBkYXRhLT5mdWxsX2FsbG9jX2JpdHMgPSB0ZW1wbGF0ZV9kYXRhLT5mdWxsX2FsbG9jX2Jp
dHM7Ci0gICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2Jq
ZWN0ID0KLSAgICAgICAgICAgIHRlbXBsYXRlX2RhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRh
cnlfdG9fZmlyc3Rfb2JqZWN0OwotICAgICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5k
YXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9Ci0gICAgICAgICAgICB0ZW1wbGF0ZV9kYXRhLT5v
ZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKLQotICAgICAg
ICBpZiAocGFnZV9jb25maWdfcHRyLT5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnX3B0ci0+
YmFzZS5ncmFudWxlX3NpemUpIHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YShkaXJlY3RvcnkpLT5mdWxsX3VzZV9jb3Vu
dHMgPQotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVfZGlyZWN0
b3J5KS0+ZnVsbF91c2VfY291bnRzOwotICAgICAgICB9Ci0KLSAgICAgICAgcGFzX2ZlbmNlKCk7
Ci0gICAgICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9Ci0gICAgICAgICAgICB0
ZW1wbGF0ZV9kYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHM7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBwYWdlX2NvbmZpZyA9ICpwYWdlX2NvbmZpZ19wdHI7Ci0gICAgCi0gICAg
YWxsb2NfYml0c19ieXRlcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19i
eXRlcyhwYWdlX2NvbmZpZyk7Ci0gICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2ltbW9ydGFsX2hl
YXBfYWxsb2NhdGVfd2l0aF9tYW51YWxfYWxpZ25tZW50KAotICAgICAgICBhbGxvY19iaXRzX2J5
dGVzLCBzaXplb2YodW5zaWduZWQpLAotICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2RhdGEvZnVsbF9hbGxvY19iaXRzIiwKLSAgICAgICAgcGFzX29iamVjdF9h
bGxvY2F0aW9uKTsKLSAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3JlKCZk
YXRhLT5mdWxsX2FsbG9jX2JpdHMsIGZ1bGxfYWxsb2NfYml0cyk7Ci0gICAgcGFzX3plcm9fbWVt
b3J5KGZ1bGxfYWxsb2NfYml0cywgYWxsb2NfYml0c19ieXRlcyk7Ci0KLSAgICBiZWdpbiA9IHBh
c19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmpl
Y3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFn
ZV9jb25maWcpOwotICAgIGVuZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFn
ZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnKTsKLQotICAgIGRhdGEt
Pm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0gYmVnaW47Ci0gICAg
ZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSBl
bmQ7Ci0KLSAgICBmb3IgKG9mZnNldCA9IGJlZ2luOyBvZmZzZXQgPCBlbmQ7IG9mZnNldCArPSBv
YmplY3Rfc2l6ZSkgewotICAgICAgICBwYXNfYml0dmVjdG9yX3NldCgKLSAgICAgICAgICAgIGZ1
bGxfYWxsb2NfYml0cywKLSAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfaW5kZXhfb2Zfb2JqZWN0
X2F0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkoCi0gICAgICAgICAgICAgICAgb2Zmc2V0LCBw
YWdlX2NvbmZpZy5iYXNlKSwKLSAgICAgICAgICAgIHRydWUpOwotICAgIH0KLSAgICAKLSAgICBm
dWxsX251bV9ub25fZW1wdHlfd29yZHMgPSAwOwotICAgIGZvciAoaW5kZXggPSBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpOyBpbmRleC0tOykg
ewotICAgICAgICBpZiAoZnVsbF9hbGxvY19iaXRzW2luZGV4XSkKLSAgICAgICAgICAgIGZ1bGxf
bnVtX25vbl9lbXB0eV93b3JkcysrOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKGZ1bGxfbnVtX25v
bl9lbXB0eV93b3Jkcyk7Ci0KLSAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBw
YWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkgewotICAgICAgICBwYXNfZXh0ZW5kZWRfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZXh0ZW5kZWRfZGF0YTsKLSAgICAg
ICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIGZ1bGxfdXNlX2NvdW50czsKLSAgICAgICAg
dWludHB0cl90IG51bV9ncmFudWxlczsKLSAgICAgICAgYm9vbCBpbml0aWFsaXplX3Jlc3VsdDsK
LQotICAgICAgICBleHRlbmRlZF9kYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2dldF9leHRlbmRlZF9kYXRhKGRpcmVjdG9yeSk7Ci0KLSAgICAgICAgbnVtX2dyYW51
bGVzID0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgLyBwYWdlX2NvbmZpZy5iYXNlLmdyYW51
bGVfc2l6ZTsKLQotICAgICAgICBmdWxsX3VzZV9jb3VudHMgPSBwYXNfaW1tb3J0YWxfaGVhcF9h
bGxvY2F0ZV93aXRoX21hbnVhbF9hbGlnbm1lbnQoCi0gICAgICAgICAgICBudW1fZ3JhbnVsZXMg
KiBzaXplb2YocGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQpLAotICAgICAgICAgICAgc2l6ZW9m
KHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KSwKLSAgICAgICAgICAgICJwYXNfZXh0ZW5kZWRf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YS9mdWxsX3VzZV9jb3VudHMiLAot
ICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQotICAgICAgICBpbml0aWFsaXpl
X3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMo
Ci0gICAgICAgICAgICBOVUxMLCBkaXJlY3RvcnksIGZ1bGxfdXNlX2NvdW50cywgbnVtX2dyYW51
bGVzLCBwYWdlX2NvbmZpZyk7Ci0KLSAgICAgICAgLyogVGhpcyBzaG91bGQgaGF2ZSBpbml0aWFs
aXplZCBhbGwgb2YgdGhlIGJpdHMuICovCi0gICAgICAgIFBBU19BU1NFUlQoaW5pdGlhbGl6ZV9y
ZXN1bHQpOwotCi0gICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2Nv
dW50X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICZleHRlbmRlZF9kYXRhLT5mdWxsX3VzZV9jb3Vu
dHMsCi0gICAgICAgICAgICBmdWxsX3VzZV9jb3VudHMpOwotICAgIH0KLQotICAgIHBhc19mZW5j
ZSgpOwotICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IGZ1bGxfbnVtX25vbl9l
bXB0eV93b3JkczsKLSAgICBQQVNfQVNTRVJUKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3Jk
cyA9PSBmdWxsX251bV9ub25fZW1wdHlfd29yZHMpOwotCi0gICAgcGFzX2Jvb3RzdHJhcF9mcmVl
X2hlYXBfYWxsb2NhdGlvbl9jb25maWdfY29uc3RydWN0KCZib290c3RyYXBfYWxsb2NhdGlvbl9j
b25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIAotICAgIHBhc19leGNsdXNpdmVfdmlld190
ZW1wbGF0ZV9tZW1vX3RhYmxlX2FkZF9uZXcoCi0gICAgICAgICZwYXNfZXhjbHVzaXZlX3ZpZXdf
dGVtcGxhdGVfbWVtb190YWJsZV9pbnN0YW5jZSwKLSAgICAgICAgZGlyZWN0b3J5LAotICAgICAg
ICBOVUxMLAotICAgICAgICAmYm9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnKTsKLX0KLQotdm9p
ZCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZXhwbG9kZShwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBf
bG9ja19ob2xkX21vZGUpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kX2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpKTsK
LSAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kICE9IHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7Ci0KLSAgICBpZiAoIXBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9lbnN1cmVf
ZGF0YShkaXJlY3RvcnksIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgaWYgKCFwYXNfY29t
cGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmlu
Z19wb29sKSkgewotICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKLQotICAgICAgICBpZiAoIXBhc19jb21wYWN0X2F0b21pY19wYWdl
X3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wpKSB7Ci0gICAg
ICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2w7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIHBvb2wgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgK
LSAgICAgICAgICAgICAgICBzaXplb2YocGFzX3BhZ2Vfc2hhcmluZ19wb29sKSwKLSAgICAgICAg
ICAgICAgICBhbGlnbm9mKHBhc19wYWdlX3NoYXJpbmdfcG9vbCksCi0gICAgICAgICAgICAgICAg
InBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS9iaWFzX3NoYXJpbmdfcG9vbCIs
Ci0gICAgICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQotICAgICAgICAgICAg
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX2NvbnN0cnVjdChwb29sKTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9zdG9yZSgm
ZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wsIHBvb2wpOwotICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21v
ZGUpOwotICAgIH0KLQotICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hh
cmluZ19wb29sX3B0cl9sb2FkKCZkYXRhLT5iaWFzX3NoYXJpbmdfcG9vbCkpOwotfQotCi1wYXNf
YmFzZWxpbmVfYWxsb2NhdG9yKgotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3NlbGVjdF9hbGxvY2F0b3Jfc2xvdygKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxl
X2luaXRpYWxpemVfaWZfbmVjZXNzYXJ5KCk7Ci0gICAgCi0gICAgZm9yICg7OykgewotICAgICAg
ICB1bnNpZ25lZCBhX2luZGV4OwotICAgICAgICB1bnNpZ25lZCBiX2luZGV4OwotICAgICAgICBw
YXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBhX2FsbG9jYXRvcjsKLSAgICAgICAgcGFzX2Jhc2VsaW5l
X2FsbG9jYXRvciogYl9hbGxvY2F0b3I7Ci0gICAgICAgIHVuc2lnbmVkIHNlbGVjdGVkX2luZGV4
OwotICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBzZWxlY3RlZF9hbGxvY2F0b3I7Ci0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2VsZWN0ZWRfZGly
ZWN0b3J5OwotCi0gICAgICAgIHNlbGVjdGVkX2luZGV4ID0gZGlyZWN0b3J5LT5iYXNlbGluZV9h
bGxvY2F0b3JfaW5kZXg7Ci0gICAgICAgIGlmIChzZWxlY3RlZF9pbmRleCA8IFBBU19OVU1fQkFT
RUxJTkVfQUxMT0NBVE9SUykgewotICAgICAgICAgICAgc2VsZWN0ZWRfYWxsb2NhdG9yID0gcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIHNlbGVjdGVkX2luZGV4OwotCi0gICAgICAgICAg
ICBwYXNfbG9ja19sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOwotCi0gICAgICAgICAg
ICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggIT0gc2VsZWN0ZWRfaW5k
ZXgpIHsKLSAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnNlbGVjdGVkX2FsbG9jYXRv
ci0+bG9jayk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoc2VsZWN0ZWRfaW5kZXggPCAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTKQot
ICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggLT0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JT
OwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoc2VsZWN0ZWRfaW5kZXgg
PT0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIGFfaW5kZXggPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2dldF9yYW5kb21f
aW5kZXgoKTsKLSAgICAgICAgICAgIGJfaW5kZXggPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Rh
YmxlX2dldF9yYW5kb21faW5kZXgoKTsKLSAgICAKLSAgICAgICAgICAgIGFfYWxsb2NhdG9yID0g
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGFfaW5kZXg7Ci0gICAgICAgICAgICBiX2Fs
bG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBiX2luZGV4OwotCi0gICAg
ICAgICAgICAvKiBJZiBpdCdzIGNoZWFwIHRvIHN0b3Agb25lIG9mIHRoZXNlIHRoZW4ganVzdCBw
aWNrIGVpdGhlciBvbmUuICovCi0gICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3Jf
aXNfYWN0aXZlKCZhX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IpKQotICAgICAgICAgICAgICAgIHNl
bGVjdGVkX2luZGV4ID0gYV9pbmRleDsKLSAgICAgICAgICAgIGVsc2UgaWYgKCFwYXNfbG9jYWxf
YWxsb2NhdG9yX2lzX2FjdGl2ZSgmYl9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yKSkKLSAgICAgICAg
ICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGJfaW5kZXg7Ci0gICAgICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IGFfdmlldzsKLSAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3IGJfdmlldzsKLQotICAgICAgICAgICAgICAgIGFfdmlldyA9
IGFfYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3OwotICAgICAgICAgICAgICAgIGJfdmlldyA9
IGJfYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3OwotCi0gICAgICAgICAgICAgICAgaWYgKCFh
X3ZpZXcpCi0gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4ID0gYV9pbmRleDsKLSAg
ICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4ID0g
Yl9pbmRleDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFwYXNfY29tcGFyZV9h
bmRfc3dhcF91aW50MTZfd2VhaygmZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiBQ
QVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyArIHNlbGVj
dGVkX2luZGV4KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgIAot
ICAgICAgICBzZWxlY3RlZF9hbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxl
ICsgc2VsZWN0ZWRfaW5kZXg7Ci0gICAgCi0gICAgICAgIHBhc19sb2NrX2xvY2soJnNlbGVjdGVk
X2FsbG9jYXRvci0+bG9jayk7Ci0KLSAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4ID09IHNlbGVjdGVkX2luZGV4KQotICAgICAgICAgICAgcmV0dXJuIHNlbGVj
dGVkX2FsbG9jYXRvcjsKLQotICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0
b3JfaW5kZXggIT0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTICsgc2VsZWN0ZWRfaW5kZXgp
IHsKLSAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5sb2Nr
KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFwYXNf
bG9jYWxfYWxsb2NhdG9yX2lzX251bGwoJnNlbGVjdGVkX2FsbG9jYXRvci0+dS5hbGxvY2F0b3Ip
KSB7Ci0gICAgICAgICAgICBwYXNfbnVtX2Jhc2VsaW5lX2FsbG9jYXRvcl9ldmljdGlvbnMrKzsK
LSAgICAgICAgICAgIHNlbGVjdGVkX2RpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X2dsb2JhbF9zaXplX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yLnZp
ZXcpOwotICAgICAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9kZXRhY2hfZGlyZWN0b3J5
KHNlbGVjdGVkX2FsbG9jYXRvcik7Ci0gICAgICAgICAgICBwYXNfZmVuY2UoKTsKLSAgICAgICAg
ICAgIHNlbGVjdGVkX2RpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gMiAqIFBB
U19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKLSAgICAgICAgfQotCi0gICAgICAgIHBhc19iYXNl
bGluZV9hbGxvY2F0b3JfYXR0YWNoX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3IsIGRpcmVj
dG9yeSk7Ci0KLSAgICAgICAgZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSBz
ZWxlY3RlZF9pbmRleDsKLQotICAgICAgICByZXR1cm4gc2VsZWN0ZWRfYWxsb2NhdG9yOwotICAg
IH0KLX0KLQotc3RhdGljIHZvaWQgdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3RfbG9vcF9oZWFk
X2NhbGxiYWNrKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZ2xvYmFsX3NpemVfZGlyZWN0b3J5
OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwot
ICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogYmlhc19wb29sOwotCi0gICAgUEFTX1RFU1RJTkdf
QVNTRVJUKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2tpbmQpOwotICAgIAotICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeSA9
IChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLQotICAg
IGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9h
ZCgmZ2xvYmFsX3NpemVfZGlyZWN0b3J5LT5kYXRhKTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAg
IHJldHVybjsKLSAgICAKLSAgICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9z
aGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICAKLSAg
ICBpZiAoIWJpYXNfcG9vbCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFBBU19URVNUSU5H
X0FTU0VSVCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9oZWFwX2xv
Y2tfaG9sZF9tb2RlKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCkKLSAgICAgICAgPT0gcGFz
X2xvY2tfaXNfbm90X2hlbGQpOwotICAgIAotICAgIHBhc19iaWFzX3BhZ2Vfc2hhcmluZ19wb29s
X3Rha2UoYmlhc19wb29sKTsKLX0KLQotc3RhdGljIHBhc19zZWdyZWdhdGVkX3ZpZXcgdGFrZV9m
aXJzdF9lbGlnaWJsZV9kaXJlY3RfY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKAotICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQotewotICAgIHN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2JhbF9zaXplX2RpcmVjdG9yeTsKLSAgICBwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXc7Ci0gICAgcGFzX2hlYXBfcnVudGltZV9jb25maWcqIHJ1bnRpbWVf
Y29uZmlnOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+ZGlyZWN0b3J5LT5kaXJl
Y3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZCk7
Ci0gICAgCi0gICAgZ2xvYmFsX3NpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSopY29uZmlnLT5kaXJlY3Rvcnk7Ci0KLSAgICBydW50aW1lX2NvbmZp
ZyA9IGdsb2JhbF9zaXplX2RpcmVjdG9yeS0+aGVhcC0+cnVudGltZV9jb25maWc7Ci0KLSAgICBp
ZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRf
Zm9yX3BhcnRpYWxfdmlld3MpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3ZpZXdzKGdsb2JhbF9zaXplX2RpcmVjdG9yeSk7Ci0K
LSAgICBpZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVf
Ym91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihnbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkpOwotICAgIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKGdsb2JhbF9zaXplX2RpcmVjdG9yeSkpIHsK
LSAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9u
X251bGwoCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19jcmVhdGUo
Z2xvYmFsX3NpemVfZGlyZWN0b3J5LCBjb25maWctPmluZGV4KSk7Ci0gICAgICAgIGlmICh2ZXJi
b3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCIlcDogY3JlYXRlZCBleGNsdXNpdmUgJXAuXG4i
LAotICAgICAgICAgICAgICAgICAgICBnbG9iYWxfc2l6ZV9kaXJlY3RvcnksIHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAg
ICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXdfbm9uX251bGwoCi0g
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKGdsb2JhbF9zaXpl
X2RpcmVjdG9yeSwgY29uZmlnLT5pbmRleCkpOwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAg
ICAgICAgICAgcGFzX2xvZygiJXA6IGNyZWF0ZWQgcGFydGlhbCAlcC5cbiIsCi0gICAgICAgICAg
ICAgICAgICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
cHRyKHZpZXcpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiB2aWV3OwotfQotCi1w
YXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90
YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVjdCgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGdsb2JhbF9zaXplX2RpcmVjdG9yeSkKLXsKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmln
IGNvbmZpZzsKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0KLSAgICBQQVNfVEVTVElO
R19BU1NFUlQoCi0gICAgICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZp
Z19raW5kICE9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7Ci0KLSAgICBk
aXJlY3RvcnkgPSAmZ2xvYmFsX3NpemVfZGlyZWN0b3J5LT5iYXNlOwotCi0gICAgdmlldyA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbCgKLSAg
ICAgICAgZGlyZWN0b3J5LCAmY29uZmlnLAotICAgICAgICB0YWtlX2ZpcnN0X2VsaWdpYmxlX2Rp
cmVjdF9sb29wX2hlYWRfY2FsbGJhY2ssCi0gICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGVfZGly
ZWN0X2NyZWF0ZV9uZXdfdmlld19jYWxsYmFjayk7Ci0KLSAgICBpZiAodmVyYm9zZSkgewotICAg
ICAgICBwYXNfbG9nKCJUYWtpbmcgZWxpZ2libGUgdmlldyAlcCAoJXMpLlxuIiwKLSAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyksCi0gICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9zdHJpbmcocGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfa2luZCh2aWV3KSkpOwotICAgIH0KLQotICAgIFBBU19URVNUSU5HX0FTU0VSVCghUEFT
X1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHZpZXcpLCBlbGlnaWJs
ZSkpOwotICAgIAotICAgIHJldHVybiB2aWV3OwotfQotCi1wYXNfc2VncmVnYXRlZF92aWV3IHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNf
bWFnYXppbmUqIG1hZ2F6aW5lKQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogYmlhc19wb29s
OwotICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQ7Ci0gICAgdW5z
aWduZWQgbWFnYXppbmVfaW5kZXg7Ci0KLSAgICBQQVNfVEVTVElOR19BU1NFUlQoZGlyZWN0b3J5
LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQgIT0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZF9udWxsKTsKLQotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
Y29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24oZGlyZWN0b3J5KSkKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2V4cGxvZGUoZGlyZWN0b3J5LCBwYXNf
bG9ja19pc19ub3RfaGVsZCk7Ci0KLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Ci0KLSAgICBpZiAo
IWRhdGEgfHwgIW1hZ2F6aW5lKQotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0KGRpcmVjdG9yeSk7Ci0K
LSAgICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRy
X2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICBpZiAoIWJpYXNfcG9vbCkKLSAg
ICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2Zp
cnN0X2VsaWdpYmxlX2RpcmVjdChkaXJlY3RvcnkpOwotCi0gICAgbWFnYXppbmVfaW5kZXggPSBt
YWdhemluZS0+bWFnYXppbmVfaW5kZXg7Ci0KLSAgICBwYXJ0aWNpcGFudCA9IHBhc19wYWdlX3No
YXJpbmdfcG9vbF9nZXRfcGFydGljaXBhbnQoYmlhc19wb29sLCBtYWdhemluZV9pbmRleCk7Ci0g
ICAgaWYgKCFwYXJ0aWNpcGFudCkgewotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0KLSAgICAgICAgYmlhc2luZ19kaXJlY3Rvcnkg
PSBOVUxMOwotICAgICAgICAKLSAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0gICAgICAg
IHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFz
X3Bvb2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICAgICAgaWYgKCFwYXJ0aWNpcGFudCkKLSAgICAg
ICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rv
cnlfY3JlYXRlKGRpcmVjdG9yeSwgbWFnYXppbmVfaW5kZXgpOwotICAgICAgICBwYXNfaGVhcF9s
b2NrX3VubG9jaygpOwotCi0gICAgICAgIGlmICghcGFydGljaXBhbnQpIHsKLSAgICAgICAgICAg
IHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFz
X3Bvb2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoCi0gICAgICAg
ICAgICAgICAgcGFydGljaXBhbnQgPT0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVh
dGUoCi0gICAgICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNl
LCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgCi0gICAgUEFTX0FTU0VSVChwYXNfcGFnZV9zaGFyaW5nX3BhcnRp
Y2lwYW50X2dldF9raW5kKHBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAgPT0gcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSk7Ci0gICAgCi0gICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCi0g
ICAgICAgIHBhc191bndyYXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICAgICAg
ICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFudCkpLAot
ICAgICAgICBkaXJlY3RvcnkpOwotfQotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgcGFzX2RlZmVy
cmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nOwotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlOwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBteV9w
YWdlX2NvbmZpZ19wdHI7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHJl
c3VsdDsKLX0gdGFrZV9sYXN0X2VtcHR5X2RhdGE7Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSB1bnNpZ25lZAotdGFrZV9sYXN0X2VtcHR5X3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVs
KAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCBzZWdtZW50
LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQot
ewotICAgIHRha2VfbGFzdF9lbXB0eV9kYXRhKiBkYXRhOwotCi0gICAgZGF0YSA9IGNvbmZpZy0+
YXJnOwotCi0gICAgcmV0dXJuIHNlZ21lbnQuZW1wdHlfYml0czsKLX0KLQotc3RhdGljIGJvb2wK
LXRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
dGVyYXRlX2NvbmZpZyogY29uZmlnKQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKLQotICAgIC8qIFdlIHB1dCBvdXIgdGFrZV9sYXN0X2VtcHR5IGxvZ2ljIGluIGNv
bnNpZGVyX3ZpZXcgYmVjYXVzZSBzaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbAotICAgICAg
IGNhbm5vdCByZWFsbHkgdGVsbCBpZiBhIHBhZ2UgY2FuIGJlIHRha2VuLiAqLwotCi0gICAgdGFr
ZV9sYXN0X2VtcHR5X2RhdGEqIGRhdGE7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBk
aXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXpl
X2RpcmVjdG9yeTsKLSAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2c7
Ci0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGU7Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcqIG15X3BhZ2VfY29uZmlnX3B0cjsKLSAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBteV9wYWdlX2NvbmZpZzsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlldyBnZW5lcmljX3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcqIHZpZXc7Ci0gICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKLSAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlKiBwYWdlOwotICAgIGJvb2wgZGlkX3Rha2VfYml0OwotICAgIHBhc19sb2Nr
KiBvd25lcnNoaXBfbG9jazsKLQotICAgIGRpcmVjdG9yeSA9IGNvbmZpZy0+ZGlyZWN0b3J5Owot
ICAgIGluZGV4ID0gY29uZmlnLT5pbmRleDsKLQotICAgIGRpZF90YWtlX2JpdCA9IFBBU19TRUdS
RUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5LCBmYWxzZSk7
Ci0gICAgCi0gICAgaWYgKCFkaWRfdGFrZV9iaXQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHNpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSopZGlyZWN0b3J5OwotICAgIGdlbmVyaWNfdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9nZXQoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92
aWV3X2lzX2V4Y2x1c2l2ZShnZW5lcmljX3ZpZXcpKTsKLSAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZXhjbHVzaXZlKGdlbmVyaWNfdmlldyk7Ci0gICAgaGVsZF9sb2NrID0gTlVM
TDsKLSAgICBkYXRhID0gY29uZmlnLT5hcmc7Ci0KLSAgICBteV9wYWdlX2NvbmZpZ19wdHIgPSBk
YXRhLT5teV9wYWdlX2NvbmZpZ19wdHI7Ci0gICAgaGVhcF9sb2NrX2hvbGRfbW9kZSA9IGRhdGEt
PmhlYXBfbG9ja19ob2xkX21vZGU7Ci0gICAgZGVjb21taXRfbG9nID0gZGF0YS0+ZGVjb21taXRf
bG9nOwotICAgIG15X3BhZ2VfY29uZmlnID0gKm15X3BhZ2VfY29uZmlnX3B0cjsKLSAgICAKLSAg
ICBpZiAodmVyYm9zZSkKLSAgICAgICAgcGFzX2xvZygiJXA6IGNvbnNpZGVyaW5nIGVtcHR5IGlu
ZGV4ICV6dSwgdmlldyA9ICVwLlxuIiwgZGlyZWN0b3J5LCBpbmRleCwgdmlldyk7Ci0KLSAgICBp
ZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykp
Ci0gICAgICAgIG93bmVyc2hpcF9sb2NrID0gcGFzX2xvY2tfZm9yX3N3aXRjaF9jb25kaXRpb25h
bGx5KCZwYXNfaGVhcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICBlbHNlCi0gICAg
ICAgIG93bmVyc2hpcF9sb2NrID0gJnZpZXctPm93bmVyc2hpcF9sb2NrOwotCi0gICAgcGFzX2xv
Y2tfc3dpdGNoKCZoZWxkX2xvY2ssIG93bmVyc2hpcF9sb2NrKTsKLSAgICAKLSAgICBpZiAocGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpCi0gICAg
ICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKLSAgICAKLSAgICBpZiAoIXBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZpZXctPm93bmVy
c2hpcF9raW5kKSkgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2co
Im5vdCBvd25lZC5cbiIpOwotICAgICAgICAKLSAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9j
a19hbmRfcmV0dXJuX2ZhbHNlOwotICAgIH0KLSAgICAKLSAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9mb3JfYm91bmRhcnkodmlldy0+cGFnZV9ib3VuZGFyeSwgbXlfcGFnZV9jb25maWcp
OwotICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlw
X2tpbmRfaXNfYmlhc2VkKHZpZXctPm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgIHBhc19sb2coImV4Y2x1c2l2ZSBtb2RlLlxuIik7Ci0gICAgICAg
IAotICAgICAgICBpZiAoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9y
eSwgaW5kZXgsIGVsaWdpYmxlLCBmYWxzZSkpCi0gICAgICAgICAgICBnb3RvIHJlbGVhc2VfaGVs
ZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7Ci0gICAgICAgIAotICAgICAgICAvKiBJZiB3ZSBzdG9s
ZSBlbGlnaWJpbGl0eSB0aGVuIHRoZSBleGNsdXNpdmUgdmlldyBjYW5ub3QgYmUgZWxpZ2liaWxl
LiAqLwotICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19v
d25lcnNoaXBfa2luZF9pc19iaWFzZWQodmlldy0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAg
Ci0gICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tp
bmRfaXNfb3duZWQodmlldy0+b3duZXJzaGlwX2tpbmQpKSB7Ci0gICAgICAgICAgICBib29sIHJl
c3VsdDsKLSAgICAgICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3
X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAg
ICAgICBQQVNfQVNTRVJUKHJlc3VsdCk7Ci0gICAgICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9s
b2NrX2FuZF9yZXR1cm5fZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIC8qIEF3
a3dhcmRseSwgdGhpcyBpcyB0aGUgY29ycmVjdCBwbGFjZSB0byBkbyB0aGUgcXVhbGlmaWVzLWZv
ci1kZWNvbW1pdCBjaGVjay4gU2VlIGNvbW1lbnQKLSAgICAgICAgICAgYmVsb3csIGluIHRoZSBi
aWFzaW5nIGNhc2UsIGFib3ZlIHRoZSBzYW1lIGNoZWNrLiBUaGVuIHlvdSdsbCB1bmRlcnN0YW5k
IHdoeSB3ZSBkbyB0aGlzCi0gICAgICAgICAgIGNoZWNrIGhlcmUuICovCi0gICAgICAgIGlmICgh
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15X3BhZ2Vf
Y29uZmlnKSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFz
X2xvZygid2FzIG5vdCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4
KTsKLSAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZTsK
LSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgb3du
aW5nX3ZpZXc7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2luZ192
aWV3OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIG93bmluZ19kaXJlY3Rvcnk7
Ci0gICAgICAgIHNpemVfdCBpbmRleF9pbl9vd25pbmc7Ci0gICAgICAgIGJvb2wgcmVzdWx0Owot
ICAgICAgICAKLSAgICAgICAgLyogVGhpcyBpcyB0aGUgb3duZWQrYmlhc2VkIGNhc2UuICovCi0g
ICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19v
d25lcnNoaXBfa2luZF9pc19vd25lZCh2aWV3LT5vd25lcnNoaXBfa2luZCkpOwotICAgICAgICBQ
QVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlw
X2tpbmRfaXNfYmlhc2VkKHZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0KLSAgICAgICAgb3duaW5n
X3ZpZXcgPSBwYWdlLT5vd25lcjsKLQotICAgICAgICAvKiBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0
IGlmIHdlIGRldGVjdCBjZXJ0YWluIGtpbmRzIG9mIGluY29uc2lzdGVudCBzdGF0ZSB0aGVuIGl0
IGNvdWxkIGJlCi0gICAgICAgICAgIHRoYXQgd2UncmUgcmFjaW5nIHdpdGggc29tZW9uZSB0cnlp
bmcgdG8gdXNlIHRoaXMgdmlldyBmb3IgYWxsb2NhdGlvbiAtIGluIHBhcnRpY3VsYXIsCi0gICAg
ICAgICAgIGJpYXNpbmcgb3IgdW5iaWFzaW5nLiBJbiB0aGF0IGNhc2UsIHdlIGp1c3QgbG9zZSB0
aGUgcmFjZS4KLSAgICAgICAgCi0gICAgICAgICAgIFRoaXMgaXMgZmluZSBiZWNhdXNlIGluIGVh
Y2ggb2YgdGhvc2UgcmFjZXMsIHdlIGFyZW4ndCBmb3JnZXR0aW5nIGFib3V0IHRoZSBlbXB0eSBi
aXQ6Ci0gICAgICAgIAotICAgICAgICAgICAtIFdlIGNvdWxkIGJlIHJhY2luZyB3aXRoIGJpYXNp
bmc6IHRoZSBwYWdlLT5vd25lciBoYXNuJ3QgeWV0IGJlZW4gc2V0IHRvIHRoZSBiaWFzaW5nIHZp
ZXcsCi0gICAgICAgICAgICAgYnV0IHRoZSBvd25lcnNoaXAga2luZCBoYXMgYWxyZWFkeSBiZWVu
IHNldCB0byBiaWFzZWQuIEluIHRoYXQgY2FzZSwgaXQncyBPSyB0byBiYWlsIG91dAotICAgICAg
ICAgICAgIGV2ZW4gdGhvdWdoIHdlJ3ZlIGFscmVhZHkgdGFrZW4gdGhlIGVtcHR5IGJpdCwgc2lu
Y2UgYmlhc2luZyBoYXBwZW5zIG9uIGEgcGF0aC1vZi1uby1yZXR1cm4KLSAgICAgICAgICAgICB0
byBhbGxvY2F0aW5nIHNvbWUgb2JqZWN0IGluIHRoZSBwYWdlLCB3aGljaCB3aWxsIGNhdXNlIGl0
IHRvIGJlY29tZSBub24tZW1wdHkuIEFsc28sCi0gICAgICAgICAgICAgYWxsb2NhdGlvbiBtZWFu
cyB0aGF0IHdlIHdpbGwgaGF2ZSB0byBkaWRfc3RvcF9hbGxvY2F0aW5nLCB3aGljaCBzZXRzIHRo
ZSBlbXB0eSBiaXQgYWdhaW4KLSAgICAgICAgICAgICBpZiB0aGUgcGFnZSBpcyBlbXB0eSBhdCB0
aGF0IHBvaW50LgotICAgICAgICAKLSAgICAgICAgICAgLSBXZSBjb3VsZCBiZSByYWNpbmcgd2l0
aCB1bmJpYXNpbmc6IGZvciBub3csIHRoaW5ncyBhcmUgZmluZSwgc2luY2UgaWYgd2Ugc2VlIHRo
YXQgdGhlCi0gICAgICAgICAgICAgb3duZXJzaGlwX2tpbmQgaXMgYmlhc2VkIHdoaWxlIGhvbGRp
bmcgdGhlIG93bmVyc2hpcCBsb2NrLCB0aGVuIGl0IG11c3QgbWVhbiB0aGF0IHdlJ3JlCi0gICAg
ICAgICAgICAgcnVubmluZyBiZWZvcmUgYW55IHVuYmlhc2luZyBoYXBwZW5lZCwgb3Igd2UgYXJl
IHJpZ2h0IHBhc3QgdGhlIHBvaW50IHdoZXJlIHVuYmlhc2luZyB3b3VsZAotICAgICAgICAgICAg
IGhhdmUgdGFrZW4gZWxpZ2liaWxpdHkgYnV0IGJlZm9yZSB0aGUgcG9pbnQgd2hlcmUgaXQgd291
bGQgZ3JhYiB0aGUgb3duZXJzaGlwIGxvY2suIFRoaXMKLSAgICAgICAgICAgICBtZWFucyB0aGF0
IHdlIGNvdWxkIGZhaWwgdG8gdGFrZSB0aGUgZWxpZ2libGUgYml0IGhlcmUuIEJ1dCB0aGVuIHVu
Ymlhc2luZyB3b3VsZCBzZXQgdGhlCi0gICAgICAgICAgICAgZW1wdHkgYml0IGlmIGl0IG5lZWRz
IHRvIGJlIHNldC4gV2hlbiB3ZSBzd2l0Y2ggbG9ja3MgdG8gdGhlIHBhZ2UgbG9jaywgdGhlbiB3
ZSB3b3VsZCBoYXZlCi0gICAgICAgICAgICAgYWxyZWFkeSBtYXJrZWQgdGhlIGV4Y2x1c2l2ZSB2
aWV3IGFzIG5vdCBiaWFzZWQsIHdoaWNoIHdvdWxkIGNhdXNlIGFueSBvdGhlciB1bmJpYXNpbmcK
LSAgICAgICAgICAgICBhdHRlbXB0IHRvIGdpdmUgdXAuICovCi0KLSAgICAgICAgaWYgKCFwYXNf
c2VncmVnYXRlZF92aWV3X2lzX3NvbWVfYmlhc2luZyhvd25pbmdfdmlldykpIHsKLSAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIm93bmluZyB2aWV3IGlz
IG5vdCBzb21lIGJpYXNpbmcuXG4iKTsKLSAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xv
Y2tfYW5kX3JldHVybl9mYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJib3NlKQot
ICAgICAgICAgICAgcGFzX2xvZygib3duaW5nIHZpZXcgaXMgYmlhc2luZy5cbiIpOwotICAgICAg
ICAKLSAgICAgICAgYmlhc2luZ192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2lu
Zyhvd25pbmdfdmlldyk7Ci0KLSAgICAgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaWFz
aW5nIGNvZGUgaGFzIGFscmVhZHkgYXNzb2NpYXRlZCB0aGUgYmlhc2luZyB2aWV3IHdpdGggdGhl
IGV4Y2x1c2l2ZQotICAgICAgICAgICB2aWV3LCBidXQgaGFzbid0IHlldCB0b2xkIHRoZSBwYWdl
LiBXZSBjb3VsZCBzZWUgdGhhdCBzaW5jZSB0aGUgb3duZXJzaGlwIGxvY2sgd291bGQgYmUKLSAg
ICAgICAgICAgZHJvcHBlZCBieSB0aGVuLiBCdXQgaW4gdGhhdCBjYXNlLCB0aGUgcGFnZSB3b3Vs
ZCB0aGluayB0aGF0IGl0cyBvd25lciBpcyBleGNsdXNpdmUsIG5vdAotICAgICAgICAgICBiaWFz
aW5nLiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHVuYmlhc2luZyBjb2RlIGhhcyBhbHJlYWR5IGRp
c2Fzc29jaWF0ZWQgdGhlIGJpYXNpbmcgYW5kCi0gICAgICAgICAgIGV4Y2x1c2l2ZSB2aWV3cywg
YnV0IGhhc24ndCB5ZXQgdG9sZCB0aGUgcGFnZS4gV2UgY291bGQgc2VlIHRoYXQgc2luY2UgdGhl
IG93bmVyc2hpcCBsb2NrCi0gICAgICAgICAgIHdvdWxkIGJlIGRyb3BwZWQgYnkgdGhlbi4gQnV0
IGluIHRoYXQgY2FzZSwgd2Ugd291bGRuJ3QgaGF2ZSBlbmRlZCB1cCBoZXJlLiBBbmQgaXQncyBu
b3QKLSAgICAgICAgICAgcG9zc2libGUgZm9yIGJpYXNpbmcgYW5kIHVuYmlhc2luZyB0byBpbnRl
cmxlYXZlLiBCaWFzaW5nIHJ1bnMgYWZ0ZXIgYm90aCB0aGUgYmlhc2luZyBhbmQKLSAgICAgICAg
ICAgZXhjbHVzaXZlIHZpZXcgYXJlIGluZWxpZ2libGUuIFVuYmlhc2luZyBydW5zIHdoaWxlIHRo
ZSBleGNsdXNpdmUgdmlldyBpcyBzdGlsbCBpbmVsaWdpYmxlCi0gICAgICAgICAgIChieSB2aXJ0
dWUgb2YgdGhlIHZpZXcgYmVpbmcgYmlhc2VkIHN0aWxsKSBhbmQgdGhlIGJpYXNpbmcgdmlldyBp
cyBtYWRlIGluZWxpZ2libGUgYWxzby4KLSAgICAgICAgICAgVGhlcmVmb3JlLCB0aGV5IGNhbm5v
dCBydW4gYXQgdGhlIHNhbWUgdGltZSBmb3IgZWl0aGVyIHRoZSBzYW1lIGV4Y2x1c2l2ZSB2aWV3
IChhbmQgc28gcGFnZSkKLSAgICAgICAgICAgb3IgdGhlIHNhbWUgYmlhc2luZyB2aWV3LiAqLwot
ICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X3B0cl9sb2FkKCZiaWFzaW5nX3ZpZXctPmV4Y2x1c2l2ZSkKLSAgICAgICAgICAgICAg
ICAgICA9PSB2aWV3KTsKLQotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19s
b2coImhhdmUgcmlnaHQgZXhjbHVzaXZlLlxuIik7Ci0gICAgICAgIAotICAgICAgICBvd25pbmdf
ZGlyZWN0b3J5ID0KLSAgICAgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5X3B0cl9sb2FkKCZiaWFzaW5nX3ZpZXctPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAg
ICAgIGluZGV4X2luX293bmluZyA9IGJpYXNpbmdfdmlldy0+aW5kZXg7Ci0gICAgICAgIAotICAg
ICAgICBpZiAoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKAotICAgICAgICAgICAg
ICAgIG93bmluZ19kaXJlY3RvcnksIGluZGV4X2luX293bmluZywgZWxpZ2libGUsIGZhbHNlKSkg
ewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiZGlk
IG5vdCBnZXQgZWxpZ2liaWxpdHkuXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZ290
byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOwotICAgICAgICB9Ci0gICAgICAg
IAotICAgICAgICAvKiBCZWZvcmUgd2UgdW5iaWFzLCBpdCdzIGltcG9ydGFudCB0byB1bmRlcnN0
YW5kIGlmIHRoZSBwYWdlIHdvdWxkIHF1YWxpZnkgZm9yIGRlY29tbWl0Ci0gICAgICAgICAgIGF0
IGFsbC4gTGlrZSwgd2UgY2FuJ3QgdW5iaWFzIGFuZCB0aGVuIGRvIHRoaXMgY2hlY2sgLSBpZiB3
ZSBkaWQsIHRoZW4gYW55IGJpYXNlZCBwYWdlCi0gICAgICAgICAgIHRoYXQgaGFkIGV2ZXIgZ29u
ZSBlbXB0eSB3b3VsZCBiZSB1bmJpYXNlZCB0aGUgZmlyc3QgdGltZSB0aGUgc2NhdmVuZ2VyIHJh
bi4gQnV0IGl0J3MKLSAgICAgICAgICAgY29vbCAtLSB3ZSBjYW4gZG8gdGhpcy4gSGVyZSdzIHRo
ZSByZWFzb25pbmcuCi0gICAgICAgICAgIAotICAgICAgICAgICBBdCB0aGlzIHBvaW50LCB3ZSBj
YW4gbWFrZSBhIGZpbmFsIGp1ZGdlbWVudCBzaW5jZSB3ZToKLSAgICAgICAgICAgCi0gICAgICAg
ICAgIC0gSG9sZCB0aGUgb3duZXJzaGlwIGxvY2sgYW5kIGhhdmUgY29uZmlybWVkIHRoYXQgdGhl
IHBhZ2UgaXMgc3RpbGwgb3duZWQuIFNvLCB3ZQotICAgICAgICAgICBjYW4gcmVhZCB0aGUgcGFn
ZS4KLSAgICAgICAgICAgCi0gICAgICAgICAgIC0gVGhhdCBwYWdlIGlzIGluZWxpZ2libGUuIFNv
LCBpZiBpdCBoYWQgYmVlbiBlbXB0eSBhdCB0aGUgbW9tZW50IHdlIG1hZGUgaXQKLSAgICAgICAg
ICAgaW5lbGlnaWJsZSB0aGVuIGl0IGNhbid0IHBvc3NpYmx5IGZpbGwgdXAgdW50aWwgd2UgbWFr
ZSBpdCBlbGlnaWJsZSBhZ2Fpbi4gT25seQotICAgICAgICAgICBkZWFsbG9jYXRpb25zIGNhbiBo
YXBwZW4uIFNvLCBpdCBfaXNfIHBvc3NpYmxlIGZvciB1cyB0byBub3cgdGhpbmsgdGhhdCB0aGUg
cGFnZSBpcwotICAgICAgICAgICBub3QgZW1wdHkgYnV0IHRoZSBwYWdlIGNhbiBiZWNvbWUgZW1w
dHkgcmlnaHQgYWZ0ZXIgdGhhdC4gRm9ydHVuYXRlbHksIGlmIHRoYXQKLSAgICAgICAgICAgaGFw
cGVucywgdGhlIGVtcHR5IGJpdCB3aWxsIGdldCBzZXQgYWdhaW4uICovCi0gICAgICAgIGlmICgh
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15X3BhZ2Vf
Y29uZmlnKSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFz
X2xvZygid2FzIG5vdCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKLSAgICAgICAgICAgICAg
ICBvd25pbmdfZGlyZWN0b3J5LCBpbmRleF9pbl9vd25pbmcpOwotICAgICAgICAgICAgZ290byBy
ZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICAvKiBVbmJpYXMuIFRoaXMgZW5zdXJlcyB0aGF0IHdoZW4gdGhlIGJpYXNpbmcgZGly
ZWN0b3J5IHRyaWVzIHRvIGFsbG9jYXRlIG91dCBvZgotICAgICAgICAgICB0aGlzIGJpYXNpbmcg
dmlldywgaXQgZ2V0cyBhIGNoYW5jZSB0byB0YWtlX2ZpcnN0X2VsaWdpYmxlIGZyb20gdGhpcyBn
bG9iYWwgc2l6ZQotICAgICAgICAgICBkaXJlY3RvcnkgKHdoaWNoIGhvcGVmdWxseSBnaXZlcyBp
dCBhIHZpZXcgdGhhdCBpc24ndCBkZWNvbW1pdHRlZCkuICovCi0gICAgICAgIHZpZXctPm93bmVy
c2hpcF9raW5kID0KLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293
bmVyc2hpcF9raW5kX3dpdGhfYmlhc2VkKAotICAgICAgICAgICAgICAgIHZpZXctPm93bmVyc2hp
cF9raW5kLCBmYWxzZSk7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNf
bG9nKCJ2aWV3ICVwIGhhcyBvd25lcnNoaXAga2luZCA9ICVzIGR1ZSB0byB1bmJpYXNpbmcgaW4g
dGFrZV9sYXN0X2VtcHR5XG4iLAotICAgICAgICAgICAgICAgICAgICB2aWV3LAotICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9n
ZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQp
KTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0
Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCAqbXlfcGFnZV9jb25maWdfcHRyKTsKLSAgICAgICAg
Ci0gICAgICAgIC8qIElmIHRoaXMgZXhjbHVzaXZlIGFscmVhZHkgaGFkIGEgcGFnZSwgdGhlbiB0
aGUgcGFnZSBtdXN0IGJlIHNheWluZyB0aGF0IGl0J3MKLSAgICAgICAgICAgZWxpZ2libGUuIFNv
IGl0IGlzX2JpYXNpbmcsIG5vdCBtZXJlbHkgaXNfc29tZV9iaWFzaW5nLiAqLwotICAgICAgICBQ
QVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2luZyhwYWdlLT5vd25lcikpOwot
ICAgICAgICAKLSAgICAgICAgcGFnZS0+b3duZXIgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19hc192aWV3X25vbl9udWxsKHZpZXcpOwotICAgICAgICAKLSAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKCZiaWFzaW5nX3Zp
ZXctPmV4Y2x1c2l2ZSwgTlVMTCk7Ci0gICAgICAgIAotICAgICAgICByZXN1bHQgPSBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAotICAg
ICAgICAgICAgb3duaW5nX2RpcmVjdG9yeSwgaW5kZXhfaW5fb3duaW5nKTsKLSAgICAgICAgUEFT
X0FTU0VSVChyZXN1bHQpOwotICAgIH0KLSAgICAKLSAgICAvKiBUaGlzIGhhcyBhIHZlcnkgc2hv
cnQgcmFjZSB0aGF0IGNhdXNlcyB0aGUgZGlyZWN0b3J5IHRvIHBvc3NpYmx5IHdhc3RlIG1lbW9y
eTogaWYKLSAgICAgICBkdXJpbmcgdGhpcyBicmllZiB3aW5kb3cgd2UgaGF2ZSBzb21lb25lIHRy
eWluZyB0byBmaW5kIGFuIGVsaWdpYmxlIHBhZ2UsIHRoZXkgbWF5Ci0gICAgICAgZW5kIHVwIGFs
bG9jYXRpbmcgYSBuZXcgb25lLgotICAgICAgIAotICAgICAgIEJ1dCB3ZSBkZWxpYmVyYXRlbHkg
a2VlcCB0aGUgZHVyYXRpb24gb2YgdGhpcyByYWNlIHdpbmRvdyBzaG9ydC4gV2UgbWFrZSB0aGUg
cGFnZQotICAgICAgIGluZWxpZ2libGUgb25seSBkdXJpbmcgdGhlIHRpbWUgaXQgdGFrZXMgdXMg
dG8gZmlndXJlIG91dCBob3cgdG8gZGVjb21taXQgaXQgYW5kIHRvCi0gICAgICAgYWNxdWlyZSB0
aGUgY29tbWl0IGxvY2suIFRoZSBjb21taXQgbG9jayBzaG91bGQgYmUgdHJpdmlhbGx5IGF2YWls
YWJsZSBoZXJlLCBzbwotICAgICAgIHRoYXQncyBqdXN0IGEgQ0FTLiBBZnRlciB0aGF0LCB0aGUg
cGFnZSBpcyBtYWRlIGVpdGhlciBlbGlnaWJsZSBvciBkZWNvbW1pdHRlZC4KLSAgICAgICBFaXRo
ZXIgd2F5LCBpZiBpdCdzIHRoZSBmaXJzdCBlbGlnaWJsZSwgc29tZW9uZSB3aWxsIHRyeSB0byB1
c2UgaXQuIEF0IHRoYXQgcG9pbnQsCi0gICAgICAgaWYgd2UgYXJlIG5vdCBkb25lLCB0aGV5IHdp
bGwgd2FpdCBmb3IgdXMgc2luY2Ugd2UgaG9sZCB0aGUgY29tbWl0IGxvY2suICovCi0KLSAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ssIG15X3BhZ2Vf
Y29uZmlnKTsKLQotICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5
KG15X3BhZ2VfY29uZmlnKSkgewotICAgICAgICAvKiBUaGUgdXRpbGl0eSBoZWFwIHJlcXVpcmVz
IHVzIHRvIGhvbGQgdGhlIGhlYXAgbG9jayBhbnl0aW1lIHdlJ2QgaG9sZCB0aGUgb3duZXJzaGlw
LCBjb21taXQsCi0gICAgICAgICAgIG9yIHBhZ2UgbG9ja3MuIEl0IGp1c3Qgc28gaGFwcGVucyB0
aGF0IHdlIHdlcmUgYWxyZWFkeSBob2xkaW5nIHRoZSBoZWFwIGxvY2ssIGFuZAotICAgICAgICAg
ICBwYWdlX3N3aXRjaF9sb2NrIGRvZXMgbm90aGluZyBmb3IgdXRpbGl0eS4gU28gd2Ugc2hvdWxk
IHN0aWxsIGJlIGhvbGRpbmcgdGhlIGhlYXAgbG9jay4gKi8KLSAgICAgICAgUEFTX0FTU0VSVCho
ZWxkX2xvY2sgPT0gcGFzX2xvY2tfZm9yX3N3aXRjaF9jb25kaXRpb25hbGx5KCZwYXNfaGVhcF9s
b2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKSk7Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0
X2hlbGQoKTsKLSAgICB9Ci0KLSAgICBQQVNfQVNTRVJUKCFQQVNfU0VHUkVHQVRFRF9ESVJFQ1RP
UllfR0VUX0JJVChkaXJlY3RvcnksIGluZGV4LCBlbGlnaWJsZSkpOwotCi0gICAgLyogSXQncyB0
b3RhbGx5IHBvc3NpYmxlIHRoYXQgdGhlIGVtcHR5IGJpdCBnb3Qgc2V0IGFnYWluLiBXZSBzaG91
bGQgY2xlYXIgaXQgZm9yIHN1cmUgbm93LiAqLwotICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9S
WV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5LCBmYWxzZSk7Ci0KLSAgICBQQVNfVEVT
VElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBh
Z2UsIG15X3BhZ2VfY29uZmlnKSk7Ci0gICAgCi0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9jb25maWcpKSB7Ci0gICAgICAgIFBBU19BU1NFUlQo
bXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPT0gbXlfcGFnZV9jb25maWcuYmFzZS5ncmFu
dWxlX3NpemUpOwotICAgICAgICAKLSAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgp
OwotCi0gICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfd2l0aF9vd25lZCgKLSAgICAgICAgICAgIHZpZXctPm93
bmVyc2hpcF9raW5kLCBmYWxzZSk7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAg
ICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25lcnNoaXAga2luZCA9ICVzIGR1ZSB0byB1dGlsaXR5
IGRlY29tbWl0IGluIHRha2VfbGFzdF9lbXB0eVxuIiwKLSAgICAgICAgICAgICAgICAgICAgdmll
dywKLSAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmRfZ2V0X3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZXctPm93
bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29t
bWl0KAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBteV9w
YWdlX2NvbmZpZyksCi0gICAgICAgICAgICBteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7
Ci0gICAgICAgIGRlY29tbWl0X2xvZy0+dG90YWwgKz0gbXlfcGFnZV9jb25maWcuYmFzZS5wYWdl
X3NpemU7Ci0gICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigm
cGFnZS0+YmFzZSwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRl
eCk7Ci0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICAgICAg
ZGF0YS0+cmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIGlmIChwYWdlLT5udW1fbm9uX2VtcHR5
X3dvcmRzKSB7Ci0gICAgICAgIGJvb2wgZGVjb21taXRfcmVzdWx0OwotICAgICAgICBzaXplX3Qg
bnVtX2NvbW1pdHRlZF9ncmFudWxlczsKLSAgICAgICAgCi0gICAgICAgIC8qIE5vIHBhcnRpYWwg
ZGVjb21taXQgaW4gdGhlIHV0aWxpdHkgaGVhcCEgKi8KLSAgICAgICAgUEFTX0FTU0VSVCghcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpOwotICAg
ICAgICAKLSAgICAgICAgLyogV2Uga25vdyB0aGF0IHRoZXJlIG11c3QgYmUgZW1wdHkgZ3JhbnVs
ZXMgaW4gdGhpcyBwYWdlLCBzaW5jZSBlaXRoZXIgdGhlIGVtcHR5Ci0gICAgICAgICAgIG9yIHRo
ZSBwYXJ0bHlfZW1wdHkgYml0IHdhcyBzZXQuIFRob3NlIGJpdHMgd291bGRuJ3QgZ2V0IHNldCB1
bmxlc3Mgd2Ugbm90aWNlZAotICAgICAgICAgICBhbiBlbXB0eSBncmFudWxlLiBJZiB3ZSBkaWQg
dHJ5IHRvIGFsbG9jYXRlIGZyb20gdGhvc2UgZ3JhbnVsZXMsIHdlIHdvdWxkIGZpcnN0Ci0gICAg
ICAgICAgIGhhdmUgdG8gdGFrZSBhd2F5IGl0cyBlbGlnaWJpbGl0eSBhbmQgdGhlbiBjbGVhciBp
dHMgZW1wdHkgYml0cy4gQnV0IHdlIGtub3cgdGhhdAotICAgICAgICAgICB0aGlzIGNvdWxkIG5v
dCBoYXZlIGhhcHBlbmVkIHNpbmNlICp3ZSogdG9vayBhd2F5IGl0cyBlbGlnaWJpbGl0eS4gKi8K
LSAgICAgICAgCi0gICAgICAgIGRlY29tbWl0X3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
dGFrZV9lbXB0eV9ncmFudWxlcygKLSAgICAgICAgICAgIHBhZ2UsIGRlY29tbWl0X2xvZywgJmhl
bGRfbG9jaywgcGFzX3JhbmdlX2lzX25vdF9sb2NrZWQsIGhlYXBfbG9ja19ob2xkX21vZGUpOwot
ICAgICAgICAKLSAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotICAg
ICAgICAKLSAgICAgICAgbnVtX2NvbW1pdHRlZF9ncmFudWxlcyA9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZ2V0X251bV9jb21taXR0ZWRfZ3JhbnVsZXMocGFnZSk7Ci0gICAgICAgIFBBU19BU1NFUlQo
bnVtX2NvbW1pdHRlZF9ncmFudWxlcyk7Ci0gICAgICAgIAotICAgICAgICAvKiBUaGUgcGFnZSBj
YW4gYmVjb21lIGVsaWdpYmxlIGFnYWluIG5vdyB0aGF0IHdlJ3ZlIG1hcmtlZCB0aGluZ3MgZm9y
IGRlY29tbWl0LiAqLwotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRf
YmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICAKLSAg
ICAgICAgaWYgKGRlY29tbWl0X3Jlc3VsdCkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0g
ICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6IGRpZCBwYXJ0bHkgdGFrZSBpbmRleCAlenVcbiIs
IGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleChkaXJlY3Rv
cnksIGluZGV4KTsKLSAgICAgICAgICAgIGRhdGEtPnJlc3VsdCA9IHBhc19wYWdlX3NoYXJpbmdf
cG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9j
aywgJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQg
PSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX293bmVk
KAotICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQsIGZhbHNlKTsKLSAgICAgICAgaWYg
KHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIG93bmVyc2hpcCBr
aW5kID0gJXMgZHVlIHRvIG5vcm1hbCBkZWNvbW1pdCBpbiB0YWtlX2xhc3RfZW1wdHlcbiIsCi0g
ICAgICAgICAgICAgICAgICAgIHZpZXcsCi0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2dldF9zdHJpbmcoCi0gICAgICAgICAg
ICAgICAgICAgICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCkpOwotICAgICAgICB9Ci0gICAgICAg
IHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICAgICAgCi0gICAgICAgIGlm
ICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV90YWtlX3BoeXNpY2FsbHkoCi0gICAgICAgICAgICAgICAg
cGFnZSwgZGVjb21taXRfbG9nLCBwYXNfcmFuZ2VfaXNfbm90X2xvY2tlZCwgaGVhcF9sb2NrX2hv
bGRfbW9kZSkpIHsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfaXNfdXRpbGl0eShkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssICZ2aWV3
LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCA9IHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX3dpdGhfb3duZWQoCi0g
ICAgICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQsIHRydWUpOwotICAgICAgICAgICAg
aWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25l
cnNoaXAga2luZCA9ICVzIGR1ZSB0byB1bmRvIG9mIGRlY29tbWl0IGluIHRha2VfbGFzdF9lbXB0
eVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRfc3Ry
aW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kKSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywg
TlVMTCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7Ci0g
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5
X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBk
YXRhLT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9sb2Nrc191bmF2YWlsYWJs
ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgcGFzX2xvZygiJXA6IGRpZCBmdWxseSB0YWtl
IGluZGV4ICV6dVxuIiwgZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICBwYXNfbG9nKCJE
ZXN0cm95aW5nIHBhZ2UgaGVhZGVyIGZvciB2aWV3ID0gJXAsIHBhZ2UgPSAlcCwgYm91bmRhcnkg
PSAlcCAoJXApICIKLSAgICAgICAgICAgICAgICAgICAgImFzIHBhcnQgb2YgZGVjb21taXQuXG4i
LAotICAgICAgICAgICAgICAgICAgICB2aWV3LCBwYWdlLCBwYXNfc2VncmVnYXRlZF9wYWdlX2Jv
dW5kYXJ5KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSwKLSAgICAgICAgICAgICAgICAgICAgdmlldy0+
cGFnZV9ib3VuZGFyeSk7Ci0gICAgICAgIH0KLSAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5k
ZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQot
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxl
X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgIH0KLSAgICAKLSAgICBkYXRhLT5yZXN1
bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzOwotICAgIHJldHVybiB0cnVl
OwotCi1yZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOgotICAgIHBhc19sb2NrX3N3
aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLQotICAgIC8qIFJldHVybmluZyBmYWxzZSBtZWFucyB0
aGF0IHRoZSBiYWNrd2FyZHMgaXRlcmF0aW9uIGtlZXBzIGdvaW5nIGFuZCB0aGlzIHNob3VsZCBn
ZXQgY2FsbGVkCi0gICAgICAgYWdhaW4gaWYgdGhlcmUgYXJlIGFueSBvdGhlciB2aWV3cyBtYXJr
ZWQgZW1wdHkuICovCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1wYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfdGFrZV9yZXN1bHQKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtl
X2xhc3RfZW1wdHkoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBz
aXplX2RpcmVjdG9yeSwKLSAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9s
b2csCi0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAg
LyogQmUgY2FyZWZ1bDogaGVhcF9sb2NrX2hvbGRfbW9kZSBoZXJlIGNhbiBiZSB1bnJlbGF0ZWQg
dG8gd2hhdCBwYWdlX2NvbmZpZyBzYXlzLCBzaW5jZQotICAgICAgIHdlIG1heSBiZSBhc2tlZCBi
eSB0aGUgcGh5c2ljYWwgcGFnZSBzaGFyaW5nIHBvb2wgdG8gZGVjb21taXQgb24gYmVoYWxmIG9m
IGFueSBvdGhlciBoZWFwLAotICAgICAgIGluY2x1ZGluZyBvbmVzIHRoYXQgaG9sZCB0aGUgaGVh
cCBsb2NrIHdoaWxlIGRvaW5nIGJ1c2luZXNzLiAqLwotCi0gICAgdGFrZV9sYXN0X2VtcHR5X2Rh
dGEgZGF0YTsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcgY29u
ZmlnOwotICAgIGJvb2wgZGlkX2ZpbmRfc29tZXRoaW5nOwotICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeSogZGlyZWN0b3J5OwotCi0gICAgZGlyZWN0b3J5ID0gJnNpemVfZGlyZWN0b3J5LT5i
YXNlOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2lu
ZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpOwotCi0gICAgZGF0YS5k
ZWNvbW1pdF9sb2cgPSBkZWNvbW1pdF9sb2c7Ci0gICAgZGF0YS5oZWFwX2xvY2tfaG9sZF9tb2Rl
ID0gaGVhcF9sb2NrX2hvbGRfbW9kZTsKLSAgICBkYXRhLnJlc3VsdCA9IHBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOwotCi0gICAgZGF0YS5teV9wYWdlX2NvbmZpZ19w
dHIgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5
LT5wYWdlX2NvbmZpZ19raW5kKTsKLQotICAgIGNvbmZpZy5kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7
Ci0gICAgY29uZmlnLnNob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsID0gdGFrZV9sYXN0X2Vt
cHR5X3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsOwotICAgIGNvbmZpZy5jb25zaWRlcl92
aWV3ID0gdGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXc7Ci0gICAgY29uZmlnLmFyZyA9ICZk
YXRhOwotCi0gICAgZGlkX2ZpbmRfc29tZXRoaW5nID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2l0ZXJhdGVfYmFja3dhcmRfdG9fdGFrZV9sYXN0X2VtcHR5KCZjb25maWcpOwot
Ci0gICAgaWYgKCFkaWRfZmluZF9zb21ldGhpbmcpCi0gICAgICAgIHJldHVybiBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZTsKLQotICAgIFBBU19BU1NFUlQocGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2RvaW5nX3NoYXJpbmcoZGlyZWN0b3J5KSk7Ci0gICAgcGFz
X3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEoCi0gICAgICAgICZwYXNfcGh5c2lj
YWxfcGFnZV9zaGFyaW5nX3Bvb2wsCi0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBh
bnRfY3JlYXRlKAotICAgICAgICAgICAgZGlyZWN0b3J5LAotICAgICAgICAgICAgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9raW5kX3NlbGVjdF9mb3Jfc2VncmVnYXRlZF9kaXJlY3Rvcnko
Ci0gICAgICAgICAgICAgICAgZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkpKTsKLSAgICAKLSAg
ICByZXR1cm4gZGF0YS5yZXN1bHQ7Ci19Ci0KLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3Qo
Ci0gICAgdWludHB0cl90IGJlZ2luLAotICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQotewot
ICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFsKAotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KGJlZ2luLCBjb25m
aWcpKTsKLX0KLQotcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQKLXBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBj
b3VudCwKLSAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCi0gICAg
cGFzX2hlYXBfY29uZmlnKiBjb25maWcsCi0gICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKLXsK
LSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCB0bGNfcmVzdWx0OwotICAgIHVuc2lnbmVk
IGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKLQotICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkpOwot
ICAgIFBBU19BU1NFUlQoIXBhc19oZWFwX2NvbmZpZ19pc191dGlsaXR5KGNvbmZpZykpOwotICAg
IAotICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5z
dXJlX2FsbG9jYXRvcl9pbmRleCgKLSAgICAgICAgZGlyZWN0b3J5LT5oZWFwLAotICAgICAgICBk
aXJlY3RvcnksCi0gICAgICAgIGNvdW50LAotICAgICAgICBjb3VudF9sb29rdXBfbW9kZSwKLSAg
ICAgICAgY29uZmlnLAotICAgICAgICBjYWNoZWRfaW5kZXgpOwotICAgIHBhc19oZWFwX2xvY2tf
dW5sb2NrKCk7Ci0KLSAgICAvKiBDdXJyZW50bHkgYXMgc29vbiBhcyB3ZSBzd2l0Y2ggdG8gVExD
IGFsbG9jYXRvcnMsIHdlIGNhbm5vdCBwb3NzaWJseSBoYXZlIGEgYmFzZWxpbmUKLSAgICAgICBh
bGxvY2F0b3IuIEJ1dCBpZiB3ZSBkbywgd2Ugc2hvdWxkIHN0b3AgaXQgbm93LiAqLwotICAgIGJh
c2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9IGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2lu
ZGV4OwotICAgIGlmIChiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPCBQQVNfTlVNX0JBU0VMSU5F
X0FMTE9DQVRPUlMpIHsKLSAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogYmFzZWxpbmVf
YWxsb2NhdG9yOwotICAgICAgICAKLSAgICAgICAgYmFzZWxpbmVfYWxsb2NhdG9yID0gcGFzX2Jh
c2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKLSAgICAg
ICAgCi0gICAgICAgIHBhc19sb2NrX2xvY2soJmJhc2VsaW5lX2FsbG9jYXRvci0+bG9jayk7Ci0K
LSAgICAgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0IGR1ZSB0byBhIHJhY2UsIHRoZSBkaXJlY3Rv
cnkncyBpbmRleCBoYXMgYmVlbiByZWFzc2lnbmVkIHRvIHNvbWV0aGluZwotICAgICAgICAgICBl
bHNlLiBBdCB3b3JzdCwgdGhhdCByYWNlIHdpbGwgbWVhbiB0aGF0IHNvbWUgYmFzZWxpbmUgYWxs
b2NhdG9yIHdpbGwgYmUgdXNlZCBmb3IKLSAgICAgICAgICAgYWxsb2NhdGlvbi4gVGhlcmUncyBu
b3QgYSB3aG9sZSBsb3Qgd2UgY2FuIGRvIGFib3V0IHRoYXQuIEF0IHdvcnN0LCBpdCBtZWFucyBs
ZXR0aW5nIHRoZQotICAgICAgICAgICBoaWdoIHdhdGVybWFyayBncm93IGEgYml0IGluIGNhc2Ug
b2YgYSB3ZWlyZCByYWNlLiAqLwotICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxv
Y2F0b3JfaW5kZXggPT0gYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4KSB7Ci0gICAgICAgICAgICBw
YXNfYmFzZWxpbmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlY3RvcnkoYmFzZWxpbmVfYWxsb2NhdG9y
KTsKLSAgICAgICAgICAgIHBhc19mZW5jZSgpOwotICAgICAgICAgICAgZGlyZWN0b3J5LT5iYXNl
bGluZV9hbGxvY2F0b3JfaW5kZXggPSAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOwot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBwYXNfbG9ja191bmxvY2soJmJhc2VsaW5lX2Fs
bG9jYXRvci0+bG9jayk7Ci0gICAgfQotICAgIAotICAgIHRsY19yZXN1bHQgPSBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IoCi0gICAgICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZ2V0KGNvbmZpZyksCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxv
Y2F0b3JfaW5kZXgsCi0gICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLSAgICAKLSAgICBQ
QVNfQVNTRVJUKHRsY19yZXN1bHQuZGlkX3N1Y2NlZWQpOwotCi0gICAgcmV0dXJuIHBhc19iYXNl
bGluZV9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHRsY19yZXN1bHQuYWxsb2NhdG9y
LCBOVUxMKTsKLX0KLQotcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLSAgICBwYXNfaGVhcF9zdW1tYXJ5
IHJlc3VsdDsKLSAgICBzaXplX3QgcGF5bG9hZF9zaXplOwotCi0gICAgUEFTX0FTU0VSVChkaXJl
Y3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kX251bGwpOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwotICAgIHBhZ2VfY29uZmln
ID0gKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3Rvcnkt
PmJhc2UucGFnZV9jb25maWdfa2luZCk7Ci0gICAgCi0gICAgcmVzdWx0ID0gcGFzX2hlYXBfc3Vt
bWFyeV9jcmVhdGVfZW1wdHkoKTsKLSAgICAKLSAgICBwYXlsb2FkX3NpemUgPSAoZGF0YS0+b2Zm
c2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgLQotICAgICAgICAg
ICAgICAgICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVj
dCk7Ci0gICAgCi0gICAgcmVzdWx0LmRlY29tbWl0dGVkICs9IHBhZ2VfY29uZmlnLmJhc2UucGFn
ZV9zaXplOwotICAgIHJlc3VsdC5mcmVlICs9IHBheWxvYWRfc2l6ZTsKLSAgICByZXN1bHQuZnJl
ZV9kZWNvbW1pdHRlZCArPSBwYXlsb2FkX3NpemU7Ci0gICAgCi0gICAgcmV0dXJuIHJlc3VsdDsK
LX0KLQotdHlwZWRlZiBzdHJ1Y3QgewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjayBjYWxsYmFjazsK
LSAgICB2b2lkKiBhcmc7Ci19IGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RhdGE7Ci0KLXN0YXRpYyBi
b29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrKAotICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKLSAgICB1
aW50cHRyX3QgYmVnaW4sCi0gICAgdm9pZCogYXJnKQotewotICAgIGZvcl9lYWNoX2xpdmVfb2Jq
ZWN0X2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNfVU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7Ci0KLSAg
ICBkYXRhID0gYXJnOwotCi0gICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNrKGRhdGEtPmdsb2JhbF9z
aXplX2RpcmVjdG9yeSwgdmlldywgYmVnaW4sIGRhdGEtPmFyZyk7Ci19Ci0KLWJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KAotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9j
YWxsYmFjayBjYWxsYmFjaywKLSAgICB2b2lkKiBhcmcpCi17Ci0gICAgZm9yX2VhY2hfbGl2ZV9v
YmplY3RfZGF0YSBkYXRhOwotCi0gICAgZGF0YS5nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgPSBkaXJl
Y3Rvcnk7Ci0gICAgZGF0YS5jYWxsYmFjayA9IGNhbGxiYWNrOwotICAgIGRhdGEuYXJnID0gYXJn
OwotICAgIAotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFj
aF9saXZlX29iamVjdCgKLSAgICAgICAgJmRpcmVjdG9yeS0+YmFzZSwgZm9yX2VhY2hfbGl2ZV9v
YmplY3RfY2FsbGJhY2ssICZkYXRhKTsKLX0KLQotc2l6ZV90IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZSgKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19raW5kIGtpbmQ7Ci0KLSAgICBraW5kID0gZGlyZWN0b3J5LT5iYXNlLnBh
Z2VfY29uZmlnX2tpbmQ7Ci0KLSAgICBpZiAoa2luZCA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kX251bGwpCi0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX251bGxfY29uZmlnKCk7Ci0gICAg
Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9h
bGxvY2F0b3Jfc2l6ZV9mb3JfY29uZmlnKAotICAgICAgICAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZF9nZXRfY29uZmlnKGtpbmQpKTsKLX0KLQotcGFzX2FsbG9jYXRvcl9pbmRleCBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2Vz
KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQot
ewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2Fs
bG9jYXRvcl9pbmRpY2VzX2Zvcl9hbGxvY2F0b3Jfc2l6ZSgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSkp
OwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1wX3Jl
ZmVyZW5jZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKQotewotICAgIHBhc19zdHJlYW1fcHJpbnRmKAotICAg
ICAgICBzdHJlYW0sCi0gICAgICAgICIlcChzZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSwgJXUsICVwLCAlcykiLAotICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgIGRpcmVjdG9yeS0+
b2JqZWN0X3NpemUsCi0gICAgICAgIGRpcmVjdG9yeS0+aGVhcCwKLSAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2Nv
bmZpZ19raW5kKSk7Ci19Ci0KLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2R1bXBfZm9yX3NwZWN0cnVtKAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGly
ZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1w
X3JlZmVyZW5jZShkaXJlY3RvcnksIHN0cmVhbSk7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5B
QkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oCShub25leGlzdGVudCkKQEAg
LTEsMjMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9I
Ci0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9ICi0KLSNpbmNs
dWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWlj
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9h
dG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1ZGUgInBh
c19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKLSNpbmNs
dWRlICJwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCIKLSNp
bmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyLmgiCi0jaW5jbHVkZSAicGFz
X2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19w
YWdlX2dyYW51bGVfdXNlX2NvdW50LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2V4dGVuZGVk
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGE7Ci1zdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Owotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9kYXRhOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGE7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci10eXBlZGVm
IHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YTsKLQotUEFTX0RFRklORV9DT01QQUNU
X0FUT01JQ19QVFIocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YV9wdHIpOwotCi1QQVNfQVBJIGV4dGVybiBib29sIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZTsKLVBBU19BUEkgZXh0ZXJuIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2ZvcmNlX2V4cGxvZGU7Ci0KLXN0
cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
IGJhc2U7Ci0gICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcDsKLQotICAgIHVuc2ln
bmVkIG9iamVjdF9zaXplIDogMjc7Ci0gICAgdW5zaWduZWQgYWxpZ25tZW50X3NoaWZ0IDogNTsK
LQotICAgIC8qIFRoaXMgaGFzIGEgZnVubnkgZW5jb2RpbmcgKGxldCBOID0gUEFTX05VTV9CQVNF
TElORV9BTExPQ0FUT1JTKToKLSAgICAgICAKLSAgICAgICBpbmRleCBpbiBbMCwgTikgICAgID0+
IGF0dGFjaGVkIHRvIGluZGV4Ci0gICAgICAgaW5kZXggaW4gW04sIDJOKSAgICA9PiBhdHRhY2hp
bmcgdG8gaW5kZXggLSBOCi0gICAgICAgMk4gICAgICAgICAgICAgICAgICA9PiBkZXRhY2hlZAot
ICAgICAgIAotICAgICAgIEluIHRoZSBkZXRhY2hlZCBzdGF0ZSwgdGhlIG9ubHkgd2F5IHRvIGNo
YW5nZSB0aGlzIGlzIHRvIENBUyBpdC4KLSAgICAgICAKLSAgICAgICBJbiB0aGUgYXR0YWNoZWQg
YW5kIGF0dGFjaGluZyBzdGF0ZXMsIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4J3MgbG9jayBwcm90
ZWN0cyB0aGlzIGZpZWxkLiAqLwotICAgIHVpbnQxNl90IGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRl
eDsKLSAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9w
dHIgZGF0YTsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
X3B0ciBiaXRmaXRfc2l6ZV9jbGFzczsKLQotICAgIC8qIFRoZSBvd25pbmcgc2VncmVnYXRlZCBo
ZWFwIGhvbGRzIHRoZXNlIGluIGEgc2luZ2x5IGxpbmtlZCBsaXN0LiAqLwotICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIgbmV4dF9mb3Jf
aGVhcDsKLX07Ci0KLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YSB7Ci0gICAgdW5zaWduZWQgb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9v
YmplY3Q7IC8qIENhY2hlZCB0byBtYWtlIHJlZmlsbCBmYXN0LiAqLwotICAgIHVuc2lnbmVkIG9m
ZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0OyAvKiBDYWNoZWQg
dG8gbWFrZSByZWZpbGwgZmFzdC4gKi8KLSAgICAKLSAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFs
bG9jYXRvcl9pbmRleDsKLSAgICAKLSAgICB1aW50OF90IGZ1bGxfbnVtX25vbl9lbXB0eV93b3Jk
czsKLQotICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIgZnVsbF9hbGxvY19iaXRz
OyAvKiBQcmVjb21wdXRlZCBhbGxvYyBiaXRzIGluIHRoZSBjYXNlIHRoYXQgYSBwYWdlIGlzIGVt
cHR5LiAqLwotICAgIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIgYmlh
c19zaGFyaW5nX3Bvb2w7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZSBuZXh0X2Zvcl9sYXlvdXQ7Ci19OwotCi1zdHJ1Y3QgcGFzX2V4dGVuZGVk
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEgewotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhIGJhc2U7Ci0gICAgcGFzX2NvbXBhY3RfdGFn
Z2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyIGZ1bGxfdXNlX2NvdW50czsKLX07Ci0KLXN0
YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2FzX3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3JlYXRlKGRp
cmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZCk7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc2l6ZV90Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfYWxpZ25tZW50KHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5KQotewotICAgIHJldHVybiAoc2l6ZV90KTEgPDwgKHNpemVfdClkaXJlY3Rvcnkt
PmFsaWdubWVudF9zaGlmdDsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGUo
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6
ZSwKLSAgICB1bnNpZ25lZCBhbGlnbm1lbnQsCi0gICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2Nv
bmZpZywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOwotCi1z
dGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Nv
bnRlbnRpb25fZGlkX3RyaWdnZXJfZXhwbG9zaW9uKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZ2V0X21pc2NfYml0KCZkaXJlY3RvcnktPmJhc2UpOwotfQotCi1zdGF0aWMg
aW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3NldF9jb250
ZW50aW9uX2RpZF90cmlnZ2VyX2V4cGxvc2lvbigKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBib29sIHZhbHVlKQotewotICAgIHJldHVy
biBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2V0X21pc2NfYml0KCZkaXJlY3RvcnktPmJhc2Us
IHZhbHVlKTsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRh
KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAot
ICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotUEFTX0FQSSBw
YXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSoKLXBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLS8qIENh
bGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19hbGxvY2F0b3IoCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1zdGF0aWMgaW5saW5l
IGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2Nh
dG9yKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRh
OwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9w
dHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICByZXR1cm4gZGF0YSAmJiBkYXRhLT5hbGxv
Y2F0b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7Ci19Ci0KLS8qIENh
bGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cygKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLXN0YXRpYyBpbmxp
bmUgYm9vbCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2
ZV92aWV3c19lbmFibGVkKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9kYXRhKiBkYXRhOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICByZXR1cm4gZGF0YSAm
JiBkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHM7Ci19Ci0KLVBBU19BUEkgdm9pZCBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZXhwbG9kZSgKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfbG9ja19ob2xk
X21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfdmll
dyBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJs
ZV9kaXJlY3QoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpOwotCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX21hZ2F6aW5lKiBt
YWdhemluZSk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0Ci1w
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KAotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBh
c19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxvZywKLSAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVh
cF9sb2NrX2hvbGRfbW9kZSk7Ci0KLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVj
dCgKLSAgICB1aW50cHRyX3QgYmVnaW4sCi0gICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpOwot
Ci0vKiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgYSBkYXRhLiBUaGF0J3MgYSB2
YWxpZCBhc3N1bXB0aW9uIGlmIHdlIGhhdmUgZXhjbHVzaXZlcy4gKi8KLVBBU19BUEkgcGFzX2hl
YXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9z
dW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLS8qIFdlIHVzZSBhIHBhZ2Ugc2hhcmluZyBw
b29sIGFzIG91ciBjb2xsZWN0aW9uIG9mIGJpYXNpbmcgZGlyZWN0b3JpZXMuCi0gCi0gICBDb29s
IGZhY3Q6IHBhZ2Ugc2hhcmluZyBwb29sIGl0ZXJhdGlvbiBmdW5jdGlvbnMgd29yayBmb3IgTlVM
TC4gVGhleSdsbCBiZWhhdmUgYXMgaWYgeW91IGhhZCBhbgotICAgZW1wdHkgcG9vbC4gU28sIG5v
IG5lZWQgdG8gTlVMTC1jaGVjayBpZiB1c2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoaXMgZnVu
Y3Rpb24gdG8gaXRlcmF0ZSB0aGUKLSAgIGJpYXNpbmcgZGlyZWN0b3JpZXMuICovCi1zdGF0aWMg
aW5saW5lIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2JpYXNfc2hhcmluZ19wb29sKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICBp
ZiAoIWRhdGEpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiBwYXNfY29tcGFjdF9h
dG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29s
KTsKLX0KLQotdHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrKSgKLSAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3
IHZpZXcsCi0gICAgdWludHB0cl90IGJlZ2luLAotICAgIHZvaWQqIGFyZyk7Ci0KLVBBU19BUEkg
Ym9vbCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9v
YmplY3QoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xp
dmVfb2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNrLAotICAgIHZvaWQqIGFyZyk7Ci0KLVBBU19BUEkg
c2l6ZV90IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0
b3Jfc2l6ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSk7Ci0KLVBBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKAotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSB2b2lkIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVh
bSogc3RyZWFtKTsKLQotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQq
IGRpcmVjdG9yeSk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfU0VHUkVH
QVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMzkg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpZm5kZWYgUEFTX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX0lOTElORVNf
SAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19I
Ci0KLSNpbmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5oIgotI2luY2x1ZGUg
InBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIKLSNpbmNsdWRlICJwYXNfY291bnRfbG9v
a3VwX21vZGUuaCIKLSNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yLmgiCi0jaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCIKLQot
UEFTX0JFR0lOX0VYVEVSTl9DOwotCi1QQVNfQVBJIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVz
dWx0Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZ2V0X2FsbG9jYXRvcl9m
cm9tX3RsYygKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKLSAgICBzaXplX3QgY291bnQsCi0gICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50
X2xvb2t1cF9tb2RlLAotICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgIHVuc2lnbmVk
KiBjYWNoZWRfaW5kZXgpOwotCi1QQVNfQVBJIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqCi1wYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQot
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0Ci1w
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcigKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBz
aXplX3QgY291bnQsCi0gICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2Rl
LAotICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5k
ZXgpCi17Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9oYXNf
dGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpCi0gICAgICAgICYmIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3RyeV9nZXQoKSB8fCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkpIHsKLSAg
ICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfYWxs
b2NhdG9yX2Zyb21fdGxjKAotICAgICAgICAgICAgZGlyZWN0b3J5LCBjb3VudCwgY291bnRfbG9v
a3VwX21vZGUsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKLSAgICB9Ci0KLSAgICBmb3IgKDs7KSB7
Ci0gICAgICAgIHVuc2lnbmVkIGluZGV4OwotICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
KiBhbGxvY2F0b3I7Ci0KLSAgICAgICAgaW5kZXggPSBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9j
YXRvcl9pbmRleDsKLSAgICAgICAgaWYgKGluZGV4ID49IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NB
VE9SUykKLSAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yX3Nsb3coZGlyZWN0b3J5KTsKLSAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxl
ICsgaW5kZXg7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19sb2NrX2xvY2soJmFsbG9j
YXRvci0+bG9jayk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChkaXJlY3RvcnktPmJh
c2VsaW5lX2FsbG9jYXRvcl9pbmRleCAhPSBpbmRleCkgewotICAgICAgICAgICAgICAgIHBhc19s
b2NrX3VubG9jaygmYWxsb2NhdG9yLT5sb2NrKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dS5hbGxvY2F0
b3IudmlldykgPT0gZGlyZWN0b3J5KTsKLQotICAgICAgICByZXR1cm4gcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCi0gICAgICAgICAgICAmYWxsb2NhdG9yLT51
LmFsbG9jYXRvciwgJmFsbG9jYXRvci0+bG9jayk7Ci0gICAgfQotfQotCi1zdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgc2l6ZV90Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
bG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX251bGxfY29uZmlnKHZvaWQpCi17Ci0gICAgcmV0dXJu
IFBBU19MT0NBTF9BTExPQ0FUT1JfU0laRSgwKTsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHNpemVfdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxs
b2NhdG9yX3NpemVfZm9yX2NvbmZpZygKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBj
b25maWcpCi17Ci0gICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVkKTsKLSAgICBy
ZXR1cm4gUEFTX0xPQ0FMX0FMTE9DQVRPUl9TSVpFKGNvbmZpZy5udW1fYWxsb2NfYml0cyk7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRvcl9pbmRleAotcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxsb2NhdG9yX3Np
emUoc2l6ZV90IHNpemUpCi17Ci0gICAgcGFzX2FsbG9jYXRvcl9pbmRleCByZXN1bHQ7Ci0KLSAg
ICByZXN1bHQgPSAocGFzX2FsbG9jYXRvcl9pbmRleCkoc2l6ZSAvIDgpOwotICAgIFBBU19URVNU
SU5HX0FTU0VSVCgoc2l6ZV90KXJlc3VsdCAqIDggPT0gc2l6ZSk7Ci0gICAgCi0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0b3JfaW5k
ZXgKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2lu
ZGljZXNfZm9yX2NvbmZpZygKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBjb25maWcp
Ci17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHNp
emVfdCBzaXplOwotCi0gICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVkKTsKLSAg
ICAKLSAgICBzaXplID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2Fs
X2FsbG9jYXRvcl9zaXplX2Zvcl9jb25maWcoY29uZmlnKTsKLQotICAgIGlmICh2ZXJib3NlKSB7
Ci0gICAgICAgIHBhc19sb2coCi0gICAgICAgICAgICAia2luZCA9ICVzLCBzaXplID0gJXp1Llxu
IiwKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmlu
Zyhjb25maWcua2luZCksCi0gICAgICAgICAgICBzaXplKTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNl
c19mb3JfYWxsb2NhdG9yX3NpemUoc2l6ZSk7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNl
bmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19IICov
Ci0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYwkod29ya2luZyBjb3B5KQpA
QCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgInBhc19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hl
YXBfcmVmLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgiCi0jaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9wYWdlLmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogI2luY2x1ZGUg
InBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgiCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9p
ZCBwYXNfc2VncmVnYXRlZF9oZWFwX2NvbnN0cnVjdChwYXNfcwogCiAgICAgc2VncmVnYXRlZF9o
ZWFwLT5ydW50aW1lX2NvbmZpZyA9IHJ1bnRpbWVfY29uZmlnOwogICAgIAotICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisg
ICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3Jl
KAogICAgICAgICAmc2VncmVnYXRlZF9oZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVh
ZCwgTlVMTCk7CiAgICAgCiAgICAgc2VncmVnYXRlZF9oZWFwLT5zbWFsbF9pbmRleF91cHBlcl9i
b3VuZCA9IDA7CkBAIC00MDUsNyArNDA1LDcgQEAgdW5zaWduZWQgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9tZWRpdW1fYWxsbwogICAgIHJldHVybiBVSU5UX01BWDsKIH0KIAotcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2Rp
cmVjdG9yeV9mb3JfaW5kZXgoCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KAogICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGluZGV4LAogICAgIHBhc19zZWdyZWdh
dGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2RlIHNlYXJjaF9tb2RlLApA
QCAtNDE3LDcgKzQxNyw3IEBAIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
cGEKICAgICAgICAgaGVhcCwgaW5kZXgsIHNlYXJjaF9tb2RlLCBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKICAgICAKICAgICBpZiAobWVkaXVtX2RpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgm
bWVkaXVtX2RpcmVjdG9yeS0+ZGlyZWN0b3J5KTsKKyAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZtZWRpdW1fZGlyZWN0
b3J5LT5kaXJlY3RvcnkpOwogICAgIAogICAgIHJldHVybiBOVUxMOwogfQpAQCAtNDQzLDcgKzQ0
Myw3IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAocGFzX3NlZ3IKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCiB7CiAgICAg
c2l6ZV90IGluZGV4X3VwcGVyX2JvdW5kOwotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5Owor
ICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciogaW5k
ZXhfdG9fc2l6ZV9kaXJlY3Rvcnk7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCogaW5kZXhfdG9f
YWxsb2NhdG9yX2luZGV4OwogICAgIHVuc2lnbmVkIGluZGV4OwogICAgIApAQCAtNDU2LDcgKzQ1
Niw3IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAocGFzX3NlZ3IKICAgICBpbmRl
eF91cHBlcl9ib3VuZCA9IGNvbXB1dGVfc21hbGxfaW5kZXhfdXBwZXJfYm91bmQoaGVhcCwgY29u
ZmlnKTsKICAgICAKICAgICBpbmRleF90b19zaXplX2RpcmVjdG9yeSA9IHBhc19pbW1vcnRhbF9o
ZWFwX2FsbG9jYXRlKAotICAgICAgICBzaXplb2YocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cikgKiBpbmRleF91cHBlcl9ib3VuZCwKKyAgICAg
ICAgc2l6ZW9mKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
cikgKiBpbmRleF91cHBlcl9ib3VuZCwKICAgICAgICAgInBhc19zZWdyZWdhdGVkX2hlYXAvaW5k
ZXhfdG9fc2l6ZV9kaXJlY3RvcnkiLAogICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwog
ICAgIGluZGV4X3RvX2FsbG9jYXRvcl9pbmRleCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRl
KApAQCAtNDY1LDcgKzQ2NSw3IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAocGFz
X3NlZ3IKICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKICAgICAKICAgICBmb3IgKGlu
ZGV4ID0gMDsgaW5kZXggPCBpbmRleF91cHBlcl9ib3VuZDsgKytpbmRleCkgewotICAgICAgICBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0
b3JlKAorICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHJfc3RvcmUoCiAgICAgICAgICAgICBpbmRleF90b19zaXplX2RpcmVjdG9yeSArIGluZGV4
LCBOVUxMKTsKICAgICAgICAgaW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4W2luZGV4XSA9IChwYXNf
YWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOwogICAgIH0KQEAgLTQ4MSw3ICs0ODEsNyBAQCBzdGF0
aWMgdm9pZCBlbnN1cmVfY291bnRfbG9va3VwKHBhc19zZWdyCiB1bnNpZ25lZAogcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAg
ICBzaXplX3QgY291bnQsCiAgICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9t
b2RlLAogICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLApAQCAtNTE0LDcgKzUxNCw3IEBAIHBh
c19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQKICAgICAgICAgcHJpbnRmKCJp
bmRleCA9ICV6dVxuIiwgaW5kZXgpOwogCiAgICAgYWxsb2NhdG9yX2luZGV4ID0KLSAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVj
dG9yeS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRleDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2NhdG9yX2lu
ZGV4OwogICAgIFBBU19BU1NFUlQoKHBhc19hbGxvY2F0b3JfaW5kZXgpYWxsb2NhdG9yX2luZGV4
ID09IGFsbG9jYXRvcl9pbmRleCk7CiAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfaW5kZXggPCAo
dW5zaWduZWQpKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogICAgIApAQCAtNTU5LDcg
KzU1OSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQKICAgICAg
ICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKICAgICAgICAgUEFTX0FTU0VSVChtZWRpdW1f
ZGlyZWN0b3J5KTsKICAgICAgICAgUEFTX0FTU0VSVCgKLSAgICAgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmbWVkaXVt
X2RpcmVjdG9yeS0+ZGlyZWN0b3J5KQorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJm1lZGl1bV9kaXJlY3RvcnktPmRpcmVj
dG9yeSkKICAgICAgICAgICAgID09IGRpcmVjdG9yeSk7CiAgICAgICAgIAogICAgICAgICBtZWRp
dW1fZGlyZWN0b3J5LT5hbGxvY2F0b3JfaW5kZXggPSAocGFzX2FsbG9jYXRvcl9pbmRleClhbGxv
Y2F0b3JfaW5kZXg7CkBAIC02OTcsMTggKzY5NywyMCBAQCBlbnN1cmVfY291bnRfbG9va3VwX2lm
X25lY2Vzc2FyeShwYXNfc2VnCiAgICAgICAgIGVuc3VyZV9jb3VudF9sb29rdXAoaGVhcCwgY29u
ZmlnKTsKIH0KIAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgotcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGNvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvdW50X2xvb2t1cF9tb2Rl
IGNvdW50X2xvb2t1cF9tb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5k
ZXgpCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKK3Bhc19zZWdyZWdhdGVkX2hlYXBf
ZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFw
KiBoZWFwLAorICAgIHNpemVfdCBjb3VudCwKKyAgICBzaXplX3QgYWxpZ25tZW50LAorICAgIHBh
c19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKKyAgICBwYXNfaGVhcF9jb25m
aWcqIGNvbmZpZywKKyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4LAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUgY3JlYXRpb25fbW9kZSkKIHsKICAgICBz
dGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKICAgICBwYXNfaGVhcCogcGFyZW50
X2hlYXA7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKICAgICBzaXplX3Qg
aW5kZXg7CiAgICAgc2l6ZV90IG9iamVjdF9zaXplOwogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBf
bWVkaXVtX2RpcmVjdG9yeV90dXBsZSogbWVkaXVtX3R1cGxlOwpAQCAtODE2LDExICs4MTgsMTEg
QEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogCiAgICAgUEFTX0FT
U0VSVCgKICAgICAgICAgIXJlc3VsdCB8fAotICAgICAgICBwYXNfaXNfYWxpZ25lZChyZXN1bHQt
Pm9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYWxpZ25t
ZW50KHJlc3VsdCkpKTsKKyAgICAgICAgcGFzX2lzX2FsaWduZWQocmVzdWx0LT5vYmplY3Rfc2l6
ZSwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHJlc3VsdCkpKTsKIAog
ICAgIGlzX3V0aWxpdHkgPSBwYXNfaGVhcF9jb25maWdfaXNfdXRpbGl0eShjb25maWcpOwogICAg
IAotICAgIGlmIChyZXN1bHQgJiYgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2FsaWdubWVudChyZXN1bHQpIDwgYWxpZ25tZW50KSB7CisgICAgaWYgKHJlc3VsdCAmJiBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0KSA8IGFsaWdubWVudCkg
ewogICAgICAgICBzaXplX3QgdmljdGltX2luZGV4OwogICAgICAgICAKICAgICAgICAgLyogSW4g
dGhpcyBjYXNlLCByZXN1bHQgaXMgYSBzaXplIGNsYXNzIGZvciBhdCBsZWFzdCBhcyBiaWcgb2Yg
YSBzaXplCkBAIC04MzMsMTYgKzgzNSwxNiBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9z
aXplX2RpcmVjdG9yCiAgICAgICAgICAgIFRoaXMgbG9vcCBzdGFydHMgYXQgaW5kZXggKG5vdCBp
bmRleCArIDEgZGVzcGl0ZSB3aGF0IHRoZSBpbml0aWFsCiAgICAgICAgICAgIGNvbmRpdGlvbiBz
ZWVtcyB0byBkbykgYW5kIHRyYXZlbHMgZG93bi4gKi8KICAgICAgICAgaWYgKGhlYXAtPnNtYWxs
X2luZGV4X3VwcGVyX2JvdW5kKSB7Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFsbF9zaXplX2Rp
cmVjdG9yeTsKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAg
ICBwYXNfYWxsb2NhdG9yX2luZGV4KiBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAK
ICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ID0gaGVhcC0+aW5kZXhf
dG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9hbGxv
Y2F0b3JfaW5kZXggPSBoZWFwLT5pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIGZvciAodmljdGltX2luZGV4ID0gaW5kZXggKyAxOyB2aWN0
aW1faW5kZXgtLTspIHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogCi0gICAgICAgICAgICAgICAgZGlyZWN0b3J5ID0g
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkKAorICAgICAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAgICBpbmRl
eF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSArIHZpY3RpbV9pbmRleCk7CiAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgaWYgKCFkaXJlY3RvcnkpCkBAIC04NTEsNyArODUzLDcgQEAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAg
IGlmIChkaXJlY3RvcnkgIT0gcmVzdWx0KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAot
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICAg
ICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSArIHZpY3RpbV9pbmRleCwgTlVMTCk7CiAg
ICAgICAgICAgICAgICAgaWYgKCFpc191dGlsaXR5KQogICAgICAgICAgICAgICAgICAgICBpbmRl
eF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXhbdmljdGltX2luZGV4XSA9IChwYXNfYWxsb2NhdG9y
X2luZGV4KVVJTlRfTUFYOwpAQCAtOTE5LDcgKzkyMSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBf
ZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgCiAgICAgICAgICAgIFNtYWxsZXIgaW5k
ZXg6IGNsZWFyIGl0IGlmIGl0IG1hdGNoZXMsIHNpbmNlIHdlICptYXkqIHdhbnQgdGhvc2UKICAg
ICAgICAgICAgc21hbGxlciBhbGxvY2F0aW9ucyB0byBjb25zaWRlciBvdXIgbmV3IG9uZS4gKi8K
LSAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICZoZWFwLT5iYXNp
Y19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCkgPT0gcmVzdWx0CiAgICAgICAgICAgICAmJiByZXN1
bHQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkKICAgICAgICAgICAgICYmIGluZGV4ID49
IChjYWNoZWRfaW5kZXggPyAqY2FjaGVkX2luZGV4IDogMSkpIHsKQEAgLTkzNSwxNCArOTM3LDE0
IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAKICAgICBp
ZiAoIXJlc3VsdCkgewogICAgICAgICBzaXplX3QgY2FuZGlkYXRlX2luZGV4OwotICAgICAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGNhbmRpZGF0ZTsKKyAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGNhbmRpZGF0ZTsKICAgICAgICAgc2l6ZV90
IG1lZGl1bV9pbnN0YWxsX2luZGV4OwogICAgICAgICBzaXplX3QgbWVkaXVtX2luc3RhbGxfY291
bnQ7CiAgICAgICAgIGRvdWJsZSBiZXN0X2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdDsKICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIGJlc3RfcGFnZV9jb25maWc7CiAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQgdmFyaWFudDsKLSAgICAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciogaW5k
ZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQ7CisgICAgICAg
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhf
dG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZDsKIAogICAgICAgICBpbmRleF90
b19zbWFsbF9zaXplX2RpcmVjdG9yeSA9IGhlYXAtPmluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0
b3J5OwogICAgICAgICAKQEAgLTk1NCw3ICs5NTYsNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vu
c3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgIGZvciAoY2FuZGlkYXRlX2luZGV4ID0gaW5kZXg7
CiAgICAgICAgICAgICAgY2FuZGlkYXRlX2luZGV4IDwgaGVhcC0+c21hbGxfaW5kZXhfdXBwZXJf
Ym91bmQ7CiAgICAgICAgICAgICAgKytjYW5kaWRhdGVfaW5kZXgpIHsKLSAgICAgICAgICAgIGNh
bmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgIGlu
ZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ICsgY2FuZGlkYXRlX2luZGV4KTsKICAgICAgICAg
ICAgIGlmIChjYW5kaWRhdGUpCiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC05NjMsNyArOTY1
LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAv
KiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJhc2ljIHNpemUgY2xhc3MgaXMgYSBjYW5kaWRhdGUu
IFRoYXQgY291bGQKICAgICAgICAgICAgaGFwcGVuIGlmIHdlIGRpZCBub3QgZm9yY2UgY291bnQg
bG9va3VwIHdoZW4gY3JlYXRpbmcgdGhhdCBiYXNpYyBzaXplCiAgICAgICAgICAgIGNsYXNzLiAq
LwotICAgICAgICBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCA9IHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAg
YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICZoZWFwLT5iYXNpY19z
aXplX2RpcmVjdG9yeV9hbmRfaGVhZCk7CiAgICAgICAgIGlmICgoIWNhbmRpZGF0ZSB8fCBjYW5k
aWRhdGVfaW5kZXggPiAoY2FjaGVkX2luZGV4ID8gKmNhY2hlZF9pbmRleCA6IDEpKQogICAgICAg
ICAgICAgJiYgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQKQEAgLTk4MCw4ICs5ODIsOCBA
QCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfbGVhc3RfZ3Jl
YXRlcl9lcXVhbCwKICAgICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQpOwogICAgICAgICBpZiAo
bWVkaXVtX3R1cGxlKSB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAg
ICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAmbWVkaXVtX3R1cGxlLT5kaXJlY3Rvcnkp
OwogICAgICAgICAgICAgaWYgKCFjYW5kaWRhdGUgfHwgZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSA8
IGNhbmRpZGF0ZS0+b2JqZWN0X3NpemUpCiAgICAgICAgICAgICAgICAgY2FuZGlkYXRlID0gZGly
ZWN0b3J5OwpAQCAtMTA0MSw3ICsxMDQzLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVf
c2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgUEFTX0FTU0VSVCghaXNfdXRpbGl0eSk7CiAgICAg
ICAgIH0KIAotICAgICAgICBpZiAoY2FuZGlkYXRlICYmIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9hbGlnbm1lbnQoY2FuZGlkYXRlKSA+PSBhbGlnbm1lbnQpIHsKKyAgICAg
ICAgaWYgKGNhbmRpZGF0ZSAmJiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1l
bnQoY2FuZGlkYXRlKSA+PSBhbGlnbm1lbnQpIHsKICAgICAgICAgICAgIGRvdWJsZSBieXRlc19k
aXJ0aWVkX3Blcl9vYmplY3RfYnlfY2FuZGlkYXRlOwogICAgICAgICAKICAgICAgICAgICAgIGlm
ICh2ZXJib3NlKSB7CkBAIC0xMDYzLDggKzEwNjUsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vu
c3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgIH0KICAgICAKICAgICAgICAgaWYgKCFyZXN1bHQp
IHsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHIqIGhlYWQ7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkOworICAgICAgICAg
ICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBoZWFk
OworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGJhc2ljX3NpemVf
ZGlyZWN0b3J5X2FuZF9oZWFkOwogCiAgICAgICAgICAgICBpZiAoYmVzdF9wYWdlX2NvbmZpZykg
ewogICAgICAgICAgICAgICAgIG9iamVjdF9zaXplID0gY29tcHV0ZV9pZGVhbF9vYmplY3Rfc2l6
ZSgKQEAgLTExMDEsMTYgKzExMDMsMTcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6
ZV9kaXJlY3RvcgogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgcGFz
X2xvZygiQnVtcGVkIGFsaWdubWVudCB1cCB0byAlenUuXG4iLCBhbGlnbm1lbnQpOwogICAgICAg
ICAKLSAgICAgICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9jcmVhdGUoCisgICAgICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9jcmVhdGUoCiAgICAgICAgICAgICAgICAgaGVhcCwKICAgICAgICAgICAgICAgICAo
dW5zaWduZWQpb2JqZWN0X3NpemUsCiAgICAgICAgICAgICAgICAgKHVuc2lnbmVkKWFsaWdubWVu
dCwKICAgICAgICAgICAgICAgICBjb25maWcsCi0gICAgICAgICAgICAgICAgYmVzdF9wYWdlX2Nv
bmZpZyk7CisgICAgICAgICAgICAgICAgYmVzdF9wYWdlX2NvbmZpZywKKyAgICAgICAgICAgICAg
ICBjcmVhdGlvbl9tb2RlKTsKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAg
ICAgIHByaW50ZigiQ3JlYXRlZCBzaXplIGNsYXNzID0gJXBcbiIsIHJlc3VsdCk7CiAKLSAgICAg
ICAgICAgIGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkID0gcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAg
YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAmaGVhcC0+YmFz
aWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpOwogICAgICAgICAgICAgaWYgKGJhc2ljX3NpemVf
ZGlyZWN0b3J5X2FuZF9oZWFkCiAgICAgICAgICAgICAgICAgJiYgYmFzaWNfc2l6ZV9kaXJlY3Rv
cnlfYW5kX2hlYWQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkpCkBAIC0xMTE4LDI0ICsx
MTIxLDI0IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBoZWFkID0gJmhlYXAtPmJhc2ljX3NpemVfZGly
ZWN0b3J5X2FuZF9oZWFkOwogCi0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAorICAgICAgICAgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAg
ICAgICAgICAgICZyZXN1bHQtPm5leHRfZm9yX2hlYXAsCi0gICAgICAgICAgICAgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKGhl
YWQpKTsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoaGVhZCwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChoZWFk
KSk7CisgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfc3RvcmUoaGVhZCwgcmVzdWx0KTsKICAgICAgICAgfQogICAgICAgICAKICAgICAg
ICAgaWYgKGNhY2hlZF9pbmRleAogICAgICAgICAgICAgPyAqY2FjaGVkX2luZGV4ID09IFVJTlRf
TUFYIHx8ICpjYWNoZWRfaW5kZXggPT0gaW5kZXgKICAgICAgICAgICAgIDogaW5kZXggPT0gMSkg
ewotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0ciogcHJldl9uZXh0X3B0cjsKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciogcHJldl9uZXh0X3B0cjsKICAgICAg
ICAgICAgIGJvb2wgZGlkX2ZpbmRfcmVzdWx0OwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAodmVyYm9zZSkgewogICAgICAgICAgICAgICAgIHByaW50ZigicGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50OiAiCiAgICAgICAgICAgICAgICAg
ICAgICAgICJDYWNoaW5nIGFzIGJhc2ljIHNpemUgY2xhc3MhXG4iKTsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAg
ICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCk7CiAgICAg
ICAgICAgICBQQVNfQVNTRVJUKCFkaXJlY3RvcnkgfHwgIWRpcmVjdG9yeS0+YmFzZS5pc19iYXNp
Y19zaXplX2RpcmVjdG9yeSk7IAogICAgICAgICAgICAgaWYgKGNhY2hlZF9pbmRleCkgewpAQCAt
MTE0OCwzNCArMTE1MSwzNCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVj
dG9yCiAgICAgICAgICAgICAgICB0byBleHBlcmllbmNlIHRoZSBPKG4pIGNhc2Ugb2YgdGhpcyBs
b29wLiAqLwogICAgICAgICAgICAgZGlkX2ZpbmRfcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAg
ICBmb3IgKHByZXZfbmV4dF9wdHIgPSAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hl
YWQ7Ci0gICAgICAgICAgICAgICAgICFwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2lzX251bGwocHJldl9uZXh0X3B0cik7CisgICAgICAgICAg
ICAgICAgICFwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJf
aXNfbnVsbChwcmV2X25leHRfcHRyKTsKICAgICAgICAgICAgICAgICAgcHJldl9uZXh0X3B0ciA9
Ci0gICAgICAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgICAgICAgJnBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAg
ICAgICAgICAgICAgICAgICAgIHByZXZfbmV4dF9wdHIpLT5uZXh0X2Zvcl9oZWFwKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZChwcmV2X25leHRfcHRyKQorICAgICAgICAgICAgICAgIGlmIChw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChwcmV2
X25leHRfcHRyKQogICAgICAgICAgICAgICAgICAgICA9PSByZXN1bHQpIHsKLSAgICAgICAgICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICAgICAg
ICAgcHJldl9uZXh0X3B0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN1bHQtPm5leHRf
Zm9yX2hlYXApKTsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICAgICAg
ICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3Jl
KAogICAgICAgICAgICAgICAgICAgICAgICAgJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwgTlVMTCk7
CiAgICAgICAgICAgICAgICAgICAgIGRpZF9maW5kX3Jlc3VsdCA9IHRydWU7CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAvKiBJ
ZiB3ZSdyZSBnb2luZyB0byBnbyB0aHJvdWdoIHRoZSBlZmZvcnQgb2Ygc2Nhbm5pbmcgdGhpcyBs
aXN0IHdlIG1pZ2h0IGFzCiAgICAgICAgICAgICAgICAgICAgd2VsbCBjaGVjayBzb21lIGJhc2lj
IHByb3BlcnRpZXMgb2YgaXQuICovCi0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAor
ICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoIXBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByZXZfbmV4dF9wdHIpLT5iYXNlLmlzX2Jhc2ljX3NpemVfZGlyZWN0b3J5KTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIFBBU19BU1NFUlQoZGlkX2ZpbmRfcmVzdWx0KTsKLSAgICAgICAg
ICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9pc19udWxsKAorICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZyZXN1bHQtPm5leHRfZm9yX2hlYXApKTsKLSAgICAgICAgICAg
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJf
c3RvcmUoCisgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAgICAgICAgICAgJnJlc3VsdC0+bmV4dF9mb3JfaGVh
cCwKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAg
ICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCkpOwotICAgICAgICAgICAg
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9z
dG9yZSgKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3B0cl9zdG9yZSgKICAgICAgICAgICAgICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJl
Y3RvcnlfYW5kX2hlYWQsIHJlc3VsdCk7CiAgICAgICAgICAgICByZXN1bHQtPmJhc2UuaXNfYmFz
aWNfc2l6ZV9kaXJlY3RvcnkgPSB0cnVlOwogICAgICAgICB9IGVsc2UgewpAQCAtMTE5Miw3ICsx
MTk1LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgIAog
ICAgICAgICBpZiAoaW5kZXggPCBoZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZCkgewogICAg
ICAgICAgICAgc2l6ZV90IGNhbmRpZGF0ZV9pbmRleDsKLSAgICAgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3Nt
YWxsX3NpemVfZGlyZWN0b3J5OworICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsK
ICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXgqIGluZGV4X3RvX3NtYWxsX2FsbG9jYXRv
cl9pbmRleDsKIAogICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKQEAgLTEyMDMsNyArMTIwNiw3
IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAg
IGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ID0gaGVhcC0+aW5kZXhfdG9fc21hbGxfc2l6
ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXgg
PSBoZWFwLT5pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAgICAgICAgIAotICAgICAg
ICAgICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyX2lzX251bGwoCisgICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3RvcnkgKyBpbmRl
eCkpOwogICAgICAgICAgICAgaWYgKCFpc191dGlsaXR5KQogICAgICAgICAgICAgICAgIFBBU19B
U1NFUlQoaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4W2luZGV4XSA9PSAocGFzX2FsbG9j
YXRvcl9pbmRleClVSU5UX01BWCk7CkBAIC0xMjE3LDEyICsxMjIwLDEyIEBAIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmRpZGF0ZV9pbmRleCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpjb25maWcp
IDw9IG9iamVjdF9zaXplKTsKICAgICAgICAgICAgICAgICAgKytjYW5kaWRhdGVfaW5kZXgpIHsK
LSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGNh
bmRpZGF0ZTsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
Y2FuZGlkYXRlOwogCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAg
ICAgICAgIHBhc19sb2coIkluc3RhbGxpbmcgYXQgaW5kZXggY2FuZGlkYXRlX2luZGV4ID0gJXp1
LlxuIiwgY2FuZGlkYXRlX2luZGV4KTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGNh
bmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAg
ICAgICAgaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3RvcnkgKyBjYW5kaWRhdGVfaW5kZXgpOwog
ICAgICAgICAgICAgICAgIGlmIChjYW5kaWRhdGUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYg
KHZlcmJvc2UpCkBAIC0xMjM1LDcgKzEyMzgsNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3Vy
ZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAg
ICAgICAgICAgICBoZWFwLT5pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSArIGNhbmRpZGF0
ZV9pbmRleCwgcmVzdWx0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTI3Nyw3ICsx
MjgwLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQpOwogICAgICAgICAKICAgICAgICAgICAgIGlmIChu
ZXh0X3R1cGxlICYmCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAg
ICAgICAgICAgICAgICAmbmV4dF90dXBsZS0+ZGlyZWN0b3J5KSA9PSByZXN1bHQpIHsKICAgICAg
ICAgICAgICAgICBzaXplX3QgYmVnaW5faW5kZXg7CiAgICAgICAgICAgICAgICAgYmVnaW5faW5k
ZXggPSBQQVNfTUlOKGluZGV4LCAoc2l6ZV90KW5leHRfdHVwbGUtPmJlZ2luX2luZGV4KTsKQEAg
LTEzMDgsNyArMTMxMSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0
b3IKICAgICAgICAgICAgICAgICAgICAgICAgb25lLiAqLwogICAgICAgICAgICAgICAgICAgICBQ
QVNfQVNTRVJUKAogICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X3NpemUgPAotICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJm5leHRfdHVwbGUtPmRpcmVjdG9yeSktPm9iamVjdF9zaXplKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKG5leHRfdHVwbGUg
LSBtZWRpdW1fZGlyZWN0b3JpZXMKQEAgLTEzNjQsNyArMTM2Nyw3IEBAIHBhc19zZWdyZWdhdGVk
X2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKChw
YXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfaW5kZXgpbWVkaXVtX2luc3RhbGxf
aW5kZXgKICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IG1lZGl1bV9pbnN0YWxsX2luZGV4
KTsKICAgICAgICAgICAgICAgICBtZWRpdW1fZGlyZWN0b3J5ID0gbWVkaXVtX2RpcmVjdG9yaWVz
ICsgdHVwbGVfaW5zZXJ0aW9uX2luZGV4OwotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
X3N0b3JlKAogICAgICAgICAgICAgICAgICAgICAmbWVkaXVtX2RpcmVjdG9yeS0+ZGlyZWN0b3J5
LCByZXN1bHQpOwogICAgICAgICAgICAgICAgIG1lZGl1bV9kaXJlY3RvcnktPmFsbG9jYXRvcl9p
bmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOwogCkBAIC0xNDAwLDE3ICsxNDAz
LDE3IEBAIHNpemVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9udW1fZnJlZV8KICAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jb21wdXRlX3N1bW1hcnkoaGVhcCkuZnJlZTsKIH0KIAot
Ym9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgK
K2Jvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICBw
YXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2Vh
Y2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrIGNhbGxiYWNrLAorICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2sgY2FsbGJhY2ssCiAg
ICAgdm9pZCAqYXJnKQogewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnk7CiAKLSAgICBmb3IgKGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICBmb3IgKGRpcmVjdG9yeSA9IHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAg
ICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCk7CiAgICAgICAg
ICBkaXJlY3Rvcnk7Ci0gICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICBkaXJlY3Rv
cnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZCgKICAgICAgICAgICAgICAmZGlyZWN0b3J5LT5uZXh0X2Zvcl9oZWFwKSkgewogICAgICAgICBp
ZiAoIWNhbGxiYWNrKGhlYXAsIGRpcmVjdG9yeSwgYXJnKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTE0MjcsNyArMTQzMCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKIAogc3RhdGljIGJv
b2wgZm9yX2VhY2hfY29tbWl0dGVkX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogc2l6ZV9kaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKQogewogICAgIGZvcl9lYWNoX2NvbW1p
dHRlZF9wYWdlX2RhdGEqIGRhdGE7CkBAIC0xNDU4LDcgKzE0NjEsNyBAQCBib29sIHBhc19zZWdy
ZWdhdGVkX2hlYXBfZm9yX2VhY2hfY29tbWl0CiAgICAgZGF0YS5oZWFwID0gaGVhcDsKICAgICBk
YXRhLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgZGF0YS5hcmcgPSBhcmc7Ci0gICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAg
ICAgICBoZWFwLAogICAgICAgICBmb3JfZWFjaF9jb21taXR0ZWRfc2l6ZV9kaXJlY3RvcnlfY2Fs
bGJhY2ssCiAgICAgICAgICZkYXRhKTsKQEAgLTE0NzEsNyArMTQ3NCw3IEBAIHR5cGVkZWYgc3Ry
dWN0IHsKIH0gZm9yX2VhY2hfdmlld19pbmRleF9kYXRhOwogCiBzdGF0aWMgYm9vbCBmb3JfZWFj
aF92aWV3X2luZGV4X2RpcmVjdG9yeV9jYWxsYmFjayhwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFw
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZykKIHsKICAgICBmb3JfZWFj
aF92aWV3X2luZGV4X2RhdGEqIGRhdGE7CkBAIC0xNTAxLDcgKzE1MDQsNyBAQCBib29sIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfdmlld19pCiAgICAgZGF0YS5oZWFwID0gaGVhcDsKICAg
ICBkYXRhLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICAgZGF0YS5hcmcgPSBhcmc7Ci0gICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAor
ICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAog
ICAgICAgICBoZWFwLAogICAgICAgICBmb3JfZWFjaF92aWV3X2luZGV4X2RpcmVjdG9yeV9jYWxs
YmFjaywKICAgICAgICAgJmRhdGEpOwpAQCAtMTUxMyw3ICsxNTE2LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgewogICAgIHZvaWQqIGFyZzsKIH0gZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGF0YTsKIAotc3Rh
dGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNrKHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorc3RhdGljIGJvb2wgZm9yX2Vh
Y2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNrKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCkBAIC0xNTI1
LDExICsxNTI4LDExIEBAIHN0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0X29iamVjdF8K
IAogc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGlyZWN0b3J5X2NhbGxiYWNrKAog
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgUEFTX1VOVVNFRF9QQVJB
TShoZWFwKTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KAorICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdCgKICAgICAgICAgZGlyZWN0b3J5LAogICAgICAg
ICBmb3JfZWFjaF9saXZlX29iamVjdF9vYmplY3RfY2FsbGJhY2ssCiAgICAgICAgIGFyZyk7CkBA
IC0xNTYzLDcgKzE1NjYsNyBAQCBib29sIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfbGl2
ZV9vCiAgICAgZGF0YS5jYWxsYmFjayA9IGNhbGxiYWNrOwogICAgIGRhdGEuYXJnID0gYXJnOwog
ICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkoCisgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGly
ZWN0b3J5KAogICAgICAgICAgICAgaGVhcCwKICAgICAgICAgICAgIGZvcl9lYWNoX2xpdmVfb2Jq
ZWN0X2RpcmVjdG9yeV9jYWxsYmFjaywKICAgICAgICAgICAgICZkYXRhKSkKQEAgLTE1ODUsNyAr
MTU4OCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKIAogc3RhdGljIGJvb2wgbnVtX2NvbW1pdHRlZF92
aWV3c19kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFy
ZykKIHsKICAgICBudW1fY29tbWl0dGVkX3ZpZXdzX2RhdGEqIGRhdGE7CkBAIC0xNjA1LDcgKzE2
MDgsNyBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fY29tbWl0dGVkCiAKICAgICBk
YXRhLnJlc3VsdCA9IDA7CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9z
aXplX2RpcmVjdG9yeSgKICAgICAgICAgaGVhcCwgbnVtX2NvbW1pdHRlZF92aWV3c19kaXJlY3Rv
cnlfY2FsbGJhY2ssICZkYXRhKTsKICAgICAKICAgICByZXR1cm4gZGF0YS5yZXN1bHQ7CkBAIC0x
NjE3LDcgKzE2MjAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAKIHN0YXRpYyBib29sIG51bV9lbXB0
eV92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQq
IGFyZykKIHsKICAgICBudW1fZW1wdHlfdmlld3NfZGF0YSogZGF0YTsKQEAgLTE2MzcsNyArMTY0
MCw3IEBAIHNpemVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX251bV9lbXB0eV92aWUKIAogICAgIGRh
dGEucmVzdWx0ID0gMDsKICAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3Np
emVfZGlyZWN0b3J5KAogICAgICAgICBoZWFwLCBudW1fZW1wdHlfdmlld3NfZGlyZWN0b3J5X2Nh
bGxiYWNrLCAmZGF0YSk7CiAgICAgCiAgICAgcmV0dXJuIGRhdGEucmVzdWx0OwpAQCAtMTY0OSw3
ICsxNjUyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogCiBzdGF0aWMgYm9vbCBudW1fZW1wdHlfZ3Jh
bnVsZXNfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAs
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBh
cmcpCiB7CiAgICAgbnVtX2VtcHR5X2dyYW51bGVzX2RhdGEqIGRhdGE7CkBAIC0xNjY5LDcgKzE2
NzIsNyBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fZW1wdHlfZ3JhCiAKICAgICBk
YXRhLnJlc3VsdCA9IDA7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVf
ZGlyZWN0b3J5KAogICAgICAgICBoZWFwLCBudW1fZW1wdHlfZ3JhbnVsZXNfZGlyZWN0b3J5X2Nh
bGxiYWNrLCAmZGF0YSk7CiAKICAgICByZXR1cm4gZGF0YS5yZXN1bHQ7CkBAIC0xNjgxLDcgKzE2
ODQsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAKIHN0YXRpYyBib29sIG51bV92aWV3c19kaXJlY3Rv
cnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFyZykKIHsKICAgICBu
dW1fdmlld3NfZGF0YSogZGF0YTsKQEAgLTE3MDEsNyArMTcwNCw3IEBAIHNpemVfdCBwYXNfc2Vn
cmVnYXRlZF9oZWFwX251bV92aWV3cyhwYXMKICAgICAKICAgICBkYXRhLnJlc3VsdCA9IDA7CiAg
ICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAg
ICAgICAgaGVhcCwgbnVtX3ZpZXdzX2RpcmVjdG9yeV9jYWxsYmFjaywgJmRhdGEpOwogICAgIAog
ICAgIHJldHVybiBkYXRhLnJlc3VsdDsKQEAgLTE3MDksNyArMTcxMiw3IEBAIHNpemVfdCBwYXNf
c2VncmVnYXRlZF9oZWFwX251bV92aWV3cyhwYXMKIAogc3RhdGljIGJvb2wgY29tcHV0ZV9zdW1t
YXJ5X2RpcmVjdG9yeV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCogYXJn
KQogewogICAgIHBhc19oZWFwX3N1bW1hcnkqIHN1bW1hcnk7CkBAIC0xNzMyLDcgKzE3MzUsNyBA
QCBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2hlYXBfY29tCiAgICAgCiAgICAgcmVz
dWx0ID0gcGFzX2hlYXBfc3VtbWFyeV9jcmVhdGVfZW1wdHkoKTsKICAgICAKLSAgICBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICBoZWFwLCBjb21w
dXRlX3N1bW1hcnlfZGlyZWN0b3J5X2NhbGxiYWNrLCAmcmVzdWx0KTsKIAogICAgIGJpdGZpdF9o
ZWFwID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9oZWFwX3B0cl9sb2FkKCZoZWFwLT5iaXRm
aXRfaGVhcCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9zY2F2ZW5n
ZV9hY3Rpb24uaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4
X3B0ci5oIgogI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19wdHIuaCIKLSNpbmNsdWRlICJw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgi
CisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBhY3RfaGVhcF9wdHIuaCIKICNpbmNsdWRlICJwYXNf
Y29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2NvdW50X2xvb2t1cF9tb2RlLmgiCkBAIC00MSw2ICs0
MSw3IEBACiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvci5oIgogI2luY2x1ZGUgInBhc19t
dXRhdGlvbl9jb3VudC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tp
bmQuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9t
b2RlLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmgiCiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfcGFnZS5oIgogCkBAIC01OCwxMiArNTksMTIgQEAgZW51bSBwYXNfc2VncmVn
YXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcgogdHlwZWRlZiBlbnVtIHBhc19zZWdyZWdhdGVkX2hl
YXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2RlIHBhc19zZWdyZWdhdGVkX2hlYXBf
bWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2RlOwogCiBzdHJ1Y3QgcGFzX2hlYXA7Ci1z
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXA7CiBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlOwogc3RydWN0
IHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9kYXRhOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXAg
cGFzX2hlYXA7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdyZWdhdGVk
X2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3Rv
cnlfdHVwbGUgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlOwogdHlw
ZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGEgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9yYXJlX2RhdGE7CkBAIC03NiwxMiArNzcsMTIgQEAgc3RydWN0IHBhc19zZWdyZWdhdGVk
X2hlYXAgewogICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2NvbmZpZzsKICAg
ICAKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4KiBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5k
ZXg7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFsbF9zaXpl
X2RpcmVjdG9yeTsKIAogICAgIC8qIFRoaXMgaXMgdGhlIGhlYWQgb2YgdGhlIGxpbmtlZCBsaXN0
IG9mIHNlZ3JlZ2F0ZWQgc2l6ZSBkaXJlY3Rvcmllcy4gQWxzbywgaWYgdGhlcmUgaXMKICAgICAg
ICBhIGJhc2ljIHNpemUgZGlyZWN0b3J5ICh0aGUgb25lIGZvciBpbmRleCA9PSAxIG9yIGluZGV4
ID09ICpjYWNoZWRfaW5kZXgpLCB0aGVuIGl0IHdpbGwKICAgICAgICBiZSBhdCB0aGUgaGVhZCBv
ZiB0aGUgbGlzdCB3aXRoIHRoZSBpc19iYXNpY19zaXplX2RpcmVjdG9yeSBiaXQgc2V0LiAqLwot
ICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHIgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQ7CisgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyIGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9o
ZWFkOwogICAgIAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9kYXRhX3B0ciByYXJlX2Rh
dGE7CiAKQEAgLTEwNiw3ICsxMDcsNyBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRp
dW1fZGlyZWN0CiAgICAgLyogTk9URTogVGhpcyBkaXJlY3RvcnkgaXMgYWx3YXlzIGdvaW5nIHRv
IGJlIG1lZGl1bSBzaXplZCBiZWNhdXNlIHRoaXMgZGF0YSBzdHJ1Y3R1cmUgaXMgb25seQogICAg
ICAgIHVzZWQgZm9yIHNpemVzIHRoYXQgYXJlIGJleW9uZCB0aGUgbWF4IG9iamVjdCBzaXplIGZv
ciBzbWFsbCBwYWdlcy4gQnV0IG5vYm9keSBzdHJvbmdseQogICAgICAgIHJlbGllcyBvbiB0aGF0
IHByb3BlcnR5LiAqLwotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7CiAKICAgICBwYXNfYWxsb2NhdG9y
X2luZGV4IGFsbG9jYXRvcl9pbmRleDsKICAgICAKQEAgLTE4OSw3ICsxOTAsNyBAQCBQQVNfQVBJ
IHVuc2lnbmVkIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9tZWRpdW1fc2l6ZV9kaXJlY3Rvcnlfc2VhcmNoX21vZGUgc2VhcmNoX21vZGUsCiAgICAgcGFz
X2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCi1QQVNfQVBJIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1f
c2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KAorUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3RvcnlfZm9yX2lu
ZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGluZGV4LAog
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2Rl
IHNlYXJjaF9tb2RlLApAQCAtMjMxLDcgKzIzMiw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfYWxs
b2NhdG9yX2luZGV4X2Zvcl8KIFBBU19BUEkgdW5zaWduZWQKIHBhc19zZWdyZWdhdGVkX2hlYXBf
ZW5zdXJlX2FsbG9jYXRvcl9pbmRleCgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGNv
dW50LAogICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKICAgICBw
YXNfaGVhcF9jb25maWcqIGNvbmZpZywKQEAgLTI1NywyOSArMjU4LDMwIEBAIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQKICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5z
dXJlX2FsbG9jYXRvcl9pbmRleF9mb3JfY291bnQuIE5lZWQgdG8gaG9sZCBoZWFwIGxvY2sgdG8K
ICAgIGNhbGwgdGhpcy4gT0sgdG8gcGFzcyBOVUxMIGZvciBjYWNoZWRfaW5kZXg7IG9ubHkgcHJp
bWl0aXZlX2hlYXBfcmVmJ3MgdXNlCiAgICB0aGF0LiAqLwotUEFTX0FQSSBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCitQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2Nv
dW50KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGNvdW50LCBz
aXplX3QgYWxpZ25tZW50LAogICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBf
bW9kZSwKICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKLSAgICB1bnNpZ25lZCogY2FjaGVk
X2luZGV4KTsKKyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4LAorICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUgY3JlYXRpb25fbW9kZSk7CiAKIFBBU19BUEkg
c2l6ZV90IHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X251bV9mcmVlX2J5dGVzKHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXApOwogCi10eXBlZGVmIGJvb2wgKCpwYXNfc2VncmVnYXRlZF9oZWFwX2Zv
cl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaykoCit0eXBlZGVmIGJvb2wgKCpw
YXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKSgKICAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKTsKIAotUEFTX0FQSSBib29sIHBhc19zZWdy
ZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorUEFTX0FQSSBib29s
IHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayBjYWxsYmFjaywKKyAgICBwYXNfc2VncmVnYXRl
ZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrIGNhbGxiYWNrLAogICAgIHZv
aWQqIGFyZyk7CiAKIHR5cGVkZWYgYm9vbCAoKnBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hf
Y29tbWl0dGVkX3ZpZXdfY2FsbGJhY2spKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAs
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXcsCiAgICAgdm9pZCogYXJnKTsKIApAQCAtMjkwLDcgKzI5Miw3IEBA
IFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWMKIAogdHlwZWRlZiBib29s
ICgqcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF92aWV3X2luZGV4X2NhbGxiYWNrKSgKICAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGluZGV4LAogICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlld3AsCiAgICAgdm9pZCogYXJnKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5l
cy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMjEg
KzI3LDIxIEBACiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0hFQVBfSU5MSU5FU19ICiAKICNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kgorc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwKICAgICBzaXplX3QgaW5kZXgsCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKIHsK
LSAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyKiBpbmRleF90b19zaXplX2RpcmVjdG9yeTsKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5OwogICAg
IAogICAgIGlmIChpbmRleCA9PSAoY2FjaGVkX2luZGV4ID8gKmNhY2hlZF9pbmRleCA6IDEpKSB7
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcmVzdWx0Owot
ICAgICAgICByZXN1bHQgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiByZXN1bHQ7CisgICAgICAgIHJlc3VsdCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgJmhlYXAtPmJhc2ljX3Np
emVfZGlyZWN0b3J5X2FuZF9oZWFkKTsKICAgICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQtPmJh
c2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpA
QCAtNjEsMTAgKzYxLDEwIEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9kaXJlY3RvcnlfZm9y
X2kKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIAotICAgIHJldHVybiBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoaW5k
ZXhfdG9fc2l6ZV9kaXJlY3RvcnkgKyBpbmRleCk7CisgICAgcmV0dXJuIHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKGluZGV4X3RvX3NpemVfZGly
ZWN0b3J5ICsgaW5kZXgpOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kgorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2Rp
cmVjdG9yeV9mb3JfY291bnQoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKICAgICBz
aXplX3QgY291bnQsCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYWdlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMJKHdvcmtp
bmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bv
b2wuaCIKICNpbmNsdWRlICJwYXNfcmFuZ2UuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9w
YWdlX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2lu
Y2x1ZGUgInBhc191dGlsaXR5X2hlYXBfY29uZmlnLmgiCiAKIGRvdWJsZSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2V4dHJhX3dhc3RlYWdlX2hhbmRpY2FwX2Zvcl9jb25maWdfdmFyaWFudFsKQEAgLTU1
LDE1ICs1NSwxMyBAQCBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9sb2NrX3dpCiAg
ICAgcGFzX2xvY2sqKiBoZWxkX2xvY2ssCiAgICAgcGFzX2xvY2sqIGxvY2tfcHRyKQogewotICAg
IHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKICAgICBwYXNfbG9ja19s
b2NrKGxvY2tfcHRyKTsKICAgICAKICAgICBpZiAobG9ja19wdHIgPT0gcGFnZS0+bG9ja19wdHIp
IHsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBvd25lcjsKIAogICAgICAgICBvd25lciA9
IHBhZ2UtPm93bmVyOwotICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNp
dmVfaXNoKG93bmVyKSkgeworICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21l
X2V4Y2x1c2l2ZShvd25lcikpIHsKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3KiBleGNsdXNpdmU7CiAgICAgICAgICAgICBwYXNfbG9jayogZmFsbGJhY2tfbG9jazsK
ICAgICAgICAgICAgIApAQCAtNzQsMTMgKzcyLDYgQEAgUEFTX0FQSSBib29sIHBhc19zZWdyZWdh
dGVkX3BhZ2VfbG9ja193aQogICAgICAgICAgICAgZmFsbGJhY2tfbG9jayA9ICZleGNsdXNpdmUt
Pm93bmVyc2hpcF9sb2NrOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAobG9ja19wdHIg
IT0gZmFsbGJhY2tfbG9jaykgewotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAg
ICAgICAgICAgICAgICBwYXNfbG9nKCJUcmlnZ2VyaW5nIGV4cGxvc2lvbi5cbiIpOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9zZXRfY29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24oCi0gICAgICAgICAg
ICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0
cl9sb2FkKCZleGNsdXNpdmUtPmRpcmVjdG9yeSksCi0gICAgICAgICAgICAgICAgICAgIHRydWUp
OwotICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2soZmFsbGJh
Y2tfbG9jayk7CiAgICAgICAgICAgICAgICAgcGFnZS0+bG9ja19wdHIgPSBmYWxsYmFja19sb2Nr
OwogICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jayhsb2NrX3B0cik7CkBAIC0xMjAsMTAg
KzExMSwxMCBAQCBwYXNfbG9jayogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jCiAgICAg
UEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwogfQogCi12b2lkIHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19tYWdhemluZV93aGlsZV9pbmVs
aWdpYmxlX2ltcGwoCit2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3Jl
Ymlhc193aGlsZV9pbmVsaWdpYmxlX2ltcGwoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFn
ZSwKICAgICBwYXNfbG9jayoqIGhlbGRfbG9jaywKLSAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5l
KQorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSogY2FjaGVfbm9kZSkKIHsKICAgICBm
b3IgKDs7KSB7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgb3duZXI7CkBAIC0xMzQsMTQg
KzEyNSwxNCBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kCiAgICAg
CiAgICAgICAgIHBhZ2VfbG9jayA9IHBhZ2UtPmxvY2tfcHRyOwogCi0gICAgICAgIGlmICgqaGVs
ZF9sb2NrID09IHBhZ2VfbG9jayAmJiAqaGVsZF9sb2NrID09ICZtYWdhemluZS0+bG9jaykgewor
ICAgICAgICBpZiAoKmhlbGRfbG9jayA9PSBwYWdlX2xvY2sgJiYgKmhlbGRfbG9jayA9PSAmY2Fj
aGVfbm9kZS0+cGFnZV9sb2NrKSB7CiAgICAgICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCiAgICAgICAgIG93bmVyID0gcGFnZS0+
b3duZXI7CiAKLSAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9p
c2gob3duZXIpIHx8ICFtYWdhemluZSkgeworICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3Zp
ZXdfaXNfc29tZV9leGNsdXNpdmUob3duZXIpIHx8ICFjYWNoZV9ub2RlKSB7CiAgICAgICAgICAg
ICBwYXNfbG9ja19zd2l0Y2goaGVsZF9sb2NrLCBwYWdlX2xvY2spOwogICAgICAgICAgICAgaWYg
KHBhZ2UtPmxvY2tfcHRyICE9IHBhZ2VfbG9jaykKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
QEAgLTE0OSwxNCArMTQwLDE0IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9j
a19hbmQKICAgICAgICAgfQogCiAgICAgICAgIGRpZF9sb2NrX3F1aWNrbHkgPQotICAgICAgICAg
ICAgKCpoZWxkX2xvY2sgPT0gJm1hZ2F6aW5lLT5sb2NrICYmIHBhc19sb2NrX3RyeV9sb2NrKHBh
Z2VfbG9jaykpIHx8Ci0gICAgICAgICAgICAoKmhlbGRfbG9jayA9PSBwYWdlX2xvY2sgJiYgcGFz
X2xvY2tfdHJ5X2xvY2soJm1hZ2F6aW5lLT5sb2NrKSk7CisgICAgICAgICAgICAoKmhlbGRfbG9j
ayA9PSAmY2FjaGVfbm9kZS0+cGFnZV9sb2NrICYmIHBhc19sb2NrX3RyeV9sb2NrKHBhZ2VfbG9j
aykpIHx8CisgICAgICAgICAgICAoKmhlbGRfbG9jayA9PSBwYWdlX2xvY2sgJiYgcGFzX2xvY2tf
dHJ5X2xvY2soJmNhY2hlX25vZGUtPnBhZ2VfbG9jaykpOwogCiAgICAgICAgIGlmICghZGlkX2xv
Y2tfcXVpY2tseSkgewogICAgICAgICAgICAgaWYgKCpoZWxkX2xvY2spCiAgICAgICAgICAgICAg
ICAgcGFzX2xvY2tfdW5sb2NrKCpoZWxkX2xvY2spOwogCi0gICAgICAgICAgICBpZiAoJm1hZ2F6
aW5lLT5sb2NrID09IHBhZ2VfbG9jaykgeworICAgICAgICAgICAgaWYgKCZjYWNoZV9ub2RlLT5w
YWdlX2xvY2sgPT0gcGFnZV9sb2NrKSB7CiAgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9jayhw
YWdlX2xvY2spOwogICAgICAgICAgICAgICAgICpoZWxkX2xvY2sgPSBwYWdlX2xvY2s7CiAgICAg
ICAgICAgICAgICAgaWYgKHBhZ2UtPmxvY2tfcHRyICE9IHBhZ2VfbG9jaykKQEAgLTE2OCwyNiAr
MTU5LDI3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmQKIAogICAg
ICAgICAgICAgLyogVGhpcyBlbmZvcmNlcyB0aGF0OgogICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAtIE1hZ2F6aW5lIGxvY2tzIG11c3QgYmUgYWNxdWlyZWQgYmVmb3JlIHBhZ2UgbG9j
a3MuCisgICAgICAgICAgICAgICAtIENhY2hlIG5vZGUgcGFnZSBsb2NrcyBtdXN0IGJlIGFjcXVp
cmVkIGJlZm9yZSBwYWdlIGxvY2tzLgogICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAt
IE1hZ2F6aW5lIGxvY2tzIGFyZSBhY3F1aXJlZCBpbiBwb2ludGVyLWFzLWludGVnZXIgb3JkZXIg
cmVsYXRpdmUgdG8gb25lIGFub3RoZXIuICovCi0gICAgICAgICAgICBpZiAoJmV4Y2x1c2l2ZS0+
b3duZXJzaGlwX2xvY2sgPT0gcGFnZV9sb2NrIHx8ICZtYWdhemluZS0+bG9jayA8IHBhZ2VfbG9j
aykgewotICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2soJm1hZ2F6aW5lLT5sb2NrKTsKKyAg
ICAgICAgICAgICAgIC0gQ2FjaGUgbm9kZSBwYWdlIGxvY2tzIGFyZSBhY3F1aXJlZCBpbiBwb2lu
dGVyLWFzLWludGVnZXIgb3JkZXIgcmVsYXRpdmUgdG8gb25lCisgICAgICAgICAgICAgICAgIGFu
b3RoZXIuICovCisgICAgICAgICAgICBpZiAoJmV4Y2x1c2l2ZS0+b3duZXJzaGlwX2xvY2sgPT0g
cGFnZV9sb2NrIHx8ICZjYWNoZV9ub2RlLT5wYWdlX2xvY2sgPCBwYWdlX2xvY2spIHsKKyAgICAg
ICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZjYWNoZV9ub2RlLT5wYWdlX2xvY2spOwogICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2xvY2socGFnZV9sb2NrKTsKICAgICAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9jayhwYWdlX2xvY2spOwotICAgICAgICAgICAg
ICAgIHBhc19sb2NrX2xvY2soJm1hZ2F6aW5lLT5sb2NrKTsKKyAgICAgICAgICAgICAgICBwYXNf
bG9ja19sb2NrKCZjYWNoZV9ub2RlLT5wYWdlX2xvY2spOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAKLSAgICAgICAgUEFTX0FTU0VSVChwYWdlX2xvY2sgIT0gJm1hZ2F6aW5lLT5sb2NrKTsK
KyAgICAgICAgUEFTX0FTU0VSVChwYWdlX2xvY2sgIT0gJmNhY2hlX25vZGUtPnBhZ2VfbG9jayk7
CiAKICAgICAgICAgZ290X3JpZ2h0X2xvY2sgPSAocGFnZS0+bG9ja19wdHIgPT0gcGFnZV9sb2Nr
KTsKICAgICAgICAgaWYgKGdvdF9yaWdodF9sb2NrKQotICAgICAgICAgICAgcGFnZS0+bG9ja19w
dHIgPSAmbWFnYXppbmUtPmxvY2s7CisgICAgICAgICAgICBwYWdlLT5sb2NrX3B0ciA9ICZjYWNo
ZV9ub2RlLT5wYWdlX2xvY2s7CiAgICAgICAgIAogICAgICAgICBwYXNfbG9ja191bmxvY2socGFn
ZV9sb2NrKTsKLSAgICAgICAgKmhlbGRfbG9jayA9ICZtYWdhemluZS0+bG9jazsKKyAgICAgICAg
KmhlbGRfbG9jayA9ICZjYWNoZV9ub2RlLT5wYWdlX2xvY2s7CiAKICAgICAgICAgaWYgKGdvdF9y
aWdodF9sb2NrKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjE0LDggKzIwNiw5IEBAIHZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QocGFzX3MKICAgICBwYWdlLT51c2VfZXBvY2gg
PSBQQVNfRVBPQ0hfSU5WQUxJRDsKIAogICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIHBhc19s
b2coIkNvbnN0cnVjdGluZyBwYWdlICVwIGZvciB2aWV3ICVwIGFuZCBjb25maWcgJXMuXG4iLAot
ICAgICAgICAgICAgICAgIHBhZ2UsIG93bmVyLCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX2dldF9zdHJpbmcocGFnZV9jb25maWcua2luZCkpOworICAgICAgICBwYXNfbG9nKCJDb25z
dHJ1Y3RpbmcgcGFnZSAlcCB3aXRoIGJvdW5kYXJ5ICVwIGZvciB2aWV3ICVwIGFuZCBjb25maWcg
JXMuXG4iLAorICAgICAgICAgICAgICAgIHBhZ2UsIHBhc19zZWdyZWdhdGVkX3BhZ2VfYm91bmRh
cnkocGFnZSwgcGFnZV9jb25maWcpLAorICAgICAgICAgICAgICAgIG93bmVyLCBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcocGFnZV9jb25maWcua2luZCkpOwogICAg
IH0KIAogICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2Vf
Y29uZmlnKSkKQEAgLTIyOCwyMiArMjIxLDI5IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25zdHJ1Y3QocGFzX3MKIAogICAgIHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMgPSAwOwogICAg
IAotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gob3duZXIpKSB7
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0
YTsKKyAgICBwYWdlLT52aWV3X2NhY2hlX2luZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlO
VF9NQVg7CisKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShv
d25lcikpIHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKIAot
ICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9k
aXJlY3Rvcnkob3duZXIpOwotICAgICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7Cisg
ICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5
KG93bmVyKTsKKyAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CiAKICAgICAgICAgUEFTX0FT
U0VSVChkaXJlY3RvcnktPm9iamVjdF9zaXplKTsKICAgICAgICAgcGFnZS0+b2JqZWN0X3NpemUg
PSBkaXJlY3RvcnktPm9iamVjdF9zaXplOwogICAgICAgICBQQVNfQVNTRVJUKHBhZ2UtPm9iamVj
dF9zaXplID09IGRpcmVjdG9yeS0+b2JqZWN0X3NpemUpOyAvKiBDaGVjayBmb3Igb3ZlcmZsb3dz
LiAqLworCisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2Nh
Y2hlX2NhcGFjaXR5KGRpcmVjdG9yeSkpIHsKKyAgICAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0
b3J5LT52aWV3X2NhY2hlX2luZGV4IDwgKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwor
ICAgICAgICAgICAgcGFnZS0+dmlld19jYWNoZV9pbmRleCA9IGRpcmVjdG9yeS0+dmlld19jYWNo
ZV9pbmRleDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9y
eS0+dmlld19jYWNoZV9pbmRleCA9PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CiAg
ICAgfSBlbHNlCiAgICAgICAgIHBhZ2UtPm9iamVjdF9zaXplID0gMDsKIAogICAgIHBhZ2UtPmlz
X2luX3VzZV9mb3JfYWxsb2NhdGlvbiA9IGZhbHNlOwogICAgIHBhZ2UtPmlzX2NvbW1pdHRpbmdf
ZnVsbHkgPSBmYWxzZTsKLSAgICBwYWdlLT5hdm9pZF9saW5lX2FsbG9jYXRvciA9IGZhbHNlOwog
CiAgICAgaWYgKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplICE9IHBhZ2VfY29uZmlnLmJhc2Uu
Z3JhbnVsZV9zaXplKSB7CiAgICAgICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2Vf
Y291bnRzOwpAQCAtNTA2LDggKzUwNiw4IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb21t
aXRfZnVsbHkoCiAgICAgICAgICAgICAgICAgICAgIGNvbW1pdF9zcGFuLnRvdGFsX2J5dGVzKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVt
X2FkZCgKLSAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KG93bmVyKSwKLSAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtLAorICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShvd25lciksCisg
ICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9y
X3NwZWN0cnVtLAogICAgICAgICAgICAgICAgICAgICBjb21taXRfc3Bhbi50b3RhbF9ieXRlcyk7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3BhZ2UuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYs
NiArMjYsNyBAQAogI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9QQUdFX0gKICNkZWZpbmUgUEFTX1NF
R1JFR0FURURfUEFHRV9ICiAKKyNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCiAjaW5j
bHVkZSAicGFzX2JpdHZlY3Rvci5oIgogI2luY2x1ZGUgInBhc19jb25maWcuaCIKICNpbmNsdWRl
ICJwYXNfZnJlZV9yYW5nZV9raW5kLmgiCkBAIC02Nyw5ICs2OCw3IEBAIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9wYWdlIHsKICAgICBib29sIGVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVl
bl9kZWZlcnJlZDsKIAogICAgIC8qIFRoaXMgaXMgaGFuZHkgZm9yIGRlYnVnZ2luZy4gKi8KLSAg
ICBib29sIGlzX2NvbW1pdHRpbmdfZnVsbHkgOiAxOwotCi0gICAgYm9vbCBhdm9pZF9saW5lX2Fs
bG9jYXRvciA6IDE7CisgICAgYm9vbCBpc19jb21taXR0aW5nX2Z1bGx5OwogCiAgICAgdW5zaWdu
ZWQgb2JqZWN0X3NpemU7IC8qIENhY2hpbmcgdGhpcyBoZXJlIGlzIGdyZWF0IGZvciBwZXJmb3Jt
YW5jZS4gKi8KIApAQCAtMTA1LDYgKzEwNCw3IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdl
IHsKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IG93bmVyOwogICAgIAogICAgIHVpbnQxNl90IG51
bV9ub25fZW1wdHlfd29yZHM7CisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCB2aWV3X2NhY2hlX2lu
ZGV4OwogCiAgICAgdW5zaWduZWQgYWxsb2NfYml0c1sxXTsKIH07CkBAIC0yOTAsNiArMjkwLDM0
IEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2dyYW51bGVfdXNlX2NvdW4KICAgICAgICAgcGFn
ZS0+YWxsb2NfYml0cyArIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY193b3Jk
cyhwYWdlX2NvbmZpZykpOwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbAorcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KAorICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2UqIHBhZ2UsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25m
aWcpCit7CisgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIHVzZV9jb3VudHM7CisgICAg
dWludHB0cl90IG51bV9ncmFudWxlczsKKyAgICB1aW50cHRyX3QgZ3JhbnVsZV9pbmRleDsKKyAg
ICAKKyAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CisKKyAgICBp
ZiAoIXBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IAorICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA9PSBwYWdlX2NvbmZpZy5iYXNl
LmdyYW51bGVfc2l6ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHVzZV9jb3Vu
dHMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2dldF9ncmFudWxlX3VzZV9jb3VudHMocGFnZSwgcGFn
ZV9jb25maWcpOworICAgIG51bV9ncmFudWxlcyA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXpl
IC8gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemU7CisgICAgCisgICAgZm9yIChncmFudWxl
X2luZGV4ID0gbnVtX2dyYW51bGVzOyBncmFudWxlX2luZGV4LS07KSB7CisgICAgICAgIGlmICgh
dXNlX2NvdW50c1tncmFudWxlX2luZGV4XSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19zZWdyZWdhdGVkX3BhZ2UqCiBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeSh2b2lk
KiBib3VuZGFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Zy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1
Miw3IEBAIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yOwogc3RydWN0IHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnOwogc3RydWN0IHBhc19wYWdlX3NoYXJpbmdfcG9vbDsKIHN0cnVjdCBwYXNfcGh5
c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uOwotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwogc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2U7CiBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWc7CkBAIC02Niw3ICs2Niw3IEBAIHR5cGVk
ZWYgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3IgcGFzX2wKIHR5cGVkZWYgc3RydWN0IHBhc19o
ZWFwX3J1bnRpbWVfY29uZmlnIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnOwogdHlwZWRlZiBzdHJ1
Y3QgcGFzX3BhZ2Vfc2hhcmluZ19wb29sIHBhc19wYWdlX3NoYXJpbmdfcG9vbDsKIHR5cGVkZWYg
c3RydWN0IHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24gcGFzX3BoeXNpY2FsX21lbW9y
eV90cmFuc2FjdGlvbjsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVm
IHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnOwpAQCAtNzYsNyArNzYsNyBAQCB0eXBlZGVmIHN0cnVj
dCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIHBhCiAKIHR5cGVkZWYgcGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5KgogKCpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19zaGFyZWRf
cGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IpKAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAs
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKyAgICBw
YXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5KTsKIHR5cGVkZWYgdm9pZCAoKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2Rl
YWxsb2NfZnVuYykocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50cHRyX3QgYmVnaW4pOwogCkBAIC04Niw3ICs4Niw3IEBAIHR5cGVkZWYgcGFzX2FsbG9jYXRp
b25fcmVzdWx0CiB0eXBlZGVmIGJvb2wKICgqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfc3Bl
Y2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3N0YXJ0X2FsbG9jYXRpbmdfaW5fcHJpbW9yZGlhbF9w
YXJ0aWFsX3ZpZXcpKAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX3Nl
Z3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpOworICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSk7CiB0eXBlZGVmIGJvb2wgKCpwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfcmVmaWxsKSgKICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgcGFzX2FsbG9jYXRvcl9jb3Vu
dHMqIGNvdW50cyk7CkBAIC05NCw3ICs5NCw3IEBAIHR5cGVkZWYgdm9pZCAoKnBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmkKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2Us
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfbG9j
a19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyB7CkBAIC0xNTMsNiArMTUzLDkgQEAgc3RydWN0IHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnIHsKICAgICAgICBvZiBiaXRzIGdvZXMgY2xlYXIuICovCiAgICAgYm9vbCBl
bmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb247CiAKKyAgICAvKiBUZWxs
cyBpZiB3ZSB1c2UgdGhlIHZpZXcgY2FjaGUgZm9yIHRoaXMgc2l6ZSBjbGFzcy4gKi8KKyAgICBi
b29sIGVuYWJsZV92aWV3X2NhY2hlOworCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yIHNoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxl
Y3RvcjsKIAogICAgIC8qIFRoZXNlIHR3byBnZXQgZmlsbGVkIGluIHdpdGggdGhlIFBBU19TRUdS
RUdBVEVEX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OUygpIG1hY3JvLiAqLwpAQCAtMTgzLDcg
KzE4Niw3IEBAIFBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX21lZGl1bV9zZWdyZWdhdGUKICAgICBQ
QVNfQVBJIGJvb2wgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9s
b2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxfdmll
dyggXAogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIFwKICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsLCBcCi0gICAgICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpOyBcCisgICAgICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSk7IFwKICAgICBQ
QVNfQVBJIGJvb2wgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9s
b2NhbF9hbGxvY2F0b3JfcmVmaWxsKCBcCiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFs
bG9jYXRvciwgXAogICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKTsgXApAQCAt
MTkyLDcgKzE5NSw3IEBAIFBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX21lZGl1bV9zZWdyZWdhdGUK
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBcCiAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldywgXAogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
LCBcCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LCBcCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
IFwKICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiAKICNk
ZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05TKGxvd2VyX2Nh
c2VfcGFnZV9jb25maWdfbmFtZSkgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICAgICBQQVNfTkVW
RVJfSU5MSU5FIGJvb2wgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXpl
ZF9sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxf
dmlldyggXAogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIFwKICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsLCBcCi0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpIFwKKyAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KSBcCiAgICAg
eyBcCiAgICAgICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0YXJ0X2FsbG9jYXRpbmdf
aW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcoIFwKICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFy
dGlhbCwgc2l6ZV9kaXJlY3RvcnksIChwYWdlX2NvbmZpZ192YWx1ZSkpOyBcCkBAIC02NCw3ICs2
NCw3IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciog
YWxsb2NhdG9yLCBcCiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywgXAogICAgICAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLCBcCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBcCisgICAgICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksIFwKICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2Rl
IGhlYXBfbG9ja19ob2xkX21vZGUpIFwKICAgICB7IFwKICAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZ2UoIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfdXRpbHMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192ZXJp
ZnlfZGVhbGxvCiAgICAgXAogICAgIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5KiBcCiAgICAgbmFtZSAjIyBfcGFnZV9jb25maWdfc2VsZWN0X3NoYXJlZF9wYWdl
X2RpcmVjdG9yeSggXAotICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7IFwKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSk7IFwKICAgICBcCiAgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgXAog
ICAgIG5hbWUgIyMgX2RlYWxsb2NfZnVuYyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwg
dWludHB0cl90IGJlZ2luKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX3V0aWxzX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5l
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAg
ICBcCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBcCiAgICAgbmFt
ZSAjIyBfcGFnZV9jb25maWdfc2VsZWN0X3NoYXJlZF9wYWdlX2RpcmVjdG9yeSggXAotICAgICAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KSBcCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSkgXAog
ICAgIHsgXAogICAgICAgICBQQVNfVU5VU0VEX1BBUkFNKHNpemVfZGlyZWN0b3J5KTsgXAogICAg
ICAgICBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9wYWdlX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwxNSBAQAogCiAjaW5jbHVk
ZSAicGFzX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sb2cuaCIKLSNpbmNsdWRlICJwYXNfbWFn
YXppbmUuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9iYXNlX2lubGluZXMuaCIKLSNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X2RlYWxsb2NhdGlvbl9tb2RlLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2UuaCIKICNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2lubGluZXMuaCIKLSNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX25vZGUuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC00NCwy
MiArNDQsMjIgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHVuc2lnbmVkCiBwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlf
dG9fZmlyc3Rfb2JqZWN0KAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKICAgICB1aW50cHRyX3QgcmVzdWx0OwogCiAgICAg
UEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwogICAgIAotICAgIGlmICgh
cGFnZSB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gocGFnZS0+b3duZXIp
KSB7CisgICAgaWYgKCFwYWdlIHx8IHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNp
dmUocGFnZS0+b3duZXIpKSB7CiAgICAgICAgIGlmICghcGFnZSkKICAgICAgICAgICAgIFBBU19B
U1NFUlQoZGlyZWN0b3J5KTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBkaXJlY3Rvcnkg
PSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAgICAgJnBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShwYWdlLT5vd25lciktPmRpcmVjdG9yeSk7CiAg
ICAgICAgIH0KIAotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSkKKyAgICAgICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251
bGwoJmRpcmVjdG9yeS0+ZGF0YSkKICAgICAgICAgICAgIC0+b2Zmc2V0X2Zyb21fcGFnZV9ib3Vu
ZGFyeV90b19maXJzdF9vYmplY3Q7CiAgICAgfQogCkBAIC03Niw3ICs3Niw3IEBAIHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3UKICAgIGJyaW5naW5nIHVwIHNoYXJlZCB2
aWV3cy4gKi8KIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZSwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBh
c19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzLAogICAgIHVpbnRwdHJfdCBlbmRf
Z3JhbnVsZV9pbmRleCwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZp
ZykKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3Nl
Z3JlZwogICAgIHVpbnRwdHJfdCBlbmRfb2ZfbGFzdF9vYmplY3Q7CiAgICAgdWludHB0cl90IG9i
amVjdF9zaXplOwogICAgIHVpbnRwdHJfdCBvZmZzZXQ7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogZGF0YTsKIAogICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcuYmFzZS5p
c19lbmFibGVkKTsKICAgICAKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgYm9vbCBwYXNfc2VncmVnCiAgICAgaWYgKCFkaXJlY3RvcnkpCiAgICAgICAgIHJldHVy
biBlbmRfZ3JhbnVsZV9vZmZzZXQgPT0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemU7CiAKLSAg
ICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xv
YWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7
CiAKICAgICBzdGFydF9vZl9maXJzdF9vYmplY3QgPQogICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KApAQCAtMjM1LDE0
ICsyMzUsMzMgQEAgUEFTX0FQSSBwYXNfbG9jayogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zdwogICAg
IHBhc19sb2NrKiBoZWxkX2xvY2ssCiAgICAgcGFzX2xvY2sqIHBhZ2VfbG9jayk7CiAKK3N0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tf
aW1wbCgKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAorICAgIHBhc19sb2NrKiogaGVs
ZF9sb2NrKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAK
KyAgICBwYXNfbG9jayogaGVsZF9sb2NrX3ZhbHVlOworICAgIHBhc19sb2NrKiBwYWdlX2xvY2s7
CisgICAgCisgICAgaGVsZF9sb2NrX3ZhbHVlID0gKmhlbGRfbG9jazsKKyAgICBwYWdlX2xvY2sg
PSBwYWdlLT5sb2NrX3B0cjsKKyAgICAKKyAgICBpZiAoUEFTX0xJS0VMWShoZWxkX2xvY2tfdmFs
dWUgPT0gcGFnZV9sb2NrKSkgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBh
c19sb2coIkdldHRpbmcgdGhlIHNhbWUgbG9jayBhcyBiZWZvcmUgKCVwKS5cbiIsIHBhZ2VfbG9j
ayk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAgKmhlbGRfbG9jayA9IHBhc19z
ZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfc2xvdyhwYWdlLCBoZWxkX2xvY2tfdmFsdWUsIHBh
Z2VfbG9jayk7Cit9CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19zZWdyZWdh
dGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9tb2RlKAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Uq
IHBhZ2UsCiAgICAgcGFzX2xvY2sqKiBoZWxkX2xvY2ssCiAgICAgcGFzX2xvY2tfbG9ja19tb2Rl
IGxvY2tfbW9kZSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykK
IHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCiAgICAgUEFT
X0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwogICAgIAogICAgIGlmIChwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2VfY29uZmlnKSkgewpAQCAtMjU1
LDE5ICsyNzQsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnCiAg
ICAgICAgIHJldHVybiBwYXNfbG9ja19zd2l0Y2hfd2l0aF9tb2RlKGhlbGRfbG9jaywgcGFnZS0+
bG9ja19wdHIsIHBhc19sb2NrX2xvY2tfbW9kZV90cnlfbG9jayk7CiAKICAgICBjYXNlIHBhc19s
b2NrX2xvY2tfbW9kZV9sb2NrOiB7Ci0gICAgICAgIHBhc19sb2NrKiBoZWxkX2xvY2tfdmFsdWU7
Ci0gICAgICAgIHBhc19sb2NrKiBwYWdlX2xvY2s7Ci0KLSAgICAgICAgaGVsZF9sb2NrX3ZhbHVl
ID0gKmhlbGRfbG9jazsKLSAgICAgICAgcGFnZV9sb2NrID0gcGFnZS0+bG9ja19wdHI7Ci0gICAg
ICAgIAotICAgICAgICBpZiAoUEFTX0xJS0VMWShoZWxkX2xvY2tfdmFsdWUgPT0gcGFnZV9sb2Nr
KSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygi
R2V0dGluZyB0aGUgc2FtZSBsb2NrIGFzIGJlZm9yZSAoJXApLlxuIiwgcGFnZV9sb2NrKTsKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgKmhlbGRfbG9jayA9
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfc2xvdyhwYWdlLCBoZWxkX2xvY2tfdmFs
dWUsIHBhZ2VfbG9jayk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tf
aW1wbChwYWdlLCBoZWxkX2xvY2spOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IH0KICAg
ICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CkBAIC0yODcsMTYgKzI5NCwx
NiBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2VncmVnCiAgICAgUEFTX0FT
U0VSVChyZXN1bHQpOwogfQogCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0
Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2luZWxpZ2libGVfaW1wbCgKK1BB
U19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfd2hp
bGVfaW5lbGlnaWJsZV9pbXBsKAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAg
cGFzX2xvY2sqKiBoZWxkX2xvY2ssCi0gICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSk7CisgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlKiBjYWNoZV9ub2RlKTsKIAogc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHZvaWQKLXBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3Jl
Ymlhc190b19tYWdhemluZV93aGlsZV9pbmVsaWdpYmxlKAorcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9z
d2l0Y2hfbG9ja19hbmRfcmViaWFzX3doaWxlX2luZWxpZ2libGUoCiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZSogcGFnZSwKICAgICBwYXNfbG9jayoqIGhlbGRfbG9jaywKLSAgICBwYXNfbWFnYXpp
bmUqIG1hZ2F6aW5lLAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSogY2FjaGVfbm9k
ZSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKICAgICBQ
QVNfQVNTRVJUKHBhZ2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CkBAIC0zMDYsOCArMzEzLDgg
QEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmVi
aWFzX3RvX21hZ2F6aW5lX3doaWxlX2luZWxpZ2libGVfaW1wbCgKLSAgICAgICAgcGFnZSwgaGVs
ZF9sb2NrLCBtYWdhemluZSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19h
bmRfcmViaWFzX3doaWxlX2luZWxpZ2libGVfaW1wbCgKKyAgICAgICAgcGFnZSwgaGVsZF9sb2Nr
LCBjYWNoZV9ub2RlKTsKIH0KIAogUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfdmVy
aWZ5X2dyYW51bGVzKHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpOwpAQCAtMzE3LDYgKzMyNCw4
IEBAIFBBU19BUEkgUEFTX05PX1JFVFVSTiBQQVNfVVNFRCB2b2lkIHBhc18KIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkCiBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9w
YWdlKHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUgZGVhbGxv
Y2F0aW9uX21vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFn
ZV9jb25maWcpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAt
MzkzLDExICs0MDIsMTUgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFn
ZQogICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IG93bmVyOwogICAgICAgICBvd25lciA9IHBh
Z2UtPm93bmVyOwogICAgICAgICAKLSAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lz
X2VsaWdpYmxlX2tpbmQob3duZXIpKSB7Ci0gICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRf
dmlld19pc19leGNsdXNpdmVfaXNoKG93bmVyKSkgeworICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfa2luZChvd25lcikgIT0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
a2luZCkgeworICAgICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNs
dXNpdmUob3duZXIpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAg
ICAgICAgICAgIHBhc19sb2coIk5vdGlmeWluZyBleGNsdXNpdmUtaXNoIGVsaWdpYmlsaXR5IG9u
IHZpZXcgJXAuXG4iLCBvd25lcik7Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19ub3RlX2VsaWdpYmlsaXR5KG93bmVyLCBwYWdlKTsKKyAgICAgICAgICAgICAgICAvKiBOT1RF
OiBJZiB0aGlzIGRlY2lkZXMgdG8gY2FjaGUgdGhlIHZpZXcgdGhlbiBpdCdzIHBvc3NpYmxlIHRo
YXQgd2Ugd2lsbCByZWxlYXNlIGFuZAorICAgICAgICAgICAgICAgICAgIHRoZW4gcmVhY3F1aXJl
IHRoaXMgcGFnZSdzIGxvY2suICovCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSgKKyAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKG93bmVyKSwKKyAgICAgICAgICAgICAgICAgICAg
cGFnZSwgZGVhbGxvY2F0aW9uX21vZGUsIHRocmVhZF9sb2NhbF9jYWNoZSwgcGFnZV9jb25maWcp
OwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9z
aGFyZWRfaGFuZGxlKiBzaGFyZWRfaGFuZGxlOwogICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3OwpAQCAtNDM2LDEwICs0NDksMTAgQEAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZQogICAgICAgICBiaXRfaW5kZXgg
PSBvZmZzZXRfaW5fcGFnZSA+PiBwYWdlX2NvbmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdDsKICAg
ICAgICAgb3duZXIgPSBwYWdlLT5vd25lcjsKIAotICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRf
dmlld19pc19leGNsdXNpdmVfaXNoKG93bmVyKSkKKyAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfc29tZV9leGNsdXNpdmUob3duZXIpKQogICAgICAgICAgICAgb2JqZWN0X3NpemUg
PSBwYWdlLT5vYmplY3Rfc2l6ZTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBvYmplY3Rf
c2l6ZSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkX25vbl9udWxsKAorICAgICAgICAgICAgb2JqZWN0X3NpemUgPSBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAg
ICZwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX3BhcnRpYWxfdmlld19mb3JfaW5kZXgoCiAg
ICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUo
b3duZXIpLAogICAgICAgICAgICAgICAgICAgICBiaXRfaW5kZXgsCkBAIC00NzMsNiArNDg2LDgg
QEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZQogc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlKAogICAgIHVp
bnRwdHJfdCBiZWdpbiwKICAgICBwYXNfbG9jayoqIGhlbGRfbG9jaywKKyAgICBwYXNfc2VncmVn
YXRlZF9kZWFsbG9jYXRpb25fbW9kZSBkZWFsbG9jYXRpb25fbW9kZSwKKyAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcgcGFnZV9jb25maWcpCiB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZTsK
QEAgLTQ4MSwzOCArNDk2LDExIEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19z
ZWdyZWcKICAgICAKICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYWRkcmVzc19h
bmRfcGFnZV9jb25maWcoYmVnaW4sIHBhZ2VfY29uZmlnKTsKICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX3N3aXRjaF9sb2NrKHBhZ2UsIGhlbGRfbG9jaywgcGFnZV9jb25maWcpOwotICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UocGFnZSwgYmVnaW4sIHBhZ2VfY29u
ZmlnKTsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wKLXBhc19zZWdyZWdhdGVk
X3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdCgKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBw
YWdlLAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAg
IHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzOwotICAgIHVpbnRwdHJfdCBu
dW1fZ3JhbnVsZXM7Ci0gICAgdWludHB0cl90IGdyYW51bGVfaW5kZXg7Ci0gICAgCi0gICAgUEFT
X0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwotCi0gICAgaWYgKCFwYWdlLT5u
dW1fbm9uX2VtcHR5X3dvcmRzKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICBpZiAo
cGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPT0gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3Np
emUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICB1c2VfY291bnRzID0gcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9nZXRfZ3JhbnVsZV91c2VfY291bnRzKHBhZ2UsIHBhZ2VfY29uZmlnKTsK
LSAgICBudW1fZ3JhbnVsZXMgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAvIHBhZ2VfY29u
ZmlnLmJhc2UuZ3JhbnVsZV9zaXplOwotICAgIAotICAgIGZvciAoZ3JhbnVsZV9pbmRleCA9IG51
bV9ncmFudWxlczsgZ3JhbnVsZV9pbmRleC0tOykgewotICAgICAgICBpZiAoIXVzZV9jb3VudHNb
Z3JhbnVsZV9pbmRleF0pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFn
ZSgKKyAgICAgICAgcGFnZSwgYmVnaW4sIGRlYWxsb2NhdGlvbl9tb2RlLCB0aHJlYWRfbG9jYWxf
Y2FjaGUsIHBhZ2VfY29uZmlnKTsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0
X2RpcmVjdG9yeV9mb3JfYWRkcmVzc19pbl9wYWdlKHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2Us
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKQEAg
LTUyNiwxMyArNTE0LDExIEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2RpcmVjdG9yeV9mb3Jf
YWQKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQob3duaW5nX3ZpZXcp
KSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
CisgICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4
Y2x1c2l2ZShvd25pbmdfdmlldyktPmRpcmVjdG9yeSk7CiAKICAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICByZXR1cm4gcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAg
ICZwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX3BhcnRpYWxfdmlld19mb3Jfb2JqZWN0KAog
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUob3du
aW5nX3ZpZXcpLCBiZWdpbiwgcGFnZV9jb25maWcpLT5kaXJlY3RvcnkpOwogCkBAIC01NDIsNyAr
NTI4LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZGlyZWN0b3J5X2Zvcl9hZAogICAgIH0K
IH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSoKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSoKIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2RpcmVjdG9yeV9mb3JfYWRkcmVz
c19hbmRfcGFnZV9jb25maWcodWludHB0cl90IGJlZ2luLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKQEAgLTU2NywxMiArNTUzLDEwIEBAIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfZ2V0X29iamVjdF9zaXplX2Zvcl8KICAgICBzd2l0Y2ggKHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2tpbmQob3duaW5nX3ZpZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJs
ZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmll
d19raW5kOgogICAgICAgICByZXR1cm4gcGFnZS0+b2JqZWN0X3NpemU7CiAKICAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICBy
ZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAg
ICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX3BhcnRpYWxfdmlld19mb3Jf
b2JqZWN0KAogICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9o
YW5kbGUob3duaW5nX3ZpZXcpLAogICAgICAgICAgICAgICAgIGJlZ2luLCBwYWdlX2NvbmZpZykt
PmRpcmVjdG9yeSktPm9iamVjdF9zaXplOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICsz
OSw3IEBACiAKIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyoKIHBhc19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKICAgICBzaXplX3QgaW5kZXgpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwpAQCAtNTcsNyArNTcsNyBAQCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdf
Y3JlYXRlKAogICAgIC8qIFdlIGF0dGFjaCB0byBhIHNoYXJlZCB2aWV3IGxhemlseSAtIG9uY2Ug
d2Uga25vdyB3aGF0IHdlJ3JlIGFsbG9jYXRpbmcuICovCiAgICAgcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9zaGFyZWRfdmlld19wdHJfc3RvcmUoJnJlc3VsdC0+c2hhcmVkX3ZpZXcsIE5VTEwpOwog
Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0
b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKKyAgICBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRpcmVj
dG9yeSk7CiAKICAgICBQQVNfQVNTRVJUKCh1aW50OF90KWluZGV4ID09IGluZGV4KTsKICAgICBy
ZXN1bHQtPmluZGV4ID0gKHVpbnQ4X3QpaW5kZXg7CkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X25vdGVfZWwKICAgICAgICAgaWYgKHZlcmJvc2UpCiAg
ICAgICAgICAgICBwYXNfbG9nKCIlcDogQWN0dWFsbHkgdGVsbGluZyB0aGUgZGlyZWN0b3J5IHRo
YXQgd2UncmUgZWxpZ2libGUuXG4iLCB2aWV3KTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZSgKLSAgICAgICAgICAgICZwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmll
dy0+ZGlyZWN0b3J5KS0+YmFzZSwKKyAgICAgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLT5iYXNl
LAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXdfbm9uX251
bGwodmlldykpOwogICAgIH0KICAgICB2aWV3LT5lbGlnaWJpbGl0eV9oYXNfYmVlbl9ub3RlZCA9
IHRydWU7CkBAIC0xNjMsNyArMTYzLDcgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXdfc2hvdWxkXwogCiBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnkocGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiB2aWV3KQogewotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFyZWRf
dmlldzsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWdfcHRyOwpA
QCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5IGNvbXB1dGVfc3VtbWFy
eSgKICAgICBzaXplX3QgZW5kX2luZGV4OwogICAgIHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0Owog
Ci0gICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KTsKKyAgICBzaXpl
X2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSk7CiAgICAgZGlyZWN0b3J5ID0gJnNpemVfZGly
ZWN0b3J5LT5iYXNlOwogICAgIHBhZ2VfY29uZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpOwogICAg
IHBhZ2VfY29uZmlnID0gKnBhZ2VfY29uZmlnX3B0cjsKQEAgLTI2Miw3ICsyNjIsNyBAQCBwYXNf
aGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfCiBib29sIHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHZp
ZXcpCiB7CiAgICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAg
ICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCisgICAgICAgICZwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJl
Y3RvcnkpLT5iYXNlLAogICAgICAgICB2aWV3LT5pbmRleCwgZWxpZ2libGUpOwogfQogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDcgQEAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURf
UEFSVElBTF9WSUVXX0gKIAogI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXdfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHIuaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRf
cHRyLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCIKICNpbmNsdWRl
ICJwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oIgpAQCAtMzgsMTYgKzM4LDE2IEBAIFBBU19C
RUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldzsKIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldzsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcgcGFzX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXcgewogICAgIHVuc2lnbmVkIGlubGluZV9hbGxvY19iaXRzOwogICAgIAogICAg
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyIHNoYXJlZF92aWV3OwotICAg
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rv
cnk7CisgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0
b3J5OwogICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIgYWxsb2NfYml0czsKIAog
ICAgIC8qIFRoZSBpbmRleCBjYW4gYmUgc21hbGwgc2luY2Ugd2Ugd291bGQgbmV2ZXIgY3JlYXRl
IGEgaGlnaC1pbmRleGVkIHBhcnRpYWwgdmlldy4gVGhhdCB3b3VsZCBub3QKQEAgLTk0LDcgKzk0
LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXdfbm9uXwogCiBQQVNfQVBJ
IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyoKIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
d19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAg
ICBzaXplX3QgaW5kZXgpOwogCiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3X25vdGVfZWxpZ2liaWxpdHkoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRf
cGFnZV9kaXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMJKHdv
cmtpbmcgY29weSkKQEAgLTE0NCw4ICsxNDQsNyBAQCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmll
dyogcGFzX3NlZ3JlZ2F0CiAgICAgICAgIGNvbmZpZy5hcmcgPSAmZGF0YTsKICAgICAgICAgZGF0
YS52aWV3ID0gTlVMTDsKIAotICAgICAgICBkaWRfZmluZF9zb21ldGhpbmcgPSBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkX3RvX3Rha2VfZmlyc3RfZWxpZ2libGUoCi0g
ICAgICAgICAgICAmY29uZmlnLCBQQVNfU0VHUkVHQVRFRF9TSEFSRURfUEFHRV9ESVJFQ1RPUllf
RklSU1RfRUxJR0lCTEVfS0lORCk7CisgICAgICAgIGRpZF9maW5kX3NvbWV0aGluZyA9IHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2ZvcndhcmRfdG9fdGFrZV9maXJzdF9lbGlnaWJs
ZSgmY29uZmlnKTsKIAogICAgICAgICBpZiAoZGlkX2ZpbmRfc29tZXRoaW5nKSB7CiAgICAgICAg
ICAgICBpZiAoIWRhdGEudmlldykgewpAQCAtMzUwLDcgKzM0OSw3IEBAIHRha2VfbGFzdF9lbXB0
eV9jb25zaWRlcl92aWV3KAogCiAgICAgZm9yIChwYXJ0aWFsX2luZGV4ID0gcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX2hhbmRsZV9udW1fdmlld3MocGFnZV9jb25maWcpOyBwYXJ0aWFsX2luZGV4LS07
KSB7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3Owot
ICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0
b3J5X29mX3BhcnRpYWw7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBz
aXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsOwogICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeV9vZl9wYXJ0aWFsOwogCiAgICAgICAgIHBhcnRpYWxfdmlldyA9IHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHJfbG9hZCgKQEAgLTM1OSw3
ICszNTgsNyBAQCB0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldygKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCiAgICAgICAgIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWwgPQotICAgICAgICAg
ICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQo
JnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5KTsK
ICAgICAgICAgZGlyZWN0b3J5X29mX3BhcnRpYWwgPSAmc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlh
bC0+YmFzZTsKICAgICAgICAgCiAgICAgICAgIGlmICghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X1NFVF9CSVQoCkBAIC00NTEsNyArNDUwLDcgQEAgcmV0dXJuX3Rha2VuX3BhcnRpYWxfdmlld3Nf
YWZ0ZXJfZGVjb21taQogICAgIHN3aXRjaF90b19vd25lcnNoaXAoc2hhcmVkX3ZpZXcsICZoZWxk
X2xvY2ssIHBhZ2VfY29uZmlnKTsKICAgICBmb3IgKHBhcnRpYWxfaW5kZXggPSBwYXNfc2VncmVn
YXRlZF9zaGFyZWRfaGFuZGxlX251bV92aWV3cyhwYWdlX2NvbmZpZyk7IHBhcnRpYWxfaW5kZXgt
LTspIHsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsX3ZpZXc7
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJl
Y3Rvcnlfb2ZfcGFydGlhbDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWw7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSogZGlyZWN0b3J5X29mX3BhcnRpYWw7CiAgICAgICAgIGJvb2wgc2V0X3Jlc3VsdDsKIApA
QCAtNDYzLDcgKzQ2Miw3IEBAIHJldHVybl90YWtlbl9wYXJ0aWFsX3ZpZXdzX2FmdGVyX2RlY29t
bWkKICAgICAgICAgcGFydGlhbF92aWV3LT5ub3RlZF9pbl9zY2FuID0gZmFsc2U7CiAKICAgICAg
ICAgc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbCA9Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmcGFydGlhbF92aWV3LT5k
aXJlY3RvcnkpOworICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgmcGFydGlhbF92aWV3LT5kaXJlY3RvcnkpOwogICAgICAgICBkaXJlY3Rv
cnlfb2ZfcGFydGlhbCA9ICZzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsLT5iYXNlOwogCiAgICAg
ICAgIFBBU19BU1NFUlQocGFydGlhbF92aWV3LT5pc19hdHRhY2hlZF90b19zaGFyZWRfaGFuZGxl
KTsKQEAgLTQ5Miw3ICs0OTEsNyBAQCByZXR1cm5fdGFrZW5fcGFydGlhbF92aWV3c191bmxvY2tf
dGhpc192CiAgICAgc3dpdGNoX3RvX293bmVyc2hpcChzaGFyZWRfdmlldywgJmhlbGRfbG9jaywg
cGFnZV9jb25maWcpOwogICAgIGZvciAocGFydGlhbF9pbmRleCA9IHBhc19zZWdyZWdhdGVkX3No
YXJlZF9oYW5kbGVfbnVtX3ZpZXdzKHBhZ2VfY29uZmlnKTsgcGFydGlhbF9pbmRleC0tOykgewog
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWxfdmlldzsKLSAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9v
Zl9wYXJ0aWFsOworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9k
aXJlY3Rvcnlfb2ZfcGFydGlhbDsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBk
aXJlY3Rvcnlfb2ZfcGFydGlhbDsKICAgICAgICAgYm9vbCBzZXRfcmVzdWx0OwogCkBAIC01MDIs
NyArNTAxLDcgQEAgcmV0dXJuX3Rha2VuX3BhcnRpYWxfdmlld3NfdW5sb2NrX3RoaXNfdgogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICBzaXplX2RpcmVjdG9yeV9vZl9w
YXJ0aWFsID0KLSAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKCZwYXJ0aWFsX3ZpZXctPmRpcmVjdG9yeSk7CisgICAgICAgICAg
ICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZwYXJ0aWFs
X3ZpZXctPmRpcmVjdG9yeSk7CiAgICAgICAgIGRpcmVjdG9yeV9vZl9wYXJ0aWFsID0gJnNpemVf
ZGlyZWN0b3J5X29mX3BhcnRpYWwtPmJhc2U7CiAKICAgICAgICAgc2V0X3Jlc3VsdCA9IHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFy
ZWRfcGFnZV9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaAkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEwICs0
Niw2IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3QKICAgICAgICAg
IC5uZXh0ID0gTlVMTCBcCiAgICAgIH0pCiAKLS8qIE5PVEU6IEl0IGRvZXNuJ3QgbWF0dGVyIHdo
aWNoIGtpbmQgb2YgZmlyc3RfZWxpZ2libGUgd2UgdXNlLiBXZSBqdXN0IHBpY2sgb25lLiAqLwot
I2RlZmluZSBQQVNfU0VHUkVHQVRFRF9TSEFSRURfUEFHRV9ESVJFQ1RPUllfRklSU1RfRUxJR0lC
TEVfS0lORCBcCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2J1
dF9ub3RfdGFibGVkX2tpbmQKLQogZXh0ZXJuIFBBU19BUEkgdW5zaWduZWQgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3Byb2JhYmlsaXR5X29mX2luZWxpZ2liaWxpdHk7CiAK
IFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeV9maW5kX2ZpcnN0X2VsaWdpYmxlKApJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSwzMiArMjksOTM2IEBACiAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5oIgogCisjaW5jbHVkZSAicGFzX2JpdGZpdF9oZWFwLmgiCiAjaW5jbHVk
ZSAicGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oIgogI2luY2x1ZGUgInBhc19leGNsdXNpdmVf
dmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgiCiAjaW5jbHVkZSAicGFzX21vbm90b25pY190aW1l
LmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCisjaW5jbHVkZSAicGFzX3BhZ2Vfc2hh
cmluZ19wb29sLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMu
aCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zdHJlYW0u
aCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oIgorI2luY2x1ZGUg
InBhc191dGlsaXR5X2hlYXAuaCIKKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZSgK
KyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgIHVuc2lnbmVkIG9iamVjdF9zaXpl
LAorICAgIHVuc2lnbmVkIGFsaWdubWVudCwKKyAgICBwYXNfaGVhcF9jb25maWcqIGhlYXBfY29u
ZmlnLAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZywKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlIGNyZWF0aW9uX21vZGUp
Cit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZCBwYWdlX2NvbmZpZ19raW5kOworCisgICAgcGFzX2hlYXBfbG9ja19h
c3NlcnRfaGVsZCgpOworCisgICAgaWYgKHBhZ2VfY29uZmlnKQorICAgICAgICBwYWdlX2NvbmZp
Z19raW5kID0gcGFnZV9jb25maWctPmtpbmQ7CisgICAgZWxzZQorICAgICAgICBwYWdlX2NvbmZp
Z19raW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9udWxsOworCisgICAgaWYg
KHBhZ2VfY29uZmlnKQorICAgICAgICBQQVNfQVNTRVJUKGhlYXBfY29uZmlnID09IHBhZ2VfY29u
ZmlnLT5iYXNlLmhlYXBfY29uZmlnX3B0cik7CisKKyAgICBwYXNfaGVhcF9jb25maWdfYWN0aXZh
dGUoaGVhcF9jb25maWcpOworCisgICAgaWYgKHZlcmJvc2UgJiYgcGFnZV9jb25maWcpIHsKKyAg
ICAgICAgcGFzX2xvZygibG9jYWwgYWxsb2NhdG9yIHNpemUgZm9yICVzOiAlenVcbiIsCisgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKHBh
Z2VfY29uZmlnX2tpbmQpLAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9jb25maWcoKnBhZ2VfY29uZmlnKSk7Cisg
ICAgfQorCisgICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCisgICAgICAg
IHNpemVvZihwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSksCisgICAgICAgICJwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSIsCisgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7
CisKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAgICBwYXNfbG9nKCIlZDogQ3JlYXRpbmcgZGly
ZWN0b3J5ICVwIGZvciAlcyB3aXRoIG9iamVjdF9zaXplID0gJXUsIGFsaWdubWVudCA9ICV1XG4i
LAorICAgICAgICAgICAgICAgIGdldHBpZCgpLCByZXN1bHQsIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZ19raW5kKSwKKyAgICAgICAgICAgICAg
ICBvYmplY3Rfc2l6ZSwgYWxpZ25tZW50KTsKKyAgICB9CisKKyAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfY29uc3RydWN0KAorICAgICAgICAmcmVzdWx0LT5iYXNlLCBwYWdlX2NvbmZpZ19r
aW5kLAorICAgICAgICBoZWFwLT5ydW50aW1lX2NvbmZpZy0+c2hhcmluZ19tb2RlLAorICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5kKTsKKworICAgIHJlc3VsdC0+aGVh
cCA9IGhlYXA7CisgICAgcmVzdWx0LT5vYmplY3Rfc2l6ZSA9IG9iamVjdF9zaXplOworCisgICAg
UEFTX0FTU0VSVChwYXNfaXNfcG93ZXJfb2ZfMihhbGlnbm1lbnQpKTsKKyAgICBQQVNfQVNTRVJU
KHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXplLCBhbGlnbm1lbnQpKTsKKyAgICByZXN1bHQtPmFs
aWdubWVudF9zaGlmdCA9IHBhc19sb2cyKGFsaWdubWVudCk7CisgICAgCisgICAgcmVzdWx0LT5i
YXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JT
OworICAgIHJlc3VsdC0+dmlld19jYWNoZV9pbmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJ
TlRfTUFYOworICAgIAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRy
X3N0b3JlKCZyZXN1bHQtPmRhdGEsIE5VTEwpOwogCi0jaWZkZWYgUEFTX0xJQk1BTExPQwotYm9v
bCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9IHRydWU7Ci0jZWxz
ZQotYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9IGZhbHNl
OwotI2VuZGlmCi0KLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29uc3RydWN0
KAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFnZV9jb25maWdfa2luZCwKLSAgICBwYXNfcGFnZV9z
aGFyaW5nX21vZGUgcGFnZV9zaGFyaW5nX21vZGUsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2tpbmQga2luZCkKKyAgICBpZiAocGFnZV9jb25maWcpCisgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfc3RvcmUoJnJlc3VsdC0+Yml0Zml0X3NpemVf
Y2xhc3MsIE5VTEwpOworICAgIGVsc2UgeworICAgICAgICBwYXNfYml0Zml0X2hlYXAqIGJpdGZp
dF9oZWFwOworICAgICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIGJpdGZpdF9zaXplX2NsYXNz
OworCisgICAgICAgIGJpdGZpdF9oZWFwID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9nZXRfYml0Zml0
KGhlYXAsIGhlYXBfY29uZmlnLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgUEFTX0FTU0VS
VChiaXRmaXRfaGVhcCk7CisgICAgICAgIAorICAgICAgICBiaXRmaXRfc2l6ZV9jbGFzcyA9Cisg
ICAgICAgICAgICBwYXNfYml0Zml0X2hlYXBfZW5zdXJlX3NpemVfY2xhc3MoCisgICAgICAgICAg
ICAgICAgYml0Zml0X2hlYXAsIHJlc3VsdCwgaGVhcF9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQp
OworICAgICAgICAKKyAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNz
X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICZyZXN1bHQtPmJpdGZpdF9zaXplX2NsYXNzLCBiaXRm
aXRfc2l6ZV9jbGFzcyk7CisgICAgfQorICAgIAorICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5uZXh0X2Zvcl9oZWFwLCBO
VUxMKTsKKworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NldF9kaWRfdHJ5X3Rv
X2NyZWF0ZV92aWV3X2NhY2hlKHJlc3VsdCwgZmFsc2UpOworCisgICAgc3dpdGNoIChjcmVhdGlv
bl9tb2RlKSB7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbml0aWFs
X2NyZWF0aW9uX21vZGU6CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9mdWxsX2NyZWF0aW9uX21vZGU6CisgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2ZpbmlzaF9jcmVhdGlvbihyZXN1bHQpOworICAgICAgICBicmVh
azsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2ZpbmlzaF9jcmVhdGlvbihwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5KQogewotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9jb25zdHJ1
Y3QoZGlyZWN0b3J5LCBwYWdlX2NvbmZpZ19raW5kLCBwYWdlX3NoYXJpbmdfbW9kZSwga2luZCk7
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcDsKKworICAgIGhlYXAgPSBkaXJlY3Rvcnkt
PmhlYXA7CisgICAgCisgICAgaWYgKCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3Np
emVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMpCisgICAgICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSk7CisgICAgaWYg
KCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxf
dmlld3MpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2VuYWJsZV9leGNs
dXNpdmVfdmlld3MoZGlyZWN0b3J5KTsKKyAgICBpZiAoIWhlYXAtPnJ1bnRpbWVfY29uZmlnLT5k
aXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSkKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY192aWV3X2NhY2hlKGRpcmVjdG9yeSk7Cit9
CisKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21v
ZGUpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CisKKyAgICBkYXRhID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5k
YXRhKTsKKworICAgIGlmIChkYXRhKQorICAgICAgICByZXR1cm4gZGF0YTsKKworICAgIHBhZ2Vf
Y29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVj
dG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKKworICAgIHBhc19oZWFwX2xvY2tfbG9ja19j
b25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOworCisgICAgZGF0YSA9IHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Cisg
ICAgaWYgKGRhdGEpIHsKKyAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxs
eShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorCisg
ICAgaWYgKHBhZ2VfY29uZmlnICYmIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2Vf
Y29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZSkgeworICAgICAgICBkYXRhID0gcGFzX2ltbW9ydGFs
X2hlYXBfYWxsb2NhdGUoCisgICAgICAgICAgICBzaXplb2YocGFzX2V4dGVuZGVkX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSksCisgICAgICAgICAgICAicGFzX2V4dGVuZGVkX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSIsCisgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9j
YXRpb24pOworCisgICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2Nv
dW50X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICYoKHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2RhdGEqKWRhdGEpLT5mdWxsX3VzZV9jb3VudHMsIE5VTEwpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIGRhdGEgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKKyAgICAg
ICAgICAgIHNpemVvZihwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKSwKKyAgICAg
ICAgICAgICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhIiwKKyAgICAgICAgICAg
IHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisgICAgfQorCisgICAgcGFzX2NvbXBhY3RfdGFnZ2Vk
X3Vuc2lnbmVkX3B0cl9zdG9yZSgmZGF0YS0+ZnVsbF9hbGxvY19iaXRzLCBOVUxMKTsKKyAgICBk
YXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCA9IDA7CisgICAg
ZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSAw
OworICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IDA7CisgICAgZGF0YS0+YWxs
b2NhdG9yX2luZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7CisgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgmZGF0YS0+
bmV4dF9mb3JfbGF5b3V0LCBOVUxMKTsKKworICAgIHBhc19mZW5jZSgpOworCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfc3RvcmUoJmRpcmVjdG9yeS0+ZGF0YSwg
ZGF0YSk7CisKKyAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9j
a19ob2xkX21vZGUpOworCisgICAgcmV0dXJuIGRhdGE7Cit9CisKK3Bhc19leHRlbmRlZF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9nZXRfZXh0ZW5kZWRfZGF0YSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5KQoreworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZp
ZzsKKworICAgIHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9n
ZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKKyAgICBQQVNfQVNT
RVJUKHBhZ2VfY29uZmlnKTsKKyAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vf
c2l6ZSA+IHBhZ2VfY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZSk7CisKKyAgICByZXR1cm4gKHBh
c19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqKQorICAgICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEp
OworfQorCit2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxs
b2NhdG9yKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICAKKyAg
ICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZF9pc191dGlsaXR5KGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19r
aW5kKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVsZCk7CisKKyAg
ICBpZiAoZGF0YS0+YWxsb2NhdG9yX2luZGV4ICE9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRf
TUFYKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfYWRkKGRpcmVjdG9yeSk7CisgICAgCisgICAgUEFTX0FTU0VSVChkYXRhLT5hbGxvY2F0
b3JfaW5kZXggPCAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7Cit9CisKK3ZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY192aWV3X2NhY2hlKAorICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgc2l6ZV90IGlu
ZGV4OworICAgIAorICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKworICAgIGlmIChw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5iYXNl
LnBhZ2VfY29uZmlnX2tpbmQpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NldF9kaWRfdHJ5X3RvX2NyZWF0ZV92aWV3X2NhY2hlKGRp
cmVjdG9yeSwgdHJ1ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eShkaXJlY3RvcnkpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCA9
PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CisgICAgCisgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfYWRkX3ZpZXdfY2FjaGUoZGlyZWN0b3J5KTsKKyAgICAKKyAgICBQ
QVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCA8IChwYXNfYWxsb2NhdG9yX2lu
ZGV4KVVJTlRfTUFYKTsKKworICAgIGZvciAoaW5kZXggPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfc2l6ZSgmZGlyZWN0b3J5LT5iYXNlKTsgaW5kZXgtLTspIHsKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3OworCisgICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfZ2V0KCZkaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKKworICAgICAgICBpZiAoIXBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykpCisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9j
a19pZl9vd25lZCh2aWV3KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2UodmlldyktPnZpZXdfY2FjaGVfaW5kZXggPSBkaXJlY3Rv
cnktPnZpZXdfY2FjaGVfaW5kZXg7CisgICAgICAgIAorICAgICAgICBwYXNfc2VncmVnYXRlZF92
aWV3X3VubG9ja19vd25lcnNoaXBfbG9jayh2aWV3KTsKKyAgICB9Cit9CisKK3ZvaWQgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cygKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIHRlbXBsYXRlX2RpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kIHBhZ2VfY29uZmlnX2tpbmQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcqIHBhZ2VfY29uZmlnX3B0cjsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdl
X2NvbmZpZzsKKyAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZTsKKyAgICBzaXplX3QgYWxsb2NfYml0
c19ieXRlczsKKyAgICB1bnNpZ25lZCBvZmZzZXQ7CisgICAgdW5zaWduZWQgYmVnaW47CisgICAg
dW5zaWduZWQgZW5kOworICAgIHVuc2lnbmVkKiBmdWxsX2FsbG9jX2JpdHM7CisgICAgdW5zaWdu
ZWQgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOworICAgIHNpemVfdCBpbmRleDsKKyAgICBwYXNf
YWxsb2NhdGlvbl9jb25maWcgYm9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnOworCisgICAgcGFz
X2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVsZCk7Cisg
ICAgaWYgKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcGFnZV9jb25maWdfa2luZCA9IGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5k
OworICAgIGlmIChwYWdlX2NvbmZpZ19raW5kID09IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfbnVsbCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIHBhZ2VfY29uZmlnX3B0ciA9
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhwYWdlX2NvbmZpZ19r
aW5kKTsKKyAgICBvYmplY3Rfc2l6ZSA9IGRpcmVjdG9yeS0+b2JqZWN0X3NpemU7CisgICAgCisg
ICAgdGVtcGxhdGVfZGlyZWN0b3J5ID0gcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9f
dGFibGVfZ2V0KAorICAgICAgICAmcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFi
bGVfaW5zdGFuY2UsCisgICAgICAgIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX2tl
eV9jcmVhdGUob2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnX2tpbmQpKTsKKyAgICBpZiAodGVtcGxh
dGVfZGlyZWN0b3J5KSB7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGEqIHRlbXBsYXRlX2RhdGE7CisKKyAgICAgICAgdGVtcGxhdGVfZGF0YSA9IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJnRlbXBsYXRlX2RpcmVjdG9yeS0+ZGF0
YSk7CisgICAgICAgIAorICAgICAgICBkYXRhLT5mdWxsX2FsbG9jX2JpdHMgPSB0ZW1wbGF0ZV9k
YXRhLT5mdWxsX2FsbG9jX2JpdHM7CisgICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91
bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0KKyAgICAgICAgICAgIHRlbXBsYXRlX2RhdGEtPm9mZnNl
dF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0OworICAgICAgICBkYXRhLT5vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9CisgICAgICAgICAg
ICB0ZW1wbGF0ZV9kYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0
X29iamVjdDsKKworICAgICAgICBpZiAocGFnZV9jb25maWdfcHRyLT5iYXNlLnBhZ2Vfc2l6ZSA+
IHBhZ2VfY29uZmlnX3B0ci0+YmFzZS5ncmFudWxlX3NpemUpIHsKKyAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9leHRlbmRlZF9kYXRhKGRpcmVjdG9yeSktPmZ1
bGxfdXNlX2NvdW50cyA9CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoCisgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlX2Rp
cmVjdG9yeSktPmZ1bGxfdXNlX2NvdW50czsKKyAgICAgICAgfQorCisgICAgICAgIHBhc19mZW5j
ZSgpOworICAgICAgICBkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHMgPQorICAgICAgICAg
ICAgdGVtcGxhdGVfZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgcGFnZV9jb25maWcgPSAqcGFnZV9jb25maWdfcHRyOworICAgIAor
ICAgIGFsbG9jX2JpdHNfYnl0ZXMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxs
b2NfYnl0ZXMocGFnZV9jb25maWcpOworICAgIGZ1bGxfYWxsb2NfYml0cyA9IHBhc19pbW1vcnRh
bF9oZWFwX2FsbG9jYXRlX3dpdGhfbWFudWFsX2FsaWdubWVudCgKKyAgICAgICAgYWxsb2NfYml0
c19ieXRlcywgc2l6ZW9mKHVuc2lnbmVkKSwKKyAgICAgICAgInBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2RhdGEvZnVsbF9hbGxvY19iaXRzIiwKKyAgICAgICAgcGFzX29iamVjdF9hbGxv
Y2F0aW9uKTsKKyAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3JlKCZkYXRh
LT5mdWxsX2FsbG9jX2JpdHMsIGZ1bGxfYWxsb2NfYml0cyk7CisgICAgcGFzX3plcm9fbWVtb3J5
KGZ1bGxfYWxsb2NfYml0cywgYWxsb2NfYml0c19ieXRlcyk7CisKKyAgICBiZWdpbiA9IHBhc19z
ZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3Rf
ZXhjbHVzaXZlKG9iamVjdF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9j
b25maWcpOworICAgIGVuZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9i
b3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnKTsKKworICAgIGRhdGEtPm9m
ZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0gYmVnaW47CisgICAgZGF0
YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSBlbmQ7
CisKKyAgICBmb3IgKG9mZnNldCA9IGJlZ2luOyBvZmZzZXQgPCBlbmQ7IG9mZnNldCArPSBvYmpl
Y3Rfc2l6ZSkgeworICAgICAgICBwYXNfYml0dmVjdG9yX3NldCgKKyAgICAgICAgICAgIGZ1bGxf
YWxsb2NfYml0cywKKyAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfaW5kZXhfb2Zfb2JqZWN0X2F0
X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkoCisgICAgICAgICAgICAgICAgb2Zmc2V0LCBwYWdl
X2NvbmZpZy5iYXNlKSwKKyAgICAgICAgICAgIHRydWUpOworICAgIH0KKyAgICAKKyAgICBmdWxs
X251bV9ub25fZW1wdHlfd29yZHMgPSAwOworICAgIGZvciAoaW5kZXggPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpOyBpbmRleC0tOykgewor
ICAgICAgICBpZiAoZnVsbF9hbGxvY19iaXRzW2luZGV4XSkKKyAgICAgICAgICAgIGZ1bGxfbnVt
X25vbl9lbXB0eV93b3JkcysrOworICAgIH0KKyAgICBQQVNfQVNTRVJUKGZ1bGxfbnVtX25vbl9l
bXB0eV93b3Jkcyk7CisKKyAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBwYWdl
X2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkgeworICAgICAgICBwYXNfZXh0ZW5kZWRfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBleHRlbmRlZF9kYXRhOworICAgICAgICBwYXNfcGFn
ZV9ncmFudWxlX3VzZV9jb3VudCogZnVsbF91c2VfY291bnRzOworICAgICAgICB1aW50cHRyX3Qg
bnVtX2dyYW51bGVzOworICAgICAgICBib29sIGluaXRpYWxpemVfcmVzdWx0OworCisgICAgICAg
IGV4dGVuZGVkX2RhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5k
ZWRfZGF0YShkaXJlY3RvcnkpOworCisgICAgICAgIG51bV9ncmFudWxlcyA9IHBhZ2VfY29uZmln
LmJhc2UucGFnZV9zaXplIC8gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemU7CisKKyAgICAg
ICAgZnVsbF91c2VfY291bnRzID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9tYW51
YWxfYWxpZ25tZW50KAorICAgICAgICAgICAgbnVtX2dyYW51bGVzICogc2l6ZW9mKHBhc19wYWdl
X2dyYW51bGVfdXNlX2NvdW50KSwKKyAgICAgICAgICAgIHNpemVvZihwYXNfcGFnZV9ncmFudWxl
X3VzZV9jb3VudCksCisgICAgICAgICAgICAicGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZGF0YS9mdWxsX3VzZV9jb3VudHMiLAorICAgICAgICAgICAgcGFzX29iamVjdF9h
bGxvY2F0aW9uKTsKKworICAgICAgICBpbml0aWFsaXplX3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMoCisgICAgICAgICAgICBOVUxMLCBkaXJl
Y3RvcnksIGZ1bGxfdXNlX2NvdW50cywgbnVtX2dyYW51bGVzLCBwYWdlX2NvbmZpZyk7CisKKyAg
ICAgICAgLyogVGhpcyBzaG91bGQgaGF2ZSBpbml0aWFsaXplZCBhbGwgb2YgdGhlIGJpdHMuICov
CisgICAgICAgIFBBU19BU1NFUlQoaW5pdGlhbGl6ZV9yZXN1bHQpOworCisgICAgICAgIHBhc19j
b21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9zdG9yZSgKKyAgICAgICAg
ICAgICZleHRlbmRlZF9kYXRhLT5mdWxsX3VzZV9jb3VudHMsCisgICAgICAgICAgICBmdWxsX3Vz
ZV9jb3VudHMpOworICAgIH0KKworICAgIHBhc19mZW5jZSgpOworICAgIGRhdGEtPmZ1bGxfbnVt
X25vbl9lbXB0eV93b3JkcyA9IGZ1bGxfbnVtX25vbl9lbXB0eV93b3JkczsKKyAgICBQQVNfQVNT
RVJUKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9PSBmdWxsX251bV9ub25fZW1wdHlf
d29yZHMpOworCisgICAgcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWdf
Y29uc3RydWN0KCZib290c3RyYXBfYWxsb2NhdGlvbl9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQp
OworICAgIAorICAgIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2FkZF9u
ZXcoCisgICAgICAgICZwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZV9pbnN0
YW5jZSwKKyAgICAgICAgZGlyZWN0b3J5LAorICAgICAgICBOVUxMLAorICAgICAgICAmYm9vdHN0
cmFwX2FsbG9jYXRpb25fY29uZmlnKTsKK30KKworcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcioKK3Bh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3Jfc2xvdygKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19iYXNl
bGluZV9hbGxvY2F0b3JfdGFibGVfaW5pdGlhbGl6ZV9pZl9uZWNlc3NhcnkoKTsKKyAgICAKKyAg
ICBmb3IgKDs7KSB7CisgICAgICAgIHVuc2lnbmVkIGFfaW5kZXg7CisgICAgICAgIHVuc2lnbmVk
IGJfaW5kZXg7CisgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIGFfYWxsb2NhdG9yOwor
ICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBiX2FsbG9jYXRvcjsKKyAgICAgICAgdW5z
aWduZWQgc2VsZWN0ZWRfaW5kZXg7CisgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIHNl
bGVjdGVkX2FsbG9jYXRvcjsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IHNlbGVjdGVkX2RpcmVjdG9yeTsKKworICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGRpcmVjdG9y
eS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OworICAgICAgICBpZiAoc2VsZWN0ZWRfaW5kZXgg
PCBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpIHsKKyAgICAgICAgICAgIHNlbGVjdGVkX2Fs
bG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBzZWxlY3RlZF9pbmRleDsK
KworICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5sb2NrKTsK
KworICAgICAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ICE9
IHNlbGVjdGVkX2luZGV4KSB7CisgICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZzZWxl
Y3RlZF9hbGxvY2F0b3ItPmxvY2spOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRfYWxsb2NhdG9yOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKHNlbGVjdGVkX2luZGV4IDwgMiAqIFBBU19OVU1fQkFTRUxJTkVf
QUxMT0NBVE9SUykKKyAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4IC09IFBBU19OVU1fQkFTRUxJ
TkVfQUxMT0NBVE9SUzsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBQQVNfQVNTRVJUKHNl
bGVjdGVkX2luZGV4ID09IDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBhX2luZGV4ID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJs
ZV9nZXRfcmFuZG9tX2luZGV4KCk7CisgICAgICAgICAgICBiX2luZGV4ID0gcGFzX2Jhc2VsaW5l
X2FsbG9jYXRvcl90YWJsZV9nZXRfcmFuZG9tX2luZGV4KCk7CisgICAgCisgICAgICAgICAgICBh
X2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBhX2luZGV4OworICAg
ICAgICAgICAgYl9hbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlICsgYl9p
bmRleDsKKworICAgICAgICAgICAgLyogSWYgaXQncyBjaGVhcCB0byBzdG9wIG9uZSBvZiB0aGVz
ZSB0aGVuIGp1c3QgcGljayBlaXRoZXIgb25lLiAqLworICAgICAgICAgICAgaWYgKCFwYXNfbG9j
YWxfYWxsb2NhdG9yX2lzX2FjdGl2ZSgmYV9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yKSkKKyAgICAg
ICAgICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGFfaW5kZXg7CisgICAgICAgICAgICBlbHNlIGlm
ICghcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19hY3RpdmUoJmJfYWxsb2NhdG9yLT51LmFsbG9jYXRv
cikpCisgICAgICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggPSBiX2luZGV4OworICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBhX3ZpZXc7Cisg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBiX3ZpZXc7CisKKyAgICAgICAgICAg
ICAgICBhX3ZpZXcgPSBhX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IudmlldzsKKyAgICAgICAgICAg
ICAgICBiX3ZpZXcgPSBiX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IudmlldzsKKworICAgICAgICAg
ICAgICAgIGlmICghYV92aWV3KQorICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZF9pbmRleCA9
IGFfaW5kZXg7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBzZWxl
Y3RlZF9pbmRleCA9IGJfaW5kZXg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICgh
cGFzX2NvbXBhcmVfYW5kX3N3YXBfdWludDE2X3dlYWsoJmRpcmVjdG9yeS0+YmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNfTlVNX0JBU0VMSU5FX0FMTE9D
QVRPUlMgKyBzZWxlY3RlZF9pbmRleCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIH0KKyAgICAKKyAgICAgICAgc2VsZWN0ZWRfYWxsb2NhdG9yID0gcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvcl90YWJsZSArIHNlbGVjdGVkX2luZGV4OworICAgIAorICAgICAgICBwYXNfbG9ja19s
b2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOworCisgICAgICAgIGlmIChkaXJlY3Rvcnkt
PmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9PSBzZWxlY3RlZF9pbmRleCkKKyAgICAgICAgICAg
IHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7CisKKyAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFz
ZWxpbmVfYWxsb2NhdG9yX2luZGV4ICE9IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyArIHNl
bGVjdGVkX2luZGV4KSB7CisgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnNlbGVjdGVkX2Fs
bG9jYXRvci0+bG9jayk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19udWxsKCZzZWxlY3RlZF9hbGxvY2F0b3It
PnUuYWxsb2NhdG9yKSkgeworICAgICAgICAgICAgcGFzX251bV9iYXNlbGluZV9hbGxvY2F0b3Jf
ZXZpY3Rpb25zKys7CisgICAgICAgICAgICBzZWxlY3RlZF9kaXJlY3RvcnkgPSBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3ItPnUuYWxsb2Nh
dG9yLnZpZXcpOworICAgICAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9kZXRhY2hfZGly
ZWN0b3J5KHNlbGVjdGVkX2FsbG9jYXRvcik7CisgICAgICAgICAgICBwYXNfZmVuY2UoKTsKKyAg
ICAgICAgICAgIHNlbGVjdGVkX2RpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0g
MiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKKyAgICAgICAgfQorCisgICAgICAgIHBh
c19iYXNlbGluZV9hbGxvY2F0b3JfYXR0YWNoX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3Is
IGRpcmVjdG9yeSk7CisKKyAgICAgICAgZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5k
ZXggPSBzZWxlY3RlZF9pbmRleDsKKworICAgICAgICByZXR1cm4gc2VsZWN0ZWRfYWxsb2NhdG9y
OworICAgIH0KK30KKworc3RhdGljIHBhc19zZWdyZWdhdGVkX3ZpZXcgdGFrZV9maXJzdF9lbGln
aWJsZV9kaXJlY3RfY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKAorICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQoreworICAgIHN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogc2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OworICAg
IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBydW50aW1lX2NvbmZpZzsKKworICAgIFBBU19URVNU
SU5HX0FTU0VSVChjb25maWctPmRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgPT0gcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfa2luZCk7CisgICAgCisgICAgc2l6ZV9kaXJlY3RvcnkgPSAo
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqKWNvbmZpZy0+ZGlyZWN0b3J5OworCisgICAg
cnVudGltZV9jb25maWcgPSBzaXplX2RpcmVjdG9yeS0+aGVhcC0+cnVudGltZV9jb25maWc7CisK
KyAgICBpZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVf
Ym91bmRfZm9yX3BhcnRpYWxfdmlld3MpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2VuYWJsZV9leGNsdXNpdmVfdmlld3Moc2l6ZV9kaXJlY3RvcnkpOworCisgICAgaWYg
KGNvbmZpZy0+aW5kZXggPj0gcnVudGltZV9jb25maWctPmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zv
cl9iYXNlbGluZV9hbGxvY2F0b3JzKQorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihzaXplX2RpcmVjdG9yeSk7CisKKyAgICBpZiAoY29u
ZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25v
X3ZpZXdfY2FjaGUpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0
ZV90bGNfdmlld19jYWNoZShzaXplX2RpcmVjdG9yeSk7CisgICAgCisgICAgaWYgKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FyZV9leGNsdXNpdmVfdmlld3NfZW5hYmxlZChzaXplX2Rp
cmVjdG9yeSkpIHsKKyAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2FzX3ZpZXdfbm9uX251bGwoCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19jcmVhdGUoc2l6ZV9kaXJlY3RvcnksIGNvbmZpZy0+aW5kZXgpKTsKKyAgICAgICAgaWYg
KHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coIiVwOiBjcmVhdGVkIGV4Y2x1c2l2ZSAl
cC5cbiIsCisgICAgICAgICAgICAgICAgICAgIHNpemVfZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9wdHIodmlldykpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAg
dmlldyA9IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19hc192aWV3X25vbl9udWxsKAorICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NyZWF0ZShzaXplX2RpcmVjdG9y
eSwgY29uZmlnLT5pbmRleCkpOworICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAg
cGFzX2xvZygiJXA6IGNyZWF0ZWQgcGFydGlhbCAlcC5cbiIsCisgICAgICAgICAgICAgICAgICAg
IHNpemVfZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpOworICAg
ICAgICB9CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygiJWQ6
ICVwICglcywgJXUpOiBub3cgaGF2ZSAlenUgdmlld3MuXG4iLAorICAgICAgICAgICAgICAgIGdl
dHBpZCgpLCBzaXplX2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoc2l6ZV9kaXJlY3RvcnktPmJhc2UucGFnZV9jb25m
aWdfa2luZCksCisgICAgICAgICAgICAgICAgc2l6ZV9kaXJlY3RvcnktPm9iamVjdF9zaXplLAor
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZzaXplX2RpcmVj
dG9yeS0+YmFzZSkpOworICAgIH0KKworICAgIHJldHVybiB2aWV3OworfQorCitwYXNfc2VncmVn
YXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2li
bGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KQor
eworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXRlcmF0ZV9jb25maWcgY29uZmlnOworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmll
dzsKKworICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgc2l6ZV9kaXJlY3RvcnktPmJh
c2UucGFnZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251
bGwpOworCisgICAgZGlyZWN0b3J5ID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOworCisgICAgdmll
dyA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1w
bCgKKyAgICAgICAgZGlyZWN0b3J5LCAmY29uZmlnLAorICAgICAgICB0YWtlX2ZpcnN0X2VsaWdp
YmxlX2RpcmVjdF9jcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2spOworCisgICAgaWYgKHZlcmJvc2Up
IHsKKyAgICAgICAgcGFzX2xvZygiVGFraW5nIGVsaWdpYmxlIHZpZXcgJXAgKCVzKS5cbiIsCisg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpLAorICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfc3RyaW5nKHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpKTsKKyAgICB9CisKKyAgICBQQVNfVEVTVElOR19BU1NF
UlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9pbmRleCh2aWV3KSwg
ZWxpZ2libGUpKTsKKyAgICAKKyAgICByZXR1cm4gdmlldzsKIH0KIAogdHlwZWRlZiBzdHJ1Y3Qg
eworICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZzsKKyAgICBwYXNf
bG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZTsKKyAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyogbXlfcGFnZV9jb25maWdfcHRyOworICAgIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF90YWtlX3Jlc3VsdCByZXN1bHQ7Cit9IHRha2VfbGFzdF9lbXB0eV9kYXRhOworCitzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQKK3Rha2VfbGFzdF9lbXB0eV9zaG91bGRfY29uc2lk
ZXJfdmlld19wYXJhbGxlbCgKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0dmVjdG9y
X3NlZ21lbnQgc2VnbWVudCwKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9j
b25maWcqIGNvbmZpZykKK3sKKyAgICB0YWtlX2xhc3RfZW1wdHlfZGF0YSogZGF0YTsKKworICAg
IGRhdGEgPSBjb25maWctPmFyZzsKKworICAgIHJldHVybiBzZWdtZW50LmVtcHR5X2JpdHM7Cit9
CisKK3N0YXRpYyBib29sCit0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldyhwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcqIGNvbmZpZykKK3sKKyAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisKKyAgICAvKiBXZSBwdXQgb3VyIHRha2VfbGFzdF9l
bXB0eSBsb2dpYyBpbiBjb25zaWRlcl92aWV3IGJlY2F1c2Ugc2hvdWxkX2NvbnNpZGVyX3ZpZXdf
cGFyYWxsZWwKKyAgICAgICBjYW5ub3QgcmVhbGx5IHRlbGwgaWYgYSBwYWdlIGNhbiBiZSB0YWtl
bi4gKi8KKworICAgIHRha2VfbGFzdF9lbXB0eV9kYXRhKiBkYXRhOworICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBzaXplX2RpcmVjdG9yeTsKKyAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNv
bW1pdF9sb2c7CisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGU7Cisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIG15X3BhZ2VfY29uZmlnX3B0cjsKKyAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBteV9wYWdlX2NvbmZpZzsKKyAgICBzaXplX3QgaW5k
ZXg7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBnZW5lcmljX3ZpZXc7CisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXc7CisgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKKyAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOworICAgIGJvb2wgZGlkX3Rha2VfYml0OworICAg
IHBhc19sb2NrKiBvd25lcnNoaXBfbG9jazsKKworICAgIGRpcmVjdG9yeSA9IGNvbmZpZy0+ZGly
ZWN0b3J5OworICAgIGluZGV4ID0gY29uZmlnLT5pbmRleDsKKworICAgIGRpZF90YWtlX2JpdCA9
IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5
LCBmYWxzZSk7CisgICAgCisgICAgaWYgKCFkaWRfdGFrZV9iaXQpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHNpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KilkaXJlY3Rvcnk7CisgICAgZ2VuZXJpY192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2dldChkaXJlY3RvcnksIGluZGV4KTsKKyAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfZXhjbHVzaXZlKGdlbmVyaWNfdmlldykpOworICAgIHZpZXcgPSBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9leGNsdXNpdmUoZ2VuZXJpY192aWV3KTsKKyAgICBoZWxkX2xvY2sgPSBO
VUxMOworICAgIGRhdGEgPSBjb25maWctPmFyZzsKKworICAgIG15X3BhZ2VfY29uZmlnX3B0ciA9
IGRhdGEtPm15X3BhZ2VfY29uZmlnX3B0cjsKKyAgICBoZWFwX2xvY2tfaG9sZF9tb2RlID0gZGF0
YS0+aGVhcF9sb2NrX2hvbGRfbW9kZTsKKyAgICBkZWNvbW1pdF9sb2cgPSBkYXRhLT5kZWNvbW1p
dF9sb2c7CisgICAgbXlfcGFnZV9jb25maWcgPSAqbXlfcGFnZV9jb25maWdfcHRyOworICAgIAor
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCIlcDogY29uc2lkZXJpbmcgZW1wdHkg
aW5kZXggJXp1LCB2aWV3ID0gJXAuXG4iLCBkaXJlY3RvcnksIGluZGV4LCB2aWV3KTsKKworICAg
IGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmln
KSkKKyAgICAgICAgb3duZXJzaGlwX2xvY2sgPSBwYXNfbG9ja19mb3Jfc3dpdGNoX2NvbmRpdGlv
bmFsbHkoJnBhc19oZWFwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgIGVsc2UKKyAg
ICAgICAgb3duZXJzaGlwX2xvY2sgPSAmdmlldy0+b3duZXJzaGlwX2xvY2s7CisKKyAgICBwYXNf
bG9ja19zd2l0Y2goJmhlbGRfbG9jaywgb3duZXJzaGlwX2xvY2spOworICAgIAorICAgIGlmIChw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSkKKyAg
ICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworICAgIAorICAgIGlmICghdmlldy0+
aXNfb3duZWQpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJu
b3Qgb3duZWQuXG4iKTsKKyAgICAgICAgCisgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tf
YW5kX3JldHVybl9mYWxzZTsKKyAgICB9CisgICAgCisgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfZm9yX2JvdW5kYXJ5KHZpZXctPnBhZ2VfYm91bmRhcnksIG15X3BhZ2VfY29uZmlnKTsK
KyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiZXhjbHVzaXZlIG1vZGUu
XG4iKTsKKyAgICAKKyAgICBpZiAoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRp
cmVjdG9yeSwgaW5kZXgsIGVsaWdpYmxlLCBmYWxzZSkpCisgICAgICAgIGdvdG8gcmVsZWFzZV9o
ZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZTsKKyAgICAgICAgCisgICAgaWYgKCF2aWV3LT5pc19v
d25lZCkgeworICAgICAgICBib29sIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0ID0gcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3Rv
cnksIGluZGV4KTsKKyAgICAgICAgUEFTX0FTU0VSVChyZXN1bHQpOworICAgICAgICBnb3RvIHJl
bGVhc2VfaGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qIFRo
ZSBlbXB0eSBiaXQganVzdCBtZWFucyB0aGF0IHRoZSBwYWdlICpjb3VsZCogYmUgZW1wdHkuIEl0
J3MgcG9zc2libGUgdG8gY29tZSBoZXJlIGFuZCBmaW5kCisgICAgICAgYSBub24tZW1wdHkgcGFn
ZS4gSW4gdGhhdCBjYXNlIHdlIG1ha2UgdGhlIHBhZ2UgZWxpZ2libGUgYWdhaW4gYnV0IGxlYXZl
IHRoZSBlbXB0eSBiaXQgY2xlYXIuICovCisgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX3F1
YWxpZmllc19mb3JfZGVjb21taXQocGFnZSwgbXlfcGFnZV9jb25maWcpKSB7CisgICAgICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygid2FzIG5vdCBlbXB0eS5cbiIpOworICAg
ICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0
X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9sb2Nr
X2FuZF9yZXR1cm5fZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qIFRoaXMgaGFzIGEgdmVyeSBz
aG9ydCByYWNlIHRoYXQgY2F1c2VzIHRoZSBkaXJlY3RvcnkgdG8gcG9zc2libHkgd2FzdGUgbWVt
b3J5OiBpZgorICAgICAgIGR1cmluZyB0aGlzIGJyaWVmIHdpbmRvdyB3ZSBoYXZlIHNvbWVvbmUg
dHJ5aW5nIHRvIGZpbmQgYW4gZWxpZ2libGUgcGFnZSwgdGhleSBtYXkKKyAgICAgICBlbmQgdXAg
YWxsb2NhdGluZyBhIG5ldyBvbmUuCisgICAgICAgCisgICAgICAgQnV0IHdlIGRlbGliZXJhdGVs
eSBrZWVwIHRoZSBkdXJhdGlvbiBvZiB0aGlzIHJhY2Ugd2luZG93IHNob3J0LiBXZSBtYWtlIHRo
ZSBwYWdlCisgICAgICAgaW5lbGlnaWJsZSBvbmx5IGR1cmluZyB0aGUgdGltZSBpdCB0YWtlcyB1
cyB0byBmaWd1cmUgb3V0IGhvdyB0byBkZWNvbW1pdCBpdCBhbmQgdG8KKyAgICAgICBhY3F1aXJl
IHRoZSBjb21taXQgbG9jay4gVGhlIGNvbW1pdCBsb2NrIHNob3VsZCBiZSB0cml2aWFsbHkgYXZh
aWxhYmxlIGhlcmUsIHNvCisgICAgICAgdGhhdCdzIGp1c3QgYSBDQVMuIEFmdGVyIHRoYXQsIHRo
ZSBwYWdlIGlzIG1hZGUgZWl0aGVyIGVsaWdpYmxlIG9yIGRlY29tbWl0dGVkLgorICAgICAgIEVp
dGhlciB3YXksIGlmIGl0J3MgdGhlIGZpcnN0IGVsaWdpYmxlLCBzb21lb25lIHdpbGwgdHJ5IHRv
IHVzZSBpdC4gQXQgdGhhdCBwb2ludCwKKyAgICAgICBpZiB3ZSBhcmUgbm90IGRvbmUsIHRoZXkg
d2lsbCB3YWl0IGZvciB1cyBzaW5jZSB3ZSBob2xkIHRoZSBjb21taXQgbG9jay4gKi8KKworICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2socGFnZSwgJmhlbGRfbG9jaywgbXlfcGFn
ZV9jb25maWcpOworCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxp
dHkobXlfcGFnZV9jb25maWcpKSB7CisgICAgICAgIC8qIFRoZSB1dGlsaXR5IGhlYXAgcmVxdWly
ZXMgdXMgdG8gaG9sZCB0aGUgaGVhcCBsb2NrIGFueXRpbWUgd2UnZCBob2xkIHRoZSBvd25lcnNo
aXAsIGNvbW1pdCwKKyAgICAgICAgICAgb3IgcGFnZSBsb2Nrcy4gSXQganVzdCBzbyBoYXBwZW5z
IHRoYXQgd2Ugd2VyZSBhbHJlYWR5IGhvbGRpbmcgdGhlIGhlYXAgbG9jaywgYW5kCisgICAgICAg
ICAgIHBhZ2Vfc3dpdGNoX2xvY2sgZG9lcyBub3RoaW5nIGZvciB1dGlsaXR5LiBTbyB3ZSBzaG91
bGQgc3RpbGwgYmUgaG9sZGluZyB0aGUgaGVhcCBsb2NrLiAqLworICAgICAgICBQQVNfQVNTRVJU
KGhlbGRfbG9jayA9PSBwYXNfbG9ja19mb3Jfc3dpdGNoX2NvbmRpdGlvbmFsbHkoJnBhc19oZWFw
X2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpKTsKKyAgICAgICAgcGFzX2hlYXBfbG9ja19hc3Nl
cnRfaGVsZCgpOworICAgIH0KKworICAgIFBBU19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVD
VE9SWV9HRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVsaWdpYmxlKSk7CisKKyAgICAvKiBJdCdz
IHRvdGFsbHkgcG9zc2libGUgdGhhdCB0aGUgZW1wdHkgYml0IGdvdCBzZXQgYWdhaW4uIFdlIHNo
b3VsZCBjbGVhciBpdCBmb3Igc3VyZSBub3cuICovCisgICAgUEFTX1NFR1JFR0FURURfRElSRUNU
T1JZX1NFVF9CSVQoZGlyZWN0b3J5LCBpbmRleCwgZW1wdHksIGZhbHNlKTsKKworICAgIFBBU19U
RVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQo
cGFnZSwgbXlfcGFnZV9jb25maWcpKTsKKyAgICAKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpIHsKKyAgICAgICAgUEFTX0FTU0VS
VChteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA9PSBteV9wYWdlX2NvbmZpZy5iYXNlLmdy
YW51bGVfc2l6ZSk7CisgICAgICAgIAorICAgICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxk
KCk7CisKKyAgICAgICAgdmlldy0+aXNfb3duZWQgPSBmYWxzZTsKKyAgICAgICAgaWYgKHZlcmJv
c2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIGlzX293bmVkID0gZmFsc2Ug
ZHVlIHRvIHV0aWxpdHkgZGVjb21taXQgaW4gdGFrZV9sYXN0X2VtcHR5XG4iLAorICAgICAgICAg
ICAgICAgICAgICB2aWV3KTsKKyAgICAgICAgfQorICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVj
b21taXQoCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIG15
X3BhZ2VfY29uZmlnKSwKKyAgICAgICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXpl
KTsKKyAgICAgICAgZGVjb21taXRfbG9nLT50b3RhbCArPSBteV9wYWdlX2NvbmZpZy5iYXNlLnBh
Z2Vfc2l6ZTsKKyAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVy
KCZwYWdlLT5iYXNlLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGlu
ZGV4KTsKKyAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgICAg
ICBkYXRhLT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgaWYgKHBhZ2UtPm51bV9ub25fZW1w
dHlfd29yZHMpIHsKKyAgICAgICAgYm9vbCBkZWNvbW1pdF9yZXN1bHQ7CisgICAgICAgIHNpemVf
dCBudW1fY29tbWl0dGVkX2dyYW51bGVzOworICAgICAgICAKKyAgICAgICAgLyogTm8gcGFydGlh
bCBkZWNvbW1pdCBpbiB0aGUgdXRpbGl0eSBoZWFwISAqLworICAgICAgICBQQVNfQVNTRVJUKCFw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSk7Cisg
ICAgICAgIAorICAgICAgICAvKiBXZSBrbm93IHRoYXQgdGhlcmUgbXVzdCBiZSBlbXB0eSBncmFu
dWxlcyBpbiB0aGlzIHBhZ2UsIHNpbmNlIGVpdGhlciB0aGUgZW1wdHkKKyAgICAgICAgICAgb3Ig
dGhlIHBhcnRseV9lbXB0eSBiaXQgd2FzIHNldC4gVGhvc2UgYml0cyB3b3VsZG4ndCBnZXQgc2V0
IHVubGVzcyB3ZSBub3RpY2VkCisgICAgICAgICAgIGFuIGVtcHR5IGdyYW51bGUuIElmIHdlIGRp
ZCB0cnkgdG8gYWxsb2NhdGUgZnJvbSB0aG9zZSBncmFudWxlcywgd2Ugd291bGQgZmlyc3QKKyAg
ICAgICAgICAgaGF2ZSB0byB0YWtlIGF3YXkgaXRzIGVsaWdpYmlsaXR5IGFuZCB0aGVuIGNsZWFy
IGl0cyBlbXB0eSBiaXRzLiBCdXQgd2Uga25vdyB0aGF0CisgICAgICAgICAgIHRoaXMgY291bGQg
bm90IGhhdmUgaGFwcGVuZWQgc2luY2UgKndlKiB0b29rIGF3YXkgaXRzIGVsaWdpYmlsaXR5LiAq
LworICAgICAgICAKKyAgICAgICAgZGVjb21taXRfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV90YWtlX2VtcHR5X2dyYW51bGVzKAorICAgICAgICAgICAgcGFnZSwgZGVjb21taXRfbG9nLCAm
aGVsZF9sb2NrLCBwYXNfcmFuZ2VfaXNfbm90X2xvY2tlZCwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CisgICAgICAgIAorICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7Cisg
ICAgICAgIAorICAgICAgICBudW1fY29tbWl0dGVkX2dyYW51bGVzID0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9nZXRfbnVtX2NvbW1pdHRlZF9ncmFudWxlcyhwYWdlKTsKKyAgICAgICAgUEFTX0FTU0VS
VChudW1fY29tbWl0dGVkX2dyYW51bGVzKTsKKyAgICAgICAgCisgICAgICAgIC8qIFRoZSBwYWdl
IGNhbiBiZWNvbWUgZWxpZ2libGUgYWdhaW4gbm93IHRoYXQgd2UndmUgbWFya2VkIHRoaW5ncyBm
b3IgZGVjb21taXQuICovCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2Rp
ZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAgIAor
ICAgICAgICBpZiAoZGVjb21taXRfcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcDogZGlkIHBhcnRseSB0YWtlIGluZGV4ICV6dVxu
IiwgZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KGRpcmVj
dG9yeSwgaW5kZXgpOworICAgICAgICAgICAgZGF0YS0+cmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2VfbG9ja3NfdW5hdmFpbGFibGU7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9s
b2NrLCAmdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICB2aWV3LT5pc19vd25lZCA9IGZh
bHNlOworICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgcGFzX2xvZygidmlldyAl
cCBoYXMgaXNfb3duZWQgPSBmYWxzZSBkdWUgdG8gbm9ybWFsIGRlY29tbWl0IGluIHRha2VfbGFz
dF9lbXB0eVxuIiwKKyAgICAgICAgICAgICAgICAgICAgdmlldyk7CisgICAgICAgIH0KKyAgICAg
ICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgICAgICAKKyAgICAgICAg
aWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX3Rha2VfcGh5c2ljYWxseSgKKyAgICAgICAgICAgICAg
ICBwYWdlLCBkZWNvbW1pdF9sb2csIHBhc19yYW5nZV9pc19ub3RfbG9ja2VkLCBoZWFwX2xvY2tf
aG9sZF9tb2RlKSkgeworICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZF9pc191dGlsaXR5KGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCkpOwor
ICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgJnZp
ZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAgICAgIHZpZXctPmlzX293bmVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgcGFzX2xvZygidmll
dyAlcCBoYXMgaXNfb3duZWQgPSB0cnVlIGR1ZSB0byB1bmRvIG9mIGRlY29tbWl0IGluIHRha2Vf
bGFzdF9lbXB0eVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcpOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRf
YmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleChk
aXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgZGF0YS0+cmVzdWx0
ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbG9ja3NfdW5hdmFpbGFibGU7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKHZlcmJv
c2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coIiVwOiBkaWQgZnVsbHkgdGFrZSBpbmRleCAlenVc
biIsIGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICAgICAgcGFzX2xvZygiRGVzdHJveWluZyBw
YWdlIGhlYWRlciBmb3IgdmlldyA9ICVwLCBwYWdlID0gJXAsIGJvdW5kYXJ5ID0gJXAgKCVwKSAi
CisgICAgICAgICAgICAgICAgICAgICJhcyBwYXJ0IG9mIGRlY29tbWl0LlxuIiwKKyAgICAgICAg
ICAgICAgICAgICAgdmlldywgcGFnZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdl
LCBteV9wYWdlX2NvbmZpZyksCisgICAgICAgICAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91bmRh
cnkpOworICAgICAgICB9CisgICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UuZGVzdHJveV9wYWdl
X2hlYWRlcigmcGFnZS0+YmFzZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChk
aXJlY3RvcnksIGluZGV4KTsKKyAgICB9CisgICAgCisgICAgZGF0YS0+cmVzdWx0ID0gcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKKyAgICByZXR1cm4gdHJ1ZTsKKworcmVsZWFz
ZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZToKKyAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRf
bG9jaywgTlVMTCk7CisKKyAgICAvKiBSZXR1cm5pbmcgZmFsc2UgbWVhbnMgdGhhdCB0aGUgYmFj
a3dhcmRzIGl0ZXJhdGlvbiBrZWVwcyBnb2luZyBhbmQgdGhpcyBzaG91bGQgZ2V0IGNhbGxlZAor
ICAgICAgIGFnYWluIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgdmlld3MgbWFya2VkIGVtcHR5LiAq
LworICAgIHJldHVybiBmYWxzZTsKK30KKworcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVz
dWx0CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5LAorICAgIHBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZywKKyAgICBwYXNfbG9ja19ob2xkX21v
ZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAgICAvKiBCZSBjYXJlZnVsOiBoZWFwX2xvY2tf
aG9sZF9tb2RlIGhlcmUgY2FuIGJlIHVucmVsYXRlZCB0byB3aGF0IHBhZ2VfY29uZmlnIHNheXMs
IHNpbmNlCisgICAgICAgd2UgbWF5IGJlIGFza2VkIGJ5IHRoZSBwaHlzaWNhbCBwYWdlIHNoYXJp
bmcgcG9vbCB0byBkZWNvbW1pdCBvbiBiZWhhbGYgb2YgYW55IG90aGVyIGhlYXAsCisgICAgICAg
aW5jbHVkaW5nIG9uZXMgdGhhdCBob2xkIHRoZSBoZWFwIGxvY2sgd2hpbGUgZG9pbmcgYnVzaW5l
c3MuICovCisKKyAgICB0YWtlX2xhc3RfZW1wdHlfZGF0YSBkYXRhOworICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyBjb25maWc7CisgICAgYm9vbCBkaWRfZmluZF9z
b21ldGhpbmc7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisKKyAg
ICBkaXJlY3RvcnkgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7CisKKyAgICBQQVNfVEVTVElOR19B
U1NFUlQoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kICE9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfbnVsbCk7CisKKyAgICBkYXRhLmRlY29tbWl0X2xvZyA9IGRlY29tbWl0X2xv
ZzsKKyAgICBkYXRhLmhlYXBfbG9ja19ob2xkX21vZGUgPSBoZWFwX2xvY2tfaG9sZF9tb2RlOwor
ICAgIGRhdGEucmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFi
bGU7CisKKyAgICBkYXRhLm15X3BhZ2VfY29uZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpOworCisg
ICAgY29uZmlnLmRpcmVjdG9yeSA9IGRpcmVjdG9yeTsKKyAgICBjb25maWcuc2hvdWxkX2NvbnNp
ZGVyX3ZpZXdfcGFyYWxsZWwgPSB0YWtlX2xhc3RfZW1wdHlfc2hvdWxkX2NvbnNpZGVyX3ZpZXdf
cGFyYWxsZWw7CisgICAgY29uZmlnLmNvbnNpZGVyX3ZpZXcgPSB0YWtlX2xhc3RfZW1wdHlfY29u
c2lkZXJfdmlldzsKKyAgICBjb25maWcuYXJnID0gJmRhdGE7CisKKyAgICBkaWRfZmluZF9zb21l
dGhpbmcgPQorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9iYWNrd2Fy
ZF90b190YWtlX2xhc3RfZW1wdHkoJmNvbmZpZyk7CisKKyAgICBpZiAoIWRpZF9maW5kX3NvbWV0
aGluZykKKyAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZh
aWxhYmxlOworCisgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZG9p
bmdfc2hhcmluZyhkaXJlY3RvcnkpKTsKKyAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2Ny
ZWF0ZV9kZWx0YSgKKyAgICAgICAgJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbCwKKyAg
ICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCisgICAgICAgICAgICBk
aXJlY3RvcnksCisgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmRf
c2VsZWN0X2Zvcl9zZWdyZWdhdGVkX2RpcmVjdG9yeSgKKyAgICAgICAgICAgICAgICBkaXJlY3Rv
cnktPmRpcmVjdG9yeV9raW5kKSkpOworICAgIAorICAgIHJldHVybiBkYXRhLnJlc3VsdDsKK30K
KworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgdWludHB0cl90IGJlZ2luLAorICAgIHBhc19oZWFwX2Nv
bmZpZyogY29uZmlnKQoreworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsKKyAgICB2aWV3
ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KGJlZ2luLCBjb25maWcpOworICAgIGlm
ICh2aWV3KQorICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJl
Y3Rvcnkodmlldyk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3Bhc19iYXNlbGluZV9hbGxvY2F0
b3JfcmVzdWx0CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zy
b21fdGxjKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisg
ICAgc2l6ZV90IGNvdW50LAorICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBf
bW9kZSwKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAgICB1bnNpZ25lZCogY2FjaGVk
X2luZGV4KQoreworICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHRsY19yZXN1bHQ7Cisg
ICAgdW5zaWduZWQgYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OworCisgICAgUEFTX0FTU0VSVChw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3Rvcnkp
KTsKKyAgICBQQVNfQVNTRVJUKCFwYXNfaGVhcF9jb25maWdfaXNfdXRpbGl0eShjb25maWcpKTsK
KyAgICAKKyAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFw
X2Vuc3VyZV9hbGxvY2F0b3JfaW5kZXgoCisgICAgICAgIGRpcmVjdG9yeS0+aGVhcCwKKyAgICAg
ICAgZGlyZWN0b3J5LAorICAgICAgICBjb3VudCwKKyAgICAgICAgY291bnRfbG9va3VwX21vZGUs
CisgICAgICAgIGNvbmZpZywKKyAgICAgICAgY2FjaGVkX2luZGV4KTsKKyAgICBwYXNfaGVhcF9s
b2NrX3VubG9jaygpOworCisgICAgLyogQ3VycmVudGx5IGFzIHNvb24gYXMgd2Ugc3dpdGNoIHRv
IFRMQyBhbGxvY2F0b3JzLCB3ZSBjYW5ub3QgcG9zc2libHkgaGF2ZSBhIGJhc2VsaW5lCisgICAg
ICAgYWxsb2NhdG9yLiBCdXQgaWYgd2UgZG8sIHdlIHNob3VsZCBzdG9wIGl0IG5vdy4gKi8KKyAg
ICBiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRv
cl9pbmRleDsKKyAgICBpZiAoYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4IDwgUEFTX05VTV9CQVNF
TElORV9BTExPQ0FUT1JTKSB7CisgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIGJhc2Vs
aW5lX2FsbG9jYXRvcjsKKyAgICAgICAgCisgICAgICAgIGJhc2VsaW5lX2FsbG9jYXRvciA9IHBh
c19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXg7Cisg
ICAgICAgIAorICAgICAgICBwYXNfbG9ja19sb2NrKCZiYXNlbGluZV9hbGxvY2F0b3ItPmxvY2sp
OworCisgICAgICAgIC8qIEl0J3MgcG9zc2libGUgdGhhdCBkdWUgdG8gYSByYWNlLCB0aGUgZGly
ZWN0b3J5J3MgaW5kZXggaGFzIGJlZW4gcmVhc3NpZ25lZCB0byBzb21ldGhpbmcKKyAgICAgICAg
ICAgZWxzZS4gQXQgd29yc3QsIHRoYXQgcmFjZSB3aWxsIG1lYW4gdGhhdCBzb21lIGJhc2VsaW5l
IGFsbG9jYXRvciB3aWxsIGJlIHVzZWQgZm9yCisgICAgICAgICAgIGFsbG9jYXRpb24uIFRoZXJl
J3Mgbm90IGEgd2hvbGUgbG90IHdlIGNhbiBkbyBhYm91dCB0aGF0LiBBdCB3b3JzdCwgaXQgbWVh
bnMgbGV0dGluZyB0aGUKKyAgICAgICAgICAgaGlnaCB3YXRlcm1hcmsgZ3JvdyBhIGJpdCBpbiBj
YXNlIG9mIGEgd2VpcmQgcmFjZS4gKi8KKyAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVf
YWxsb2NhdG9yX2luZGV4ID09IGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCkgeworICAgICAgICAg
ICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9kZXRhY2hfZGlyZWN0b3J5KGJhc2VsaW5lX2FsbG9j
YXRvcik7CisgICAgICAgICAgICBwYXNfZmVuY2UoKTsKKyAgICAgICAgICAgIGRpcmVjdG9yeS0+
YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9S
UzsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZiYXNlbGlu
ZV9hbGxvY2F0b3ItPmxvY2spOworICAgIH0KKyAgICAKKyAgICB0bGNfcmVzdWx0ID0gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yKAorICAgICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2dldChjb25maWcpLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0
b3JfaW5kZXgsCisgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAKKyAgICBQQVNf
QVNTRVJUKHRsY19yZXN1bHQuZGlkX3N1Y2NlZWQpOworCisgICAgcmV0dXJuIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHRsY19yZXN1bHQuYWxsb2NhdG9yLCBO
VUxMKTsKK30KKworcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jb21wdXRlX3N1bW1hcnlfZm9yX3Vub3duZWRfZXhjbHVzaXZlKAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBw
YWdlX2NvbmZpZzsKKyAgICBwYXNfaGVhcF9zdW1tYXJ5IHJlc3VsdDsKKyAgICBzaXplX3QgcGF5
bG9hZF9zaXplOworCisgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdf
a2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpOworCisgICAgZGF0
YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9y
eS0+ZGF0YSk7CisgICAgcGFnZV9jb25maWcgPSAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKKyAgICAK
KyAgICByZXN1bHQgPSBwYXNfaGVhcF9zdW1tYXJ5X2NyZWF0ZV9lbXB0eSgpOworICAgIAorICAg
IHBheWxvYWRfc2l6ZSA9IChkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9v
Zl9sYXN0X29iamVjdCAtCisgICAgICAgICAgICAgICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3Bh
Z2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KTsKKyAgICAKKyAgICByZXN1bHQuZGVjb21taXR0
ZWQgKz0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemU7CisgICAgcmVzdWx0LmZyZWUgKz0gcGF5
bG9hZF9zaXplOworICAgIHJlc3VsdC5mcmVlX2RlY29tbWl0dGVkICs9IHBheWxvYWRfc2l6ZTsK
KyAgICAKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjayBjYWxsYmFjazsK
ICAgICB2b2lkKiBhcmc7CiB9IGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RhdGE7CkBAIC02OCwxNCAr
OTcyLDEzIEBAIHN0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0X29iamVjdF8KIAogICAg
IGRhdGEgPSBhcmc7CiAKLSAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2dldF9nbG9iYWwoZGF0YS0+ZGlyZWN0b3J5KS0+b2JqZWN0X3NpemUKLSAgICAgICAgICAg
ICAgID09IHBhc19yYW5nZV9zaXplKHJhbmdlKSk7CisgICAgUEFTX0FTU0VSVChkYXRhLT5kaXJl
Y3RvcnktPm9iamVjdF9zaXplID09IHBhc19yYW5nZV9zaXplKHJhbmdlKSk7CiAKICAgICByZXR1
cm4gZGF0YS0+Y2FsbGJhY2soZGF0YS0+ZGlyZWN0b3J5LCB2aWV3LCByYW5nZS5iZWdpbiwgZGF0
YS0+YXJnKTsKIH0KIAogYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFj
aF9saXZlX29iamVjdCgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNh
bGxiYWNrLAogICAgIHZvaWQqIGFyZykKIHsKQEAgLTg4LDEwICs5OTEsMTAgQEAgYm9vbCBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZQogCiAgICAgLyogVGhlIGNvb2wgdGhpbmcg
YWJvdXQgdGhpcyBsb29wIGlzIHRoYXQgaW4gY2FzZSBvZiByYWNlcyBpdCdsbCB0ZW5kIHRvIGdv
IGNoZWNrIG91dAogICAgICAgIG1vcmUgdmlldy4gKi8KLSAgICBmb3IgKGluZGV4ID0gMDsgaW5k
ZXggPCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7
CisgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Np
emUoJmRpcmVjdG9yeS0+YmFzZSk7ICsraW5kZXgpIHsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3OwogCi0gICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0
KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2dldCgmZGlyZWN0b3J5LT5iYXNlLCBpbmRleCk7CiAgICAgICAgIGlmICghcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19mb3JfZWFjaF9saXZlX29iamVjdCgKICAgICAgICAgICAgICAgICB2aWV3LCBm
b3JfZWFjaF9saXZlX29iamVjdF9vYmplY3RfY2FsbGJhY2ssICZkYXRhLCBwYXNfbG9ja19pc19u
b3RfaGVsZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDAsMTUgKzEwMDMsNjEg
QEAgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZQogICAgIHJldHVybiB0
cnVlOwogfQogCi1wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2Zvcl9vYmplY3QoCi0gICAgdWludHB0cl90IGJlZ2luLAotICAgIHBhc19oZWFw
X2NvbmZpZyogY29uZmlnKQordWludDhfdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92
aWV3X2NhY2hlX2NhcGFjaXR5KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OwotICAgIHZpZXcgPSBwYXNfc2Vn
cmVnYXRlZF92aWV3X2Zvcl9vYmplY3QoYmVnaW4sIGNvbmZpZyk7Ci0gICAgaWYgKHZpZXcpCi0g
ICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3
KTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
IGtpbmQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIGNvbmZpZzsKKworICAgIGtp
bmQgPSBkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZDsKKworICAgIGlmIChraW5kID09
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBjb25maWcgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25m
aWcoa2luZCk7CisgICAgaWYgKCFjb25maWctPmVuYWJsZV92aWV3X2NhY2hlKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICAKKyAgICByZXR1cm4gcGFzX2hlYXBfcnVudGltZV9jb25maWdfdmlld19j
YWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUoCisgICAgICAgIGRpcmVjdG9yeS0+aGVhcC0+
cnVudGltZV9jb25maWcsIGRpcmVjdG9yeS0+b2JqZWN0X3NpemUsIGNvbmZpZyk7Cit9CisKK3Np
emVfdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZSgK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQga2luZDsKKworICAgIGtpbmQgPSBkaXJlY3Rv
cnktPmJhc2UucGFnZV9jb25maWdfa2luZDsKKworICAgIGlmIChraW5kID09IHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCkKKyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9udWxsX2NvbmZpZygpOwor
ICAgIAorICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxv
Y2F0b3Jfc2l6ZV9mb3JfY29uZmlnKAorICAgICAgICAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfa2luZF9nZXRfY29uZmlnKGtpbmQpKTsKK30KKworcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMoCisgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9hbGxv
Y2F0b3Jfc2l6ZSgKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxf
YWxsb2NhdG9yX3NpemUoZGlyZWN0b3J5KSk7Cit9CisKK3ZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKQoreworICAgIHBhc19zdHJlYW1f
cHJpbnRmKAorICAgICAgICBzdHJlYW0sCisgICAgICAgICIlcChzZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5LCAldSwgJXAsICVzKSIsCisgICAgICAgIGRpcmVjdG9yeSwKKyAgICAgICAgZGlyZWN0
b3J5LT5vYmplY3Rfc2l6ZSwKKyAgICAgICAgZGlyZWN0b3J5LT5oZWFwLAorICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGlyZWN0b3J5LT5iYXNlLnBh
Z2VfY29uZmlnX2tpbmQpKTsKK30KKwordm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kdW1wX2Zvcl9zcGVjdHJ1bSgKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQqIGRpcmVj
dG9yeSkKK3sKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5j
ZShkaXJlY3RvcnksIHN0cmVhbSk7CiB9CiAKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oCShyZXZpc2lvbiAyODIyMzgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywzNCArMjcsMTkwIEBACiAjZGVmaW5lIFBB
U19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0gKIAogI2luY2x1ZGUgInBhc19hbGxvY2F0b3Jf
aW5kZXguaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3Nf
cHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0
ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFu
dWxlX3VzZV9jb3VudF9wdHIuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRfdW5zaWdu
ZWRfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19oZWFwX2Nv
bmZpZy5oIgorI2luY2x1ZGUgInBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmgiCiAjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAK
LVBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3Rh
Ymxpbmc7CitzdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0
YTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2V4dGVuZGVk
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9kYXRhOwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZGF0YSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhOwordHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGE7CisKK1BBU19ERUZJTkVf
Q09NUEFDVF9BVE9NSUNfUFRSKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cik7CisKK3N0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9m
aWVsZCkpIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHsKKyAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnkgYmFzZTsKKyAgICAKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwOwor
CisgICAgdW5zaWduZWQgb2JqZWN0X3NpemUgOiAyNzsKKyAgICB1bnNpZ25lZCBhbGlnbm1lbnRf
c2hpZnQgOiA1OworCisgICAgLyogVGhpcyBoYXMgYSBmdW5ueSBlbmNvZGluZyAobGV0IE4gPSBQ
QVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpOgorICAgICAgIAorICAgICAgIGluZGV4IGluIFsw
LCBOKSAgICAgPT4gYXR0YWNoZWQgdG8gaW5kZXgKKyAgICAgICBpbmRleCBpbiBbTiwgMk4pICAg
ID0+IGF0dGFjaGluZyB0byBpbmRleCAtIE4KKyAgICAgICAyTiAgICAgICAgICAgICAgICAgID0+
IGRldGFjaGVkCisgICAgICAgCisgICAgICAgSW4gdGhlIGRldGFjaGVkIHN0YXRlLCB0aGUgb25s
eSB3YXkgdG8gY2hhbmdlIHRoaXMgaXMgdG8gQ0FTIGl0LgorICAgICAgIAorICAgICAgIEluIHRo
ZSBhdHRhY2hlZCBhbmQgYXR0YWNoaW5nIHN0YXRlcywgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXgn
cyBsb2NrIHByb3RlY3RzIHRoaXMgZmllbGQuICovCisgICAgdWludDE2X3QgYmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4OworCisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCB2aWV3X2NhY2hlX2luZGV4
OyAvKiBUaGlzIGNvdWxkIGJlIGluIHRoZSBzaXplX2RpcmVjdG9yeV9kYXRhIGJ1dCB3ZSBwdXQg
aXQgaGVyZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVj
YXVzZSBpdCB0YWtlcyBsZXNzIHNwYWNlIHRvIHB1dCBpdCBoZXJlLiAqLworICAgIAorICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyIGRhdGE7CisgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciBiaXRmaXRfc2l6ZV9jbGFzczsKKworICAg
IC8qIFRoZSBvd25pbmcgc2VncmVnYXRlZCBoZWFwIGhvbGRzIHRoZXNlIGluIGEgc2luZ2x5IGxp
bmtlZCBsaXN0LiAqLworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3B0ciBuZXh0X2Zvcl9oZWFwOworfTsKKworc3RydWN0IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2RhdGEgeworICAgIHVuc2lnbmVkIG9mZnNldF9mcm9tX3BhZ2VfYm91bmRh
cnlfdG9fZmlyc3Rfb2JqZWN0OyAvKiBDYWNoZWQgdG8gbWFrZSByZWZpbGwgZmFzdC4gKi8KKyAg
ICB1bnNpZ25lZCBvZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVj
dDsgLyogQ2FjaGVkIHRvIG1ha2UgcmVmaWxsIGZhc3QuICovCisgICAgCisgICAgcGFzX2FsbG9j
YXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CisgICAgCisgICAgdWludDhfdCBmdWxsX251bV9u
b25fZW1wdHlfd29yZHM7CisKKyAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyIGZ1
bGxfYWxsb2NfYml0czsgLyogUHJlY29tcHV0ZWQgYWxsb2MgYml0cyBpbiB0aGUgY2FzZSB0aGF0
IGEgcGFnZSBpcyBlbXB0eS4gKi8KKyAgICBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlIG5leHRfZm9yX2xheW91dDsKK307CisKK3N0cnVjdCBwYXNfZXh0
ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhIHsKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kYXRhIGJhc2U7CisgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2Vf
Z3JhbnVsZV91c2VfY291bnRfcHRyIGZ1bGxfdXNlX2NvdW50czsKK307CisKK3N0YXRpYyBpbmxp
bmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXNf
dmlldyhwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHJl
dHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2NyZWF0ZShkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90Citw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICByZXR1cm4gKHNpemVfdCkxIDw8IChzaXpl
X3QpZGlyZWN0b3J5LT5hbGlnbm1lbnRfc2hpZnQ7Cit9CisKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZSgK
KyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgIHVuc2lnbmVkIG9iamVjdF9zaXpl
LAorICAgIHVuc2lnbmVkIGFsaWdubWVudCwKKyAgICBwYXNfaGVhcF9jb25maWcqIGhlYXBfY29u
ZmlnLAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZywKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlIGNyZWF0aW9uX21vZGUp
OworCitQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZmluaXNoX2Ny
ZWF0aW9uKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitzdGF0
aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGlkX3RyeV90b19j
cmVhdGVfdmlld19jYWNoZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5KQoreworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X21pc2Nf
Yml0KCZkaXJlY3RvcnktPmJhc2UpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X2RpZF90cnlfdG9fY3JlYXRlX3ZpZXdfY2FjaGUoCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBib29sIHZh
bHVlKQoreworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2V0X21pc2NfYml0
KCZkaXJlY3RvcnktPmJhc2UsIHZhbHVlKTsKK30KKworUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9kYXRhKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbnN1cmVf
ZGF0YSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAg
IHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKworUEFTX0FQSSBwYXNf
ZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKgorcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKKy8qIENhbGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4g
Ki8KK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxj
X2FsbG9jYXRvcigKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
KTsKKworc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2hh
c190bGNfYWxsb2NhdG9yKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsK
KyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgm
ZGlyZWN0b3J5LT5kYXRhKTsKKyAgICByZXR1cm4gZGF0YSAmJiBkYXRhLT5hbGxvY2F0b3JfaW5k
ZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7Cit9CisKKy8qIENhbGwgd2l0aCBo
ZWFwIGxvY2sgaGVsZC4gKi8KK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jcmVhdGVfdGxjX3ZpZXdfY2FjaGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSk7CisKKy8qIENhbGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KK1BB
U19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbmFibGVfZXhjbHVzaXZl
X3ZpZXdzKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwor
CitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4
Y2x1c2l2ZV92aWV3c19lbmFibGVkKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSog
ZGF0YTsKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICByZXR1cm4gZGF0YSAmJiBkYXRhLT5mdWxsX251
bV9ub25fZW1wdHlfd29yZHM7Cit9CisKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAorICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfQVBJIHBhc19wYWdl
X3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdAorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
dGFrZV9sYXN0X2VtcHR5KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCisgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogbG9nLAorICAgIHBhc19sb2Nr
X2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAotUEFTX0FQSSB2b2lkIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NvbnN0cnVjdCgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIHBh
Z2VfY29uZmlnX2tpbmQsCi0gICAgcGFzX3BhZ2Vfc2hhcmluZ19tb2RlIHBhZ2Vfc2hhcmluZ19t
b2RlLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kIGtpbmQpOworUEFTX0FQSSBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZm9yX29iamVjdCgKKyAgICB1aW50cHRyX3QgYmVnaW4sCisgICAgcGFzX2hlYXBfY29uZmln
KiBjb25maWcpOworCisvKiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgYSBkYXRh
LiBUaGF0J3MgYSB2YWxpZCBhc3N1bXB0aW9uIGlmIHdlIGhhdmUgZXhjbHVzaXZlcy4gKi8KK1BB
U19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jb21w
dXRlX3N1bW1hcnlfZm9yX3Vub3duZWRfZXhjbHVzaXZlKAorICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCiB0eXBlZGVmIGJvb2wgKCpwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjaykoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAg
ICAgdWludHB0cl90IGJlZ2luLAogICAgIHZvaWQqIGFyZyk7CiAKIFBBU19BUEkgYm9vbCBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdCgKLSAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNrLAogICAgIHZvaWQqIGFyZyk7
CiAKLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAotICAgIHVpbnRwdHJfdCBiZWdpbiwKLSAgICBwYXNfaGVh
cF9jb25maWcqIGNvbmZpZyk7CitQQVNfQVBJIHVpbnQ4X3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KTsKKworUEFTX0FQSSBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK1BBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleCBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMoCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK1BBU19BUEkgdm9p
ZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0p
OworCitQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9mb3Jf
c3BlY3RydW0oCisgICAgcGFzX3N0cmVhbSogc3RyZWFtLCB2b2lkKiBkaXJlY3RvcnkpOwogCiBQ
QVNfRU5EX0VYVEVSTl9DOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0
aW9uX21vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJp
Z2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX1NFR1JFR0FURURf
U0laRV9ESVJFQ1RPUllfQ1JFQVRJT05fTU9ERV9ICisjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1NJ
WkVfRElSRUNUT1JZX0NSRUFUSU9OX01PREVfSAorCisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisK
K1BBU19CRUdJTl9FWFRFUk5fQzsKKworZW51bSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jcmVhdGlvbl9tb2RlIHsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbml0
aWFsX2NyZWF0aW9uX21vZGUsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZnVs
bF9jcmVhdGlvbl9tb2RlCit9OworCit0eXBlZGVmIGVudW0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfY3JlYXRpb25fbW9kZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVh
dGlvbl9tb2RlOworCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGVfZ2V0X3N0cmluZygKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2Rl
KSB7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbml0aWFsX2NyZWF0
aW9uX21vZGU6CisgICAgICAgIHJldHVybiAiaW5pdGlhbCI7CisgICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9mdWxsX2NyZWF0aW9uX21vZGU6CisgICAgICAgIHJldHVybiAi
ZnVsbCI7CisgICAgfQorICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsK
KyAgICByZXR1cm4gTlVMTDsKK30KKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBB
U19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0NSRUFUSU9OX01PREVfSCAqLworCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDQ2ICsyMywx
MzEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5kZWYgUEFTX1NFR1JFR0FURURfU0la
RV9ESVJFQ1RPUllfSU5MSU5FU19ICi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNU
T1JZX0lOTElORVNfSAorI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RP
UllfSU5MSU5FU19ICisjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9S
WV9JTkxJTkVTX0gKIAogI2luY2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0Lmgi
CiAjaW5jbHVkZSAicGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIgogI2luY2x1ZGUgInBh
c19jb3VudF9sb29rdXBfbW9kZS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvci5oIgogI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
aGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5j
bHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAK
LXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1bnNpZ25lZAotcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3X25v
dF90YWJsZWRfcGFyYWxsZWwoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZlY3Rv
cl9zZWdtZW50IHNlZ21lbnQsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVf
Y29uZmlnKiBjb25maWcpCitQQVNfQVBJIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0Citw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAorICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgc2l6ZV90IGNv
dW50LAorICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKKyAgICBw
YXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KTsKKwor
UEFTX0FQSSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKgorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpOworCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl9yZXN1bHQKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVj
dF9hbGxvY2F0b3IoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKKyAgICBzaXplX3QgY291bnQsCisgICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xv
b2t1cF9tb2RlLAorICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAorICAgIHVuc2lnbmVkKiBj
YWNoZWRfaW5kZXgpCiB7Ci0gICAgUEFTX1VOVVNFRF9QQVJBTShjb25maWcpOworICAgIGlmIChw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3Rvcnkp
CisgICAgICAgICYmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSB8fCBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkpIHsKKyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxvY2F0b3JfZnJvbV90bGMoCisgICAgICAgICAgICBk
aXJlY3RvcnksIGNvdW50LCBjb3VudF9sb29rdXBfbW9kZSwgY29uZmlnLCBjYWNoZWRfaW5kZXgp
OworICAgIH0KKworICAgIGZvciAoOzspIHsKKyAgICAgICAgdW5zaWduZWQgaW5kZXg7CisgICAg
ICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKKworICAgICAgICBpbmRleCA9
IGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OworICAgICAgICBpZiAoaW5kZXgg
Pj0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTKQorICAgICAgICAgICAgYWxsb2NhdG9yID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KGRpcmVj
dG9yeSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYWxsb2NhdG9yID0gcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl90YWJsZSArIGluZGV4OworICAgICAgICAgICAgCisgICAgICAgICAgICBw
YXNfbG9ja19sb2NrKCZhbGxvY2F0b3ItPmxvY2spOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggIT0gaW5kZXgpIHsKKyAg
ICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJmFsbG9jYXRvci0+bG9jayk7CisgICAgICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBQ
QVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KGFsbG9jYXRv
ci0+dS5hbGxvY2F0b3IudmlldykgPT0gZGlyZWN0b3J5KTsKKworICAgICAgICByZXR1cm4gcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCisgICAgICAgICAgICAm
YWxsb2NhdG9yLT51LmFsbG9jYXRvciwgJmFsbG9jYXRvci0+bG9jayk7CisgICAgfQorfQorCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfbnVsbF9jb25maWcodm9pZCkKK3sKKyAgICBy
ZXR1cm4gUEFTX0xPQ0FMX0FMTE9DQVRPUl9TSVpFKDApOworfQorCitzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgc2l6ZV90IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9j
YXRvcl9zaXplX2Zvcl9jb25maWcoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgY29u
ZmlnKQoreworICAgIFBBU19BU1NFUlQoY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CisgICAgcmV0
dXJuIFBBU19MT0NBTF9BTExPQ0FUT1JfU0laRShjb25maWcubnVtX2FsbG9jX2JpdHMpOworfQor
CitzdGF0aWMgaW5saW5lIHBhc19hbGxvY2F0b3JfaW5kZXgKK3Bhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxsb2NhdG9yX3NpemUoc2l6ZV90
IHNpemUpCit7CisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCByZXN1bHQ7CisKKyAgICByZXN1bHQg
PSAocGFzX2FsbG9jYXRvcl9pbmRleCkoc2l6ZSAvIDgpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VCgoc2l6ZV90KXJlc3VsdCAqIDggPT0gc2l6ZSk7CiAgICAgCi0gICAgcmV0dXJuIHNlZ21lbnQu
ZWxpZ2libGVfYml0cyAmIH5zZWdtZW50LnRhYmxlZF9iaXRzOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdG9yX2luZGV4CitwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2NvbmZp
ZygKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBjb25maWcpCit7CisgICAgc3RhdGlj
IGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHNpemVfdCBzaXplOworCisg
ICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVkKTsKKyAgICAKKyAgICBzaXplID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX2Nv
bmZpZyhjb25maWcpOworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygKKyAg
ICAgICAgICAgICJraW5kID0gJXMsIHNpemUgPSAlenUuXG4iLAorICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGNvbmZpZy5raW5kKSwKKyAgICAg
ICAgICAgIHNpemUpOworICAgIH0KKworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2FsbG9jYXRvcl9zaXplKHNpemUpOwog
fQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQKLXBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbF9zaG91bGRfY29uc2lkZXJfdmll
d190YWJsZWRfcGFyYWxsZWwoCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2Zp
cnN0X2VsaWdpYmxlX2ltcGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwoCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50IHNlZ21lbnQsCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpCiB7CiAgICAgUEFT
X1VOVVNFRF9QQVJBTShjb25maWcpOwogICAgIAotICAgIHJldHVybiBzZWdtZW50LmVsaWdpYmxl
X2JpdHMgJiBzZWdtZW50LnRhYmxlZF9iaXRzOworICAgIHJldHVybiBzZWdtZW50LmVsaWdpYmxl
X2JpdHM7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF92aWV3
CiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGwo
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcsCi0gICAgdm9pZCAoKmxvb3Bf
aGVhZF9jYWxsYmFjaykocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpLAogICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXcgKCpjcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2spKAogICAgICAg
ICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcqIGNvbmZpZykpCiB7CkBA
IC04NSwxMTEgKzE3MCw1MCBAQCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2Zp
cnN0CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiJXA6IEF0IHRv
cCBvZiB0YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGwgbG9vcC5cbiIsIGRpcmVjdG9yeSk7CiAgICAg
ICAgIAotICAgICAgICBsb29wX2hlYWRfY2FsbGJhY2soZGlyZWN0b3J5KTsKLSAgICAgICAgCiAg
ICAgICAgIGNvbmZpZy0+ZGlyZWN0b3J5ID0gZGlyZWN0b3J5OwogICAgICAgICBjb25maWctPnNo
b3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsID0KLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbF9zaG91bGRfY29uc2lkZXJf
dmlld19ub3RfdGFibGVkX3BhcmFsbGVsOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3
X3BhcmFsbGVsOwogICAgICAgICBjb25maWctPmNvbnNpZGVyX3ZpZXcgPSBOVUxMOwogICAgICAg
ICBjb25maWctPmFyZyA9IE5VTEw7CiAKLSAgICAgICAgZGlkX2ZpbmRfc29tZXRoaW5nID0gcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZF90b190YWtlX2ZpcnN0X2VsaWdp
YmxlKAotICAgICAgICAgICAgY29uZmlnLCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3Rf
ZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2luZCk7CisgICAgICAgIGRpZF9maW5kX3NvbWV0aGlu
ZyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2ZvcndhcmRfdG9fdGFrZV9maXJz
dF9lbGlnaWJsZShjb25maWcpOwogCiAgICAgICAgIGlmIChkaWRfZmluZF9zb21ldGhpbmcpIHsK
ICAgICAgICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9y
eSwgY29uZmlnLT5pbmRleCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICh2ZXJib3Nl
KSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygiQXQgaW5kZXggJXp1OiBUYWtpbmcgZXhpc3Rp
bmcgdmlldyAlcCAobm90IHRhYmxlZCkuXG4iLAorICAgICAgICAgICAgICAgIHBhc19sb2coIkF0
IGluZGV4ICV6dTogVGFraW5nIGV4aXN0aW5nIHZpZXcgJXAuXG4iLAogICAgICAgICAgICAgICAg
ICAgICAgICAgKHNpemVfdCljb25maWctPmluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+c2VnbWVudC5l
bGlnaWJsZV9iaXRzICYgY29uZmlnLT5iaXRfcmVmZXJlbmNlLm1hc2spOwotICAgICAgICAgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKCEoY29uZmlnLT5zZWdtZW50LnRhYmxlZF9iaXRzICYgY29uZmln
LT5iaXRfcmVmZXJlbmNlLm1hc2spKTsKIAogICAgICAgICAgICAgaWYgKFBBU19TRUdSRUdBVEVE
X0RJUkVDVE9SWV9CSVRfUkVGRVJFTkNFX1NFVCgKICAgICAgICAgICAgICAgICAgICAgZGlyZWN0
b3J5LCBjb25maWctPmJpdF9yZWZlcmVuY2UsIGVsaWdpYmxlLCBmYWxzZSkpIHsKICAgICAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiRGlkIHRh
a2UgZmlyc3QgZWxpZ2libGUuXG4iKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBpZiAoIXBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5nKQotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBp
ZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3RhYmxlKHZpZXcsIHBhZ2VfY29uZmlnX3B0
cikpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIlRhYmxpbmcuXG4iKTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklU
X1JFRkVSRU5DRV9TRVQoCi0gICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgY29uZmlnLT5i
aXRfcmVmZXJlbmNlLCB0YWJsZWQsIHRydWUpOwotICAgICAgICAgICAgICAgIFBBU19TRUdSRUdB
VEVEX0RJUkVDVE9SWV9CSVRfUkVGRVJFTkNFX1NFVCgKLSAgICAgICAgICAgICAgICAgICAgZGly
ZWN0b3J5LCBjb25maWctPmJpdF9yZWZlcmVuY2UsIGVsaWdpYmxlLCB0cnVlKTsKLSAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfbWluaW1pemVfZmlyc3RfZWxpZ2libGUo
Ci0gICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZCwgY29uZmlnLT5pbmRleCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBzaXplX3Qgbm90X3RhYmxlZF9pbmRleDsKLQotICAgICAgICAgICAgaWYgKHZlcmJvc2Up
Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygiRGlkbid0IGZpbmQgYW55dGhpbmcsIHNlYXJjaGlu
ZyB0YWJsZWQuXG4iKTsKLQotICAgICAgICAgICAgbm90X3RhYmxlZF9pbmRleCA9IGNvbmZpZy0+
aW5kZXg7Ci0KLSAgICAgICAgICAgIGNvbmZpZy0+ZGlyZWN0b3J5ID0gZGlyZWN0b3J5OwotICAg
ICAgICAgICAgY29uZmlnLT5zaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbCA9Ci0gICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJs
ZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3X3RhYmxlZF9wYXJhbGxlbDsKLSAgICAgICAgICAg
IGNvbmZpZy0+Y29uc2lkZXJfdmlldyA9IE5VTEw7Ci0gICAgICAgICAgICBjb25maWctPmFyZyA9
IE5VTEw7Ci0gICAgICAgICAgICBkaWRfZmluZF9zb21ldGhpbmcgPSBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkX3RvX3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAgICAg
ICAgICAgICAgY29uZmlnLCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVf
YW5kX3RhYmxlZF9raW5kKTsKLQotICAgICAgICAgICAgaWYgKGRpZF9maW5kX3NvbWV0aGluZykg
ewotICAgICAgICAgICAgICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRp
cmVjdG9yeSwgY29uZmlnLT5pbmRleCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiQXQgaW5kZXgg
JXp1OiBUYWtpbmcgZXhpc3RpbmcgdmlldyAlcCAodGFibGVkKS5cbiIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uZmlnLT5pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoY29u
ZmlnLT5zZWdtZW50LmVsaWdpYmxlX2JpdHMgJiBjb25maWctPmJpdF9yZWZlcmVuY2UubWFzayk7
Ci0gICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+c2VnbWVudC50YWJs
ZWRfYml0cyAmIGNvbmZpZy0+Yml0X3JlZmVyZW5jZS5tYXNrKTsKLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBpZiAoUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVF9SRUZFUkVO
Q0VfU0VUKAotICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBjb25maWctPmJpdF9y
ZWZlcmVuY2UsIGVsaWdpYmxlLCBmYWxzZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJEaWQgdGFrZSBmaXJzdCBl
bGlnaWJsZS5cbiIpOwotCi0gICAgICAgICAgICAgICAgICAgIC8qIEZJWE1FOiBUaGlzIGlzIHdl
aXJkIGZvciBwYXJ0aWFscy4gSWRlYWxseSwgd2UnZCB3YW50IHRvIHVudGFibGUgYWxsIG9mIHRo
ZSBwYXJ0aWFscwotICAgICAgICAgICAgICAgICAgICAgICB0aGF0IHNoYXJlIHRoZSBzYW1lIHNo
YXJlZCB2aWV3IGFzIHRoaXMgb25lLiBCdXQgdGFibGluZyBpcyBtb3N0IGxpa2VseSB0byBoYXBw
ZW4KLSAgICAgICAgICAgICAgICAgICAgICAgZm9yIGRlY29tbWl0dGVkIHBhZ2VzLCBpbiB3aGlj
aCBjYXNlIHdlIGNhbm5vdCBmaW5kIHRoZSBvdGhlciBwYXJ0aWFscyAtIHdlIHdvdWxkCi0gICAg
ICAgICAgICAgICAgICAgICAgIGhhdmUgZm9yZ290dGVuIGFib3V0IHRoZW0uIFNvLCB3ZSBsZXQg
dGhlIG90aGVyIHBhcnRpYWxzIHN0YXkgdGFibGVkLiAqLwotICAgICAgICAgICAgICAgICAgICBQ
QVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUX1JFRkVSRU5DRV9TRVQoCi0gICAgICAgICAgICAg
ICAgICAgICAgICBkaXJlY3RvcnksIGNvbmZpZy0+Yml0X3JlZmVyZW5jZSwgdGFibGVkLCBmYWxz
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplOwotCi0gICAg
ICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoCi0gICAgICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUo
cGFnZV9jb25maWcpKTsKLQotICAgICAgICAgICAgICAgIG5ld19zaXplID0gcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJU
KG5ld19zaXplID49IG5vdF90YWJsZWRfaW5kZXgpOwotICAgICAgICAgICAgICAgIFBBU19BU1NF
UlQobmV3X3NpemUgPj0gY29uZmlnLT5pbmRleCk7Ci0gICAgICAgICAgICAgICAgaWYgKG5ld19z
aXplID09IG5vdF90YWJsZWRfaW5kZXggJiYgbmV3X3NpemUgPT0gY29uZmlnLT5pbmRleCkgewot
ICAgICAgICAgICAgICAgICAgICB2aWV3ID0gY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKGNvbmZp
Zyk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9hcHBlbmQo
ZGlyZWN0b3J5LCBjb25maWctPmluZGV4LCB2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAgcGFz
X2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgKLSAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25m
aWcpKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplOworICAgICAgICAgICAg
CisgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseSgKKyAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBh
Z2VfY29uZmlnKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIG5ld19zaXplID0gcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIFBBU19BU1NF
UlQobmV3X3NpemUgPj0gY29uZmlnLT5pbmRleCk7CisgICAgICAgICAgICBpZiAobmV3X3NpemUg
PT0gY29uZmlnLT5pbmRleCkgeworICAgICAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVfbmV3X3Zp
ZXdfY2FsbGJhY2soY29uZmlnKTsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfYXBwZW5kKGRpcmVjdG9yeSwgY29uZmlnLT5pbmRleCwgdmlldyk7CiAgICAgICAgICAg
ICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgKICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdl
X2NvbmZpZykpOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQorICAgICAg
ICAgICAgCisgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KAor
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xk
X21vZGUocGFnZV9jb25maWcpKTsKICAgICAgICAgfQogICAgIH0KICAgICAKQEAgLTIwNSwyNSAr
MjI5LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdAogICAgIHJl
dHVybiB2aWV3OwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KgotcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0
X2dsb2JhbChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBpZiAo
IWRpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgc3dpdGNoIChkaXJlY3Rvcnkt
PmRpcmVjdG9yeV9raW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3Rvcnlfa2luZDoKLSAgICAgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICYoKHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KilkaXJlY3RvcnkpLT5wYXJlbnRfZ2xvYmFs
KTsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCgh
IlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBOVUxMOwotfQotCiBQQVNfRU5E
X0VYVEVSTl9DOwogCi0jZW5kaWYgLyogUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfSU5M
SU5FU19IICovCisjZW5kaWYgLyogUEFTX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZ
X0lOTElORVNfSCAqLwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3LmMJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDYgQEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92
aWV3LmgiCiAKICNpbmNsdWRlICJwYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCiAj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgiCkBAIC00MSw0MSArMzksMTYg
QEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUg
InBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oIgogCi1wYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5
X3Nsb3cocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqCitwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeV9zbG93KHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X2tpbmQodmlldykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3
X2tpbmQ6Ci0gICAgICAgIHJldHVybiAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5kaXJlY3RvcnkpLT5iYXNlOwotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gJnBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAg
ICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KS0+ZGlyZWN0b3J5
KS0+YmFzZTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOgotICAg
ICAgICByZXR1cm4gJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3BhcnRpYWwodmlldyktPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAg
UEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgICAgICByZXR1cm4gTlVM
TDsKLSAgICB9Ci19Ci0KLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKLXBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9zbG93KHBhc19zZWdy
ZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X2tpbmQodmlldykpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tp
bmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tp
bmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAm
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5kaXJlY3RvcnkpOwotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251
bGwoCi0gICAgICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfYmlhc2luZyh2aWV3KS0+ZGlyZWN0b3J5KS0+cGFyZW50X2dsb2JhbCk7CiAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KAorICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9w
YXJ0aWFsKHZpZXcpLT5kaXJlY3RvcnkpOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIFBBU19BU1NF
UlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKQEAgLTg4LDEyICs2MSw4IEBAIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFzX3NlZ3IKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1
c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgcmV0dXJuIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAg
ICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5kaXJl
Y3RvcnkpLT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlh
c2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldyktPmRpcmVjdG9yeSktPmJhc2UucGFnZV9jb25m
aWdfa2luZDsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKICAg
ICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUodmlldykt
PmRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3ZpZXdfa2luZDoKQEAgLTEwMSwxMCArNzAsMTAgQEAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZCBwYXNfc2VncgogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfc2hhcmVkKHZpZXcpLT5zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkpCiAgICAg
ICAgICAgICAtPmRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOwogICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAg
ICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWRfbm9uX251bGwoCiAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlh
bCh2aWV3KS0+ZGlyZWN0b3J5KS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOwotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDoKLSAgICAgICAgcmV0
dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KS0+
YmFzZS5wYWdlX2NvbmZpZ19raW5kOworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3Rvcnlfdmlld19raW5kOgorICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
c2l6ZV9kaXJlY3RvcnkodmlldyktPmJhc2UucGFnZV9jb25maWdfa2luZDsKICAgICBkZWZhdWx0
OgogICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CiAgICAgICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGw7CkBAIC0xMjMsOSAr
OTIsNiBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfaW5kZXgocGFzCiAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gKChw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRy
KHZpZXcpKS0+aW5kZXg7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2lu
ZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6
Ci0gICAgICAgIHJldHVybiAoKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+aW5kZXg7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfdmlld19raW5kOgogICAgICAgICByZXR1cm4gKChwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+aW5kZXg7CiAgICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQ6CkBAIC0xNDUsMTMgKzExMSw2
IEBAIHZvaWQqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfYm91bmQKICAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAoKHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmll
dykpLT5wYWdlX2JvdW5kYXJ5OwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19r
aW5kOiB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7
Ci0gICAgICAgIGV4Y2x1c2l2ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X3B0cl9sb2FkKAotICAgICAgICAgICAgJigocGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpLT5leGNsdXNpdmUpOwot
ICAgICAgICByZXR1cm4gZXhjbHVzaXZlID8gZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5IDogTlVM
TDsKLSAgICB9CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAg
ICAgICByZXR1cm4gcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9nZXRfcGFnZV9i
b3VuZGFyeV9ub19saXZlbmVzc19jaGVja3MoCiAgICAgICAgICAgICAoKHBhc19zZWdyZWdhdGVk
X3NoYXJlZF92aWV3KikKQEAgLTE2OCw3ICsxMjcsNyBAQCB2b2lkKiBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9wYWdlX2JvdW5kCiAgICAgICAgIHJldHVybiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9w
YWdlX2JvdW5kYXJ5X2dldF9wYWdlX2JvdW5kYXJ5KAogICAgICAgICAgICAgc2hhcmVkX3ZpZXct
PnNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeSwKICAgICAgICAgICAgICpwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoCi0gICAgICAgICAgICAgICAgcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
CisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICAgICAgICAgJnBhcnRpYWxfdmlldy0+ZGly
ZWN0b3J5KS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKSk7CiAgICAgfQogICAgIGRlZmF1bHQ6CkBA
IC0xODQsMTEyICsxNDMsMTIgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFzX3NlZ3JlZ2F0ZWRf
dmlldwogICAgICAgICAqcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9jb25maWcodmlldykp
OwogfQogCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3Jlc3RhcnQocGFzX3NlZ3Jl
Z2F0ZWRfdmlldyBvd25lcl92aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19tYWdhemluZSogbWFnYXppbmUpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19raW5kIGtpbmQ7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0g
ICAgdW5zaWduZWQgaW5kZXg7Ci0KLSAgICBraW5kID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
a2luZChvd25lcl92aWV3KTsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZTsKLSAgICAgICAgZXhjbHVzaXZlID0gcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZXhjbHVzaXZlKG93bmVyX3ZpZXcpOwotICAgICAgICBkaXJlY3RvcnkgPSAm
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoCi0gICAgICAgICAgICAmZXhjbHVzaXZlLT5kaXJlY3RvcnkpLT5iYXNlOwotICAgICAg
ICBpbmRleCA9IGV4Y2x1c2l2ZS0+aW5kZXg7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tp
bmQ6IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiBiaWFzaW5nOwotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7
Ci0gICAgICAgIGJpYXNpbmcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKG93bmVy
X3ZpZXcpOwotICAgICAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmYmlh
c2luZy0+ZGlyZWN0b3J5KTsKLSAgICAgICAgaWYgKCFtYWdhemluZSB8fAotICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVfaW5kZXgoCi0gICAgICAg
ICAgICAgICAgYmlhc2luZ19kaXJlY3RvcnkpICE9IG1hZ2F6aW5lLT5tYWdhemluZV9pbmRleCkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZGlyZWN0b3J5ID0gJmJpYXNpbmdf
ZGlyZWN0b3J5LT5iYXNlOwotICAgICAgICBpbmRleCA9IGJpYXNpbmctPmluZGV4OwotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNp
bmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDogewotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXcqIHBhcnRpYWw7Ci0gICAgICAgIHBhcnRpYWwgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9wYXJ0aWFsKG93bmVyX3ZpZXcpOwotICAgICAgICBpZiAoIXBhcnRpYWwtPmVsaWdpYmlsaXR5
X2hhc19iZWVuX25vdGVkKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBkaXJl
Y3RvcnkgPSAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
X2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmcGFydGlhbC0+ZGlyZWN0b3J5KS0+YmFzZTsK
LSAgICAgICAgaW5kZXggPSBwYXJ0aWFsLT5pbmRleDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQi
KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIC8qIFRoZXJlJ3Mgc29tZXRo
aW5nIGludGVyZXN0aW5nIGhlcmU6IHRoZSA8PSBjb21wYXJpc29uIG9mIHZpZXcgaW5kaWNlcy4g
SXQgcmVhbGx5IG91Z2h0IHRvCi0gICAgICAgYmUgPCwgc2luY2UgdGhlIG93bmVyX3ZpZXcgaXNu
J3QgYWN0dWFsbHkgZWxpZ2libGUuCi0gICAgICAgCi0gICAgICAgQnV0IHRoZSBmaXJzdF9lbGln
aWJsZSBwcm9wZXJ0eSBoYXMgYW4gb2ZmLWJ5LW9uZSBzdGlja2luZXNzIHRvIGl0LiBUaGF0IGp1
c3Qgc29ydCBvZiBmYWxscwotICAgICAgIG91dCBvZiB0aGUgZ2VuZXJpYyB0YWtlX2ZpcnN0X2Vs
aWdpYmxlIGFsZ29yaXRobS4gVGhhdCBuZWNlc3NpdGF0ZXMgdGhlIDw9LgotICAgICAgIAotICAg
ICAgIFRoaXMgZG9lc24ndCBoYXZlIHRvIGJlIHN1cGVyIGNvcnJlY3QuIEl0J3MgaW1wb3J0YW50
IGZvciB0aGUgYWxnb3JpdGhtIHRvIHRlbmQgdG93YXJkcyB1c2luZwotICAgICAgIHRoZSBsb3dl
c3QtaW5kZXhlZCB2aWV3LiBCdXQgaWYgaXQgc29tZXRpbWVzIGZhaWxzIHRvIGRvIHRoYXQsIHRo
ZW4gaXQncyBub3QgdGhlIGVuZCBvZiB0aGUKLSAgICAgICB3b3JsZC4KLSAgICAKLSAgICAgICBI
b3dldmVyLCBpdCBtaWdodCBiZSBuaWNlIHRvIHJldmlzaXQgd2hldGhlciB0aGlzIGlzIHJlYWxs
eSB0aGUgYmVzdCB0aGF0IHdlIGNhbiBkby4gSSB0aGluawotICAgICAgIHRoYXQgdW5kZXIgY29t
cGxleCByYWNlcywgd2UgbWlnaHQgaGF2ZSBmaXJzdF9lbGlnaWJsZSBwb2ludGluZyB0b28gbG93
LCBtYWtpbmcgaXQgc2VlbSBsaWtlCi0gICAgICAgb3duZXJfdmlldyBpc24ndCB0aGUgZmlyc3Rf
ZWxpZ2libGUgb25lLiBPbmUgd2F5IHRvIGZpeCB0aGlzIGlzIHRvIGp1c3QgaGF2ZQotICAgICAg
IHRha2VfZmlyc3RfZWxpZ2libGUgdGFrZSBvdXIgaW5kZXggYW5kIGhhdmUgaXQgbm90IHJldHVy
biBhbnl0aGluZyB1bmxlc3MgdGhhdCBzb21ldGhpbmcgaGFzCi0gICAgICAgYSBsb3dlciBpbmRl
eCB0aGFuIHVzLiBUaGF0IHNlZW1zIGJldHRlciBhbmQgbW9yZSBlZmZpY2llbnQgaW4gbG90cyBv
ZiB3YXlzLiAqLwotICAgIHJldHVybiAoaW5kZXggPD0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2dldF9maXJzdF9lbGlnaWJsZV90b3JuKAotICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkX2tpbmQp
LnZhbHVlKQotICAgICAgICAmJiAoaW5kZXggPD0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dl
dF9maXJzdF9lbGlnaWJsZV90b3JuKAotICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZCkudmFsdWUp
OwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfY291bGRfYnVtcChwYXNfc2VncmVnYXRl
ZF92aWV3IHZpZXcpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29u
ZmlnOwotICAgIHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9jb25m
aWcodmlldyk7Ci0gICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcp
KSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgICAg
ICByZXR1cm4gIXBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KAotICAgICAgICAgICAg
KChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
cHRyKHZpZXcpKS0+cGFnZV9ib3VuZGFyeSwKLSAgICAgICAgICAgICpwYWdlX2NvbmZpZyktPm51
bV9ub25fZW1wdHlfd29yZHM7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdf
a2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tp
bmQ6Ci0gICAgICAgIHJldHVybiAhcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkoCi0g
ICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19w
dHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAmKChwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cigKLSAgICAgICAgICAgICAgICAg
ICAgICB2aWV3KSktPmV4Y2x1c2l2ZSktPnBhZ2VfYm91bmRhcnksCi0gICAgICAgICAgICAqcGFn
ZV9jb25maWcpLT5udW1fbm9uX2VtcHR5X3dvcmRzOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
cGFydGlhbF92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBkZWZhdWx0Ogot
ICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci19Ci0KIHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9jb21taXRfbG9jayhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCiB7CiAgICAgc3dpdGNoIChw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGln
aWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gJnBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KS0+Y29tbWl0X2xvY2s7Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxp
Z2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAmcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAg
ICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KS0+ZXhjbHVzaXZlKS0+
Y29tbWl0X2xvY2s7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgog
ICAgICAgICByZXR1cm4gJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZCh2aWV3KS0+Y29t
bWl0X2xvY2s7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQ6CkBA
IC0zMTAsMTAgKzE2OSw2IEBAIHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9vd25l
cnMKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAg
IHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5vd25lcnNo
aXBfbG9jazsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAg
ICAgcmV0dXJuICZwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19w
dHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9i
aWFzaW5nKHZpZXcpLT5leGNsdXNpdmUpLT5vd25lcnNoaXBfbG9jazsKICAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpLT5vd25lcnNoaXBfbG9jazsKICAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKQEAgLTMzMywxMSArMTg4LDcgQEAgYm9vbCBw
YXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVkKHBhc19zZQogICAgIHN3aXRjaCAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhj
bHVzaXZlX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5vd25lcnNoaXBfa2luZCk7Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXdfaXNfb3duZWQocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2lu
Zyh2aWV3KSk7CisgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNp
dmUodmlldyktPmlzX293bmVkOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdf
a2luZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZCh2aWV3
KS0+aXNfb3duZWQ7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQ6
CkBAIC0zNTUsNTkgKzIwNiwxOCBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfb3duZWQo
cGFzX3NlCiAgICAgfQogfQogCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3RhYmxl
KAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcqIHBhZ2VfY29uZmlnKQotewotICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
a2luZCh2aWV3KSkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2lu
ZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2lu
ZDoKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3Nob3VsZF90
YWJsZSgKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3
KSwgcGFnZV9jb25maWcpOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tp
bmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5k
OgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X3Nob3VsZF90YWJs
ZSgKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldyksIHBh
Z2VfY29uZmlnKTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOgot
ICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3Nob3VsZF90YWJsZSgK
LSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldyksIHBhZ2Vf
Y29uZmlnKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBi
ZSByZWFjaGVkIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLX0KLQotYm9vbCBwYXNf
c2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2
aWV3KQordm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX3Nl
Z3JlZ2F0ZWRfdmlldyB2aWV3KQogewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
KiBleGNsdXNpdmU7Ci0gICAgCi0gICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1
c2l2ZSh2aWV3KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGV4Y2x1c2l2ZSA9
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KTsKLSAgICAKLSAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2Vk
KGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQpOwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAg
aWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9iaWFzaW5nKHZpZXcpKQotICAgICAgICBy
ZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KSk7Ci0KICAgICBwYXNfbG9ja19sb2Nr
KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X293bmVyc2hpcF9sb2NrKHZpZXcpKTsKLSAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xv
Y2tfY29uZGl0aW9uYWxseShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCit2b2lkIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGxvY2tfaG9sZF9tb2RlKQogewot
ICAgIGJvb2wgcmVzdWx0OwogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAgIGlmIChsb2Nr
X2hvbGRfbW9kZSkKLSAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKLSAgICBlbHNlCi0gICAgICAgIHJl
c3VsdCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayh2aWV3KTsKKyAg
ICBpZiAoIWxvY2tfaG9sZF9tb2RlKQorICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tf
b3duZXJzaGlwX2xvY2sodmlldyk7CiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlw
X2xvY2tfaWZfb3duZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQpAQCAtNDE4LDEyICsyMjgs
NyBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfCiBib29sIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19pZl9vd25lZF9jb25kaXRpb25hbGx5
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2Rl
IGxvY2tfaG9sZF9tb2RlKQogewotICAgIGJvb2wgcmVzdWx0OwotCi0gICAgcmVzdWx0ID0gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkodmlldywg
bG9ja19ob2xkX21vZGUpOwotCi0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfY29uZGl0aW9u
YWxseSh2aWV3LCBsb2NrX2hvbGRfbW9kZSk7CiAKICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19vd25lZCh2aWV3KSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC00NTcsMzMgKzI2Miw2
IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19wcmltb3JkaWFsX3AKICAgICAgICAgJnBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldyktPnNoYXJlZF92aWV3KTsKIH0KIAot
dm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZWxpZ2liaWxpdHkoCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpCi17Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotCi0gICAgaWYgKHZlcmJvc2UpCi0g
ICAgICAgIHBhc19sb2coIk5vdGluZyBlbGlnaWJpbGl0eSBmb3IgdmlldyAlcCwgcGFnZSAlcC5c
biIsIHZpZXcsIHBhZ2UpOwotICAgIAotICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfa2luZCh2aWV3KSkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
a2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdf
a2luZDoKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbGlnaWJp
bGl0eShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldyksIHBhZ2UpOwotICAg
ICAgICByZXR1cm47Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3RlX2VsaWdpYmlsaXR5KHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldyksIHBhZ2UpOwotICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X25vdGVfZWxpZ2liaWxpdHkocGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfcGFydGlhbCh2aWV3KSwgcGFnZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBkZWZh
dWx0OgotICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci19Ci0KIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfdmlld19ub3RlX2Vt
cHRpbmVzcygKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZSogcGFnZSkKQEAgLTQ5NCwxMSArMjcyLDYgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF92
aWV3X25vdGVfZW1wdGluZXNzKAogICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19ub3RlX2VtcHRpbmVzcygKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4
Y2x1c2l2ZSh2aWV3KSwgcGFnZSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGln
aWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X25vdGVfZW1wdGluZXNzKAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
Ymlhc2luZyh2aWV3KSwgcGFnZSk7Ci0gICAgICAgIHJldHVybjsKICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X2hhbmRsZV9ub3RlX2VtcHRpbmVzcygKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3NoYXJlZF9oYW5kbGUodmlldykpOwpAQCAtNTk0LDcgKzM2Nyw3IEBAIHN0YXRpYyBib29s
IGZvcl9lYWNoX2xpdmVfb2JqZWN0KAogICAgIGZ1bGxfYWxsb2NfYml0cyA9IHBhc19mdWxsX2Fs
bG9jX2JpdHNfY3JlYXRlX2Zvcl92aWV3KHZpZXcsIHBhZ2VfY29uZmlnKTsKICAgICBwYWdlID0g
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZSh2aWV3KTsKICAgICBwYWdlX2JvdW5kYXJ5ID0g
KHVpbnRwdHJfdClwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIHBhZ2VfY29uZmln
KTsKLSAgICBvYmplY3Rfc2l6ZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSh2aWV3KS0+b2JqZWN0X3NpemU7CisgICAgb2JqZWN0X3NpemUgPSBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KS0+b2JqZWN0X3NpemU7CiAKICAg
ICBpZiAodmVyYm9zZSkgewogICAgICAgICBwYXNfbG9nKCJwYWdlID0gJXAsIGdvdCBhbGxvYyBi
aXRzIHJhbmdlICV6dS4uLiV6dS5cbiIsCkBAIC02NTQsMTEgKzQyNyw5IEBAIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19mb3JfZWFjaF9saXZlX28KICAgICAvKiBGb3IgcGFydGlhbCBhbmQgc2hh
cmVkIHZpZXdzLCB0aGUgcGFnZSBsb2NrIGlzIHRoZSBvd25lcnNoaXAgbG9jay4gRm9yIGV4Y2x1
c2l2ZSB2aWV3cywKICAgICAgICBob2xkaW5nIHRoZSBvd25lcnNoaXAgbG9jayBpcyBhZGVxdWF0
ZSBhbnl3YXkuICovCiAKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hp
cF9sb2NrX2NvbmRpdGlvbmFsbHkodmlldywgb3duZXJzaGlwX2xvY2tfaG9sZF9tb2RlKSkgewot
ICAgICAgICByZXN1bHQgPSBmb3JfZWFjaF9saXZlX29iamVjdCh2aWV3LCBjYWxsYmFjaywgYXJn
KTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191bmxvY2tfb3duZXJzaGlwX2xvY2tfY29u
ZGl0aW9uYWxseSh2aWV3LCBvd25lcnNoaXBfbG9ja19ob2xkX21vZGUpOwotICAgIH0gZWxzZQot
ICAgICAgICByZXN1bHQgPSB0cnVlOworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25l
cnNoaXBfbG9ja19jb25kaXRpb25hbGx5KHZpZXcsIG93bmVyc2hpcF9sb2NrX2hvbGRfbW9kZSk7
CisgICAgcmVzdWx0ID0gZm9yX2VhY2hfbGl2ZV9vYmplY3QodmlldywgY2FsbGJhY2ssIGFyZyk7
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191bmxvY2tfb3duZXJzaGlwX2xvY2tfY29uZGl0aW9u
YWxseSh2aWV3LCBvd25lcnNoaXBfbG9ja19ob2xkX21vZGUpOwogCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KQEAgLTcwNCw5ICs0NzUsNiBAQCBzdGF0aWMgcGFzX3RyaV9zdGF0ZSBzaG91bGRfYmVf
ZWxpZ2libGUoCiAgICAgICAgIHJldHVybiBwYXNfdHJpX3N0YXRlX21heWJlOwogICAgIH0KICAg
ICAKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzZWRfZXhjbHVzaXZlKHZpZXcp
KQotICAgICAgICByZXR1cm4gcGFzX3RyaV9zdGF0ZV9ubzsKLQogICAgIGlmICghcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pc19vd25lZCh2aWV3KSkKICAgICAgICAgcmV0dXJuIHBhc190cmlfc3RhdGVf
eWVzOwogICAgIApAQCAtNzcxLDEzICs1MzksOSBAQCBwYXNfdHJpX3N0YXRlIHBhc19zZWdyZWdh
dGVkX3ZpZXdfc2hvdWxkCiAgICAgICAgICAgICAgICAgdmlldywgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19raW5kX2dldF9zdHJpbmcocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkpOwog
ICAgIH0KIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2so
dmlldykpIHsKLSAgICAgICAgcmVzdWx0ID0gc2hvdWxkX2JlX2VsaWdpYmxlKHZpZXcsIHBhZ2Vf
Y29uZmlnKTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191bmxvY2tfb3duZXJzaGlwX2xv
Y2sodmlldyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLyogVGhpcyBoYXBwZW5zIHdoZW4gYSBi
aWFzaW5nIHZpZXcgaXMgdW5vd25lZC4gU28gaXQgc2hvdWxkIGJlIGVsaWdpYmxlISAqLwotICAg
ICAgICByZXN1bHQgPSBwYXNfdHJpX3N0YXRlX3llczsKLSAgICB9CisgICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHZpZXcpOworICAgIHJlc3VsdCA9IHNob3VsZF9i
ZV9lbGlnaWJsZSh2aWV3LCBwYWdlX2NvbmZpZyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191
bmxvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAt
ODA3LDExICs1NzEsNiBAQCBwYXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX3ZpZXdf
CiAgICAgICAgICAgIFRoaXMgbWFrZXMgZXF1YWxpdHkgYXNzZXJ0aW9ucyBpbiB0aGUgdGVzdHMg
ZWFzaWVyIHRvIHdyaXRlLiAqLwogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfYXNfdmlldyhwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUob3duaW5n
X3ZpZXcpKTsKIAotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0g
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAg
ICAgICAvKiBTZWUgYWJvdmUuICovCi0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXdfYXNfdmlldyhwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKG93bmluZ192
aWV3KSk7Ci0KICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKICAg
ICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19hc192aWV3KAogICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9wYXJ0aWFsX3ZpZXdfZm9yX29iamVj
dCgKQEAgLTgzMSwxMCArNTkwLDYgQEAgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF92
aWV3X2NvbQogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmll
d19raW5kOgogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY29t
cHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KSk7CiAK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jb21wdXRlX3N1bW1hcnkocGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KSk7Ci0KICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3No
YXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmll
d19jb21wdXRlX3N1bW1hcnkocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhZ2VfY29uZmlnKTsKQEAgLTg1NSwxMCArNjEwLDYgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92
aWV3X2lzX2VsaWdpYmxlKHBhcwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9l
eGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfaXNfZWxpZ2libGUocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZp
ZXcpKTsKIAotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldykpOwotCiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYXJ0aWFsKHZpZXcp
KTsKIApAQCAtODY4LDEyICs2MTksNiBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxp
Z2libGUocGFzCiAgICAgfQogfQogCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2li
bGVfb3JfYmlhc2VkKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZSh2aWV3KQotICAgICAgICB8fCBwYXNfc2VncmVn
YXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUodmlldyk7Ci19Ci0KIHN0YXRpYyBib29sIGlz
X3BheWxvYWRfZW1wdHlfY2FsbGJhY2socGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmFuZ2UgcmFuZ2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmFyZykKQEAgLTg5NywxMCArNjQy
LDYgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5KHBhc19zZQogICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICBy
ZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpKTsKIAotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2Jp
YXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldykpOwotCiAg
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAgICAgICByZXR1cm4g
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfc2hhcmVkKHZpZXcpKTsKIApAQCAtOTE4LDEwICs2NTksNCBAQCBib29sIHBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfZW1wdHkocGFzX3NlCiAgICAgfQogfQogCi1ib29sIHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfZW1wdHlfb3JfYmlhc2VkKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbXB0eSh2aWV3KQotICAgICAgICB8fCBw
YXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUodmlldyk7Ci19Ci0KICNlbmRp
ZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmll
dy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw2IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsK
IAogc3RydWN0IHBhc19oZWFwX2NvbmZpZzsKIHN0cnVjdCBwYXNfbWFnYXppbmU7Ci1zdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldzsKIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9wYWdlOwpAQCAtNTQsMTEgKzUzLDEwIEBAIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXc7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZTsKIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owogc3RydWN0
IHBhc19zZWdyZWdhdGVkX3ZpZXdfb3BhcXVlOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfY29u
ZmlnIHBhc19oZWFwX2NvbmZpZzsKIHR5cGVkZWYgc3RydWN0IHBhc19tYWdhemluZSBwYXNfbWFn
YXppbmU7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3OwogdHlw
ZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSBwYXNfc2VncmVnYXRlZF9wYWdlOwpAQCAt
NjcsNyArNjUsNyBAQCB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpCiB0
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF9oYW5kbGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFn
ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5OwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXc7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF92aWV3X29wYXF1ZSogcGFzX3NlZ3Jl
Z2F0ZWRfdmlldzsKIAogLyogTk9URTogaXQncyBhbiBhbnRpcGF0dGVybiB0byB1c2UgdGhpcyBm
dW5jdGlvbiBkaXJlY3RseSB3aGVuIHlvdSBjb3VsZCBoYXZlIHVzZWQgdGhlIG11Y2ggbW9yZQpA
QCAtMTE1LDcyICsxMTMsMzcgQEAgc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfaQogCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4
Y2x1c2l2ZShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCiB7Ci0gICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlKHZpZXcpCi0gICAgICAgIHx8IHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfaW5lbGlnaWJsZV9leGNsdXNpdmUodmlldyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg
Ym9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gocGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfZXhj
bHVzaXZlX2lzaChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKTsKLX0KLQotc3Rh
dGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2luZyhwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcmV0dXJuICFwYXNfc2VncmVnYXRlZF92aWV3X2lzX251
bGwodmlldykKLSAgICAgICAgJiYgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSA9
PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDsKLX0KLQotc3RhdGljIGlubGluZSBi
b29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfaW5lbGlnaWJsZV9iaWFzaW5nKHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2lu
ZCh2aWV3KSA9PSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOwot
fQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2JpYXNp
bmcocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF92aWV3X2lzX2JpYXNpbmcodmlldykKLSAgICAgICAgfHwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19pbmVsaWdpYmxlX2JpYXNpbmcodmlldyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3KiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfaXNfc29tZV9iaWFzaW5nKHZpZXcpKTsKLSAgICByZXR1cm4gKHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOwotfQotCi1zdGF0
aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9raW5kKHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19r
aW5kX2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpOwotfQot
Ci1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19pbmVsaWdpYmxlX2tp
bmQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF92aWV3X2tpbmRfaXNfaW5lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZp
ZXcpKTsKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX3NvbWVfZXhjbHVz
aXZlKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpOwogfQogCiBzdGF0aWMgaW5s
aW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfdmlld19hc19pbmVsaWdpYmxl
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHJl
c3VsdDsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNs
dXNpdmVfaXNoKHZpZXcpKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRf
dmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSk7CiAgICAgcmVzdWx0ID0gKHBhc19zZWdyZWdh
dGVkX3ZpZXcpKAogICAgICAgICAodWludHB0cl90KXZpZXcgfCAodWludHB0cl90KXBhc19zZWdy
ZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZCk7CiAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSA9PSBwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9wdHIocmVzdWx0KSk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykKLSAgICAgICAgICAgICAgICAgICAg
ICAgPT0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShyZXN1bHQpKTsKKyAg
ICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2
ZSh2aWV3KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIGlubGluZSBwYXNfc2Vn
cmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfZWxpZ2libGUocGFzX3NlZ3JlZ2F0
ZWRfdmlldyB2aWV3KQogewogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgcmVzdWx0OwotICAgIFBB
U19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2godmll
dykpOworICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVf
ZXhjbHVzaXZlKHZpZXcpKTsKICAgICByZXN1bHQgPSAocGFzX3NlZ3JlZ2F0ZWRfdmlldykoCiAg
ICAgICAgICh1aW50cHRyX3QpdmlldyAmIH4odWludHB0cl90KXBhc19zZWdyZWdhdGVkX2luZWxp
Z2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZCk7CiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSA9PSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9w
dHIocmVzdWx0KSk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfc29tZV9leGNsdXNpdmUodmlldykKLSAgICAgICAgICAgICAgICAgICAgICAgPT0gcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShyZXN1bHQpKTsKKyAgICBQQVNfVEVTVElO
R19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSk7CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldykKK3sKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRf
dmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSk7CisgICAgcmV0dXJuIChwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOworfQor
CiBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zaGFyZWQocGFzX3Nl
Z3JlZ2F0ZWRfdmlldyB2aWV3KQogewogICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9raW5kKHZpZXcpID09IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ7CkBAIC0yMTUs
MzMgKzE3OCwyMiBAQCBzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmllCiAg
ICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3B0cih2aWV3KTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykK
K3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NpemVfZGlyZWN0b3J5
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfa2luZCh2aWV3KSA9PSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfdmlld19raW5kOworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZp
ZXcpID09IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDsKIH0KIAotUEFT
X0FQSSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqCitQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnlfc2xv
dyhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSoKK3N0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqCiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShwYXNfc2VncmVnYXRl
ZF92aWV3IHZpZXcpCiB7Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KHZpZXcpKQotICAgICAgICByZXR1cm4gKHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOworICAgIGlmIChwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX3NpemVfZGlyZWN0b3J5KHZpZXcpKQorICAgICAgICByZXR1cm4gKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIo
dmlldyk7CiAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5
X3Nsb3codmlldyk7CiB9CiAKLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KgotcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Ns
b3cocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKLQotc3RhdGljIGlubGluZSBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCi1wYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIGlmIChw
YXNfc2VncmVnYXRlZF92aWV3X2lzX2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KSkKLSAgICAg
ICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKXBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Nsb3codmlldyk7Ci19Ci0KIFBBU19BUEkgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZAogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFn
ZV9jb25maWdfa2luZChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogUEFTX0FQSSBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9jb25maWco
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKQEAgLTI1MSwyMyArMjAzLDkgQEAgUEFTX0FQSSBz
aXplX3QgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfaQogUEFTX0FQSSB2b2lkKiBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9wYWdlX2JvdW5kYXJ5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiBQ
QVNfQVBJIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2Uo
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIAotLyogVGhpcyBhc3N1bWVzIHRoYXQgb3duZXJf
dmlldyBpcyBlaXRoZXI6Ci0gICAKLSAgID0+IEFuIGV4Y2x1c2l2ZS1pc2ggdmlldyAoZXhjbHVz
aXZlIG9yIGJpYXNpbmcpIHRoYXQgd2FzIGxvYWRlZCBmcm9tIHBhZ2UtPm93bmVyLCBzbyBpdHMg
a2luZAotICAgICAgY2FuIHRlbGwgdXMgYWJvdXQgZWxpZ2liaWxpdHkuCi0KLSAgID0+IEEgcGFy
dGlhbCB2aWV3IGlmIHRoZSBwYWdlIG93bmVyIHdhcyBhIHNoYXJlZCBoYW5kbGUuCi0KLSAgIFRo
aXMgc2V0IG9mIGFzc3VtcHRpb25zIGhhcHBlbnMgdG8gbWF0Y2ggbG9jYWxfYWxsb2NhdG9yJ3Mg
dmlldyBvZiB0aGUgd29ybGQuICovCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19z
aG91bGRfcmVzdGFydChwYXNfc2VncmVnYXRlZF92aWV3IG93bmVyX3ZpZXcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbWFnYXppbmUqIG1hZ2F6
aW5lKTsKLQotUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfY291bGRfYnVtcChwYXNf
c2VncmVnYXRlZF92aWV3IHZpZXcpOwotCiAvKiBJdCdzIG9ubHkgT0sgdG8gY2FsbCB0aGlzIHdo
ZW4geW91IGhhdmUgb3duZXJzaGlwIG9mIHRoZSBwYWdlLCBsaWtlIGlmIHlvdSBtYWRlIGl0IGlu
ZWxpZ2libGUgb3IKICAgIGdyYWJiZWQgdGhlIG93bmVyc2hpcCBsb2NrLiBPZiBjb3Vyc2UsIGlm
IHlvdSBncmFiYmVkIHRoZSBvd25lcnNoaXAgbG9jayB0aGVuIHlvdSBjYW5ub3QgZ3JhYiB0aGUK
LSAgIGNvbW1pdCBsb2NrLCBzbyBob3BlZnVsbHkgeW91IGdvdCBoZXJlIGJ5IG1ha2luZyB0aGUg
cGFnZSBpbmVsaWdpYmxlLiBBbHNvLCBmb3IgYmlhc2luZyB2aWV3cywgaXQncwotICAgb25seSBP
SyBpZiB0aGUgYmlhc2luZyB2aWV3IGlzIGF0dGFjaGVkIHRvIGFuIGV4Y2x1c2l2ZS4gKi8KKyAg
IGNvbW1pdCBsb2NrLCBzbyBob3BlZnVsbHkgeW91IGdvdCBoZXJlIGJ5IG1ha2luZyB0aGUgcGFn
ZSBpbmVsaWdpYmxlLiAqLwogUEFTX0FQSSBwYXNfbG9jayogcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfY29tbWl0X2xvY2socGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIAogLyogSXQncyBvbmx5
IE9LIHRvIGNhbGwgdGhpcyBpZiB5b3UgYWxyZWFkeSBob2xkIHRoZSBvd25lcnNoaXAgbG9jayBv
ciB0aGUgdmlldyBpcyBpbmVsaWdpYmxlLiAqLwpAQCAtMjc1LDE1ICsyMTMsOSBAQCBQQVNfQVBJ
IHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF92aWV3X2dlCiAKIFBBU19BUEkgYm9vbCBwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX293bmVkKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiAKLVBBU19B
UEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZF90YWJsZSgKLSAgICBwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7
Ci0KLS8qIFRydWUgaWYgdGhpcyBpcyBhbiBleGNsdXNpdmUgdmlldyB0aGF0IGlzIGJpYXNlZC4g
Ki8KLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUo
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKLQotLyogTG9ja3MgdGhlIG93bmVyc2hpcCBsb2Nr
IGFuZCB0ZWxscyB5b3UgaWYgYW55IGxvY2sgd2FzIHN1Y2Nlc3NmdWxseSBsb2NrZWQuICovCi1Q
QVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19s
b2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
LAorLyogTG9ja3MgdGhlIG93bmVyc2hpcCBsb2NrLiAqLworUEFTX0FQSSB2b2lkIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcp
OworUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19j
b25kaXRpb25hbGx5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9j
a19ob2xkX21vZGUgbG9ja19ob2xkX21vZGUpOwogLyogTG9ja3MgdGhlIG93bmVyc2hpcCBsb2Nr
IGFuZCB0ZWxscyB5b3UgaWYgdGhlIHZpZXcgaXMgb3duZWQuIElmIGl0IGlzbid0IG93bmVkIGl0
IGFsc28gdW5sb2NrcyBpdC4gKi8KIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2xv
Y2tfb3duZXJzaGlwX2xvY2tfaWZfb3duZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKQEAg
LTI5OCwxMCArMjMwLDYgQEAgUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfdW5sb2Nr
XwogLyogVGhpcyBpcyBvbmx5IHZhbGlkIHRvIGNhbGwgb24gYSBwYXJ0aWFsIHZpZXcgdGhhdCB3
YXMganVzdCBtYWRlIGluZWxpZ2libGUuICovCiBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19pc19wcmltb3JkaWFsX3BhcnRpYWwocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIAot
UEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSgKLSAgICBw
YXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSk7
Ci0KIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZW1wdGluZXNzKAogICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
KTsKQEAgLTMzNywxMCArMjY1LDggQEAgUEFTX0FQSSBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdy
ZWdhdGVkXwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7CiAK
IFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGln
aWJsZV9vcl9iaWFzZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIFBBU19BUEkgYm9vbCBw
YXNfc2VncmVnYXRlZF92aWV3X2lzX3BheWxvYWRfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2
aWV3KTsKIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5KHBhc19zZWdy
ZWdhdGVkX3ZpZXcgdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19l
bXB0eV9vcl9iaWFzZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIAogUEFTX0VORF9FWFRF
Uk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGlu
ZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNywxMiArMjcsMTAgQEAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfVklFV19BTExPQ0FU
T1JfSU5MSU5FU19ICiAKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKLSNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3Lmgi
CisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIgogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlldy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXdfaW5s
aW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKIAogUEFTX0JFR0lOX0VY
VEVSTl9DOwogCkBAIC01Nyw3ICs1NSw3IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXdfd2lsbF9zdGFy
dF9hbGxvY2F0aW4KICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZl
OwogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbDsKICAgICBwYXNfc2Vn
cmVnYXRlZF92aWV3IGluZWxpZ2libGVfb3duaW5nX3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9iYXNlOwogICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFw
X2xvY2tfaG9sZF9tb2RlOwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eSogc2hhcmVkX3BhZ2VfZGlyZWN0b3J5OwpAQCAtNjcsMzI0ICs2NSwyNDcgQEAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbgogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF9oYW5kbGUqIHNoYXJlZF9oYW5kbGU7CiAKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X2tpbmQodmlldykpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
d19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdf
a2luZDogewotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIGJpYXNpbmdfdmll
dzsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGly
ZWN0b3J5OwotCi0gICAgICAgIGJpYXNpbmdfdmlldyA9IChwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKLQotICAgICAgICBleGNs
dXNpdmUgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJf
bG9hZCgmYmlhc2luZ192aWV3LT5leGNsdXNpdmUpOwotICAgICAgICBiaWFzaW5nX2RpcmVjdG9y
eSA9Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKCZiaWFzaW5nX3ZpZXctPmRpcmVjdG9yeSk7Ci0KLSAgICAgICAg
aWYgKCFleGNsdXNpdmUpIHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92
aWV3IHJlc3VsdGluZ192aWV3OwotICAgICAgICAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKLQot
ICAgICAgICAgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAmYmlh
c2luZ19kaXJlY3RvcnktPnBhcmVudF9nbG9iYWwpOwotCi0gICAgICAgICAgICByZXN1bHRpbmdf
dmlldyA9Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0KHNpemVfZGlyZWN0b3J5KTsKLQotICAgICAg
ICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZShyZXN1bHRpbmdfdmll
dykpIHsKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCFyZXN1bHRpbmdfdmlldyB8fCBwYXNf
c2VncmVnYXRlZF92aWV3X2lzX3BhcnRpYWwocmVzdWx0aW5nX3ZpZXcpKTsKLSAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0
X2luZGV4KAotICAgICAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGJp
YXNpbmdfdmlldy0+aW5kZXgpOwotICAgICAgICAgICAgICAgIHZpZXcgPSByZXN1bHRpbmdfdmll
dzsKLSAgICAgICAgICAgICAgICBnb3RvIHBhcnRpYWxfdmlld19jYXNlOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBleGNsdXNpdmUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNs
dXNpdmUocmVzdWx0aW5nX3ZpZXcpOwotCi0gICAgICAgICAgICBoZWxkX2xvY2sgPSBOVUxMOwot
ICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssICZleGNsdXNpdmUtPm93bmVy
c2hpcF9sb2NrKTsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X3B0cl9zdG9yZSgmYmlhc2luZ192aWV3LT5leGNsdXNpdmUsIGV4Y2x1c2l2
ZSk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZF9pc19iaWFzZWQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBl
eGNsdXNpdmUtPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgICAgICBleGNsdXNpdmUtPm93bmVy
c2hpcF9raW5kID0KLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNlZCgKLSAgICAgICAgICAgICAgICAgICAgZXhjbHVz
aXZlLT5vd25lcnNoaXBfa2luZCwgdHJ1ZSk7Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSkgewot
ICAgICAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIG93bmVyc2hpcCBraW5kID0gJXMg
ZHVlIHRvIGJpYXNpbmcgd2lsbF9zdGFydF9hbGxvY2F0aW5nXG4iLAotICAgICAgICAgICAgICAg
ICAgICAgICAgZXhjbHVzaXZlLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfZ2V0X3N0cmluZygKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJz
aGlwX2tpbmRfaXNfb3duZWQoZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCkpIHsKLSAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOwotCi0gICAgICAgICAgICAgICAgcGFn
ZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KGV4Y2x1c2l2ZS0+cGFnZV9ib3Vu
ZGFyeSwgcGFnZV9jb25maWcpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiB0aGlzIGV4Y2x1c2l2ZSBhbHJl
YWR5IGhhZCBhIHBhZ2UsIHRoZW4gdGhlIHBhZ2UgbXVzdCBiZSBzYXlpbmcgdGhhdCBpdCdzIGVs
aWdpYmxlLiAqLwotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19leGNsdXNpdmUocGFnZS0+b3duZXIpKTsKLQotICAgICAgICAgICAgICAgIHBhZ2UtPm93
bmVyID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXdfbm9uX251bGwoYmlhc2lu
Z192aWV3KTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZo
ZWxkX2xvY2ssIE5VTEwpOwotCi0gICAgICAgICAgICAvKiBUaGUgZXhjbHVzaXZlIGlzIGluZWxp
Z2libGUgaW4gdGhlIHNpemUgZGlyZWN0b3J5IG5vdywgc28gaXQncyBub3cgb3VycyB0byBkbyB3
aXRoIGFzCi0gICAgICAgICAgICAgICB3ZSBwbGVhc2UuICovCi0gICAgICAgIH0KLQotICAgICAg
ICBpbmVsaWdpYmxlX293bmluZ192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2Fz
X2luZWxpZ2libGVfdmlld19ub25fbnVsbChiaWFzaW5nX3ZpZXcpOwotCi0gICAgICAgIGdvdG8g
ZXhjbHVzaXZlX3ZpZXdfY2FzZTsKLSAgICB9CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNs
dXNpdmVfdmlld19raW5kOiB7CiAgICAgICAgIGV4Y2x1c2l2ZSA9IChwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOwogICAgICAg
ICBpbmVsaWdpYmxlX293bmluZ192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
YXNfaW5lbGlnaWJsZV92aWV3X25vbl9udWxsKGV4Y2x1c2l2ZSk7CiAKLSAgICAgICAgZ290byBl
eGNsdXNpdmVfdmlld19jYXNlOwotICAgIH0KLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlld19raW5kOiB7Ci0gICAgICAgIGdvdG8gcGFydGlhbF92aWV3X2Nhc2U7Ci0gICAgfQot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQi
KTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQorICAgICAgICAvKiBUaGlzIGlzIGNhbGxl
ZCB3aXRoIHRoZSBwYWdlIGxvY2sgTk9UIGhlbGQuICovCiAKLSAgICBQQVNfQVNTRVJUKCEiU2hv
dWxkIG5vdCBkcm9wIGRvd24gdG8gaGVyZS4iKTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJU
KAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZChpbmVsaWdpYmxlX293
bmluZ192aWV3KQorICAgICAgICAgICAgPT0gcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNs
dXNpdmVfdmlld19raW5kKTsKKyAgICAKKyAgICAgICAgc2l6ZV9kaXJlY3RvcnkgPQorICAgICAg
ICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25f
bnVsbCgmZXhjbHVzaXZlLT5kaXJlY3RvcnkpOworICAgICAgICBzaXplX2RpcmVjdG9yeV9iYXNl
ID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOworICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlID0g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZp
Zyk7CiAKLWV4Y2x1c2l2ZV92aWV3X2Nhc2U6Ci0gICAgLyogVGhpcyBpcyBjYWxsZWQgd2l0aCB0
aGUgcGFnZSBsb2NrIE5PVCBoZWxkLiAqLworICAgICAgICAvKiBDb29sIGZhY3Q6IHRoaXMgd29u
J3QgY2F1c2UgdGhlIHNpemUgZGlyZWN0b3J5IHRvIGhhdmUgc2hhcmluZyBwYXlsb2FkcyB1bnRp
bCB0aGF0CisgICAgICAgICAgIHNpemUgZGlyZWN0b3J5IGFsbG9jYXRlcyBleGNsdXNpdmUgdmll
d3MuICovCiAKLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19p
bmVsaWdpYmxlX2tpbmQoaW5lbGlnaWJsZV9vd25pbmdfdmlldykpOwotICAgIAotICAgIHNpemVf
ZGlyZWN0b3J5ID0KLSAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJmV4Y2x1c2l2ZS0+ZGlyZWN0b3J5KTsKLSAgICBz
aXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOwotICAgIGhlYXBfbG9j
a19ob2xkX21vZGUgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9t
b2RlKHBhZ2VfY29uZmlnKTsKLQotICAgIC8qIENvb2wgZmFjdDogdGhpcyB3b24ndCBjYXVzZSB0
aGUgc2l6ZSBkaXJlY3RvcnkgdG8gaGF2ZSBzaGFyaW5nIHBheWxvYWRzIHVudGlsIHRoYXQKLSAg
ICAgICBzaXplIGRpcmVjdG9yeSBhbGxvY2F0ZXMgZXhjbHVzaXZlIHZpZXdzLiAqLwotCi0gICAg
LyogRXZlbiB0aG91Z2ggd2UgaG9sZCBubyBsb2Nrcywgd2UgY2FuIHRvdGFsbHkgY2hlY2sgdGhp
cyBiaXQuIFRoZSBlbGlnaWJsZSBiaXQgaXMgYSBzZWNvbmRhcnkKLSAgICAgICBwcm90ZWN0aW9u
IGhlcmUgc2luY2UgaXQgaXMgb25seSBsZWdhbCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMg
Yml0IGlmIHlvdSd2ZSBzdG9sZW4KLSAgICAgICBlbGlnaWJpbGl0eSBhbmQgbG9ja2VkIHRoZSBw
YWdlLiAqLwotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlw
X2tpbmRfaXNfb3duZWQoZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCkpIHsKLSAgICAgICAgYm9v
bCB3YXNfc3RvbGVuOworICAgICAgICAvKiBFdmVuIHRob3VnaCB3ZSBob2xkIG5vIGxvY2tzLCB3
ZSBjYW4gdG90YWxseSBjaGVjayB0aGlzIGJpdC4gVGhlIGVsaWdpYmxlIGJpdCBpcyBhIHNlY29u
ZGFyeQorICAgICAgICAgICBwcm90ZWN0aW9uIGhlcmUgc2luY2UgaXQgaXMgb25seSBsZWdhbCB0
byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMgYml0IGlmIHlvdSd2ZSBzdG9sZW4KKyAgICAgICAg
ICAgZWxpZ2liaWxpdHkgYW5kIGxvY2tlZCB0aGUgcGFnZS4gKi8KKyAgICAgICAgaWYgKCFleGNs
dXNpdmUtPmlzX293bmVkKSB7CisgICAgICAgICAgICBib29sIHdhc19zdG9sZW47CiAKLSAgICAg
ICAgd2FzX3N0b2xlbiA9IGZhbHNlOworICAgICAgICAgICAgd2FzX3N0b2xlbiA9IGZhbHNlOwog
ICAgICAgICAKLSAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpIHsKLSAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIk5vIHBhZ2UsIHRy
eWluZyB0byBnZXQgb25lIHNvbWVob3cuXG4iKTsKLSAgICAgICAgICAgIGlmICghZXhjbHVzaXZl
LT5wYWdlX2JvdW5kYXJ5Ci0gICAgICAgICAgICAgICAgJiYgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2Nhbl9kb19zaGFyaW5nKHNpemVfZGlyZWN0b3J5X2Jhc2UpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIlRyeWluZyBwaHlz
aWNhbC5cbiIpOwotICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9v
bF90YWtlX2Zvcl9wYWdlX2NvbmZpZygKLSAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcu
YmFzZS5wYWdlX3NpemUsIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyLAotICAgICAg
ICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlLCBOVUxMLCAwKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91bmRh
cnkpIHsKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAg
cGFzX2xvZygiQWxsb2NhdGluZyBhIHBhZ2UuXG4iKTsKLSAgICAgICAgICAgICAgICBwYXNfaGVh
cF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAg
ICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vf
YWxsb2NhdG9yKHNpemVfZGlyZWN0b3J5LT5oZWFwKTsKLSAgICAgICAgICAgICAgICBpZiAoZXhj
bHVzaXZlLT5wYWdlX2JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3Nl
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBwYWdlIGhlYWRl
ciBmb3IgbmV3IGV4Y2x1c2l2ZSBwYWdlLCBib3VuZGFyeSA9ICVwLlxuIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKKyAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvZygiTm8gcGFnZSwgdHJ5aW5nIHRvIGdldCBvbmUgc29tZWhvdy5c
biIpOworICAgICAgICAgICAgICAgIGlmICghZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5CisgICAg
ICAgICAgICAgICAgICAgICYmIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9jYW5fZG9fc2hhcmlu
ZyhzaXplX2RpcmVjdG9yeV9iYXNlKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9z
ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIlRyeWluZyBwaHlzaWNhbC5cbiIp
OworICAgICAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZV9mb3JfcGFnZV9jb25maWcoCisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5i
YXNlLnBhZ2Vfc2l6ZSwgcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIsCisgICAgICAg
ICAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlLCBOVUxMLCAwKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIWV4Y2x1c2l2ZS0+
cGFnZV9ib3VuZGFyeSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkFsbG9jYXRpbmcgYSBwYWdlLlxuIik7CisgICAg
ICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9j
a19ob2xkX21vZGUpOworICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRh
cnkgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2VfYWxsb2NhdG9yKHNpemVfZGlyZWN0b3J5LT5oZWFw
KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBwYWdlIGhlYWRlciBmb3IgbmV3IGV4Y2x1c2l2
ZSBwYWdlLCBib3VuZGFyeSA9ICVwLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9wYWdl
X2hlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91
bmRhcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CiAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFz
ZS5jcmVhdGVfcGFnZV9oZWFkZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUt
PnBhZ2VfYm91bmRhcnksCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxk
KTsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxs
eShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2Up
CisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJHb3QgcGFnZSA9ICVwLlxuIiwgZXhj
bHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgcGFz
X2xvZygiR290IHBhZ2UgPSAlcC5cbiIsIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7Ci0gICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghZXhjbHVzaXZlLT5wYWdl
X2JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICAgICAgLyogT3V0IG9mIG1lbW9yeS4gKi8KLSAgICAg
ICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4X251bV9sb2Nrc19oZWxkID0gMTsK
LSAgICAgICAgICAgIHBhc19sb2NrKiBsb2Nrc19oZWxkW21heF9udW1fbG9ja3NfaGVsZF07Ci0g
ICAgICAgICAgICBzaXplX3QgbnVtX2xvY2tzX2hlbGQ7Ci0gICAgICAgICAgICBib29sIGRpZF9s
b2NrX2xvY2s7CisgICAgICAgICAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkp
IHsKKyAgICAgICAgICAgICAgICAgICAgLyogT3V0IG9mIG1lbW9yeS4gKi8KKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heF9udW1fbG9ja3Nf
aGVsZCA9IDE7CisgICAgICAgICAgICAgICAgcGFzX2xvY2sqIGxvY2tzX2hlbGRbbWF4X251bV9s
b2Nrc19oZWxkXTsKKyAgICAgICAgICAgICAgICBzaXplX3QgbnVtX2xvY2tzX2hlbGQ7CisgICAg
ICAgICAgICAgICAgYm9vbCBkaWRfbG9ja19sb2NrOwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICAvKiBBdCB0aGlzIHBvaW50IG5vYm9keSBidXQgdXMgY2FuICppbml0aWF0ZSogYW55dGhpbmcg
b24gdGhpcyBwYWdlLiBCdXQgaXQncwotICAgICAgICAgICAgICAgcG9zc2libGUgdGhhdCB3aG9l
dmVyIGRlY29tbWl0dGVkIHRoaXMgcGFnZSBpc24ndCBhY3R1YWxseSBkb25lIGRlY29tbWl0dGlu
ZwotICAgICAgICAgICAgICAgeWV0LiBTbyB3ZSBncmFiIHRoZSBjb21taXQgbG9jayBmb3IgdGhp
cyBwYWdlIHRvIGVuc3VyZSB0aGF0IHdlIGFyZSB0aGUgb25lcwotICAgICAgICAgICAgICAgd2hv
IGdldCB0byBkbyBpdC4gTm90ZSB0aGF0IGlmIHRoZSBoZWFwIGxvY2sgaXMgaGVsZCB0aGVuIHdl
IGhhdmUgdG8gZG8gdGhpcwotICAgICAgICAgICAgICAgdmlhIHRoZSBwaHlzaWNhbCBtZW1vcnkg
dHJhbnNhY3Rpb24uIEFsc28gbm90ZSB0aGF0IGl0J3MgdmVyeSB1bmxpa2VseSB0aGF0Ci0gICAg
ICAgICAgICAgICB0aGUgY29tbWl0IGxvY2sgaXMgaGVsZCBoZXJlLCBzaW5jZSB3ZSB0cnkgdG8g
b25seSBkZWNvbW1pdCBwYWdlcyB0aGF0IGFyZQotICAgICAgICAgICAgICAgdW5saWtlbHkgdG8g
YmUgdXNlZCBhbnl0aW1lIHNvb24uICovCisgICAgICAgICAgICAgICAgLyogQXQgdGhpcyBwb2lu
dCBub2JvZHkgYnV0IHVzIGNhbiAqaW5pdGlhdGUqIGFueXRoaW5nIG9uIHRoaXMgcGFnZS4gQnV0
IGl0J3MKKyAgICAgICAgICAgICAgICAgICBwb3NzaWJsZSB0aGF0IHdob2V2ZXIgZGVjb21taXR0
ZWQgdGhpcyBwYWdlIGlzbid0IGFjdHVhbGx5IGRvbmUgZGVjb21taXR0aW5nCisgICAgICAgICAg
ICAgICAgICAgeWV0LiBTbyB3ZSBncmFiIHRoZSBjb21taXQgbG9jayBmb3IgdGhpcyBwYWdlIHRv
IGVuc3VyZSB0aGF0IHdlIGFyZSB0aGUgb25lcworICAgICAgICAgICAgICAgICAgIHdobyBnZXQg
dG8gZG8gaXQuIE5vdGUgdGhhdCBpZiB0aGUgaGVhcCBsb2NrIGlzIGhlbGQgdGhlbiB3ZSBoYXZl
IHRvIGRvIHRoaXMKKyAgICAgICAgICAgICAgICAgICB2aWEgdGhlIHBoeXNpY2FsIG1lbW9yeSB0
cmFuc2FjdGlvbi4gQWxzbyBub3RlIHRoYXQgaXQncyB2ZXJ5IHVubGlrZWx5IHRoYXQKKyAgICAg
ICAgICAgICAgICAgICB0aGUgY29tbWl0IGxvY2sgaXMgaGVsZCBoZXJlLCBzaW5jZSB3ZSB0cnkg
dG8gb25seSBkZWNvbW1pdCBwYWdlcyB0aGF0IGFyZQorICAgICAgICAgICAgICAgICAgIHVubGlr
ZWx5IHRvIGJlIHVzZWQgYW55dGltZSBzb29uLiAqLwogICAgICAgICAgICAgCi0gICAgICAgICAg
ICBudW1fbG9ja3NfaGVsZCA9IDA7Ci0gICAgICAgICAgICBkaWRfbG9ja19sb2NrID0gZmFsc2U7
CisgICAgICAgICAgICAgICAgbnVtX2xvY2tzX2hlbGQgPSAwOworICAgICAgICAgICAgICAgIGRp
ZF9sb2NrX2xvY2sgPSBmYWxzZTsKIAotICAgICAgICAgICAgLyogVGhlIHV0aWxpdHkgaGVhcCBk
b2VzIGFsbCBjb21taXQvZGVjb21taXQgdW5kZXIgdGhlIGhlYXAgbG9jaywgc28gd2UgZG9uJ3Qg
bmVlZCB0bwotICAgICAgICAgICAgICAgcGxheSBhbnkgZ2FtZXMgd2l0aCB0aGUgY29tbWl0IGxv
Y2suICAqLwotICAgICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0
aWxpdHkocGFnZV9jb25maWcpKQotICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0
X2hlbGQoKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQo
aGVhcF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0gICAgICAgICAg
ICAgICAgcGFzX2xvY2tfbG9jaygmZXhjbHVzaXZlLT5jb21taXRfbG9jayk7Ci0gICAgICAgICAg
ICAgICAgbG9ja3NfaGVsZFtudW1fbG9ja3NfaGVsZCsrXSA9ICZleGNsdXNpdmUtPmNvbW1pdF9s
b2NrOwotICAgICAgICAgICAgICAgIGRpZF9sb2NrX2xvY2sgPSB0cnVlOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgICAgICAgICAgICAgLyog
VGhlIHV0aWxpdHkgaGVhcCBkb2VzIGFsbCBjb21taXQvZGVjb21taXQgdW5kZXIgdGhlIGhlYXAg
bG9jaywgc28gd2UgZG9uJ3QgbmVlZCB0bworICAgICAgICAgICAgICAgICAgIHBsYXkgYW55IGdh
bWVzIHdpdGggdGhlIGNvbW1pdCBsb2NrLiAgKi8KKyAgICAgICAgICAgICAgICBpZiAocGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpCisgICAgICAgICAg
ICAgICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKyAgICAgICAgICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChoZWFwX2xvY2tfaG9sZF9tb2Rl
ID09IHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tf
bG9jaygmZXhjbHVzaXZlLT5jb21taXRfbG9jayk7CisgICAgICAgICAgICAgICAgICAgIGxvY2tz
X2hlbGRbbnVtX2xvY2tzX2hlbGQrK10gPSAmZXhjbHVzaXZlLT5jb21taXRfbG9jazsKKyAgICAg
ICAgICAgICAgICAgICAgZGlkX2xvY2tfbG9jayA9IHRydWU7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogICAgICAgICAgICAgCi0gICAg
ICAgICAgICBQQVNfQVNTRVJUKG51bV9sb2Nrc19oZWxkIDw9IG1heF9udW1fbG9ja3NfaGVsZCk7
CisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChudW1fbG9ja3NfaGVsZCA8PSBtYXhfbnVtX2xv
Y2tzX2hlbGQpOwogCi0gICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Nh
bl9kb19zaGFyaW5nKHNpemVfZGlyZWN0b3J5X2Jhc2UpKSB7Ci0gICAgICAgICAgICAgICAgcGFz
X3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9yX3BhZ2VfY29uZmlnKAotICAgICAg
ICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSwKLSAgICAgICAgICAgICAg
ICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIsCi0gICAgICAgICAgICAgICAg
ICAgIGhlYXBfbG9ja19ob2xkX21vZGUsCi0gICAgICAgICAgICAgICAgICAgIGxvY2tzX2hlbGQs
Ci0gICAgICAgICAgICAgICAgICAgIG51bV9sb2Nrc19oZWxkKTsKLSAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Nhbl9kb19zaGFyaW5n
KHNpemVfZGlyZWN0b3J5X2Jhc2UpKSB7CisgICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNh
bF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2Zvcl9wYWdlX2NvbmZpZygKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplLAorICAgICAgICAgICAgICAgICAg
ICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIsCisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgbG9j
a3NfaGVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG51bV9sb2Nrc19oZWxkKTsKKyAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19j
b21taXQoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6
ZSk7Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgICAgIHBhc19sb2co
IkNyZWF0aW5nIHBhZ2UgaGVhZGVyIHdoZW4gY29tbWl0dGluZyBleGNsdXNpdmUgcGFnZSwgdmll
dyA9ICVwLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAiYm91bmRhcnkgPSAlcC5cbiIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUsIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFy
eSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9w
YWdlX2hlYWRlcigKLSAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksCi0g
ICAgICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICAgICAgcGFz
X3BhZ2VfbWFsbG9jX2NvbW1pdChleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmln
LmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAg
ICAgICAgICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBwYWdlIGhlYWRlciB3aGVuIGNvbW1pdHRp
bmcgZXhjbHVzaXZlIHBhZ2UsIHZpZXcgPSAlcCwgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJib3VuZGFyeSA9ICVwLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNs
dXNpdmUsIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKAorICAgICAg
ICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAg
ICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNf
Y29tcGlsZXJfZmVuY2UoKTsKLSAgICAgICAgICAgIGlmIChkaWRfbG9ja19sb2NrKQotICAgICAg
ICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmZXhjbHVzaXZlLT5jb21taXRfbG9jayk7Ci0KLSAg
ICAgICAgICAgIGlmIChQQVNfREVCVUdfU1BFQ1RSVU1fVVNFX0ZPUl9DT01NSVQpIHsKLSAgICAg
ICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKLSAgICAgICAgICAgICAgICBwYXNfZGVidWdfc3BlY3RydW1fYWRkKAotICAgICAg
ICAgICAgICAgICAgICBzaXplX2RpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtLAotICAgICAgICAgICAgICAgICAgICBwYWdlX2Nv
bmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7Ci0gICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxv
Y2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgICAgICAgICBw
YXNfY29tcGlsZXJfZmVuY2UoKTsKKyAgICAgICAgICAgICAgICBpZiAoZGlkX2xvY2tfbG9jaykK
KyAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZleGNsdXNpdmUtPmNvbW1pdF9s
b2NrKTsKKworICAgICAgICAgICAgICAgIGlmIChQQVNfREVCVUdfU1BFQ1RSVU1fVVNFX0ZPUl9D
T01NSVQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlv
bmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICAgICAgICAgIHBhc19kZWJ1
Z19zcGVjdHJ1bV9hZGQoCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplX2RpcmVjdG9yeSwg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0sCisgICAgICAg
ICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgICAg
ICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hv
bGRfbW9kZSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICB9CiAg
ICAgICAgIAotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbnN0cnVjdCgKLSAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5X3VuY2hlY2tlZChleGNsdXNpdmUt
PnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnKSwKLSAgICAgICAgICAgIGluZWxpZ2libGVfb3du
aW5nX3ZpZXcsCi0gICAgICAgICAgICB3YXNfc3RvbGVuLAotICAgICAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnKilwYWdlX2NvbmZpZy5iYXNlLnBhZ2VfY29uZmlnX3B0cik7Ci0K
LSAgICAgICAgcGFzX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KCZleGNsdXNpdmUtPm93bmVyc2hp
cF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgZXhjbHVzaXZlLT5vd25lcnNo
aXBfa2luZCA9Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25l
cnNoaXBfa2luZF93aXRoX293bmVkKGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQsIHRydWUpOwot
ICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgcGFzX2xvZygidmlldyAlcCBoYXMg
b3duZXJzaGlwIGtpbmQgPSAlcyBkdWUgdG8gZXhjbHVzaXZlIHdpbGxfc3RhcnRfYWxsb2NhdGlu
Z1xuIiwKLSAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLAotICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRfc3RyaW5n
KAotICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCkpOwot
ICAgICAgICB9Ci0gICAgICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZleGNsdXNp
dmUtPm93bmVyc2hpcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICB9CisgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbnN0cnVjdCgKKyAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeV91bmNoZWNrZWQoZXhjbHVzaXZlLT5wYWdlX2Jv
dW5kYXJ5LCBwYWdlX2NvbmZpZyksCisgICAgICAgICAgICAgICAgaW5lbGlnaWJsZV9vd25pbmdf
dmlldywKKyAgICAgICAgICAgICAgICB3YXNfc3RvbGVuLAorICAgICAgICAgICAgICAgIChwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyopcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIp
OwogCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7Cisg
ICAgICAgICAgICBwYXNfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoJmV4Y2x1c2l2ZS0+b3duZXJz
aGlwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICAgICAgZXhjbHVzaXZlLT5p
c19vd25lZCA9IHRydWU7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAg
ICAgIHBhc19sb2coInZpZXcgJXAgaGFzIGlzIG93bmVkID0gdHJ1ZSBkdWUgdG8gZXhjbHVzaXZl
IHdpbGxfc3RhcnRfYWxsb2NhdGluZ1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1
c2l2ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0
aW9uYWxseSgmZXhjbHVzaXZlLT5vd25lcnNoaXBfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CisgICAgICAgIH0KIAotICAgIHJldHVybiB2aWV3OworICAgICAgICBQQVNfVEVTVElOR19BU1NF
UlQoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKIAotcGFydGlhbF92aWV3X2Nhc2U6Ci0gICAg
cGFydGlhbCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldyk7Ci0gICAgCi0g
ICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmcGFydGlhbC0+ZGlyZWN0b3J5KTsKLSAgICBzaXpl
X2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOwotICAgIGhlYXAgPSBzaXpl
X2RpcmVjdG9yeS0+aGVhcDsKLSAgICBzaGFyZWRfcGFnZV9kaXJlY3RvcnkgPSBwYWdlX2NvbmZp
Zy5zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IoaGVhcCwgc2l6ZV9kaXJlY3RvcnkpOwot
ICAgIHNoYXJlZF9wYWdlX2RpcmVjdG9yeV9iYXNlID0gJnNoYXJlZF9wYWdlX2RpcmVjdG9yeS0+
YmFzZTsKLSAgICBoZWFwX2xvY2tfaG9sZF9tb2RlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZyk7Ci0KLSAgICBzaGFyZWRfdmlldyA9
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX2xvYWQoJnBhcnRpYWwtPnNo
YXJlZF92aWV3KTsKLSAgICBpZiAoIXNoYXJlZF92aWV3KSB7Ci0gICAgICAgIC8qIFdlIGhhdmUg
YSBwcmltb3JkaWFsIHBhcnRpYWwgdmlldyEgTGV0IHRoZSBsb2NhbCBhbGxvY2F0b3Igd29ycnkg
YWJvdXQgaXQuIFRoZXJlJ3MKLSAgICAgICAgICAgbm90aGluZyB3ZSBjYW4gZG8gc2luY2Ugd2Ug
ZG9uJ3QgcmVhbGx5IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uLiBUaGlzIHBhdGggaGFzIHRvIGRv
Ci0gICAgICAgICAgIHRoaXMgY2FyZWZ1bCBkYW5jZSB3aGVyZSBpdCBhdG9taWNhbGx5IHBpY2tz
IGEgc2hhcmVkIHZpZXcgYW5kIGFsbG9jYXRlcyBzb21ldGhpbmcKLSAgICAgICAgICAgZnJvbSBp
dCwgYW5kIHRoZW4gdGhhdCBzb21ldGhpbmcgaGFzIHRvIGJlIGltbWVkaWF0ZWx5IHNob3ZlZCBp
bnRvIHRoZSBsb2NhbAotICAgICAgICAgICBhbGxvY2F0b3IuICovCiAgICAgICAgIHJldHVybiB2
aWV3OwogICAgIH0KKyAgICAgICAgCisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXdfa2luZDogeworICAgICAgICBwYXJ0aWFsID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFy
dGlhbCh2aWV3KTsKKyAgICAKKyAgICAgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFsLT5kaXJl
Y3RvcnkpOworICAgICAgICBzaXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGlyZWN0b3J5LT5i
YXNlOworICAgICAgICBoZWFwID0gc2l6ZV9kaXJlY3RvcnktPmhlYXA7CisgICAgICAgIHNoYXJl
ZF9wYWdlX2RpcmVjdG9yeSA9IHBhZ2VfY29uZmlnLnNoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxl
Y3RvcihoZWFwLCBzaXplX2RpcmVjdG9yeSk7CisgICAgICAgIHNoYXJlZF9wYWdlX2RpcmVjdG9y
eV9iYXNlID0gJnNoYXJlZF9wYWdlX2RpcmVjdG9yeS0+YmFzZTsKKyAgICAgICAgaGVhcF9sb2Nr
X2hvbGRfbW9kZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21v
ZGUocGFnZV9jb25maWcpOwogCi0gICAgcGFzX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KCZzaGFy
ZWRfdmlldy0+Y29tbWl0X2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICBzaGFy
ZWRfdmlldyA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX2xvYWQoJnBh
cnRpYWwtPnNoYXJlZF92aWV3KTsKKyAgICAgICAgaWYgKCFzaGFyZWRfdmlldykgeworICAgICAg
ICAgICAgLyogV2UgaGF2ZSBhIHByaW1vcmRpYWwgcGFydGlhbCB2aWV3ISBMZXQgdGhlIGxvY2Fs
IGFsbG9jYXRvciB3b3JyeSBhYm91dCBpdC4gVGhlcmUncworICAgICAgICAgICAgICAgbm90aGlu
ZyB3ZSBjYW4gZG8gc2luY2Ugd2UgZG9uJ3QgcmVhbGx5IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9u
LiBUaGlzIHBhdGggaGFzIHRvIGRvCisgICAgICAgICAgICAgICB0aGlzIGNhcmVmdWwgZGFuY2Ug
d2hlcmUgaXQgYXRvbWljYWxseSBwaWNrcyBhIHNoYXJlZCB2aWV3IGFuZCBhbGxvY2F0ZXMgc29t
ZXRoaW5nCisgICAgICAgICAgICAgICBmcm9tIGl0LCBhbmQgdGhlbiB0aGF0IHNvbWV0aGluZyBo
YXMgdG8gYmUgaW1tZWRpYXRlbHkgc2hvdmVkIGludG8gdGhlIGxvY2FsCisgICAgICAgICAgICAg
ICBhbGxvY2F0b3IuICovCisgICAgICAgICAgICByZXR1cm4gdmlldzsKKyAgICAgICAgfQogCi0g
ICAgc2hhcmVkX2hhbmRsZSA9IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NvbW1pdF9wYWdl
X2lmX25lY2Vzc2FyeSgKLSAgICAgICAgc2hhcmVkX3ZpZXcsIGhlYXAsIHNoYXJlZF9wYWdlX2Rp
cmVjdG9yeSwgcGFydGlhbCwgcGFnZV9jb25maWcpOworICAgICAgICBwYXNfbG9ja19sb2NrX2Nv
bmRpdGlvbmFsbHkoJnNoYXJlZF92aWV3LT5jb21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7CiAKLSAgICBpZiAoIXNoYXJlZF9oYW5kbGUpIHsKLSAgICAgICAgLyogVGhpcyBtZWFucyBP
T00gKi8KLSAgICAgICAgcGFzX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoJnNoYXJlZF92aWV3
LT5jb21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIHJldHVybiBOVUxM
OwotICAgIH0KKyAgICAgICAgc2hhcmVkX2hhbmRsZSA9IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92
aWV3X2NvbW1pdF9wYWdlX2lmX25lY2Vzc2FyeSgKKyAgICAgICAgICAgIHNoYXJlZF92aWV3LCBo
ZWFwLCBzaGFyZWRfcGFnZV9kaXJlY3RvcnksIHBhcnRpYWwsIHBhZ2VfY29uZmlnKTsKKworICAg
ICAgICBpZiAoIXNoYXJlZF9oYW5kbGUpIHsKKyAgICAgICAgICAgIC8qIFRoaXMgbWVhbnMgT09N
ICovCisgICAgICAgICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgmc2hhcmVkX3Zp
ZXctPmNvbW1pdF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgICAgIHJldHVy
biBOVUxMOworICAgICAgICB9CiAKLSAgICBpZiAoIXBhcnRpYWwtPmlzX2F0dGFjaGVkX3RvX3No
YXJlZF9oYW5kbGUpIHsKLSAgICAgICAgdW5zaWduZWQqIGZ1bGxfYWxsb2NfYml0czsKLSAgICAg
ICAgdW5zaWduZWQgYmVnaW5fd29yZF9pbmRleDsKLSAgICAgICAgdW5zaWduZWQgZW5kX3dvcmRf
aW5kZXg7Ci0gICAgICAgIHVuc2lnbmVkIHdvcmRfaW5kZXg7Ci0gICAgICAgIAotICAgICAgICBm
dWxsX2FsbG9jX2JpdHMgPSBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX2xvYWRfbm9u
X251bGwoJnBhcnRpYWwtPmFsbG9jX2JpdHMpOwotICAgICAgICAKLSAgICAgICAgYmVnaW5fd29y
ZF9pbmRleCA9IHBhcnRpYWwtPmFsbG9jX2JpdHNfb2Zmc2V0OwotICAgICAgICBlbmRfd29yZF9p
bmRleCA9IGJlZ2luX3dvcmRfaW5kZXggKyBwYXJ0aWFsLT5hbGxvY19iaXRzX3NpemU7Ci0gICAg
ICAgIAotICAgICAgICBpZiAocGFnZV9jb25maWcuc2hhcmluZ19zaGlmdCA9PSBQQVNfQklUVkVD
VE9SX1dPUkRfU0hJRlQpIHsKLSAgICAgICAgICAgIGZvciAod29yZF9pbmRleCA9IGJlZ2luX3dv
cmRfaW5kZXg7IHdvcmRfaW5kZXggPCBlbmRfd29yZF9pbmRleDsgKyt3b3JkX2luZGV4KSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKGZ1bGxfYWxsb2NfYml0c1t3b3JkX2luZGV4XSkgewotICAgICAg
ICAgICAgICAgICAgICBQQVNfQVNTRVJUKCFwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXdfcHRyX2xvYWQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNoYXJlZF9oYW5kbGUtPnBhcnRpYWxfdmlld3MgKyB3b3JkX2luZGV4KSk7Ci0gICAgICAgICAg
ICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHJf
c3RvcmUoCi0gICAgICAgICAgICAgICAgICAgICAgICBzaGFyZWRfaGFuZGxlLT5wYXJ0aWFsX3Zp
ZXdzICsgd29yZF9pbmRleCwgcGFydGlhbCk7CisgICAgICAgIGlmICghcGFydGlhbC0+aXNfYXR0
YWNoZWRfdG9fc2hhcmVkX2hhbmRsZSkgeworICAgICAgICAgICAgdW5zaWduZWQqIGZ1bGxfYWxs
b2NfYml0czsKKyAgICAgICAgICAgIHVuc2lnbmVkIGJlZ2luX3dvcmRfaW5kZXg7CisgICAgICAg
ICAgICB1bnNpZ25lZCBlbmRfd29yZF9pbmRleDsKKyAgICAgICAgICAgIHVuc2lnbmVkIHdvcmRf
aW5kZXg7CisgICAgICAgIAorICAgICAgICAgICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2NvbXBh
Y3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFsLT5hbGxvY19iaXRz
KTsKKyAgICAgICAgCisgICAgICAgICAgICBiZWdpbl93b3JkX2luZGV4ID0gcGFydGlhbC0+YWxs
b2NfYml0c19vZmZzZXQ7CisgICAgICAgICAgICBlbmRfd29yZF9pbmRleCA9IGJlZ2luX3dvcmRf
aW5kZXggKyBwYXJ0aWFsLT5hbGxvY19iaXRzX3NpemU7CisgICAgICAgIAorICAgICAgICAgICAg
aWYgKHBhZ2VfY29uZmlnLnNoYXJpbmdfc2hpZnQgPT0gUEFTX0JJVFZFQ1RPUl9XT1JEX1NISUZU
KSB7CisgICAgICAgICAgICAgICAgZm9yICh3b3JkX2luZGV4ID0gYmVnaW5fd29yZF9pbmRleDsg
d29yZF9pbmRleCA8IGVuZF93b3JkX2luZGV4OyArK3dvcmRfaW5kZXgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGZ1bGxfYWxsb2NfYml0c1t3b3JkX2luZGV4XSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2hhcmVkX2hhbmRsZS0+cGFydGlhbF92aWV3cyArIHdvcmRfaW5kZXgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
d19wdHJfc3RvcmUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX2hhbmRsZS0+
cGFydGlhbF92aWV3cyArIHdvcmRfaW5kZXgsIHBhcnRpYWwpOworICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgZm9yICh3b3JkX2luZGV4ID0gYmVnaW5fd29yZF9pbmRleDsgd29yZF9pbmRl
eCA8IGVuZF93b3JkX2luZGV4OyArK3dvcmRfaW5kZXgpIHsKLSAgICAgICAgICAgICAgICB1bnNp
Z25lZCBmdWxsX2FsbG9jX3dvcmQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIGZvciAod29yZF9pbmRleCA9IGJlZ2luX3dvcmRfaW5kZXg7IHdvcmRfaW5kZXggPCBlbmRf
d29yZF9pbmRleDsgKyt3b3JkX2luZGV4KSB7CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGZ1bGxfYWxsb2Nfd29yZDsKICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBmdWxs
X2FsbG9jX3dvcmQgPSBmdWxsX2FsbG9jX2JpdHNbd29yZF9pbmRleF07Ci0gICAgICAgICAgICAg
ICAgaWYgKCFmdWxsX2FsbG9jX3dvcmQpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgICAgICAgICBmdWxsX2FsbG9jX3dvcmQgPSBmdWxsX2FsbG9jX2JpdHNbd29y
ZF9pbmRleF07CisgICAgICAgICAgICAgICAgICAgIGlmICghZnVsbF9hbGxvY193b3JkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3RlbGxfc2hhcmVkX2hhbmRsZV9m
b3Jfd29yZF9nZW5lcmFsX2Nhc2UoCi0gICAgICAgICAgICAgICAgICAgIHBhcnRpYWwsIHNoYXJl
ZF9oYW5kbGUsIHdvcmRfaW5kZXgsIGZ1bGxfYWxsb2Nfd29yZCwgcGFnZV9jb25maWcuc2hhcmlu
Z19zaGlmdCk7CisgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
d190ZWxsX3NoYXJlZF9oYW5kbGVfZm9yX3dvcmRfZ2VuZXJhbF9jYXNlKAorICAgICAgICAgICAg
ICAgICAgICAgICAgcGFydGlhbCwgc2hhcmVkX2hhbmRsZSwgd29yZF9pbmRleCwgZnVsbF9hbGxv
Y193b3JkLCBwYWdlX2NvbmZpZy5zaGFyaW5nX3NoaWZ0KTsKKyAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9Ci0gICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHBhc19sb2NrX2xvY2so
JnNoYXJlZF92aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgIHBhcnRpYWwtPmlzX2F0dGFj
aGVkX3RvX3NoYXJlZF9oYW5kbGUgPSB0cnVlOwotICAgICAgICBwYXNfbG9ja191bmxvY2soJnNo
YXJlZF92aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgfQorICAgICAgICAgICAgcGFzX2xvY2tf
bG9jaygmc2hhcmVkX3ZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAgICAgIHBhcnRpYWwt
PmlzX2F0dGFjaGVkX3RvX3NoYXJlZF9oYW5kbGUgPSB0cnVlOworICAgICAgICAgICAgcGFzX2xv
Y2tfdW5sb2NrKCZzaGFyZWRfdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICB9CiAKLSAg
ICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51
bGVfc2l6ZSkgewotICAgICAgICAvKiBXZSBhbHdheXMgbWFuYWdlIHBhcnRpYWwgY29tbWl0IG9m
IG1lZGl1bSBwYWdlcyB1bmRlciB0aGUgY29tbWl0IGxvY2suIE90aGVyd2lzZSwKLSAgICAgICAg
ICAgbXVsdGlwbGUgcnVucyBvZiB0aGlzIGZ1bmN0aW9uIGNvdWxkIGludGVybGVhdmUgaW4gd2Vp
cmQgd2F5cy4gKi8KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZTsKLSAgICAgICAg
cGFzX2xvY2sqIGhlbGRfbG9jazsKLQotICAgICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9mb3JfYm91bmRhcnkoc2hhcmVkX2hhbmRsZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcp
OwotICAgICAgICBoZWxkX2xvY2sgPSBOVUxMOwotICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7Ci0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29tbWl0X2Z1bGx5KAotICAgICAgICAgICAgcGFn
ZSwgJmhlbGRfbG9jaywgcGFzX2NvbW1pdF9mdWxseV9ob2xkaW5nX3BhZ2VfYW5kX2NvbW1pdF9s
b2Nrcyk7Ci0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICB9
CisgICAgICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLmJh
c2UuZ3JhbnVsZV9zaXplKSB7CisgICAgICAgICAgICAvKiBXZSBhbHdheXMgbWFuYWdlIHBhcnRp
YWwgY29tbWl0IG9mIG1lZGl1bSBwYWdlcyB1bmRlciB0aGUgY29tbWl0IGxvY2suIE90aGVyd2lz
ZSwKKyAgICAgICAgICAgICAgIG11bHRpcGxlIHJ1bnMgb2YgdGhpcyBmdW5jdGlvbiBjb3VsZCBp
bnRlcmxlYXZlIGluIHdlaXJkIHdheXMuICovCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlKiBwYWdlOworICAgICAgICAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKKworICAgICAgICAg
ICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KHNoYXJlZF9oYW5kbGUt
PnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgICAgIGhlbGRfbG9jayA9IE5V
TEw7CisgICAgICAgIAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9j
ayhwYWdlLCAmaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbW1pdF9mdWxseSgKKyAgICAgICAgICAgICAgICBwYWdlLCAmaGVsZF9sb2Nr
LCBwYXNfY29tbWl0X2Z1bGx5X2hvbGRpbmdfcGFnZV9hbmRfY29tbWl0X2xvY2tzKTsKKyAgICAg
ICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKKyAgICAgICAgfQogCi0g
ICAgLyogQXQgdGhpcyBwb2ludCB0aGUgc2hhcmVkIGhhbmRsZSBrbm93cyBhYm91dCB0aGlzIHBh
cnRpYWwgdmlldyBhbmQgdGhpcyBwYXJ0aWFsIHZpZXcKLSAgICAgICBpcyBpbmVsaWdpYmxlLiBU
aGlzIGFjdHMgYXMgYSBob2xkIG9uIHRoZSBzaGFyZWQgdmlldzogZXZlbiBpZiB3ZSByZWxlYXNl
IHRoZSBjb21taXQKLSAgICAgICBsb2NrLCB0aGF0IHNoYXJlZCB2aWV3IGNhbm5vdCBiZSBkZWNv
bW1pdHRlZCwgZXZlbiB0aG91Z2ggaXQgbWF5IGJlIGVtcHR5LiAqLworICAgICAgICAvKiBBdCB0
aGlzIHBvaW50IHRoZSBzaGFyZWQgaGFuZGxlIGtub3dzIGFib3V0IHRoaXMgcGFydGlhbCB2aWV3
IGFuZCB0aGlzIHBhcnRpYWwgdmlldworICAgICAgICAgICBpcyBpbmVsaWdpYmxlLiBUaGlzIGFj
dHMgYXMgYSBob2xkIG9uIHRoZSBzaGFyZWQgdmlldzogZXZlbiBpZiB3ZSByZWxlYXNlIHRoZSBj
b21taXQKKyAgICAgICAgICAgbG9jaywgdGhhdCBzaGFyZWQgdmlldyBjYW5ub3QgYmUgZGVjb21t
aXR0ZWQsIGV2ZW4gdGhvdWdoIGl0IG1heSBiZSBlbXB0eS4gKi8KIAotICAgIHBhc19sb2NrX3Vu
bG9ja19jb25kaXRpb25hbGx5KCZzaGFyZWRfdmlldy0+Y29tbWl0X2xvY2ssIGhlYXBfbG9ja19o
b2xkX21vZGUpOworICAgICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgmc2hhcmVk
X3ZpZXctPmNvbW1pdF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAotICAgIHJldHVybiB2
aWV3OworICAgICAgICByZXR1cm4gdmlldzsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAg
UEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgICAgICByZXR1cm4gTlVM
TDsKKyAgICB9CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCkBAIC0zOTQsMTMg
KzMxNSw4IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZygKIHsKICAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKLSAgICBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOwotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eSogb3duaW5nX2RpcmVjdG9yeTsKLSAgICB1bnNpZ25lZCBpbmRleF9pbl9vd25pbmc7CiAgICAg
Ym9vbCBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5OwogICAgIGJvb2wgc2hvdWxkX25vdGlmeV9l
bXB0aW5lc3M7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAg
dW5zaWduZWQgdmlld19pbmRleDsKIAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9n
KCJEaWQgc3RvcCBhbGxvY2F0aW5nIGluIHZpZXcgJXAsIHBhZ2UgJXAuXG4iLCB2aWV3LCBwYWdl
KTsKQEAgLTQwOCwzMSArMzI0LDM0IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxs
b2NhdGluZygKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykp
IHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6IHsKKyAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZTsKKyAgICAgICAgCiAg
ICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiSXQncyBleGNsdXNpdmUu
XG4iKTsKICAgICAgICAgZXhjbHVzaXZlID0gKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7Ci0gICAgICAgIG93bmluZ19kaXJl
Y3RvcnkgPQotICAgICAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZleGNsdXNpdmUtPmRpcmVjdG9yeSktPmJhc2U7
Ci0gICAgICAgIGluZGV4X2luX293bmluZyA9IGV4Y2x1c2l2ZS0+aW5kZXg7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDogewot
ICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIGJpYXNpbmc7Ci0gICAgICAgIGlm
ICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygiSXQncyBiaWFzaW5nLlxuIik7Ci0gICAg
ICAgIGJpYXNpbmcgPSAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KilwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9wdHIodmlldyk7Ci0gICAgICAgIGV4Y2x1c2l2ZSA9IHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25vbl9udWxsKCZiaWFzaW5n
LT5leGNsdXNpdmUpOwotICAgICAgICBvd25pbmdfZGlyZWN0b3J5ID0KLSAgICAgICAgICAgICZw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KCZiaWFzaW5nLT5kaXJlY3RvcnkpLT5iYXNlOwotICAgICAgICBpbmRleF9pbl9vd25pbmcgPSBi
aWFzaW5nLT5pbmRleDsKLSAgICAgICAgYnJlYWs7CisKKyAgICAgICAgc2hvdWxkX25vdGlmeV9l
bGlnaWJpbGl0eSA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKHBhZ2UtPmVsaWdpYmls
aXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJlZCkgeworICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiRWxpZ2liaWxpdHkgbm90aWZpY2F0aW9u
IGhhcyBiZWVuIGRlZmVycmVkLlxuIik7CisgICAgICAgICAgICBwYWdlLT5lbGlnaWJpbGl0eV9u
b3RpZmljYXRpb25faGFzX2JlZW5fZGVmZXJyZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHNob3Vs
ZF9ub3RpZnlfZWxpZ2liaWxpdHkgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiTm8gZGVmZXJyZWQgZWxp
Z2liaWxpdHkgbm90aWZpY2F0aW9uLlxuIik7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcoCisgICAg
ICAgICAgICBleGNsdXNpdmUsIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJmV4Y2x1c2l2ZS0+ZGlyZWN0b3J5KSwKKyAgICAgICAgICAgIHBh
Z2UsIHBhZ2VfY29uZmlnLCBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5KTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOiB7
CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3OwogICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyogc2hhcmVkX3ZpZXc7CiAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUqIHNoYXJlZF9oYW5kbGU7Ci0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CisgICAgICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9iYXNlOwogICAgICAgICBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkqIHNoYXJlZF9wYWdlX2RpcmVjdG9y
eTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBzaGFyZWRfcGFnZV9kaXJlY3Rv
cnlfYmFzZTsKQEAgLTQ0NSw3ICszNjQsNyBAQCBwYXNfc2VncmVnYXRlZF92aWV3X2RpZF9zdG9w
X2FsbG9jYXRpbmcoCiAgICAgICAgIAogICAgICAgICBzaGFyZWRfdmlldyA9IHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoJnBhcnRpYWxfdmlldy0+
c2hhcmVkX3ZpZXcpOwogICAgICAgICBzaXplX2RpcmVjdG9yeSA9Ci0gICAgICAgICAgICBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgmcGFydGlhbF92aWV3LT5kaXJlY3RvcnkpOworICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmcGFydGlhbF92aWV3LT5k
aXJlY3RvcnkpOwogICAgICAgICBzaXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGlyZWN0b3J5
LT5iYXNlOwogICAgICAgICBzaGFyZWRfaGFuZGxlID0gcGFzX3Vud3JhcF9zaGFyZWRfaGFuZGxl
KHNoYXJlZF92aWV3LT5zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcpOwpAQCAt
NTEyLDU0ICs0MzEsNiBAQCBwYXNfc2VncmVnYXRlZF92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmco
CiAgICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLQotICAgIGRpcmVjdG9yeSA9ICZwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmZXhjbHVzaXZlLT5kaXJlY3RvcnkpLT5i
YXNlOwotICAgIHZpZXdfaW5kZXggPSBleGNsdXNpdmUtPmluZGV4OwotCi0gICAgaWYgKHZlcmJv
c2UpCi0gICAgICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9jYXRpb24gaW4gZXhjbHVzaXZlICVw
LyVwLlxuIiwgZXhjbHVzaXZlLCBwYWdlKTsKLQotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpCi0gICAgICAgIHBhc19sb2NrX3Rlc3Rp
bmdfYXNzZXJ0X2hlbGQocGFnZS0+bG9ja19wdHIpOwotICAgIFBBU19URVNUSU5HX0FTU0VSVChw
YWdlLT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb24pOwotICAgIAotICAgIHNob3VsZF9ub3RpZnlf
ZWxpZ2liaWxpdHkgPSBmYWxzZTsKLQotICAgIHNob3VsZF9ub3RpZnlfZW1wdGluZXNzID0gcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KAotICAgICAgICBwYWdlLCBw
YWdlX2NvbmZpZyk7Ci0KLSAgICBpZiAocGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hh
c19iZWVuX2RlZmVycmVkKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFz
X2xvZygiRWxpZ2liaWxpdHkgbm90aWZpY2F0aW9uIGhhcyBiZWVuIGRlZmVycmVkLlxuIik7Ci0g
ICAgICAgIHBhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJlZCA9
IGZhbHNlOwotICAgICAgICBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5ID0gdHJ1ZTsKLSAgICB9
IGVsc2UgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2coIk5vIGRl
ZmVycmVkIGVsaWdpYmlsaXR5IG5vdGlmaWNhdGlvbi5cbiIpOwotICAgIH0KLQotICAgIHBhZ2Ut
PmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbiA9IGZhbHNlOwotICAgIAotICAgIGlmIChzaG91bGRf
bm90aWZ5X2VsaWdpYmlsaXR5KSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAg
cGFzX2xvZygiVGVsbGluZyBkaXJlY3RvcnkgYWJvdXQgZGVmZXJyZWQgZWxpZ2liaWxpdHkuXG4i
KTsKLQotICAgICAgICAvKiBQYWdlIG11c3Qga25vdyB0aGF0IHdlIGFyZSBlbGlnaWJsZSBmaXJz
dC4gKi8KLSAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNf
ZWxpZ2libGVfa2luZChwYWdlLT5vd25lcikpOwotICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKLSAgICAg
ICAgICAgIG93bmluZ19kaXJlY3RvcnksCi0gICAgICAgICAgICBpbmRleF9pbl9vd25pbmcpOwot
ICAgIH0KLQotICAgIC8qIEl0J3MgaW1wb3J0YW50IHRvIG5vdGlmeSBlbXB0aW5lc3MgbGFzdCwg
c28gdGhhdCB3ZSBuZXZlciBmaW5kIG91dHNlbHZlcyBpbiBhIGNhc2Ugd2hlcmUgdGhlCi0gICAg
ICAgc2NhdmVuZ2VyIHRha2VzIHRoZSBlbXB0eSBiaXQsIGNhbm5vdCB0YWtlIHRoZSBlbGlnaWJs
ZSBiaXQsIGFuZCB0aGlzIGNvZGUgaGFkIGFscmVhZHkgc2V0IHRoZQotICAgICAgIGVtcHR5IGJp
dCBidXQgbm90IHRoZSBlbGlnaWJsZSBiaXQuICovCi0gICAgaWYgKHNob3VsZF9ub3RpZnlfZW1w
dGluZXNzKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNv
bWVfZW1wdHlfYXRfaW5kZXgoCi0gICAgICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgICAgICB2
aWV3X2luZGV4KTsKLSAgICB9CiB9CiAKIFBBU19FTkRfRVhURVJOX0M7CkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF92aWV3X2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmgJKG5vbmV4aXN0
ZW50KQpAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9WSUVXX0lOTElORVNfSAot
I2RlZmluZSBQQVNfU0VHUkVHQVRFRF9WSUVXX0lOTElORVNfSAotCi0jaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5o
IgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29t
ZV9leGNsdXNpdmUodmlldykpCi0gICAgICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKLSAgICByZXR1cm4g
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWQoCi0g
ICAgICAgICYoKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfcHRyKHZpZXcpKS0+ZXhjbHVzaXZlKTsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQot
I2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX1ZJRVdfSU5MSU5FU19IICovCi0KSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3ZpZXdfa2luZC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaAkod29ya2luZyBjb3B5KQpA
QCAtMzIsMTkgKzMyLDEzIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogZW51bSBwYXNfc2VncmVn
YXRlZF92aWV3X2tpbmQgewogICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQs
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQsIC8qIEl0J3Mgc3BlY2lhbCB0
aGF0IGV4Y2x1c2l2ZSBhbmQgYmlhc2luZyBjb21lIGZpcnN0LCBzZWUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2Vs
aWdpYmlsZSgpLCBiZWxvdy4gKi8KICAgICBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1
c2l2ZV92aWV3X2tpbmQsIC8qIFJlYWxseSB0aGUgc2FtZSB0eXBlIGFzIGV4Y2x1c2l2ZV92aWV3
LCBidXQgdGhpcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGV0cyB1cyB1c2UgdGhlIGtpbmQgYml0cyBvZiBhIHZpZXcgdG8gc2F5IGlmCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGln
aWJpbGl0eSBoYXMgYmVlbiBub3RlZC4gKi8KLSAgICBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxl
X2JpYXNpbmdfdmlld19raW5kLCAvKiBMaWtlIGluZWxpZ2libGVfZXhjbHVzaXZlLCBidXQgZm9y
IGJpYXNpbmcuIEl0J3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzcGVjaWFsIHRoYXQgdGhpcyBpcyB3aGVyZSB0aGlzIGlzLCBzZWUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF92aWV3X2tpbmRfaXNfZXhjbHVzaXZlX2lzaCgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlbG93LiAqLwogICAgIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF92aWV3X2tpbmQsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9r
aW5kLAogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kLAotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQKIH07CiAKIHR5cGVkZWYgZW51bSBwYXNfc2VncmVn
YXRlZF92aWV3X2tpbmQgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kOwpAQCAtNTcsMTYgKzUxLDEz
IEBAIHN0YXRpYyBpbmxpbmUgY2hhciBwYXNfc2VncmVnYXRlZF92aWV3X2sKICAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAnRSc7Ci0g
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAn
Qic7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAgICAgICBy
ZXR1cm4gJ1MnOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9raW5kOgog
ICAgICAgICByZXR1cm4gJ0gnOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
X2tpbmQ6CiAgICAgICAgIHJldHVybiAnUCc7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kOgorICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnlfdmlld19raW5kOgogICAgICAgICByZXR1cm4gJ1MnOwogICAgIH0KICAgICBQ
QVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CkBAIC04MCwzOCArNzEsMjIgQEAg
c3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBwYXNfc2VncmVnYXRlZAogICAgICAgICByZXR1cm4g
ImV4Y2x1c2l2ZV92aWV3IjsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhj
bHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICJpbmVsaWdpYmxlX2V4Y2x1c2l2ZV92
aWV3IjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgICAg
ICByZXR1cm4gImJpYXNpbmdfdmlldyI7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdp
YmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gImluZWxpZ2libGVfYmlhc2lu
Z192aWV3IjsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAg
ICAgIHJldHVybiAic2hhcmVkX3ZpZXciOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X2hhbmRsZV9raW5kOgogICAgICAgICByZXR1cm4gInNoYXJlZF9oYW5kbGUiOwogICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAicGFydGlh
bF92aWV3IjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV92
aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAiZ2xvYmFsX3NpemVfZGlyZWN0b3J5IjsKKyAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDoKKyAgICAgICAgcmV0
dXJuICJzaXplX2RpcmVjdG9yeSI7CiAgICAgfQogICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90
IGJlIHJlYWNoZWQiKTsKICAgICByZXR1cm4gTlVMTDsKIH0KIAotc3RhdGljIGlubGluZSBib29s
IHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3
X2tpbmQga2luZCkKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRf
aXNfc29tZV9leGNsdXNpdmUocGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kIGtpbmQpCiB7Ci0gICAg
cmV0dXJuIGtpbmQgPD0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ7Ci19Ci0KLS8q
IElzIHRoaXMgZWl0aGVyIGV4Y2x1c2l2ZSBvciBiaWFzaW5nPyAqLwotc3RhdGljIGlubGluZSBi
b29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19leGNsdXNpdmVfaXNoKHBhc19zZWdyZWdh
dGVkX3ZpZXdfa2luZCBraW5kKQotewotICAgIHJldHVybiBraW5kIDw9IHBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBw
YXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfaW5lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3
X2tpbmQga2luZCkKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2V4
Y2x1c2l2ZV9pc2goa2luZCkKLSAgICAgICAgJiYgIXBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9p
c19lbGlnaWJsZShraW5kKTsKKyAgICByZXR1cm4ga2luZCA8PSBwYXNfc2VncmVnYXRlZF9pbmVs
aWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNf
c2VncmVnYXRlZF92aWV3X2tpbmRfY2FuX2JlY29tZV9lbXB0eShwYXNfc2VncmVnYXRlZF92aWV3
X2tpbmQga2luZCkKQEAgLTExOSwxNCArOTQsMTIgQEAgc3RhdGljIGlubGluZSBib29sIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfawogICAgIHN3aXRjaCAoa2luZCkgewogICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxp
Z2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5n
X3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
X2tpbmQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3No
YXJlZF9oYW5kbGVfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV92aWV3X2tpbmQ6CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV92aWV3X2tpbmQ6CiAgICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQi
KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmMJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0
dXNfcmVwb3J0ZXIuYwkod29ya2luZyBjb3B5KQpAQCAtMzIsOSArMzIsNyBAQAogI2luY2x1ZGUg
InBhc19hbGxfaGVhcHMuaCIKICNpbmNsdWRlICJwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9y
aWVzLmgiCiAjaW5jbHVkZSAicGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIgotI2luY2x1
ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFz
X2JpdGZpdF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2NsYXNzLmgiCiAjaW5j
bHVkZSAicGFzX2JpdGZpdF92aWV3LmgiCkBAIC01MCw4ICs0OCw3IEBACiAjaW5jbHVkZSAicGFz
X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2xvZy5oIgogI2luY2x1
ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCkBAIC0xMzgsMjQgKzEzNSw2IEBAIHN0YXRp
YyB2b2lkIHJlcG9ydF9iaXRmaXRfZGlyZWN0b3J5X2NvbnQKIAogICAgICAgICBtYXhfZnJlZSA9
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9tYXhfZnJlZShkaXJlY3RvcnksIGluZGV4KTsKIAot
ICAgICAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsKLSAgICAgICAgY2Fz
ZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZDogewotICAgICAgICAgICAgcGFzX2Jp
dGZpdF92aWV3KiB2aWV3OwotICAgICAgICAgICAgCi0gICAgICAgICAgICB2aWV3ID0gcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICBQ
QVNfQVNTRVJUKHZpZXcpOwotCi0gICAgICAgICAgICBpZiAoIXBhc19jb21wYWN0X2F0b21pY19i
aXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2lzX251bGwoJnZpZXctPmJpYXNpbmdfZGlyZWN0
b3J5KSkgewotICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgImIiKTsK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5X2tpbmQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICAKICAgICAg
ICAgaWYgKG1heF9mcmVlID09IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpCiAgICAgICAgICAg
ICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJFIik7CiAgICAgICAgIGVsc2UKQEAgLTE2NSw1
NiArMTQ0LDE2IEBAIHN0YXRpYyB2b2lkIHJlcG9ydF9iaXRmaXRfZGlyZWN0b3J5X2NvbnQKICAg
ICAKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgRW1wdHkgKGJpdCk6ICIsIHBy
ZWZpeCk7CiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
c2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7Ci0gICAgICAgIHN3aXRjaCAoZGlyZWN0b3J5LT5k
aXJlY3Rvcnlfa2luZCkgewotICAgICAgICBjYXNlIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eV9raW5kOiB7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2Jh
bF9kaXJlY3Rvcnk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGdsb2JhbF9kaXJlY3Rvcnkg
PSAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICBpZiAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF9lbXB0
eV9iaXRfYXRfaW5kZXgoZ2xvYmFsX2RpcmVjdG9yeSwgaW5kZXgpKQotICAgICAgICAgICAgICAg
IHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIngiKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgIik7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeV9raW5kOiB7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7Ci0gICAgICAg
ICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmll
dyhkaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAgIGlmICghdmlldykgewotICAgICAgICAg
ICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKLSAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9
Ci0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRy
X2xvYWRfbm9uX251bGwoJnZpZXctPmdsb2JhbF9kaXJlY3RvcnkpOwotCi0gICAgICAgICAgICBp
ZiAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoCi0g
ICAgICAgICAgICAgICAgICAgIGdsb2JhbF9kaXJlY3RvcnksIHZpZXctPmluZGV4X2luX2dsb2Jh
bCkpCi0gICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAieCIpOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IiAiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9IH0KKyAgICAgICAgaWYgKHBhc19i
aXRmaXRfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCkp
CisgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKICAgICB9CiAg
ICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKICAgICAKLSAgICBzd2l0Y2ggKGRp
cmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsKLSAgICBjYXNlIHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9raW5kOiB7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xv
YmFsX2RpcmVjdG9yeTsKLSAgICAgICAgCi0gICAgICAgIGdsb2JhbF9kaXJlY3RvcnkgPSAocGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzIExhc3QgRW1wdHkrMTogIiwgcHJl
Zml4KTsKLSAgICAgICAgZHVtcF9hcnJvdyhzdHJlYW0sICh1aW50cHRyX3QpZ2xvYmFsX2RpcmVj
dG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZS52YWx1ZSk7Ci0gICAgICAgIHBhc19zdHJlYW1fcHJp
bnRmKHN0cmVhbSwgIlxuIik7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIHBhc19i
aXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAg
IHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzIExhc3QgRW1wdHkrMTogIiwgcHJlZml4KTsK
KyAgICBkdW1wX2Fycm93KHN0cmVhbSwgKHVpbnRwdHJfdClkaXJlY3RvcnktPmxhc3RfZW1wdHlf
cGx1c19vbmUudmFsdWUpOworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CiAK
ICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgICBDb21taXR0ZWQ6ICIsIHByZWZp
eCk7CiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2l6
ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7CkBAIC0yNTQsNjggKzE5MywxNyBAQCBzdGF0aWMgdm9p
ZCByZXBvcnRfYml0Zml0X2RpcmVjdG9yeV9jb250CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiXG4iKTsKIH0KIAotdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5KAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQordm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBf
Yml0Zml0X2RpcmVjdG9yeSgKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19iaXRmaXRfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpCiB7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAg
ICAgICAgICAgICAgICVzIEJpYXNpbmcgRGlyICVwKCV1KTogIiwKLSAgICAgICAgICAgICAgICAg
ICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnRfZ2V0X2NhcGl0YWxpemVkX3N0cmlu
ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5k
X2dldF9jb25maWcoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnktPmJh
c2UuY29uZmlnX2tpbmQpLT52YXJpYW50KSwKLSAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rv
cnksCi0gICAgICAgICAgICAgICAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X21hZ2F6aW5l
X2luZGV4KCZkaXJlY3RvcnktPmJpYXNpbmdfYmFzZSkpOwotICAgIHBhc19oZWFwX3N1bW1hcnlf
ZHVtcChwYXNfYml0Zml0X2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnkoJmRpcmVjdG9yeS0+YmFz
ZSksIHN0cmVhbSk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLQotICAg
IHJlcG9ydF9iaXRmaXRfZGlyZWN0b3J5X2NvbnRlbnRzKHN0cmVhbSwgJmRpcmVjdG9yeS0+YmFz
ZSwgIiAgICAgICAgICAgICAgICAgICAgIik7Ci0KLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJl
YW0sICIgICAgICAgICAgICAgICAgICAgICBFbGlnaWJsZSBIV006ICIpOwotICAgIGR1bXBfYXJy
b3coc3RyZWFtLCAodWludHB0cl90KWRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmVsaWdpYmxlX2hp
Z2hfd2F0ZXJtYXJrLnZhbHVlKTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIp
OwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAgICAgICAgICAgICAgICAgICBD
dXJyZW50IEhXTTogIik7Ci0gICAgZHVtcF9hcnJvdyhzdHJlYW0sIGRpcmVjdG9yeS0+Ymlhc2lu
Z19iYXNlLmN1cnJlbnRfaGlnaF93YXRlcm1hcmspOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0
cmVhbSwgIlxuIik7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAg
ICAgICAgICAgUHJldmlvdXMgSFdNOiAiKTsKLSAgICBkdW1wX2Fycm93KHN0cmVhbSwgZGlyZWN0
b3J5LT5iaWFzaW5nX2Jhc2UucHJldmlvdXNfaGlnaF93YXRlcm1hcmspOwotICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci19Ci0KLXZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcGFzX3BhZ2Vfc2hh
cmluZ19wb29sKiBiaWFzX3Bvb2w7Ci0gICAgCiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFt
LCAiICAgICAgICAgICAgJXMgR2xvYmFsIERpciAoJXApOiAiLAogICAgICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudF9nZXRfY2FwaXRhbGl6ZWRfc3RyaW5n
KAotICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRf
Z2V0X2NvbmZpZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeS0+YmFz
ZS5jb25maWdfa2luZCktPnZhcmlhbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmNvbmZpZ19raW5k
KS0+dmFyaWFudCksCiAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5KTsKLSAgICBwYXNf
aGVhcF9zdW1tYXJ5X2R1bXAocGFzX2JpdGZpdF9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5KCZk
aXJlY3RvcnktPmJhc2UpLCBzdHJlYW0pOworICAgIHBhc19oZWFwX3N1bW1hcnlfZHVtcChwYXNf
Yml0Zml0X2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnkoZGlyZWN0b3J5KSwgc3RyZWFtKTsKICAg
ICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCi0gICAgcmVwb3J0X2JpdGZpdF9k
aXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCAmZGlyZWN0b3J5LT5iYXNlLCAiICAgICAgICAgICAg
ICAgICIpOwotCi0gICAgYmlhc19wb29sID0gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmlu
Z19wb29sX3B0cl9sb2FkKCZkaXJlY3RvcnktPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICBpZiAo
Ymlhc19wb29sKSB7Ci0gICAgICAgIHNpemVfdCBpbmRleDsKLSAgICAgICAgCi0gICAgICAgIGZv
ciAoaW5kZXggPSAwOyBpbmRleCA8IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9udW1fcGFydGljaXBh
bnRzKGJpYXNfcG9vbCk7ICsraW5kZXgpIHsKLSAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnQgcGFydGljaXBhbnQ7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19m
ZW5jZV9hZnRlcl9sb2FkKCk7IC8qIE1ha2Ugc3VyZSB0aGF0IHRoZSBzaXplIGlzIHdoYXQgdGhl
IHRoaW5nIHNheXMgaXQgaXMuICovCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhcnRpY2lw
YW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFzX3Bvb2wsIGlu
ZGV4KTsKLSAgICAgICAgICAgIGlmICghcGFydGljaXBhbnQpCi0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF9nZXRfa2luZChwYXJ0aWNpcGFudCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgPT0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAgICAgICAgc3RyZWFtLAotICAgICAgICAg
ICAgICAgIHBhc191bndyYXBfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KAotICAgICAgICAgICAg
ICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9wdHIocGFydGljaXBhbnQp
KSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcmVwb3J0X2JpdGZpdF9kaXJlY3RvcnlfY29udGVu
dHMoc3RyZWFtLCBkaXJlY3RvcnksICIgICAgICAgICAgICAgICAgIik7CiB9CiAKIHN0YXRpYyB2
b2lkIHJlcG9ydF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9jb250ZW50cygKQEAgLTMzMiwxMSArMjIw
LDYgQEAgc3RhdGljIHZvaWQgcmVwb3J0X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5XwogICAgICAgICAK
ICAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5LCBp
bmRleCk7CiAKLSAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2VkX2V4Y2x1
c2l2ZSh2aWV3KSkgewotICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiYiIp
OwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIHBh
c19zdHJlYW1fcHJpbnRmKAogICAgICAgICAgICAgc3RyZWFtLCAiJWMiLAogICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9jaGFyYWN0ZXJfY29kZSgKQEAgLTQwMyw2MCAr
Mjg2LDIzIEBAIHN0YXRpYyB2b2lkIHJlcG9ydF9zZWdyZWdhdGVkX2RpcmVjdG9yeV8KICAgICB9
CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIAotICAgIHBhc19zdHJlYW1f
cHJpbnRmKHN0cmVhbSwgIiVzICAgICAgVGFibGVkOiAiLCBwcmVmaXgpOworICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIiVzIEZpcnN0IEVsZ2JsOiAiLCBwcmVmaXgpOworICAgIGR1bXBf
YXJyb3coc3RyZWFtLCAodWludHB0cl90KXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmly
c3RfZWxpZ2libGUoZGlyZWN0b3J5KS52YWx1ZSk7CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiXG4iKTsKKworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgICAgIEVt
cHR5OiAiLCBwcmVmaXgpOwogICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeSk7ICsraW5kZXgpIHsKLSAgICAgICAgaWYgKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc190YWJsZWQoZGlyZWN0b3J5LCBpbmRleCkpCisgICAg
ICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoZGlyZWN0b3J5LCBpbmRl
eCkpCiAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKICAgICB9
CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIAotICAgIHBhc19zdHJlYW1f
cHJpbnRmKHN0cmVhbSwgIiVzICBGaXJzdCBFJn5UOiAiLCBwcmVmaXgpOwotICAgIGR1bXBfYXJy
b3coc3RyZWFtLCAodWludHB0cl90KXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3Rf
ZWxpZ2libGUoCi0gICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2luZCkudmFsdWUpOwotICAg
IHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0KLSAgICBwYXNfc3RyZWFtX3ByaW50
ZihzdHJlYW0sICIlcyAgIEZpcnN0IEUmVDogIiwgcHJlZml4KTsKLSAgICBkdW1wX2Fycm93KHN0
cmVhbSwgKHVpbnRwdHJfdClwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdp
YmxlKAotICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZCkudmFsdWUpOworICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIiVzIExhc3QgRW1wdCsxOiAiLCBwcmVmaXgpOworICAgIGR1bXBf
YXJyb3coc3RyZWFtLCAodWludHB0cl90KXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfbGFz
dF9lbXB0eV9wbHVzX29uZShkaXJlY3RvcnkpLnZhbHVlKTsKICAgICBwYXNfc3RyZWFtX3ByaW50
ZihzdHJlYW0sICJcbiIpOwogCi0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiJXMgICAg
ICAgRW1wdHk6ICIsIHByZWZpeCk7Ci0gICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsgKytpbmRleCkgewotICAgICAgICBz
d2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsKLSAgICAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgICAgIGlmIChwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoZGlyZWN0b3J5LCBpbmRleCkpCi0gICAgICAg
ICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAieCIpOwotICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKLSAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3Rvcnlfa2luZDogewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OwotICAg
ICAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5LCBp
bmRleCk7Ci0gICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbXB0eSh2aWV3
KSkKLSAgICAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAi
ICIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gfQotICAgIH0KLSAgICBwYXNfc3Ry
ZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwotCi0gICAgc3dpdGNoIChkaXJlY3RvcnktPmRpcmVj
dG9yeV9raW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9r
aW5kOgotICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgICBMYXN0IEUrMTog
IiwgcHJlZml4KTsKLSAgICAgICAgZHVtcF9hcnJvdyhzdHJlYW0sICh1aW50cHRyX3QpcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9sYXN0X2VtcHR5X3BsdXNfb25lKAotICAgICAgICAgICAg
ICAgICAgICAgICBkaXJlY3RvcnkpLnZhbHVlKTsKLSAgICAgICAgcGFzX3N0cmVhbV9wcmludGYo
c3RyZWFtLCAiXG4iKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAgICBwYXNf
c3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgIENvbW1pdHRlZDogIiwgcHJlZml4KTsKICAgICBm
b3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJl
Y3RvcnkpOyArK2luZGV4KSB7CiAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXNfY29tbWl0dGVkKGRpcmVjdG9yeSwgaW5kZXgpKQpAQCAtNDY3LDQ5ICszMTMsMTMgQEAgc3Rh
dGljIHZvaWQgcmVwb3J0X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5XwogICAgIHBhc19zdHJlYW1fcHJp
bnRmKHN0cmVhbSwgIlxuIik7CiB9CiAKLXZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19oZWFw
X3N1bW1hcnkgc3VtbWFyeTsKLSAgICAKLSAgICBwYXNfc3RyZWFtX3ByaW50ZigKLSAgICAgICAg
c3RyZWFtLAotICAgICAgICAiICAgICAgICAgICAgICAgIEJpYXNpbmcgRGlyICVwKCV1KTogTnVt
IFZpZXdzOiAlenUiLAotICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5X21hZ2F6aW5lX2luZGV4KGRpcmVjdG9yeSksCi0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnktPmJhc2UpKTsKLQotICAgIGlm
IChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5iYXNl
LmRhdGEpKQotICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIsIEhhcyBCYXNlIERh
dGEiKTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwgIik7Ci0KLSAgICBzdW1t
YXJ5ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeSgmZGlyZWN0b3J5
LT5iYXNlKTsKLSAgICBwYXNfaGVhcF9zdW1tYXJ5X2R1bXAoc3VtbWFyeSwgc3RyZWFtKTsKLQot
ICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0KLSAgICByZXBvcnRfc2VncmVn
YXRlZF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCAmZGlyZWN0b3J5LT5iYXNlLCAiICAgICAg
ICAgICAgICAgICAgICAiKTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAg
ICAgICAgICAgICAgICAgRWxpZ2libGUgSFdNOiAiKTsKLSAgICBkdW1wX2Fycm93KHN0cmVhbSwg
KHVpbnRwdHJfdClkaXJlY3RvcnktPmJpYXNpbmdfYmFzZS5lbGlnaWJsZV9oaWdoX3dhdGVybWFy
ay52YWx1ZSk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLSAgICBwYXNf
c3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICAgICAgICAgICAgICBDdXJyZW50IEhXTTog
Iik7Ci0gICAgZHVtcF9hcnJvdyhzdHJlYW0sIGRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmN1cnJl
bnRfaGlnaF93YXRlcm1hcmspOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7
Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAgICAgICAgICBQcmV2
aW91cyBIV006ICIpOwotICAgIGR1bXBfYXJyb3coc3RyZWFtLCBkaXJlY3RvcnktPmJpYXNpbmdf
YmFzZS5wcmV2aW91c19oaWdoX3dhdGVybWFyayk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiXG4iKTsKLX0KLQotdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3ZvaWQgcGFzX3N0YXR1
c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkoCisgICAgcGFzX3N0cmVh
bSogc3RyZWFtLCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewog
ICAgIHBhc19oZWFwX3N1bW1hcnkgcGFydGlhbF9zdW1tYXJ5OwogICAgIHBhc19oZWFwX3N1bW1h
cnkgZXhjbHVzaXZlX3N1bW1hcnk7CiAgICAgc2l6ZV90IGluZGV4OwotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19wYWdlX3NoYXJp
bmdfcG9vbCogYmlhc19wb29sOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGEqIGRhdGE7CiAgICAgCiAgICAgcGFzX3N0cmVhbV9wcmludGYoCiAgICAgICAgIHN0cmVhbSwK
QEAgLTUyMSwxNyArMzMxLDEyIEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3Jl
Z2F0ZWQKIAogICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgm
ZGlyZWN0b3J5LT5iYXNlLmRhdGEpKQogICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0s
ICIsIEhhcyBCYXNlIERhdGEiKTsKLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Ci0gICAgaWYgKGRh
dGEpIHsKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICBpZiAoZGF0YSkKICAgICAgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiLCBIYXMgRGF0YSIpOwotICAgICAgICBiaWFzX3Bvb2wgPSBwYXNf
Y29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hh
cmluZ19wb29sKTsKLSAgICAgICAgaWYgKGJpYXNfcG9vbCkKLSAgICAgICAgICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIiwgRXhwbG9kZWQiKTsKLSAgICB9IGVsc2UKLSAgICAgICAgYmlh
c19wb29sID0gTlVMTDsKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkpCisgICAgaWYgKHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkpCiAgICAgICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwgSGFzIFRMQSIpOwotICAgIGlmIChwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKGRp
cmVjdG9yeSkpCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FyZV9leGNs
dXNpdmVfdmlld3NfZW5hYmxlZChkaXJlY3RvcnkpKQogICAgICAgICBwYXNfc3RyZWFtX3ByaW50
ZihzdHJlYW0sICIsIEVuYWJsZWQgRXhjbHVzaXZlcyIpOwogICAgIHBhc19zdHJlYW1fcHJpbnRm
KHN0cmVhbSwgIlxuIik7CiAKQEAgLTU2OCwyNiArMzczLDYgQEAgdm9pZCBwYXNfc3RhdHVzX3Jl
cG9ydGVyX2R1bXBfc2VncmVnYXRlZAogICAgIH0KICAgICAKICAgICByZXBvcnRfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCAmZGlyZWN0b3J5LT5iYXNlLCAiICAgICAgICAg
ICAgICAgICIpOwotCi0gICAgaWYgKGJpYXNfcG9vbCkgewotICAgICAgICBmb3IgKGluZGV4ID0g
MDsgaW5kZXggPCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfbnVtX3BhcnRpY2lwYW50cyhiaWFzX3Bv
b2wpOyArK2luZGV4KSB7Ci0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50
IHBhcnRpY2lwYW50OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfZmVuY2VfYWZ0ZXJf
bG9hZCgpOyAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgc2l6ZSBpcyB3aGF0IHRoZSB0aGluZyBzYXlz
IGl0IGlzLiAqLwotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXJ0aWNpcGFudCA9IHBhc19w
YWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFydGljaXBhbnQoYmlhc19wb29sLCBpbmRleCk7Ci0gICAg
ICAgICAgICBpZiAoIXBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfZ2V0X2tpbmQocGFydGljaXBhbnQpCi0gICAgICAgICAgICAgICAgICAgICAgID09IHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnkpOwotICAgICAgICAg
ICAgCi0gICAgICAgICAgICBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeSgKLSAgICAgICAgICAgICAgICBzdHJlYW0sCi0gICAgICAgICAgICAgICAg
cGFzX3Vud3JhcF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KAotICAgICAgICAgICAgICAg
ICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9wdHIocGFydGljaXBhbnQpKSk7
Ci0gICAgICAgIH0KLSAgICB9CiB9CiAKIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KApAQCAtNzAyLDcgKzQ4Nyw3IEBAIHZvaWQg
cGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2Jvb3RzdHJhcF8KIAogc3RhdGljIGJvb2wgZHVtcF9z
ZWdyZWdhdGVkX2hlYXBfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAg
ICB2b2lkKiBhcmcpCiB7CiAgICAgcGFzX3N0cmVhbSogc3RyZWFtOwpAQCAtNzExLDcgKzQ5Niw3
IEBAIHN0YXRpYyBib29sIGR1bXBfc2VncmVnYXRlZF9oZWFwX2RpcmVjdG8KIAogICAgIHN0cmVh
bSA9IGFyZzsKIAotICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeShzdHJlYW0sIGRpcmVjdG9yeSk7CisgICAgcGFzX3N0YXR1c19yZXBv
cnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkoc3RyZWFtLCBkaXJlY3RvcnkpOwog
CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03MjUsNyArNTEwLDcgQEAgdm9pZCBwYXNfc3RhdHVz
X3JlcG9ydGVyX2R1bXBfYml0Zml0X2hlYQogICAgIGlmIChwYXNfc3RhdHVzX3JlcG9ydGVyX2Vu
YWJsZWQgPj0gMykgewogICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQgdmFy
aWFudDsKICAgICAgICAgZm9yIChQQVNfRUFDSF9CSVRGSVRfUEFHRV9DT05GSUdfVkFSSUFOVF9B
U0NFTkRJTkcodmFyaWFudCkpIHsKLSAgICAgICAgICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVt
cF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSgKKyAgICAgICAgICAgIHBhc19zdGF0dXNfcmVwb3J0
ZXJfZHVtcF9iaXRmaXRfZGlyZWN0b3J5KAogICAgICAgICAgICAgICAgIHN0cmVhbSwKICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeShoZWFwLCB2YXJpYW50KSk7
CiAgICAgICAgIH0KQEAgLTc1NSw3ICs1NDAsNyBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJf
ZHVtcF9zZWdyZWdhdGVkCiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIAog
ICAgIGlmIChwYXNfc3RhdHVzX3JlcG9ydGVyX2VuYWJsZWQgPj0gMykgewotICAgICAgICBwYXNf
c2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICAgICAgICAg
IGhlYXAsIGR1bXBfc2VncmVnYXRlZF9oZWFwX2RpcmVjdG9yeV9jYWxsYmFjaywgc3RyZWFtKTsK
ICAgICB9CiAgICAgCkBAIC05MDEsOSArNjg2LDkgQEAgc3RhdGljIHZvaWQgZHVtcF9oaXN0b2dy
YW0ocGFzX3N0cmVhbSogcwogICAgIH0KIH0KIAotc3RhdGljIGJvb2wgdG90YWxfZnJhZ21lbnRh
dGlvbl9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2soCitzdGF0aWMgYm9vbCB0b3RhbF9m
cmFnbWVudGF0aW9uX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVk
X2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
ICAgICB2b2lkKiBhcmcpCiB7CiAgICAgdG90YWxfZnJhZ21lbnRhdGlvbl9kYXRhKiBkYXRhOwpA
QCAtOTQzLDggKzcyOCw4IEBAIHN0YXRpYyBib29sIHRvdGFsX2ZyYWdtZW50YXRpb25faGVhcF9j
YWwKIAogICAgIGRhdGEgPSBhcmc7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNo
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKLSAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwg
dG90YWxfZnJhZ21lbnRhdGlvbl9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEp
OworICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCisgICAg
ICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsIHRvdGFsX2ZyYWdtZW50YXRpb25fc2l6ZV9kaXJl
Y3RvcnlfY2FsbGJhY2ssIGRhdGEpOwogCiAgICAgZGF0YS0+bGFyZ2VfZnJhZ21lbnRhdGlvbiAr
PSBwYXNfaGVhcF9zdW1tYXJ5X2ZyYWdtZW50YXRpb24oCiAgICAgICAgIHBhc19sYXJnZV9oZWFw
X2NvbXB1dGVfc3VtbWFyeSgmaGVhcC0+bGFyZ2VfaGVhcCkpOwpAQCAtOTczLDggKzc1OCw4IEBA
IHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RvdGFsX2ZyYWcKICAgICBwYXNfYWxsX2hl
YXBzX2Zvcl9lYWNoX2hlYXAodG90YWxfZnJhZ21lbnRhdGlvbl9oZWFwX2NhbGxiYWNrLCAmZGF0
YSk7CiAgICAgcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllc19mb3JfZWFjaCgKICAgICAg
ICAgdG90YWxfZnJhZ21lbnRhdGlvbl9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfY2FsbGJhY2ssICZk
YXRhKTsKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSgKLSAgICAgICAgJnBhc191dGlsaXR5X3NlZ3JlZ2F0ZWRfaGVhcCwgdG90YWxfZnJhZ21l
bnRhdGlvbl9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssICZkYXRhKTsKKyAgICBwYXNf
c2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAorICAgICAgICAmcGFzX3V0
aWxpdHlfc2VncmVnYXRlZF9oZWFwLCB0b3RhbF9mcmFnbWVudGF0aW9uX3NpemVfZGlyZWN0b3J5
X2NhbGxiYWNrLCAmZGF0YSk7CiAgICAgZGF0YS5sYXJnZV9mcmFnbWVudGF0aW9uICs9IHBhc19o
ZWFwX3N1bW1hcnlfZnJhZ21lbnRhdGlvbigKICAgICAgICAgcGFzX2xhcmdlX3V0aWxpdHlfZnJl
ZV9oZWFwX2NvbXB1dGVfc3VtbWFyeSgpKTsKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0s
ICIgICAgU2VncmVnYXRlZCBFeGNsdXNpdmUgRnJhZ21lbnRhdGlvbiBIaXN0b2dyYW06XG4iKTsK
QEAgLTEwMDMsOSArNzg4LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIHNpemVfdCBudW1faGVh
cHM7CiB9IHRpZXJfdXBfcmF0ZV9kYXRhOwogCi1zdGF0aWMgYm9vbCB0aWVyX3VwX3JhdGVfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKAorc3RhdGljIGJvb2wgdGllcl91cF9yYXRlX3Np
emVfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcp
CiB7CiAgICAgdGllcl91cF9yYXRlX2RhdGEqIGRhdGE7CkBAIC0xMDE0LDExICs3OTksMTEgQEAg
c3RhdGljIGJvb2wgdGllcl91cF9yYXRlX2dsb2JhbF9zaXplX2RpcgogCiAgICAgZGF0YSA9IGFy
ZzsKIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9w
dHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKSkKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKSkKICAgICAgICAgZGF0YS0+
bnVtX2RpcmVjdG9yaWVzX3dpdGhfZGF0YSsrOwotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KSkKKyAgICBpZiAo
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5
KSkKICAgICAgICAgZGF0YS0+bnVtX2RpcmVjdG9yaWVzX3dpdGhfdGxhcysrOwotICAgIGlmIChw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19l
bmFibGVkKGRpcmVjdG9yeSkpCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2FyZV9leGNsdXNpdmVfdmlld3NfZW5hYmxlZChkaXJlY3RvcnkpKQogICAgICAgICBkYXRhLT5u
dW1fZGlyZWN0b3JpZXNfd2l0aF9leGNsdXNpdmVzKys7CiAgICAgZGF0YS0+bnVtX2RpcmVjdG9y
aWVzKys7CiAKQEAgLTEwMzEsOCArODE2LDggQEAgc3RhdGljIGJvb2wgdGllcl91cF9yYXRlX2hl
YXBfY2FsbGJhY2socAogCiAgICAgZGF0YSA9IGFyZzsKIAotICAgIHBhc19zZWdyZWdhdGVkX2hl
YXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAotICAgICAgICAmaGVhcC0+c2VncmVn
YXRlZF9oZWFwLCB0aWVyX3VwX3JhdGVfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrLCBk
YXRhKTsKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAor
ICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLCB0aWVyX3VwX3JhdGVfc2l6ZV9kaXJlY3Rv
cnlfY2FsbGJhY2ssIGRhdGEpOwogCiAgICAgZGF0YS0+bnVtX2hlYXBzKys7CiAKQEAgLTEwOTYs
NyArODgxLDcgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYmFzZWxpbmVfYQogICAg
ICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIgICAgICAgICAlenU6IGRpcmVjdG9yeSA9ICVwLCAlc1xuIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcgPyBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkodmlldykgOiBOVUxMLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICB2aWV3ID8gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6
ZV9kaXJlY3RvcnkodmlldykgOiBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxv
Y2F0b3Jfc3RhdGUoYWxsb2NhdG9yKSk7CiAgICAgfQogfQpAQCAtMTEwOSw4ICs4OTQsMTAgQEAg
dm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvYwogCiAgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiICAgIFRocmVhZCBMb2NhbCBDYWNoZSBMYXlvdXQ6XG4iKTsKICAg
ICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91
dF9ub2RlKSkgewotICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICV1
OiBkaXJlY3RvcnkgPSAlcFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2Rl
KSwKKyAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAldTogJXMsIGRp
cmVjdG9yeSA9ICVwXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhsYXlvdXRf
bm9kZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfa2luZF9nZXRfc3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfa2luZChsYXlvdXRfbm9k
ZSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2dldF9kaXJlY3RvcnkobGF5b3V0X25vZGUpKTsKICAgICB9CiAKQEAgLTExNDAs
NyArOTI3LDExIEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RocmVhZF9sb2MKICAg
ICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OwogICAgICAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOwogCi0gICAgICAgICAgICBhbGxvY2F0
b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0
b3JfaW5kZXgobGF5b3V0X25vZGUpOworICAgICAgICAgICAgaWYgKCFwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNfYWxsb2NhdG9yKGxheW91dF9ub2RlKSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0K
KyAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9h
bGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcihsYXlvdXRfbm9kZSk7CiAKICAgICAgICAgICAg
IGlmIChhbGxvY2F0b3JfaW5kZXggPj0gY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3Vu
ZCkKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTExNDksNyArOTQwLDcgQEAgdm9pZCBwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvYwogICAgICAgICAgICAgcGFzX3N0cmVhbV9w
cmludGYoc3RyZWFtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAg
ICV1OiBkaXJlY3RvcnkgPSAlcCwgJXNcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbGxvY2F0b3JfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3Np
emVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhbGxvY2F0b3Jfc3RhdGUoYWxsb2NhdG9yKSk7CiAgICAgICAgIH0KICAgICB9CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1
c19yZXBvcnRlci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDM2
ICszMSwyNiBAQAogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0cnVjdCBwYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeTsKK3N0
cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfbGFyZ2VfaGVhcDsKLXN0cnVj
dCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9oZWFwOwogc3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeTsKLXN0
cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX3N0cmVhbTsKLXR5cGVkZWYgc3Ry
dWN0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9y
eSBwYXNfYml0Zml0X2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19sYXJnZV9oZWFwIHBh
c19sYXJnZV9oZWFwOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdyZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3BhZ2VfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3R5cGVk
ZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3N0cmVhbSBwYXNfc3RyZWFtOwogCiBQ
QVNfQVBJIGV4dGVybiB1bnNpZ25lZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2VuYWJsZWQ7CiBQQVNf
QVBJIGV4dGVybiB1bnNpZ25lZCBwYXNfc3RhdHVzX3JlcG9ydGVyX3BlcmlvZF9pbl9taWNyb3Nl
Y29uZHM7CiAKLVBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5KAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLVBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9y
dGVyX2R1bXBfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFt
LCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiBQQVNfQVBJIHZvaWQg
cGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2JpdGZpdF9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVh
bSogc3RyZWFtLCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci1QQVNf
QVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KTsKLVBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1
bXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3Ry
ZWFtLCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Cisg
ICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KTsK
K1BBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSgKKyAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpOwogUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVt
cF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSgKICAgICBwYXNfc3RyZWFtKiBzdHJl
YW0sIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIFBB
U19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfbGFyZ2VfaGVhcChwYXNfc3RyZWFt
KiBzdHJlYW0sIHBhc19sYXJnZV9oZWFwKiBoZWFwKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5jCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAu
Ywkobm9uZXhpc3RlbnQpCkBAIC0xLDEwMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAy
MDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQot
I2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfc3VicGFnZV9tYXAuaCIKLQotI2lu
Y2x1ZGUgInBhc19oZWFwX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfaW50ZXJuYWxfY29uZmlnLmgi
Ci0jaW5jbHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCi0KLXBhc19zdWJwYWdl
X21hcF9oYXNodGFibGUgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5jZTsKLQotcGFz
X3N1YnBhZ2VfbWFwX2VudHJ5KiBwYXNfc3VicGFnZV9tYXBfYWRkKHZvaWQqIGJhc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ5dGVzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21taXRfbW9kZSBj
b21taXRfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKLXsKLSAgICB2b2lkKiBmdWxs
X2Jhc2U7Ci0gICAgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9hZGRfcmVzdWx0IGFkZF9yZXN1
bHQ7Ci0gICAgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeTsKLQotICAgIFBBU19BU1NFUlQo
YmFzZSk7Ci0gICAgZnVsbF9iYXNlID0gcGFzX3N1YnBhZ2VfbWFwX2dldF9mdWxsX2Jhc2UoYmFz
ZSwgYnl0ZXMpOwotICAgIAotICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhl
YXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgYWRkX3Jlc3VsdCA9IHBhc19zdWJwYWdlX21hcF9o
YXNodGFibGVfYWRkKAotICAgICAgICAmcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5j
ZSwgZnVsbF9iYXNlLCBOVUxMLAotICAgICAgICAmcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFw
X2FsbG9jYXRpb25fY29uZmlnKTsKLSAgICBpZiAoYWRkX3Jlc3VsdC5pc19uZXdfZW50cnkpIHsK
LSAgICAgICAgcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyX3N0b3JlKAotICAgICAg
ICAgICAgYWRkX3Jlc3VsdC5lbnRyeSwgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2NyZWF0ZShmdWxs
X2Jhc2UsIGNvbW1pdF9tb2RlKSk7Ci0gICAgfQotCi0gICAgZW50cnkgPSBwYXNfY29tcGFjdF9z
dWJwYWdlX21hcF9lbnRyeV9wdHJfbG9hZF9ub25fbnVsbChhZGRfcmVzdWx0LmVudHJ5KTsKLSAg
ICBwYXNfc3VicGFnZV9tYXBfYXNzZXJ0X2NvbW1pdF9zdGF0ZShlbnRyeSwgYmFzZSwgYnl0ZXMs
IGNvbW1pdF9tb2RlKTsKLSAgICAKLSAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25h
bGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgcmV0dXJuIGVudHJ5OwotfQotCi1wYXNf
c3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9nZXQodm9pZCogYmFzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYnl0ZXMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2Rl
IGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAgcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50
cnlfcHRyKiBlbnRyeTsKLSAgICB2b2lkKiBmdWxsX2Jhc2U7Ci0KLSAgICBQQVNfQVNTRVJUKGJh
c2UpOwotCi0gICAgZnVsbF9iYXNlID0gcGFzX3N1YnBhZ2VfbWFwX2dldF9mdWxsX2Jhc2UoYmFz
ZSwgYnl0ZXMpOwotCi0gICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9s
b2NrX2hvbGRfbW9kZSk7Ci0KLSAgICBlbnRyeSA9IHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVf
ZmluZCgmcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5jZSwgZnVsbF9iYXNlKTsKLQot
ICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7Ci0KLSAgICBQQVNfQVNTRVJUKGVudHJ5KTsKLSAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc3Vi
cGFnZV9tYXBfZW50cnlfcHRyX2xvYWRfbm9uX251bGwoZW50cnkpOwotfQotCi12b2lkKiBwYXNf
c3VicGFnZV9tYXBfZ2V0X2Z1bGxfYmFzZSh2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMpCi17Ci0g
ICAgdm9pZCogZnVsbF9iYXNlOwotICAgIAotICAgIFBBU19BU1NFUlQoISgodWludHB0cl90KWJh
c2UgJiAoUEFTX1NVQlBBR0VfU0laRSAtIDEpKSk7Ci0gICAgUEFTX0FTU0VSVCghKCh1aW50cHRy
X3QpYnl0ZXMgJiAoUEFTX1NVQlBBR0VfU0laRSAtIDEpKSk7Ci0KLSAgICBmdWxsX2Jhc2UgPSAo
dm9pZCopKCh1aW50cHRyX3QpYmFzZSAmIC1wYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpOwot
Ci0gICAgUEFTX0FTU0VSVCgodWludHB0cl90KWJhc2UgKyBieXRlcyA8PSAodWludHB0cl90KWZ1
bGxfYmFzZSArIHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSk7Ci0KLSAgICByZXR1cm4gZnVs
bF9iYXNlOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5oCShyZXZp
c2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3Vi
cGFnZV9tYXAuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDEyMiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX1NVQlBBR0VfTUFQ
X0gKLSNkZWZpbmUgUEFTX1NVQlBBR0VfTUFQX0gKLQotI2luY2x1ZGUgInBhc19jb21wYWN0X3N1
YnBhZ2VfbWFwX2VudHJ5X3B0ci5oIgotI2luY2x1ZGUgInBhc19oYXNodGFibGUuaCIKLSNpbmNs
dWRlICJwYXNfc3VicGFnZV9tYXBfZW50cnkuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi10
eXBlZGVmIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ciBwYXNfc3VicGFnZV9tYXBf
aGFzaHRhYmxlX2VudHJ5OwotdHlwZWRlZiB2b2lkKiBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxl
X2tleTsKLQotc3RhdGljIGlubGluZSBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IHBh
c19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnlfY3JlYXRlX2VtcHR5KHZvaWQpCi17Ci0gICAg
cGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSByZXN1bHQgPSBQQVNfQ09NUEFDVF9QVFJf
SU5JVElBTElaRVI7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIGlubGluZSBwYXNf
c3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50
cnlfY3JlYXRlX2RlbGV0ZWQodm9pZCkKLXsKLSAgICBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxl
X2VudHJ5IHJlc3VsdCA9IFBBU19DT01QQUNUX1BUUl9JTklUSUFMSVpFUjsKLSAgICBQQVNfQVNT
RVJUKCEiU2hvdWxkIG5ldmVyIGNyZWF0ZWQgYSBkZWxldGVkIHN1YnBhZ2UgbWFwIGhhc2h0YWJs
ZSBlbnRyeSAoYW5kIGl0J3MgaW1wb3NzaWJsZSkiKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQot
Ci1zdGF0aWMgaW5saW5lIGJvb2wKLXBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnlfaXNf
ZW1wdHlfb3JfZGVsZXRlZChwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IGVudHJ5KQot
ewotICAgIHJldHVybiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHJfaXNfbnVsbCgm
ZW50cnkpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wKLXBhc19zdWJwYWdlX21hcF9oYXNodGFi
bGVfZW50cnlfaXNfZW1wdHkocGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSBlbnRyeSkK
LXsKLSAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyX2lzX251bGwo
JmVudHJ5KTsKLX0KLQotc3RhdGljIGlubGluZSBib29sCi1wYXNfc3VicGFnZV9tYXBfaGFzaHRh
YmxlX2VudHJ5X2lzX2RlbGV0ZWQocGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSBlbnRy
eSkKLXsKLSAgICBQQVNfVU5VU0VEX1BBUkFNKGVudHJ5KTsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCogcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeV9n
ZXRfa2V5KHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnkgZW50cnkpCi17Ci0gICAgcmV0
dXJuIHBhc19zdWJwYWdlX21hcF9lbnRyeV9mdWxsX2Jhc2UocGFzX2NvbXBhY3Rfc3VicGFnZV9t
YXBfZW50cnlfcHRyX2xvYWQoJmVudHJ5KSk7Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBwYXNfc3Vi
cGFnZV9tYXBfaGFzaHRhYmxlX2tleV9nZXRfaGFzaCh2b2lkKiBrZXkpCi17Ci0gICAgcmV0dXJu
IHBhc19oYXNoX3B0cihrZXkpOwotfQotCi1zdGF0aWMgYm9vbCBwYXNfc3VicGFnZV9tYXBfaGFz
aHRhYmxlX2tleV9pc19lcXVhbCh2b2lkKiBhLCB2b2lkKiBiKQotewotICAgIHJldHVybiBhID09
IGI7Ci19Ci0KLVBBU19DUkVBVEVfSEFTSFRBQkxFKHBhc19zdWJwYWdlX21hcF9oYXNodGFibGUs
Ci0gICAgICAgICAgICAgICAgICAgICBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5LAot
ICAgICAgICAgICAgICAgICAgICAgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9rZXkpOwotCi1l
eHRlcm4gUEFTX0FQSSBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlIHBhc19zdWJwYWdlX21hcF9o
YXNodGFibGVfaW5zdGFuY2U7Ci0KLS8qIFRoaXMgaW5pdGlhbGl6ZXMgYW4gZW50cnkgZm9yIGEg
c3lzdGVtIChha2EgZnVsbCkgcGFnZSBpbiB0aGUgbWFwIGJhc2VkIG9uIGFuIGFsbG9jYXRpb24g
b2YKLSAgIHplcm8gb3IgbW9yZSBzdWJwYWdlcy4gVGhpcyBoYXMgc29tZSBpbXBsaWNhdGlvbnM6
Ci0KLSAgIC0gSWYgeW91IGFsbG9jYXRlIG1lbW9yeSBmb3IgYSBzdWJwYWdlIHNvbWVob3csIHRo
ZW4geW91IG11c3QgYWxzbyBhbGxvY2F0ZSB0aGUgcmVzdCBvZiB0aGUKLSAgICAgbWVtb3J5IGlu
IHRoZSBmdWxsIHBhZ2UgYXMgc3VicGFnZXMuCi0KLSAgIC0gVGhlIGNvbW1pdCBzdGF0ZSBvZiBh
bGwgc3VicGFnZXMgd2l0aGluIHRoZSBmdWxsIHBhZ2UgbXVzdCBzdGFydCB0aGUgc2FtZSB3YXku
IFNvLCBpZiB5b3UKLSAgICAgYWxsb2NhdGUgdGhlIGZpcnN0IHN1YnBhZ2UgaW4gYSBmdWxsIHBh
Z2UgYW5kIHRlbGwgdGhlIG1hcCB0aGF0IGl0J3MgY29tbWl0dGVkLCB0aGVuIHdoZW5ldmVyCi0g
ICAgIHlvdSBkbyBnZXQgYXJvdW5kIHRvIGFsbG9jYXRpbmcgdGhlIG90aGVyIHN1YnBhZ2VzLCB0
aG9zZSBtdXN0IGFsc28gc3RhcnQgY29tbWl0dGVkLiBJdCdzIE9LCi0gICAgIGlmIGluIHRoZSBt
ZWFudGltZSB0aGUgZmlyc3Qgc3VicGFnZSBnb3QgZGVjb21taXR0ZWQ7IHRoZSBwb2ludCBpcyB0
aGF0IHdoYXRldmVyIHRoZSBzdGFydAotICAgICBzdGF0ZSB3YXMgKGNvbW1pdHRlZCBpbiB0aGUg
ZXhhbXBsZSkgbXVzdCBhbHNvIGJlIHRoZSBzdGFydCBzdGF0ZSBmb3IgYWxsIG90aGVyIHBhZ2Vz
LiBUaGF0J3MKLSAgICAgYmVjYXVzZSBpZiB0aGUgc3VicGFnZSBtYXAgaXMgdG9sZCBhYm91dCBh
IGZ1bGwgcGFnZSBmb3IgdGhlIGZpcnN0IHRpbWUgaW4gdGhlIGZvcm0gb2YgYQotICAgICBjYWxs
IHRvIHRoaXMgdGhhdCBpbml0aWFsaXplcyBzb21lIHN1YnBhZ2UgdGhlbiB0aGUgbWFwIHdpbGwg
aW5pdGlhbGl6ZSB0aGUgY29tbWl0IHN0YXRlIG9mCi0gICAgIHRoZSBlbnRpcmUgZnVsbCBwYWdl
IHRvIHdoYXRldmVyIHlvdSB0b2xkIHRoaXMuCi0KLSAgIC0gVGhlIGJ5dGVzIGNhbm5vdCBiZSBz
byBiaWcgdGhhdCB0aGlzIHJlcXVpcmVzIG1vcmUgdGhhbiBvbmUgZnVsbCBwYWdlLiAqLwotUEFT
X0FQSSBwYXNfc3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9hZGQodm9pZCogYmFz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19jb21taXRfbW9kZSBjb21taXRfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xv
Y2tfaG9sZF9tb2RlKTsKLQotUEFTX0FQSSBwYXNfc3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJw
YWdlX21hcF9nZXQodm9pZCogYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tf
aG9sZF9tb2RlKTsKLQotLyogVGhpcyBpcyBhIGhlbHBlciB0aGF0IHN1YnBhZ2VfbWFwIGFuZCBz
dWJwYWdlX21hcF9lbnRyeSBzaGFyZS4gKi8KLVBBU19BUEkgdm9pZCogcGFzX3N1YnBhZ2VfbWFw
X2dldF9mdWxsX2Jhc2Uodm9pZCogYmFzZSwgc2l6ZV90IGJ5dGVzKTsKLQotUEFTX0VORF9FWFRF
Uk5fQzsKLQotI2VuZGlmIC8qIFBBU19TVUJQQUdFX01BUF9IICovCi0KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5jCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9l
bnRyeS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnkuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDE3OSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNs
dWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFz
X3N1YnBhZ2VfbWFwX2VudHJ5LmgiCi0KLSNpbmNsdWRlICJwYXNfYml0dmVjdG9yLmgiCi0jaW5j
bHVkZSAicGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oIgotI2luY2x1ZGUgInBhc19pbW1vcnRh
bF9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX2ludGVybmFsX2NvbmZpZy5oIgotI2luY2x1ZGUgPHN0
ZGFsaWduLmg+Ci0KLXN0YXRpYyB2b2lkIHNldF9wYWNrZWRfdmFsdWUocGFzX3N1YnBhZ2VfbWFw
X2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogZnVsbF9i
YXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBiaXRzKQotewotICAg
IGVudHJ5LT5wYWNrZWRfdmFsdWUgPSAodWludHB0cl90KWZ1bGxfYmFzZSB8IGJpdHM7Ci0gICAg
UEFTX0FTU0VSVChwYXNfc3VicGFnZV9tYXBfZW50cnlfZnVsbF9iYXNlKGVudHJ5KSA9PSBmdWxs
X2Jhc2UpOwotICAgIFBBU19BU1NFUlQocGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2JpdHMoZW50cnkp
ID09IGJpdHMpOwotfQotCi1wYXNfc3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9l
bnRyeV9jcmVhdGUodm9pZCogZnVsbF9iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21taXRfbW9kZSBjb21taXRfbW9kZSkKLXsK
LSAgICBwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5OwotICAgIHVuc2lnbmVkIGJpdHM7Ci0K
LSAgICBQQVNfQVNTRVJUKCEoKHVpbnRwdHJfdClmdWxsX2Jhc2UgJiAocGFzX3BhZ2VfbWFsbG9j
X2FsaWdubWVudCgpIC0gMSkpKTsKLSAgICBQQVNfQVNTRVJUKHBhc19wYWdlX21hbGxvY19hbGln
bm1lbnQoKSAvIFBBU19TVUJQQUdFX1NJWkUgPD0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9z
aGlmdCgpKTsKLQotICAgIGVudHJ5ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9t
YW51YWxfYWxpZ25tZW50KAotICAgICAgICBzaXplb2YocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KSwK
LSAgICAgICAgYWxpZ25vZihwYXNfbG9jayksCi0gICAgICAgICJwYXNfc3VicGFnZV9tYXBfZW50
cnkiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgcGFzX2xvY2tfY29u
c3RydWN0KCZlbnRyeS0+Y29tbWl0X2xvY2spOwotCi0gICAgYml0cyA9IDA7Ci0gICAgaWYgKGNv
bW1pdF9tb2RlKSB7Ci0gICAgICAgIHVpbnRwdHJfdCBpbmRleDsKLSAgICAgICAgZm9yIChpbmRl
eCA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSAvIFBBU19TVUJQQUdFX1NJWkU7IGluZGV4
LS07KQotICAgICAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXRfaW5fb25lX3dvcmQoJmJpdHMsIGlu
ZGV4LCB0cnVlKTsKLSAgICB9Ci0KLSAgICBzZXRfcGFja2VkX3ZhbHVlKGVudHJ5LCBmdWxsX2Jh
c2UsIGJpdHMpOwotCi0gICAgcGFzX2ZlbmNlKCk7Ci0KLSAgICByZXR1cm4gZW50cnk7Ci19Ci0K
LXN0YXRpYyB2b2lkIHByZXBhcmVfaW5kaWNlcyhwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiogZnVsbF9iYXNlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCogYmVnaW4sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdWludHB0cl90KiBlbmQpCi17Ci0gICAgKmZ1bGxfYmFzZSA9IHBhc19zdWJwYWdl
X21hcF9lbnRyeV9mdWxsX2Jhc2UoZW50cnkpOwotCi0gICAgKmJlZ2luID0gKCh1aW50cHRyX3Qp
YmFzZSAtICh1aW50cHRyX3QpKmZ1bGxfYmFzZSkgLyBQQVNfU1VCUEFHRV9TSVpFOwotICAgICpl
bmQgPSAqYmVnaW4gKyBieXRlcyAvIFBBU19TVUJQQUdFX1NJWkU7Ci19Ci0KLXZvaWQgcGFzX3N1
YnBhZ2VfbWFwX2Fzc2VydF9jb21taXRfc3RhdGUocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRy
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYmFzZSwg
c2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfY29tbWl0X21vZGUgY29tbWl0X21vZGUpCi17Ci0gICAgLyogVGhpcyBkb2Vzbid0IGJvdGhl
ciB3aXRoIGxvY2tpbmcgb24gdGhlIGdyb3VuZHMgdGhhdCB3ZSBkb24ndCBoYXZlIG91dC1vZi10
aGluLWFpciB2YWx1ZXMuCi0gICAgICAgV2UncmUgb25seSBhc3NlcnRpbmcgY29tbWl0IHN0YXRl
IHdoZW4gYWRkaW5nIGFub3RoZXIgc3VicGFnZSB0byBhIGZ1bGwgcGFnZSB0aGF0IHdlCi0gICAg
ICAgcHJldmlvdXNseSBjcmVhdGVkLCBhbmQgd2Ugd2FudCB0byBhc3NlcnQgdGhhdCBub2JvZHkg
Y2hhbmdlZCB0aGUgY29tbWl0IHN0YXRlIG9mIHRob3NlCi0gICAgICAgcGFnZXMgaW4gdGhlIG1l
YW50aW1lLiBFdmVuIGlmIHRoZSBjb21taXQgc3RhdGUgb2Ygb3RoZXIgc3VicGFnZXMgaXMgY2hh
bmdpbmcgY29uY3VycmVudGx5LAotICAgICAgIHRoZSBsYWNrIG9mIG91dC1vZi10aGluLWFpciB2
YWx1ZXMgbWVhbnMgdGhhdCB0aGUgYml0cyB3ZSdyZSBhc3NlcnRpbmcgYWJvdXQgd2lsbCBzdGls
bCBiZQotICAgICAgIHN0dWNrIGluIHRoZSBzdGF0ZSB0aGF0IHdlIGV4cGVjdGVkIHRoZW0gdG8g
YmUgaW4uICovCi0KLSAgICB2b2lkKiBmdWxsX2Jhc2U7Ci0gICAgdWludHB0cl90IGJlZ2luOwot
ICAgIHVpbnRwdHJfdCBlbmQ7Ci0gICAgdWludHB0cl90IGluZGV4OwotICAgIHVuc2lnbmVkIGJp
dHM7Ci0KLSAgICBwcmVwYXJlX2luZGljZXMoZW50cnksIGJhc2UsIGJ5dGVzLCAmZnVsbF9iYXNl
LCAmYmVnaW4sICZlbmQpOwotCi0gICAgYml0cyA9IHBhc19zdWJwYWdlX21hcF9lbnRyeV9iaXRz
KGVudHJ5KTsKLQotICAgIGZvciAoaW5kZXggPSBlbmQ7IGluZGV4LS0gPiBiZWdpbjspCi0gICAg
ICAgIFBBU19BU1NFUlQocGFzX2JpdHZlY3Rvcl9nZXRfZnJvbV9vbmVfd29yZCgmYml0cywgaW5k
ZXgpID09ICEhY29tbWl0X21vZGUpOwotfQotCi1zdGF0aWMgdm9pZCBzZXRfYml0cyhwYXNfc3Vi
cGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgdm9pZCogYmFzZSwg
c2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbW1pdF9tb2RlIGNvbW1p
dF9tb2RlLAotICAgICAgICAgICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyog
bG9nLAotICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19o
b2xkX21vZGUpCi17Ci0gICAgdm9pZCogZnVsbF9iYXNlOwotICAgIHVpbnRwdHJfdCBiZWdpbjsK
LSAgICB1aW50cHRyX3QgZW5kOwotICAgIHVpbnRwdHJfdCBpbmRleDsKLSAgICB1bnNpZ25lZCBv
bGRfYml0czsKLSAgICB1bnNpZ25lZCBiaXRzOwotCi0gICAgcGFzX2xvY2tfYXNzZXJ0X2hlbGQo
JmVudHJ5LT5jb21taXRfbG9jayk7Ci0KLSAgICBwcmVwYXJlX2luZGljZXMoZW50cnksIGJhc2Us
IGJ5dGVzLCAmZnVsbF9iYXNlLCAmYmVnaW4sICZlbmQpOwotCi0gICAgb2xkX2JpdHMgPSBwYXNf
c3VicGFnZV9tYXBfZW50cnlfYml0cyhlbnRyeSk7Ci0gICAgYml0cyA9IG9sZF9iaXRzOwotCi0g
ICAgZm9yIChpbmRleCA9IGVuZDsgaW5kZXgtLSA+IGJlZ2luOykKLSAgICAgICAgcGFzX2JpdHZl
Y3Rvcl9zZXRfaW5fb25lX3dvcmQoJmJpdHMsIGluZGV4LCBjb21taXRfbW9kZSk7Ci0KLSAgICBz
ZXRfcGFja2VkX3ZhbHVlKGVudHJ5LCBmdWxsX2Jhc2UsIGJpdHMpOwotCi0gICAgaWYgKCFvbGRf
Yml0cyAmJiBiaXRzKSB7Ci0gICAgICAgIFBBU19BU1NFUlQoY29tbWl0X21vZGUpOwotICAgICAg
ICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGZ1bGxfYmFzZSwgcGFzX3BhZ2VfbWFsbG9jX2FsaWdu
bWVudCgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChvbGRfYml0cyAmJiAh
Yml0cykgewotICAgICAgICBQQVNfQVNTRVJUKCFjb21taXRfbW9kZSk7Ci0gICAgICAgIHBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2dfYWRkX21heWJlX2xvY2tlZCgKLSAgICAgICAgICAgIGxvZywK
LSAgICAgICAgICAgIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZSgKLSAgICAgICAgICAgICAgICAo
dWludHB0cl90KWZ1bGxfYmFzZSwgKHVpbnRwdHJfdClmdWxsX2Jhc2UgKyBwYXNfcGFnZV9tYWxs
b2NfYWxpZ25tZW50KCksCi0gICAgICAgICAgICAgICAgJmVudHJ5LT5jb21taXRfbG9jayksCi0g
ICAgICAgICAgICBwYXNfcmFuZ2VfaXNfbG9ja2VkLAotICAgICAgICAgICAgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIWNvbW1pdF9tb2Rl
KQotICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVk
X2FkZChsb2csICZlbnRyeS0+Y29tbWl0X2xvY2spOwotfQotCi12b2lkIHBhc19zdWJwYWdlX21h
cF9lbnRyeV9jb21taXQocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMpCi17Ci0gICAg
LyogTk9URTogcGFzX2xvY2tfaXNfbm90X2hlbGQgY2FuIGJlIGEgbGllIHNpbmNlIHNldF9iaXRz
IGRvZXMgbm90IHVzZSB0aGF0IHZhbHVlIHVubGVzcwotICAgICAgIHdlIGFyZSBkZWNvbW1pdHRp
bmcuICovCi0gICAgc2V0X2JpdHMoZW50cnksIGJhc2UsIGJ5dGVzLCBwYXNfY29tbWl0dGVkLCBO
VUxMLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci19Ci0KLS8qIEhhdmUgdG8gYWxyZWFkeSBob2xk
IHRoZSBjb21taXQgbG9jayB0byBkbyB0aGlzLiAqLwotdm9pZCBwYXNfc3VicGFnZV9tYXBfZW50
cnlfZGVjb21taXQocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxv
ZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9k
ZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQotewotICAgIHNldF9iaXRzKGVudHJ5LCBiYXNlLCBieXRl
cywgcGFzX2RlY29tbWl0dGVkLCBsb2csIGhlYXBfbG9ja19ob2xkX21vZGUpOwotfQotCi0jZW5k
aWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5oCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9t
YXBfZW50cnkuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU1VCUEFHRV9NQVBf
RU5UUllfSAotI2RlZmluZSBQQVNfU1VCUEFHRV9NQVBfRU5UUllfSAotCi0jaW5jbHVkZSAicGFz
X2NvbW1pdF9tb2RlLmgiCi0jaW5jbHVkZSAicGFzX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfcGFn
ZV9tYWxsb2MuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2RlZmVycmVk
X2RlY29tbWl0X2xvZzsKLXN0cnVjdCBwYXNfc3VicGFnZV9tYXBfZW50cnk7Ci10eXBlZGVmIHN0
cnVjdCBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2c7
Ci10eXBlZGVmIHN0cnVjdCBwYXNfc3VicGFnZV9tYXBfZW50cnkgcGFzX3N1YnBhZ2VfbWFwX2Vu
dHJ5OwotCi0vKiBOT1RFOiBUaGlzIGlzIDQtYnl0ZSBhbGlnbmVkISAqLwotc3RydWN0IHBhc19z
dWJwYWdlX21hcF9lbnRyeSB7Ci0gICAgcGFzX2xvY2sgY29tbWl0X2xvY2s7Ci0KLSAgICAvKiBU
aGlzIGlzIGxpa2UgYSBwYWdlIHBvaW50ZXIsIGV4Y2VwdCB0aGF0IHRoZSBsb3cgYml0cyB0aGF0
IHdvdWxkIG5vcm1hbGx5IGJlIHplcm8gZm9yIGEgcGFnZQotICAgICAgIHBvaW50ZXIgKGkuZS4g
dGhlIHBhZ2Ugb2Zmc2V0IGJpdHMpIGFyZSB1c2VkIGFzIGEgYml0bWFwLiBUaGlzIGNvbnN0cmFp
bnMgdGhlIHBvc3NpYmxlIHN5c3RlbQotICAgICAgIHBhZ2Ugc2l6ZSBhcyBmb2xsb3dzOgotICAg
ICAgIAotICAgICAgICAgICBTWVNURU1fUEFHRV9TSVpFL2xvZyhTWVNURU1fUEFHRV9TSVpFKSA8
PSBQQVNfU1VCUEFHRV9TSVpFCi0KLSAgICAgICBXaGljaCBjYW4gYmUgYWxzbyB3cml0dGVuIGFz
IChpZiB3ZSB3YW50IHRvIHVzZSBpbnRlZ2Vycyk6Ci0gICAgCi0gICAgICAgICAgIFNZU1RFTV9Q
QUdFX1NJWkUvUEFTX1NVQlBBR0VfU0laRSA8PSBsb2coU1lTVEVNX1BBR0VfU0laRSkKLQotICAg
ICAgIE5PVEU6IFRoaXMgaXMgbm90IHVpbnRwdHJfdC1hbGlnbmVkISBXZSBsZXZlcmFnZSB0aGUg
ZmFjdCB0aGF0IHRoaXMgaXMgYWx3YXlzIGFjY2Vzc2VkIHVuZGVyCi0gICAgICAgdGhlIGNvbW1p
dCBsb2NrIGFuZCBzYXZlIHNvbWUgc3BhY2UuIFdlIGFsc28gbGV2ZXJhZ2UgdGhlIGZhY3QgdGhh
dCB0aGUgcGFnZSBmdWxsIGJhc2UgYml0cwotICAgICAgIGFyZSBpbW11dGFibGUsIHNvIHJlYWRp
bmcgdGhvc2UgY2FuIGJlIGRvbmUgYXQgYW55IHRpbWUsIHdpdGhvdXQgbG9ja2luZy4gKi8KLSAg
ICB1aW50cHRyX3QgcGFja2VkX3ZhbHVlOwotfTsKLQotUEFTX0FQSSBwYXNfc3VicGFnZV9tYXBf
ZW50cnkqIHBhc19zdWJwYWdlX21hcF9lbnRyeV9jcmVhdGUodm9pZCogZnVsbF9iYXNlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2NvbW1pdF9tb2RlIGNvbW1pdF9tb2RlKTsKLQotc3RhdGljIGlubGluZSB2b2lkKiBwYXNf
c3VicGFnZV9tYXBfZW50cnlfZnVsbF9iYXNlKHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnkp
Ci17Ci0gICAgcmV0dXJuICh2b2lkKikoZW50cnktPnBhY2tlZF92YWx1ZSAmIC1wYXNfcGFnZV9t
YWxsb2NfYWxpZ25tZW50KCkpOwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19zdWJw
YWdlX21hcF9lbnRyeV9iaXRzKHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnkpCi17Ci0gICAg
dWludHB0cl90IHJlc3VsdCA9IGVudHJ5LT5wYWNrZWRfdmFsdWUgJiAocGFzX3BhZ2VfbWFsbG9j
X2FsaWdubWVudCgpIC0gMSk7Ci0gICAgUEFTX0FTU0VSVCgodW5zaWduZWQpcmVzdWx0ID09IHJl
c3VsdCk7Ci0gICAgcmV0dXJuICh1bnNpZ25lZClyZXN1bHQ7Ci19Ci0KLVBBU19BUEkgdm9pZCBw
YXNfc3VicGFnZV9tYXBfYXNzZXJ0X2NvbW1pdF9zdGF0ZShwYXNfc3VicGFnZV9tYXBfZW50cnkq
IGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfY29tbWl0X21vZGUgY29tbWl0X21vZGUpOwotCi0vKiBI
YXZlIHRvIGFscmVhZHkgaG9sZCB0aGUgY29tbWl0IGxvY2sgdG8gZG8gdGhpcy4gKi8KLVBBU19B
UEkgdm9pZCBwYXNfc3VicGFnZV9tYXBfZW50cnlfY29tbWl0KHBhc19zdWJwYWdlX21hcF9lbnRy
eSogZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk
KiBiYXNlLCBzaXplX3QgYnl0ZXMpOwotCi0vKiBIYXZlIHRvIGFscmVhZHkgaG9sZCB0aGUgY29t
bWl0IGxvY2sgdG8gZG8gdGhpcy4gVGhpcyB3aWxsIHJlbGVhc2UgdGhlIGNvbW1pdCBsb2NrLiAq
LwotUEFTX0FQSSB2b2lkIHBhc19zdWJwYWdlX21hcF9lbnRyeV9kZWNvbW1pdChwYXNfc3VicGFn
ZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxvZywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9t
b2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYg
LyogUEFTX1NVQlBBR0VfTUFQX0VOVFJZX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYwko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RocmVhZF9sb2NhbF9jYWNoZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxNCArMzEsMTMgQEAK
IAogI2luY2x1ZGUgPG1hY2gvdGhyZWFkX2FjdC5oPgogI2luY2x1ZGUgInBhc19hbGxfaGVhcF9j
b25maWdzLmgiCi0jaW5jbHVkZSAicGFzX2FsbF9tYWdhemluZXMuaCIKICNpbmNsdWRlICJwYXNf
Y29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgogI2luY2x1ZGUgInBhc19kZWJ1Z19o
ZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgogI2luY2x1ZGUgInBhc19sb2cuaCIK
ICNpbmNsdWRlICJwYXNfbW9ub3RvbmljX3RpbWUuaCIKICNpbmNsdWRlICJwYXNfc2NhdmVuZ2Vy
LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGlu
ZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgi
CiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIgogI2luY2x1ZGUgInBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0LmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9u
b2RlLmgiCkBAIC01OSwxOCArNTgsNiBAQCBzaXplX3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9z
aXplX2Zvcl9hCiBzdGF0aWMgdm9pZCBkZWFsbG9jYXRlKHBhc190aHJlYWRfbG9jYWxfY2FjaGUq
IHRocmVhZF9sb2NhbF9jYWNoZSkKIHsKICAgICBjaGFyKiBiZWdpbjsKLSAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOwotCi0gICAgZm9yIChQQVNfVEhS
RUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKLSAg
ICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7Ci0KLSAgICAgICAgYWxs
b2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxs
b2NhdG9yX2luZGV4KGxheW91dF9ub2RlKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChhbGxvY2F0
b3JfaW5kZXggPj0gdGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91
bmQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9kZXN0
cnVjdCgKLSAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9j
YXRvcl9pbXBsKHRocmVhZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7Ci0gICAgfQog
CiAgICAgcGFzX2NvbXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfZGVhbGxvY2F0ZSgKICAg
ICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5zaG91bGRfc3RvcF9iaXR2ZWN0b3IsCkBAIC0xNzMs
MTMgKzE2MCw4IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWwKICAg
ICAKICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCA9
IGFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZDsKIAotICAgIGZvciAoUEFTX1RIUkVBRF9MT0NB
TF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7Ci0gICAgICAgIHBh
c19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KAotICAgICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCi0gICAgICAgICAgICAgICAgdGhyZWFk
X2xvY2FsX2NhY2hlLAotICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChsYXlvdXRfbm9kZSkpLAotICAgICAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KGxheW91dF9u
b2RlKSk7Ci0gICAgfQorICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFD
SF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKQorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2NvbnN0cnVjdChsYXlvdXRfbm9kZSwgdGhyZWFkX2xvY2FsX2NhY2hlKTsK
IAogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0X2ltcGwodGhyZWFkX2xvY2FsX2NhY2hl
KTsKICAgICAKQEAgLTI0MiwxMCArMjI0LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQg
cGFzX3RocmVhZF9sbwogICAgIG9sZF9pbmRleF91cHBlcl9ib3VuZCA9IHRocmVhZF9sb2NhbF9j
YWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kOwogICAgIAogICAgIFBBU19BU1NFUlQo
ZGVzaXJlZF9hbGxvY2F0b3JfaW5kZXggPj0gb2xkX2luZGV4X3VwcGVyX2JvdW5kKTsKLSAgICAK
LSAgICAvKiBJdCBjb3VsZCBiZSB0aGF0IHdlIGp1c3QgZG9uJ3QgaGF2ZSBhbiBhbGxvY2F0b3Ig
aW5kZXggeWV0LiAqLwotICAgIGlmIChkZXNpcmVkX2FsbG9jYXRvcl9pbmRleCA+PSAocGFzX2Fs
bG9jYXRvcl9pbmRleClVSU5UX01BWCkKLSAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0
b3JfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAgUEFTX0FTU0VSVChkZXNpcmVkX2FsbG9j
YXRvcl9pbmRleCA8IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKICAgICAKICAgICAv
KiBSYXRoZXIgdGhhbiBjb3B5IHRoZSBkZWFsbG9jYXRpb24gbG9nIGxldCdzIGp1c3QgZmx1c2gg
aXQuICovCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9n
KHRocmVhZF9sb2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CkBAIC0yNzgsMTUgKzI1
NywxMyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAgICAgICAg
IGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0
X25vZGUpKSB7CiAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRl
eDsKICAgICAgICAgICAgIAotICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2Rl
KTsKKyAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKGxheW91dF9ub2RlKTsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSBvbGRfaW5kZXhf
dXBwZXJfYm91bmQpCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX21vdmUoCi0gICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCi0gICAgICAgICAgICAgICAgICAgIG5ld190aHJl
YWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9pbmRleCksCi0gICAgICAgICAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCi0gICAgICAgICAgICAg
ICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CisKKyAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbW92ZSgKKyAgICAgICAgICAg
ICAgICBsYXlvdXRfbm9kZSwgbmV3X3RocmVhZF9sb2NhbF9jYWNoZSwgdGhyZWFkX2xvY2FsX2Nh
Y2hlKTsKICAgICAgICAgfQogCiAgICAgICAgIG1lbWNweShuZXdfdGhyZWFkX2xvY2FsX2NhY2hl
LT5zaG91bGRfc3RvcF9iaXR2ZWN0b3IsCkBAIC0zMDAsMTYgKzI3NywxNCBAQCBwYXNfbG9jYWxf
YWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FM
X0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKICAgICAgICAgcGFz
X2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CiAKLSAgICAgICAgYWxsb2NhdG9yX2lu
ZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2lu
ZGV4KGxheW91dF9ub2RlKTsKKyAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0
X25vZGUpOwogICAgICAgICAKICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA8IG9sZF9pbmRl
eF91cHBlcl9ib3VuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoYWxsb2Nh
dG9yX2luZGV4ID49IGRlc2lyZWRfaW5kZXhfdXBwZXJfYm91bmQpCiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QoCi0gICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKLSAgICAgICAg
ICAgICAgICBuZXdfdGhyZWFkX2xvY2FsX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpLAotICAgICAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KGxh
eW91dF9ub2RlKSk7CisKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9jb25zdHJ1Y3QobGF5b3V0X25vZGUsIG5ld190aHJlYWRfbG9jYWxfY2FjaGUpOwogICAgIH0K
IAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwpAQCAtMzQ1LDMwICszMjAsMjYgQEAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdAogdm9pZCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9ycyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJl
YWRfbG9jYWxfY2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQogewotICAg
IHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOwogCiAgICAgLyogV2UgaGF2ZSB0
byBob2xkIHRoZSBoZWFwIGxvY2sgdG8gZG8gdGhpbmdzIHRvIG91ciBsb2NhbCBhbGxvY2F0b3Jz
IHVubGVzcyB3ZSBhbHNvIHNldCB0aGUKICAgICAgICBpc19pbl91c2UgYml0LiAqLwogICAgIHBh
c19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAg
IAorICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNo
X2xvY2spOworCiAgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FM
TE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxv
Y2F0b3JfaW5kZXg7Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IgKmFsbG9jYXRvcjsKIAot
ICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5b3V0X25vZGUpOworICAgICAgICBhbGxvY2F0b3Jf
aW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3Jf
aW5kZXhfZ2VuZXJpYyhsYXlvdXRfbm9kZSk7CiAgICAgICAgIAogICAgICAgICBpZiAoYWxsb2Nh
dG9yX2luZGV4ID49IHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2Jv
dW5kKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgYWxsb2NhdG9yID0gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCi0gICAgICAgICAgICB0aHJl
YWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7Ci0gICAgICAgIGlmICh2ZXJib3NlKQot
ICAgICAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdG9yICVwIGJlY2F1c2UgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnNcbiIsIGFsbG9jYXRvcik7Ci0g
ICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcChhbGxvY2F0b3IsIHBhc19sb2NrX2xvY2tf
bW9kZV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9zdG9wKAorICAgICAgICAgICAgbGF5b3V0X25vZGUsIHRocmVhZF9s
b2NhbF9jYWNoZSwgcGFzX2xvY2tfbG9ja19tb2RlX2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpOwog
ICAgIH0KIAorICAgIHBhc19sb2NrX3VubG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5s
b2dfZmx1c2hfbG9jayk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSho
ZWFwX2xvY2tfaG9sZF9tb2RlKTsKIH0KIApAQCAtMzk4LDcgKzM2OSw3IEBAIHN0YXRpYyBib29s
IHN0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9uZWMKICAgICAKICAgICBzdG9wX2xvY2FsX2FsbG9j
YXRvcnNfaWZfbmVjZXNzYXJ5X2RhdGEqIGRhdGE7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBh
bGxvY2F0b3JfaW5kZXg7Ci0gICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOworICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRhOwogCiAg
ICAgZGF0YSA9IGFyZzsKIApAQCAtNDA4LDE4ICszNzksMTkgQEAgc3RhdGljIGJvb2wgc3RvcF9s
b2NhbF9hbGxvY2F0b3JzX2lmX25lYwogICAgIAogICAgIHBhc19iaXR2ZWN0b3Jfc2V0KGRhdGEt
PnNob3VsZF9zdG9wX2JpdHZlY3RvciwgYWxsb2NhdG9yX2luZGV4LCBmYWxzZSk7CiAgICAgCi0g
ICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9y
X2ltcGwoCisgICAgc2NhdmVuZ2VyX2RhdGEgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9s
b2NhbF9hbGxvY2F0b3JfaW1wbCgKICAgICAgICAgZGF0YS0+dGhyZWFkX2xvY2FsX2NhY2hlLCBh
bGxvY2F0b3JfaW5kZXgpOwotICAgIAotICAgIGlmIChhbGxvY2F0b3IgPT0gZGF0YS0+cmVxdWVz
dGluZ19hbGxvY2F0b3IpCisKKyAgICBpZiAoKHBhc19sb2NhbF9hbGxvY2F0b3IqKXNjYXZlbmdl
cl9kYXRhID09IGRhdGEtPnJlcXVlc3RpbmdfYWxsb2NhdG9yKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAKLSAgICBpZiAoIWFsbG9jYXRvci0+c2hvdWxkX3N0b3BfY291bnQpCisgICAgaWYg
KCFzY2F2ZW5nZXJfZGF0YS0+c2hvdWxkX3N0b3BfY291bnQpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIAogICAgIGlmICh2ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxv
Y2F0b3IgJXAgYmVjYXVzZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYWxsb2Nh
dG9yc19pZl9uZWNlc3NhcnlcbiIsIGFsbG9jYXRvcik7Ci0gICAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9zdG9wKGFsbG9jYXRvciwgcGFzX2xvY2tfbG9ja19tb2RlX2xvY2ssIGRhdGEtPmhlYXBfbG9j
a19ob2xkX21vZGUpOworICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgYmVj
YXVzZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9uZWNl
c3NhcnlcbiIsIHNjYXZlbmdlcl9kYXRhKTsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhX3N0b3AoCisgICAgICAgIHNjYXZlbmdlcl9kYXRhLCBwYXNfbG9ja19sb2NrX21v
ZGVfbG9jaywgZGF0YS0+aGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KQEAgLTQ1MSw2ICs0MjMsNyBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9s
b2NhbF9hCiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCiBwcm9jZXNzX2RlYWxsb2Nh
dGlvbl9sb2dfd2l0aF9jb25maWcocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0
aW9uX21vZGUgZGVhbGxvY2F0aW9uX21vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90KiBpbmRleCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgZW5jb2RlZF9iZWdpbiwKQEAgLTQ3
Nyw3ICs0NTAsOCBAQCBwcm9jZXNzX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9jb25maWcocGFzCiAK
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGxhc3RfaGVsZF9sb2NrID0gKmhlbGRfbG9j
azsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZShiZWdpbiwgaGVs
ZF9sb2NrLCBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Rl
YWxsb2NhdGUoCisgICAgICAgICAgICAgICAgYmVnaW4sIGhlbGRfbG9jaywgZGVhbGxvY2F0aW9u
X21vZGUsIGNhY2hlLCBwYWdlX2NvbmZpZyk7CiAgICAgICAgICAgICBpZiAodmVyYm9zZSAmJiAq
aGVsZF9sb2NrICE9IGxhc3RfaGVsZF9sb2NrICYmIGxhc3RfaGVsZF9sb2NrKQogICAgICAgICAg
ICAgICAgIHBhc19sb2coIlN3aXRjaGVkIGxvY2sgZnJvbSAlcCB0byAlcC5cbiIsIGxhc3RfaGVs
ZF9sb2NrLCAqaGVsZF9sb2NrKTsKICAgICAgICAgICAgIApAQCAtNDk3LDE5ICs0NzEsMTUgQEAg
cHJvY2Vzc19kZWFsbG9jYXRpb25fbG9nX3dpdGhfY29uZmlnKHBhcwogICAgIH0KIH0KIAotc3Rh
dGljIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0
aHJlYWRfbG9jYWxfY2FjaGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGlzX2xvY2FsKQorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZygKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiB0aHJlYWRfbG9jYWxfY2FjaGUsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21v
ZGUgZGVhbGxvY2F0aW9uX21vZGUpCiB7CiAgICAgc2l6ZV90IGluZGV4OwogICAgIHBhc19sb2Nr
KiBoZWxkX2xvY2s7Ci0gICAgCi0gICAgaWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+
bG9nX2ZsdXNoX2xvY2spOwotICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogCisgICAgcGFzX2xv
Y2tfdGVzdGluZ19hc3NlcnRfaGVsZCgmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1
c2hfbG9jayk7CisgICAgCiAgICAgaW5kZXggPSB0aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxsb2Nh
dGlvbl9sb2dfaW5kZXg7CiAgICAgaGVsZF9sb2NrID0gTlVMTDsKIApAQCAtNTIzLDcgKzQ5Myw3
IEBAIHN0YXRpYyB2b2lkIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3QKICNkZWZpbmUgUEFT
X0RFRklORV9TRUdSRUdBVEVEX1BBR0VfQ09ORklHX0tJTkQobmFtZSwgdmFsdWUpIFwKICAgICAg
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kXyAjIyBuYW1lOiBcCiAgICAg
ICAgICAgICBwcm9jZXNzX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9jb25maWcoIFwKLSAgICAgICAg
ICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUsIHZhbHVlLCAmaW5kZXgsIGVuY29kZWRfYmVnaW4s
ICZoZWxkX2xvY2spOyBcCisgICAgICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBkZWFs
bG9jYXRpb25fbW9kZSwgdmFsdWUsICZpbmRleCwgZW5jb2RlZF9iZWdpbiwgJmhlbGRfbG9jayk7
IFwKICAgICAgICAgICAgIGJyZWFrOwogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmQuZGVmIgogI3VuZGVmIFBBU19ERUZJTkVfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19L
SU5ECkBAIC01MzEsMjQgKzUwMSwzNyBAQCBzdGF0aWMgdm9pZCBmbHVzaF9kZWFsbG9jYXRpb25f
bG9nKHBhc190CiAgICAgfQogICAgIAogICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBO
VUxMKTsKLSAgICAKLSAgICBpZiAoaXNfbG9jYWwpIHsKLSAgICAgICAgdGhyZWFkX2xvY2FsX2Nh
Y2hlLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4ID0gMDsKLSAgICAgICAgdGhyZWFkX2xvY2FsX2Nh
Y2hlLT5udW1fbG9nZ2VkX2J5dGVzID0gMDsKLSAgICB9Cit9CiAKLSAgICBwYXNfY29tcGlsZXJf
ZmVuY2UoKTsKLSAgICBwYXNfbG9ja191bmxvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+
bG9nX2ZsdXNoX2xvY2spOworc3RhdGljIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19mb3Jf
c2NhdmVuZ2VyKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSkKK3sK
KyAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleCkKKyAg
ICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmIChoZWFwX2xvY2tfaG9sZF9tb2RlID09IHBhc19s
b2NrX2lzX25vdF9oZWxkKQotICAgICAgICBwYXNfc2NhdmVuZ2VyX25vdGlmeV9lbGlnaWJpbGl0
eV9pZl9uZWVkZWQoKTsKKyAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nKHRocmVhZF9sb2NhbF9j
YWNoZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2RpcmVjdF9tb2RlKTsKIH0KIAogdm9p
ZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpCiB7Ci0gICAgYm9vbCBpc19sb2NhbCA9IHRydWU7Ci0gICAgZmx1c2hfZGVh
bGxvY2F0aW9uX2xvZyh0aHJlYWRfbG9jYWxfY2FjaGUsIGhlYXBfbG9ja19ob2xkX21vZGUsIGlz
X2xvY2FsKTsKKyAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNoZSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcGFzX2xvY2tfbG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hf
bG9jayk7CisKKyAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nKHRocmVhZF9sb2NhbF9jYWNoZSwg
cGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZSk7CisgICAgCisg
ICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4ID0gMDsKKyAgICB0
aHJlYWRfbG9jYWxfY2FjaGUtPm51bV9sb2dnZWRfYnl0ZXMgPSAwOworCisgICAgLyogRGlydHlp
bmcgdGhlIGRlYWxsb2NhdGlvbiBsb2cgaXMgYSBzaWduYWwgdG8gdGhlIHNjYXZlbmdlciB0aGF0
IHdlIGFyZSBhY3RpdmVseSBvcGVyYXRpbmcgb24KKyAgICAgICB0aGlzIGxvZy4gKi8KKyAgICB0
aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfZGlydHkgPSB0cnVlOworCisgICAg
cGFzX2xvY2tfdW5sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9sb2Nr
KTsKKyAgICAKKyAgICBpZiAoaGVhcF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNfbG9ja19pc19ub3Rf
aGVsZCkKKyAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlfZWxpZ2liaWxpdHlfaWZfbmVlZGVk
KCk7CiB9CiAKIHN0YXRpYyB2b2lkIHN1c3BlbmQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2Fj
aGUpCkBAIC01ODcsNyArNTcwLDcgQEAgc3RhdGljIHZvaWQgcmVzdW1lKHBhc190aHJlYWRfbG9j
YWxfY2FjaAogICAgIAogICAgIGlmIChjYWNoZS0+dGhyZWFkID09IHB0aHJlYWRfc2VsZigpKQog
ICAgICAgICByZXR1cm47Ci0gICAgCisKICAgICByZXN1bHQgPSB0aHJlYWRfcmVzdW1lKHB0aHJl
YWRfbWFjaF90aHJlYWRfbnAoY2FjaGUtPnRocmVhZCkpOwogICAgIAogICAgIFBBU19BU1NFUlQo
cmVzdWx0ID09IEtFUk5fU1VDQ0VTUyk7CkBAIC02MjcsNyArNjEwLDI2IEBAIGJvb2wgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc18KICAgICAgICAgY2FjaGUgPSBub2RlLT5jYWNo
ZTsKICAgICAgICAgaWYgKCFjYWNoZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAK
KworICAgICAgICBwYXNfbG9ja19sb2NrKCZub2RlLT5sb2dfZmx1c2hfbG9jayk7CisKKyAgICAg
ICAgc3dpdGNoIChkZWFsbG9jYXRvcl9hY3Rpb24pIHsKKyAgICAgICAgY2FzZSBwYXNfZGVhbGxv
Y2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAKKyAgICAgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hfbG9nX2lmX2Ns
ZWFuX2FjdGlvbjoKKyAgICAgICAgICAgIGlmIChjYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19kaXJ0
eSkgeworICAgICAgICAgICAgICAgIGNhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2RpcnR5ID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gISFjYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19p
bmRleDsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGZsdXNoX2RlYWxsb2Nh
dGlvbl9sb2dfZm9yX3NjYXZlbmdlcihjYWNoZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIAorICAgICAgICBjYXNlIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2df
YWN0aW9uOgorICAgICAgICAgICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19mb3Jfc2NhdmVuZ2Vy
KGNhY2hlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKICAgICAgICAgaWYgKGFs
bG9jYXRvcl9hY3Rpb24gIT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rpb24pIHsKICAg
ICAgICAgICAgIGJvb2wgZGlkX3N1c3BlbmQ7CiAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOwpAQCAtNjM2LDM5ICs2MzgsNDAgQEAgYm9v
bCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzXwogCiAgICAgICAgICAgICBmb3Ig
KFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2Rl
KSkgewogICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4
OwotICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKKyAgICAg
ICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBzY2F2ZW5nZXJf
ZGF0YTsKIAotICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChsYXlvdXRfbm9kZSk7Cisg
ICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0KKyAgICAgICAgICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVy
aWMobGF5b3V0X25vZGUpOwogCiAgICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+
PSBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBhbGxvY2F0b3IgPSBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbChjYWNoZSwgYWxs
b2NhdG9yX2luZGV4KTsKLSAgICAgICAgICAgICAgICAKKworICAgICAgICAgICAgICAgIHNjYXZl
bmdlcl9kYXRhID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lt
cGwoY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7CisKICAgICAgICAgICAgICAgICBpZiAoYWxsb2Nh
dG9yX2FjdGlvbiA9PSBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX3JlcXVlc3Rfc3RvcF9hY3Rpb24p
IHsKICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBzaG91bGRfc3RvcF9jb3VudDsKICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvZygiRG9pbmcgdGhlIHJlcXVlc3QgdGhpbmd5LlxuIik7
CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9y
LT5kaXJ0eSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc2NhdmVuZ2VyX2RhdGEtPmRpcnR5
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZGlydHkuXG4iKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGFsbG9jYXRvci0+ZGlydHkgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNjYXZlbmdlcl9kYXRhLT5kaXJ0eSA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAgICAgLyogQmFpbCBvdXQgaWYg
aXQncyBubyBsb25nZXIgYWN0aXZlLiAqLwotICAgICAgICAgICAgICAgICAgICBpZiAoIXBhc19s
b2NhbF9hbGxvY2F0b3JfaXNfYWN0aXZlKGFsbG9jYXRvcikpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2ZShzY2F2
ZW5nZXJfZGF0YSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkl0IHdhcyBlbXB0eS5cbiIpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgICAgICAgICBzaG91bGRfc3RvcF9jb3VudCA9IGFsbG9jYXRvci0+c2hvdWxk
X3N0b3BfY291bnQ7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZF9zdG9wX2NvdW50ID0gc2Nh
dmVuZ2VyX2RhdGEtPnNob3VsZF9zdG9wX2NvdW50OwogICAgICAgICAgICAgICAgICAgICBpZiAo
c2hvdWxkX3N0b3BfY291bnQgPCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50
X2Zvcl9zdXNwZW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3ItPnNob3Vs
ZF9zdG9wX2NvdW50ID0gKytzaG91bGRfc3RvcF9jb3VudDsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHNjYXZlbmdlcl9kYXRhLT5zaG91bGRfc3RvcF9jb3VudCA9ICsrc2hvdWxkX3N0b3BfY291
bnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgIFBB
U19BU1NFUlQoc2hvdWxkX3N0b3BfY291bnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPD0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVu
ZCk7CkBAIC02OTMsNyArNjk2LDcgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9h
bGwocGFzXwogICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9hY3Rpb24g
PT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9mb3JjZV9zdG9wX2FjdGlvbik7CiAgICAgICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX2Fj
dGl2ZShhbGxvY2F0b3IpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2ZShzY2F2ZW5nZXJfZGF0YSkpIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9n
KCJJdCB3YXMgZW1wdHkuXG4iKTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC03
MDcsMjMgKzcxMCwyMiBAQCBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNf
CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgICAgIHBhc19sb2coIk5lZWQgdG8gc3VzcGVuZCBmb3IgYWxsb2NhdG9yICVw
XG4iLCBhbGxvY2F0b3IpOworICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJOZWVkIHRvIHN1
c3BlbmQgZm9yIGFsbG9jYXRvciAlcFxuIiwgc2NhdmVuZ2VyX2RhdGEpOwogICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgIGlmICghZGlkX3N1c3BlbmQpIHsKICAgICAgICAgICAgICAg
ICAgICAgc3VzcGVuZChjYWNoZSk7Ci0gICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICBkaWRfc3VzcGVuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3ItPmlzX2luX3VzZSkgeworICAg
ICAgICAgICAgICAgIGlmIChzY2F2ZW5nZXJfZGF0YS0+aXNfaW5fdXNlKSB7CiAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAg
ICAgICAgICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgd2hpbGUgc3VzcGVu
ZGVkXG4iLCBhbGxvY2F0b3IpOwotICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9j
YXRvcl9zdG9wKAotICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9ja19s
b2NrX21vZGVfdHJ5X2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpKQorICAgICAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgd2hpbGUgc3VzcGVuZGVkXG4iLCBzY2F2
ZW5nZXJfZGF0YSk7CisgICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhX3N0b3AoCisgICAgICAgICAgICAgICAgICAgICAgICBzY2F2ZW5nZXJfZGF0
YSwgcGFzX2xvY2tfbG9ja19tb2RlX3RyeV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKSkKICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IApAQCAtNzMxLDEyICs3MzMsNyBAQCBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2Fs
bChwYXNfCiAgICAgICAgICAgICAgICAgcmVzdW1lKGNhY2hlKTsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgaWYgKGRlYWxsb2NhdG9yX2FjdGlvbiA9PSBwYXNfZGVhbGxvY2F0b3Jfc2Nh
dmVuZ2VfZmx1c2hfbG9nX2FjdGlvbikgewotICAgICAgICAgICAgYm9vbCBpc19sb2NhbDsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgaXNfbG9jYWwgPSBmYWxzZTsKLSAgICAgICAgICAgIGZs
dXNoX2RlYWxsb2NhdGlvbl9sb2coY2FjaGUsIHBhc19sb2NrX2lzX2hlbGQsIGlzX2xvY2FsKTsK
LSAgICAgICAgfQorICAgICAgICBwYXNfbG9ja191bmxvY2soJm5vZGUtPmxvZ19mbHVzaF9sb2Nr
KTsKICAgICB9CiAgICAgCiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSho
ZWFwX2xvY2tfaG9sZF9tb2RlKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBQQVNf
VEhSRUFEX0xPQ0FMX0NBQ0hFX0gKICNkZWZpbmUgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ICiAK
KyNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRv
cl9zY2F2ZW5nZV9hY3Rpb24uaCIKICNpbmNsdWRlICJwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vf
YWN0aW9uLmgiCiAjaW5jbHVkZSAicGFzX2Zhc3RfdGxzLmgiCkBAIC01Niw2ICs1NywxMCBAQCBz
dHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSB7CiAKICAgICB1bnNpZ25lZCBkZWFsbG9jYXRp
b25fbG9nX2luZGV4OwogCisgICAgLyogQSBkaXJ0eSBhbGxvY2F0aW9uIGxvZyBpcyBvbmUgdGhh
dCBoYXMgYmVlbiBmbHVzaGVkIGJ5IHRoZSB0aHJlYWQgcmVjZW50bHkuIEEgY2xlYW4gb25lIGlz
CisgICAgICAgb25lIHRoYXQgaGFzbid0IGJlZW4gdG91Y2hlZCBieSB0aGUgdGhyZWFkIChleGNl
cHQgbWF5YmUgYnkgYXBwZW5kaW5nIG1vcmUgdGhpbmdzIHRvIGl0KS4gKi8KKyAgICBib29sIGRl
YWxsb2NhdGlvbl9sb2dfZGlydHk7CisKICAgICBzaXplX3QgbnVtX2xvZ2dlZF9ieXRlczsgLyog
VGhpcyB1bmRlcmNvdW50cyBzaW5jZSB3aGVuIHdlIGFwcGVuZCBzbWFsbCBvYmplY3RzIHdlIGRv
bid0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoIHRoaXMuICovCiAKQEAg
LTE2OCwxMiArMTczLDEyIEBAIFBBU19BUEkgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFz
X3QKICAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXgsCiAgICAgcGFzX2xvY2tfaG9sZF9tb2Rl
IGhlYXBfbG9ja19ob2xkX21vZGUpOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2xv
Y2FsX2FsbG9jYXRvcioKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCiAgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAogICAgIHVpbnRwdHJfdCBhbGxvY2F0b3Jf
aW5kZXgpCiB7Ci0gICAgcmV0dXJuIChwYXNfbG9jYWxfYWxsb2NhdG9yKikodGhyZWFkX2xvY2Fs
X2NhY2hlLT5sb2NhbF9hbGxvY2F0b3JzICsgYWxsb2NhdG9yX2luZGV4KTsKKyAgICByZXR1cm4g
KHZvaWQqKSh0aHJlYWRfbG9jYWxfY2FjaGUtPmxvY2FsX2FsbG9jYXRvcnMgKyBhbGxvY2F0b3Jf
aW5kZXgpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZXN1bHQKQEAgLTE4Myw2ICsxODgsMTAgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRf
bG9jYWxfYWxsb2NhdAogICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2Rl
KQogewogICAgIGlmIChQQVNfVU5MSUtFTFkoYWxsb2NhdG9yX2luZGV4ID49IHRocmVhZF9sb2Nh
bF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKSkgeworICAgICAgICAvKiBJdCBj
b3VsZCBiZSB0aGF0IHdlIGp1c3QgZG9uJ3QgaGF2ZSBhbiBhbGxvY2F0b3IgaW5kZXggeWV0LiAq
LworICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJ
TlRfTUFYKQorICAgICAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2Ny
ZWF0ZV9mYWlsdXJlKCk7CisgICAgCiAgICAgICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2dldF9sb2NhbF9hbGxvY2F0b3Jfc2xvdygKICAgICAgICAgICAgIHRocmVhZF9sb2NhbF9j
YWNoZSwgYWxsb2NhdG9yX2luZGV4LCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0LmMJKHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDkgQEAKIAogI2luY2x1ZGUgInBhc19o
ZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKKyNp
bmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmgiCiAjaW5jbHVkZSAicGFzX3JlZHVu
ZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgogCiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X2ZpcnN0X25vZGUgPSBOVUxMOwpAQCAtNDUsMTcgKzQ2LDEzIEBAIHBhc19hbGxvY2F0b3Jf
aW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMKIAogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggcmVz
dWx0OwogICAgIGJvb2wgZGlkX292ZXJmbG93OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogCiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVs
ZCgpOwogCiAgICAgUEFTX0FTU0VSVCgKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KG5vZGUpCisgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5vZGUp
CiAgICAgICAgID09IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKIAotICAgIGRpcmVj
dG9yeSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShu
b2RlKTsKLSAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeSk7Ci0KICAgICBQQVNfQVNTRVJUKCFwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9uZXh0KG5vZGUpKTsKICAgICAKICAg
ICByZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9p
bmRleDsKQEAgLTY2LDEyICs2MywxMiBAQCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRf
bG9jYWxfY2FjCiAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgcGFzX2xvZygicGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX25vZGU6IG5vZGUgPSAlcCwgYWxsb2NhdG9yX2luZGV4
ID0gJXUsICIKICAgICAgICAgICAgICAgICAibnVtX2FsbG9jYXRvcl9pbmRpY2VzID0gJXVcbiIs
Ci0gICAgICAgICAgICAgICAgbm9kZSwgcmVzdWx0LCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGRpcmVjdG9yeSkpOworICAgICAgICAg
ICAgICAgIG5vZGUsIHJlc3VsdCwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2Fs
bG9jYXRvcl9pbmRpY2VzKG5vZGUpKTsKICAgICB9CiAKICAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1
aWx0aW5fYWRkX292ZXJmbG93KAogICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9uZXh0X2FsbG9jYXRvcl9pbmRleCwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlcyhkaXJlY3RvcnkpLAorICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9yX2luZGljZXMobm9kZSks
CiAgICAgICAgICZwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9p
bmRleCk7CiAgICAgUEFTX0FTU0VSVCghZGlkX292ZXJmbG93KTsKIApAQCAtOTMsNyArOTAsNyBA
QCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjCiB9CiAKIHBhc19hbGxv
Y2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkKAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQorICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOwogCkBAIC0xMDQsMTEgKzEwMSwxMSBAQCBwYXNfYWxsb2NhdG9y
X2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjCiAgICAgfQogICAgIAogICAgIHJldHVybiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfbm9kZSgKLSAgICAgICAgcGFzX3dyYXBfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoZGlyZWN0b3J5KSk7CisgICAgICAgIHBhc193
cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkoZGlyZWN0b3J5KSk7CiB9CiAKIHBhc19hbGxv
Y2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZHVwbGljYXRlKAotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQorICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcGFzX3JlZHVu
ZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSogcmVkdW5kYW50X25vZGU7CiAKQEAgLTExOCw0ICsx
MTUsMTQgQEAgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhYwogICAgICAg
ICBwYXNfd3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUocmVkdW5kYW50X25vZGUp
KTsKIH0KIAorcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9hZGRfdmlld19jYWNoZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5KQoreworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqIGNhY2hlX25vZGU7CisK
KyAgICBjYWNoZV9ub2RlID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZV9jcmVhdGUoZGlyZWN0
b3J5KTsKKworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfbm9k
ZShwYXNfd3JhcF9sb2NhbF92aWV3X2NhY2hlX25vZGUoY2FjaGVfbm9kZSkpOworfQorCiAjZW5k
aWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQz
LDEwICs0MywxMyBAQCBQQVNfQVBJIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sCiAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKIAogUEFTX0FQSSBw
YXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZCgKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKIFBBU19BUEkgcGFz
X2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9kdXBsaWNhdGUo
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfQVBJ
IHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX3Zp
ZXdfY2FjaGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7
CiAKICNkZWZpbmUgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1Io
bm9kZSkgXAogICAgIG5vZGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9maXJzdF9u
b2RlOyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jCShy
ZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMzYgKzI5
LDc1IEBACiAKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgi
CiAKKyNpbmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNoZS5oIgorI2luY2x1ZGUgInBhc19sb2Nh
bF92aWV3X2NhY2hlX25vZGUuaCIKICNpbmNsdWRlICJwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9j
YXRvcl9ub2RlLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5o
IgogCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCitwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSoKIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0
X2RpcmVjdG9yeShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0g
ICAgaWYgKHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG5v
ZGUpKQotICAgICAgICByZXR1cm4gcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeShub2RlKTsKKyAgICBpZiAocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeShub2RlKSkKKyAgICAgICAgcmV0dXJuIHBhc191bndyYXBfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeShub2RlKTsKIAotICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKLSAgICAgICAgJnBhc191bndyYXBfcmVkdW5k
YW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5vZGUpLT5kaXJlY3RvcnkpOworICAgIGlmIChwYXNf
aXNfd3JhcHBlZF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobm9kZSkpeworICAgICAg
ICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgKKyAgICAgICAgICAgICZwYXNfdW53cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0
b3Jfbm9kZShub2RlKS0+ZGlyZWN0b3J5KTsKKyAgICB9CisKKyAgICByZXR1cm4gcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAg
JnBhc191bndyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKG5vZGUpLT5kaXJlY3RvcnkpOworfQor
CitwYXNfYWxsb2NhdG9yX2luZGV4CitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1f
YWxsb2NhdG9yX2luZGljZXMocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2Rl
KQoreworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisKKyAg
ICBkaXJlY3RvcnkgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJl
Y3Rvcnkobm9kZSk7CisgICAgCisgICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3Iobm9kZSkpCisgICAgICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMoZGlyZWN0b3J5KTsK
KworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9y
X2luZGljZXNfZm9yX2FsbG9jYXRvcl9zaXplKAorICAgICAgICBQQVNfTE9DQUxfVklFV19DQUNI
RV9TSVpFKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfY2FjaGVfY2FwYWNpdHko
ZGlyZWN0b3J5KSkpOwogfQogCiBzdGF0aWMgcGFzX2FsbG9jYXRvcl9pbmRleCoKIGFsbG9jYXRv
cl9pbmRleF9wdHIocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewot
ICAgIGlmIChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShu
b2RlKSkgewotICAgICAgICByZXR1cm4gJnBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9kYXRhX3B0cl9sb2FkKAotICAgICAgICAgICAgJnBhc191bndyYXBfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9kZSktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXg7CisgICAg
aWYgKHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkobm9kZSkpIHsKKyAg
ICAgICAgcmV0dXJuICZwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2Fk
KAorICAgICAgICAgICAgJnBhc191bndyYXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2Rl
KS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRleDsKICAgICB9CiAKLSAgICByZXR1cm4gJnBhc191bndy
YXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5vZGUpLT5hbGxvY2F0b3JfaW5kZXg7
CisgICAgaWYgKHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShu
b2RlKSkKKyAgICAgICAgcmV0dXJuICZwYXNfdW53cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0
b3Jfbm9kZShub2RlKS0+YWxsb2NhdG9yX2luZGV4OworCisgICAgcmV0dXJuICZwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAm
cGFzX3Vud3JhcF9sb2NhbF92aWV3X2NhY2hlX25vZGUobm9kZSktPmRpcmVjdG9yeSktPnZpZXdf
Y2FjaGVfaW5kZXg7CiB9CiAKIHBhc19hbGxvY2F0b3JfaW5kZXgKLXBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlIG5vZGUpCitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlIG5vZGUpCiB7CiAgICAgcmV0dXJuICphbGxvY2F0b3JfaW5kZXhfcHRyKG5vZGUpOwog
fQogCitwYXNfYWxsb2NhdG9yX2luZGV4CitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcihwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlIG5vZGUpCit7CisgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNfYWxsb2NhdG9yKG5vZGUpKTsKKyAgICByZXR1
cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4
X2dlbmVyaWMobm9kZSk7Cit9CisKK3Bhc19hbGxvY2F0b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9mb3Jfdmlld19jYWNoZShw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCit7CisgICAgUEFTX0FTU0VS
VChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNfdmlld19jYWNo
ZShub2RlKSk7CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
Z2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5vZGUpOworfQorCiB2b2lkCiBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9hbGxvY2F0b3JfaW5kZXgocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggaW5kZXgpCkBA
IC02OSwxMiArMTA4LDE1IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc2V0
X2EKIHN0YXRpYyBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlKgogbmV4dF9wdHIocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQog
ewotICAgIGlmIChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eShub2RlKSkgewotICAgICAgICByZXR1cm4gJnBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kYXRhX3B0cl9sb2FkKAotICAgICAgICAgICAgJnBhc191bndyYXBfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9kZSktPmRhdGEpLT5uZXh0X2Zvcl9sYXlvdXQ7Cisg
ICAgaWYgKHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkobm9kZSkpIHsK
KyAgICAgICAgcmV0dXJuICZwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9s
b2FkKAorICAgICAgICAgICAgJnBhc191bndyYXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShu
b2RlKS0+ZGF0YSktPm5leHRfZm9yX2xheW91dDsKICAgICB9Ci0gICAgCi0gICAgcmV0dXJuICZw
YXNfdW53cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKS0+bmV4dDsKKwor
ICAgIGlmIChwYXNfaXNfd3JhcHBlZF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobm9k
ZSkpCisgICAgICAgIHJldHVybiAmcGFzX3Vud3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9y
X25vZGUobm9kZSktPm5leHQ7CisKKyAgICByZXR1cm4gJnBhc191bndyYXBfbG9jYWxfdmlld19j
YWNoZV9ub2RlKG5vZGUpLT5uZXh0OwogfQogCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlCkBAIC04MywxMSArMTI1LDcyIEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfZ2V0X24KICAgICByZXR1cm4gcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9sb2FkKG5leHRfcHRyKG5vZGUpKTsKIH0KIAotdm9pZAotcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zZXRfbmV4dChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlIG5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbmV4dF9ub2RlKQor
dm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9uZXh0KHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlIG5leHRfbm9kZSkKIHsKICAgICBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX3N0b3JlKG5leHRfcHRyKG5vZGUpLCBuZXh0X25vZGUpOwogfQogCit2
b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29uc3RydWN0KHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUp
Cit7CisgICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50
c19hbGxvY2F0b3Iobm9kZSkpIHsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1
Y3QoCisgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0
b3JfaW1wbCgKKyAgICAgICAgICAgICAgICBjYWNoZSwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0b3Iobm9kZSkpLAorICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5
KG5vZGUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBhc19sb2NhbF92aWV3X2Nh
Y2hlX2NvbnN0cnVjdCgKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxf
YWxsb2NhdG9yX2ltcGwoCisgICAgICAgICAgICBjYWNoZSwgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl92aWV3X2NhY2hlKG5vZGUpKSwK
KyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0
eSgKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2Rp
cmVjdG9yeShub2RlKSkpOworfQorCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfbW92ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiB0b19jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGZyb21fY2FjaGUpCit7CisgICAgcGFzX2Fs
bG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CisKKyAgICBhbGxvY2F0b3JfaW5kZXggPSBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2Vu
ZXJpYyhub2RlKTsKKyAgICAKKyAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihub2RlKSkgeworICAgICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX21vdmUoCisgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2Nh
bF9hbGxvY2F0b3JfaW1wbCh0b19jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSwKKyAgICAgICAgICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKGZyb21fY2Fj
aGUsIGFsbG9jYXRvcl9pbmRleCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfbW92ZSgKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwodG9fY2FjaGUsIGFsbG9jYXRvcl9pbmRleCksCisgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKGZyb21f
Y2FjaGUsIGFsbG9jYXRvcl9pbmRleCkpOworfQorCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfc3RvcChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5v
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKKyAgICAKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKKyAg
ICB2b2lkKiBhbGxvY2F0b3I7CisKKyAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhub2RlKTsK
KyAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0
b3JfaW1wbChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdG9yICVwIGJlY2F1c2UgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnNcbiIsIGFsbG9jYXRvcik7CisgICAg
CisgICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19h
bGxvY2F0b3Iobm9kZSkpIHsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKGFsbG9j
YXRvciwgcGFnZV9sb2NrX21vZGUsIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcChhbGxvY2F0b3IsIHBh
Z2VfbG9ja19tb2RlKTsKK30KKwogI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNjYgKzI3LDE0MyBAQAogI2RlZmlu
ZSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0gKIAogI2luY2x1ZGUgInBhc19h
bGxvY2F0b3JfaW5kZXguaCIKKyNpbmNsdWRlICJwYXNfbG9jay5oIgorI2luY2x1ZGUgInBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oIgogI2luY2x1ZGUgInBhc191dGls
cy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKK3N0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNo
ZV9ub2RlOwogc3RydWN0IHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGU7Ci1zdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGU7CiBz
dHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9vcGFxdWU7Cit0eXBlZGVm
IHN0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlIHBhc19sb2NhbF92aWV3X2NhY2hlX25v
ZGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlIHBh
c19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGU7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlIHBhc190aHJlYWRfbG9jYWxfY2FjaGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX29wYXF1ZSogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZTsKIAotI2RlZmluZSBQQVNfSVNfUkVEVU5EQU5UX0xPQ0FMX0FMTE9D
QVRPUl9OT0RFX0JJVCAoKHVpbnRwdHJfdCkxKQorI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0NB
Q0hFX0xBWU9VVF9OT0RFX0tJTkRfTUFTSyAzbHUKKworc3RhdGljIGlubGluZSB2b2lkKiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9wdHIocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSBub2RlKQoreworICAgIHJldHVybiAodm9pZCopKCh1aW50cHRyX3Qp
bm9kZSAmIH5QQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0tJTkRfTUFTSyk7Cit9
CisKK3N0YXRpYyBpbmxpbmUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5k
CitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9raW5kKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3sKKyAgICByZXR1cm4gKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZCkoCisgICAgICAgICh1aW50cHRyX3Qpbm9kZSAm
IFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfS0lORF9NQVNLKTsKK30KKworc3Rh
dGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlCitwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NyZWF0ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2tpbmQga2luZCwgdm9pZCogcHRyKQoreworICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgcmVzdWx0OworICAgIAorICAgIFBBU19BU1NFUlQocHRyKTsKKwor
ICAgIHJlc3VsdCA9IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlKSgodWludHB0
cl90KXB0ciB8ICh1aW50cHRyX3Qpa2luZCk7CisgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9wdHIocmVzdWx0KSA9PSBwdHIpOworICAgIFBBU19B
U1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfa2luZChyZXN1bHQp
ID09IGtpbmQpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KIAogc3RhdGljIGlubGluZSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlCi1wYXNfd3JhcF9zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeShwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSkKK3Bhc193cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKLSAgICBQQVNfQVNTRVJUKGRpcmVjdG9y
eSk7Ci0gICAgcmV0dXJuIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlKWRpcmVj
dG9yeTsKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jcmVh
dGUoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnlfbm9kZV9raW5kLCBkaXJlY3RvcnkpOwogfQogCiBzdGF0aWMgaW5saW5lIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUKIHBhc193cmFwX3JlZHVuZGFudF9sb2Nh
bF9hbGxvY2F0b3Jfbm9kZShwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKiBub2Rl
KQogewotICAgIFBBU19BU1NFUlQobm9kZSk7Ci0gICAgcmV0dXJuIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlKSgKLSAgICAgICAgKHVpbnRwdHJfdClub2RlIHwgUEFTX0lTX1JF
RFVOREFOVF9MT0NBTF9BTExPQ0FUT1JfTk9ERV9CSVQpOworICAgIHJldHVybiBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NyZWF0ZSgKKyAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlX2tpbmQsIG5vZGUp
OworfQorCitzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUK
K3Bhc193cmFwX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShwYXNfbG9jYWxfdmlld19jYWNoZV9ub2Rl
KiBub2RlKQoreworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2NyZWF0ZSgKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbG9jYWxfdmll
d19jYWNoZV9ub2RlX2tpbmQsIG5vZGUpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wKLXBhc19p
c193cmFwcGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3Bhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewot
ICAgIHJldHVybiAhKCh1aW50cHRyX3Qpbm9kZSAmIFBBU19JU19SRURVTkRBTlRfTE9DQUxfQUxM
T0NBVE9SX05PREVfQklUKTsKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9nZXRfa2luZChub2RlKQorICAgICAgICA9PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X25vZGVfa2luZDsKIH0KIAogc3RhdGlj
IGlubGluZSBib29sCiBwYXNfaXNfd3JhcHBlZF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25v
ZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewotICAgIHJldHVy
biAhcGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9kZSk7
CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2tpbmQo
bm9kZSkKKyAgICAgICAgPT0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfcmVkdW5kYW50
X2xvY2FsX2FsbG9jYXRvcl9ub2RlX2tpbmQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbAorcGFz
X2lzX3dyYXBwZWRfbG9jYWxfdmlld19jYWNoZV9ub2RlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGUgbm9kZSkKK3sKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfa2luZChub2RlKQorICAgICAgICA9PSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9sb2NhbF92aWV3X2NhY2hlX25vZGVfa2luZDsKIH0KIAotc3RhdGljIGlubGlu
ZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCi1wYXNfdW53cmFwX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUgbm9kZSkKK3N0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
CitwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewotICAgIFBBU19BU1NFUlQocGFzX2lzX3dyYXBwZWRf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9kZSkpOwotICAgIHJldHVybiAocGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kilub2RlOworICAgIFBBU19BU1NFUlQo
cGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2RlKSk7CisgICAgcmV0
dXJuIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSopcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfcHRyKG5vZGUpOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc19yZWR1
bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUqCiBwYXNfdW53cmFwX3JlZHVuZGFudF9sb2NhbF9h
bGxvY2F0b3Jfbm9kZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7
CiAgICAgUEFTX0FTU0VSVChwYXNfaXNfd3JhcHBlZF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9y
X25vZGUobm9kZSkpOwotICAgIHJldHVybiAocGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jf
bm9kZSopKAotICAgICAgICAodWludHB0cl90KW5vZGUgJiB+UEFTX0lTX1JFRFVOREFOVF9MT0NB
TF9BTExPQ0FUT1JfTk9ERV9CSVQpOworICAgIHJldHVybiAocGFzX3JlZHVuZGFudF9sb2NhbF9h
bGxvY2F0b3Jfbm9kZSopcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfcHRy
KG5vZGUpOwogfQogCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSoKK3N0YXRpYyBpbmxpbmUgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSoKK3Bhc191bndyYXBf
bG9jYWxfdmlld19jYWNoZV9ub2RlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUg
bm9kZSkKK3sKKyAgICBQQVNfQVNTRVJUKHBhc19pc193cmFwcGVkX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZShub2RlKSk7CisgICAgcmV0dXJuIChwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKilwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9wdHIobm9kZSk7Cit9CisKK1BBU19B
UEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZSBub2RlKTsKIAogUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4Ci1wYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X251bV9hbGxvY2F0b3JfaW5kaWNlcyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
IG5vZGUpOworCitzdGF0aWMgaW5saW5lIGJvb2wKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3IocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZSBub2RlKQoreworICAgIHJldHVybiBwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KG5vZGUpCisgICAgICAgIHx8IHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9s
b2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKTsKK30KKworc3RhdGljIGlubGluZSBib29sCitwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNfdmlld19jYWNoZShwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCit7CisgICAgcmV0dXJuIHBhc19p
c193cmFwcGVkX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShub2RlKTsKK30KKworUEFTX0FQSSBwYXNf
YWxsb2NhdG9yX2luZGV4CitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9h
bGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
IG5vZGUpOworCitQQVNfQVBJIHBhc19hbGxvY2F0b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKAorICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7CisKK1BBU19BUEkgcGFz
X2FsbG9jYXRvcl9pbmRleAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRf
YWxsb2NhdG9yX2luZGV4X2Zvcl92aWV3X2NhY2hlKAorICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUgbm9kZSk7CiAKIFBBU19BUEkgdm9pZAogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9zZXRfYWxsb2NhdG9yX2luZGV4KHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUgbm9kZSwKQEAgLTk5LDYgKzE3NiwxOCBAQCBQQVNfQVBJIHZvaWQKIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc2V0X25leHQocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5leHRfbm9k
ZSk7CiAKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2Nv
bnN0cnVjdChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpOworCitQQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9tb3ZlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdG9fY2FjaGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUqIGZyb21fY2FjaGUpOworCitQQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9zdG9wKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9k
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOworCiBQQVNfRU5EX0VYVEVS
Tl9DOwogCiAjZW5kaWYgLyogUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9IICov
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9LSU5EX0gKKyNk
ZWZpbmUgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9LSU5EX0gKKworI2luY2x1
ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK2VudW0gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kIHsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X25vZGVfa2luZCwKKyAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVf
a2luZCwKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sb2NhbF92aWV3X2NhY2hl
X25vZGVfa2luZAorfTsKKwordHlwZWRlZiBlbnVtIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfa2luZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQ7Citz
dGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfa2luZF9nZXRfc3RyaW5nKAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfa2luZCBraW5kKQoreworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9ub2RlX2tpbmQ6
CisgICAgICAgIHJldHVybiAic2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSI7CisgICAgY2FzZSBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25v
ZGVfa2luZDoKKyAgICAgICAgcmV0dXJuICJyZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yIjsKKyAg
ICBjYXNlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xvY2FsX3ZpZXdfY2FjaGVfbm9k
ZV9raW5kOgorICAgICAgICByZXR1cm4gImxvY2FsX3ZpZXdfY2FjaGUiOworICAgIH0KKyAgICBQ
QVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJuIE5VTEw7Cit9
CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hF
X0xBWU9VVF9OT0RFX0tJTkRfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUu
YwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmMJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDggKzQ4
LDE5IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSogcGFzX3RocmVhZF8KIAogICAgIHJl
c3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZV9maXJzdF9mcmVlOwogICAgIGlmICgh
cmVzdWx0KSB7Ci0gICAgICAgIHJlc3VsdCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAot
ICAgICAgICAgICAgc2l6ZW9mKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSksCisgICAgICAg
IGNvbnN0IHNpemVfdCBpbnRlcmZlcmVuY2VfcGFkZGluZyA9IDY0OworICAgICAgICAKKyAgICAg
ICAgc2l6ZV90IHNpemU7CisKKyAgICAgICAgc2l6ZSA9IFBBU19NQVgoCisgICAgICAgICAgICBp
bnRlcmZlcmVuY2VfcGFkZGluZywKKyAgICAgICAgICAgIHBhc19yb3VuZF91cF90b19uZXh0X3Bv
d2VyX29mXzIoc2l6ZW9mKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSkpKTsKKworICAgICAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coIkFsbG9jYXRpbmcgVExDIG5vZGUg
d2l0aCBzaXplL2FsaWdubWVudCA9ICV6dS5cbiIsIHNpemUpOworICAgICAgICAKKyAgICAgICAg
cmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQoCisgICAg
ICAgICAgICBzaXplLCBzaXplLAogICAgICAgICAgICAgInBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bm9kZSIsCiAgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwogICAgICAgICAKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBQQVNfVEhSRUFEX0xP
Q0FMX0NBQ0hFX05PREVfSAogCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotI2luY2x1ZGUgInBh
c19tYWdhemluZS5oIgogI2luY2x1ZGUgInBhc19sb2NrLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxz
LmgiCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxs
b2NhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzMs
NyArNzMsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ltcGwocGFzX2hlYXBfcmVmKiBoZWFwCiAgICAg
ICAgICAgICBjYWNoZSwKICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgIGlm
IChQQVNfTElLRUxZKGFsbG9jYXRvci5kaWRfc3VjY2VlZCkpIHsKLSAgICAgICAgICAgIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgICAgICAgICAgcGFzX2FsbG9j
YXRpb25fcmVzdWx0IHJlc3VsdDsKICAgICAgICAgICAgIHBhc190cnlfYWxsb2NhdGVfaW1wbF9z
aXplX3RodW5rX2RhdGEgc2l6ZV90aHVua19kYXRhOwogICAgICAgICAgICAgCiAgICAgICAgICAg
ICAvKiBUaGlzIHRoaW5nIHdpdGggdGhlIHNpemUgdGh1bmsgbWVhbnMgdGhhdCBpc29oZWFwcyB1
c3VhbGx5IGRvbid0IGhhdmUgdG8gZ2V0IHRoZQpAQCAtODMsNyArODMsOCBAQCBwYXNfdHJ5X2Fs
bG9jYXRlX2ltcGwocGFzX2hlYXBfcmVmKiBoZWFwCiAgICAgICAgICAgICBzaXplX3RodW5rX2Rh
dGEuaGVhcF9yZWYgPSBoZWFwX3JlZjsKIAogICAgICAgICAgICAgcmVzdWx0ID0gdHJ5X2FsbG9j
YXRlX2NvbW1vbl9mYXN0KAotICAgICAgICAgICAgICAgIGFsbG9jYXRvci5hbGxvY2F0b3IsIHBh
c190cnlfYWxsb2NhdGVfaW1wbF9zaXplX3RodW5rLCAmc2l6ZV90aHVua19kYXRhLCAxKTsKKyAg
ICAgICAgICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yLmFsbG9jYXRvciwg
cGFzX3RyeV9hbGxvY2F0ZV9pbXBsX3NpemVfdGh1bmssCisgICAgICAgICAgICAgICAgJnNpemVf
dGh1bmtfZGF0YSwgMSk7CiAKICAgICAgICAgICAgIHR5cGUgPSBoZWFwX3JlZi0+dHlwZTsKICAg
ICAgICAgICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ry
eV9hbGxvY2F0ZV9hcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIHBhc190
cnlfYWxsb2NhdGVfYXJyYXlfaW1wbChwYXNfaGVhcF9yZWYKICAgICAgICAgYWxsb2NhdG9yX2lu
ZGV4LCBjb25maWcuY29uZmlnX3B0cik7CiAKICAgICBpZiAoYWxpZ25tZW50ICE9IDEgJiYgYWxs
b2NhdG9yLmRpZF9zdWNjZWVkCi0gICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxv
Y2F0b3JfYWxpZ25tZW50KGFsbG9jYXRvci5hbGxvY2F0b3IpKQorICAgICAgICAmJiBhbGlnbm1l
bnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudCgocGFzX2xvY2FsX2FsbG9jYXRvciop
YWxsb2NhdG9yLmFsbG9jYXRvcikpCiAgICAgICAgIGFsbG9jYXRvci5kaWRfc3VjY2VlZCA9IGZh
bHNlOwogICAgIAogICAgIHJldHVybiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRl
X3dpdGhfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2NvbW1v
bi5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3
IEBACiAKICNpbmNsdWRlICJwYXNfZGVidWdfaGVhcC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2lu
bGluZXMuaCIKLSNpbmNsdWRlICJwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmgiCisj
aW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX2xvY2FsX2Fs
bG9jYXRvcl9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3ByaW1pdGl2ZV9oZWFwX3JlZi5oIgog
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oIgpAQCAtNDIsMjYgKzQyLDQz
IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Nhbl9nb19mYXN0KHBhc18KICAgICByZXR1cm4g
YWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZDsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKK3Bhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxf
ZmFzdF9pbmxpbmVfb25seSgKKyAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAorICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlciwKKyAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yKiBhbGxvY2F0b3IpCit7CisgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5
X2FsbG9jYXRlX2lubGluZV9vbmx5KGFsbG9jYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfZmlsdGVyKTsK
K30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFz
X3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9mYXN0KAogICAgIHBhc19oZWFwX2NvbmZpZyBjb25m
aWcsCiAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGFsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnJlc3VsdF9maWx0ZXIpKHBhc19pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KSwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
ZmlsdGVyIHJlc3VsdF9maWx0ZXIsCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9y
LAogICAgIHBhc19zaXplX3RodW5rIHNpemVfdGh1bmssCiAgICAgdm9pZCogc2l6ZV90aHVua19h
cmcsCiAgICAgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1cm4gcmVzdWx0X2ZpbHRlcihw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZSgKLSAgICAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl90cnlfYWxsb2NhdGUoYWxsb2NhdG9yLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3RodW5rLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3RodW5rX2FyZywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWxpZ25tZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFsbG9jYXRvcl9jb3VudHMpKSk7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOworICAgIAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAg
cmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUoYWxsb2NhdG9yLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdGh1bmssCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90aHVua19h
cmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25t
ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZp
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0
b3JfY291bnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdF9maWx0ZXIpOworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJpbiBj
b21tb24gLSByZXN1bHQuYmVnaW4gPSAlcFxuIiwgcmVzdWx0LmJlZ2luKTsKKyAgICByZXR1cm4g
cmVzdWx0OwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdAogcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KAogICAgIHBhc19oZWFwX3Jl
ZiogaGVhcF9yZWYsCiAgICAgcGFzX2hlYXBfcmVmX2tpbmQgaGVhcF9yZWZfa2luZCwKQEAgLTc5
LDcgKzk2LDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KAogICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAgICAgcGFzX2hlYXAqIGhlYXA7CiAgICAgcGFzX2hl
YXBfdHlwZSogdHlwZTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
OwogICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXg7CiAKICAgICBpZiAodmVyYm9zZSkKQEAgLTEw
NCw3ICsxMjEsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3coCiAgICAgICAg
ICAgICByZXN1bHQuYmVnaW4gPSAodWludHB0cl90KXJhd19yZXN1bHQ7CiAgICAgICAgIH0KIAot
ICAgICAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUocmVz
dWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKICAgICBoZWFwID0gcGFzX2Vu
c3VyZV9oZWFwKGhlYXBfcmVmLCBoZWFwX3JlZl9raW5kLCBjb25maWcuY29uZmlnX3B0ciwgcnVu
dGltZV9jb25maWcpOwpAQCAtMTU2LDcgKzE3Myw3IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9u
X2ltcGxfc2xvdygKICAgICAgICAgCiAgICAgICAgIHBhc19zY2F2ZW5nZXJfbm90aWZ5X2VsaWdp
YmlsaXR5X2lmX25lZWRlZCgpOwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIHBhc19pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQogICAgIAogICAgIGlmICh2ZXJib3NlKQpAQCAtMTY0LDcgKzE4MSw3IEBAIHBh
c190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdygKICAgICAKICAgICBQQVNfQVNTRVJUKGRp
cmVjdG9yeSk7CiAgICAgCi0gICAgYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdCA9IHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yKAorICAgIGJhc2Vs
aW5lX2FsbG9jYXRvcl9yZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZWxl
Y3RfYWxsb2NhdG9yKAogICAgICAgICBkaXJlY3RvcnksIGFsaWduZWRfY291bnQsIGNvdW50X2xv
b2t1cF9tb2RlLCBjb25maWcuY29uZmlnX3B0ciwgY2FjaGVkX2luZGV4KTsKICAgICAKICAgICBy
ZXN1bHQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShiYXNlbGluZV9hbGxvY2F0
b3JfcmVzdWx0LmFsbG9jYXRvciwKQEAgLTE3MiwxNiArMTg5LDE3IEBAIHBhc190cnlfYWxsb2Nh
dGVfY29tbW9uX2ltcGxfc2xvdygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAodm9pZCopc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFsbG9jYXRvcl9jb3VudHMpOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9jb3VudHMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50
aXR5KTsKICAgICAKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKICAgICBpZiAoYmFzZWxpbmVf
YWxsb2NhdG9yX3Jlc3VsdC5sb2NrKQogICAgICAgICBwYXNfbG9ja191bmxvY2soYmFzZWxpbmVf
YWxsb2NhdG9yX3Jlc3VsdC5sb2NrKTsKIAotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0X2NyZWF0ZShyZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Citz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X2Fs
bG9jYXRlX2NvbW1vbl9pbXBsKAogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgc2l6
ZV90IGFsaWduZWRfY291bnQsIC8qIE11c3QgYmUgPSByb3VuZF91cChjb3VudCAqIHR5cGVfc2l6
ZSwgYWxpZ25tZW50KSAvIHR5cGVfc2l6ZSAqLwpAQCAtMTg5LDggKzIwNyw4IEBAIHBhc190cnlf
YWxsb2NhdGVfY29tbW9uX2ltcGwoCiAgICAgc2l6ZV90IGFsaWdubWVudCwKICAgICBwYXNfaGVh
cF9jb25maWcgY29uZmlnLAogICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBhbGxvY2F0b3JfY291
bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpyZXN1bHRfZmlsdGVy
KShwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCksCi0gICAgcGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnNsb3cpKAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCAoKnJlc3VsdF9maWx0ZXIpKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpLAorICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCAoKnNsb3cpKAogICAgICAgICBwYXNfaGVhcF9yZWYqIGhlYXBf
cmVmLCBzaXplX3QgYWxpZ25lZF9jb3VudCwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQp
LAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFsbG9jYXRvcl9yZXN1bHQpCiB7CkBA
IC0yMDMsNyArMjIxLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbCgKIAogICAgIGlm
IChQQVNfTElLRUxZKHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Nhbl9nb19mYXN0KGFsbG9jYXRv
cl9yZXN1bHQpKSkgewogICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1w
bF9mYXN0KAotICAgICAgICAgICAgY29uZmlnLCBhbGxvY2F0b3JfY291bnRzLCByZXN1bHRfZmls
dGVyLCBhbGxvY2F0b3JfcmVzdWx0LmFsbG9jYXRvciwKKyAgICAgICAgICAgIGNvbmZpZywgYWxs
b2NhdG9yX2NvdW50cywgcmVzdWx0X2ZpbHRlciwgKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9j
YXRvcl9yZXN1bHQuYWxsb2NhdG9yLAogICAgICAgICAgICAgcGFzX3RyaXZpYWxfc2l6ZV90aHVu
aywgKHZvaWQqKXNpemUsIGFsaWdubWVudCk7CiAgICAgfQogCkBAIC0yMTEsNyArMjI5LDE0IEBA
IHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGwoCiB9CiAKICNkZWZpbmUgUEFTX0NSRUFURV9U
UllfQUxMT0NBVEVfQ09NTU9OKG5hbWUsIGhlYXBfcmVmX2tpbmQsIGhlYXBfY29uZmlnLCBydW50
aW1lX2NvbmZpZywgYWxsb2NhdG9yX2NvdW50cywgY291bnRfbG9va3VwX21vZGUsIHJlc3VsdF9m
aWx0ZXIpIFwKLSAgICBzdGF0aWMgUEFTX1VOVVNFRCBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IFwKKyAgICBzdGF0aWMgUEFTX1VOVVNFRCBQQVNfQUxX
QVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIG5hbWUgIyMgX2Zhc3RfaW5s
aW5lX29ubHkocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKSBcCisgICAgeyBcCisgICAg
ICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX2Zhc3RfaW5saW5lX29ubHko
IFwKKyAgICAgICAgICAgIChoZWFwX2NvbmZpZyksIChyZXN1bHRfZmlsdGVyKSwgYWxsb2NhdG9y
KTsgXAorICAgIH0gXAorICAgIFwKKyAgICBzdGF0aWMgUEFTX1VOVVNFRCBQQVNfQUxXQVlTX0lO
TElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIG5hbWUgIyMgX2Zhc3QocGFzX2xvY2Fs
X2FsbG9jYXRvciogYWxsb2NhdG9yLCBwYXNfc2l6ZV90aHVuayBzaXplX3RodW5rLCB2b2lkKiBz
aXplX3RodW5rX2FyZywgXAogICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkgXAog
ICAgIHsgXApAQCAtMjIwLDcgKzI0NSw3IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGwo
CiAgICAgICAgICAgICBzaXplX3RodW5rLCBzaXplX3RodW5rX2FyZywgYWxpZ25tZW50KTsgXAog
ICAgIH0gXAogICAgIFwKLSAgICBzdGF0aWMgUEFTX05FVkVSX0lOTElORSBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0IFwKKyAgICBzdGF0aWMgUEFTX05FVkVSX0lOTElORSBwYXNfYWxs
b2NhdGlvbl9yZXN1bHQgXAogICAgIG5hbWUgIyMgX3Nsb3cocGFzX2hlYXBfcmVmKiBoZWFwX3Jl
Ziwgc2l6ZV90IGFsaWduZWRfY291bnQsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSBc
CiAgICAgeyBcCiAgICAgICAgIHJldHVybiAocmVzdWx0X2ZpbHRlcikoIFwKQEAgLTIyOSw3ICsy
NTQsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsKAogICAgICAgICAgICAgICAgIChh
bGxvY2F0b3JfY291bnRzKSwgKGNvdW50X2xvb2t1cF9tb2RlKSkpOyBcCiAgICAgfSBcCiAgICAg
XAotICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbmFtZShwYXNfaGVhcF9yZWYqIGhlYXBf
cmVmLCBzaXplX3QgYWxpZ25lZF9jb3VudCwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQs
IFwKICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFsbG9jYXRvcl9yZXN1bHQp
IFwKICAgICB7IFwKQEAgLTI0MCwxMyArMjY1LDE2IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9u
X2ltcGwoCiAgICAgXAogICAgIHN0cnVjdCBwYXNfZHVtbXkKIAotdHlwZWRlZiBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCkoCit0
eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Zh
c3RfaW5saW5lX29ubHkpKAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcik7CisK
K3R5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25f
ZmFzdCkoCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBwYXNfc2l6ZV90aHVu
ayBzaXplX3RodW5rLCB2b2lkKiBzaXplX3RodW5rX2FyZywgc2l6ZV90IGFsaWdubWVudCk7CiAK
LXR5cGVkZWYgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2Nh
dGVfY29tbW9uX3Nsb3cpKAordHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5
X2FsbG9jYXRlX2NvbW1vbl9zbG93KSgKICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXpl
X3QgYWxpZ25lZF9jb3VudCwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpOwogCi10eXBl
ZGVmIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2Nv
bW1vbikoCit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVf
Y29tbW9uKSgKICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgYWxpZ25lZF9jb3Vu
dCwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQsCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdCk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2Nh
dGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRp
dmUuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNjUgKzU5LDggQEAgUEFTX0JFR0lOX0VYVEVSTl9D
OwogICAgICAgICAuY29uZmlnX2tpbmQgPSAocGFzc2VkX2NvbmZpZykua2luZCwgXAogICAgIH0K
IAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1
bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190
cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsX21lZGl1bV9zbG93X2Nhc2UoCi0g
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCi0gICAgcGFzX2hlYXAqIGhlYXAsCi0g
ICAgc2l6ZV90IGFsaWduZWRfc2l6ZSwKLSAgICBzaXplX3QgYWxpZ25tZW50LAotICAgIHBhc19o
ZWFwX2NvbmZpZyBjb25maWcsCi0gICAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCB0cnlf
YWxsb2NhdGVfY29tbW9uX2Zhc3QsCi0gICAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fc2xvdyB0
cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3cpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOwotICAgIAotICAgIHNpemVfdCBpbmRleDsKLSAgICB1bnNpZ25lZCBhbGxvY2F0
b3JfaW5kZXg7Ci0gICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yOwotICAg
IHBhc19oZWFwX3JlZiBmYWtlX2hlYXBfcmVmOwotCi0gICAgaW5kZXggPSBwYXNfc2VncmVnYXRl
ZF9oZWFwX2luZGV4X2Zvcl9wcmltaXRpdmVfY291bnQoYWxpZ25lZF9zaXplLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZyk7
Ci0gICAgCi0gICAgYWxsb2NhdG9yX2luZGV4ID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9tZWRpdW1fYWxsb2NhdG9yX2luZGV4X2Zvcl9pbmRleCgKLSAgICAgICAgICAgICZoZWFwLT5z
ZWdyZWdhdGVkX2hlYXAsCi0gICAgICAgICAgICBpbmRleCwKLSAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF93aXRoaW5fc2l6ZV9jbGFz
c19wcm9ncmVzc2lvbiwKLSAgICAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLQotICAg
IGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcigK
LSAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9pbmRleCwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwot
ICAgIAotICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yLmRpZF9zdWNjZWVkIHx8IGFs
bG9jYXRvci5hbGxvY2F0b3ItPm9iamVjdF9zaXplID49IGFsaWduZWRfc2l6ZSk7Ci0gICAgCi0g
ICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQgb3V0IGluIHRoZSBub24tYWxpZ25tZW50
IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFuZAotICAgICAgIGFsaWdubWVudCBiZWlu
ZyB0aGUgY29uc3RhbnQgMS4gKi8KLSAgICBpZiAoYWxpZ25tZW50ICE9IDEgJiYgYWxsb2NhdG9y
LmRpZF9zdWNjZWVkCi0gICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3Jf
YWxpZ25tZW50KGFsbG9jYXRvci5hbGxvY2F0b3IpKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7
Ci0gICAgICAgICAgICBwYXNfbG9nKCJEaXNjYXJkaW5nIGdvb2QgYWxsb2NhdG9yIHJlc3VsdCBi
ZWNhdXNlIGFsaWdubWVudCBpcyBpbmFkZXF1YXRlICIKLSAgICAgICAgICAgICAgICAgICAgIigl
enUsIG5lZWRlZCAlenUpLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yLmFsbG9jYXRvciksIGFsaWdubWVudCk7Ci0gICAgICAg
IH0KLSAgICAgICAgYWxsb2NhdG9yLmRpZF9zdWNjZWVkID0gZmFsc2U7Ci0gICAgfQotICAgIAot
ICAgIGlmIChQQVNfTElLRUxZKGFsbG9jYXRvci5kaWRfc3VjY2VlZCkpIHsKLSAgICAgICAgcmV0
dXJuIHRyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCgKLSAgICAgICAgICAgIGFsbG9jYXRvci5hbGxv
Y2F0b3IsIHBhc190cml2aWFsX3NpemVfdGh1bmssICh2b2lkKilhbGlnbmVkX3NpemUsIGFsaWdu
bWVudCk7Ci0gICAgfQotCi0gICAgZmFrZV9oZWFwX3JlZi50eXBlID0gaGVhcC0+dHlwZTsKLSAg
ICBmYWtlX2hlYXBfcmVmLmhlYXAgPSBoZWFwOwotICAgIGZha2VfaGVhcF9yZWYuYWxsb2NhdG9y
X2luZGV4ID0gVUlOVF9NQVg7Ci0KLSAgICByZXR1cm4gdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93
KCZmYWtlX2hlYXBfcmVmLCBhbGlnbmVkX3NpemUsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsK
LSAgICAKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHQKLXBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsKAog
ICAgIHBhc19oZWFwKiBoZWFwLAogICAgIHNpemVfdCBzaXplLAogICAgIHNpemVfdCBhbGlnbm1l
bnQsCkBAIC0xMjUsOSArNjgsNiBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRp
dmVfaW1wCiAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKICAgICBwYXNfdHJ5X2FsbG9jYXRl
X2NvbW1vbl9mYXN0IHRyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCwKICAgICBwYXNfdHJ5X2FsbG9j
YXRlX2NvbW1vbl9zbG93IHRyeV9hbGxvY2F0ZV9jb21tb25fc2xvdywKLSAgICBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqbWVkaXVtX3Nsb3dfY2FzZSkocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25lZF9zaXplLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
YWxpZ25tZW50KSwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfZGVzaWduYXRpb25fbW9kZSBkZXNp
Z25hdGlvbl9tb2RlKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
QEAgLTE0MSw3ICs4MSw3IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9p
bXAKICAgICBQQVNfQVNTRVJUKGFsaWdubWVudCA9PSAxIHx8ICFkZXNpZ25hdGlvbl9tb2RlKTsK
IAogICAgIGlmICghcGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25tZW50KSkKLSAgICAgICAgcmV0dXJu
IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2VtcHR5KCk7CisgICAgICAg
IHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKIAogICAgIC8q
IEluIHRoZSBub24tbWVtYWxpZ24gY2FzZSwgd2UgY2FuIGhhcHBpbHkgaGFuZGxlIHplcm8tc2l6
ZWQgYWxsb2NhdGlvbnMgd2l0aCBhbGlnbmVkX3NpemUKICAgICAgICBiZWluZyAwLiBUaGlzIHdv
cmtzIGJlY2F1c2UgdGhlIGhlYXAncyAwIHNpemUgY2xhc3MgaXMganVzdCBhIGNvcHkgb2YgdGhl
IG1pbmFsaWduIHNpemUKQEAgLTE2Niw0NCArMTA2LDUzIEBAIHBhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljX3ByaW1pdGl2ZV9pbXAKICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
dHJ5X2dldCgpOwogICAgIGlmIChQQVNfTElLRUxZKGNhY2hlKSkgewogICAgICAgICB1bnNpZ25l
ZCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFs
bG9jYXRvcjsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jl
c3VsdDsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOwogICAgICAgICAK
ICAgICAgICAgZGVzaWduYXRlZF9pbmRleCA9IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
X2Rlc2lnbmF0ZWRfaW5kZXgoCiAgICAgICAgICAgICBpbmRleCwgZGVzaWduYXRpb25fbW9kZSwg
Y29uZmlnKTsKICAgICAgICAgaWYgKFBBU19MSUtFTFkoZGVzaWduYXRlZF9pbmRleC5kaWRfc3Vj
Y2VlZCkpIHsKLSAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVz
dWx0X2NyZWF0ZV9zdWNjZXNzKAorICAgICAgICAgICAgYWxsb2NhdG9yX3Jlc3VsdCA9IHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKAogICAgICAgICAgICAgICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAogICAgICAgICAg
ICAgICAgICAgICBjYWNoZSwKICAgICAgICAgICAgICAgICAgICAgZGVzaWduYXRlZF9pbmRleC5p
bmRleCAqIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9hbGxvY2F0b3JfaW5kaWNl
cyhjb25maWcpKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoUEFTX1VOTElL
RUxZKGluZGV4ID49IFBBU19OVU1fSU5UUklOU0lDX1NJWkVfQ0xBU1NFUykpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIG1lZGl1bV9zbG93X2Nhc2UoY2FjaGUsIGFsaWduZWRfc2l6ZSwgYWxpZ25t
ZW50KTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gaW50cmlu
c2ljX3N1cHBvcnQtPmluZGV4X3RvX2FsbG9jYXRvcl9pbmRleFtpbmRleF07CisgICAgICAgICAg
ICBpZiAoUEFTX1VOTElLRUxZKGluZGV4ID49IFBBU19OVU1fSU5UUklOU0lDX1NJWkVfQ0xBU1NF
UykpIHsKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPQorICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9hbGxvY2F0b3JfaW5kZXhfZm9yX2luZGV4
KAorICAgICAgICAgICAgICAgICAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGluZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3Rvcnlfc2VhcmNoX3dpdGhpbl9zaXplX2Ns
YXNzX3Byb2dyZXNzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfbm90
X2hlbGQpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2lu
ZGV4ID0gaW50cmluc2ljX3N1cHBvcnQtPmluZGV4X3RvX2FsbG9jYXRvcl9pbmRleFtpbmRleF07
CiAgICAgICAgIAogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgcGFz
X2xvZygiYWxsb2NhdG9yX2luZGV4ID0gJXUuXG4iLCBhbGxvY2F0b3JfaW5kZXgpOwogICAgICAg
ICAKLSAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dl
dF9sb2NhbF9hbGxvY2F0b3IoY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7CisgICAgICAgICAgICBh
bGxvY2F0b3JfcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2Nh
dG9yKAorICAgICAgICAgICAgICAgIGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgsIHBhc19sb2NrX2lz
X25vdF9oZWxkKTsKICAgICAgICAgfQogCi0gICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxs
b2NhdG9yLmRpZF9zdWNjZWVkIHx8IGFsbG9jYXRvci5hbGxvY2F0b3ItPm9iamVjdF9zaXplID49
IHNpemUpOworICAgICAgICBhbGxvY2F0b3IgPSAocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2Nh
dG9yX3Jlc3VsdC5hbGxvY2F0b3I7CisKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxv
Y2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkIHx8IGFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxp
Z25lZF9zaXplKTsKICAgICAKICAgICAgICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQg
b3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFu
ZAogICAgICAgICAgICBhbGlnbm1lbnQgYmVpbmcgdGhlIGNvbnN0YW50IDEuICovCi0gICAgICAg
IGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3IuZGlkX3N1Y2NlZWQKLSAgICAgICAgICAg
ICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRvci5h
bGxvY2F0b3IpKSB7CisgICAgICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3JfcmVz
dWx0LmRpZF9zdWNjZWVkCisgICAgICAgICAgICAmJiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxs
b2NhdG9yX2FsaWdubWVudChhbGxvY2F0b3IpKSB7CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkg
ewogICAgICAgICAgICAgICAgIHBhc19sb2coIkRpc2NhcmRpbmcgZ29vZCBhbGxvY2F0b3IgcmVz
dWx0IGJlY2F1c2UgYWxpZ25tZW50IGlzIGluYWRlcXVhdGUgIgogICAgICAgICAgICAgICAgICAg
ICAgICAgIiglenUsIG5lZWRlZCAlenUpLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRvci5hbGxvY2F0b3IpLCBhbGlnbm1l
bnQpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1l
bnQoYWxsb2NhdG9yKSwgYWxpZ25tZW50KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFs
bG9jYXRvci5kaWRfc3VjY2VlZCA9IGZhbHNlOworICAgICAgICAgICAgYWxsb2NhdG9yX3Jlc3Vs
dC5kaWRfc3VjY2VlZCA9IGZhbHNlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKFBBU19MSUtF
TFkoYWxsb2NhdG9yLmRpZF9zdWNjZWVkKSkgeworICAgICAgICBpZiAoUEFTX0xJS0VMWShhbGxv
Y2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkKSkgewogICAgICAgICAgICAgcmV0dXJuIHRyeV9hbGxv
Y2F0ZV9jb21tb25fZmFzdCgKLSAgICAgICAgICAgICAgICBhbGxvY2F0b3IuYWxsb2NhdG9yLCBw
YXNfdHJpdmlhbF9zaXplX3RodW5rLCAodm9pZCopYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQpOwor
ICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFzX3RyaXZpYWxfc2l6ZV90aHVuaywgKHZvaWQq
KWFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjE0LDYg
KzE2Myw5NCBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1wCiAgICAg
cmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb25fc2xvdygmZmFrZV9oZWFwX3JlZiwgYWxpZ25lZF9z
aXplLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCk7CiB9CiAKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKK3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3By
aW1pdGl2ZV9pbXBsX2lubGluZV9vbmx5KAorICAgIHNpemVfdCBzaXplLAorICAgIHNpemVfdCBh
bGlnbm1lbnQsCisgICAgcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQqIGludHJpbnNpY19zdXBw
b3J0LAorICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCisgICAgcGFzX3RyeV9hbGxvY2F0ZV9j
b21tb25fZmFzdF9pbmxpbmVfb25seSB0cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3RfaW5saW5lX29u
bHksCisgICAgcGFzX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0aW9uX21vZGUgZGVzaWduYXRpb25f
bW9kZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisg
ICAgc2l6ZV90IGFsaWduZWRfc2l6ZTsKKyAgICBzaXplX3QgaW5kZXg7CisgICAgcGFzX2Rlc2ln
bmF0ZWRfaW5kZXhfcmVzdWx0IGRlc2lnbmF0ZWRfaW5kZXg7CisgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogY2FjaGU7CisgICAgdW5zaWduZWQgYWxsb2NhdG9yX2luZGV4OworICAgIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFsbG9jYXRvcl9yZXN1bHQ7CisgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yOworCisgICAgUEFTX0FTU0VSVChhbGlnbm1lbnQgPT0gMSB8fCAh
ZGVzaWduYXRpb25fbW9kZSk7CisKKyAgICBpZiAoIXBhc19pc19wb3dlcl9vZl8yKGFsaWdubWVu
dCkpCisgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUo
KTsKKworICAgIC8qIEluIHRoZSBub24tbWVtYWxpZ24gY2FzZSwgd2UgY2FuIGhhcHBpbHkgaGFu
ZGxlIHplcm8tc2l6ZWQgYWxsb2NhdGlvbnMgd2l0aCBhbGlnbmVkX3NpemUKKyAgICAgICBiZWlu
ZyAwLiBUaGlzIHdvcmtzIGJlY2F1c2UgdGhlIGhlYXAncyAwIHNpemUgY2xhc3MgaXMganVzdCBh
IGNvcHkgb2YgdGhlIG1pbmFsaWduIHNpemUKKyAgICAgICBjbGFzcy4gQnV0IHdlIGNhbm5vdCBk
byB0aGlzIHByb3Blcmx5IGlmIHRoZSAwIHNpemUgY2xhc3MgaGFzIHRvIGhhdmUgc29tZSBhbGln
bm1lbnQuIFRoYXQncworICAgICAgIGJlY2F1c2Ugd2UgZXhwZWN0IHRoYXQgZm9yIGEgc2l6ZSBj
bGFzcyB0byBzYXRpc2Z5IHNvbWUgYWxpZ25tZW50LCB0aGF0IHNpemUgbXVzdCBpdHNlbGYKKyAg
ICAgICBiZSBhbGlnbmVkIHRvIHRoYXQgYWxpZ25tZW50LiAqLworICAgIGlmIChhbGlnbm1lbnQg
PT0gMSkKKyAgICAgICAgYWxpZ25lZF9zaXplID0gc2l6ZTsKKyAgICBlbHNlIGlmIChzaXplIDwg
YWxpZ25tZW50KQorICAgICAgICBhbGlnbmVkX3NpemUgPSBhbGlnbm1lbnQ7CisgICAgZWxzZQor
ICAgICAgICBhbGlnbmVkX3NpemUgPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihzaXplLCBh
bGlnbm1lbnQpOworICAgIAorICAgIGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9m
b3JfcHJpbWl0aXZlX2NvdW50KGFsaWduZWRfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcpOworCisgICAgaWYgKHZl
cmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygiYWxpZ25lZF9zaXplID0gJXp1LCBpbmRleCA9ICV6
dSwgYWxpZ25tZW50ID0gJXp1LlxuIiwKKyAgICAgICAgICAgICAgICBhbGlnbmVkX3NpemUsIGlu
ZGV4LCBhbGlnbm1lbnQpOworICAgIH0KKworICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV90cnlfZ2V0KCk7CisgICAgaWYgKFBBU19VTkxJS0VMWSghY2FjaGUpKQorICAgICAgICBy
ZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAgCisgICAg
ZGVzaWduYXRlZF9pbmRleCA9IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0
ZWRfaW5kZXgoCisgICAgICAgIGluZGV4LCBkZXNpZ25hdGlvbl9tb2RlLCBjb25maWcpOworICAg
IGlmIChQQVNfTElLRUxZKGRlc2lnbmF0ZWRfaW5kZXguZGlkX3N1Y2NlZWQpKSB7CisgICAgICAg
IGFsbG9jYXRvcl9yZXN1bHQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3Vj
Y2VzcygKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9j
YXRvcl9pbXBsKAorICAgICAgICAgICAgICAgIGNhY2hlLAorICAgICAgICAgICAgICAgIGRlc2ln
bmF0ZWRfaW5kZXguaW5kZXggKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fYWxs
b2NhdG9yX2luZGljZXMoY29uZmlnKSkpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChQQVNf
VU5MSUtFTFkoaW5kZXggPj0gUEFTX05VTV9JTlRSSU5TSUNfU0laRV9DTEFTU0VTKSkKKyAgICAg
ICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKyAg
ICAgICAgCisgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IGludHJpbnNpY19zdXBwb3J0LT5pbmRl
eF90b19hbGxvY2F0b3JfaW5kZXhbaW5kZXhdOworICAgICAgICAKKyAgICAgICAgaWYgKHZlcmJv
c2UpCisgICAgICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3JfaW5kZXggPSAldS5cbiIsIGFsbG9j
YXRvcl9pbmRleCk7CisgICAgICAgIAorICAgICAgICBhbGxvY2F0b3JfcmVzdWx0ID0gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcihjYWNoZSwgYWxsb2NhdG9y
X2luZGV4KTsKKyAgICB9CisgICAgCisgICAgaWYgKFBBU19VTkxJS0VMWSghYWxsb2NhdG9yX3Jl
c3VsdC5kaWRfc3VjY2VlZCkpCisgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
Y3JlYXRlX2ZhaWx1cmUoKTsKKyAgICAKKyAgICBhbGxvY2F0b3IgPSAocGFzX2xvY2FsX2FsbG9j
YXRvciopYWxsb2NhdG9yX3Jlc3VsdC5hbGxvY2F0b3I7CisgICAgCisgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKCFhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkIHx8IGFsbG9jYXRvci0+b2JqZWN0
X3NpemUgPj0gYWxpZ25lZF9zaXplKTsKKyAgICAKKyAgICAvKiBUaGlzIHNob3VsZCBiZSBzcGVj
aWFsaXplZCBvdXQgaW4gdGhlIG5vbi1hbGlnbm1lbnQgY2FzZSBiZWNhdXNlIG9mIEFMV0FZU19J
TkxJTkUgYW5kCisgICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25zdGFudCAxLiAqLworICAg
IGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2Fs
aWdubWVudChhbGxvY2F0b3IpKSB7CisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAg
ICBwYXNfbG9nKCJEaXNjYXJkaW5nIGdvb2QgYWxsb2NhdG9yIHJlc3VsdCBiZWNhdXNlIGFsaWdu
bWVudCBpcyBpbmFkZXF1YXRlICIKKyAgICAgICAgICAgICAgICAgICAgIiglenUsIG5lZWRlZCAl
enUpLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1l
bnQoYWxsb2NhdG9yKSwgYWxpZ25tZW50KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAgfQorICAgIAorICAgIHJl
dHVybiB0cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3RfaW5saW5lX29ubHkoYWxsb2NhdG9yKTsKK30K
KwogI2RlZmluZSBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUSVZFKG5h
bWUsIGhlYXBfY29uZmlnLCBydW50aW1lX2NvbmZpZywgYWxsb2NhdG9yX2NvdW50cywgcmVzdWx0
X2ZpbHRlciwgaGVhcCwgaGVhcF9zdXBwb3J0LCBkZXNpZ25hdGlvbl9tb2RlKSBcCiAgICAgUEFT
X0NSRUFURV9UUllfQUxMT0NBVEVfQ09NTU9OKCBcCiAgICAgICAgIG5hbWUgIyMgX2ltcGwsIFwK
QEAgLTIyNCwzNSArMjYxLDUwIEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2
ZV9pbXAKICAgICAgICAgcGFzX2ZvcmNlX2NvdW50X2xvb2t1cCwgXAogICAgICAgICAocmVzdWx0
X2ZpbHRlcikpOyBcCiAgICAgXAotICAgIHN0YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgXAotICAgIG5hbWUgIyMgX21lZGl1bV9zbG93X2Nhc2Uo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsIHNpemVfdCBhbGlnbmVkX3NpemUsIHNpemVf
dCBhbGlnbm1lbnQpIFwKKyAgICBzdGF0aWMgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlv
bl9yZXN1bHQgXAorICAgIG5hbWUgIyMgX21lZGl1bV9zbG93X2Nhc2Uoc2l6ZV90IHNpemUsIHNp
emVfdCBhbGlnbm1lbnQpIFwKICAgICB7IFwKICAgICAgICAgcmV0dXJuIHBhc190cnlfYWxsb2Nh
dGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsX21lZGl1bV9zbG93X2Nhc2UoIFwKLSAgICAgICAg
ICAgIGNhY2hlLCAoaGVhcCksIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9jb25maWcp
LCBcCi0gICAgICAgICAgICBuYW1lICMjIF9pbXBsX2Zhc3QsIG5hbWUgIyMgX2ltcGxfc2xvdyk7
IFwKKyAgICAgICAgICAgIChoZWFwKSwgc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9zdXBwb3J0KSwg
KGhlYXBfY29uZmlnKSwgXAorICAgICAgICAgICAgbmFtZSAjIyBfaW1wbF9mYXN0LCBuYW1lICMj
IF9pbXBsX3Nsb3csIChkZXNpZ25hdGlvbl9tb2RlKSk7IFwKICAgICB9IFwKICAgICBcCi0gICAg
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQg
bmFtZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkgXAorICAgIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZSAjIyBfaW5saW5lX29ubHkoc2l6
ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKICAgICB7IFwKLSAgICAgICAgcmV0dXJuIHBh
c190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsKCBcCi0gICAgICAgICAgICAo
aGVhcCksIHNpemUsIGFsaWdubWVudCwgKGhlYXBfc3VwcG9ydCksIChoZWFwX2NvbmZpZyksIFwK
LSAgICAgICAgICAgIG5hbWUgIyMgX2ltcGxfZmFzdCwgbmFtZSAjIyBfaW1wbF9zbG93LCBuYW1l
ICMjIF9tZWRpdW1fc2xvd19jYXNlLCBcCi0gICAgICAgICAgICAoZGVzaWduYXRpb25fbW9kZSkp
OyBcCisgICAgICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVf
aW1wbF9pbmxpbmVfb25seSggXAorICAgICAgICAgICAgc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9z
dXBwb3J0KSwgKGhlYXBfY29uZmlnKSwgXAorICAgICAgICAgICAgbmFtZSAjIyBfaW1wbF9mYXN0
X2lubGluZV9vbmx5LCAoZGVzaWduYXRpb25fbW9kZSkpOyBcCisgICAgfSBcCisgICAgXAorICAg
IHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZShzaXpl
X3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkgXAorICAgIHsgXAorICAgICAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7IFwKKyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0
IHJlc3VsdDsgXAorICAgICAgICByZXN1bHQgPSBuYW1lICMjIF9pbmxpbmVfb25seShzaXplLCBh
bGlnbm1lbnQpOyBcCisgICAgICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkp
IHsgXAorICAgICAgICAgICAgaWYgKHZlcmJvc2UpIFwKKyAgICAgICAgICAgICAgICBwYXNfbG9n
KCJSZXR1cm5pbmcgc3VjY2Vzc2Z1bCByZXN1bHQgKGJlZ2luID0gJXApXG4iLCAodm9pZCopcmVz
dWx0LmJlZ2luKTsgXAorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsgXAorICAgICAgICB9IFwK
KyAgICAgICAgcmV0dXJuIG5hbWUgIyMgX21lZGl1bV9zbG93X2Nhc2Uoc2l6ZSwgYWxpZ25tZW50
KTsgXAogICAgIH0gXAogICAgIFwKLSAgICBzdGF0aWMgUEFTX1VOVVNFRCBQQVNfTkVWRVJfSU5M
SU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIHN0YXRpYyBQQVNfVU5V
U0VEIFBBU19ORVZFUl9JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBuYW1lICMj
IF9mb3JfcmVhbGxvYyhzaXplX3Qgc2l6ZSkgXAogICAgIHsgXAotICAgICAgICByZXR1cm4gbmFt
ZShzaXplLCAxKTsgXAorICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
IFwKKyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCA9IG5hbWUoc2l6ZSwgMSk7
IFwKKyAgICAgICAgaWYgKHZlcmJvc2UpIFwKKyAgICAgICAgICAgIHBhc19sb2coInJlc3VsdC5i
ZWdpbiA9ICVwXG4iLCByZXN1bHQuYmVnaW4pOyBcCisgICAgICAgIHJldHVybiByZXN1bHQ7IFwK
ICAgICB9IFwKICAgICBcCiAgICAgc3RydWN0IHBhc19kdW1teQogCi10eXBlZGVmIHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmlt
aXRpdmUpKHNpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25t
ZW50KTsKK3R5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9p
bnRyaW5zaWNfcHJpbWl0aXZlKShzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxp
Z25tZW50KTsKIAotdHlwZWRlZiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci0oKnBh
c190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9mb3JfcmVhbGxvYykoc2l6ZV90IHNp
emUpOyAgICAgICAKK3R5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxv
Y2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2Zvcl9yZWFsbG9jKShzaXplX3Qgc2l6ZSk7CiAKIFBB
U19FTkRfRVhURVJOX0M7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaAkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9h
bGxvY2F0ZV9wcmltaXRpdmUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTQgKzMwLDE0IEBACiAj
aW5jbHVkZSAicGFzX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNs
dWRlICJwYXNfaGVhcF9sb2NrLmgiCi0jaW5jbHVkZSAicGFzX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdC5oIgorI2luY2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIgogI2luY2x1ZGUg
InBhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19waHlzaWNhbF9t
ZW1vcnlfdHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmgi
CiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNf
YWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFzX3By
aW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
YWxpZ25tZW50LApAQCAtNTMsNyArNTMsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9p
bXBsKHBhc19wcmltCiAgICAgc2l6ZV90IGluZGV4OwogICAgIAogICAgIGlmICghcGFzX2lzX3Bv
d2VyX29mXzIoYWxpZ25tZW50KSkKLSAgICAgICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3JlYXRlX2VtcHR5KCk7CisgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAKICAgICBhbGlnbmVkX3NpemUgPSBwYXNf
cm91bmRfdXBfdG9fcG93ZXJfb2ZfMihzaXplLCBhbGlnbm1lbnQpOwogICAgIApAQCAtOTIsNyAr
OTIsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKHBhc19wcmltCiAgICAgLyog
VGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQgb3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNhc2Ug
YmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFuZAogICAgICAgIGFsaWdubWVudCBiZWluZyB0aGUg
Y29uc3RhbnQgMS4gKi8KICAgICBpZiAoYWxpZ25tZW50ICE9IDEgJiYgYWxsb2NhdG9yLmRpZF9z
dWNjZWVkCi0gICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25t
ZW50KGFsbG9jYXRvci5hbGxvY2F0b3IpKQorICAgICAgICAmJiBhbGlnbm1lbnQgPiBwYXNfbG9j
YWxfYWxsb2NhdG9yX2FsaWdubWVudCgocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yLmFs
bG9jYXRvcikpCiAgICAgICAgIGFsbG9jYXRvci5kaWRfc3VjY2VlZCA9IGZhbHNlOwogCiAgICAg
cmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb24oJmhlYXBfcmVmLT5iYXNlLCBhbGlnbmVkX3NpemUs
IGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LCBhbGxvY2F0b3IpOwpAQCAtMTA4LDcgKzEwOCw3IEBA
IHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFzX3ByaW0KICAgICAgICAgcGFzX2F2
b2lkX2NvdW50X2xvb2t1cCwgXAogICAgICAgICAocmVzdWx0X2ZpbHRlcikpOyBcCiAgICAgXAot
ICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0IG5hbWUoIFwKKyAgICBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25f
cmVzdWx0IG5hbWUoIFwKICAgICAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYs
IFwKICAgICAgICAgc2l6ZV90IHNpemUsIFwKICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkgXApA
QCAtMTE3LDcgKzExNyw3IEBAIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFzX3By
aW0KICAgICAgICAgICAgIGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQsIChoZWFwX2NvbmZpZyks
IChydW50aW1lX2NvbmZpZyksIG5hbWUgIyMgX2ltcGwpOyBcCiAgICAgfSBcCiAgICAgXAotICAg
IHN0YXRpYyBQQVNfVU5VU0VEIFBBU19ORVZFUl9JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdCBuYW1lICMjIF9mb3JfcmVhbGxvYyggXAorICAgIHN0YXRpYyBQQVNfVU5VU0VE
IFBBU19ORVZFUl9JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IG5hbWUgIyMgX2Zvcl9yZWFs
bG9jKCBcCiAgICAgICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qg
c2l6ZSkgXAogICAgIHsgXAogICAgICAgICByZXR1cm4gbmFtZShoZWFwX3JlZiwgc2l6ZSwgMSk7
IFwKQEAgLTEyNSwxMCArMTI1LDEwIEBAIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwo
cGFzX3ByaW0KICAgICBcCiAgICAgc3RydWN0IHBhc19kdW1teQogCi10eXBlZGVmIHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZSkoCit0
eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZl
KSgKICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNp
emVfdCBhbGlnbm1lbnQpOwogCi10eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1
bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9mb3JfcmVhbGxvYykoCit0eXBlZGVmIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2Zvcl9yZWFs
bG9jKSgKICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUp
OwogCiBQQVNfRU5EX0VYVEVSTl9DOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFBBU19UUllfUkVBTExP
Q0FURV9ICiAjZGVmaW5lIFBBU19UUllfUkVBTExPQ0FURV9ICiAKLSNpbmNsdWRlICJwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5o
IgogI2luY2x1ZGUgInBhc19kZWFsbG9jYXRlLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX21hcC5o
IgogI2luY2x1ZGUgInBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZS5oIgpAQCAtNTQsNiArNTQsOCBA
QCBwYXNfdHJ5X2FsbG9jYXRlX2Zvcl9yZWFsbG9jYXRlX2FuZF9jb3B5CiAgICAgcGFzX3RyeV9y
ZWFsbG9jYXRlX2FsbG9jYXRlX2NhbGxiYWNrIGFsbG9jYXRlX2NhbGxiYWNrLAogICAgIHZvaWQq
IGFsbG9jYXRlX2NhbGxiYWNrX2FyZykKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CisgICAgCiAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsK
IAogICAgIC8qIElmIGhlYXBzIGFyZSBiYXNlZCBvbiBzb21lIHJpZ29yb3VzIG5vdGlvbiBvZiB0
eXBlLCB0aGVuIHdlIHNob3VsZCBkaXNhbGxvdyBoZWFwCkBAIC05MSw2ICs5Myw4IEBAIHBhc190
cnlfYWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVfYW5kX2NvcHkKICAgICByZXN1bHQgPSBhbGxvY2F0
ZV9jYWxsYmFjayh0YXJnZXRfaGVhcCwgbmV3X2NvdW50LCBhbGxvY2F0ZV9jYWxsYmFja19hcmcp
OwogICAgIAogICAgIGlmIChyZXN1bHQucHRyKSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgcGFzX2xvZygicmVzdWx0LnB0ciA9ICVwXG4iLCByZXN1bHQucHRyKTsKICAgICAg
ICAgLyogRklYTUU6IFdlIG5lZWQgdG8gYWN0dWFsbHkgYmUgcm91bmRpbmcgZG93biB0aGUgb2xk
IHNpemUgdG8gb3VyCiAgICAgICAgICAgIHR5cGUgc2l6ZS4gVG8gZG8gdGhhdCB3ZSdkIHdhbnQg
dGhlIHR5cGVkIGFsbG9jYXRpb24gcmVzdWx0IHRvCiAgICAgICAgICAgIGdpdmUgdXMgdGhlIHR5
cGUgc2l6ZS4gRm9yIHByaW1pdGl2ZSBhbGxvY2F0aW9ucywgaXQgd291bGQKQEAgLTEzMyw3ICsx
MzcsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfdGFibGVfc2VncmVnYXRlZF9jYXNlCiAgICAgICAg
IGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBf
dGVsZXBvcnQ6IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3Rvcnk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnk7CiAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2RpcmVj
dG9yeV9mb3JfYWRkcmVzc19pbl9wYWdlKAogICAgICAgICAgICAgcGFnZSwgYmVnaW4sIHNlZ3Jl
Z2F0ZWRfY29uZmlnKTsKICAgICAgICAgb2xkX3NpemUgPSBkaXJlY3RvcnktPm9iamVjdF9zaXpl
OwpAQCAtMTc1LDkgKzE3OSw5IEBAIHBhc190cnlfcmVhbGxvY2F0ZV90YWJsZV9iaXRmaXRfY2Fz
ZShwYXMKICAgICAgICAgCiAgICAgY2FzZSBwYXNfcmVhbGxvY2F0ZV9kaXNhbGxvd19oZWFwX3Rl
bGVwb3J0OgogICAgICAgICBvbGRfaGVhcCA9IHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAo
Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9h
ZF9ub25fbnVsbCgKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRy
X2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAgICAgJnBhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfdmlld19wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAgICAgJnBhZ2UtPm93
bmVyKS0+Z2xvYmFsX2RpcmVjdG9yeSktPmhlYXApOworICAgICAgICAgICAgICAgICAgICAmcGFn
ZS0+b3duZXIpLT5kaXJlY3RvcnkpLT5oZWFwKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAg
IApAQCAtMjE3LDcgKzIyMSw3IEBAIHBhc190cnlfcmVhbGxvY2F0ZSh2b2lkKiBvbGRfcHRyLAog
ICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBwYXNfcmVhbGxvY2F0ZV9kaXNhbGxv
d19oZWFwX3RlbGVwb3J0OiB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVn
YXRlZF9wYWdlX2dldF9kaXJlY3RvcnlfZm9yX2FkZHJlc3NfYW5kX3BhZ2VfY29uZmlnKAogICAg
ICAgICAgICAgICAgIGJlZ2luLCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpOwogICAg
ICAgICAgICAgb2xkX3NpemUgPSBkaXJlY3RvcnktPm9iamVjdF9zaXplOwpAQCAtMjQ5LDkgKzI1
Myw5IEBAIHBhc190cnlfcmVhbGxvY2F0ZSh2b2lkKiBvbGRfcHRyLAogCiAgICAgICAgIGNhc2Ug
cGFzX3JlYWxsb2NhdGVfZGlzYWxsb3dfaGVhcF90ZWxlcG9ydDoKICAgICAgICAgICAgIG9sZF9o
ZWFwID0gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0ZWRfaGVhcCgKLSAgICAgICAgICAgICAgICBwYXNf
Y29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAg
ICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KAogICAgICAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0
cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICAgICAgICAgJnBhZ2UtPm93bmVyKS0+
Z2xvYmFsX2RpcmVjdG9yeSktPmhlYXApOworICAgICAgICAgICAgICAgICAgICAgICAgJnBhZ2Ut
Pm93bmVyKS0+ZGlyZWN0b3J5KS0+aGVhcCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICAKQEAgLTM4NCw3ICszODgsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmlu
c2ljX3ByaW1pdGl2ZV9hCiAgICAgICAgIG5ld19jb3VudCk7CiB9CiAKLXN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0CitzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50
cmluc2ljX3ByaW1pdGl2ZSgKICAgICB2b2lkKiBvbGRfcHRyLAogICAgIHBhc19oZWFwKiBoZWFw
LApAQCAtNTIzLDE5ICs1MjcsMjcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZV9hbGxv
Y2F0ZV9jYQogICAgIHNpemVfdCBuZXdfY291bnQsCiAgICAgdm9pZCogYXJnKQogeworICAgIHN0
YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKICAgICBwYXNfdHJ5X3JlYWxs
b2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRlX2RhdGEqIGRhdGE7CisgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0IHJlc3VsdDsKIAogICAgIFBBU19VTlVTRURfUEFSQU0oaGVhcCk7CiAgICAgCiAgICAg
ZGF0YSA9IChwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRlX2RhdGEqKWFyZzsK
KworICAgIHJlc3VsdCA9IGRhdGEtPnRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoZGF0YS0+aGVhcF9y
ZWYsIG5ld19jb3VudCk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiaW4g
cmVhbGxvYyAtIHJlc3VsdC5iZWdpbiA9ICVwXG4iLCAodm9pZCopcmVzdWx0LmJlZ2luKTsKICAg
ICAKICAgICByZXR1cm4gcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgKLSAgICAgICAgZGF0YS0+dHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZShkYXRhLT5oZWFwX3JlZiwgbmV3X2NvdW50KSwKKyAgICAgICAgcmVzdWx0LAogICAg
ICAgICBOVUxMLAogICAgICAgICBuZXdfY291bnQpOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2
ZSgKICAgICB2b2lkKiBvbGRfcHRyLAogICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBf
cmVmLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3R5cGVkX2Fs
bG9jYXRpb25fcmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0LmgJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190eXBlZF9hbGxvY2F0aW9u
X3Jlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFBBU19U
WVBFRF9BTExPQ0FUSU9OX1JFU1VMVF9ICiAjZGVmaW5lIFBBU19UWVBFRF9BTExPQ0FUSU9OX1JF
U1VMVF9ICiAKLSNpbmNsdWRlICJwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmgiCisj
aW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgi
CiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKQEAgLTcxLDEyICs3MSwxMiBAQCBwYXNfdHlwZWRfYWxs
b2NhdGlvbl9yZXN1bHRfY3JlYXRlKHBhc19oCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190eXBlZF9h
bGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQoCiAgICAgcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IGludGVybmFsX3Jlc3VsdCkKIHsKLSAgICBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKLSAgICByZXN1bHQucHRyID0gaW50ZXJu
YWxfcmVzdWx0LnB0cjsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgIHJl
c3VsdC5iZWdpbiA9ICh1aW50cHRyX3QpaW50ZXJuYWxfcmVzdWx0LnB0cjsKICAgICByZXN1bHQu
ZGlkX3N1Y2NlZWQgPSBpbnRlcm5hbF9yZXN1bHQuZGlkX3N1Y2NlZWQ7CiAgICAgcmVzdWx0Lnpl
cm9fbW9kZSA9IGludGVybmFsX3Jlc3VsdC56ZXJvX21vZGU7CiAgICAgcmV0dXJuIHJlc3VsdDsK
QEAgLTg0LDEzICs4NCwxMyBAQCBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfaW50cmlu
c2ljCiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1
bHQKIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQoCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBpbnRy
aW5zaWNfcmVzdWx0LAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBpbnRyaW5zaWNfcmVzdWx0
LAogICAgIHBhc19oZWFwX3R5cGUqIHR5cGUsCiAgICAgc2l6ZV90IHNpemUpCiB7CiAgICAgcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKICAgICByZXN1bHQudHlwZSA9IHR5cGU7
Ci0gICAgcmVzdWx0LnB0ciA9IGludHJpbnNpY19yZXN1bHQucHRyOworICAgIHJlc3VsdC5wdHIg
PSAodm9pZCopaW50cmluc2ljX3Jlc3VsdC5iZWdpbjsKICAgICByZXN1bHQuc2l6ZSA9IHNpemU7
CiAgICAgcmVzdWx0LmRpZF9zdWNjZWVkID0gaW50cmluc2ljX3Jlc3VsdC5kaWRfc3VjY2VlZDsK
ICAgICByZXN1bHQuemVyb19tb2RlID0gaW50cmluc2ljX3Jlc3VsdC56ZXJvX21vZGU7CkBAIC0x
MDAsNyArMTAwLDcgQEAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoXwog
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdAogcGFz
X3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3plcm8ocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
IHJlc3VsdCkKIHsKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisg
ICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIHBhc190eXBlZF9hbGxvY2F0
aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQocmVzdWx0KSwKICAgICAg
ICAgcmVzdWx0LnNpemUpOwogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMDksNyArMTA5LDcgQEAg
cGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3plcm8ocGFzX3R5cAogc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3R5cGVkX2FsbG9jYXRp
b25fcmVzdWx0X3NldF9lcnJubyhwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQog
ewotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKAorICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8oCiAgICAgICAgIHBhc190eXBlZF9hbGxvY2F0
aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQocmVzdWx0KSk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTExNyw3ICsxMTcsNyBAQCBwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHRfc2V0X2Vycm5vKHBhCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVk
X2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25f
ZXJyb3IocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKIHsKLSAgICBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKAorICAgIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcigKICAgICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdChyZXN1bHQpKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3V0aWxpdHlfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc191dGlsaXR5X2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5jCSh3b3JraW5nIGNvcHkp
CkBAIC00MiwxNCArNDIsMTIgQEAgcGFzX2hlYXBfcnVudGltZV9jb25maWcgcGFzX3V0aWxpdHlf
aGVhcAogICAgIC5zaGFyaW5nX21vZGUgPSBwYXNfc2hhcmVfcGFnZXMsCiAgICAgLnN0YXRpY2Fs
bHlfYWxsb2NhdGVkID0gdHJ1ZSwKICAgICAuaXNfcGFydF9vZl9oZWFwID0gZmFsc2UsCi0gICAg
LmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzID0KLSAgICAgICAgUEFTX1VU
SUxJVFlfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MsCi0gICAgLmRpcmVjdG9yeV9zaXplX2JvdW5k
X2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0KLSAgICAgICAgUEFTX1VUSUxJVFlfQk9VTkRfRk9S
X0JBU0VMSU5FX0FMTE9DQVRPUlMsCi0gICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0K
LSAgICAgICAgUEFTX1VUSUxJVFlfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUsCi0gICAgLm1h
eF9iaXRmaXRfb2JqZWN0X3NpemUgPQotICAgICAgICBQQVNfVVRJTElUWV9NQVhfQklURklUX09C
SkVDVF9TSVpFCisgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzID0g
UEFTX1VUSUxJVFlfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MsCisgICAgLmRpcmVjdG9yeV9zaXpl
X2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0gUEFTX1VUSUxJVFlfQk9VTkRfRk9SX0JB
U0VMSU5FX0FMTE9DQVRPUlMsCisgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3
X2NhY2hlID0gUEFTX1VUSUxJVFlfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUsCisgICAgLm1heF9z
ZWdyZWdhdGVkX29iamVjdF9zaXplID0gUEFTX1VUSUxJVFlfTUFYX1NFR1JFR0FURURfT0JKRUNU
X1NJWkUsCisgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBQQVNfVVRJTElUWV9NQVhfQklU
RklUX09CSkVDVF9TSVpFLAorICAgIC52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6
ZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eQogfTsK
IAogcGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNfdXRpbGl0eV9zZWdyZWdhdGVkX2hlYXAgPSB7CkBA
IC0xMDUsMTMgKzEwMywxNCBAQCB2b2lkKiBwYXNfdXRpbGl0eV9oZWFwX3RyeV9hbGxvY2F0ZV93
aXRoCiAKICAgICBpZiAocGFzX2xvY2FsX2FsbG9jYXRvcl9pc19udWxsKGFsbG9jYXRvcikKICAg
ICAgICAgfHwgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2Nh
dG9yKSkgewotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKICAgICAgICAgCiAgICAgICAgIHBhc191dGlsaXR5X2hlYXBfc3VwcG9ydF9pbnN0YW5jZS5z
bG93X3BhdGhfY291bnQrKzsKIAogICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9o
ZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQoCiAgICAgICAgICAgICAmcGFzX3V0
aWxpdHlfc2VncmVnYXRlZF9oZWFwLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCwKLSAgICAgICAg
ICAgIHBhc19mb3JjZV9jb3VudF9sb29rdXAsICZwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZywgTlVM
TCk7CisgICAgICAgICAgICBwYXNfZm9yY2VfY291bnRfbG9va3VwLCAmcGFzX3V0aWxpdHlfaGVh
cF9jb25maWcsIE5VTEwsCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9mdWxsX2NyZWF0aW9uX21vZGUpOwogCiAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5KTsK
IApAQCAtMTI0LDcgKzEyMyw4IEBAIHZvaWQqIHBhc191dGlsaXR5X2hlYXBfdHJ5X2FsbG9jYXRl
X3dpdGgKICAgICAgICAgKHZvaWQqKWFsaWduZWRfc2l6ZSwKICAgICAgICAgYWxpZ25tZW50LAog
ICAgICAgICBQQVNfVVRJTElUWV9IRUFQX0NPTkZJRywKLSAgICAgICAgJnBhc191dGlsaXR5X2Fs
bG9jYXRvcl9jb3VudHMpLmJlZ2luOworICAgICAgICAmcGFzX3V0aWxpdHlfYWxsb2NhdG9yX2Nv
dW50cywKKyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KS5iZWdpbjsKIAog
ICAgIHBhc19kaWRfYWxsb2NhdGUocmVzdWx0LCBzaXplLCBwYXNfdXRpbGl0eV9oZWFwX2tpbmQs
IG5hbWUsIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAKQEAgLTE2Niw3ICsxNjYsOSBAQCB2b2lk
IHBhc191dGlsaXR5X2hlYXBfZGVhbGxvY2F0ZSh2b2lkKiBwCiAKICAgICBiZWdpbiA9ICh1aW50
cHRyX3QpcHRyOwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlKGJlZ2luLCBO
VUxMLCBQQVNfVVRJTElUWV9IRUFQX0NPTkZJRy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7Cisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlKAorICAgICAgICBiZWdpbiwgTlVMTCwg
cGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2RpcmVjdF9tb2RlLCBOVUxMLAorICAgICAgICBQ
QVNfVVRJTElUWV9IRUFQX0NPTkZJRy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7CiB9CiAKIHNp
emVfdCBwYXNfdXRpbGl0eV9oZWFwX2dldF9udW1fZnJlZV9ieXRlcyh2b2lkKQpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXAu
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3V0aWxpdHlfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMCArMzgsMTAgQEAgUEFT
X0JFR0lOX0VYVEVSTl9DOwogCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9wYWdlOwotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYg
c3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYg
c3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKLXR5cGVkZWYg
c3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIAogLyogVGhlIHV0
aWxpdHkgaGVhcCBpcyBmb3IgYWxsb2NhdGluZyBoaWdoIHZvbHVtZXMgb2Ygc21hbGwgb2JqZWN0
cyBhcyBwYXJ0IG9mIGJvb2trZWVwaW5nIGZvcgogICAgdGhlIGhlYXBzIHRoYXQgbGlicGFzIGFj
dHVhbGx5IHByb3ZpZGVzLiBJdCBjYW4gb25seSBoYW5kbGUgb2JqZWN0cyB1cCB0byBzb21lIHNp
emUgKHJvdWdobHkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191
dGlsaXR5X2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25m
aWcuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNyArNjIsNyBAQCBQQVNfQVBJIHZvaWQqIHBhc191
dGlsaXR5X2hlYXBfYWxsb2NhdGVfCiAKIHN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5KgogcGFzX3V0aWxpdHlfaGVhcF9zaGFyZWRfcGFnZV9kaXJlY3Rv
cnlfc2VsZWN0b3IocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkK
IHsKICAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOwogICAgIFBBU19VTlVTRURfUEFSQU0oZGly
ZWN0b3J5KTsKQEAgLTEyNiw2ICsxMjYsNyBAQCBQQVNfQVBJIGJvb2wgcGFzX3V0aWxpdHlfaGVh
cF9jb25maWdfZm9yCiAgICAgICAgICAgICAudXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBB
U19BUk02NCwgXAogICAgICAgICAgICAgLmNoZWNrX2RlYWxsb2NhdGlvbiA9IGZhbHNlLCBcCiAg
ICAgICAgICAgICAuZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0g
ZmFsc2UsIFwKKyAgICAgICAgICAgIC5lbmFibGVfdmlld19jYWNoZSA9IGZhbHNlLCBcCiAgICAg
ICAgICAgICAuc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yID0gcGFzX3V0aWxpdHlfaGVh
cF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IsIFwKICAgICAgICAgICAgIFBBU19TRUdS
RUdBVEVEX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OUyhwYXNfdXRpbGl0eV9oZWFwX3BhZ2Vf
Y29uZmlnKSBcCiAgICAgICAgIH0sIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc191dGlsaXR5X2hlYXBfc3VwcG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfc3VwcG9ydC5oCShyZXZp
c2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRp
bGl0eV9oZWFwX3N1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCB0eXBl
ZGVmIHN0cnVjdCBwYXNfdXRpbGl0eV9oZWFwX3N1cHBvcnQgCiB0eXBlZGVmIHVuaW9uIHBhc191
dGlsaXR5X2hlYXBfYWxsb2NhdG9yIHBhc191dGlsaXR5X2hlYXBfYWxsb2NhdG9yOwogCiBzdHJ1
Y3QgcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0IHsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyCisgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyCiAgICAgICAgIGluZGV4X3RvX3NpemVfZGly
ZWN0b3J5W1BBU19OVU1fVVRJTElUWV9TSVpFX0NMQVNTRVNdOwogICAgIHBhc191dGlsaXR5X2hl
YXBfYWxsb2NhdG9yKiBhbGxvY2F0b3JzOwogICAgIHVpbnQ2NF90IHNsb3dfcGF0aF9jb3VudDsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCShy
ZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
dXRpbHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzg4LDYgKzM4OCwxMSBAQCBzdGF0aWMgaW5saW5l
IHVuc2lnbmVkIHBhc19sb2cyX3JvdW5kZWRfCiAgICAgcmV0dXJuIHBhc19sb2cyX3JvdW5kZWRf
dXAodmFsdWUpOwogfQogCitzdGF0aWMgaW5saW5lIHVpbnRwdHJfdCBwYXNfcm91bmRfdXBfdG9f
bmV4dF9wb3dlcl9vZl8yKHVpbnRwdHJfdCB2YWx1ZSkKK3sKKyAgICByZXR1cm4gKHVpbnRwdHJf
dCkxIDw8IHBhc19sb2cyX3JvdW5kZWRfdXBfc2FmZSh2YWx1ZSk7Cit9CisKICNkZWZpbmUgUEFT
X1NXQVAobGVmdCwgcmlnaHQpIGRvIHsgXAogICAgICAgICB0eXBlb2YgKGxlZnQpIF9zd2FwX3Rt
cCA9IGxlZnQ7IFwKICAgICAgICAgbGVmdCA9IHJpZ2h0OyBcCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFwLmMJKHdvcmtp
bmcgY29weSkKQEAgLTY4LDM2ICs2OCwzNiBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRS
SU5TSUNfUFJJTUlUCiAgICAgVEhJTkdZX0hFQVBfQ09ORklHLAogICAgICZ0aGluZ3lfaW50cmlu
c2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZ0aGluZ3lfYWxsb2NhdG9y
X2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAor
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKICAgICAmdGhpbmd5X3ByaW1pdGl2
ZV9oZWFwLAogICAgICZ0aGluZ3lfcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50
cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwogCiB2b2lkKiB0aGluZ3lfdHJ5X2FsbG9j
YXRlX3ByaW1pdGl2ZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gdHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZShzaXplLCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKil0cnlfYWxsb2NhdGVfcHJp
bWl0aXZlKHNpemUsIDEpLmJlZ2luOwogfQogCiB2b2lkKiB0aGluZ3lfdHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZV96ZXJvZWQoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHRfemVybyh0cnlfYWxsb2NhdGVfcHJpbWl0aXZlKHNpemUsIDEpLCBz
aXplKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyh0
cnlfYWxsb2NhdGVfcHJpbWl0aXZlKHNpemUsIDEpLCBzaXplKS5iZWdpbjsKIH0KIAogdm9pZCog
dGhpbmd5X3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnQoc2l6ZV90IHNpemUs
IHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9wcmltaXRpdmUo
c2l6ZSwgYWxpZ25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKil0cnlfYWxsb2NhdGVfcHJp
bWl0aXZlKHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHZvaWQqIHRoaW5neV90cnlfcmVh
bGxvY2F0ZV9wcmltaXRpdmUodm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXplKQogewotICAg
IHJldHVybiBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKKyAgICByZXR1
cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAogICAgICAg
ICBvbGRfcHRyLAogICAgICAgICAmdGhpbmd5X3ByaW1pdGl2ZV9oZWFwLAogICAgICAgICBuZXdf
c2l6ZSwKICAgICAgICAgVEhJTkdZX0hFQVBfQ09ORklHLAogICAgICAgICB0cnlfYWxsb2NhdGVf
cHJpbWl0aXZlX2Zvcl9yZWFsbG9jLAogICAgICAgICBwYXNfcmVhbGxvY2F0ZV9kaXNhbGxvd19o
ZWFwX3RlbGVwb3J0LAotICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX2lmX3N1Y2Nlc3NmdWwp
LnB0cjsKKyAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9pZl9zdWNjZXNzZnVsKS5iZWdpbjsK
IH0KIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCkBAIC0xMDUsNyArMTA1LDcgQEAgUEFTX0NS
RUFURV9UUllfQUxMT0NBVEUoCiAgICAgVEhJTkdZX0hFQVBfQ09ORklHLAogICAgICZ0aGluZ3lf
dHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmdGhpbmd5X2FsbG9jYXRvcl9jb3VudHMs
Ci0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk7CisgICAgcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKIAogX19hdHRyaWJ1dGVfXygobWFsbG9jKSkK
IHZvaWQqIHRoaW5neV90cnlfYWxsb2NhdGUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZikKQEAgLTEy
Myw3ICsxMjMsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKICAgICBUSElOR1lf
SEVBUF9DT05GSUcsCiAgICAgJnRoaW5neV90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAg
ICZ0aGluZ3lfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0X2lkZW50aXR5KTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOwog
CiBfX2F0dHJpYnV0ZV9fKChtYWxsb2MpKQogdm9pZCogdGhpbmd5X3RyeV9hbGxvY2F0ZV9hcnJh
eShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQp
CkBAIC0xNzAsMTQgKzE3MCwxNCBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNf
UFJJTUlUCiAgICAgVEhJTkdZX0hFQVBfQ09ORklHLAogICAgICZ0aGluZ3lfaW50cmluc2ljX3By
aW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZ0aGluZ3lfYWxsb2NhdG9yX2NvdW50
cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAor
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKICAgICAmdGhpbmd5X3V0
aWxpdHlfaGVhcCwKICAgICAmdGhpbmd5X3V0aWxpdHlfaGVhcF9zdXBwb3J0LAogICAgIHBhc19p
bnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7CiAKIHZvaWQqIHRoaW5neV91dGlsaXR5
X2hlYXBfYWxsb2NhdGUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIHV0aWxpdHlfaGVhcF9h
bGxvY2F0ZShzaXplLCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKil1dGlsaXR5X2hlYXBfYWxs
b2NhdGUoc2l6ZSwgMSkuYmVnaW47CiB9CiAKICNlbmRpZiAvKiBQQVNfRU5BQkxFX1RISU5HWSAq
LwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29u
ZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhp
bmd5X2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcg
KzM3LDggQEAgcGFzX2hlYXBfY29uZmlnIHRoaW5neV9oZWFwX2NvbmZpZyA9IFRISQogCiBQQVNf
QkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMoCiAgICAgdGhpbmd5LCBUSElOR1ksCi0gICAg
LmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8gPSB0cnVlKTsKKyAgICAuYWxsb2NhdGVfcGFnZV9z
aG91bGRfemVybyA9IHRydWUsCisgICAgLmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9j
YXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0
eSk7CiAKICNlbmRpZiAvKiBQQVNfRU5BQkxFX1RISU5HWSAqLwogCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuaAko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhp
bmd5X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDggQEAgUEFTX0JF
R0lOX0VYVEVSTl9DOwogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSA9IFBBU19TTUFM
TF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3dhc3RlYWdlX2hh
bmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAgICAuc21hbGxfc2VncmVnYXRl
ZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAot
ICAgIC5zbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0LCBcCisgICAg
LnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwg
XAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IGZhbHNlLCBcCiAgICAgLnVzZV9zbWFsbF9iaXRm
aXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQgPSBUSElOR1lf
TUlOX0FMSUdOX1NISUZULCBcCiAgICAgLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUgPSBQQVNfU01B
TExfQklURklUX1BBR0VfREVGQVVMVF9TSVpFLCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NUZXN0
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4OSw4ICszODksMTAgQEAgdm9pZCB0ZXN0QWxsb2Nh
dGlvbkNoYW9zKHVuc2lnbmVkIG51bVRocgogICAgICAgICAgICAgb3B0aW9uYWxPYmplY3RzLnB1
c2hfYmFjayhPcHRpb25hbE9iamVjdCgpKTsKICAgICB9CiAKLSAgICBpZiAoIXNlbGVjdGVkQWxs
b2NhdGUpCi0gICAgICAgIG51bUlzb2xhdGVkSGVhcHMgPSAwOworICAgIGlmICghc2VsZWN0ZWRB
bGxvY2F0ZSAmJiBudW1Jc29sYXRlZEhlYXBzKSB7CisgICAgICAgIGNvdXQgPDwgIlNraXBwaW5n
IGJlY2F1c2UgdGVzdCByZXF1aXJlcyBpc29sYXRlZCBoZWFwcyBhbmQgd2UgZG9uJ3Qgc3VwcG9y
dCB0aGVtIGluIHRoaXMgY29uZmlndXJhdGlvbi5cbiI7CisgICAgICAgIHJldHVybjsKKyAgICB9
CiAgICAgCiAgICAgdmVjdG9yPHBhc19oZWFwX3JlZio+IGlzb2xhdGVkSGVhcHM7CiAgICAgZm9y
ICh1bnNpZ25lZCBpc29sYXRlZEhlYXBJbmRleCA9IG51bUlzb2xhdGVkSGVhcHM7IGlzb2xhdGVk
SGVhcEluZGV4LS07KSB7CkBAIC03ODEsNiArNzgzLDcgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNo
YW9zKHVuc2lnbmVkIG51bVRocgogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ZGVmYXVsdDoKICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCEiYmFkIHJhbmRvbSBudW1iZXIi
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBpZiAodmVyYm9zZSkKQEAgLTg1MiwzNSArODU1LDM5IEBAIHZvaWQgdGVzdEFsbG9jYXRp
b25DaGFvcyh1bnNpZ25lZCBudW1UaHIKICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwogfQog
Ci12b2lkIGFkZFRoZVRlc3RzKGJvb2wgdGVzdEVudW1lcmF0b3IpCit2b2lkIGFkZFRoZVRlc3Rz
KHVuc2lnbmVkIG11bHRpcGxpZXIsIGJvb2wgdGVzdEVudW1lcmF0b3IpCiB7Ci0gICAgQUREX1RF
U1QodGVzdEFsbG9jYXRpb25DaGFvcygxLCAxMCwgMTAwMCwgMTAwMDAwMCwgMTAwMDAwMDAsIGZh
bHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMTAsIDEwMDAsIDIw
MDAwMCwgMTAwMDAwMDAsIGZhbHNlKSk7CisgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFv
cygxLCAwLCAxMDAwICogbXVsdGlwbGllciwgMTAwMDAwMCAqIG11bHRpcGxpZXIsIDEwMDAwMDAw
ICogbXVsdGlwbGllciwgZmFsc2UpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9z
KDEsIDEwLCAxMDAwICogbXVsdGlwbGllciwgMTAwMDAwMCAqIG11bHRpcGxpZXIsIDEwMDAwMDAw
ICogbXVsdGlwbGllciwgZmFsc2UpKTsKKyAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9z
KDEwLCAwLCAxMDAwICogbXVsdGlwbGllciwgMjAwMDAwICogbXVsdGlwbGllciwgMTAwMDAwMDAg
KiBtdWx0aXBsaWVyLCBmYWxzZSkpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3Mo
MTAsIDEwLCAxMDAwICogbXVsdGlwbGllciwgMjAwMDAwICogbXVsdGlwbGllciwgMTAwMDAwMDAg
KiBtdWx0aXBsaWVyLCBmYWxzZSkpOwogICAgIGlmICh0ZXN0RW51bWVyYXRvcikgeworICAgICAg
ICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEsIDAsIDEwMDAsIDcwMDAsIDEwMDAwMDAw
LCB0cnVlKSk7CiAgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMTAsIDEw
MDAsIDcwMDAsIDEwMDAwMDAwLCB0cnVlKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0
aW9uQ2hhb3MoMTAsIDAsIDEwMDAsIDQwMDAsIDEwMDAwMDAwLCB0cnVlKSk7CiAgICAgICAgIEFE
RF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDEwLCAxMDAwLCA0MDAwLCAxMDAwMDAwMCwg
dHJ1ZSkpOwogICAgIH0KIH0KIAogdm9pZCBhZGRTcG90VGVzdHMoYm9vbCB0ZXN0RW51bWVyYXRv
cikKIHsKLSAgICBhZGRUaGVUZXN0cyh0ZXN0RW51bWVyYXRvcik7CisgICAgQUREX0dST1VQKGFk
ZFRoZVRlc3RzKDEwLCB0ZXN0RW51bWVyYXRvcikpOwogICAgIAogICAgIHsKICAgICAgICAgRm9y
Y2VFeGNsdXNpdmVzIGZvcmNlRXhjbHVzaXZlczsKICAgICAgICAgRGlzYWJsZUJpdGZpdCBkaXNh
YmxlQml0Zml0OwotICAgICAgICBhZGRUaGVUZXN0cyh0ZXN0RW51bWVyYXRvcik7CisgICAgICAg
IEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0ZXN0RW51bWVyYXRvcikpOwogICAgIH0KICAgICAK
ICAgICB7CiAgICAgICAgIEZvcmNlVExBcyBmb3JjZVRMQXM7CiAgICAgICAgIEZvcmNlUGFydGlh
bHMgZm9yY2VQYXJ0aWFsczsKLSAgICAgICAgYWRkVGhlVGVzdHMoZmFsc2UpOworICAgICAgICBB
RERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICB9CiAgICAgCiAgICAgewogICAg
ICAgICBGb3JjZUJpdGZpdCBmb3JjZUJpdGZpdDsKLSAgICAgICAgYWRkVGhlVGVzdHMoZmFsc2Up
OworICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICB9CiB9CiAK
QEAgLTkwNCw1MCArOTExLDUwIEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogICAgICAg
ICAgICAgICAgIHNlbGVjdGVkSGVhcFJlZkdldEhlYXAgPSBpc29faGVhcF9yZWZfZ2V0X2hlYXA7
CiAgICAgICAgICAgICB9KTsKICAgICAKLSAgICAgICAgYWRkVGhlVGVzdHModHJ1ZSk7CisgICAg
ICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxMCwgdHJ1ZSkpOwogCiAgICAgICAgIHsKICAgICAg
ICAgICAgIERpc2FibGVCaXRmaXQgZGlzYWJsZUJpdGZpdDsKLSAgICAgICAgICAgIGFkZFRoZVRl
c3RzKGZhbHNlKTsKKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkp
OwogICAgICAgICB9CiAgICAgCiAgICAgICAgIHsKICAgICAgICAgICAgIEZvcmNlRXhjbHVzaXZl
cyBmb3JjZUV4Y2x1c2l2ZXM7Ci0gICAgICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7CisgICAg
ICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICAgICAgfQogICAg
IAogICAgICAgICB7CiAgICAgICAgICAgICBGb3JjZUV4Y2x1c2l2ZXMgZm9yY2VFeGNsdXNpdmVz
OwogICAgICAgICAgICAgRGlzYWJsZUJpdGZpdCBkaXNhYmxlQml0Zml0OwotICAgICAgICAgICAg
YWRkVGhlVGVzdHModHJ1ZSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBleGNsdXNp
dmVzIG9uIGZvciBzdXJlLgorICAgICAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIHRy
dWUpKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGV4Y2x1c2l2ZXMgb24gZm9yIHN1
cmUuCiAgICAgICAgIH0KICAgICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VUTEFzIGZv
cmNlVExBczsKICAgICAgICAgICAgIEZvcmNlUGFydGlhbHMgZm9yY2VQYXJ0aWFsczsKLSAgICAg
ICAgICAgIGFkZFRoZVRlc3RzKHRydWUpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGgg
cGFydGlhbHMgYW5kIFRMQXMgb24gZm9yIHN1cmUuCisgICAgICAgICAgICBBRERfR1JPVVAoYWRk
VGhlVGVzdHMoMSwgdHJ1ZSkpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggcGFydGlh
bHMgYW5kIFRMQXMgb24gZm9yIHN1cmUuCiAgICAgICAgIH0KICAgICAKICAgICAgICAgewogICAg
ICAgICAgICAgRm9yY2VCaXRmaXQgZm9yY2VCaXRmaXQ7Ci0gICAgICAgICAgICBhZGRUaGVUZXN0
cyh0cnVlKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGJpdGZpdCBvbiBmb3Igc3Vy
ZS4KKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7IC8vIFRoaXMg
dGVzdHMgZW51bWVyYXRpb24gd2l0aCBiaXRmaXQgb24gZm9yIHN1cmUuCiAgICAgICAgIH0KICAg
ICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VCYXNlbGluZXMgZm9yY2VCYXNlbGluZXM7
CiAgICAgICAgICAgICBEaXNhYmxlQml0Zml0IGRpc2FibGVCaXRmaXQ7Ci0gICAgICAgICAgICBh
ZGRUaGVUZXN0cyh0cnVlKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGJhc2VsaW5l
cyBhbmQgc2VnaGVhcHMgb24gZm9yIHN1cmUuCisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhl
VGVzdHMoMSwgdHJ1ZSkpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggYmFzZWxpbmVz
IGFuZCBzZWdoZWFwcyBvbiBmb3Igc3VyZS4KICAgICAgICAgfQogICAgIAogICAgICAgICB7CiAg
ICAgICAgICAgICBGb3JjZVRMQXMgZm9yY2VUTEFzOwotICAgICAgICAgICAgYWRkVGhlVGVzdHMo
ZmFsc2UpOworICAgICAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIGZhbHNlKSk7CiAg
ICAgICAgIH0KICAgICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VCYXNlbGluZXMgZm9y
Y2VCYXNlbGluZXM7CiAgICAgICAgICAgICBGb3JjZVBhcnRpYWxzIGZvcmNlUGFydGlhbHM7Ci0g
ICAgICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7CisgICAgICAgICAgICBBRERfR1JPVVAoYWRk
VGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICAgICAgfQogCiAgICAgICAgIHsKQEAgLTEwMzAsNyAr
MTAzNyw3IEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogICAgICAgICAgICAgICAgIHNl
bGVjdGVkSGVhcFJlZkdldEhlYXAgPSBibWFsbG9jX2hlYXBfcmVmX2dldF9oZWFwOwogICAgICAg
ICAgICAgfSk7CiAgICAgCi0gICAgICAgIGFkZFNwb3RUZXN0cyhmYWxzZSk7CisgICAgICAgIGFk
ZFNwb3RUZXN0cyh0cnVlKTsKICAgICB9CiAjZW5kaWYgLy8gUEFTX0VOQUJMRV9CTUFMTE9DCiAK
QEAgLTEwNjgsNyArMTA3NSw3IEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogCiAgICAg
ICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRIZWFwOwogCi0gICAgICAgIGFkZFRoZVRlc3RzKHRydWUp
OworICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgdHJ1ZSkpOwogICAgIH0KIAogICAg
IHsKQEAgLTEwODcsNyArMTA5NCw3IEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogCiAg
ICAgICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRIZWFwOwogCi0gICAgICAgIGFkZFRoZVRlc3RzKGZh
bHNlKTsKKyAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIGZhbHNlKSk7CiAgICAgfQog
I2VuZGlmIC8vIFBBU19FTkFCTEVfSE9UQklUCiAjZW5kaWYgLy8gUEFTX0VOQUJMRV9JU08KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hl
YXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDIsNyArNDIsNyBAQAogI2luY2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVf
aGVhcC5oIgogI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5oIgogI2luY2x1ZGUgInBhc19zY2F2
ZW5nZXIuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnku
aCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUg
InBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCIKICNpbmNsdWRlIDxzZXQ+CiAjaW5jbHVkZSA8dmVj
dG9yPgpAQCAtOTYsNyArOTYsNyBAQCB2b2lkIHRlc3RUYWtlUGFnZXModW5zaWduZWQgZmlyc3RP
YmplY3RTCiAgICAgICAgIENIRUNLKCFvYmplY3RzLmNvdW50KG9iamVjdCkpOwogICAgICAgICBv
YmplY3RzLmluc2VydChvYmplY3QpOwogICAgICAgICBvYmplY3RMaXN0LnB1c2hfYmFjayhvYmpl
Y3QpOwotICAgICAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZm9yX29iamVjdCgKKyAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJw
cmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgJmlz
b19oZWFwX2NvbmZpZyktPm9iamVjdF9zaXplLAogICAgICAgICAgICAgICAgICAgICByZXN1bHRp
bmdGaXJzdE9iamVjdFNpemUpOwpAQCAtMTY1LDcgKzE2NSw3IEBAIHZvaWQgdGVzdFRha2VQYWdl
cyh1bnNpZ25lZCBmaXJzdE9iamVjdFMKICAgICAgICAgQ0hFQ0soIW9iamVjdHMuY291bnQob2Jq
ZWN0KSk7CiAgICAgICAgIG9iamVjdHMuaW5zZXJ0KG9iamVjdCk7CiAgICAgICAgIG9iamVjdExp
c3QucHVzaF9iYWNrKG9iamVjdCk7Ci0gICAgICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAorICAgICAgICBDSEVDS19FUVVBTChw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAg
ICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAmaXNvX2hlYXBfY29uZmlnKS0+b2JqZWN0X3NpemUsCiAgICAgICAgICAg
ICAgICAgICAgIHJlc3VsdGluZ1NlY29uZE9iamVjdFNpemUpOwpAQCAtMTk3LDcgKzE5Nyw3IEBA
IHZvaWQgdGVzdFRha2VQYWdlcyh1bnNpZ25lZCBmaXJzdE9iamVjdFMKICAgICAgICAgQ0hFQ0so
b2JqZWN0KTsKICAgICAgICAgQ0hFQ0soIW9iamVjdHMuY291bnQob2JqZWN0KSk7CiAgICAgICAg
IG9iamVjdHMuaW5zZXJ0KG9iamVjdCk7Ci0gICAgICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAorICAgICAgICBDSEVDS19FUVVB
TChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICAgICAg
ICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAmaXNvX2hlYXBfY29uZmlnKS0+b2JqZWN0X3NpemUsCiAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdGluZ0ZpcnN0T2JqZWN0U2l6ZSk7CkBAIC0yMjksNyArMjI5LDcg
QEAgdm9pZCB0ZXN0VGFrZVBhZ2VzRnJvbUNvcnJlY3RIZWFwKHVuc2lnbgogICAgIAogICAgIHBh
c19oZWFwX3JlZiogaGVhcFJlZnMgPSBuZXcgcGFzX2hlYXBfcmVmW251bUhlYXBzXTsKICAgICB2
b2lkKiogb2JqZWN0cyA9IG5ldyB2b2lkKltudW1IZWFwc107Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiogZGlyZWN0b3JpZXMgPSBuZXcgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KltudW1IZWFwc107CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqKiBkaXJlY3RvcmllcyA9IG5ldyBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSpbbnVtSGVhcHNdOwogICAgIAogICAgIHVuc2lnbmVkIG51bUhlYXBzSW5TZWNvbmRQaGFz
ZSA9IG51bUhlYXBzIC0gbnVtSGVhcHNJbkZpcnN0UGhhc2U7CiAgICAgCkBAIC0yNDIsNyArMjQy
LDcgQEAgdm9pZCB0ZXN0VGFrZVBhZ2VzRnJvbUNvcnJlY3RIZWFwKHVuc2lnbgogICAgICAgICBv
YmplY3RzW2ldID0gaXNvX3RyeV9hbGxvY2F0ZShoZWFwUmVmcyArIGkpOwogICAgICAgICBpZiAo
dmVyYm9zZSkKICAgICAgICAgICAgIGNvdXQgPDwgIiAgICBBbGxvY2F0ZWQgb2JqZWN0IGF0ICIg
PDwgb2JqZWN0c1tpXSA8PCAiXG4iOwotICAgICAgICBkaXJlY3Rvcmllc1tpXSA9IHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAorICAgICAgICBkaXJlY3Rv
cmllc1tpXSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAg
ICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0c1tpXSksICZpc29faGVh
cF9jb25maWcpOwogICAgICAgICBpZiAoZGlyZWN0b3JpZXNbaV0pCiAgICAgICAgICAgICBDSEVD
S19FUVVBTChkaXJlY3Rvcmllc1tpXS0+b2JqZWN0X3NpemUsIHNpemVGdW5jKGkpKTsKQEAgLTE5
ODAsOSArMTk4MCw5IEBAIHBhc19oZWFwKiBzbWFsbEhlYXBUd287CiBwYXNfaGVhcCogc21hbGxI
ZWFwVGhyZWU7CiBwYXNfaGVhcCogbGFyZ2VIZWFwT25lOwogcGFzX2hlYXAqIGxhcmdlSGVhcFR3
bzsKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcHJpbWl0aXZlU21hbGxP
bmVEaXJlY3Rvcnk7Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHByaW1p
dGl2ZVNtYWxsVHdvRGlyZWN0b3J5OwotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBwcmltaXRpdmVTbWFsbFRocmVlRGlyZWN0b3J5OworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIHByaW1pdGl2ZVNtYWxsT25lRGlyZWN0b3J5OworcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIHByaW1pdGl2ZVNtYWxsVHdvRGlyZWN0b3J5OworcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIHByaW1pdGl2ZVNtYWxsVGhyZWVEaXJlY3Rvcnk7CiAKIHZvaWQgc2V0
dXBUaGluZ3koKQogewpAQCAtMjA4Niw5ICsyMDg2LDkgQEAgdm9pZCBhbGxvY2F0ZVRoaW5naWVz
SW1wbChUaGluZ3lLaW5kIGtpbgogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBhbGxvY2F0ZU1h
bnkgPyAxNTYyNTAgOiAxOyBpLS07KSB7CiAgICAgICAgICAgICB2b2lkKiBvYmplY3QgPSBhZGRP
YmplY3QoaXNvX3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKDMyKSk7CiAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5OworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgICAgICAgICBkaXJlY3Rv
cnkgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QpLAogICAgICAgICAgICAg
ICAgICZpc29faGVhcF9jb25maWcpOwogICAgICAgICAgICAgCkBAIC0yMTAyLDkgKzIxMDIsOSBA
QCB2b2lkIGFsbG9jYXRlVGhpbmdpZXNJbXBsKFRoaW5neUtpbmQga2luCiAgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IGFsbG9jYXRlTWFueSA/IDM5MDYyIDogMTsgaS0tOykgewogICAgICAgICAg
ICAgdm9pZCogb2JqZWN0ID0gYWRkT2JqZWN0KGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1p
dGl2ZSgxMjgpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgICAgICAgICAgCi0gICAgICAgICAgICBk
aXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVj
dCgKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+
KG9iamVjdCksCiAgICAgICAgICAgICAgICAgJmlzb19oZWFwX2NvbmZpZyk7CiAgICAgICAgICAg
ICAKQEAgLTIxMTgsOSArMjExOCw5IEBAIHZvaWQgYWxsb2NhdGVUaGluZ2llc0ltcGwoVGhpbmd5
S2luZCBraW4KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gYWxsb2NhdGVNYW55ID8gMTA0MTY2
IDogMTsgaS0tOykgewogICAgICAgICAgICAgdm9pZCogb2JqZWN0ID0gYWRkT2JqZWN0KGlzb190
cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZSg0OCkpOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAorICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgICAgICAgICByZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwKICAgICAgICAgICAgICAgICAmaXNvX2hl
YXBfY29uZmlnKTsKICAgICAgICAgICAgIApAQCAtNDU0Miw3ICs0NTQyLDYgQEAgdm9pZCBhZGRJ
c29IZWFwUGFnZVNoYXJpbmdUZXN0cygpCiAgICAgRm9yY2VFeGNsdXNpdmVzIGZvcmNlRXhjbHVz
aXZlczsKICAgICBGb3JjZVRMQXMgZm9yY2VUTEFzOwogICAgIERpc2FibGVCaXRmaXQgZGlzYWJs
ZUJpdGZpdDsKLSAgICBGb3JjZU9uZU1hZ2F6aW5lIGZvcmNlT25lTWFnYXppbmU7CiAgICAgCiAg
ICAgewogICAgICAgICBUZXN0U2NvcGUgdGVzdFNjb3BlKApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5k
QmFzZWxpbmVUZXN0cy5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCB0ZXN0U2ltcGxlUGFydGlhbEFsbG9jYXRp
b25zKHNpemVfdAogICAgIHNldDx2b2lkKj4gb2JqZWN0U2V0OwogICAgIHNldDxwYXNfc2VncmVn
YXRlZF92aWV3PiB2aWV3U2V0OwogICAgIHNldDxwYXNfc2VncmVnYXRlZF9wYWdlKj4gcGFnZVNl
dDsKLSAgICBzZXQ8cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kj4gc2l6ZURp
cmVjdG9yeVNldDsKKyAgICBzZXQ8cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqPiBzaXpl
RGlyZWN0b3J5U2V0OwogICAgIAogICAgIHBhc19oZWFwX3JlZiBoZWFwID0gSVNPX0hFQVBfUkVG
X0lOSVRJQUxJWkVSX1dJVEhfQUxJR05NRU5UKHNpemUsIGFsaWdubWVudCk7CiAKQEAgLTIwOSw5
ICsyMDksOSBAQCB2b2lkIHRlc3RTaW1wbGVQYXJ0aWFsQWxsb2NhdGlvbnMoc2l6ZV90CiAgICAg
ICAgIG9iamVjdFNldC5pbnNlcnQocHRyKTsKICAgICAgICAgdmlld1NldC5pbnNlcnQodmlldyk7
CiAgICAgICAgIHBhZ2VTZXQuaW5zZXJ0KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2Uodmll
dykpOwotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVE
aXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnko
dmlldyk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplRGlyZWN0
b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkodmlldyk7CiAgICAg
ICAgIENIRUNLX0VRVUFMKHNpemVEaXJlY3RvcnktPm9iamVjdF9zaXplLCBzaXplKTsKLSAgICAg
ICAgQ0hFQ0socGFzX2lzX2FsaWduZWQocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2FsaWdubWVudChzaXplRGlyZWN0b3J5KSwgYWxpZ25tZW50KSk7CisgICAgICAgIENIRUNL
KHBhc19pc19hbGlnbmVkKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChz
aXplRGlyZWN0b3J5KSwgYWxpZ25tZW50KSk7CiAgICAgICAgIHNpemVEaXJlY3RvcnlTZXQuaW5z
ZXJ0KHNpemVEaXJlY3RvcnkpOwogICAgIH0KIApAQCAtMjg3LDkgKzI4Nyw5IEBAIHZvaWQgdGVz
dFNpbXBsZVBhcnRpYWxBbGxvY2F0aW9ucyhzaXplX3QKICAgICAgICAgb2JqZWN0U2V0Lmluc2Vy
dChwdHIpOwogICAgICAgICB2aWV3U2V0Lmluc2VydCh2aWV3KTsKICAgICAgICAgcGFnZVNldC5p
bnNlcnQocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZSh2aWV3KSk7Ci0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZURpcmVjdG9yeSA9IHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVEaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKICAgICAgICAgQ0hFQ0tfRVFVQUwoc2l6
ZURpcmVjdG9yeS0+b2JqZWN0X3NpemUsIHNpemUpOwotICAgICAgICBDSEVDSyhwYXNfaXNfYWxp
Z25lZChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHNpemVE
aXJlY3RvcnkpLCBhbGlnbm1lbnQpKTsKKyAgICAgICAgQ0hFQ0socGFzX2lzX2FsaWduZWQocGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHNpemVEaXJlY3RvcnkpLCBhbGln
bm1lbnQpKTsKICAgICAgICAgc2l6ZURpcmVjdG9yeVNldC5pbnNlcnQoc2l6ZURpcmVjdG9yeSk7
CiAgICAgfQogCkBAIC02MDMsOCArNjAzLDYgQEAgdm9pZCB0ZXN0TXVsdGlwbGVQYXJ0aWFsc0Zy
b21EaWZmZXJlbnRUaAogewogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9IGZh
bHNlOwotICAgIAogICAgIHBhc19oZWFwX3JlZiBoZWFwID0gSVNPX0hFQVBfUkVGX0lOSVRJQUxJ
WkVSX1dJVEhfQUxJR05NRU5UKHNpemUsIGFsaWdubWVudCk7CiAKICAgICB2ZWN0b3I8dGhyZWFk
PiB0aHJlYWRzOwpAQCAtNzkyLDcgKzc5MCw2IEBAIHZvaWQgdGVzdFR3b0Jhc2VsaW5lc0V2aWN0
aW9ucyhzaXplX3Qgc2kKIHZvaWQgYWRkU2NhdmVuZ2VyRGVwZW5kZW50VGVzdHMoKQogewogICAg
IERpc2FibGVCaXRmaXQgZGlzYWJsZUJpdGZpdDsKLSAgICBEaXNhYmxlRXhwbG9zaW9uIGRpc2Fi
bGVFeHBsb3Npb247CiAgICAgCiAgICAgewogICAgICAgICBGb3JjZVBhcnRpYWxzIGZvcmNlUGFy
dGlhbHM7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFRhYmxp
bmdUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0
L0lzb0hlYXBUYWJsaW5nVGVzdHMuY3BwCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAJKG5vbmV4aXN0ZW50
KQpAQCAtMSwyMjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaW5jbHVkZSAiVGVzdEhhcm5lc3MuaCIKLQotI2lmIFBBU19FTkFCTEVfSVNP
Ci0KLSNpbmNsdWRlICJpc29fdGVzdF9oZWFwLmgiCi0jaW5jbHVkZSAiaXNvX3Rlc3RfaGVhcF9j
b25maWcuaCIKLSNpbmNsdWRlIDxtYXA+Ci0jaW5jbHVkZSA8dmVjdG9yPgotCi11c2luZyBuYW1l
c3BhY2Ugc3RkOwotCi1uYW1lc3BhY2UgewotCi12b2lkIHRlc3RUYWJsaW5nKHVuc2lnbmVkIHNp
emUsCi0gICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQg
dmFyaWFudCwKLSAgICAgICAgICAgICAgICAgdW5zaWduZWQgbnVtUGFnZXNUb0VtcHR5LAotICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBudW1QYWdlc05vdFRvRW1wdHksCi0gICAgICAgICAgICAg
ICAgIGJvb2wgdXNlVGFibGluZywKLSAgICAgICAgICAgICAgICAgYm9vbCByYWdlU2NhdmVuZ2VE
dXJpbmdSZWZpbGwpCi17Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKLSAgICAKLSAgICBtYXA8cGFzX3NlZ3JlZ2F0ZWRfdmlldywgdmVjdG9yPHZvaWQqPj4gcGFn
ZXNUb0VtcHR5OwotICAgIG1hcDxwYXNfc2VncmVnYXRlZF92aWV3LCB2ZWN0b3I8dm9pZCo+PiBw
YWdlc05vdFRvRW1wdHk7Ci0gICAgdW5zaWduZWQgbnVtYmVyT2ZPYmplY3RzUGVyUGFnZSA9IHBh
c19zZWdyZWdhdGVkX3BhZ2VfbnVtYmVyX29mX29iamVjdHMoCi0gICAgICAgIHNpemUsICpwYXNf
aGVhcF9jb25maWdfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQoJmlzb190
ZXN0X2hlYXBfY29uZmlnLCB2YXJpYW50KSk7Ci0KLSAgICBhdXRvIGZpbGwgPQotICAgICAgICBb
Jl0gKGF1dG8mIG1hcCwgdW5zaWduZWQgbGltaXQpIHsKLSAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgcGFnZUluZGV4ID0gMDsgcGFnZUluZGV4IDwgbGltaXQ7ICsrcGFnZUluZGV4KSB7Ci0gICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3ID0gbnVsbHB0cjsKLSAgICAgICAg
ICAgICAgICB2ZWN0b3I8dm9pZCo+IG9iamVjdHM7Ci0gICAgICAgICAgICAgICAgZm9yICh1bnNp
Z25lZCBvYmplY3RJbmRleCA9IDA7IG9iamVjdEluZGV4IDwgbnVtYmVyT2ZPYmplY3RzUGVyUGFn
ZTsgKytvYmplY3RJbmRleCkgewotICAgICAgICAgICAgICAgICAgICB2b2lkKiBvYmplY3QgPSBp
c29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemUpOwotICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3IG15VmlldyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZm9y
X29iamVjdCgKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90PihvYmplY3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgJmlzb190ZXN0X2hlYXBfY29u
ZmlnKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBjb3V0IDw8ICJBbGxvY2F0ZWQgb2JqZWN0ICIgPDwgb2JqZWN0IDw8ICIgaW4gdmll
dyAiIDw8IG15VmlldyA8PCAiXG4iOwotICAgICAgICAgICAgICAgICAgICBDSEVDSyhteVZpZXcp
OwotICAgICAgICAgICAgICAgICAgICBpZiAoIW9iamVjdEluZGV4KSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBQQVNfQVNTRVJUKCF2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZp
ZXcgPSBteVZpZXc7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAg
ICAgICAgICAgQ0hFQ0tfRVFVQUwobXlWaWV3LCB2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAg
b2JqZWN0cy5wdXNoX2JhY2sob2JqZWN0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgQ0hFQ0sodmlldyk7Ci0gICAgICAgICAgICAgICAgQ0hFQ0soIW1hcC5jb3VudCh2aWV3
KSk7Ci0gICAgICAgICAgICAgICAgbWFwW3ZpZXddID0gb2JqZWN0czsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfTsKLQotICAgIGZpbGwocGFnZXNUb0VtcHR5LCBudW1QYWdlc1RvRW1wdHkpOwot
ICAgIGZpbGwocGFnZXNOb3RUb0VtcHR5LCBudW1QYWdlc05vdFRvRW1wdHkpOwotCi0gICAgZm9y
IChhdXRvJiBlbnRyeSA6IHBhZ2VzVG9FbXB0eSkgewotICAgICAgICB3aGlsZSAoZW50cnkuc2Vj
b25kLnNpemUoKSkgewotICAgICAgICAgICAgaXNvX3Rlc3RfZGVhbGxvY2F0ZShlbnRyeS5zZWNv
bmQuYmFjaygpKTsKLSAgICAgICAgICAgIGVudHJ5LnNlY29uZC5wb3BfYmFjaygpOwotICAgICAg
ICB9Ci0gICAgfQotICAgIGZvciAoYXV0byYgZW50cnkgOiBwYWdlc05vdFRvRW1wdHkpIHsKLSAg
ICAgICAgd2hpbGUgKGVudHJ5LnNlY29uZC5zaXplKCkgPj0gMikgewotICAgICAgICAgICAgaXNv
X3Rlc3RfZGVhbGxvY2F0ZShlbnRyeS5zZWNvbmQuYmFjaygpKTsKLSAgICAgICAgICAgIGVudHJ5
LnNlY29uZC5wb3BfYmFjaygpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc2NhdmVuZ2UoKTsK
LQotICAgIGF1dG8gcmVmaWxsID0KLSAgICAgICAgWyZdIChhdXRvJiBtYXAsIHVuc2lnbmVkIGxp
bWl0LCB1bnNpZ25lZCBleGNsdWRlKSB7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHBhZ2VJ
bmRleCA9IDA7IHBhZ2VJbmRleCA8IGxpbWl0OyArK3BhZ2VJbmRleCkgewotICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAg
dmVjdG9yPHZvaWQqPiBvYmplY3RzOwotICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgb2Jq
ZWN0SW5kZXggPSAwOwotICAgICAgICAgICAgICAgICAgICAgb2JqZWN0SW5kZXggPCBudW1iZXJP
Zk9iamVjdHNQZXJQYWdlIC0gZXhjbHVkZTsKLSAgICAgICAgICAgICAgICAgICAgICsrb2JqZWN0
SW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJhZ2VTY2F2ZW5nZUR1cmluZ1JlZmls
bCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYXZlbmdlKCk7Ci0gICAgICAgICAgICAgICAg
ICAgIHZvaWQqIG9iamVjdCA9IGlzb190ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6
ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgbXlWaWV3ID0gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAmaXNvX3Rlc3RfaGVhcF9jb25maWcpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIW9iamVj
dEluZGV4KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCF2aWV3KTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHZpZXcgPSBteVZpZXc7Ci0gICAgICAgICAgICAgICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobXlWaWV3LCB2aWV3
KTsKLSAgICAgICAgICAgICAgICAgICAgb2JqZWN0cy5wdXNoX2JhY2sob2JqZWN0KTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVCh2aWV3KTsKLSAgICAgICAg
ICAgICAgICBDSEVDSyhtYXAuY291bnQodmlldykpOwotICAgICAgICAgICAgICAgIENIRUNLX0VR
VUFMKG1hcFt2aWV3XS5zaXplKCkgKyBvYmplY3RzLnNpemUoKSwgbnVtYmVyT2ZPYmplY3RzUGVy
UGFnZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICBpZiAodXNlVGFibGluZykg
ewotICAgICAgICByZWZpbGwocGFnZXNOb3RUb0VtcHR5LCBudW1QYWdlc05vdFRvRW1wdHksIDEp
OwotICAgICAgICByZWZpbGwocGFnZXNUb0VtcHR5LCBudW1QYWdlc1RvRW1wdHksIDApOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIHJlZmlsbChwYWdlc1RvRW1wdHksIG51bVBhZ2VzVG9FbXB0eSwg
MCk7Ci0gICAgICAgIHJlZmlsbChwYWdlc05vdFRvRW1wdHksIG51bVBhZ2VzTm90VG9FbXB0eSwg
MSk7Ci0gICAgfQotfQotCi12b2lkIHRlc3RVbnRhYmxpbmcoKQotewotICAgIHZlY3Rvcjx2ZWN0
b3I8dm9pZCo+PiBvYmplY3RzSW5QYWdlOwotCi0gICAgdW5zaWduZWQgbnVtYmVyT2ZPYmplY3Rz
UGVyUGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfbnVtYmVyX29mX29iamVjdHMoCi0gICAgICAg
IDE2LCBJU09fVEVTVF9IRUFQX0NPTkZJRy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7Ci0KLSAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMjsgKytpKSB7Ci0gICAgICAgIHZlY3Rvcjx2b2lk
Kj4gb2JqZWN0czsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IG51bWJlck9mT2Jq
ZWN0c1BlclBhZ2U7ICsraikKLSAgICAgICAgICAgIG9iamVjdHMucHVzaF9iYWNrKGlzb190ZXN0
X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoMTYpKTsKLSAgICAgICAgb2JqZWN0c0luUGFnZS5w
dXNoX2JhY2sob2JqZWN0cyk7Ci0gICAgfQotCi0gICAgZm9yICh2b2lkKiBvYmplY3QgOiBvYmpl
Y3RzSW5QYWdlWzBdKQotICAgICAgICBpc29fdGVzdF9kZWFsbG9jYXRlKG9iamVjdCk7Ci0KLSAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgb2JqZWN0c0luUGFnZVsxXS5zaXplKCk7ICsraSkK
LSAgICAgICAgaXNvX3Rlc3RfZGVhbGxvY2F0ZShvYmplY3RzSW5QYWdlWzFdW2ldKTsKLQotICAg
IHNjYXZlbmdlKCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgb2JqZWN0c0luUGFn
ZVsxXS5zaXplKCk7ICsraSkgewotICAgICAgICBDSEVDS19FUVVBTChpc29fdGVzdF9hbGxvY2F0
ZV9jb21tb25fcHJpbWl0aXZlKDE2KSwKLSAgICAgICAgICAgICAgICAgICAgb2JqZWN0c0luUGFn
ZVsxXVtpXSk7Ci0gICAgfQotCi0gICAgQ0hFQ0tfRVFVQUwoaXNvX3Rlc3RfYWxsb2NhdGVfY29t
bW9uX3ByaW1pdGl2ZSgxNiksCi0gICAgICAgICAgICAgICAgb2JqZWN0c0luUGFnZVswXVswXSk7
Ci0KLSAgICBpc29fdGVzdF9kZWFsbG9jYXRlKG9iamVjdHNJblBhZ2VbMV1bMF0pOwotCi0gICAg
c2NhdmVuZ2UoKTsKLQotICAgIENIRUNLX0VRVUFMKGlzb190ZXN0X2FsbG9jYXRlX2NvbW1vbl9w
cmltaXRpdmUoMTYpLAotICAgICAgICAgICAgICAgIG9iamVjdHNJblBhZ2VbMF1bMV0pOwotfQot
Ci12b2lkIGFkZFRhYmxpbmdUZXN0cyhib29sIHVzZVRhYmxpbmcpCi17Ci0gICAgQUREX1RFU1Qo
dGVzdFRhYmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQs
IDEsIDEsIHVzZVRhYmxpbmcsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYs
IHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEwLCB1c2VUYWJs
aW5nLCBmYWxzZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMSwgdXNlVGFibGluZywgZmFsc2UpKTsK
LSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxNiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfdmFyaWFudCwgMTAsIDEwLCB1c2VUYWJsaW5nLCBmYWxzZSkpOwotICAgIEFERF9URVNU
KHRlc3RUYWJsaW5nKDE5OTY4LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFy
aWFudCwgMSwgMSwgdXNlVGFibGluZywgZmFsc2UpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGlu
ZygxOTk2OCwgcGFzX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEw
LCB1c2VUYWJsaW5nLCBmYWxzZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4LCBw
YXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMTAsIDEsIHVzZVRhYmxp
bmcsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTk5NjgsIHBhc19tZWRpdW1f
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMTAsIHVzZVRhYmxpbmcsIGZhbHNl
KSk7Ci0KLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxNiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfdmFyaWFudCwgMSwgMSwgdXNlVGFibGluZywgdHJ1ZSkpOwotICAgIEFERF9U
RVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJp
YW50LCAxLCAxMCwgdXNlVGFibGluZywgdHJ1ZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5n
KDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMSwgdXNl
VGFibGluZywgdHJ1ZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMTAsIHVzZVRhYmxpbmcsIHRydWUp
KTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxOTk2OCwgcGFzX21lZGl1bV9zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEsIHVzZVRhYmxpbmcsIHRydWUpKTsKLSAgICBBRERf
VEVTVCh0ZXN0VGFibGluZygxOTk2OCwgcGFzX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X3ZhcmlhbnQsIDEsIDEwLCB1c2VUYWJsaW5nLCB0cnVlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRh
YmxpbmcoMTk5NjgsIHBhc19tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAx
MCwgMSwgdXNlVGFibGluZywgdHJ1ZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4
LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMTAsIDEwLCB1c2VU
YWJsaW5nLCB0cnVlKSk7Ci19Ci0KLX0gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQotCi0jZW5kaWYg
Ly8gUEFTX0VOQUJMRV9JU08KLQotdm9pZCBhZGRJc29IZWFwVGFibGluZ1Rlc3RzKCkKLXsKLSAg
ICBSdW5TY2F2ZW5nZXJGdWxseSBydW5TY2F2ZW5nZXJGdWxseTsKLSAgICBGb3JjZUV4Y2x1c2l2
ZXMgZm9yY2VFeGNsdXNpdmVzOwotICAgIEZvcmNlVExBcyBmb3JjZVRMQXM7Ci0gICAgRGlzYWJs
ZUJpdGZpdCBkaXNhYmxlQml0Zml0OwotCi0gICAgewotICAgICAgICBUZXN0U2NvcGUgZW5hYmxl
VGFibGluZygKLSAgICAgICAgICAgICJlbmFibGUtdGFibGluZyIsCi0gICAgICAgICAgICBbXSAo
KSB7Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3Rh
YmxpbmcgPSB0cnVlOwotICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgYWRkVGFibGluZ1Rlc3Rz
KHRydWUpOwotICAgICAgICAKLSAgICAgICAgQUREX1RFU1QodGVzdFVudGFibGluZygpKTsKLSAg
ICB9Ci0KLSAgICB7Ci0gICAgICAgIFRlc3RTY29wZSBlbmFibGVUYWJsaW5nKAotICAgICAgICAg
ICAgImRpc2FibGUtdGFibGluZyIsCi0gICAgICAgICAgICBbXSAoKSB7Ci0gICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3RhYmxpbmcgPSBmYWxzZTsKLSAg
ICAgICAgICAgIH0pOwotCi0gICAgICAgIGFkZFRhYmxpbmdUZXN0cyhmYWxzZSk7Ci0gICAgfQot
fQotCi0KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1JhY2VUZXN0cy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1JhY2VUZXN0
cy5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVz
dC9SYWNlVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCB0
ZXN0TG9jYWxBbGxvY2F0b3JTdG9wUmFjZShwYXNfcmFjZQogICAgICAgICAgICAgaWYgKGtpbmQg
IT0ga2luZFRvU3RvcE9uKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAg
Q0hFQ0tfRVFVQUwobG9ja3NIZWxkRm9yVGhyZWFkW3RoaXNfdGhyZWFkOjpnZXRfaWQoKV0uc2l6
ZSgpLCAyKTsKKyAgICAgICAgICAgIENIRUNLX0VRVUFMKGxvY2tzSGVsZEZvclRocmVhZFt0aGlz
X3RocmVhZDo6Z2V0X2lkKCldLnNpemUoKSwgMyk7CiAgICAgICAgICAgICBDSEVDSyhva1RvR2V0
VG9Ib29rKTsKIAogICAgICAgICAgICAgdW5pcXVlX2xvY2s8bXV0ZXg+IGxvY2tlcihnbG9iYWxM
b2NrKTsKQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIHRlc3RMb2NhbEFsbG9jYXRvclN0b3BSYWNl
QWdhaW5zdFNjCiAgICAgICAgICAgICBpZiAoa2luZCAhPSBraW5kVG9TdG9wT24pCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBDSEVDS19FUVVBTChsb2Nrc0hlbGRGb3JU
aHJlYWRbdGhpc190aHJlYWQ6OmdldF9pZCgpXS5zaXplKCksIDIpOworICAgICAgICAgICAgQ0hF
Q0tfRVFVQUwobG9ja3NIZWxkRm9yVGhyZWFkW3RoaXNfdGhyZWFkOjpnZXRfaWQoKV0uc2l6ZSgp
LCAzKTsKICAgICAgICAgICAgIENIRUNLKG9rVG9HZXRUb0hvb2spOwogCiAgICAgICAgICAgICB1
bmlxdWVfbG9jazxtdXRleD4gbG9ja2VyKGdsb2JhbExvY2spOwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiaml0X2hlYXBfY29uZmlnLmgi
CiAjaW5jbHVkZSAibWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhZ2VzaXpl
NjRrX2hlYXBfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX2FsbF9tYWdhemluZXMuaCIKICNpbmNs
dWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJwYXNfZmRfc3RyZWFtLmgiCiAjaW5jbHVkZSAi
cGFzX2hlYXAuaCIKQEAgLTIwOSwzNSArMjA4LDYgQEAgSW5zdGFsbFZlcmlmaWVyOjpJbnN0YWxs
VmVyaWZpZXIoKQogewogfQogCi1EaXNhYmxlRXhwbG9zaW9uOjpEaXNhYmxlRXhwbG9zaW9uKCkK
LSAgICA6IFRlc3RTY29wZSgKLSAgICAgICAgImRpc2FibGUtZXhwbG9zaW9uIiwKLSAgICAgICAg
W10gKCkgewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2Nhbl9leHBsb2RlID0gZmFsc2U7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZm9yY2VfZXhwbG9kZSA9IGZhbHNlOwotICAgICAgICB9KQotewotfQot
Ci1Gb3JjZUV4cGxvc2lvbjo6Rm9yY2VFeHBsb3Npb24oKQotICAgIDogVGVzdFNjb3BlKAotICAg
ICAgICAiZm9yY2UtZXhwbG9zaW9uIiwKLSAgICAgICAgW10gKCkgewotICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Nhbl9leHBsb2RlID0gdHJ1ZTsKLSAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JjZV9leHBs
b2RlID0gdHJ1ZTsKLSAgICAgICAgfSkKLXsKLX0KLQotRm9yY2VPbmVNYWdhemluZTo6Rm9yY2VP
bmVNYWdhemluZSgpCi0gICAgOiBUZXN0U2NvcGUoCi0gICAgICAgICJmb3JjZS1vbmUtbWFnYXpp
bmUiLAotICAgICAgICBbXSAoKSB7Ci0gICAgICAgICAgICBwYXNfYWxsX21hZ2F6aW5lc19mb3Jj
ZWRfY3B1X251bWJlciA9IDA7Ci0gICAgICAgIH0pCi17Ci19Ci0KIEVwb2NoSXNDb3VudGVyOjpF
cG9jaElzQ291bnRlcigpCiAgICAgOiBUZXN0U2NvcGUoCiAgICAgICAgICJlcG9jaC1pcy1jb3Vu
dGVyIiwKQEAgLTM1Niw3ICszMjYsNiBAQCB2b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3RzKCk7CiB2
b2lkIGFkZElzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzKCk7CiB2b2lkIGFkZElzb0hlYXBQYXJ0aWFs
QW5kQmFzZWxpbmVUZXN0cygpOwogdm9pZCBhZGRJc29IZWFwUmVzZXJ2ZWRNZW1vcnlUZXN0cygp
Owotdm9pZCBhZGRJc29IZWFwVGFibGluZ1Rlc3RzKCk7CiB2b2lkIGFkZEpJVEhlYXBUZXN0cygp
Owogdm9pZCBhZGRMYXJnZUZyZWVIZWFwVGVzdHMoKTsKIHZvaWQgYWRkTGFyZ2VTaGFyaW5nUG9v
bFRlc3RzKCk7CkBAIC03MTQsNyArNjgzLDYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KQogICAgIEFERF9TVUlURShJc29IZWFwUGFnZVNoYXJpbmcpOwogICAgIEFERF9TVUlURShJ
c29IZWFwUGFydGlhbEFuZEJhc2VsaW5lKTsKICAgICBBRERfU1VJVEUoSXNvSGVhcFJlc2VydmVk
TWVtb3J5KTsKLSAgICBBRERfU1VJVEUoSXNvSGVhcFRhYmxpbmcpOwogICAgIEFERF9TVUlURShK
SVRIZWFwKTsKICAgICBBRERfU1VJVEUoTGFyZ2VGcmVlSGVhcCk7CiAgICAgQUREX1NVSVRFKExh
cmdlU2hhcmluZ1Bvb2wpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rl
c3RIYXJuZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0
L1Rlc3RIYXJuZXNzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNzUsMjEgKzI3NSw2
IEBAIHB1YmxpYzoKICAgICBJbnN0YWxsVmVyaWZpZXIoKTsKIH07CiAKLWNsYXNzIERpc2FibGVF
eHBsb3Npb24gOiBwdWJsaWMgVGVzdFNjb3BlIHsKLXB1YmxpYzoKLSAgICBEaXNhYmxlRXhwbG9z
aW9uKCk7Ci19OwotCi1jbGFzcyBGb3JjZUV4cGxvc2lvbiA6IHB1YmxpYyBUZXN0U2NvcGUgewot
cHVibGljOgotICAgIEZvcmNlRXhwbG9zaW9uKCk7Ci19OwotCi1jbGFzcyBGb3JjZU9uZU1hZ2F6
aW5lIDogcHVibGljIFRlc3RTY29wZSB7Ci1wdWJsaWM6Ci0gICAgRm9yY2VPbmVNYWdhemluZSgp
OwotfTsKLQogY2xhc3MgRXBvY2hJc0NvdW50ZXIgOiBwdWJsaWMgVGVzdFNjb3BlIHsKIHB1Ymxp
YzoKICAgICBFcG9jaElzQ291bnRlcigpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L1RoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBB
bGxvY2F0aW9uVGVzdHMuY3BwCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBACiAjaW5jbHVkZSAicGFzX21lZ2FwYWdlX2Nh
Y2hlLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3NjYXZl
bmdlci5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5o
IgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc190
aHJlYWRfbG9jYWxfY2FjaGUuaCIKICNpbmNsdWRlICJwYXNfdXRpbGl0eV9oZWFwLmgiCkBAIC04
MSwxMCArODEsMTAgQEAgdm9pZCBmbHVzaERlYWxsb2NhdGlvbkxvZ0FuZFN0b3BBbGxvY2F0bwog
Ly8gRklYTUU6IE9uY2Ugd2UgYWRkIHJlYWwgc2NhdmVuZ2luZywgd2Ugd2lsbCB3YW50IHRvIGFk
ZCBhIHNocmlua0hlYXBzKCkgZnVuY3Rpb24gdGhhdCBkb2VzCiAvLyBmbHVzaERlYWxsb2NhdGlv
bkxvZ0FuZFN0b3BBbGxvY2F0b3JzKCkgcGx1cyB0aGUgYWN0dWFsIHNjYXZlbmdpbmcuCiAKLXBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZUNsYXNzRm9yKHZvaWQqIG9i
amVjdCkKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplQ2xhc3NGb3Iodm9pZCog
b2JqZWN0KQogewogI2lmIFNFR0hFQVAKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0
cl90PihvYmplY3QpLCAmdGhpbmd5X2hlYXBfY29uZmlnKTsKICNlbHNlCiAgICAgcmV0dXJuIG51
bGxwdHI7CkBAIC0xMTMsNyArMTEzLDcgQEAgdm9pZCBmb3JFYWNoTGl2ZVV0aWxpdHlPYmplY3Qo
ZnVuY3Rpb248YgogCiAjaWYgU0VHSEVBUAogYm9vbCBmb3JFYWNoQ29tbWl0dGVkVmlld0FkYXB0
ZXIocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZUNsYXNzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIHNpemVDbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZv
aWQqIGFyZykKIHsKQEAgLTI2Miw5ICsyNjIsOSBAQCB2b2lkIHZlcmlmeUhlYXBFbXB0eShwYXNf
aGVhcCogaGVhcCkKICAgICBmb3JFYWNoQ29tbWl0dGVkVmlldygKICAgICAgICAgaGVhcCwKICAg
ICAgICAgWyZdIChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpIC0+IGJvb2wgewotICAgICAgICAg
ICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9vcl9iaWFzZWQodmlldykp
OworICAgICAgICAgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZSh2aWV3
KSk7CiAjaWYgVExDCi0gICAgICAgICAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF92aWV3X2lzX2Vt
cHR5X29yX2JpYXNlZCh2aWV3KSk7CisgICAgICAgICAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF92
aWV3X2lzX2VtcHR5KHZpZXcpKTsKICNlbmRpZgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0pOwpAQCAtOTY2LDI4ICs5NjYsMjYgQEAgdm9pZCB0ZXN0SW50ZXJuYWxTY2F2ZW5n
ZUZyb21Db3JyZWN0RGlyZQogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzEgPSBwYXNfc2Vn
cmVnYXRlZF92aWV3X2Zvcl9vYmplY3QocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVj
dDEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJnRoaW5neV9oZWFwX2NvbmZpZyk7CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkxID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX29iamVjdCgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
MSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgIHJl
aW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QxKSwgJnRoaW5neV9oZWFwX2NvbmZpZyk7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBnbG9iYWxEaXJlY3Rv
cnkxID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2dsb2JhbChk
aXJlY3RvcnkxKTsKICAgICAKLSAgICBDSEVDS19FUVVBTChnbG9iYWxEaXJlY3RvcnkxLT5vYmpl
Y3Rfc2l6ZSwgZmlyc3RTaXplKTsKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJl
Y3Rvcnlfc2l6ZShkaXJlY3RvcnkxKSwgMSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3RvcnkxLCAwKSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGlyZWN0b3J5MS0+YmFzZSwgMCkpOwot
ICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5
MSwgMCkpOworICAgIENIRUNLX0VRVUFMKGRpcmVjdG9yeTEtPm9iamVjdF9zaXplLCBmaXJzdFNp
emUpOworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJl
Y3RvcnkxLT5iYXNlKSwgMSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
c19lbGlnaWJsZSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOworICAgIENIRUNLKCFwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVD
SyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNl
LCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9nZXQoZGlyZWN0b3J5MSwgMCksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9n
ZXQoJmRpcmVjdG9yeTEtPmJhc2UsIDApLAogICAgICAgICB2aWV3MSk7CiAgICAgCiAgICAgZmx1
c2hEZWFsbG9jYXRpb25Mb2dBbmRTdG9wQWxsb2NhdG9ycygpOwogCi0gICAgQ0hFQ0tfRVFVQUwo
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5MSksIDEpOwotICAgIENIRUNL
KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3RvcnkxLCAwKSk7Ci0g
ICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGlyZWN0
b3J5MS0+YmFzZSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19j
b21taXR0ZWQoZGlyZWN0b3J5MSwgMCkpOworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnkxLT5iYXNlKSwgMSk7CisgICAgQ0hFQ0socGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7Cisg
ICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5MS0+
YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0
ZWQoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnkxLCAwKSwKKyAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5MS0+YmFzZSwgMCksCiAgICAgICAgIHZp
ZXcxKTsKICAgICAKICAgICB2b2lkKiBvYmplY3QyID0gdGhpbmd5X3RyeV9hbGxvY2F0ZV9wcmlt
aXRpdmUoc2Vjb25kU2l6ZSk7CkBAIC05OTYsNDUgKzk5NCw0MyBAQCB2b2lkIHRlc3RJbnRlcm5h
bFNjYXZlbmdlRnJvbUNvcnJlY3REaXJlCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3MiA9
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZm9yX29iamVjdChyZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4ob2JqZWN0MiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmdGhpbmd5X2hlYXBfY29uZmlnKTsKICAgICAKLSAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTIgPSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9mb3Jfb2JqZWN0KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnkyID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAg
ICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdDIpLCAmdGhpbmd5X2hlYXBf
Y29uZmlnKTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2Jh
bERpcmVjdG9yeTIgPQotICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRf
Z2xvYmFsKGRpcmVjdG9yeTIpOwogICAgIAotICAgIENIRUNLX0VRVUFMKGdsb2JhbERpcmVjdG9y
eTItPm9iamVjdF9zaXplLCBzZWNvbmRTaXplKTsKKyAgICBDSEVDS19FUVVBTChkaXJlY3Rvcnky
LT5vYmplY3Rfc2l6ZSwgc2Vjb25kU2l6ZSk7CiAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkxKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVDSygh
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNl
LCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChk
aXJlY3RvcnkxLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSygh
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7
CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0
b3J5MS0+YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTEsIDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSwKICAgICAgICAgdmlldzEpOwogICAg
IAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9y
eTIpLCAxKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxl
KGRpcmVjdG9yeTIsIDApKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkyLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkyLCAwKSk7CisgICAgQ0hFQ0tf
RVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTItPmJhc2UpLCAx
KTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJl
Y3RvcnkyLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
c19lbXB0eSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsKICAgICBDSEVD
S19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3Rvcnky
LCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5Mi0+
YmFzZSwgMCksCiAgICAgICAgIHZpZXcyKTsKICAgICAKICAgICBmbHVzaERlYWxsb2NhdGlvbkxv
Z0FuZFN0b3BBbGxvY2F0b3JzKCk7CiAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkxKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVDSyghcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7
Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3Rv
cnkxLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUo
JmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAg
Q0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5MS0+
YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfZ2V0KGRpcmVjdG9yeTEsIDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfZ2V0KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSwKICAgICAgICAgdmlldzEpOwogICAgIAotICAg
IENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTIpLCAx
KTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0
b3J5MiwgMCkpOwotICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHko
Jmdsb2JhbERpcmVjdG9yeTItPmJhc2UsIDApKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeTIsIDApKTsKKyAgICBDSEVDS19FUVVBTChw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5Mi0+YmFzZSksIDEpOworICAg
IENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5Mi0+
YmFzZSwgMCkpOworICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHko
JmRpcmVjdG9yeTItPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwo
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5MiwgMCksCisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVjdG9yeTItPmJhc2UsIDAp
LAogICAgICAgICB2aWV3Mik7CiAgICAgCiAgICAgdGhpbmd5X2RlYWxsb2NhdGUob2JqZWN0MSk7
CkBAIC0xMDQyLDIwICsxMDM4LDIwIEBAIHZvaWQgdGVzdEludGVybmFsU2NhdmVuZ2VGcm9tQ29y
cmVjdERpcmUKIAogICAgIGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3RvcEFsbG9jYXRvcnMoKTsK
IAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9y
eTEpLCAxKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUo
ZGlyZWN0b3J5MSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19l
bXB0eSgmZ2xvYmFsRGlyZWN0b3J5MS0+YmFzZSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5MSwgMCkpOworICAgIENIRUNLX0VR
VUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnkxLT5iYXNlKSwgMSk7
CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3Rv
cnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2Vt
cHR5KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOwogICAgIENIRUNLX0VR
VUFMKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTEsIDAp
LAorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkxLT5iYXNl
LCAwKSwKICAgICAgICAgdmlldzEpOwogCi0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5MiksIDEpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3RvcnkyLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkyLT5iYXNlLCAwKSk7
Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3Rv
cnkyLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUo
JmRpcmVjdG9yeTItPmJhc2UpLCAxKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsKKyAgICBD
SEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkyLT5i
YXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9nZXQoZGlyZWN0b3J5MiwgMCksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9nZXQoJmRpcmVjdG9yeTItPmJhc2UsIDApLAogICAgICAgICB2aWV3Mik7CiAgICAgCiAgICAg
dm9pZCogb2JqZWN0MyA9IHRoaW5neV90cnlfYWxsb2NhdGVfcHJpbWl0aXZlKHRoaXJkU2l6ZSk7
CkBAIC0xMDY0LDMxICsxMDYwLDI5IEBAIHZvaWQgdGVzdEludGVybmFsU2NhdmVuZ2VGcm9tQ29y
cmVjdERpcmUKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXczID0gcGFzX3NlZ3JlZ2F0ZWRf
dmlld19mb3Jfb2JqZWN0KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QzKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZ0aGluZ3lfaGVhcF9jb25maWcpOwogICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSogZGlyZWN0b3J5MyA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmpl
Y3QoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTMgPSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0MyksICZ0aGluZ3lfaGVhcF9jb25maWcpOwotICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZ2xvYmFsRGlyZWN0b3J5MyA9Ci0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9nbG9iYWwoZGlyZWN0b3J5
Myk7Ci0gICAgQ0hFQ0tfRVFVQUwoZ2xvYmFsRGlyZWN0b3J5My0+b2JqZWN0X3NpemUsIHRoaXJk
U2l6ZSk7Ci0gICAgCi0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Np
emUoZGlyZWN0b3J5MSksIDEpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
c19lbGlnaWJsZShkaXJlY3RvcnkxLCAwKSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGlyZWN0b3J5MS0+YmFzZSwgMCkpOwotICAgIENIRUNL
KCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeTEsIDApKTsK
LQotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9y
eTIpLCAxKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUo
ZGlyZWN0b3J5MiwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19l
bXB0eSgmZ2xvYmFsRGlyZWN0b3J5Mi0+YmFzZSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5MiwgMCkpOworICAgIENIRUNLX0VR
VUFMKGRpcmVjdG9yeTMtPm9iamVjdF9zaXplLCB0aGlyZFNpemUpOworICAgIAorICAgIENIRUNL
X0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnkxLT5iYXNlKSwg
MSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJl
Y3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
c19lbXB0eSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOworICAgIENIRUNLKCFwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisKKyAgICBD
SEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5Mi0+YmFz
ZSksIDEpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZSgm
ZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9pc19lbXB0eSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsKICAgICBD
SEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3Rv
cnkyLCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5
Mi0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcyKTsKICAgICAKLSAgICBDSEVDS19FUVVBTChwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkzKSwgMSk7Ci0gICAgQ0hFQ0soIXBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3RvcnkzLCAwKSk7Ci0gICAg
Q0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGlyZWN0b3J5
My0+YmFzZSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21t
aXR0ZWQoZGlyZWN0b3J5MywgMCkpOworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9zaXplKCZkaXJlY3RvcnkzLT5iYXNlKSwgMSk7CisgICAgQ0hFQ0soIXBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5My0+YmFzZSwgMCkpOworICAg
IENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTMtPmJh
c2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVk
KCZkaXJlY3RvcnkzLT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5MywgMCksCisgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVjdG9yeTMtPmJhc2UsIDApLAogICAgICAgICB2aWV3
Myk7CiAKICAgICBDSEVDS19FUVVBTChwYXNfc2NhdmVuZ2VyX2N1cnJlbnRfc3RhdGUsIHBhc19z
Y2F2ZW5nZXJfc3RhdGVfbm9fdGhyZWFkKTsKQEAgLTExMzAsMTEgKzExMjQsMTEgQEAgdm9pZCB0
ZXN0U2l6ZUNsYXNzQ3JlYXRpb25JbXBsKGNvbnN0IHZlYwogI2lmIFRMQwogICAgIHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2xfdmFsaWRhdGVfZWFjaF9zcGxhdCA9IHRydWU7CiAjZW5kaWYKLSAgICBt
YXA8c2l6ZV90LCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqPiBzaXplTWFw
OworICAgIG1hcDxzaXplX3QsIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Kj4gc2l6ZU1h
cDsKICAgICBmb3IgKGNvbnN0IFNpemVDbGFzc1Byb2dyYW0mIHByb2dyYW0gOiBwcm9ncmFtcykg
ewogICAgICAgICBjb3V0IDw8ICIgICAgUHJvZ3JhbTogIiA8PCBwcm9ncmFtLm5hbWUgPDwgZW5k
bDsKICAgICAgICAgCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogcmVzdWx0aW5nU2l6ZUNsYXNzID0gbnVsbHB0cjsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIHJlc3VsdGluZ1NpemVDbGFzcyA9IG51bGxwdHI7CiAgICAgICAgIAog
ICAgICAgICB7CiAjaWYgUEFTX0VOQUJMRV9URVNUSU5HCkBAIC0xMTc3LDcgKzExNzEsNiBAQCB2
b2lkIHRlc3RTcHVyaW91c0VsaWdpYmlsaXR5KCkKICNpZiBUTEMKICAgICBwYXNfc2NhdmVuZ2Vy
X3N1c3BlbmQoKTsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX3ZhbGlkYXRlX2VhY2hfc3Bs
YXQgPSB0cnVlOwotICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5n
ID0gZmFsc2U7CiAjZW5kaWYKICAgICAKICAgICB1bnNpZ25lZCBvYmplY3RTaXplID0gMTY7CkBA
IC0xNTM4LDYgKzE1MzEsOCBAQCB2b2lkIHRlc3RDb21wbGV4TGFyZ2VBbGxvY2F0aW9uSW1wbChj
b25zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFeHBlY3RlZEJ5dGVzIGV4
cGVjdGVkTnVtTWFwcGVkQnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCB2ZWN0b3I8QWxsb2NhdGlvblByb2dyYW0+JiBwcm9ncmFtcykKIHsKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAogI2lmIFRMQwogICAgIHBh
c19sYXJnZV9zaGFyaW5nX3Bvb2xfdmFsaWRhdGVfZWFjaF9zcGxhdCA9IHRydWU7CiAjZW5kaWYK
QEAgLTE1NTAsNiArMTU0NSwxMCBAQCB2b2lkIHRlc3RDb21wbGV4TGFyZ2VBbGxvY2F0aW9uSW1w
bChjb25zCiAgICAgICAgICAgICBjb3V0IDw8ICIgICAgUHJvZ3JhbTogYWxsb2NhdGUoIiA8PCBw
cm9ncmFtLmtleSgpIDw8ICIsICIgPDwgcHJvZ3JhbS5jb3VudCgpIDw8ICIsICIKICAgICAgICAg
ICAgICAgICAgPDwgcHJvZ3JhbS5hbGlnbm1lbnQoKSA8PCAiKSIgPDwgZW5kbDsKICAgICAgICAg
ICAgIHZvaWQqIHB0ciA9IGFsbG9jYXRvci5hbGxvY2F0ZShwcm9ncmFtLmNvdW50KCksIHByb2dy
YW0uYWxpZ25tZW50KCkpOworICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAg
ICAgICBjb3V0IDw8ICJBbGxvY2F0ZWQgcHRyID0gIiA8PCBwdHIgPDwgIiB3aXRoIGtpbmQgIgor
ICAgICAgICAgICAgICAgICAgICAgPDwgcGFzX2dldF9vYmplY3Rfa2luZChwdHIsIFRISU5HWV9I
RUFQX0NPTkZJRykgPDwgZW5kbDsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIENIRUNLKHBh
c19pc19hbGlnbmVkKHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpLCBwcm9ncmFtLmFs
aWdubWVudCgpKSk7CiAgICAgICAgICAgICBDSEVDSyghb2JqZWN0QnlLZXkuY291bnQocHJvZ3Jh
bS5rZXkoKSkpOwogICAgICAgICAgICAgb2JqZWN0QnlLZXlbcHJvZ3JhbS5rZXkoKV0gPSBwdHI7
CkBAIC0zMjE4LDE1ICszMjE3LDcgQEAgdm9pZCBhZGRBbGxUZXN0cygpCiAgICAgICAgICAgICB9
KTsKICAgICAgICAgCiAgICAgICAgIGFkZEFsbFRlc3RzSW1wbCgpOwotCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIERpc2FibGVFeHBsb3Npb24gRGlzYWJsZUV4cGxvc2lvbjsKLSAgICAgICAgICAg
IGFkZFNtYWxsSGVhcFRlc3RzKCk7Ci0gICAgICAgIH0KLSAgICAgICAgewotICAgICAgICAgICAg
Rm9yY2VFeHBsb3Npb24gZm9yY2VFeHBsb3Npb247Ci0gICAgICAgICAgICBhZGRTbWFsbEhlYXBU
ZXN0cygpOwotICAgICAgICB9CisgICAgICAgIGFkZFNtYWxsSGVhcFRlc3RzKCk7CiAgICAgfQog
fQogCkBAIC0zMjQ0LDcgKzMyMzUsNiBAQCB2b2lkIGFkZFRoaW5neUFuZFV0aWxpdHlIZWFwQWxs
b2NhdGlvblRlCiAKICAgICBGb3JjZUV4Y2x1c2l2ZXMgZm9yY2VFeGNsdXNpdmVzOwogICAgIEZv
cmNlVExBcyBmb3JjZVRMQXM7Ci0gICAgRm9yY2VPbmVNYWdhemluZSBmb3JjZU9uZU1hZ2F6aW5l
OwogICAgIEVwb2NoSXNDb3VudGVyIGVwb2NoSXNDb3VudGVyOwogCiAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>437793</attachid>
            <date>2021-09-09 15:20:56 -0700</date>
            <delta_ts>2021-09-15 18:39:25 -0700</delta_ts>
            <desc>added RAMification number to changelog</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>1216229</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxNiBAQAorMjAyMS0wOS0wOSAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIFVwZGF0ZSB0byA5
NzZmOGRkZGZiODcyMTA5NWY2OGNlNTY5NzM0MDFhMzQyYjE4Y2I1IGFuZCBmdWxseSBlbmFibGUg
b24gQVMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MDEyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgdXBkYXRlcyBsaWJwYXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIGFuZCBlbmFibGVzIGl0IGNv
bXBsZXRlbHkgb24gQVMgKG5vdCBqdXN0IGZvcgorICAgICAgICBqaXRfaGVhcCBhcyBiZWZvcmUp
LgorCisgICAgICAgIFRoZSBtYWluIGNoYW5nZXMgYXJlOgorCisgICAgICAgIC0gUmVwbGFjZSBi
aWFzaW5nIGFuZCBtYWdhemluZXMgd2l0aCBwZXItdGhyZWFkIHZpZXcgY2FjaGVzLiBBIHZpZXcg
Y2FjaGUgaXMgYSBib3VuZGVkLXNpemUKKyAgICAgICAgICBxdWV1ZSBvZiBleGNsdXNpdmVfdmll
d3MgKGkuZS4gcGFnZXMpIHRoYXQgaXMgbG9jYWwgdG8gYSB0aHJlYWQuIEVhY2ggdGhyZWFkIGhh
cyBhIHZpZXcKKyAgICAgICAgICBjYWNoZSBmb3IgZXZlcnkgc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSB0aGF0IGl0IHRhbGtzIHRvIGFuZCB0aGF0IGhhcyB2aWV3IGNhY2hpbmcKKyAgICAgICAg
ICBlbmFibGVkLiBUaGUgc2l6ZSBkaXJlY3RvcmllcyBjYW4gY29udHJvbCB2aWV3IGNhY2hlIHNp
emUgc29tZXdoYXQgZHluYW1pY2FsbHkgKGRpZmZlcmVudAorICAgICAgICAgIGRpcmVjdG9yaWVz
IGNhbiBoYXZlIGRpZmZlcmVudCBzaXplIHZpZXcgY2FjaGVzKS4gVmlld3MgZ2V0IGVucXVldWVk
IHdoZW4gYSB0aHJlYWQgZnJlZXMKKyAgICAgICAgICB0aGUgZmlyc3Qgb2JqZWN0IGluIHRoZSBw
YWdlLiBWaWV3cyBnZXQgZGVxdWV1ZWQgd2hlbmV2ZXIgYSB0aHJlYWQgd291bGQgaGF2ZSBhc2tl
ZCB0aGUKKyAgICAgICAgICBkaXJlY3RvcnkgZm9yIGEgdmlldyBidXQgdGhlIHZpZXcgY2FjaGUg
d2FzIG5vbi1lbXB0eS4KKworICAgICAgICAgIFRoaXMgY2hhbmdlIGluY3JlYXNlcyB0aGUgZWZm
aWNpZW5jeSBvZiBsb2NhbF9hbGxvY2F0b3JfcmVmaWxsLCBzaW5jZSBwYWdlcyBoYXZlIGEgbG9u
Z2VyCisgICAgICAgICAgdGltZSB0byAiY29vayIgYmVmb3JlIGFueW9uZSBhbGxvY2F0ZXMgZnJv
bSB0aGVtIChzaW5jZSB0aGUgdmlldyBjYWNoZSBpcyBhIHF1ZXVlKS4gQXMKKyAgICAgICAgICB3
ZWxsLCB2aWV3IGNhY2hlcycgdGhyZWFkLWxvY2FsaXR5IG1lYW5zIHRoYXQgdGhlcmUgaXMgbm8g
bG9ja2luZyBvciBjb250ZW50aW9uIHdoZW4KKyAgICAgICAgICBhY2Nlc3NpbmcgdGhlbS4gVGhl
IHNjYXZlbmdlciBoYXMgY2xldmVyIHRyaWNrcyBmb3IgY2xlYXJpbmcgb3V0IHZpZXcgY2FjaGVz
LCBzaW1pbGFybHkgdG8KKyAgICAgICAgICBob3cgaXQgY2xlYXJzIG91dCBsb2NhbCBhbGxvY2F0
b3JzIChpdCB1c2VzIHRocmVhZF9zdXNwZW5kKS4KKworICAgICAgICAtIEZpeCBoYXNoIGNvbGxp
c2lvbnMgaW4gdGhlIHBhZ2UgaGVhZGVyIHRhYmxlLiBQcmV2aW91c2x5LCBJIHdhcyB1c2luZyBh
biB1bmFjY2VwdGFibHkKKyAgICAgICAgICB0cml2aWFsIGhhc2ggZnVuY3Rpb24gYW5kIGl0IF9z
b21ldGltZXNfIGNhdXNlZCBwZXJmIHBhdGhvbG9naWVzLgorCisgICAgICAgIC0gR2V0IHJpZCBv
ZiBpbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQsIHNpbmNlIHRoaXMgd2FzIGFubm95aW5nbHkg
cmVkdW5kYW50IHdpdGgKKyAgICAgICAgICBhbGxvY2F0aW9uX3Jlc3VsdC4KKworICAgICAgICAt
IFJlZmFjdG9yIHNvbWUgYWxsb2NhdGlvbiBmYXN0IHBhdGhzIHNvIHRoYXQgdGhleSBoYXZlIGZl
d2VyIGNhbGxlZS1zYXZlcy4KKworICAgICAgICAtIE1ha2Ugc2NhdmVuZ2luZyBhIHdob2xlIGxv
dCBtb3JlIHByZWNpc2UuIFNjYXZlbmdpbmcgaXMgbm93IGJhc2VkIG9uIHRpbWUgc2luY2Ugd2hl
biBhCisgICAgICAgICAgcGFnZSBiZWNvbWUgZW1wdHkuIElmIGVub3VnaCB0aW1lIHBhc3NlcyAo
Y3VycmVudGx5IDMwMG1zKSB0aGVuIHN1Y2ggYSBwYWdlIGlzIGRlY29tbWl0dGVkLgorICAgICAg
ICAgIFByZXZpb3VzbHkgdGhlIGhldXJpc3RpYyB3YXMgbm90IG5lYXJseSBzbyBjbGVhci4gVGhp
cyBpbXByb3ZlcyBtZW1vcnkgdXNhZ2Ugd2l0aG91dAorICAgICAgICAgIHJlYWxseSBodXJ0aW5n
IHBlcmZvcm1hbmNlIChpdCBzaGlmdHMgdGhlIHRpbWUtbWVtb3J5IGN1cnZlIGNsb3NlciB0byB0
aGUgb3JpZ2luLCBhbmQKKyAgICAgICAgICB0aGlzIGFsc28gY2hhbmdlcyB0dW5pbmcgcGFyYW1l
dGVycyBzbyB0aGF0IGl0J3MgYSBzbGlnaHQgc3BlZWQtdXAgYW5kIGEgc2xpZ2h0IG1lbW9yeQor
ICAgICAgICAgIGltcHJvdmVtZW50LCBidXQgaXQgY291bGQgaGF2ZSBiZWVuIGEgYmlnZ2VyIG1l
bW9yeSBpbXByb3ZlbWVudCB3aXRoIG5vIHNwZWVkLXVwLCBvciBhbgorICAgICAgICAgIGV2ZW4g
YmlnZ2VyIG1lbW9yeSBpbXByb3ZlbWVudCB3aXRoIGEgc2xvdy1kb3duKS4KKworICAgICAgICAx
LjMlIGZhc3RlciBvbiBTcGVlZG9tZXRlcjIuIE5ldXRyYWwgb24gSmV0U3RyZWFtMi4gMy43JSBs
ZXNzIG1lbW9yeSBvbiBSQU1pZmljYXRpb24uIExhc3QKKyAgICAgICAgSSB0ZXN0ZWQgaXQsIGl0
IHdhcyBhIGJpZyB3aW4gb24gUExVTSBhbmQgbWVtYnVzdGVyIGFzIHdlbGwuCisKKyAgICAgICAg
KiBibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYm1hbGxvYy9C
UGxhdGZvcm0uaDoKKyAgICAgICAgKiBsaWJwYXMvZXhwb3J0LnNoOiBBZGRlZC4KKyAgICAgICAg
KiBsaWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmM6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRl
X3Nsb3cpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcu
YzoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmg6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2lubGluZXMuaDoKKyAgICAg
ICAgKGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9h
bGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxs
b2NhdGVfemVyb2VkX2lubGluZSk6CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX2lubGluZSk6
CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50X2lubGluZSk6CisgICAg
ICAgIChibWFsbG9jX2FsbG9jYXRlX3plcm9lZF9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY190
cnlfcmVhbGxvY2F0ZV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19yZWFsbG9jYXRlX2lubGlu
ZSk6CisgICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfaW5saW5lKToKKyAg
ICAgICAgKGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSk6CisgICAgICAgIChibWFs
bG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2lubGluZSk6CisgICAgICAgIChibWFs
bG9jX2FsbG9jYXRlX2F1eGlsaWFyeV96ZXJvZWRfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2Nf
dHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV93aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAgICAo
Ym1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnbm1lbnRfaW5saW5lKToKKyAgICAg
ICAgKGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSk6CisgICAgICAgIChi
bWFsbG9jX3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSk6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvaG90Yml0X2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaG90
Yml0X2hlYXBfaW5saW5lcy5oOgorICAgICAgICAoaG90Yml0X3RyeV9hbGxvY2F0ZV9pbmxpbmUp
OgorICAgICAgICAoaG90Yml0X3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbmxpbmUpOgor
ICAgICAgICAoaG90Yml0X3RyeV9yZWFsbG9jYXRlX2lubGluZSk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvaXNvX2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaXNvX2hl
YXBfaW5saW5lcy5oOgorICAgICAgICAoaXNvX3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZl
X2lubGluZSk6CisgICAgICAgIChpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0
aF9hbGlnbm1lbnRfaW5saW5lKToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3By
aW1pdGl2ZV96ZXJvZWRfaW5saW5lKToKKyAgICAgICAgKGlzb19hbGxvY2F0ZV9jb21tb25fcHJp
bWl0aXZlX2lubGluZSk6CisgICAgICAgIChpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93
aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAgICAoaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmlt
aXRpdmVfemVyb2VkX2lubGluZSk6CisgICAgICAgIChpc29fdHJ5X3JlYWxsb2NhdGVfY29tbW9u
X3ByaW1pdGl2ZV9pbmxpbmUpOgorICAgICAgICAoaXNvX3JlYWxsb2NhdGVfY29tbW9uX3ByaW1p
dGl2ZV9pbmxpbmUpOgorICAgICAgICAoaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5l
KToKKyAgICAgICAgKGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlz
b190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX3plcm9lZF9pbmxpbmUpOgorICAgICAgICAoaXNvX2Fs
bG9jYXRlX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKToKKyAgICAgICAgKGlzb190cnlfYWxsb2Nh
dGVfcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2lubGluZSk6CisgICAgICAgIChpc29fYWxsb2Nh
dGVfcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2lubGluZSk6CisgICAgICAgIChpc29fdHJ5X3Jl
YWxsb2NhdGVfcHJpbWl0aXZlX2lubGluZSk6CisgICAgICAgIChpc29fcmVhbGxvY2F0ZV9wcmlt
aXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfZm9yX29iamNfaW5saW5l
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwLmM6CisgICAgICAg
IChpc29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5jOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvaml0X2hlYXAuYzoKKyAgICAgICAgKGppdF9oZWFwX3RyeV9hbGxvY2F0ZSk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmM6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmM6CisgICAgICAgIChtaW5hbGlnbjMyX2FsbG9j
YXRlX2NvbW1vbl9wcmltaXRpdmUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL21pbmFs
aWduMzJfaGVhcF9jb25maWcuYzoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9taW5hbGln
bjMyX2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2
NGtfaGVhcC5jOgorICAgICAgICAocGFnZXNpemU2NGtfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2
ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcu
YzoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
cy5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2lu
Z19kaXJlY3Rvcmllcy5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19hbGxfaGVhcHMuYzoKKyAgICAgICAgKGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Np
emVfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3NlZ3JlZ2F0ZWRfaGVhcF9jYWxsYmFjayk6CisgICAgICAgIChkdW1wX2RpcmVjdG9y
eV9uaWNlbHkpOgorICAgICAgICAoY29tcHV0ZV90b3RhbF9ub25fdXRpbGl0eV9zZWdyZWdhdGVk
X3N1bW1hcnlfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKGZvcl9lYWNoX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayk6IERlbGV0ZWQuCisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuYzogUmVtb3ZlZC4K
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX21hZ2F6aW5lcy5oOiBSZW1vdmVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5jOiBS
ZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3Vs
dC5oOgorICAgICAgICAocGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KToKKyAgICAgICAg
KHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKToKKyAgICAgICAgKHBhc19hbGxvY2F0aW9uX3Jl
c3VsdF9zZXRfZXJybm8pOgorICAgICAgICAocGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29u
X2Vycm9yKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yLmM6CisgICAgICAgIChwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2F0dGFjaF9kaXJlY3Rvcnkp
OgorICAgICAgICAocGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9kZXRhY2hfZGlyZWN0b3J5KToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmg6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmM6IFJlbW92ZWQu
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5Lmg6IFJl
bW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2lubGluZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2FsbG9jYXRvci5jOgorICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3Zp
ZXcpOgorICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfZmluaXNoX2ZhaWxpbmcpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmg6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oOgorICAg
ICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfcmVzZXQpOgorICAgICAgICAocGFzX2JpdGZpdF9h
bGxvY2F0b3JfYXNzZXJ0X3Jlc2V0KToKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX3Ry
eV9hbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeS5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5jOgorICAgICAgICAocGFzX2JpdGZpdF9k
aXJlY3RvcnlfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9m
cmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWQpOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3Rv
cnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91bnByb2Nlc3NlZF91bmNoZWNrZWQpOgorICAgICAgICAo
cGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0eSk6CisgICAgICAg
IChwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJlZV92aWV3KToKKyAgICAgICAgKHBh
c19iaXRmaXRfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyk6CisgICAgICAgIChwYXNfYml0Zml0X2Rp
cmVjdG9yeV9nZXRfdXNlX2Vwb2NoKToKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X2dl
dF9lbXB0eV9iaXRfYXRfaW5kZXgpOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0
X2VtcHR5X2JpdF9hdF9pbmRleCk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3
X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgpOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3Rv
cnlfdmlld19kaWRfYmVjb21lX2VtcHR5KToKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5
X3Rha2VfbGFzdF9lbXB0eSk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV9kdW1wX3Jl
ZmVyZW5jZSk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1
bSk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV91cGRhdGVfYmlhc2luZ19lbGlnaWJp
bGl0eSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9k
aWRfYmVjb21lX2VtcHR5X3dpdGhvdXRfYmlhc2luZ191cGRhdGUpOiBEZWxldGVkLgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5Lmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4Lmg6IFJlbW92
ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5s
aW5lcy5oOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2dsb2JhbCk6IERlbGV0
ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2lu
ZC5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeS5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYzogUmVtb3ZlZC4KKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmg6IFJl
bW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmM6Cisg
ICAgICAgIChwYXNfYml0Zml0X2hlYXBfY3JlYXRlKToKKyAgICAgICAgKHBhc19iaXRmaXRfaGVh
cF9lbnN1cmVfc2l6ZV9jbGFzcyk6CisgICAgICAgIChwYXNfYml0Zml0X2hlYXBfY29tcHV0ZV9z
dW1tYXJ5KToKKyAgICAgICAgKHBhc19iaXRmaXRfaGVhcF9mb3JfZWFjaF9saXZlX29iamVjdCk6
CisgICAgICAgIChwYXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2JhbF9zaXplX2NsYXNzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuaDoKKyAg
ICAgICAgKHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuYzoKKyAgICAgICAgKHBhc19iaXRmaXRfcGFnZV9n
ZXRfY29uZmlnKToKKyAgICAgICAgKHBhc19iaXRmaXRfcGFnZV9mb3JfZWFjaF9saXZlX29iamVj
dCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5o
OgorICAgICAgICAocGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191c2VzX3N1YnBhZ2VzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5o
OgorICAgICAgICAocGFzX2JpdGZpdF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlX2ltcGwpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5jOgorICAg
ICAgICAocGFzX2JpdGZpdF9zaXplX2NsYXNzX2NyZWF0ZSk6CisgICAgICAgIChwYXNfYml0Zml0
X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2ZyZWVfdmlldyk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF92aWV3LmM6CisgICAgICAgIChwYXNfYml0Zml0X3ZpZXdfY3JlYXRlKToK
KyAgICAgICAgKHBhc19iaXRmaXRfdmlld19ub3RlX25vbmVtcHRpbmVzcyk6CisgICAgICAgIChk
aWRfYmVjb21lX2VtcHR5X2Zvcl9iaXRzKToKKyAgICAgICAgKHBhc19iaXRmaXRfdmlld19ub3Rl
X2Z1bGxfZW1wdGluZXNzKToKKyAgICAgICAgKHBhc19iaXRmaXRfdmlld19ub3RlX21heF9mcmVl
KToKKyAgICAgICAgKGNvbXB1dGVfc3VtbWFyeSk6CisgICAgICAgIChmb3JfZWFjaF9saXZlX29i
amVjdCk6CisgICAgICAgIChwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19zbG93
KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXcu
aDoKKyAgICAgICAgKHBhc19iaXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5o
OgorICAgICAgICAocGFzX2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRleCk6
IERlbGV0ZWQuCisgICAgICAgIChwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3RvcnkpOiBE
ZWxldGVkLgorICAgICAgICAocGFzX2JpdGZpdF92aWV3X2luZGV4X2luX2N1cnJlbnQpOiBEZWxl
dGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5o
OiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5o
OiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5o
OiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zdWJwYWdl
X21hcF9lbnRyeV9wdHIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfZGVhbGxvY2F0ZS5jOgorICAgICAgICAoZGVhbGxvY2F0ZV9zZWdyZWdhdGVkKToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmg6
CisgICAgICAgIChwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uX2dldF9zdHJpbmcpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
LmM6CisgICAgICAgIChzZXRfdXBfcmFuZ2UpOgorICAgICAgICAocGFzX2Rlc2lnbmF0ZWRfaW50
cmluc2ljX2hlYXBfaW5pdGlhbGl6ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5oOgorICAgICAgICAocGFzX2Rlc2ln
bmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKToKKyAgICAgICAgKHBh
c19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9kZXNpZ25hdGVkX2luZGljZXNfZm9yX3Nt
YWxsX2NvbmZpZyk6CisgICAgICAgIChwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNp
Z25hdGVkX2luZGV4X2Zvcl9zbWFsbF9jb25maWcpOgorICAgICAgICAocGFzX2Rlc2lnbmF0ZWRf
aW50cmluc2ljX2hlYXBfbnVtX2Rlc2lnbmF0ZWRfaW5kaWNlcyk6CisgICAgICAgIChwYXNfZGVz
aWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGVkX2luZGV4KToKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jOgorICAgICAgICAodmll
d19jYWxsYmFjayk6CisgICAgICAgIChlbnVtZXJhdGVfYml0Zml0X2RpcmVjdG9yeSk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmM6
CisgICAgICAgIChyZWNvcmRfcGFnZV9vYmplY3RzKToKKyAgICAgICAgKGVudW1lcmF0ZV9leGNs
dXNpdmVfdmlldyk6CisgICAgICAgIChlbnVtZXJhdGVfcGFydGlhbF92aWV3KToKKyAgICAgICAg
KGVudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBfY2FsbGJhY2spOgorICAgICAgICAocGFzX2VudW1l
cmF0ZV9zZWdyZWdhdGVkX2hlYXBzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5oOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oOgorICAgICAgICAocGFzX2Z1
bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX2V4Y2x1c2l2ZSk6CisgICAgICAgIChwYXNfZnVsbF9h
bGxvY19iaXRzX2NyZWF0ZV9mb3Jfdmlld19hbmRfZGlyZWN0b3J5KToKKyAgICAgICAgKHBhc19m
dWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl92aWV3KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfZ2V0X2hlYXAuaDoKKyAgICAgICAgKHBhc19nZXRfaGVhcCk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuYzoKKyAgICAgICAgKHBhc19oZWFwX2Vuc3VyZV9z
aXplX2RpcmVjdG9yeV9mb3JfY291bnRfc2xvdyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXAuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25m
aWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfaW5saW5l
cy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlsc19pbmxp
bmVzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfaW5saW5lcy5oOgor
ICAgICAgICAocGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25maWcuYzogQWRkZWQu
CisgICAgICAgIChwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ192aWV3X2NhY2hlX2NhcGFjaXR5X2Zv
cl9vYmplY3Rfc2l6ZSk6CisgICAgICAgIChwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3Zp
ZXdfY2FjaGVfY2FwYWNpdHkpOgorICAgICAgICAocGFzX2hlYXBfcnVudGltZV9jb25maWdfYWdn
cmVzc2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19pbnRlcm5hbF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Lmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUu
YzoKKyAgICAgICAgKGxhcmdlX2FsaWduZWRfYWxsb2NhdG9yKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmM6CisgICAgICAgIChwYXNfbG9jYWxfYWxs
b2NhdG9yX2NvbnN0cnVjdCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc2V0KToK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfbW92ZSk6CisgICAgICAgIChwYXNfbG9jYWxf
YWxsb2NhdG9yX2ZpbmlzaF9yZWZpbGxfd2l0aF9iaXRmaXQpOgorICAgICAgICAoc3RvcF9pbXBs
KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcCk6CisgICAgICAgIChwYXNfbG9j
YWxfYWxsb2NhdG9yX3NjYXZlbmdlKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfZGVz
dHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9h
bGxvY2F0b3IuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2Nh
dG9yX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzZXRfaW1wbCk6
CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9idW1wKToKKyAgICAgICAgKHBh
c19sb2NhbF9hbGxvY2F0b3Jfc2Nhbl9iaXRzX3RvX3NldF91cF9mcmVlX2JpdHMpOgorICAgICAg
ICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfZnJlZV9iaXRzKToKKyAgICAgICAgKHBhc19s
b2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90b19hbGxvY2F0ZSk6CisgICAgICAgIChwYXNfbG9jYWxf
YWxsb2NhdG9yX3N0YXJ0X2FsbG9jYXRpbmdfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcpOgor
ICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jb25maWcpOgor
ICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZ2Vfc2V0X2Jp
dF9jYWxsYmFjayk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3JldHVybl9tZW1vcnlf
dG9fcGFnZSk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV93aXRo
X2ZyZWVfYml0cyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9p
bmxpbmVfY2FzZXMpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVf
c21hbGxfc2VncmVnYXRlZF9zbG93KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5
X2FsbG9jYXRlX3Nsb3cpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2Nh
dGVfaW5saW5lX29ubHkpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2Nh
dGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfa2lu
ZC5oOiBBZGRlZC4KKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZF9nZXRfc3RyaW5n
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2Nh
dG9yX3Jlc3VsdC5oOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRl
X3N1Y2Nlc3MpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGEuYzogQWRkZWQuCisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2ZSk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhX3N0b3ApOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaDogQWRkZWQuCisgICAgICAgIChwYXNfbG9j
YWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbnN0cnVjdCk6CisgICAgICAgIChwYXNfbG9j
YWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91c2VfZm9yX2FsbG9jYXRpb24pOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmM6IEFkZGVkLgor
ICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19s
b2NhbF92aWV3X2NhY2hlX21vdmUpOgorICAgICAgICAoc3RvcF9pbXBsKToKKyAgICAgICAgKHBh
c19sb2NhbF92aWV3X2NhY2hlX3N0b3ApOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF92aWV3X2NhY2hlLmg6IEFkZGVkLgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfaXNfZW1wdHkpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcG9wKToKKyAgICAg
ICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwpOgorICAgICAgICAocGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfcHVzaCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfbm9kZS5jOiBBZGRlZC4KKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX25v
ZGVfY3JlYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19j
YWNoZV9ub2RlLmg6IEFkZGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nr
X2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5oOgorICAgICAgICAocGFz
X2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlX2ZpbmQpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19tYWdhemluZS5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmg6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmg6CisgICAgICAgIChwYXNfcGFnZV9oZWFk
ZXJfdGFibGVfaGFzaCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudC5jOgorICAgICAgICAocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9nZXRfcGF5bG9hZCk6CisgICAgICAgIChwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dl
dF91c2VfZXBvY2gpOgorICAgICAgICAocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRf
cGFyZW50X3Bvb2wpOgorICAgICAgICAocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9pc19l
bGlnaWJsZSk6CisgICAgICAgIChwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3Rha2VfbGVh
c3RfcmVjZW50bHlfdXNlZCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5oOgorICAgICAgICAocGFzX3BhZ2Vfc2hhcmlu
Z19wYXJ0aWNpcGFudF9raW5kX3NlbGVjdF9mb3Jfc2VncmVnYXRlZF9kaXJlY3RvcnkpOgorICAg
ICAgICAocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kX2dldF9zdHJpbmcpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5jOgorICAgICAg
ICAocGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlKToKKyAgICAgICAgKHBh
c19iaWFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5oOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaDogQWRkZWQu
CisgICAgICAgIChwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0X2NyZWF0ZSk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0
b3Jfbm9kZS5jOgorICAgICAgICAocGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9j
cmVhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19yZWR1bmRhbnRfbG9jYWxf
YWxsb2NhdG9yX25vZGUuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVu
Z2VyLmM6CisgICAgICAgIChzY2F2ZW5nZXJfdGhyZWFkX21haW4pOgorICAgICAgICAocGFzX3Nj
YXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzX2V4Y2VwdF9yZW1vdGVfdGxjcyk6CisgICAgICAgIChw
YXNfc2NhdmVuZ2VyX2RlY29tbWl0X2ZyZWVfbWVtb3J5KToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oOiBSZW1vdmVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dy5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X2JpYXNpbmdfdmlldy5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmg6IEFkZGVkLgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGVfZ2V0X3N0cmluZyk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmM6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2RhdGFfc2xvdyk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfbWluaW1pemVfZmlyc3RfZWxpZ2libGUpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X3VwZGF0ZV9maXJzdF9lbGlnaWJsZV9hZnRlcl9zZWFyY2gpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9h
dF9pbmRleCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYXBwZW5kKToKKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVf
YXRfaW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX3dpdGhvdXRfYmlh
c2luZ191cGRhdGUpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeS5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3Nwb29mX2lubGluZV9zZWdtZW50KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9nZXRfZmlyc3RfZWxpZ2libGVfaW1wbCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfdG9ybik6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfd2F0Y2hfZmlyc3RfZWxpZ2libGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2RhdGFfZ2V0X2ZpcnN0X2VsaWdpYmxlX3B0cik6IERlbGV0ZWQuCisgICAgICAg
IChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfdGFibGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5j
ZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9m
b3J3YXJkX3RvX3Rha2VfZmlyc3RfZWxpZ2libGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kLmg6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfa2luZF9nZXRfc3RyaW5nKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY3JlYXRlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X25vdGVfZW1wdGluZXNzKToKKyAgICAgICAgKGNvbXB1dGVfc3VtbWFyeV9p
bXBsKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NvbXB1dGVfc3Vt
bWFyeSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbnN0YWxsX2Z1
bGxfdXNlX2NvdW50cyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19p
c19lbGlnaWJsZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pc19l
bXB0eSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19zaG91bGRfdGFi
bGUpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3
X25vdGVfZWxpZ2liaWxpdHlfaW1wbCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19ub3RlX2VsaWdpYmlsaXR5KTogRGVsZXRlZC4KKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmlld19jb21wdXRlX3N1bW1hcnlfaW1wbCk6IERl
bGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19kaWRfc3RhcnRfYWxsb2NhdGluZyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKToKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3X2RpZF9zdGFydF9hbGxvY2F0aW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19vd25lcnNoaXBfa2luZC5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jOiBSZW1vdmVkLgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eS5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmg6IFJlbW92ZWQuCisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9jb25zdHJ1Y3QpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRp
dW1fc2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KToKKyAgICAgICAgKGVuc3VyZV9jb3VudF9sb29r
dXApOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZGV4
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zv
cl9jb3VudCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGly
ZWN0b3J5KToKKyAgICAgICAgKGZvcl9lYWNoX2NvbW1pdHRlZF9zaXplX2RpcmVjdG9yeV9jYWxs
YmFjayk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2NvbW1pdHRlZF92
aWV3KToKKyAgICAgICAgKGZvcl9lYWNoX3ZpZXdfaW5kZXhfZGlyZWN0b3J5X2NhbGxiYWNrKToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfdmlld19pbmRleCk6CisgICAg
ICAgIChmb3JfZWFjaF9saXZlX29iamVjdF9vYmplY3RfY2FsbGJhY2spOgorICAgICAgICAoZm9y
X2VhY2hfbGl2ZV9vYmplY3RfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX2hlYXBfZm9yX2VhY2hfbGl2ZV9vYmplY3QpOgorICAgICAgICAobnVtX2NvbW1pdHRl
ZF92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9udW1fY29tbWl0dGVkX3ZpZXdzKToKKyAgICAgICAgKG51bV9lbXB0eV92aWV3c19kaXJlY3Rv
cnlfY2FsbGJhY2spOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fZW1wdHlfdmll
d3MpOgorICAgICAgICAobnVtX2VtcHR5X2dyYW51bGVzX2RpcmVjdG9yeV9jYWxsYmFjayk6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX251bV9lbXB0eV9ncmFudWxlcyk6CisgICAgICAg
IChudW1fdmlld3NfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X2hlYXBfbnVtX3ZpZXdzKToKKyAgICAgICAgKGNvbXB1dGVfc3VtbWFyeV9kaXJlY3RvcnlfY2Fs
bGJhY2spOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jb21wdXRlX3N1bW1hcnkpOgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X2hlYXAuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFw
X2lubGluZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX2luZGV4KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlLmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJp
YXNfd2hpbGVfaW5lbGlnaWJsZV9pbXBsKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uc3RydWN0KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29tbWl0X2Z1bGx5KToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19t
YWdhemluZV93aGlsZV9pbmVsaWdpYmxlX2ltcGwpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuaDoKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdCk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaDoKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGls
c19pbmxpbmVzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9t
X3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9zd2l0Y2hfbG9ja19pbXBsKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vf
c3dpdGNoX2xvY2tfd2l0aF9tb2RlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dp
dGNoX2xvY2tfYW5kX3JlYmlhc193aGlsZV9pbmVsaWdpYmxlKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9kZWFsbG9jYXRlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2Rp
cmVjdG9yeV9mb3JfYWRkcmVzc19pbl9wYWdlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZ2V0X29iamVjdF9zaXplX2Zvcl9hZGRyZXNzX2luX3BhZ2UpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2lu
ZWxpZ2libGUpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZp
ZXNfZm9yX2RlY29tbWl0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlld19jcmVhdGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
X25vdGVfZWxpZ2liaWxpdHkpOgorICAgICAgICAoY29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pc19lbGlnaWJsZSk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3Lmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmM6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfZmluZF9maXJz
dF9lbGlnaWJsZSk6CisgICAgICAgICh0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldyk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Ny
ZWF0ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9maW5pc2hfY3Jl
YXRpb24pOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5zdXJlX2Rh
dGEpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVk
X2RhdGEpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3Rs
Y19hbGxvY2F0b3IpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3Jl
YXRlX3RsY192aWV3X2NhY2hlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2VuYWJsZV9leGNsdXNpdmVfdmlld3MpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KToKKyAgICAgICAgKHRha2VfZmlyc3Rf
ZWxpZ2libGVfZGlyZWN0X2NyZWF0ZV9uZXdfdmlld19jYWxsYmFjayk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKToKKyAgICAgICAg
KHRha2VfbGFzdF9lbXB0eV9zaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbCk6CisgICAgICAg
ICh0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldyk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeV9mb3JfdW5vd25lZF9leGNsdXNp
dmUpOgorICAgICAgICAoZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNrKToKKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfY2FjaGVfY2Fw
YWNpdHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxs
b2NhdG9yX3NpemUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVt
X2FsbG9jYXRvcl9pbmRpY2VzKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2R1bXBfcmVmZXJlbmNlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2R1bXBfZm9yX3NwZWN0cnVtKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2NvbnN0cnVjdCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2FzX3ZpZXcpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfYWxpZ25tZW50KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RpZF90cnlfdG9fY3JlYXRlX3ZpZXdfY2FjaGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X2RpZF90cnlfdG9fY3JlYXRlX3ZpZXdfY2FjaGUpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IpOgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3
c19lbmFibGVkKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmg6IEFkZGVkLgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZV9nZXRfc3RyaW5nKToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
Lmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2Nh
dG9yKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9j
YXRvcl9zaXplX2Zvcl9udWxsX2NvbmZpZyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfY29uZmlnKToKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxs
b2NhdG9yX3NpemUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVt
X2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9jb25maWcpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92
aWV3X3BhcmFsbGVsKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rh
a2VfZmlyc3RfZWxpZ2libGVfaW1wbCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfbm90
X3RhYmxlZF9wYXJhbGxlbCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdf
dGFibGVkX3BhcmFsbGVsKTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2dldF9nbG9iYWwpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3NpemVfZGlyZWN0b3J5X3Nsb3cpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcGFnZV9jb25maWdfa2luZCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9p
bmRleCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2JvdW5kYXJ5KToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2NvbW1pdF9sb2NrKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X293bmVyc2hpcF9sb2NrKToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaXNfb3duZWQpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19s
b2NrX293bmVyc2hpcF9sb2NrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19v
d25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfbG9ja19vd25lcnNoaXBfbG9ja19pZl9vd25lZF9jb25kaXRpb25hbGx5KToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3ZpZXdfbm90ZV9lbXB0aW5lc3MpOgorICAgICAgICAoZm9yX2VhY2hf
bGl2ZV9vYmplY3QpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3JfZWFjaF9saXZl
X29iamVjdCk6CisgICAgICAgIChzaG91bGRfYmVfZWxpZ2libGUpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19zaG91bGRfYmVfZWxpZ2libGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfdmlld19mb3Jfb2JqZWN0KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfY29tcHV0
ZV9zdW1tYXJ5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGUpOgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbXB0eSk6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2xvdyk6IERlbGV0ZWQuCisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZF9yZXN0YXJ0KTogRGVsZXRlZC4KKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfY291bGRfYnVtcCk6IERlbGV0ZWQuCisgICAgICAg
IChwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZF90YWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChw
YXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUpOiBEZWxldGVkLgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19ub3RlX2VsaWdpYmlsaXR5KTogRGVsZXRlZC4KKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGVfb3JfYmlhc2VkKTogRGVsZXRlZC4K
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHlfb3JfYmlhc2VkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3Lmg6Cisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKToKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfaW5lbGlnaWJsZSk6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF92aWV3X2FzX2VsaWdpYmxlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X2V4Y2x1c2l2ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NpemVfZGlyZWN0
b3J5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaCk6IERlbGV0ZWQu
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNpbmcpOiBEZWxldGVkLgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19pbmVsaWdpYmxlX2JpYXNpbmcpOiBEZWxldGVk
LgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2JpYXNpbmcpOiBEZWxldGVk
LgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyk6IERlbGV0ZWQuCisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlX2tpbmQpOiBEZWxldGVkLgor
ICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19pbmVsaWdpYmxlX2tpbmQpOiBEZWxldGVk
LgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkp
OiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF92aWV3X3dpbGxfc3RhcnRfYWxsb2NhdGluZyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92
aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19raW5kX2dldF9jaGFyYWN0ZXJfY29kZSk6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF92aWV3X2tpbmRfZ2V0X3N0cmluZyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3
X2tpbmRfaXNfc29tZV9leGNsdXNpdmUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19r
aW5kX2Nhbl9iZWNvbWVfZW1wdHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5k
X2lzX2VsaWdpYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2lu
ZF9pc19leGNsdXNpdmVfaXNoKTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfa2luZF9pc19pbmVsaWdpYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmM6CisgICAgICAgIChyZXBvcnRfYml0Zml0X2RpcmVj
dG9yeV9jb250ZW50cyk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0
X2RpcmVjdG9yeSk6CisgICAgICAgIChyZXBvcnRfc2VncmVnYXRlZF9kaXJlY3RvcnlfY29udGVu
dHMpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkpOgorICAgICAgICAoZHVtcF9zZWdyZWdhdGVkX2hlYXBfZGlyZWN0b3J5X2NhbGxi
YWNrKToKKyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfaGVhcCk6Cisg
ICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9oZWFwKToKKyAgICAg
ICAgKHRvdGFsX2ZyYWdtZW50YXRpb25fc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAg
ICAodG90YWxfZnJhZ21lbnRhdGlvbl9oZWFwX2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zdGF0
dXNfcmVwb3J0ZXJfZHVtcF90b3RhbF9mcmFnbWVudGF0aW9uKToKKyAgICAgICAgKHRpZXJfdXBf
cmF0ZV9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgICh0aWVyX3VwX3JhdGVfaGVh
cF9jYWxsYmFjayk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYmFzZWxpbmVf
YWxsb2NhdG9ycyk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xv
Y2FsX2NhY2hlcyk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0ZXJf
ZHVtcF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc3Rh
dHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSk6IERlbGV0ZWQu
CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAodG90YWxfZnJhZ21lbnRhdGlvbl9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAodGllcl91cF9y
YXRlX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5jOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5oOiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5jOiBSZW1vdmVkLgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYzoKKyAgICAg
ICAgKGRlYWxsb2NhdGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jcmVhdGUp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX3Ns
b3cpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRv
cnMpOgorICAgICAgICAoc3RvcF9sb2NhbF9hbGxvY2F0b3JzX2lmX25lY2Vzc2FyeV9zZXRfYml0
X2NhbGxiYWNrKToKKyAgICAgICAgKHByb2Nlc3NfZGVhbGxvY2F0aW9uX2xvZ193aXRoX2NvbmZp
Zyk6CisgICAgICAgIChmbHVzaF9kZWFsbG9jYXRpb25fbG9nKToKKyAgICAgICAgKGZsdXNoX2Rl
YWxsb2NhdGlvbl9sb2dfZm9yX3NjYXZlbmdlcik6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2cpOgorICAgICAgICAocmVzdW1lKToKKyAgICAg
ICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbCk6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oOgorICAgICAgICAocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwpOgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jOgorICAgICAgICAocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX25vZGUpOgorICAgICAgICAocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfYWRkKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2R1cGxpY2F0ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9hZGRfdmlld19jYWNoZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXQuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmM6CisgICAgICAgIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkpOgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKToKKyAgICAgICAgKGFs
bG9jYXRvcl9pbmRleF9wdHIpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMpOgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0
b3IpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxs
b2NhdG9yX2luZGV4X2Zvcl92aWV3X2NhY2hlKToKKyAgICAgICAgKG5leHRfcHRyKToKKyAgICAg
ICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc2V0X25leHQpOgorICAgICAg
ICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb25zdHJ1Y3QpOgorICAgICAg
ICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9tb3ZlKToKKyAgICAgICAgKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcCk6CisgICAgICAgIChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgpOiBEZWxldGVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUuaDoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
Z2V0X3B0cik6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dl
dF9raW5kKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY3Jl
YXRlKToKKyAgICAgICAgKHBhc193cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkpOgorICAg
ICAgICAocGFzX3dyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKToKKyAgICAgICAg
KHBhc193cmFwX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSk6CisgICAgICAgIChwYXNfaXNfd3JhcHBl
ZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KToKKyAgICAgICAgKHBhc19pc193cmFwcGVkX3Jl
ZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSk6CisgICAgICAgIChwYXNfaXNfd3JhcHBlZF9s
b2NhbF92aWV3X2NhY2hlX25vZGUpOgorICAgICAgICAocGFzX3Vud3JhcF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KToKKyAgICAgICAgKHBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9j
YXRvcl9ub2RlKToKKyAgICAgICAgKHBhc191bndyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKToK
KyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19h
bGxvY2F0b3IpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9y
ZXByZXNlbnRzX3ZpZXdfY2FjaGUpOgorICAgICAgICAocGFzX3dyYXBfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAocGFzX2lzX3dyYXBwZWRfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAocGFzX3Vu
d3JhcF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9r
aW5kLmg6IEFkZGVkLgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9raW5kX2dldF9zdHJpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGVfbm9kZS5jOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9u
b2RlX2FsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX25vZGUuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2Fs
bG9jYXRlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ltcGwpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaDoKKyAgICAgICAgKHBhc190
cnlfYWxsb2NhdGVfYXJyYXlfaW1wbCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RyeV9hbGxvY2F0ZV9jb21tb24uaDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfY29tbW9u
X2ltcGxfZmFzdF9pbmxpbmVfb25seSk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2NvbW1v
bl9pbXBsX2Zhc3QpOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93
KToKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGwpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oOgor
ICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcGxfbWVkaXVt
X3Nsb3dfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRp
dmVfaW1wbF9pbmxpbmVfb25seSk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNp
Y19wcmltaXRpdmVfaW1wbCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVf
cHJpbWl0aXZlX2ltcGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVh
bGxvY2F0ZS5oOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9mb3JfcmVhbGxvY2F0ZV9hbmRf
Y29weSk6CisgICAgICAgIChwYXNfdHJ5X3JlYWxsb2NhdGVfdGFibGVfc2VncmVnYXRlZF9jYXNl
KToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0ZV90YWJsZV9iaXRmaXRfY2FzZSk6CisgICAg
ICAgIChwYXNfdHJ5X3JlYWxsb2NhdGUpOgorICAgICAgICAocGFzX3RyeV9yZWFsbG9jYXRlX3By
aW1pdGl2ZV9hbGxvY2F0ZV9jYWxsYmFjayk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0Lmg6CisgICAgICAgIChwYXNfdHlwZWRfYWxsb2Nh
dGlvbl9yZXN1bHRfYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KToKKyAgICAgICAgKHBh
c190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHQpOgorICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3plcm8pOgor
ICAgICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk6CisgICAgICAg
IChwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXAuYzoKKyAgICAgICAgKHBhc191dGls
aXR5X2hlYXBfZGVhbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0
aWxpdHlfaGVhcC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hl
YXBfY29uZmlnLmg6CisgICAgICAgIChwYXNfdXRpbGl0eV9oZWFwX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeV9zZWxlY3Rvcik6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlf
aGVhcF9zdXBwb3J0Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmg6
CisgICAgICAgIChwYXNfcm91bmRfdXBfdG9fbmV4dF9wb3dlcl9vZl8yKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcC5jOgorICAgICAgICAodGhpbmd5X3RyeV9hbGxv
Y2F0ZV9wcmltaXRpdmUpOgorICAgICAgICAodGhpbmd5X3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVf
emVyb2VkKToKKyAgICAgICAgKHRoaW5neV90cnlfYWxsb2NhdGVfcHJpbWl0aXZlX3dpdGhfYWxp
Z25tZW50KToKKyAgICAgICAgKHRoaW5neV90cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUpOgorICAg
ICAgICAodGhpbmd5X3V0aWxpdHlfaGVhcF9hbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvdGhpbmd5X2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hl
YXBDaGFvc1Rlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6dGVzdEFsbG9jYXRpb25DaGFvcyk6Cisg
ICAgICAgIChzdGQ6OmFkZFRoZVRlc3RzKToKKyAgICAgICAgKHN0ZDo6YWRkU3BvdFRlc3RzKToK
KyAgICAgICAgKGFkZElzb0hlYXBDaGFvc1Rlc3RzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rl
c3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjp0ZXN0VGFrZVBh
Z2VzKToKKyAgICAgICAgKHN0ZDo6dGVzdFRha2VQYWdlc0Zyb21Db3JyZWN0SGVhcCk6CisgICAg
ICAgIChzdGQ6OmFsbG9jYXRlVGhpbmdpZXNJbXBsKToKKyAgICAgICAgKGFkZElzb0hlYXBQYWdl
U2hhcmluZ1Rlc3RzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxB
bmRCYXNlbGluZVRlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6dGVzdFNpbXBsZVBhcnRpYWxBbGxv
Y2F0aW9ucyk6CisgICAgICAgIChzdGQ6OnRlc3RNdWx0aXBsZVBhcnRpYWxzRnJvbURpZmZlcmVu
dFRocmVhZHNQZXJTaGFyZWQpOgorICAgICAgICAoc3RkOjphZGRTY2F2ZW5nZXJEZXBlbmRlbnRU
ZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBUYWJsaW5nVGVzdHMuY3Bw
OiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9SYWNlVGVzdHMuY3BwOgorICAg
ICAgICAoc3RkOjp0ZXN0TG9jYWxBbGxvY2F0b3JTdG9wUmFjZSk6CisgICAgICAgIChzdGQ6OnRl
c3RMb2NhbEFsbG9jYXRvclN0b3BSYWNlQWdhaW5zdFNjYXZlbmdlKToKKyAgICAgICAgKiBsaWJw
YXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAgIChE
aXNhYmxlRXhwbG9zaW9uOjpEaXNhYmxlRXhwbG9zaW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEZv
cmNlRXhwbG9zaW9uOjpGb3JjZUV4cGxvc2lvbik6IERlbGV0ZWQuCisgICAgICAgIChGb3JjZU9u
ZU1hZ2F6aW5lOjpGb3JjZU9uZU1hZ2F6aW5lKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMv
c3JjL3Rlc3QvVGVzdEhhcm5lc3MuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvVGhpbmd5
QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwOgorICAgICAgICAoc3RkOjpzaXplQ2xh
c3NGb3IpOgorICAgICAgICAoc3RkOjpmb3JFYWNoQ29tbWl0dGVkVmlld0FkYXB0ZXIpOgorICAg
ICAgICAoc3RkOjp2ZXJpZnlIZWFwRW1wdHkpOgorICAgICAgICAoc3RkOjp0ZXN0SW50ZXJuYWxT
Y2F2ZW5nZUZyb21Db3JyZWN0RGlyZWN0b3J5KToKKyAgICAgICAgKHN0ZDo6dGVzdFNpemVDbGFz
c0NyZWF0aW9uSW1wbCk6CisgICAgICAgIChzdGQ6OnRlc3RTcHVyaW91c0VsaWdpYmlsaXR5KToK
KyAgICAgICAgKHN0ZDo6dGVzdENvbXBsZXhMYXJnZUFsbG9jYXRpb25JbXBsKToKKyAgICAgICAg
KHN0ZDo6YWRkQWxsVGVzdHMpOgorICAgICAgICAoYWRkVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxv
Y2F0aW9uVGVzdHMpOgorCiAyMDIxLTA5LTAyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgbW9yZSBzdXBwb3J0IGZvciBKSVQgb3BlcmF0aW9uIHZhbGlkYXRp
b24gdGVzdGluZy4KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzEsOCAr
MzEsNiBAQAogCQkwRjE4Rjg0QzI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEY4NDMy
NUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuaCAqLzsgfTsKIAkJMEYxOEY4NEQy
NUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThGODQ0MjVDMzQ2NzcwMDcyMUMy
QSAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmMgKi87IH07CiAJCTBGMThGODU4MjVDMzQ3RjMw
MDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4Rjg1NzI1QzM0N0Yz
MDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGMUFFQ0VDMjY1
ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQUVDRUEyNjU4MUI1RTAwMEM1MjE4IC8qIHBh
c19hbGxfbWFnYXppbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMEYxQUVDRUQyNjU4MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVz
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFBRUNF
QjI2NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuYyAqLzsgfTsKIAkJMEYxQkZE
NDcyNjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQkZENDUyNjY0NUFDNzAwQ0VDMjhEIC8q
IHBhc19oZWFwX2NvbmZpZy5jICovOyB9OwogCQkwRjFCRkQ0ODI2NjQ1QUM3MDBDRUMyOEQgLyog
cGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMUJGRDQ2MjY2NDVBQzcwMENFQzI4RCAvKiBwYXNfYWxsX2hlYXBfY29u
Zmlncy5oICovOyB9OwogCQkwRjI2QTdBNTIwNTQ4MzEzMDA5MEExNDEgLyogUGVyUHJvY2Vzcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjI2QTdB
NDIwNTQ4MzBEMDA5MEExNDEgLyogUGVyUHJvY2Vzcy5jcHAgKi87IH07CkBAIC02Myw3ICs2MSw2
IEBACiAJCTBGNUZFN0RGMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0
Zml0X3NpemVfY2xhc3NfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjVGRTdDQTI1QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGNUZFN0UwMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFj
dF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RkU3Q0IyNUI2MjEwQzAwMTg1OUZDIC8q
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1RkU3RTEyNUI2
MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1RkU3Q0My
NUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBG
NUZFN0UzMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9w
dHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUZF
N0NFMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVG
RTdFNDI1QjYyMTBEMDAxODU5RkMgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFy
eV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjVGRTdDRjI1QjYyMTBDMDAxODU5RkMgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9i
b3VuZGFyeV9pbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY1RkU3RTYyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfYW5kX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY1RkU3RDEyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5k
X2NvbmZpZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTBGNUZFN0U3MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1RkU3RDIyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2F0
b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgwLDYgKzc3LDIyIEBACiAJCTBGNzRCOTNG
MUY4OTcxM0UwMEI5MzVEMyAvKiBDcnlwdG9SYW5kb20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NEI5M0QxRjg5NzEzRTAwQjkzNUQzIC8qIENy
eXB0b1JhbmRvbS5jcHAgKi87IH07CiAJCTBGNzU0OTgyMjQ4Njk3NDAwMDJBNEM3RCAvKiBwYXNf
YWxsb2NhdG9yX2luZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjc1NDk4MDI0ODY5NzNDMDAyQTRDN0QgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNzU0
OTgzMjQ4Njk3NDIwMDJBNEM3RCAvKiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4
X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3
NTQ5ODEyNDg2OTczQzAwMkE0QzdEIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5k
ZXhfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMEY3QzkyRTIyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2
ZW5nZV9yZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGN0M5MkQyMjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2Nh
dmVuZ2VfcmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJMEY3QzkyRTMyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjdDOTJEMzI2RTU3Rjc0MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJFNDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDQyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJFNTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3Nl
Z3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkQ1MjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNfc2VncmVn
YXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGN0M5MkU2MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxf
dmlld19jYWNoZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY3QzkyRDYyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgKi87
IH07CisJCTBGN0M5MkU3MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkQ3MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJFODI2RTU3Rjc1MDA2QUYw
MTIgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJEODI2RTU3Rjc1MDA2
QUYwMTIgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRTkyNkU1
N0Y3NTAwNkFGMDEyIC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJEOTI2RTU3Rjc1MDA2QUYwMTIg
LyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyAqLzsgfTsKKwkJMEY3QzkyRUEyNkU1N0Y3NTAw
NkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkRBMjZFNTdGNzUwMDZB
RjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgKi87IH07CisJCTBG
N0M5MkVCMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY3QzkyREIyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMEY3QzkyRUMyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2Nh
Y2hlX25vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGN0M5MkRDMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmgg
Ki87IH07CisJCTBGN0M5MkVEMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJERDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGN0M5MkVFMjZFNTdGNzUwMDZBRjAxMiAvKiBw
YXNfbG9jYWxfdmlld19jYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY3QzkyREUyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2Nh
Y2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MEY3QzkyRUYyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9oYXNodGFibGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkRG
MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxlLmggKi87IH07
CisJCTBGN0M5MkYwMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkUw
MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJGMTI2RTU3Rjc1
MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRTEyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyAqLzsgfTsKIAkJMEY3RUI4MjMxRjk1NDFCMDAw
RjFBQkNCIC8qIEVsaWdpYmlsaXR5UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdFQjdGQzFGOTU0MUFEMDBGMUFCQ0IgLyogRWxpZ2liaWxp
dHlSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjdFQjgyNDFGOTU0MUIwMDBGMUFCQ0IgLyogSXNvSGVhcEltcGxJbmxpbmVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdFQjdGRDFGOTU0
MUFEMDBGMUFCQ0IgLyogSXNvSGVhcEltcGxJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3RUI4MjUxRjk1NDFCMDAwRjFBQkNCIC8q
IERlZmVycmVkVHJpZ2dlcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGN0VCN0ZFMUY5NTQxQUQwMEYxQUJDQiAvKiBEZWZlcnJlZFRyaWdn
ZXJJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTEyOCw3ICsxNDEsNiBAQAogCQkwRjg3MDAwMjI1QUY4OTdDMDAwRTFBQkYgLyogcGFz
X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGODdGRkNDMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19k
aXJlY3Rvcnlfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGODcwMDAzMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRv
ci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZG
Q0QyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgKi87IH07CiAJCTBG
ODcwMDA0MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRv
cl9kYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjg3RkZDRTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0
b3JfZGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTBGODcwMDA1MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3Jp
ZXMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdG
RkNGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYyAqLzsg
fTsKIAkJMEY4NzAwMDYyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hl
YXBzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3
RkZEMDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyAqLzsg
fTsKIAkJMEY4NzAwMDcyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5jIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGRDEyNUFGODk3
QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5jICovOyB9OwogCQkwRjg3MDAwODI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGRDIyNUFGODk3QzAwMEUxQUJGIC8q
IHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTg5LDEwICsyMDEsNiBAQAogCQkwRjg3MDA3RDI1QUY4
QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMDYwMjVBRjhBMUIwMDBFMUFCRiAvKiBw
YXNfcGFnZV9iYXNlX2NvbmZpZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGODcwMDdFMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFk
ZXJfdGFibGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGODcwMDYxMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyAqLzsg
fTsKIAkJMEY4NzAwN0YyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2Nv
dW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3
MDA2MjI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjg3MDA4ODI1
QUY5NDYyMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDA4MzI1QUY5NDYxMDAwRTFBQkYg
LyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi87IH07Ci0JCTBGODcwMDg5MjVBRjk0NjIwMDBF
MUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGODcwMDg0MjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9t
YXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkw
Rjg3MDA4QTI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwLmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDA4NTI1QUY5NDYxMDAwRTFB
QkYgLyogcGFzX3N1YnBhZ2VfbWFwLmMgKi87IH07Ci0JCTBGODcwMDhCMjVBRjk0NjIwMDBFMUFC
RiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMDg2MjVBRjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFn
ZV9tYXBfZW50cnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjg3MDA4QzI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwODcy
NUFGOTQ2MjAwMEUxQUJGIC8qIHBhc192ZXJzaW9uZWRfZmllbGQuYyAqLzsgfTsKIAkJMEY4NzAw
Q0YyNUIwQ0IwMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDBDQTI1QjBDQjAyMDAwRTFBQkYgLyogdGhp
bmd5X2hlYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjg3MDBEMDI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfcHJlZml4LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDBDQjI1QjBD
QjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfcHJlZml4LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTIwMCwzNSArMjA4LDIyIEBACiAJCTBGODcw
MEQyMjVCMENCMDMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcwMENEMjVCMENCMDIwMDBFMUFC
RiAvKiB0aGluZ3lfaGVhcF9jb25maWcuYyAqLzsgfTsKIAkJMEY4NzAwRDMyNUIwQ0IwMzAwMEUx
QUJGIC8qIHRoaW5neV9oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjg3MDBDRTI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuYyAqLzsg
fTsKIAkJMEY4N0ZGRDgyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZB
MTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjg3RkZEOTI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQTIyNUFGODk3OTAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZEQTI1QUY4OTdDMDAwRTFBQkYgLyog
cGFzX2NvbW1pdF9zcGFuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjg3RkZBMzI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2NvbW1pdF9zcGFuLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGREIy
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQTQyNUFGODk3
OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkRDMjVBRjg5N0Mw
MDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkE1MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X3ZpZXcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQkwRjg3RkZERDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2lu
ZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3
RkZBNjI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZG
REUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkE3MjVBRjg5
N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi87IH07CiAJCTBG
ODdGRkRGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjg3RkZBODI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdf
ZGlyZWN0b3J5X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTBGODdGRkUwMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9z
aXplX2NsYXNzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjg3RkZBOTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
cy5jICovOyB9OwogCQkwRjg3RkZFMjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hlYXBf
Y29uZmlnX3Jvb3RfZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY4N0ZGQUIyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZp
Z19yb290X2RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjg3RkZFMzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNz
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZB
QzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgKi87IH07CiAJCTBG
ODdGRkU0MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkFEMjVB
Rjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyAqLzsgfTsKIAkJ
MEY4N0ZGRTUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBRTI1QUY4OTdB
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjg3RkZFNjI1QUY4OTdDMDAwRTFBQkYgLyog
cGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjg3RkZBRjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGly
ZWN0b3J5LmMgKi87IH07CiAJCTBGODdGRkU3MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVy
YXRlX2xhcmdlX2hlYXBzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjg3RkZCMDI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9sYXJnZV9o
ZWFwcy5jICovOyB9OwotCQkwRjg3RkZFODI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGODdGRkIxMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rv
cnlfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCTBGODdGRkU5MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkIz
MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZFQTI1QUY4OTdDMDAw
RTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCNDI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9zaXplX2NsYXNzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY4N0ZGRUIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
ODdGRkI1MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGRUMyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCNjI1QUY4OTdBMDAwRTFB
QkYgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZFRDI1QUY4OTdDMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQjcyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRm
aXRfcGFnZV9jb25maWdfdXRpbHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQkwRjg3RkZFRTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2FsbG9jYXRp
b25fcmVzdWx0LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjg3RkZCODI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMgKi87
IH07CiAJCTBGODdGRkVGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9p
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjg3RkZCOTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdG
RkYwMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCQTI1QUY4
OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkYxMjVBRjg5N0Mw
MDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCQjI1QUY4OTdCMDAwRTFBQkYg
LyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkYyMjVBRjg5N0MwMDBFMUFCRiAvKiBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkJDMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjg3RkZGMzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9oZWFw
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZC
RDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9oZWFwLmMgKi87IH07Ci0JCTBGODdGRkY0
MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCRTI1QUY4OTdCMDAw
RTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGODdGRkY1MjVBRjg5N0MwMDBFMUFCRiAv
KiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkJGMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyAqLzsgfTsKLQkJMEY4N0ZGRjYyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQzAyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19h
bGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTBGODdGRkY3MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGODdGRkMxMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnX2tpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkwRjg3RkZGODI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkMyMjVB
Rjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkY5MjVBRjg5N0MwMDBFMUFC
RiAvKiBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5jIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQzMyNUFGODk3QjAw
MEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmMgKi87
IH07CkBAIC0yNTEsMjUgKzI0NiwxMSBAQAogCQkwRjhBODEzNDI1RjgzRTI1MDA3OTBCNEEgLyog
Ym1hbGxvY19oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjhBODEyNTI1RjgzRTI0MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4QTgxMzUyNUY4M0Uy
NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjhBODEyNjI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXAu
aCAqLzsgfTsKIAkJMEY4QTgxMzYyNUY4M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4QTgxMjcyNUY4
M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5jICovOyB9OwotCQkwRjhBODEzNzI1RjgzRTI1
MDA3OTBCNEEgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhBODEyODI1RjgzRTI1MDA3OTBCNEEgLyog
cGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4QTgxMzgyNUY4M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2Nf
aGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOEE4MTI5MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NjAy
NDc4NzM5NTAwRTEyNEE2IC8qIHBhc19tYWdhemluZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NEIyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19t
YWdhemluZS5jICovOyB9OwogCQkwRjhFNzg2MTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBh
Y3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NEMyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19j
b21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjhFNzg2MjI0Nzg3Mzk1MDBFMTI0QTYg
LyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODREMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfaGVhcF9j
b25maWdfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGOEU3ODYzMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODRFMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhFNzg2NDI0Nzg3Mzk1MDBF
MTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY4RTc4NEYyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhFNzg2NjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX21h
Z2F6aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjhFNzg1MTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NjcyNDc4NzM5NTAwRTEy
NEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NTIyNDc4NzM5NDAwRTEyNEE2IC8qIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jICovOyB9OwotCQkwRjhFNzg2OTI0Nzg3Mzk1MDBF
MTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODU0MjQ3
ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBf
a2luZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CTBGOEU3ODZBMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGOEU3ODU1MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkuYyAqLzsgfTsKLQkJMEY4RTc4NkIyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NTYyNDc4NzM5NTAwRTEyNEE2
IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODZD
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NTcyNDc4
NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4RTc4NkQyNDc4
NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlf
cHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhF
Nzg1ODI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQkwRjhFNzg2RTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjhFNzg1OTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4
NzAyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjhFNzg1QjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQkwRjhFNzg3MTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGOEU3ODVDMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeS5jICovOyB9OwotCQkwRjhFNzg3MjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1RDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NzMyNDc4NzM5NTAwRTEyNEE2IC8q
IHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NUUyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGOEU4MzJDMjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRl
ZF9pbnRyaW5zaWNfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY4RTgzMjQyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJp
bnNpY19oZWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMEY4RTgzMkQyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19jb21wYWN0X2F0b21pY190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU4MzI1MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfY29tcGFj
dF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4RTgzMkUyNDkyRUFGMzAwNDZE
N0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFODMyNjI0OTJFQUYzMDA0NkQ3RjggLyog
cGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYyAqLzsgfTsKQEAgLTUyMiw3ICs1MDMsNiBA
QAogCQkwRkM0MEI4RDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hl
YXAuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQw
QUIyMjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jICovOyB9
OwogCQkwRkM0MEI4RjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2ZvdW5kX2luZGV4LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM0MEFCNDI0NTE0OThG
MDA4NzZEQTAgLyogcGFzX2ZvdW5kX2luZGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBCOTAyNDUxNDk5NDAwODc2REEwIC8qIHBhc19o
ZWFwX3JlZl9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkM0MEFCNTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2hlYXBfcmVmX2tpbmQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRkM0MEI5MjI0
NTE0OTk0MDA4NzZEQTAgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBQjcyNDUxNDk4
RjAwODc2REEwIC8qIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0MEI5MzI0NTE0OTk0
MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBQjgyNDUxNDk4RjAwODc2
REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0MEI5NDI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZDNDBBQjkyNDUxNDk4RjAwODc2REEwIC8qIHBhc19zdHJlYW0uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkM0MEI5NTI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBQkEyNDUxNDk4RjAwODc2REEwIC8q
IHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNjk5LDggKzY3OSw2IEBACiAJCTBGMThGODQzMjVDMzQ2Nzcw
MDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhZ2VzaXplNjRrX2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3BhZ2Vz
aXplNjRrX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEY4NDQyNUMz
NDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBuYW1lID0gbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjE4Rjg1NzI1QzM0N0YzMDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfdmll
d19hbGxvY2F0b3JfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBw
YXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMUFFQ0VBMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxs
X21hZ2F6aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYWxsX21h
Z2F6aW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYxQUVDRUIyNjU4MUI1RTAwMEM1MjE4IC8q
IHBhc19hbGxfbWFnYXppbmVzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBh
c19hbGxfbWFnYXppbmVzLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX21hZ2F6
aW5lcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjFCRkQ0NTI2NjQ1QUM3MDBD
RUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFt
ZSA9IHBhc19oZWFwX2NvbmZpZy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBf
Y29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMUJGRDQ2MjY2NDVBQzcw
MENFQzI4RCAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfYWxsX2hlYXBfY29uZmlncy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYyNkE3QTQyMDU0ODMwRDAwOTBBMTQxIC8qIFBlclByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGVyUHJvY2Vzcy5jcHA7IHBhdGggPSBibWFsbG9jL1Bl
clByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzMwLDcgKzcwOCw2
IEBACiAJCTBGNUZFN0NBMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0
Zml0X3NpemVfY2xhc3NfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIuaDsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RkU3Q0IyNUI2MjEwQzAwMTg1OUZDIC8qIHBh
c19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9h
dG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjVGRTdDQzI1QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5oOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNUZFN0NFMjVCNjIxMEMwMDE4NTlGQyAvKiBw
YXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1RkU3Q0YyNUI2MjEwQzAwMTg1OUZDIC8qIHBh
c19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lu
bGluZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zaGFyZWRfaGFuZGxlX29yX3Bh
Z2VfYm91bmRhcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVG
RTdEMTI1QjYyMTBDMDAxODU5RkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5k
X2NvbmZpZy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9h
bmRfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUZFN0QyMjVCNjIx
MEMwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc0Nyw2ICs3MjQsMjIgQEAKIAkJMEY3NEI5M0Qx
Rjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1JhbmRvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBDcnlwdG9SYW5kb20uY3BwOyBwYXRoID0gYm1hbGxvYy9DcnlwdG9S
YW5kb20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjc1NDk4MDI0ODY5NzND
MDAyQTRDN0QgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfYWxsb2NhdG9yX2luZGV4Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYWxsb2NhdG9yX2luZGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NzU0OTgxMjQ4Njk3M0MwMDJBNEM3RCAvKiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2lu
ZGV4X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9h
dG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMEY3QzkyRDIyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19wYWdlX3NoYXJpbmdf
cG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJEMzI2RTU3Rjc0MDA2QUYwMTIgLyogcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkQ0MjZF
NTdGNzQwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRDUy
NkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlv
bl9tb2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fbW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJENjI2RTU3
Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBuYW1lID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYzsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGN0M5MkQ3MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRDgy
NkU1N0Y3NTAwNkFGMDEyIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2lu
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2tpbmQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjdDOTJEOTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2hlYXBfcnVudGltZV9jb25m
aWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2hlYXBfcnVudGltZV9j
b25maWcuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1bnRpbWVfY29uZmln
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkRBMjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYzsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyREIyNkU1N0Y3NTAwNkFG
MDEyIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRjdDOTJEQzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbG9jYWxfdmlld19jYWNoZV9u
b2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZV9ub2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkREMjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2NyZWF0aW9uX21vZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY3QzkyREUyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19sb2NhbF92aWV3X2NhY2hlLmg7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJERjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xv
Y2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGN0M5MkUwMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tp
bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xvY2FsX2FsbG9jYXRv
cl9raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2tp
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRTEyNkU1N0Y3NTAwNkFG
MDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBuYW1lID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjdFQjdGQzFGOTU0MUFEMDBGMUFCQ0IgLyogRWxpZ2liaWxpdHlSZXN1bHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRWxpZ2liaWxpdHlSZXN1bHQuaDsg
cGF0aCA9IGJtYWxsb2MvRWxpZ2liaWxpdHlSZXN1bHQuaDsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OwogCQkwRjdFQjdGRDFGOTU0MUFEMDBGMUFCQ0IgLyogSXNvSGVhcEltcGxJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElzb0hlYXBJbXBsSW5saW5lcy5o
OyBwYXRoID0gYm1hbGxvYy9Jc29IZWFwSW1wbElubGluZXMuaDsgc291cmNlVHJlZSA9IFNPVVJD
RV9ST09UOyB9OwogCQkwRjdFQjdGRTFGOTU0MUFEMDBGMUFCQ0IgLyogRGVmZXJyZWRUcmlnZ2Vy
SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBEZWZlcnJlZFRyaWdn
ZXJJbmxpbmVzLmg7IHBhdGggPSBibWFsbG9jL0RlZmVycmVkVHJpZ2dlcklubGluZXMuaDsgc291
cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtODQzLDEwICs4MzYsNiBAQAogCQkwRjg3MDA2
MDI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3BhZ2VfYmFzZV9jb25maWcuaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGODcwMDYxMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFi
bGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3BhZ2VfaGVhZGVyX3Rh
YmxlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9oZWFkZXJfdGFibGUuYzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4NzAwNjIyNUFGOEExQjAwMEUxQUJGIC8q
IHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwRjg3MDA4MzI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19zdWJwYWdlX21hcF9lbnRy
eS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODcwMDg0MjVBRjk0NjEwMDBFMUFCRiAvKiBw
YXNfc3VicGFnZV9tYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3N1
YnBhZ2VfbWFwLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4NzAwODUyNUFGOTQ2MTAwMEUxQUJGIC8q
IHBhc19zdWJwYWdlX21hcC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNf
c3VicGFnZV9tYXAuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcC5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3MDA4NjI1QUY5NDYxMDAwRTFBQkYg
LyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19zdWJwYWdlX21hcF9lbnRyeS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X3N1YnBhZ2VfbWFwX2VudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODcw
MDg3MjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc192ZXJzaW9uZWRfZmllbGQuYzsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc192ZXJzaW9uZWRfZmllbGQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY4NzAwQ0EyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHRoaW5neV9oZWFwLmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy90aGluZ3lfaGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
Rjg3MDBDQjI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfcHJlZml4LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHRoaW5neV9oZWFwX3ByZWZpeC5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfcHJlZml4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04NTQsMzYgKzg0MywyMyBAQAogCQkwRjg3MDBDRDI1QjBDQjAyMDAwRTFBQkYg
LyogdGhpbmd5X2hlYXBfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9
IHRoaW5neV9oZWFwX2NvbmZpZy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hl
YXBfY29uZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODcwMENFMjVCMENC
MDMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5h
bWUgPSB0aGluZ3lfaGVhcC5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXAu
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQTEyNUFGODk3OTAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwRjg3RkZBMjI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X2dsb2JhbF9z
aXplX2NsYXNzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9z
aXplX2NsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkEzMjVBRjg5
NzkwMDBFMUFCRiAvKiBwYXNfY29tbWl0X3NwYW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX2NvbW1pdF9zcGFuLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
Y29tbWl0X3NwYW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQTQyNUFG
ODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZBNTI1QUY4OTc5MDAwRTFB
QkYgLyogcGFzX2JpdGZpdF92aWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19iaXRmaXRfdmlldy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92
aWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkE2MjVBRjg5NzkwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4Lmg7IHBhdGgg
PSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQTcyNUFGODk3QTAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBu
YW1lID0gcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjg3RkZBODI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkE5MjVBRjg5N0EwMDBFMUFCRiAv
KiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgbmFtZSA9IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYzsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQUIyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFw
X2NvbmZpZ19yb290X2RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFz
X2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjg3RkZBQzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNz
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19iaXRmaXRfc2l6ZV9jbGFz
cy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkFEMjVBRjg5N0EwMDBFMUFCRiAvKiBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBu
YW1lID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY4N0ZGQUUyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfYWxsb2NhdG9y
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZBRjI1QUY4OTdBMDAwRTFBQkYgLyogcGFz
X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBh
c19iaWFzaW5nX2RpcmVjdG9yeS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNp
bmdfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkIwMjVB
Rjg5N0EwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYzsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQjEyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFz
aW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjg3RkZCMjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z19raW5kLmRlZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IGZpbGVFbmNvZGluZyA9IDQ7IG5hbWUgPSBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmQuZGVmOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ19raW5kLmRlZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZG
QjMyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaDsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjg3RkZCNDI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXpl
X2NsYXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfc2l6
ZV9jbGFzcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkI1MjVBRjg5N0EwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19iaXRmaXRfcGFnZV9jb25maWcuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4N0ZGQjYyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19lbnVtZXJhdGVfYml0Zml0X2hl
YXBzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFw
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZCNzI1QUY4OTdCMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkI4MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2FsbG9j
YXRpb25fcmVzdWx0LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9y
ZXN1bHQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQjkyNUFGODk3QjAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZCQTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGODdGRkJCMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9p
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfYWxs
b2NhdG9yX2lubGluZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxs
b2NhdG9yX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQkMy
NUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaDsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZCRDI1QUY4OTdCMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9oZWFwLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19i
aXRmaXRfaGVhcC5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkJFMjVBRjg5N0IwMDBFMUFCRiAv
KiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMEY4N0ZGQkYyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnkuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZDMDI1QUY4
OTdCMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkMxMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY4N0ZGQzIyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5Lmg7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZDMzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Vu
dW1lcmF0ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRfcGFnZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBuYW1lID0gcGFzX2VudW1lcmF0ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRfcGFnZXMu
YzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNj
b3VudGVkX3BhZ2VzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTcsNyArODcz
LDYgQEAKIAkJMEY4N0ZGQ0MyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9y
eV9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaWFzaW5nX2Rp
cmVjdG9yeV9raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJl
Y3Rvcnlfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZDRDI1QUY4
OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZpdF9hbGxvY2F0b3IuYzsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGODdGRkNFMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51
bWVyYXRvcl9kYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iYXNp
Y19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQ0YyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2lu
Z19kaXJlY3Rvcmllcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYWxs
X2JpYXNpbmdfZGlyZWN0b3JpZXMuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxf
Ymlhc2luZ19kaXJlY3Rvcmllcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3
RkZEMDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYyAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMu
YzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkQxMjVBRjg5N0MwMDBFMUFCRiAv
KiBwYXNfYml0Zml0X3BhZ2UuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFz
X2JpdGZpdF9wYWdlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2Uu
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGRDIyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtOTE5LDI1ICs4OTQsMTEgQEAKIAkJMEY4QTgxMjUyNUY4M0UyNDAwNzkwQjRBIC8q
IGJtYWxsb2NfaGVhcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBibWFsbG9j
X2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhBODEyNjI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0
X2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gaG90Yml0X2hlYXAuaDsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOEE4MTI3MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gYm1hbGxvY19oZWFwLmM7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMEY4QTgxMjgyNUY4M0UyNTAwNzkwQjRBIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGlu
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbG9jYWxfYWxsb2NhdG9y
X2xpbmUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfbGlu
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhBODEyOTI1RjgzRTI1MDA3OTBC
NEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBibWFsbG9jX2hlYXBfY29uZmlnLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9ibWFs
bG9jX2hlYXBfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODRC
MjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfbWFnYXppbmUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBuYW1lID0gcGFzX21hZ2F6aW5lLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
bWFnYXppbmUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4RTc4NEMyNDc4NzM5
NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vf
c2hhcmluZ19wb29sX3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
YXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjhFNzg0RDI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2hlYXBfY29uZmlnX2lubGlu
ZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEU3ODRFMjQ3ODczOTQwMEUxMjRBNiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NEYyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhFNzg1MTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFz
X21hZ2F6aW5lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19tYWdhemlu
ZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX21hZ2F6aW5lLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODUyMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEY4RTc4NTQyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X293bmVyc2hpcF9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhFNzg1NTI0Nzg3Mzk1MDBFMTI0QTYg
LyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5j
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODU2MjQ3ODczOTUw
MEUxMjRBNiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NTcyNDc4NzM5NTAwRTEyNEE2IC8qIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5Lmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhFNzg1ODI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
Ymlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
OEU3ODU5MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NUIyNDc4NzM5NTAwRTEy
NEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwRjhFNzg1QzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTBGOEU3ODVEMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NUUyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVk
X3ZpZXdfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2Vn
cmVnYXRlZF92aWV3X2lubGluZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3ZpZXdfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhF
ODMyNDI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2lj
X2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNp
Y19oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEU4MzI1MjQ5MkVBRjMw
MDQ2RDdGOCAvKiBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21p
Y190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4RTgzMjYyNDkyRUFGMzAwNDZEN0Y4IC8q
IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgbmFtZSA9IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmM7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTE5NCw3ICsxMTU1LDYgQEAKIAkJMEZDNDBBQjIyNDUxNDk4RjAw
ODc2REEwIC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuYzsgbmFtZSA9IHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmM7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkM0MEFCNDI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2ZvdW5kX2lu
ZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19mb3VuZF9pbmRleC5o
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2ZvdW5kX2luZGV4Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGQzQwQUI1MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfaGVhcF9y
ZWZfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfaGVhcF9yZWZf
a2luZC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcmVmX2tpbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZDNDBBQjcyNDUxNDk4RjAwODc2REEwIC8qIHBh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEFCODI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9tb2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGQzQwQUI5MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc3RyZWFtLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zdHJlYW0uaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zdHJlYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZDNDBBQkEyNDUxNDk4RjAwODc2REEwIC8qIHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQzNSwxMTYgKzEzOTUsMTAwIEBACiAJCTBGQzQwOTBF
MjQ1MTQ5MkUwMDg3NkRBMCAvKiBsaWJwYXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAotCQkJCTBGOEE4MTI3MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hl
YXAuYyAqLywKLQkJCQkwRjhBODEyNTI1RjgzRTI0MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmgg
Ki8sCiAJCQkJMEY4QTgxMUQyNUY4M0UyNDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcu
YyAqLywKIAkJCQkwRjhBODEyOTI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZp
Zy5oICovLAogCQkJCTBGOEE4MTFCMjVGODNFMjMwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5s
aW5lcy5oICovLAogCQkJCTBGOEE4MTFGMjVGODNFMjQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBf
aW5uYXJkcy5oICovLAogCQkJCTBGOEE4MTIzMjVGODNFMjQwMDc5MEI0QSAvKiBibWFsbG9jX2hl
YXBfcmVmLmggKi8sCi0JCQkJMEY4QTgxMjAyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9oZWFw
LmMgKi8sCi0JCQkJMEY4QTgxMjYyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmggKi8s
CisJCQkJMEY4QTgxMjcyNUY4M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5jICovLAorCQkJ
CTBGOEE4MTI1MjVGODNFMjQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuaCAqLywKIAkJCQkwRjhB
ODExRTI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY4
QTgxMjEyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBG
OEE4MTFDMjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJ
MEY4QTgxMjIyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2lubmFyZHMuaCAqLywKLQkJ
CQkwRkM0MDkyMTI0NTE0OTQyMDA4NzZEQTAgLyogaXNvX2hlYXAuYyAqLywKLQkJCQkwRkM0MDky
OTI0NTE0OTQzMDA4NzZEQTAgLyogaXNvX2hlYXAuaCAqLywKKwkJCQkwRjhBODEyMDI1RjgzRTI0
MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyAqLywKKwkJCQkwRjhBODEyNjI1RjgzRTI0MDA3OTBC
NEEgLyogaG90Yml0X2hlYXAuaCAqLywKIAkJCQkwRkM0MDkyRjI0NTE0OTQzMDA4NzZEQTAgLyog
aXNvX2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEZDNDA5MjUyNDUxNDk0MzAwODc2REEwIC8qIGlz
b19oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGNUZFN0I2MjVCNjFFQzEwMDE4NTlGQyAvKiBpc29f
aGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY1MTZFRTgyNDU2MUFFODAwNEUyQjhEIC8qIGlzb19o
ZWFwX2lubmFyZHMuaCAqLywKIAkJCQkwRjUyOURFMDI0NTU0NjNGMDAzODVBOEMgLyogaXNvX2hl
YXBfcmVmLmggKi8sCi0JCQkJMEZDNDA5MEYyNDUxNDk0MjAwODc2REEwIC8qIGlzb190ZXN0X2hl
YXAuYyAqLywKLQkJCQkwRkM0MDkxMDI0NTE0OTQyMDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcC5o
ICovLAorCQkJCTBGQzQwOTIxMjQ1MTQ5NDIwMDg3NkRBMCAvKiBpc29faGVhcC5jICovLAorCQkJ
CTBGQzQwOTI5MjQ1MTQ5NDMwMDg3NkRBMCAvKiBpc29faGVhcC5oICovLAogCQkJCTBGQzQwOTM3
MjQ1MTQ5NDQwMDg3NkRBMCAvKiBpc29fdGVzdF9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGQzQw
OTIzMjQ1MTQ5NDIwMDg3NkRBMCAvKiBpc29fdGVzdF9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBG
NTE5M0VDMjY2QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcC5jICovLAotCQkJCTBGNTE5M0U5MjY2
QzQyQUMwMDQ4M0EyQyAvKiBqaXRfaGVhcC5oICovLAorCQkJCTBGQzQwOTBGMjQ1MTQ5NDIwMDg3
NkRBMCAvKiBpc29fdGVzdF9oZWFwLmMgKi8sCisJCQkJMEZDNDA5MTAyNDUxNDk0MjAwODc2REEw
IC8qIGlzb190ZXN0X2hlYXAuaCAqLywKKwkJCQkwRjUxOTNFQTI2NkM0MkFDMDA0ODNBMkMgLyog
aml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICovLAogCQkJCTBGNTE5M0VCMjY2QzQyQUMwMDQ4
M0EyQyAvKiBqaXRfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjUxOTNFODI2NkM0MkFDMDA0ODNB
MkMgLyogaml0X2hlYXBfY29uZmlnLmggKi8sCi0JCQkJMEY1MTkzRUEyNjZDNDJBQzAwNDgzQTJD
IC8qIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEuaCAqLywKLQkJCQkwRjE4RjgzRDI1QzM0Njc3
MDA3MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwLmMgKi8sCi0JCQkJMEYxOEY4NDEyNUMzNDY3NzAw
NzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcC5oICovLAorCQkJCTBGNTE5M0VDMjY2QzQyQUMwMDQ4
M0EyQyAvKiBqaXRfaGVhcC5jICovLAorCQkJCTBGNTE5M0U5MjY2QzQyQUMwMDQ4M0EyQyAvKiBq
aXRfaGVhcC5oICovLAogCQkJCTBGMThGODQ0MjVDMzQ2NzcwMDcyMUMyQSAvKiBtaW5hbGlnbjMy
X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEYxOEY4NDIyNUMzNDY3NzAwNzIxQzJBIC8qIG1pbmFs
aWduMzJfaGVhcF9jb25maWcuaCAqLywKLQkJCQkwRjE4RjgzRTI1QzM0Njc3MDA3MjFDMkEgLyog
cGFnZXNpemU2NGtfaGVhcC5jICovLAotCQkJCTBGMThGODQzMjVDMzQ2NzcwMDcyMUMyQSAvKiBw
YWdlc2l6ZTY0a19oZWFwLmggKi8sCisJCQkJMEYxOEY4M0QyNUMzNDY3NzAwNzIxQzJBIC8qIG1p
bmFsaWduMzJfaGVhcC5jICovLAorCQkJCTBGMThGODQxMjVDMzQ2NzcwMDcyMUMyQSAvKiBtaW5h
bGlnbjMyX2hlYXAuaCAqLywKIAkJCQkwRjE4Rjg0MDI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNp
emU2NGtfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjE4RjgzRjI1QzM0Njc3MDA3MjFDMkEgLyog
cGFnZXNpemU2NGtfaGVhcF9jb25maWcuaCAqLywKKwkJCQkwRjE4RjgzRTI1QzM0Njc3MDA3MjFD
MkEgLyogcGFnZXNpemU2NGtfaGVhcC5jICovLAorCQkJCTBGMThGODQzMjVDMzQ2NzcwMDcyMUMy
QSAvKiBwYWdlc2l6ZTY0a19oZWFwLmggKi8sCiAJCQkJMEZDNDA5MkEyNDUxNDk0MzAwODc2REEw
IC8qIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCiAJCQkJMEZDNDA5MkIyNDUx
NDk0MzAwODc2REEwIC8qIHBhc19hbGlnbmVkX2FsbG9jYXRvci5oICovLAogCQkJCTBGQzQwOTJE
MjQ1MTQ5NDMwMDg3NkRBMCAvKiBwYXNfYWxpZ25tZW50LmMgKi8sCiAJCQkJMEZDNDA5MzAyNDUx
NDk0MzAwODc2REEwIC8qIHBhc19hbGlnbm1lbnQuaCAqLywKLQkJCQkwRjg3RkZDRjI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMgKi8sCi0JCQkJMEY4N0ZG
QzAyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oICovLAog
CQkJCTBGMUJGRDQ2MjY2NDVBQzcwMENFQzI4RCAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oICov
LAogCQkJCTBGQzQwOTM0MjQ1MTQ5NDMwMDg3NkRBMCAvKiBwYXNfYWxsX2hlYXBzLmMgKi8sCiAJ
CQkJMEZDNDA5ODgyNDUxNDk2MDAwODc2REEwIC8qIHBhc19hbGxfaGVhcHMuaCAqLywKLQkJCQkw
RjFBRUNFQjI2NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuYyAqLywKLQkJCQkw
RjFBRUNFQTI2NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuaCAqLywKIAkJCQkw
RkM0MDlCRjI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmll
cy5jICovLAogCQkJCTBGQzQwOTcyMjQ1MTQ5NUUwMDg3NkRBMCAvKiBwYXNfYWxsX3NoYXJlZF9w
YWdlX2RpcmVjdG9yaWVzLmggKi8sCiAJCQkJMEZDNDA5OUUyNDUxNDk2MTAwODc2REEwIC8qIHBh
c19hbGxvY2F0aW9uX2NhbGxiYWNrcy5jICovLAogCQkJCTBGQzQwOTg5MjQ1MTQ5NjAwMDg3NkRB
MCAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuaCAqLywKIAkJCQkwRkM0MDk4MTI0NTE0OTVG
MDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fY29uZmlnLmggKi8sCiAJCQkJMEZDNDA5NzcyNDUx
NDk1RjAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2tpbmQuaCAqLywKLQkJCQkwRjg3RkZCODI1
QUY4OTdCMDAwRTFBQkYgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMgKi8sCiAJCQkJMEZDNDA5
QkUyNDUxNDk2MzAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBG
QzQwOUFBMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdG9yX2NvdW50cy5oICovLAogCQkJ
CTBGNzU0OTgwMjQ4Njk3M0MwMDJBNEM3RCAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggKi8sCiAJ
CQkJMEZDNDA5OEQyNDUxNDk2MDAwODc2REEwIC8qIHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0
aW9uLmggKi8sCi0JCQkJMEZDNDA5ODQyNDUxNDk1RjAwODc2REEwIC8qIHBhc19iYXNlbGluZV9h
bGxvY2F0b3IuYyAqLywKLQkJCQkwRkM0MDlBMjI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvci5oICovLAogCQkJCTBGQzQwOTgyMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5oICovLAogCQkJCTBGQzQwOTk3MjQ1MTQ5NjEwMDg3
NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmMgKi8sCiAJCQkJMEZDNDA5N0Iy
NDUxNDk1RjAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCAqLywKKwkJ
CQkwRkM0MDk4NDI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jICov
LAorCQkJCTBGQzQwOUEyMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
LmggKi8sCiAJCQkJMEY1MTkzRUQyNjZDNDJBRDAwNDgzQTJDIC8qIHBhc19iYXNpY19oZWFwX2Nv
bmZpZ19lbnVtZXJhdG9yX2RhdGEuYyAqLywKIAkJCQkwRjg3RkZDRTI1QUY4OTdDMDAwRTFBQkYg
LyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5oICovLAogCQkJCTBGODdG
RkFCMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfcm9vdF9kYXRhLmgg
Ki8sCiAJCQkJMEZDNDA5QTYyNDUxNDk2MjAwODc2REEwIC8qIHBhc19iYXNpY19oZWFwX3BhZ2Vf
Y2FjaGVzLmggKi8sCiAJCQkJMEZDNDA5N0UyNDUxNDk1RjAwODc2REEwIC8qIHBhc19iYXNpY19o
ZWFwX3J1bnRpbWVfY29uZmlnLmggKi8sCiAJCQkJMEZDNDA5OTYyNDUxNDk2MTAwODc2REEwIC8q
IHBhc19iYXNpY19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzLmggKi8sCi0JCQkJMEY4N0ZGQUYyNUFG
ODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jICovLAotCQkJCTBGODdGRkIz
MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjg3
RkZCMTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCAq
LywKIAkJCQkwRjg3RkZDQzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2tpbmQuaCAqLywKIAkJCQkwRkM0MDlCNTI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2JpdGZpZWxk
X3ZlY3Rvci5oICovLAogCQkJCTBGODdGRkQ2MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCisJCQkJMEY4N0ZGQkIyNUFGODk3QjAwMEUxQUJGIC8q
IHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCAqLywKIAkJCQkwRjg3RkZDRDI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuYyAqLywKIAkJCQkwRjg3RkZBRTI1QUY4
OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuaCAqLywKLQkJCQkwRjg3RkZCQjI1
QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oICovLAotCQkJ
CTBGODdGRkE3MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5
LmMgKi8sCi0JCQkJMEY4N0ZGQkEyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkuaCAqLywKKwkJCQkwRjg3RkZCOTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oICovLAogCQkJCTBGODdGRkNCMjVBRjg5N0MwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5jICovLAogCQkJCTBGODdGRkMyMjVBRjg5N0IwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5oICovLAotCQkJCTBGODdGRkE2MjVBRjg5Nzkw
MDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCAqLywKLQkJCQkwRjg3
RkZCOTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oICov
LAotCQkJCTBGODdGRkJFMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9r
aW5kLmggKi8sCi0JCQkJMEY4N0ZGQkYyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeS5jICovLAotCQkJCTBGODdGRkJDMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjg3RkZBOTI1QUY4OTdBMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jICovLAotCQkJCTBGODdGRkEyMjVB
Rjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmggKi8sCiAJCQkJ
MEY4N0ZGQkQyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfaGVhcC5jICovLAogCQkJCTBG
ODdGRkM3MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2hlYXAuaCAqLywKIAkJCQkwRjg3
RkZDNDI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9tYXhfZnJlZS5oICovLAotCQkJCTBG
ODdGRkQxMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuYyAqLywKLQkJCQkwRjg3
RkZDNTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlLmggKi8sCi0JCQkJMEY4N0ZG
QjUyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCAqLywKIAkJCQkw
Rjg3RkZEMzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVz
LmggKi8sCiAJCQkJMEY4N0ZGQUQyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWdfa2luZC5jICovLAogCQkJCTBGODdGRkIyMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X3BhZ2VfY29uZmlnX2tpbmQuZGVmICovLAogCQkJCTBGODdGRkMxMjVBRjg5N0IwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCAqLywKLQkJCQkwRjg3RkZCNzI1QUY4
OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBG
ODdGRkM5MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzX2lu
bGluZXMuaCAqLywKKwkJCQkwRjg3RkZCNzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBGODdGRkE0MjVBRjg5NzkwMDBFMUFCRiAvKiBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCAqLywKKwkJCQkwRjg3RkZCNTI1QUY4OTdB
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oICovLAogCQkJCTBGODdGRkExMjVB
Rjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oICovLAorCQkJCTBGODdG
RkQxMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuYyAqLywKKwkJCQkwRjg3RkZD
NTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlLmggKi8sCiAJCQkJMEY4N0ZGQUMy
NUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5jICovLAogCQkJCTBGODdG
RkI0MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCAqLywKLQkJCQkw
Rjg3RkZDODI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3LmMgKi8sCi0JCQkJMEY4
N0ZGQTUyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlldy5oICovLAogCQkJCTBGODdG
RkQyMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4LmggKi8sCiAJ
CQkJMEY4N0ZGRDUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlld19pbmxpbmVzLmgg
Ki8sCisJCQkJMEY4N0ZGQzgyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlldy5jICov
LAorCQkJCTBGODdGRkE1MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAqLywK
IAkJCQkwRkM0MDlBOTI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2JpdHZlY3Rvci5oICovLAogCQkJ
CTBGQzQwOUJCMjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5jICov
LAogCQkJCTBGQzQwOUE3MjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVh
cC5oICovLApAQCAtMTU2OCw5ICsxNTEyLDkgQEAKIAkJCQkwRjhFNzg0QzI0Nzg3Mzk0MDBFMTI0
QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oICovLAogCQkJ
CTBGQzQwOUMyMjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfcHRyLmggKi8s
CiAJCQkJMEY4RTc4NEUyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oICovLAotCQkJCTBGOEU3ODRGMjQ3ODczOTQwMEUx
MjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyLmggKi8sCiAJCQkJMEZDNDA5ODYyNDUxNDk2MDAwODc2REEwIC8qIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX3Bvb2xzX3B0ci5oICovLAogCQkJ
CTBGQzQwOUFCMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXdfcHRyLmggKi8sCisJCQkJMEY3QzkyRDcyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICovLAog
CQkJCTBGQzQwOUJDMjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF92aWV3LmggKi8sCiAJCQkJMEY4RTgzMjUyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19jb21w
YWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLywKIAkJCQkwRkM0
MDk4QjI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3Vuc2lnbmVkX3B0ci5o
ICovLApAQCAtMTU4OSwxNCArMTUzMywxNCBAQAogCQkJCTBGNUZFN0Q4MjVCNjIxMEQwMDE4NTlG
QyAvKiBwYXNfY29tcGFjdF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oICovLAogCQkJCTBG
QzQwOTg3MjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9wdHIuaCAqLywKIAkJCQkwRjhF
Nzg1ODI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeV9wdHIuaCAqLywKLQkJCQkwRjhFNzg1NjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8sCisJCQkJMEY3
QzkyRDMyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfcHRyLmggKi8sCiAJCQkJMEZDNDA5QkEyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfaGVhcF9wdHIuaCAqLywKIAkJCQkwRkM0MDlBMTI0NTE0OTYxMDA4NzZE
QTAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfcHRyLmgg
Ki8sCiAJCQkJMEZDNDA5NzAyNDUxNDk1RTAwODc2REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfc2hhcmVkX3ZpZXdfcHRyLmggKi8sCisJCQkJMEY3QzkyREIyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJMEZD
NDA5OEYyNDUxNDk2MDAwODc2REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfdmlldy5oICov
LAotCQkJCTBGQzQwOTdEMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rf
bm9kZV9wdHIuaCAqLywKIAkJCQkwRkM0MDk5OTI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2NvbXBh
Y3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0ci5oICovLAotCQkJCTBGNUZFN0NFMjVCNjIxMEMwMDE4
NTlGQyAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCAqLywKKwkJCQkwRkM0
MDk3RDI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyLmgg
Ki8sCiAJCQkJMEZDNDA5QzEyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9h
dG9taWNfcHRyLmggKi8sCiAJCQkJMEY1RkU3RDkyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21w
YWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oICovLAogCQkJCTBGQzQwOTcx
MjQ1MTQ5NUUwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdnZWRfcHRyLmggKi8sCkBAIC0xNjA0
LDI0ICsxNTQ4LDI0IEBACiAJCQkJMEZDNDA5OUEyNDUxNDk2MTAwODc2REEwIC8qIHBhc19jb21w
YWN0X3Vuc2lnbmVkX3B0ci5oICovLAogCQkJCTBGQzQwOTc5MjQ1MTQ5NUYwMDg3NkRBMCAvKiBw
YXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3MuYyAqLywKIAkJCQkwRkM0MDlCMzI0
NTE0OTYyMDA4NzZEQTAgLyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmgg
Ki8sCi0JCQkJMEZDNDA5QjgyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb25maWcuaCAqLywKIAkJ
CQkwRkM0MDlBODI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2NvbmZpZ19wcmVmaXguaCAqLywKKwkJ
CQkwRkM0MDlCODI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2NvbmZpZy5oICovLAogCQkJCTBGQzQw
OUFEMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfY291bnRfbG9va3VwX21vZGUuaCAqLywKIAkJCQkw
RkM0MDlBNTI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2Fj
aGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmMgKi8sCiAJCQkJMEZDNDA5NkYyNDUxNDk1RTAwODc2
REEwIC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21l
bW9yeS5oICovLAogCQkJCTBGQzQwOTk4MjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0
ZS5jICovLAogCQkJCTBGQzQwOTlCMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0ZS5o
ICovLAogCQkJCTBGNUZFN0RBMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfZGVhbGxvY2F0aW9uX21v
ZGUuaCAqLywKLQkJCQkwRkM0MDlBMzI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2RlYWxsb2NhdG9y
LmggKi8sCiAJCQkJMEZDNDA5ODUyNDUxNDk2MDAwODc2REEwIC8qIHBhc19kZWFsbG9jYXRvcl9z
Y2F2ZW5nZV9hY3Rpb24uaCAqLywKKwkJCQkwRkM0MDlBMzI0NTE0OTYxMDA4NzZEQTAgLyogcGFz
X2RlYWxsb2NhdG9yLmggKi8sCiAJCQkJMEYzNzNFNTMyNjU5RUE3MDAwMzRCQTk2IC8qIHBhc19k
ZWJ1Z19oZWFwLmggKi8sCiAJCQkJMEZCQzYyQzQyNjVGMTgwQzAwNUE1NzIwIC8qIHBhc19kZWJ1
Z19zcGVjdHJ1bS5jICovLAogCQkJCTBGQkM2MkM1MjY1RjE4MEMwMDVBNTcyMCAvKiBwYXNfZGVi
dWdfc3BlY3RydW0uaCAqLywKIAkJCQkwRkM0MDlCOTI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2Rl
ZmVycmVkX2RlY29tbWl0X2xvZy5jICovLAogCQkJCTBGQzQwOUEwMjQ1MTQ5NjEwMDg3NkRBMCAv
KiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmggKi8sCisJCQkJMEY4RTgzMkIyNDkyRUFGMzAw
NDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCAqLywKIAkJ
CQkwRjhFODMyNjI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hl
YXAuYyAqLywKIAkJCQkwRjhFODMyNDI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2lnbmF0ZWRf
aW50cmluc2ljX2hlYXAuaCAqLywKLQkJCQkwRjhFODMyQjI0OTJFQUYzMDA0NkQ3RjggLyogcGFz
X2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBGQzQwOThBMjQ1
MTQ5NjAwMDg3NkRBMCAvKiBwYXNfZHlsZF9zdGF0ZS5jICovLAogCQkJCTBGQzQwOTlEMjQ1MTQ5
NjEwMDg3NkRBMCAvKiBwYXNfZHlsZF9zdGF0ZS5oICovLAogCQkJCTBGQzQwOTgwMjQ1MTQ5NUYw
MDg3NkRBMCAvKiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAuYyAqLywKQEAgLTE2NDQs
MTEgKzE1ODgsMTEgQEAKIAkJCQkwRjg3MDAxMjI1QUY4OUM3MDAwRTFBQkYgLyogcGFzX2VudW1l
cmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmggKi8sCiAJCQkJMEY4NzAwMUQyNUFGODlDODAwMEUxQUJG
IC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0YS5jICovLAogCQkJCTBG
ODcwMDFFMjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2Vz
X2FzX21ldGEuaCAqLywKLQkJCQkwRjg3MDAxNDI1QUY4OUM3MDAwRTFBQkYgLyogcGFzX2VudW1l
cmF0b3IuYyAqLywKLQkJCQkwRjg3MDAyNzI1QUY4OUM5MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0
b3IuaCAqLywKIAkJCQkwRjg3MDAyODI1QUY4OUM5MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0b3Jf
aW50ZXJuYWwuaCAqLywKIAkJCQkwRjg3MDAyMDI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2VudW1l
cmF0b3JfcmVnaW9uLmMgKi8sCiAJCQkJMEY4NzAwMjEyNUFGODlDODAwMEUxQUJGIC8qIHBhc19l
bnVtZXJhdG9yX3JlZ2lvbi5oICovLAorCQkJCTBGODcwMDE0MjVBRjg5QzcwMDBFMUFCRiAvKiBw
YXNfZW51bWVyYXRvci5jICovLAorCQkJCTBGODcwMDI3MjVBRjg5QzkwMDBFMUFCRiAvKiBwYXNf
ZW51bWVyYXRvci5oICovLAogCQkJCTBGQzQwOUFGMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfZXBv
Y2guYyAqLywKIAkJCQkwRkM0MDlCMTI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2Vwb2NoLmggKi8s
CiAJCQkJMEZDNDA5QjAyNDUxNDk2MjAwODc2REEwIC8qIHBhc19leGNsdXNpdmVfdmlld190ZW1w
bGF0ZV9tZW1vX3RhYmxlLmMgKi8sCkBAIC0xNjYyLDggKzE2MDYsOCBAQAogCQkJCTBGODcwMDIz
MjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9raW5kLmggKi8sCiAJCQkJMEY4
NzAwMjIyNUFGODlDODAwMEUxQUJGIC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmMgKi8sCiAJ
CQkJMEY4NzAwMjQyNUFGODlDODAwMEUxQUJGIC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmgg
Ki8sCi0JCQkJMEY4NzAwMTYyNUFGODlDNzAwMEUxQUJGIC8qIHBhc19mYXN0X3BhdGhfYWxsb2Nh
dGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRjg3MDAxMTI1QUY4OUM3MDAwRTFBQkYgLyogcGFzX2Zh
c3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggKi8sCisJCQkJMEY4NzAwMTYyNUFGODlD
NzAwMEUxQUJGIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkw
RkI1NzA2QzI2N0QwNTU5MDA4MEZBOEIgLyogcGFzX2Zhc3RfdGxzLmggKi8sCiAJCQkJMEZDNDBB
QzkyNDUxNDk5MDAwODc2REEwIC8qIHBhc19mZF9zdHJlYW0uYyAqLywKIAkJCQkwRkM0MEFDQTI0
NTE0OTkxMDA4NzZEQTAgLyogcGFzX2ZkX3N0cmVhbS5oICovLApAQCAtMTY3NCw4ICsxNjE4LDgg
QEAKIAkJCQkwRjg3MDAxRjI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuaCAq
LywKIAkJCQkwRkM0MEFBODI0NTE0OThFMDA4NzZEQTAgLyogcGFzX2ZyZWVfbW9kZS5oICovLAog
CQkJCTBGQzQwQTM0MjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfZnJlZV9yYW5nZV9raW5kLmggKi8s
Ci0JCQkJMEZDNDBBQ0IyNDUxNDk5MTAwODc2REEwIC8qIHBhc19mdWxsX2FsbG9jX2JpdHMuaCAq
LywKIAkJCQkwRkM0MEE0NTI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX2Z1bGxfYWxsb2NfYml0c19p
bmxpbmVzLmggKi8sCisJCQkJMEZDNDBBQ0IyNDUxNDk5MTAwODc2REEwIC8qIHBhc19mdWxsX2Fs
bG9jX2JpdHMuaCAqLywKIAkJCQkwRkM0MEEzQTI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX2dlbmVy
aWNfbGFyZ2VfZnJlZV9oZWFwLmggKi8sCiAJCQkJMEZDNDBBOTYyNDUxNDk4RDAwODc2REEwIC8q
IHBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmggKi8sCiAJCQkJMEZDNDBBRTEyNDUxNDk5MjAwODc2
REEwIC8qIHBhc19nZXRfaGVhcC5oICovLApAQCAtMTY4MywxNyArMTYyNywxNSBAQAogCQkJCTBG
ODcwMDFDMjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNfZ2V0X3BhZ2VfYmFzZS5oICovLAogCQkJCTBG
QzQwQTcyMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfaGFzX29iamVjdC5oICovLAogCQkJCTBGQzQw
QTQ4MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfaGFzaHRhYmxlLmggKi8sCi0JCQkJMEZDNDBBQ0My
NDUxNDk5MTAwODc2REEwIC8qIHBhc19oZWFwLmMgKi8sCi0JCQkJMEZDNDBBNUYyNDUxNDk4OTAw
ODc2REEwIC8qIHBhc19oZWFwLmggKi8sCi0JCQkJMEYxQkZENDUyNjY0NUFDNzAwQ0VDMjhEIC8q
IHBhc19oZWFwX2NvbmZpZy5jICovLAotCQkJCTBGQzQwQUFBMjQ1MTQ5OEUwMDg3NkRBMCAvKiBw
YXNfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRjhFNzg0RDI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFz
X2hlYXBfY29uZmlnX2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEE2OTI0NTE0OThBMDA4NzZEQTAg
LyogcGFzX2hlYXBfY29uZmlnX2tpbmQuYyAqLywKIAkJCQkwRkM0MEE4RDI0NTE0OThDMDA4NzZE
QTAgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuZGVmICovLAogCQkJCTBGQzQwQTU4MjQ1MTQ5ODkw
MDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5oICovLAorCQkJCTBGQzQwQTQyMjQ1MTQ5
ODcwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oICovLAogCQkJCTBG
QzQwQTVFMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHMuYyAqLywKIAkJ
CQkwRkM0MEFEQjI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmggKi8s
Ci0JCQkJMEZDNDBBNDIyNDUxNDk4NzAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19p
bmxpbmVzLmggKi8sCisJCQkJMEYxQkZENDUyNjY0NUFDNzAwQ0VDMjhEIC8qIHBhc19oZWFwX2Nv
bmZpZy5jICovLAorCQkJCTBGQzQwQUFBMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25m
aWcuaCAqLywKIAkJCQkwRkM0MEE3NzI0NTE0OThCMDA4NzZEQTAgLyogcGFzX2hlYXBfZm9yX2Nv
bmZpZy5jICovLAogCQkJCTBGQzQwQTlBMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfaGVhcF9mb3Jf
Y29uZmlnLmggKi8sCiAJCQkJMEZDNDBBRDkyNDUxNDk5MjAwODc2REEwIC8qIHBhc19oZWFwX2lu
bGluZXMuaCAqLywKQEAgLTE3MDEsMjMgKzE2NDMsMjQgQEAKIAkJCQkwRkM0MEFFNDI0NTE0OTky
MDA4NzZEQTAgLyogcGFzX2hlYXBfbG9jay5jICovLAogCQkJCTBGQzQwQTdCMjQ1MTQ5OEIwMDg3
NkRBMCAvKiBwYXNfaGVhcF9sb2NrLmggKi8sCiAJCQkJMEZDNDBBQkEyNDUxNDk4RjAwODc2REEw
IC8qIHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaCAqLywKLQkJCQkwRkM0MEE0RjI0NTE0OTg4MDA4
NzZEQTAgLyogcGFzX2hlYXBfcmVmLmMgKi8sCi0JCQkJMEZDNDBBNjYyNDUxNDk4OTAwODc2REEw
IC8qIHBhc19oZWFwX3JlZi5oICovLAogCQkJCTBGQzQwQUI1MjQ1MTQ5OEYwMDg3NkRBMCAvKiBw
YXNfaGVhcF9yZWZfa2luZC5oICovLAogCQkJCTBGQzQwQThFMjQ1MTQ5OEMwMDg3NkRBMCAvKiBw
YXNfaGVhcF9yZWZfcHJlZml4LmggKi8sCisJCQkJMEZDNDBBNEYyNDUxNDk4ODAwODc2REEwIC8q
IHBhc19oZWFwX3JlZi5jICovLAorCQkJCTBGQzQwQTY2MjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNf
aGVhcF9yZWYuaCAqLywKKwkJCQkwRjdDOTJEOTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2hlYXBf
cnVudGltZV9jb25maWcuYyAqLywKIAkJCQkwRkM0MEFFOTI0NTE0OTkzMDA4NzZEQTAgLyogcGFz
X2hlYXBfcnVudGltZV9jb25maWcuaCAqLywKIAkJCQkwRkM0MEFGMjI0NTE0OTkzMDA4NzZEQTAg
LyogcGFzX2hlYXBfc3VtbWFyeS5jICovLAogCQkJCTBGQzQwQUQ2MjQ1MTQ5OTEwMDg3NkRBMCAv
KiBwYXNfaGVhcF9zdW1tYXJ5LmggKi8sCisJCQkJMEZDNDBBNEUyNDUxNDk4ODAwODc2REEwIC8q
IHBhc19oZWFwX3RhYmxlX3N0YXRlLmggKi8sCiAJCQkJMEZDNDBBQzYyNDUxNDk5MDAwODc2REEw
IC8qIHBhc19oZWFwX3RhYmxlLmMgKi8sCiAJCQkJMEZDNDBBMkUyNDUxNDk4NjAwODc2REEwIC8q
IHBhc19oZWFwX3RhYmxlLmggKi8sCi0JCQkJMEZDNDBBNEUyNDUxNDk4ODAwODc2REEwIC8qIHBh
c19oZWFwX3RhYmxlX3N0YXRlLmggKi8sCisJCQkJMEZDNDBBQ0MyNDUxNDk5MTAwODc2REEwIC8q
IHBhc19oZWFwLmMgKi8sCisJCQkJMEZDNDBBNUYyNDUxNDk4OTAwODc2REEwIC8qIHBhc19oZWFw
LmggKi8sCiAJCQkJMEZDNDBBNjQyNDUxNDk4OTAwODc2REEwIC8qIHBhc19pbW1vcnRhbF9oZWFw
LmMgKi8sCiAJCQkJMEZDNDBBOUYyNDUxNDk4RDAwODc2REEwIC8qIHBhc19pbW1vcnRhbF9oZWFw
LmggKi8sCiAJCQkJMEZDNDBBOTQyNDUxNDk4RDAwODc2REEwIC8qIHBhc19pbW11dGFibGVfdmVj
dG9yLmggKi8sCiAJCQkJMEY1MTZFRTQyNDU2MTg0RjAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9j
b25maWcuaCAqLywKLQkJCQkwRkM0MEFCNzI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGQzQwQTUxMjQ1MTQ5ODgwMDg3NkRBMCAv
KiBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5oICovLAotCQkJCTBGQzQwQTlDMjQ1MTQ5OEQw
MDg3NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZS5oICovLAogCQkJCTBGQzQwQTU0MjQ1MTQ5ODgwMDg3
NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGQUJERENGMjQ4
QUIwODQwMEE4NDBCMyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgKi8s
CiAJCQkJMEZDNDBBQ0QyNDUxNDk5MTAwODc2REEwIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVm
ZXJyZWRfY29tbWl0X2xvZy5jICovLApAQCAtMTcyNywzNSArMTY3MCw0MSBAQAogCQkJCTBGQUJE
RENFMjQ4QUIwODQwMEE4NDBCMyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnMuaCAqLywK
IAkJCQkwRkM0MEE3NDI0NTE0OThBMDA4NzZEQTAgLyogcGFzX2xhcmdlX2ZyZWVfaW5saW5lcy5o
ICovLAogCQkJCTBGQzQwQTIzMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZV92aXNp
dG9yLmggKi8sCi0JCQkJMEZDNDBBOTMyNDUxNDk4RDAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFw
LmMgKi8sCi0JCQkJMEZDNDBBN0EyNDUxNDk4QjAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwLmgg
Ki8sCisJCQkJMEZDNDBBOUMyNDUxNDk4RDAwODc2REEwIC8qIHBhc19sYXJnZV9mcmVlLmggKi8s
CiAJCQkJMEZDNDBBODMyNDUxNDk4QjAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2Fs
X3BhZ2Vfc2hhcmluZ19jYWNoZS5jICovLAogCQkJCTBGQzQwQUIwMjQ1MTQ5OEYwMDg3NkRBMCAv
KiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuaCAqLywKKwkJCQkw
RkM0MEE5MzI0NTE0OThEMDA4NzZEQTAgLyogcGFzX2xhcmdlX2hlYXAuYyAqLywKKwkJCQkwRkM0
MEE3QTI0NTE0OThCMDA4NzZEQTAgLyogcGFzX2xhcmdlX2hlYXAuaCAqLywKKwkJCQkwRkM0MEFE
NDI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX2xhcmdlX21hcF9lbnRyeS5oICovLAogCQkJCTBGQzQw
QUY0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfbWFwLmMgKi8sCiAJCQkJMEZDNDBBMzYy
NDUxNDk4NjAwODc2REEwIC8qIHBhc19sYXJnZV9tYXAuaCAqLywKLQkJCQkwRkM0MEFENDI0NTE0
OTkxMDA4NzZEQTAgLyogcGFzX2xhcmdlX21hcF9lbnRyeS5oICovLAorCQkJCTBGQzQwQUJEMjQ1
MTQ5OTAwMDg3NkRBMCAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9tb2Rl
LmggKi8sCiAJCQkJMEZDNDBBNEIyNDUxNDk4ODAwODc2REEwIC8qIHBhc19sYXJnZV9zaGFyaW5n
X3Bvb2wuYyAqLywKIAkJCQkwRkM0MEExRDI0NTE0OTg0MDA4NzZEQTAgLyogcGFzX2xhcmdlX3No
YXJpbmdfcG9vbC5oICovLAotCQkJCTBGQzQwQUJEMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfbGFy
Z2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmggKi8sCiAJCQkJMEZDNDBBQTMyNDUx
NDk4RTAwODc2REEwIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jICovLAogCQkJCTBG
QzQwQUYxMjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCAq
LywKIAkJCQkwRjhBODEyNDI1RjgzRTI0MDA3OTBCNEEgLyogcGFzX2xpbmVfd29yZF9jb25maWcu
aCAqLywKIAkJCQkwRkM0MEE3RDI0NTE0OThCMDA4NzZEQTAgLyogcGFzX2xpc3RfZGlyZWN0aW9u
LmggKi8sCi0JCQkJMEZDNDBBMjgyNDUxNDk4NTAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0
b3IuYyAqLywKLQkJCQkwRkM0MEE0QTI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9j
YXRvci5oICovLAogCQkJCTBGQzQwQTRDMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxs
b2NhdG9yX2NvbmZpZ19raW5kLmggKi8sCiAJCQkJMEZDNDBBOTgyNDUxNDk4RDAwODc2REEwIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oICovLAotCQkJCTBGOEE4MTI4MjVGODNFMjUw
MDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaCAqLywKKwkJCQkwRjdDOTJFMDI2
RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggKi8sCiAJCQkJMEZD
NDBBQjgyNDUxNDk4RjAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUu
aCAqLywKIAkJCQkwRkM0MEE1MDI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZXN1bHQuaCAqLywKLQkJCQkwRkM0MEJEOTI0NTI0M0E0MDA4NzZEQTAgLyogcGFzX2xvY2su
YyAqLywKLQkJCQkwRkM0MEE4QjI0NTE0OThDMDA4NzZEQTAgLyogcGFzX2xvY2suaCAqLywKKwkJ
CQkwRjdDOTJEQTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5n
ZXJfZGF0YS5jICovLAorCQkJCTBGN0M5MkQ0MjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggKi8sCisJCQkJMEZDNDBBMjgyNDUxNDk4NTAwODc2
REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuYyAqLywKKwkJCQkwRkM0MEE0QTI0NTE0OTg4MDA4
NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5oICovLAorCQkJCTBGN0M5MkUxMjZFNTdGNzUw
MDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgKi8sCisJCQkJMEY3QzkyREMy
NkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCAqLywKKwkJCQkw
RjdDOTJENjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYyAqLywKKwkJ
CQkwRjdDOTJERTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCAqLywK
KwkJCQkwRjdDOTJERjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0
YWJsZS5oICovLAogCQkJCTBGQzQwQTU2MjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfbG9ja19mcmVl
X3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYyAqLywKIAkJCQkwRkM0MEFBNDI0NTE0OThFMDA4NzZE
QTAgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmggKi8sCisJCQkJMEZD
NDBCRDkyNDUyNDNBNDAwODc2REEwIC8qIHBhc19sb2NrLmMgKi8sCisJCQkJMEZDNDBBOEIyNDUx
NDk4QzAwODc2REEwIC8qIHBhc19sb2NrLmggKi8sCiAJCQkJMEZDNDBBRDcyNDUxNDk5MTAwODc2
REEwIC8qIHBhc19sb2cuYyAqLywKIAkJCQkwRkM0MEFDMTI0NTE0OTkwMDA4NzZEQTAgLyogcGFz
X2xvZy5oICovLAotCQkJCTBGOEU3ODRCMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfbWFnYXppbmUu
YyAqLywKLQkJCQkwRjhFNzg1MTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmggKi8s
CiAJCQkJMEY4NzAwNEIyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2Fj
aGUuYyAqLywKIAkJCQkwRjg3MDA0ODI1QUY4QTE5MDAwRTFBQkYgLyogcGFzX21lZGl1bV9tZWdh
cGFnZV9jYWNoZS5oICovLAogCQkJCTBGQzQwQTgxMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbWVn
YXBhZ2VfY2FjaGUuYyAqLywKQEAgLTE3NjYsMTMgKzE3MTUsMTMgQEAKIAkJCQkwRkM0MEFEMjI0
NTE0OTkxMDA4NzZEQTAgLyogcGFzX211dGF0aW9uX2NvdW50LmggKi8sCiAJCQkJMEY4NzAwNEUy
NUFGOEExOTAwMEUxQUJGIC8qIHBhc19vYmplY3Rfa2luZC5oICovLAogCQkJCTBGQzQwQTNCMjQ1
MTQ5ODYwMDg3NkRBMCAvKiBwYXNfb2JqZWN0X3NpemVfbW9kZS5oICovLAotCQkJCTBGODcwMDUy
MjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlLmMgKi8sCi0JCQkJMEY4NzAwNUQyNUFG
OEExQTAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2UuaCAqLywKLQkJCQkwRjg3MDA2MDI1QUY4QTFC
MDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLywKIAkJCQkwRjg3MDA1RTI1QUY4
QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfaW5saW5lcy5oICovLAotCQkJCTBG
ODcwMDREMjVBRjhBMTkwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICov
LAogCQkJCTBGODcwMDU2MjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191
dGlsc19pbmxpbmVzLmggKi8sCisJCQkJMEY4NzAwNEQyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19w
YWdlX2Jhc2VfY29uZmlnX3V0aWxzLmggKi8sCisJCQkJMEY4NzAwNjAyNUFGOEExQjAwMEUxQUJG
IC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi8sCiAJCQkJMEY4NzAwNTAyNUFGOEExQTAwMEUx
QUJGIC8qIHBhc19wYWdlX2Jhc2VfaW5saW5lcy5oICovLAorCQkJCTBGODcwMDUyMjVBRjhBMUEw
MDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlLmMgKi8sCisJCQkJMEY4NzAwNUQyNUFGOEExQTAwMEUx
QUJGIC8qIHBhc19wYWdlX2Jhc2UuaCAqLywKIAkJCQkwRjg3MDA0QTI1QUY4QTE5MDAwRTFBQkYg
LyogcGFzX3BhZ2VfY29uZmlnX2tpbmQuaCAqLywKIAkJCQkwRjg3MDA2MjI1QUY4QTFCMDAwRTFB
QkYgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLywKIAkJCQkwRjg3MDA0OTI1QUY4
QTE5MDAwRTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggKi8sCkBAIC0x
NzgyLDEyICsxNzMxLDEzIEBACiAJCQkJMEZDNDBBODkyNDUxNDk4QzAwODc2REEwIC8qIHBhc19w
YWdlX21hbGxvYy5jICovLAogCQkJCTBGQzQwQUY1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFn
ZV9tYWxsb2MuaCAqLywKIAkJCQkwRjg3MDA1QjI1QUY4QTFBMDAwRTFBQkYgLyogcGFzX3BhZ2Vf
c2hhcmluZ19tb2RlLmggKi8sCisJCQkJMEZDNDBBQTAyNDUxNDk4RTAwODc2REEwIC8qIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5oICovLAogCQkJCTBGQzQwQTMzMjQ1MTQ5ODYw
MDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmMgKi8sCiAJCQkJMEZDNDBB
NEQyNDUxNDk4ODAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCAqLywK
LQkJCQkwRkM0MEFBMDI0NTE0OThFMDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9raW5kLmggKi8sCisJCQkJMEY3QzkyRDIyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLywKKwkJCQkwRkM0MEE3MzI0NTE0OThB
MDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmggKi8sCiAJCQkJ
MEZDNDBBQUYyNDUxNDk4RjAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbC5jICovLAog
CQkJCTBGQzQwQUE5MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCAq
LywKLQkJCQkwRkM0MEE3MzI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3Rha2VfcmVzdWx0LmggKi8sCiAJCQkJMEY4NzAwNEMyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19w
YXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jICovLAogCQkJCTBGODcwMDVDMjVBRjhBMUEw
MDBFMUFCRiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCAqLywKIAkJCQkw
RkM0MEEzNzI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6
YXRpb25fc3R5bGUuaCAqLywKQEAgLTE4MDUsMTEgKzE3NTUsMTEgQEAKIAkJCQkwRkM0MEE0MDI0
NTE0OTg3MDA4NzZEQTAgLyogcGFzX3JhY2VfdGVzdF9ob29rcy5oICovLAogCQkJCTBGQzQwQTFG
MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfcmFuZG9tLmMgKi8sCiAJCQkJMEZDNDBBODQyNDUxNDk4
QzAwODc2REEwIC8qIHBhc19yYW5kb20uaCAqLywKLQkJCQkwRkM0MEEyNzI0NTE0OTg1MDA4NzZE
QTAgLyogcGFzX3JhbmdlLmggKi8sCi0JCQkJMEZDNDBBNzUyNDUxNDk4QjAwODc2REEwIC8qIHBh
c19yYW5nZTE2LmggKi8sCiAJCQkJMEY4NzAwNTQyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19yYW5n
ZV9iZWdpbl9taW5faGVhcC5oICovLAogCQkJCTBGQzQwQUQ4MjQ1MTQ5OTIwMDg3NkRBMCAvKiBw
YXNfcmFuZ2VfbG9ja2VkX21vZGUuaCAqLywKIAkJCQkwRkM0MEFCQzI0NTE0OTkwMDA4NzZEQTAg
LyogcGFzX3JhbmdlX21pbl9oZWFwLmggKi8sCisJCQkJMEZDNDBBMjcyNDUxNDk4NTAwODc2REEw
IC8qIHBhc19yYW5nZS5oICovLAorCQkJCTBGQzQwQTc1MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNf
cmFuZ2UxNi5oICovLAogCQkJCTBGQzQwQTQ0MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfcmVhbGxv
Y2F0ZV9mcmVlX21vZGUuaCAqLywKIAkJCQkwRkM0MEE4NjI0NTE0OThDMDA4NzZEQTAgLyogcGFz
X3JlYWxsb2NhdGVfaGVhcF90ZWxlcG9ydF9ydWxlLmggKi8sCiAJCQkJMEZDNDBBQkYyNDUxNDk5
MDAwODc2REEwIC8qIHBhc19yZWRfYmxhY2tfdHJlZS5jICovLApAQCAtMTgyMyw2NyArMTc3Myw2
MCBAQAogCQkJCTBGQzQwQTZEMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2NhdmVuZ2VyLmMgKi8s
CiAJCQkJMEZDNDBBNTcyNDUxNDk4ODAwODc2REEwIC8qIHBhc19zY2F2ZW5nZXIuaCAqLywKIAkJ
CQkwRkM0MEE3MDI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3NlZ21lbnRlZF92ZWN0b3IuaCAqLywK
LQkJCQkwRjhFNzg1QzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkuYyAqLywKLQkJCQkwRjhFNzg1NzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjhFNzg1MjI0Nzg3Mzk0MDBFMTI0
QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgKi8sCi0JCQkJMEY4RTc4NTkyNDc4
NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oICovLAotCQkJCTBG
QzQwQTI0MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYyAqLywK
LQkJCQkwRkM0MEE2RjI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
LmggKi8sCisJCQkJMEY3QzkyRDUyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19zZWdyZWdhdGVkX2Rl
YWxsb2NhdGlvbl9tb2RlLmggKi8sCiAJCQkJMEZDNDBBOTAyNDUxNDk4QzAwODc2REEwIC8qIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmggKi8sCiAJCQkJMEY4NzAwNTgy
NUFGOEExQTAwMEUxQUJGIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJs
ZV9raW5kLmggKi8sCiAJCQkJMEZDNDBBODAyNDUxNDk4QjAwODc2REEwIC8qIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBRUUyNDUxNDk5MzAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kLmggKi8sCisJCQkJMEZDNDBBMjQyNDUx
NDk4NTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jICovLAorCQkJCTBGQzQw
QTZGMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaCAqLywKKwkJ
CQkwRjE4RjgzQzI1QzM0Njc3MDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUU2MjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldy5jICovLAogCQkJCTBGQzQwQTZCMjQ1MTQ5OEEwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oICovLAotCQkJCTBGMThGODNDMjVD
MzQ2NzcwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgg
Ki8sCi0JCQkJMEY4RTc4NTQyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggKi8sCi0JCQkJMEY4RTc4NTUyNDc4NzM5NTAwRTEy
NEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jICovLAotCQkJCTBG
OEU3ODVEMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuaCAqLywKLQkJCQkwRjhFNzg1QjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKLQkJCQkwRkM0MEFEQzI0NTE0
OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jICovLAotCQkJCTBGQzQwQTJGMjQ1
MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggKi8sCiAJCQkJMEZDNDBBMjAy
NDUxNDk4NTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oICovLAogCQkJ
CTBGQzQwQTdGMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9r
aW5kLmggKi8sCiAJCQkJMEZDNDBBNTkyNDUxNDk4OTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X2hlYXBfcGFnZV9zaGFyaW5nX21vZGUuaCAqLywKLQkJCQkwRkM0MEFERjI0NTE0OTkyMDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jICovLAotCQkJCTBGQzQwQTM4MjQ1MTQ5ODYwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggKi8sCisJCQkJMEZDNDBBREMyNDUxNDk5MjAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuYyAqLywKKwkJCQkwRkM0MEEyRjI0NTE0OTg2
MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oICovLAogCQkJCTBGNUZFN0QxMjVCNjIx
MEMwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2FuZF9jb25maWcuaCAqLywKLQkJCQkw
RkM0MEE0MTI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyAq
LywKLQkJCQkwRkM0MEFEMTI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcuaCAqLywKIAkJCQkwRkM0MEFEQTI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUU1MjQ1MTQ5OTMwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmMgKi8sCiAJCQkJMEZDNDBBNzYy
NDUxNDk4QjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmICov
LAogCQkJCTBGQzQwQTVBMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kLmggKi8sCi0JCQkJMEZDNDBBOTcyNDUxNDk4RDAwODc2REEwIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEZDNDBBNTUyNDUxNDk4ODAwODc2
REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKKwkJ
CQkwRkM0MEE5NzI0NTE0OThEMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
dXRpbHMuaCAqLywKIAkJCQkwRjVGRTdDOTI1QjYyMTBCMDAxODU5RkMgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oICovLAorCQkJCTBGQzQwQTQxMjQ1MTQ5ODcwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jICovLAorCQkJCTBGQzQwQUQxMjQ1MTQ5
OTEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oICovLAogCQkJCTBGQzQw
QUFDMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2VtcHRpbmVzc19raW5k
LmggKi8sCiAJCQkJMEZDNDBBOTkyNDUxNDk4RDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLywKIAkJCQkwRkM0MEE2NzI0NTE0OThBMDA4NzZEQTAg
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCAqLywKIAkJCQkw
RkM0MEFERDI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgg
Ki8sCisJCQkJMEZDNDBBREYyNDUxNDk5MjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Uu
YyAqLywKKwkJCQkwRkM0MEEzODI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZS5oICovLAorCQkJCTBGQzQwQURFMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXdfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQTNDMjQ1MTQ5ODcwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYyAqLywKIAkJCQkwRkM0MEEyMTI0NTE0OTg1
MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmggKi8sCi0JCQkJMEZDNDBB
REUyNDUxNDk5MjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pbmxpbmVz
LmggKi8sCisJCQkJMEZDNDBBRjcyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3No
YXJlZF9oYW5kbGVfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUYzMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmMgKi8sCiAJCQkJMEZDNDBBNkEyNDUxNDk4
QTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaCAqLywKLQkJCQkwRkM0
MEFGNzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxp
bmVzLmggKi8sCiAJCQkJMEZDNDBBNTMyNDUxNDk4ODAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jICovLAogCQkJCTBGQzQwQUJCMjQ1MTQ5OEYwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaCAqLywKKwkJCQkwRkM0
MEE4ODI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5l
cy5oICovLAogCQkJCTBGQzQwQTQ5MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9z
aGFyZWRfdmlldy5jICovLAogCQkJCTBGQzQwQTMyMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfdmlldy5oICovLAotCQkJCTBGQzQwQTg4MjQ1MTQ5OEMwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxpbmVzLmggKi8sCisJCQkJMEY3QzkyREQy
NkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9u
X21vZGUuaCAqLywKKwkJCQkwRkM0MEEyMjI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUFCMjQ1MTQ5OEUwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jICovLAogCQkJCTBGQzQwQUY2
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oICovLAot
CQkJCTBGQzQwQTIyMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJMEZDNDBBNkUyNDUxNDk4QTAwODc2REEwIC8qIHBhc19z
ZWdyZWdhdGVkX3ZpZXcuYyAqLywKLQkJCQkwRkM0MEFFRjI0NTE0OTkzMDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfdmlldy5oICovLAogCQkJCTBGMThGODU3MjVDMzQ3RjMwMDcyMUMyQSAvKiBw
YXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCi0JCQkJMEY4RTc4NUUy
NDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICovLAogCQkJ
CTBGQzQwQTg1MjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCAq
LywKLQkJCQkwRkM0MEFDMDI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3Jf
cGFnZS5oICovLAotCQkJCTBGNUZFN0RCMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2hhcmVkX2hh
bmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggKi8sCisJCQkJMEZDNDBBNkUyNDUxNDk4QTAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuYyAqLywKKwkJCQkwRkM0MEFFRjI0NTE0OTkzMDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oICovLAogCQkJCTBGNUZFN0NGMjVCNjIxMEMwMDE4
NTlGQyAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCAqLywK
KwkJCQkwRjVGRTdEQjI1QjYyMTBEMDAxODU5RkMgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFn
ZV9ib3VuZGFyeS5oICovLAogCQkJCTBGQzQwQUFEMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfc2hh
cmVkX2hhbmRsZV9vcl9wYWdlX2lubGluZXMuaCAqLywKKwkJCQkwRkM0MEFDMDI0NTE0OTkwMDA4
NzZEQTAgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZS5oICovLAogCQkJCTBGQ0NEMTQyMjY1
NjAxODYwMDE3MUExRiAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYyAqLywK
IAkJCQkwRkNDRDE0MzI2NTYwMTg2MDAxNzFBMUYgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eV9ieV9zaXplLmggKi8sCiAJCQkJMEZDNDBBNDYyNDUxNDk4NzAwODc2REEwIC8qIHBhc19zaW1w
bGVfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgKi8sCkBAIC0xODk0LDExICsxODM3LDExIEBA
CiAJCQkJMEZDNDBBOUIyNDUxNDk4RDAwODc2REEwIC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9o
ZWFwLmggKi8sCiAJCQkJMEZDNDBBMjYyNDUxNDk4NTAwODc2REEwIC8qIHBhc19zaW1wbGVfdHlw
ZS5oICovLAogCQkJCTBGOTlGOTg2MjVDQjJDRDEwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5o
ICovLAorCQkJCTBGQzQwQTJBMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2tpcF9saXN0X2lubGlu
ZXMuaCAqLywKIAkJCQkwRkM0MEFBRTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3NraXBfbGlzdC5j
ICovLAogCQkJCTBGQzQwQUM0MjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfc2tpcF9saXN0LmggKi8s
Ci0JCQkJMEZDNDBBMkEyNDUxNDk4NTAwODc2REEwIC8qIHBhc19za2lwX2xpc3RfaW5saW5lcy5o
ICovLAotCQkJCTBGQzQwQTkyMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc2xvd19wYXRoX21vZGUu
aCAqLywKIAkJCQkwRkM0MEE2MTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3Nsb3dfcGF0aF9tb2Rl
X3ByZWZpeC5oICovLAorCQkJCTBGQzQwQTkyMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc2xvd19w
YXRoX21vZGUuaCAqLywKIAkJCQkwRkM0MEFENTI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX3NtYWxs
X2xhcmdlX21hcF9lbnRyeS5oICovLAogCQkJCTBGQzQwQUVCMjQ1MTQ5OTMwMDg3NkRBMCAvKiBw
YXNfc25wcmludGYuaCAqLywKIAkJCQkwRkM0MEExRTI0NTE0OTg0MDA4NzZEQTAgLyogcGFzX3N0
YXR1c19yZXBvcnRlci5jICovLApAQCAtMTkwNyw0OCArMTg1MCw0NSBAQAogCQkJCTBGQzQwQUI5
MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc3RyZWFtLmggKi8sCiAJCQkJMEZDNDBBOTUyNDUxNDk4
RDAwODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgKi8sCiAJCQkJMEZDNDBBM0YyNDUxNDk4
NzAwODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFtLmggKi8sCi0JCQkJMEY4NzAwODUyNUFGOTQ2
MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5jICovLAotCQkJCTBGODcwMDg0MjVBRjk0NjEw
MDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuaCAqLywKLQkJCQkwRjg3MDA4MzI1QUY5NDYxMDAw
RTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi8sCi0JCQkJMEY4NzAwODYyNUFGOTQ2
MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oICovLAotCQkJCTBGQzQwQTdDMjQ1
MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgKi8sCi0JCQkJMEZDNDBB
QzcyNDUxNDk5MDAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCAqLywKLQkJCQkw
RkM0MEE2MjI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQu
YyAqLywKLQkJCQkwRkM0MEE4MjI0NTE0OThCMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXQuaCAqLywKKwkJCQkwRjdDOTJEODI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggKi8sCiAJCQkJMEY4RTgzMjcyNDky
RUFGMzAwNDZEN0Y4IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYyAqLywK
IAkJCQkwRjhFODMyODI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oICovLAorCQkJCTBGQzQwQTYyMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jICovLAorCQkJCTBGQzQwQTgyMjQ1MTQ5OEIwMDg3NkRB
MCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oICovLAogCQkJCTBGQzQwQUEyMjQ1
MTQ5OEUwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYyAqLywKIAkJCQkw
RkM0MEFBNzI0NTE0OThFMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgg
Ki8sCisJCQkJMEZDNDBBN0MyNDUxNDk4QjAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUuYyAqLywKKwkJCQkwRkM0MEFDNzI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZS5oICovLAogCQkJCTBGQzQwQTc4MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdGlueV9s
YXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkwRkM0MEFDNTI0NTE0OTkwMDA4NzZEQTAgLyogcGFz
X3RyZWVfZGlyZWN0aW9uLmggKi8sCiAJCQkJMEY4QTgwMUMyNUNGOTM4QTAwNzkwQjRBIC8qIHBh
c190cmlfc3RhdGUuaCAqLywKLQkJCQkwRkM0MEE2NTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3Ry
eV9hbGxvY2F0ZS5oICovLAogCQkJCTBGQzQwQTUyMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfdHJ5
X2FsbG9jYXRlX2FycmF5LmggKi8sCiAJCQkJMEZDNDBBMzkyNDUxNDk4NjAwODc2REEwIC8qIHBh
c190cnlfYWxsb2NhdGVfY29tbW9uLmggKi8sCiAJCQkJMEZDNDBBODcyNDUxNDk4QzAwODc2REEw
IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oICovLAogCQkJCTBGQzQw
QTJCMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oICovLAor
CQkJCTBGQzQwQTY1MjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfdHJ5X2FsbG9jYXRlLmggKi8sCiAJ
CQkJMEZDNDBBMzAyNDUxNDk4NjAwODc2REEwIC8qIHBhc190cnlfcmVhbGxvY2F0ZS5oICovLAog
CQkJCTBGNTE5M0Y0MjY2QzQyQkYwMDQ4M0EyQyAvKiBwYXNfdHJ5X3Nocmluay5oICovLAogCQkJ
CTBGQzQwQTc5MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQu
aCAqLywKLQkJCQkwRkM0MEEzMTI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3V0aWxpdHlfaGVhcC5j
ICovLAotCQkJCTBGQzQwQUQwMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfdXRpbGl0eV9oZWFwLmgg
Ki8sCiAJCQkJMEZDNDBBMkMyNDUxNDk4NTAwODc2REEwIC8qIHBhc191dGlsaXR5X2hlYXBfY29u
ZmlnLmMgKi8sCiAJCQkJMEZDNDBBOUQyNDUxNDk4RDAwODc2REEwIC8qIHBhc191dGlsaXR5X2hl
YXBfY29uZmlnLmggKi8sCiAJCQkJMEZDNDBBMUMyNDUxNDk4NDAwODc2REEwIC8qIHBhc191dGls
aXR5X2hlYXBfc3VwcG9ydC5oICovLAorCQkJCTBGQzQwQTMxMjQ1MTQ5ODYwMDg3NkRBMCAvKiBw
YXNfdXRpbGl0eV9oZWFwLmMgKi8sCisJCQkJMEZDNDBBRDAyNDUxNDk5MTAwODc2REEwIC8qIHBh
c191dGlsaXR5X2hlYXAuaCAqLywKKwkJCQkwRkM0MEE1QzI0NTE0OTg5MDA4NzZEQTAgLyogcGFz
X3V0aWxzX3ByZWZpeC5oICovLAogCQkJCTBGQzQwQUU3MjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNf
dXRpbHMuYyAqLywKIAkJCQkwRkM0MEFEMzI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX3V0aWxzLmgg
Ki8sCi0JCQkJMEZDNDBBNUMyNDUxNDk4OTAwODc2REEwIC8qIHBhc191dGlsc19wcmVmaXguaCAq
LywKIAkJCQkwRjg3MDA4NzI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5j
ICovLAogCQkJCTBGQzQwQTJEMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxk
LmggKi8sCisJCQkJMEZDNDBBRTAyNDUxNDk5MjAwODc2REEwIC8qIHBhc192aXJ0dWFsX3Jhbmdl
X21pbl9oZWFwLmggKi8sCiAJCQkJMEZDNDBBQkUyNDUxNDk5MDAwODc2REEwIC8qIHBhc192aXJ0
dWFsX3JhbmdlLmMgKi8sCiAJCQkJMEZDNDBBRUQyNDUxNDk5MzAwODc2REEwIC8qIHBhc192aXJ0
dWFsX3JhbmdlLmggKi8sCi0JCQkJMEZDNDBBRTAyNDUxNDk5MjAwODc2REEwIC8qIHBhc192aXJ0
dWFsX3JhbmdlX21pbl9oZWFwLmggKi8sCiAJCQkJMEZDNDBBRUEyNDUxNDk5MzAwODc2REEwIC8q
IHBhc196ZXJvX21vZGUuaCAqLywKLQkJCQkwRjg3MDBDRTI1QjBDQjAzMDAwRTFBQkYgLyogdGhp
bmd5X2hlYXAuYyAqLywKLQkJCQkwRjg3MDBDQTI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hl
YXAuaCAqLywKIAkJCQkwRjg3MDBDRDI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29u
ZmlnLmMgKi8sCiAJCQkJMEY4NzAwQ0MyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2Nv
bmZpZy5oICovLAogCQkJCTBGODcwMENCMjVCMENCMDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9w
cmVmaXguaCAqLywKKwkJCQkwRjg3MDBDRTI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAu
YyAqLywKKwkJCQkwRjg3MDBDQTI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuaCAqLywK
IAkJCSk7CiAJCQluYW1lID0gbGlicGFzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTIxMzYsNiArMjA3Niw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJ
ZmlsZXMgPSAoCiAJCQkJMTRERDc4QzUxOEY0OEQ3NTAwOTUwNzAyIC8qIEFsZ29yaXRobS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRUQyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
N0VCODM0MUY5NTQxQjAwMEYxQUJDQiAvKiBBbGxJc29IZWFwcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY3RUI4NEYxRjk1NEQ0RTAwRjFBQkNCIC8qIEFsbElzb0hlYXBzSW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTRERDc4OTgxOEY0OEQ0QTAwOTUwNzAyIC8qIEFsbG9jYXRvci5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yMjE5LDYgKzIxNjAsNyBAQAogCQkJCTBGN0VCODI3MUY5NTQxQjAw
MEYxQUJDQiAvKiBJc29UTFNEZWFsbG9jYXRvckVudHJ5SW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY3RUI4MkQxRjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMU0VudHJ5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjdFQjgzNTFGOTU0MUIwMDBGMUFCQ0IgLyogSXNvVExTRW50cnlJbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJGMDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjdFQjg0NjFGOTU0MUIw
MDBGMUFCQ0IgLyogSXNvVExTSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4NDAx
Rjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMU0xheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1
MTkzRUYyNjZDNDJBRDAwNDgzQTJDIC8qIGppdF9oZWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTIy
NDMsMTAgKzIxODUsOCBAQAogCQkJCTBGQzQwOTVBMjQ1MTQ5NDQwMDg3NkRBMCAvKiBwYXNfYWxp
Z25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5NUIyNDUx
NDk0NDAwODc2REEwIC8qIHBhc19hbGlnbmVkX2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDA5NjAyNDUxNDk0NDAwODc2REEwIC8qIHBhc19hbGlnbm1lbnQuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGODdGRkY2MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdfZGly
ZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMUJGRDQ4MjY2NDVBQzcwMENFQzI4RCAv
KiBwYXNfYWxsX2hlYXBfY29uZmlncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5REUyNDUx
NDk2NDAwODc2REEwIC8qIHBhc19hbGxfaGVhcHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMUFF
Q0VDMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDA5QzgyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGly
ZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOURGMjQ1MTQ5NjQwMDg3NkRBMCAv
KiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUQ3
MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdGlvbl9jb25maWcuaCBpbiBIZWFkZXJzICov
LApAQCAtMjI1Niw2ICsyMTk2LDcgQEAKIAkJCQkwRjc1NDk4MjI0ODY5NzQwMDAyQTRDN0QgLyog
cGFzX2FsbG9jYXRvcl9pbmRleC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RTMyNDUxNDk2
NDAwODc2REEwIC8qIHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MDlGODI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRTMyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkM0MDlEODI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1
bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUQxMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDAwNDI1
QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1lcmF0b3JfZGF0YS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yMjYzLDIwICsyMjA0LDEzIEBACiAJCQkJMEZDNDA5RkMyNDUx
NDk2NDAwODc2REEwIC8qIHBhc19iYXNpY19oZWFwX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MDlENDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2ljX2hlYXBfcnVudGlt
ZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUVDMjQ1MTQ5NjQwMDg3NkRBMCAv
KiBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY4N0ZGRTkyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY4N0ZGRTgyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2Rp
cmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDAwMjI1QUY4OTdDMDAw
RTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwQTBCMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYml0ZmllbGRfdmVjdG9yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjg3MDAwQzI1QUY4OTdEMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxv
Y2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGRTUyNUFGODk3QzAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3RkZG
MTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY4N0ZGRjAyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODdGRkY4MjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4N0ZG
REQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGRUYyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODdGRkY0MjVBRjg5N0Mw
MDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjg3RkZGMjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3RkZEOTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGRkQyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4
N0ZGRkEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGODdGRkZCMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuaCBp
biBIZWFkZXJzICovLApAQCAtMjMxMSw3ICsyMjQ1LDYgQEAKIAkJCQkwRjhFNzg2MTI0Nzg3Mzk1
MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMTgyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0
X2F0b21pY19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEU3ODYzMjQ3ODczOTUwMEUxMjRB
NiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGOEU3ODY0MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MDlEQzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdfcG9vbHNfcHRyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MEEwMTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMTIyNDUx
NDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3ZpZXcuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjMyOSwyNCArMjI2MiwyNSBAQAogCQkJCTBGNUZFN0VEMjVCNjIxMEQw
MDE4NTlGQyAvKiBwYXNfY29tcGFjdF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDA5REQyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3B0
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4RTc4NkQyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjhFNzg2QjI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEExMDI0
NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9oZWFwX3B0ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDA5RjcyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDA5QzYyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlFNTI0NTE0OTY0MDA4NzZEQTAg
LyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF92aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdD
OTJFMjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jl
c3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RDMyNDUxNDk2NDAwODc2REEwIC8qIHBh
c19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5
RUYyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUZFN0UzMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29t
cGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTE3
MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdnZWRfYXRvbWljX3B0ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1RkU3RUUyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19jb21wYWN0X3Rh
Z2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
NDA5QzcyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQzQwOUY1MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdn
ZWRfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlGMDI0NTE0OTY0MDA4
NzZEQTAgLyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkM0MEEwOTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2Fs
bGJhY2tzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFRjI2RTU3Rjc1MDA2QUYwMTIgLyog
cGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBB
MEUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwOUZFMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29uZmlnX3ByZWZpeC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDNDBBMDMyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb3VudF9sb29rdXBfbW9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5QzUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19j
cmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY3QzkyRUMyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3
X2NhY2hlX25vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUYxMjQ1MTQ5NjQwMDg3NkRB
MCAvKiBwYXNfZGVhbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3RUYyNUI2MjEw
RDAwMTg1OUZDIC8qIHBhc19kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDA5RjkyNDUxNDk2NDAwODc2REEwIC8qIHBhc19kZWFsbG9jYXRvci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNDE4LDcgKzIzNTIsNiBAQAogCQkJCTBGQzQwQjdBMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfaW1tb3J0YWxfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNkYyNDUxNDk5
NDAwODc2REEwIC8qIHBhc19pbW11dGFibGVfdmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjUxNkVFNTI0NTYxODRGMDA0RTJCOEQgLyogcGFzX2ludGVybmFsX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZDNDBCOTIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjJGMjQ1MTQ5OTQwMDg3
NkRBMCAvKiBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDBCNzcyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sYXJnZV9mcmVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MEIzMjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9j
b25maWcuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ0MCwxMyArMjM3MywxMiBAQAogCQkJCTBGQzQw
QjI4MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MEIyQTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9j
b25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNzMyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4
QTgxMzcyNUY4M0UyNTAwNzkwQjRBIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDBCOTMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxv
Y2F0b3JfcmVmaWxsX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjJFMjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDBCNjcyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NrLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjdDOTJFNzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI3RjI0
NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI5QzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvZy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4NjYyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19tYWdh
emluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNjUyNUFGOEExQjAwMEUxQUJGIC8qIHBh
c19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjA0MjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwQjVBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbWluX2hlYXAuaCBpbiBIZWFkZXJzICov
LApAQCAtMjQ2Niw2ICsyMzk4LDcgQEAKIAkJCQkwRjg3MDA2QzI1QUY4QTFCMDAwRTFBQkYgLyog
cGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA3NzI1QUY4
QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2Vfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBC
RDAyNDUxNDk5NDAwODc2REEwIC8qIHBhc19wYWdlX21hbGxvYy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY3QzkyRTQyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDc4MjVBRjhBMUIwMDBFMUFCRiAv
KiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjJCMjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEI3QjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9raW5kLmggaW4gSGVhZGVycyAqLywKQEAgLTI0ODMsNiArMjQxNiw3IEBACiAJ
CQkJMEZDNDBCMUYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19yYWNlX3Rlc3RfaG9va3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQjYwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcmFuZG9tLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIwNjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3Jhbmdl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFODI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkM0MEI1MjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3JhbmdlMTYuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGODcwMDcxMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcmFuZ2VfYmVnaW5fbWluX2hlYXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkIzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcmFu
Z2VfbG9ja2VkX21vZGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ5NSw4ICsyNDI5LDYgQEAKIAkJ
CQkwRjg3MDA3NjI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3Jvb3QuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwQjM1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2NhdmVuZ2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEI0RDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ21lbnRlZF92ZWN0
b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3ODZDMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4
NkUyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDBCNEMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNkIyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjg3MDA3NTI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNCw5ICsyNDM2
LDYgQEAKIAkJCQkwRkM0MEJDOTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjQ4MjQ1MTQ5OTQwMDg3NkRB
MCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEYxOEY4NDUyNUMzNDY3NzAwNzIxQzJBIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3ODY5MjQ3ODczOTUwMEUxMjRBNiAv
KiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY4RTc4NzIyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4RTc4NzAyNDc4NzM5
NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIwRTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBRkYyNDUxNDk5NDAwODc2
REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDBCNUIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tp
bmQuaCBpbiBIZWFkZXJzICovLApAQCAtMjUxNSwxMiArMjQ0NCwxNCBAQAogCQkJCTBGNUZFN0U2
MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2FuZF9jb25maWcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQkFDMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCQjUyNDUxNDk5NDAwODc2
REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGN0M5MkU1MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCRDYyNDUxNDlBRTAwODc2REEw
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDBCMzgyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjcyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZD
NDBCMzMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxz
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUZFN0RFMjVCNjIxMEQwMDE4NTlGQyAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkM0MEI4NzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5l
c3Nfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRUUyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19sb2NhbF92aWV3X2NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI3NDI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNDQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0
MEJCODI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKQEAgLTI1MzUsNyArMjQ2Niw2IEBACiAJCQkJMEZDNDBCMDEyNDUxNDk5NDAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQzQwQkNBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92
aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE4Rjg1ODI1QzM0N0YzMDA3MjFDMkEgLyogcGFz
X3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY4RTc4NzMyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNjEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCOUIyNDUxNDk5NDAw
ODc2REEwIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNUZFN0YwMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2Jv
dW5kYXJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTI1NTcsOCArMjQ4Nyw2IEBACiAJCQkJMEZDNDBB
RkEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQjk0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc3RyZWFtLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEIxRTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0cmluZ19zdHJlYW0u
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGODcwMDg5MjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfc3Vi
cGFnZV9tYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODcwMDhCMjVBRjk0NjIwMDBFMUFCRiAv
KiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkEyMjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MEI1RTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEU4MzMwMjQ5MkVBRjMwMDQ2RDdGOCAvKiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
OTIsNiArMjUyMCw3IEBACiAJCQkJMEY1QkYxNTMxRjIyRTE1NzAwMjlEOTFEIC8qIFNjYXZlbmdl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ4RUZBRTgxRDZCOTUzQjAwOEU3MjFFIC8qIFNjb3Bl
RXhpdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRERDc4OTAxOEY0OENFQjAwOTUwNzAyIC8qIFNp
emVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjdDOTJFQjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTE0REQ3OEJDMThGNDhENkIwMDk1MDcwMiAvKiBTbWFsbExpbmUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE0REQ3OEJEMThGNDhENkIwMDk1MDcwMiAvKiBTbWFsbFBhZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUzMUU3NDgwMjIzOENBNUMwMDVEMDg0QSAvKiBTdGF0aWNQZXJQcm9jZXNzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI3MzUsMjIgKzI2NjQsMTYgQEAKIAkJCQkwRjE4Rjg0NzI1QzM0
Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYx
OEY4NDkyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRkM0MDk1RDI0NTE0OTQ0MDA4NzZEQTAgLyogcGFzX2FsaWdubWVudC5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4NzAwMDUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19hbGxf
Ymlhc2luZ19kaXJlY3Rvcmllcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDA5NjQyNDUxNDk0
NDAwODc2REEwIC8qIHBhc19hbGxfaGVhcHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMUFFQ0VE
MjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDNDBBMTUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0
b3JpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwOUY0MjQ1MTQ5NjQwMDg3NkRBMCAvKiBw
YXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGODdGRkVFMjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyBpbiBTb3VyY2VzICovLAog
CQkJCTBGQzQwOURBMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmMg
aW4gU291cmNlcyAqLywKIAkJCQkwRkM0MDlFRDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl90YWJsZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1MTkzRjMyNjZDNDJB
RDAwNDgzQTJDIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGODdGRkU2MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19k
aXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMDAzMjVBRjg5N0MwMDBFMUFCRiAv
KiBwYXNfYml0Zml0X2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4N0ZGREUyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGODcwMDAxMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9y
eS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4N0ZGRjUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4N0ZGRTAyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGODdGRkYzMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2hlYXAuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGN0M5MkYxMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxf
dmlld19jYWNoZV9ub2RlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3MDAwNzI1QUY4OTdDMDAw
RTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3RkZFNDI1
QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgaW4gU291cmNl
cyAqLywKIAkJCQkwRjg3RkZFMzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2Ns
YXNzLmMgaW4gU291cmNlcyAqLywKQEAgLTI3NzYsNiArMjY5OSw4IEBACiAJCQkJMEY4NzAwNDIy
NUFGODlDOTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3QuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGODcwMDA2MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2JpdGZp
dF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4N0ZGRjkyNUFGODk3QzAwMEUxQUJGIC8q
IHBhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRjdDOTJFOTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2hlYXBfcnVudGltZV9jb25m
aWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGN0M5MkVBMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3
RkZFNzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY4NzAwMzAyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVf
c2VncmVnYXRlZF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwMzYyNUFGODlDOTAw
MEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0YS5jIGluIFNv
dXJjZXMgKi8sCkBAIC0yNzgzLDYgKzI3MDgsNyBAQAogCQkJCTBGODcwMDM5MjVBRjg5QzkwMDBF
MUFCRiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24uYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQw
QTA1MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZXBvY2guYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
QzQwQTA2MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVt
b190YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY3QzkyRTYyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19sb2NhbF92aWV3X2NhY2hlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MDlDQjI0NTE0
OTY0MDA4NzZEQTAgLyogcGFzX2V4dGVuZGVkX2djZC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZD
NDBCNzkyNDUxNDk5NDAwODc2REEwIC8qIHBhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY4NzAwMzEyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19mYXN0X21lZ2Fw
YWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLywKQEAgLTI4MTAsNyArMjczNiw2IEBACiAJCQkJMEZD
NDBCREEyNDUyNDNBNDAwODc2REEwIC8qIHBhc19sb2NrLmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RkM0MEIzNDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFz
aHRhYmxlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEJCMjI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX2xvZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4RTc4NjAyNDc4NzM5NTAwRTEyNEE2IC8q
IHBhc19tYWdhemluZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwNjgyNUFGOEExQjAwMEUx
QUJGIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
QzQwQjVEMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGQzQwQjZBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbW9ub3RvbmljX3RpbWUu
YyBpbiBTb3VyY2VzICovLApAQCAtMjgzMCwxMSArMjc1NSw4IEBACiAJCQkJMEZDNDBCNjYyNDUx
NDk5NDAwODc2REEwIC8qIHBhc19yZXNlcnZlZF9tZW1vcnlfcHJvdmlkZXIuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGODcwMDcwMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcm9vdC5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZDNDBCNEEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zY2F2ZW5nZXIuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGOEU3ODcxMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4RTc4NjcyNDc4
NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZDNDBCMDMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCQzEyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjhFNzg2
QTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEJCNzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCQkEyNDUxNDk5NDAwODc2
REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjIw
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jIGluIFNvdXJj
ZXMgKi8sCkBAIC0yODUyLDggKzI3NzQsNiBAQAogCQkJCTBGQzQwQUZEMjQ1MTQ5OTQwMDg3NkRB
MCAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEI0NTI0
NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0cmVhbS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBC
NzAyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjg3MDA4QTI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwLmMgaW4gU291
cmNlcyAqLywKLQkJCQkwRjg3MDA4ODI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFw
X2VudHJ5LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEI1ODI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNDAyNDUx
NDk5NDAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmMgaW4gU291cmNl
cyAqLywKIAkJCQkwRjhFODMyRjI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZS5jIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0JQbGF0Zm9ybS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
QlBsYXRmb3JtLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2Mv
QlBsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyMCw4ICszMjAsMTIgQEAKIAogLyogQlVT
RShMSUJQQVMpIGlzIHVzaW5nIGxpYnBhcyBmb3IgYm1hbGxvYyByZXBsYWNlbWVudC4gKi8KICNp
ZiAhZGVmaW5lZChCVVNFX0xJQlBBUykKKyNpZiBkZWZpbmVkKEJFTkFCTEVfTElCUEFTKSAmJiBC
RU5BQkxFX0xJQlBBUworI2RlZmluZSBCVVNFX0xJQlBBUyAxCisjZWxzZQogI2RlZmluZSBCVVNF
X0xJQlBBUyAwCiAjZW5kaWYKKyNlbmRpZgogCiAjaWYgIWRlZmluZWQoQlVTRV9QUkVDT01QVVRF
RF9DT05TVEFOVFNfVk1QQUdFNEspCiAjZGVmaW5lIEJVU0VfUFJFQ09NUFVURURfQ09OU1RBTlRT
X1ZNUEFHRTRLIDEKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9leHBvcnQuc2gKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL2V4cG9ydC5zaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvZXhwb3J0LnNoCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzAgQEAKKyMhL2Jpbi9zaAorIyBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6
CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
c2V0IC1lCitzZXQgLXgKKworcm0gLXJmIGxpYnBhcy1leHBvcnQKK2dpdCBjbG9uZSAuIGxpYnBh
cy1leHBvcnQKK3JtIC1yZiBsaWJwYXMtZXhwb3J0Ly5naXQKClByb3BlcnR5IGNoYW5nZXMgb246
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9leHBvcnQuc2gKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmV4
ZWN1dGFibGUKIyMgLTAsMCArMSAjIworKgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDI3ICszOSwyNSBAQAogLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAkJMEYw
MzdBRjMyNUFFQTkxQTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDM3QUYxMjVBRUE5
MTkwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMgKi87IH07CiAJCTBGMDM3
QUY0MjVBRUE5MUEwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjAzN0FGMjI1QUVBOTFB
MDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oICovOyB9OwotCQkwRjA0QzIx
NDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjAyMjQ2
MERCNkQwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oICovOyB9
OwotCQkwRjA0QzIxNTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjA0QzIwMzI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5LmMgKi87IH07Ci0JCTBGMDRDMjE2MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjA0MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCAqLzsgfTsKLQkJMEYwNEMyMTkyNDYw
REI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9r
aW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0
QzIwNzI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmQuaCAqLzsgfTsKLQkJMEYwNEMyMUEyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19t
YWdhemluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYwNEMyMDgyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19tYWdhemluZS5oICovOyB9OwotCQkwRjA0
QzIxQzI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwQTI0NjBE
QjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgKi87IH07CiAJCTBG
MDRDMjFEMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMEIyNDYwREI2
RTAwMUQzMUYwIC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmggKi87IH07Ci0JCTBGMDRDMjFF
MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjBDMjQ2MERCNkUw
MDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCAqLzsgfTsKIAkJMEYwNEMy
MUYyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19sb2NrLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwRDI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX2xv
Y2suYyAqLzsgfTsKLQkJMEYwNEMyMjAyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjA0QzIwRTI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3RvcnkuYyAqLzsgfTsKLQkJMEYwNEMyMjEyNDYwREI2RjAwMUQzMUYwIC8qIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwRjI0NjBEQjZFMDAxRDMx
RjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLzsg
fTsKLQkJMEYwNEMyMjIyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYw
NEMyMTAyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICov
OyB9OwotCQkwRjA0QzIyNDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIxMjI0NjBEQjZG
MDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmMgKi87IH07CiAJCTBGMDRDMjI1MjQ2MERCNkYwMDFE
MzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIxMzI0NjBEQjZG
MDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oICov
OyB9OwotCQkwRjA0QzIyODI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIyNjI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi87IH07Ci0JCTBGMDRD
MjI5MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjA0QzIyNzI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oICovOyB9OwogCQkwRjA4
M0Y1QTIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYwODNGNTgyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0
aWxzX2lubGluZXMuaCAqLzsgfTsKIAkJMEYwODNGNUIyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19o
ZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjA4M0Y1OTIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX2hlYXBfY29u
ZmlnX3V0aWxzX2lubGluZXMuaCAqLzsgfTsKIAkJMEYwOTIyNkEyMkIwN0MyMTAwN0Q1RDNBIC8q
IHBhc19tdXRhdGlvbl9jb3VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYwOTIyNjkyMkIwN0MyMTAwN0Q1RDNBIC8qIHBhc19tdXRhdGlvbl9jb3Vu
dC5oICovOyB9OwogCQkwRjA5MjI2QzIyQjJEODhFMDA3RDVEM0EgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMDkyMjZCMjJCMkQ4OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ191dGlscy5oICovOyB9OwogCQkwRjA5MjI2RTIyQjJEOTA5MDA3RDVEM0EgLyogcGFz
X2hlYXBfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjA5MjI2RDIyQjJEOTA5MDA3RDVEM0EgLyogcGFzX2hlYXBfY29uZmlnX3V0
aWxzLmggKi87IH07CisJCTBGMTQ4NzEwMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRl
ZF9kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEYxNDg3MEEyNjlCNzUxNzAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX2Rl
YWxsb2NhdGlvbl9tb2RlLmggKi87IH07CisJCTBGMTQ4NzExMjY5Qjc1MTgwMDY4ODdBOSAvKiBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzBCMjY5Qjc1MTgw
MDY4ODdBOSAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHIuaCAqLzsgfTsKKwkJMEYxNDg3MTIyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3
X2NhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjE0ODcwQzI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCAqLzsgfTsK
KwkJMEYxNDg3MTMyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjE0ODcwRDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLzsgfTsKKwkJMEYxNDg3MTQyNjlCNzUxODAwNjg4N0E5
IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcwRTI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2hlYXBf
cnVudGltZV9jb25maWcuYyAqLzsgfTsKKwkJMEYxNDg3MTUyNjlCNzUxODAwNjg4N0E5IC8qIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcwRjI2OUI3NTE4MDA2ODg3QTkg
LyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLzsgfTsKKwkJ
MEYxNDg3MUYyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzFBMjY5
RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggKi87IH07CisJCTBG
MTQ4NzIwMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5jIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MUIyNjlGNUZDQTAw
Njg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgKi87IH07CisJCTBGMTQ4NzIxMjY5RjVG
Q0EwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcx
QzI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRp
b25fbW9kZS5oICovOyB9OworCQkwRjE0ODcyMjI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfbm9kZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYxNDg3MUQyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hl
X25vZGUuYyAqLzsgfTsKKwkJMEYxNDg3MjMyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MUUyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oICovOyB9OwogCQkwRjE1MThGRDIzNDQx
RTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTUxOEZDMjM0NDFFMzIwMDgzMkI1QyAvKiBwYXNfaGFz
X29iamVjdC5oICovOyB9OwogCQkwRjE4RTYzRTI2MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTYzQzI2MjhCRkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeV9ieV9zaXplLmggKi87IH07CiAJCTBGMThFNjNGMjYyOEJGQjcwMEY2OTAz
RCAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThFNjNEMjYyOEJGQjYwMEY2OTAzRCAv
KiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYyAqLzsgfTsKQEAgLTc1LDggKzcz
LDYgQEAKIAkJMEYxOTMyNjkyMkYzQjNGMzAwRkJBNzEzIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEYxOTMyNjcyMkYzQjNGMzAwRkJBNzEzIC8qIHBhc19sYXJnZV9oZWFw
X3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oICovOyB9OwogCQkwRjE5MzI2QzIyRjczRTg1
MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEYxOTMyNkEyMkY3M0U4NDAwRkJBNzEzIC8qIHBhc19zY2F2ZW5n
ZXIuaCAqLzsgfTsKIAkJMEYxOTMyNkQyMkY3M0U4NTAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTkzMjZC
MjJGNzNFODQwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmMgKi87IH07Ci0JCTBGMUFFQ0U4MjY1
ODE5NjEwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQUVDRTYyNjU4MTk2MDAwMEM1MjE4IC8qIHBh
c19hbGxfbWFnYXppbmVzLmMgKi87IH07Ci0JCTBGMUFFQ0U5MjY1ODE5NjEwMDBDNTIxOCAvKiBw
YXNfYWxsX21hZ2F6aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYxQUVDRTcyNjU4MTk2MTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmgg
Ki87IH07CiAJCTBGMUJGRDQ0MjY2NDU3RjEwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMUJGRDQzMjY2
NDU3RjEwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyAqLzsgfTsKIAkJMEYyMTUwRUIyNDg0
QkIyQTAwMEQ2MzRCIC8qIHBhc19hbGxvY2F0b3JfaW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMjE1MEVBMjQ4NEJCMkEwMDBENjM0QiAvKiBw
YXNfYWxsb2NhdG9yX2luZGV4LmggKi87IH07CiAJCTBGMjE1MEVEMjQ4NEJCODYwMDBENjM0QiAv
KiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyMTUwRUMyNDg0QkI4NjAwMEQ2MzRC
IC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggKi87IH07CkBAIC0x
MDcsNiArMTAzLDkgQEAKIAkJMEY0NDNCNDgyMzQxNzYxNTAwQkU1MEQxIC8qIG1ibWFsbG9jX2lz
b19jb21tb25fcHJpbWl0aXZlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkYwOEY1NTIyQTg2RTJFMDAzODY1NzUgLyogbWJtYWxsb2NfaXNvX2NvbW1v
bl9wcmltaXRpdmUuYyAqLzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLURQQVNfVkVS
SUZJRUQiOyB9OyB9OwogCQkwRjQ0M0I0QTIzNDE3NjE1MDBCRTUwRDEgLyogbGlicGFzLmR5bGli
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZERUE1
RDkyMjk1RkM4QzAwODVFMzQwIC8qIGxpYnBhcy5keWxpYiAqLzsgfTsKIAkJMEY0NDNCNEYyMzQx
Nzc4MzAwQkU1MEQxIC8qIGxpYnBhc192ZXJpZmllci5keWxpYiBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDQzQjNBMjM0MTZBN0MwMEJFNTBEMSAv
KiBsaWJwYXNfdmVyaWZpZXIuZHlsaWIgKi87IH07CisJCTBGNDVENUE5MjZBQjczMTQwMEMzNUQ5
MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDVENUE2MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9j
YWxfYWxsb2NhdG9yX2tpbmQuaCAqLzsgfTsKKwkJMEY0NUQ1QUEyNkFCNzMxNDAwQzM1RDkzIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDVENUE3MjZBQjczMTQwMEMzNUQ5MyAvKiBw
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgKi87IH07CisJCTBGNDVENUFCMjZB
QjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ1RDVBODI2QUI3
MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oICovOyB9
OwogCQkwRjQ3QzMxQTIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fa2luZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0N0MzMTgyMzM5
NkQxRjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2tpbmQuaCAqLzsgfTsKIAkJMEY0N0MzMUIy
MzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19oZWFwX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDdDMzE5MjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNf
aGVhcF9raW5kLmggKi87IH07CiAJCTBGNDdDMzFFMjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxs
b2NhdGlvbl9jYWxsYmFja3MuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNDdDMzFDMjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxs
YmFja3MuYyAqLzsgfTsKQEAgLTE0NCw3ICsxNDMsNiBAQAogCQkwRjRGNjFDQTI1QTRDRDNCMDA4
QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRGNjFDODI1QTRDRDNCMDA4QjRB
ODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmggKi87IH07CiAJCTBGNEY2
MUNCMjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3Qu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEY2MUM5
MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYyAq
LzsgfTsKIAkJMEY1MDhENTMyNThFQ0ZEMzAwMTUxRUQ4IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9maXJzdF9lbGlnaWJsZV9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjUwOEQ1MjI1OEVDRkQzMDAxNTFFRDggLyogcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaCAqLzsgfTsKLQkJMEY1MDhENUMyNThF
RENBNzAwMTUxRUQ4IC8qIElzb0hlYXBUYWJsaW5nVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MDhENUIyNThFRENBNzAwMTUxRUQ4IC8q
IElzb0hlYXBUYWJsaW5nVGVzdHMuY3BwICovOyB9OwogCQkwRjUxNkVFMzI0NTYwRkY1MDA0RTJC
OEQgLyogcGFzX2ludGVybmFsX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY1MTZFRTIyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5h
bF9jb25maWcuaCAqLzsgfTsKIAkJMEY1MTZFRTcyNDU2MUE2MDAwNEUyQjhEIC8qIGlzb19oZWFw
X2lubmFyZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNTE2RUU2MjQ1NjFBNjAwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggKi87IH07CiAJ
CTBGNTE5M0U3MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTkzRTYyNjZBRTVENDAwNDgz
QTJDIC8qIEpJVEhlYXBUZXN0cy5jcHAgKi87IH07CkBAIC0yNjksMzQgKzI2NywyNSBAQAogCQkw
Rjk3RTYyRTIyQTlBODVGMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTdFNjJEMjJB
OUE4NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oICovOyB9OwogCQkw
Rjk3RTYzMDIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTdFNjJGMjJB
OUFBQzEwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jICovOyB9OwogCQkw
Rjk5Rjk4QzI1Q0IyQ0U4MDBFRUU0NDkgLyogcGFzX3NpemVfdGh1bmsuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOTlGOThCMjVDQjJDRTgwMEVFRTQ0
OSAvKiBwYXNfc2l6ZV90aHVuay5oICovOyB9OwotCQkwRjlBMUNFMzI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUM5NzI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3N1YnBhZ2Vf
bWFwX2VudHJ5LmggKi87IH07Ci0JCTBGOUExQ0U0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOUExQzk4MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnkuaCAqLzsgfTsKIAkJMEY5QTFDRTUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19m
YXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOTkyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19m
YXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2luZC5oICovOyB9OwogCQkwRjlBMUNFNjI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOUEyNTU5OTYxMTAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCAqLzsgfTsKIAkJMEY5QTFDRTcy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQzlCMjU1OTk2MTEwMEM4RDExQiAv
KiBwYXNfYml0Zml0X21heF9mcmVlLmggKi87IH07Ci0JCTBGOUExQ0U4MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQzlDMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc3VicGFn
ZV9tYXBfZW50cnkuYyAqLzsgfTsKIAkJMEY5QTFDRTkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19z
aGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQzlEMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc2hh
cmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggKi87IH07CiAJCTBGOUExQ0VCMjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUM5RjI1NTk5NjExMDBD
OEQxMUIgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oICovOyB9OwogCQkw
RjlBMUNFQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0EwMjU1OTk2
MTIwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9jYWNoZS5jICovOyB9OwogCQkwRjlBMUNF
RDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBMTI1NTk5NjEyMDBDOEQxMUIgLyog
cGFzX2JpdGZpdF92aWV3LmggKi87IH07CiAJCTBGOUExQ0VFMjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfYml0Zml0X3ZpZXcuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOUExQ0EyMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuYyAqLzsg
fTsKLQkJMEY5QTFDRUYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTMy
NTU5OTYxMjAwQzhEMTFCIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5jICovOyB9OwogCQkwRjlB
MUNGMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBNDI1NTk5NjEyMDBDOEQxMUIg
LyogcGFzX2NvbW1pdF9zcGFuLmMgKi87IH07CiAJCTBGOUExQ0YxMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0E1MjU1OTk2MTIwMEM4RDExQiAvKiBw
YXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLzsgfTsKIAkJMEY5QTFDRjIyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTYyNTU5OTYxMjAwQzhEMTFCIC8q
IHBhc19wYWdlX2hlYWRlcl90YWJsZS5jICovOyB9OwotCQkwRjlBMUNGMzI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTcyNTU5OTYxMjAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLzsgfTsKIAkJMEY5QTFDRjQyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTgyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19jb21taXRf
c3Bhbi5oICovOyB9OwogCQkwRjlBMUNGNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOUExQ0E5MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlf
a2luZC5oICovOyB9OwotCQkwRjlBMUNGNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9k
aXJlY3RvcnlfYW5kX2luZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjlBMUNBQTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfYW5kX2luZGV4LmggKi87IH07CiAJCTBGOUExQ0Y3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
cGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBQjI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX3Bh
Z2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5lcy5oICovOyB9OwogCQkwRjlBMUNGODI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBQzI1NTk5NjEyMDBDOEQxMUIgLyogcGFz
X3BhZ2VfYmFzZV9pbmxpbmVzLmggKi87IH07CiAJCTBGOUExQ0Y5MjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfcHJvbW90ZV9pbnRyaW5zaWNfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQUQyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19wcm9t
b3RlX2ludHJpbnNpY19oZWFwLmggKi87IH07CiAJCTBGOUExQ0ZBMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0FFMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0
Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCAqLzsgfTsKLQkJMEY5QTFDRkIyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0FGMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmggKi87IH07Ci0JCTBGOUExQ0ZDMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCMDI1NTk5NjEzMDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jICovOyB9OwogCQkwRjlBMUNGRDI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQjEyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc192
ZXJzaW9uZWRfZmllbGQuYyAqLzsgfTsKIAkJMEY5QTFDRkUyNTU5OTYxNzAwQzhEMTFCIC8qIHBh
c19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0IyMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfZmFz
dF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0LmggKi87IH07Ci0JCTBGOUExQ0ZGMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCMzI1NTk5NjEzMDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oICovOyB9OwogCQkwRjlBMUQwMDI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOUExQ0I0MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFu
dWxlcy5jICovOyB9OwogCQkwRjlBMUQwMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9w
YWdlX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOUExQ0I1MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5o
ICovOyB9OwogCQkwRjlBMUQwMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rv
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUEx
Q0I2MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5oICovOyB9OwpAQCAt
MzA2LDM5ICsyOTUsMjkgQEAKIAkJMEY5QTFEMDYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdl
X2Jhc2UuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
OUExQ0JBMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmMgKi87IH07CiAJCTBGOUEx
RDA3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCQjI1NTk5
NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovOyB9OwogCQkw
RjlBMUQwODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0JDMjU1OTk2MTQw
MEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oICovOyB9OwotCQkwRjlBMUQwOTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCRDI1NTk5NjE0MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgKi87IH07Ci0JCTBGOUExRDBBMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYyBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0JFMjU1OTk2MTQwMEM4
RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYyAqLzsgfTsKLQkJMEY5QTFEMEIy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCRjI1NTk5NjE0
MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCAqLzsgfTsKIAkJMEY5
QTFEMEMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDMDI1NTk5NjE0MDBD
OEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLzsgfTsKIAkJMEY5QTFEMEQyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDMTI1NTk5NjE0MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9kaXJlY3RvcnkuYyAqLzsgfTsKLQkJMEY5QTFEMEUyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19zdWJwYWdlX21hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY5QTFDQzIyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5oICov
OyB9OwotCQkwRjlBMUQwRjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3Rfc3VicGFnZV9t
YXBfZW50cnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjlBMUNDMzI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBf
ZW50cnlfcHRyLmggKi87IH07CiAJCTBGOUExRDEwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5QTFDQzQyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMg
Ki87IH07CiAJCTBGOUExRDExMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2UuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0M1MjU1
OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2UuYyAqLzsgfTsKIAkJMEY5QTFEMTIyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDNjI1NTk5NjE0MDBDOEQxMUIgLyog
cGFzX3BhZ2VfY29uZmlnX2tpbmQuaCAqLzsgfTsKLQkJMEY5QTFEMTMyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQzcyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaWFzaW5n
X2RpcmVjdG9yeS5jICovOyB9OwogCQkwRjlBMUQxNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5QTFDQzgyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGly
ZWN0b3J5X2lubGluZXMuaCAqLzsgfTsKIAkJMEY5QTFEMTUyNTU5OTYxNzAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQzkyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfa2luZC5jICovOyB9OwogCQkwRjlBMUQxNjI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5QTFDQ0EyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2Fw
YWdlX2tpbmQuaCAqLzsgfTsKIAkJMEY5QTFEMTcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfcGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5QTFDQ0IyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfdmFyaWFudC5oICovOyB9OwogCQkwRjlBMUQxODI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjlBMUNDRDI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmggKi87
IH07CiAJCTBGOUExRDE5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJs
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFD
Q0UyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmggKi87IH07Ci0J
CTBGOUExRDFCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Qw
MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCAqLzsgfTsK
IAkJMEY5QTFEMUMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5jIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDEyNTU5OTYxNTAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5jICovOyB9OwogCQkwRjlBMUQxRDI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDIyNTU5OTYxNTAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCAqLzsgfTsKIAkJMEY5QTFEMUUyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFD
RDMyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNl
X2NvdW50X3B0ci5oICovOyB9OwogCQkwRjlBMUQxRjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfYmFzZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOUExQ0Q0MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2Nv
bmZpZ191dGlscy5oICovOyB9OwogCQkwRjlBMUQyMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNENTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVh
ZGVyX3BsYWNlbWVudF9tb2RlLmggKi87IH07CiAJCTBGOUExRDIxMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Q2MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Np
emVfY2xhc3MuaCAqLzsgfTsKLQkJMEY5QTFEMjIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJw
YWdlX21hcC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY5QTFDRDcyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5jICovOyB9OwotCQkw
RjlBMUQyMzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNEODI1NTk5NjE2
MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmggKi87IH07CiAJCTBGOUExRDI0MjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Q5MjU1OTk2MTYwMEM4RDExQiAv
KiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCAqLzsgfTsKIAkJMEY5QTFEMjUyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNEQTI1NTk5NjE2MDBDOEQxMUIgLyogcGFz
X3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLzsgfTsKIAkJMEY5QTFEMjYyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDREIyNTU5OTYx
NjAwQzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5o
ICovOyB9OwogCQkwRjlBMUQyNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfcGFnZV9n
cmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOUExQ0RDMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9wYWdl
X2dyYW51bGVfdXNlX2NvdW50X3B0ci5oICovOyB9OwogCQkwRjlBMUQyODI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDREQyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfcGFnZV9jb25maWcuaCAqLzsgfTsKIAkJMEY5QTFEMjkyNTU5OTYxNzAwQzhEMTFCIC8qIHBh
c19wYWdlX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOUExQ0RFMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9raW5kLmggKi87IH07Ci0J
CTBGOUExRDJBMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNE
RjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jICovOyB9
OwogCQkwRjlBMUQyQjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNFMDI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgKi87IH07CiAJCTBGOUEx
RDJDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRTEyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19mcmVlX2dyYW51bGVzLmggKi87IH07CiAJCTBGOUExRDJEMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0UyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9o
ZWFkZXJfdGFibGUuaCAqLzsgfTsKQEAgLTQwMCw2ICszNzksNyBAQAogCQkwRkM2ODIzMTIxMjlD
QjQ2MDAzQzZBMTMgLyogRXh0ZW5kZWRHQ0RUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2ODIyRjIxMjlDQjQzMDAzQzZBMTMgLyogRXh0
ZW5kZWRHQ0RUZXN0cy5jcHAgKi87IH07CiAJCTBGQzY4MjM4MjEyOUQ0RUUwMDNDNkExMyAvKiBD
b2FsaWduVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZDNjgyMzYyMTI5RDRFQjAwM0M2QTEzIC8qIENvYWxpZ25UZXN0cy5jcHAgKi87IH07
CiAJCTBGQzg0Nzk1MjMyRDY5NDkwMEIzODZCNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vw
b2NoX3VwZGF0ZV9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRkM4NDc5NDIzMkQ2OTQ5MDBCMzg2QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9v
bF9lcG9jaF91cGRhdGVfbW9kZS5oICovOyB9OworCQkwRkNCRDAzNDI2QURGOTI1MDBEMjZENjgg
LyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDQkQwMzMyNkFERjkyNTAwRDI2RDY4
IC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLzsgfTsKIAkJMEZD
Q0QxNDEyNjU1RTZFNzAwMTcxQTFGIC8qIHBhc19jb21wYWN0X2F0b21pY19lbnVtZXJhYmxlX3Jh
bmdlX2xpc3RfY2h1bmtfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkNDRDE0MDI2NTVFNkU3MDAxNzFBMUYgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X2VudW1lcmFibGVfcmFuZ2VfbGlzdF9jaHVua19wdHIuaCAqLzsgfTsKIAkJMEZDRkE0OUEyMzgz
NTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0ZBNDk4MjM4MzUyRUIwMENDRDcyNiAv
KiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggKi87IH07CiAJCTBGQ0ZBNDlCMjM4MzUyRUMwMEND
RDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNGQTQ5OTIzODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xh
cmdlX3NoYXJpbmdfcG9vbC5jICovOyB9OwpAQCAtNTEzLDcgKzQ5Myw2IEBACiAJCTBGRTdFRTE0
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9yZWZfcHJlZml4LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ3RDQwQTIxNDBEQjA1MDA4QzQxRjAg
LyogcGFzX2hlYXBfcmVmX3ByZWZpeC5oICovOyB9OwogCQkwRkU3RUUxNTIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkM2ODFDNzIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX2hlYXBfcmVmLmggKi87
IH07CiAJCTBGRTdFRTE2MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNjgxQzAyMTBGN0M5RTAwM0M2
QTEzIC8qIHBhc19oZWFwLmggKi87IH07Ci0JCTBGRTdFRTFBMjI5NjAxNDIwMDRGNDE2NiAvKiBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkRFQTQyNzIyOEI2NDMzMDA4NUUzNDAgLyogcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oICovOyB9OwogCQkwRkU3RUUxQzIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzY4MjQ2MjEyQTBGMUYwMDNDNkExMyAvKiBw
YXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZy5oICovOyB9OwogCQkwRkU3RUUxRTIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGQzY4MUE4MjEwM0NBQzkwMDNDNkExMyAvKiBwYXNfbGFyZ2VfZnJl
ZS5oICovOyB9OwogCQkwRkU3RUUxRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2hlYXAu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzY4MUE3
MjEwM0IwRTYwMDNDNkExMyAvKiBwYXNfbGFyZ2VfaGVhcC5oICovOyB9OwpAQCAtNzI5LDI3ICs3
MDgsMjUgQEAKIC8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCQkwRjAzN0FG
MTI1QUVBOTE5MDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDM3QUYyMjVBRUE5MUEwMDc5QjU4MiAvKiBw
YXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMEYwNEMyMDIyNDYwREI2RDAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
MDRDMjAzMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
MDRDMjA0MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
MDRDMjA3MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19v
d25lcnNoaXBfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkwRjA0QzIwODI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19tYWdhemluZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIwQTI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjA0QzIwQjI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2hlYXBfY29uZmlnX2lubGlu
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMEMyNDYwREI2RTAwMUQz
MUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYwNEMyMEQyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19sb2NrLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19sb2NrLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjBFMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGgg
PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwRjA0QzIwRjI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMTAyNDYwREI2RjAwMUQzMUYwIC8qIHBh
c19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMEYwNEMyMTIyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19tYWdhemluZS5jICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbWFnYXppbmUuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYwNEMyMTMyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19jb21wYWN0
X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIyNjI0NjExQ0ZEMDAxRDMxRjAgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIy
NzI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDgzRjU4MjJDMjk3OUIwMEYzQ0RCMyAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwODNGNTkyMkMyOTc5QjAw
RjNDREIzIC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDkyMjY5MjJCMDdDMjEwMDdENUQzQSAvKiBwYXNf
bXV0YXRpb25fY291bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX211
dGF0aW9uX2NvdW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDkyMjZCMjJC
MkQ4OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191
dGlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA5MjI2RDIyQjJEOTA5MDA3
RDVEM0EgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19oZWFwX2NvbmZpZ191dGlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjE0ODcwQTI2OUI3NTE3MDA2ODg3QTkgLyogcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxv
Y2F0aW9uX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3Jl
Z2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEYxNDg3MEIyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MEMyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19s
b2NhbF92aWV3X2NhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19s
b2NhbF92aWV3X2NhY2hlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTQ4NzBE
MjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRjE0ODcwRTI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2hlYXBfcnVudGltZV9jb25maWcu
Yzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MEYyNjlCNzUxODAwNjg4N0E5
IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTQ4NzFBMjY5RjVG
Q0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MUIyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2Nh
bF92aWV3X2NhY2hlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19sb2Nh
bF92aWV3X2NhY2hlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTQ4NzFDMjY5
RjVGQ0EwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9t
b2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEYxNDg3MUQyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUu
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcxRTI2OUY1RkNBMDA2
ODg3QTkgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE1MThGQzIzNDQx
RTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2hhc19vYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEYxOEU2M0MyNjI4QkZCNjAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlf
c2l6ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5X2J5X3NpemUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2
M0QyNjI4QkZCNjAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5j
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5X2J5X3NpemUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2NSw4ICs3NDIs
NiBAQAogCQkwRjE5MzI2NzIyRjNCM0YzMDBGQkE3MTMgLyogcGFzX2xhcmdlX2hlYXBfcGh5c2lj
YWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjE5MzI2QTIyRjczRTg0MDBGQkE3MTMgLyogcGFzX3NjYXZl
bmdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2NhdmVuZ2VyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTkzMjZCMjJGNzNFODQwMEZCQTcxMyAv
KiBwYXNfc2NhdmVuZ2VyLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19z
Y2F2ZW5nZXIuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYxQUVDRTYyNjU4MTk2
MDAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgcGF0aCA9IHBhc19hbGxfbWFnYXppbmVzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTBGMUFFQ0U3MjY1ODE5NjEwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYWxsX21hZ2F6aW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjFCRkQ0MzI2NjQ1N0YxMDBDRUMyOEQgLyogcGFzX2hl
YXBfY29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19oZWFwX2Nv
bmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjIxNTBFQTI0ODRCQjJBMDAw
RDYzNEIgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfYWxsb2NhdG9yX2luZGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGMjE1MEVDMjQ4NEJCODYwMDBENjM0QiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2Nh
dG9yX2luZGV4X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29t
cGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNzk1LDYgKzc3MCw5IEBACiAJCTBGNDQzQjNBMjM0MTZBN0MwMEJFNTBEMSAvKiBs
aWJwYXNfdmVyaWZpZXIuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGlj
aXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBsaWJwYXNfdmVyaWZpZXIuZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTBGNDQzQjNGMjM0MTZCNjMwMEJFNTBEMSAvKiBWZXJpZmllci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBWZXJpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ0
M0I0RTIzNDE3NjE1MDBCRTUwRDEgLyogbGlibWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmVf
dmVyaWZpZWQuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGgg
PSBsaWJtYm1hbGxvY19pc29fY29tbW9uX3ByaW1pdGl2ZV92ZXJpZmllZC5keWxpYjsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMEY0NUQ1QTYyNkFCNzMxNDAwQzM1RDkz
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEY0NUQ1QTcyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGEuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRjQ1RDVBODI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGNDdDMzE4MjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9raW5kLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19hbGxvY2F0aW9uX2tpbmQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0N0MzMTkyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19o
ZWFwX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2hlYXBfa2lu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ3QzMxQzIzMzk2RTBCMDAyQTFD
RjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgcGF0aCA9IHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtODM0LDcgKzgxMiw2IEBACiAJCTBGNEY2MUM4MjVBNENEM0IwMDhCNEE4MiAv
KiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNEY2MUM5MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNf
cGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBwYXRoID0gcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGNTA4RDUyMjU4RUNGRDMwMDE1MUVEOCAvKiBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2lu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjUwOEQ1QjI1OEVEQ0E3MDAxNTFF
RDggLyogSXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJc29IZWFwVGFibGluZ1Rlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY1MTZFRTIyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2ludGVybmFsX2NvbmZpZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjUxNkVFNjI0NTYxQTYwMDA0RTJCOEQg
LyogaXNvX2hlYXBfaW5uYXJkcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBp
c29faGVhcF9pbm5hcmRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTE5M0U2
MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSklUSGVhcFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTk2MiwzNCArOTM5LDI1IEBACiAJCTBGOTdFNjJEMjJBOUE4NUYwMEMzNTVGOCAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjk3RTYyRjIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5OUY5OEIy
NUNCMkNFODAwRUVFNDQ5IC8qIHBhc19zaXplX3RodW5rLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19zaXplX3RodW5rLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTBGOUExQzk3MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3N1YnBhZ2VfbWFwX2VudHJ5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQzk4MjU1OTk2MTEwMEM4RDExQiAv
KiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOUExQzk5MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2Fs
bG9jYXRpb25fcmVzdWx0X2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOUExQzlBMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX3V0aWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRm
aXRfcGFnZV9jb25maWdfdXRpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5
QTFDOUIyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9tYXhfZnJlZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUM5QzI1NTk5NjExMDBDOEQxMUIgLyogcGFzX3N1YnBh
Z2VfbWFwX2VudHJ5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zdWJw
YWdlX21hcF9lbnRyeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUM5RDI1
NTk5NjExMDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdl
X2JvdW5kYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQzlGMjU1OTk2
MTEwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3Zh
cmlhbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTAyNTU5OTYxMjAw
QzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgcGF0aCA9IHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOUExQ0ExMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF92aWV3Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0EyMjU1OTk2MTIwMEM4RDExQiAvKiBw
YXNfYml0Zml0X3ZpZXcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2Jp
dGZpdF92aWV3LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0EzMjU1OTk2
MTIwMEM4RDExQiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBwYXRoID0gcGFzX2FsbG9jYXRpb25fcmVzdWx0LmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOUExQ0E0MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4u
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2NvbW1pdF9zcGFuLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0E1MjU1OTk2MTIwMEM4RDExQiAvKiBw
YXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0E2MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFn
ZV9oZWFkZXJfdGFibGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3Bh
Z2VfaGVhZGVyX3RhYmxlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0E3
MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTgyNTU5OTYxMjAwQzhEMTFC
IC8qIHBhc19jb21taXRfc3Bhbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfY29tbWl0X3NwYW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTky
NTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0FBMjU1OTk2MTIwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOUExQ0FCMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNl
X2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY5QTFDQUMyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfaW5s
aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9iYXNlX2lu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQUQyNTU5OTYxMzAw
QzhEMTFCIC8qIHBhc19wcm9tb3RlX2ludHJpbnNpY19oZWFwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc19wcm9tb3RlX2ludHJpbnNpY19oZWFwLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0FFMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGOUExQ0FGMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQjAyNTU5OTYx
MzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNCMTI1NTk5NjEzMDBDOEQxMUIgLyogcGFz
X3ZlcnNpb25lZF9maWVsZC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNf
dmVyc2lvbmVkX2ZpZWxkLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0Iy
MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9y
ZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQjMyNTU5OTYxMzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjlBMUNCNDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2ZyZWVfZ3Jh
bnVsZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2ZyZWVfZ3JhbnVs
ZXMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQjUyNTU5OTYxMzAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGOUExQ0I2MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9y
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2RpcmVjdG9y
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTk5LDE3ICs5NjcsMTEgQEAKIAkJ
MEY5QTFDQkEyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuYyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3BhZ2VfYmFzZS5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjlBMUNCQjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0
aW9uX3Jlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0
X2FsbG9jYXRpb25fcmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUEx
Q0JDMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2FsbG9jYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNCRDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwRjlBMUNCRTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVz
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19hbGxfYmlhc2luZ19kaXJl
Y3Rvcmllcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNCRjI1NTk5NjE0
MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQzAyNTU5OTYxNDAwQzhEMTFCIC8qIHBh
c19wYWdlX2Jhc2VfY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19wYWdlX2Jhc2VfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUEx
Q0MxMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNDMjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3N1YnBh
Z2VfbWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zdWJwYWdlX21h
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNDMzI1NTk5NjE0MDBDOEQx
MUIgLyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDNDI1NTk5NjE0MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9hbGxvY2F0b3IuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0g
cGFzX2JpdGZpdF9hbGxvY2F0b3IuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5
QTFDQzUyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X3BhZ2UuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY5QTFDQzYyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2NvbmZpZ19r
aW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2NvbmZpZ19r
aW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0M3MjU1OTk2MTUwMEM4
RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBwYXRoID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGOUExQ0M4MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9p
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfZGly
ZWN0b3J5X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQzky
NTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQ0EyNTU5OTYxNTAwQzhEMTFCIC8q
IHBhc19mYXN0X21lZ2FwYWdlX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTAxNywyMiArOTc5LDE4IEBACiAJCTBGOUExQ0NDMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuZGVmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IHBhc19i
aXRmaXRfcGFnZV9jb25maWdfa2luZC5kZWY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGOUExQ0NEMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9oZWFwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOUExQ0NFMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdh
cGFnZV90YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZmFzdF9t
ZWdhcGFnZV90YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNEMDI1
NTk5NjE1MDBDOEQxMUIgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNEMTI1NTk5NjE1MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9oZWFwLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19i
aXRmaXRfaGVhcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNEMjI1NTk5
NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0QzMjU1OTk2MTYwMEM4RDExQiAvKiBw
YXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91
c2VfY291bnRfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0Q0MjU1
OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNENTI1NTk5NjE2MDBDOEQxMUIgLyogcGFz
X3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjlBMUNENjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXpl
X2NsYXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfc2l6
ZV9jbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNENzI1NTk5NjE2
MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsg
cGF0aCA9IHBhc19zdWJwYWdlX21hcC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
RjlBMUNEODI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNEOTI1NTk5NjE2MDBDOEQxMUIgLyogcGFz
X3BhZ2Vfc2hhcmluZ19tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19wYWdlX3NoYXJpbmdfbW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlB
MUNEQTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDREIyNTU5OTYxNjAwQzhEMTFC
IC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5k
YXJ5X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDREMyNTU5
OTYxNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVs
ZV91c2VfY291bnRfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0RE
MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZV9jb25maWcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDREUyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdl
X2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2Vfa2luZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNERjI1NTk5NjE2MDBDOEQxMUIg
LyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
LmM7IHBhdGggPSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOUExQ0UwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Np
emVfY2xhc3MuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2JpdGZpdF9z
aXplX2NsYXNzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0UxMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfZnJlZV9ncmFudWxlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjlBMUNFMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2hlYWRlcl90YWJsZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE0OCw2ICsxMTA2LDcgQEAKIAkJMEZD
NjgyNEMyMTJBNUJGRTAwM0M2QTEzIC8qIHBhc19kZWFsbG9jYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZGVhbGxvY2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZDNjgyNUQyMTJDQTc2RDAwM0M2QTEzIC8qIHBhc19sb2NrLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGQzg0Nzk0MjMyRDY5NDkwMEIzODZCNiAvKiBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEZDQkQwMzMyNkFERjkyNTAwRDI2RDY4IC8qIHBhc19wYWdl
X3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNDRDE0MDI2NTVFNkU3MDAxNzFBMUYgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX2VudW1lcmFibGVfcmFuZ2VfbGlzdF9jaHVua19wdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfYXRvbWljX2VudW1lcmFibGVfcmFu
Z2VfbGlzdF9jaHVua19wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRkE0
OTgyMzgzNTJFQjAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNGQTQ5OTIzODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xh
cmdlX3NoYXJpbmdfcG9vbC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNf
bGFyZ2Vfc2hhcmluZ19wb29sLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjIw
LDcgKzExNzksNiBAQAogCQkwRkRFQTQxQTIyOEI2NDMyMDA4NUUzNDAgLyogcGFzX2NhcmVzX2Fi
b3V0X3NpemVfbW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY2Fy
ZXNfYWJvdXRfc2l6ZV9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREVB
NDFCMjI4QjY0MzIwMDg1RTM0MCAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkRFQTQyMzIyOEI2NDMzMDA4NUUzNDAgLyogcGFz
X3V0aWxpdHlfaGVhcF9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0g
cGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEZERUE0MjcyMjhCNjQzMzAwODVFMzQwIC8qIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1
bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkRFQTQyQjIy
OEI2NDMzMDA4NUUzNDAgLyogcGFzX2FsaWdubWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfYWxpZ25tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGREVBNDVEMjI4QjY1MUIwMDg1RTM0MCAvKiBCaXRmaWVsZFZlY3RvclRlc3RzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJpdGZpZWxkVmVjdG9yVGVzdHMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkRFQTQ2RDIyOEI2NTQzMDA4NUUzNDAg
LyogcGFzX3plcm9fbW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
emVyb19tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzUyLDggKzEzMTAs
OCBAQAogCQkwRjQ0M0IzNDIzNDA1MEU1MDBCRTUwRDEgLyogdmVyaWZpZXIgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTBGNDQzQjM1MjM0MTZBNDAwMEJF
NTBEMSAvKiBWZXJpZmllci5jcHAgKi8sCiAJCQkJMEY0NDNCM0YyMzQxNkI2MzAwQkU1MEQxIC8q
IFZlcmlmaWVyLmggKi8sCisJCQkJMEY0NDNCMzUyMzQxNkE0MDAwQkU1MEQxIC8qIFZlcmlmaWVy
LmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdmVyaWZpZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtMTM4MSw3ICsxMzM5LDYgQEAKIAkJCQkwRkYyNDhGQjIzMENDNEM3MDA3NzIw
MkUgLyogSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3BwICovLAogCQkJCTBGRDQ4QjY2MjNCNTg5
OTEwMDI2QzQ2RCAvKiBJc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwICovLAogCQkJ
CTBGNUI2MDkzMjM1RTkxOTkwMENBRTYyOSAvKiBJc29IZWFwUmVzZXJ2ZWRNZW1vcnlUZXN0cy5j
cHAgKi8sCi0JCQkJMEY1MDhENUIyNThFRENBNzAwMTUxRUQ4IC8qIElzb0hlYXBUYWJsaW5nVGVz
dHMuY3BwICovLAogCQkJCTBGNTE5M0U2MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMu
Y3BwICovLAogCQkJCTBGQzY0MTkwMjEzNzQ1RkEwMDQwQ0U1RSAvKiBMYXJnZUZyZWVIZWFwVGVz
dHMuY3BwICovLAogCQkJCTBGRUI2NjY2MjMxQzg3QkMwMDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQ
b29sRHVtcC5jcHAgKi8sCkBAIC0xNDA1LDExNiArMTM2MiwxMDAgQEAKIAkJMEZDNjgxRTcyMTBG
RTc1MTAwM0M2QTEzIC8qIGxpYnBhcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCi0JCQkJMEY4QTgwNUYyNUVFQ0MxQzAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5j
ICovLAotCQkJCTBGOEE4MDYwMjVFRUNDMUMwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuaCAqLywK
IAkJCQkwRjhBODA2MTI1RUVDQzFDMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5jICov
LAogCQkJCTBGOEE4MDYyMjVFRUNDMUMwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmgg
Ki8sCiAJCQkJMEY4QTgwNUUyNUVFQ0MxQzAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9pbmxpbmVz
LmggKi8sCiAJCQkJMEY4QTgwNjQyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9pbm5h
cmRzLmggKi8sCiAJCQkJMEY4QTgwNjMyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9y
ZWYuaCAqLywKLQkJCQkwRjhBODBGRTI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyAq
LywKLQkJCQkwRjhBODBGRjI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuaCAqLywKKwkJ
CQkwRjhBODA1RjI1RUVDQzFDMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmMgKi8sCisJCQkJMEY4
QTgwNjAyNUVFQ0MxQzAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5oICovLAogCQkJCTBGOEE4MEZC
MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjhBODBG
RDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY4QTgx
MDAyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjhB
ODBGQzI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5uYXJkcy5oICovLAotCQkJCTBG
RTdFRTc0MjI5RjAxMEYwMDRGNDE2NiAvKiBpc29faGVhcC5jICovLAotCQkJCTBGRTdFRTc1MjI5
RjAxMEYwMDRGNDE2NiAvKiBpc29faGVhcC5oICovLAorCQkJCTBGOEE4MEZFMjVGNkE3OTUwMDc5
MEI0QSAvKiBob3RiaXRfaGVhcC5jICovLAorCQkJCTBGOEE4MEZGMjVGNkE3OTUwMDc5MEI0QSAv
KiBob3RiaXRfaGVhcC5oICovLAogCQkJCTBGRTdFRTU1MjI5NzQzMzUwMDRGNDE2NiAvKiBpc29f
aGVhcF9jb25maWcuYyAqLywKIAkJCQkwRkU3RUU1NDIyOTc0MzM1MDA0RjQxNjYgLyogaXNvX2hl
YXBfY29uZmlnLmggKi8sCiAJCQkJMEY1RkU3QTMyNUI2MTRGMjAwMTg1OUZDIC8qIGlzb19oZWFw
X2lubGluZXMuaCAqLywKIAkJCQkwRjUxNkVFNjI0NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hlYXBf
aW5uYXJkcy5oICovLAogCQkJCTBGNTI5RERFMjQ1NTQ2MEMwMDM4NUE4QyAvKiBpc29faGVhcF9y
ZWYuaCAqLywKLQkJCQkwRjVFNUNFOTIzQkVGMzVGMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcC5j
ICovLAotCQkJCTBGNUU1Q0VBMjNCRUYzNjAwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmggKi8s
CisJCQkJMEZFN0VFNzQyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmMgKi8sCisJCQkJMEZF
N0VFNzUyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmggKi8sCiAJCQkJMEY1RTVDRTgyM0JF
RjM1RjAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY1RTVDRUIy
M0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXBfY29uZmlnLmggKi8sCi0JCQkJMEY1OUEz
OUQyNjY4NDcwRTAwQTM4NjU3IC8qIGppdF9oZWFwLmMgKi8sCi0JCQkJMEY1OUEzOEYyNjY3RjAw
RTAwQTM4NjU3IC8qIGppdF9oZWFwLmggKi8sCisJCQkJMEY1RTVDRTkyM0JFRjM1RjAwQUEwQjZG
IC8qIGlzb190ZXN0X2hlYXAuYyAqLywKKwkJCQkwRjVFNUNFQTIzQkVGMzYwMDBBQTBCNkYgLyog
aXNvX3Rlc3RfaGVhcC5oICovLAorCQkJCTBGNTlBMzk3MjY2ODMxNzQwMEEzODY1NyAvKiBqaXRf
aGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8sCiAJCQkJMEY1OUEzOTkyNjY4NDRBMzAwQTM4NjU3
IC8qIGppdF9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGNTlBMzkwMjY2N0YwMEUwMEEzODY1NyAv
KiBqaXRfaGVhcF9jb25maWcuaCAqLywKLQkJCQkwRjU5QTM5NzI2NjgzMTc0MDBBMzg2NTcgLyog
aml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICovLAotCQkJCTBGQkQ2N0Q2MjVCRDM2M0EwMEE0
OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXAuYyAqLywKLQkJCQkwRkJENjdEODI1QkQzNjNBMDBBNDkw
RDIgLyogbWluYWxpZ24zMl9oZWFwLmggKi8sCisJCQkJMEY1OUEzOUQyNjY4NDcwRTAwQTM4NjU3
IC8qIGppdF9oZWFwLmMgKi8sCisJCQkJMEY1OUEzOEYyNjY3RjAwRTAwQTM4NjU3IC8qIGppdF9o
ZWFwLmggKi8sCiAJCQkJMEZCRDY3RDcyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVh
cF9jb25maWcuYyAqLywKIAkJCQkwRkJENjdEOTI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24z
Ml9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBGQkQ2N0VGMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdl
c2l6ZTY0a19oZWFwLmMgKi8sCi0JCQkJMEZCRDY3RUQyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2Vz
aXplNjRrX2hlYXAuaCAqLywKKwkJCQkwRkJENjdENjI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxp
Z24zMl9oZWFwLmMgKi8sCisJCQkJMEZCRDY3RDgyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWdu
MzJfaGVhcC5oICovLAogCQkJCTBGQkQ2N0VDMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0
a19oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGQkQ2N0VFMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdl
c2l6ZTY0a19oZWFwX2NvbmZpZy5oICovLAorCQkJCTBGQkQ2N0VGMjVCRTA3ODcwMEE0OTBEMiAv
KiBwYWdlc2l6ZTY0a19oZWFwLmMgKi8sCisJCQkJMEZCRDY3RUQyNUJFMDc4NzAwQTQ5MEQyIC8q
IHBhZ2VzaXplNjRrX2hlYXAuaCAqLywKIAkJCQkwRkM2ODFGNjIxMUNENURGMDAzQzZBMTMgLyog
cGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRkM2ODFGMzIxMUNENURG
MDAzQzZBMTMgLyogcGFzX2FsaWduZWRfYWxsb2NhdG9yLmggKi8sCiAJCQkJMEZERUE0MTYyMjhC
NjQzMjAwODVFMzQwIC8qIHBhc19hbGlnbm1lbnQuYyAqLywKIAkJCQkwRkRFQTQyQjIyOEI2NDMz
MDA4NUUzNDAgLyogcGFzX2FsaWdubWVudC5oICovLAotCQkJCTBGOUExQ0JFMjU1OTk2MTQwMEM4
RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYyAqLywKLQkJCQkwRjlBMUNEMDI1
NTk5NjE1MDBDOEQxMUIgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmggKi8sCiAJCQkJ
MEY1OUEzOTEyNjY3RjAwRTAwQTM4NjU3IC8qIHBhc19hbGxfaGVhcF9jb25maWdzLmggKi8sCiAJ
CQkJMEZDNjgxRUUyMTE0RDk4MzAwM0M2QTEzIC8qIHBhc19hbGxfaGVhcHMuYyAqLywKIAkJCQkw
RkM2ODFFRjIxMTREOTg0MDAzQzZBMTMgLyogcGFzX2FsbF9oZWFwcy5oICovLAotCQkJCTBGMUFF
Q0U2MjY1ODE5NjAwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5jICovLAotCQkJCTBGMUFF
Q0U3MjY1ODE5NjEwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5oICovLAogCQkJCTBGRDQ4
QjBCMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmMg
Ki8sCiAJCQkJMEZENDhCMjcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3JpZXMuaCAqLywKIAkJCQkwRjQ3QzMxQzIzMzk2RTBCMDAyQTFDRjcgLyogcGFzX2Fs
bG9jYXRpb25fY2FsbGJhY2tzLmMgKi8sCiAJCQkJMEY0N0MzMUQyMzM5NkUwQjAwMkExQ0Y3IC8q
IHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5oICovLAogCQkJCTBGNzgwODhDMjJGQTUzNDEwMEYz
NzQ1MSAvKiBwYXNfYWxsb2NhdGlvbl9jb25maWcuaCAqLywKIAkJCQkwRjQ3QzMxODIzMzk2RDFG
MDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fa2luZC5oICovLAotCQkJCTBGOUExQ0EzMjU1OTk2
MTIwMEM4RDExQiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYyAqLywKIAkJCQkwRkM2ODFCMjIx
MDY1QTAwMDAzQzZBMTMgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCiAJCQkJMEZEQkIw
N0EyMkJCRkY4MzAwNkJBNUZDIC8qIHBhc19hbGxvY2F0b3JfY291bnRzLmggKi8sCiAJCQkJMEYy
MTUwRUEyNDg0QkIyQTAwMEQ2MzRCIC8qIHBhc19hbGxvY2F0b3JfaW5kZXguaCAqLywKIAkJCQkw
RjZCNDdGQzIzMzE1QUU0MDAyQTVFMEMgLyogcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24u
aCAqLywKLQkJCQkwRkQ0OEIyODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9j
YXRvci5jICovLAotCQkJCTBGRDQ4QjAwMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVf
YWxsb2NhdG9yLmggKi8sCiAJCQkJMEZENDhCMDUyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19iYXNl
bGluZV9hbGxvY2F0b3JfcmVzdWx0LmggKi8sCiAJCQkJMEZENDhCMDQyM0E5QUJCMDAwMjZDNDZE
IC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuYyAqLywKIAkJCQkwRkQ0OEIxRjIzQTlB
QkIyMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oICovLAorCQkJCTBG
RDQ4QjI4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmMgKi8sCisJ
CQkJMEZENDhCMDAyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3IuaCAq
LywKIAkJCQkwRjU5QTM5QTI2Njg0NEEzMDBBMzg2NTcgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmln
X2VudW1lcmF0b3JfZGF0YS5jICovLAogCQkJCTBGNEY2MTYzMjU5QkZCODUwMDhCNEE4MiAvKiBw
YXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmggKi8sCiAJCQkJMEY0RjYxNkMy
NTlCRkY5MTAwOEI0QTgyIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEuaCAqLywK
IAkJCQkwRjMyOUExRTIzRjExMzJBMDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNo
ZXMuaCAqLywKIAkJCQkwRjMyOUExRDIzRjExMzJBMDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hlYXBf
cnVudGltZV9jb25maWcuaCAqLywKIAkJCQkwRjMyOUEyMDIzRjExMzJBMDBBMTMzQzQgLyogcGFz
X2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCAqLywKLQkJCQkwRjlBMUNDNzI1NTk5NjE1
MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEY5QTFDRDgyNTU5
OTYxNjAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5oICovLAotCQkJCTBGOUExQ0JG
MjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oICovLAog
CQkJCTBGOUExQ0E5MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfa2lu
ZC5oICovLAogCQkJCTBGREVBNDE5MjI4QjY0MzIwMDg1RTM0MCAvKiBwYXNfYml0ZmllbGRfdmVj
dG9yLmggKi8sCiAJCQkJMEY5QTFDQkIyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxs
b2NhdGlvbl9yZXN1bHQuaCAqLywKKwkJCQkwRjlBMUNEMjI1NTk5NjE1MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oICovLAogCQkJCTBGOUExQ0M0MjU1OTk2MTQwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jICovLAogCQkJCTBGOUExQ0JDMjU1OTk2MTQw
MEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oICovLAotCQkJCTBGOUExQ0QyMjU1OTk2
MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCi0JCQkJMEY5
QTFDQjAyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyAq
LywKLQkJCQkwRjlBMUNBNzI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2Rp
cmVjdG9yeS5oICovLAorCQkJCTBGOUExQ0M4MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0
X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJCQkJMEY5QTFDQzEyNTU5OTYxNDAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfZGlyZWN0b3J5LmMgKi8sCiAJCQkJMEY5QTFDQjYyNTU5OTYxMzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEY5QTFDQUEyNTU5OTYxMjAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oICovLAotCQkJCTBGOUExQ0M4
MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCi0J
CQkJMEY5QTFDQjMyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQu
aCAqLywKLQkJCQkwRjlBMUNCRDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEY5QTFDOTgyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovLAotCQkJCTBGOUExQ0RGMjU1OTk2MTYwMEM4RDExQiAv
KiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgKi8sCi0JCQkJMEY5QTFDQUYyNTU5OTYx
MzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCAqLywKIAkJCQkwRjlB
MUNEMTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmMgKi8sCiAJCQkJMEY5QTFD
Q0QyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5oICovLAogCQkJCTBGOUExQzlC
MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0X21heF9mcmVlLmggKi8sCi0JCQkJMEY5QTFD
QzUyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5jICovLAotCQkJCTBGOUExQ0I3
MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2UuaCAqLywKLQkJCQkwRjlBMUNERDI1
NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oICovLAogCQkJCTBGNTcw
OTE3MjU2QUIyMTEwMDAzN0JCMyAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lubGluZXMuaCAq
LywKIAkJCQkwRjlBMUNDOTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z19raW5kLmMgKi8sCiAJCQkJMEY5QTFDQ0MyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfa2luZC5kZWYgKi8sCiAJCQkJMEY5QTFDQUUyNTU5OTYxMzAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oICovLAotCQkJCTBGOUExQzlBMjU1OTk2MTEw
MEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY1NzA5
MTkyNTZBQjQxNzAwMDM3QkIzIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5l
cy5oICovLAorCQkJCTBGOUExQzlBMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY5QTFDQ0IyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oICovLAorCQkJCTBGOUExQ0REMjU1OTk2MTYwMEM4
RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggKi8sCiAJCQkJMEY5QTFDQjUyNTU5OTYx
MzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmggKi8sCisJCQkJMEY5QTFDQzUy
NTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5jICovLAorCQkJCTBGOUExQ0I3MjU1
OTk2MTMwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2UuaCAqLywKIAkJCQkwRjlBMUNFMDI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMgKi8sCiAJCQkJMEY5QTFDRDYy
NTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oICovLAotCQkJCTBGOUEx
Q0EyMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuYyAqLywKLQkJCQkwRjlBMUNB
MTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmggKi8sCiAJCQkJMEY5QTFENDQy
NTVEQkU2MTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaCAqLywKIAkJCQkw
RjlBMUQ0MDI1NUFGMjc5MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCAqLywK
KwkJCQkwRjlBMUNBMjI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmMgKi8sCisJ
CQkJMEY5QTFDQTEyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5oICovLAogCQkJ
CTBGQzY4MUIzMjEwNkNENzkwMDNDNkExMyAvKiBwYXNfYml0dmVjdG9yLmggKi8sCiAJCQkJMEZD
NjgyM0QyMTI5RUQ1MDAwM0M2QTEzIC8qIHBhc19ib290c3RyYXBfZnJlZV9oZWFwLmMgKi8sCiAJ
CQkJMEZDNjgyM0YyMTI5RUQ1MTAwM0M2QTEzIC8qIHBhc19ib290c3RyYXBfZnJlZV9oZWFwLmgg
Ki8sCkBAIC0xNTM4LDkgKzE0NzksOSBAQAogCQkJCTBGMDRDMjEzMjQ2MERCNkYwMDFEMzFGMCAv
KiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmggKi8sCiAJCQkJMEY2
RDU2NDEyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19wdHIuaCAqLywKIAkJ
CQkwRjY2RDU0MjI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi8sCi0JCQkJMEYwNEMyMjcyNDYxMUNGRDAwMUQzMUYw
IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHIuaCAqLywKIAkJCQkwRjZENTY1RjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfaGVhcF9wYWdlX3NoYXJpbmdfcG9vbHNfcHRyLmggKi8sCiAJCQkJMEY2
RDU2NTkyM0NCRDE5QzAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlld19wdHIuaCAqLywKKwkJCQkwRjE0ODcwQjI2OUI3NTE4MDA2ODg3QTkgLyogcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJ
MEY2RDU2NjAyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3ZpZXcuaCAqLywKIAkJCQkwRkE1RTQ1NTI0OTJENUI5MDBDRTk2MkEgLyogcGFzX2NvbXBhY3Rf
YXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oICovLAogCQkJCTBGNkQ1NjUx
MjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfdW5zaWduZWRfcHRyLmggKi8s
CkBAIC0xNTU5LDE0ICsxNTAwLDE0IEBACiAJCQkJMEY5QTFDREMyNTU5OTYxNjAwQzhEMTFCIC8q
IHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi8sCiAJCQkJMEY2RDU2
M0YyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3B0ci5oICovLAogCQkJCTBGNjZENTQx
MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5X3B0ci5oICovLAotCQkJCTBGMDRDMjI2MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLywKKwkJCQkwRjE0ODcw
RDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19wdHIuaCAqLywKIAkJCQkwRjZENTY3NTIzQ0MxNDFFMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9oZWFwX3B0ci5oICovLAogCQkJCTBGNkQ1NjU1MjNDQkQxOUMwMEY0MERCQiAv
KiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9wdHIuaCAqLywK
IAkJCQkwRjZENTY1QjIzQ0JEMTlDMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9z
aGFyZWRfdmlld19wdHIuaCAqLywKKwkJCQkwRjE0ODcwRjI2OUI3NTE4MDA2ODg3QTkgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkwRjZENTY1
MzIzQ0JEMTlDMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF92aWV3LmggKi8sCi0J
CQkJMEYzMUE2M0YyM0RDRjg0ODAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2Rl
X3B0ci5oICovLAogCQkJCTBGMzFBNjQ1MjNFNEM0NDEwMDJDMENBMyAvKiBwYXNfY29tcGFjdF9z
a2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmggKi8sCi0JCQkJMEY5QTFDQzMyNTU5OTYxNDAwQzhEMTFC
IC8qIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oICovLAorCQkJCTBGMzFBNjNG
MjNEQ0Y4NDgwMDJDMENBMyAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIuaCAqLywK
IAkJCQkwRjZENTY0RDIzQ0FCQTY1MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21p
Y19wdHIuaCAqLywKIAkJCQkwRjlBMUNEMzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3Rf
dGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi8sCiAJCQkJMEY2RDU2NDQyM0NB
QTFCOTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCAqLywKQEAgLTE1NzQsMjQg
KzE1MTUsMjQgQEAKIAkJCQkwRjZENTY0RjIzQ0JEMTlCMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rf
dW5zaWduZWRfcHRyLmggKi8sCiAJCQkJMEZDNEVDMzUyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19j
b21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5jICovLAogCQkJCTBGQzRFQzMwMjM0QTkx
RTIwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3MuaCAqLywK
LQkJCQkwRkM2ODFBMjIxMDM5MTdCMDAzQzZBMTMgLyogcGFzX2NvbmZpZy5oICovLAogCQkJCTBG
ODVFRkQ1MjJFMkJFQzcwMDNBMzYyQiAvKiBwYXNfY29uZmlnX3ByZWZpeC5oICovLAorCQkJCTBG
QzY4MUEyMjEwMzkxN0IwMDNDNkExMyAvKiBwYXNfY29uZmlnLmggKi8sCiAJCQkJMEZENDhCMEEy
M0E5QUJCMTAwMjZDNDZEIC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5oICovLAogCQkJCTBGMzI5
QTI2MjNGMUQ2MzUwMEExMzNDNCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNf
d2l0aF9yZXNlcnZlZF9tZW1vcnkuYyAqLywKIAkJCQkwRjMyOUEyNTIzRjFENjM1MDBBMTMzQzQg
LyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5
LmggKi8sCiAJCQkJMEZFN0VFNUYyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19kZWFsbG9jYXRlLmMg
Ki8sCiAJCQkJMEZFN0VFNUUyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19kZWFsbG9jYXRlLmggKi8s
CiAJCQkJMEZGRkQ1MTQyNTZCMEZCQzAwMUVCOTRDIC8qIHBhc19kZWFsbG9jYXRpb25fbW9kZS5o
ICovLAotCQkJCTBGQzY4MjRDMjEyQTVCRkUwMDNDNkExMyAvKiBwYXNfZGVhbGxvY2F0b3IuaCAq
LywKIAkJCQkwRjZCNDdGQjIzMzE1QUU0MDAyQTVFMEMgLyogcGFzX2RlYWxsb2NhdG9yX3NjYXZl
bmdlX2FjdGlvbi5oICovLAorCQkJCTBGQzY4MjRDMjEyQTVCRkUwMDNDNkExMyAvKiBwYXNfZGVh
bGxvY2F0b3IuaCAqLywKIAkJCQkwRjM3M0U1MTI2NTlFQTVFMDAzNEJBOTYgLyogcGFzX2RlYnVn
X2hlYXAuaCAqLywKIAkJCQkwRkJDNjJDMDI2NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3Nw
ZWN0cnVtLmMgKi8sCiAJCQkJMEZCQzYyQzEyNjVGMTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19z
cGVjdHJ1bS5oICovLAogCQkJCTBGNzgwODk4MjJGQTZGMDgwMEYzNzQ1MSAvKiBwYXNfZGVmZXJy
ZWRfZGVjb21taXRfbG9nLmMgKi8sCiAJCQkJMEY3ODA4OTkyMkZBNkYwODAwRjM3NDUxIC8qIHBh
c19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCAqLywKKwkJCQkwRjVCODNCRTI0OTE4OTlFMDBGNDEw
NTIgLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBG
NUI4M0JCMjQ5MTg4OEEwMEY0MTA1MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5j
ICovLAogCQkJCTBGNUI4M0JBMjQ5MTg4ODkwMEY0MTA1MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRy
aW5zaWNfaGVhcC5oICovLAotCQkJCTBGNUI4M0JFMjQ5MTg5OUUwMEY0MTA1MiAvKiBwYXNfZGVz
aWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY5RTk0NjQyMzQ2NjBE
MzAwOUZBRkREIC8qIHBhc19keWxkX3N0YXRlLmMgKi8sCiAJCQkJMEY5RTk0NjUyMzQ2NjBEMzAw
OUZBRkREIC8qIHBhc19keWxkX3N0YXRlLmggKi8sCiAJCQkJMEZFQTQ1QzEyMzZDRTg5RDAwQjVB
Mzc1IC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5jICovLApAQCAtMTYxNCwxMSAr
MTU1NSwxMSBAQAogCQkJCTBGNEY2MTJCMjU5OTA4NzcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRl
X3NlZ3JlZ2F0ZWRfaGVhcHMuaCAqLywKIAkJCQkwRjRGNjFBNTI1QTNEMEJCMDA4QjRBODIgLyog
cGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdlc19hc19tZXRhLmMgKi8sCiAJCQkJMEY0RjYx
QTkyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNf
bWV0YS5oICovLAotCQkJCTBGNEY2MTA0MjU5N0FGODcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRv
ci5jICovLAotCQkJCTBGNEY2MTAzMjU5N0FGODcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvci5o
ICovLAogCQkJCTBGNEY2MTgwMjU5RTczNEYwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvcl9pbnRl
cm5hbC5oICovLAogCQkJCTBGNEY2MTE5MjU5ODM4QjEwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRv
cl9yZWdpb24uYyAqLywKIAkJCQkwRjRGNjExQTI1OTgzOEIxMDA4QjRBODIgLyogcGFzX2VudW1l
cmF0b3JfcmVnaW9uLmggKi8sCisJCQkJMEY0RjYxMDQyNTk3QUY4NzAwOEI0QTgyIC8qIHBhc19l
bnVtZXJhdG9yLmMgKi8sCisJCQkJMEY0RjYxMDMyNTk3QUY4NzAwOEI0QTgyIC8qIHBhc19lbnVt
ZXJhdG9yLmggKi8sCiAJCQkJMEYxOTMyNEYyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19lcG9jaC5j
ICovLAogCQkJCTBGMTkzMjREMjJFRDA0QTUwMEZCQTcxMyAvKiBwYXNfZXBvY2guaCAqLywKIAkJ
CQkwRkQ0OEFGOTIzQTlBQkFGMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRl
X21lbW9fdGFibGUuYyAqLywKQEAgLTE2MzIsOCArMTU3Myw4IEBACiAJCQkJMEY5QTFDQ0EyNTU5
OTYxNTAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2tpbmQuaCAqLywKIAkJCQkwRjlBMUQ0
NzI1NUUyODQyMDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuYyAqLywKIAkJCQkw
RjlBMUNDRTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCAqLywK
LQkJCQkwRjlBMUNCMjI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9u
X3Jlc3VsdC5oICovLAogCQkJCTBGOUExQzk5MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfZmFzdF9w
YXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaCAqLywKKwkJCQkwRjlBMUNCMjI1NTk5NjEzMDBD
OEQxMUIgLyogcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGQjU3
MDZBMjY3RDAzQ0QwMDgwRkE4QiAvKiBwYXNfZmFzdF90bHMuaCAqLywKIAkJCQkwRkM0RUMyRjIz
NEE5MUUyMDBCNzEwQTMgLyogcGFzX2ZkX3N0cmVhbS5jICovLAogCQkJCTBGQzRFQzM2MjM0QTkx
RTMwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFtLmggKi8sCkBAIC0xNjQ0LDggKzE1ODUsOCBAQAog
CQkJCTBGOUExQ0UxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5oICovLAog
CQkJCTBGMTkzMjUxMjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZnJlZV9tb2RlLmggKi8sCiAJCQkJ
MEZENDhCMTMyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19mcmVlX3JhbmdlX2tpbmQuaCAqLywKLQkJ
CQkwRkQ0OEIxRDIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0cy5oICovLAog
CQkJCTBGRDQ4QUZGMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzX2lubGlu
ZXMuaCAqLywKKwkJCQkwRkQ0OEIxRDIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2Nf
Yml0cy5oICovLAogCQkJCTBGRjA4RjM3MjJBNUIzRTIwMDM4NjU3NSAvKiBwYXNfZ2VuZXJpY19s
YXJnZV9mcmVlX2hlYXAuaCAqLywKIAkJCQkwRkU3RUU1ODIyOUUxNEY5MDA0RjQxNjYgLyogcGFz
X2dldF9hbGxvY2F0aW9uX3NpemUuaCAqLywKIAkJCQkwRkU3RUU1QzIyOUUxNEY5MDA0RjQxNjYg
LyogcGFzX2dldF9oZWFwLmggKi8sCkBAIC0xNjUzLDE3ICsxNTk0LDE1IEBACiAJCQkJMEY5QTFE
NEUyNTYzMDVCNDAwQzhEMTFCIC8qIHBhc19nZXRfcGFnZV9iYXNlLmggKi8sCiAJCQkJMEYxNTE4
RkMyMzQ0MUUzMjAwODMyQjVDIC8qIHBhc19oYXNfb2JqZWN0LmggKi8sCiAJCQkJMEZDNjgyMEEy
MTIxRjZFODAwM0M2QTEzIC8qIHBhc19oYXNodGFibGUuaCAqLywKLQkJCQkwRkM2ODFDODIxMEY3
QzlGMDAzQzZBMTMgLyogcGFzX2hlYXAuYyAqLywKLQkJCQkwRkM2ODFDMDIxMEY3QzlFMDAzQzZB
MTMgLyogcGFzX2hlYXAuaCAqLywKLQkJCQkwRjFCRkQ0MzI2NjQ1N0YxMDBDRUMyOEQgLyogcGFz
X2hlYXBfY29uZmlnLmMgKi8sCi0JCQkJMEZDNjgyNDcyMTJBMTA1NDAwM0M2QTEzIC8qIHBhc19o
ZWFwX2NvbmZpZy5oICovLAogCQkJCTBGMDRDMjBCMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfaGVh
cF9jb25maWdfaW5saW5lcy5oICovLAogCQkJCTBGNkQ1NjU0MjNDQkQxOUMwMEY0MERCQiAvKiBw
YXNfaGVhcF9jb25maWdfa2luZC5jICovLAogCQkJCTBGNkQ1NjUyMjNDQkQxOUMwMEY0MERCQiAv
KiBwYXNfaGVhcF9jb25maWdfa2luZC5kZWYgKi8sCiAJCQkJMEY2RDU2NUQyM0NCRDE5RDAwRjQw
REJCIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmggKi8sCisJCQkJMEYwODNGNTkyMkMyOTc5QjAw
RjNDREIzIC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8sCiAJCQkJMEZDNjgy
NDkyMTJBMTYwQjAwM0M2QTEzIC8qIHBhc19oZWFwX2NvbmZpZ191dGlscy5jICovLAogCQkJCTBG
MDkyMjZEMjJCMkQ5MDkwMDdENUQzQSAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHMuaCAqLywKLQkJ
CQkwRjA4M0Y1OTIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGlu
ZXMuaCAqLywKKwkJCQkwRjFCRkQ0MzI2NjQ1N0YxMDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmln
LmMgKi8sCisJCQkJMEZDNjgyNDcyMTJBMTA1NDAwM0M2QTEzIC8qIHBhc19oZWFwX2NvbmZpZy5o
ICovLAogCQkJCTBGQzJGRDM2MjM3NjE1MTMwMDUzREQ0MSAvKiBwYXNfaGVhcF9mb3JfY29uZmln
LmMgKi8sCiAJCQkJMEZDMkZEMzUyMzc2MTUxMjAwNTNERDQxIC8qIHBhc19oZWFwX2Zvcl9jb25m
aWcuaCAqLywKIAkJCQkwRkQ0OEI2ODIzQjZBRUQ1MDAyNkM0NkQgLyogcGFzX2hlYXBfaW5saW5l
cy5oICovLApAQCAtMTY3MSwyMyArMTYxMCwyNCBAQAogCQkJCTBGQzY4MTlFMjEwMzkxN0IwMDND
NkExMyAvKiBwYXNfaGVhcF9sb2NrLmMgKi8sCiAJCQkJMEZDNjgxOUYyMTAzOTE3QjAwM0M2QTEz
IC8qIHBhc19oZWFwX2xvY2suaCAqLywKIAkJCQkwRjZEQjg4QjIzNUU1NEE2MDA2OUNBREIgLyog
cGFzX2hlYXBfcGFnZV9wcm92aWRlci5oICovLAotCQkJCTBGQzY4MUM2MjEwRjdDOUYwMDNDNkEx
MyAvKiBwYXNfaGVhcF9yZWYuYyAqLywKLQkJCQkwRkM2ODFDNzIxMEY3QzlGMDAzQzZBMTMgLyog
cGFzX2hlYXBfcmVmLmggKi8sCiAJCQkJMEY4NzkyQjIyMzhBMUQwQzAwQUVFN0YxIC8qIHBhc19o
ZWFwX3JlZl9raW5kLmggKi8sCiAJCQkJMEY0N0Q0MEEyMTQwREIwNTAwOEM0MUYwIC8qIHBhc19o
ZWFwX3JlZl9wcmVmaXguaCAqLywKKwkJCQkwRkM2ODFDNjIxMEY3QzlGMDAzQzZBMTMgLyogcGFz
X2hlYXBfcmVmLmMgKi8sCisJCQkJMEZDNjgxQzcyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc19oZWFw
X3JlZi5oICovLAorCQkJCTBGMTQ4NzBFMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfaGVhcF9ydW50
aW1lX2NvbmZpZy5jICovLAogCQkJCTBGMzI5QTFGMjNGMTEzMkEwMEExMzNDNCAvKiBwYXNfaGVh
cF9ydW50aW1lX2NvbmZpZy5oICovLAogCQkJCTBGQzRFQzMxMjM0QTkxRTIwMEI3MTBBMyAvKiBw
YXNfaGVhcF9zdW1tYXJ5LmMgKi8sCiAJCQkJMEZFQjY2NjQyMzFCMkE1NzAwOUMwMDFCIC8qIHBh
c19oZWFwX3N1bW1hcnkuaCAqLywKKwkJCQkwRjZENTQ4MTIzQzU4MUMxMDBGNDBEQkIgLyogcGFz
X2hlYXBfdGFibGVfc3RhdGUuaCAqLywKIAkJCQkwRjZENTQ3NDIzQzU3M0UwMDBGNDBEQkIgLyog
cGFzX2hlYXBfdGFibGUuYyAqLywKIAkJCQkwRjZENTQ3NjIzQzU3M0UwMDBGNDBEQkIgLyogcGFz
X2hlYXBfdGFibGUuaCAqLywKLQkJCQkwRjZENTQ4MTIzQzU4MUMxMDBGNDBEQkIgLyogcGFzX2hl
YXBfdGFibGVfc3RhdGUuaCAqLywKKwkJCQkwRkM2ODFDODIxMEY3QzlGMDAzQzZBMTMgLyogcGFz
X2hlYXAuYyAqLywKKwkJCQkwRkM2ODFDMDIxMEY3QzlFMDAzQzZBMTMgLyogcGFzX2hlYXAuaCAq
LywKIAkJCQkwRkQ0OEFGRTIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2ltbW9ydGFsX2hlYXAuYyAq
LywKIAkJCQkwRkQ0OEIwOTIzQTlBQkIxMDAyNkM0NkQgLyogcGFzX2ltbW9ydGFsX2hlYXAuaCAq
LywKIAkJCQkwRkQ0OEFGQzIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2ltbXV0YWJsZV92ZWN0b3Iu
aCAqLywKIAkJCQkwRjUxNkVFMjI0NTYwRkY1MDA0RTJCOEQgLyogcGFzX2ludGVybmFsX2NvbmZp
Zy5oICovLAotCQkJCTBGREVBNDI3MjI4QjY0MzMwMDg1RTM0MCAvKiBwYXNfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0LmggKi8sCiAJCQkJMEZGMDhGNDkyMkE4NDQ2QjAwMzg2NTc1IC8qIHBh
c19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmggKi8sCi0JCQkJMEZDNjgxQTgyMTAzQ0FDOTAwM0M2
QTEzIC8qIHBhc19sYXJnZV9mcmVlLmggKi8sCiAJCQkJMEZDNjgyNDYyMTJBMEYxRjAwM0M2QTEz
IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY2NkQ1M0YyNDg3NjBB
NzAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVjbGFyYXRpb25zLmRlZiAqLywKIAkJ
CQkwRjc4MDg4OTIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJl
ZF9jb21taXRfbG9nLmMgKi8sCkBAIC0xNjk3LDM1ICsxNjM3LDQxIEBACiAJCQkJMEY2NkQ1M0Uy
NDg3NjBBNzAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5oICovLAogCQkJ
CTBGRjAwRDM3MjM3NzZENjQwMEMyMEFDMCAvKiBwYXNfbGFyZ2VfZnJlZV9pbmxpbmVzLmggKi8s
CiAJCQkJMEZGMDhGM0YyMkE1RjY1NTAwMzg2NTc1IC8qIHBhc19sYXJnZV9mcmVlX3Zpc2l0b3Iu
aCAqLywKLQkJCQkwRkM2ODFBQzIxMDRGRUFEMDAzQzZBMTMgLyogcGFzX2xhcmdlX2hlYXAuYyAq
LywKLQkJCQkwRkM2ODFBNzIxMDNCMEU2MDAzQzZBMTMgLyogcGFzX2xhcmdlX2hlYXAuaCAqLywK
KwkJCQkwRkM2ODFBODIxMDNDQUM5MDAzQzZBMTMgLyogcGFzX2xhcmdlX2ZyZWUuaCAqLywKIAkJ
CQkwRjE5MzI2NjIyRjNCM0YyMDBGQkE3MTMgLyogcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFn
ZV9zaGFyaW5nX2NhY2hlLmMgKi8sCiAJCQkJMEYxOTMyNjcyMkYzQjNGMzAwRkJBNzEzIC8qIHBh
c19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oICovLAorCQkJCTBGQzY4
MUFDMjEwNEZFQUQwMDNDNkExMyAvKiBwYXNfbGFyZ2VfaGVhcC5jICovLAorCQkJCTBGQzY4MUE3
MjEwM0IwRTYwMDNDNkExMyAvKiBwYXNfbGFyZ2VfaGVhcC5oICovLAorCQkJCTBGRjA4RjQ3MjJB
NzYzRjEwMDM4NjU3NSAvKiBwYXNfbGFyZ2VfbWFwX2VudHJ5LmggKi8sCiAJCQkJMEZDNjgxQTAy
MTAzOTE3QjAwM0M2QTEzIC8qIHBhc19sYXJnZV9tYXAuYyAqLywKIAkJCQkwRkM2ODFBMTIxMDM5
MTdCMDAzQzZBMTMgLyogcGFzX2xhcmdlX21hcC5oICovLAotCQkJCTBGRjA4RjQ3MjJBNzYzRjEw
MDM4NjU3NSAvKiBwYXNfbGFyZ2VfbWFwX2VudHJ5LmggKi8sCisJCQkJMEZDODQ3OTQyMzJENjk0
OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCAq
LywKIAkJCQkwRkNGQTQ5OTIzODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9v
bC5jICovLAogCQkJCTBGQ0ZBNDk4MjM4MzUyRUIwMENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sLmggKi8sCi0JCQkJMEZDODQ3OTQyMzJENjk0OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9z
aGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCAqLywKIAkJCQkwRjZENTQ3NTIzQzU3M0Uw
MDBGNDBEQkIgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmMgKi8sCiAJCQkJMEY2RDU0
NzIyM0M1NzNFMDAwRjQwREJCIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oICovLAog
CQkJCTBGOEE4MDI3MjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbGluZV93b3JkX2NvbmZpZy5oICov
LAogCQkJCTBGMzFBNjQzMjNFMzUwOUUwMDJDMENBMyAvKiBwYXNfbGlzdF9kaXJlY3Rpb24uaCAq
LywKLQkJCQkwRkRCQjA3MTIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5j
ICovLAotCQkJCTBGREJCMDcyMjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9y
LmggKi8sCiAJCQkJMEZENDhCMDIyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19sb2NhbF9hbGxvY2F0
b3JfY29uZmlnX2tpbmQuaCAqLywKIAkJCQkwRkRCQjA3NjIyQjg3N0ZBMDA2QkE1RkMgLyogcGFz
X2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCisJCQkJMEY0NUQ1QTYyNkFCNzMxNDAwQzM1
RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oICovLAogCQkJCTBGOEE4MDI4MjVFQzU4
ODgwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaCAqLywKIAkJCQkwRkRCQjA3
MDIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oICov
LAogCQkJCTBGQzY4MUJGMjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jl
c3VsdC5oICovLAotCQkJCTBGMDRDMjBEMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfbG9jay5jICov
LAotCQkJCTBGQzY4MjVEMjEyQ0E3NkQwMDNDNkExMyAvKiBwYXNfbG9jay5oICovLAorCQkJCTBG
NDVENUE3MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9k
YXRhLmMgKi8sCisJCQkJMEY0NUQ1QTgyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCAqLywKKwkJCQkwRkRCQjA3MTIyQjg3NUE2MDA2QkE1RkMg
LyogcGFzX2xvY2FsX2FsbG9jYXRvci5jICovLAorCQkJCTBGREJCMDcyMjJCODc1QTYwMDZCQTVG
QyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmggKi8sCisJCQkJMEYxNDg3MUQyNjlGNUZDQTAwNjg4
N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyAqLywKKwkJCQkwRjE0ODcxQTI2OUY1
RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oICovLAorCQkJCTBGMTQ4
NzFCMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5jICovLAorCQkJCTBG
MTQ4NzBDMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5oICovLAogCQkJ
CTBGRUE0NUJBMjM2Q0Q1QUMwMEI1QTM3NSAvKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9o
YXNodGFibGUuYyAqLywKIAkJCQkwRkVBNDVCQjIzNkNENUFDMDBCNUEzNzUgLyogcGFzX2xvY2tf
ZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmggKi8sCisJCQkJMEYwNEMyMEQyNDYwREI2RTAw
MUQzMUYwIC8qIHBhc19sb2NrLmMgKi8sCisJCQkJMEZDNjgyNUQyMTJDQTc2RDAwM0M2QTEzIC8q
IHBhc19sb2NrLmggKi8sCiAJCQkJMEY5RTk0NTYyMzQ1MjI2MjAwOUZBRkREIC8qIHBhc19sb2cu
YyAqLywKIAkJCQkwRjlFOTQ1NzIzNDUyMjYyMDA5RkFGREQgLyogcGFzX2xvZy5oICovLAotCQkJ
CTBGMDRDMjEyMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuYyAqLywKLQkJCQkwRjA0
QzIwODI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmggKi8sCiAJCQkJMEYwMzdBRjEy
NUFFQTkxOTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyAqLywKIAkJCQkw
RjAzN0FGMjI1QUVBOTFBMDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oICov
LAogCQkJCTBGQzY4MjAwMjEyMTBCMTkwMDNDNkExMyAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuYyAq
LywKQEAgLTE3MzUsMTMgKzE2ODEsMTMgQEAKIAkJCQkwRkQ0OEFGRDIzQTlBQkIwMDAyNkM0NkQg
LyogcGFzX21vbm90b25pY190aW1lLmggKi8sCiAJCQkJMEYwOTIyNjkyMkIwN0MyMTAwN0Q1RDNB
IC8qIHBhc19tdXRhdGlvbl9jb3VudC5oICovLAogCQkJCTBGOUExRDRBMjU1RjJDRDcwMEM4RDEx
QiAvKiBwYXNfb2JqZWN0X2tpbmQuaCAqLywKLQkJCQkwRjlBMUNCQTI1NTk5NjE0MDBDOEQxMUIg
LyogcGFzX3BhZ2VfYmFzZS5jICovLAotCQkJCTBGOUExQ0I5MjU1OTk2MTMwMEM4RDExQiAvKiBw
YXNfcGFnZV9iYXNlLmggKi8sCi0JCQkJMEY5QTFDQzAyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19w
YWdlX2Jhc2VfY29uZmlnLmggKi8sCiAJCQkJMEY5QTFENDIyNTVBRjczMjAwQzhEMTFCIC8qIHBh
c19wYWdlX2Jhc2VfY29uZmlnX2lubGluZXMuaCAqLywKLQkJCQkwRjlBMUNENDI1NTk5NjE2MDBD
OEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaCAqLywKIAkJCQkwRjlBMUNBQjI1
NTk5NjEyMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5lcy5oICov
LAorCQkJCTBGOUExQ0Q0MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191
dGlscy5oICovLAorCQkJCTBGOUExQ0MwMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNl
X2NvbmZpZy5oICovLAogCQkJCTBGOUExQ0FDMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9i
YXNlX2lubGluZXMuaCAqLywKKwkJCQkwRjlBMUNCQTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfYmFzZS5jICovLAorCQkJCTBGOUExQ0I5MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfcGFnZV9i
YXNlLmggKi8sCiAJCQkJMEY5QTFDQzYyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2NvbmZp
Z19raW5kLmggKi8sCiAJCQkJMEY5QTFDREEyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2dy
YW51bGVfdXNlX2NvdW50LmggKi8sCiAJCQkJMEY5QTFDRDUyNTU5OTYxNjAwQzhEMTFCIC8qIHBh
c19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oICovLApAQCAtMTc1MSwxMiArMTY5NywxMyBA
QAogCQkJCTBGQzY4MThDMjEwMjdCNDcwMDNDNkExMyAvKiBwYXNfcGFnZV9tYWxsb2MuYyAqLywK
IAkJCQkwRkM2ODE4OTIxMDI3QjQ2MDAzQzZBMTMgLyogcGFzX3BhZ2VfbWFsbG9jLmggKi8sCiAJ
CQkJMEY5QTFDRDkyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oICov
LAorCQkJCTBGMTkzMjVCMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRp
Y2lwYW50X2tpbmQuaCAqLywKIAkJCQkwRjE5MzI1RDIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jICovLAogCQkJCTBGMTkzMjVFMjJGMTE5M0QwMEZCQTcx
MyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmggKi8sCi0JCQkJMEYxOTMyNUIyMkYx
MTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5oICovLAor
CQkJCTBGQ0JEMDMzMjZBREY5MjUwMEQyNkQ2OCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2Nh
dmVuZ2VfcmVzdWx0LmggKi8sCisJCQkJMEZGMjQ4RjgyMkZDOUVEQjAwNzcyMDJFIC8qIHBhc19w
YWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oICovLAogCQkJCTBGRDIyQ0ZFMjJDQzAxRDMw
MEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYyAqLywKIAkJCQkwRkQyMkNGRDIyQ0Mw
MUQzMDBCMjE4NDEgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmggKi8sCi0JCQkJMEZGMjQ4Rjgy
MkZDOUVEQjAwNzcyMDJFIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oICov
LAogCQkJCTBGNEY2MUM5MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlv
bl9wYWdlX2xpc3QuYyAqLywKIAkJCQkwRjRGNjFDODI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3Bh
eWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmggKi8sCiAJCQkJMEY2RDU0NzMyM0M1NzNFMDAw
RjQwREJCIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlLmggKi8s
CkBAIC0xNzc0LDExICsxNzIxLDExIEBACiAJCQkJMEY1RTQ4MzUyM0Q2OTYwRjAwNDZEQTVDIC8q
IHBhc19yYWNlX3Rlc3RfaG9va3MuaCAqLywKIAkJCQkwRkQ0OEFGNTIzQTlBQkFGMDAyNkM0NkQg
LyogcGFzX3JhbmRvbS5jICovLAogCQkJCTBGRDQ4QjBGMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNf
cmFuZG9tLmggKi8sCi0JCQkJMEYxOTMyNTIyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19yYW5nZS5o
ICovLAotCQkJCTBGNkQ1NjM5MjNDNzlEMzcwMEY0MERCQiAvKiBwYXNfcmFuZ2UxNi5oICovLAog
CQkJCTBGNEY2MUFEMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfcmFuZ2VfYmVnaW5fbWluX2hlYXAu
aCAqLywKIAkJCQkwRkQ0OEFGMTIzQTlBQkFGMDAyNkM0NkQgLyogcGFzX3JhbmdlX2xvY2tlZF9t
b2RlLmggKi8sCiAJCQkJMEY3ODA4OEEyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19yYW5nZV9taW5f
aGVhcC5oICovLAorCQkJCTBGMTkzMjUyMjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfcmFuZ2UuaCAq
LywKKwkJCQkwRjZENTYzOTIzQzc5RDM3MDBGNDBEQkIgLyogcGFzX3JhbmdlMTYuaCAqLywKIAkJ
CQkwRkU3RUU3RTIyQTFBNTgwMDA0RjQxNjYgLyogcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlLmgg
Ki8sCiAJCQkJMEZFN0VFN0MyMkExQTMxQzAwNEY0MTY2IC8qIHBhc19yZWFsbG9jYXRlX2hlYXBf
dGVsZXBvcnRfcnVsZS5oICovLAogCQkJCTBGRjA4RjMyMjJBNThGMTIwMDM4NjU3NSAvKiBwYXNf
cmVkX2JsYWNrX3RyZWUuYyAqLywKQEAgLTE3OTIsNjIgKzE3MzksNTUgQEAKIAkJCQkwRjE5MzI2
QjIyRjczRTg0MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5jICovLAogCQkJCTBGMTkzMjZBMjJG
NzNFODQwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmggKi8sCiAJCQkJMEY2ODEyNzEyMkJENEJG
NDAwMzZBMDJCIC8qIHBhc19zZWdtZW50ZWRfdmVjdG9yLmggKi8sCi0JCQkJMEYwNEMyMEUyNDYw
REI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8sCi0J
CQkJMEYwNEMyMDIyNDYwREI2RDAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5LmggKi8sCi0JCQkJMEYwNEMyMEEyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlldy5jICovLAotCQkJCTBGMDRDMjBDMjQ2MERCNkUwMDFEMzFGMCAvKiBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCAqLywKLQkJCQkwRkQ0OEIxRTIzQTlBQkIyMDAy
NkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEZENDhCMUIyM0E5
QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5oICovLAorCQkJCTBGMTQ4
NzBBMjY5Qjc1MTcwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5o
ICovLAogCQkJCTBGRDQ4QjBDMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfYml0X3JlZmVyZW5jZS5oICovLAogCQkJCTBGNTA4RDUyMjU4RUNGRDMwMDE1MUVEOCAv
KiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZC5oICovLAogCQkJ
CTBGRDQ4QUY4MjNBOUFCQUYwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaW5s
aW5lcy5oICovLAogCQkJCTBGRDQ4QjIyMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRl
ZF9kaXJlY3Rvcnlfa2luZC5oICovLAorCQkJCTBGRDQ4QjFFMjNBOUFCQjIwMDI2QzQ2RCAvKiBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYyAqLywKKwkJCQkwRkQ0OEIxQjIzQTlBQkIyMDAyNkM0
NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmggKi8sCisJCQkJMEZFNjcyQjYyNUMyMUQ1
MzAwNkY2MEEyIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaCAqLywK
IAkJCQkwRkQ0OEIxODIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXcuYyAqLywKIAkJCQkwRkQ0OEIwNjIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcuaCAqLywKLQkJCQkwRkU2NzJCNjI1QzIxRDUzMDA2RjYwQTIgLyog
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oICovLAotCQkJCTBGMDRDMjA3
MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNo
aXBfa2luZC5oICovLAotCQkJCTBGMDRDMjAzMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYyAqLywKLQkJCQkwRjA0QzIwNDI0NjBEQjZFMDAx
RDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmggKi8sCi0JCQkJ
MEYwNEMyMEYyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJMEZDNjgxQzEyMTBGN0M5RTAwM0M2QTEzIC8qIHBh
c19zZWdyZWdhdGVkX2hlYXAuYyAqLywKLQkJCQkwRkM2ODFDNTIxMEY3QzlGMDAzQzZBMTMgLyog
cGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oICovLAogCQkJCTBGRDQ4QUYwMjNBOUFCQUYwMDI2QzQ2RCAv
KiBwYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRkRFQTU4NzIyOEY3RDRG
MDA4NUUzNDAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29rdXBfa2luZC5oICovLAotCQkJCTBG
QzY4MUI0MjEwNkNENzkwMDNDNkExMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmMgKi8sCi0JCQkJ
MEZDNjgxQUYyMTA2NUEwMDAwM0M2QTEzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuaCAqLywKKwkJ
CQkwRkM2ODFDMTIxMEY3QzlFMDAzQzZBMTMgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jICovLAor
CQkJCTBGQzY4MUM1MjEwRjdDOUYwMDNDNkExMyAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggKi8s
CiAJCQkJMEY5QTFEM0UyNTVBNTBENjAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5k
X2NvbmZpZy5oICovLAotCQkJCTBGOTdFNjJGMjJBOUFBQzEwMEMzNTVGOCAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZy5jICovLAotCQkJCTBGOTdFNjJEMjJBOUE4NUYwMEMzNTVGOCAvKiBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oICovLAogCQkJCTBGREJCMDc4MjJCOTgwNTQwMDZC
QTVGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEZE
NDhCMjMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQu
YyAqLywKIAkJCQkwRkY4RDYyNjIyQzA0QTZEMDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZC5kZWYgKi8sCiAJCQkJMEZERUE0MEEyMjhCNjQzMTAwODVFMzQwIC8qIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuaCAqLywKLQkJCQkwRjA5MjI2QjIyQjJEODhF
MDA3RDVEM0EgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaCAqLywKIAkJCQkw
RjA4M0Y1ODIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRp
bHNfaW5saW5lcy5oICovLAorCQkJCTBGMDkyMjZCMjJCMkQ4OEUwMDdENUQzQSAvKiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBGOUExQzlGMjU1OTk2MTEwMEM4
RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LmggKi8sCisJCQkJMEY5
N0U2MkYyMkE5QUFDMTAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgKi8s
CisJCQkJMEY5N0U2MkQyMkE5QTg1RjAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnLmggKi8sCiAJCQkJMEZDNEVDNzgyMzUxNzA3QjAwQjcxMEEzIC8qIHBhc19zZWdyZWdhdGVk
X3BhZ2VfZW1wdGluZXNzX2tpbmQuaCAqLywKIAkJCQkwRkY4RDYyODIyQzE2NkY1MDBFQzcyRkUg
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmggKi8sCisJCQkJMEZDNjgxQjQyMTA2Q0Q3
OTAwM0M2QTEzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuYyAqLywKKwkJCQkwRkM2ODFBRjIxMDY1
QTAwMDAzQzZBMTMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oICovLAorCQkJCTBGRDQ4QjJBMjNB
OUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfaW5saW5lcy5oICov
LAogCQkJCTBGRDQ4QjExMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXcuYyAqLywKIAkJCQkwRkQ0OEFGQTIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3LmggKi8sCi0JCQkJMEZENDhCMkEyM0E5QUJCMzAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pbmxpbmVzLmggKi8sCisJCQkJMEZENDhCMDEyM0E5
QUJCMDAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfaW5saW5lcy5oICov
LAogCQkJCTBGRDQ4QjBEMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
aGFuZGxlLmMgKi8sCiAJCQkJMEZENDhCMUEyM0E5QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9oYW5kbGUuaCAqLywKLQkJCQkwRkQ0OEIwMTIzQTlBQkIwMDAyNkM0NkQgLyog
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhBRjMy
M0E5QUJBRjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5j
ICovLAogCQkJCTBGRDQ4QjFDMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfcGFnZV9kaXJlY3RvcnkuaCAqLywKKwkJCQkwRjVFNUNGMTIzQkZCRkI4MDBBQTBCNkYgLyog
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5lcy5oICovLAogCQkJCTBGRDQ4QjE3MjNB
OUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5jICovLAogCQkJCTBG
RDQ4QjI1MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oICov
LAotCQkJCTBGNUU1Q0YxMjNCRkJGQjgwMEFBMEI2RiAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
dmlld19pbmxpbmVzLmggKi8sCisJCQkJMEYxNDg3MUMyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCAqLywKKwkJCQkwRkQ0OEIx
OTIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5l
cy5oICovLAogCQkJCTBGRDQ4QjIxMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5jICovLAogCQkJCTBGRDQ4QjI5MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oICovLAotCQkJCTBGRDQ4QjE5MjNBOUFCQjIwMDI2
QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJ
MEZENDhBRkIyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuYyAqLywKLQkJ
CQkwRkQ0OEIwRTIzQTlBQkIxMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oICovLAog
CQkJCTBGRTY3MkM2MjVDMjFGNjcwMDZGNjBBMiAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2FsbG9j
YXRvcl9pbmxpbmVzLmggKi8sCi0JCQkJMEYwNEMyMTAyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oICovLAogCQkJCTBGRDQ4QjE0MjNBOUFCQjIwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCAqLywKLQkJCQkwRjlBMUM5RDI1NTk5NjEx
MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oICovLAorCQkJ
CTBGRDQ4QUZCMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmMgKi8sCisJ
CQkJMEZENDhCMEUyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuaCAqLywK
IAkJCQkwRjlBMUNEQjI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFn
ZV9ib3VuZGFyeV9pbmxpbmVzLmggKi8sCisJCQkJMEY5QTFDOUQyNTU5OTYxMTAwQzhEMTFCIC8q
IHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaCAqLywKIAkJCQkwRjE4RTYzRDI2
MjhCRkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmMgKi8s
CiAJCQkJMEYxOEU2M0MyNjI4QkZCNjAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3Rv
cnlfYnlfc2l6ZS5oICovLAogCQkJCTBGNkQ1NjNFMjNDQUExQjkwMEY0MERCQiAvKiBwYXNfc2lt
cGxlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVmICovLApAQCAtMTg1OCwxMSArMTc5OCwxMSBA
QAogCQkJCTBGRjA4RjNCMjJBNURDNjkwMDM4NjU3NSAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVf
aGVhcC5oICovLAogCQkJCTBGREVBNTc2MjI4RTIzNDQwMDg1RTM0MCAvKiBwYXNfc2ltcGxlX3R5
cGUuaCAqLywKIAkJCQkwRjk5Rjk4QjI1Q0IyQ0U4MDBFRUU0NDkgLyogcGFzX3NpemVfdGh1bmsu
aCAqLywKKwkJCQkwRjMxQTYzOTIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdF9pbmxp
bmVzLmggKi8sCiAJCQkJMEYzMUE2M0EyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3Qu
YyAqLywKIAkJCQkwRjMxQTYzQjIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdC5oICov
LAotCQkJCTBGMzFBNjM5MjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0X2lubGluZXMu
aCAqLywKLQkJCQkwRkM2NDE4NDIxMzBERkI2MDA0MENFNUUgLyogcGFzX3Nsb3dfcGF0aF9tb2Rl
LmggKi8sCiAJCQkJMEY0N0Q0MEUyMTQwREIwNTAwOEM0MUYwIC8qIHBhc19zbG93X3BhdGhfbW9k
ZV9wcmVmaXguaCAqLywKKwkJCQkwRkM2NDE4NDIxMzBERkI2MDA0MENFNUUgLyogcGFzX3Nsb3df
cGF0aF9tb2RlLmggKi8sCiAJCQkJMEY2RDU0NzgyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19zbWFs
bF9sYXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkwRkM2ODIxNzIxMjUzNjI3MDAzQzZBMTMgLyog
cGFzX3NucHJpbnRmLmggKi8sCiAJCQkJMEZDNEVDMzIyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19z
dGF0dXNfcmVwb3J0ZXIuYyAqLywKQEAgLTE4NzEsNDggKzE4MTEsNDUgQEAKIAkJCQkwRkM2ODIx
OTIxMjUzNjI3MDAzQzZBMTMgLyogcGFzX3N0cmVhbS5oICovLAogCQkJCTBGQzRFQzJFMjM0QTkx
RTIwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5jICovLAogCQkJCTBGQzRFQzMzMjM0QTkx
RTIwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5oICovLAotCQkJCTBGOUExQ0Q3MjU1OTk2
MTYwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuYyAqLywKLQkJCQkwRjlBMUNDMjI1NTk5NjE0
MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmggKi8sCi0JCQkJMEY5QTFDOUMyNTU5OTYxMTAw
QzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5jICovLAotCQkJCTBGOUExQzk3MjU1OTk2
MTEwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCAqLywKLQkJCQkwRkM2ODFDOTIx
MEY3QzlGMDAzQzZBMTMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jICovLAotCQkJCTBGQzY4
MUM0MjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmggKi8sCi0JCQkJ
MEZDNjgxQzIyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
LmMgKi8sCi0JCQkJMEZDNjgxQ0EyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0LmggKi8sCisJCQkJMEYxNDg3MUUyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oICovLAogCQkJCTBGQTVFNDUxMjQ5
MkQ1QjkwMENFOTYyQSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMgKi8s
CiAJCQkJMEZBNUU0NTMyNDkyRDVCOTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGUuaCAqLywKKwkJCQkwRkM2ODFDMjIxMEY3QzlFMDAzQzZBMTMgLyogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYyAqLywKKwkJCQkwRkM2ODFDQTIxMEY3QzlGMDAzQzZB
MTMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCAqLywKIAkJCQkwRjdGNTFCQzIz
MTU5RUMwMDA3NTUyQUUgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmMgKi8sCiAJCQkJ
MEY3RjUxQkQyMzE1OUVDMDAwNzU1MkFFIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5o
ICovLAorCQkJCTBGQzY4MUM5MjEwRjdDOUYwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlLmMgKi8sCisJCQkJMEZDNjgxQzQyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUuaCAqLywKIAkJCQkwRjZENTQ3MTIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX3Rpbnlf
bGFyZ2VfbWFwX2VudHJ5LmggKi8sCiAJCQkJMEYzMUE2NjkyM0U4RTU5NDAwMkMwQ0EzIC8qIHBh
c190cmVlX2RpcmVjdGlvbi5oICovLAogCQkJCTBGOEE4MDBDMjVDRjY0QzkwMDc5MEI0QSAvKiBw
YXNfdHJpX3N0YXRlLmggKi8sCi0JCQkJMEZFN0VFNUIyMjlFMTRGOTAwNEY0MTY2IC8qIHBhc190
cnlfYWxsb2NhdGUuaCAqLywKIAkJCQkwRkU3RUU1QTIyOUUxNEY5MDA0RjQxNjYgLyogcGFzX3Ry
eV9hbGxvY2F0ZV9hcnJheS5oICovLAogCQkJCTBGRDQ4QjAzMjNBOUFCQjAwMDI2QzQ2RCAvKiBw
YXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oICovLAogCQkJCTBGRTdFRTU5MjI5RTE0RjkwMDRGNDE2
NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaCAqLywKIAkJCQkwRkU3
RUU1RDIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaCAqLywK
KwkJCQkwRkU3RUU1QjIyOUUxNEY5MDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZS5oICovLAog
CQkJCTBGRTdFRTc4MjJBMDQ4QkEwMDRGNDE2NiAvKiBwYXNfdHJ5X3JlYWxsb2NhdGUuaCAqLywK
IAkJCQkwRjU5QTM5MjI2NjdGMDBFMDBBMzg2NTcgLyogcGFzX3RyeV9zaHJpbmsuaCAqLywKIAkJ
CQkwRkRFQTQ3NjIyOEI2NTQzMDA4NUUzNDAgLyogcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
LmggKi8sCi0JCQkJMEZDNjgyM0UyMTI5RUQ1MTAwM0M2QTEzIC8qIHBhc191dGlsaXR5X2hlYXAu
YyAqLywKLQkJCQkwRkM2ODI0MTIxMjlFRDUxMDAzQzZBMTMgLyogcGFzX3V0aWxpdHlfaGVhcC5o
ICovLAogCQkJCTBGREVBNDIzMjI4QjY0MzMwMDg1RTM0MCAvKiBwYXNfdXRpbGl0eV9oZWFwX2Nv
bmZpZy5jICovLAogCQkJCTBGREVBNDFCMjI4QjY0MzIwMDg1RTM0MCAvKiBwYXNfdXRpbGl0eV9o
ZWFwX2NvbmZpZy5oICovLAogCQkJCTBGRDQ4QUYyMjNBOUFCQUYwMDI2QzQ2RCAvKiBwYXNfdXRp
bGl0eV9oZWFwX3N1cHBvcnQuaCAqLywKKwkJCQkwRkM2ODIzRTIxMjlFRDUxMDAzQzZBMTMgLyog
cGFzX3V0aWxpdHlfaGVhcC5jICovLAorCQkJCTBGQzY4MjQxMjEyOUVENTEwMDNDNkExMyAvKiBw
YXNfdXRpbGl0eV9oZWFwLmggKi8sCisJCQkJMEZDNjQxOTYyMTQwQ0FEQzAwNDBDRTVFIC8qIHBh
c191dGlsc19wcmVmaXguaCAqLywKIAkJCQkwRkM2ODE4RjIxMDI3QzQ0MDAzQzZBMTMgLyogcGFz
X3V0aWxzLmMgKi8sCiAJCQkJMEZDNjgxODgyMTAyN0I0NjAwM0M2QTEzIC8qIHBhc191dGlscy5o
ICovLAotCQkJCTBGQzY0MTk2MjE0MENBREMwMDQwQ0U1RSAvKiBwYXNfdXRpbHNfcHJlZml4Lmgg
Ki8sCiAJCQkJMEY5QTFDQjEyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc192ZXJzaW9uZWRfZmllbGQu
YyAqLywKIAkJCQkwRjY4MTI2RjIyQkQ0MTlFMDAzNkEwMkIgLyogcGFzX3ZlcnNpb25lZF9maWVs
ZC5oICovLAorCQkJCTBGNzgwODg4MjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5n
ZV9taW5faGVhcC5oICovLAogCQkJCTBGNzgwODgzMjJGQTIyRDIwMEYzNzQ1MSAvKiBwYXNfdmly
dHVhbF9yYW5nZS5jICovLAogCQkJCTBGNzgwODgyMjJGQTIyRDEwMEYzNzQ1MSAvKiBwYXNfdmly
dHVhbF9yYW5nZS5oICovLAotCQkJCTBGNzgwODg4MjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfdmly
dHVhbF9yYW5nZV9taW5faGVhcC5oICovLAogCQkJCTBGREVBNDZEMjI4QjY1NDMwMDg1RTM0MCAv
KiBwYXNfemVyb19tb2RlLmggKi8sCi0JCQkJMEY4NzAwQTIyNUIwQThDMjAwMEUxQUJGIC8qIHRo
aW5neV9oZWFwLmMgKi8sCi0JCQkJMEY4NzAwQTMyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9o
ZWFwLmggKi8sCiAJCQkJMEY4NzAwQTQyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2Nv
bmZpZy5jICovLAogCQkJCTBGODcwMEE1MjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9j
b25maWcuaCAqLywKIAkJCQkwRjg3MDBBMTI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBf
cHJlZml4LmggKi8sCisJCQkJMEY4NzAwQTIyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFw
LmMgKi8sCisJCQkJMEY4NzAwQTMyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmggKi8s
CiAJCQkpOwogCQkJcGF0aCA9IGxpYnBhczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xOTIwLDggKzE4NTcsOCBAQAogCQkwRkU3RUU4QzIyQTFEQzMzMDA0RjQxNjYgLyogbWJtYWxs
b2MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTBGOEE4
MDU0MjVFRUNCRDQwMDc5MEI0QSAvKiBtYm1hbGxvY19ibWFsbG9jLmMgKi8sCiAJCQkJMEY4QTgw
QjMyNUY2QTQ2QzAwNzkwQjRBIC8qIG1ibWFsbG9jX2hvdGJpdC5jICovLAorCQkJCTBGOEE4MDU0
MjVFRUNCRDQwMDc5MEI0QSAvKiBtYm1hbGxvY19ibWFsbG9jLmMgKi8sCiAJCQkJMEZGMDhGNTUy
MkE4NkUyRTAwMzg2NTc1IC8qIG1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlLmMgKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IG1ibWFsbG9jOwpAQCAtMTkzOSwxNCArMTg3NiwxNCBAQAogCQkzQTZD
QTY1ODIxMDEyODk1MDAzRUZEQkYgLyogUHJvZHVjdHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTBGQkFFNjgzMjQ4RUMxQzAwMDMxMUU2RiAvKiBjaGFv
cyAqLywKIAkJCQkwRkM2ODFEQjIxMEZBQzRCMDAzQzZBMTMgLyogdGVzdF9wYXMgKi8sCi0JCQkJ
MEY4QTgwM0IyNUVFQ0JBRjAwNzkwQjRBIC8qIGxpYm1ibWFsbG9jX2JtYWxsb2MuZHlsaWIgKi8s
Ci0JCQkJMEY4QTgwOTcyNUY2QTQ0RjAwNzkwQjRBIC8qIGxpYm1ibWFsbG9jX2hvdGJpdC5keWxp
YiAqLywKLQkJCQkwRkYwOEY1NDIyQTg2QzlBMDAzODY1NzUgLyogbGlibWJtYWxsb2NfaXNvX2Nv
bW1vbl9wcmltaXRpdmUuZHlsaWIgKi8sCi0JCQkJMEY0NDNCNEUyMzQxNzYxNTAwQkU1MEQxIC8q
IGxpYm1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlX3ZlcmlmaWVkLmR5bGliICovLAogCQkJ
CTBGREVBNUQ5MjI5NUZDOEMwMDg1RTM0MCAvKiBsaWJwYXMuZHlsaWIgKi8sCisJCQkJMEZGMDhG
NTQyMkE4NkM5QTAwMzg2NTc1IC8qIGxpYm1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlLmR5
bGliICovLAogCQkJCTBGNDQzQjNBMjM0MTZBN0MwMEJFNTBEMSAvKiBsaWJwYXNfdmVyaWZpZXIu
ZHlsaWIgKi8sCisJCQkJMEY0NDNCNEUyMzQxNzYxNTAwQkU1MEQxIC8qIGxpYm1ibWFsbG9jX2lz
b19jb21tb25fcHJpbWl0aXZlX3ZlcmlmaWVkLmR5bGliICovLAorCQkJCTBGQkFFNjgzMjQ4RUMx
QzAwMDMxMUU2RiAvKiBjaGFvcyAqLywKKwkJCQkwRjhBODAzQjI1RUVDQkFGMDA3OTBCNEEgLyog
bGlibWJtYWxsb2NfYm1hbGxvYy5keWxpYiAqLywKKwkJCQkwRjhBODA5NzI1RjZBNDRGMDA3OTBC
NEEgLyogbGlibWJtYWxsb2NfaG90Yml0LmR5bGliICovLAogCQkJKTsKIAkJCW5hbWUgPSBQcm9k
dWN0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMDA1LDM2NSArMTk0MiwzNTQg
QEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0g
MjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTBGOEE4MDY3MjVFRUNDMUQwMDc5MEI0QSAv
KiBibWFsbG9jX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEE4MDY5MjVFRUNDMUQwMDc5
MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODA2
NTI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGOEE4MDZCMjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5uYXJkcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgwNkEyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2Nf
aGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEE4MTA1MjVGNkE3OTUwMDc5MEI0QSAv
KiBob3RiaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgxMDMyNUY2QTc5NTAwNzkw
QjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgxMDYy
NUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGOEE4MTAyMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9pbm5hcmRzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkU3RUU3NzIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRTdFRTU2MjI5NzQzMzUwMDRGNDE2NiAvKiBpc29faGVhcF9j
b25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUZFN0E0MjVCNjE0RjIwMDE4NTlGQyAvKiBp
c29faGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjUxNkVFNzI0NTYxQTYwMDA0
RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1MjlEREYy
NDU1NDYwQzAwMzg1QThDIC8qIGlzb19oZWFwX3JlZi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1
RTVDRUUyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNUU1Q0VGMjNCRUYzNjAwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY1OUEzOTMyNjY3RjAwRTAwQTM4NjU3IC8qIGppdF9oZWFwLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjU5QTM5NDI2NjdGMDBFMDBBMzg2NTcgLyogaml0X2hlYXBf
Y29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjU5QTM5ODI2NjgzMTc0MDBBMzg2NTcgLyog
aml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZCRDY3REMy
NUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZCRDY3REQyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGQkQ2N0YxMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19o
ZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkJENjdGMjI1QkUwNzg3MDBBNDkwRDIgLyogcGFn
ZXNpemU2NGtfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFREZFMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFN0VFNjQyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19nZXRfaGVhcC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY1RTVDRjIyM0JGQkZCOTAwQUEwQjZGIC8qIHBhc19zZWdyZWdhdGVk
X3NoYXJlZF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTJFMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9raW5kLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkQ0OEI1QjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3
X3RlbXBsYXRlX21lbW9fdGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTMzMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU2NTIy
OUUxNEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGMTQ4NzIzMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMjE1MEVEMjQ4NEJC
ODYwMDBENjM0QiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VERkYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGlnbmVk
X2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMDAyMjk2MDE0MjAwNEY0MTY2
IC8qIHBhc19hbGlnbm1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDFCMjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNTlBMzk1MjY2N0YwMEUwMEEzODY1NyAvKiBwYXNfYWxsX2hlYXBfY29uZmlncy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMDEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGxfaGVh
cHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMUFFQ0U5MjY1ODE5NjEwMDBDNTIxOCAvKiBwYXNf
YWxsX21hZ2F6aW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNjIyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNDdDMzFGMjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3Mu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGNzgwODkyMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfYWxs
b2NhdGlvbl9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDdDMzFBMjMzOTZEMUYwMDJB
MUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUw
MjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkRCQjA3QjIyQkJGRjgzMDA2QkE1RkMgLyogcGFzX2FsbG9jYXRvcl9jb3VudHMu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGMjE1MEVCMjQ4NEJCMkEwMDBENjM0QiAvKiBwYXNfYWxs
b2NhdG9yX2luZGV4LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZCNDdGRTIzMzE1QUU1MDAyQTVF
MEMgLyogcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRDQ4QjNCMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0MDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5l
X2FsbG9jYXRvcl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjVBMjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjRGNjE2NDI1OUJGQjg1MDA4QjRBODIgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2Vu
dW1lcmF0b3JfZGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxNkQyNTlCRkY5MTAwOEI0
QTgyIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGMzI5QTIyMjNGMTEzMkIwMEExMzNDNCAvKiBwYXNfYmFzaWNfaGVhcF9wYWdlX2NhY2hl
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMjlBMjEyM0YxMTMyQTAwQTEzM0M0IC8qIHBhc19i
YXNpY19oZWFwX3J1bnRpbWVfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMyOUEyNDIz
RjExMzJCMDBBMTMzQzQgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExRDIzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19k
aXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDBCMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5
QTFDRjUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkU3RUUwMzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2JpdGZpZWxk
X3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2NkQ1NDgyNDg3NjBBODAwRkM3MzQ3IC8q
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjZCNDdGRDIzMzE1QUU1MDAyQTVFMEMgLyogcGFzX2RlYWxsb2NhdG9yX3Nj
YXZlbmdlX2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDNEVDM0YyMzRBOTFFMzAwQjcx
MEEzIC8qIHBhc19mZF9zdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0U1MjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRTdFRTBDMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfZXh0ZW5kZWRf
Z2NkLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNGNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5
QTFEMjYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRh
cnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFEMDcyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NUZFN0E0MjVCNjE0RjIwMDE4NTlGQyAvKiBpc29faGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjlBMUQwODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDFEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGMzI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY5QTFEMDIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQxNDI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY5QTFDRkYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0
b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0U0MjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUEx
Q0ZCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjlBMUQxODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9o
ZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNFNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9tYXhfZnJlZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMDMyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjgy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGNTcwOTE4MjU2QUIyMTEwMDAzN0JCMyAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmln
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0ZBMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUEx
Q0U2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjU3MDkxQTI1NkFCNDE3MDAwMzdCQjMgLyogcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQxNzI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjlBMUQwMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdl
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDIxMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0VEMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
OUExRDQ1MjU1REJFNjEwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4LmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjlBMUQ0MTI1NUFGMjc5MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92
aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTA0MjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfYml0dmVjdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwNTIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGNUI2MDg0MjM1RTU3MjAwMENBRTYyOSAvKiBwYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMDgyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19jYXJlc19hYm91dF9zaXplX21vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzFBNjY2MjNF
OEE5NDIwMDJDMENBMyAvKiBwYXNfY2FydGVzaWFuX3RyZWUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRTdFRTA5MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY29hbGlnbi5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYxOTMyNTMyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19jb21taXRfbW9kZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY5QTFDRjQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bh
bi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYyMTUwRUQyNDg0QkI4NjAwMEQ2MzRCIC8qIHBhc19j
b21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjlBMUQ0ODI1NUUyODQyMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGly
ZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEM0MyNTVBNEJBNjAwQzhEMTFC
IC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjlBMUQyRjI1NTlCQTdBMDBDOEQxMUIgLyogcGFzX2NvbXBhY3Rf
YXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOUExRDMxMjU1OUJCNUQwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2hl
YXBfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQzNzI1NUE0NDczMDBDOEQxMUIgLyog
cGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5QTFEMzYyNTVBNDQ3MzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQ0NEMTQxMjY1NUU2RTcwMDE3MUEx
RiAvKiBwYXNfY29tcGFjdF9hdG9taWNfZW51bWVyYWJsZV9yYW5nZV9saXN0X2NodW5rX3B0ci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMjUyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19jb21w
YWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
NkQ1NjQ5MjNDQUExQkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfcHRyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjY2RDU0OTI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjA0QzIyOTI0NjExQ0ZEMDAxRDMxRjAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMTAy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oYXNodGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NTE2RUUzMjQ1NjBGRjUwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjc4MDg5MzIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2xhcmdlX2ZyZWVfaGVh
cF9kZWZlcnJlZF9jb21taXRfbG9nLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI0MDIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNkQ1NjcxMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19wb29sc19wdHIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNkQ1NjZCMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY3MjIzQ0JE
MTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZBNUU0NUEyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc19jb21wYWN0X2F0
b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGNkQ1NjY0MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfdW5zaWduZWRf
cHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2NvbXBhY3RfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRG
NjEyRDI1OTkwODc3MDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjg3MDBBNjI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hl
YXBfcHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQzODI1NUE0NDczMDBDOEQxMUIg
LyogcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOUExRDNEMjU1QTRCQTYwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDM5MjU1QTQ0NzMwMEM4RDEx
QiAvKiBwYXNfY29tcGFjdF9iaXRmaXRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
NkQ1NjQ4MjNDQUExQkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFw
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjFDMDI1QTRDQjA5MDA4QjRBODIgLyogcGFzX2Nv
bXBhY3RfY2FydGVzaWFuX3RyZWVfbm9kZV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1
NjcwMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9oZWFwX3B0ci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY2RDU2NjgyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBfcmVz
ZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNjZENTQ1MjQ4NzYwQTgwMEZDNzM0NyAv
KiBwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY5QTFEMjcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91
c2VfY291bnRfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY0NzIzQ0FBMUJBMDBGNDBE
QkIgLyogcGFzX2NvbXBhY3RfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY2RDU0ODI0ODc2
MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9w
dHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDRDMjI4MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGNkQ1Njc3MjNDQzE0MUUwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2hlYXBfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY2NzIzQ0JEMTlEMDBGNDBE
QkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfcHRyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY2RDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjA4
RjRBMjJBODQ0NkIwMDM4NjU3NSAvKiBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZDRkE0OUEyMzgzNTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFy
aW5nX3Bvb2wuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTA0MjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfYml0dmVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyRDI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZE
NTY2NTIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF92aWV3LmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjMxQTY0MDIzRENGODQ4MDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rf
c2tpcF9saXN0X25vZGVfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMxQTY0NjIzRTRDNDQx
MDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0ci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY5QTFEMEYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3N1YnBh
Z2VfbWFwX2VudHJ5X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NEUyM0NBQkE2NTAw
RjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9hdG9taWNfcHRyLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjlBMUQxRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2Vf
Z3JhbnVsZV91c2VfY291bnRfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY0QjIzQ0FB
MUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY2RDU2NzkyM0NENzA1OTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25l
ZF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjYyMjNDQkQxOUQwMEY0MERCQiAvKiBw
YXNfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzRFQzM5MjM0
QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3MuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRTdFRTBBMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY29uZmln
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg1RUZEQTIyRTJCRUM3MDAzQTM2MkIgLyogcGFzX2Nv
bmZpZ19wcmVmaXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjQ1MjNBOUFCQjMwMDI2QzQ2
RCAvKiBwYXNfY291bnRfbG9va3VwX21vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzI5QTJC
MjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0
aF9yZXNlcnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTY2MjI5RTE0RkEw
MDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZGRkQ1MTUy
NTZCMEZCRDAwMUVCOTRDIC8qIHBhc19kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZFN0VFMEIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19kZWFsbG9jYXRvci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY2QjQ3RkQyMzMxNUFFNTAwMkE1RTBDIC8qIHBhc19kZWFsbG9jYXRv
cl9zY2F2ZW5nZV9hY3Rpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzczRTUyMjY1OUVBNUUw
MDM0QkE5NiAvKiBwYXNfZGVidWdfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZCQzYyQzMy
NjVGMTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY0RjYxQjAyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19wdHJfbWluX2hlYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNEY2MTQ3MjU5QkIxMDkwMDhCNEE4MiAvKiBwYXNfcHRyX2hhc2hfc2V0
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RURGRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Fs
aWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRUE0NUMyMjM2
Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGRDIyQ0ZDMjJDQUYxNjQwMEIyMTg0MSAvKiBwYXNfbWluX2hlYXAuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNzgwODlCMjJGQTZGMDgwMEYzNzQ1MSAvKiBwYXNfZGVmZXJy
ZWRfZGVjb21taXRfbG9nLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNFOTI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZENDhCM0UyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc190cnlfYWxsb2NhdGVfY29t
bW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQwMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjJDMjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfcmFuZ2VfbG9ja2VkX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
OUExRDI3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9wYWdlX2dyYW51bGVfdXNlX2Nv
dW50X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMTQyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19oZWFwX3JlZl9wcmVmaXguaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTlBMzk0MjY2N0Yw
MEUwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTMx
ODBGMjJDOTUyOTQwMDNGN0I2QSAvKiBwYXNfZm91bmRfaW5kZXguaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGRTdFRTJEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2xvd19wYXRoX21vZGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGODc5MkIzMjM4QTFEMEMwMEFFRTdGMSAvKiBwYXNfaGVhcF9yZWZf
a2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1QjYwODQyMzVFNTcyMDAwQ0FFNjI5IC8qIHBh
c19ib290c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0
OEI1ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0cy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFN0VFNTYyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZDODQ3OTUyMzJENjk0OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9z
aGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkz
MjY5MjJGM0IzRjMwMEZCQTcxMyAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJp
bmdfY2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjZGMjNDQkQxOUQwMEY0MERCQiAv
KiBwYXNfaGVhcF9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VERkQyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19zaW1wbGVfdHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYw
ODNGNUEyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxz
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzI5QTI0MjNGMTEzMkIwMEExMzNDNCAv
KiBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFN0VFN0YyMkExQTU4MDAwNEY0MTY2IC8qIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY1QjgzQkMyNDkxODg4QTAwRjQxMDUyIC8qIHBhc19kZXNpZ25h
dGVkX2ludHJpbnNpY19oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjY4MTI3MDIyQkQ0MTlF
MDAzNkEwMkIgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZF
N0VFMDMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19iaXRmaWVsZF92ZWN0b3IuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRTdFRTExMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY2QjIzQ0JEMTlEMDBGNDBE
QkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0ci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZGOEQ2MjkyMkMxNjZGNTAwRUM3MkZFIC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQjY2NjUyMzFCMkE1NzAw
OUMwMDFCIC8qIHBhc19oZWFwX3N1bW1hcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDA1
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjVCODNCRjI0OTE4OTlFMDBGNDEwNTIgLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5RTk0NjcyMzQ2NjBENDAwOUZBRkREIC8q
IHBhc19keWxkX3N0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVBNDVDMjIzNkNFODlEMDBC
NUEzNzUgLyogcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjMyOUEyRDIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX2ZvcmNlZF9p
bnRvX3Jlc2VydmVkX21lbW9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMjlBMkUyM0YxRDYz
NjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF93aXRoX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjRGNjFCMTI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFibGVfcGFn
ZV9tYWxsb2MuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MUI1MjVBM0QwQkIwMDhCNEE4MiAv
KiBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjE3
ODI1OUQxMDY1MDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNEY2MUFFMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2lu
aXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxMTEy
NTk3RjgxRTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGNEY2MTJEMjU5OTA4NzcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX3NlZ3Jl
Z2F0ZWRfaGVhcHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MUIzMjVBM0QwQkIwMDhCNEE4
MiAvKiBwYXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRTdFRTMxMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU2NjIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2Rl
YWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDI5MjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfcGFnZV9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkRCQjA3MzIyQjg3NUE2MDA2
QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZENDhCNDUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NEUyM0NBQkE2NTAwRjQwREJCIC8qIHBhc19jb21w
YWN0X3RhZ2dlZF9hdG9taWNfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxRTIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4
QjU1MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkRCQjA3QjIyQkJGRjgzMDA2QkE1RkMgLyogcGFzX2FsbG9jYXRv
cl9jb3VudHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQzRFQzNEMjM0QTkxRTMwMEI3MTBBMyAv
KiBwYXNfc3RhdHVzX3JlcG9ydGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU3OTIyQTA0
OEJCMDA0RjQxNjYgLyogcGFzX3RyeV9yZWFsbG9jYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkU3RUUzQjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3plcm9fbW9kZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZDQ0QxNDEyNjU1RTZFNzAwMTcxQTFGIC8qIHBhc19jb21wYWN0X2F0b21pY19lbnVt
ZXJhYmxlX3JhbmdlX2xpc3RfY2h1bmtfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUz
MjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NucHJpbnRmLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjMxQTY0MDIzRENGODQ4MDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVfcHRy
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUwMjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Fs
bG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkZGRDUxNTI1NkIwRkJEMDAx
RUI5NEMgLyogcGFzX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlB
MUQyMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcxRjI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfbm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRUIyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGNEY2MTA1MjU5N0FGODcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxODEyNTlFNzM0RjAwOEI0QTgyIC8qIHBhc19lbnVtZXJh
dG9yX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjExQzI1OTgzOEIxMDA4QjRB
ODIgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjE5MzI1
NDIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2Vwb2NoLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0
OEI1QjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9f
dGFibGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTBDMjI5NjAxNDIwMDRGNDE2NiAvKiBw
YXNfZXh0ZW5kZWRfZ2NkLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkYwOEY0NDIyQTYyN0MxMDAz
ODY1NzUgLyogcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjlBMUQwNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExRDE2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdh
cGFnZV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQxOTI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0ZF
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0LmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjlBMUNFNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfcGF0
aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkI1NzA2QjI2
N0QwM0NEMDA4MEZBOEIgLyogcGFzX2Zhc3RfdGxzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM0
RUMzRjIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2ZkX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY2RDU0N0YyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19maXJzdF9sZXZlbF90aW55X2xhcmdl
X21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNTEyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19mb3VuZF9iaXRfaW5kZXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTMxODBGMjJD
OTUyOTQwMDNGN0I2QSAvKiBwYXNfZm91bmRfaW5kZXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
OUExRDJDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEYxOTMyNTgyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19mcmVlX21vZGUuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRDQ4QjRFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnJlZV9yYW5n
ZV9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI1ODIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX2Z1bGxfYWxsb2NfYml0cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCM0EyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEZGMDhGM0EyMkE1QjQwMzAwMzg2NTc1IC8qIHBhc19nZW5lcmljX2xhcmdlX2ZyZWVf
aGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNjAyMjlFMTRGQTAwNEY0MTY2IC8qIHBh
c19nZXRfYWxsb2NhdGlvbl9zaXplLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUU2NDIyOUUx
NEZBMDA0RjQxNjYgLyogcGFzX2dldF9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQ0
RDI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX2dldF9vYmplY3Rfa2luZC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5QTFENEYyNTYzMDVCNDAwQzhEMTFCIC8qIHBhc19nZXRfcGFnZV9iYXNlLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjE1MThGRDIzNDQxRTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmpl
Y3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTEwMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
aGFzaHRhYmxlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUxNjIyOTYwMTQyMDA0RjQxNjYg
LyogcGFzX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTEyMjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDRDMjFEMjQ2MERC
NkYwMDFEMzFGMCAvKiBwYXNfaGVhcF9jb25maWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY2RDU2NkYyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjA5MjI2RTIyQjJEOTA5MDA3RDVEM0EgLyogcGFzX2hlYXBfY29u
ZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUwMDIyOTYwMTQyMDA0RjQxNjYg
LyogcGFzX2FsaWdubWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMUQyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMDgzRjVCMjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHNfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDMkZEMzgyMzc2MTUxMzAwNTNERDQxIC8qIHBh
c19oZWFwX2Zvcl9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjY5MjNCNkFFRDUw
MDI2QzQ2RCAvKiBwYXNfaGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjQ3QzMx
QjIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2hlYXBfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY0RjYxQjEyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9jLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUwOTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvYWxp
Z24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkzMjYzMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNf
cGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUxMzIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfbG9jay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2
REI4OEMyMzVFNTRBNjAwNjlDQURCIC8qIHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRTdFRTE1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9yZWYuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGODc5MkIzMjM4QTFEMEMwMEFFRTdGMSAvKiBwYXNfaGVhcF9y
ZWZfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMTQyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19oZWFwX3JlZl9wcmVmaXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzI5QTIzMjNGMTEz
MkIwMEExMzNDNCAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZFQjY2NjUyMzFCMkE1NzAwOUMwMDFCIC8qIHBhc19oZWFwX3N1bW1hcnkuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGNkQ1NDdFMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU0ODIyM0M1ODFDMTAwRjQwREJCIC8qIHBhc19oZWFw
X3RhYmxlX3N0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0NDIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX2ltbW9ydGFsX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjM3MjNB
OUFCQjMwMDI2QzQ2RCAvKiBwYXNfaW1tdXRhYmxlX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY1MTZFRTMyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRTdFRTFBMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkYwOEY0QTIyQTg0NDZC
MDAzODY1NzUgLyogcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRTdFRTFFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJlZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VFMUMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9mcmVlX2hl
YXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY2RDU0QjI0ODc2MEFGMDBGQzczNDcg
LyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY3ODA4OTMyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJy
ZWRfY29tbWl0X2xvZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2NkQ1NEMyNDg3NjBCNDAwRkM3
MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmaW5pdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY0RjYxNkQyNTlCRkY5MTAwOEI0QTgyIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19y
b290X2RhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNUU0ODM3MjNENjk2MEYwMDQ2REE1QyAv
KiBwYXNfcmFjZV90ZXN0X2hvb2tzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjA5MjI2QTIyQjA3
QzIxMDA3RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjZENTQ3OTIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX3RpbnlfbGFyZ2VfbWFwX2VudHJ5LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjlBMUQxNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9k
aXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNjAyM0E5QUJCMzAw
MjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkNCRDAzNDI2QURGOTI1MDBEMjZENjggLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZl
bmdlX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMkYyNTU5QkE3QTAwQzhEMTFC
IC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjZENTY0NzIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rf
cHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY2NDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFz
X2NvbXBhY3RfYXRvbWljX3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1QjYw
OTIyMzVFODhFRjAwQ0FFNjI5IC8qIHBhc19yZXNlcnZlZF9tZW1vcnlfcHJvdmlkZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNkQ1Njc5MjNDRDcwNTkwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90
YWdnZWRfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzNTIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjY2RDU0NjI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxw
ZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkYwMEQzODIzNzc2RDY1MDBDMjBBQzAgLyogcGFz
X2xhcmdlX2ZyZWVfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZGMDhGNDAyMkE1RjY1
NTAwMzg2NTc1IC8qIHBhc19sYXJnZV9mcmVlX3Zpc2l0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRTdFRTFGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfaGVhcC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEYxOTMyNjkyMkYzQjNGMzAwRkJBNzEzIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMjAyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9tYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQzRF
QzM5MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFj
a3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTBEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
dXRpbGl0eV9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNUEyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGQkQ2N0REMjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmln
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNGNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Jp
YXNpbmdfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDIxMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGREJCMDc5MjJCOTgwNTQwMDZCQTVGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyQzI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX2ZyZWVfZ3JhbnVsZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDNGMjU1QTUwRDYw
MEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2FuZF9jb25maWcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRjA4RjQ4MjJBNzYzRjEwMDM4NjU3NSAvKiBwYXNfbGFyZ2VfbWFwX2VudHJ5Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkNGQTQ5QTIzODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdl
X3NoYXJpbmdfcG9vbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDODQ3OTUyMzJENjk0OTAwQjM4
NkI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGNkQ1NDdBMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0
eV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEE4MDI5MjVFQzU4ODgwMDc5MEI0
QSAvKiBwYXNfbGluZV93b3JkX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMUE2NDQy
M0UzNTA5RTAwMkMwQ0EzIC8qIHBhc19saXN0X2RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZEQkIwNzUyMkI4NzVBNjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRDQ4QjNEMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfbG9jYWxfYWxs
b2NhdG9yX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkRCQjA3NzIyQjg3N0ZB
MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjg3MDBBQTI1QjBBOEMzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzNzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2ltbXV0YWJs
ZV92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDRGMjU2MzA1QjQwMEM4RDExQiAv
KiBwYXNfZ2V0X3BhZ2VfYmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU0ODIyM0M1ODFD
MTAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxlX3N0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjlBMUQ0RDI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX2dldF9vYmplY3Rfa2luZC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZFN0VFMTUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2M0EyM0M3OUQzNzAwRjQwREJCIC8qIHBhc19yYW5nZTE2
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcxMTI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjZENTY0QjIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3B0
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4QTgwMkEyNUVDNTg4ODAwNzkwQjRBIC8qIHBhc19s
b2NhbF9hbGxvY2F0b3JfbGluZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZEQkIwNzMyMkI4NzVB
NjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRTdFRTBFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9y
X3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMjEyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19sb2NrLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkVBNDVCRDIzNkNENUFDMDBCNUEzNzUg
LyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjhBODAwRDI1Q0Y2NEM5MDA3OTBCNEEgLyogcGFzX3RyaV9zdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY2RDU2NDgyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X2Jvb3Rz
dHJhcF9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MTgxMjU5RTczNEYwMDhC
NEE4MiAvKiBwYXNfZW51bWVyYXRvcl9pbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZF
NjcyQzcyNUMyMUY2NzAwNkY2MEEyIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lu
bGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGREJCMDc1MjJCODc1QTYwMDZCQTVGQyAvKiBw
YXNfbG9jYWxfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI1MTIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX2ZvdW5kX2JpdF9pbmRleC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4
NUVGREEyMkUyQkVDNzAwM0EzNjJCIC8qIHBhc19jb25maWdfcHJlZml4LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjlFOTQ1OTIzNDUyMjYyMDA5RkFGREQgLyogcGFzX2xvZy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEYwNEMyMUEyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19tYWdhemluZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEYwMzdBRjQyNUFFQTkxQTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVn
YXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTIyMjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDIyQ0ZDMjJD
QUYxNjQwMEIyMTg0MSAvKiBwYXNfbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4
QjM4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGMDkyMjZBMjJCMDdDMjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGOUExRDRDMjU1RjJDRDcwMEM4RDExQiAvKiBwYXNfb2JqZWN0
X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDA1MjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfcGFnZV9iYXNlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQwQzI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjZE
MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgxMDMyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJp
dF9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU0ODAyM0M1NzNFMTAwRjQw
REJCIC8qIHBhc19zbWFsbF9sYXJnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
OUExRDQzMjU1QUY3MzIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ19pbmxpbmVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjQ3QzMxQjIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2hlYXBf
a2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3ODA4OTIyMkZBNTM0MTAwRjM3NDUxIC8qIHBh
c19hbGxvY2F0aW9uX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMjgyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRDQ4QjU0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhBODA2NTI1RUVDQzFEMDA3OTBCNEEg
LyogYm1hbGxvY19oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTM4MjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbGl0eV9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjlBMUQzOTI1NUE0NDczMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYml0Zml0X3ZpZXdfcHRyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjE0ODcyMTI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY5QTFEM0QyNTVBNEJBNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNDQyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19pbW1vcnRhbF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhBODA2OTI1RUVD
QzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY2RDU2NDkyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19wdHIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGOUExRDFGMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNl
X2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRjcyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGOUExQ0Y4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MUI3MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfcmFu
Z2VfYmVnaW5fbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkzMjZDMjJGNzNFODUw
MEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQxMjI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGOUExRDI1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3Vu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19w
YWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMkQy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5QTFEMjkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2tpbmQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRTdFRTI3MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfcGFnZV9tYWxsb2Mu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDI0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFn
ZV9zaGFyaW5nX21vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMTkzMjYzMjJGMTE5M0QwMEZC
QTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjE5MzI2MDIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQyMkNGRjIyQ0MwMUQzMDBCMjE4NDEgLyog
cGFzX3BhZ2Vfc2hhcmluZ19wb29sLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkYyNDhGQTIyRkM5
RURCMDA3NzIwMkUgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjE0ODcxNTI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjAwRDM4
MjM3NzZENjUwMEMyMEFDMCAvKiBwYXNfbGFyZ2VfZnJlZV9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkQ0OEIzQzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X2hhbmRsZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQzMTI1NTlCQjVEMDBD
OEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9oZWFwX3B0ci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZBNUU0NTgyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTIxMjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfbG9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMDQyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkQ0OEI0RTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2ZyZWVfcmFuZ2Vfa2luZC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZFN0VFMzUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4MTA2MjVGNkE3OTUwMDc5MEI0QSAvKiBo
b3RiaXRfaGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjc4MDg5MDIyRkE1MzQx
MDBGMzc0NTEgLyogcGFzX3JhbmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjIx
NTBFQjI0ODRCQjJBMDAwRDYzNEIgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY5QTFEMTgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZENDhCM0IyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGODcwMEE4MjVCMEE4QzIwMDBFMUFC
RiAvKiB0aGluZ3lfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NzIyM0NCRDE5RDAw
RjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3ZpZXcuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGNTI5RERGMjQ1NTQ2MEMwMDM4NUE4QyAvKiBpc29faGVhcF9yZWYuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNEY2MUNBMjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9y
ZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkzMjUzMjJFRDA0
QTYwMEZCQTcxMyAvKiBwYXNfY29tbWl0X21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjA4
RjQ0MjJBNjI3QzEwMDM4NjU3NSAvKiBwYXNfZmFzdF9sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGOUExRDQxMjU1QUYyNzkwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXdf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMzcyNTVBNDQ3MzAwQzhEMTFCIC8q
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNkQ1NDdCMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5
bmNocm9uaXphdGlvbl9zdHlsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3ODA4ODcyMkZBMkU0
OTAwRjM3NDUxIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRTdFRTI5MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfcHJpbWl0aXZlX2hlYXBf
cmVmLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X3Byb21vdGVfaW50cmluc2ljX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEY2MTVCMjU5
QkY2RUMwMDhCNEE4MiAvKiBwYXNfcHRyX2hhc2hfbWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjRGNjE0NzI1OUJCMTA5MDA4QjRBODIgLyogcGFzX3B0cl9oYXNoX3NldC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY0RjYxQjAyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19wdHJfbWluX2hlYXAuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGNEY2MTUyMjU5QkMzMzMwMDhCNEE4MiAvKiBwYXNfcHRyX3dv
cmtsaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjVFNDgzNzIzRDY5NjBGMDA0NkRBNUMgLyog
cGFzX3JhY2VfdGVzdF9ob29rcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNEEyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19yYW5kb20uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMTkzMjU5MjJF
RDA0QTYwMEZCQTcxMyAvKiBwYXNfcmFuZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjNB
MjNDNzlEMzcwMEY0MERCQiAvKiBwYXNfcmFuZ2UxNi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0
RjYxQjcyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19yYW5nZV9iZWdpbl9taW5faGVhcC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZENDhCMkMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19yYW5nZV9sb2Nr
ZWRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3ODA4OTAyMkZBNTM0MTAwRjM3NDUxIC8q
IHBhc19yYW5nZV9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFN0YyMkExQTU4
MDAwNEY0MTY2IC8qIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY5QTFDRjQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZENDhCNjUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkYwOEYzQTIyQTVCNDAz
MDAzODY1NzUgLyogcGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjZENTY2NzIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9z
aGFyZWRfcGFnZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMxQTY2NjIz
RThBOTQyMDAyQzBDQTMgLyogcGFzX2NhcnRlc2lhbl90cmVlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjY2RDU0OTI0ODc2MEE4MDBGQzczNDcgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkJENjdGMjI1QkUw
Nzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGRTdFRTdEMjJBMUEzMUMwMDRGNDE2NiAvKiBwYXNfcmVhbGxvY2F0ZV9oZWFwX3RlbGVw
b3J0X3J1bGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGREJCMDc3MjJCODc3RkEwMDZCQTVGQyAv
KiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4
QjU3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rv
cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDNDMjU1QTRCQTYwMEM4RDExQiAvKiBwYXNf
Y29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEYzMjlBMjEyM0YxMTMyQTAwQTEzM0M0IC8qIHBhc19iYXNpY19oZWFwX3J1bnRp
bWVfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUyRjIyOTYwMTQyMDA0RjQxNjYg
LyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRjkyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19wcm9tb3RlX2ludHJpbnNpY19oZWFwLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkQ0OEIzODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX21vbm90b25pY190aW1lLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjMyOUEyRDIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3Vy
ZV9oZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21lbW9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYzMjlBMjIyM0YxMTMyQjAwQTEzM0M0IC8qIHBhc19iYXNpY19oZWFwX3BhZ2VfY2FjaGVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjMxQTY0NjIzRTRDNDQxMDAyQzBDQTMgLyogcGFzX2NvbXBh
Y3Rfc2tpcF9saXN0X25vZGVfcHRyX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQTQ1QkQy
MzZDRDVBQzAwQjVBMzc1IC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMUE2NkEyM0U4RTU5NDAwMkMwQ0EzIC8qIHBhc190cmVl
X2RpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCM0QyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGMTQ4NzEyMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY0N0MzMUEyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9u
X2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjA4RjMzMjJBNThGMTIwMDM4NjU3NSAvKiBw
YXNfcmVkX2JsYWNrX3RyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTAxMjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfYWxsX2hlYXBzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkE1RTQ1NzI0
OTJENUJBMDBDRTk2MkEgLyogcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY1QjYwOTIyMzVFODhFRjAwQ0FFNjI5IC8qIHBhc19yZXNlcnZl
ZF9tZW1vcnlfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MEZCMjU5NzlCQzgw
MDhCNEE4MiAvKiBwYXNfcm9vdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxOTMyNkMyMkY3M0U4
NTAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNjgxMjcy
MjJCRDRCRjQwMDM2QTAyQiAvKiBwYXNfc2VnbWVudGVkX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYwNEMyMTQyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIxRTI0NjBEQjZGMDAxRDMxRjAg
LyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0
OEI1NjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkQ0OEI0NzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTA4RDUzMjU4
RUNGRDMwMDE1MUVEOCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVf
a2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCMzMyM0E5QUJCMzAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhB
ODA2NzI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjQ1RDVBOTI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkJENjdGMTI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2
NGtfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMUMyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEI1
RDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRDQ4QjQxMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFNjcyQjcyNUMyMUQ1MzAw
NkY2MEEyIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGMDRDMjE5MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMy
MTYyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMjEyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkU3RUUyRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEYwMzdBRjQyNUFFQTkxQTAwNzlCNTgyIC8qIHBhc19tZWRpdW1f
bWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNjZENTQ1MjQ4NzYwQTgwMEZD
NzM0NyAvKiBwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFN0VFM0EyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlscy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZFN0VFNjEyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVf
aW50cmluc2ljX3ByaW1pdGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMEMyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjU5QTM5ODI2NjgzMTc0MDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxMTEyNTk3RjgxRTAwOEI0QTgyIC8qIHBhc19lbnVtZXJh
dGVfbGFyZ2VfaGVhcHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTM0MjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEYxNDg3MTAyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlv
bl9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU2MjIyOUUxNEZBMDA0RjQxNjYgLyog
cGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMjkyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19wcmltaXRpdmVfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGMTkzMjU0MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGOEE4MDZBMjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfcmVmLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjlBMUQwMzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9w
YWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY3NzIzQ0MxNDFFMDBGNDBEQkIgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9oZWFwX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMUE2
M0UyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNzgwODhFMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5nZV9taW5faGVhcC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMzkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGls
c19wcmVmaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjJCMjNBOUFCQjMwMDI2QzQ2RCAv
KiBwYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdF
RTJFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9raW5kLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUzMTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEM0YyNTVBNTBENjAwQzhEMTFC
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY5N0U2MkUyMkE5QTg1RjAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRkRCQjA3OTIyQjk4MDU0MDA2QkE1RkMgLyogcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZGOEQ2Mjcy
MkMwNEE3NzAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMTEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDkyMjZDMjJCMkQ4
OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEYwODNGNUEyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0VCMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkM0RUM3OTIzNTE3MDdCMDBCNzEwQTMgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9lbXB0aW5lc3Nfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZGOEQ2MjkyMkMx
NjZGNTAwRUM3MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZENDhCMzUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNjUyM0E5QUJCMzAwMjZDNDZEIC8q
IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkQ0OEI1NTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRs
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCM0MyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZE
NDhCNTcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNjAyM0E5QUJCMzAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjVFNUNGMjIz
QkZCRkI5MDBBQTBCNkYgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNjQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI1NDIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZENDhCNDkyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVk
X3ZpZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTY3MkM3MjVDMjFGNjcwMDZGNjBBMiAvKiBw
YXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjA0QzIyMjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0RjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNFOTI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY5QTFEMjYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zaGFyZWRfaGFuZGxl
X29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxOEU2M0Uy
NjI4QkZCNzAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY3ODA4ODcyMkZBMkU0OTAwRjM3NDUxIC8qIHBhc19waHlzaWNh
bF9tZW1vcnlfdHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MEZCMjU5NzlC
QzgwMDhCNEE4MiAvKiBwYXNfcm9vdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0N0MzMUYyMzM5
NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY5QTFENEMyNTVGMkNENzAwQzhEMTFCIC8qIHBhc19vYmplY3Rfa2luZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY2RDU2NjIyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Vu
c2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDNEVDM0MyMzRBOTFFMzAwQjcxMEEz
IC8qIHBhc19zdHJpbmdfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkI1NzA2QjI2N0Qw
M0NEMDA4MEZBOEIgLyogcGFzX2Zhc3RfdGxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTY0
QzIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfaGVscGVycy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZGMDhGM0QyMkE1REM2OTAwMzg2NTc1IC8qIHBhc19zaW1wbGVfbGFy
Z2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RURGRDIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3NpbXBsZV90eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxNjIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkzMjYwMjJG
MTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGMDRDMjI1MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9h
dG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNG
ODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkU3RUUyMjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI2MjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2FsbF9z
aGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxMUMyNTk4
MzhCMTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yX3JlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZENDhCNjkyM0I2QUVENTAwMjZDNDZEIC8qIHBhc19oZWFwX2lubGluZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNDVENUFCMjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNFNjI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY5QTFDRkEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdf
a2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxNTE4RkQyMzQ0MUUzMjAwODMyQjVDIC8qIHBh
c19oYXNfb2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUwRTIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NkQ1NDdFMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZENDhCM0EyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19mdWxsX2FsbG9jX2JpdHNfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFNjMyMjlFMTRGQTAwNEY0MTY2IC8qIHBh
c190cnlfYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4MTA1MjVGNkE3OTUwMDc5
MEI0QSAvKiBob3RiaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMTIyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhC
NjQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkJENjdEQzI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9o
ZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjk5Rjk4QzI1Q0IyQ0U4MDBFRUU0NDkgLyogcGFz
X3NpemVfdGh1bmsuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzFBNjNFMjNEQ0Y4MDQwMDJDMENB
MyAvKiBwYXNfc2tpcF9saXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU2MDIyOUUxNEZB
MDA0RjQxNjYgLyogcGFzX2dldF9hbGxvY2F0aW9uX3NpemUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGMDkyMjZFMjJCMkQ5MDkwMDdENUQzQSAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGMTkzMjU4MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZnJlZV9tb2Rl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkYwOEY0MDIyQTVGNjU1MDAzODY1NzUgLyogcGFzX2xh
cmdlX2ZyZWVfdmlzaXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1RTVDRUYyM0JFRjM2MDAw
QUEwQjZGIC8qIGlzb190ZXN0X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3
RUUxRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2hlYXAuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGOUExQ0U3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X21heF9mcmVlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjA0QzIxRDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2hlYXBfY29u
ZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2MUI1MjVBM0QwQkIwMDhCNEE4
MiAvKiBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3
RUUwODIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2NhcmVzX2Fib3V0X3NpemVfbW9kZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEYzMjlBMjMyM0YxMTMyQjAwQTEzM0M0IC8qIHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjY2RDU0QzI0ODc2MEI0MDBGQzczNDcg
LyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZpbml0aW9ucy5kZWYgaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjlBMUQwMTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGNEY2MTc4MjU5RDEwNjUwMDhCNEE4MiAvKiBwYXNfZW51bWVy
YXRlX2JpdGZpdF9oZWFwcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NjgyM0NCRDE5RDAw
RjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBfcmVzZXJ2YXRpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNzgwODg0MjJGQTIyRDIwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5nZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY1NzA5MUEyNTZBQjQxNzAwMDM3QkIzIC8qIHBhc19iaXRmaXRfcGFn
ZV9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDMkZEMzgyMzc2
MTUxMzAwNTNERDQxIC8qIHBhc19oZWFwX2Zvcl9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNkQ1NjcwMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9oZWFwX3B0ci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY0RjYxQzAyNUE0Q0IwOTAwOEI0QTgyIC8qIHBhc19jb21wYWN0X2Nh
cnRlc2lhbl90cmVlX25vZGVfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjUxNkVFNzI0NTYx
QTYwMDA0RTJCOEQgLyogaXNvX2hlYXBfaW5uYXJkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYx
OEU2M0UyNjI4QkZCNzAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFENDUyNTVEQkU2MTAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfdmlld19hbmRfaW5kZXguaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMDkyMjZDMjJCMkQ4
OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEYzMUE2NDQyM0UzNTA5RTAwMkMwQ0EzIC8qIHBhc19saXN0X2RpcmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2QjQ3RkUyMzMxNUFFNTAwMkE1RTBDIC8qIHBhc19h
bGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE5MzI1OTIy
RUQwNEE2MDBGQkE3MTMgLyogcGFzX3JhbmdlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUy
NzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3BhZ2VfbWFsbG9jLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkQ0OEIzMzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lu
bGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0Y1MUJGMjMxNTlFQzAwMDc1NTJBRSAvKiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjU2
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGMzFBNjNDMjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0X2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTJEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
c2xvd19wYXRoX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjRGMjNBOUFCQjMwMDI2
QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
OUExRDM2MjU1QTQ0NzMwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdf
cHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI0QTIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3JhbmRvbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU0N0YyM0M1NzNFMTAwRjQwREJCIC8q
IHBhc19maXJzdF9sZXZlbF90aW55X2xhcmdlX21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY5QTFEMTYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2tpbmQuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGQkM2MkMzMjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdf
c3BlY3RydW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTJDMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfc2xvd19wYXRoX21vZGVfcHJlZml4LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTQ4
MDIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX3NtYWxsX2xhcmdlX21hcF9lbnRyeS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VFMzIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zbnByaW50Zi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZDNEVDM0QyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19zdGF0dXNf
cmVwb3J0ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTMzMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM0RUMzQzIzNEE5MUUzMDBCNzEw
QTMgLyogcGFzX3N0cmluZ19zdHJlYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDBFMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
OUExQ0UzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRTdFRTM1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUzNDIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQTVF
NDU4MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjdGNTFCRjIzMTU5RUMwMDA3NTUyQUUgLyogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9ub2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTQ3OTIzQzU3
M0UxMDBGNDBEQkIgLyogcGFzX3RpbnlfbGFyZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjMxQTY2QTIzRThFNTk0MDAyQzBDQTMgLyogcGFzX3RyZWVfZGlyZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjhBODAwRDI1Q0Y2NEM5MDA3OTBCNEEgLyogcGFzX3RyaV9zdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNjMyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190
cnlfYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTYyMjI5RTE0RkEwMDRGNDE2
NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIz
RTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24uaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGRTdFRTYxMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX2lu
dHJpbnNpY19wcmltaXRpdmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTY1MjI5RTE0RkEw
MDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZFN0VFNzkyMkEwNDhCQjAwNEY0MTY2IC8qIHBhc190cnlfcmVhbGxvY2F0ZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY1OUEzOTYyNjY3RjAwRTAwQTM4NjU3IC8qIHBhc190cnlfc2hyaW5r
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU2NzJCNzI1QzIxRDUzMDA2RjYwQTIgLyogcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZG
MDhGM0QyMkE1REM2OTAwMzg2NTc1IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjU5QTM5NTI2NjdGMDBFMDBBMzg2NTcgLyogcGFzX2FsbF9oZWFw
X2NvbmZpZ3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4MTAyMjVGNkE3OTUwMDc5MEI0QSAv
KiBob3RiaXRfaGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkYyNDhGQTIyRkM5
RURCMDA3NzIwMkUgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkU3RUUwQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEYxNDg3MTMyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlB
MUQyNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjRGNjE1MjI1OUJDMzMzMDA4QjRBODIgLyogcGFzX3B0cl93b3JrbGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMzcyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190eXBl
ZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMzgyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdF
RTBEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZFN0VFMDUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19ib290c3RyYXBfZnJl
ZV9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlFOTQ2NzIzNDY2MEQ0MDA5RkFGREQgLyog
cGFzX2R5bGRfc3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjhENjI3MjJDMDRBNzcwMEVD
NzJGRSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZiBpbiBIZWFkZXJzICov
LAorCQkJCTBGRDIyQ0ZGMjJDQzAxRDMwMEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NDdBMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfbGFy
Z2VfdXRpbGl0eV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzI5QTJFMjNGMUQ2
MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBfd2l0aF9wYWdlX2NhY2hlcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY1OUEzOTYyNjY3RjAwRTAwQTM4NjU3IC8qIHBhc190cnlfc2hyaW5rLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjFCMzI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1l
cmF0ZV91bmFjY291bnRlZF9wYWdlc19hc19tZXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjY2
RDU0QjI0ODc2MEFGMDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMu
ZGVmIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2REI4OEMyMzVFNTRBNjAwNjlDQURCIC8qIHBhc19o
ZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTlBMzkzMjY2N0YwMEUw
MEEzODY1NyAvKiBqaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgwMjkyNUVDNTg4
ODAwNzkwQjRBIC8qIHBhc19saW5lX3dvcmRfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjMyOUEyQjIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2Fj
aGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNFRDI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjlBMUQ0ODI1NUUyODQyMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGly
ZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZBNUU0NUEyNDkyRDVCQTAwQ0U5NjJB
IC8qIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGOUExQ0ZFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9w
YXRoX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI0OTIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZFN0VFNzcyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjUwOEQ1MzI1OEVDRkQzMDAxNTFFRDggLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Zp
cnN0X2VsaWdpYmxlX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTBCMjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0Yx
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGOTdFNjJFMjJBOUE4NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDNEVDNzkyMzUxNzA3QjAw
QjcxMEEzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfZW1wdGluZXNzX2tpbmQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGOEE4MDZCMjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5uYXJk
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMjUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19w
YWdlX2dyYW51bGVfdXNlX2NvdW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQxRTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRf
cHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI0MTIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNUU1Q0VF
MjNCRUYzNjAwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjY4MTI3MjIyQkQ0QkY0MDAzNkEwMkIgLyogcGFzX3NlZ21lbnRlZF92ZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGNEY2MTY0MjU5QkZCODUwMDhCNEE4MiAvKiBwYXNfYmFzaWNfaGVhcF9j
b25maWdfZW51bWVyYXRvcl9kYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUyMDIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX21hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1NzA5
MTgyNTZBQjIxMTAwMDM3QkIzIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZENDhCMkQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc191dGlsaXR5
X2hlYXBfc3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFM0EyMjk2MDE0MjAwNEY0
MTY2IC8qIHBhc191dGlscy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMzkyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc191dGlsc19wcmVmaXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNjgxMjcw
MjJCRDQxOUUwMDM2QTAyQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjc4MDg4NDIyRkEyMkQyMDBGMzc0NTEgLyogcGFzX3ZpcnR1YWxfcmFuZ2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGNzgwODhFMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9y
YW5nZV9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFM0IyMjk2MDE0MjAwNEY0
MTY2IC8qIHBhc196ZXJvX21vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGODcwMEE4MjVCMEE4
QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4NzAwQUEy
NUIwQThDMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY4NzAwQTYyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX3ByZWZpeC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY5QTFEMTkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2Fw
YWdlX3RhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjM3M0U1MjI2NTlFQTVFMDAzNEJBOTYg
LyogcGFzX2RlYnVnX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDE3MjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRDQ4QjQ3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfYml0X3JlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjIwLDMxICsyNTQ2LDMwIEBA
CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQkwRkRFQTQ2MTIyOEI2NTFCMDA4NUUzNDAgLyog
Qml0ZmllbGRWZWN0b3JUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkM2ODFFRDIxMTI3
QTE5MDAzQzZBMTMgLyogVGVzdEhhcm5lc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZGMDhG
MzYyMkE1OURCMzAwMzg2NTc1IC8qIFJlZEJsYWNrVHJlZVRlc3RzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTBGQzY4MjM4MjEyOUQ0RUUwMDNDNkExMyAvKiBDb2FsaWduVGVzdHMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY1MTkzRTcyNjZBRTVENDAwNDgzQTJDIC8qIEpJVEhlYXBUZXN0cy5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjg3MDBDMjI1QjBCMjZBMDAwRTFBQkYgLyogVGhpbmd5
QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1
QjYwOTQyMzVFOTE5OTAwQ0FFNjI5IC8qIElzb0hlYXBSZXNlcnZlZE1lbW9yeVRlc3RzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTBGRUI2NjY4MjMxQzg3QkMwMDlDMDAxQiAvKiBMYXJnZVNoYXJp
bmdQb29sRHVtcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjUzMTgxMTIyQzk1NEVEMDAzRjdC
NkEgLyogQml0dmVjdG9yVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYzMUE2NjgyM0U4
QjMzNjAwMkMwQ0EzIC8qIENhcnRlc2lhblRyZWVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkM2ODIzODIxMjlENEVFMDAzQzZBMTMgLyogQ29hbGlnblRlc3RzLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGQzY4MjMxMjEyOUNCNDYwMDNDNkExMyAvKiBFeHRlbmRlZEdDRFRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGQzY4MjE1MjEyNDhBNzkwMDNDNkExMyAvKiBIYXNodGFi
bGVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVBNDVDNTIzNkUxMEFBMDBCNUEzNzUg
LyogSXNvRHluYW1pY1ByaW1pdGl2ZUhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkw
RjMxQTY0MjIzREQ0RTAyMDAyQzBDQTMgLyogU2tpcExpc3RUZXN0cy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkExODU0NjIzNkIzQzgyMDAzNjA5QUQgLyogSXNvSGVhcENoYW9zVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZGMjQ4RkQyMzBDQzRDQjAwNzcyMDJFIC8qIElzb0hlYXBQ
YWdlU2hhcmluZ1Rlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRUE0NUM1MjM2RTEwQUEw
MEI1QTM3NSAvKiBJc29EeW5hbWljUHJpbWl0aXZlSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTBGNUU0ODNBMjNENjlGNjEwMDQ2REE1QyAvKiBSYWNlVGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEY4NzAwRjUyNUIxNEM4QjAwMEUxQUJGIC8qIFRTRFRlc3RzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGRDQ4QjY3MjNCNTg5OTEwMDI2QzQ2RCAvKiBJc29IZWFwUGFydGlh
bEFuZEJhc2VsaW5lVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1QjYwOTQyMzVFOTE5
OTAwQ0FFNjI5IC8qIElzb0hlYXBSZXNlcnZlZE1lbW9yeVRlc3RzLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTBGNTA4RDVDMjU4RURDQTcwMDE1MUVEOCAvKiBJc29IZWFwVGFibGluZ1Rlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTBGNTE5M0U3MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFw
VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNjQxOTEyMTM3NDVGQTAwNDBDRTVFIC8q
IExhcmdlRnJlZUhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkVCNjY2ODIzMUM4
N0JDMDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9vbER1bXAuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEZFQjY2NkEyMzFEQTg2RjAwOUMwMDFCIC8qIExhcmdlU2hhcmluZ1Bvb2xUZXN0cy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkwRjMxQTY2ODIzRThCMzM2MDAyQzBDQTMgLyogQ2FydGVzaWFu
VHJlZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGRjI0OEZEMjMwQ0M0Q0IwMDc3MjAy
RSAvKiBJc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkRF
QTQ2MTIyOEI2NTFCMDA4NUUzNDAgLyogQml0ZmllbGRWZWN0b3JUZXN0cy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkVBNDVCRjIzNkNEQUVEMDBCNUEzNzUgLyogTG9ja0ZyZWVSZWFkUHRyUHRy
SGFzaHRhYmxlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEMjJEMDgyMkNEOEE3NTAw
QjIxODQxIC8qIE1pbkhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjVFNDgzQTIz
RDY5RjYxMDA0NkRBNUMgLyogUmFjZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRjA4
RjM2MjJBNTlEQjMwMDM4NjU3NSAvKiBSZWRCbGFja1RyZWVUZXN0cy5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQkwRjMxQTY0MjIzREQ0RTAyMDAyQzBDQTMgLyogU2tpcExpc3RUZXN0cy5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkwRkM2ODFFRDIxMTI3QTE5MDAzQzZBMTMgLyogVGVzdEhhcm5lc3Mu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4NzAwQzIyNUIwQjI2QTAwMEUxQUJGIC8qIFRoaW5n
eUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBG
ODcwMEY1MjVCMTRDOEIwMDBFMUFCRiAvKiBUU0RUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkVCNjY2QTIzMURBODZGMDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9vbFRlc3RzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTBGQzY4MjE1MjEyNDhBNzkwMDNDNkExMyAvKiBIYXNodGFibGVU
ZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjUzMTgxMzIyQzk2MDlEMDAzRjdCNkEgLyog
VXRpbHNUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkM2NDE5MTIxMzc0NUZBMDA0MENF
NUUgLyogTGFyZ2VGcmVlSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQzY4MjMx
MjEyOUNCNDYwMDNDNkExMyAvKiBFeHRlbmRlZEdDRFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpA
QCAtMjY1MiwxNTEgKzI1NzcsMTQyIEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsK
IAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQkwRjhB
ODA2NjI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRjhBODA2ODI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY4QTgxMDQyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjhBODEwMTI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hl
YXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RUU3NjIyOUYwMTBGMDA0RjQxNjYg
LyogaXNvX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFRTU3MjI5NzQzMzUwMDRGNDE2
NiAvKiBpc29faGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNUU1Q0YwMjNCRUY1
NTMwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjVFNUNF
QzIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICov
LAotCQkJCTBGNTlBMzlFMjY2ODQ3MEUwMEEzODY1NyAvKiBqaXRfaGVhcC5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEY1OUEzOUIyNjY4NDRBMzAwQTM4NjU3IC8qIGppdF9oZWFwX2NvbmZpZy5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZFN0VERDUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190aHJlYWRf
bG9jYWxfY2FjaGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGQzRFQzM3MjM0QTkxRTMwMEI3MTBB
MyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYwRkEyNTk3
OUJDODAwOEI0QTgyIC8qIHBhc19yb290LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkJENjdEQTI1
QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RkJENjdEQjI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEZCRDY3RjMyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hl
YXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQkQ2N0YwMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdl
c2l6ZTY0a19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQjQyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19hbGlnbm1lbnQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDBB
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGRTdFREI1MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxsX2hlYXBzLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjFBRUNFODI2NTgxOTYxMDAwQzUyMTggLyogcGFzX2FsbF9t
YWdhemluZXMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjQ2MjNBOUFCQjMwMDI2QzQ2RCAv
KiBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RjQ3QzMxRTIzMzk2RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRjlBMUNFRjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2FsbG9jYXRp
b25fcmVzdWx0LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEI2MzIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCM0Yy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGNTlBMzlDMjY2ODQ0QTMwMEEzODY1NyAvKiBwYXNfYmFzaWNfaGVhcF9j
b25maWdfZW51bWVyYXRvcl9kYXRhLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQxMzI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRjlBMUQxMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGOUExQ0ZDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQwRDI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUEx
RDA5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGOUExRDJBMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2ds
b2JhbF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQxQzI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQxMTI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RjlBMUQxNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQyQjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUNFRTI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2JpdGZpdF92aWV3LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURCNjIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGNUI2MDgzMjM1RTU3MjAwMENBRTYyOSAvKiBwYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9w
cm92aWRlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQjkyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19jb2FsaWduLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUNGMDI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX2NvbW1pdF9zcGFuLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjZENTY0QTIzQ0FB
MUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYm9vdHN0cmFwX2ZyZWVfaGVhcC5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY2RDU2NkUyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBf
cmVzZXJ2YXRpb24uYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNjZENTQ3MjQ4NzYwQTgwMEZDNzM0
NyAvKiBwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEZDNEVDM0UyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2Jq
ZWN0X2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYzMjlBMkMyM0YxRDYzNjAwQTEz
M0M0IC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21l
bW9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VFNjcyMjlFMTRGQTAwNEY0MTY2IC8qIHBh
c19kZWFsbG9jYXRlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkJDNjJDMjI2NUYxMkEzMDA1QTU3
MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RUREMTIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEY3ODA4OUEyMkZBNkYwODAwRjM3NDUxIC8qIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cu
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGNUI4M0JEMjQ5MTg4OEEwMEY0MTA1MiAvKiBwYXNfZGVz
aWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5RTk0NjYyMzQ2
NjBENDAwOUZBRkREIC8qIHBhc19keWxkX3N0YXRlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkVB
NDVDMzIzNkNFODlEMDBCNUEzNzUgLyogcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjMyOUEzMDIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3Vy
ZV9oZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21lbW9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEYzMjlBMkYyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF93aXRoX3BhZ2VfY2Fj
aGVzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjRGNjFCNjI1QTNEMEJCMDA4QjRBODIgLyogcGFz
X2VudW1lcmFibGVfcGFnZV9tYWxsb2MuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MUI0MjVB
M0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0LmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRjRGNjE3NzI1OUQxMDY1MDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9iaXRmaXRf
aGVhcHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MUIyMjVBM0QwQkIwMDhCNEE4MiAvKiBw
YXNfZW51bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY0RjYxMTAyNTk3RjgxRTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVh
cHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MTJFMjU5OTA4NzcwMDhCNEE4MiAvKiBwYXNf
ZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MUFG
MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21l
dGEuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MTA2MjU5N0FGODcwMDhCNEE4MiAvKiBwYXNf
ZW51bWVyYXRvci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY0RjYxMUIyNTk4MzhCMTAwOEI0QTgy
IC8qIHBhc19lbnVtZXJhdG9yX3JlZ2lvbi5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYxOTMyNTYy
MkVEMDRBNjAwRkJBNzEzIC8qIHBhc19lcG9jaC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhC
MzQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3Rh
YmxlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RURCQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X2V4dGVuZGVkX2djZC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZGMDhGNDMyMkE2MjdDMTAwMzg2
NTc1IC8qIHBhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5
QTFDRjIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEY0N0MzMUUyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2Nh
bGxiYWNrcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQTQ1QkMyMzZDRDVBQzAwQjVBMzc1IC8q
IHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEYxNDg3MTQyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMg
aW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjE3NzI1OUQxMDY1MDA4QjRBODIgLyogcGFzX2VudW1l
cmF0ZV9iaXRmaXRfaGVhcHMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjNGMjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmMgaW4gU291cmNlcyAqLywK
IAkJCQkwRjlBMUNFQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUu
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDQ5MjU1RTI4NDIwMEM4RDExQiAvKiBwYXNfZmFz
dF9tZWdhcGFnZV90YWJsZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNEVDMzgyMzRBOTFFMzAw
QjcxMEEzIC8qIHBhc19mZF9zdHJlYW0uYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDAwMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFudWxlcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEZFN0VEQzAyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRjFCRkQ0NDI2NjQ1N0YxMDBDRUMyOEQgLyogcGFzX2hlYXBfY29uZmlnLmMgaW4gU291cmNl
cyAqLywKLQkJCQkwRjZENTY2NjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2hlYXBfY29uZmlnX2tp
bmQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREJEMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
aGVhcF9jb25maWdfdXRpbHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQzJGRDM5MjM3NjE1MTMw
MDUzREQ0MSAvKiBwYXNfaGVhcF9mb3JfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3
RURCRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfbG9jay5jIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEZFN0VEQkYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZi5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEZDNEVDM0EyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19oZWFwX3N1bW1hcnkuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGNkQ1NDdDMjNDNTczRTEwMEY0MERCQiAvKiBwYXNfaGVhcF90
YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYxNDg3MjAyNjlGNUZDQTAwNjg4N0E5IC8qIHBh
c19sb2NhbF92aWV3X2NhY2hlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RUU3NjIyOUYwMTBG
MDA0RjQxNjYgLyogaXNvX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExRDFDMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4
QjM5MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY3ODA4OEYyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVm
ZXJyZWRfY29tbWl0X2xvZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2NkQ1NEEyNDg3NjBBODAw
RkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5jIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEZFN0VEQzYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9oZWFwLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRkJENjdGMDI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcF9j
b25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjUyMjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCMzYy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGRDIyRDAwMjJDQzAxRDMwMEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGOEE4MTAxMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVh
cF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MTUxMjU5QkMzMzMwMDhCNEE4MiAv
KiBwYXNfcHRyX3dvcmtsaXN0LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjE5MzI2ODIyRjNCM0Yz
MDBGQkE3MTMgLyogcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURDNzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdl
X21hcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDRkE0OUIyMzgzNTJFQzAwQ0NENzI2IC8qIHBh
c19sYXJnZV9zaGFyaW5nX3Bvb2wuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNkQ1NDdEMjNDNTcz
RTEwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICov
LAotCQkJCTBGREJCMDc0MjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjA0QzIxRjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2xvY2su
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGRUE0NUJDMjM2Q0Q1QUMwMEI1QTM3NSAvKiBwYXNfbG9j
a19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUU5
NDU4MjM0NTIyNjIwMDlGQUZERCAvKiBwYXNfbG9nLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjA0
QzIyNDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmMgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkU3RURCNDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsaWdubWVudC5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZENDhCNDgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF9oYW5kbGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRjI0OEY5MjJGQzlFREIwMDc3MjAyRSAv
KiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmMgaW4gU291cmNlcyAqLywKKwkJCQkw
RkM0RUMzQTIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2hlYXBfc3VtbWFyeS5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEZFN0VEQkQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX2NvbmZpZ191dGls
cy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQkYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19o
ZWFwX3JlZi5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1RTVDRjAyM0JFRjU1MzAwQUEwQjZGIC8q
IGlzb190ZXN0X2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjRDMjNBOUFCQjMwMDI2
QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRTdFREQ4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbHMuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGNUI4M0JEMjQ5MTg4OEEwMEY0MTA1MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNf
aGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDMkZEMzkyMzc2MTUxMzAwNTNERDQxIC8qIHBh
c19oZWFwX2Zvcl9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNkQ1NjY2MjNDQkQxOUQw
MEY0MERCQiAvKiBwYXNfaGVhcF9jb25maWdfa2luZC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZF
N0VEQzAyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkw
RjU5QTM5QjI2Njg0NEEzMDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRjMxQTYzRDIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdC5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEYwMzdBRjMyNUFFQTkxQTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVn
YXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREM3MjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfbGFyZ2VfbWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURCRTIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX2hlYXBfbG9jay5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYzMjlBMkMy
M0YxRDYzNjAwQTEzM0M0IC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRo
X3Jlc2VydmVkX21lbW9yeS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2RDU2NkUyM0NCRDE5RDAw
RjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBfcmVzZXJ2YXRpb24uYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGQTVFNDU5MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9j
YXRvcl9ub2RlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjZENTY0NjIzQ0FBMUJBMDBGNDBEQkIg
LyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfaGVscGVycy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY4
QTgxMDQyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJ
CQkwRjlBMUNGRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5jIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY0RjYxMDYyNTk3QUY4NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9y
LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjE5MzI2RDIyRjczRTg1MDBGQkE3MTMgLyogcGFzX3Nj
YXZlbmdlci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5RTk0NjYyMzQ2NjBENDAwOUZBRkREIC8q
IHBhc19keWxkX3N0YXRlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjY2RDU0NzI0ODc2MEE4MDBG
QzczNDcgLyogcGFzX2NvbXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGNUU0ODM4MjNENjk2MEYwMDQ2REE1QyAvKiBwYXNfcmFjZV90ZXN0X2hvb2tz
LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RUREMzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3N0
cmVhbS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY4NzAwQTkyNUIwQThDMzAwMEUxQUJGIC8qIHRo
aW5neV9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYxQUYyNUEzRDBCQjAw
OEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0YS5jIGluIFNv
dXJjZXMgKi8sCisJCQkJMEZFN0VFNTcyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZp
Zy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCNTMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RURDODIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkM0RUMzQjIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX3N0YXR1c19yZXBvcnRlci5jIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY0RjYxMTAyNTk3RjgxRTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVf
bGFyZ2VfaGVhcHMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNTlBMzlDMjY2ODQ0QTMwMEEzODY1
NyAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRkQ0OEI2MzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
ci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYwNEMyMUYyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19s
b2NrLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjQ1RDVBQTI2QUI3MzE0MDBDMzVEOTMgLyogcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZF
N0VEQzYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9oZWFwLmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRkYwOEY0MzIyQTYyN0MxMDAzODY1NzUgLyogcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFw
LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjVCNjA4MzIzNUU1NzIwMDBDQUU2MjkgLyogcGFzX2Jv
b3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjJF
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnku
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGODcwMEE3MjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lf
aGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNEIyM0E5QUJCMzAwMjZDNDZEIC8qIHBh
c19tb25vdG9uaWNfdGltZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFEMDYyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExQ0YyMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyBpbiBTb3VyY2VzICovLAog
CQkJCTBGRTdFRENCMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfcGFnZV9tYWxsb2MuYyBpbiBTb3Vy
Y2VzICovLAotCQkJCTBGMTkzMjYyMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQyMkQwMDIyQ0MwMUQzMDBCMjE4
NDEgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjRGNjFD
QjI1QTRDRDNCMDA4QjRBODIgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRkYyNDhGOTIyRkM5RURCMDA3NzIwMkUgLyogcGFzX3BoeXNp
Y2FsX21lbW9yeV90cmFuc2FjdGlvbi5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY3ODA4OEYyMkZB
NTM0MTAwRjM3NDUxIC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFDRjAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21t
aXRfc3Bhbi5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2NkQ1NEEyNDg3NjBBODAwRkM3MzQ3IC8q
IHBhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYxOEU2
M0YyNjI4QkZCNzAwRjY5MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMkIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfc2l6ZV9jbGFzcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VFNjcyMjlFMTRGQTAwNEY0
MTY2IC8qIHBhc19kZWFsbG9jYXRlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEIzNDIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGNTlBMzlFMjY2ODQ3MEUwMEEzODY1NyAvKiBqaXRfaGVhcC5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNEVDMzgyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19mZF9z
dHJlYW0uYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNkQ1NDdEMjNDNTczRTEwMEY0MERCQiAvKiBw
YXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFREND
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRjRGNjE1MTI1OUJDMzMzMDA4QjRBODIgLyogcGFzX3B0cl93b3JrbGlzdC5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEY1RTQ4MzgyM0Q2OTYwRjAwNDZEQTVDIC8qIHBhc19yYWNlX3Rl
c3RfaG9va3MuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjMwMjNBOUFCQjMwMDI2QzQ2RCAv
KiBwYXNfcmFuZG9tLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURCQjIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRjA4
RjM0MjJBNThGMTIwMDM4NjU3NSAvKiBwYXNfcmVkX2JsYWNrX3RyZWUuYyBpbiBTb3VyY2VzICov
LAotCQkJCTBGQTVFNDU5MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfcmVkdW5kYW50X2xvY2FsX2Fs
bG9jYXRvcl9ub2RlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjVCNjA5MTIzNUU4OEVGMDBDQUU2
MjkgLyogcGFzX3Jlc2VydmVkX21lbW9yeV9wcm92aWRlci5jIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MEY0RjYwRkEyNTk3OUJDODAwOEI0QTgyIC8qIHBhc19yb290LmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRjE5MzI2RDIyRjczRTg1MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEYwNEMyMjAyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjA0QzIxQzI0NjBEQjZGMDAxRDMx
RjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgaW4gU291cmNlcyAqLywKKwkJCQkw
RjlFOTQ1ODIzNDUyMjYyMDA5RkFGREQgLyogcGFzX2xvZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEZEQkIwNzQyMkI4NzVBNjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuYyBpbiBTb3Vy
Y2VzICovLAorCQkJCTBGN0Y1MUJFMjMxNTlFQzAwMDc1NTJBRSAvKiBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX25vZGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjU5MjNBOUFCQjMwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4
QjUzMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEYwNEMyMTUyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQ0Yy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGRTdFREQxMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRjk3RTYzMDIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjVFMjNBOUFCQjMwMDI2
QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRkQ0OEI0QzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEI0ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCMkUy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCNTIyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURCNTIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX2FsbF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFDRUUy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZENDhCNUMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEIzNjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3Nl
Z3JlZ2F0ZWRfdmlldy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYxOEU2M0YyNjI4QkZCNzAwRjY5
MDNEIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY2RDU2NDYyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19zaW1wbGVfZnJlZV9oZWFwX2hl
bHBlcnMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRjA4RjNFMjJBNURDNjkwMDM4NjU3NSAvKiBw
YXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYzMUE2M0Qy
M0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3QuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
QzRFQzNCMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmMgaW4gU291cmNl
cyAqLywKLQkJCQkwRkU3RUREMzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3N0cmVhbS5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEZDNEVDMzcyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3Ry
ZWFtLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQyMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X3N1YnBhZ2VfbWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUNFODI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURE
NTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEY2RDU2NEEyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X2Jvb3RzdHJh
cF9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MUIyMjVBM0QwQkIwMDhCNEE4
MiAvKiBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEY5QTFEMEQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0
b3J5LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RURENDIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQTVFNDU2
MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjdGNTFCRTIzMTU5RUMwMDA3NTUyQUUgLyogcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9ub2RlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUQwNjI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCMzAy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19yYW5kb20uYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRUE0
NUMzMjM2Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGOEE4MDY4MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hl
YXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjFCNjI1QTNEMEJCMDA4QjRBODIg
LyogcGFzX2VudW1lcmFibGVfcGFnZV9tYWxsb2MuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGQ0ZB
NDlCMjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRjRGNjFCNDI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFibGVfcmFu
Z2VfbGlzdC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYxOTMyNTYyMkVEMDRBNjAwRkJBNzEzIC8q
IHBhc19lcG9jaC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCNUUyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGNEY2MUNCMjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdl
X2xpc3QuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREI2MjI5NjAxNDIwMDRGNDE2NiAvKiBw
YXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5N0U2MzAyMkE5
QUFDMTAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgaW4gU291cmNlcyAq
LywKIAkJCQkwRkU3RURENzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxpdHlfaGVhcC5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQkIyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5
X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RUREODIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3V0aWxzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUNGRDI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYxNDg3
MjIyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNzgwODg1MjJGQTIyRDIwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5n
ZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4NzAwQTcyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5n
eV9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3MDBBOTI1QjBBOEMzMDAwRTFBQkYgLyog
dGhpbmd5X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjZENTQ3QzIzQzU3M0Ux
MDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRjA4RjNF
MjJBNURDNjkwMDM4NjU3NSAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEZENDhCNDYyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19hbGxfc2hhcmVkX3Bh
Z2VfZGlyZWN0b3JpZXMuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExRDQ5MjU1RTI4NDIwMEM4
RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZF
N0VEQjkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jb2FsaWduLmMgaW4gU291cmNlcyAqLywKKwkJ
CQkwRkJENjdEQjI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY1QjYwOTEyMzVFODhFRjAwQ0FFNjI5IC8qIHBhc19yZXNlcnZl
ZF9tZW1vcnlfcHJvdmlkZXIuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExRDEwMjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZC
RDY3RjMyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hlYXAuYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGMzI5QTJGMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBfd2l0aF9w
YWdlX2NhY2hlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNEVDM0UyMzRBOTFFMzAwQjcxMEEz
IC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8s
CisJCQkJMEYxOTMyNjIyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnQuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExRDE1MjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MTJF
MjU5OTA4NzcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYyBpbiBT
b3VyY2VzICovLAorCQkJCTBGOUExRDAwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFu
dWxlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQ0YyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19zZWdyZWdhdGVkX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGMUJGRDQ0MjY2NDU3RjEw
MENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGQTVFNDU2
MjQ5MkQ1QkEwMENFOTYyQSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMg
aW4gU291cmNlcyAqLywKKwkJCQkwRkJDNjJDMjI2NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVn
X3NwZWN0cnVtLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjVFNUNFQzIzQkVGMzYwMDBBQTBCNkYg
LyogaXNvX3Rlc3RfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExRDExMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2UuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
OEE4MDY2MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGMzI5QTMwMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2lu
dG9fcmVzZXJ2ZWRfbWVtb3J5LmMgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuYwkod29y
a2luZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEgQEAgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVf
emVyb2VkKHNpemVfdAogICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfaW5s
aW5lKHNpemUpOwogfQogCitQQVNfTkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVf
c2xvdyhzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfYWxsb2NhdGVf
aW1wbF9tZWRpdW1fc2xvd19jYXNlKHNpemUsIDEpLmJlZ2luOworfQorCiB2b2lkKiBibWFsbG9j
X2FsbG9jYXRlKHNpemVfdCBzaXplKQogewogICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2lu
bGluZShzaXplKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxs
b2NfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuYwkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsNyArNDAsOCBAQCBwYXNfaGVhcF9jb25maWcgYm1hbGxvY19oZWFwX2Nv
bmZpZyA9IEJNCiAKIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAgICBibWFs
bG9jLCBCTUFMTE9DLAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UpOwor
ICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJpbnNpY19w
cmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2Fn
Z3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZvaWQgYm1hbGxvY19oZWFwX2NvbmZp
Z19hY3RpdmF0ZSh2b2lkKQogewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvYm1hbGxvY19oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5o
CSh3b3JraW5nIGNvcHkpCkBAIC01MSw5ICs1MSwxMCBAQCBQQVNfQVBJIHZvaWQgYm1hbGxvY19o
ZWFwX2NvbmZpZ19hY3RpdmF0CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFT
X1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVh
Z2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdy
ZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUs
IFwKLSAgICAuc21hbGxfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAor
ICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJN
NjQsIFwKKyAgICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSB0cnVlLCBcCiAgICAgLnVzZV9zbWFsbF9i
aXRmaXQgPSB0cnVlLCBcCi0gICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQgPSA0LCBc
CisgICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQgPSBCTUFMTE9DX01JTkFMSUdOX1NI
SUZULCBcCiAgICAgLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUgPSBQQVNfU01BTExfQklURklUX1BB
R0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLm1lZGl1bV9wYWdlX3NpemUgPSBQQVNfTUVESVVNX1BB
R0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLmdyYW51bGVfc2l6ZSA9IFBBU19HUkFOVUxFX0RFRkFV
TFRfU0laRSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxv
Y19oZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9ibWFsbG9jX2hlYXBfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfaW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJ
TlNJQ19QUklNSVQKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX2ludHJp
bnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0
b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHks
CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAogICAgICZibWFsbG9jX2NvbW1v
bl9wcmltaXRpdmVfaGVhcCwKICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3Vw
cG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfZGVzaWduYXRlZCk7CkBAIC01Niw3ICs1
Niw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBCTUFM
TE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGlt
ZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0X2lkZW50aXR5LAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAg
ICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmlu
c2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwpAQCAtNjYsNyArNjYsNyBAQCBQQVNfQ1JFQVRF
X1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywK
ICAgICAmYm1hbGxvY19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAg
ICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFz
aF9vbl9lcnJvciwKICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmJt
YWxsb2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19o
ZWFwX2lzX2Rlc2lnbmF0ZWQpOwpAQCAtNzYsNzMgKzc2LDc5IEBAIFBBU19DUkVBVEVfVFJZX0FM
TE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAgICZi
bWFsbG9jX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1h
bGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1
bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vy
cm9yLAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmYm1hbGxvY19j
b21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNf
bm90X2Rlc2lnbmF0ZWQpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxv
Y190cnlfYWxsb2NhdGVfaW5saW5lKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBibWFsbG9j
X3RyeV9hbGxvY2F0ZV9pbXBsKHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxs
b2NfdHJ5X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkKgogYm1hbGxvY190cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW5s
aW5lKHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiBibWFsbG9j
X3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkucHRyOwor
ICAgIHJldHVybiAodm9pZCopYm1hbGxvY190cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1w
bChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsK
LSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJl
dHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGJtYWxsb2Nf
dHJ5X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsKKyAgICAgICAg
c2l6ZSkuYmVnaW47CiB9CiAKK1BBU19BUEkgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9zbG93KHNp
emVfdCBzaXplKTsKKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxs
b2NhdGVfaW5saW5lKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRl
X2ltcGwoc2l6ZSwgMSkucHRyOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7Cisg
ICAgcmVzdWx0ID0gYm1hbGxvY19hbGxvY2F0ZV9pbXBsX2lubGluZV9vbmx5KHNpemUsIDEpOwor
ICAgIGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkpCisgICAgICAgIHJldHVybiAo
dm9pZCopcmVzdWx0LmJlZ2luOworICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX3Nsb3coc2l6
ZSk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogYm1hbGxvY19hbGxvY2F0
ZV93aXRoX2FsaWdubWVudF9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7
Ci0gICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBh
bGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfYWxsb2NhdGVfd2l0aF9h
bGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRfaW5saW5lKHNpemVfdCBz
aXplKQogewotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8o
CisgICAgcmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAg
Ym1hbGxvY19hbGxvY2F0ZV9pbXBsKHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAg
ICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGJt
YWxsb2NfdHJ5X3JlYWxsb2NhdGVfaW5saW5lKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9k
ZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNf
cHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNp
Y19wcmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgICZibWFsbG9jX2NvbW1vbl9w
cmltaXRpdmVfaGVhcCwKICAgICAgICAgbmV3X3NpemUsCiAgICAgICAgIEJNQUxMT0NfSEVBUF9D
T05GSUcsCiAgICAgICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ltcGxfZm9yX3JlYWxsb2MsCiAg
ICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVf
bW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdm9pZCoKIGJtYWxsb2NfcmVhbGxvY2F0ZV9pbmxpbmUodm9pZCogb2xkX3B0
ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxv
Y2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQogewotICAgIHJldHVybiBwYXNfdHJ5X3JlYWxsb2Nh
dGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxv
Y2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRyLAogICAgICAgICAmYm1h
bGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgICAgIG5ld19zaXplLAogICAgICAgICBC
TUFMTE9DX0hFQVBfQ09ORklHLAogICAgICAgICBibWFsbG9jX2FsbG9jYXRlX2ltcGxfZm9yX3Jl
YWxsb2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAg
ICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCiBQQVNf
Q1JFQVRFX1RSWV9BTExPQ0FURSgKQEAgLTE1MCw3ICsxNTYsNyBAQCBQQVNfQ1JFQVRFX1RSWV9B
TExPQ0FURSgKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX3R5cGVkX3J1
bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKLSAgICBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKKyAgICBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfaWRlbnRpdHkpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCog
Ym1hbGxvY190cnlfaXNvX2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQog
ewpAQCAtMTYyLDcgKzE2OCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIEJNQUxM
T0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwK
ICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9j
cmFzaF9vbl9lcnJvcik7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9j
X2lzb19hbGxvY2F0ZV9pbmxpbmUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZikKIHsKQEAgLTE3NCwx
MiArMTgwLDEyIEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1JVElWRSgKICAgICBCTUFM
TE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5i
YXNlLAogICAgICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lk
ZW50aXR5KTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfdHJ5X2Fs
bG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gYm1hbGxvY190cnlfYWxs
b2NhdGVfYXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4g
KHZvaWQqKWJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXpl
LCAxKS5iZWdpbjsKIH0KIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKApAQCAt
MTg3LDI5ICsxOTMsMjkgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKAogICAg
IEJNQUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfcHJpbWl0aXZlX3J1bnRpbWVfY29u
ZmlnLmJhc2UsCiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCogYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9y
ZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gYm1hbGxv
Y19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkucHRyOworICAgIHJl
dHVybiAodm9pZCopYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6
ZSwgMSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9j
X3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2lubGluZSgKICAgICBwYXNfcHJpbWl0aXZl
X2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFz
X2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1
eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKSwKLSAgICAgICAgc2l6ZSkucHRyOworICAg
ICAgICBzaXplKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJt
YWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9lZF9pbmxpbmUocGFzX3ByaW1pdGl2ZV9oZWFw
X3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1
cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9p
ZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGJtYWxsb2NfYWxsb2NhdGVf
YXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7Cisg
ICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoK
QEAgLTIxNyw3ICsyMjMsNyBAQCBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9h
bGlnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiBibWFsbG9jX3RyeV9h
bGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5wdHI7Cisg
ICAgcmV0dXJuICh2b2lkKilibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFw
X3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQqCkBAIC0yMjUsNyArMjMxLDcgQEAgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlf
d2l0aF9hbGlnbm1lbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGJtYWxsb2NfYWxs
b2NhdGVfYXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCkucHRyOworICAg
IHJldHVybiAodm9pZCopYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwg
c2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQqIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSgKQEAgLTIzNCw3ICsy
NDAsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190CiAgICAgc2l6
ZV90IG5ld19zaXplLAogICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7
Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCisgICAgcmV0dXJuICh2
b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRyLAogICAg
ICAgICBoZWFwX3JlZiwKICAgICAgICAgbmV3X3NpemUsCkBAIC0yNDIsNyArMjQ4LDcgQEAgc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfdAogICAgICAgICBibWFsbG9jX3Ry
eV9hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbF9mb3JfcmVhbGxvYywKICAgICAgICAgJmJtYWxsb2Nf
cHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2Fs
bG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVl
X21vZGUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxv
Y19yZWFsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUodm9pZCogb2xkX3B0ciwKQEAgLTI1MCw3ICsy
NTYsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19yCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBm
cmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCisg
ICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAgICAgICBv
bGRfcHRyLAogICAgICAgICBoZWFwX3JlZiwKICAgICAgICAgbmV3X3NpemUsCkBAIC0yNTgsNyAr
MjY0LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfcgogICAgICAg
ICBibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsX2Zvcl9yZWFsbG9jLAogICAgICAgICAm
Ym1hbGxvY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAgICAgcGFzX3JlYWxs
b2NhdGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAg
ICAgIGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
IGJtYWxsb2NfZGVhbGxvY2F0ZV9pbmxpbmUodm9pZCogcHRyKQpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmMJKHJl
dmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJp
dF9oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw4IEBAIHBhc19oZWFw
X2NvbmZpZyBob3RiaXRfaGVhcF9jb25maWcgPSBIT1QKIAogUEFTX0JBU0lDX0hFQVBfQ09ORklH
X0RFRklOSVRJT05TKAogICAgIGhvdGJpdCwgSE9UQklULAotICAgIC5hbGxvY2F0ZV9wYWdlX3No
b3VsZF96ZXJvID0gZmFsc2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFs
c2UsCisgICAgLmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19o
ZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZv
aWQgaG90Yml0X2hlYXBfY29uZmlnX2FjdGl2YXRlKHZvaWQpCiB7CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuaAko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90
Yml0X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDggQEAgUEFTX0FQ
SSB2b2lkIGhvdGJpdF9oZWFwX2NvbmZpZ19hY3RpdmF0ZQogICAgIC5zbWFsbF9zZWdyZWdhdGVk
X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9z
ZWdyZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwK
ICAgICAuc21hbGxfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRp
bWl6YXRpb24gPSB0cnVlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQg
PSBQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVu
dF93b3JkID0gUEFTX0FSTTY0LCBcCisgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gdHJ1ZSwgXAog
ICAgIC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9iaXRmaXRfbWluX2Fs
aWduX3NoaWZ0ID0gSE9UQklUX01JTkFMSUdOX1NISUZULCBcCiAgICAgLnNtYWxsX2JpdGZpdF9w
YWdlX3NpemUgPSBQQVNfU01BTExfQklURklUX1BBR0VfREVGQVVMVF9TSVpFLCBcCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9pbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBf
aW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9ob3RiaXRfaGVhcF9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQy
LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEhPVEJJ
VF9IRUFQX0NPTkZJRywKICAgICAmaG90Yml0X2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9j
b25maWcuYmFzZSwKICAgICAmaG90Yml0X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfaWRlbnRpdHksCiAgICAgJmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmhv
dGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hl
YXBfaXNfZGVzaWduYXRlZCk7CkBAIC01NCwzNCArNTQsMzQgQEAgUEFTX0NSRUFURV9UUllfQUxM
T0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEhPVEJJVF9IRUFQX0NPTkZJRywKICAgICAmaG90
Yml0X2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaG90Yml0
X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9p
ZGVudGl0eSwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCiAgICAgJmhvdGJp
dF9jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hl
YXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwog
CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaG90Yml0X3RyeV9hbGxvY2F0ZV9pbmxp
bmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIGhvdGJpdF90cnlfYWxsb2NhdGVfaW1wbChz
aXplLCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilob3RiaXRfdHJ5X2FsbG9jYXRlX2ltcGwo
c2l6ZSwgMSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogaG90
Yml0X3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVf
dCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGhvdGJpdF90cnlfYWxsb2NhdGVfd2l0aF9hbGln
bm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWhvdGJp
dF90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2lu
OwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGhvdGJpdF90cnlfcmVhbGxv
Y2F0ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsK
LSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCisgICAg
cmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKICAg
ICAgICAgb2xkX3B0ciwKICAgICAgICAgJmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAg
ICAgICAgIG5ld19zaXplLAogICAgICAgICBIT1RCSVRfSEVBUF9DT05GSUcsCiAgICAgICAgIGhv
dGJpdF90cnlfYWxsb2NhdGVfaW1wbF9mb3JfcmVhbGxvYywKICAgICAgICAgcGFzX3JlYWxsb2Nh
dGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAg
IGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIGhv
dGJpdF9kZWFsbG9jYXRlX2lubGluZSh2b2lkKiBwdHIpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuYwkocmV2aXNpb24gMjgy
MjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmln
LmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAy
MDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChj
KSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw4IEBAIHBhc19oZWFwX2NvbmZpZyBpc29f
aGVhcF9jb25maWcgPSBJU09fSEUKIAogUEFTX0JBU0lDX0hFQVBfQ09ORklHX0RFRklOSVRJT05T
KAogICAgIGlzbywgSVNPLAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2Up
OworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJpbnNp
Y19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmln
X3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKICNlbmRpZiAvKiBQQVNfRU5BQkxFX0lTTyAq
LwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25m
aWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29f
aGVhcF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUy
LDggQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6
ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVk
X3dhc3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAgICAuc21h
bGxfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24g
PSBmYWxzZSwgXAotICAgIC5zbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FS
TTY0LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9
IFBBU19BUk02NCwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IGZhbHNlLCBcCiAgICAgLnVz
ZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hp
ZnQgPSBJU09fTUlOQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9
IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9pbmxpbmVzLmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFw
X2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBQQVNfQ1JFQVRFX1RS
WV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZp
c29faW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxs
b2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3NldF9l
cnJubywKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vLAogICAgICZpc29fY29t
bW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBv
cnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKQEAgLTYwLDcg
KzYwLDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIElT
T19IRUFQX0NPTkZJRywKICAgICAmaXNvX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25m
aWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8sCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3Nl
dF9lcnJubywKICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaXNvX2NvbW1v
bl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3Rf
ZGVzaWduYXRlZCk7CkBAIC03MCw3ICs3MCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lO
VFJJTlNJQ19QUklNSVQKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb19pbnRyaW5zaWNf
cHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRz
LAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisg
ICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZpc29fY29tbW9u
X3ByaW1pdGl2ZV9oZWFwLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQs
CiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKQEAgLTgwLDczICs4
MCw3MyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgSVNP
X0hFQVBfQ09ORklHLAogICAgICZpc29faW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZp
Zy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF9jcmFzaF9vbl9lcnJvciwKICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAm
aXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVh
cF9pc19ub3RfZGVzaWduYXRlZCk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBp
c29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKHNpemVfdCBzaXplKQogewot
ICAgIHJldHVybiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1wbChzaXplLCAx
KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRp
dmVfaW1wbChzaXplLCAxKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQqCiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW5s
aW5lKHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiBpc29fdHJ5
X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGln
bm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlzb190cnlfYWxsb2NhdGVfY29tbW9uX3By
aW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAK
IHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9w
cmltaXRpdmVfemVyb2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3By
aW1pdGl2ZV9pbXBsKHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAgICAgIHNpemUp
LmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX2FsbG9jYXRl
X2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBpc29f
YWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbXBsKHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4g
KHZvaWQqKWlzb19hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSkuYmVnaW47
CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogaXNvX2FsbG9jYXRlX2NvbW1v
bl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKHNpemVfdCBzaXplLCBzaXplX3QgYWxp
Z25tZW50KQogewotICAgIHJldHVybiBpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRo
X2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCop
aXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBh
bGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNv
X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfemVyb2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsK
LSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJl
dHVybiAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGlzb19hbGxv
Y2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsK
KyAgICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
KgogaXNvX3RyeV9yZWFsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKHZvaWQqIG9sZF9w
dHIsIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQogewotICAgIHJldHVy
biBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZv
aWQqKXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAogICAgICAgICBvbGRf
cHRyLAogICAgICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAgICAgbmV3X3Np
emUsCiAgICAgICAgIElTT19IRUFQX0NPTkZJRywKICAgICAgICAgaXNvX3RyeV9hbGxvY2F0ZV9j
b21tb25fcHJpbWl0aXZlX2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRl
X2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBm
cmVlX21vZGUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGlz
b19yZWFsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKHZvaWQqIG9sZF9wdHIsIHNpemVf
dCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19y
ZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVh
bGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9y
ZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAg
ICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICAgICBuZXdfc2l6ZSwKICAgICAgICAg
SVNPX0hFQVBfQ09ORklHLAogICAgICAgICBpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9p
bXBsX2Zvcl9yZWFsbG9jLAogICAgICAgICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVw
b3J0LAotICAgICAgICBmcmVlX21vZGUpLnB0cjsKKyAgICAgICAgZnJlZV9tb2RlKS5iZWdpbjsK
IH0KIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCkBAIC0xNTQsNyArMTU0LDcgQEAgUEFTX0NS
RUFURV9UUllfQUxMT0NBVEUoCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29fdHlwZWRf
cnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOworICAgIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF9zZXRfZXJybm8pOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCog
aXNvX3RyeV9hbGxvY2F0ZV9pbmxpbmUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZikKIHsKQEAgLTE2
Niw3ICsxNjYsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKICAgICBJU09fSEVBUF9DT05G
SUcsCiAgICAgJmlzb190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2Nh
dG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29u
X2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX2FsbG9jYXRlX2lubGluZShwYXNfaGVh
cF9yZWYqIGhlYXBfcmVmKQogewpAQCAtMTc4LDcgKzE3OCw3IEBAIFBBU19DUkVBVEVfVFJZX0FM
TE9DQVRFX0FSUkFZKAogICAgIElTT19IRUFQX0NPTkZJRywKICAgICAmaXNvX3R5cGVkX3J1bnRp
bWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHRfc2V0X2Vycm5vKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBpc29f
dHJ5X2FsbG9jYXRlX2FycmF5X2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qg
Y291bnQsIHNpemVfdCBhbGlnbm1lbnQpCkBAIC0xOTEsNyArMTkxLDcgQEAgUEFTX0NSRUFURV9U
UllfQUxMT0NBVEVfQVJSQVkoCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29fdHlwZWRf
cnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQqCiBpc29fYWxsb2NhdGVfYXJyYXlfaW5saW5lKHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYsIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCkKQEAgLTI0NywxMiArMjQ3LDEyIEBA
IFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1JVElWRSgKICAgICBJU09fSEVBUF9DT05GSUcs
CiAgICAgJmlzb19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9j
YXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJy
bm8pOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOwogCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKHBh
c19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsK
LSAgICByZXR1cm4gaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6
ZSwgMSkucHRyOworICAgIHJldHVybiAodm9pZCopaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVf
aW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkuYmVnaW47CiB9CiAKIFBBU19DUkVBVEVfVFJZX0FMTE9D
QVRFX1BSSU1JVElWRSgKQEAgLTI2MCwyOCArMjYwLDI4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9D
QVRFX1BSSU1JVElWRSgKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb19wcmltaXRpdmVf
cnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQqIGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKHBhc19wcmltaXRpdmVfaGVh
cF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBpc29fYWxs
b2NhdGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4g
KHZvaWQqKWlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkuYmVn
aW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRl
X3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVm
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKKyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0
aW9uX3Jlc3VsdF96ZXJvKAogICAgICAgICBpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBs
KGhlYXBfcmVmLCBzaXplLCAxKSwKLSAgICAgICAgc2l6ZSkucHRyOworICAgICAgICBzaXplKS5i
ZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb19hbGxvY2F0ZV9w
cmltaXRpdmVfemVyb2VkX2lubGluZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHRfemVybygKKyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jl
c3VsdF96ZXJvKAogICAgICAgICBpc29fYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYs
IHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAgICAgIHNpemUpLmJlZ2luOwogfQog
CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAgLTI4OSw3ICsyODksNyBAQCBpc29f
dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVuCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkKIHsK
LSAgICByZXR1cm4gaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6
ZSwgYWxpZ25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilpc29fdHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZV9pbXBsKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAgLTI5Nyw3ICsyOTcsNyBAQCBpc29fYWxsb2Nh
dGVfcHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2luCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlz
b19hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5wdHI7
CisgICAgcmV0dXJuICh2b2lkKilpc29fYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYs
IHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkKiBpc29fdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2lubGluZSh2b2lkKiBvbGRfcHRyLApA
QCAtMzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5
X3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVf
ZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX3By
aW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUo
CiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgIGhlYXBfcmVmLAogICAgICAgICBuZXdfc2l6ZSwK
QEAgLTMxMyw3ICszMTMsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3Ry
eV9yCiAgICAgICAgIGlzb190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxfZm9yX3JlYWxsb2Ms
CiAgICAgICAgICZpc29fcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgICAgIHBh
c19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRy
OworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCogaXNvX3JlYWxsb2NhdGVfcHJpbWl0aXZlX2lubGluZSh2b2lkKiBvbGRfcHRyLApA
QCAtMzIxLDcgKzMyMSw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fcmVh
bGwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9k
ZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUo
CisgICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAgICAg
ICBvbGRfcHRyLAogICAgICAgICBoZWFwX3JlZiwKICAgICAgICAgbmV3X3NpemUsCkBAIC0zMjks
NyArMzI5LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb19yZWFsbAogICAg
ICAgICBpc29fYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAgICZp
c29fcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgICAgIHBhc19yZWFsbG9jYXRl
X2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBm
cmVlX21vZGUpLmJlZ2luOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUo
CkBAIC0zMzcsMTYgKzMzNywxNiBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUo
CiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29fb2JqY19ydW50aW1lX2NvbmZpZy5iYXNl
LAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0X3NldF9lcnJubyk7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJu
byk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2Zv
cl9vYmpjX2lubGluZShjb25zdCB2b2lkKiBjbHMsIHNpemVfdCBzaXplKQogewotICAgIHJldHVy
biBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgcmV0dXJuICh2b2lk
KilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgaXNvX3RyeV9hbGxvY2F0ZV9m
b3Jfb2JqY19pbXBsKAogICAgICAgICAgICAgcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFw
X2ZpbmQoCiAgICAgICAgICAgICAgICAgJmlzb19vYmpjX2R5bmFtaWNfaGVhcF9tYXAsIGNscywg
c2l6ZSksCiAgICAgICAgICAgICBzaXplLCAxKSwKLSAgICAgICAgc2l6ZSkucHRyOworICAgICAg
ICBzaXplKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgaXNvX2hh
c19vYmplY3RfaW5saW5lKHZvaWQqIHB0cikKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL2lzb190ZXN0X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXAuYwkod29ya2luZyBj
b3B5KQpAQCAtNTUsNyArNTUsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNf
UFJJTUlUCiAgICAgSVNPX1RFU1RfSEVBUF9DT05GSUcsCiAgICAgJmlzb190ZXN0X2ludHJpbnNp
Y19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3Vu
dHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwK
KyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCiAgICAgJmlzb190ZXN0
X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaXNvX3Rlc3RfY29tbW9uX3ByaW1pdGl2ZV9o
ZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsK
QEAgLTY1LDE4ICs2NSwxOCBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKICAgICBJU09fVEVT
VF9IRUFQX0NPTkZJRywKICAgICAmaXNvX3Rlc3RfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwK
ICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNo
X29uX2Vycm9yKTsKIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQVJSQVkoCiAgICAgdGVzdF9h
bGxvY2F0ZV9hcnJheV9pbXBsLAogICAgIElTT19URVNUX0hFQVBfQ09ORklHLAogICAgICZpc29f
dGVzdF90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50
cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsK
KyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiB2b2lkKiBpc29f
dGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemVfdCBzaXplKQogewotICAgIHJldHVy
biB0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSwgMSkucHRyOworICAgIHJldHVy
biAodm9pZCopdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemUsIDEpLmJlZ2luOwog
fQogCiB2b2lkKiBpc29fdGVzdF9hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcF9jb25maWcu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVz
dF9oZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw3ICszNyw4IEBAIHBhc19oZWFwX2NvbmZpZyBpc29fdGVzdF9oZWFwX2NvbmZpZyA9IEkKIAog
UEFTX0JBU0lDX0hFQVBfQ09ORklHX0RFRklOSVRJT05TKAogICAgIGlzb190ZXN0LCBJU09fVEVT
VCwKLSAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNlKTsKKyAgICAuYWxsb2Nh
dGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNlLAorICAgIC5pbnRyaW5zaWNfcHJpbWl0aXZlX3Zp
ZXdfY2FjaGVfY2FwYWNpdHkgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2Fj
aGVfY2FwYWNpdHkpOwogCiAjZW5kaWYgLyogUEFTX0VOQUJMRV9JU09fVEVTVCAqLwogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0
X2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDcgKzUyLDggQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3Bh
Z2Vfc2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdy
ZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAg
ICAuc21hbGxfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6
YXRpb24gPSBmYWxzZSwgXAotICAgIC5zbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0g
ZmFsc2UsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3Jk
ID0gZmFsc2UsIFwKKyAgICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSBmYWxzZSwgXAogICAgIC51c2Vf
c21hbGxfYml0Zml0ID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0
ID0gSVNPX1RFU1RfTUlOQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6
ZSA9IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXAuYwkod29ya2luZyBj
b3B5KQpAQCAtNjAsMTQgKzYwLDE0IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJ
Q19QUklNSVQKICAgICBKSVRfSEVBUF9DT05GSUcsCiAgICAgJmppdF9oZWFwX3J1bnRpbWVfY29u
ZmlnLAogICAgICZqaXRfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0X2lkZW50aXR5LAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0
eSwKICAgICAmaml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaml0X2NvbW1vbl9wcmlt
aXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWdu
YXRlZCk7CiAKIHZvaWQqIGppdF9oZWFwX3RyeV9hbGxvY2F0ZShzaXplX3Qgc2l6ZSkKIHsKLSAg
ICByZXR1cm4gaml0X3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSku
cHRyOworICAgIHJldHVybiAodm9pZCopaml0X3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZl
X2ltcGwoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHZvaWQgaml0X2hlYXBfc2hyaW5rKHZvaWQqIG9i
amVjdCwgc2l6ZV90IG5ld19zaXplKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvaml0X2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jCSh3b3JraW5n
IGNvcHkpCkBAIC05Nyw4ICs5NywxMCBAQCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZyBqaXRfaGVh
cF9ydW50aW1lCiAgICAgLmlzX3BhcnRfb2ZfaGVhcCA9IHRydWUsCiAgICAgLmRpcmVjdG9yeV9z
aXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzID0gMCwKICAgICAuZGlyZWN0b3J5X3NpemVfYm91
bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMgPSAwLAorICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3Vu
ZF9mb3Jfbm9fdmlld19jYWNoZSA9IFVJTlRfTUFYLAogICAgIC5tYXhfc2VncmVnYXRlZF9vYmpl
Y3Rfc2l6ZSA9IDAsCi0gICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBVSU5UX01BWAorICAg
IC5tYXhfYml0Zml0X29iamVjdF9zaXplID0gVUlOVF9NQVgsCisgICAgLnZpZXdfY2FjaGVfY2Fw
YWNpdHlfZm9yX29iamVjdF9zaXplID0gcGFzX2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3
X2NhY2hlX2NhcGFjaXR5CiB9OwogCiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhIGppdF9yb290
X2RhdGEgPSB7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGln
bjMyX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9taW5hbGlnbjMyX2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTU0
LDcgKzU0LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAg
IE1JTkFMSUdOMzJfSEVBUF9DT05GSUcsCiAgICAgJm1pbmFsaWduMzJfaW50cmluc2ljX3ByaW1p
dGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAg
ICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAorICAgIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKICAgICAmbWluYWxpZ24zMl9jb21t
b25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJm1pbmFsaWduMzJfY29tbW9uX3ByaW1pdGl2ZV9oZWFw
X3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX2Rlc2lnbmF0ZWQpOwpAQCAtNjQs
MTggKzY0LDE4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIE1JTkFMSUdOMzJfSEVB
UF9DT05GSUcsCiAgICAgJm1pbmFsaWduMzJfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAg
ICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29u
X2Vycm9yKTsKIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQVJSQVkoCiAgICAgdGVzdF9hbGxv
Y2F0ZV9hcnJheV9pbXBsLAogICAgIE1JTkFMSUdOMzJfSEVBUF9DT05GSUcsCiAgICAgJm1pbmFs
aWduMzJfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3Vu
dHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7
CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogdm9pZCogbWlu
YWxpZ24zMl9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemVfdCBzaXplKQogewotICAgIHJl
dHVybiB0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSwgMSkucHRyOworICAgIHJl
dHVybiAodm9pZCopdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemUsIDEpLmJlZ2lu
OwogfQogCiB2b2lkKiBtaW5hbGlnbjMyX2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVhcF9yZWYp
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBf
Y29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
bWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmMJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDcgKzM5LDggQEAgcGFzX2hlYXBfY29uZmlnIG1pbmFsaWduMzJfaGVhcF9j
b25maWcgPQogCiBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMoCiAgICAgbWluYWxp
Z24zMiwgTUlOQUxJR04zMiwKLSAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNl
KTsKKyAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNlLAorICAgIC5pbnRyaW5z
aWNfcHJpbWl0aXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZp
Z19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkpOwogCiB2b2lkIG1pbmFsaWduMzJfaGVh
cF9jb25maWdfYWN0aXZhdGUodm9pZCkKIHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWdu
MzJfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsOCBAQCBQQVNfQVBJ
IHZvaWQgbWluYWxpZ24zMl9oZWFwX2NvbmZpZ19hY3RpCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRf
cGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLnNtYWxsX3Nl
Z3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAog
ICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGlt
aXphdGlvbiA9IHRydWUsIFwKLSAgICAuc21hbGxfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9
IHRydWUsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3Jk
ID0gdHJ1ZSwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IHRydWUsIFwKICAgICAudXNlX3Nt
YWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAuc21hbGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCA9
IE1JTkFMSUdOMzJfTUlOQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6
ZSA9IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwLmMJKHJl
dmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2Vz
aXplNjRrX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBQQVNfQ1JFQVRF
X1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgUEFHRVNJWkU2NEtfSEVBUF9DT05G
SUcsCiAgICAgJnBhZ2VzaXplNjRrX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcu
YmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
Y3Jhc2hfb25fZXJyb3IsCiAgICAgJnBhZ2VzaXplNjRrX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwK
ICAgICAmcGFnZXNpemU2NGtfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFz
X2ludHJpbnNpY19oZWFwX2lzX2Rlc2lnbmF0ZWQpOwpAQCAtNjQsMTggKzY0LDE4IEBAIFBBU19D
UkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIFBBR0VTSVpFNjRLX0hFQVBfQ09ORklHLAogICAgICZw
YWdlc2l6ZTY0a190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9y
X2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vy
cm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBQQVNf
Q1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKICAgICB0ZXN0X2FsbG9jYXRlX2FycmF5X2ltcGws
CiAgICAgUEFHRVNJWkU2NEtfSEVBUF9DT05GSUcsCiAgICAgJnBhZ2VzaXplNjRrX3R5cGVkX3J1
bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOworICAgIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CiAKIHZvaWQqIHBhZ2VzaXplNjRrX2FsbG9j
YXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIHRlc3RfYWxs
b2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplLCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKil0
ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHZvaWQq
IHBhZ2VzaXplNjRrX2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRr
X2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDcgKzM5LDggQEAgcGFzX2hlYXBfY29uZmlnIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnIAog
CiBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMoCiAgICAgcGFnZXNpemU2NGssIFBB
R0VTSVpFNjRLLAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UpOworICAg
IC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJpbnNpY19wcmlt
aXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9f
dmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZvaWQgcGFnZXNpemU2NGtfaGVhcF9jb25maWdfYWN0
aXZhdGUodm9pZCkKIHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
Z2VzaXplNjRrX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9j
b25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsOCBAQCBQQVNfQVBJIHZvaWQgcGFn
ZXNpemU2NGtfaGVhcF9jb25maWdfYWN0CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXpl
ID0gUEFHRVNJWkU2NEtfU01BTExfUEFHRV9TSVpFLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRf
d2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAogICAgIC5zbWFs
bF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9
IGZhbHNlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSAhUEFTX0FS
TTY0LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9
ICFQQVNfQVJNNjQsIFwKKyAgICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSBmYWxzZSwgXAogICAgIC51
c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3No
aWZ0ID0gUEFHRVNJWkU2NEtfTUlOQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3Bh
Z2Vfc2l6ZSA9IFBBR0VTSVpFNjRLX1NNQUxMX1BBR0VfU0laRSwgXApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jCShub25leGlzdGVu
dCkKQEAgLTEsMTk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVE
Ci0KLSNpbmNsdWRlICJwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCIKLQotI2luY2x1ZGUg
InBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hh
cmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NjYXZlbmdlci5oIgotCi1wYXNfYWxsX2JpYXNp
bmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3RvciBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3Jp
ZXNfYWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5jZTsKLXBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
c192ZWN0b3IgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3Rvcl9pbnN0YW5jZTsKLQot
dm9pZCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYXBwZW5kKHBhc19iaWFzaW5nX2RpcmVj
dG9yeSogZGlyZWN0b3J5KQotewotICAgIHNpemVfdCBpbmRleDsKLSAgICBzaXplX3Qgd29yZF9p
bmRleDsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyIGRpcmVj
dG9yeV9wdHI7Ci0KLSAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7Ci0gICAgCi0gICAg
aW5kZXggPSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9yX2luc3RhbmNlLnNpemU7
Ci0KLSAgICBQQVNfQVNTRVJUKCFkaXJlY3RvcnktPmluZGV4X2luX2FsbCk7Ci0gICAgUEFTX0FT
U0VSVCgodW5zaWduZWQpaW5kZXggPT0gaW5kZXgpOwotICAgIGRpcmVjdG9yeS0+aW5kZXhfaW5f
YWxsID0gKHVuc2lnbmVkKWluZGV4OwotCi0gICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdf
ZGlyZWN0b3J5X3B0cl9zdG9yZSgmZGlyZWN0b3J5X3B0ciwgZGlyZWN0b3J5KTsKLSAgICBwYXNf
YWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9yX2FwcGVuZCgKLSAgICAgICAgJnBhc19hbGxf
Ymlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfaW5zdGFuY2UsIGRpcmVjdG9yeV9wdHIsIHBhc19s
b2NrX2lzX2hlbGQpOwotICAgIAotICAgIC8qIFdlIGhhdmUgdG8gc3RvcmUgdG8gdGhlIGJpdHZl
Y3RvciBzZWNvbmQsIHNvIHRoYXQgd2hlbiB3ZSBzZWUgYSBiaXQgc2V0IGluIHRoZSBiaXR2ZWN0
b3IsCi0gICAgICAgd2Uga25vdyB0aGF0IHRoZSB0aGluZyBpbiBxdWVzdGlvbiBpcyBhbHJlYWR5
IGFwcGVuZGVkIHRvIHRoZSB2ZWN0b3IuIFRoaXMgaXMgYWN0dWFsbHkKLSAgICAgICBvdmVya2ls
bCBzaW5jZSB3ZSBvbmx5IHN0b3JlIHRoZSBiaXQgdXNpbmcgYSBDQVMgYW5kIG9ubHkgYWZ0ZXIg
cmVsZWFzaW5nIHRoZSBoZWFwIGxvY2ssIGJ1dAotICAgICAgIHdoYXRldmVyIC0gaXQncyBub3Qg
d29ydGggaXQgdG8gdHJ5IHRvIGJlIGZhc3QgaGVyZS4gKi8KLSAgICBwYXNfZmVuY2UoKTsKLQot
ICAgIHdvcmRfaW5kZXggPSBQQVNfQklUVkVDVE9SX1dPUkRfSU5ERVgoaW5kZXgpOwotCi0gICAg
d2hpbGUgKHdvcmRfaW5kZXggPj0gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9i
aXR2ZWN0b3JfaW5zdGFuY2Uuc2l6ZSkgewotICAgICAgICBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9hcHBlbmQoCi0gICAgICAgICAgICAmcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfaW5zdGFuY2UsIDAsIHBhc19sb2NrX2lz
X2hlbGQpOwotICAgIH0KLX0KLQotYm9vbCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0
aXZhdGUocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgc2l6ZV90IGlu
ZGV4OwotICAgIHNpemVfdCB3b3JkX2luZGV4OwotICAgIGJvb2wgZGlkX2FjdGl2YXRlOwotCi0g
ICAgaW5kZXggPSBkaXJlY3RvcnktPmluZGV4X2luX2FsbDsKLSAgICAKLSAgICB3b3JkX2luZGV4
ID0gUEFTX0JJVFZFQ1RPUl9XT1JEX0lOREVYKGluZGV4KTsKLSAgICAKLSAgICBQQVNfQVNTRVJU
KHdvcmRfaW5kZXggPCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rv
cl9pbnN0YW5jZS5zaXplKTsKLSAgICAKLSAgICBkaWRfYWN0aXZhdGUgPSBwYXNfYml0dmVjdG9y
X3NldF9hdG9taWNfaW5fd29yZCgKLSAgICAgICAgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVz
X2FjdGl2ZV9iaXR2ZWN0b3JfZ2V0X3B0cigKLSAgICAgICAgICAgICZwYXNfYWxsX2JpYXNpbmdf
ZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5jZSwKLSAgICAgICAgICAgIHdvcmRf
aW5kZXgpLAotICAgICAgICBpbmRleCwKLSAgICAgICAgdHJ1ZSk7Ci0KLSAgICBpZiAoZGlkX2Fj
dGl2YXRlKQotICAgICAgICBwYXNfc2NhdmVuZ2VyX2RpZF9jcmVhdGVfZWxpZ2libGUoKTsKLQot
ICAgIHJldHVybiBkaWRfYWN0aXZhdGU7Ci19Ci0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBib29s
IHNob3VsZF9nb19hZ2FpbjsKLSAgICB1bnNpZ25lZCogd29yZF9wdHI7Ci19IHNjYXZlbmdlX2Rh
dGE7Ci0KLXN0YXRpYyB1bnNpZ25lZCBzY2F2ZW5nZV9mb3JfZWFjaF9zZXRfYml0X2JpdHNfc291
cmNlKHNpemVfdCB3b3JkX2luZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQotewotICAgIHNjYXZlbmdlX2RhdGEqIGRh
dGE7Ci0KLSAgICBQQVNfVU5VU0VEX1BBUkFNKHdvcmRfaW5kZXgpOwotCi0gICAgZGF0YSA9IGFy
ZzsKLQotICAgIHJldHVybiAqZGF0YS0+d29yZF9wdHI7Ci19Ci0KLXN0YXRpYyBib29sIHNjYXZl
bmdlX2Zvcl9lYWNoX3NldF9iaXRfY2FsbGJhY2socGFzX2ZvdW5kX2JpdF9pbmRleCBmb3VuZF9i
aXRfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHZvaWQqIGFyZykKLXsKLSAgICBzY2F2ZW5nZV9kYXRhKiBkYXRhOwotICAgIHVuc2lnbmVkIGlu
ZGV4OwotICAgIHVuc2lnbmVkIHdvcmQ7Ci0gICAgdW5zaWduZWQqIHdvcmRfcHRyOwotICAgIHBh
c19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgIHVuc2lnbmVkIGN1cnJlbnRfaGln
aF93YXRlcm1hcms7Ci0gICAgdWludHB0cl90IGxhcmdlX2VsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJr
OwotICAgIHVuc2lnbmVkIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrOwotCi0gICAgZGF0YSA9IGFy
ZzsKLQotICAgIGluZGV4ID0gKHVuc2lnbmVkKWZvdW5kX2JpdF9pbmRleC5pbmRleDsKLSAgICBQ
QVNfQVNTRVJUKGluZGV4ID09IGZvdW5kX2JpdF9pbmRleC5pbmRleCk7Ci0KLSAgICB3b3JkID0g
Zm91bmRfYml0X2luZGV4LndvcmQ7Ci0gICAgd29yZF9wdHIgPSBkYXRhLT53b3JkX3B0cjsKLQot
ICAgIFBBU19BU1NFUlQoaW5kZXggPCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9y
X2luc3RhbmNlLnNpemUpOwotICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19iaWFz
aW5nX2RpcmVjdG9yeV9wdHJfbG9hZCgKLSAgICAgICAgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9y
aWVzX3ZlY3Rvcl9nZXRfcHRyKAotICAgICAgICAgICAgJnBhc19hbGxfYmlhc2luZ19kaXJlY3Rv
cmllc192ZWN0b3JfaW5zdGFuY2UsIGluZGV4KSk7Ci0KLSAgICBjdXJyZW50X2hpZ2hfd2F0ZXJt
YXJrID0gZGlyZWN0b3J5LT5jdXJyZW50X2hpZ2hfd2F0ZXJtYXJrOwotCi0gICAgaWYgKGN1cnJl
bnRfaGlnaF93YXRlcm1hcmspCi0gICAgICAgIGRhdGEtPnNob3VsZF9nb19hZ2FpbiA9IHRydWU7
Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8qIFdlJ3ZlIGdvdCB0byBjbGVhciB0aGUgYml0IGJlZm9y
ZSB3ZSBkbyBhbnl0aGluZyBlbHNlLiBPdGhlcndpc2UgdGhlcmUncyBhIHJhY2Ugd2hlcmUgd2UK
LSAgICAgICAgICAgbWlnaHQgbWlzcyBhIG5vdGlmaWNhdGlvbiBhYm91dCBhY3RpdmF0aW9uLiAq
LwotICAgICAgICBwYXNfYml0dmVjdG9yX3NldF9hdG9taWNfaW5fd29yZCh3b3JkX3B0ciwgaW5k
ZXgsIGZhbHNlKTsKLSAgICB9Ci0gICAgCi0gICAgbGFyZ2VfZWxpZ2libGVfaGlnaF93YXRlcm1h
cmsgPSBkaXJlY3RvcnktPmVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlOwotICAgIGVsaWdp
YmxlX2hpZ2hfd2F0ZXJtYXJrID0gKHVuc2lnbmVkKWxhcmdlX2VsaWdpYmxlX2hpZ2hfd2F0ZXJt
YXJrOwotICAgIFBBU19BU1NFUlQoZWxpZ2libGVfaGlnaF93YXRlcm1hcmsgPT0gbGFyZ2VfZWxp
Z2libGVfaGlnaF93YXRlcm1hcmspOwotCi0gICAgZGlyZWN0b3J5LT5wcmV2aW91c19oaWdoX3dh
dGVybWFyayA9IGN1cnJlbnRfaGlnaF93YXRlcm1hcms7Ci0gICAgZGlyZWN0b3J5LT5jdXJyZW50
X2hpZ2hfd2F0ZXJtYXJrID0gMDsKLQotICAgIGlmIChjdXJyZW50X2hpZ2hfd2F0ZXJtYXJrIDwg
ZWxpZ2libGVfaGlnaF93YXRlcm1hcmspCi0gICAgICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9k
aWRfY3JlYXRlX2RlbHRhKGRpcmVjdG9yeSk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3Rh
dGljIGJvb2wgc2NhdmVuZ2VfYml0dmVjdG9yX3dvcmRfY2FsbGJhY2sodW5zaWduZWQqIHdvcmRf
cHRyLCBzaXplX3Qgd29yZF9pbmRleCwgdm9pZCogYXJnKQotewotICAgIHNjYXZlbmdlX2RhdGEq
IGRhdGE7Ci0gICAgYm9vbCByZXN1bHQ7Ci0KLSAgICBkYXRhID0gYXJnOwotICAgIGRhdGEtPndv
cmRfcHRyID0gd29yZF9wdHI7Ci0gICAgCi0gICAgcmVzdWx0ID0gcGFzX2JpdHZlY3Rvcl9mb3Jf
ZWFjaF9zZXRfYml0KHNjYXZlbmdlX2Zvcl9lYWNoX3NldF9iaXRfYml0c19zb3VyY2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRfaW5kZXgsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRfaW5kZXggKyAxLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2F2ZW5nZV9mb3Jf
ZWFjaF9zZXRfYml0X2NhbGxiYWNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkYXRhKTsKLSAgICBQQVNfQVNTRVJUKHJlc3VsdCk7Ci0gICAgCi0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLWJvb2wgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3NjYXZlbmdl
KHZvaWQpCi17Ci0gICAgc2NhdmVuZ2VfZGF0YSBkYXRhOwotICAgIHBhc19mb3VuZF9pbmRleCBy
ZXN1bHQ7Ci0KLSAgICBkYXRhLnNob3VsZF9nb19hZ2FpbiA9IGZhbHNlOwotICAgIGRhdGEud29y
ZF9wdHIgPSBOVUxMOwotCi0gICAgcmVzdWx0ID0gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVz
X2FjdGl2ZV9iaXR2ZWN0b3JfaXRlcmF0ZSgKLSAgICAgICAgJnBhc19hbGxfYmlhc2luZ19kaXJl
Y3Rvcmllc19hY3RpdmVfYml0dmVjdG9yX2luc3RhbmNlLAotICAgICAgICAwLAotICAgICAgICBz
Y2F2ZW5nZV9iaXR2ZWN0b3Jfd29yZF9jYWxsYmFjaywKLSAgICAgICAgJmRhdGEpOwotCi0gICAg
UEFTX0FTU0VSVCghcmVzdWx0LmRpZF9zdWNjZWVkKTsKLQotICAgIHJldHVybiBkYXRhLnNob3Vs
ZF9nb19hZ2FpbjsKLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxs
X2JpYXNpbmdfZGlyZWN0b3JpZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmgJKG5vbmV4
aXN0ZW50KQpAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0FMTF9CSUFTSU5HX0RJUkVDVE9SSUVTX0gKLSNk
ZWZpbmUgUEFTX0FMTF9CSUFTSU5HX0RJUkVDVE9SSUVTX0gKLQotI2luY2x1ZGUgInBhc19iaWFz
aW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2Rp
cmVjdG9yeV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfc2VnbWVudGVkX3ZlY3Rvci5oIgotCi1QQVNf
QkVHSU5fRVhURVJOX0M7Ci0KLVBBU19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX2FsbF9i
aWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3IsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0KTsKLVBB
U19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3Zl
Y3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2Jp
YXNpbmdfZGlyZWN0b3J5X3B0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCk7Ci0K
LVBBU19BUEkgZXh0ZXJuIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVj
dG9yIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yX2luc3RhbmNl
OwotUEFTX0FQSSBleHRlcm4gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3RvciBwYXNf
YWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9yX2luc3RhbmNlOwotCi1QQVNfQVBJIHZvaWQg
cGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FwcGVuZChwYXNfYmlhc2luZ19kaXJlY3Rvcnkq
IGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgYm9vbCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNf
YWN0aXZhdGUocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIGJv
b2wgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3NjYXZlbmdlKHZvaWQpOwotCi1QQVNfRU5E
X0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0FMTF9CSUFTSU5HX0RJUkVDVE9SSUVTX0ggKi8K
LQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9oZWFwcy5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxf
aGVhcHMuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2FsbF9oZWFwcy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNCArMzYsMTIgQEAK
ICNpbmNsdWRlICJqaXRfaGVhcC5oIgogI2luY2x1ZGUgIm1pbmFsaWduMzJfaGVhcC5oIgogI2lu
Y2x1ZGUgInBhZ2VzaXplNjRrX2hlYXAuaCIKLSNpbmNsdWRlICJwYXNfYmlhc2luZ19kaXJlY3Rv
cnlfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfaGVhcC5oIgogI2luY2x1ZGUgInBh
c19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgogI2luY2x1ZGUgInBhc19sYXJn
ZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgogI2luY2x1ZGUgInBhc19wdHJfaGFzaF9zZXQuaCIKICNp
bmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCiAjaW5jbHVk
ZSAicGFzX3V0aWxpdHlfaGVhcC5oIgogI2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXBfY29uZmln
LmgiCkBAIC0yMjMsNDMgKzIyMSwxOCBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgdm9pZCogYXJn
OwogfSBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhOwogCi1zdGF0aWMgYm9vbCBm
b3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJh
Y2soCitzdGF0aWMgYm9vbCBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplX2RpcmVj
dG9yeV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKQogewogICAg
IGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGEqIGRhdGE7Ci0gICAgcGFzX3BhZ2Vf
c2hhcmluZ19wb29sKiBwb29sOwotICAgIHNpemVfdCBpbmRleDsKIAogICAgIFBBU19VTlVTRURf
UEFSQU0oaGVhcCk7CiAKICAgICBkYXRhID0gYXJnOwogCi0gICAgaWYgKCFkYXRhLT5jYWxsYmFj
aygmZGlyZWN0b3J5LT5iYXNlLCBkYXRhLT5hcmcpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBwb29sID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2JpYXNfc2hh
cmluZ19wb29sKGRpcmVjdG9yeSk7Ci0gICAgZm9yIChpbmRleCA9IHBhc19wYWdlX3NoYXJpbmdf
cG9vbF9udW1fcGFydGljaXBhbnRzKHBvb2wpOyBpbmRleC0tOykgewotICAgICAgICBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50IHBhcnRpY2lwYW50OwotICAgICAgICBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0KLSAgICAgICAgcGFydGlj
aXBhbnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZ2V0X3BhcnRpY2lwYW50KHBvb2wsIGluZGV4
KTsKLQotICAgICAgICBpZiAoIXBhcnRpY2lwYW50KQotICAgICAgICAgICAgY29udGludWU7Ci0K
LSAgICAgICAgUEFTX0FTU0VSVChwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9raW5k
KHBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAgICAgID09IHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnkpOwotCi0gICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5
ID0gcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KAotICAgICAgICAgICAg
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfcHRyKHBhcnRpY2lwYW50KSk7Ci0KLSAg
ICAgICAgaWYgKCFkYXRhLT5jYWxsYmFjaygmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGRhdGEt
PmFyZykpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIAotICAgIHJldHVy
biB0cnVlOworICAgIHJldHVybiBkYXRhLT5jYWxsYmFjaygmZGlyZWN0b3J5LT5iYXNlLCBkYXRh
LT5hcmcpOwogfQogCiBzdGF0aWMgYm9vbCBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9z
aGFyZWRfcGFnZV9kaXJlY3RvcnlfY2FsbGJhY2soCkBAIC0yODcsOCArMjYwLDggQEAgc3RhdGlj
IGJvb2wgZm9yX2VhY2hfc2VncmVnYXRlZF9kaXJlY3RvcgogCiAgICAgZGF0YSA9IGFyZzsKIAot
ICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkoCi0gICAgICAgICAgICBoZWFwLCBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEpKQorICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKKyAgICAgICAgICAgIGhlYXAsIGZvcl9l
YWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrLCBkYXRhKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFjb25maWctPmZvcl9lYWNoX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeSgKQEAgLTMyOCwxMyArMzAxLDggQEAgc3RhdGljIHZvaWQgZHVtcF9k
aXJlY3RvcnlfbmljZWx5KHBhc19zZQogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCksCiAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9y
eS0+ZGlyZWN0b3J5X2tpbmQpKTsKICAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tp
bmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5k
OgotICAgICAgICBwYXNfbG9nKCIsICV1IiwgKChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqKWRpcmVjdG9yeSktPm9iamVjdF9zaXplKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBwYXNf
bG9nKCIsICV1IiwKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKLSAgICAgICAgICAgICAgICAgICAgJigocGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVjdG9yeSktPnBhcmVudF9nbG9iYWwpLT5v
YmplY3Rfc2l6ZSk7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5k
OgorICAgICAgICBwYXNfbG9nKCIsICV1IiwgKChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSopZGlyZWN0b3J5KS0+b2JqZWN0X3NpemUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9raW5kOgogICAgICAgICBicmVhazsK
QEAgLTQ0NSw5ICs0MTMsNiBAQCBzdGF0aWMgYm9vbCBjb21wdXRlX3RvdGFsX25vbl91dGlsaXR5
X3NlCiAgICAgc2l6ZV90IGluZGV4OwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBw
YWdlX2NvbmZpZzsKIAotICAgIGlmIChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09IHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQpCi0gICAgICAgIHJldHVybiB0cnVlOwot
CiAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2lzX3V0aWxpdHkoZGly
ZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX21hZ2F6aW5lcy5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxf
bWFnYXppbmVzLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19hbGxfbWFnYXppbmVzLmMJKG5vbmV4aXN0ZW50KQpAQCAtMSw4OCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQot
I2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRl
ICJwYXNfYWxsX21hZ2F6aW5lcy5oIgotCi0jaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgotI2lu
Y2x1ZGUgInBhc19tYWdhemluZS5oIgotI2luY2x1ZGUgInBhc19tb25vdG9uaWNfdGltZS5oIgot
I2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oIgotCi0jaWYgZGVmaW5lZChf
X2hhc19pbmNsdWRlKSAmJiBfX2hhc19pbmNsdWRlKDxvcy90c2QuaD4pCi0jaW5jbHVkZSA8b3Mv
dHNkLmg+Ci0jZGVmaW5lIFBBU19IQVZFX09TX1RTRCAxCi0jZWxzZQotI2RlZmluZSBQQVNfSEFW
RV9PU19UU0QgMAotI2VuZGlmCi0KLXBhc19hbGxfbWFnYXppbmVzX3ZlY3RvciBwYXNfYWxsX21h
Z2F6aW5lc192ZWN0b3JfaW5zdGFuY2UgPSBQQVNfSU1NVVRBQkxFX1ZFQ1RPUl9JTklUSUFMSVpF
UjsKLXVuc2lnbmVkIHBhc19hbGxfbWFnYXppbmVzX2ZvcmNlZF9jcHVfbnVtYmVyID0gVUlOVF9N
QVg7Ci0KLXBhc19tYWdhemluZSogcGFzX2FsbF9tYWdhemluZXNfZ2V0X2N1cnJlbnQodm9pZCkK
LXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgdW5z
aWduZWQgY3B1OwotICAgIHVuc2lnbmVkIHNpemU7Ci0KLSAgICBjcHUgPSBwYXNfYWxsX21hZ2F6
aW5lc19mb3JjZWRfY3B1X251bWJlcjsKLSAgICBpZiAoY3B1ID09IFVJTlRfTUFYKSB7Ci0jaWYg
UEFTX0hBVkVfT1NfVFNECi0gICAgICAgIGNwdSA9IF9vc19jcHVfbnVtYmVyKCk7Ci0jZWxzZQot
ICAgICAgICBjcHUgPSAwOyAvKiBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gYmV0dGVy
IHRoYW4gdGhpcyEgKi8KLSNlbmRpZgotICAgIH0KLQotICAgIGlmICh2ZXJib3NlKQotICAgICAg
ICBwYXNfbG9nKCJjcHUgPSAldVxuIiwgY3B1KTsKLQotICAgIHNpemUgPSBwYXNfYWxsX21hZ2F6
aW5lc192ZWN0b3JfaW5zdGFuY2Uuc2l6ZTsKLQotICAgIGlmIChQQVNfTElLRUxZKGNwdSA8IHNp
emUpKQotICAgICAgICByZXR1cm4gcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2dldCgmcGFzX2Fs
bF9tYWdhemluZXNfdmVjdG9yX2luc3RhbmNlICsgcGFzX2RlcGVuZChzaXplKSwgY3B1KTsKLQot
ICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotCi0gICAgd2hpbGUgKGNwdSA+PSBwYXNfYWxsX21h
Z2F6aW5lc192ZWN0b3JfaW5zdGFuY2Uuc2l6ZSkgewotICAgICAgICBwYXNfbWFnYXppbmUqIG1h
Z2F6aW5lOwotCi0gICAgICAgIG1hZ2F6aW5lID0gcGFzX21hZ2F6aW5lX2NyZWF0ZShwYXNfYWxs
X21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2Uuc2l6ZSk7Ci0gICAgICAgIAotICAgICAgICBwYXNf
YWxsX21hZ2F6aW5lc192ZWN0b3JfYXBwZW5kKCZwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5z
dGFuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFnYXppbmUs
IHBhc19sb2NrX2lzX2hlbGQpOwotICAgIH0KLQotICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7
Ci0KLSAgICBQQVNfQVNTRVJUKGNwdSA8IHBhc19hbGxfbWFnYXppbmVzX3ZlY3Rvcl9pbnN0YW5j
ZS5zaXplKTsKLSAgICByZXR1cm4gcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2dldCgmcGFzX2Fs
bF9tYWdhemluZXNfdmVjdG9yX2luc3RhbmNlLCBjcHUpOwotfQotCi0jZW5kaWYgLyogTElCUEFT
X0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19h
bGxfbWFnYXppbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2FsbF9tYWdhemluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuaAkobm9uZXhpc3RlbnQp
CkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19BTExfTUFHQVpJTkVTX0gKLSNkZWZpbmUgUEFTX0FM
TF9NQUdBWklORVNfSAotCi0jaW5jbHVkZSAicGFzX2ltbXV0YWJsZV92ZWN0b3IuaCIKLQotUEFT
X0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX21hZ2F6aW5lOwotdHlwZWRlZiBzdHJ1Y3Qg
cGFzX21hZ2F6aW5lIHBhc19tYWdhemluZTsKLQotUEFTX0RFQ0xBUkVfSU1NVVRBQkxFX1ZFQ1RP
UihwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19tYWdhemluZSopOwotCi1QQVNfQVBJIGV4dGVybiBwYXNfYWxsX21hZ2F6aW5lc192ZWN0
b3IgcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2luc3RhbmNlOwotUEFTX0FQSSBleHRlcm4gdW5z
aWduZWQgcGFzX2FsbF9tYWdhemluZXNfZm9yY2VkX2NwdV9udW1iZXI7Ci0KLVBBU19BUEkgcGFz
X21hZ2F6aW5lKiBwYXNfYWxsX21hZ2F6aW5lc19nZXRfY3VycmVudCh2b2lkKTsKLQotUEFTX0VO
RF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19BTExfTUFHQVpJTkVTX0ggKi8KLQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9j
YXRpb25fcmVzdWx0LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5jCShub25leGlzdGVudCkKQEAgLTEs
NDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1
ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIgotCi12b2lkIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF96ZXJvKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCogcmVzdWx0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKLXsKLSAgICBpZiAoIXJlc3VsdC0+emVyb19tb2Rl
ICYmIHJlc3VsdC0+ZGlkX3N1Y2NlZWQpIHsKLSAgICAgICAgcGFzX3plcm9fbWVtb3J5KCh2b2lk
KilyZXN1bHQtPmJlZ2luLCBzaXplKTsKLSAgICAgICAgcmVzdWx0LT56ZXJvX21vZGUgPSBwYXNf
emVyb19tb2RlX2lzX2FsbF96ZXJvOwotICAgIH0KLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFC
TEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2Nh
dGlvbl9yZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9jYXRpb25fcmVzdWx0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFBBU19BTExPQ0FUSU9OX1JFU1VM
VF9ICiAjZGVmaW5lIFBBU19BTExPQ0FUSU9OX1JFU1VMVF9ICiAKKyNpbmNsdWRlIDxlcnJuby5o
PgogI2luY2x1ZGUgInBhc191dGlscy5oIgogI2luY2x1ZGUgInBhc196ZXJvX21vZGUuaCIKIApA
QCAtMzgsMTEgKzM5LDEzIEBAIHR5cGVkZWYgc3RydWN0IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBw
YXMKICAgIHRvIHNlcGFyYXRlIG91dCB0aGUgYWxsb2NhdGlvbiByZXN1bHQgc3RhdHVzIGZyb20g
dGhlIHBvaW50ZXIgdG8gbWFrZSBjb21waWxlciB0cmFuc2Zvcm1hdGlvbnMKICAgIG9uIHRoZSBh
bGxvY2F0aW9uIGZhc3QgcGF0aCB3b3JrLiAqLwogc3RydWN0IHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCB7CisgICAgdWludHB0cl90IGJlZ2luOwogICAgIGJvb2wgZGlkX3N1Y2NlZWQ7CiAgICAgcGFz
X3plcm9fbW9kZSB6ZXJvX21vZGU7Ci0gICAgdWludHB0cl90IGJlZ2luOwogfTsKIAordHlwZWRl
ZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyKShw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KTsKKwogc3RhdGljIGlubGluZSBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHQgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKHZvaWQpCiB7
CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKQEAgLTY5LDggKzcyLDM5IEBAIHN0
YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHBhc18KICAgICAgICAgYmVnaW4sIHBh
c196ZXJvX21vZGVfbWF5X2hhdmVfbm9uX3plcm8pOwogfQogCi1QQVNfQVBJIHZvaWQgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X3plcm8ocGFzX2FsbG9jYXRpb25fcmVzdWx0KiByZXN1bHQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpOworc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2FsbG9jYXRpb25f
cmVzdWx0X2lkZW50aXR5KHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCit7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdAorcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8ocGFzX2FsbG9jYXRpb25fcmVzdWx0
IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQoreworICAg
IGlmIChyZXN1bHQuZGlkX3N1Y2NlZWQKKyAgICAgICAgJiYgcmVzdWx0Lnplcm9fbW9kZSA9PSBw
YXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvKSB7CisgICAgICAgIHBhc196ZXJvX21lbW9y
eSgodm9pZCopcmVzdWx0LmJlZ2luLCBzaXplKTsKKyAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3plcm9fbW9kZSgKKyAgICAgICAgICAgIHJl
c3VsdC5iZWdpbiwgcGFzX3plcm9fbW9kZV9pc19hbGxfemVybyk7CisgICAgfQorICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQKK3Bhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8ocGFzX2FsbG9jYXRpb25fcmVz
dWx0IHJlc3VsdCkKK3sKKyAgICBpZiAoIXJlc3VsdC5kaWRfc3VjY2VlZCkKKyAgICAgICAgZXJy
bm8gPSBFTk9NRU07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNo
X29uX2Vycm9yKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCit7CisgICAgUEFTX0FTU0VS
VChyZXN1bHQuZGlkX3N1Y2NlZWQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CiAKIFBBU19FTkRf
RVhURVJOX0M7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
YXNlbGluZV9hbGxvY2F0b3IuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmMJKHJldmlzaW9uIDI4MjIzOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3Iu
Ywkod29ya2luZyBjb3B5KQpAQCAtMjksMTYgKzI5LDE2IEBACiAKICNpbmNsdWRlICJwYXNfYmFz
ZWxpbmVfYWxsb2NhdG9yLmgiCiAKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5o
IgogCiB2b2lkIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfYXR0YWNoX2RpcmVjdG9yeShwYXNfYmFz
ZWxpbmVfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgUEFTX0FTU0VS
VCghYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3KTsKICAgICAKICAgICBQQVNfQVNTRVJUKAog
ICAgICAgICBQQVNfQkFTRUxJTkVfTE9DQUxfQUxMT0NBVE9SX1NJWkUKLSAgICAgICAgPj0gcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRp
cmVjdG9yeSkpOworICAgICAgICA+PSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2Nh
bF9hbGxvY2F0b3Jfc2l6ZShkaXJlY3RvcnkpKTsKICAgICAKICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2NvbnN0cnVjdCgmYWxsb2NhdG9yLT51LmFsbG9jYXRvciwgZGlyZWN0b3J5KTsKIH0KQEAg
LTUwLDcgKzUwLDYgQEAgdm9pZCBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlYwog
ICAgICAgICAmYWxsb2NhdG9yLT51LmFsbG9jYXRvciwKICAgICAgICAgcGFzX2xvY2tfbG9ja19t
b2RlX2xvY2ssCiAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLSAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yX2Rlc3RydWN0KCZhbGxvY2F0b3ItPnUuYWxsb2NhdG9yKTsKICAgICBwYXNfemVy
b19tZW1vcnkoJmFsbG9jYXRvci0+dS5hbGxvY2F0b3IsIHNpemVvZihwYXNfbG9jYWxfYWxsb2Nh
dG9yKSk7IC8qIERvZXMgbm90IHplcm8gdGhlIGJpdHMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3
aGljaCBpcyBPSy4gKi8KIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmgJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxv
Y2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3QgcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvciB7CiAgICAgfSkKIAogUEFTX0FQSSB2b2lkIHBhc19iYXNlbGluZV9hbGxv
Y2F0b3JfYXR0YWNoX2RpcmVjdG9yeShwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBhbGxvY2F0b3Is
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKIFBBU19BUEkgdm9pZCBwYXNfYmFzZWxp
bmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlY3RvcnkocGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogYWxs
b2NhdG9yKTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
YXNpbmdfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9yeS5jCShu
b25leGlzdGVudCkKQEAgLTEsMTQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYg
TElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeS5oIgotCi0j
aW5jbHVkZSAicGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmgiCi0jaW5jbHVkZSAicGFzX2Jp
YXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKLSNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKLQotdm9pZCBwYXNfYmlh
c2luZ19kaXJlY3RvcnlfY29uc3RydWN0KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaWFzaW5nX2RpcmVj
dG9yeV9raW5kIGtpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgbWFnYXppbmVfaW5kZXgpCi17Ci0gICAgcGFzX3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1
Y3QoJmRpcmVjdG9yeS0+ZWxpZ2libGVfaGlnaF93YXRlcm1hcmssIDApOwotICAgIAotICAgIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9hZF93aXRoX3VzZV9lcG9jaF9jb25zdHJ1
Y3QoJmRpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3BheWxvYWQpOwotCi0gICAgZGlyZWN0b3J5LT5j
dXJyZW50X2hpZ2hfd2F0ZXJtYXJrID0gMDsKLSAgICBkaXJlY3RvcnktPnByZXZpb3VzX2hpZ2hf
d2F0ZXJtYXJrID0gMDsKLQotICAgIGRpcmVjdG9yeS0+aW5kZXhfaW5fYWxsID0gMDsKLSAgICAK
LSAgICBkaXJlY3RvcnktPmtpbmQgPSBraW5kOwotCi0gICAgcGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzX2FwcGVuZChkaXJlY3RvcnkpOwotCi0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2Fk
ZF9hdF9pbmRleCgKLSAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3Bv
b2woZGlyZWN0b3J5KSwKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVh
dGUoCi0gICAgICAgICAgICBkaXJlY3RvcnksIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
Ymlhc2luZ19kaXJlY3RvcnkpLAotICAgICAgICBtYWdhemluZV9pbmRleCk7Ci19Ci0KLXBhc19w
YWdlX3NoYXJpbmdfcG9vbCogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3Bvb2wo
cGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgaWYgKHBhc19pc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KGRpcmVjdG9yeSkpIHsKLSAgICAgICAgcmV0dXJuIHBh
c19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZF9ub25fbnVsbCgKLSAg
ICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAgICAg
ICAgICZwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAg
ICAgICAgICAgICAgICBkaXJlY3RvcnkpLT5wYXJlbnRfZ2xvYmFsKS0+ZGF0YSktPmJpYXNfc2hh
cmluZ19wb29sKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vf
c2hhcmluZ19wb29sX3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAmcGFzX2NvbXBhY3RfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmcGFz
X3Vud3JhcF9iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAgICAgICAgZGlyZWN0
b3J5KS0+cGFyZW50X2dsb2JhbCktPmJpYXNfc2hhcmluZ19wb29sKTsKLX0KLQotdm9pZCBwYXNf
Ymlhc2luZ19kaXJlY3RvcnlfZGlkX2NyZWF0ZV9kZWx0YShwYXNfYmlhc2luZ19kaXJlY3Rvcnkq
IGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2w7Ci0gICAgCi0g
ICAgcG9vbCA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9nZXRfc2hhcmluZ19wb29sKGRpcmVjdG9y
eSk7Ci0gICAgCi0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEoCi0g
ICAgICAgIHBvb2wsCi0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRl
KAotICAgICAgICAgICAgZGlyZWN0b3J5LAotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSkpOwotfQotCi1wYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfdGFrZV9yZXN1bHQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfbGFzdF91bnVzZWQoCi0g
ICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgaWYgKHBhc19pc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KGRpcmVjdG9yeSkpIHsKLSAgICAgICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfbGFzdF91bnVzZWQoCi0gICAg
ICAgICAgICBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5
KSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfdGFr
ZV9sYXN0X3VudXNlZCgKLSAgICAgICAgcGFzX3Vud3JhcF9iaXRmaXRfYmlhc2luZ19kaXJlY3Rv
cnkoZGlyZWN0b3J5KSk7Ci19Ci0KLXZvaWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2RpZF91c2Vf
aW5kZXhfc2xvdyhwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAg
c2l6ZV90IGxhcmdlX2luZGV4X3BsdXNfb25lOwotICAgIHVuc2lnbmVkIGluZGV4X3BsdXNfb25l
OwotICAgIGJvb2wgZGlkX292ZXJmbG93OwotCi0gICAgZGlkX292ZXJmbG93ID0gX19idWlsdGlu
X2FkZF9vdmVyZmxvdyhpbmRleCwgMSwgJmxhcmdlX2luZGV4X3BsdXNfb25lKTsKLSAgICBQQVNf
QVNTRVJUKCFkaWRfb3ZlcmZsb3cpOwotICAgIGluZGV4X3BsdXNfb25lID0gKHVuc2lnbmVkKWxh
cmdlX2luZGV4X3BsdXNfb25lOwotICAgIFBBU19BU1NFUlQoaW5kZXhfcGx1c19vbmUgPT0gbGFy
Z2VfaW5kZXhfcGx1c19vbmUpOwotICAgIGRpcmVjdG9yeS0+Y3VycmVudF9oaWdoX3dhdGVybWFy
ayA9IGluZGV4X3BsdXNfb25lOwotICAgIHBhc19mZW5jZSgpOwotICAgIHBhc19hbGxfYmlhc2lu
Z19kaXJlY3Rvcmllc19hY3RpdmF0ZShkaXJlY3RvcnkpOwotfQotCi12b2lkIHBhc19iaWFzaW5n
X2RpcmVjdG9yeV9pbmRleF9kaWRfYmVjb21lX2VsaWdpYmxlKHBhc19iaWFzaW5nX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAgc2l6ZV90IHdhdGVybWFya19pbmRleDsK
LSAgICBib29sIGRpZF9vdmVyZmxvdzsKLSAgICBib29sIHNob3VsZF9ub3RpZnlfZGVsdGE7Ci0K
LSAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1aWx0aW5fYWRkX292ZXJmbG93KGluZGV4LCAxLCAmd2F0
ZXJtYXJrX2luZGV4KTsKLSAgICBQQVNfQVNTRVJUKCFkaWRfb3ZlcmZsb3cpOwotCi0gICAgc2hv
dWxkX25vdGlmeV9kZWx0YSA9Ci0gICAgICAgIHBhc192ZXJzaW9uZWRfZmllbGRfbWF4aW1pemUo
Ci0gICAgICAgICAgICAmZGlyZWN0b3J5LT5lbGlnaWJsZV9oaWdoX3dhdGVybWFyaywgd2F0ZXJt
YXJrX2luZGV4KQotICAgICAgICA8IHdhdGVybWFya19pbmRleDsKLQotICAgIGlmIChzaG91bGRf
bm90aWZ5X2RlbHRhKSB7Ci0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcG9vbDsKLQot
ICAgICAgICBwb29sID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3Bvb2woZGly
ZWN0b3J5KTsKLQotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0
YSgKLSAgICAgICAgICAgIHBvb2wsCi0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRp
Y2lwYW50X2NyZWF0ZSgKLSAgICAgICAgICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgICAgICAg
ICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSkpOwotICAg
IH0KLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3Rvcnku
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMjMgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5k
ZWYgUEFTX0JJQVNJTkdfRElSRUNUT1JZX0gKLSNkZWZpbmUgUEFTX0JJQVNJTkdfRElSRUNUT1JZ
X0gKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmgiCi0jaW5jbHVkZSAi
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oIgotI2luY2x1ZGUgInBhc192ZXJzaW9uZWRf
ZmllbGQuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2JpYXNpbmdfZGly
ZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYmlhc2lu
Z19kaXJlY3RvcnkgcGFzX2JpYXNpbmdfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2Jp
dGZpdF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5OwotdHlw
ZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3Rvcnk7Ci0KLXN0cnVjdCBwYXNfYmlhc2luZ19kaXJlY3Rvcnkgewot
ICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZWxpZ2libGVfaGlnaF93YXRlcm1hcms7Ci0gICAgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkX3dpdGhfdXNlX2Vwb2NoIGJpYXNfc2hh
cmluZ19wYXlsb2FkOwotICAgIHVuc2lnbmVkIGN1cnJlbnRfaGlnaF93YXRlcm1hcms7Ci0gICAg
dW5zaWduZWQgcHJldmlvdXNfaGlnaF93YXRlcm1hcms7Ci0gICAgdW5zaWduZWQgaW5kZXhfaW5f
YWxsIDogMzE7Ci0gICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQga2luZCA6IDE7Ci19Owot
Ci1QQVNfQVBJIHZvaWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2NvbnN0cnVjdChwYXNfYmlhc2lu
Z19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kIGtpbmQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBtYWdhemluZV9pbmRl
eCk7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfaXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICByZXR1cm4gZGly
ZWN0b3J5LT5raW5kID09IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9zZWdyZWdhdGVkX2tpbmQ7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfaXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KHBh
c19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiAhcGFzX2lzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5KTsKLX0KLQotc3RhdGljIGlubGlu
ZSB1bnNpZ25lZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVfaW5kZXgocGFzX2JpYXNp
bmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcmV0dXJuIGRpcmVjdG9yeS0+Ymlhc19z
aGFyaW5nX3BheWxvYWQuYmFzZS5pbmRleF9pbl9zaGFyaW5nX3Bvb2w7Ci19Ci0KLS8qIEFsbCB2
aWV3cyBhdCBpbmRpY2VzIGJlbG93IHRoZSBvd25lcnNoaXAgdGhyZXNob2xkIGFyZSBnb2luZyB0
byBiZSBrZXB0IGZyb20gdGhlIGdsb2JhbAotICAgZGlyZWN0b3J5LiAqLwotc3RhdGljIGlubGlu
ZSB1bnNpZ25lZCBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfb3duZXJzaGlwX3RocmVzaG9sZChwYXNf
Ymlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICByZXR1cm4gUEFTX01BWChkaXJl
Y3RvcnktPmN1cnJlbnRfaGlnaF93YXRlcm1hcmssCi0gICAgICAgICAgICAgICAgICAgZGlyZWN0
b3J5LT5wcmV2aW91c19oaWdoX3dhdGVybWFyayk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWdu
ZWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3VudXNlZF9zcGFuX3NpemUocGFzX2JpYXNpbmdfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgdW5zaWduZWQgb3duZXJzaGlwX3RocmVzaG9sZDsK
LSAgICBzaXplX3QgZWxpZ2libGVfdGhyZXNob2xkOwotICAgIHVuc2lnbmVkIHNtYWxsX2VsaWdp
YmxlX3RocmVzaG9sZDsKLQotICAgIC8qIFRoaXMgaXMgd3JpdHRlbiBzbyB0aGF0IGl0IHJldHVy
bnMgc29tZXRoaW5nIHNlbnNpYmxlIGV2ZW4gaW4gY2FzZSBvZiByYWNlcy4gKi8KLSAgICBvd25l
cnNoaXBfdGhyZXNob2xkID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X293bmVyc2hpcF90aHJlc2hv
bGQoZGlyZWN0b3J5KTsKLSAgICBlbGlnaWJsZV90aHJlc2hvbGQgPSBkaXJlY3RvcnktPmVsaWdp
YmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlOwotCi0gICAgc21hbGxfZWxpZ2libGVfdGhyZXNob2xk
ID0gKHVuc2lnbmVkKWVsaWdpYmxlX3RocmVzaG9sZDsKLSAgICBQQVNfQVNTRVJUKHNtYWxsX2Vs
aWdpYmxlX3RocmVzaG9sZCA9PSBlbGlnaWJsZV90aHJlc2hvbGQpOwotCi0gICAgaWYgKG93bmVy
c2hpcF90aHJlc2hvbGQgPiBzbWFsbF9lbGlnaWJsZV90aHJlc2hvbGQpCi0gICAgICAgIHJldHVy
biAwOyAvKiBUaGlzIGlzIHRvdGFsbHkgcG9zc2libGUgLSBvd25lcnNoaXAgYW5kIGVsaWdpYmxp
dHkgZmxvYXQgaW5kZXBlbmRlbnRseS4gKi8KLQotICAgIHJldHVybiBzbWFsbF9lbGlnaWJsZV90
aHJlc2hvbGQgLSBvd25lcnNoaXBfdGhyZXNob2xkOwotfQotCi1QQVNfQVBJIHBhc19wYWdlX3No
YXJpbmdfcG9vbCogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3Bvb2wocGFzX2Jp
YXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X2RpZF9jcmVhdGVfZGVsdGEocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpOwotCi1QQVNfQVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNfYmlh
c2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgKLSAgICBwYXNfYmlhc2luZ19kaXJlY3Rv
cnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZGlk
X3VzZV9pbmRleF9zbG93KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGlu
ZGV4KTsKLQotc3RhdGljIGlubGluZSB2b2lkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfdXNl
X2luZGV4KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBpbmRleCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50
NjRfdCBlcG9jaCkKLXsKLSAgICBpZiAoUEFTX1VOTElLRUxZKGluZGV4ID49IGRpcmVjdG9yeS0+
Y3VycmVudF9oaWdoX3dhdGVybWFyaykpCi0gICAgICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9k
aWRfdXNlX2luZGV4X3Nsb3coZGlyZWN0b3J5LCBpbmRleCk7Ci0KLSAgICBkaXJlY3RvcnktPmJp
YXNfc2hhcmluZ19wYXlsb2FkLnVzZV9lcG9jaCA9IGVwb2NoOwotfQotCi1QQVNfQVBJIHZvaWQg
cGFzX2JpYXNpbmdfZGlyZWN0b3J5X2luZGV4X2RpZF9iZWNvbWVfZWxpZ2libGUocGFzX2JpYXNp
bmdfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4KTsKLQotUEFTX0VORF9F
WFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19CSUFTSU5HX0RJUkVDVE9SWV9IICovCi0KSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9yeV9p
bmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGlu
ZXMuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQklBU0lOR19ESVJFQ1RPUllf
SU5MSU5FU19ICi0jZGVmaW5lIFBBU19CSUFTSU5HX0RJUkVDVE9SWV9JTkxJTkVTX0gKLQotI2lu
Y2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeS5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIHBhc191bndyYXBfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSgKLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBQ
QVNfQVNTRVJUKHBhc19pc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KGRpcmVjdG9yeSkp
OwotICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqKSgKLSAgICAg
ICAgKHVpbnRwdHJfdClkaXJlY3RvcnkgLSBQQVNfT0ZGU0VUT0YocGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3RvcnksIGJpYXNpbmdfYmFzZSkpOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19i
aXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIHBhc191bndyYXBfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5KAotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIFBBU19B
U1NFUlQocGFzX2lzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeShkaXJlY3RvcnkpKTsKLSAgICBy
ZXR1cm4gKHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqKSgKLSAgICAgICAgKHVpbnRwdHJf
dClkaXJlY3RvcnkgLSBQQVNfT0ZGU0VUT0YocGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSwg
Ymlhc2luZ19iYXNlKSk7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNf
QklBU0lOR19ESVJFQ1RPUllfSU5MSU5FU19IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuYwkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
dGZpdF9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1
ZGUgInBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfdmlld19p
bmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX2Vwb2NoLmgiCi0jaW5jbHVkZSAicGFzX3N1YnBhZ2Vf
bWFwLmgiCiAKIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGFzX2JpdGZp
dF92aWV3KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yKiBsb2NhbCwKQEAgLTQzLDEwICs0Miw5IEBAIGJvb2wgcGFzX2JpdGZp
dF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGEKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CiAgICAgCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnk7Ci0gICAgYm9vbCB1c2VzX3N1YnBhZ2VzOworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5
KiBkaXJlY3Rvcnk7CiAKLSAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9wdHJfbG9hZCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSk7CisgICAgZGlyZWN0
b3J5ID0gcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZCgmdmlldy0+ZGlyZWN0
b3J5KTsKIAogICAgIC8qIFdlJ3JlIGFsbW9zdCBjZXJ0YWlubHkgZ29ubmEgY29tbWl0IGEgcGFn
ZSwgc28gbGV0J3MganVzdCBnZXQgdGhpcyBvdXQgb2YgdGhlIHdheS4gV2UgbmVlZCB0bwogICAg
ICAgIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrIHRvIGRvIHRoaXMuIEJ1dCwgd2UgY2FuJ3Qg
ZG8gaXQgYXQgYWxsIGlmIHdlIGFscmVhZHkgaG9sZCB0aGUgY29tbWl0CkBAIC01NSwxNiArNTMs
MTMgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYQogICAgICAgICBw
YXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKICAgICAgICAgcGFzX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9yX3BhZ2VfY29uZmlnKAogICAgICAgICAgICAg
Y29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgJmNvbmZpZy0+YmFzZSwgcGFzX2xvY2tfaXNfbm90X2hl
bGQsIE5VTEwsIDApOwotICAgICAgICBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9j
ayh2aWV3KTsKKyAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwog
ICAgIH0KIAotICAgIHVzZXNfc3VicGFnZXMgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3VzZXNf
c3VicGFnZXMoKmNvbmZpZyk7Ci0KICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygi
Y29tbWl0dGluZyBiaXRmaXQgdmlldyFcbiIpOwogCiAgICAgZm9yICg7OykgewotICAgICAgICBw
YXNfc3VicGFnZV9tYXBfZW50cnkqIHN1YnBhZ2VfZW50cnk7CiAgICAgICAgIHBhc19sb2NrKiBj
b21taXRfbG9jazsKICAgICAgICAgYm9vbCBoYXNfcGFnZV9ib3VuZGFyeTsKICAgICAgICAgCkBA
IC05MSw3ICs4Niw3IEBAIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGEK
ICAgICAgICAgICAgICAgICBwYXNfbG9nKCJuZWVkIHRvIGFsbG9jYXRlIG5ldyBwYWdlLlxuIik7
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotICAgICAg
ICAgICAgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7CisgICAgICAg
ICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CiAgICAgICAgICAgICBp
ZiAodmlldy0+cGFnZV9ib3VuZGFyeSkgewogICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tf
dW5sb2NrKCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0xMDcsMjMgKzEwMiwxNCBA
QCBib29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KHBhCiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91bmRhcnkgPSBjb25maWct
PmJhc2UucGFnZV9hbGxvY2F0b3IoCi0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGxvY2FsLT52aWV3KS0+aGVhcCk7CisgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkobG9jYWwtPnZp
ZXcpLT5oZWFwKTsKICAgICAgICAgICAgIGRpZF9zdWNjZWVkID0gISF2aWV3LT5wYWdlX2JvdW5k
YXJ5OwogCiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBwYXNfbG9n
KCJwYWdlX2JvdW5kYXJ5ID0gJXAsIGRpZF9zdWNjZWVkID0gJWRcbiIsIHZpZXctPnBhZ2VfYm91
bmRhcnksIGRpZF9zdWNjZWVkKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKGRpZF9z
dWNjZWVkKSB7CisgICAgICAgICAgICBpZiAoZGlkX3N1Y2NlZWQpCiAgICAgICAgICAgICAgICAg
Y29uZmlnLT5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcih2aWV3LT5wYWdlX2JvdW5kYXJ5LCBwYXNf
bG9ja19pc19oZWxkKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAodXNl
c19zdWJwYWdlcykgewotICAgICAgICAgICAgICAgICAgICBwYXNfc3VicGFnZV9tYXBfYWRkKAot
ICAgICAgICAgICAgICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfY29tbWl0dGVkLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNf
aGVsZCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwogCkBAIC0xMzcsMTYgKzEyMyw3IEBA
IGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGEKICAgICAgICAgICAgIHJl
dHVybiBkaWRfc3VjY2VlZDsKICAgICAgICAgfQogCi0gICAgICAgIGlmICh1c2VzX3N1YnBhZ2Vz
KSB7Ci0gICAgICAgICAgICAvKiBJdCdzIG5vdCBncmVhdCB0aGF0IHRoaXMgaGFzIHRvIGFjcXVp
cmUgdGhlIGhlYXAgbG9jaywgYnV0IHRoZW4gYWdhaW4gaWYgd2UncmUKLSAgICAgICAgICAgICAg
IGhlcmUgdGhlbiB3ZSdyZSBjb21taXR0ZWQgdG8gY29tbWl0dGluZyB0aGUgcGFnZSwgc28gaXQn
cyBwcm9iYWJseSBmaW5lLiAqLwotICAgICAgICAgICAgc3VicGFnZV9lbnRyeSA9IHBhc19zdWJw
YWdlX21hcF9nZXQoCi0gICAgICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwgY29uZmln
LT5iYXNlLnBhZ2Vfc2l6ZSwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgICAgICAgICAgY29t
bWl0X2xvY2sgPSAmc3VicGFnZV9lbnRyeS0+Y29tbWl0X2xvY2s7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBzdWJwYWdlX2VudHJ5ID0gTlVMTDsKLSAgICAgICAgICAgIGNvbW1pdF9s
b2NrID0gJnZpZXctPmNvbW1pdF9sb2NrOwotICAgICAgICB9CisgICAgICAgIGNvbW1pdF9sb2Nr
ID0gJnZpZXctPmNvbW1pdF9sb2NrOwogCiAgICAgICAgIHBhc19sb2NrX2xvY2tfY29uZGl0aW9u
YWxseShjb21taXRfbG9jaywgY29tbWl0X2xvY2tfaG9sZF9tb2RlKTsKIApAQCAtMTY5LDE4ICsx
NDYsMTEgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYQogICAgICAg
ICBQQVNfQVNTRVJUKHZpZXctPnBhZ2VfYm91bmRhcnkpOwogICAgICAgICBQQVNfQVNTRVJUKCF2
aWV3LT5pc19vd25lZCk7CiAKLSAgICAgICAgaWYgKHVzZXNfc3VicGFnZXMpIHsKLSAgICAgICAg
ICAgIHBhc19zdWJwYWdlX21hcF9lbnRyeV9jb21taXQoCi0gICAgICAgICAgICAgICAgc3VicGFn
ZV9lbnRyeSwKLSAgICAgICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5LAotICAgICAgICAg
ICAgICAgIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOwotICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCgKLSAgICAgICAgICAgICAgICB2aWV3LT5wYWdl
X2JvdW5kYXJ5LCBjb25maWctPmJhc2UucGFnZV9zaXplKTsKLSAgICAgICAgfQorICAgICAgICBw
YXNfcGFnZV9tYWxsb2NfY29tbWl0KAorICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwg
Y29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7CiAgICAgICAgIGNvbmZpZy0+YmFzZS5jcmVhdGVfcGFn
ZV9oZWFkZXIodmlldy0+cGFnZV9ib3VuZGFyeSwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwogCi0g
ICAgICAgIHBhc19iaXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHZpZXcpOworICAgICAg
ICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CiAKICAgICAgICAgUEFTX0FT
U0VSVCghdmlldy0+aXNfb3duZWQpOwogCkBAIC0xOTQsNyArMTY0LDcgQEAgYm9vbCBwYXNfYml0
Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYQogICAgICAgICBpZiAoUEFTX0RFQlVHX1NQRUNU
UlVNX1VTRV9GT1JfQ09NTUlUKSB7CiAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsK
ICAgICAgICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoCi0gICAgICAgICAgICAgICAgZGly
ZWN0b3J5LCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0sIGNv
bmZpZy0+YmFzZS5wYWdlX3NpemUpOworICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0sIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUp
OwogICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKICAgICAgICAgfQogICAgICAg
ICAKQEAgLTIxMiw3ICsxODIsNyBAQCBwYXNfYml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfYWxsb2Nh
dG9yX2ZpCiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBwYXNfYml0
Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3M7CiAgICAgcGFzX2JpdGZpdF92aWV3KiBuZXdfdmll
dzsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXggdmlld19kaXJlY3RvcnlfYW5k
X2luZGV4OworICAgIHVuc2lnbmVkIHZpZXdfaW5kZXg7CiAKICAgICBQQVNfVU5VU0VEX1BBUkFN
KGFsaWdubWVudCk7CiAKQEAgLTIyMiwxNCArMTkyLDkgQEAgcGFzX2JpdGZpdF92aWV3KiBwYXNf
Yml0Zml0X2FsbG9jYXRvcl9maQogCiAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYml0Zml0
X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmc2l6ZV9jbGFzcy0+ZGlyZWN0b3J5KTsKIAot
ICAgIC8qIElmIHdlJ3JlIGluIHRoZSB3cm9uZyBkaXJlY3RvcnksIHRoZW4gcmVnYXJkbGVzcyBv
ZiBhbnl0aGluZyBlbHNlIChhbGlnbm1lbnQgZXRjKSB3ZSBzaG91bGQKLSAgICAgICBqdXN0IGNs
ZWFuIHVwIHRoZSBhbGxvY2F0b3IgYW5kIGJhaWwuICovCi0gICAgdmlld19kaXJlY3RvcnlfYW5k
X2luZGV4ID0gcGFzX2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRleCh2aWV3
KTsKLSAgICBpZiAoZGlyZWN0b3J5ICE9IHZpZXdfZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3Rv
cnkpIHsKLSAgICAgICAgcGFzX2JpdGZpdF9hbGxvY2F0b3JfcmVzZXQoYWxsb2NhdG9yKTsKLSAg
ICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgIHJl
dHVybiBOVUxMOwotICAgIH0KKyAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2JpdGZpdF9kaXJl
Y3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSkgPT0gZGlyZWN0b3J5KTsK
KworICAgIHZpZXdfaW5kZXggPSB2aWV3LT5pbmRleDsKIAogICAgIC8qIElmIHdlJ3JlIHN0aWxs
IG9uIHRoZSB2aWV3IHRoYXQgdGhlIGFsbG9jYXRvciB3YXMgb24gYW5kIHdlIGZvdW5kIHRoYXQg
dGhpcyB2aWV3IG5vIGxvbmdlcgogICAgICAgIGhhcyBlbm91Z2ggbWF4X2ZyZWUgZm9yIG91ciBz
aXplIGNsYXNzLCB0aGVuIHRlbGwgZXZlcnlvbmUgYWJvdXQgdGhpcyBhbmQgYmFpbC4KQEAgLTI0
Niw3ICsyMTEsNyBAQCBwYXNfYml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpCiAg
ICAgICAgIFBBU19BU1NFUlQodmlldy0+cGFnZV9ib3VuZGFyeSk7CiAgICAgICAgIHBhc19iaXRm
aXRfcGFnZV9mb3JfYm91bmRhcnkodmlldy0+cGFnZV9ib3VuZGFyeSwgKmNvbmZpZyktPmRpZF9u
b3RlX21heF9mcmVlID0gZmFsc2U7CiAgICAgICAgIAotICAgICAgICBpbmRleCA9IHZpZXdfZGly
ZWN0b3J5X2FuZF9pbmRleC5pbmRleDsKKyAgICAgICAgaW5kZXggPSB2aWV3X2luZGV4OwogICAg
ICAgICAKICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0X3Byb2Nlc3NlZF9tYXhfZnJl
ZSgKICAgICAgICAgICAgIGRpcmVjdG9yeSwgaW5kZXgsIGxhcmdlc3RfYXZhaWxhYmxlID4+IGNv
bmZpZy0+YmFzZS5taW5fYWxpZ25fc2hpZnQsCkBAIC0yOTIsOCArMjU3LDcgQEAgcGFzX2JpdGZp
dF92aWV3KiBwYXNfYml0Zml0X2FsbG9jYXRvcl9maQogICAgICAgIFRoaXMgaXMgYW4gdW51c3Vh
bCBkZWdlbmVyYXRlIGNhc2UgdGhhdCBoYXBwZW5zIG9ubHkgZm9yIG1lbWFsaWduLiAqLwogICAg
IFBBU19BU1NFUlQoKHVuc2lnbmVkKXNpemUgPT0gc2l6ZSk7CiAgICAgbmV3X3ZpZXcgPSBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJlZV92aWV3KAotICAgICAgICBkaXJlY3Rvcnks
IGFsbG9jYXRvci0+Z2xvYmFsX3NpemVfY2xhc3MsCi0gICAgICAgIHZpZXdfZGlyZWN0b3J5X2Fu
ZF9pbmRleC5pbmRleCArIDEsICh1bnNpZ25lZClzaXplLCBjb25maWcpLnZpZXc7CisgICAgICAg
IGRpcmVjdG9yeSwgdmlld19pbmRleCArIDEsICh1bnNpZ25lZClzaXplLCBjb25maWcpLnZpZXc7
CiAgICAgUEFTX0FTU0VSVChuZXdfdmlldyk7CiAgICAgcmV0dXJuIG5ld192aWV3OwogfQpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2FsbG9jYXRvci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSwxOCArMzEsMTcgQEAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19iaXRmaXRf
YWxsb2NhdG9yOwotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3M7CitzdHJ1Y3Qg
cGFzX2JpdGZpdF9zaXplX2NsYXNzOwogc3RydWN0IHBhc19iaXRmaXRfcGFnZTsKIHN0cnVjdCBw
YXNfYml0Zml0X3NpemVfY2xhc3M7CiBzdHJ1Y3QgcGFzX2JpdGZpdF92aWV3OwogdHlwZWRlZiBz
dHJ1Y3QgcGFzX2JpdGZpdF9hbGxvY2F0b3IgcGFzX2JpdGZpdF9hbGxvY2F0b3I7Ci10eXBlZGVm
IHN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzIHBhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3MgcGFzX2JpdGZp
dF9zaXplX2NsYXNzOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlIHBhc19iaXRmaXRf
cGFnZTsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFzcyBwYXNfYml0Zml0X3Np
emVfY2xhc3M7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3ZpZXcgcGFzX2JpdGZpdF92aWV3
OwogCiBzdHJ1Y3QgcGFzX2JpdGZpdF9hbGxvY2F0b3IgewotICAgIHBhc19iaXRmaXRfZ2xvYmFs
X3NpemVfY2xhc3MqIGdsb2JhbF9zaXplX2NsYXNzOwogICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFz
cyogc2l6ZV9jbGFzczsKICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7CiAgICAgdW5zaWduZWQg
Y291bnRkb3duOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
dGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9h
bGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwyNyArMjgsMjcgQEAKIAog
I2luY2x1ZGUgInBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNf
Yml0Zml0X2FsbG9jYXRvci5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCIKKyNpbmNsdWRl
ICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfc2l6ZV9jbGFz
cy5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFz
X2JpdGZpdF92aWV3LmgiCiAjaW5jbHVkZSAicGFzX2RlYnVnX3NwZWN0cnVtLmgiCiAjaW5jbHVk
ZSAicGFzX2Vwb2NoLmgiCiAjaW5jbHVkZSAicGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3Vs
dC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxp
bmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5o
IgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfYml0Zml0
X2FsbG9jYXRvcl9yZXNldChwYXNfYml0Zml0X2FsbG9jYXRvciogYWxsb2NhdG9yKQogewotICAg
IGFsbG9jYXRvci0+Z2xvYmFsX3NpemVfY2xhc3MgPSBOVUxMOworICAgIGFsbG9jYXRvci0+c2l6
ZV9jbGFzcyA9IE5VTEw7CiAgICAgYWxsb2NhdG9yLT5zaXplX2NsYXNzID0gTlVMTDsKICAgICBh
bGxvY2F0b3ItPnZpZXcgPSBOVUxMOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2JpdGZp
dF9hbGxvY2F0b3JfYXNzZXJ0X3Jlc2V0KHBhc19iaXRmaXRfYWxsb2NhdG9yKiBhbGxvY2F0b3Ip
CiB7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3ItPmdsb2JhbF9zaXplX2NsYXNz
KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+c2l6ZV9jbGFzcyk7CiAgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3ItPnNpemVfY2xhc3MpOwogICAgIFBBU19URVNU
SU5HX0FTU0VSVCghYWxsb2NhdG9yLT52aWV3KTsKIH0KQEAgLTExOCw3ICsxMTgsNyBAQCBwYXNf
Yml0Zml0X2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2JpCiAgICAgICAgICAgICAgICAgcGFz
X2xvY2tfbG9jaygmdmlldy0+Y29tbWl0X2xvY2spOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayh2aWV3KTsKKyAgICAgICAg
ICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKIAogICAgICAgICAgICAg
aWYgKFBBU19VTkxJS0VMWSghdmlldy0+aXNfb3duZWQpKSB7CiAgICAgICAgICAgICAgICAgLyog
Tm90ZSB0aGF0IHRoaXMgd291bGQgaGF2ZSBmbGFzaGVkIHRoZSBvd25lcnNoaXAgbG9jayBwb3Nz
aWJseS4gKi8KQEAgLTE4NSw4ICsxODUsOCBAQCBwYXNfYml0Zml0X2FsbG9jYXRvcl90cnlfYWxs
b2NhdGUocGFzX2JpCiAgICAgICAgIGlmIChQQVNfREVCVUdfU1BFQ1RSVU1fVVNFX0ZPUl9DT01N
SVQgJiYgYnl0ZXNfY29tbWl0dGVkKSB7CiAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2so
KTsKICAgICAgICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoCi0gICAgICAgICAgICAgICAg
cGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZCgmYWxsb2NhdG9yLT5nbG9iYWxf
c2l6ZV9jbGFzcy0+YmFzZS5kaXJlY3RvcnkpLAotICAgICAgICAgICAgICAgIHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSwKKyAgICAgICAgICAgICAgICBwYXNf
Y29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkKCZhbGxvY2F0b3ItPnNpemVfY2xhc3Mt
PmRpcmVjdG9yeSksCisgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVtcF9m
b3Jfc3BlY3RydW0sCiAgICAgICAgICAgICAgICAgYnl0ZXNfY29tbWl0dGVkKTsKICAgICAgICAg
ICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYwkobm9uZXhpc3Rl
bnQpCkBAIC0xLDE2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxF
RAotCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotCi0jaW5jbHVk
ZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9w
YWdlX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfdmlld19pbmxpbmVzLmgiCi0jaW5j
bHVkZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIKLQotcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eSogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9jcmVhdGUoCi0gICAgcGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5KiBwYXJlbnRfZ2xvYmFsLAotICAgIHVuc2lnbmVkIG1hZ2F6aW5lX2lu
ZGV4KQotewotICAgIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIHJlc3VsdDsKLSAgICBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25maWdfcHRyOwotCi0gICAgY29uZmlnX3B0ciA9IHBh
c19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKHBhcmVudF9nbG9iYWwtPmJhc2Uu
Y29uZmlnX2tpbmQpOwotCi0gICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVf
d2l0aF9hbGlnbm1lbnQoCi0gICAgICAgIHNpemVvZihwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5KSwKLSAgICAgICAgYWxpZ25vZihwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KSwKLSAg
ICAgICAgInBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkiLAotICAgICAgICBwYXNfb2JqZWN0
X2FsbG9jYXRpb24pOwotICAgIAotICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5wYXJlbnRfZ2xvYmFsLCBwYXJlbnRfZ2xvYmFsKTsKLSAg
ICBwYXNfYml0Zml0X2RpcmVjdG9yeV9jb25zdHJ1Y3QoJnJlc3VsdC0+YmFzZSwgcGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kLCBjb25maWdfcHRyKTsKLSAgICBwYXNfYmlhc2luZ19k
aXJlY3RvcnlfY29uc3RydWN0KAotICAgICAgICAmcmVzdWx0LT5iaWFzaW5nX2Jhc2UsIHBhc19i
aWFzaW5nX2RpcmVjdG9yeV9iaXRmaXRfa2luZCwgbWFnYXppbmVfaW5kZXgpOwotCi0gICAgcmV0
dXJuIHJlc3VsdDsKLX0KLQotcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19i
aXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgKLSAgICBwYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSog
Z2xvYmFsX2RpcmVjdG9yeTsKLSAgICB1bnNpZ25lZCBvd25lcnNoaXBfdGhyZXNob2xkOwotICAg
IGJvb2wgZGlkX2ZpbmRfZWxpZ2libGVfcGFnZTsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFz
X3ZlcnNpb25lZF9maWVsZCBlbGlnaWJsZV9oaWdoX3dhdGVybWFyazsKLSAgICBzaXplX3QgbmV3
X2VsaWdpYmxlX3dhdGVybWFyazsKLSAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIHBhZ2VfY29u
ZmlnOwotCi0gICAgcGFnZV9jb25maWcgPSAqcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dl
dF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLmNvbmZpZ19raW5kKTsKLQotICAgIGdsb2JhbF9kaXJl
Y3RvcnkgPQotICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgmZGlyZWN0b3J5LT5wYXJlbnRfZ2xvYmFsKTsKLQotICAgIG93bmVyc2hp
cF90aHJlc2hvbGQgPSBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfb3duZXJzaGlwX3RocmVzaG9sZCgm
ZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UpOwotCi0gICAgLyogUmVhZCB0byB3YXRjaCBzbyB0aGF0
IGlmIGFueW9uZSB1cGRhdGVzIHRoZSBlbGlnaWJsZV9oaWdoX3dhdGVybWFyayBkdXJpbmcgb3Vy
IHNjYW4sIHdlIHdvbid0Ci0gICAgICAgb3ZlcndyaXRlIGl0LiAqLwotICAgIGVsaWdpYmxlX2hp
Z2hfd2F0ZXJtYXJrID0gcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkX3RvX3dhdGNoKAotICAgICAg
ICAmZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93YXRlcm1hcmspOwotCi0g
ICAgUEFTX0FTU0VSVChlbGlnaWJsZV9oaWdoX3dhdGVybWFyay52YWx1ZSA8PSBwYXNfYml0Zml0
X2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnktPmJhc2UpKTsKLQotICAgIGlmICgoc2l6ZV90KW93
bmVyc2hpcF90aHJlc2hvbGQgPj0gZWxpZ2libGVfaGlnaF93YXRlcm1hcmsudmFsdWUpCi0gICAg
ICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZTsKLQot
ICAgIGRpZF9maW5kX2VsaWdpYmxlX3BhZ2UgPSBmYWxzZTsKLQotICAgIG5ld19lbGlnaWJsZV93
YXRlcm1hcmsgPSBvd25lcnNoaXBfdGhyZXNob2xkOwotCi0gICAgZm9yIChpbmRleCA9IG93bmVy
c2hpcF90aHJlc2hvbGQ7IGluZGV4IDwgZWxpZ2libGVfaGlnaF93YXRlcm1hcmsudmFsdWU7ICsr
aW5kZXgpIHsKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0ciogdmll
d19wdHI7Ci0gICAgICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKLQotICAgICAgICB2aWV3X3B0
ciA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3X3B0cigmZGlyZWN0b3J5LT5iYXNlLCBp
bmRleCk7Ci0gICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgIHZpZXcgPSBwYXNfY29tcGFj
dF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX2xvYWQodmlld19wdHIpOwotICAgICAgICAgICAgaWYg
KCF2aWV3KQotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBkaWRfZmluZF9l
bGlnaWJsZV9wYWdlID0gdHJ1ZTsKLQotICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfY29tcGFj
dF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+Z2xvYmFs
X2RpcmVjdG9yeSkKLSAgICAgICAgICAgICAgICAgICAgICAgPT0gZ2xvYmFsX2RpcmVjdG9yeSk7
Ci0KLSAgICAgICAgICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAg
ICAgICAgICAgIGlmIChwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5
X3B0cl9sb2FkKCZ2aWV3LT5iaWFzaW5nX2RpcmVjdG9yeSkKLSAgICAgICAgICAgICAgICA9PSBk
aXJlY3RvcnkpIHsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvZygiVW5iaWFzaW5nIHZpZXcgJXAgZnJvbSAlcDolenVcbiIsIHZpZXcsIGRp
cmVjdG9yeSwgaW5kZXgpOwotCi0gICAgICAgICAgICAgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0
IHRoaXMgcGFydGljdWxhciB2aWV3IGdvdCB1bmJpYXNlZCBhbmQgdGhlbiByZWJpYXNlZCBhdCBh
IGRpZmZlcmVudAotICAgICAgICAgICAgICAgICAgIGluZGV4IGFscmVhZHkuICovCi0gICAgICAg
ICAgICAgICAgaWYgKHZpZXctPmluZGV4X2luX2JpYXNpbmcgIT0gaW5kZXgpIHsKLSAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHZpZXctPmluZGV4X2luX2JpYXNpbmcg
PT0gaW5kZXgpOwotCi0gICAgICAgICAgICAgICAgLyogSWYgdGhlIHZpZXcgYmVsaWV2ZXMgdGhh
dCBpdCBpcyBiaWFzZWQgdG8gdGhpcyBpbmRleCwgdGhlbiB0aGUgZGlyZWN0b3J5IG11c3QgYWxz
bwotICAgICAgICAgICAgICAgICAgIGFncmVlIHdpdGggdGhpcy4gKi8KLSAgICAgICAgICAgICAg
ICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfbG9hZCh2aWV3
X3B0cikgPT0gdmlldyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBXZSBzYXkg
dGhhdCB1bmJpYXNlZCBlbnRyaWVzIGFyZSBlbXB0eSwgbm90IHVucHJvY2Vzc2VkLiAqLwotICAg
ICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1w
dHlfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAgICAgICAgICAgICAgICAgICAgJmRpcmVjdG9y
eS0+YmFzZSwgaW5kZXgsICJiZWNvbWluZyBlbXB0eSBvbiBub3JtYWwgdW5iaWFzIik7Ci0KLSAg
ICAgICAgICAgICAgICAvKiBOZWVkIGEgZmVuY2UgaGVyZSBiZWNhdXNlIGFzIHNvb24gYXMgd2Ug
c3RhcnQgY2xlYXJpbmcgb3V0IHRoZSB2aWV3IGZyb20gdGhlIGJpYXNpbmcKLSAgICAgICAgICAg
ICAgICAgICBkaXJlY3RvcnksIGl0J3MgcG9zc2libGUgZm9yIHNvbWVvbmUgZWxzZSB0byBzdGFy
dCBtZXNzaW5nIHdpdGggdGhpcyBtYXhfZnJlZSBlbnRyeQotICAgICAgICAgICAgICAgICAgIGlu
IHRoZSBiaWFzaW5nIGRpcmVjdG9yeS4gU28gdGhlIHN0b3JlIGFib3ZlIGhhcyB0byBoYXBwZW4g
YmVmb3JlIGFueSBvZiB0aGlzLiAqLwotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21p
Y19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX3N0b3JlKCZ2aWV3LT5iaWFzaW5nX2RpcmVj
dG9yeSwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgdmlldy0+aW5kZXhfaW5fYmlhc2luZyA9IDA7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBNYWtlIHN1cmUgdGhhdCB3ZSBkb24n
dCBjbGVhciB0aGUgdmlldyBvdXQgb2YgdGhlIGRpcmVjdG9yeSB1bnRpbCB3ZSdyZSBkb25lIHRl
bGxpbmcgdGhlCi0gICAgICAgICAgICAgICAgICAgdmlldyB0aGF0IGl0J3Mgbm90IGJpYXNlZC4g
Ki8KLSAgICAgICAgICAgICAgICBwYXNfZmVuY2UoKTsKLSAgICAgICAgICAgICAgICBwYXNfY29t
cGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX3N0b3JlKHZpZXdfcHRyLCBOVUxMKTsKLQotICAg
ICAgICAgICAgICAgIGlmIChwYXNfYml0Zml0X3ZpZXdfaXNfZW1wdHkodmlldywgcGFnZV9jb25m
aWcpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVl
X2RpZF9iZWNvbWVfZW1wdHkoCi0gICAgICAgICAgICAgICAgICAgICAgICAmZ2xvYmFsX2RpcmVj
dG9yeS0+YmFzZSwgdmlldy0+aW5kZXhfaW5fZ2xvYmFsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgImluaXRpYWxpemUgdG8gZW1wdHkgaW4gZ2xvYmFsIG9uIG5vcm1hbCB1bmJpYXMiKTsKLSAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX3VucHJvY2Vzc2VkKAotICAgICAgICAgICAgICAg
ICAgICAgICAgJmdsb2JhbF9kaXJlY3RvcnktPmJhc2UsIHZpZXctPmluZGV4X2luX2dsb2JhbCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICJpbml0aWFsaXplIHRvIHVucHJvY2Vzc2VkIGluIGds
b2JhbCBvbiBub3JtYWwgdW5iaWFzIik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
fQotICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBwYXNfdmVyc2lv
bmVkX2ZpZWxkX3RyeV93cml0ZSgKLSAgICAgICAgJmRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmVs
aWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLAotICAgICAgICBlbGlnaWJsZV9oaWdoX3dhdGVybWFyaywg
bmV3X2VsaWdpYmxlX3dhdGVybWFyayk7Ci0KLSAgICByZXR1cm4gZGlkX2ZpbmRfZWxpZ2libGVf
cGFnZQotICAgICAgICA/IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3N1Y2Nlc3MKLSAgICAg
ICAgOiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZTsKLX0KLQotI2Vu
ZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
Zm5kZWYgUEFTX0JJVEZJVF9CSUFTSU5HX0RJUkVDVE9SWV9ICi0jZGVmaW5lIFBBU19CSVRGSVRf
QklBU0lOR19ESVJFQ1RPUllfSAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5Lmgi
Ci0jaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFj
dF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfdGFrZV9yZXN1bHQuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3Qg
cGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnkgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeTsKLQotc3RydWN0
IFBBU19BTElHTkVEKHNpemVvZih1aW50cHRyX3QpICogMikgcGFzX2JpdGZpdF9iaWFzaW5nX2Rp
cmVjdG9yeSB7Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkgYmFzZTsKLSAgICBwYXNfYmlhc2lu
Z19kaXJlY3RvcnkgYmlhc2luZ19iYXNlOwotICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5X3B0ciBwYXJlbnRfZ2xvYmFsOwotfTsKLQotUEFTX0FQSSBwYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5KiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2NyZWF0ZSgKLSAg
ICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIHBhcmVudF9nbG9iYWwsCi0gICAgdW5zaWdu
ZWQgbWFnYXppbmVfaW5kZXgpOwotCi1QQVNfQVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtl
X3Jlc3VsdCBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfbGFzdF91bnVzZWQoCi0g
ICAgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0VORF9F
WFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19CSVRGSVRfQklBU0lOR19ESVJFQ1RPUllfSCAqLwot
Ci0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGly
ZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9kaXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5
KQpAQCAtMzAsNDMgKzMwLDQ0IEBACiAjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIK
IAogI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJw
YXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXpl
X2NsYXNzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCIKKyNpbmNsdWRl
ICJwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmgiCiAjaW5jbHVkZSAicGFzX2Vwb2NoLmgiCisj
aW5jbHVkZSAicGFzX2ZyZWVfZ3JhbnVsZXMuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9sb2NrLmgi
CiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCisjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfaGVhcC5oIgorI2luY2x1ZGUgInBhc19zdHJlYW0uaCIKIAogdm9pZCBwYXNfYml0Zml0
X2RpcmVjdG9yeV9jb25zdHJ1Y3QocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tp
bmQgZGlyZWN0b3J5X2tpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25maWcpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25maWcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwKQogewogICAg
IHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAotICAgIGlmICh2ZXJib3NlKSB7
Ci0gICAgICAgIHBhc19sb2coIkNyZWF0aW5nIGRpcmVjdG9yeSAlcCAoJXMpXG4iLAotICAgICAg
ICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZF9nZXRfc3RyaW5n
KGRpcmVjdG9yeV9raW5kKSk7Ci0gICAgfQorICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNf
bG9nKCJDcmVhdGluZyBkaXJlY3RvcnkgJXBcbiIsIGRpcmVjdG9yeSk7CiAgICAgCiAgICAgcGFz
X3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+Zmlyc3RfdW5wcm9jZXNzZWRf
ZnJlZSwgMCk7CiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+
Zmlyc3RfZW1wdHksIDApOwogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX3ZlY3Rv
cl9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+bWF4X2ZyZWVzKTsKICAgICBwYXNfYml0Zml0X2RpcmVj
dG9yeV92aWV3X3ZlY3Rvcl9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+dmlld3MpOwogICAgIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfc3RvcmUoJmRpcmVjdG9yeS0+bGFy
Z2VzdF9zaXplX2NsYXNzLCBOVUxMKTsKLSAgICBkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID0g
ZGlyZWN0b3J5X2tpbmQ7CiAgICAgZGlyZWN0b3J5LT5jb25maWdfa2luZCA9IGNvbmZpZy0+a2lu
ZDsKLX0KIAotdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV91cGRhdGVfYmlhc2luZ19lbGlnaWJp
bGl0eShwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAg
cGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0gICAgCi0g
ICAgaWYgKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgIT0gcGFzX2JpdGZpdF9iaWFzaW5nX2Rp
cmVjdG9yeV9raW5kKQotICAgICAgICByZXR1cm47Ci0KLSAgICBiaWFzaW5nX2RpcmVjdG9yeSA9
IChwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0KLSAgICBwYXNfYmlh
c2luZ19kaXJlY3RvcnlfaW5kZXhfZGlkX2JlY29tZV9lbGlnaWJsZSgmYmlhc2luZ19kaXJlY3Rv
cnktPmJpYXNpbmdfYmFzZSwgaW5kZXgpOworICAgIGRpcmVjdG9yeS0+aGVhcCA9IGhlYXA7Cisg
ICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfY29uc3RydWN0KCZk
aXJlY3RvcnktPmJpdHZlY3RvcnMpOworICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
cGF5bG9hZF9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+cGh5c2ljYWxfc2hhcmluZ19wYXlsb2FkKTsK
KworICAgIC8qIFdlIGNvdWxkIGhhdmUgYmVlbiBsYXp5IGFib3V0IHRoaXMgLSBidXQgaXQncyBw
cm9iYWJseSBub3Qgc3VwZXIgbmVjZXNzYXJ5IHNpbmNlIHRoZSBwb2ludAorICAgICAgIG9mIGJp
dGZpdCBnbG9iYWwgZGlyZWN0b3JpZXMgaXMgdGhhdCB0aGVyZSB3b24ndCBiZSB0b28gbWFueSBv
ZiB0aGVtLiAqLworICAgIGlmIChwYXNfYml0Zml0X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcoZGly
ZWN0b3J5KSkgeworICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfYWRkKAorICAgICAgICAg
ICAgJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbCwKKyAgICAgICAgICAgIHBhc19wYWdl
X3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAorICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwg
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5KSk7CisgICAgfQog
fQogCiB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9j
ZXNzZWQocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKQEAgLTc1LDcgKzc2LDYgQEAg
dm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYgogewogICAgIHBhc19iaXRm
aXRfZGlyZWN0b3J5X3NldF91bnByb2Nlc3NlZF9tYXhfZnJlZShkaXJlY3RvcnksIGluZGV4LCBy
ZWFzb24pOwogICAgIHBhc192ZXJzaW9uZWRfZmllbGRfbWluaW1pemUoJmRpcmVjdG9yeS0+Zmly
c3RfdW5wcm9jZXNzZWRfZnJlZSwgaW5kZXgpOwotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3Vw
ZGF0ZV9iaWFzaW5nX2VsaWdpYmlsaXR5KGRpcmVjdG9yeSwgaW5kZXgpOwogfQogCiB2b2lkIHBh
c19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWRfdW5jaGVj
a2VkKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCkBAIC04NCwxMCArODQsOSBAQCB2
b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iCiB7CiAgICAgcGFzX2JpdGZp
dF9kaXJlY3Rvcnlfc2V0X3VucHJvY2Vzc2VkX21heF9mcmVlX3VuY2hlY2tlZChkaXJlY3Rvcnks
IGluZGV4LCByZWFzb24pOwogICAgIHBhc192ZXJzaW9uZWRfZmllbGRfbWluaW1pemUoJmRpcmVj
dG9yeS0+Zmlyc3RfdW5wcm9jZXNzZWRfZnJlZSwgaW5kZXgpOwotICAgIHBhc19iaXRmaXRfZGly
ZWN0b3J5X3VwZGF0ZV9iaWFzaW5nX2VsaWdpYmlsaXR5KGRpcmVjdG9yeSwgaW5kZXgpOwogfQog
Ci12b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHlfd2l0
aG91dF9iaWFzaW5nX3VwZGF0ZSgKK3ZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVf
ZGlkX2JlY29tZV9lbXB0eSgKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAog
ICAgIHNpemVfdCBpbmRleCwKICAgICBjb25zdCBjaGFyKiByZWFzb24pCkBAIC05NiwxNyArOTUs
OCBAQCB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iCiAgICAgcGFzX3Zl
cnNpb25lZF9maWVsZF9taW5pbWl6ZSgmZGlyZWN0b3J5LT5maXJzdF9lbXB0eSwgaW5kZXgpOwog
fQogCi12b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHko
cGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcmVhc29u
KQotewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHlf
d2l0aG91dF9iaWFzaW5nX3VwZGF0ZShkaXJlY3RvcnksIGluZGV4LCByZWFzb24pOwotICAgIHBh
c19iaXRmaXRfZGlyZWN0b3J5X3VwZGF0ZV9iaWFzaW5nX2VsaWdpYmlsaXR5KGRpcmVjdG9yeSwg
aW5kZXgpOwotfQotCiBwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4CiBwYXNfYml0Zml0X2RpcmVj
dG9yeV9nZXRfZmlyc3RfZnJlZV92aWV3KHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3MqIHNpemVfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIHN0YXJ0X2luZGV4LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaXplLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykK
QEAgLTExOCwxOSArMTA4LDYgQEAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2ZyZWVf
dmlldwogICAgICAgICBzaXplX3QgbWF4X2ZyZWVzX3NpemU7CiAgICAgICAgIHBhc19iaXRmaXRf
dmlldyogdmlldzsKIAotICAgICAgICBpZiAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICAgICAgcGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9iYWxfZGlyZWN0b3J5OwotICAgICAgICAgICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sKiBiaWFzX3Bvb2w7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGds
b2JhbF9kaXJlY3RvcnkgPSAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGJpYXNfcG9vbCA9IHBhc19jb21wYWN0X2F0b21p
Y19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgKLSAgICAgICAgICAgICAgICAmZ2xvYmFsX2Rp
cmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotCi0gICAgICAgICAgICBpZiAoYmlhc19wb29s
KQotICAgICAgICAgICAgICAgIHBhc19iaWFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UoYmlhc19w
b29sKTsKLSAgICAgICAgfQotCiAgICAgICAgIHZpZXcgPSBOVUxMOwogCiAgICAgICAgIG1heF9m
cmVlc19zaXplID0gZGlyZWN0b3J5LT5tYXhfZnJlZXMuc2l6ZTsKQEAgLTE3NSwyMiArMTUyLDE2
IEBAIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9maXJzdF9mcmVlX3ZpZXcKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGRpcmVjdG9yeS0+dmlld3Muc2l6ZSwgZGlyZWN0
b3J5LT5tYXhfZnJlZXMuc2l6ZSk7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAg
ICAgaWYgKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgPT0gcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X2tpbmQpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5KiBnbG9iYWxfZGlyZWN0b3J5OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICBnbG9iYWxfZGlyZWN0b3J5ID0gKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSop
ZGlyZWN0b3J5OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAoUEFT
X0JJVFZFQ1RPUl9OVU1fV09SRFMoZGlyZWN0b3J5LT52aWV3cy5zaXplKQotICAgICAgICAgICAg
ICAgICAgICAgICAgIT0gZ2xvYmFsX2RpcmVjdG9yeS0+Yml0dmVjdG9ycy5zaXplKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTKGRp
cmVjdG9yeS0+dmlld3Muc2l6ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PT0gZ2xvYmFsX2RpcmVjdG9yeS0+Yml0dmVjdG9ycy5zaXplICsgMSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3Rv
cnNfYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnbG9iYWxfZGlyZWN0b3J5
LT5iaXR2ZWN0b3JzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19CSVRGSVRfR0xP
QkFMX0RJUkVDVE9SWV9CSVRWRUNUT1JfU0VHTUVOVF9JTklUSUFMSVpFUiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIFBBU19BU1NFUlQoUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFMoZGlyZWN0b3J5LT52aWV3cy5z
aXplKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBnbG9iYWxfZGlyZWN0
b3J5LT5iaXR2ZWN0b3JzLnNpemUpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgaWYgKFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTKGRpcmVjdG9yeS0+dmlld3Muc2l6ZSkK
KyAgICAgICAgICAgICAgICAgICAgIT0gZGlyZWN0b3J5LT5iaXR2ZWN0b3JzLnNpemUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChQQVNfQklUVkVDVE9SX05VTV9XT1JEUyhkaXJl
Y3RvcnktPnZpZXdzLnNpemUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gZGly
ZWN0b3J5LT5iaXR2ZWN0b3JzLnNpemUgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2Jp
dGZpdF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfYXBwZW5kKAorICAgICAgICAgICAg
ICAgICAgICAgICAgJmRpcmVjdG9yeS0+Yml0dmVjdG9ycywKKyAgICAgICAgICAgICAgICAgICAg
ICAgIFBBU19CSVRGSVRfRElSRUNUT1JZX0JJVFZFQ1RPUl9TRUdNRU5UX0lOSVRJQUxJWkVSLAor
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgICAgICAgICAg
ICAgICAgIFBBU19BU1NFUlQoUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFMoZGlyZWN0b3J5LT52aWV3
cy5zaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID09IGRpcmVjdG9yeS0+Yml0
dmVjdG9ycy5zaXplKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwpAQCAtMjA3LDEyNyArMTc4LDIzIEBAIHBh
c19iaXRmaXRfZGlyZWN0b3J5X2dldF9maXJzdF9mcmVlX3ZpZXcKICAgICAgICAgICAgICAgICAg
ICAgZGlyZWN0b3J5LCAodW5zaWduZWQpZm91bmRfaW5kZXguaW5kZXgsIHZpZXcpOwogICAgICAg
ICB9CiAKLSAgICAgICAgc3dpdGNoIChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kKSB7Ci0gICAg
ICAgIGNhc2UgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQ6IHsKLSAgICAgICAgICAg
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9IChwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICAgICAgICAgIAorICAgICAgICBpZiAoIXZpZXcpIHsK
KyAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOworICAgICAgICAgICAgdmlldyA9IHBh
c19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KGRpcmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgp
OwogICAgICAgICAgICAgaWYgKCF2aWV3KSB7Ci0gICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9j
a19sb2NrKCk7Ci0gICAgICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dl
dF92aWV3KGRpcmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgpOwotICAgICAgICAgICAgICAgIGlm
ICghdmlldykgewotICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCh1bnNpZ25lZClmb3Vu
ZF9pbmRleC5pbmRleCA9PSBmb3VuZF9pbmRleC5pbmRleCk7Ci0gICAgICAgICAgICAgICAgICAg
IHZpZXcgPSBwYXNfYml0Zml0X3ZpZXdfY3JlYXRlKGdsb2JhbF9kaXJlY3RvcnksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZClmb3Vu
ZF9pbmRleC5pbmRleCk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19zdG9yZV9zdG9yZV9mZW5j
ZSgpOwotICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdf
cHRyX3N0b3JlKAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
Z2V0X3ZpZXdfcHRyKGRpcmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgpLCB2aWV3KTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJU
KAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KQotICAgICAgICAgICAgICAg
ID09IGdsb2JhbF9kaXJlY3RvcnkpOwotICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHZp
ZXctPmluZGV4X2luX2dsb2JhbCA9PSBmb3VuZF9pbmRleC5pbmRleCk7Ci0KLSAgICAgICAgICAg
IC8qIE5vdGU6IGl0J3MgcG9zc2libGUgZm9yIHRoaXMgdG8gbm93IGhhdmUgYmVjb21lIGEgYmlh
c2VkIHZpZXcuIEl0IHNob3VsZCBub3QgaGFwcGVuCi0gICAgICAgICAgICAgICBvZnRlbi4gSWYg
aXQgaXMgbm93IGEgYmlhc2VkIHZpZXcsIHRoZW4gaXQgbXVzdCBoYXZlIGVhcmxpZXIgaGFkIGl0
cyBtYXhfZnJlZQotICAgICAgICAgICAgICAgemVyb2VkLiAqLwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlf
a2luZDogewotICAgICAgICAgICAgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2lu
Z19kaXJlY3Rvcnk7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGds
b2JhbF9kaXJlY3Rvcnk7Ci0KLSAgICAgICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gKHBhc19i
aXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgaWYgKHZpZXcpIHsKLSAgICAgICAgICAgICAgICAvKiBJZiB0aGVyZSB3YXMgYW55IHZp
ZXcgYXQgYWxsIHRoZW4gaXQgbXVzdCBoYXZlIGJlZW4gYmlhc2VkIHRvIHRoaXMgZGlyZWN0b3J5
IGF0Ci0gICAgICAgICAgICAgICAgICAgc29tZSBwb2ludCBvciBhbm90aGVyLiBPZiBjb3Vyc2Ug
aXQgY291bGQgYmUgdW5iaWFzZWQgYXQgYW55IG1vbWVudCwgYnV0IGl0IGNvdWxkCi0gICAgICAg
ICAgICAgICAgICAgZXZlbiBiZSB1bmJpYXNlZCByaWdodCBhZnRlciB3ZSB2ZXJpZnkgdGhhdCBp
dCBpcyBvdXJzLiAqLwotICAgICAgICAgICAgICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRf
dXNlX2luZGV4KCZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kX2luZGV4LmluZGV4
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19nZXRfZXBvY2goKSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0K
LSAgICAgICAgICAgIGdsb2JhbF9kaXJlY3RvcnkgPQotICAgICAgICAgICAgICAgIHBhc19jb21w
YWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAg
ICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPnBhcmVudF9nbG9iYWwpOwotICAgICAgICAg
ICAgUEFTX1RFU1RJTkdfQVNTRVJUKAotICAgICAgICAgICAgICAgICZnbG9iYWxfZGlyZWN0b3J5
LT5iYXNlCi0gICAgICAgICAgICAgICAgPT0gcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9w
dHJfbG9hZF9ub25fbnVsbCgmc2l6ZV9jbGFzcy0+YmFzZS5kaXJlY3RvcnkpKTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAgICAgIHBhc19iaXRmaXRf
dmlldyogcHJldmlvdXNfdmlldzsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICB2
aWV3ID0gcGFzX2JpdGZpdF9zaXplX2NsYXNzX2dldF9maXJzdF9mcmVlX3ZpZXcoCi0gICAgICAg
ICAgICAgICAgICAgICZzaXplX2NsYXNzLT5iYXNlLCBzaXplX2NsYXNzLCBwYWdlX2NvbmZpZyk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoCi0gICAg
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9s
b2FkX25vbl9udWxsKCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KQotICAgICAgICAgICAgICAgICAg
ICA9PSBnbG9iYWxfZGlyZWN0b3J5KTsKLQotICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2so
JnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgICAgICAvKiBXZSBzaG91bGQgbm90
IGJpYXMgYSB2aWV3IHRoYXQgaXMgYWxyZWFkeSBiaWFzZWQuIFRoZSBnbG9iYWwgZGlyZWN0b3J5
IHdvdWxkIG5vdCBoYXZlCi0gICAgICAgICAgICAgICAgICAgZ2l2ZW4gdXMgYSB2aWV3IHRoYXQg
d2FzIGFscmVhZHkgYmlhc2VkIGlmIGl0IGtuZXcgdGhhdCBpdCB3YXMgYmlhc2VkIGF0IHRoZSB0
aW1lIG9mCi0gICAgICAgICAgICAgICAgICAgdGhlIHNlYXJjaC4gKi8KLSAgICAgICAgICAgICAg
ICBpZiAoIXBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2lz
X251bGwoJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5KSkgewotICAgICAgICAgICAgICAgICAgICBw
YXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgICAgICAg
ICAgLyogU2VhcmNoIHRoZSBnbG9iYWwgZGlyZWN0b3J5IGFnYWluLiAqLwotICAgICAgICAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygi
JXA6JXU6IGZvdW5kIGFscmVhZHkgYmlhc2VkIHZpZXcgPSAlcC5cbiIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgKHVuc2lnbmVkKWZvdW5kX2luZGV4LmluZGV4
LCB2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBwcmV2aW91c192aWV3
ID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9zdHJvbmdfY2FzKAotICAgICAg
ICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmlld19wdHIoZGlyZWN0b3J5
LCBmb3VuZF9pbmRleC5pbmRleCksCi0gICAgICAgICAgICAgICAgICAgIE5VTEwsIHZpZXcpOwot
ICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c192aWV3KSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8qIFRoaXMgaXMgYW4gdW5saWtlbHkgcmFjZSBjb25kaXRpb24gc2luY2UgYmlhc2luZyBkaXJl
Y3RvcmllcyBhcmUgdXN1YWxseSBvd25lZAotICAgICAgICAgICAgICAgICAgICAgICBieSBhIHRo
cmVhZC4gTm90ZSB0aGF0IHRoZSBwcmV2aW91c192aWV3IGNhbm5vdCBiZSBvdXIgdmlldywgc2lu
Y2Ugd2UgaGFkIGp1c3QKLSAgICAgICAgICAgICAgICAgICAgICAgZGV0ZWN0ZWQgdGhhdCBvdXIg
dmlldyB3YXMgbm90IGJpYXNlZCwgYW5kIHdlIHN0aWxsIGhvbGQgaXRzIGxvY2suICovCi0gICAg
ICAgICAgICAgICAgICAgIFBBU19BU1NFUlQocHJldmlvdXNfdmlldyAhPSB2aWV3KTsKLSAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0g
ICAgICAgICAgICAgICAgICAgIHZpZXcgPSBwcmV2aW91c192aWV3OwotICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiQmlhc2luZyB2aWV3ICVwIHRvICVw
OiV1XG4iLCB2aWV3LCBkaXJlY3RvcnksICh1bnNpZ25lZClmb3VuZF9pbmRleC5pbmRleCk7Ci0K
LSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICAgICAgICAgJnZpZXctPmJpYXNpbmdfZGlyZWN0
b3J5LCBiaWFzaW5nX2RpcmVjdG9yeSk7CiAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCgodW5z
aWduZWQpZm91bmRfaW5kZXguaW5kZXggPT0gZm91bmRfaW5kZXguaW5kZXgpOwotICAgICAgICAg
ICAgICAgIHZpZXctPmluZGV4X2luX2JpYXNpbmcgPSAodW5zaWduZWQpZm91bmRfaW5kZXguaW5k
ZXg7Ci0KLSAgICAgICAgICAgICAgICAvKiBXZSBhdm9pZCB0aGUgY2hlY2tpbmcgaGVyZSBiZWNh
dXNlIHRoaXMgbWlnaHQgaGF2ZSBiZWVuIGVtcHR5LCBhbmQgdGhhdCdzIE9LLiAqLwotICAgICAg
ICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF9tYXhfZnJlZV91bmNoZWNrZWQoCi0g
ICAgICAgICAgICAgICAgICAgICZnbG9iYWxfZGlyZWN0b3J5LT5iYXNlLCB2aWV3LT5pbmRleF9p
bl9nbG9iYWwsIDAsICJjbGVhcmluZyBnbG9iYWwgb24gYmlhcyIpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgaWYgKHBhc19iaXRmaXRfdmlld19pc19lbXB0eSh2aWV3LCAqcGFnZV9j
b25maWcpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIFRoaXMgaGVscHMgcHJlc2VydmUgY29u
c2lzdGVuY3kgYnV0IGl0J3Mgbm90IHN1cGVyIGludGVyZXN0aW5nOyBhcyBzb29uIGFzIHdlCi0g
ICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRlIHdlIHdpbGwgbWFyayB0aGlzIHVucHJvY2Vz
c2VkLiAqLwotICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJl
ZV9kaWRfYmVjb21lX2VtcHR5KAotICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBm
b3VuZF9pbmRleC5pbmRleCwgImluaXRpYWxpemUgdG8gZW1wdHkgb24gYmlhcyIpOwotICAgICAg
ICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0
b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWRfdW5jaGVja2VkKAotICAgICAgICAg
ICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBmb3VuZF9pbmRleC5pbmRleCwgImluaXRpYWxpemUg
dG8gdW5wcm9jZXNzZWQgb24gYmlhcyIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF92aWV3X2NyZWF0
ZShkaXJlY3RvcnksICh1bnNpZ25lZClmb3VuZF9pbmRleC5pbmRleCk7CisgICAgICAgICAgICAg
ICAgcGFzX3N0b3JlX3N0b3JlX2ZlbmNlKCk7CisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX2JpdGZpdF92aWV3X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICAgICAgICAgcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXdfcHRyKGRpcmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgp
LCB2aWV3KTsKICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0
b3J5X2RpZF91c2VfaW5kZXgoCi0gICAgICAgICAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5i
aWFzaW5nX2Jhc2UsIGZvdW5kX2luZGV4LmluZGV4LCBwYXNfZ2V0X2Vwb2NoKCkpOwotCi0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfSB9CisgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3Vu
bG9jaygpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQo
CisgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9u
dWxsKCZ2aWV3LT5kaXJlY3RvcnkpCisgICAgICAgICAgICA9PSBkaXJlY3RvcnkpOworICAgICAg
ICBQQVNfVEVTVElOR19BU1NFUlQodmlldy0+aW5kZXggPT0gZm91bmRfaW5kZXguaW5kZXgpOwog
CiAgICAgICAgIHJldHVybiBwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4X2NyZWF0ZSh2aWV3LCBm
b3VuZF9pbmRleC5pbmRleCk7CiAgICAgfQpAQCAtMzk4LDQgKzI2NSwyOTEgQEAgYm9vbCBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlXwogICAgIHJldHVybiB0cnVlOwogfQogCiti
b29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhwYXNfYml0Zml0X2RpcmVjdG9y
eSogZGlyZWN0b3J5KQoreworICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX21vZGVfZG9lc19z
aGFyaW5nKAorICAgICAgICBkaXJlY3RvcnktPmhlYXAtPnJ1bnRpbWVfY29uZmlnLT5zaGFyaW5n
X21vZGUpOworfQorICAgIAordWludDY0X3QgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3VzZV9l
cG9jaChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHVpbnRwdHJfdCBs
YXN0X2VtcHR5X3BsdXNfb25lOworICAgIHNpemVfdCBpbmRleDsKKyAgICBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnIGNvbmZpZzsKKworICAgIGxhc3RfZW1wdHlfcGx1c19vbmUgPSBkaXJlY3Rvcnkt
Pmxhc3RfZW1wdHlfcGx1c19vbmUudmFsdWU7CisgICAgY29uZmlnID0gKnBhc19iaXRmaXRfcGFn
ZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+Y29uZmlnX2tpbmQpOworCisgICAg
Zm9yIChpbmRleCA9IGxhc3RfZW1wdHlfcGx1c19vbmU7IGluZGV4LS07KSB7CisgICAgICAgIHBh
c19iaXRmaXRfdmlldyogdmlldzsKKyAgICAgICAgdWludDY0X3QgZXBvY2g7CisKKyAgICAgICAg
LyogUHJvdGVjdCBhZ2FpbnN0IHVuc2V0IGVwb2Nocy4gKi8KKyAgICAgICAgaWYgKCFwYXNfYml0
Zml0X2RpcmVjdG9yeV9nZXRfZW1wdHlfYml0X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0
b3J5X2dldF92aWV3KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICBpZiAoIXZpZXcpCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNo
aXBfbG9jayk7CisgICAgICAgIGVwb2NoID0gMDsKKyAgICAgICAgaWYgKHZpZXctPmlzX293bmVk
KSB7CisgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2UqIHBhZ2U7CisgICAgICAgICAgICBwYWdl
ID0gcGFzX2JpdGZpdF9wYWdlX2Zvcl9ib3VuZGFyeSh2aWV3LT5wYWdlX2JvdW5kYXJ5LCBjb25m
aWcpOworICAgICAgICAgICAgaWYgKCFwYWdlLT5udW1fbGl2ZV9iaXRzKSB7CisgICAgICAgICAg
ICAgICAgZXBvY2ggPSBwYWdlLT51c2VfZXBvY2g7CisgICAgICAgICAgICAgICAgUEFTX0FTU0VS
VChlcG9jaCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcGFzX2xvY2tfdW5s
b2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CisKKyAgICAgICAgaWYgKGVwb2NoKQorICAgICAg
ICAgICAgcmV0dXJuIGVwb2NoOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitib29sIHBh
c19iaXRmaXRfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoCisgICAgcGFzX2JpdGZp
dF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBzaXplX3QgaW5kZXgpCit7CisgICAgcmV0dXJu
IHBhc19iaXR2ZWN0b3JfZ2V0X2Zyb21fd29yZCgKKyAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfZ2V0X3B0cl9jaGVja2VkKAorICAgICAgICAgICAgJmRp
cmVjdG9yeS0+Yml0dmVjdG9ycywgUEFTX0JJVFZFQ1RPUl9XT1JEX0lOREVYKGluZGV4KSktPmVt
cHR5X2JpdHMsCisgICAgICAgIGluZGV4KTsKK30KKworLyogUmV0dXJucyB3aGV0aGVyIHdlIGNo
YW5nZWQgdGhlIHZhbHVlLiAqLworYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfZW1wdHlf
Yml0X2F0X2luZGV4KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAg
c2l6ZV90IGluZGV4LAorICAgIGJvb2wgdmFsdWUpCit7CisgICAgcmV0dXJuIHBhc19iaXR2ZWN0
b3Jfc2V0X2F0b21pY19pbl93b3JkKAorICAgICAgICAmcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2Vn
bWVudGVkX2JpdHZlY3RvcnNfZ2V0X3B0cl9jaGVja2VkKAorICAgICAgICAgICAgJmRpcmVjdG9y
eS0+Yml0dmVjdG9ycywgUEFTX0JJVFZFQ1RPUl9XT1JEX0lOREVYKGluZGV4KSktPmVtcHR5X2Jp
dHMsCisgICAgICAgIGluZGV4LAorICAgICAgICB2YWx1ZSk7Cit9CisKK3ZvaWQgcGFzX2JpdGZp
dF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KAorICAgIHBhc19iaXRm
aXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgc2l6ZV90IGluZGV4KQoreworICAgIGlmICgh
cGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0X2VtcHR5X2JpdF9hdF9pbmRleChkaXJlY3RvcnksIGlu
ZGV4LCB0cnVlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLyogSWYgd2UgYWxyZWFkeSBrbmV3
IGFib3V0IGVtcHRpZXMsIHRoZW4gd2UgaGF2ZSBub3RoaW5nIG1vcmUgdG8gZG8uICovCisgICAg
aWYgKHBhc192ZXJzaW9uZWRfZmllbGRfbWF4aW1pemUoJmRpcmVjdG9yeS0+bGFzdF9lbXB0eV9w
bHVzX29uZSwgaW5kZXggKyAxKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFwYXNfYml0
Zml0X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcoZGlyZWN0b3J5KSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIAorICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9kaWRfY3JlYXRlX2RlbHRhKAorICAgICAg
ICAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sLAorICAgICAgICBwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKKyAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5KSk7Cit9CisKK3ZvaWQgcGFzX2Jp
dGZpdF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5KAorICAgIHBhc19iaXRmaXRfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3KQoreworICAgIFBB
U19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9w
dHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KQorICAgICAgICA9PSBkaXJlY3Rvcnkp
OworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRl
eCgKKyAgICAgICAgZGlyZWN0b3J5LCB2aWV3LT5pbmRleCk7Cit9CisKK3Bhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNfYml0Zml0X2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHko
CisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfZGVmZXJyZWRf
ZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2csCisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBf
bG9ja19ob2xkX21vZGUpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
OworICAgIAorICAgIHBhc192ZXJzaW9uZWRfZmllbGQgbGFzdF9lbXB0eV9wbHVzX29uZV92YWx1
ZTsKKyAgICBzaXplX3QgaW5kZXg7CisgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogcGFnZV9j
b25maWc7CisgICAgc2l6ZV90IG51bV9ncmFudWxlczsKKworICAgIGxhc3RfZW1wdHlfcGx1c19v
bmVfdmFsdWUgPSBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWQoJmRpcmVjdG9yeS0+bGFzdF9lbXB0
eV9wbHVzX29uZSk7CisKKyAgICBwYWdlX2NvbmZpZyA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+Y29uZmlnX2tpbmQpOworICAgIG51bV9ncmFudWxl
cyA9IHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSAvIHBhZ2VfY29uZmlnLT5iYXNlLmdyYW51
bGVfc2l6ZTsKKworICAgIGZvciAoaW5kZXggPSBsYXN0X2VtcHR5X3BsdXNfb25lX3ZhbHVlLnZh
bHVlOyBpbmRleC0tOykgeworICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7CisgICAgICAg
IHBhc19iaXRmaXRfcGFnZSogcGFnZTsKKyAgICAgICAgdWludHB0cl90IGJhc2U7CisgICAgICAg
IHBhc19sb2NrKiBjb21taXRfbG9jazsKKyAgICAgICAgYm9vbCBwYWdlX2lzX2RlYWQ7CisgICAg
ICAgIHBhc19iaXRmaXRfbWF4X2ZyZWUgbWF4X2ZyZWU7CisgICAgICAgIAorICAgICAgICBpZiAo
IXBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgoZGlyZWN0b3J5LCBp
bmRleCwgZmFsc2UpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgdmlldyA9IHBh
c19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KGRpcmVjdG9yeSwgaW5kZXgpOworCisgICAgICAg
IFBBU19BU1NFUlQodmlldyk7CisgICAgICAgIFBBU19BU1NFUlQodmlldy0+cGFnZV9ib3VuZGFy
eSk7IC8qIFlvdSBkb24ndCBiZWNvbWUgZW1wdHkgdW50aWwgeW91IGhhdmUgYSBwYWdlIGFuZCB0
aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlvdSBuZXZl
ciBsb3NlIHRoZSBwYWdlLiAqLworICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2JpdGZp
dF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSkgPT0gZGlyZWN0
b3J5KTsKKyAgICAgICAgUEFTX0FTU0VSVCh2aWV3LT5pbmRleCA9PSBpbmRleCk7CisKKyAgICAg
ICAgY29tbWl0X2xvY2sgPSAmdmlldy0+Y29tbWl0X2xvY2s7CisKKyAgICAgICAgaWYgKHZlcmJv
c2UpCisgICAgICAgICAgICBwYXNfbG9nKCJHcmFiYmluZyBjb21taXQgbG9jayAlcFxuIiwgY29t
bWl0X2xvY2spOworICAgICAgICBpZiAoIXBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfbG9ja19m
b3JfYWRkaW5nKAorICAgICAgICAgICAgICAgIGRlY29tbWl0X2xvZywgY29tbWl0X2xvY2ssIGhl
YXBfbG9ja19ob2xkX21vZGUpKSB7CisgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV92
aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAg
ICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbG9ja3NfdW5hdmFpbGFibGU7
CisgICAgICAgIH0KKworICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9j
ayk7CisKKyAgICAgICAgaWYgKCF2aWV3LT5pc19vd25lZCkgeworICAgICAgICAgICAgcGFzX2xv
Y2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CisgICAgICAgICAgICBwYXNfZGVmZXJy
ZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVkX2FkZChkZWNvbW1pdF9sb2csIGNv
bW1pdF9sb2NrKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAg
YmFzZSA9ICh1aW50cHRyX3Qpdmlldy0+cGFnZV9ib3VuZGFyeTsKKyAgICAgICAgUEFTX0FTU0VS
VChiYXNlKTsKKyAgICAgICAgcGFnZSA9IHBhc19iaXRmaXRfcGFnZV9mb3JfYm91bmRhcnkoKHZv
aWQqKWJhc2UsICpwYWdlX2NvbmZpZyk7CisgICAgICAgIFBBU19BU1NFUlQocGFnZSk7CisKKyAg
ICAgICAgcGFnZV9pc19kZWFkID0gIXBhZ2UtPm51bV9saXZlX2JpdHM7CisKKyAgICAgICAgbWF4
X2ZyZWUgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfbWF4X2ZyZWUoZGlyZWN0b3J5LCBpbmRl
eCk7CisgICAgICAgIGlmIChwYWdlX2lzX2RlYWQpIHsKKyAgICAgICAgICAgIC8qIElmIGEgcGFn
ZSdzIG51bV9saXZlX2JpdHMgZHJvcHMgdG8gemVybyB0aGVuIHdlIHdpbGwgbWFyayBpdCBlbXB0
eSBpbiB0aGUgZGlyZWN0b3J5IHRoYXQKKyAgICAgICAgICAgICAgIG93bnMgaXQgd2hpbGUgaG9s
ZGluZyB0aGUgbG9jay4gTmV3bHkgY3JlYXRlZCBwYWdlcyBzdGFydCBvdXQgZW1wdHkuICAqLwor
ICAgICAgICAgICAgaWYgKG1heF9mcmVlICE9IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpIHsK
KyAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcDoldTogZm91bmQgbm9uLWVtcHR5IHBhZ2UgdGhh
dCBpcyBkZWFkIHdoZW4gdGFraW5nIGxhc3QgZW1wdHkuXG4iKTsKKyAgICAgICAgICAgICAgICBQ
QVNfQVNTRVJUKG1heF9mcmVlID09IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpOworICAgICAg
ICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLyogSWYgYSBwYWdlJ3MgbnVt
X2xpdmVfYml0cyBnb2VzIGFib3ZlIHplcm8gdGhlbiB3ZSBtYXJrIGl0IHVucHJvY2Vzc2VkIHdo
aWxlIGhvbGRpbmcgdGhlCisgICAgICAgICAgICAgICBsb2NrLiAqLworICAgICAgICAgICAgaWYg
KG1heF9mcmVlID09IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpIHsKKyAgICAgICAgICAgICAg
ICBwYXNfbG9nKCIlcDoldTogZm91bmQgZW1wdHkgcGFnZSB0aGF0IGlzIG5vdCBkZWFkIHdoZW4g
dGFraW5nIGxhc3QgZW1wdHkuXG4iKTsKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKG1heF9m
cmVlICE9IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBpZiAobnVtX2dyYW51bGVzID4gMSkgeworICAgICAgICAg
ICAgcGFzX2ZyZWVfZ3JhbnVsZXMgZnJlZV9ncmFudWxlczsKKyAgICAgICAgICAgIHBhc19wYWdl
X2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJEZWNvbW1pdHRpbmcgZ3Jh
bnVsZXMgZm9yIHBhZ2UgJXBcbiIsIHBhZ2UpOworICAgICAgICAgICAgdXNlX2NvdW50cyA9IHBh
c19iaXRmaXRfcGFnZV9nZXRfZ3JhbnVsZV91c2VfY291bnRzKHBhZ2UsICpwYWdlX2NvbmZpZyk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHBhc19mcmVlX2dyYW51bGVzX2NvbXB1dGVfYW5k
X21hcmtfZGVjb21taXR0ZWQoCisgICAgICAgICAgICAgICAgJmZyZWVfZ3JhbnVsZXMsIHVzZV9j
b3VudHMsIG51bV9ncmFudWxlcyk7CisKKyAgICAgICAgICAgIGlmIChwYWdlX2lzX2RlYWQgIT0g
KChmcmVlX2dyYW51bGVzLm51bV9hbHJlYWR5X2RlY29tbWl0dGVkX2dyYW51bGVzICsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51
bGVzKSA9PSBudW1fZ3JhbnVsZXMpKSB7CisgICAgICAgICAgICAgICAgcGFzX2xvZygicGFnZV9p
c19kZWFkID0gJWRcbiIsIHBhZ2VfaXNfZGVhZCk7CisgICAgICAgICAgICAgICAgcGFzX2xvZygi
ZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxlcyA9ICV6dVxuIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZyZWVfZ3JhbnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMpOworICAgICAgICAgICAg
ICAgIHBhc19sb2coImZyZWVfZ3JhbnVsZXMubnVtX2FscmVhZHlfZGVjb21taXR0ZWRfZ3JhbnVs
ZXMgPSAlenVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBmcmVlX2dyYW51bGVzLm51bV9h
bHJlYWR5X2RlY29tbWl0dGVkX2dyYW51bGVzKTsKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJU
KCEicGFnZV9pc19kZWFkIGRvZXMgbm90IG1hdGNoIGZyZWVfZ3JhbnVsZXMiKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgUEFTX0FTU0VSVChmcmVlX2dyYW51bGVz
Lm51bV9mcmVlX2dyYW51bGVzIDw9IG51bV9ncmFudWxlcyk7CisKKyAgICAgICAgICAgIGlmICgh
ZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxlcykgeworICAgICAgICAgICAgICAgIHBhc19s
b2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICAgICAgICAgIHBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2dfdW5sb2NrX2FmdGVyX2Fib3J0ZWRfYWRkKGRlY29tbWl0X2xv
ZywgY29tbWl0X2xvY2spOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAocGFnZV9pc19kZWFkKQorICAgICAgICAg
ICAgICAgIHZpZXctPmlzX293bmVkID0gZmFsc2U7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IC8qIFdlIGhhdmUgdG8gcmVsZWFzZSB0aGUgb3duZXJzaGlwIGxvY2sgdG8gZGVjb21taXQgYmVj
YXVzZSBkZWNvbW1pdCB3YW50cyB0aGUgaGVhcAorICAgICAgICAgICAgICAgbG9jay4gVGhhdCdz
IHNhZmUgc2luY2Ugd2UndmUgYWxyZWFkeSBtYXJrZWQgdGhlIHN0dWZmIGRlY29tbWl0dGVkLiBU
aGF0IG1lYW5zCisgICAgICAgICAgICAgICB0aGF0IGFueSBhdHRlbXB0IHRvIHVzZSB0aG9zZSBn
cmFudWxlcyB3aWxsIGhhdmUgdG8gZ3JhYiB0aGUgY29tbWl0IGxvY2ssIHdoaWNoCisgICAgICAg
ICAgICAgICB3ZSBob2xkLiAqLworICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5v
d25lcnNoaXBfbG9jayk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICAgICAgICAgIHBhc19sb2coIkRvaW5nIGZyZWUgZ3JhbnVsZSBkZWNvbW1pdCB3aXRo
IGxvY2sgJXBcbiIsIGNvbW1pdF9sb2NrKTsKKyAgICAgICAgICAgIHBhc19mcmVlX2dyYW51bGVz
X2RlY29tbWl0X2FmdGVyX2xvY2tpbmdfcmFuZ2UoCisgICAgICAgICAgICAgICAgJmZyZWVfZ3Jh
bnVsZXMsICZwYWdlLT5iYXNlLCBkZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrLCAmcGFnZV9jb25m
aWctPmJhc2UsCisgICAgICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2co
IkRvbmUsIHN1Y2Nlc3MhXG4iKTsKKyAgICAgICAgICAgIAorICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgaWYgKCFwYWdlX2lzX2RlYWQpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9ja191
bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAgICAgICAgICBwYXNfZGVmZXJy
ZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVkX2FkZChkZWNvbW1pdF9sb2csIGNv
bW1pdF9sb2NrKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgLyogV2UgZG8gdGhpcyB3aGlsZSBob2xkaW5nIGJvdGggbG9ja3MuIFdoZW4g
d2UgcmVsZWFzZSB0aGUgb3duZXJzaGlwIGxvY2ssIHRoZW4gaWYgc29tZW9uZQorICAgICAgICAg
ICAgICAgZWxzZSBnZXRzIGl0LCB0aGV5IHdpbGwgaW1tZWRpYXRlbHkgcmVsZWFzZSBpdCB0byB0
cnkgdG8gY29tcGV0ZSBmb3IgdGhlIGNvbW1pdCBsb2NrLAorICAgICAgICAgICAgICAgd2hpY2gg
d2UgaG9sZC4gKi8KKyAgICAgICAgICAgIHZpZXctPmlzX293bmVkID0gZmFsc2U7CisKKyAgICAg
ICAgICAgIC8qIEFuZCB3ZSBoYXZlIHRvIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrIGJlY2F1
c2UgZGVjb21taXR0aW5nIG1heSBuZWVkIHRvIGhvbGQgdGhlIGhlYXAKKyAgICAgICAgICAgICAg
IGxvY2ssIGFuZCB0aGUgaGVhcCBsb2NrIGlzIG91dGVyIHRvIHRoZSBvd25lcnNoaXAgbG9jay4g
Ki8KKyAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwor
CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJEZWNv
bWl0dGluZyBwYWdlICVwXG4iLCBwYWdlKTsKKworICAgICAgICAgICAgcGFzX2RlZmVycmVkX2Rl
Y29tbWl0X2xvZ19hZGRfYWxyZWFkeV9sb2NrZWQoCisgICAgICAgICAgICAgICAgZGVjb21taXRf
bG9nLAorICAgICAgICAgICAgICAgIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZShiYXNlLCBiYXNl
ICsgcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplLCBjb21taXRfbG9jayksCisgICAgICAgICAg
ICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAg
IHBhc192ZXJzaW9uZWRfZmllbGRfdHJ5X3dyaXRlKCZkaXJlY3RvcnktPmxhc3RfZW1wdHlfcGx1
c19vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfZW1wdHlf
cGx1c19vbmVfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
ZGV4KTsKKyAgICAgICAgCisgICAgICAgIGlmIChwYWdlX2lzX2RlYWQpCisgICAgICAgICAgICBw
YWdlX2NvbmZpZy0+YmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNlLCBoZWFwX2xv
Y2tfaG9sZF9tb2RlKTsKKworICAgICAgICBQQVNfQVNTRVJUKHBhc19iaXRmaXRfZGlyZWN0b3J5
X2RvZXNfc2hhcmluZyhkaXJlY3RvcnkpKTsKKyAgICAgICAgCisgICAgICAgIHBhc19wYWdlX3No
YXJpbmdfcG9vbF9kaWRfY3JlYXRlX2RlbHRhKAorICAgICAgICAgICAgJnBhc19waHlzaWNhbF9w
YWdlX3NoYXJpbmdfcG9vbCwKKyAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBh
bnRfY3JlYXRlKAorICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5KSk7CisgICAgICAgIAorICAgICAgICByZXR1cm4g
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKKyAgICB9CisKKyAgICBwYXNfdmVy
c2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgmZGlyZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfZW1wdHlfcGx1c19vbmVfdmFs
dWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAgCisgICAgcmV0
dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOworfQorCit2b2lk
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKAorICAgIHBhc19iaXRmaXRfZGly
ZWN0b3J5KiBkaXJlY3RvcnksIHBhc19zdHJlYW0qIHN0cmVhbSkKK3sKKyAgICBwYXNfc3RyZWFt
X3ByaW50ZigKKyAgICAgICAgc3RyZWFtLCAiJXAoYml0Zml0X2RpcmVjdG9yeSwgJXMpIiwKKyAg
ICAgICAgZGlyZWN0b3J5LCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhk
aXJlY3RvcnktPmNvbmZpZ19raW5kKSk7Cit9CisKK3ZvaWQgcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
ZHVtcF9mb3Jfc3BlY3RydW0ocGFzX3N0cmVhbSogc3RyZWFtLCB2b2lkKiBkaXJlY3RvcnkpCit7
CisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoZGlyZWN0b3J5LCBzdHJl
YW0pOworfQorCiAjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rvcnku
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9kaXJlY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwyNiArMjYsMzAgQEAKICNp
Zm5kZWYgUEFTX0JJVEZJVF9ESVJFQ1RPUllfSAogI2RlZmluZSBQQVNfQklURklUX0RJUkVDVE9S
WV9ICiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmgiCiAjaW5jbHVkZSAi
cGFzX2JpdGZpdF9tYXhfZnJlZS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZV9jb25maWdf
a2luZC5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaCIKICNpbmNsdWRl
ICJwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyLmgiCiAjaW5jbHVkZSAi
cGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0ci5oIgogI2luY2x1ZGUgInBhc19oZWFw
X3N1bW1hcnkuaCIKKyNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmgiCiAj
aW5jbHVkZSAicGFzX3NlZ21lbnRlZF92ZWN0b3IuaCIKICNpbmNsdWRlICJwYXNfdmVyc2lvbmVk
X2ZpZWxkLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19iaXRmaXRfZGly
ZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3M7CitzdHJ1Y3QgcGFz
X2JpdGZpdF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQ7CitzdHJ1Y3QgcGFzX2JpdGZpdF9z
aXplX2NsYXNzOwogc3RydWN0IHBhc19iaXRmaXRfcGFnZTsKIHN0cnVjdCBwYXNfYml0Zml0X3Zp
ZXc7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRm
aXRfZGlyZWN0b3J5IHBhc19iaXRmaXRfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzOwordHlw
ZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQgcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQ7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYml0
Zml0X3NpemVfY2xhc3MgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogdHlwZWRlZiBzdHJ1Y3QgcGFz
X2JpdGZpdF9wYWdlIHBhc19iaXRmaXRfcGFnZTsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRf
dmlldyBwYXNfYml0Zml0X3ZpZXc7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFw
IHBhc19zZWdyZWdhdGVkX2hlYXA7CiAKICNkZWZpbmUgUEFTX0JJVEZJVF9ESVJFQ1RPUllfVkVS
Qk9TRV9NQVhfRlJFRSBmYWxzZQogCkBAIC01NywxOSArNjEsMzUgQEAgUEFTX0RFQ0xBUkVfU0VH
TUVOVEVEX1ZFQ1RPUihwYXNfYml0Zml0XwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4KTsKIAorc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdt
ZW50IHsKKyAgICB1bnNpZ25lZCBlbXB0eV9iaXRzOworfTsKKworI2RlZmluZSBQQVNfQklURklU
X0RJUkVDVE9SWV9CSVRWRUNUT1JfU0VHTUVOVF9JTklUSUFMSVpFUiBcCisgICAgKChwYXNfYml0
Zml0X2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCl7IFwKKyAgICAgICAgIC5lbXB0eV9iaXRz
ID0gMCwgXAorICAgICB9KQorCitQQVNfREVDTEFSRV9TRUdNRU5URURfVkVDVE9SKHBhc19iaXRm
aXRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgNCk7CisKIHN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFz
X3ZlcnNpb25lZF9maWVsZCkpIHBhc19iaXRmaXRfZGlyZWN0b3J5IHsKICAgICBwYXNfdmVyc2lv
bmVkX2ZpZWxkIGZpcnN0X3VucHJvY2Vzc2VkX2ZyZWU7CiAgICAgcGFzX3ZlcnNpb25lZF9maWVs
ZCBmaXJzdF9lbXB0eTsKKyAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGxhc3RfZW1wdHlfcGx1c19v
bmU7IC8qIFplcm8gbWVhbnMgdGhlcmUgYXJlbid0IGFueS4gKi8KKyAgICBwYXNfc2VncmVnYXRl
ZF9oZWFwKiBoZWFwOworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0
b3JzIGJpdHZlY3RvcnM7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfdmVjdG9y
IG1heF9mcmVlczsKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X3ZlY3RvciB2aWV3czsK
KyAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3BheWxvYWQgcGh5c2ljYWxfc2hhcmlu
Z19wYXlsb2FkOwogICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIg
bGFyZ2VzdF9zaXplX2NsYXNzOwotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQgZGlyZWN0
b3J5X2tpbmQgOiA4OwogICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZCBjb25maWdfa2lu
ZCA6IDg7CiB9OwogCiBQQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfY29uc3RydWN0
KHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQgZGlyZWN0b3J5
X2tpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19i
aXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZpZywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCk7CiAKIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2l6
ZShwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewpAQCAtMTk1LDcgKzIxNSw2IEBA
IHN0YXRpYyBpbmxpbmUgcGFzX2JpdGZpdF92aWV3KiBwYXNfYml0ZmkKICAgIHNpemVfY2xhc3Mn
cyB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24uICovCiBQQVNfQVBJIHBhc19iaXRmaXRfdmlld19h
bmRfaW5kZXgKIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9maXJzdF9mcmVlX3ZpZXcocGFzX2Jp
dGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzcywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc3RhcnRfaW5k
ZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNp
emUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRf
cGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKQEAgLTIxNCw2ICsyMzMsMzcgQEAgUEFTX0FQSSBi
b29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X2Zvcl9lYQogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5
X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNrLAogICAgIHZvaWQqIGFyZyk7
CiAKK1BBU19BUEkgYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcocGFzX2Jp
dGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK1BBU19BUEkgdWludDY0X3QgcGFzX2JpdGZp
dF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5
KTsKKworUEFTX0FQSSBib29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRf
aW5kZXgoCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBzaXplX3Qg
aW5kZXgpOworCisvKiBSZXR1cm5zIHdoZXRoZXIgd2UgY2hhbmdlZCB0aGUgdmFsdWUuICovCitQ
QVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2V0X2VtcHR5X2JpdF9hdF9pbmRleCgK
KyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHNpemVfdCBpbmRleCwK
KyAgICBib29sIHZhbHVlKTsKKworUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X3Zp
ZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAorICAgIHNpemVfdCBpbmRleCk7CitQQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9k
aXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCisgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3KTsKKworUEFTX0FQSSBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfdGFrZV9s
YXN0X2VtcHR5KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFz
X2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nLAorICAgIHBhc19sb2NrX2hvbGRf
bW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKworUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZGly
ZWN0b3J5X2R1bXBfcmVmZXJlbmNlKAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksIHBhc19zdHJlYW0qIHN0cmVhbSk7CisKK1BBU19BUEkgdm9pZCBwYXNfYml0Zml0X2RpcmVj
dG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bShwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQqIGRpcmVjdG9y
eSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfQklURklUX0RJUkVDVE9S
WV9IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X2RpcmVjdG9yeV9hbmRfaW5kZXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9k
aXJlY3RvcnlfYW5kX2luZGV4LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0JJ
VEZJVF9ESVJFQ1RPUllfQU5EX0lOREVYX0gKLSNkZWZpbmUgUEFTX0JJVEZJVF9ESVJFQ1RPUllf
QU5EX0lOREVYX0gKLQotI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCIKLQot
UEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3Rvcnk7Ci1zdHJ1
Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2Jp
dGZpdF9kaXJlY3RvcnkgcGFzX2JpdGZpdF9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXggcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4
OwotCi1zdHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4IHsKLSAgICBwYXNfYml0
Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgIHVuc2lnbmVkIGluZGV4OwotICAgIHBhc19i
aXRmaXRfZGlyZWN0b3J5X2tpbmQga2luZDsKLX07Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX2JpdGZp
dF9kaXJlY3RvcnlfYW5kX2luZGV4IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleF9jcmVh
dGUoCi0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgdW5zaWduZWQgaW5kZXgs
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQga2luZCkKLXsKLSAgICBwYXNfYml0Zml0X2RpcmVj
dG9yeV9hbmRfaW5kZXggcmVzdWx0OwotICAgIHJlc3VsdC5kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7
Ci0gICAgcmVzdWx0LmluZGV4ID0gaW5kZXg7Ci0gICAgcmVzdWx0LmtpbmQgPSBraW5kOwotICAg
IHJldHVybiByZXN1bHQ7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNf
QklURklUX0RJUkVDVE9SWV9BTkRfSU5ERVhfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDI3ICsyNiwxMSBAQAogI2lmbmRlZiBQQVNfQklURklUX0RJUkVDVE9SWV9JTkxJTkVT
X0gKICNkZWZpbmUgUEFTX0JJVEZJVF9ESVJFQ1RPUllfSU5MSU5FU19ICiAKLSNpbmNsdWRlICJw
YXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJl
Y3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKICNpbmNs
dWRlICJwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAot
c3RhdGljIGlubGluZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqCi1wYXNfYml0Zml0X2Rp
cmVjdG9yeV9nZXRfZ2xvYmFsKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0g
ICAgc3dpdGNoIChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kKSB7Ci0gICAgY2FzZSBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgcmV0dXJuIChwYXNfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICBjYXNlIHBhc19iaXRmaXRfYmlhc2luZ19k
aXJlY3Rvcnlfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJigocGFzX2JpdGZpdF9i
aWFzaW5nX2RpcmVjdG9yeSopZGlyZWN0b3J5KS0+cGFyZW50X2dsb2JhbCk7Ci0gICAgfQotICAg
IFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICByZXR1cm4gTlVMTDsK
LX0KLQogdHlwZWRlZiBzdHJ1Y3QgewogICAgIHVuc2lnbmVkIG51bV9iaXRzOwogfSBwYXNfYml0
Zml0X2RpcmVjdG9yeV9maW5kX2ZpcnN0X2ZyZWVfZm9yX251bV9iaXRzX2l0ZXJhdGVfZGF0YTsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0
b3J5X2tpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaAko
bm9uZXhpc3RlbnQpCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQklURklUX0RJUkVDVE9SWV9LSU5EX0gK
LSNkZWZpbmUgUEFTX0JJVEZJVF9ESVJFQ1RPUllfS0lORF9ICi0KLSNpbmNsdWRlICJwYXNfdXRp
bHMuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi0vKiBCaXRmaXQgZGlyZWN0b3JpZXMgZm9y
bSBhIHR5cGUgaGllcmFyY2h5IGxpa2Ugc286Ci0gICAKLSAgICAgICAtIGRpcmVjdG9yeQotICAg
ICAgICAgICAtIGdsb2JhbCBkaXJlY3RvcnkKLSAgICAgICAgICAgLSBiaWFzaW5nIGRpcmVjdG9y
eQotICAgCi0gICBPbmx5IHRoZSB0eXBlcyBhdCB0aGUgbGVhdmVzIGFyZSBpbnN0YW50aWFibGUu
IFRoZSBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kIGVudW0gaXMgZm9yCi0gICBkZXNjcmliaW5n
IHRoZSBpbnN0YW50aWFibGUgbGVhdmVzLiAqLwotCi1lbnVtIHBhc19iaXRmaXRfZGlyZWN0b3J5
X2tpbmQgewotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kLAotICAgIHBhc19i
aXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZAotfTsKLQotdHlwZWRlZiBlbnVtIHBhc19iaXRm
aXRfZGlyZWN0b3J5X2tpbmQgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZDsKLQotc3RhdGljIGlu
bGluZSBjb25zdCBjaGFyKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kX2dldF9zdHJpbmcocGFz
X2JpdGZpdF9kaXJlY3Rvcnlfa2luZCBraW5kKQotewotICAgIHN3aXRjaCAoa2luZCkgewotICAg
IGNhc2UgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiAi
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkiOwotICAgIGNhc2UgcGFzX2JpdGZpdF9iaWFzaW5nX2Rp
cmVjdG9yeV9raW5kOgotICAgICAgICByZXR1cm4gImJpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSI7
Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICBy
ZXR1cm4gTlVMTDsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19CSVRG
SVRfRElSRUNUT1JZX0tJTkRfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnku
YwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MDMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVk
ZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCi0KLSNpbmNsdWRlICJwYXNfYml0Zml0
X3BhZ2UuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oIgotI2luY2x1ZGUg
InBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCIKLSNpbmNsdWRlICJwYXNfZnJlZV9ncmFudWxl
cy5oIgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX2hlYXAuaCIKLSNpbmNsdWRlICJwYXNfc3RyZWFtLmgiCi0jaW5jbHVkZSAicGFz
X3N1YnBhZ2VfbWFwLmgiCi0KLWJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2Nhbl9l
eHBsb2RlID0gdHJ1ZTsKLWJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2ZvcmNlX2V4
cGxvZGUgPSBmYWxzZTsKLQotdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfY29uc3Ry
dWN0KHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNv
bmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9oZWFwKiBoZWFwKQotewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2NvbnN0cnVj
dCgmZGlyZWN0b3J5LT5iYXNlLCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZCwgY29u
ZmlnKTsKLSAgICBkaXJlY3RvcnktPmhlYXAgPSBoZWFwOwotICAgIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9yc19jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+Yml0
dmVjdG9ycyk7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9z
dG9yZSgmZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdfcG9vbCwgTlVMTCk7Ci0gICAgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkX2NvbnN0cnVjdCgmZGlyZWN0b3J5LT5waHlzaWNh
bF9zaGFyaW5nX3BheWxvYWQpOwotICAgIGRpcmVjdG9yeS0+Y29udGVudGlvbl9kaWRfdHJpZ2dl
cl9leHBsb3Npb24gPQotICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfY2FuX2V4
cGxvZGUgJiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZm9yY2VfZXhwbG9kZTsKLQotICAg
IC8qIFdlIGNvdWxkIGhhdmUgYmVlbiBsYXp5IGFib3V0IHRoaXMgLSBidXQgaXQncyBwcm9iYWJs
eSBub3Qgc3VwZXIgbmVjZXNzYXJ5IHNpbmNlIHRoZSBwb2ludAotICAgICAgIG9mIGJpdGZpdCBn
bG9iYWwgZGlyZWN0b3JpZXMgaXMgdGhhdCB0aGVyZSB3b24ndCBiZSB0b28gbWFueSBvZiB0aGVt
LiAqLwotICAgIGlmIChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKGRp
cmVjdG9yeSkpIHsKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2FkZCgKLSAgICAgICAg
ICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCi0gICAgICAgICAgICBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKLSAgICAgICAgICAgICAgICBkaXJlY3Rvcnks
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeSkpOwotICAgIH0K
LX0KLQotYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKHBhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiBwYXNfcGFn
ZV9zaGFyaW5nX21vZGVfZG9lc19zaGFyaW5nKAotICAgICAgICBkaXJlY3RvcnktPmhlYXAtPnJ1
bnRpbWVfY29uZmlnLT5zaGFyaW5nX21vZGUpOwotfQotICAgIAotdWludDY0X3QgcGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5X2dldF91c2VfZXBvY2gocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgdWludHB0cl90IGxhc3RfZW1wdHlfcGx1c19vbmU7Ci0g
ICAgc2l6ZV90IGluZGV4OwotICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcgY29uZmlnOwotCi0g
ICAgbGFzdF9lbXB0eV9wbHVzX29uZSA9IGRpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZS52
YWx1ZTsKLSAgICBjb25maWcgPSAqcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25m
aWcoZGlyZWN0b3J5LT5iYXNlLmNvbmZpZ19raW5kKTsKLQotICAgIGZvciAoaW5kZXggPSBsYXN0
X2VtcHR5X3BsdXNfb25lOyBpbmRleC0tOykgewotICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZp
ZXc7Ci0gICAgICAgIHVpbnQ2NF90IGVwb2NoOwotCi0gICAgICAgIC8qIFByb3RlY3QgYWdhaW5z
dCB1bnNldCBlcG9jaHMuICovCi0gICAgICAgIGlmICghcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCkpCi0gICAgICAgICAg
ICBjb250aW51ZTsKLQotICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3Zp
ZXcoJmRpcmVjdG9yeS0+YmFzZSwgaW5kZXgpOwotICAgICAgICBpZiAoIXZpZXcpCi0gICAgICAg
ICAgICBjb250aW51ZTsKLQotICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBf
bG9jayk7Ci0gICAgICAgIGVwb2NoID0gMDsKLSAgICAgICAgaWYgKHZpZXctPmlzX293bmVkKSB7
Ci0gICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2UqIHBhZ2U7Ci0gICAgICAgICAgICBwYWdlID0g
cGFzX2JpdGZpdF9wYWdlX2Zvcl9ib3VuZGFyeSh2aWV3LT5wYWdlX2JvdW5kYXJ5LCBjb25maWcp
OwotICAgICAgICAgICAgaWYgKCFwYWdlLT5udW1fbGl2ZV9iaXRzKSB7Ci0gICAgICAgICAgICAg
ICAgZXBvY2ggPSBwYWdlLT51c2VfZXBvY2g7Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVChl
cG9jaCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcGFzX2xvY2tfdW5sb2Nr
KCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0KLSAgICAgICAgaWYgKGVwb2NoKQotICAgICAgICAg
ICAgcmV0dXJuIGVwb2NoOwotICAgIH0KLQotICAgIHJldHVybiAwOwotfQotCi1ib29sIHBhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9nZXRfZW1wdHlfYml0X2F0X2luZGV4KAotICAgIHBhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRleCkKLXsK
LSAgICByZXR1cm4gcGFzX2JpdHZlY3Rvcl9nZXRfZnJvbV93b3JkKAotICAgICAgICBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfZ2V0X3B0cl9jaGVja2Vk
KAotICAgICAgICAgICAgJmRpcmVjdG9yeS0+Yml0dmVjdG9ycywgUEFTX0JJVFZFQ1RPUl9XT1JE
X0lOREVYKGluZGV4KSktPmVtcHR5X2JpdHMsCi0gICAgICAgIGluZGV4KTsKLX0KLQotLyogUmV0
dXJucyB3aGV0aGVyIHdlIGNoYW5nZWQgdGhlIHZhbHVlLiAqLwotYm9vbCBwYXNfYml0Zml0X2ds
b2JhbF9kaXJlY3Rvcnlfc2V0X2VtcHR5X2JpdF9hdF9pbmRleCgKLSAgICBwYXNfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgsCi0gICAgYm9vbCB2
YWx1ZSkKLXsKLSAgICByZXR1cm4gcGFzX2JpdHZlY3Rvcl9zZXRfYXRvbWljX2luX3dvcmQoCi0g
ICAgICAgICZwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNf
Z2V0X3B0cl9jaGVja2VkKAotICAgICAgICAgICAgJmRpcmVjdG9yeS0+Yml0dmVjdG9ycywgUEFT
X0JJVFZFQ1RPUl9XT1JEX0lOREVYKGluZGV4KSktPmVtcHR5X2JpdHMsCi0gICAgICAgIGluZGV4
LAotICAgICAgICB2YWx1ZSk7Ci19Ci0KLXZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAgaWYgKCFwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2V0X2VtcHR5X2JpdF9hdF9pbmRleChkaXJlY3Rvcnks
IGluZGV4LCB0cnVlKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLyogSWYgd2UgYWxyZWFkeSBr
bmV3IGFib3V0IGVtcHRpZXMsIHRoZW4gd2UgaGF2ZSBub3RoaW5nIG1vcmUgdG8gZG8uICovCi0g
ICAgaWYgKHBhc192ZXJzaW9uZWRfZmllbGRfbWF4aW1pemUoJmRpcmVjdG9yeS0+bGFzdF9lbXB0
eV9wbHVzX29uZSwgaW5kZXggKyAxKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKGRpcmVjdG9yeSkpCi0gICAgICAg
IHJldHVybjsKLSAgICAKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0
YSgKLSAgICAgICAgJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbCwKLSAgICAgICAgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCi0gICAgICAgICAgICBkaXJlY3Rvcnks
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeSkpOwotfQotCi12
b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHkoCi0g
ICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX2JpdGZp
dF92aWV3KiB2aWV3KQotewotICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAgcGFzX2Nv
bXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmds
b2JhbF9kaXJlY3RvcnkpCi0gICAgICAgID09IGRpcmVjdG9yeSk7Ci0gICAgcGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKLSAgICAgICAg
ZGlyZWN0b3J5LCB2aWV3LT5pbmRleF9pbl9nbG9iYWwpOwotfQotCi1wYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3Rha2VfbGFzdF9l
bXB0eSgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnks
Ci0gICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nLAotICAgIHBhc19s
b2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQotewotICAgIHN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGly
ZWN0b3J5OwotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgbGFzdF9lbXB0eV9wbHVzX29uZV92YWx1
ZTsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogcGFnZV9j
b25maWc7Ci0gICAgc2l6ZV90IG51bV9ncmFudWxlczsKLSAgICBib29sIHVzZXNfc3VicGFnZXM7
Ci0KLSAgICBkaXJlY3RvcnkgPSAmZ2xvYmFsX2RpcmVjdG9yeS0+YmFzZTsKLQotICAgIGxhc3Rf
ZW1wdHlfcGx1c19vbmVfdmFsdWUgPSBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWQoJmdsb2JhbF9k
aXJlY3RvcnktPmxhc3RfZW1wdHlfcGx1c19vbmUpOwotCi0gICAgcGFnZV9jb25maWcgPSBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmNvbmZpZ19raW5k
KTsKLSAgICBudW1fZ3JhbnVsZXMgPSBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgLyBwYWdl
X2NvbmZpZy0+YmFzZS5ncmFudWxlX3NpemU7Ci0gICAgdXNlc19zdWJwYWdlcyA9IHBhc19iaXRm
aXRfcGFnZV9jb25maWdfdXNlc19zdWJwYWdlcygqcGFnZV9jb25maWcpOwotCi0gICAgZm9yIChp
bmRleCA9IGxhc3RfZW1wdHlfcGx1c19vbmVfdmFsdWUudmFsdWU7IGluZGV4LS07KSB7Ci0gICAg
ICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKLSAgICAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdl
OwotICAgICAgICB1aW50cHRyX3QgYmFzZTsKLSAgICAgICAgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5
KiBzdWJwYWdlX2VudHJ5OwotICAgICAgICBwYXNfbG9jayogY29tbWl0X2xvY2s7Ci0gICAgICAg
IGJvb2wgcGFnZV9pc19kZWFkOwotICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5k
ZXggZGlyZWN0b3J5X2FuZF9pbmRleDsKLSAgICAgICAgcGFzX2JpdGZpdF9tYXhfZnJlZSBtYXhf
ZnJlZTsKLSAgICAgICAgCi0gICAgICAgIGlmICghcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgoZ2xvYmFsX2RpcmVjdG9yeSwgaW5kZXgsIGZhbHNlKSkK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X2RpcmVj
dG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsKLQotICAgICAgICBQQVNfQVNTRVJUKHZp
ZXcpOwotICAgICAgICBQQVNfQVNTRVJUKHZpZXctPnBhZ2VfYm91bmRhcnkpOyAvKiBZb3UgZG9u
J3QgYmVjb21lIGVtcHR5IHVudGlsIHlvdSBoYXZlIGEgcGFnZSBhbmQgdGhlbgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5b3UgbmV2ZXIgbG9zZSB0aGUgcGFn
ZS4gKi8KLQotICAgICAgICBpZiAodXNlc19zdWJwYWdlcykgewotICAgICAgICAgICAgc3VicGFn
ZV9lbnRyeSA9IHBhc19zdWJwYWdlX21hcF9nZXQoCi0gICAgICAgICAgICAgICAgdmlldy0+cGFn
ZV9ib3VuZGFyeSwgcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplLCBoZWFwX2xvY2tfaG9sZF9t
b2RlKTsKLSAgICAgICAgICAgIGNvbW1pdF9sb2NrID0gJnN1YnBhZ2VfZW50cnktPmNvbW1pdF9s
b2NrOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3VicGFnZV9lbnRyeSA9IE5VTEw7
Ci0gICAgICAgICAgICBjb21taXRfbG9jayA9ICZ2aWV3LT5jb21taXRfbG9jazsKLSAgICAgICAg
fQotCi0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygiR3JhYmJpbmcg
Y29tbWl0IGxvY2sgJXBcbiIsIGNvbW1pdF9sb2NrKTsKLSAgICAgICAgaWYgKCFwYXNfZGVmZXJy
ZWRfZGVjb21taXRfbG9nX2xvY2tfZm9yX2FkZGluZygKLSAgICAgICAgICAgICAgICBkZWNvbW1p
dF9sb2csIGNvbW1pdF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKSkgewotICAgICAgICAgICAg
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRl
eChnbG9iYWxfZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICByZXR1cm4gcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX3Rha2VfbG9ja3NfdW5hdmFpbGFibGU7Ci0gICAgICAgIH0KLQotICAgICAg
ICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0KLSAgICAgICAgaWYgKCF2
aWV3LT5pc19vd25lZCkgewotICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25l
cnNoaXBfbG9jayk7Ci0gICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9j
a19hZnRlcl9hYm9ydGVkX2FkZChkZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrKTsKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgYmFzZSA9ICh1aW50cHRyX3Qpdmll
dy0+cGFnZV9ib3VuZGFyeTsKLSAgICAgICAgUEFTX0FTU0VSVChiYXNlKTsKLSAgICAgICAgcGFn
ZSA9IHBhc19iaXRmaXRfcGFnZV9mb3JfYm91bmRhcnkoKHZvaWQqKWJhc2UsICpwYWdlX2NvbmZp
Zyk7Ci0gICAgICAgIFBBU19BU1NFUlQocGFnZSk7Ci0KLSAgICAgICAgcGFnZV9pc19kZWFkID0g
IXBhZ2UtPm51bV9saXZlX2JpdHM7Ci0KLSAgICAgICAgZGlyZWN0b3J5X2FuZF9pbmRleCA9IHBh
c19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRfaW5kZXgodmlldyk7Ci0gICAgICAg
IG1heF9mcmVlID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X21heF9mcmVlKGRpcmVjdG9yeV9h
bmRfaW5kZXguZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaXJlY3RvcnlfYW5kX2luZGV4LmluZGV4KTsKLSAgICAgICAgaWYg
KHBhZ2VfaXNfZGVhZCkgewotICAgICAgICAgICAgLyogSWYgYSBwYWdlJ3MgbnVtX2xpdmVfYml0
cyBkcm9wcyB0byB6ZXJvIHRoZW4gd2Ugd2lsbCBtYXJrIGl0IGVtcHR5IGluIHRoZSBkaXJlY3Rv
cnkgdGhhdAotICAgICAgICAgICAgICAgb3ducyBpdCB3aGlsZSBob2xkaW5nIHRoZSBsb2NrLiBO
ZXdseSBjcmVhdGVkIHBhZ2VzIHN0YXJ0IG91dCBlbXB0eS4KLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgVGhlIGZhY3QgdGhhdCBkZWFkIHBhZ2VzIGFyZSBlbXB0eSBpbiBiaWFzaW5nIGRp
cmVjdG9yaWVzIGhhcyBhbiBpbnRlcmVzdGluZyBjb25zZXF1ZW5jZS4KLSAgICAgICAgICAgICAg
IEl0IG1lYW5zIHRoYXQgd2hlbiB3ZSBkZWNvbW1pdCBpdCB0aGVuIHRoZSBiaWFzaW5nIGRpcmVj
dG9yeSB3aWxsIHNraXAgdGhpcyBwYWdlLiBXZSBhbHNvCi0gICAgICAgICAgICAgICB1bmJpYXMg
aXQgc28gdGhhdCBpZiB3ZSBkbyBjb21lIGJhY2sgdG8gaXQsIHdlJ2xsIGdldCBhIGZyZXNoIHBh
Z2UgZnJvbSB0aGUgZ2xvYmFsCi0gICAgICAgICAgICAgICBkaXJlY3RvcnkgcmF0aGVyIHRoYW4g
dHJ5aW5nIHRvIGNvbW1pdCB0aGlzIG9uZS4gICovCi0gICAgICAgICAgICBpZiAobWF4X2ZyZWUg
IT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSkgewotICAgICAgICAgICAgICAgIHBhc19sb2co
IiVwOiV1OiBmb3VuZCBub24tZW1wdHkgcGFnZSB0aGF0IGlzIGRlYWQgd2hlbiB0YWtpbmcgbGFz
dCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQobWF4X2ZyZWUgPT0gUEFT
X0JJVEZJVF9NQVhfRlJFRV9FTVBUWSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlm
IChkaXJlY3RvcnlfYW5kX2luZGV4LmtpbmQgPT0gcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eV9raW5kKSB7Ci0gICAgICAgICAgICAgICAgdmlldy0+aW5kZXhfaW5fYmlhc2luZyA9IDA7Ci0g
ICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9l
bXB0eSgKLSAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBpbmRleCwgImJlY29tZSBlbXB0
eSBpbiBnbG9iYWwgb24gdW5iaWFzIGR1cmluZyBwYWdlIHRha2UiKTsKLSAgICAgICAgICAgICAg
ICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9zdG9yZSgm
dmlldy0+Ymlhc2luZ19kaXJlY3RvcnksIE5VTEwpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHdlIGRvbid0IGNsZWFyIHRoZSB2aWV3IG91dCBv
ZiB0aGUgZGlyZWN0b3J5IHVudGlsIHdlJ3JlIGRvbmUgdGVsbGluZwotICAgICAgICAgICAgICAg
ICAgIHRoZSB2aWV3IHRoYXQgaXQncyBub3QgYmlhc2VkLiAqLwotICAgICAgICAgICAgICAgIHBh
c19mZW5jZSgpOwotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmll
d19wdHJfc3RvcmUoCi0gICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dl
dF92aWV3X3B0cihkaXJlY3RvcnlfYW5kX2luZGV4LmRpcmVjdG9yeSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeV9hbmRfaW5k
ZXguaW5kZXgpLAotICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8qIElmIGEgcGFnZSdzIG51bV9saXZlX2JpdHMg
Z29lcyBhYm92ZSB6ZXJvIHRoZW4gd2UgbWFyayBpdCB1bnByb2Nlc3NlZCB3aGlsZSBob2xkaW5n
IHRoZQotICAgICAgICAgICAgICAgbG9jay4gKi8KLSAgICAgICAgICAgIGlmIChtYXhfZnJlZSA9
PSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZKSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygi
JXA6JXU6IGZvdW5kIGVtcHR5IHBhZ2UgdGhhdCBpcyBub3QgZGVhZCB3aGVuIHRha2luZyBsYXN0
IGVtcHR5LlxuIik7Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVChtYXhfZnJlZSAhPSBQQVNf
QklURklUX01BWF9GUkVFX0VNUFRZKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICAKLSAgICAgICAgaWYgKG51bV9ncmFudWxlcyA+IDEpIHsKLSAgICAgICAgICAgIHBhc19mcmVl
X2dyYW51bGVzIGZyZWVfZ3JhbnVsZXM7Ci0gICAgICAgICAgICBwYXNfcGFnZV9ncmFudWxlX3Vz
ZV9jb3VudCogdXNlX2NvdW50czsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgUEFTX0FTU0VS
VCghdXNlc19zdWJwYWdlcyk7IC8qIFdlIHNob3VsZCBuZXZlciBzZXQgdXAgc3VicGFnZXMgZm9y
IGEgcGFnZSB3aXRoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3JhbnVsZXMuIFdlIGNvdWxkIGNoYW5nZSB0aGF0IChieSBhZGRpbmcgYSBiaXQKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3JlIGxvZ2ljKSBidXQgZm9yIG5v
dyBpdCBtYWtlcyBubyBzZW5zZS4gSXQgd291bGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvbmx5IG1ha2Ugc2Vuc2UgaWYgd2UgaGFkIHRvIGRlYWwgd2l0aCBh
IGR5bmFtaWMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0
ZW0gcGFnZSBzaXplIGFuZCB3ZSBkaWRuJ3Qgd2FudCB0byBhY2hpZXZlIHRoYXQKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSBzaGlwcGluZyBtdWx0aXBsZSBj
b25maWdzLiAqLwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAg
ICAgICAgICAgICBwYXNfbG9nKCJEZWNvbW1pdHRpbmcgZ3JhbnVsZXMgZm9yIHBhZ2UgJXBcbiIs
IHBhZ2UpOwotICAgICAgICAgICAgdXNlX2NvdW50cyA9IHBhc19iaXRmaXRfcGFnZV9nZXRfZ3Jh
bnVsZV91c2VfY291bnRzKHBhZ2UsICpwYWdlX2NvbmZpZyk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIHBhc19mcmVlX2dyYW51bGVzX2NvbXB1dGVfYW5kX21hcmtfZGVjb21taXR0ZWQoCi0g
ICAgICAgICAgICAgICAgJmZyZWVfZ3JhbnVsZXMsIHVzZV9jb3VudHMsIG51bV9ncmFudWxlcyk7
Ci0KLSAgICAgICAgICAgIGlmIChwYWdlX2lzX2RlYWQgIT0gKChmcmVlX2dyYW51bGVzLm51bV9h
bHJlYWR5X2RlY29tbWl0dGVkX2dyYW51bGVzICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzKSA9PSBudW1fZ3JhbnVsZXMp
KSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygicGFnZV9pc19kZWFkID0gJWRcbiIsIHBhZ2Vf
aXNfZGVhZCk7Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygiZnJlZV9ncmFudWxlcy5udW1fZnJl
ZV9ncmFudWxlcyA9ICV6dVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVfZ3JhbnVs
ZXMubnVtX2ZyZWVfZ3JhbnVsZXMpOwotICAgICAgICAgICAgICAgIHBhc19sb2coImZyZWVfZ3Jh
bnVsZXMubnVtX2FscmVhZHlfZGVjb21taXR0ZWRfZ3JhbnVsZXMgPSAlenVcbiIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBmcmVlX2dyYW51bGVzLm51bV9hbHJlYWR5X2RlY29tbWl0dGVkX2dy
YW51bGVzKTsKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCEicGFnZV9pc19kZWFkIGRvZXMg
bm90IG1hdGNoIGZyZWVfZ3JhbnVsZXMiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgUEFTX0FTU0VSVChmcmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzIDw9
IG51bV9ncmFudWxlcyk7Ci0KLSAgICAgICAgICAgIGlmICghZnJlZV9ncmFudWxlcy5udW1fZnJl
ZV9ncmFudWxlcykgewotICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3du
ZXJzaGlwX2xvY2spOwotICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2df
dW5sb2NrX2FmdGVyX2Fib3J0ZWRfYWRkKGRlY29tbWl0X2xvZywgY29tbWl0X2xvY2spOwotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAocGFnZV9pc19kZWFkKQotICAgICAgICAgICAgICAgIHZpZXctPmlzX293bmVk
ID0gZmFsc2U7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIFdlIGhhdmUgdG8gcmVsZWFz
ZSB0aGUgb3duZXJzaGlwIGxvY2sgdG8gZGVjb21taXQgYmVjYXVzZSBkZWNvbW1pdCB3YW50cyB0
aGUgaGVhcAotICAgICAgICAgICAgICAgbG9jay4gVGhhdCdzIHNhZmUgc2luY2Ugd2UndmUgYWxy
ZWFkeSBtYXJrZWQgdGhlIHN0dWZmIGRlY29tbWl0dGVkLiBUaGF0IG1lYW5zCi0gICAgICAgICAg
ICAgICB0aGF0IGFueSBhdHRlbXB0IHRvIHVzZSB0aG9zZSBncmFudWxlcyB3aWxsIGhhdmUgdG8g
Z3JhYiB0aGUgY29tbWl0IGxvY2ssIHdoaWNoCi0gICAgICAgICAgICAgICB3ZSBob2xkLiAqLwot
ICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19s
b2coIkRvaW5nIGZyZWUgZ3JhbnVsZSBkZWNvbW1pdCB3aXRoIGxvY2sgJXBcbiIsIGNvbW1pdF9s
b2NrKTsKLSAgICAgICAgICAgIHBhc19mcmVlX2dyYW51bGVzX2RlY29tbWl0X2FmdGVyX2xvY2tp
bmdfcmFuZ2UoCi0gICAgICAgICAgICAgICAgJmZyZWVfZ3JhbnVsZXMsICZwYWdlLT5iYXNlLCBk
ZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrLCAmcGFnZV9jb25maWctPmJhc2UsCi0gICAgICAgICAg
ICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlm
ICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIkRvbmUsIHN1Y2Nlc3MhXG4iKTsK
LSAgICAgICAgICAgIAotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKCFwYWdlX2lz
X2RlYWQpIHsKLSAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hp
cF9sb2NrKTsKLSAgICAgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9j
a19hZnRlcl9hYm9ydGVkX2FkZChkZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrKTsKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLyogV2UgZG8g
dGhpcyB3aGlsZSBob2xkaW5nIGJvdGggbG9ja3MuIFdoZW4gd2UgcmVsZWFzZSB0aGUgb3duZXJz
aGlwIGxvY2ssIHRoZW4gaWYgc29tZW9uZQotICAgICAgICAgICAgICAgZWxzZSBnZXRzIGl0LCB0
aGV5IHdpbGwgaW1tZWRpYXRlbHkgcmVsZWFzZSBpdCB0byB0cnkgdG8gY29tcGV0ZSBmb3IgdGhl
IGNvbW1pdCBsb2NrLAotICAgICAgICAgICAgICAgd2hpY2ggd2UgaG9sZC4gKi8KLSAgICAgICAg
ICAgIHZpZXctPmlzX293bmVkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIC8qIEFuZCB3ZSBoYXZl
IHRvIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrIGJlY2F1c2UgZGVjb21taXR0aW5nIG1heSBu
ZWVkIHRvIGhvbGQgdGhlIGhlYXAKLSAgICAgICAgICAgICAgIGxvY2ssIGFuZCB0aGUgaGVhcCBs
b2NrIGlzIG91dGVyIHRvIHRoZSBvd25lcnNoaXAgbG9jay4gKi8KLSAgICAgICAgICAgIHBhc19s
b2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotCi0gICAgICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJEZWNvbWl0dGluZyBwYWdlICVwXG4iLCBw
YWdlKTsKLQotICAgICAgICAgICAgaWYgKHVzZXNfc3VicGFnZXMpIHsKLSAgICAgICAgICAgICAg
ICBwYXNfc3VicGFnZV9tYXBfZW50cnlfZGVjb21taXQoCi0gICAgICAgICAgICAgICAgICAgIHN1
YnBhZ2VfZW50cnksCi0gICAgICAgICAgICAgICAgICAgICh2b2lkKiliYXNlLAotICAgICAgICAg
ICAgICAgICAgICBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUsCi0gICAgICAgICAgICAgICAg
ICAgIGRlY29tbWl0X2xvZywKLSAgICAgICAgICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9k
ZWNvbW1pdF9sb2dfYWRkX2FscmVhZHlfbG9ja2VkKAotICAgICAgICAgICAgICAgICAgICBkZWNv
bW1pdF9sb2csCi0gICAgICAgICAgICAgICAgICAgIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZShi
YXNlLCBiYXNlICsgcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplLCBjb21taXRfbG9jayksCi0g
ICAgICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0
ZSgmZ2xvYmFsX2RpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9lbXB0eV9wbHVzX29uZV92YWx1ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgpOwotICAgICAgICAKLSAgICAg
ICAgaWYgKHBhZ2VfaXNfZGVhZCkKLSAgICAgICAgICAgIHBhZ2VfY29uZmlnLT5iYXNlLmRlc3Ry
b3lfcGFnZV9oZWFkZXIoJnBhZ2UtPmJhc2UsIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAg
ICAgIFBBU19BU1NFUlQocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhn
bG9iYWxfZGlyZWN0b3J5KSk7Ci0gICAgICAgIAotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfZGlkX2NyZWF0ZV9kZWx0YSgKLSAgICAgICAgICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFy
aW5nX3Bvb2wsCi0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0
ZSgKLSAgICAgICAgICAgICAgICBnbG9iYWxfZGlyZWN0b3J5LCBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X2JpdGZpdF9kaXJlY3RvcnkpKTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiBw
YXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzOwotICAgIH0KLQotICAgIHBhc192ZXJz
aW9uZWRfZmllbGRfdHJ5X3dyaXRlKCZnbG9iYWxfZGlyZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNf
b25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfZW1wdHlfcGx1c19v
bmVfdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7Ci0gICAgCi0g
ICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOwotfQot
Ci12b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKLSAgICBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFt
KQotewotICAgIHBhc19zdHJlYW1fcHJpbnRmKAotICAgICAgICBzdHJlYW0sICIlcChiaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeSwgJXMpIiwKLSAgICAgICAgZGlyZWN0b3J5LCBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQpKTsK
LX0KLQotdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0o
cGFzX3N0cmVhbSogc3RyZWFtLCB2b2lkKiBkaXJlY3RvcnkpCi17Ci0gICAgcGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKGRpcmVjdG9yeSwgc3RyZWFtKTsKLX0KLQot
I2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMDcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0KLSNpZm5kZWYgUEFTX0JJVEZJVF9HTE9CQUxfRElSRUNUT1JZX0gKLSNkZWZpbmUgUEFTX0JJ
VEZJVF9HTE9CQUxfRElSRUNUT1JZX0gKLQotI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5
LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5o
IgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCIKLQotUEFTX0JFR0lO
X0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Owotc3RydWN0
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudDsKLXN0cnVjdCBw
YXNfc2VncmVnYXRlZF9oZWFwOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCBwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQ7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVn
YXRlZF9oZWFwIHBhc19zZWdyZWdhdGVkX2hlYXA7Ci0KLXN0cnVjdCBwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQgewotICAgIHVuc2lnbmVkIGVtcHR5X2JpdHM7
Ci19OwotCi0jZGVmaW5lIFBBU19CSVRGSVRfR0xPQkFMX0RJUkVDVE9SWV9CSVRWRUNUT1JfU0VH
TUVOVF9JTklUSUFMSVpFUiBcCi0gICAgKChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0
dmVjdG9yX3NlZ21lbnQpeyBcCi0gICAgICAgICAuZW1wdHlfYml0cyA9IDAsIFwKLSAgICAgfSkK
LQotUEFTX0RFQ0xBUkVfU0VHTUVOVEVEX1ZFQ1RPUihwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnlfc2VnbWVudGVkX2JpdHZlY3RvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNCk7Ci0KLXN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFzX3Zl
cnNpb25lZF9maWVsZCkpIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSB7Ci0gICAgcGFzX2Jp
dGZpdF9kaXJlY3RvcnkgYmFzZTsKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwOwotICAg
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9ycyBiaXR2ZWN0
b3JzOwotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgbGFzdF9lbXB0eV9wbHVzX29uZTsgLyogWmVy
byBtZWFucyB0aGVyZSBhcmVuJ3QgYW55LiAqLwotICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfcGF5bG9hZCBwaHlzaWNhbF9zaGFyaW5nX3BheWxvYWQ7Ci0gICAgcGFzX2NvbXBhY3Rf
YXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ciBiaWFzX3NoYXJpbmdfcG9vbDsKLSAgICBib29s
IGNvbnRlbnRpb25fZGlkX3RyaWdnZXJfZXhwbG9zaW9uOwotfTsKLQotZXh0ZXJuIFBBU19BUEkg
Ym9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfY2FuX2V4cGxvZGU7Ci1leHRlcm4gUEFT
X0FQSSBib29sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9mb3JjZV9leHBsb2RlOwotCi1Q
QVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2NvbnN0cnVjdChwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIGNvbmZp
ZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2hlYXAqIHNlZ3JlZ2F0ZWRfaGVhcCk7Ci0KLVBBU19BUEkgYm9vbCBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSB1aW50NjRfdCBwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSk7Ci0KLVBBU19BUEkgYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0
X2VtcHR5X2JpdF9hdF9pbmRleCgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgpOwotCi0vKiBSZXR1cm5zIHdoZXRoZXIgd2UgY2hh
bmdlZCB0aGUgdmFsdWUuICovCi1QQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4LAotICAgIGJvb2wgdmFsdWUpOwotCi1Q
QVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9l
bXB0eV9hdF9pbmRleCgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKLSAgICBzaXplX3QgaW5kZXgpOwotUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHkoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3KTsKLQotUEFTX0FQ
SSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKLSAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2cs
Ci0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi1QQVNfQVBJ
IHZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKAotICAgIHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0p
OwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2R1bXBfZm9yX3Nw
ZWN0cnVtKHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGlyZWN0b3J5KTsKLQotUEFTX0VORF9F
WFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19CSVRGSVRfR0xPQkFMX0RJUkVDVE9SWV9IICovCi0K
LQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9i
YWxfc2l6ZV9jbGFzcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYwkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzcy5jCShub25leGlzdGVudCkKQEAgLTEsMTY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZp
Zy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFs
X3NpemVfY2xhc3MuaCIKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVz
LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUg
InBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19oZWFwX2xvY2su
aCIKLSNpbmNsdWRlICJwYXNfaW1tb3J0YWxfaGVhcC5oIgotI2luY2x1ZGUgInBhc19tYWdhemlu
ZS5oIgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCIKLSNpbmNsdWRl
ICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKLQotcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
cyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19jcmVhdGUoCi0gICAgdW5zaWduZWQgc2l6
ZSwKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNf
Y29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQpCi17
Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogcmVzdWx0OwotCi0gICAgcmVzdWx0
ID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQoCi0gICAgICAgIHNp
emVvZihwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKSwKLSAgICAgICAgYWxpZ25vZihwYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKSwKLSAgICAgICAgInBhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3MiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgcGFzX2Jp
dGZpdF9zaXplX2NsYXNzX2NvbnN0cnVjdCgmcmVzdWx0LT5iYXNlLCBzaXplLCAmZGlyZWN0b3J5
LT5iYXNlLCBpbnNlcnRpb25fcG9pbnQpOwotICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xh
c3NfYmlhc2luZ192ZWN0b3JfY29uc3RydWN0KCZyZXN1bHQtPmJpYXNpbmdfdmVjdG9yKTsKLQot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXBhc19iaXRmaXRfc2l6ZV9jbGFzcyoKLXBhc19iaXRm
aXRfZ2xvYmFsX3NpemVfY2xhc3Nfc2VsZWN0X2Zvcl9tYWdhemluZShwYXNfYml0Zml0X2dsb2Jh
bF9zaXplX2NsYXNzKiBnbG9iYWxfc2l6ZV9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKQotewotICAg
IHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5KiBnbG9iYWxfZGlyZWN0b3J5OwotICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnQgcGFydGljaXBhbnQ7Ci0gICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiByZXN1bHQ7Ci0g
ICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwb29sOwotICAgIHBhc19iaXRmaXRfYmlhc2luZ19k
aXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5OwotICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfc2l6ZV9jbGFzc19wdHIqIHNpemVfY2xhc3NfcHRyOwotICAgIHVuc2lnbmVkIG1hZ2F6aW5l
X2luZGV4OwotCi0gICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9w
dHJfbG9hZCgmZ2xvYmFsX3NpemVfY2xhc3MtPmJhc2UuZGlyZWN0b3J5KTsKLSAgICBnbG9iYWxf
ZGlyZWN0b3J5ID0gKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSopZGlyZWN0b3J5OwotICAg
IAotICAgIGlmICghZ2xvYmFsX2RpcmVjdG9yeS0+Y29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBs
b3Npb24gfHwgIW1hZ2F6aW5lKQotICAgICAgICByZXR1cm4gJmdsb2JhbF9zaXplX2NsYXNzLT5i
YXNlOwotICAgIAotICAgIFBBU19BU1NFUlQocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2Nh
bl9leHBsb2RlKTsKLSAgICBtYWdhemluZV9pbmRleCA9IG1hZ2F6aW5lLT5tYWdhemluZV9pbmRl
eDsKLQotICAgIGlmIChtYWdhemluZV9pbmRleCA8IGdsb2JhbF9zaXplX2NsYXNzLT5iaWFzaW5n
X3ZlY3Rvci5zaXplKSB7Ci0gICAgICAgIHJlc3VsdCA9IHBhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfc2l6ZV9jbGFzc19wdHJfbG9hZCgKLSAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3NfYmlhc2luZ192ZWN0b3JfZ2V0X3B0cigKLSAgICAgICAgICAgICAgICAmZ2xvYmFs
X3NpemVfY2xhc3MtPmJpYXNpbmdfdmVjdG9yLCBtYWdhemluZV9pbmRleCkpOwotICAgICAgICBp
ZiAocmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSAgICBwb29s
ID0gcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkKCZnbG9iYWxf
ZGlyZWN0b3J5LT5iaWFzX3NoYXJpbmdfcG9vbCk7Ci0gICAgaWYgKCFwb29sKSB7Ci0gICAgICAg
IHBhc19oZWFwX2xvY2tfbG9jaygpOwotCi0gICAgICAgIHBvb2wgPSBwYXNfY29tcGFjdF9hdG9t
aWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmdsb2JhbF9kaXJlY3RvcnktPmJpYXNfc2hh
cmluZ19wb29sKTsKLSAgICAgICAgaWYgKCFwb29sKSB7Ci0gICAgICAgICAgICBwb29sID0gcGFz
X2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQoCi0gICAgICAgICAgICAgICAg
c2l6ZW9mKHBhc19wYWdlX3NoYXJpbmdfcG9vbCksCi0gICAgICAgICAgICAgICAgYWxpZ25vZihw
YXNfcGFnZV9zaGFyaW5nX3Bvb2wpLAotICAgICAgICAgICAgICAgICJwYXNfYml0Zml0X2dsb2Jh
bF9zaXplX2NsYXNzL2JpYXNfc2hhcmluZ19wb29sIiwKLSAgICAgICAgICAgICAgICBwYXNfb2Jq
ZWN0X2FsbG9jYXRpb24pOwotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2NvbnN0
cnVjdChwb29sKTsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdf
cG9vbF9wdHJfc3RvcmUoCi0gICAgICAgICAgICAgICAgJmdsb2JhbF9kaXJlY3RvcnktPmJpYXNf
c2hhcmluZ19wb29sLCBwb29sKTsKLSAgICAgICAgfQotCi0gICAgICAgIHBhc19oZWFwX2xvY2tf
dW5sb2NrKCk7Ci0KLSAgICAgICAgUEFTX0FTU0VSVCgKLSAgICAgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZ2xvYmFsX2RpcmVjdG9yeS0+Ymlh
c19zaGFyaW5nX3Bvb2wpCi0gICAgICAgICAgICA9PSBwb29sKTsKLSAgICB9Ci0KLSAgICBQQVNf
QVNTRVJUKHBvb2wpOwotCi0gICAgcGFydGljaXBhbnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
Z2V0X3BhcnRpY2lwYW50KHBvb2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICBpZiAoIXBhcnRpY2lw
YW50KSB7Ci0gICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gTlVMTDsKLSAgICAgICAgcGFzX2hl
YXBfbG9ja19sb2NrKCk7Ci0gICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19w
b29sX2dldF9wYXJ0aWNpcGFudChwb29sLCBtYWdhemluZV9pbmRleCk7Ci0gICAgICAgIGlmICgh
cGFydGljaXBhbnQpIHsKLSAgICAgICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeV9jcmVhdGUoCi0gICAgICAgICAgICAgICAgZ2xvYmFsX2RpcmVj
dG9yeSwgbWFnYXppbmVfaW5kZXgpOwotICAgICAgICB9Ci0gICAgICAgIHBhc19oZWFwX2xvY2tf
dW5sb2NrKCk7Ci0KLSAgICAgICAgaWYgKCFwYXJ0aWNpcGFudCkgewotICAgICAgICAgICAgcGFy
dGljaXBhbnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZ2V0X3BhcnRpY2lwYW50KHBvb2wsIG1h
Z2F6aW5lX2luZGV4KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoCi0gICAgICAgICAgICAgICAg
cGFydGljaXBhbnQgPSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKLSAgICAg
ICAgICAgICAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UsCi0gICAgICAg
ICAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3Rv
cnkpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAgICBQQVNfQVNTRVJUKHBhc19wYWdlX3No
YXJpbmdfcGFydGljaXBhbnRfZ2V0X2tpbmQocGFydGljaXBhbnQpCi0gICAgICAgICAgICAgICA9
PSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KTsKLQotICAg
IGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX3Vud3JhcF9iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnko
Ci0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFu
dCkpOwotCi0gICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0KLSAgICB3aGlsZSAobWFnYXppbmVf
aW5kZXggPj0gZ2xvYmFsX3NpemVfY2xhc3MtPmJpYXNpbmdfdmVjdG9yLnNpemUpIHsKLSAgICAg
ICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciBudWxsX3B0ciA9IFBB
U19DT01QQUNUX0FUT01JQ19QVFJfSU5JVElBTElaRVI7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3NfYmlhc2luZ192ZWN0b3JfYXBwZW5kKAotICAgICAgICAgICAgJmdsb2Jh
bF9zaXplX2NsYXNzLT5iaWFzaW5nX3ZlY3RvciwgbnVsbF9wdHIsIHBhc19sb2NrX2lzX2hlbGQp
OwotICAgIH0KLQotICAgIHNpemVfY2xhc3NfcHRyID0gcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzc19iaWFzaW5nX3ZlY3Rvcl9nZXRfcHRyKAotICAgICAgICAmZ2xvYmFsX3NpemVfY2xhc3Mt
PmJpYXNpbmdfdmVjdG9yLCBtYWdhemluZV9pbmRleCk7Ci0gICAgcmVzdWx0ID0gcGFzX2NvbXBh
Y3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9sb2FkKHNpemVfY2xhc3NfcHRyKTsKLSAg
ICBpZiAoIXJlc3VsdCkgewotICAgICAgICByZXN1bHQgPSBwYXNfYml0Zml0X3NpemVfY2xhc3Nf
Y3JlYXRlKAotICAgICAgICAgICAgZ2xvYmFsX3NpemVfY2xhc3MtPmJhc2Uuc2l6ZSwgJmJpYXNp
bmdfZGlyZWN0b3J5LT5iYXNlKTsKLSAgICAgICAgcGFzX2ZlbmNlKCk7Ci0gICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfc3RvcmUoc2l6ZV9jbGFzc19wdHIs
IHJlc3VsdCk7Ci0gICAgfQotCi0gICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKLQotICAgIHJl
dHVybiByZXN1bHQ7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oCShu
b25leGlzdGVudCkKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19CSVRGSVRfR0xPQkFMX1NJWkVfQ0xBU1Nf
SAotI2RlZmluZSBQQVNfQklURklUX0dMT0JBTF9TSVpFX0NMQVNTX0gKLQotI2luY2x1ZGUgInBh
c19iaXRmaXRfc2l6ZV9jbGFzcy5oIgotI2luY2x1ZGUgInBhc19zZWdtZW50ZWRfdmVjdG9yLmgi
Ci0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeTsKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzOwotc3RydWN0IHBhc19t
YWdhemluZTsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2dsb2Jh
bF9zaXplX2NsYXNzIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3M7Ci10eXBlZGVmIHN0cnVj
dCBwYXNfbWFnYXppbmUgcGFzX21hZ2F6aW5lOwotCi1QQVNfREVDTEFSRV9TRUdNRU5URURfVkVD
VE9SKHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfYmlhc2luZ192ZWN0b3IsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFz
c19wdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQpOwotCi1zdHJ1Y3QgUEFTX0FM
SUdORUQoc2l6ZW9mKHBhc192ZXJzaW9uZWRfZmllbGQpKSBwYXNfYml0Zml0X2dsb2JhbF9zaXpl
X2NsYXNzIHsKLSAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MgYmFzZTsKLSAgICBwYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVjdG9yIGJpYXNpbmdfdmVjdG9yOwotfTsKLQot
UEFTX0FQSSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBwYXNfYml0Zml0X2dsb2JhbF9z
aXplX2NsYXNzX2NyZWF0ZSgKLSAgICB1bnNpZ25lZCBzaXplLAotICAgIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRf
c2l6ZV9jbGFzc19wdHIqIGluc2VydGlvbl9wb2ludCk7Ci0KLVBBU19BUEkgcGFzX2JpdGZpdF9z
aXplX2NsYXNzKgotcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19zZWxlY3RfZm9yX21hZ2F6
aW5lKHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIHNpemVfY2xhc3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX21hZ2F6aW5lKiBtYWdh
emluZSk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQklURklUX0dMT0JB
TF9TSVpFX0NMQVNTX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5jCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSwxMyArMjksMTMgQEAKIAogI2luY2x1ZGUgInBhc19iaXRmaXRfaGVhcC5oIgog
Ci0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0
b3J5LmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2NsYXNzLmgiCiAjaW5jbHVkZSAicGFz
X2JpdGZpdF9wYWdlLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3LmgiCiAjaW5jbHVkZSAi
cGFzX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCiBwYXNfYml0Zml0X2hlYXAqIHBhc19i
aXRmaXRfaGVhcF9jcmVhdGUocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogc2VncmVnYXRlZF9oZWFwLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyog
aGVhcF9jb25maWcpCkBAIC01MCw3ICs1MCw3IEBAIHBhc19iaXRmaXRfaGVhcCogcGFzX2JpdGZp
dF9oZWFwX2NyZWF0ZSgKICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKIAogICAgIGZv
ciAoUEFTX0VBQ0hfQklURklUX1BBR0VfQ09ORklHX1ZBUklBTlRfQVNDRU5ESU5HKHZhcmlhbnQp
KSB7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9jb25zdHJ1Y3QoCisgICAg
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2NvbnN0cnVjdCgKICAgICAgICAgICAgIHBhc19iaXRm
aXRfaGVhcF9nZXRfZGlyZWN0b3J5KHJlc3VsdCwgdmFyaWFudCksCiAgICAgICAgICAgICBwYXNf
aGVhcF9jb25maWdfYml0Zml0X3BhZ2VfY29uZmlnX3B0cl9mb3JfdmFyaWFudChoZWFwX2NvbmZp
ZywgdmFyaWFudCksCiAgICAgICAgICAgICBzZWdyZWdhdGVkX2hlYXApOwpAQCAtMTA3LDE1ICsx
MDcsMTUgQEAgcGFzX2JpdGZpdF92YXJpYW50X3NlbGVjdGlvbiBwYXNfYml0Zml0XwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKLXBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqCi1wYXNfYml0
Zml0X2hlYXBfZW5zdXJlX2dsb2JhbF9zaXplX2NsYXNzKHBhc19iaXRmaXRfaGVhcCogaGVhcCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCitwYXNfYml0Zml0X3NpemVfY2xhc3Mq
CitwYXNfYml0Zml0X2hlYXBfZW5zdXJlX3NpemVfY2xhc3MocGFzX2JpdGZpdF9oZWFwKiBoZWFw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xk
X21vZGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAot
ICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIHJlc3VsdDsKKyAgICBwYXNfYml0Zml0
X3NpemVfY2xhc3MqIHJlc3VsdDsKICAgICBwYXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIGJl
c3Q7CiAKICAgICBpZiAodmVyYm9zZSkgewpAQCAtMTMzLDEwICsxMzMsMTAgQEAgcGFzX2JpdGZp
dF9oZWFwX2Vuc3VyZV9nbG9iYWxfc2l6ZV9jbGFzcwogICAgICAgICAgICAgICAgICIoZGlyZWN0
b3J5IHNpemUgPSAldSwgYmVzdCBvYmplY3Qgc2l6ZSA9ICV1KS5cbiIsCiAgICAgICAgICAgICAg
ICAgaGVhcCwgZGlyZWN0b3J5LCBkaXJlY3RvcnktPm9iamVjdF9zaXplLCBiZXN0Lm9iamVjdF9z
aXplKTsKICAgICB9Ci0gICAgcmVzdWx0ID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9i
YWxfc2l6ZV9jbGFzc19wdHJfbG9hZCgmZGlyZWN0b3J5LT5iaXRmaXRfc2l6ZV9jbGFzcyk7Cisg
ICAgcmVzdWx0ID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9sb2Fk
KCZkaXJlY3RvcnktPmJpdGZpdF9zaXplX2NsYXNzKTsKICAgICBpZiAoIXJlc3VsdCkgewogICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25f
cG9pbnQ7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogYml0Zml0X2RpcmVj
dG9yeTsKKyAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGJpdGZpdF9kaXJlY3Rvcnk7CiAg
ICAgICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzczsKIAogICAgICAgICBpZiAo
dmVyYm9zZSkKQEAgLTE0NSw3ICsxNDUsNyBAQCBwYXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2Jh
bF9zaXplX2NsYXNzCiAgICAgICAgIGJpdGZpdF9kaXJlY3RvcnkgPSBwYXNfYml0Zml0X2hlYXBf
Z2V0X2RpcmVjdG9yeShoZWFwLCBiZXN0LnZhcmlhbnQpOwogCiAgICAgICAgIGluc2VydGlvbl9w
b2ludCA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzc19maW5kX2luc2VydGlvbl9wb2ludCgKLSAgICAg
ICAgICAgICZiaXRmaXRfZGlyZWN0b3J5LT5iYXNlLCBiZXN0Lm9iamVjdF9zaXplKTsKKyAgICAg
ICAgICAgIGJpdGZpdF9kaXJlY3RvcnksIGJlc3Qub2JqZWN0X3NpemUpOwogICAgICAgICBpZiAo
aW5zZXJ0aW9uX3BvaW50KQogICAgICAgICAgICAgc2l6ZV9jbGFzcyA9IHBhc19jb21wYWN0X2F0
b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfbG9hZChpbnNlcnRpb25fcG9pbnQpOwogICAgICAg
ICBlbHNlCkBAIC0xNTQsMTMgKzE1NCwxMyBAQCBwYXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2Jh
bF9zaXplX2NsYXNzCiAgICAgICAgIGlmIChzaXplX2NsYXNzICYmIHNpemVfY2xhc3MtPnNpemUg
PT0gYmVzdC5vYmplY3Rfc2l6ZSkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAg
ICAgICAgICAgcGFzX2xvZygiQWN0dWFsbHkgaXQgZG9lcyFcbiIpOwotICAgICAgICAgICAgcmVz
dWx0ID0gKHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqKXNpemVfY2xhc3M7CisgICAgICAg
ICAgICByZXN1bHQgPSAocGFzX2JpdGZpdF9zaXplX2NsYXNzKilzaXplX2NsYXNzOwogICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0ID0gcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzc19jcmVhdGUoCisgICAgICAgICAgICByZXN1bHQgPSBwYXNfYml0Zml0X3NpemVfY2xhc3Nf
Y3JlYXRlKAogICAgICAgICAgICAgICAgIGJlc3Qub2JqZWN0X3NpemUsIGJpdGZpdF9kaXJlY3Rv
cnksIGluc2VydGlvbl9wb2ludCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyX3N0b3JlKAorICAgICAg
ICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX3N0b3JlKAogICAgICAg
ICAgICAgJmRpcmVjdG9yeS0+Yml0Zml0X3NpemVfY2xhc3MsIHJlc3VsdCk7CiAgICAgfQogICAg
IHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CkBAIC0xNzgsOCArMTc4LDcgQEAgcGFzX2hlYXBfc3VtbWFyeSBwYXNfYml0Zml0X2hlYXBfY29t
cHV0ZQogICAgIGZvciAoUEFTX0VBQ0hfQklURklUX1BBR0VfQ09ORklHX1ZBUklBTlRfQVNDRU5E
SU5HKHZhcmlhbnQpKSB7CiAgICAgICAgIHJlc3VsdCA9IHBhc19oZWFwX3N1bW1hcnlfYWRkKAog
ICAgICAgICAgICAgcmVzdWx0LAotICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfY29t
cHV0ZV9zdW1tYXJ5KAotICAgICAgICAgICAgICAgICZwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVj
dG9yeShoZWFwLCB2YXJpYW50KS0+YmFzZSkpOworICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJl
Y3RvcnlfY29tcHV0ZV9zdW1tYXJ5KHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KGhlYXAs
IHZhcmlhbnQpKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTIxNywxNSArMjE2
LDE1IEBAIGJvb2wgcGFzX2JpdGZpdF9oZWFwX2Zvcl9lYWNoX2xpdmVfb2JqZWMKICAgICBkYXRh
LmFyZyA9IGFyZzsKIAogICAgIGZvciAoUEFTX0VBQ0hfQklURklUX1BBR0VfQ09ORklHX1ZBUklB
TlRfQVNDRU5ESU5HKHZhcmlhbnQpKSB7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeSogZGlyZWN0b3J5OworICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5
OwogICAgICAgICBzaXplX3QgaW5kZXg7CiAKICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2JpdGZp
dF9oZWFwX2dldF9kaXJlY3RvcnkoaGVhcCwgdmFyaWFudCk7CiAKLSAgICAgICAgZm9yIChpbmRl
eCA9IDA7IGluZGV4IDwgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5LT5iYXNl
KTsgKytpbmRleCkgeworICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfYml0Zml0
X2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeSk7ICsraW5kZXgpIHsKICAgICAgICAgICAgIHBhc19i
aXRmaXRfdmlldyogdmlldzsKIAotICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0
b3J5X2dldF92aWV3KCZkaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKKyAgICAgICAgICAgIHZpZXcg
PSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsKICAgICAg
ICAgICAgIGlmICghdmlldykKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwyOCArMjYsMjggQEAKICNpZm5k
ZWYgUEFTX0JJVEZJVF9IRUFQX0gKICNkZWZpbmUgUEFTX0JJVEZJVF9IRUFQX0gKIAotI2luY2x1
ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRf
ZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50Lmgi
CiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19iaXRmaXRfaGVhcDsKIHN0cnVj
dCBwYXNfaGVhcF9jb25maWc7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owogc3RydWN0IHBh
c19zZWdyZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2hlYXAgcGFzX2Jp
dGZpdF9oZWFwOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfY29uZmlnIHBhc19oZWFwX2NvbmZp
ZzsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsK
IHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsK
IAogc3RydWN0IFBBU19BTElHTkVEKHNpemVvZihwYXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFzX2Jp
dGZpdF9oZWFwIHsKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkgZGlyZWN0b3JpZXNb
UEFTX05VTV9CSVRGSVRfUEFHRV9DT05GSUdfVkFSSUFOVFNdOworICAgIHBhc19iaXRmaXRfZGly
ZWN0b3J5IGRpcmVjdG9yaWVzW1BBU19OVU1fQklURklUX1BBR0VfQ09ORklHX1ZBUklBTlRTXTsK
IH07CiAKIFBBU19BUEkgcGFzX2JpdGZpdF9oZWFwKiBwYXNfYml0Zml0X2hlYXBfY3JlYXRlKHBh
c19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGhlYXBfY29uZmlnKTsKIAotc3RhdGlj
IGlubGluZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIHBhc19iaXRmaXRfaGVhcF9nZXRf
ZGlyZWN0b3J5KAorc3RhdGljIGlubGluZSBwYXNfYml0Zml0X2RpcmVjdG9yeSogcGFzX2JpdGZp
dF9oZWFwX2dldF9kaXJlY3RvcnkoCiAgICAgcGFzX2JpdGZpdF9oZWFwKiBoZWFwLAogICAgIHBh
c19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudCB2YXJpYW50KQogewpAQCAtNjMsOSArNjMsOSBA
QCB0eXBlZGVmIHN0cnVjdCB7CiBQQVNfQVBJIHBhc19iaXRmaXRfdmFyaWFudF9zZWxlY3Rpb24K
IHBhc19iaXRmaXRfaGVhcF9zZWxlY3RfdmFyaWFudChzaXplX3Qgb2JqZWN0X3NpemUsIHBhc19o
ZWFwX2NvbmZpZyogY29uZmlnKTsKIAotUEFTX0FQSSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2Ns
YXNzKgotcGFzX2JpdGZpdF9oZWFwX2Vuc3VyZV9nbG9iYWxfc2l6ZV9jbGFzcyhwYXNfYml0Zml0
X2hlYXAqIGhlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorUEFTX0FQSSBw
YXNfYml0Zml0X3NpemVfY2xhc3MqCitwYXNfYml0Zml0X2hlYXBfZW5zdXJlX3NpemVfY2xhc3Mo
cGFzX2JpdGZpdF9oZWFwKiBoZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZp
ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9s
ZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2UuYwkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlLmMJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgInBhc19iaXRmaXRf
cGFnZS5oIgogCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCisjaW5j
bHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcu
aCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCkBAIC0xMjUs
OSArMTI1LDkgQEAgdm9pZCBwYXNfYml0Zml0X3BhZ2VfY29uc3RydWN0KHBhc19iaXRmaQogcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZyogcGFzX2JpdGZpdF9wYWdlX2dldF9jb25maWcocGFzX2JpdGZp
dF9wYWdlKiBwYWdlKQogewogICAgIHJldHVybiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRf
Z2V0X2NvbmZpZygKLSAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZp
dF92aWV3X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICZwYWdlLT5vd25lcikt
Pmdsb2JhbF9kaXJlY3RvcnkpLT5iYXNlLmNvbmZpZ19raW5kKTsKKyAgICAgICAgICAgICAgICAm
cGFnZS0+b3duZXIpLT5kaXJlY3RvcnkpLT5jb25maWdfa2luZCk7CiB9CiAKIHZvaWQgcGFzX2Jp
dGZpdF9wYWdlX2xvZ19iaXRzKApAQCAtMjAxLDggKzIwMSw4IEBAIGJvb2wgcGFzX2JpdGZpdF9w
YWdlX2Zvcl9lYWNoX2xpdmVfb2JqZWMKIAogICAgIHZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNf
Yml0Zml0X3ZpZXdfcHRyX2xvYWQoJnBhZ2UtPm93bmVyKTsKICAgICBjb25maWdfcHRyID0gcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoCi0gICAgICAgIHBhc19jb21wYWN0
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAg
JnZpZXctPmdsb2JhbF9kaXJlY3RvcnkpLT5iYXNlLmNvbmZpZ19raW5kKTsKKyAgICAgICAgcGFz
X2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAg
ICZ2aWV3LT5kaXJlY3RvcnkpLT5jb25maWdfa2luZCk7CiAgICAgY29uZmlnID0gKmNvbmZpZ19w
dHI7CiAKICAgICBib3VuZGFyeSA9IHBhc19iaXRmaXRfcGFnZV9ib3VuZGFyeShwYWdlLCBjb25m
aWcpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjYsMTIgKzE2Niw2IEBAIHBhc19iaXRmaXRfcGFnZV9jb25maWdfYnl0
ZV9vZmZzZXRfZm9yX28KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0KTsKIH0KIAot
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wKLXBhc19iaXRmaXRfcGFnZV9jb25maWdfdXNl
c19zdWJwYWdlcyhwYXNfYml0Zml0X3BhZ2VfY29uZmlnIGNvbmZpZykKLXsKLSAgICByZXR1cm4g
Y29uZmlnLmJhc2UucGFnZV9zaXplIDwgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpOwotfQot
CiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0JJVEZJVF9QQUdFX0NPTkZJR19I
ICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3Bh
Z2VfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU5OSw3ICs1OTksNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dWludHB0cl90IHBhc19iCiAgICAgICAgIAogICAgIGNhc2UgcGFzX2JpdGZpdF9wYWdlX2RlYWxs
b2NhdGVfd2l0aF9wYWdlX2ltcGxfZGVhbGxvY2F0ZV9tb2RlOgogICAgIGNhc2UgcGFzX2JpdGZp
dF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlX2ltcGxfc2hyaW5rX21vZGU6Ci0gICAgICAgIHBh
c19iaXRmaXRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKG93bmVyKTsKKyAgICAgICAgcGFzX2xv
Y2tfbG9jaygmb3duZXItPm93bmVyc2hpcF9sb2NrKTsKICAgICAgICAgCiAgICAgICAgIHBhc19i
aXRmaXRfcGFnZV90ZXN0aW5nX3ZlcmlmeShwYWdlKTsKIApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfc2l6ZV9jbGFzcy5jCSh3b3JraW5nIGNvcHkpCkBAIC03NSw4ICs3NSwxMCBAQCB2
b2lkIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jb25zdHJ1Y3QocGFzCiAgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9zdG9yZShpbnNlcnRpb25fcG9pbnQsIHNpemVf
Y2xhc3MpOwogfQogCi1wYXNfYml0Zml0X3NpemVfY2xhc3MqIHBhc19iaXRmaXRfc2l6ZV9jbGFz
c19jcmVhdGUodW5zaWduZWQgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KQorcGFz
X2JpdGZpdF9zaXplX2NsYXNzKiBwYXNfYml0Zml0X3NpemVfY2xhc3NfY3JlYXRlKAorICAgIHVu
c2lnbmVkIHNpemUsCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBw
YXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQp
CiB7CiAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiByZXN1bHQ7CiAKQEAgLTg2LDE2ICs4OCwx
MyBAQCBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHBhc19iaXRmaXRfc2l6ZV9jCiAgICAgICAgICJw
YXNfYml0Zml0X3NpemVfY2xhc3MiLAogICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwog
Ci0gICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzX2NvbnN0cnVjdCgKLSAgICAgICAgcmVzdWx0LCBz
aXplLCBkaXJlY3RvcnksCi0gICAgICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19maW5kX2luc2Vy
dGlvbl9wb2ludChkaXJlY3RvcnksIHNpemUpKTsKKyAgICBwYXNfYml0Zml0X3NpemVfY2xhc3Nf
Y29uc3RydWN0KHJlc3VsdCwgc2l6ZSwgZGlyZWN0b3J5LCBpbnNlcnRpb25fcG9pbnQpOwogCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogcGFzX2JpdGZpdF92aWV3KgogcGFzX2JpdGZpdF9zaXpl
X2NsYXNzX2dldF9maXJzdF9mcmVlX3ZpZXcocGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2Ns
YXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZp
dF9nbG9iYWxfc2l6ZV9jbGFzcyogZ2xvYmFsX3NpemVfY2xhc3MsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBwYWdlX2Nv
bmZpZykKIHsKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwpAQCAtMTE0LDcg
KzExMyw3IEBAIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19nZXRfZmlyc3RfZnJlZV92aWUKICAgICBQ
QVNfQVNTRVJUKCh1bnNpZ25lZClzdGFydF9pbmRleCA9PSBzdGFydF9pbmRleCk7CiAgICAgCiAg
ICAgdmlld19hbmRfaW5kZXggPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJlZV92
aWV3KAotICAgICAgICBkaXJlY3RvcnksIGdsb2JhbF9zaXplX2NsYXNzLCAodW5zaWduZWQpc3Rh
cnRfaW5kZXgsIHNpemVfY2xhc3MtPnNpemUsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgZGlyZWN0
b3J5LCAodW5zaWduZWQpc3RhcnRfaW5kZXgsIHNpemVfY2xhc3MtPnNpemUsIHBhZ2VfY29uZmln
KTsKIAogICAgIFBBU19BU1NFUlQodmlld19hbmRfaW5kZXgudmlldyk7CiAKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6
ZV9jbGFzcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X3NpemVfY2xhc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEg
KzMzLDExIEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RydWN0IHBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3M7CitzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogc3RydWN0IHBh
c19iaXRmaXRfcGFnZV9jb25maWc7CiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogc3Ry
dWN0IHBhc19iaXRmaXRfdmlldzsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3Np
emVfY2xhc3MgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzczsKK3R5cGVkZWYgc3RydWN0IHBh
c19iaXRmaXRfc2l6ZV9jbGFzcyBwYXNfYml0Zml0X3NpemVfY2xhc3M7CiB0eXBlZGVmIHN0cnVj
dCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIHBhc19iaXRmaXRfcGFnZV9jb25maWc7CiB0eXBlZGVm
IHN0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3MgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogdHlw
ZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF92aWV3IHBhc19iaXRmaXRfdmlldzsKQEAgLTU5LDEyICs1
OSwxMyBAQCBQQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9zaXplX2NsYXNzX2NvbnN0CiAgICAgcGFz
X2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0
Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQpOwogCi1QQVNfQVBJIHBhc19iaXRm
aXRfc2l6ZV9jbGFzcyogcGFzX2JpdGZpdF9zaXplX2NsYXNzX2NyZWF0ZSh1bnNpZ25lZCBzaXpl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CitQQVNfQVBJIHBhc19iaXRm
aXRfc2l6ZV9jbGFzcyogcGFzX2JpdGZpdF9zaXplX2NsYXNzX2NyZWF0ZSgKKyAgICB1bnNpZ25l
ZCBzaXplLAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciogaW5zZXJ0aW9uX3BvaW50KTsKIAog
UEFTX0FQSSBwYXNfYml0Zml0X3ZpZXcqCiBwYXNfYml0Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0
X2ZyZWVfdmlldyhwYXNfYml0Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2Ns
YXNzKiBnbG9iYWxfc2l6ZV9jbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKIAogUEFTX0VO
RF9FWFRFUk5fQzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfdmlldy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfdmlldy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAt
MjksMTMgKzI5LDE0IEBACiAKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcuaCIKIAorI2luY2x1
ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlLmgi
CiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfZXBv
Y2guaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKIAotcGFzX2JpdGZpdF92
aWV3KiBwYXNfYml0Zml0X3ZpZXdfY3JlYXRlKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGluZGV4X2luX2dsb2JhbCkKK3Bhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpdF92aWV3X2Ny
ZWF0ZShwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4KQogewogICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKQEAgLTQ4LDQyICs0OSwyNCBAQCBwYXNfYml0
Zml0X3ZpZXcqIHBhc19iaXRmaXRfdmlld19jcmVhdGUoCiAKICAgICBpZiAodmVyYm9zZSkgewog
ICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyB2aWV3ICVwIHdpdGggY29uZmlnICVzXG4iLAotICAg
ICAgICAgICAgICAgIHJlc3VsdCwgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJp
bmcoZGlyZWN0b3J5LT5iYXNlLmNvbmZpZ19raW5kKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0
LCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhkaXJlY3RvcnktPmNvbmZp
Z19raW5kKSk7CiAgICAgfQogCiAgICAgcmVzdWx0LT5wYWdlX2JvdW5kYXJ5ID0gTlVMTDsKLSAg
ICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9zdG9yZSgm
cmVzdWx0LT5iaWFzaW5nX2RpcmVjdG9yeSwgTlVMTCk7Ci0gICAgcGFzX2NvbXBhY3RfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmdsb2JhbF9kaXJlY3RvcnksIGRp
cmVjdG9yeSk7CisgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJl
c3VsdC0+ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOwogICAgIHJlc3VsdC0+aXNfb3duZWQgPSBmYWxz
ZTsKLSAgICByZXN1bHQtPmluZGV4X2luX2dsb2JhbCA9IGluZGV4X2luX2dsb2JhbDsKLSAgICBy
ZXN1bHQtPmluZGV4X2luX2JpYXNpbmcgPSAwOworICAgIHJlc3VsdC0+aW5kZXggPSBpbmRleDsK
ICAgICBwYXNfbG9ja19jb25zdHJ1Y3QoJnJlc3VsdC0+b3duZXJzaGlwX2xvY2spOwotCi0gICAg
aWYgKHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXNlc19zdWJwYWdlcygKLSAgICAgICAgICAgICpw
YXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UuY29u
ZmlnX2tpbmQpKSkKLSAgICAgICAgcGFzX2xvY2tfY29uc3RydWN0X2Rpc2FibGVkKCZyZXN1bHQt
PmNvbW1pdF9sb2NrKTsKLSAgICBlbHNlCi0gICAgICAgIHBhc19sb2NrX2NvbnN0cnVjdCgmcmVz
dWx0LT5jb21taXRfbG9jayk7CisgICAgcGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPmNvbW1p
dF9sb2NrKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgcGFzX2JpdGZpdF92aWV3
X2xvY2tfb3duZXJzaGlwX2xvY2tfc2xvdyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCi17Ci0gICAg
cGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWQoCi0gICAgICAgICZ2
aWV3LT5nbG9iYWxfZGlyZWN0b3J5KS0+Y29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24g
PQotICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfY2FuX2V4cGxvZGU7Ci0gICAg
cGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotfQotCiB2b2lkIHBhc19iaXRm
aXRfdmlld19ub3RlX25vbmVtcHRpbmVzcyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCiB7Ci0gICAg
cGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4IGRpcmVjdG9yeV9hbmRfaW5kZXg7Ci0gICAg
Ci0gICAgZGlyZWN0b3J5X2FuZF9pbmRleCA9IHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVj
dG9yeV9hbmRfaW5kZXgodmlldyk7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVf
ZGlkX2JlY29tZV91bnByb2Nlc3NlZF91bmNoZWNrZWQoCi0gICAgICAgIGRpcmVjdG9yeV9hbmRf
aW5kZXguZGlyZWN0b3J5LAotICAgICAgICBkaXJlY3RvcnlfYW5kX2luZGV4LmluZGV4LAorICAg
ICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3
LT5kaXJlY3RvcnkpLAorICAgICAgICB2aWV3LT5pbmRleCwKICAgICAgICAgImJlY29tZSB1bnBy
b2Nlc3NlZCBvbiBub3RlX25vbmVtcHRpbmVzcyIpOwogfQogCkBAIC05MSwyMCArNzQsMTcgQEAg
c3RhdGljIHZvaWQgZGlkX2JlY29tZV9lbXB0eV9mb3JfYml0cyhwYQogewogICAgIHBhZ2UtPnVz
ZV9lcG9jaCA9IHBhc19nZXRfZXBvY2goKTsKIAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHkoCi0gICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5
KSwgdmlldyk7CisgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5
KAorICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KCZ2aWV3LT5kaXJlY3RvcnkpLCB2aWV3KTsKIH0KIAogdm9pZCBwYXNfYml0Zml0X3ZpZXdfbm90
ZV9mdWxsX2VtcHRpbmVzcyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcsIHBhc19iaXRmaXRfcGFnZSog
cGFnZSkKIHsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXggZGlyZWN0b3J5X2Fu
ZF9pbmRleDsKLQogICAgIGRpZF9iZWNvbWVfZW1wdHlfZm9yX2JpdHModmlldywgcGFnZSk7CiAg
ICAgCi0gICAgZGlyZWN0b3J5X2FuZF9pbmRleCA9IHBhc19iaXRmaXRfdmlld19jdXJyZW50X2Rp
cmVjdG9yeV9hbmRfaW5kZXgodmlldyk7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2Zy
ZWVfZGlkX2JlY29tZV9lbXB0eSgKLSAgICAgICAgZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3Rv
cnksCi0gICAgICAgIGRpcmVjdG9yeV9hbmRfaW5kZXguaW5kZXgsCisgICAgICAgIHBhc19jb21w
YWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSks
CisgICAgICAgIHZpZXctPmluZGV4LAogICAgICAgICAiYmVjb21lIGVtcHR5IG9uIG5vdGVfZW1w
dGluZXNzIik7CiB9CiAKQEAgLTExNSwxMSArOTUsOSBAQCB2b2lkIHBhc19iaXRmaXRfdmlld19u
b3RlX3BhcnRpYWxfZW1wdGluCiAKIHZvaWQgcGFzX2JpdGZpdF92aWV3X25vdGVfbWF4X2ZyZWUo
cGFzX2JpdGZpdF92aWV3KiB2aWV3KQogewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9p
bmRleCBkaXJlY3RvcnlfYW5kX2luZGV4OwotICAgIGRpcmVjdG9yeV9hbmRfaW5kZXggPSBwYXNf
Yml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZpZXcpOwogICAgIHBhc19i
aXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWQoCi0gICAgICAg
IGRpcmVjdG9yeV9hbmRfaW5kZXguZGlyZWN0b3J5LAotICAgICAgICBkaXJlY3RvcnlfYW5kX2lu
ZGV4LmluZGV4LAorICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2Fk
X25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLAorICAgICAgICB2aWV3LT5pbmRleCwKICAgICAg
ICAgImJlY29tZSB1bnByb2Nlc3NlZCBvbiBub3RlX21heF9mcmVlIik7CiB9CiAKQEAgLTEzNyw4
ICsxMTUsOCBAQCBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnkoCiAgICAg
c2l6ZV90IG9mZnNldDsKIAogICAgIGNvbmZpZ19wdHIgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmln
X2tpbmRfZ2V0X2NvbmZpZygKLSAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmdmlldy0+Z2xvYmFsX2RpcmVj
dG9yeSktPmJhc2UuY29uZmlnX2tpbmQpOworICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAgJnZpZXctPmRpcmVjdG9yeSkt
PmNvbmZpZ19raW5kKTsKICAgICBjb25maWcgPSAqY29uZmlnX3B0cjsKIAogICAgIHJlc3VsdCA9
IHBhc19oZWFwX3N1bW1hcnlfY3JlYXRlX2VtcHR5KCk7CkBAIC0yMjksOCArMjA3LDcgQEAgc3Rh
dGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3QoCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAg
ICAgY29uZmlnX3B0ciA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKAot
ICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25f
bnVsbCgKLSAgICAgICAgICAgICZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KS0+YmFzZS5jb25maWdf
a2luZCk7CisgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoJnZpZXctPmRpcmVjdG9yeSktPmNvbmZpZ19raW5kKTsKICAgICBjb25maWcgPSAqY29u
ZmlnX3B0cjsKIAogICAgIGJvdW5kYXJ5ID0gdmlldy0+cGFnZV9ib3VuZGFyeTsKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlldy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlldy5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X3ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNDIgKzI3LDMwIEBACiAjZGVm
aW5lIFBBU19CSVRGSVRfVklFV19ICiAKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2VfY29uZmln
LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9y
eV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9w
dHIuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0ci5oIgogI2lu
Y2x1ZGUgInBhc19oZWFwX3N1bW1hcnkuaCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgogCiBQQVNf
QkVHSU5fRVhURVJOX0M7CiAKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Citz
dHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlOwogc3Ry
dWN0IHBhc19iaXRmaXRfdmlldzsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNf
Yml0Zml0X2RpcmVjdG9yeSBwYXNfYml0Zml0X2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBh
c19iaXRmaXRfcGFnZSBwYXNfYml0Zml0X3BhZ2U7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0
X3ZpZXcgcGFzX2JpdGZpdF92aWV3OwogCiBzdHJ1Y3QgcGFzX2JpdGZpdF92aWV3IHsKICAgICB2
b2lkKiBwYWdlX2JvdW5kYXJ5OwotICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnlfcHRyIGJpYXNpbmdfZGlyZWN0b3J5OwotICAgIHBhc19jb21wYWN0X2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5X3B0ciBnbG9iYWxfZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0
X2JpdGZpdF9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKICAgICBib29sIGlzX293bmVkOwotICAg
IHVuc2lnbmVkIGluZGV4X2luX2dsb2JhbDsKLSAgICB1bnNpZ25lZCBpbmRleF9pbl9iaWFzaW5n
OworICAgIHVuc2lnbmVkIGluZGV4OwogICAgIHBhc19sb2NrIG93bmVyc2hpcF9sb2NrOwogICAg
IHBhc19sb2NrIGNvbW1pdF9sb2NrOwogfTsKIAotUEFTX0FQSSBwYXNfYml0Zml0X3ZpZXcqIHBh
c19iaXRmaXRfdmlld19jcmVhdGUocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbmRleF9pbl9nbG9iYWwpOwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF92aWV3X2xv
Y2tfb3duZXJzaGlwX2xvY2tfc2xvdyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcpOwotCi1zdGF0aWMg
aW5saW5lIHZvaWQgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX2JpdGZp
dF92aWV3KiB2aWV3KQotewotICAgIGlmIChwYXNfbG9ja190cnlfbG9jaygmdmlldy0+b3duZXJz
aGlwX2xvY2spKQotICAgICAgICByZXR1cm47Ci0gICAgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3du
ZXJzaGlwX2xvY2tfc2xvdyh2aWV3KTsKLX0KK1BBU19BUEkgcGFzX2JpdGZpdF92aWV3KiBwYXNf
Yml0Zml0X3ZpZXdfY3JlYXRlKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRl
eCk7CiAKIFBBU19BUEkgdm9pZCBwYXNfYml0Zml0X3ZpZXdfbm90ZV9ub25lbXB0aW5lc3MocGFz
X2JpdGZpdF92aWV3KiB2aWV3KTsKIFBBU19BUEkgdm9pZCBwYXNfYml0Zml0X3ZpZXdfbm90ZV9m
dWxsX2VtcHRpbmVzcyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcsIHBhc19iaXRmaXRfcGFnZSogcGFn
ZSk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3Zp
ZXdfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfdmlld19pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlld19pbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI2LDM5ICsyNiwxMSBAQAogI2lmbmRlZiBQQVNfQklURklUX1ZJRVdf
SU5MSU5FU19ICiAjZGVmaW5lIFBBU19CSVRGSVRfVklFV19JTkxJTkVTX0gKIAotI2luY2x1ZGUg
InBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2Rp
cmVjdG9yeV9hbmRfaW5kZXguaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnkuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2UuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0
X3ZpZXcuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1zdGF0aWMgaW5saW5lIHBhc19iaXRm
aXRfZGlyZWN0b3J5X2FuZF9pbmRleAotcGFzX2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5
X2FuZF9pbmRleChwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCi17Ci0gICAgcGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0
b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWQoJnZpZXctPmJpYXNpbmdfZGly
ZWN0b3J5KTsKLSAgICBpZiAoZGlyZWN0b3J5KSB7Ci0gICAgICAgIHJldHVybiBwYXNfYml0Zml0
X2RpcmVjdG9yeV9hbmRfaW5kZXhfY3JlYXRlKAotICAgICAgICAgICAgJmRpcmVjdG9yeS0+YmFz
ZSwgdmlldy0+aW5kZXhfaW5fYmlhc2luZywgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9r
aW5kKTsKLSAgICB9Ci0gICAgcmV0dXJuIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleF9j
cmVhdGUoCi0gICAgICAgICZwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSktPmJhc2UsCi0gICAgICAgIHZp
ZXctPmluZGV4X2luX2dsb2JhbCwgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQpOwot
fQotCi1zdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBwYXNfYml0Zml0X3ZpZXdf
Y3VycmVudF9kaXJlY3RvcnkocGFzX2JpdGZpdF92aWV3KiB2aWV3KQotewotICAgIHJldHVybiBw
YXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZpZXcpLmRpcmVjdG9y
eTsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfYml0Zml0X3ZpZXdfaW5kZXhfaW5f
Y3VycmVudChwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19iaXRmaXRf
dmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRfaW5kZXgodmlldykuaW5kZXg7Ci19Ci0KLQogc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX2JpdGZpdF92aWV3X2lzX2VtcHR5KHBhc19i
aXRmaXRfdmlldyogdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWlj
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9z
aXplX2NsYXNzX3B0ci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
X3B0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTEgQEAKIAogUEFTX0JFR0lOX0VY
VEVSTl9DOwogCi1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzczsKLXR5cGVkZWYg
c3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MgcGFzX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzczsKK3N0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBw
YXNfYml0Zml0X3NpemVfY2xhc3MgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogCi1QQVNfREVGSU5F
X0NPTVBBQ1RfQVRPTUlDX1BUUihwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxf
c2l6ZV9jbGFzc19wdHIpOworUEFTX0RFRklORV9DT01QQUNUX0FUT01JQ19QVFIocGFzX2JpdGZp
dF9zaXplX2NsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cik7CiAKIFBBU19FTkRfRVhURVJOX0M7CiAKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDQyICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRl
ZiBQQVNfQ09NUEFDVF9BVE9NSUNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfUFRS
X0gKLSNkZWZpbmUgUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElS
RUNUT1JZX1BUUl9ICi0KLSNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfcHRyLmgiCi0KLVBB
U19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci0KLVBBU19ERUZJTkVf
Q09NUEFDVF9BVE9NSUNfUFRSKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0j
ZW5kaWYgLyogUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNU
T1JZX1BUUl9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNf
Q09NUEFDVF9BVE9NSUNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9QVFJfSAorI2RlZmluZSBQ
QVNfQ09NUEFDVF9BVE9NSUNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9QVFJfSAorCisjaW5j
bHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3B0ci5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisK
K3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
OworCitQQVNfREVGSU5FX0NPTVBBQ1RfQVRPTUlDX1BUUihwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cik7CisKK1BBU19FTkRfRVhURVJOX0M7CisK
KyNlbmRpZiAvKiBQQVNfQ09NUEFDVF9BVE9NSUNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9Q
VFJfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfcHRyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9FWENMVVNJ
VkVfVklFV19QVFJfSAorI2RlZmluZSBQQVNfQ09NUEFDVF9TRUdSRUdBVEVEX0VYQ0xVU0lWRV9W
SUVXX1BUUl9ICisKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9wdHIuaCIKKworUEFTX0JFR0lOX0VY
VEVSTl9DOworCitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXc7Cit0eXBlZGVm
IHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldzsKKworUEFTX0RFRklORV9DT01QQUNUX1BUUihwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19wdHIpOworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyog
UEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9FWENMVVNJVkVfVklFV19QVFJfSCAqLworCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9wdHIuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9H
TE9CQUxfU0laRV9ESVJFQ1RPUllfUFRSX0gKLSNkZWZpbmUgUEFTX0NPTVBBQ1RfU0VHUkVHQVRF
RF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfUFRSX0gKLQotI2luY2x1ZGUgInBhc19jb21wYWN0X3B0
ci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwotCi1Q
QVNfREVGSU5FX0NPTVBBQ1RfUFRSKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyKTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBB
U19DT01QQUNUX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX1BUUl9IICovCi0KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBQQVNfQ09NUEFDVF9TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX1BUUl9I
CisjZGVmaW5lIFBBU19DT01QQUNUX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfUFRSX0gKKwor
I2luY2x1ZGUgInBhc19jb21wYWN0X3B0ci5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0
cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owor
CitQQVNfREVGSU5FX0NPTVBBQ1RfUFRSKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LAor
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0cik7CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfQ09NUEFDVF9T
RUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX1BUUl9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0
X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIu
aAkobm9uZXhpc3RlbnQpCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQ09NUEFDVF9TVUJQQUdFX01BUF9F
TlRSWV9QVFJfSAotI2RlZmluZSBQQVNfQ09NUEFDVF9TVUJQQUdFX01BUF9FTlRSWV9QVFJfSAot
Ci0jaW5jbHVkZSAicGFzX2NvbXBhY3RfcHRyLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQot
c3RydWN0IHBhc19zdWJwYWdlX21hcF9lbnRyeTsKLXR5cGVkZWYgc3RydWN0IHBhc19zdWJwYWdl
X21hcF9lbnRyeSBwYXNfc3VicGFnZV9tYXBfZW50cnk7Ci0KLVBBU19ERUZJTkVfQ09NUEFDVF9Q
VFIocGFzX3N1YnBhZ2VfbWFwX2VudHJ5LCBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9w
dHIpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0NPTVBBQ1RfU1VCUEFH
RV9NQVBfRU5UUllfUFRSX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2RlYWxsb2NhdGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5jCSh3b3JraW5nIGNv
cHkpCkBAIC04Myw3ICs4Myw4IEBAIHN0YXRpYyB2b2lkIGRlYWxsb2NhdGVfc2VncmVnYXRlZCh1
aW50cHQKIHsKICAgICBwYXNfbG9jayogaGVsZF9sb2NrOwogICAgIGhlbGRfbG9jayA9IE5VTEw7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlKGJlZ2luLCAmaGVsZF9sb2NrLCAq
cGFnZV9jb25maWcpOworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZSgKKyAgICAg
ICAgYmVnaW4sICZoZWxkX2xvY2ssIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3Rf
bW9kZSwgTlVMTCwgKnBhZ2VfY29uZmlnKTsKICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9j
aywgTlVMTCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw2ICszMiw3
IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogZW51bSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vf
YWN0aW9uIHsKICAgICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uLAorICAgIHBh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfaWZfY2xlYW5fYWN0aW9uLAogICAgIHBh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfYWN0aW9uCiB9OwogCkBAIC00NCw2ICs0
NSw4IEBAIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb25fZ2V0X3N0cmkKICAgICB7CiAg
ICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uOgogICAgICAgICByZXR1
cm4gIm5vX2FjdGlvbiI7CisgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hf
bG9nX2lmX2NsZWFuX2FjdGlvbjoKKyAgICAgICAgcmV0dXJuICJmbHVzaF9sb2dfaWZfY2xlYW5f
YWN0aW9uIjsKICAgICBjYXNlIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfYWN0
aW9uOgogICAgICAgICByZXR1cm4gImZsdXNoX2xvZ19hY3Rpb24iOwogICAgIH0KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19o
ZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAu
Ywkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgdm9pZCBzZXRfdXBfcmFu
Z2UoaW5pdGlhbGl6ZV9kYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUp
CiB7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBkZXNpZ25hdGVkX2luZGV4OwotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRl
eCBkZXNpZ25hdGVkX2VuZDsKIAogICAgIFBBU19BU1NFUlQoCkBAIC04OCwxNyArODgsMjIgQEAg
c3RhdGljIHZvaWQgc2V0X3VwX3JhbmdlKGluaXRpYWxpemVfZGF0YQogICAgICAgICAgICAgUEFT
X0FTU0VSVCghZGlyZWN0b3J5KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZGlyZWN0b3J5
ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KAot
ICAgICAgICAgICAgICAgIGRhdGEtPmhlYXAsIHNpemUsIDEsIHBhc19mb3JjZV9jb3VudF9sb29r
dXAsIGRhdGEtPmNvbmZpZ19wdHIsIE5VTEwpOworICAgICAgICAgICAgICAgIGRhdGEtPmhlYXAs
IHNpemUsIDEsIHBhc19mb3JjZV9jb3VudF9sb29rdXAsIGRhdGEtPmNvbmZpZ19wdHIsIE5VTEws
CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5pdGlhbF9j
cmVhdGlvbl9tb2RlKTsKKworICAgICAgICAgICAgUEFTX0FTU0VSVCgKKyAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMoZGly
ZWN0b3J5KQorICAgICAgICAgICAgICAgIDw9IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
X251bV9hbGxvY2F0b3JfaW5kaWNlcygqZGF0YS0+Y29uZmlnX3B0cikpOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICAvKiBUaGlzIGlzIGEgd2VpcmQgYXNzZXJ0IC0gaWYgaXQgd2FzIGZhbHNl
IHRoZW4gaXQgZG9lc24ndCBsaXRlcmFsbHkgbWFrZSB0aGlzIGJyb2tlbi4KICAgICAgICAgICAg
ICAgIEl0IGp1c3QgbWVhbnMgdGhhdCB0aGVyZSBpcyBhIGNoYW5jZSBvZiBtZW1vcnkgd2FzdGVh
Z2UuIFNvLCBpZiB3ZSBoaXQgaXQsIHRoZW4KICAgICAgICAgICAgICAgIG1heWJlIHdlIGNhbiBq
dXN0IHNheSB0aGF0IHRoYXQncyBPSyBhbmQgcmVtb3ZlIHRoZSBhc3NlcnQ/ICovCiAgICAgICAg
ICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+b2JqZWN0X3NpemUgPT0gc2l6ZSk7CiAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9j
cmVhdGVfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KTsKIAogICAg
ICAgICAgICAgUEFTX0FTU0VSVCgKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2Nh
dG9yX2luZGV4CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2NhdG9yX2luZGV4CiAgICAgICAg
ICAgICAgICAgPT0gdGFyZ2V0X2FsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IHJlc3VsdGluZ19pbmRleDsKQEAgLTEwOSwx
MCArMTE0LDEwIEBAIHN0YXRpYyB2b2lkIHNldF91cF9yYW5nZShpbml0aWFsaXplX2RhdGEKICAg
ICAgICAgICAgIFBBU19BU1NFUlQocmVzdWx0aW5nX2luZGV4ID09IHRhcmdldF9hbGxvY2F0b3Jf
aW5kZXgpOwogICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2dldF9kaXJlY3RvcnkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0X25vZGUpID09IGRpcmVjdG9yeSk7Ci0gICAg
ICAgICAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0
X2FsbG9jYXRvcl9pbmRleCgKKyAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IoCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9s
YXN0X25vZGUpID09IHRhcmdldF9hbGxvY2F0b3JfaW5kZXgpOwogICAgICAgICAgICAgUEFTX0FT
U0VSVCgKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2NhdG9yX2luZGV4CisgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgm
ZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2NhdG9yX2luZGV4CiAgICAgICAgICAgICAgICAgPT0gZGVz
aWduYXRlZF9iZWdpbiAqIGRhdGEtPm51bV9hbGxvY2F0b3JfaW5kaWNlcyk7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xMjUsNiArMTMwLDcgQEAgdm9pZCBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNf
aGVhcF9pbml0aQogewogICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWc7CiAgICAgaW5pdGlhbGl6
ZV9kYXRhIGRhdGE7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBsYXlv
dXRfbm9kZTsKIAogICAgIGNvbmZpZyA9ICpjb25maWdfcHRyOwogCkBAIC0xMzIsNyArMTM4LDcg
QEAgdm9pZCBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbml0aQogICAgIHBhc19oZWFw
X2xvY2tfYXNzZXJ0X2hlbGQoKTsKICAgICBQQVNfQVNTRVJUKCFwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX25vZGVfZmlyc3QpOwogICAgIFBBU19BU1NFUlQoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4KTsKLSAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgKKyAg
ICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9pc19udWxsKAogICAgICAgICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVj
dG9yeV9hbmRfaGVhZCkpOwogCiAgICAgZGF0YS5oZWFwID0gaGVhcDsKQEAgLTIwMSw2ICsyMDcs
MTQgQEAgdm9pZCBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbml0aQogICAgICAgICBi
cmVhazsKICAgICB9CiAKKyAgICAvKiBDYXVzZSB0aGUgYWxsb2NhdGlvbiBvZiB2aWV3IGNhY2hl
cyB0byBoYXBwZW4gYWZ0ZXIgd2UgaGF2ZSBsYWlkIG91dCBhbGwgb2YgdGhlIGxvY2FsIGFsbG9j
YXRvcnMuICovCisgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FM
TE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKKyAgICAgICAgaWYgKCFwYXNfaXNfd3JhcHBlZF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KGxheW91dF9ub2RlKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2ZpbmlzaF9jcmVhdGlv
bihwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkobGF5b3V0X25vZGUpKTsKKyAg
ICB9CisKICAgICBpZiAoUEFTX0VOQUJMRV9URVNUSU5HKSB7CiAgICAgICAgIC8qIENoZWNrIHRo
YXQgd2Ugd29uJ3QgcmV0dXJuIGEgZGVzaWduYXRlZCBpbmRleCB0aGF0IGlzIGludmFsaWQuICov
CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVk
X2ludHJpbnNpY19oZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAt
MjcsNyArMjcsNyBAQAogI2RlZmluZSBQQVNfREVTSUdOQVRFRF9JTlRSSU5TSUNfSEVBUF9JTkxJ
TkVTX0gKIAogI2luY2x1ZGUgInBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmgiCi0jaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKKyNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAKIFBBU19C
RUdJTl9FWFRFUk5fQzsKIApAQCAtMzUsMTAgKzM1LDggQEAgc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19hbGxvY2F0b3JfaQogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2Fs
bG9jYXRvcl9pbmRpY2VzKHBhc19oZWFwX2NvbmZpZyBjb25maWcpCiB7CiAgICAgcmV0dXJuIFBB
U19NQVgoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9udW1f
YWxsb2NhdG9yX2luZGljZXNfZm9yX2NvbmZpZygKLSAgICAgICAgICAgIGNvbmZpZy5zbWFsbF9z
ZWdyZWdhdGVkX2NvbmZpZyksCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2NvbmZpZygKLSAgICAgICAgICAgIGNv
bmZpZy5tZWRpdW1fc2VncmVnYXRlZF9jb25maWcpKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9jb25maWcoY29uZmlnLnNt
YWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9jb25maWcoY29uZmlnLm1lZGl1bV9zZWdy
ZWdhdGVkX2NvbmZpZykpOwogfQogCiB0eXBlZGVmIHN0cnVjdCB7CkBAIC02NSwxMSArNjMsMTIg
QEAgcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0X2NyZWF0ZV9zdWNjZQogfQogCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90Ci1wYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9u
dW1fZGVzaWduYXRlZF9pbmRpY2VzKHBhc19oZWFwX2NvbmZpZyBjb25maWcpCitwYXNfZGVzaWdu
YXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2VzX2Zvcl9zbWFsbF9jb25m
aWcoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgc21hbGxfY29uZmlnKQogewogICAg
IC8qIEZJWE1FOiBUaGVzZSBjb25zdGFudHMgaGF2ZSB0byBtYXRjaCB3aGF0IHdlIGRvIHdpdGgg
c2V0X3VwX3JhbmdlIGluCiAgICAgICAgcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5p
dGlhbGl6ZS4gKi8KLSAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9h
bGlnbihjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpKSB7CisgICAgc3dpdGNoIChwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19taW5fYWxpZ24oc21hbGxfY29uZmlnKSkgewogICAgIGNh
c2UgODoKICAgICAgICAgcmV0dXJuIDM4OwogICAgIGNhc2UgMTY6CkBAIC04MiwyMiArODEsMzkg
QEAgcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2Rlc2lnbgogICAgIH0KIH0KIAot
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19kZXNpZ25hdGVkX2luZGV4X3Jlc3VsdCBwYXNf
ZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGVkX2luZGV4KAorc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHBhc19kZXNpZ25hdGVkX2luZGV4X3Jlc3VsdAorcGFzX2Rlc2lnbmF0ZWRf
aW50cmluc2ljX2hlYXBfZGVzaWduYXRlZF9pbmRleF9mb3Jfc21hbGxfY29uZmlnKAogICAgIHNp
emVfdCBpbmRleCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfZGVzaWduYXRpb25fbW9kZSBkZXNp
Z25hdGlvbl9tb2RlLAotICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcpCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWcgc21hbGxfY29uZmlnKQogewogICAgIGlmICghZGVzaWduYXRpb25f
bW9kZSkKICAgICAgICAgcmV0dXJuIHBhc19kZXNpZ25hdGVkX2luZGV4X3Jlc3VsdF9jcmVhdGVf
ZmFpbHVyZSgpOwogCiAgICAgLyogTk9URTogV2UgY291bGQgZG8gbWF0aCBoZXJlLiBXZSBjaG9v
c2Ugbm90IHRvIGJlY2F1c2Ugc28gZmFyIHRoYXQgaGFzIHByb3ZlZCB0byBiZQogICAgICAgIGEg
cGVyZiBwcm9ibGVtLiAqLwotICAgIGlmIChpbmRleCA8PSBwYXNfZGVzaWduYXRlZF9pbnRyaW5z
aWNfaGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2VzKGNvbmZpZykpCisgICAgaWYgKGluZGV4IDw9
IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9kZXNpZ25hdGVkX2luZGljZXNfZm9y
X3NtYWxsX2NvbmZpZyhzbWFsbF9jb25maWcpKQogICAgICAgICByZXR1cm4gcGFzX2Rlc2lnbmF0
ZWRfaW5kZXhfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKGluZGV4KTsKIAogICAgIHJldHVybiBwYXNf
ZGVzaWduYXRlZF9pbmRleF9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKIH0KIAorc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHNpemVfdAorcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVt
X2Rlc2lnbmF0ZWRfaW5kaWNlcyhwYXNfaGVhcF9jb25maWcgY29uZmlnKQoreworICAgIHJldHVy
biBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2VzX2Zv
cl9zbWFsbF9jb25maWcoCisgICAgICAgIGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7
Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1
bHQgcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfZGVzaWduYXRlZF9pbmRleCgKKyAgICBz
aXplX3QgaW5kZXgsCisgICAgcGFzX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0aW9uX21vZGUgZGVz
aWduYXRpb25fbW9kZSwKKyAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnKQoreworICAgIHJldHVy
biBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGVkX2luZGV4X2Zvcl9zbWFs
bF9jb25maWcoCisgICAgICAgIGluZGV4LCBkZXNpZ25hdGlvbl9tb2RlLCBjb25maWcuc21hbGxf
c2VncmVnYXRlZF9jb25maWcpOworfQorCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyog
UEFTX0RFU0lHTkFURURfSU5UUklOU0lDX0hFQVBfSU5MSU5FU19IICovCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJh
dGVfYml0Zml0X2hlYXBzLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgInBhc19lbnVtZXJhdGVfYml0Zml0X2hl
YXBzLmgiCiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKKyNpbmNs
dWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfaGVhcC5o
IgogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfdmll
dy5oIgpAQCAtNDMsNyArNDMsNyBAQCBzdGF0aWMgYm9vbCB2aWV3X2NhbGxiYWNrKHBhc19lbnVt
ZXJhdG9yCiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogICAg
IHBhc19iaXRmaXRfdmlldyogdmlldzsKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeTsKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBh
c19iaXRmaXRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnOwogICAgIHVpbnRwdHJfdCBwYWdlX2Jv
dW5kYXJ5OwogICAgIHBhc19iaXRmaXRfcGFnZSogcGFnZTsKQEAgLTY0LDcgKzY0LDcgQEAgc3Rh
dGljIGJvb2wgdmlld19jYWxsYmFjayhwYXNfZW51bWVyYXRvcgogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIHBhZ2VfYm91bmRhcnkgPSAodWludHB0cl90KXZpZXctPnBhZ2VfYm91bmRhcnk7
Ci0gICAgcGFnZV9jb25maWcgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZp
ZyhkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQpOworICAgIHBhZ2VfY29uZmlnID0gcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5jb25maWdfa2luZCk7
CiAgICAgCiAgICAgaWYgKHBhZ2VfYm91bmRhcnkpIHsKICAgICAgICAgcGFzX2VudW1lcmF0b3Jf
ZXhjbHVkZV9hY2NvdW50ZWRfcGFnZXMoCkBAIC0xNDYsMTAgKzE0NiwxMCBAQCBzdGF0aWMgYm9v
bCB2aWV3X2NhbGxiYWNrKHBhc19lbnVtZXJhdG9yCiB9CiAKIHN0YXRpYyBib29sIGVudW1lcmF0
ZV9iaXRmaXRfZGlyZWN0b3J5KHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
Yml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHJldHVybiBwYXNfYml0Zml0X2Rp
cmVjdG9yeV92aWV3X3ZlY3Rvcl9pdGVyYXRlX3JlbW90ZSgKLSAgICAgICAgJmRpcmVjdG9yeS0+
YmFzZS52aWV3cywgZW51bWVyYXRvciwgMCwgdmlld19jYWxsYmFjaywgZGlyZWN0b3J5KTsKKyAg
ICAgICAgJmRpcmVjdG9yeS0+dmlld3MsIGVudW1lcmF0b3IsIDAsIHZpZXdfY2FsbGJhY2ssIGRp
cmVjdG9yeSk7CiB9CiAKIHN0YXRpYyBib29sIGVudW1lcmF0ZV9iaXRmaXRfaGVhcF9jYWxsYmFj
ayhwYXNfZW51bWVyYXRvciogZW51bWVyYXRvciwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVn
YXRlZF9oZWFwcy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYwkod29ya2luZyBjb3B5
KQpAQCAtMzMsMTEgKzMzLDEyIEBACiAjaW5jbHVkZSAicGFzX2VudW1lcmF0b3JfaW50ZXJuYWwu
aCIKICNpbmNsdWRlICJwYXNfZnVsbF9hbGxvY19iaXRzLmgiCiAjaW5jbHVkZSAicGFzX2hhc2h0
YWJsZS5oIgorI2luY2x1ZGUgInBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCIKICNpbmNsdWRl
ICJwYXNfcHRyX2hhc2hfc2V0LmgiCiAjaW5jbHVkZSAicGFzX3JlZHVuZGFudF9sb2NhbF9hbGxv
Y2F0b3Jfbm9kZS5oIgogI2luY2x1ZGUgInBhc19yb290LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oIgogI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfdmlldy5oIgpAQCAtMjI4LDcgKzIyOSw3IEBAIHN0YXRpYyB2b2lkIHJlY29yZF9w
YWdlX3BheWxvYWRfYW5kX21ldGEKIAogc3RhdGljIHZvaWQgcmVjb3JkX3BhZ2Vfb2JqZWN0cyhw
YXNfZW51bWVyYXRvciogZW51bWVyYXRvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZW51bWVyYXRpb25fY29udGV4dCogY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCkBAIC0zMTQsMTYgKzMxNSwx
NiBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfZXhjbHVzaXZlX3ZpZXcocGFzCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcq
IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYXRpb25f
Y29udGV4dCogY29udGV4dCkKIHsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwogICAgIHVpbnRwdHJfdCBw
YWdlX2JvdW5kYXJ5OwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7CiAgICAgbG9jYWxf
YWxsb2NhdG9yX25vZGUqIGFsbG9jYXRvcl9ub2RlOwogICAgIHBhc19sb2NhbF9hbGxvY2F0b3Iq
IGFsbG9jYXRvcjsKICAgICBwYXNfZnVsbF9hbGxvY19iaXRzIGFsbG9jX2JpdHM7CiAKLSAgICBk
aXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHJfbG9hZF9yZW1vdGUoZW51bWVyYXRvciwgJnZpZXctPmRpcmVjdG9yeSk7CisgICAgZGlyZWN0
b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1v
dGUoZW51bWVyYXRvciwgJnZpZXctPmRpcmVjdG9yeSk7CiAgICAgcGFnZV9jb25maWcgPSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLnBh
Z2VfY29uZmlnX2tpbmQpOwogCiAgICAgcGFnZV9ib3VuZGFyeSA9ICh1aW50cHRyX3Qpdmlldy0+
cGFnZV9ib3VuZGFyeTsKQEAgLTMzNCwxMCArMzM1LDEwIEBAIHN0YXRpYyBib29sIGVudW1lcmF0
ZV9leGNsdXNpdmVfdmlldyhwYXMKICAgICBwYXNfZW51bWVyYXRvcl9leGNsdWRlX2FjY291bnRl
ZF9wYWdlcygKICAgICAgICAgZW51bWVyYXRvciwgKHZvaWQqKXBhZ2VfYm91bmRhcnksIHBhZ2Vf
Y29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7CiAgICAgCi0gICAgaWYgKCFwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19vd25lZCh2aWV3LT5vd25lcnNoaXBfa2lu
ZCkpCisgICAgaWYgKCF2aWV3LT5pc19vd25lZCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xv
YWRfcmVtb3RlKGVudW1lcmF0b3IsICZkaXJlY3RvcnktPmRhdGEpOworICAgIGRhdGEgPSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX3JlbW90ZShlbnVtZXJhdG9y
LCAmZGlyZWN0b3J5LT5kYXRhKTsKIAogICAgIHBhZ2UgPSAocGFzX3NlZ3JlZ2F0ZWRfcGFnZSop
cGFnZV9jb25maWctPmJhc2UucGFnZV9oZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90ZSgKICAgICAg
ICAgZW51bWVyYXRvciwgKHZvaWQqKXBhZ2VfYm91bmRhcnkpOwpAQCAtNDQ4LDcgKzQ0OSw3IEBA
IHN0YXRpYyBib29sIGVudW1lcmF0ZV9wYXJ0aWFsX3ZpZXcocGFzX2UKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiB2aWV3LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhdGlvbl9jb250ZXh0KiBj
b250ZXh0KQogewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnOwogICAgIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFyZWRfdmlldzsKICAgICBwYXNfc2hhcmVkX2hhbmRsZV9v
cl9wYWdlX2JvdW5kYXJ5IHNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeTsKQEAgLTQ2Miw3
ICs0NjMsNyBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfcGFydGlhbF92aWV3KHBhc19lCiAgICAg
aWYgKCF2aWV3LT5pc19hdHRhY2hlZF90b19zaGFyZWRfaGFuZGxlKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkX3JlbW90ZShlbnVtZXJhdG9yLCAmdmlldy0+ZGlyZWN0b3J5
KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX3JlbW90ZShlbnVtZXJhdG9yLCAmdmlldy0+ZGlyZWN0b3J5KTsKICAgICBwYWdl
X2NvbmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJl
Y3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CiAKICAgICBzaGFyZWRfdmlldyA9IHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3Is
ICZ2aWV3LT5zaGFyZWRfdmlldyk7CkBAIC01NjYsMTQgKzU2NywxNCBAQCBzdGF0aWMgYm9vbCBl
bnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwX2NhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZykKIHsKICAgICBlbnVtZXJhdGlvbl9jb250ZXh0
KiBjb250ZXh0OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAK
ICAgICBjb250ZXh0ID0gYXJnOwogCi0gICAgZm9yIChkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfcmVtb3RlKAor
ICAgIGZvciAoZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWRfcmVtb3RlKAogICAgICAgICAgICAgIGVudW1lcmF0b3IsICZoZWFw
LT5zZWdyZWdhdGVkX2hlYXAuYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpOwogICAgICAg
ICAgZGlyZWN0b3J5OwotICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX3JlbW90ZSgKKyAgICAgICAg
IGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX3JlbW90ZSgKICAgICAgICAgICAgICBlbnVtZXJhdG9yLCAmZGlyZWN0b3J5LT5u
ZXh0X2Zvcl9oZWFwKSkKICAgICAgICAgZm9yX2VhY2hfdmlldyhlbnVtZXJhdG9yLCAmZGlyZWN0
b3J5LT5iYXNlLCBzaXplX2RpcmVjdG9yeV92aWV3X2NhbGxiYWNrLCBjb250ZXh0KTsKICAgICAK
QEAgLTY3OCwyMyArNjc5LDI0IEBAIGJvb2wgcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBz
KHBhc18KIAogICAgICAgICBsYXlvdXRfbm9kZSA9IHBhc19lbnVtZXJhdG9yX3JlYWRfY29tcGFj
dChlbnVtZXJhdG9yLCAqdGxjX2xheW91dF9maXJzdF9ub2RlX3B0cik7CiAgICAgICAgIHdoaWxl
IChsYXlvdXRfbm9kZSkgeworICAgICAgICAgICAgYm9vbCBoYXNfYWxsb2NhdG9yOwogICAgICAg
ICAgICAgdW5zaWduZWQgYWxsb2NhdG9yX2luZGV4OwotICAgICAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAocGFzX2lz
X3dyYXBwZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkobGF5b3V0X25vZGUpKSB7
Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3Rvcnk7Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgICAgICAgICBpZiAocGFzX2lzX3dyYXBwZWRfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeShsYXlvdXRfbm9kZSkpIHsKKyAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CiAKLSAgICAgICAgICAgICAg
ICBkaXJlY3RvcnkgPSBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KGxheW91dF9ub2RlKTsKKyAgICAgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfdW53cmFwX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkobGF5b3V0X25vZGUpOwogCi0gICAgICAgICAgICAgICAg
ZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2Fk
X3JlbW90ZSgKKyAgICAgICAgICAgICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHJfbG9hZF9yZW1vdGUoCiAgICAgICAgICAgICAgICAgICAgIGVudW1lcmF0
b3IsICZkaXJlY3RvcnktPmRhdGEpOwogCiAgICAgICAgICAgICAgICAgbGF5b3V0X25vZGUgPSBw
YXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2xvYWRfcmVt
b3RlKAogICAgICAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLCAmZGF0YS0+bmV4dF9mb3JfbGF5
b3V0KTsKIAogICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IGRhdGEtPmFsbG9jYXRv
cl9pbmRleDsKLSAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaGFzX2FsbG9j
YXRvciA9IHRydWU7CisgICAgICAgICAgICB9IGVsc2UgaWYgKHBhc19pc193cmFwcGVkX3JlZHVu
ZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShsYXlvdXRfbm9kZSkpIHsKICAgICAgICAgICAgICAg
ICBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKiByZWR1bmRhbnRfbm9kZTsKIAog
ICAgICAgICAgICAgICAgIHJlZHVuZGFudF9ub2RlID0gcGFzX3Vud3JhcF9yZWR1bmRhbnRfbG9j
YWxfYWxsb2NhdG9yX25vZGUobGF5b3V0X25vZGUpOwpAQCAtNzAzLDE0ICs3MDUsMzEgQEAgYm9v
bCBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMocGFzXwogICAgICAgICAgICAgICAgICAg
ICBlbnVtZXJhdG9yLCAmcmVkdW5kYW50X25vZGUtPm5leHQpOwogCiAgICAgICAgICAgICAgICAg
YWxsb2NhdG9yX2luZGV4ID0gcmVkdW5kYW50X25vZGUtPmFsbG9jYXRvcl9pbmRleDsKLSAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBoYXNfYWxsb2NhdG9yID0gdHJ1ZTsKKyAgICAgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSog
Y2FjaGVfbm9kZTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJU
KHBhc19pc193cmFwcGVkX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShsYXlvdXRfbm9kZSkpOwogCi0g
ICAgICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IHRsYy0+YWxsb2NhdG9yX2luZGV4X3Vw
cGVyX2JvdW5kKQotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhY2hl
X25vZGUgPSBwYXNfdW53cmFwX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShsYXlvdXRfbm9kZSk7CiAK
LSAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2Fs
X2FsbG9jYXRvcl9pbXBsKHRsYywgYWxsb2NhdG9yX2luZGV4KTsKKyAgICAgICAgICAgICAgICBs
YXlvdXRfbm9kZSA9IHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfbG9hZF9yZW1vdGUoCisgICAgICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsICZjYWNo
ZV9ub2RlLT5uZXh0KTsKIAotICAgICAgICAgICAgY29uc2lkZXJfYWxsb2NhdG9yKGVudW1lcmF0
b3IsICZjb250ZXh0LCBhbGxvY2F0b3IpOworICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRl
eCA9IFVJTlRfTUFYOworICAgICAgICAgICAgICAgIGhhc19hbGxvY2F0b3IgPSBmYWxzZTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGhhc19hbGxvY2F0b3IpIHsKKyAgICAgICAg
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CisgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSB0bGMtPmFsbG9jYXRvcl9p
bmRleF91cHBlcl9ib3VuZCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
ICAgICAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxv
Y2F0b3JfaW1wbCh0bGMsIGFsbG9jYXRvcl9pbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgY29uc2lkZXJfYWxsb2NhdG9yKGVudW1lcmF0b3IsICZjb250ZXh0LCBhbGxv
Y2F0b3IpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVt
b190YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leGNsdXNpdmVfdmll
d190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAK
ICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCiAKICNpbmNsdWRlICJwYXNfaGFzaHRhYmxlLmgiCi0j
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9D
OwogCkBAIC01Miw3ICs1Miw3IEBAIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX2tl
eV9jcmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi10eXBlZGVmIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fZW50
cnk7Cit0eXBlZGVmIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBwYXNfZXhjbHVzaXZl
X3ZpZXdfdGVtcGxhdGVfbWVtb19lbnRyeTsKIAogc3RhdGljIGlubGluZSBwYXNfZXhjbHVzaXZl
X3ZpZXdfdGVtcGxhdGVfbWVtb19lbnRyeQogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21l
bW9fZW50cnlfY3JlYXRlX2VtcHR5KHZvaWQpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGlu
ZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE5
ICszMCwxOSBAQAogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCiAj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMu
aCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX2Z1bGxfYWxsb2NfYml0cwogcGFzX2Z1bGxfYWxsb2NfYml0
c19jcmVhdGVfZm9yX2V4Y2x1c2l2ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQog
ewogICAgIHJldHVybiBwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZSgKICAgICAgICAgcGFzX2Nv
bXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxs
KAorICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xv
YWRfbm9uX251bGwoCiAgICAgICAgICAgICAgICAgJmRpcmVjdG9yeS0+ZGF0YSktPmZ1bGxfYWxs
b2NfYml0cyksCiAgICAgICAgIDAsCiAgICAgICAgICh1bnNpZ25lZClwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpKTsKQEAgLTY0LDEwICs2NCwx
MCBAQCBwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfcGFydGlhbChwCiBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2Z1bGxfYWxsb2NfYml0cwogcGFzX2Z1bGxfYWxsb2NfYml0c19j
cmVhdGVfZm9yX3ZpZXdfYW5kX2RpcmVjdG9yeSgKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKLSAgICBpZiAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKHZpZXcpKQorICAgIGlmIChwYXNfc2VncmVnYXRl
ZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKHZpZXcpKQogICAgICAgICByZXR1cm4gcGFzX2Z1bGxf
YWxsb2NfYml0c19jcmVhdGVfZm9yX2V4Y2x1c2l2ZShkaXJlY3RvcnksIHBhZ2VfY29uZmlnKTsK
IAogICAgIHJldHVybiBwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfcGFydGlhbCh2aWV3
KTsKQEAgLTc4LDkgKzc4LDkgQEAgcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3ZpZXco
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnIHBhZ2VfY29uZmlnKQogewotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4
Y2x1c2l2ZV9pc2godmlldykpIHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKLSAgICAgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSkg
eworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7
CisgICAgICAgIHNpemVfZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9leGNsdXNpdmUodmlldyktPmRpcmVjdG9yeSk7CiAgICAgICAgIHJldHVybiBwYXNf
ZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3JfZXhjbHVzaXZlKHNpemVfZGlyZWN0b3J5LCBwYWdl
X2NvbmZpZyk7CiAgICAgfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2dldF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2dldF9oZWFwLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19nZXRfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYs
NyArMjYsNyBAQAogI2lmbmRlZiBQQVNfR0VUX0hFQVBfSAogI2RlZmluZSBQQVNfR0VUX0hFQVBf
SAogCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAi
cGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfaGVhcC5oIgogI2luY2x1ZGUg
InBhc19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sYXJnZV9tYXAuaCIKQEAgLTU4LDEw
ICs1OCwxMCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2hlYXAqIHBhc19nCiAgICAg
ICAgICAgICAgICAgYmVnaW4sIGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyktPmhlYXAp
OwogICAgIGNhc2UgcGFzX3NtYWxsX2JpdGZpdF9mYXN0X21lZ2FwYWdlX2tpbmQ6CiAgICAgICAg
IHJldHVybiBwYXNfaGVhcF9mb3Jfc2VncmVnYXRlZF9oZWFwKAotICAgICAgICAgICAgcGFzX2Nv
bXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAg
ICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAg
ICAgICAgICAgICAgICZwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX2xvYWRfbm9u
X251bGwoCiAgICAgICAgICAgICAgICAgICAgICZwYXNfYml0Zml0X3BhZ2VfZm9yX2FkZHJlc3Nf
YW5kX3BhZ2VfY29uZmlnKAotICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4sIGNvbmZpZy5z
bWFsbF9iaXRmaXRfY29uZmlnKS0+b3duZXIpLT5nbG9iYWxfZGlyZWN0b3J5KS0+aGVhcCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBiZWdpbiwgY29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWcp
LT5vd25lciktPmRpcmVjdG9yeSktPmhlYXApOwogICAgIGNhc2UgcGFzX25vdF9hX2Zhc3RfbWVn
YXBhZ2Vfa2luZDogewogICAgICAgICBwYXNfcGFnZV9iYXNlKiBwYWdlX2Jhc2U7CiAgICAgICAg
IHBhc19sYXJnZV9tYXBfZW50cnkgZW50cnk7CkBAIC04NSw5ICs4NSw5IEBAIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBwYXNfaGVhcCogcGFzX2cKICAgICAgICAgICAgIGNhc2UgcGFzX21lZGl1
bV9iaXRmaXRfcGFnZV9raW5kOgogICAgICAgICAgICAgY2FzZSBwYXNfbWFyZ2VfYml0Zml0X3Bh
Z2Vfa2luZDoKICAgICAgICAgICAgICAgICByZXR1cm4gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0ZWRf
aGVhcCgKLSAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0
X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAgICAgICAg
ICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9sb2FkX25vbl9udWxsKAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXNfcGFnZV9iYXNlX2dldF9iaXRmaXQocGFn
ZV9iYXNlKS0+b3duZXIpLT5nbG9iYWxfZGlyZWN0b3J5KS0+aGVhcCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJnBhc19wYWdlX2Jhc2VfZ2V0X2JpdGZpdChwYWdlX2Jhc2UpLT5vd25l
ciktPmRpcmVjdG9yeSktPmhlYXApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgUEFTX0FT
U0VSVCghIkJhZCBwYWdlIGtpbmQiKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSAicGFzX2xvZy5oIgogI2lu
Y2x1ZGUgInBhc19tb25vdG9uaWNfdGltZS5oIgogI2luY2x1ZGUgInBhc19wcmltaXRpdmVfaGVh
cF9yZWYuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnku
aCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCiBwYXNfaGVh
cCogcGFzX2hlYXBfY3JlYXRlKHBhc19oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19oZWFwX3JlZl9raW5kIGhlYXBfcmVmX2tpbmQsCkBAIC0xODIsNyAr
MTgyLDcgQEAgdm9pZCBwYXNfaGVhcF9yZXNldF9oZWFwX3JlZihwYXNfaGVhcCogaAogICAgIFBB
U19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKIH0KIAotcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KgorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBw
YXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50X3Nsb3coCiAgICAgcGFzX2hl
YXAqIGhlYXAsCiAgICAgc2l6ZV90IGNvdW50LApAQCAtMTkxLDExICsxOTEsMTIgQEAgcGFzX2hl
YXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudAogICAgIHBhc19oZWFwX2NvbmZpZyog
Y29uZmlnLAogICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIHJlc3VsdDsKICAgICAKICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKICAg
ICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jf
Y291bnQoCi0gICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsIGNvdW50LCBhbGlnbm1lbnQs
IGZvcmNlX2NvdW50X2xvb2t1cCwgY29uZmlnLCBjYWNoZWRfaW5kZXgpOworICAgICAgICAmaGVh
cC0+c2VncmVnYXRlZF9oZWFwLCBjb3VudCwgYWxpZ25tZW50LCBmb3JjZV9jb3VudF9sb29rdXAs
IGNvbmZpZywgY2FjaGVkX2luZGV4LAorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9mdWxsX2NyZWF0aW9uX21vZGUpOwogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiAg
ICAgCiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXAuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTEgKzM1
LDExIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19oZWFwOwogc3RydWN0IHBh
c19oZWFwX3JlZjsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7
CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZTsKIHR5cGVkZWYgc3RydWN0IHBhc19oZWFwIHBhc19oZWFwOwogdHlwZWRlZiBz
dHJ1Y3QgcGFzX2hlYXBfcmVmIHBhc19oZWFwX3JlZjsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdh
dGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKIAogc3RydWN0IHBhc19oZWFwIHsKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZp
Zy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQAogI2lu
Y2x1ZGUgInBhc19oZWFwX2NvbmZpZ19raW5kLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfcmVmLmgi
CiAjaW5jbHVkZSAicGFzX2hlYXBfcmVmX2tpbmQuaCIKLSNpbmNsdWRlICJwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0LmgiCisjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0Lmgi
CiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29rdXBfa2luZC5oIgogI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCkBA
IC04Niw3ICs4Niw4IEBAIHR5cGVkZWYgYm9vbCAoKnBhc19oZWFwX2NvbmZpZ19mb3JfZWFjaF8K
IHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiAoKnBhc19oZWFwX2NvbmZpZ19zcGVjaWFs
aXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfc2xvdyko
CiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAotICAgIHBhc19hbGxvY2F0b3Jf
Y291bnRzKiBjb3VudHMpOworICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsCisgICAg
cGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKTsKIHR5cGVkZWYgcGFz
X2FsbG9jYXRpb25fcmVzdWx0CiAoKnBhc19oZWFwX2NvbmZpZ19zcGVjaWFsaXplZF9sb2NhbF9h
bGxvY2F0b3JfdHJ5X2FsbG9jYXRlX21lZGl1bV9zZWdyZWdhdGVkX3dpdGhfZnJlZV9iaXRzKSgK
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpOwpAQCAtOTYsOCArOTcsOSBAQCB0
eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc19oZWFwCiAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yLAogICAgIHNpemVfdCBzaXplLAogICAgIHNpemVfdCBhbGlnbm1l
bnQsCi0gICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cyk7Ci10eXBlZGVmIHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfaGVhcF9jb25maWdfc3BlY2lhbGl6ZWRfdHJ5
X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3cpKAorICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBj
b3VudHMsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKTsK
K3R5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX2hlYXBfY29uZmlnX3NwZWNpYWxp
emVkX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KSgKICAgICBwYXNfaGVhcF9yZWYqIGhl
YXBfcmVmLAogICAgIHBhc19oZWFwX3JlZl9raW5kIGhlYXBfcmVmX2tpbmQsCiAgICAgc2l6ZV90
IGFsaWduZWRfY291bnQsIC8qIE11c3QgYmUgPSByb3VuZF91cChjb3VudCAqIHR5cGVfc2l6ZSwg
YWxpZ25tZW50KSAvIHR5cGVfc2l6ZSAqLwpAQCAtMjAwLDcgKzIwMiw4IEBAIHN0cnVjdCBwYXNf
aGVhcF9jb25maWcgewogI2RlZmluZSBQQVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVD
TEFSQVRJT05TKGxvd2VyX2Nhc2VfaGVhcF9jb25maWdfbmFtZSkgXAogICAgIFBBU19BUEkgcGFz
X2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUgIyMg
X3NwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRl
ZF9zbG93KCBcCi0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX2Fs
bG9jYXRvcl9jb3VudHMqIGNvdW50KTsgXAorICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBh
bGxvY2F0b3IsIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudCwgXAorICAgICAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0ZXIpOyBcCiAgICAgUEFTX0FQSSBwYXNf
YWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIGxvd2VyX2Nhc2VfaGVhcF9jb25maWdfbmFtZSAjIyBf
c3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfY2FzZXMoIFwK
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKTsgXApAQCAtMjEyLDggKzIx
NSw5IEBAIHN0cnVjdCBwYXNfaGVhcF9jb25maWcgewogICAgICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yKiBhbGxvY2F0b3IsIFwKICAgICAgICAgc2l6ZV90IHNpemUsIFwKICAgICAgICAgc2l6ZV90
IGFsaWdubWVudCwgXAotICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKTsgXAot
ICAgIFBBU19BUEkgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBcCisgICAgICAgIHBh
c19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsIFwKKyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVz
dWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKTsgXAorICAgIFBBU19BUEkgcGFzX2FsbG9jYXRpb25f
cmVzdWx0IFwKICAgICBsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVk
X3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KCBcCiAgICAgICAgIHBhc19oZWFwX3JlZiog
aGVhcF9yZWYsIFwKICAgICAgICAgcGFzX2hlYXBfcmVmX2tpbmQgaGVhcF9yZWZfa2luZCwgXApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX2lu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfaGVhcF9jb25maWdfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfaW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiwxMCArMzYsMTEgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogI2RlZmluZSBQ
QVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05fREVGSU5JVElPTlMobG93ZXJfY2FzZV9oZWFw
X2NvbmZpZ19uYW1lLCBoZWFwX2NvbmZpZ192YWx1ZSkgXAogICAgIFBBU19ORVZFUl9JTkxJTkUg
cGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUg
IyMgX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxfc2VncmVn
YXRlZF9zbG93KCBcCi0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgcGFz
X2FsbG9jYXRvcl9jb3VudHMqIGNvdW50KSBcCisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Iq
IGFsbG9jYXRvciwgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50LCBcCisgICAgICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcikgXAogICAgIHsgXAogICAgICAg
ICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRl
ZF9zbG93KCBcCi0gICAgICAgICAgICBhbGxvY2F0b3IsIChoZWFwX2NvbmZpZ192YWx1ZSksIGNv
dW50KTsgXAorICAgICAgICAgICAgYWxsb2NhdG9yLCAoaGVhcF9jb25maWdfdmFsdWUpLCBjb3Vu
dCwgcmVzdWx0X2ZpbHRlcik7IFwKICAgICB9IFwKICAgICBcCiAgICAgUEFTX05FVkVSX0lOTElO
RSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXApAQCAtNjIsMTMgKzYzLDE0IEBAIFBBU19CRUdJTl9F
WFRFUk5fQzsKICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBcCiAgICAg
ICAgIHNpemVfdCBzaXplLCBcCiAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQsIFwKLSAgICAgICAg
cGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cykgXAorICAgICAgICBwYXNfYWxsb2NhdG9yX2Nv
dW50cyogY291bnRzLCBcCisgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVz
dWx0X2ZpbHRlcikgXAogICAgIHsgXAogICAgICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGVfc2xvdyggXAotICAgICAgICAgICAgYWxsb2NhdG9yLCBzaXplLCBhbGln
bm1lbnQsIChoZWFwX2NvbmZpZ192YWx1ZSksIGNvdW50cyk7IFwKKyAgICAgICAgICAgIGFsbG9j
YXRvciwgc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9jb25maWdfdmFsdWUpLCBjb3VudHMsIHJlc3Vs
dF9maWx0ZXIpOyBcCiAgICAgfSBcCiAgICAgXAotICAgIFBBU19ORVZFUl9JTkxJTkUgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBcCisgICAgUEFTX05FVkVSX0lOTElORSBwYXNfYWxs
b2NhdGlvbl9yZXN1bHQgXAogICAgIGxvd2VyX2Nhc2VfaGVhcF9jb25maWdfbmFtZSAjIyBfc3Bl
Y2lhbGl6ZWRfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3coIFwKICAgICAgICAgcGFzX2hl
YXBfcmVmKiBoZWFwX3JlZiwgXAogICAgICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9r
aW5kLCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9j
b25maWdfdXRpbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTcwLDcgKzcwLDggQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIHNpemVfdCBz
bWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZTsKICAgICBkb3VibGUgc21hbGxfc2VncmVnYXRlZF93
YXN0ZWFnZV9oYW5kaWNhcDsKICAgICBib29sIHNtYWxsX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5
X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uOwotICAgIGJvb2wgc21hbGxfdXNlX3JldmVy
c2VkX2N1cnJlbnRfd29yZDsKKyAgICBib29sIHNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2Vk
X2N1cnJlbnRfd29yZDsKKyAgICBib29sIGVuYWJsZV92aWV3X2NhY2hlOwogICAgIGJvb2wgdXNl
X3NtYWxsX2JpdGZpdDsKICAgICB1aW50OF90IHNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQ7
CiAgICAgc2l6ZV90IHNtYWxsX2JpdGZpdF9wYWdlX3NpemU7CkBAIC0xMzQsMTAgKzEzNSwxMiBA
QCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfc2VncmVnYXRlZF93YXN0ZWFnZV9oYW5kaWNh
cCwgXAogICAgICAgICAuZGVhbGxvY19mdW5jID0gbmFtZSAjIyBfc21hbGxfc2VncmVnYXRlZF9k
ZWFsbG9jX2Z1bmMsIFwKICAgICAgICAgLnVzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBcCi0g
ICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19f
fSkuc21hbGxfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCwgXAorICAgICAgICAgICAgKChwYXNf
YmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0
ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCwgXAogICAgICAgICAuY2hlY2tfZGVhbGxvY2F0
aW9uID0gKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLmNo
ZWNrX2RlYWxsb2NhdGlvbiwgXAogICAgICAgICAuZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxp
dHlfb3B0aW1pemF0aW9uID0gXAogICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdf
YXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dv
cmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uLCBcCisgICAgICAgIC5lbmFibGVfdmlld19jYWNo
ZSA9IFwKKyAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19W
QV9BUkdTX199KS5lbmFibGVfdmlld19jYWNoZSwgXAogICAgICAgICAuc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5X3NlbGVjdG9yID0gXAogICAgICAgICAgICAgbmFtZSAjIyBfc21hbGxfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19zZWxlY3Rfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LCBcCiAgICAgICAgIFBB
U19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OUyhuYW1lICMjIF9zbWFsbF9z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnKSBcCkBAIC0xODUsNiArMTg4LDggQEAgdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgICAudXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IGZhbHNlLCBcCiAgICAg
ICAgIC5jaGVja19kZWFsbG9jYXRpb24gPSAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVu
dHMpe19fVkFfQVJHU19ffSkuY2hlY2tfZGVhbGxvY2F0aW9uLCBcCiAgICAgICAgIC5lbmFibGVf
ZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAorICAgICAgICAu
ZW5hYmxlX3ZpZXdfY2FjaGUgPSBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZp
Z19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuZW5hYmxlX3ZpZXdfY2FjaGUsIFwKICAgICAgICAg
LnNoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvciA9IFwKICAgICAgICAgICAgIG5hbWUgIyMg
X21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3NlbGVjdF9zaGFyZWRfcGFnZV9kaXJlY3Rv
cnksIFwKICAgICAgICAgUEFTX1NFR1JFR0FURURfUEFHRV9DT05GSUdfU1BFQ0lBTElaQVRJT05T
KG5hbWUgIyMgX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKSBcCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFw
X2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgUEFTX0FQSSB2b2lkKiBwYXNfaGVhcF9jb25m
aWdfdXRpbHNfcHJlcAogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgYm9vbCBhbGxvY2F0ZV9wYWdl
X3Nob3VsZF96ZXJvOworICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2Fw
YWNpdHlfZm9yX29iamVjdF9zaXplX2NhbGxiYWNrIGludHJpbnNpY19wcmltaXRpdmVfdmlld19j
YWNoZV9jYXBhY2l0eTsKIH0gcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2RlZmluaXRpb25zX2FyZ3Vt
ZW50czsKIAogI2RlZmluZSBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMobmFtZSwg
dXBjYXNlX25hbWUsIC4uLikgXApAQCAtNjUsMTAgKzY2LDE0IEBAIHR5cGVkZWYgc3RydWN0IHsK
ICAgICAgICAgICAgICAgICBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9CT1VORF9GT1JfUEFSVElB
TF9WSUVXUywgXAogICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGlu
ZV9hbGxvY2F0b3JzID0gXAogICAgICAgICAgICAgICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZF
X0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTLCBcCisgICAgICAgICAgICAuZGlyZWN0b3J5
X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUgPSBcCisgICAgICAgICAgICAgICAgUEFTX0lO
VFJJTlNJQ19QUklNSVRJVkVfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUsIFwKICAgICAgICAgICAg
IC5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IFwKICAgICAgICAgICAgICAgICBQQVNfSU5U
UklOU0lDX1BSSU1JVElWRV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwgXAogICAgICAgICAg
ICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBcCi0gICAgICAgICAgICAgICAgUEFTX0lOVFJJ
TlNJQ19QUklNSVRJVkVfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSBcCisgICAgICAgICAgICAgICAg
UEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSwgXAorICAgICAg
ICAgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplID0gXAorICAgICAgICAg
ICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2RlZmluaXRpb25zX2FyZ3VtZW50cyl7X19W
QV9BUkdTX199KS5pbnRyaW5zaWNfcHJpbWl0aXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHksIFwKICAg
ICAgICAgfSwgXAogICAgICAgICAucGFnZV9jYWNoZXMgPSAmbmFtZSAjIyBfcGFnZV9jYWNoZXMg
XAogICAgIH07IFwKQEAgLTgzLDEwICs4OCwxMyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAg
ICAgICAgICAgUEFTX1BSSU1JVElWRV9CT1VORF9GT1JfUEFSVElBTF9WSUVXUywgXAogICAgICAg
ICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0gXAog
ICAgICAgICAgICAgICAgIFBBU19QUklNSVRJVkVfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRP
UlMsIFwKKyAgICAgICAgICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNo
ZSA9IFwKKyAgICAgICAgICAgICAgICBQQVNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9OT19WSUVXX0NB
Q0hFLCBcCiAgICAgICAgICAgICAubWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemUgPSBcCiAgICAg
ICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwgXAog
ICAgICAgICAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBcCi0gICAgICAgICAgICAgICAg
UEFTX1BSSU1JVElWRV9NQVhfQklURklUX09CSkVDVF9TSVpFIFwKKyAgICAgICAgICAgICAgICBQ
QVNfUFJJTUlUSVZFX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUsIFwKKyAgICAgICAgICAgIC52aWV3
X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmln
X3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSwgXAogICAgICAgICB9LCBcCiAgICAgICAgIC5wYWdl
X2NhY2hlcyA9ICZuYW1lICMjIF9wYWdlX2NhY2hlcyBcCiAgICAgfTsgXApAQCAtMTAxLDEwICsx
MDksMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAgICAgICAgIFBBU19UWVBFRF9CT1VO
RF9GT1JfUEFSVElBTF9WSUVXUywgXAogICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5k
X2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0gXAogICAgICAgICAgICAgICAgIFBBU19UWVBFRF9C
T1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUywgXAorICAgICAgICAgICAgLmRpcmVjdG9yeV9z
aXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0gXAorICAgICAgICAgICAgICAgIFBBU19UWVBF
RF9CT1VORF9GT1JfTk9fVklFV19DQUNIRSwgXAogICAgICAgICAgICAgLm1heF9zZWdyZWdhdGVk
X29iamVjdF9zaXplID0gXAogICAgICAgICAgICAgICAgIFBBU19UWVBFRF9NQVhfU0VHUkVHQVRF
RF9PQkpFQ1RfU0laRSwgXAogICAgICAgICAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBc
Ci0gICAgICAgICAgICAgICAgUEFTX1RZUEVEX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUgXAorICAg
ICAgICAgICAgICAgIFBBU19UWVBFRF9NQVhfQklURklUX09CSkVDVF9TSVpFLCBcCisgICAgICAg
ICAgICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50
aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHksIFwKICAgICAgICAgfSwgXAogICAg
ICAgICAucGFnZV9jYWNoZXMgPSAmbmFtZSAjIyBfcGFnZV9jYWNoZXMgXAogICAgIH07IFwKQEAg
LTExOSwxMCArMTMwLDEzIEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgICAgICAgICBQQVNf
T0JKQ19CT1VORF9GT1JfUEFSVElBTF9WSUVXUywgXAogICAgICAgICAgICAgLmRpcmVjdG9yeV9z
aXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0gXAogICAgICAgICAgICAgICAgIFBB
U19PQkpDX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTLCBcCisgICAgICAgICAgICAuZGly
ZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUgPSBcCisgICAgICAgICAgICAgICAg
UEFTX09CSkNfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUsIFwKICAgICAgICAgICAgIC5tYXhfc2Vn
cmVnYXRlZF9vYmplY3Rfc2l6ZSA9IFwKICAgICAgICAgICAgICAgICBQQVNfT0JKQ19NQVhfU0VH
UkVHQVRFRF9PQkpFQ1RfU0laRSwgXAogICAgICAgICAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3Np
emUgPSBcCi0gICAgICAgICAgICAgICAgUEFTX09CSkNfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSBc
CisgICAgICAgICAgICAgICAgUEFTX09CSkNfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSwgXAorICAg
ICAgICAgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplID0gcGFzX2hlYXBf
cnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5LCBcCiAgICAgICAgIH0sIFwK
ICAgICAgICAgLnBhZ2VfY2FjaGVzID0gJm5hbWUgIyMgX3BhZ2VfY2FjaGVzIFwKICAgICB9OyBc
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9pbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaGVhcF9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0
LDcgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSoKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqCiBwYXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50X3Nsb3coCiAgICAg
cGFzX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGNvdW50LApAQCAtNDMsNyArNDMsNyBAQCBwYXNf
aGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50CiAgICAgcGFzX2hlYXBfY29uZmln
KiBjb25maWcsCiAgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCk7CiAKLXN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCitzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfaGVh
cF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KAogICAgIHBhc19oZWFwKiBoZWFwLAog
ICAgIHNpemVfdCBjb3VudCwKQEAgLTU1LDcgKzU1LDcgQEAgcGFzX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3J5X2Zvcl9jb3VudAogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKIAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcmVzdWx0
OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CiAKICAgICBQQVNf
VU5VU0VEX1BBUkFNKGNvdW50cyk7CiAgICAgCkBAIC02Niw3ICs2Niw3IEBAIHBhc19oZWFwX2Vu
c3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQKICAgICAKICAgICByZXN1bHQgPSBwYXNfc2Vn
cmVnYXRlZF9oZWFwX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKICAgICAgICAgJmhlYXAtPnNl
Z3JlZ2F0ZWRfaGVhcCwgY291bnQsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKLSAgICBpZiAocmVz
dWx0ICYmIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocmVz
dWx0KSA+PSBhbGlnbm1lbnQpCisgICAgaWYgKHJlc3VsdCAmJiBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0KSA+PSBhbGlnbm1lbnQpCiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAKICNpZiBQQVNfRU5BQkxFX1RFU1RJTkcKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25m
aWcuYwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
InBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19FTkFCTEVECisKKyNpbmNsdWRlICJwYXNfaGVh
cF9ydW50aW1lX2NvbmZpZy5oIgorCisjaW5jbHVkZSAicGFzX2Rlc2lnbmF0ZWRfaW50cmluc2lj
X2hlYXBfaW5saW5lcy5oIgorCit1aW50OF90IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3ZpZXdf
Y2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplKAorICAgIHBhc19oZWFwX3J1bnRpbWVfY29u
ZmlnKiBjb25maWcsCisgICAgc2l6ZV90IG9iamVjdF9zaXplLAorICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykKK3sKKyAgICBzaXplX3QgcmVzdWx0OworCisgICAg
cmVzdWx0ID0gY29uZmlnLT52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZShvYmpl
Y3Rfc2l6ZSwgcGFnZV9jb25maWcpOworCisgICAgUEFTX0FTU0VSVCgodWludDhfdClyZXN1bHQg
PT0gcmVzdWx0KTsKKyAgICByZXR1cm4gKHVpbnQ4X3QpcmVzdWx0OworfQorCitzaXplX3QgcGFz
X2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5KAorICAgIHNpemVf
dCBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKQor
eworICAgIFBBU19VTlVTRURfUEFSQU0ob2JqZWN0X3NpemUpOworICAgIFBBU19VTlVTRURfUEFS
QU0ocGFnZV9jb25maWcpOworICAgIHJldHVybiAwOworfQorCitzaXplX3QgcGFzX2hlYXBfcnVu
dGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5KAorICAgIHNpemVfdCBv
YmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKQorewor
ICAgIHN0YXRpYyBjb25zdCBzaXplX3QgY2FjaGVfc2l6ZSA9IDE2Mzg0MDA7CisKKyAgICBQQVNf
VU5VU0VEX1BBUkFNKG9iamVjdF9zaXplKTsKKworICAgIFBBU19BU1NFUlQocGFnZV9jb25maWct
PmJhc2UucGFnZV9zaXplIDwgY2FjaGVfc2l6ZSk7CisKKyAgICByZXR1cm4gY2FjaGVfc2l6ZSAv
IHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZTsKK30KKworI2VuZGlmIC8qIExJQlBBU19FTkFC
TEVEICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFw
X3J1bnRpbWVfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25maWcu
aAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDE4IEBACiAKICNpbmNsdWRlICJwYXNfcGFn
ZV9zaGFyaW5nX21vZGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9r
aW5kLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oIgog
I2luY2x1ZGUgInBhc191dGlscy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
ZzsKIHR5cGVkZWYgc3RydWN0IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnIHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnOwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWc7CisKK3R5cGVkZWYgc2l6ZV90ICgqcGFzX2hlYXBfcnVu
dGltZV9jb25maWdfdmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemVfY2FsbGJhY2sp
KAorICAgIHNpemVfdCBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBh
Z2VfY29uZmlnKTsKIAogc3RydWN0IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnIHsKICAgICBwYXNf
c2VncmVnYXRlZF9oZWFwX2xvb2t1cF9raW5kIGxvb2t1cF9raW5kIDogODsKQEAgLTQ0LDEyICs1
MCwyOCBAQCBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25maWcgewogICAgIAogICAgIHVuc2ln
bmVkIGRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzOwogICAgIHVuc2lnbmVk
IGRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzOworICAgIHVuc2ln
bmVkIGRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlOwogCiAgICAgLyogSXQn
cyBPSyB0byBzZXQgdGhlc2UgdG8gVUlOVF9NQVgsIGluIHdoaWNoIGNhc2UgdGhlIG1heGltdW0g
aXMgZGVjaWRlZCBieSB0aGUgaGVhcF9jb25maWcuICovCiAgICAgdW5zaWduZWQgbWF4X3NlZ3Jl
Z2F0ZWRfb2JqZWN0X3NpemU7CiAgICAgdW5zaWduZWQgbWF4X2JpdGZpdF9vYmplY3Rfc2l6ZTsK
KworICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29i
amVjdF9zaXplX2NhbGxiYWNrIHZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplOwog
fTsKIAorUEFTX0FQSSB1aW50OF90IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVf
Y2FwYWNpdHlfZm9yX29iamVjdF9zaXplKAorICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBj
b25maWcsCisgICAgc2l6ZV90IG9iamVjdF9zaXplLAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnKiBwYWdlX2NvbmZpZyk7CisKK1BBU19BUEkgc2l6ZV90IHBhc19oZWFwX3J1bnRpbWVf
Y29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSgKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUs
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKKworUEFTX0FQ
SSBzaXplX3QgcGFzX2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2Nh
cGFjaXR5KAorICAgIHNpemVfdCBvYmplY3Rfc2l6ZSwKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyogcGFnZV9jb25maWcpOworCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyog
UEFTX0hFQVBfUlVOVElNRV9DT05GSUdfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFs
X2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsMjYgKzE0OCwzMSBAQAogCiAjZGVmaW5l
IFBBU19VVElMSVRZX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTICAgICAgICAgICAgICAgICAgICAg
MAogI2RlZmluZSBQQVNfVVRJTElUWV9CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAgICAg
ICAgICAgICAgIDAKKyNkZWZpbmUgUEFTX1VUSUxJVFlfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUg
ICAgICAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfVVRJTElUWV9NQVhfU0VH
UkVHQVRFRF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBB
U19VVElMSVRZX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICAgICAgMAog
CiAjZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdT
ICAgICAgICAgMAogI2RlZmluZSBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9CT1VORF9GT1JfQkFT
RUxJTkVfQUxMT0NBVE9SUyAgIDAKKyNkZWZpbmUgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfQk9V
TkRfRk9SX05PX1ZJRVdfQ0FDSEUgICAgICAgICAwCiAjZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJ
TUlUSVZFX01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFICAgICAgVUlOVF9NQVgKICNkZWZpbmUg
UEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSAgICAgICAgICBV
SU5UX01BWAogCiAjZGVmaW5lIFBBU19QUklNSVRJVkVfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1Mg
ICAgICAgICAgICAgICAgICAgMAogI2RlZmluZSBQQVNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9CQVNF
TElORV9BTExPQ0FUT1JTICAgICAgICAgICAgIDAKKyNkZWZpbmUgUEFTX1BSSU1JVElWRV9CT1VO
RF9GT1JfTk9fVklFV19DQUNIRSAgICAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQ
QVNfUFJJTUlUSVZFX01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFICAgICAgICAgICAgICAgIFVJ
TlRfTUFYCiAjZGVmaW5lIFBBU19QUklNSVRJVkVfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSAgICAg
ICAgICAgICAgICAgICAgVUlOVF9NQVgKIAogI2RlZmluZSBQQVNfVFlQRURfQk9VTkRfRk9SX1BB
UlRJQUxfVklFV1MgICAgICAgICAgICAgICAgICAgICAgIDEwCiAjZGVmaW5lIFBBU19UWVBFRF9C
T1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAgICAgICAgICAgICAgICAgMAorI2RlZmluZSBQ
QVNfVFlQRURfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUgICAgICAgICAgICAgICAgICAgICAgIFVJ
TlRfTUFYCiAjZGVmaW5lIFBBU19UWVBFRF9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSAgICAg
ICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX1RZUEVEX01BWF9CSVRGSVRfT0JK
RUNUX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAwCiAKICNkZWZpbmUgUEFTX09CSkNfQk9V
TkRfRk9SX1BBUlRJQUxfVklFV1MgICAgICAgICAgICAgICAgICAgICAgICAxMAogI2RlZmluZSBQ
QVNfT0JKQ19CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAgICAgICAgICAgICAgICAgIDEw
CisjZGVmaW5lIFBBU19PQkpDX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFICAgICAgICAgICAgICAg
ICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX09CSkNfTUFYX1NFR1JFR0FURURfT0JKRUNU
X1NJWkUgICAgICAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfT0JKQ19NQVhf
QklURklUX09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgIDAKIApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdC5oCShub25leGlzdGVudCkKQEAgLTEsMTA5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KGMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfSU5UUklOU0lDX0FMTE9D
QVRJT05fUkVTVUxUX0gKLSNkZWZpbmUgUEFTX0lOVFJJTlNJQ19BTExPQ0FUSU9OX1JFU1VMVF9I
Ci0KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5o
IgotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLSNpbmNsdWRlICJwYXNfdXRpbHMuaCIKLSNpbmNs
dWRlICJwYXNfemVyb19tb2RlLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotLyogV2Uga2Vl
cCB0aGlzIHNlcGFyYXRlIGZyb20gcGFzX2FsbG9jYXRpb25fcmVzdWx0IHNpbmNlIHRoaXMgaXMg
c3VwcG9zZWQgdG8gYmUgYWJsZSB0bwotICAgY29tbXVuaWNhdGUgYW55IG90aGVyIG1ldGEtZGF0
YSB0aGF0IHRoZSBpbnRyaW5zaWMvcHJpbWl0aXZlIGFsbG9jYXRvciBoYXMgYXZhaWxhYmxlLiBB
dAotICAgb25lIHBvaW50IHRoYXQgaW5jbHVkZWQgdGhlIG9iamVjdF9zaXplX21vZGUsIGJ1dCB0
aGF0J3Mgbm8gbG9uZ2VyIHRoZSBjYXNlLgotCi0gICBJZiB3ZSBnbyBhIGxvbmcgdGltZSB3aXRo
b3V0IGFkZGluZyBhZGRpdGlvbmFsIGZpZWxkcyB0byB0aGlzIHRvIGRpc3Rpbmd1aXNoIGl0IGZy
b20KLSAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCB0aGVuIHdlIHNob3VsZCBwcm9iYWJseSBnZXQg
cmlkIG9mIHRoaXMuICovCi0KLXN0cnVjdCBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0OwotCi1zdHJ1Y3QgcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdCB7Ci0gICAgdm9pZCogcHRyOwotICAgIGJvb2wgZGlkX3N1Y2NlZWQ7Ci0gICAg
cGFzX3plcm9fbW9kZSB6ZXJvX21vZGU7Ci19OwotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNpY19hbGxvY2F0aW9u
X3Jlc3VsdF9jcmVhdGVfZW1wdHkodm9pZCkKLXsKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0IHJlc3VsdDsKLSAgICByZXN1bHQuZGlkX3N1Y2NlZWQgPSBmYWxzZTsKLSAgICBy
ZXN1bHQuemVyb19tb2RlID0gcGFzX3plcm9fbW9kZV9tYXlfaGF2ZV9ub25femVybzsKLSAgICBy
ZXN1bHQucHRyID0gTlVMTDsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUocGFzX2FsbG9jYXRpb25fcmVzdWx0IGFsbG9jYXRp
b25fcmVzdWx0KQotewotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0
OwotICAgIHJlc3VsdC5wdHIgPSAodm9pZCopYWxsb2NhdGlvbl9yZXN1bHQuYmVnaW47Ci0gICAg
cmVzdWx0LmRpZF9zdWNjZWVkID0gYWxsb2NhdGlvbl9yZXN1bHQuZGlkX3N1Y2NlZWQ7Ci0gICAg
cmVzdWx0Lnplcm9fbW9kZSA9IGFsbG9jYXRpb25fcmVzdWx0Lnplcm9fbW9kZTsKLSAgICByZXR1
cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0
eShwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKLXsKLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQotewotICAgIGlmIChyZXN1bHQuZGlkX3N1Y2Nl
ZWQKLSAgICAgICAgJiYgcmVzdWx0Lnplcm9fbW9kZSA9PSBwYXNfemVyb19tb2RlX21heV9oYXZl
X25vbl96ZXJvKQotICAgICAgICBwYXNfemVyb19tZW1vcnkocmVzdWx0LnB0ciwgc2l6ZSk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKLXBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRf
c2V0X2Vycm5vKAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQot
ewotICAgIGlmICghcmVzdWx0LmRpZF9zdWNjZWVkKQotICAgICAgICBlcnJubyA9IEVOT01FTTsK
LSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dF9jcmFzaF9vbl9lcnJvcigKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHJl
c3VsdCkKLXsKLSAgICBQQVNfQVNTRVJUKHJlc3VsdC5kaWRfc3VjY2VlZCk7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19JTlRSSU5T
SUNfQUxMT0NBVElPTl9SRVNVTFRfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0
LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3
LDcgQEAKICNkZWZpbmUgUEFTX0lOVFJJTlNJQ19IRUFQX1NVUFBPUlRfSAogCiAjaW5jbHVkZSAi
cGFzX2FsbG9jYXRvcl9pbmRleC5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKKyNpbmNsdWRlICJwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKICNpbmNsdWRlICJwYXNf
aW50ZXJuYWxfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKQEAgLTM3LDcgKzM3
LDcgQEAgc3RydWN0IHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0OwogdHlwZWRlZiBzdHJ1Y3Qg
cGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQgcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQ7CiAK
IHN0cnVjdCBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydCB7Ci0gICAgcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBpbmRleF90b19zaXplX2Rp
cmVjdG9yeVsKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHIgaW5kZXhfdG9fc2l6ZV9kaXJlY3RvcnlbCiAgICAgICAgIFBBU19OVU1fSU5UUklOU0lD
X1NJWkVfQ0xBU1NFU107CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBpbmRleF90b19hbGxvY2F0
b3JfaW5kZXhbUEFTX05VTV9JTlRSSU5TSUNfU0laRV9DTEFTU0VTXTsKIH07CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdl
X3NoYXJpbmdfY2FjaGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYwkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xh
cmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMJKHdvcmtpbmcgY29weSkKQEAg
LTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQgbGFy
CiAgICAgICAgICAgICAgICAgICAgIChjaGFyKilhbGxvY2F0aW9uX3Jlc3VsdC5iZWdpbiArIGFs
aWduZWRfc2l6ZSk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdF96ZXJvKCZhbGxvY2F0aW9uX3Jlc3VsdCwgYWxpZ25lZF9zaXplKTsKKyAgICAgICAg
YWxsb2NhdGlvbl9yZXN1bHQgPSBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyhhbGxvY2F0aW9u
X3Jlc3VsdCwgYWxpZ25lZF9zaXplKTsKICAgICB9CiAKICAgICBwYXNfZW51bWVyYWJsZV9yYW5n
ZV9saXN0X2FwcGVuZCgKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19sb2NhbF9hbGxvY2F0b3IuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYwkod29y
a2luZyBjb3B5KQpAQCAtMzMsMTYgKzMzLDIzIEBACiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9j
YXRvcl9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3JhY2VfdGVzdF9ob29rcy5oIgogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2UuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3X2lubGlu
ZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKICNpbmNsdWRlICJwYXNfdXRpbGl0eV9oZWFwLmgi
CiAKLXVpbnQ4X3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3Vz
cGVuZCA9IDU7CisjaWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lF
TkNZCitkb3VibGUgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9zdW0gPSAw
LjsKK2RvdWJsZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X24gPSAwLjsK
K1BBU19ERUZJTkVfTE9DSyhwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5KTsK
KyNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kg
Ki8KIAogdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdChwYXNfbG9jYWxfYWxsb2Nh
dG9yKiBhbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5KQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29uc3RydWN0KAorICAgICAgICAm
YWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YSwgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jf
a2luZCk7CiAgICAgCiAgICAgYWxsb2NhdG9yLT5wYXlsb2FkX2VuZCA9IDA7CiAgICAgYWxsb2Nh
dG9yLT5yZW1haW5pbmcgPSAwOwpAQCAtNTYsMzAgKzYzLDIzIEBAIHZvaWQgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9jb25zdHJ1Y3QocGFzX2wKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0ID0g
MDsKICAgICBhbGxvY2F0b3ItPmVuZF9vZmZzZXQgPSAwOwogICAgIAotICAgIGFsbG9jYXRvci0+
dmlldyA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hc192aWV3KGRpcmVj
dG9yeSk7CisgICAgYWxsb2NhdG9yLT52aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfYXNfdmlldyhkaXJlY3RvcnkpOwogICAgIGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgPSBwYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0ZV9ub3JtYWwoCiAgICAgICAgIGRpcmVj
dG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKICAgICBpZiAodmVyYm9zZSkgewotICAgICAg
ICBwYXNfbG9nKCJhbGxvY2F0b3IgJXAgaGFzIGtpbmQgJXNcbiIsCi0gICAgICAgICAgICAgICAg
YWxsb2NhdG9yLCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxs
b2NhdG9yLT5jb25maWdfa2luZCksICJcbiIpOworICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3Ig
JXAgaGFzIGtpbmQgJXMsIGVuZHMgYXQgJXBcbiIsCisgICAgICAgICAgICAgICAgYWxsb2NhdG9y
LCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5j
b25maWdfa2luZCksCisgICAgICAgICAgICAgICAgKGNoYXIqKWFsbG9jYXRvciArIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSkpOwog
ICAgIH0KICAgICAKLSAgICBhbGxvY2F0b3ItPmlzX2luX3VzZSA9IGZhbHNlOwotICAgIGFsbG9j
YXRvci0+c2hvdWxkX3N0b3BfY291bnQgPSAwOwotICAgIGFsbG9jYXRvci0+ZGlydHkgPSBmYWxz
ZTsKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfd29yZF9pc192YWxpZCA9IGZhbHNlOwogfQogCi12
b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVzdHJ1Y3QocGFzX2xvY2FsX2FsbG9jYXRvciogYWxs
b2NhdG9yKQotewotICAgIFBBU19VTlVTRURfUEFSQU0oYWxsb2NhdG9yKTsKLX0KLQogdm9pZCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Jlc2V0KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcikK
IHsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogCi0gICAgZGly
ZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGFs
bG9jYXRvci0+dmlldyk7CisgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
c2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KTsKIAogICAgIHBhc19sb2NhbF9hbGxvY2F0
b3JfcmVzZXRfaW1wbChhbGxvY2F0b3IsIGRpcmVjdG9yeSwgZGlyZWN0b3J5LT5iYXNlLnBhZ2Vf
Y29uZmlnX2tpbmQpOwogfQpAQCAtODgsMTMgKzg4LDEzIEBAIHZvaWQgcGFzX2xvY2FsX2FsbG9j
YXRvcl9tb3ZlKHBhc19sb2NhbF8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3IqIHNyYykKIHsKICAgICBzaXplX3Qgc2l6ZTsKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlldyogcGFydGlhbF92aWV3OwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFy
ZWRfdmlldzsKIAotICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2Jh
bF9zaXplX2RpcmVjdG9yeShzcmMtPnZpZXcpOworICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHNyYy0+dmlldyk7CiAgICAgCi0gICAgc2l6ZSA9
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6
ZShkaXJlY3RvcnkpOworICAgIHNpemUgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9s
b2NhbF9hbGxvY2F0b3Jfc2l6ZShkaXJlY3RvcnkpOwogICAgIAogICAgIG1lbWNweShkc3QsIHNy
Yywgc2l6ZSk7CiAKQEAgLTEzMSwxMyArMTMxLDExIEBAIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZWZpbGxfd2l0aF9iaXQKIAogdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2ZpbmlzaF9yZWZp
bGxfd2l0aF9iaXRmaXQoCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnksCi0g
ICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSkKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogc2l6ZV9kaXJlY3RvcnkpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOwogICAgIAogICAgIHBhc19iaXRmaXRfYWxsb2NhdG9yKiBiaXRmaXQ7Ci0gICAgcGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogZ2xvYmFsX3NpemVfY2xhc3M7CiAgICAgcGFzX2Jp
dGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNzOwogICAgIHBhc19iaXRmaXRfdmlldyogYml0Zml0
X3ZpZXc7CiAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kIGJpdGZpdF9raW5kOwpAQCAt
MTQ4LDI4ICsxNDYsMjEgQEAgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2ZpbmlzaF9yZWZpbGxf
dwogICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgc2l6ZV9kaXJlY3RvcnkpOwogICAgIH0KICAg
ICAKLSAgICBnbG9iYWxfc2l6ZV9jbGFzcyA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3NfcHRyX2xvYWRfbm9uX251bGwoCisgICAgc2l6ZV9jbGFzcyA9IHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfbG9hZF9ub25fbnVsbCgKICAgICAg
ICAgJnNpemVfZGlyZWN0b3J5LT5iaXRmaXRfc2l6ZV9jbGFzcyk7CiAgICAgCi0gICAgYml0Zml0
X2tpbmQgPSBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAot
ICAgICAgICAmZ2xvYmFsX3NpemVfY2xhc3MtPmJhc2UuZGlyZWN0b3J5KS0+Y29uZmlnX2tpbmQ7
CisgICAgYml0Zml0X2tpbmQgPSBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2Fk
X25vbl9udWxsKCZzaXplX2NsYXNzLT5kaXJlY3RvcnkpLT5jb25maWdfa2luZDsKICAgICAKICAg
ICBhbGxvY2F0b3ItPmNvbmZpZ19raW5kID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2lu
ZF9jcmVhdGVfYml0Zml0KGJpdGZpdF9raW5kKTsKICAgICAKICAgICBiaXRmaXQgPSBwYXNfbG9j
YWxfYWxsb2NhdG9yX2dldF9iaXRmaXQoYWxsb2NhdG9yKTsKICAgICAKLSAgICBzaXplX2NsYXNz
ID0gcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19zZWxlY3RfZm9yX21hZ2F6aW5lKGdsb2Jh
bF9zaXplX2NsYXNzLCBtYWdhemluZSk7Ci0gICAgCi0gICAgUEFTX0FTU0VSVChzaXplX2NsYXNz
KTsKLSAgICAKICAgICBiaXRmaXRfY29uZmlnID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5k
X2dldF9jb25maWcoYml0Zml0X2tpbmQpOwogICAgIAotICAgIGJpdGZpdF92aWV3ID0gcGFzX2Jp
dGZpdF9zaXplX2NsYXNzX2dldF9maXJzdF9mcmVlX3ZpZXcoCi0gICAgICAgIHNpemVfY2xhc3Ms
IGdsb2JhbF9zaXplX2NsYXNzLCBiaXRmaXRfY29uZmlnKTsKKyAgICBiaXRmaXRfdmlldyA9IHBh
c19iaXRmaXRfc2l6ZV9jbGFzc19nZXRfZmlyc3RfZnJlZV92aWV3KHNpemVfY2xhc3MsIGJpdGZp
dF9jb25maWcpOwogICAgIAogICAgIFBBU19BU1NFUlQoYml0Zml0X3ZpZXcpOwogICAgIAotICAg
IGJpdGZpdC0+Z2xvYmFsX3NpemVfY2xhc3MgPSBnbG9iYWxfc2l6ZV9jbGFzczsKICAgICBiaXRm
aXQtPnNpemVfY2xhc3MgPSBzaXplX2NsYXNzOwogICAgIGJpdGZpdC0+dmlldyA9IGJpdGZpdF92
aWV3OwogfQpAQCAtMTgzLDcgKzE3NCw3IEBAIHN0YXRpYyBib29sIHN0b3BfaW1wbCgKICAgICAK
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnOwogICAgIHBhc19sb2NrKiBoZWxk
X2xvY2s7CiAKQEAgLTE5Myw4ICsxODQsMTAgQEAgc3RhdGljIGJvb2wgc3RvcF9pbXBsKAogICAg
IGlmICghYWxsb2NhdG9yLT5wYWdlX2lzaCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBo
ZWxkX2xvY2sgPSBOVUxMOworCiAgICAgdmlldyA9IGFsbG9jYXRvci0+dmlldzsKLSAgICBkaXJl
Y3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkodmll
dyk7CisgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rv
cnkodmlldyk7CiAKICAgICBwYWdlX2NvbmZpZyA9ICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogCkBA
IC0yMDIsMjkgKzE5NSwyOCBAQCBzdGF0aWMgYm9vbCBzdG9wX2ltcGwoCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3IsIHBhZ2VfY29uZmln
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25m
aWcpOwogICAgIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSh2aWV3KSkgeworICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NpemVfZGly
ZWN0b3J5KHZpZXcpKSB7CiAgICAgICAgIHZpZXcgPSBwYWdlLT5vd25lcjsKLSAgICAgICAgUEFT
X0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2godmlldykpOworICAg
ICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmll
dykpOwogICAgIH0gZWxzZQogICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfcGFydGlhbCh2aWV3KSk7Ci0KLSAgICBoZWxkX2xvY2sgPSBOVUxMOworICAgIAogICAgIGlm
ICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja193aXRoX21vZGUocGFnZSwgJmhlbGRf
bG9jaywgcGFnZV9sb2NrX21vZGUsIHBhZ2VfY29uZmlnKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIAogICAgIHBhZ2VfY29uZmlnLnNwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl9yZXR1
cm5fbWVtb3J5X3RvX3BhZ2UoCiAgICAgICAgIGFsbG9jYXRvciwgdmlldywgcGFnZSwgZGlyZWN0
b3J5LCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQorICAgIAogICAgIHBhc19yYWNlX3Rlc3RfaG9v
ayhwYXNfcmFjZV90ZXN0X2hvb2tfbG9jYWxfYWxsb2NhdG9yX3N0b3BfYmVmb3JlX2RpZF9zdG9w
X2FsbG9jYXRpbmcpOwogICAgIAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxs
b2NhdGluZyh2aWV3LCBwYWdlLCBwYWdlX2NvbmZpZyk7CiAgICAgCiAgICAgcGFzX3JhY2VfdGVz
dF9ob29rKHBhc19yYWNlX3Rlc3RfaG9va19sb2NhbF9hbGxvY2F0b3Jfc3RvcF9iZWZvcmVfdW5s
b2NrKTsKLQotICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKICAgICAKICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc2V0KGFsbG9jYXRvcik7CiAgICAgCisgICAgcGFzX2xv
Y2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgIAogICAgIHJldHVybiB0cnVlOwogfQog
CkBAIC0yMzksOSArMjMxLDkgQEAgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3AoCiAgICAg
CiAgICAgYm9vbCByZXN1bHQ7CiAKLSAgICBQQVNfQVNTRVJUKCFhbGxvY2F0b3ItPmlzX2luX3Vz
ZSk7CisgICAgUEFTX0FTU0VSVCghYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2Up
OwogCi0gICAgYWxsb2NhdG9yLT5pc19pbl91c2UgPSB0cnVlOworICAgIGFsbG9jYXRvci0+c2Nh
dmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gdHJ1ZTsKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsK
IAogICAgIHJlc3VsdCA9IHN0b3BfaW1wbChhbGxvY2F0b3IsIHBhZ2VfbG9ja19tb2RlLCBoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKQEAgLTI0OSwxMSArMjQxLDExIEBAIGJvb2wgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zdG9wKAogICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgaWYgKHZlcmJvc2UpCiAg
ICAgICAgICAgICBwYXNfbG9nKCJEaWQgc3RvcCBhbGxvY2F0b3IgJXBcbiIsIGFsbG9jYXRvcik7
Ci0gICAgICAgIGFsbG9jYXRvci0+c2hvdWxkX3N0b3BfY291bnQgPSAwOworICAgICAgICBhbGxv
Y2F0b3ItPnNjYXZlbmdlcl9kYXRhLnNob3VsZF9zdG9wX2NvdW50ID0gMDsKICAgICB9CiAgICAg
CiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgYWxsb2NhdG9yLT5pc19pbl91c2UgPSBm
YWxzZTsKKyAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IGZhbHNlOwog
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTI2Nyw4ICsyNTksOCBAQCBib29sIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2UocGFzX2xvCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAK
ICAgICBpZiAoYWN0aW9uID09IHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfcmVxdWVzdF9zdG9wX2Fj
dGlvbikgewotICAgICAgICBpZiAoYWxsb2NhdG9yLT5kaXJ0eSkgewotICAgICAgICAgICAgYWxs
b2NhdG9yLT5kaXJ0eSA9IGZhbHNlOworICAgICAgICBpZiAoYWxsb2NhdG9yLT5zY2F2ZW5nZXJf
ZGF0YS5kaXJ0eSkgeworICAgICAgICAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5kaXJ0
eSA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX2FsbG9jYXRvci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDcgKzMxLDcgQEAKICNpbmNsdWRlICJwYXNfYml0Zml0X2FsbG9jYXRvci5oIgogI2luY2x1ZGUg
InBhc19jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5k
LmgiCi0jaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmgiCisjaW5jbHVkZSAicGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oIgogI2luY2x1ZGUgInBhc19sb2NrLmgi
CiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCIKICNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF92aWV3LmgiCkBAIC01MCw2ICs1MCwxMiBAQCB0eXBlZGVmIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9oZWFwIHBhc19zCiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdl
IHBhc19zZWdyZWdhdGVkX3BhZ2U7CiAKIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yIHsKKyAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhIHNjYXZlbmdlcl9kYXRhOworICAg
IAorICAgIHVpbnQ4X3QgYWxpZ25tZW50X3NoaWZ0OworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
Y29uZmlnX2tpbmQgY29uZmlnX2tpbmQgOiA4OworICAgIGJvb2wgY3VycmVudF93b3JkX2lzX3Zh
bGlkOyAvKiBUaGlzIGlzIGp1c3QgdXNlZCBieSBlbnVtZXJhdGlvbi4gKi8KKwogICAgIC8qIFRo
aXMgaGFzIHRvIGhhdmUgYSBwb2ludGVyIHRvIG91ciBpbmRleCB3aXRoaW4gdGhlIHZpZXcuIFdl
IGNhbiBnZXQgdG8gdGhlIHZpZXcgdXNpbmcKICAgICAgICBwYWdlX2lzaC4gTWF5YmUgd29ydGgg
cmVjb25zaWRlcmluZyB0aGF0LCBidXQgdGhlbiBhZ2FpbiBtYXliZSBpdCdzIGdvb2QgZW5vdWdo
LiAKICAgICAKQEAgLTcxLDE3ICs3NywxMiBAQCBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvciB7
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OyAvKiBwb2ludHMgdG8gYSBwYXJ0aWFsIHZp
ZXcgaWYgd2UncmUgaW4gcGFydGlhbCBtb2RlIG9yIHRoZSBzaXplCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaXJlY3Rvcnkgb3RoZXJ3aXNlLiBUaGlzIHdpbGwgcG9pbnQgdG8g
YSBwYXJ0aWFsIHZpZXcgaW4gZWl0aGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmltb3JkaWFsIHBhcnRpYWwgbW9kZSBvciBpbiBub3JtYWwgcGFydGlhbCBtb2RlLiAqLwot
ICAgIHVpbnQxNl90IG51bV9saW5lczsKLSAgICB1aW50OF90IGFsaWdubWVudF9zaGlmdDsKLSAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kIGNvbmZpZ19raW5kIDogODsKLSAgICBi
b29sIGlzX2luX3VzZTsKLSAgICB1aW50OF90IHNob3VsZF9zdG9wX2NvdW50OwotICAgIGJvb2wg
ZGlydHk7Ci0gICAgYm9vbCBjdXJyZW50X3dvcmRfaXNfdmFsaWQ7IC8qIFRoaXMgaXMganVzdCB1
c2VkIGJ5IGVudW1lcmF0aW9uLiAqLwogICAgIHVpbnQ2NF90IGJpdHNbMV07CiB9OwogCiAjZGVm
aW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfTlVMTF9JTklUSUFMSVpFUiAoKHBhc19sb2NhbF9hbGxv
Y2F0b3IpeyBcCisgICAgICAgIC5zY2F2ZW5nZXJfZGF0YSA9IFwKKyAgICAgICAgICAgIFBBU19M
T0NBTF9BTExPQ0FUT1JfU0NBVkVOR0VSX0RBVEFfSU5JVElBTElaRVIocGFzX2xvY2FsX2FsbG9j
YXRvcl9hbGxvY2F0b3Jfa2luZCksIFwKICAgICAgICAgLnBheWxvYWRfZW5kID0gMCwgXAogICAg
ICAgICAucmVtYWluaW5nID0gMCwgXAogICAgICAgICAub2JqZWN0X3NpemUgPSAwLCBcCkBAIC04
OSwxMCArOTAsNyBAQCBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvciB7CiAgICAgICAgIC5jdXJy
ZW50X29mZnNldCA9IDAsIFwKICAgICAgICAgLmVuZF9vZmZzZXQgPSAwLCBcCiAgICAgICAgIC52
aWV3ID0gTlVMTCwgXAotICAgICAgICAuY29uZmlnX2tpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9y
X2NvbmZpZ19raW5kX25vcm1hbF9udWxsLCBcCi0gICAgICAgIC5pc19pbl91c2UgPSBmYWxzZSwg
XAotICAgICAgICAuc2hvdWxkX3N0b3BfY291bnQgPSAwLCBcCi0gICAgICAgIC5kaXJ0eSA9IGZh
bHNlIFwKKyAgICAgICAgLmNvbmZpZ19raW5kID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdf
a2luZF9ub3JtYWxfbnVsbCBcCiAgICAgfSkKIAogI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9S
X1NJWkUobnVtX2FsbG9jX2JpdHMpIFwKQEAgLTEwMSw3ICs5OSwxMyBAQCBzdHJ1Y3QgcGFzX2xv
Y2FsX2FsbG9jYXRvciB7CiAgICAgICAgICBzaXplb2YodWludDY0X3QpICogUEFTX0JJVFZFQ1RP
Ul9OVU1fV09SRFM2NChudW1fYWxsb2NfYml0cyksIFwKICAgICAgICAgIFBBU19ST1VORF9VUF9U
T19QT1dFUl9PRl8yKHNpemVvZihwYXNfYml0Zml0X2FsbG9jYXRvciksIHNpemVvZih1aW50NjRf
dCkpKSkKIAotUEFTX0FQSSBleHRlcm4gdWludDhfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3Vs
ZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kOworI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX01F
QVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgMAorCisjaWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFT
VVJFX1JFRklMTF9FRkZJQ0lFTkNZCitQQVNfQVBJIGV4dGVybiBkb3VibGUgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9zdW07CitQQVNfQVBJIGV4dGVybiBkb3VibGUgcGFz
X2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9uOworUEFTX0RFQ0xBUkVfTE9DSyhw
YXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5KTsKKyNlbmRpZiAvKiBQQVNfTE9D
QUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KIAogc3RhdGljIGlubGlu
ZSBib29sIHBhc19sb2NhbF9hbGxvY2F0b3JfaXNfbnVsbChwYXNfbG9jYWxfYWxsb2NhdG9yKiBh
bGxvY2F0b3IpCiB7CkBAIC0xMzQsOSArMTM4LDcgQEAgc3RhdGljIGlubGluZSB1aW50cHRyX3Qg
cGFzX2xvY2FsX2FsbG9jYQogfQogCiBQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9j
b25zdHJ1Y3QocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jf
ZGVzdHJ1Y3QocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KTsKIAogUEFTX0FQSSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzZXQo
cGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKTsKIApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRv
cl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiwxNyArMjYsMTYgQEAKICNpZm5kZWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9JTkxJTkVTX0gK
ICNkZWZpbmUgUEFTX0xPQ0FMX0FMTE9DQVRPUl9JTkxJTkVTX0gKIAotI2luY2x1ZGUgInBhc19h
bGxfbWFnYXppbmVzLmgiCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9jb3VudHMuaCIKICNpbmNs
dWRlICJwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZp
dF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgi
CisjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2NsYXNzLmgiCiAjaW5jbHVkZSAicGFzX2NvbmZp
Zy5oIgogI2luY2x1ZGUgInBhc19lcG9jaC5oIgogI2luY2x1ZGUgInBhc19mdWxsX2FsbG9jX2Jp
dHNfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zY2F2ZW5nZXIuaCIKICNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pbmxpbmVzLmgiCkBAIC01MSw3ICs1
MCw3IEBACiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Jlc2V0X2ltcGwocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZCBraW5kKQogewog
ICAgIGFsbG9jYXRvci0+cGFnZV9pc2ggPSAwOwpAQCAtNTksMTEgKzU4LDEwIEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3IKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRf
d29yZF9pc192YWxpZCA9IGZhbHNlOwogICAgIGFsbG9jYXRvci0+cGF5bG9hZF9lbmQgPSAwOwog
ICAgIGFsbG9jYXRvci0+cmVtYWluaW5nID0gMDsKLSAgICBhbGxvY2F0b3ItPm51bV9saW5lcyA9
IDA7CiAgICAgYWxsb2NhdG9yLT5jdXJyZW50X29mZnNldCA9IDA7CiAgICAgYWxsb2NhdG9yLT5l
bmRfb2Zmc2V0ID0gMDsKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfd29yZCA9IDA7Ci0gICAgYWxs
b2NhdG9yLT52aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2FzX3Zp
ZXcoZGlyZWN0b3J5KTsKKyAgICBhbGxvY2F0b3ItPnZpZXcgPSBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9hc192aWV3KGRpcmVjdG9yeSk7CiAgICAgYWxsb2NhdG9yLT5jb25maWdfa2lu
ZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX25vcm1hbChraW5kKTsK
IH0KIApAQCAtNzIsOSArNzAsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50cHRyX3QgZW5kKQogeworICAgIFBBU19URVNUSU5HX0FTU0VSVChl
bmQpOwogICAgIGFsbG9jYXRvci0+cGF5bG9hZF9lbmQgPSBlbmQ7CiAgICAgYWxsb2NhdG9yLT5y
ZW1haW5pbmcgPSAodW5zaWduZWQpKGVuZCAtIGJlZ2luKTsKLSAgICBhbGxvY2F0b3ItPm51bV9s
aW5lcyA9IDA7CiAgICAgYWxsb2NhdG9yLT5jdXJyZW50X29mZnNldCA9IDA7CiAgICAgYWxsb2Nh
dG9yLT5lbmRfb2Zmc2V0ID0gMDsKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfd29yZCA9IDA7CkBA
IC0xMjIsNyArMTIwLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX2xvY2Fs
XwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YW5fYml0c190b19zZXRfdXBfZnJlZV9iaXRzKAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFs
bG9jYXRvciwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgdWludHB0cl90IHBhZ2VfYm91bmRhcnks
CiAgICAgdW5zaWduZWQgY3VycmVudF9vZmZzZXQsCkBAIC0xMzksNiArMTM3LDExIEBAIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF8KICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYW5fYml0c190b19zZXRfdXBfdXNlX2NvdW50c19kYXRhIGRhdGE7CiAgICAgdW5zaWdu
ZWQgb2JqZWN0X3NpemU7CiAKKyNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxM
X0VGRklDSUVOQ1kKKyAgICB1bnNpZ25lZCBudW1fdG90YWxfb2JqZWN0czsKKyAgICB1bnNpZ25l
ZCBudW1fdGFrZW5fb2JqZWN0czsKKyNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNV
UkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KKwogICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcuYmFz
ZS5pc19lbmFibGVkKTsKICAgICBQQVNfVU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7CiAKQEAgLTE5
Myw2ICsxOTYsMTEgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsXwog
CiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAKKyNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01F
QVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kKKyAgICBudW1fdG90YWxfb2JqZWN0cyA9IDA7CisgICAg
bnVtX3Rha2VuX29iamVjdHMgPSAwOworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVB
U1VSRV9SRUZJTExfRUZGSUNJRU5DWSAqLworCiAgICAgZm9yIChpbmRleCA9IGZ1bGxfYWxsb2Nf
Yml0cy53b3JkX2luZGV4X2JlZ2luOyBpbmRleCA8IGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4
X2VuZDsgKytpbmRleCkgewogICAgICAgICB1bnNpZ25lZCBmdWxsOwogICAgICAgICB1bnNpZ25l
ZCBhbGxvYzsKQEAgLTIwMiw2ICsyMTAsMTIgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQgcGFzX2xvY2FsXwogICAgICAgICBhbGxvYyA9IGFsbG9jX2JpdHNbaW5kZXhdOwogICAgICAg
ICBmcmVlID0gZnVsbCAmIH5hbGxvYzsKICAgICAgICAgKCh1bnNpZ25lZCopYWxsb2NhdG9yLT5i
aXRzKVtpbmRleF0gPSBmcmVlOworCisjaWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JF
RklMTF9FRkZJQ0lFTkNZCisgICAgICAgIG51bV90b3RhbF9vYmplY3RzICs9IF9fYnVpbHRpbl9w
b3Bjb3VudChmdWxsKTsKKyAgICAgICAgbnVtX3Rha2VuX29iamVjdHMgKz0gX19idWlsdGluX3Bv
cGNvdW50KGZyZWUpOworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJ
TExfRUZGSUNJRU5DWSAqLworICAgICAgICAKICAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7
CiAgICAgICAgIGFsbG9jX2JpdHNbaW5kZXhdID0gYWxsb2MgfCBmdWxsOwogICAgICAgICBzd2l0
Y2ggKHZpZXdfa2luZCkgewpAQCAtMjQzLDYgKzI1NywxNSBAQCBzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdm9pZCBwYXNfbG9jYWxfCiAgICAgICAgIH0KICAgICB9CiAKKyNpZiBQQVNfTE9DQUxf
QUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kKKyAgICBQQVNfQVNTRVJUKG51bV90
YWtlbl9vYmplY3RzIDw9IG51bV90b3RhbF9vYmplY3RzKTsKKworICAgIHBhc19sb2NhbF9hbGxv
Y2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja19sb2NrKCk7CisgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9zdW0gKz0gKGRvdWJsZSludW1fdGFrZW5fb2JqZWN0cyAv
IChkb3VibGUpbnVtX3RvdGFsX29iamVjdHM7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZp
bGxfZWZmaWNpZW5jeV9uKys7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNp
ZW5jeV9sb2NrX3VubG9jaygpOworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VS
RV9SRUZJTExfRUZGSUNJRU5DWSAqLworCiAgICAgaWYgKHBhZ2VfY29uZmlnLnVzZV9yZXZlcnNl
ZF9jdXJyZW50X3dvcmQpIHsKICAgICAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy52YXJpYW50
ID09IHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQpOwogICAgICAgICBh
bGxvY2F0b3ItPmN1cnJlbnRfd29yZCA9IHBhc19yZXZlcnNlNjQoYWxsb2NhdG9yLT5iaXRzW2N1
cnJlbnRfb2Zmc2V0XSk7CkBAIC0yNjIsNyArMjg1LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQgcGFzX2xvY2FsXwogICAgIHN3aXRjaCAodmlld19raW5kKSB7CiAgICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICBwYWdlLT5udW1fbm9u
X2VtcHR5X3dvcmRzID0KLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICAg
ICAmZGlyZWN0b3J5LT5kYXRhKS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOwogICAgICAgICBi
cmVhazsKICAgICAgICAgCkBAIC0yODAsNyArMzAzLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHZvaWQKIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2ZyZWVfYml0cyhwYXNfbG9jYWxf
YWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kIHZpZXdfa2luZCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2b2lkKiB2aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50cHRyX3QgcGFnZV9ib3VuZGFyeSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2Nv
bmZpZykKQEAgLTMwNCw3ICszMjcsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9mcmVl
X2JpdHMocGFzCiAKICAgICAgICAgYmVnaW5fb2Zmc2V0ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9v
ZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCgKICAgICAgICAgICAgIHBh
Z2UsIGRpcmVjdG9yeSwgcGFnZV9jb25maWcpOwotICAgICAgICBlbmRfb2Zmc2V0ID0gcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoCisg
ICAgICAgIGVuZF9vZmZzZXQgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0
cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgJmRpcmVjdG9yeS0+ZGF0YSktPm9mZnNldF9m
cm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0OwogCiAgICAgICAgIGJlZ2lu
X29mZnNldCA9IFBBU19CSVRWRUNUT1JfV09SRDY0X0lOREVYKApAQCAtMzUzLDcgKzM3Niw3IEBA
IHBhc19sb2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90b19hbGxvY2F0ZSgKICAgICBwYXNfc2VncmVn
YXRlZF92aWV3X2tpbmQgdmlld19raW5kLAogICAgIHZvaWQqIHZpZXcsCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZSogcGFnZSwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewogICAg
IHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKQEAgLTM3NSw3ICszOTgsNyBAQCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxsb2NhdGUoCiAgICAgaWYgKHZpZXdfa2lu
ZCA9PSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kICYmICFwYWdlLT5udW1fbm9u
X2VtcHR5X3dvcmRzKSB7CiAgICAgICAgIHVpbnRwdHJfdCBwYXlsb2FkX2JlZ2luOwogICAgICAg
ICB1aW50cHRyX3QgcGF5bG9hZF9lbmQ7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kYXRhKiBkYXRhOwogCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAg
cGFzX2xvZygiUmVmaWxsaW5nIHdpdGggYnVtcC5cbiIpOwpAQCAtMzgzLDcgKzQwNiw3IEBAIHBh
c19sb2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90b19hbGxvY2F0ZSgKICAgICAgICAgaWYgKHBhZ2Vf
Y29uZmlnLmJhc2UucGFnZV9zaXplID4gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemUpCiAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbnN0YWxsX2Z1bGxfdXNl
X2NvdW50cygocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqKXZpZXcpOwogCi0gICAgICAg
IGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9h
ZF9ub25fbnVsbCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0
YSk7CiAgICAgICAgIAogICAgICAgICBwYXlsb2FkX2JlZ2luID0gcGFnZV9ib3VuZGFyeSArIGRh
dGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0OwogICAgICAgICBw
YXlsb2FkX2VuZCA9IHBhZ2VfYm91bmRhcnkgKyBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5k
YXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKQEAgLTM5OCw2ICs0MjEsMTMgQEAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9wcmVwYXJlX3RvX2FsbG9jYXRlKAogICAgICAgICBtZW1jcHkocGFnZS0+YWxs
b2NfYml0cywgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9sb2FkX25vbl9udWxsKCZk
YXRhLT5mdWxsX2FsbG9jX2JpdHMpLAogICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfbnVtX2FsbG9jX2J5dGVzKHBhZ2VfY29uZmlnKSk7CiAKKyNpZiBQQVNfTE9DQUxf
QUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kKKyAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9sb2NrX2xvY2soKTsKKyAgICAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9zdW0rKzsKKyAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZWZpbGxfZWZmaWNpZW5jeV9uKys7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0
b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja191bmxvY2soKTsKKyNlbmRpZiAvKiBQQVNfTE9DQUxf
QUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KKyAgICAgICAgCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgCkBAIC01MzIsNyArNTYyLDcgQEAgc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIGJvb2wKIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2NhdGluZ19pbl9w
cmltb3JkaWFsX3BhcnRpYWxfdmlldygKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0
b3IsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiB2aWV3LAotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnksCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKQEAgLTgyMSw4ICs4NTEsNyBAQCBQQVNfQVBJIGJvb2wgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZWZpbGxfCiAKIFBBU19BUEkgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2Zp
bmlzaF9yZWZpbGxfd2l0aF9iaXRmaXQoCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2Nh
dG9yLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJl
Y3RvcnksCi0gICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIGJvb2wKIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY29uZmlnKApA
QCAtODM4LDE0ICs4NjcsMTUgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93
bl9jbwogICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
b2xkX3BhZ2U7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogbmV3X3BhZ2U7Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZTsK
KyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUqIGNhY2hlX25vZGU7CiAgICAgYm9vbCBk
aWRfaW5pdGlhbGl6ZV9iaXRmaXQ7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcq
IGV4Y2x1c2l2ZTsKICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWw7CiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHNoYXJlZDsKICAgICBib29sIGVuYWJsZV9z
ZWdyZWdhdGVkOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlOwogCiAgICAgUEFT
X1VOVVNFRF9QQVJBTShjb3VudHMpOwogCkBAIC04NTYsNyArODg2LDcgQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jbwogICAgIGlmIChza2lwX2JpdGZpdCkKICAgICAg
ICAgUEFTX0FTU0VSVChlbmFibGVfc2VncmVnYXRlZCk7CiAgICAgCi0gICAgc2l6ZV9kaXJlY3Rv
cnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoYWxsb2Nh
dG9yLT52aWV3KTsKKyAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyk7CiAgICAgZGlyZWN0b3J5ID0gJnNpemVf
ZGlyZWN0b3J5LT5iYXNlOwogCiAgICAgaWYgKHZlcmJvc2UpIHsKQEAgLTg3NywxMCArOTA3LDkg
QEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jbwogICAgICAgICBwYXNf
Yml0Zml0X2FsbG9jYXRvcl9hc3NlcnRfcmVzZXQoYml0Zml0KTsKICAgICB9CiAKLSAgICBpZiAo
IWFsbG9jYXRvci0+ZGlydHkgJiYgdmVyYm9zZSkKKyAgICBpZiAoIWFsbG9jYXRvci0+c2NhdmVu
Z2VyX2RhdGEuZGlydHkgJiYgdmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygiVXNpbmcgYWxsb2Nh
dG9yICVwXG4iLCBhbGxvY2F0b3IpOwotICAgIGFsbG9jYXRvci0+ZGlydHkgPSB0cnVlOwotICAg
IGFsbG9jYXRvci0+c2hvdWxkX3N0b3BfY291bnQgPSAwOworICAgIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3JfYWxsb2NhdGlvbigmYWxsb2NhdG9yLT5zY2F2
ZW5nZXJfZGF0YSk7CiAgICAgCiAgICAgaWYgKHBhc19zY2F2ZW5nZXJfZGlkX2NyZWF0ZV9lbGln
aWJsZSgpKSB7CiAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xv
Y2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKSA9PSBwYXNfbG9ja19pc19ub3RfaGVsZCkKQEAgLTg5
Nyw3ICs5MjYsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvCiAg
ICAgICAgIG9sZF9wYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkoCiAgICAg
ICAgICAgICAodm9pZCopcGFzX2xvY2FsX2FsbG9jYXRvcl9wYWdlX2JvdW5kYXJ5KGFsbG9jYXRv
ciwgcGFnZV9jb25maWcpLCBwYWdlX2NvbmZpZyk7CiAgICAgICAgIG9sZF92aWV3ID0gb2xkX3Bh
Z2UtPm93bmVyOwotICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZl
X2lzaChvbGRfdmlldykpIHsKKyAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX3Nv
bWVfZXhjbHVzaXZlKG9sZF92aWV3KSkgewogICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX3NoYXJlZF9oYW5kbGUob2xkX3ZpZXcpKTsKICAgICAgICAgICAgIG9s
ZF92aWV3ID0gYWxsb2NhdG9yLT52aWV3OwogICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX3BhcnRpYWwob2xkX3ZpZXcpKTsKQEAgLTkxOCwzNCArOTQ3LDI5IEBA
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY28KICAgICAgICAgY291bnRz
LT5zbG93X3JlZmlsbHMrKzsKICNlbmRpZiAvKiBQQVNfRU5BQkxFX1RFU1RJTkcgKi8KIAotICAg
IG1hZ2F6aW5lID0gTlVMTDsKKyAgICBjYWNoZSA9IE5VTEw7CisgICAgY2FjaGVfbm9kZSA9IE5V
TEw7CiAgICAgCiAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5
KHBhZ2VfY29uZmlnKSkgewotICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZTsK
LSAgICAgICAgCiAgICAgICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0
KCk7CiAgICAgICAgIAogICAgICAgICBpZiAoY2FjaGUpIHsKKyAgICAgICAgICAgIGNhY2hlX25v
ZGUgPSBjYWNoZS0+bm9kZTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgLyogRG9pbmcgdGhp
cyBoZXJlIGhhcyBzb21lIHNwZWNpYWwgcHJvcGVydGllcy4gRm9yIGV4YW1wbGUsIGl0IGRvZXNu
J3QgcHJldmVudCBmYXN0IHJldXNlCiAgICAgICAgICAgICAgICBvZiB0aGUgcGFnZSB3ZSBqdXN0
IGZpbmlzaGVkIGFsbG9jYXRpbmcgb3V0IG9mLiAqLwogICAgICAgICAgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnNfaWZfbmVjZXNzYXJ5KAogICAgICAgICAg
ICAgICAgIGNhY2hlLCBhbGxvY2F0b3IsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKICAgICAgICAg
fQotCi0gICAgICAgIC8qIE5PVEU6IFRoaXMgaXMgcmFjeSwgYW5kIHRoYXQncyBPSy4gTWFnYXpp
bmVzIGFyZSBkZXNpZ25lZCBzbyB0aGF0IGlmIGEgdGhyZWFkIGFjY2Vzc2VzIGl0Ci0gICAgICAg
ICAgIGZyb20gdGhlIHdyb25nIGNvcmUgdGhlbiB0aGUgd29yc3QgdGhpbmcgdGhhdCB3aWxsIGhh
cHBlbiBpcyBhIGJpdCBvZiBjb250ZW50aW9uLiAqLwotICAgICAgICBtYWdhemluZSA9IHBhc19h
bGxfbWFnYXppbmVzX2dldF9jdXJyZW50KCk7CiAgICAgfQogCiAgICAgaWYgKHZlcmJvc2UpIHsK
ICAgICAgICAgcGFzX2xvZygib2xkX3ZpZXcgPSAlcC5cbiIsIG9sZF92aWV3KTsKICAgICAgICAg
aWYgKG9sZF92aWV3KSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCIgICAgc2hvdWxkIHJlc3RhcnQg
PSAlZCwgaW5kZXggPSAlenUsIGZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkID0gJXp1Llxu
IiwKLSAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19zaG91bGRfcmVzdGFy
dChvbGRfdmlldywgbWFnYXppbmUpLAorICAgICAgICAgICAgcGFzX2xvZygiICAgIGluZGV4ID0g
JXp1LCBmaXJzdF9lbGlnaWJsZSA9ICV6dS5cbiIsCiAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KG9sZF92aWV3KSwKICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZSgKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KG9sZF92
aWV3KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9m
aXJzdF9lbGlnaWJsZV9idXRfbm90X3RhYmxlZF9raW5kKS52YWx1ZSk7CisgICAgICAgICAgICAg
ICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkob2xkX3Zp
ZXcpLT5iYXNlKS52YWx1ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTk2OSwzOCArOTkzLDE0
IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY28KICAgICAgICAgICAg
IG5ld19wYWdlID0gb2xkX3BhZ2U7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGV4Y2x1c2l2
ZSA9IChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcHRyKG5ld192aWV3KTsKLQotICAgICAgICAgICAgZ290byByZXN0YXJ0X2V4Y2x1c2l2ZTsK
LSAgICAgICAgfQotCi0gICAgICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tp
bmQ6IHsKLSAgICAgICAgICAgIGlmIChtYWdhemluZSkgewotICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2luZzsKLSAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgYmlhc2luZyA9IChwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cihvbGRfdmlldyk7Ci0gICAgICAgICAg
ICAgICAgYmlhc2luZ19kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdf
ZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgICAgICAgICAmYmlhc2lu
Zy0+ZGlyZWN0b3J5KTsKLSAgICAgICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnlfbWFnYXppbmVfaW5kZXgoYmlhc2luZ19kaXJlY3RvcnkpCi0gICAgICAgICAg
ICAgICAgICAgID09IG1hZ2F6aW5lLT5tYWdhemluZV9pbmRleCkgewotICAgICAgICAgICAgICAg
ICAgICB1aW50NjRfdCBlcG9jaDsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIG5ld192aWV3ID0gb2xkX3ZpZXc7Ci0gICAgICAgICAgICAgICAgICAgIG5ld19wYWdl
ID0gb2xkX3BhZ2U7Ci0KLSAgICAgICAgICAgICAgICAgICAgZXBvY2ggPSBwYXNfZ2V0X2Vwb2No
KCk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBwYXNfYmlhc2lu
Z19kaXJlY3RvcnlfZGlkX3VzZV9pbmRleCgKLSAgICAgICAgICAgICAgICAgICAgICAgICZiaWFz
aW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBiaWFzaW5nLT5pbmRleCwgZXBvY2gpOwotCi0g
ICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZSA9Ci0gICAgICAgICAgICAgICAgICAgICAgICBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZF9ub25f
bnVsbCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYmlhc2luZy0+ZXhjbHVzaXZlKTsK
LSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gcmVzdGFydF9l
eGNsdXNpdmU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgICAgIHBhc19sb2coIlJlc3RhcnRpbmcgb24gc2FtZSBwYWdlIGFzIGJlZm9yZS5cbiIpOwor
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3do
aWxlX2luZWxpZ2libGUoCisgICAgICAgICAgICAgICAgbmV3X3BhZ2UsICZoZWxkX2xvY2ssIGNh
Y2hlX25vZGUsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgICAgIG5ld19wYWdlLT5vd25lciA9IHBh
c19zZWdyZWdhdGVkX3ZpZXdfYXNfaW5lbGlnaWJsZShuZXdfdmlldyk7CisgICAgICAgICAgICBu
ZXdfcGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2RlZmVycmVkID0gZmFs
c2U7CisgICAgICAgICAgICBnb3RvIHByZXBhcmVfZXhjbHVzaXZlOwogICAgICAgICB9CiAKICAg
ICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDogewpAQCAtMTAyNCwy
OCArMTAyNCw4NSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvCiAg
ICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkZpbmRpbmcgYSBkaWZmZXJlbnQgcGFn
ZS5cbiIpOwogCisgICAgbmV3X3ZpZXcgPSBOVUxMOworICAgIG5ld19wYWdlID0gTlVMTDsKKyAg
ICAKICAgICBpZiAoZW5hYmxlX3NlZ3JlZ2F0ZWQpIHsKLSAgICAgICAgbmV3X3ZpZXcgPSBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZShzaXpl
X2RpcmVjdG9yeSwgbWFnYXppbmUpOwotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
IHBhc19sb2coIkdvdCBhIG5ldyB2aWV3ICVwXG4iLCBuZXdfdmlldyk7Ci0gICAgICAgIGlmIChu
ZXdfdmlldykKLSAgICAgICAgICAgIG5ld192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld193aWxs
X3N0YXJ0X2FsbG9jYXRpbmcobmV3X3ZpZXcsIHBhZ2VfY29uZmlnKTsKLSAgICAgICAgaWYgKHZl
cmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coIkFuZCBhZnRlciB3aWxsX3N0YXJ0IGdvdCBh
IG5ldyB2aWV3ICVwLCBwYWdlID0gJXAsIGJvdW5kYXJ5ID0gJXBcbiIsCi0gICAgICAgICAgICAg
ICAgICAgIG5ld192aWV3LAotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9wYWdlKG5ld192aWV3KSwKLSAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfcGFnZV9ib3VuZGFyeShuZXdfdmlldykpOworICAgICAgICBib29sIGRpZF9nZXRf
dmlldzsKKworICAgICAgICBkaWRfZ2V0X3ZpZXcgPSBmYWxzZTsKKworICAgICAgICBpZiAocGFn
ZV9jb25maWcuZW5hYmxlX3ZpZXdfY2FjaGUgJiYgY2FjaGUpIHsKKyAgICAgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVzdWx0IHZpZXdfY2FjaGVfcmVzdWx0OworCisgICAgICAgICAgICBQ
QVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2VfY29u
ZmlnKSk7CisKKyAgICAgICAgICAgIHZpZXdfY2FjaGVfcmVzdWx0ID0gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yKAorICAgICAgICAgICAgICAgIGNhY2hlLCBzaXpl
X2RpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworICAg
ICAgICAgICAgY2FjaGUgPSBOVUxMOyAvKiBUaGUgY2FjaGUgY291bGQgaGF2ZSBiZWVuIHJlc2l6
ZWQsIHNvIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoaXMgcG9pbnRlcgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhbnltb3JlLiAqLworICAgICAgICAgICAgaWYgKHZpZXdfY2FjaGVfcmVz
dWx0LmRpZF9zdWNjZWVkKSB7CisgICAgICAgICAgICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGUq
IHZpZXdfY2FjaGU7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgdmlld19jYWNo
ZSA9IChwYXNfbG9jYWxfdmlld19jYWNoZSopdmlld19jYWNoZV9yZXN1bHQuYWxsb2NhdG9yOwor
CisgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCF2aWV3X2NhY2hlLT5zY2F2ZW5n
ZXJfZGF0YS5pc19pbl91c2UpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHZp
ZXdfY2FjaGUtPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IHRydWU7CisgICAgICAgICAgICAg
ICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisKKyAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91c2VfZm9yX2FsbG9jYXRpb24oJnZpZXdfY2FjaGUt
PnNjYXZlbmdlcl9kYXRhKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAo
IXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2VtcHR5KHZpZXdfY2FjaGUpKSB7CisgICAgICAgICAg
ICAgICAgICAgIG5ld192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfdmll
dyhwYXNfbG9jYWxfdmlld19jYWNoZV9wb3Aodmlld19jYWNoZSkpOworICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUobmV3X3ZpZXcpKTsKKyAgICAgICAgICAgICAgICAg
ICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfb3duZWQobmV3X3Zp
ZXcpKTsKKyAgICAgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNfc2VncmVn
YXRlZF92aWV3X2lzX2VsaWdpYmxlKG5ld192aWV3KSk7CisgICAgICAgICAgICAgICAgICAgIFBB
U19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlKG5ld192aWV3KS0+
aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xv
ZygiJXAsIGE9JXAsIHZjPSVwOiBHb3QgZnJvbSBjYWNoZSAoJXUpLlxuIiwgY2FjaGVfbm9kZSwg
YWxsb2NhdG9yLCB2aWV3X2NhY2hlLCBhbGxvY2F0b3ItPm9iamVjdF9zaXplKTsKKyAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGRpZF9nZXRfdmlldyA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7
CisgICAgICAgICAgICAgICAgdmlld19jYWNoZS0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0g
ZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZF9nZXRf
dmlldykgeworICAgICAgICAgICAgbmV3X3ZpZXcgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKHNpemVfZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIkdvdCBhIG5ldyB2aWV3ICVwXG4i
LCBuZXdfdmlldyk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VCghcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZShuZXdfdmlldykpOworICAgICAgICAg
ICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUobmV3X3ZpZXcpKSB7
CisgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAorICAgICAgICAgICAgICAgICAg
ICAhcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19vd25lZChuZXdfdmlldykKKyAgICAgICAgICAgICAg
ICAgICAgfHwgIXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2UobmV3X3ZpZXcpLT5pc19pbl91
c2VfZm9yX2FsbG9jYXRpb24pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAobmV3
X3ZpZXcpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvZygiJXAsICVwOiBHb3QgZnJvbSBkaXJlY3RvcnkgKCV1KS5cbiIsIGNhY2hlX25v
ZGUsIGFsbG9jYXRvciwgYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSk7CisgICAgICAgICAgICAgICAg
bmV3X3ZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X3dpbGxfc3RhcnRfYWxsb2NhdGluZyhuZXdf
dmlldywgcGFnZV9jb25maWcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHZlcmJv
c2UpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJBbmQgYWZ0ZXIgd2lsbF9zdGFydCBnb3Qg
YSBuZXcgdmlldyAlcCwgcGFnZSA9ICVwLCBib3VuZGFyeSA9ICVwXG4iLAorICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3X3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9wYWdlKG5ld192aWV3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfYm91bmRhcnkobmV3X3ZpZXcpKTsKKyAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0
b3JfZmluaXNoX3JlZmlsbF93aXRoX2JpdGZpdChhbGxvY2F0b3IsIHNpemVfZGlyZWN0b3J5LCBt
YWdhemluZSk7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfZmluaXNoX3JlZmlsbF93aXRo
X2JpdGZpdChhbGxvY2F0b3IsIHNpemVfZGlyZWN0b3J5KTsKICAgICAgICAgaWYgKHZlcmJvc2Up
CiAgICAgICAgICAgICBwYXNfbG9nKCJpbml0aWFsaXplZCBiaXRmaXQhXG4iKTsKICAgICAgICAg
ZGlkX2luaXRpYWxpemVfYml0Zml0ID0gdHJ1ZTsKLSAgICAgICAgbmV3X3ZpZXcgPSBOVUxMOwog
ICAgIH0KIAotICAgIG5ld19wYWdlID0gTlVMTDsKLSAgICAKICAgICAvKiBBdCB0aGlzIHBvaW50
IHdlIG5lZWQgdG8gZ2V0IHRoZSBwYWdlLiBXZSBjYW4ndCBkbyB0aGF0IGZvciBwcmltb3JkaWFs
IHBhcnRpYWwgdmlld3MsCiAgICAgICAgdGhvdWdoLiAqLwogICAgIApAQCAtMTA3MCwxNCArMTEy
NywxNCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvCiAKICAgICBQ
QVNfQVNTRVJUKGVuYWJsZV9zZWdyZWdhdGVkKTsKIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF92
aWV3X2lzX2V4Y2x1c2l2ZV9pc2gobmV3X3ZpZXcpKSB7CisgICAgaWYgKHBhc19zZWdyZWdhdGVk
X3ZpZXdfaXNfc29tZV9leGNsdXNpdmUobmV3X3ZpZXcpKSB7CiAgICAgICAgIGV4Y2x1c2l2ZSA9
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShuZXdfdmlldyk7CiAgICAgICAgIG5l
d19wYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkoZXhjbHVzaXZlLT5wYWdl
X2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyk7CiAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9z
d2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2luZWxpZ2libGUoCi0gICAg
ICAgICAgICBuZXdfcGFnZSwgJmhlbGRfbG9jaywgbWFnYXppbmUsIHBhZ2VfY29uZmlnKTsKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3doaWxlX2lu
ZWxpZ2libGUoCisgICAgICAgICAgICBuZXdfcGFnZSwgJmhlbGRfbG9jaywgY2FjaGVfbm9kZSwg
cGFnZV9jb25maWcpOwogCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmll
d19kaWRfc3RhcnRfYWxsb2NhdGluZygKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfZGlkX3N0YXJ0X2FsbG9jYXRpbmcoCiAgICAgICAgICAgICBleGNsdXNpdmUsIG5ld192
aWV3LCBzaXplX2RpcmVjdG9yeSwgbmV3X3BhZ2UsICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsK
ICAgICAgICAgZ290byBwcmVwYXJlX2V4Y2x1c2l2ZTsKICAgICB9CkBAIC0xMTA2LDE0ICsxMTYz
LDYgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9jbwogICAgIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlld19kaWRfc3RhcnRfYWxsb2NhdGluZyhwYXJ0aWFsLCBzaGFy
ZWQsIHBhZ2VfY29uZmlnKTsKICAgICBnb3RvIHByZXBhcmVfcGFydGlhbDsKICAgICAKLXJlc3Rh
cnRfZXhjbHVzaXZlOgotICAgIGlmICh2ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJSZXN0YXJ0
aW5nIG9uIHNhbWUgcGFnZSBhcyBiZWZvcmUuXG4iKTsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfdG9fbWFnYXppbmVfd2hpbGVfaW5lbGlnaWJsZSgKLSAg
ICAgICAgbmV3X3BhZ2UsICZoZWxkX2xvY2ssIG1hZ2F6aW5lLCBwYWdlX2NvbmZpZyk7Ci0gICAg
bmV3X3BhZ2UtPm93bmVyID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19hc19pbmVsaWdpYmxlKG5ld192
aWV3KTsKLSAgICBuZXdfcGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2Rl
ZmVycmVkID0gZmFsc2U7Ci0gICAgCiBwcmVwYXJlX2V4Y2x1c2l2ZToKICAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxsb2NhdGUoCiAgICAgICAgIGFsbG9jYXRvciwgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZCwgZXhjbHVzaXZlLCBuZXdfcGFnZSwgc2l6ZV9k
aXJlY3RvcnksCkBAIC0xMTcwLDcgKzEyMTksOCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JldHVy
bl9tZW1vcnlfdG9fcGFnCiAgICAgb2JqZWN0ID0gZGF0YS0+cGFnZV9ib3VuZGFyeSArIHBhc19w
YWdlX2Jhc2Vfb2JqZWN0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfYXRfaW5kZXgoCiAgICAg
ICAgICh1bnNpZ25lZClpbmRleC5pbmRleCwgZGF0YS0+cGFnZV9jb25maWcuYmFzZSk7CiAKLSAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKGRhdGEtPnBhZ2UsIG9i
amVjdCwgZGF0YS0+cGFnZV9jb25maWcpOworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxv
Y2F0ZV93aXRoX3BhZ2UoCisgICAgICAgIGRhdGEtPnBhZ2UsIG9iamVjdCwgcGFzX3NlZ3JlZ2F0
ZWRfZGVhbGxvY2F0aW9uX2RpcmVjdF9tb2RlLCBOVUxMLCBkYXRhLT5wYWdlX2NvbmZpZyk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTExNzksNyArMTIyOSw3IEBAIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSB2b2lkCiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JldHVybl9tZW1vcnlfdG9fcGFn
ZShwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xv
Y2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZp
ZykKIHsKQEAgLTExOTQsOCArMTI0NCw2IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmV0dXJuX21l
bW9yeV90b19wYWcKIAogICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcuYmFzZS5pc19lbmFibGVk
KTsKIAotICAgIHBhZ2UtPmF2b2lkX2xpbmVfYWxsb2NhdG9yID0gdHJ1ZTsKLQogICAgIGlmICgh
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpCiAgICAg
ICAgIHBhc19sb2NrX2Fzc2VydF9oZWxkKHBhZ2UtPmxvY2tfcHRyKTsKIApAQCAtMTIxOCw4ICsx
MjY2LDEwIEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmV0dXJuX21lbW9yeV90b19wYWcKICAgICAg
ICAgYmVnaW4gPSBhbGxvY2F0b3ItPnBheWxvYWRfZW5kIC0gYWxsb2NhdG9yLT5yZW1haW5pbmc7
CiAgICAgICAgIGVuZCA9IGFsbG9jYXRvci0+cGF5bG9hZF9lbmQ7CiAgICAgICAgIAotICAgICAg
ICBmb3IgKG9iamVjdCA9IGJlZ2luOyBvYmplY3QgPCBlbmQ7IG9iamVjdCArPSBvYmplY3Rfc2l6
ZSkKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2Uo
cGFnZSwgb2JqZWN0LCBwYWdlX2NvbmZpZyk7CisgICAgICAgIGZvciAob2JqZWN0ID0gYmVnaW47
IG9iamVjdCA8IGVuZDsgb2JqZWN0ICs9IG9iamVjdF9zaXplKSB7CisgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKAorICAgICAgICAgICAgICAgIHBh
Z2UsIG9iamVjdCwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2RpcmVjdF9tb2RlLCBOVUxM
LCBwYWdlX2NvbmZpZyk7CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgaWYgKGFsbG9jYXRv
ci0+Y3VycmVudF9vZmZzZXQgPT0gYWxsb2NhdG9yLT5lbmRfb2Zmc2V0KQpAQCAtMTMxMSwxOCAr
MTM2MSwyNCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV93aXRoX2ZyCiAgICAg
aWYgKFBBU19VTkxJS0VMWSghY3VycmVudF93b3JkKSkgewogICAgICAgICB1bnNpZ25lZCBlbmRf
b2Zmc2V0OwogCisgICAgICAgIGVuZF9vZmZzZXQgPSBhbGxvY2F0b3ItPmVuZF9vZmZzZXQ7CisK
ICAgICAgICAgaWYgKHVzZV9jdXJyZW50X3dvcmQpIHsKICAgICAgICAgICAgIGlmIChhbGxvY2F0
b3ItPmNvbmZpZ19raW5kCiAgICAgICAgICAgICAgICAgIT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9j
b25maWdfa2luZF9jcmVhdGVfbm9ybWFsKHBhZ2VfY29uZmlnLmtpbmQpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgY3VycmVudF9vZmZzZXQgPSBhbGxvY2F0b3ItPmN1cnJlbnRf
b2Zmc2V0OworICAgICAgICAgICAgaWYgKGN1cnJlbnRfb2Zmc2V0ID49IGVuZF9vZmZzZXQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVy
ZSgpOwogICAgICAgICAgICAgCisgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoY3VycmVu
dF9vZmZzZXQgPCBQQVNfQklUVkVDVE9SX05VTV9XT1JEUzY0KHBhZ2VfY29uZmlnLm51bV9hbGxv
Y19iaXRzKSk7CisKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBh
c19sb2coIlplcm9pbmcgJXBcbiIsIGFsbG9jYXRvci0+Yml0cyArIGN1cnJlbnRfb2Zmc2V0KTsK
ICAgICAgICAgICAgIGFsbG9jYXRvci0+Yml0c1tjdXJyZW50X29mZnNldF0gPSAwOwogICAgICAg
ICB9CiAgICAgICAgIAotICAgICAgICBlbmRfb2Zmc2V0ID0gYWxsb2NhdG9yLT5lbmRfb2Zmc2V0
OwotCiAgICAgICAgIGRvIHsKICAgICAgICAgICAgICsrY3VycmVudF9vZmZzZXQ7CiAgICAgICAg
ICAgICBwYWdlX2lzaCArPSA2NCA8PCBwYWdlX2NvbmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdDsK
QEAgLTEzNjksNyArMTQyNSw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3dp
dGhfZnIKICAgICAgICAgcGFzX2xvZygKICAgICAgICAgICAgICIlcCglcCk6IFJldHVybmluZyBy
ZXN1bHQgdXNpbmcgZnJlZSBiaXRzOiAlcC5cbiIsCiAgICAgICAgICAgICBhbGxvY2F0b3IsCi0g
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnko
YWxsb2NhdG9yLT52aWV3KSwKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3Np
emVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyksCiAgICAgICAgICAgICAodm9pZCopcmVzdWx0
KTsKICAgICB9CiAgICAgCkBAIC0xMzk0LDcgKzE0NTAsMTEgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGVfaW5saW5lXwogICAgIAogICAgIGlmIChyZW1haW5pbmcpIHsKICAgICAg
ICAgdWludHB0cl90IHJlc3VsdDsKKworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAg
IHBhc19sb2coInBheWxvYWRfZW5kID0gJXBcbiIsIGFsbG9jYXRvci0+cGF5bG9hZF9lbmQpOwog
ICAgICAgICAKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGFsbG9jYXRvci0+cGF5bG9hZF9l
bmQpOwogICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQocmVtYWluaW5nIC0gb2JqZWN0X3NpemUg
PCBhbGxvY2F0b3ItPnJlbWFpbmluZyk7CiAgICAgICAgIAogICAgICAgICAvKiBUaGlzIGlzIHRo
ZSBmYXN0ZXN0IGZhc3QgcGF0aCBmb3IgYWxsb2NhdGlvbi4gSXQgd2lsbCBoYXBwZW4gaWY6CkBA
IC0xNDU4LDE2ICsxNTE4LDE3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2Nh
dGlvbl8KIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0ZWRf
c2xvdygKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgcGFzX2hlYXBf
Y29uZmlnIGNvbmZpZywKLSAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKQorICAgIHBh
c19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2Zp
bHRlciByZXN1bHRfZmlsdGVyKQogewogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7
CiAKICAgICByZXN1bHQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9z
ZWdyZWdhdGVkX3Nsb3dfaW1wbChhbGxvY2F0b3IsIGNvbmZpZywgY291bnRzKTsKIAogICAgIHBh
c19jb21waWxlcl9mZW5jZSgpOwotICAgIGFsbG9jYXRvci0+aXNfaW5fdXNlID0gZmFsc2U7Cisg
ICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSBmYWxzZTsKIAotICAgIHJl
dHVybiByZXN1bHQ7CisgICAgcmV0dXJuIHJlc3VsdF9maWx0ZXIocmVzdWx0KTsKIH0KIAogc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQKQEAg
LTE1OTQsNyArMTY1NSw4IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3co
cGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyBjb25m
aWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3Jf
Y291bnRzKiBjb3VudHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcikKIHsK
ICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwogCkBAIC0xNjAyLDkgKzE2NjQsNDcg
QEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc2xvdyhwYQogICAgICAgICBhbGxv
Y2F0b3IsIHNpemUsIGFsaWdubWVudCwgY29uZmlnLCBjb3VudHMpOwogCiAgICAgcGFzX2NvbXBp
bGVyX2ZlbmNlKCk7Ci0gICAgYWxsb2NhdG9yLT5pc19pbl91c2UgPSBmYWxzZTsKKyAgICBhbGxv
Y2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IGZhbHNlOwogCi0gICAgcmV0dXJuIHJl
c3VsdDsKKyAgICByZXR1cm4gcmVzdWx0X2ZpbHRlcihyZXN1bHQpOworfQorCitzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfbG9jYWxfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZV9pbmxpbmVfb25seShwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3Is
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9j
b25maWcgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKQoreworICAgIHN0
YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1
bHQgcmVzdWx0OworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygiQWxsb2Nh
dG9yICVwICglcykgYWxsb2NhdGluZyBpbmxpbmUgb25seS5cbiIsCisgICAgICAgICAgICAgICAg
YWxsb2NhdG9yLCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxs
b2NhdG9yLT5jb25maWdfa2luZCkpOworICAgIH0KKyAgICAKKyAgICBhbGxvY2F0b3ItPnNjYXZl
bmdlcl9kYXRhLmlzX2luX3VzZSA9IHRydWU7CisgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisK
KyAgICByZXN1bHQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9pbmxpbmVfY2Fz
ZXMoYWxsb2NhdG9yLCBjb25maWcpOworICAgIGlmIChyZXN1bHQuZGlkX3N1Y2NlZWQpIHsKKyAg
ICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgICAgIGFsbG9jYXRvci0+c2NhdmVuZ2Vy
X2RhdGEuaXNfaW5fdXNlID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBpZiAodmVyYm9zZSkg
eworICAgICAgICAgICAgcGFzX2xvZygiQWxsb2NhdG9yICVwICglcykgYWxsb2NhdGVkICVwIChp
bmxpbmUgY2FzZXMpLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9j
YWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5jb25maWdfa2lu
ZCksCisgICAgICAgICAgICAgICAgICAgICh2b2lkKilyZXN1bHQuYmVnaW4pOworICAgICAgICB9
CisgICAgCisgICAgICAgIHJldHVybiByZXN1bHRfZmlsdGVyKAorICAgICAgICAgICAgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzX3dpdGhfemVyb19tb2RlKHJlc3VsdC5iZWdp
biwgcmVzdWx0Lnplcm9fbW9kZSkpOworICAgIH0KKworICAgIHBhc19jb21waWxlcl9mZW5jZSgp
OworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gZmFsc2U7CisKKyAg
ICAvKiBOT1RFOiBJdCdzIGludGVudGlvbmFsIHRoYXQgd2Ugb25seSBhcHBseSB0aGUgcmVzdWx0
IGZpbHRlciBvbiB0aGUgc3VjY2VzcyBjYXNlLiAqLworICAgIHJldHVybiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdApAQCAtMTYxMywxMiArMTcxMywxMyBAQCBwYXNfbG9jYWxf
YWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShwYXNfbG9jCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2b2lkKiBzaXplX3RodW5rX2FyZywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cykKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0
ZXIpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAKLSAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9j
YXRvci0+aXNfaW5fdXNlKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+c2Nh
dmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKIAogICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAgIHBh
c19sb2coIkFsbG9jYXRvciAlcCAoJXMpIGFsbG9jYXRpbmcgc2l6ZSA9ICV6dSwgYWxpZ25tZW50
ID0gJXp1LlxuIiwKQEAgLTE2MjYsMTMgKzE3MjcsMTMgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGUocGFzX2xvYwogICAgICAgICAgICAgICAgIHNpemVfdGh1bmsoc2l6ZV90aHVu
a19hcmcpLCBhbGlnbm1lbnQpOwogICAgIH0KICAgICAKLSAgICBhbGxvY2F0b3ItPmlzX2luX3Vz
ZSA9IHRydWU7CisgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVl
OwogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogCiAgICAgcmVzdWx0ID0gcGFzX2xvY2FsX2Fs
bG9jYXRvcl90cnlfYWxsb2NhdGVfaW5saW5lX2Nhc2VzKGFsbG9jYXRvciwgY29uZmlnKTsKICAg
ICBpZiAocmVzdWx0LmRpZF9zdWNjZWVkKSB7CiAgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgp
OwotICAgICAgICBhbGxvY2F0b3ItPmlzX2luX3VzZSA9IGZhbHNlOworICAgICAgICBhbGxvY2F0
b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IGZhbHNlOwogICAgICAgICAKICAgICAgICAg
aWYgKHZlcmJvc2UpIHsKICAgICAgICAgICAgIHBhc19sb2coIkFsbG9jYXRvciAlcCAoJXMpIGFs
bG9jYXRlZCAlcCAoaW5saW5lIGNhc2VzKS5cbiIsCkBAIC0xNjQwLDcgKzE3NDEsOCBAQCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShwYXNfbG9jCiAgICAgICAgICAgICAgICAgICAg
ICh2b2lkKilyZXN1bHQuYmVnaW4pOwogICAgICAgICB9CiAgICAgCi0gICAgICAgIHJldHVybiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96ZXJvX21vZGUocmVzdWx0
LmJlZ2luLCByZXN1bHQuemVyb19tb2RlKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdF9maWx0ZXIo
CisgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Nfd2l0aF96
ZXJvX21vZGUocmVzdWx0LmJlZ2luLCByZXN1bHQuemVyb19tb2RlKSk7CiAgICAgfQogCiAgICAg
aWYgKGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQgJiYKQEAg
LTE2NTMsMzIgKzE3NTUsMTggQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFz
X2xvYwogICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3Jf
Y29uZmlnX2tpbmRfZ2V0X3N0cmluZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSk7CiAgICAgICAg
IH0KIAotICAgICAgICByZXR1cm4gY29uZmlnLnNwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9zbG93KAotICAgICAgICAgICAgYWxsb2NhdG9y
LCBjb3VudHMpOworICAgICAgICByZXN1bHQgPSBjb25maWcuc3BlY2lhbGl6ZWRfbG9jYWxfYWxs
b2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zZWdyZWdhdGVkX3Nsb3coCisgICAgICAgICAgICBh
bGxvY2F0b3IsIGNvdW50cywgcmVzdWx0X2ZpbHRlcik7CisgICAgICAgIGlmICh2ZXJib3NlKQor
ICAgICAgICAgICAgcGFzX2xvZygiaW4gc21hbGwgc2VncmVnYXRlZCBzbG93IHJldHVybiAtIHJl
c3VsdC5iZWdpbiA9ICVwXG4iLCAodm9pZCopcmVzdWx0LmJlZ2luKTsKKyAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CiAKICAgICByZXN1bHQgPSBjb25maWcuc3BlY2lhbGl6ZWRfbG9jYWxf
YWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbG93KAotICAgICAgICBhbGxvY2F0b3IsIHNpemVfdGh1
bmsoc2l6ZV90aHVua19hcmcpLCBhbGlnbm1lbnQsIGNvdW50cyk7Ci0gICAgaWYgKHJlc3VsdC5k
aWRfc3VjY2VlZCkgewotICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLQotICAgICAgICBp
ZiAodmVyYm9zZSkgewotICAgICAgICAgICAgcGFzX2xvZygiQWxsb2NhdG9yICVwICglcykgYWxs
b2NhdGVkICVwIChzbG93KS5cbiIsCi0gICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFz
X2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9nZXRfc3RyaW5nKGFsbG9jYXRvci0+Y29uZmln
X2tpbmQpLAotICAgICAgICAgICAgICAgICAgICAodm9pZCopcmVzdWx0LmJlZ2luKTsKLSAgICAg
ICAgfQotICAgIAotICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9z
dWNjZXNzX3dpdGhfemVyb19tb2RlKHJlc3VsdC5iZWdpbiwgcmVzdWx0Lnplcm9fbW9kZSk7Ci0g
ICAgfQotCi0gICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgCi0gICAgaWYgKHZlcmJvc2Up
IHsKLSAgICAgICAgcGFzX2xvZygiQWxsb2NhdG9yICVwICglcykgZmFpbGVkLlxuIiwKLSAgICAg
ICAgICAgICAgICBhbGxvY2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0
X3N0cmluZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSk7Ci0gICAgfQotICAgIAotICAgIHJldHVy
biBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKyAgICAgICAgYWxsb2Nh
dG9yLCBzaXplX3RodW5rKHNpemVfdGh1bmtfYXJnKSwgYWxpZ25tZW50LCBjb3VudHMsIHJlc3Vs
dF9maWx0ZXIpOworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJpbiBnZW5lcmlj
IHJldHVybiAtIHJlc3VsdC5iZWdpbiA9ICVwXG4iLCAodm9pZCopcmVzdWx0LmJlZ2luKTsKKyAg
ICByZXR1cm4gcmVzdWx0OwogfQogCiBQQVNfRU5EX0VYVEVSTl9DOwpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9j
YXRvcl9raW5kLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFBBU19MT0NBTF9BTExPQ0FUT1JfS0lORAorI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NB
VE9SX0tJTkQKKworI2luY2x1ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7
CisKK2VudW0gcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIHsKKyAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2FsbG9jYXRvcl9raW5kLAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9r
aW5kCit9OworCit0eXBlZGVmIGVudW0gcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfa2luZDsKKworc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBwYXNfbG9jYWxf
YWxsb2NhdG9yX2tpbmRfZ2V0X3N0cmluZyhwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQga2luZCkK
K3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxs
b2NhdG9yX2tpbmQ6CisgICAgICAgIHJldHVybiAiYWxsb2NhdG9yIjsKKyAgICBjYXNlIHBhc19s
b2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kOgorICAgICAgICByZXR1cm4gInZpZXdfY2Fj
aGUiOworICAgIH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Cisg
ICAgcmV0dXJuIE5VTEw7Cit9CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNf
TE9DQUxfQUxMT0NBVE9SX0tJTkQgKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmgJKHJl
dmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3JfbGluZS5oCShub25leGlzdGVudCkKQEAgLTEsMTE0ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNf
TE9DQUxfQUxMT0NBVE9SX0xJTkVfSAotI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX0xJTkVf
SAotCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCIKLQotUEFTX0JFR0lO
X0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lOwotdHlwZWRlZiBz
dHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZTsK
LQotc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZSB7Ci0gICAgdWludDE2X3QgZW5jb2Rl
ZF9yZW1haW5pbmc7Ci0gICAgdWludDE2X3QgZW5jb2RlZF9wYXlsb2FkX2VuZF9kZWx0YTsKLX07
Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19sb2NhbF9hbGxvY2F0b3JfbGlu
ZV9maXRzX3dpdGhvdXRfc2hpZnQoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFn
ZV9jb25maWcpCi17Ci0gICAgc2l6ZV90IG1heF9wYWdlX29mZnNldDsKLSAgICBzaXplX3Qgc2hp
ZnRlZDsKLQotICAgIG1heF9wYWdlX29mZnNldCA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXpl
IC0gMTsKLQotICAgIGlmICgodWludDE2X3QpbWF4X3BhZ2Vfb2Zmc2V0ID09IG1heF9wYWdlX29m
ZnNldCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBzaGlmdGVkID0gbWF4X3BhZ2Vfb2Zm
c2V0ID4+IHBhZ2VfY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0OwotCi0gICAgUEFTX0FTU0VS
VCgodWludDE2X3Qpc2hpZnRlZCA9PSBzaGlmdGVkKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
LXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5l
X2RlY29kZSh1aW50MTZfdCB2YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
ZyBwYWdlX2NvbmZpZykKLXsKLSAgICBpZiAocGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX2ZpdHNf
d2l0aG91dF9zaGlmdChwYWdlX2NvbmZpZykpCi0gICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICBy
ZXR1cm4gKHNpemVfdCl2YWx1ZSA8PCBwYWdlX2NvbmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdDsK
LX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVpbnQxNl90IHBhc19sb2NhbF9hbGxvY2F0
b3JfbGluZV9lbmNvZGUoc2l6ZV90IHZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0gICAgdWludDE2X3QgZW5jb2RlZDsKLSAgICAKLSAg
ICBpZiAocGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX2ZpdHNfd2l0aG91dF9zaGlmdChwYWdlX2Nv
bmZpZykpCi0gICAgICAgIGVuY29kZWQgPSAodWludDE2X3QpdmFsdWU7Ci0gICAgZWxzZQotICAg
ICAgICBlbmNvZGVkID0gKHVpbnQxNl90KSh2YWx1ZSA+PiBwYWdlX2NvbmZpZy5iYXNlLm1pbl9h
bGlnbl9zaGlmdCk7Ci0KLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX2xvY2FsX2FsbG9jYXRv
cl9saW5lX2RlY29kZShlbmNvZGVkLCBwYWdlX2NvbmZpZykgPT0gdmFsdWUpOwotCi0gICAgcmV0
dXJuIGVuY29kZWQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBzaXplX3QgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9saW5lX3JlbWFpbmluZygKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2xp
bmUgbGluZSwKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsK
LSAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX2RlY29kZShsaW5lLmVuY29kZWRf
cmVtYWluaW5nLCBwYWdlX2NvbmZpZyk7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9zZXRfcmVtYWluaW5nKAotICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3JfbGluZSogbGluZSwKLSAgICBzaXplX3QgcmVtYWluaW5nLAotICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAgIGxpbmUtPmVuY29kZWRf
cmVtYWluaW5nID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX2VuY29kZShyZW1haW5pbmcsIHBh
Z2VfY29uZmlnKTsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdCBwYXNfbG9j
YWxfYWxsb2NhdG9yX2xpbmVfcGF5bG9hZF9lbmRfZGVsdGEoCi0gICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9saW5lIGxpbmUsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25m
aWcpCi17Ci0gICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9kZWNvZGUobGluZS5l
bmNvZGVkX3BheWxvYWRfZW5kX2RlbHRhLCBwYWdlX2NvbmZpZyk7Ci19Ci0KLXN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9zZXRfcGF5bG9hZF9l
bmRfZGVsdGEoCi0gICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lKiBsaW5lLAotICAgIHNpemVf
dCBwYXlsb2FkX2VuZF9kZWx0YSwKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdl
X2NvbmZpZykKLXsKLSAgICBsaW5lLT5lbmNvZGVkX3BheWxvYWRfZW5kX2RlbHRhID0gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9saW5lX2VuY29kZShwYXlsb2FkX2VuZF9kZWx0YSwgcGFnZV9jb25maWcp
OwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRP
Ul9MSU5FX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxs
b2NhdG9yX3Jlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxNSArMzAsMTMgQEAKIAogUEFT
X0JFR0lOX0VYVEVSTl9DOwogCi1zdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcjsKIHN0cnVjdCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdDsKLXR5cGVkZWYgc3RydWN0IHBhc19sb2NhbF9hbGxv
Y2F0b3IgcGFzX2xvY2FsX2FsbG9jYXRvcjsKIHR5cGVkZWYgc3RydWN0IHBhc19sb2NhbF9hbGxv
Y2F0b3JfcmVzdWx0IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0OwogCiAvKiBUaGlzIGV4aXN0
cyB0byBhbGxvdyBqdW1wLXRocmVhZGluZyBvZiBzdWNjZXNzLiAqLwogc3RydWN0IHBhc19sb2Nh
bF9hbGxvY2F0b3JfcmVzdWx0IHsKICAgICBib29sIGRpZF9zdWNjZWVkOwotICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKKyAgICB2b2lkKiBhbGxvY2F0b3I7IC8qIENvdWxkIHJl
YWxseSBiZSBhIGxvY2FsX2FsbG9jYXRvciBvciBhIGxvY2FsX3ZpZXdfY2FjaGUuICovCiB9Owog
CiBzdGF0aWMgaW5saW5lIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBhc19sb2NhbF9hbGxv
Y2F0b3JfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKHZvaWQpCkBAIC00OSw3ICs0Nyw3IEBAIHN0YXRp
YyBpbmxpbmUgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1zdGF0aWMgaW5saW5lIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBhc19sb2NhbF9h
bGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9j
YXRvcikKK3N0YXRpYyBpbmxpbmUgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3Modm9pZCogYWxsb2NhdG9yKQogewogICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHJlc3VsdDsKICAgICByZXN1bHQuZGlkX3N1Y2Nl
ZWQgPSB0cnVlOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEu
Ywkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAicGFzX2NvbmZpZy5oIgorCisjaWYgTElCUEFTX0VOQUJMRUQKKworI2luY2x1ZGUg
InBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCIKKworI2luY2x1ZGUgInBhc19s
b2NhbF9hbGxvY2F0b3IuaCIKKyNpbmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNoZS5oIgorCit1
aW50OF90IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hvdWxkX3N0b3BfY291bnRfZm9yX3N1c3BlbmQg
PSA1OworCitib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZl
KHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpCit7CisgICAgc3dpdGNo
IChkYXRhLT5raW5kKSB7CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9r
aW5kOgorICAgICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19hY3RpdmUoKHBhc19s
b2NhbF9hbGxvY2F0b3IqKWRhdGEpOworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3
X2NhY2hlX2tpbmQ6CisgICAgICAgIHJldHVybiAhcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1w
dHkoKHBhc19sb2NhbF92aWV3X2NhY2hlKilkYXRhKTsKKyAgICB9CisgICAgUEFTX0FTU0VSVCgh
IlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCisgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKKyAgICBwYXNfbG9ja19sb2NrX21vZGUgcGFn
ZV9sb2NrX21vZGUsCisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUp
Cit7CisgICAgc3dpdGNoIChkYXRhLT5raW5kKSB7CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2FsbG9jYXRvcl9raW5kOgorICAgICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9z
dG9wKChwYXNfbG9jYWxfYWxsb2NhdG9yKilkYXRhLCBwYWdlX2xvY2tfbW9kZSwgaGVhcF9sb2Nr
X2hvbGRfbW9kZSk7CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2lu
ZDoKKyAgICAgICAgcmV0dXJuIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3AoKHBhc19sb2NhbF92
aWV3X2NhY2hlKilkYXRhLCBwYWdlX2xvY2tfbW9kZSk7CisgICAgfQorICAgIFBBU19BU1NFUlQo
ISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNlbmRp
ZiAvKiBMSUJQQVNfRU5BQkxFRCAqLworCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfTE9DQUxfQUxMT0NBVE9SX1NDQVZFTkdFUl9EQVRB
X0gKKyNkZWZpbmUgUEFTX0xPQ0FMX0FMTE9DQVRPUl9TQ0FWRU5HRVJfREFUQV9ICisKKyNpbmNs
dWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCIKKyNpbmNsdWRlICJwYXNfbG9jay5oIgor
CitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhOworCisvKiBUaGlzIHNob3Vs
ZCBqdXN0IGJlIDMyLWJpdC4gKi8KK3N0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhIHsKKyAgICBib29sIGlzX2luX3VzZTsKKyAgICB1aW50OF90IHNob3VsZF9zdG9wX2Nv
dW50OworICAgIGJvb2wgZGlydHk7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIGtpbmQg
OiA4OworfTsKKworI2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX1NDQVZFTkdFUl9EQVRBX0lO
SVRJQUxJWkVSKHBhc3NlZF9raW5kKSBcCisgICAgKChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhKXsgXAorICAgICAgICAgLmlzX2luX3VzZSA9IGZhbHNlLCBcCisgICAgICAgICAu
c2hvdWxkX3N0b3BfY291bnQgPSAwLCBcCisgICAgICAgICAuZGlydHkgPSBmYWxzZSwgXAorICAg
ICAgICAgLmtpbmQgPSAocGFzc2VkX2tpbmQpIFwKKyAgICAgfSkKKworUEFTX0FQSSBleHRlcm4g
dWludDhfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5k
OworCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YV9jb25zdHJ1Y3QocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQga2luZCkKK3sKKyAgICAqZGF0YSA9IFBBU19M
T0NBTF9BTExPQ0FUT1JfU0NBVkVOR0VSX0RBVEFfSU5JVElBTElaRVIoa2luZCk7Cit9CisKK3N0
YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91
c2VfZm9yX2FsbG9jYXRpb24oCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YSogZGF0YSkKK3sKKyAgICBkYXRhLT5kaXJ0eSA9IHRydWU7CisgICAgZGF0YS0+c2hvdWxkX3N0
b3BfY291bnQgPSAwOworfQorCitQQVNfQVBJIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YV9pc19hY3RpdmUocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSog
ZGF0YSk7CisKK1BBU19BUEkgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
X3N0b3AoCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKKyAg
ICBwYXNfbG9ja19sb2NrX21vZGUgcGFnZV9sb2NrX21vZGUsCisgICAgcGFzX2xvY2tfaG9sZF9t
b2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYg
LyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9TQ0FWRU5HRVJfREFUQV9IICovCisKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdf
Y2FjaGUuYwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfdmlld19jYWNoZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTI3IEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRl
ICJwYXNfY29uZmlnLmgiCisKKyNpZiBMSUJQQVNfRU5BQkxFRAorCisjaW5jbHVkZSAicGFzX2xv
Y2FsX3ZpZXdfY2FjaGUuaCIKKworI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIK
KyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgorCit2b2lkIHBhc19s
b2NhbF92aWV3X2NhY2hlX2NvbnN0cnVjdChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGNhcGFjaXR5KQorewor
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29uc3RydWN0KAorICAgICAg
ICAmY2FjaGUtPnNjYXZlbmdlcl9kYXRhLCBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVf
a2luZCk7CisgICAgCisgICAgY2FjaGUtPmNhcGFjaXR5ID0gY2FwYWNpdHk7CisgICAgY2FjaGUt
PmJvdHRvbV9pbmRleCA9IDA7CisgICAgY2FjaGUtPnRvcF9pbmRleCA9IDA7CisgICAgY2FjaGUt
PmlzX2Z1bGwgPSBmYWxzZTsKKworICAgIGlmIChQQVNfRU5BQkxFX1RFU1RJTkcpIHsKKyAgICAg
ICAgdWludDhfdCBpbmRleDsKKworICAgICAgICBmb3IgKGluZGV4ID0gY2FwYWNpdHk7IGluZGV4
LS07KQorICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19w
dHJfc3RvcmUoY2FjaGUtPnZpZXdzICsgaW5kZXgsIE5VTEwpOworICAgIH0KK30KKwordm9pZCBw
YXNfbG9jYWxfdmlld19jYWNoZV9tb3ZlKHBhc19sb2NhbF92aWV3X2NhY2hlKiBkZXN0aW5hdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfdmlld19jYWNoZSog
c291cmNlKQoreworICAgIG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBQQVNfTE9DQUxfVklF
V19DQUNIRV9TSVpFKHNvdXJjZS0+Y2FwYWNpdHkpKTsKK30KKworc3RhdGljIGJvb2wgc3RvcF9p
bXBsKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9ja19sb2NrX21vZGUgcGFnZV9sb2NrX21vZGUpCit7CisgICAgcGFzX2xvY2sqIGhlbGRf
bG9jazsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnOworICAgIAorICAgIGRpcmVj
dG9yeSA9IE5VTEw7CisgICAgcGFnZV9jb25maWcgPSAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcpeyB9OworICAgIGhlbGRfbG9jayA9IE5VTEw7CisgICAgCisgICAgd2hpbGUgKCFwYXNfbG9j
YWxfdmlld19jYWNoZV9pc19lbXB0eShjYWNoZSkpIHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcqIGNhY2hlZF92aWV3OworICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
KiBwYWdlOworICAgICAgICBib29sIHNob3VsZF9ub3RpZnlfZWxpZ2liaWxpdHk7CisgICAgICAg
IAorICAgICAgICBjYWNoZWRfdmlldyA9IHBhc19sb2NhbF92aWV3X2NhY2hlX3BvcChjYWNoZSk7
CisgICAgICAgIAorICAgICAgICBpZiAoZGlyZWN0b3J5KSB7CisgICAgICAgICAgICBQQVNfQVNT
RVJUKAorICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWRfbm9uX251bGwoJmNhY2hlZF92aWV3LT5kaXJlY3RvcnkpCisgICAgICAgICAg
ICAgICAgPT0gZGlyZWN0b3J5KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRpcmVj
dG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoJmNhY2hlZF92aWV3LT5kaXJlY3RvcnkpOworICAgICAgICAgICAgcGFnZV9jb25maWcg
PSAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+
YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcGFn
ZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KGNhY2hlZF92aWV3LT5wYWdlX2Jv
dW5kYXJ5LCBwYWdlX2NvbmZpZyk7CisgICAgICAgIAorICAgICAgICBpZiAoIXBhc19zZWdyZWdh
dGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9tb2RlKHBhZ2UsICZoZWxkX2xvY2ssIHBhZ2VfbG9j
a19tb2RlLCBwYWdlX2NvbmZpZykpIHsKKyAgICAgICAgICAgIFBBU19BU1NFUlQoIXBhc19sb2Nh
bF92aWV3X2NhY2hlX2lzX2Z1bGwoY2FjaGUpKTsKKyAgICAgICAgICAgIHBhc19sb2NhbF92aWV3
X2NhY2hlX3B1c2goY2FjaGUsIGNhY2hlZF92aWV3KTsKKyAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2hvdWxkX25vdGlmeV9lbGlnaWJpbGl0
eSA9IHRydWU7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdG9w
X2FsbG9jYXRpbmcoCisgICAgICAgICAgICBjYWNoZWRfdmlldywgZGlyZWN0b3J5LCBwYWdlLCBw
YWdlX2NvbmZpZywgc2hvdWxkX25vdGlmeV9lbGlnaWJpbGl0eSk7CisgICAgfQorCisgICAgcGFz
X2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgIHJldHVybiB0cnVlOworfQorCiti
b29sIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3AocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2tfbW9kZSBwYWdl
X2xvY2tfbW9kZSkKK3sKKyAgICBib29sIHJlc3VsdDsKKworICAgIFBBU19BU1NFUlQoIWNhY2hl
LT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOworCisgICAgY2FjaGUtPnNjYXZlbmdlcl9kYXRh
LmlzX2luX3VzZSA9IHRydWU7CisgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisKKyAgICByZXN1
bHQgPSBzdG9wX2ltcGwoY2FjaGUsIHBhZ2VfbG9ja19tb2RlKTsKKworICAgIGlmIChyZXN1bHQp
CisgICAgICAgIGNhY2hlLT5zY2F2ZW5nZXJfZGF0YS5zaG91bGRfc3RvcF9jb3VudCA9IDA7CisK
KyAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKyAgICBjYWNoZS0+c2NhdmVuZ2VyX2RhdGEuaXNf
aW5fdXNlID0gZmFsc2U7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisjZW5kaWYgLyogTElC
UEFTX0VOQUJMRUQgKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xvY2FsX3ZpZXdfY2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwxNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfTE9DQUxfVklFV19DQUNIRV9ICisjZGVm
aW5lIFBBU19MT0NBTF9WSUVXX0NBQ0hFX0gKKworI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmgiCisjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRv
cl9zY2F2ZW5nZXJfZGF0YS5oIgorI2luY2x1ZGUgInBhc19sb2NrLmgiCisjaW5jbHVkZSAicGFz
X2xvZy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0cnVjdCBwYXNfbG9jYWxfdmlld19j
YWNoZTsKK3R5cGVkZWYgc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlIHBhc19sb2NhbF92aWV3
X2NhY2hlOworCitzdHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGUgeworICAgIHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEgc2NhdmVuZ2VyX2RhdGE7CisgICAgdWludDhfdCBjYXBh
Y2l0eTsKKyAgICAvKiBib3R0b21faW5kZXggYW5kIHRvcF9pbmRleCBtdXN0IGJlIDwgY2FwYWNp
dHkuICovCisgICAgdWludDhfdCBib3R0b21faW5kZXg7CisgICAgdWludDhfdCB0b3BfaW5kZXg7
CisgICAgYm9vbCBpc19mdWxsOworICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfcHRyIHZpZXdzWzFdOworfTsKKworI2RlZmluZSBQQVNfTE9DQUxfVklFV19DQUNIRV9T
SVpFKGNhcGFjaXR5KSBcCisgICAgUEFTX1JPVU5EX1VQX1RPX1BPV0VSX09GXzIoKFBBU19PRkZT
RVRPRihwYXNfbG9jYWxfdmlld19jYWNoZSwgdmlld3MpICsgXAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVvZihwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X3B0cikgKiAoY2FwYWNpdHkpKSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVvZih1aW50NjRfdCkpCisKK1BBU19BUEkgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9jb25z
dHJ1Y3QocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGNhcGFjaXR5KTsKKworc3RhdGljIGlubGlu
ZSBib29sIHBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2VtcHR5KHBhc19sb2NhbF92aWV3X2NhY2hl
KiBjYWNoZSkKK3sKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPmJvdHRvbV9pbmRleCA8
IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hlLT50b3BfaW5k
ZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBBU19URVNUSU5HX0FTU0VSVCghY2FjaGUtPmlz
X2Z1bGwgfHwgY2FjaGUtPmJvdHRvbV9pbmRleCA9PSBjYWNoZS0+dG9wX2luZGV4KTsKKworICAg
IHJldHVybiBjYWNoZS0+dG9wX2luZGV4ID09IGNhY2hlLT5ib3R0b21faW5kZXggJiYgIWNhY2hl
LT5pc19mdWxsOworfQorCitzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3KiBwYXNfbG9jYWxfdmlld19jYWNoZV9wb3AocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hl
KQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICBzdGF0aWMg
Y29uc3QgYm9vbCB0YWtlX2ZpcnN0ID0gdHJ1ZTsgLyogSWYgc2V0dGluZyB0aGlzIHRvIGZhbHNl
IHdhcyBwcm9maXRhYmxlLCB0aGVuIHRoaXMgd291bGQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYmUgd3JpdHRlbiBhcyBhIHN0YWNrLiBJIGtlZXAgdGhpcyBv
cHRpb24gaGVyZSBqdXN0IHNvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIEkgY2FuIG9jY2FzaW9uYWxseSB0ZXN0IGlmIGl0IG1hdHRlcnMuICovCisgICAgCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHJlc3VsdDsKKyAgICB1aW50OF90IHBv
cF9pbmRleDsKKworICAgIFBBU19URVNUSU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwg
Y2FjaGUtPmNhcGFjaXR5KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRl
eCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNfbG9jYWxf
dmlld19jYWNoZV9pc19lbXB0eShjYWNoZSkpOworCisgICAgaWYgKHRha2VfZmlyc3QpIHsKKyAg
ICAgICAgdWludDhfdCBib3R0b21faW5kZXg7CisgICAgICAgIHVpbnQ4X3QgbmV4dF9ib3R0b21f
aW5kZXg7CisKKyAgICAgICAgYm90dG9tX2luZGV4ID0gY2FjaGUtPmJvdHRvbV9pbmRleDsKKyAg
ICAgICAgbmV4dF9ib3R0b21faW5kZXggPSBib3R0b21faW5kZXggKyAxOworICAgICAgICBpZiAo
bmV4dF9ib3R0b21faW5kZXggPj0gY2FjaGUtPmNhcGFjaXR5KSB7CisgICAgICAgICAgICBQQVNf
VEVTVElOR19BU1NFUlQobmV4dF9ib3R0b21faW5kZXggPT0gY2FjaGUtPmNhcGFjaXR5KTsKKyAg
ICAgICAgICAgIG5leHRfYm90dG9tX2luZGV4ID0gMDsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgcG9wX2luZGV4ID0gYm90dG9tX2luZGV4OworCisgICAgICAgIGNhY2hlLT5ib3R0b21f
aW5kZXggPSBuZXh0X2JvdHRvbV9pbmRleDsKKyAgICB9IGVsc2UgeworICAgICAgICB1aW50OF90
IHRvcF9pbmRleDsKKyAgICAgICAgCisgICAgICAgIHRvcF9pbmRleCA9IGNhY2hlLT50b3BfaW5k
ZXg7CisgICAgICAgIAorICAgICAgICBpZiAoIXRvcF9pbmRleCkKKyAgICAgICAgICAgIHRvcF9p
bmRleCA9IGNhY2hlLT5jYXBhY2l0eSAtIDE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRv
cF9pbmRleC0tOworCisgICAgICAgIHBvcF9pbmRleCA9IHRvcF9pbmRleDsKKyAgICAgICAgCisg
ICAgICAgIGNhY2hlLT50b3BfaW5kZXggPSB0b3BfaW5kZXg7CisgICAgfQorICAgIAorICAgIHJl
c3VsdCA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWRfbm9u
X251bGwoY2FjaGUtPnZpZXdzICsgcG9wX2luZGV4KTsKKyAgICAKKyAgICBpZiAoUEFTX0VOQUJM
RV9URVNUSU5HKQorICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X3B0cl9zdG9yZShjYWNoZS0+dmlld3MgKyBwb3BfaW5kZXgsIE5VTEwpOworICAgIAorICAgIGNh
Y2hlLT5pc19mdWxsID0gZmFsc2U7CisgICAgCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBh
c19sb2coIiVwOiBwb3BwZWQgJXAuXG4iLCBjYWNoZSwgcmVzdWx0KTsKKworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9pc19m
dWxsKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKK3sKKyAgICByZXR1cm4gY2FjaGUtPmlz
X2Z1bGw7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9wdXNo
KAorICAgIHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSwKKyAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlldyogdmlldykKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CisgICAgCisgICAgdWludDhfdCB0b3BfaW5kZXg7CisgICAgdWludDhfdCBuZXh0X3Rv
cF9pbmRleDsKKworICAgIFBBU19URVNUSU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwg
Y2FjaGUtPmNhcGFjaXR5KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRl
eCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNfbG9jYWxf
dmlld19jYWNoZV9pc19mdWxsKGNhY2hlKSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHZpZXcp
OworCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coIiVwOiBwdXNoaW5nICVwLlxu
IiwgY2FjaGUsIHZpZXcpOworCisgICAgdG9wX2luZGV4ID0gY2FjaGUtPnRvcF9pbmRleDsKKyAg
ICBuZXh0X3RvcF9pbmRleCA9IHRvcF9pbmRleCArIDE7CisgICAgaWYgKG5leHRfdG9wX2luZGV4
ID49IGNhY2hlLT5jYXBhY2l0eSkgeworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQobmV4dF90
b3BfaW5kZXggPT0gY2FjaGUtPmNhcGFjaXR5KTsKKyAgICAgICAgbmV4dF90b3BfaW5kZXggPSAw
OworICAgIH0KKworICAgIGlmIChuZXh0X3RvcF9pbmRleCA9PSBjYWNoZS0+Ym90dG9tX2luZGV4
KQorICAgICAgICBjYWNoZS0+aXNfZnVsbCA9IHRydWU7CisgICAgCisgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2lzX251bGwo
Y2FjaGUtPnZpZXdzICsgdG9wX2luZGV4KSk7CisKKyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X3B0cl9zdG9yZShjYWNoZS0+dmlld3MgKyB0b3BfaW5kZXgsIHZpZXcp
OworICAgIGNhY2hlLT50b3BfaW5kZXggPSBuZXh0X3RvcF9pbmRleDsKK30KKworUEFTX0FQSSB2
b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX21vdmUocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGRlc3Rp
bmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGUqIHNvdXJjZSk7CisKK1BBU19BUEkgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNo
ZV9zdG9wKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSwgcGFzX2xvY2tfbG9ja19tb2RlIHBh
Z2VfbG9ja19tb2RlKTsKKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19MT0NB
TF9WSUVXX0NBQ0hFX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYwkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmll
d19jYWNoZV9ub2RlLmMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAicGFzX2NvbmZp
Zy5oIgorCisjaWYgTElCUEFTX0VOQUJMRUQKKworI2luY2x1ZGUgInBhc19sb2NhbF92aWV3X2Nh
Y2hlX25vZGUuaCIKKworI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCisKK3Bhc19sb2Nh
bF92aWV3X2NhY2hlX25vZGUqCitwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlX2NyZWF0ZShwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19sb2NhbF92
aWV3X2NhY2hlX25vZGUqIHJlc3VsdDsKKworICAgIHJlc3VsdCA9IHBhc19pbW1vcnRhbF9oZWFw
X2FsbG9jYXRlKAorICAgICAgICBzaXplb2YocGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSksCisg
ICAgICAgICJwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlIiwKKyAgICAgICAgcGFzX29iamVjdF9h
bGxvY2F0aW9uKTsKKworICAgIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfc3RvcmUoJnJlc3VsdC0+bmV4dCwgTlVMTCk7CisgICAgcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGlyZWN0b3J5LCBk
aXJlY3RvcnkpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworI2VuZGlmIC8qIExJQlBBU19F
TkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
YWxfdmlld19jYWNoZV9ub2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25v
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChj
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0xPQ0FMX1ZJRVdfQ0FDSEVf
Tk9ERV9ICisjZGVmaW5lIFBBU19MT0NBTF9WSUVXX0NBQ0hFX05PREVfSAorCisjaW5jbHVkZSAi
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKKyNpbmNsdWRlICJw
YXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgiCisjaW5j
bHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0
cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfbm9kZSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlOworCitzdHJ1Y3QgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSB7CisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0OworICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKK307CisKK1BBU19BUEkgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfbm9kZSoKK3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGVfY3JlYXRlKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfRU5EX0VYVEVSTl9DOwor
CisjZW5kaWYgLyogUEFTX0xPQ0FMX1ZJRVdfQ0FDSEVfTk9ERV9IICovCisKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hh
c2h0YWJsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRf
cHRyX3B0cl9oYXNodGFibGUuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzMzLDEwIEBACiAj
aW5jbHVkZSAicGFzX2hhc2h0YWJsZS5oIgogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKIAor
I2lmIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09MTElTSU9O
X0NPVU5UCit1aW50NjRfdCBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGVfY29s
bGlzaW9uX2NvdW50OworI2VuZGlmIC8qIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hU
QUJMRV9FTkFCTEVfQ09MTElTSU9OX0NPVU5UICovCisKIHZvaWQgcGFzX2xvY2tfZnJlZV9yZWFk
X3B0cl9wdHJfaGFzaHRhYmxlX3NldCgKICAgICBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9o
YXNodGFibGUqIGhhc2h0YWJsZSwKICAgICB1bnNpZ25lZCAoKmhhc2hfa2V5KShjb25zdCB2b2lk
KiBrZXksIHZvaWQqIGFyZyksCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0
cl9oYXNodGFibGUuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yNiw3ICsyNiw5IEBACiAjaWZuZGVmIFBBU19MT0NLX0ZSRUVfUkVBRF9Q
VFJfUFRSX0hBU0hUQUJMRV9ICiAjZGVmaW5lIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hB
U0hUQUJMRV9ICiAKKyNpbmNsdWRlICJwYXNfbG9nLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgi
CisjaW5jbHVkZSA8dW5pc3RkLmg+CiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIApAQCAtNTIsNiAr
NTQsMTIgQEAgc3RydWN0IFBBU19BTElHTkVEKHNpemVvZihwYXNfcGFpcikpIHBhcwogICAgICAg
ICAgLnRhYmxlID0gTlVMTCBcCiAgICAgIH0pCiAKKyNkZWZpbmUgUEFTX0xPQ0tfRlJFRV9SRUFE
X1BUUl9QVFJfSEFTSFRBQkxFX0VOQUJMRV9DT0xMSVNJT05fQ09VTlQgMAorCisjaWYgUEFTX0xP
Q0tfRlJFRV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxFX0VOQUJMRV9DT0xMSVNJT05fQ09VTlQKK1BB
U19BUEkgZXh0ZXJuIHVpbnQ2NF90IHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJs
ZV9jb2xsaXNpb25fY291bnQ7CisjZW5kaWYgLyogUEFTX0xPQ0tfRlJFRV9SRUFEX1BUUl9QVFJf
SEFTSFRBQkxFX0VOQUJMRV9DT0xMSVNJT05fQ09VTlQgKi8KKwogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQqIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZV9maW5kKAog
ICAgIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZSogaGFzaHRhYmxlLAogICAg
IHVuc2lnbmVkICgqaGFzaF9rZXkpKGNvbnN0IHZvaWQqIGtleSwgdm9pZCogYXJnKSwKQEAgLTg1
LDYgKzkzLDI0IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBwYXNfbG9ja18KIAog
ICAgICAgICBpZiAobG9hZGVkX2tleSA9PSBVSU5UUFRSX01BWCkKICAgICAgICAgICAgIHJldHVy
biBOVUxMOworCisjaWYgUEFTX0xPQ0tfRlJFRV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxFX0VOQUJM
RV9DT0xMSVNJT05fQ09VTlQKKyAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgdWludDY0
X3Qgb2xkX2NvbGxpc2lvbl9jb3VudDsKKyAgICAgICAgICAgIHVpbnQ2NF90IG5ld19jb2xsaXNp
b25fY291bnQ7CisKKyAgICAgICAgICAgIG9sZF9jb2xsaXNpb25fY291bnQgPSBwYXNfbG9ja19m
cmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGVfY29sbGlzaW9uX2NvdW50OworICAgICAgICAgICAg
bmV3X2NvbGxpc2lvbl9jb3VudCA9IG9sZF9jb2xsaXNpb25fY291bnQgKyAxOworCisgICAgICAg
ICAgICBpZiAocGFzX2NvbXBhcmVfYW5kX3N3YXBfdWludDY0X3dlYWsoCisgICAgICAgICAgICAg
ICAgICAgICZwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGVfY29sbGlzaW9uX2Nv
dW50LAorICAgICAgICAgICAgICAgICAgICBvbGRfY29sbGlzaW9uX2NvdW50LCBuZXdfY29sbGlz
aW9uX2NvdW50KSkgeworICAgICAgICAgICAgICAgIGlmICghKG5ld19jb2xsaXNpb25fY291bnQg
JSAxMDAwMCkpCisgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIiVkOiBTYXcgJWxsdSBjb2xs
aXNpb25zLlxuIiwgZ2V0cGlkKCksIG5ld19jb2xsaXNpb25fY291bnQpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisjZW5kaWYgLyogUEFTX0xPQ0tf
RlJFRV9SRUFEX1BUUl9QVFJfSEFTSFRBQkxFX0VOQUJMRV9DT0xMSVNJT05fQ09VTlQgKi8KICAg
ICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdh
emluZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19tYWdhemluZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDUwICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5j
bHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBh
c19tYWdhemluZS5oIgotCi0jaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIKLQotcGFzX21h
Z2F6aW5lKiBwYXNfbWFnYXppbmVfY3JlYXRlKHVuc2lnbmVkIG1hZ2F6aW5lX2luZGV4KQotewot
ICAgIHBhc19tYWdhemluZSogcmVzdWx0OwotCi0gICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hl
YXBfYWxsb2NhdGUoCi0gICAgICAgIHNpemVvZihwYXNfbWFnYXppbmUpLAotICAgICAgICAicGFz
X21hZ2F6aW5lIiwKLSAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQotICAgIHBhc19s
b2NrX2NvbnN0cnVjdCgmcmVzdWx0LT5sb2NrKTsKLQotICAgIHJlc3VsdC0+bWFnYXppbmVfaW5k
ZXggPSBtYWdhemluZV9pbmRleDsKLQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLSNlbmRpZiAv
KiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX21hZ2F6aW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX21hZ2F6aW5lLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5oCShub25leGlzdGVudCkKQEAgLTEs
NTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpZm5kZWYgUEFTX01BR0FaSU5FX0gKLSNkZWZpbmUgUEFTX01BR0FaSU5FX0gKLQot
I2luY2x1ZGUgInBhc19sb2NrLmgiCi0jaW5jbHVkZSAicGFzX3V0aWxzLmgiCi0KLVBBU19CRUdJ
Tl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19tYWdhemluZTsKLXN0cnVjdCBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX25vZGU7Ci10eXBlZGVmIHN0cnVjdCBwYXNfbWFnYXppbmUgcGFzX21hZ2F6aW5l
OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbm9kZTsKLQotc3RydWN0IHBhc19tYWdhemluZSB7Ci0gICAgLyogVGhpcyBp
cyB0aGUgbG9jayB0aGF0IHdlIGJpYXMgcGFnZXMgdG8uCi0gICAgIAotICAgICAgIEZvciBsb2Nr
IG9yZGVyaW5nLCB3ZSBzYXkgdGhhdDoKLSAgICAKLSAgICAgICAtIE1hZ2F6aW5lIGxvY2tzIGFy
ZSBhY3F1aXJlZCBiZWZvcmUgcGFnZSBvd25lcnNoaXAgbG9ja3MuCi0gICAgCi0gICAgICAgLSBN
YWdhemluZSBsb2NrcyBhcmUgYWNxdWlyZWQgaW4gcG9pbnRlci1hcy1pbnRlZ2VyIG9yZGVyIHJl
bGF0aXZlIHRvIG9uZSBhbm90aGVyLiAqLwotICAgIHBhc19sb2NrIGxvY2s7Ci0KLSAgICAvKiBU
aGlzIGdldHMgdXNlZCBhcyBhbiBpbmRleCBpbiBiaWFzaW5nIGRpcmVjdG9yaWVzLiAqLwotICAg
IHVuc2lnbmVkIG1hZ2F6aW5lX2luZGV4OwotfTsKLQotUEFTX0FQSSBwYXNfbWFnYXppbmUqIHBh
c19tYWdhemluZV9jcmVhdGUodW5zaWduZWQgbWFnYXppbmVfaW5kZXgpOwotCi1QQVNfRU5EX0VY
VEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX01BR0FaSU5FX0ggKi8KLQpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNl
X2NvbmZpZ191dGlscy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw3IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotI2RlZmluZSBQQVNf
QkFTSUNfUEFHRV9CQVNFX0NPTkZJR19GT1JXQVJEX0RFQ0xBUkFUSU9OUyhuYW1lKSAgICAgXAor
I2RlZmluZSBQQVNfQkFTSUNfUEFHRV9CQVNFX0NPTkZJR19GT1JXQVJEX0RFQ0xBUkFUSU9OUyhu
YW1lKSBcCiAgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2UqIFwKICAg
ICBuYW1lICMjIF9wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnkpOyBcCiAg
ICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2hlYWRlcl90YWJsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2hlYWRlcl90YWJsZS5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfcGFnZV9oZWFkZXJfdGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBz
dGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19wYWdlX2hlYWRlcl90CiAKICAgICBwYWdlX3NpemUg
PSAoc2l6ZV90KWFyZzsKIAotICAgIHJldHVybiAodW5zaWduZWQpKCh1aW50cHRyX3Qpa2V5IC8g
cGFnZV9zaXplKTsKKyAgICByZXR1cm4gcGFzX2hhc2gzMigodW5zaWduZWQpKCh1aW50cHRyX3Qp
a2V5IC8gcGFnZV9zaXplKSk7CiB9CiAKIFBBU19BUEkgcGFzX3BhZ2VfYmFzZSogcGFzX3BhZ2Vf
aGVhZGVyX3RhYmxlX2FkZChwYXNfcGFnZV9oZWFkZXJfdGFibGUqIHRhYmxlLApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnQuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0y
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAx
OS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjksMTMgKzI5LDEyIEBACiAKICNpbmNsdWRlICJwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50LmgiCiAKLSNpbmNsdWRlICJwYXNfYmlhc2luZ19kaXJlY3Rvcnku
aCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJw
YXNfYml0Zml0X2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19lcG9jaC5oIgogI2luY2x1ZGUg
InBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmgiCiAj
aW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJl
Y3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCkBA
IC02Niw5ICs2NSw3IEBAIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3BheWxvYWQK
ICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX3RyeV9nZXRfc2hh
cmluZ19wYXlsb2FkKAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGFf
cHRyX2xvYWQoJigocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KilwdHIpLT5kYXRhKSk7CiAgICAg
Y2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rvcnk6Ci0gICAg
ICAgIHJldHVybiAmKChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqKXB0ciktPnBoeXNpY2Fs
X3NoYXJpbmdfcGF5bG9hZDsKLSAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
Ymlhc2luZ19kaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAmKChwYXNfYmlhc2luZ19kaXJlY3Rv
cnkqKXB0ciktPmJpYXNfc2hhcmluZ19wYXlsb2FkLmJhc2U7CisgICAgICAgIHJldHVybiAmKChw
YXNfYml0Zml0X2RpcmVjdG9yeSopcHRyKS0+cGh5c2ljYWxfc2hhcmluZ19wYXlsb2FkOwogICAg
IGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9sYXJnZV9zaGFyaW5nX3Bvb2w6CiAg
ICAgICAgIHJldHVybiAmcGFzX2xhcmdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9hZC5iYXNl
OwogICAgIH0KQEAgLTk4LDkgKzk1LDcgQEAgdWludDY0X3QgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0
aWNpcGFudF9nZQogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5OgogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2dldF91c2VfZXBvY2gocHRyKTsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfYml0Zml0X2RpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9nZXRfdXNlX2Vwb2NoKHB0cik7Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gKChwYXNfYmlh
c2luZ19kaXJlY3RvcnkqKXB0ciktPmJpYXNfc2hhcmluZ19wYXlsb2FkLnVzZV9lcG9jaDsKKyAg
ICAgICAgcmV0dXJuIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF91c2VfZXBvY2gocHRyKTsKICAg
ICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbGFyZ2Vfc2hhcmluZ19wb29sOgog
ICAgICAgICByZXR1cm4gcGFzX2xhcmdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9hZC51c2Vf
ZXBvY2g7CiAgICAgfQpAQCAtMTI5LDggKzEyNCw2IEBAIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfZ2V0X3BhcmVudF8KICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeToKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeToKICAgICAgICAgcmV0dXJuICZwYXNfcGh5c2ljYWxf
cGFnZV9zaGFyaW5nX3Bvb2w7Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50
X2JpYXNpbmdfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2dldF9zaGFyaW5nX3Bvb2wocHRyKTsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfbGFyZ2Vfc2hhcmluZ19wb29sOgogICAgICAgICByZXR1cm4gJnBhc19waHlzaWNhbF9w
YWdlX3NoYXJpbmdfcG9vbDsKICAgICB9CkBAIC0xNTIsOSArMTQ1LDcgQEAgYm9vbCBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50X2lzX2VsaQogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OgogICAgICAgICByZXR1cm4gISFw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2xhc3RfZW1wdHlfcGx1c19vbmUocHRyKS52YWx1
ZTsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9y
eToKLSAgICAgICAgcmV0dXJuICEhKChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqKXB0cikt
Pmxhc3RfZW1wdHlfcGx1c19vbmUudmFsdWU7Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gISFwYXNfYmlhc2lu
Z19kaXJlY3RvcnlfdW51c2VkX3NwYW5fc2l6ZShwdHIpOworICAgICAgICByZXR1cm4gISEoKHBh
c19iaXRmaXRfZGlyZWN0b3J5KilwdHIpLT5sYXN0X2VtcHR5X3BsdXNfb25lLnZhbHVlOwogICAg
IGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9sYXJnZV9zaGFyaW5nX3Bvb2w6CiAg
ICAgICAgIHJldHVybiAhIXBhc19sYXJnZV9zaGFyaW5nX21pbl9oZWFwX2luc3RhbmNlLnNpemU7
CiAgICAgfQpAQCAtMTc5LDcgKzE3MCw3IEBAIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
dGFrZV9sZWFzdF8KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAKICAgICBjYXNlIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeToKLSAg
ICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2xh
c3RfZW1wdHkoCisgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90
YWtlX2xhc3RfZW1wdHkoCiAgICAgICAgICAgICBwdHIsIGRlY29tbWl0X2xvZywgaGVhcF9sb2Nr
X2hvbGRfbW9kZSk7CiAKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2Vn
cmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnk6CkBAIC0xODksMTIgKzE4MCw3IEBAIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfdGFrZV9sZWFzdF8KIAogICAgIGNhc2UgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5OgogICAgICAgICBQQVNfQVNTRVJU
KGRlY29tbWl0X2xvZyk7Ci0gICAgICAgIHJldHVybiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnlfdGFrZV9sYXN0X2VtcHR5KHB0ciwgZGVjb21taXRfbG9nLCBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKLSAgICAgICAgCi0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNp
bmdfZGlyZWN0b3J5OgotICAgICAgICBQQVNfQVNTRVJUKCFkZWNvbW1pdF9sb2cpOwotICAgICAg
ICBQQVNfQVNTRVJUKGhlYXBfbG9ja19ob2xkX21vZGUgPT0gcGFzX2xvY2tfaXNfbm90X2hlbGQp
OwotICAgICAgICByZXR1cm4gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfbGFzdF91bnVzZWQo
cHRyKTsKKyAgICAgICAgcmV0dXJuIHBhc19iaXRmaXRfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0
eShwdHIsIGRlY29tbWl0X2xvZywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAgICAgIAogICAg
IGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9sYXJnZV9zaGFyaW5nX3Bvb2w6CiAg
ICAgICAgIFBBU19BU1NFUlQoZGVjb21taXRfbG9nKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNjUsNyArNjUsOSBAQCBzdHJ1Y3QgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXls
CiAgICAgICAgCiAgICAgICAgSWYgdGhpcyBpcyB0cnVlIHRoZW46CiAgICAgICAgCi0gICAgICAg
LSB3ZSBtdXN0IGJlIHRyYWNrZWQgYXMgYSBkZWx0YS4gKi8KKyAgICAgICAtIHdlIG11c3QgYmUg
dHJhY2tlZCBhcyBhIGRlbHRhLgorICAgIAorICAgICAgIEZJWE1FOiBUaGVyZSdzIGEgcHJldHR5
IG9idmlvdXMgc2l6ZSB3aW4gdG8gYmUgaGFkIGp1c3QgZnJvbSByZW1vdmluZyB0aGlzIGZpZWxk
LiAqLwogICAgIGJvb2wgZGVsdGFfaGFzX2JlZW5fbm90ZWQ7CiB9OwogCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tp
bmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
cGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9raW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDYgQEAgZW51bSBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2tpbmQgewogICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBh
bnRfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnksCiAgICAgcGFzX3BhZ2Vfc2hhcmlu
Z19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LAogICAgIHBhc19wYWdlX3No
YXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeSwKLSAgICBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5LAogICAgIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfbGFyZ2Vfc2hhcmluZ19wb29sCiB9OwogCkBAIC00OSwxNCArNDgsMTAgQEAgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kX3NlbGVjdAogICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9raW5kIGRpcmVjdG9yeV9raW5kKQogewogICAgIHN3aXRjaCAoZGlyZWN0b3J5
X2tpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9r
aW5kOgorICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfa2luZDoKICAgICAg
ICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeTsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9r
aW5kOgogICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdh
dGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IHVzZSBz
ZWdyZWdhdGVkIGJpYXNpbmcgZGlyZWN0b3JpZXMgYXMgc2hhcmluZyBwYXJ0aWNpcGFudHMgZXhj
ZXB0ICIKLSAgICAgICAgICAgICAgICAgICAidmlhIHRoZSBiaWFzaW5nIGRpcmVjdG9yeSBiYXNl
Iik7Ci0gICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X251bGw7CiAg
ICAgfQogICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKICAgICByZXR1
cm4gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9udWxsOwpAQCAtNzQsOCArNjksNiBAQCBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmRfZ2V0X3N0CiAgICAgICAgIHJldHVybiAi
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSI7CiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rvcnk6CiAgICAgICAgIHJldHVybiAiYml0Zml0X2RpcmVj
dG9yeSI7Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGly
ZWN0b3J5OgotICAgICAgICByZXR1cm4gImJpYXNpbmdfZGlyZWN0b3J5IjsKICAgICBjYXNlIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbGFyZ2Vfc2hhcmluZ19wb29sOgogICAgICAgICBy
ZXR1cm4gImxhcmdlX3NoYXJpbmdfcG9vbCI7CiAgICAgfQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmMJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19wYWdlX3NoYXJpbmdfcG9vbC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzM5LDE2ICs3MzksMTkg
QEAgdm9pZCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZQogICAgIGF0b21pY19h
ZGRfYmFsYW5jZShiYWxhbmNlX2FkZGVuZCk7CiB9CiAKLXBhc19wYWdlX3NoYXJpbmdfcG9vbF90
YWtlX3Jlc3VsdAorcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdAogcGFzX3Bo
eXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlKHVpbnQ2NF90IG1heF9lcG9jaCkKIHsK
ICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCisKICAgICBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgdGFrZV9yZXN1bHQ7CiAgICAgcGFzX3BoeXNp
Y2FsX21lbW9yeV90cmFuc2FjdGlvbiB0cmFuc2FjdGlvbjsKKyAgICBzaXplX3QgdG90YWxfYnl0
ZXM7CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkRvaW5nIHNjYXZl
bmdlIHVwIHRvICVsbHVcbiIsIG1heF9lcG9jaCk7CisKKyAgICB0b3RhbF9ieXRlcyA9IDA7CiAg
ICAgCiAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbl9jb25zdHJ1Y3QoJnRyYW5z
YWN0aW9uKTsKICAgICBkbyB7CkBAIC03NzIsNiArNzc1LDggQEAgcGFzX3BoeXNpY2FsX3BhZ2Vf
c2hhcmluZ19wb29sX3NjYXZlbmdlKAogICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX3Rha2VfcmVzdWx0X2dldF9zdHJpbmcodGFrZV9yZXN1bHQpKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSB3aGlsZSAodGFrZV9yZXN1bHQgPT0gcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2Vfc3VjY2Vzcyk7CisKKyAgICAgICAgdG90YWxfYnl0ZXMgKz0gZGVjb21taXRf
bG9nLnRvdGFsOwogICAgICAgICAKICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgaW50
cHRyX3QgYmFsYW5jZTsKQEAgLTgwMSw3ICs4MDYsNyBAQCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFy
aW5nX3Bvb2xfc2NhdmVuZ2UoCiAgICAgUEFTX0FTU0VSVCh0YWtlX3Jlc3VsdCAhPSBwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2xfdGFrZV9sb2Nrc191bmF2YWlsYWJsZSk7CiAgICAgUEFTX0FTU0VSVCh0
YWtlX3Jlc3VsdCAhPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzKTsKICAgICAK
LSAgICByZXR1cm4gdGFrZV9yZXN1bHQ7CisgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9v
bF9zY2F2ZW5nZV9yZXN1bHRfY3JlYXRlKHRha2VfcmVzdWx0LCB0b3RhbF9ieXRlcyk7CiB9CiAK
IHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbGF0ZXIoc2l6ZV90IGJ5
dGVzKQpAQCAtODUxLDE5ICs4NTYsNiBAQCB2b2lkIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdf
cG9vbF90YWtlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja3Nf
YWxyZWFkeV9oZWxkLCBudW1fbG9ja3NfYWxyZWFkeV9oZWxkKTsKIH0KIAotYm9vbCBwYXNfYmlh
c19wYWdlX3NoYXJpbmdfcG9vbF90YWtlKHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcG9vbCkKLXsK
LSAgICBzd2l0Y2ggKHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xlYXN0X3JlY2VudGx5X3Vz
ZWQocG9vbCwgTlVMTCwgcGFzX2xvY2tfaXNfbm90X2hlbGQsIDApKSB7Ci0gICAgY2FzZSBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZToKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczoKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3Vs
ZCBub3QgYmUgcmVhY2hlZCIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfQotCiB2
b2lkIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9kaWRfY3JlYXRlX2RlbHRhKHBhc19wYWdlX3NoYXJp
bmdfcG9vbCogcG9vbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudCBwYXJ0aWNpcGFudCkKIHsKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3No
YXJpbmdfcG9vbC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgInBhc19sb2NrLmgiCiAjaW5jbHVkZSAicGFzX21pbl9oZWFw
LmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oIgorI2luY2x1ZGUg
InBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfc2VnbWVudGVk
X3ZlY3Rvci5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgpAQCAtMTIxLDcgKzEyMiw3IEBAIFBB
U19BUEkgdm9pZCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfYWRkKHAKIAogLyogVGhpcyBpcyB0aGUg
bG93LWxldmVsIGludGVyZmFjZSBmb3IgdGFraW5nIHRoaW5ncyBmcm9tIHRoZSBzaGFyaW5nIHBv
b2wuIFVzdWFsbHkgeW91IHdhbnQgdG8gY2FsbAogICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2UsIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZSwKLSAg
IHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2Zvcl9wYWdlX2NvbmZpZywgb3Ig
cGFzX2JpYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZS4KKyAgIG9yIHBhc19waHlzaWNhbF9wYWdl
X3NoYXJpbmdfcG9vbF90YWtlX2Zvcl9wYWdlX2NvbmZpZy4KICAgIAogICAgVGhpcyBqdXN0IHRh
a2VzIHRoZSBsZWFzdCByZWNlbnRseSB1c2VkIHBpZWNlIG9mIG1lbW9yeSAoY291bGQgYmUgYSBw
YWdlLCBhIHNwYW4gb2YgbXVsdGlwbGUgcGFnZXMsCiAgICBvciBldmVuIGEgc2V0IG9mIGRpc2pv
aW50IHBhZ2VzKS4gVGhlIGFtb3VudCBvZiBtZW1vcnkgcmV0dXJuZWQgaXMgZ29pbmcgdG8gYmUg
d2hhdGV2ZXIgaXMKQEAgLTE1MCw3ICsxNTEsNyBAQCBQQVNfQVBJIHZvaWQgcGFzX3BoeXNpY2Fs
X3BhZ2Vfc2hhcmluZ19wCiAgICAgc2l6ZV90IG51bV9sb2Nrc19hbHJlYWR5X2hlbGQpOwogCiAv
KiBUaGlzIHJldHVybnMgdGhlIGV4Y3VzZSBmb3Igd2h5IGl0IHN0b3BwZWQgc2NhdmVuZ2luZy4g
Ki8KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0CitQQVNfQVBJIHBh
c19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQKIHBhc19waHlzaWNhbF9wYWdlX3No
YXJpbmdfcG9vbF9zY2F2ZW5nZSh1aW50NjRfdCBtYXhfZXBvY2gpOwogCiBQQVNfQVBJIHZvaWQg
cGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbGF0ZXIoc2l6ZV90IGJ5dGVzKTsK
QEAgLTE2Myw4ICsxNjQsNiBAQCBQQVNfQVBJIHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19wCiAgICAgcGFzX2xvY2sqKiBsb2Nrc19hbHJlYWR5X2hlbGQsCiAgICAgc2l6ZV90IG51bV9s
b2Nrc19hbHJlYWR5X2hlbGQpOwogCi1QQVNfQVBJIGJvb2wgcGFzX2JpYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfdGFrZShwYXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2wpOwotCiBQQVNfQVBJIHZvaWQg
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEocGFzX3BhZ2Vfc2hhcmluZ19w
b29sKiBwb29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQpOwogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
c2NhdmVuZ2VfcmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJp
bmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU0IEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
UEFTX1BBR0VfU0hBUklOR19QT09MX1NDQVZFTkdFX1JFU1VMVF9ICisjZGVmaW5lIFBBU19QQUdF
X1NIQVJJTkdfUE9PTF9TQ0FWRU5HRV9SRVNVTFRfSAorCisjaW5jbHVkZSAicGFzX3BhZ2Vfc2hh
cmluZ19wb29sX3Rha2VfcmVzdWx0LmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0
IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQ7Cit0eXBlZGVmIHN0cnVjdCBw
YXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0IHBhc19wYWdlX3NoYXJpbmdfcG9v
bF9zY2F2ZW5nZV9yZXN1bHQ7CisKK3N0cnVjdCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVu
Z2VfcmVzdWx0IHsKKyAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgdGFrZV9y
ZXN1bHQ7CisgICAgc2l6ZV90IHRvdGFsX2J5dGVzOworfTsKKworc3RhdGljIGlubGluZSBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9z
Y2F2ZW5nZV9yZXN1bHRfY3JlYXRlKAorICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jl
c3VsdCB0YWtlX3Jlc3VsdCwKKyAgICBzaXplX3QgdG90YWxfYnl0ZXMpCit7CisgICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0LnRha2Vf
cmVzdWx0ID0gdGFrZV9yZXN1bHQ7CisgICAgcmVzdWx0LnRvdGFsX2J5dGVzID0gdG90YWxfYnl0
ZXM7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlm
IC8qIFBBU19QQUdFX1NIQVJJTkdfUE9PTF9TQ0FWRU5HRV9SRVNVTFRfSCAqLworCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9j
YXRvcl9ub2RlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5jCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkdW5kYW50X2xvY2Fs
X2FsbG9jYXRvcl9ub2RlLmMJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNs
dWRlICJwYXNfaW1tb3J0YWxfaGVhcC5oIgogCiBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRv
cl9ub2RlKgotcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9jcmVhdGUocGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCitwYXNfcmVkdW5kYW50
X2xvY2FsX2FsbG9jYXRvcl9ub2RlX2NyZWF0ZShwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQogewogICAgIHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUq
IHJlc3VsdDsKIApAQCAtNDIsNyArNDIsNyBAQCBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRv
cl9ub2RlX2NyZWF0CiAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAKICAgICBwYXNf
Y29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3JlKCZyZXN1
bHQtPm5leHQsIE5VTEwpOwotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRpcmVjdG9yeSk7CisgICAg
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+
ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOwogICAgIHJlc3VsdC0+YWxsb2NhdG9yX2luZGV4ID0gKHBh
c19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7CiAKICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxv
Y2F0b3Jfbm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3JlZHVuZGFudF9sb2Nh
bF9hbGxvY2F0b3Jfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZu
ZGVmIFBBU19SRURVTkRBTlRfTE9DQUxfQUxMT0NBVE9SX05PREVfSAogI2RlZmluZSBQQVNfUkVE
VU5EQU5UX0xPQ0FMX0FMTE9DQVRPUl9OT0RFX0gKIAotI2luY2x1ZGUgInBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBh
Y3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIgogI2luY2x1ZGUgInBh
c19hbGxvY2F0b3JfaW5kZXguaCIKIApAQCAtMzcsMTIgKzM3LDEyIEBAIHR5cGVkZWYgc3RydWN0
IHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2MKIAogc3RydWN0IHBhc19yZWR1bmRhbnRfbG9jYWxf
YWxsb2NhdG9yX25vZGUgewogICAgIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUgbmV4dDsKLSAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFs
bG9jYXRvcl9pbmRleDsKIH07CiAKIFBBU19BUEkgcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0
b3Jfbm9kZSoKLXBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfY3JlYXRlKHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKK3Bhc19yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfY3JlYXRlKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpOwogCiBQQVNfRU5EX0VYVEVSTl9DOwogCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5jCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2Vy
LmMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJwYXNfc2NhdmVu
Z2VyLmgiCiAKICNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSAicGFzX2FsbF9iaWFzaW5nX2Rp
cmVjdG9yaWVzLmgiCiAjaW5jbHVkZSAicGFzX2FsbF9oZWFwcy5oIgogI2luY2x1ZGUgInBhc19i
YXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIKICNpbmNsdWRlICJwYXNfZGVmZXJyZWRfZGVjb21t
aXRfbG9nLmgiCkBAIC00NSw2ICs0NCw3IEBACiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5o
IgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDx1
bmlzdGQuaD4KIAogc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCkBAIC0xNDks
NyArMTQ5LDcgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAg
IGRhdGEgPSBlbnN1cmVfZGF0YV9pbnN0YW5jZShwYXNfbG9ja19pc19ub3RfaGVsZCk7CiAgICAg
CiAgICAgZm9yICg7OykgewotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1
bHQgdGFrZV9yZXN1bHQ7CisgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9y
ZXN1bHQgc2NhdmVuZ2VfcmVzdWx0OwogICAgICAgICBib29sIHNob3VsZF9zaHV0X2Rvd247CiAg
ICAgICAgIGRvdWJsZSB0aW1lX2luX21pbGxpc2Vjb25kczsKICAgICAgICAgZG91YmxlIGFic29s
dXRlX3RpbWVvdXRfaW5fbWlsbGlzZWNvbmRzX2Zvcl9wZXJpb2Rfc2xlZXA7CkBAIC0xNjYsNiAr
MTY2LDE0IEBAIHN0YXRpYyB2b2lkKiBzY2F2ZW5nZXJfdGhyZWFkX21haW4odm9pZCoKICAgICAg
ICAgCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcHJpbnRmKCJTY2F2ZW5nZXIg
aXMgcnVubmluZy5cbiIpOworCisjaWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklM
TF9FRkZJQ0lFTkNZCisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVu
Y3lfbG9ja19sb2NrKCk7CisgICAgICAgIHBhc19sb2coIiVkOiBSZWZpbGwgZWZmaWNpZW5jeTog
JWxmXG4iLAorICAgICAgICAgICAgICAgIGdldHBpZCgpLAorICAgICAgICAgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfc3VtIC8gcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZWZpbGxfZWZmaWNpZW5jeV9uKTsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZp
bGxfZWZmaWNpZW5jeV9sb2NrX3VubG9jaygpOworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FU
T1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAqLwogICAgICAgICAKICAgICAgICAgc2hvdWxk
X2dvX2FnYWluIHw9CiAgICAgICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2Zv
cl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0aW9uKTsKQEAgLTE3
NiwxMSArMTg0LDkgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgog
ICAgICAgICAKICAgICAgICAgc2hvdWxkX2dvX2FnYWluIHw9CiAgICAgICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0
b3BfYWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfYWN0aW9uLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVz
aF9sb2dfaWZfY2xlYW5fYWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKIAotICAgICAgICBzaG91bGRfZ29fYWdh
aW4gfD0gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3NjYXZlbmdlKCk7Ci0KICAgICAgICAg
LyogRm9yIHRoZSBwdXJwb3NlcyBvZiBwZXJmb3JtYW5jZSB0dW5pbmcsIGFzIHdlbGwgYXMgc29t
ZSBvZiB0aGUgc2NhdmVuZ2VyIHRlc3RzLCB0aGUgZXBvY2gKICAgICAgICAgICAgaXMgdGltZSBp
biBuYW5vc2Vjb25kcy4KICAgICAgICAgICAgCkBAIC0xOTgsOCArMjA0LDkgQEAgc3RhdGljIHZv
aWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAgICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgIHBhc19sb2coImVwb2NoID0gJWxsdSwgZGVsdGEgPSAlbGx1LCBtYXhfZXBvY2gg
PSAlbGx1XG4iLCBlcG9jaCwgZGVsdGEsIG1heF9lcG9jaCk7CiAKLSAgICAgICAgdGFrZV9yZXN1
bHQgPSBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2UobWF4X2Vwb2NoKTsK
LSAgICAgICAgc3dpdGNoICh0YWtlX3Jlc3VsdCkgeworICAgICAgICBzY2F2ZW5nZV9yZXN1bHQg
PSBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2UobWF4X2Vwb2NoKTsKKwor
ICAgICAgICBzd2l0Y2ggKHNjYXZlbmdlX3Jlc3VsdC50YWtlX3Jlc3VsdCkgewogICAgICAgICBj
YXNlIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAKQEAgLTIxNiw2ICsyMjMsMTMgQEAgc3RhdGljIHZvaWQq
IHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAgICAgICAgICAgUEFTX0FTU0VSVCghIlNo
b3VsZCBub3Qgc2VlIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxl
LiIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0gfQorCisgICAgICAgIGlmICh2ZXJi
b3NlKSB7CisgICAgICAgICAgICBwYXNfbG9nKCIlZDogJS4wbGY6IHNjYXZlbmdlciBmcmVlZCAl
enUgYnl0ZXMgKCVzLCBzaG91bGRfZ29fYWdhaW4gPSAlcykuXG4iLAorICAgICAgICAgICAgICAg
ICAgICBnZXRwaWQoKSwgZ2V0X3RpbWVfaW5fbWlsbGlzZWNvbmRzKCksIHNjYXZlbmdlX3Jlc3Vs
dC50b3RhbF9ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3Rha2VfcmVzdWx0X2dldF9zdHJpbmcoc2NhdmVuZ2VfcmVzdWx0LnRha2VfcmVzdWx0KSwKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkX2dvX2FnYWluID8gInllcyIgOiAibm8iKTsKKyAgICAg
ICAgfQogICAgICAgICAKICAgICAgICAgY29tcGxldGlvbl9jYWxsYmFjayA9IHBhc19zY2F2ZW5n
ZXJfY29tcGxldGlvbl9jYWxsYmFjazsKICAgICAgICAgaWYgKGNvbXBsZXRpb25fY2FsbGJhY2sp
CkBAIC0yNDEsNyArMjU1LDEwIEBAIHN0YXRpYyB2b2lkKiBzY2F2ZW5nZXJfdGhyZWFkX21haW4o
dm9pZCoKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIHByaW50Zigi
V2FpdGluZyBmb3IgYSBwZXJpb2QuXG4iKTsKIAotICAgICAgICAgICAgcGFzX3NjYXZlbmdlcl9j
dXJyZW50X3N0YXRlID0gcGFzX3NjYXZlbmdlcl9zdGF0ZV9wb2xsaW5nOworICAgICAgICAgICAg
LyogVGhpcyBmaWVsZCBpcyBhY2Nlc3NlZCBhIGxvdCBieSBvdGhlciB0aHJlYWRzLCBzbyBkb24n
dCB3cml0ZSB0byBpdCBpZiB3ZSBkb24ndAorICAgICAgICAgICAgICAgaGF2ZSB0by4gKi8KKyAg
ICAgICAgICAgIGlmIChwYXNfc2NhdmVuZ2VyX2N1cnJlbnRfc3RhdGUgIT0gcGFzX3NjYXZlbmdl
cl9zdGF0ZV9wb2xsaW5nKQorICAgICAgICAgICAgICAgIHBhc19zY2F2ZW5nZXJfY3VycmVudF9z
dGF0ZSA9IHBhc19zY2F2ZW5nZXJfc3RhdGVfcG9sbGluZzsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGRvdWJsZSBhYnNvbHV0ZV90aW1lb3V0X2luX21pbGxpc2Vjb25kc19mb3JfZGVl
cF9wcmVfc2xlZXA7CiAgICAgICAgICAgICAKQEAgLTQyNSwxMSArNDQyLDExIEBAIHZvaWQgcGFz
X3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzX2V4Y2UKIHsKICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiBjYWNoZTsKICAgICAKLSAgICBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9ub25fdGxj
X2NhY2hlcygpOwotCiAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQo
KTsKICAgICBpZiAoY2FjaGUpCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5r
KGNhY2hlLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisKKyAgICBwYXNfc2NhdmVuZ2VyX2NsZWFy
X2FsbF9ub25fdGxjX2NhY2hlcygpOwogfQogCiB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxs
X2NhY2hlcyh2b2lkKQpAQCAtNDQxLDEzICs0NTgsMTUgQEAgdm9pZCBwYXNfc2NhdmVuZ2VyX2Ns
ZWFyX2FsbF9jYWNoZXModm9pZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9ja19pc19ub3RfaGVsZCk7CiB9CiAKLXZvaWQgcGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9m
cmVlX21lbW9yeSh2b2lkKQorc2l6ZV90IHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZnJlZV9tZW1v
cnkodm9pZCkKIHsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcmVzdWx0
OworICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQgcmVzdWx0OwogCiAg
ICAgcmVzdWx0ID0gcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlKFBBU19F
UE9DSF9NQVgpOwogICAgIAotICAgIFBBU19BU1NFUlQocmVzdWx0ID09IHBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlKTsKKyAgICBQQVNfQVNTRVJUKHJlc3VsdC50YWtl
X3Jlc3VsdCA9PSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZSk7CisK
KyAgICByZXR1cm4gcmVzdWx0LnRvdGFsX2J5dGVzOwogfQogCiB2b2lkIHBhc19zY2F2ZW5nZXJf
cnVuX3N5bmNocm9ub3VzbHlfbm93KHZvaWQpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTk4LDcgKzk4LDcgQEAgUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfcmVzdW1l
KHZvaWQpOwogUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX25vbl90bGNfY2Fj
aGVzKHZvaWQpOwogUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19l
eGNlcHRfcmVtb3RlX3RsY3Modm9pZCk7CiBQQVNfQVBJIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVh
cl9hbGxfY2FjaGVzKHZvaWQpOwotUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfZGVjb21taXRf
ZnJlZV9tZW1vcnkodm9pZCk7CitQQVNfQVBJIHNpemVfdCBwYXNfc2NhdmVuZ2VyX2RlY29tbWl0
X2ZyZWVfbWVtb3J5KHZvaWQpOwogCiBQQVNfQVBJIHZvaWQgcGFzX3NjYXZlbmdlcl9ydW5fc3lu
Y2hyb25vdXNseV9ub3codm9pZCk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYwkobm9uZXhpc3RlbnQp
CkBAIC0xLDI2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFC
TEVECi0KLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotCi0j
aW5jbHVkZSAicGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmgiCi0jaW5jbHVkZSAicGFzX2Vw
b2NoLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0KLXBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eV9jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXJl
bnRfZ2xvYmFsLCB1bnNpZ25lZCBtYWdhemluZV9pbmRleCkKLXsKLSAgICBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeSogcmVzdWx0OwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnKiBwYWdlX2NvbmZpZzsKLQotICAgIC8qIFRoaXMgY3JlYXRlcyBhIGJpYXNpbmcgZGlyZWN0
b3J5IHdpdGgganVzdCBpbmRleF9pbl9hbGwgaW5pdGlhbGl6ZWQgYW5kIGV2ZXJ5dGhpbmcgZWxz
ZQotICAgICAgIHplcm9lZC4gKi8KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxv
Y2F0ZV93aXRoX2FsaWdubWVudCgKLSAgICAgICAgc2l6ZW9mKHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5KSwKLSAgICAgICAgYWxpZ25vZihwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSksCi0gICAgICAgICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSIsCi0g
ICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0KLSAgICBwYWdlX2NvbmZpZyA9IHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhwYXJlbnRfZ2xvYmFsLT5iYXNl
LnBhZ2VfY29uZmlnX2tpbmQpOwotICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcpOwotCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29uc3RydWN0KAotICAgICAgICAmcmVzdWx0
LT5iYXNlLCBwYWdlX2NvbmZpZy0+a2luZCwKLSAgICAgICAgcGFzX2RvX25vdF9zaGFyZV9wYWdl
cywKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCk7Ci0KLSAg
ICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUo
JnJlc3VsdC0+cGFyZW50X2dsb2JhbCwgcGFyZW50X2dsb2JhbCk7Ci0KLSAgICBwYXNfYmlhc2lu
Z19kaXJlY3RvcnlfY29uc3RydWN0KAotICAgICAgICAmcmVzdWx0LT5iaWFzaW5nX2Jhc2UsIHBh
c19iaWFzaW5nX2RpcmVjdG9yeV9zZWdyZWdhdGVkX2tpbmQsIG1hZ2F6aW5lX2luZGV4KTsKLQot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyB2b2lkIHRha2VfZmlyc3RfZWxpZ2libGVf
bG9vcF9oZWFkX2NhbGxiYWNrKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQot
ewotICAgIC8qIE5vdGhpbmcgdG8gZG8gZm9yIGJpYXNpbmcgZGlyZWN0b3JpZXMuIFRoaXMgY2Fs
bGJhY2sgaXMgbWVhbmluZ2Z1bCBmb3IgZ2xvYmFsIHNpemUgZGlyZWN0b3JpZXMsCi0gICAgICAg
d2hpY2ggdXNlIGl0IHRvIHRha2UgZnJvbSB0aGUgYmlhc2luZyBwb29sLiAqLwotICAgIFBBU19V
TlVTRURfUEFSQU0oZGlyZWN0b3J5KTsKLX0KLQotc3RhdGljIHBhc19zZWdyZWdhdGVkX3ZpZXcg
dGFrZV9maXJzdF9lbGlnaWJsZV9jcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2soCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpCi17Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5OwotCi0gICAgUEFT
X1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+ZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKTsKLSAgICAKLSAgICBiaWFzaW5nX2Rp
cmVjdG9yeSA9IChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSopY29uZmlnLT5kaXJl
Y3Rvcnk7Ci0KLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXdf
bm9uX251bGwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jcmVhdGUoYmlh
c2luZ19kaXJlY3RvcnksIGNvbmZpZy0+aW5kZXgpKTsKLX0KLQotcGFzX3NlZ3JlZ2F0ZWRfdmll
dyBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAot
ICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeSwK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHBhcmVudF9nbG9iYWwp
Ci17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnX3B0cjsKLSAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnIGNvbmZpZzsKLQot
ICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAgcGFyZW50X2dsb2JhbCA9PQotICAgICAg
ICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgKLSAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+cGFyZW50X2dsb2JhbCkp
OwotCi0gICAgZGlyZWN0b3J5ID0gJmJpYXNpbmdfZGlyZWN0b3J5LT5iYXNlOwotICAgIHBhZ2Vf
Y29uZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhk
aXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpOwotICAgIHBhZ2VfY29uZmlnID0gKnBhZ2VfY29u
ZmlnX3B0cjsKLQotICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykgPT0gcGFzX2xv
Y2tfaXNfbm90X2hlbGQpOwotICAgIAotICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGwoCi0gICAgICAgIGRpcmVjdG9yeSwgJmNv
bmZpZywKLSAgICAgICAgdGFrZV9maXJzdF9lbGlnaWJsZV9sb29wX2hlYWRfY2FsbGJhY2ssCi0g
ICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGVfY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKTsKLQot
ICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4KAotICAgICAgICAmYmlhc2lu
Z19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwgY29uZmlnLmluZGV4LCBwYXNfZ2V0X2Vwb2NoKCkp
OwotICAgIAotICAgIFBBU19URVNUSU5HX0FTU0VSVCghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X0dFVF9CSVQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHZpZXcpLCBlbGlnaWJsZSkpOwotCi0gICAgcmV0dXJuIHZp
ZXc7Ci19Ci0KLXBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdAotcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgKLSAgICBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3RvcnkpCi17Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgb3duZXJzaGlw
X3RocmVzaG9sZDsKLSAgICBib29sIGRpZF9maW5kX2VsaWdpYmxlX3BhZ2U7Ci0gICAgc2l6ZV90
IGluZGV4OwotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZWxpZ2libGVfaGlnaF93YXRlcm1hcms7
Ci0gICAgc2l6ZV90IG5ld19lbGlnaWJsZV93YXRlcm1hcms7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcgcGFnZV9jb25maWc7Ci0KLSAgICBwYWdlX2NvbmZpZyA9ICpwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoYmlhc2luZ19kaXJlY3RvcnktPmJhc2Uu
cGFnZV9jb25maWdfa2luZCk7Ci0KLSAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpID09IHBhc19sb2NrX2lzX25v
dF9oZWxkKTsKLSAgICAKLSAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAmYmlh
c2luZ19kaXJlY3RvcnktPnBhcmVudF9nbG9iYWwpOwotCi0gICAgb3duZXJzaGlwX3RocmVzaG9s
ZCA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9vd25lcnNoaXBfdGhyZXNob2xkKCZiaWFzaW5nX2Rp
cmVjdG9yeS0+Ymlhc2luZ19iYXNlKTsKLQotICAgIC8qIFJlYWQgdG8gd2F0Y2ggc28gdGhhdCBp
ZiBhbnlvbmUgdXBkYXRlcyB0aGUgZWxpZ2libGVfaGlnaF93YXRlcm1hcmsgZHVyaW5nIG91ciBz
Y2FuLCB3ZSB3b24ndAotICAgICAgIG92ZXJ3cml0ZSBpdC4gKi8KLSAgICBlbGlnaWJsZV9oaWdo
X3dhdGVybWFyayA9IHBhc192ZXJzaW9uZWRfZmllbGRfcmVhZF90b193YXRjaCgKLSAgICAgICAg
JmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93YXRlcm1hcmsp
OwotCi0gICAgUEFTX0FTU0VSVChlbGlnaWJsZV9oaWdoX3dhdGVybWFyay52YWx1ZQotICAgICAg
ICAgICAgICAgPD0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmJpYXNpbmdfZGlyZWN0
b3J5LT5iYXNlKSk7Ci0KLSAgICBpZiAoKHNpemVfdClvd25lcnNoaXBfdGhyZXNob2xkID49IGVs
aWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlKQotICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hh
cmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFibGU7Ci0KLSAgICBkaWRfZmluZF9lbGlnaWJsZV9w
YWdlID0gZmFsc2U7Ci0KLSAgICBuZXdfZWxpZ2libGVfd2F0ZXJtYXJrID0gb3duZXJzaGlwX3Ro
cmVzaG9sZDsKLQotICAgIGZvciAoaW5kZXggPSBvd25lcnNoaXBfdGhyZXNob2xkOyBpbmRleCA8
IGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlOyArK2luZGV4KSB7Ci0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2luZ192aWV3OwotICAgICAgICBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlX3ZpZXc7Ci0gICAgICAgIHBhc19sb2NrKiBo
ZWxkX2xvY2s7Ci0gICAgICAgIGJvb2wgcmVzdWx0OwotICAgICAgICBib29sIHNob3VsZF9ub3Rp
ZnlfZW1wdGluZXNzOwotICAgICAgICAKLSAgICAgICAgaWYgKCFQQVNfU0VHUkVHQVRFRF9ESVJF
Q1RPUllfU0VUX0JJVCgmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4LCBlbGlnaWJsZSwg
ZmFsc2UpKSB7Ci0gICAgICAgICAgICAvKiBJZiBpdCdzIGluZWxpZ2libGUgdGhlbiB3ZSBqdXN0
IGRvbid0IGRvIGFueXRoaW5nIHRvIGl0IGFuZCBsZWF2ZSBpdCBiZS4gSWYgaXQgYmVjb21lcwot
ICAgICAgICAgICAgICAgZWxpZ2libGUgdGhlbiB0aGF0J2xsIHRyaWdnZXIgdGhpcyBjb2RlIHRv
IHJlcnVuLiAqLwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBk
aWRfZmluZF9lbGlnaWJsZV9wYWdlID0gdHJ1ZTsKLQotICAgICAgICBiaWFzaW5nX3ZpZXcgPSBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2dldCgmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4KSk7Ci0gICAg
ICAgIGV4Y2x1c2l2ZV92aWV3ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfcHRyX2xvYWQoCi0gICAgICAgICAgICAmYmlhc2luZ192aWV3LT5leGNsdXNpdmUp
OwotCi0gICAgICAgIGlmICghZXhjbHVzaXZlX3ZpZXcpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5k
ZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJl
Y3RvcnktPmJhc2UsIGluZGV4KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQocmVzdWx0KTsKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBQQVNfQVNT
RVJUKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNl
ZCgKLSAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5k
KSk7Ci0gICAgICAgIFBBU19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklU
KAotICAgICAgICAgICAgICAgICAgICAgICAmc2l6ZV9kaXJlY3RvcnktPmJhc2UsIGV4Y2x1c2l2
ZV92aWV3LT5pbmRleCwgZWxpZ2libGUpKTsKLSAgICAgICAgCi0gICAgICAgIC8qIFRoZSBlbXB0
eSBiaXRzIHNob3VsZG4ndCBoYXZlIGV2ZXIgYmVlbiBzZXQuICovCi0gICAgICAgIFBBU19BU1NF
UlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAgICAgICAgICAgICAg
ICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4LCBlbXB0eSkpOwotICAgICAgICAK
LSAgICAgICAgaGVsZF9sb2NrID0gTlVMTDsKLSAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxk
X2xvY2ssICZleGNsdXNpdmVfdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICBQQVNfQVNT
RVJUKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNl
ZCgKLSAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5k
KSk7Ci0gICAgICAgIGV4Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBfa2luZCA9Ci0gICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNl
ZCgKLSAgICAgICAgICAgICAgICBleGNsdXNpdmVfdmlldy0+b3duZXJzaGlwX2tpbmQsIGZhbHNl
KTsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAg
aGFzIG93bmVyc2hpcCBraW5kID0gJXMgZHVlIHRvIHRha2VfbGFzdF91bnVzZWRcbiIsCi0gICAg
ICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZV92aWV3LAotICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRfc3RyaW5nKAotICAg
ICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBzaG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9IGZhbHNlOwotICAg
ICAgICAKLSAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kX2lzX293bmVkKAotICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZV92aWV3LT5vd25lcnNo
aXBfa2luZCkpIHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7Ci0KLSAg
ICAgICAgICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShleGNsdXNp
dmVfdmlldy0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ss
IHBhZ2VfY29uZmlnKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgLyogSWYgdGhpcyBleGNs
dXNpdmUgYWxyZWFkeSBoYWQgYSBwYWdlLCB0aGVuIHRoZSBwYWdlIG11c3QgYmUgc2F5aW5nIHRo
YXQgaXQncwotICAgICAgICAgICAgICAgZWxpZ2libGUuICovCi0gICAgICAgICAgICBQQVNfQVNT
RVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2luZyhwYWdlLT5vd25lcikpOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBwYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwoZXhjbHVzaXZlX3ZpZXcpOwotCi0gICAgICAgICAgICBz
aG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zv
cl9kZWNvbW1pdChwYWdlLCBwYWdlX2NvbmZpZyk7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBU
aGlzIGp1c3QgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSB3ZSByZWxlYXNlIGVsaWdpYmlsaXR5LiAq
LwotICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19w
dHJfc3RvcmUoJmJpYXNpbmdfdmlldy0+ZXhjbHVzaXZlLCBOVUxMKTsKLQotICAgICAgICByZXN1
bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0
X2luZGV4KAotICAgICAgICAgICAgJnNpemVfZGlyZWN0b3J5LT5iYXNlLCBleGNsdXNpdmVfdmll
dy0+aW5kZXgpOwotICAgICAgICBQQVNfQVNTRVJUKHJlc3VsdCk7Ci0gICAgICAgIAotICAgICAg
ICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdp
YmxlX2F0X2luZGV4X3dpdGhvdXRfYmlhc2luZ191cGRhdGUoCi0gICAgICAgICAgICAmYmlhc2lu
Z19kaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKLSAgICAgICAgUEFTX0FTU0VSVChyZXN1bHQpOwot
Ci0gICAgICAgIGlmIChzaG91bGRfbm90aWZ5X2VtcHRpbmVzcykgewotICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKLSAg
ICAgICAgICAgICAgICAmc2l6ZV9kaXJlY3RvcnktPmJhc2UsIGV4Y2x1c2l2ZV92aWV3LT5pbmRl
eCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9s
b2NrLCBOVUxMKTsKLSAgICB9Ci0KLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgK
LSAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93
YXRlcm1hcmssCi0gICAgICAgIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLCBuZXdfZWxpZ2libGVf
d2F0ZXJtYXJrKTsKLQotICAgIHJldHVybiBkaWRfZmluZF9lbGlnaWJsZV9wYWdlCi0gICAgICAg
ID8gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzcwotICAgICAgICA6IHBhc19wYWdl
X3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOwotfQotCi0jZW5kaWYgLyogTElCUEFT
X0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaAko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDY0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX0JJQVNJTkdfRElSRUNUT1JZX0gKLSNkZWZpbmUgUEFT
X1NFR1JFR0FURURfQklBU0lOR19ESVJFQ1RPUllfSAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdf
ZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKLQotc3RydWN0IFBBU19B
TElHTkVEKHNpemVvZih1aW50cHRyX3QpICogMikgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkgewotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSBiYXNlOwotICAgIHBhc19iaWFz
aW5nX2RpcmVjdG9yeSBiaWFzaW5nX2Jhc2U7Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyIHBhcmVudF9nbG9iYWw7Ci19OwotCi1zdGF0aWMgaW5s
aW5lIHVuc2lnbmVkCi1wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9tYWdhemluZV9p
bmRleChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAg
IHJldHVybiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVfaW5kZXgoJmRpcmVjdG9yeS0+
Ymlhc2luZ19iYXNlKTsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeSogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfY3JlYXRlKAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFyZW50X2dsb2JhbCwgdW5zaWduZWQg
bWFnYXppbmVfaW5kZXgpOwotCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFyZW50X2dsb2JhbCk7Ci0KLVBBU19BUEkgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0Ci1wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeV90YWtlX2xhc3RfdW51c2VkKAotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX1NF
R1JFR0FURURfQklBU0lOR19ESVJFQ1RPUllfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMJKG5vbmV4aXN0ZW50KQpAQCAt
MSwxNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oIgotCi0jaW5jbHVkZSAicGFzX2Vw
b2NoLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCi0j
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX3ZpZXdfaW5saW5lcy5oIgotCi1wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3KiByZXN1bHQ7Ci0KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0
YWxfaGVhcF9hbGxvY2F0ZShzaXplb2YocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
b2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKCZyZXN1bHQtPmV4Y2x1c2l2ZSwgTlVMTCk7Ci0gICAg
cmVzdWx0LT5pbmRleCA9ICh1bnNpZ25lZClpbmRleDsKLSAgICBQQVNfQVNTRVJUKHJlc3VsdC0+
aW5kZXggPT0gaW5kZXgpOwotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKLQotICAgIHJl
dHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX293
bmVkKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldykKLXsKLSAgICBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlX3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQgb3duZXJzaGlwX2tpbmQ7Ci0gICAgCi0gICAg
ZXhjbHVzaXZlX3ZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19wdHJfbG9hZCgmdmlldy0+ZXhjbHVzaXZlKTsKLSAgICAKLSAgICBpZiAoIWV4Y2x1c2l2
ZV92aWV3KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBvd25lcnNoaXBfa2luZCA9IGV4
Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBfa2luZDsKLSAgICAKLSAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQob3duZXJzaGlwX2tp
bmQpCi0gICAgICAgICYmIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9r
aW5kX2lzX2JpYXNlZChvd25lcnNoaXBfa2luZCk7Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3KiB2aWV3KQotewotICAgIGZvciAoOzspIHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZV92aWV3OwotICAgICAgICAKLSAgICAgICAgZXhjbHVzaXZl
X3ZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJf
bG9hZCgmdmlldy0+ZXhjbHVzaXZlKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghZXhjbHVzaXZl
X3ZpZXcpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9j
aygmZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9sb2NrKTsKLQotICAgICAgICBpZiAoZXhjbHVz
aXZlX3ZpZXcgPT0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
cHRyX2xvYWQoJnZpZXctPmV4Y2x1c2l2ZSkKLSAgICAgICAgICAgICYmIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZChleGNsdXNpdmVfdmlldy0+
b3duZXJzaGlwX2tpbmQpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgcGFz
X2xvY2tfdW5sb2NrKCZleGNsdXNpdmVfdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgIH0KLX0K
LQotYm9vbCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcqIHBhZ2VfY29uZmlnKQotewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBl
eGNsdXNpdmVfdmlldzsKLSAgICAKLSAgICBleGNsdXNpdmVfdmlldyA9IHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKCZ2aWV3LT5leGNsdXNpdmUp
OwotICAgIAotICAgIGlmICghZXhjbHVzaXZlX3ZpZXcpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3Nob3VsZF90YWJsZShl
eGNsdXNpdmVfdmlldywgcGFnZV9jb25maWcpOwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlld19ub3RlX2VsaWdpYmlsaXR5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyog
dmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgdmlld19pbmRleDsKLSAgICAKLSAgICBiaWFz
aW5nX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSk7Ci0gICAgZGlyZWN0b3J5ID0gJmJp
YXNpbmdfZGlyZWN0b3J5LT5iYXNlOwotICAgIHZpZXdfaW5kZXggPSB2aWV3LT5pbmRleDsKLSAg
ICAKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfbm90ZV9lbGlnaWJpbGl0
eV9pbXBsKAotICAgICAgICBwYWdlLCBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlld19hc192aWV3X25vbl9udWxsKHZpZXcpLCB2aWV3X2luZGV4KTsKLX0KLQotdm9pZCBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ192aWV3KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpCi17
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCi0gICAg
ICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2Fk
X25vbl9udWxsKCZ2aWV3LT5leGNsdXNpdmUpLAotICAgICAgICBwYWdlKTsKLX0KLQotcGFzX2hl
YXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldykKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOwotICAgIHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0Owot
ICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlw
X2xvY2sodmlldykpCi0gICAgICAgIHJldHVybiBwYXNfaGVhcF9zdW1tYXJ5X2NyZWF0ZV9lbXB0
eSgpOwotICAgIAotICAgIGV4Y2x1c2l2ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5leGNsdXNpdmUpOwotICAg
IFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRf
aXNfYmlhc2VkKGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICByZXN1bHQgPSBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwoZXhjbHVz
aXZlKTsKLQotICAgIHBhc19sb2NrX3VubG9jaygmZXhjbHVzaXZlLT5vd25lcnNoaXBfbG9jayk7
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0g
ICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAgICAmcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgm
dmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKLSAgICAgICAgdmlldy0+aW5kZXgsIGVsaWdpYmxlKTsK
LX0KLQotYm9vbCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3KiBleGNsdXNpdmU7Ci0gICAgZXhjbHVzaXZlID0gcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWQoJnZpZXctPmV4Y2x1c2l2ZSk7Ci0gICAg
aWYgKGV4Y2x1c2l2ZSkKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X2lzX2VtcHR5KGV4Y2x1c2l2ZSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0jZW5kaWYg
LyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oCShy
ZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDg4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQ
QVNfU0VHUkVHQVRFRF9CSUFTSU5HX1ZJRVdfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9CSUFT
SU5HX1ZJRVdfSAotCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCi0K
LVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dzsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXc7Ci0KLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcg
ewotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ciBl
eGNsdXNpdmU7Ci0gICAgdW5zaWduZWQgaW5kZXg7IC8qIElmIHdlIHdhbnRlZCB0byBiZSBoYXJk
Y29yZSwgd2UgY291bGQgbWFrZSB0aGlzIG9uZSBieXRlLiAqLwotICAgIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKLX07Ci0KLXN0YXRpYyBp
bmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2Fz
X3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF92aWV3X2NyZWF0ZSh2aWV3LCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXdfa2luZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX2luZWxpZ2libGVfdmlldyhwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3Jl
YXRlKHZpZXcsIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQpOwot
fQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcKLXBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlld19hc192aWV3X25vbl9udWxsKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyog
dmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19jcmVhdGVfbm9uX251bGwo
dmlldywgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQpOwotfQotCi1zdGF0aWMgaW5s
aW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcKLXBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19hc19p
bmVsaWdpYmxlX3ZpZXdfbm9uX251bGwocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3
KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2NyZWF0ZV9ub25fbnVsbCh2aWV3
LCBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kKTsKLX0KLQotUEFT
X0FQSSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKLSAgICBzaXplX3QgaW5kZXgpOwotCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X2lzX293bmVkKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7
Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X3Nob3VsZF90YWJsZSgK
LSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcsIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
KiB2aWV3KTsKLQotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3Rl
X2VsaWdpYmlsaXR5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlKiBwYWdlKTsKLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXdfbm90ZV9lbXB0aW5lc3MocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKLVBBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldyogdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci1QQVNf
QVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAv
KiBQQVNfU0VHUkVHQVRFRF9CSUFTSU5HX1ZJRVdfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX1NFR1JFR0FURURfREVBTExPQ0FUSU9OX01P
REVfSAorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ERUFMTE9DQVRJT05fTU9ERV9ICisKKyNpbmNs
dWRlICJwYXNfdXRpbHMuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitlbnVtIHBhc19zZWdy
ZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlIHsKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRp
b25fZGlyZWN0X21vZGUsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdf
Y2FjaGVfbW9kZQorfTsKKwordHlwZWRlZiBlbnVtIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlv
bl9tb2RlIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlOworCitzdGF0aWMgaW5saW5l
IGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlX2dldF9zdHJpbmco
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUgbW9kZSkKK3sKKyAgICBzd2l0
Y2ggKG1vZGUpIHsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3Rf
bW9kZToKKyAgICAgICAgcmV0dXJuICJkaXJlY3QiOworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
ZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZToKKyAgICAgICAgcmV0dXJuICJ0b192aWV3
X2NhY2hlIjsKKyAgICB9CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIp
OworICAgIHJldHVybiBOVUxMOworfQorCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyog
UEFTX1NFR1JFR0FURURfREVBTExPQ0FUSU9OX01PREVfSCAqLworCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTYx
LDggKzYxLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9kYXRhX3Nsb3cocAogICAg
ICAgICAgICAgInBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhIiwKICAgICAgICAgICAgIHBh
c19vYmplY3RfYWxsb2NhdGlvbik7CiAKLSAgICAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9jb25z
dHJ1Y3QoJnJlc3VsdC0+Zmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWQsIDApOwotICAgICAg
ICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0cnVjdCgmcmVzdWx0LT5maXJzdF9lbGlnaWJsZV9h
bmRfdGFibGVkLCAwKTsKKyAgICAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJnJl
c3VsdC0+Zmlyc3RfZWxpZ2libGUsIDApOwogICAgICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2Nv
bnN0cnVjdCgmcmVzdWx0LT5sYXN0X2VtcHR5X3BsdXNfb25lLCAwKTsKICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2NvbnN0cnVjdCgmcmVzdWx0
LT5iaXR2ZWN0b3JzKTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfdmVj
dG9yX2NvbnN0cnVjdCgmcmVzdWx0LT52aWV3cyk7CkBAIC0xODYsNyArMTg1LDYgQEAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3BheQogCiBQQVNfQVBJIHZvaWQgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X21pbmltaXplX2ZpcnN0X2VsaWdpYmxlKAogICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQsCiAgICAgc2l6ZV90IGluZGV4KQogewogICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwpAQCAtMTk3LDEyICsxOTUsMTEgQEAg
UEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9taQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgcGFzX3ZlcnNpb25lZF9maWVsZF9taW5pbWl6ZShwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZGF0YV9nZXRfZmlyc3RfZWxpZ2libGVfcHRyKGRhdGEsIGtpbmQpLCBpbmRl
eCk7CisgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9taW5pbWl6ZSgmZGF0YS0+Zmlyc3RfZWxpZ2li
bGUsIGluZGV4KTsKIH0KIAogUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV91
cGRhdGVfZmlyc3RfZWxpZ2libGVfYWZ0ZXJfc2VhcmNoKAogICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9l
bGlnaWJsZV9raW5kIGtpbmQsCiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZCBmaXJzdF9lbGlnaWJs
ZSwKICAgICBzaXplX3QgbmV3X3ZhbHVlKQogewpAQCAtMjE2LDUwICsyMTMsMjIgQEAgUEFTX0FQ
SSB2b2lkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV91cAogICAgIH0KIAogICAgIHBhc192ZXJz
aW9uZWRfZmllbGRfdHJ5X3dyaXRlX3dhdGNoZWQoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9kYXRhX2dldF9maXJzdF9lbGlnaWJsZV9wdHIoZGF0YSwga2luZCksCisgICAgICAg
ICZkYXRhLT5maXJzdF9lbGlnaWJsZSwKICAgICAgICAgZmlyc3RfZWxpZ2libGUsCiAgICAgICAg
IG5ld192YWx1ZSk7CiB9CiAKLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlk
X2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAorYm9vbCBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4
KAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBp
bmRleCkKIHsKICAgICBpZiAoUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX1NFVF9CSVQoZGlyZWN0
b3J5LCBpbmRleCwgZWxpZ2libGUsIHRydWUpKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9taW5pbWl6ZV9maXJzdF9lbGlnaWJsZSgKLSAgICAgICAgICAgIGRpcmVjdG9yeSwg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkX2tp
bmQsIGluZGV4KTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X21pbmltaXplX2Zp
cnN0X2VsaWdpYmxlKGRpcmVjdG9yeSwgaW5kZXgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4KQotewotICAgIHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeTsKLSAgICAKLSAgICBp
ZiAoIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRf
aW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAgICAgICAgICAgIGRpcmVjdG9yeSwgaW5k
ZXgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoZGlyZWN0b3J5LT5kaXJlY3Rv
cnlfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLQotICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0KLSAgICBwYXNfYmlhc2luZ19kaXJlY3Rv
cnlfaW5kZXhfZGlkX2JlY29tZV9lbGlnaWJsZSgmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdf
YmFzZSwgaW5kZXgpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfd2l0aG91dF9iaWFzaW5nX3VwZGF0
ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2Vn
cmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0
ZSgKLSAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9pbmRleCh2aWV3
KSk7Ci19Ci0KIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9l
bGlnaWJsZSgKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBw
YXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCkBAIC00MTIsMTEgKzM4MSw3IEBAIHZvaWQgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2FwcGVuZCgKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1
c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2lu
ZDoKLSAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09IHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIFBBU19BU1NF
UlQoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeV9raW5kKTsKKyAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPmRpcmVjdG9yeV9r
aW5kID09IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2tpbmQpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIFBB
U19BU1NFUlQoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfcGFnZV9kaXJlY3Rvcnlfa2luZCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDMwICs3NiwyMyBAQCBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZlY3RvCiAgICAgLyogRW1wdHkgbWVh
bnMgdGhhdCB0aGUgcGFnZSBoYXMgc3R1ZmYgdGhhdCBjYW4gYmUgZGVjb21taXR0ZWQuIEhvd2V2
ZXIsIHRoaXMgYml0IGhhcyBubyBtZWFuaW5nIGlmCiAgICAgICAgdGhlIGVsaWdpYmxlIGJpdCBp
cyBub3Qgc2V0LiAqLwogICAgIHVuc2lnbmVkIGVtcHR5X2JpdHM7Ci0KLSAgICAvKiBUYWJsZWQg
bWVhbnMgdGhhdCB3ZSBoYXZlIHByZXZpb3VzbHkgZm91bmQgdGhpcyBwYWdlIHRvIGJlIHRvdGFs
bHkgZnJlZSBvZiBvYmplY3RzLCBzbyB3ZSdkIGxpa2UKLSAgICAgICB0byBkZWZlciBhbGxvY2F0
aW5nIGluIHRoZSBwYWdlIHVudGlsIHdlIGFsbG9jYXRlIGluIHBhZ2VzIHRoYXQgYXJlbid0IHRv
dGFsbHkgZnJlZS4gKi8KLSAgICB1bnNpZ25lZCB0YWJsZWRfYml0czsKIH07CiAKIC8qIEZJWE1F
OiBBdHRlbXB0IHRvIGludHJvZHVjZSBjb2RlIHRvIHBhY2sgdGhlIGJpdHZlY3RvciBpZiB3ZSBk
b24ndCBuZWVkIHRoZSBlbXB0eSBiaXRzLiBDdXJyZW50bHkKICAgIHRoaXMgaXMgbm90IHVzZWQs
IGJ1dCBzaG91bGQgYmUuICovCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpbXBs
ZV9iaXR2ZWN0b3Jfc2VnbWVudCB7CiAgICAgdW5zaWduZWQgZWxpZ2libGVfYml0czsKLSAgICB1
bnNpZ25lZCB0YWJsZWRfYml0czsKIH07CiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNU
T1JZX0JJVFZFQ1RPUl9TRUdNRU5UX0lOSVRJQUxJWkVSIFwKICAgICAoKHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCl7IFwKICAgICAgICAgLmVsaWdpYmxlX2JpdHMg
PSAwLCBcCi0gICAgICAgIC5lbXB0eV9iaXRzID0gMCwgXAotICAgICAgICAudGFibGVkX2JpdHMg
PSAwIFwKKyAgICAgICAgLmVtcHR5X2JpdHMgPSAwIFwKICAgICB9KQogCiAjZGVmaW5lIFBBU19T
RUdSRUdBVEVEX0RJUkVDVE9SWV9TSU1QTEVfQklUVkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIg
XAogICAgICgocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpbXBsZV9iaXR2ZWN0b3Jfc2VnbWVu
dCl7IFwKLSAgICAgICAgLmVsaWdpYmxlX2JpdHMgPSAwLCBcCi0gICAgICAgIC50YWJsZWRfYml0
cyA9IDAgXAorICAgICAgICAuZWxpZ2libGVfYml0cyA9IDAgXAogICAgIH0pCiAKIFBBU19ERUNM
QVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ21lbnRlZF9i
aXR2ZWN0b3JzLApAQCAtMTI3LDIyICsxMjAsMTggQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeSB7CiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRUxJR0lC
TEVfU0hJRlQgICAgICAgMHUKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNf
RU1QVFlfU0hJRlQgICAgICAgICAgMXUKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X0JJVFNfVEFCTEVEX1NISUZUICAgICAgICAgMnUKIAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9E
SVJFQ1RPUllfQklUU19NSVNDX1NISUZUICAgICAgICAgICAzdQotI2RlZmluZSBQQVNfU0VHUkVH
QVRFRF9ESVJFQ1RPUllfQklUU19PVEhFUl9NSVNDX1NISUZUICAgICA0dQorI2RlZmluZSBQQVNf
U0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVNDX1NISUZUICAgICAgICAgICAydQorI2RlZmlu
ZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19PVEhFUl9NSVNDX1NISUZUICAgICAzdQog
CiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX01BU0sgXAog
ICAgICgxdSA8PCBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9TSElGVCkK
ICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRU1QVFlfTUFTSyBcCiAgICAg
KDF1IDw8IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VNUFRZX1NISUZUKQotI2RlZmlu
ZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19UQUJMRURfTUFTSyBcCi0gICAgKDF1IDw8
IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX1RBQkxFRF9TSElGVCkKIAogI2RlZmluZSBQ
QVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19WSUVXX01BU0sgXAogICAgIChQQVNfU0VHUkVH
QVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9NQVNLIHwgXAotICAgICBQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfQklUU19FTVBUWV9NQVNLIHwgXAotICAgICBQQVNfU0VHUkVHQVRFRF9ESVJF
Q1RPUllfQklUU19UQUJMRURfTUFTSykKKyAgICAgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJ
VFNfRU1QVFlfTUFTSykKIAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19N
SVNDX01BU0sgXAogICAgICgxdSA8PCBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVND
X1NISUZUKQpAQCAtMTU0LDE2ICsxNDMsOSBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5IHsKICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9NQVNLCiAj
ZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX2VtcHR5X01BU0sgXAogICAgIFBB
U19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VNUFRZX01BU0sKLSNkZWZpbmUgUEFTX1NFR1JF
R0FURURfRElSRUNUT1JZX0JJVFNfdGFibGVkX01BU0sgXAotICAgIFBBU19TRUdSRUdBVEVEX0RJ
UkVDVE9SWV9CSVRTX1RBQkxFRF9NQVNLCi0KLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNU
T1JZX0JJVFNfZWxpZ2libGVfQVZBSUxBQkxFX0lOX0JJQVNJTkcgICAgIHRydWUKLSNkZWZpbmUg
UEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfZW1wdHlfQVZBSUxBQkxFX0lOX0JJQVNJTkcg
IGZhbHNlCi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX3RhYmxlZF9BVkFJ
TEFCTEVfSU5fQklBU0lORyAgICAgICB0cnVlCiAKIHN0cnVjdCBQQVNfQUxJR05FRChzaXplb2Yo
cGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhIHsKLSAg
ICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkOwotICAg
IHBhc192ZXJzaW9uZWRfZmllbGQgZmlyc3RfZWxpZ2libGVfYW5kX3RhYmxlZDsKKyAgICBwYXNf
dmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2VsaWdpYmxlOwogICAgIHBhc192ZXJzaW9uZWRfZmllbGQg
bGFzdF9lbXB0eV9wbHVzX29uZTsgLyogWmVybyBtZWFucyB0aGVyZSBhcmVuJ3QgYW55LiAqLwog
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzIGJpdHZl
Y3RvcnM7CkBAIC0yNjEsNyArMjQzLDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Nwb29m
X2lubGluZV9zZQogICAgIAogICAgIHNlZ21lbnQuZWxpZ2libGVfYml0cyA9IChiaXRzID4+IFBB
U19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX1NISUZUKSAmIDF1OwogICAgIHNl
Z21lbnQuZW1wdHlfYml0cyA9IChiaXRzID4+IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRT
X0VNUFRZX1NISUZUKSAmIDF1OwotICAgIHNlZ21lbnQudGFibGVkX2JpdHMgPSAoYml0cyA+PiBQ
QVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19UQUJMRURfU0hJRlQpICYgMXU7CiAKICAgICBy
ZXR1cm4gc2VnbWVudDsKIH0KQEAgLTMwNSwxMCArMjg2LDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3Nwb29mX2lubGluZV9zZQogICAgICAgICBfdmFsdWUgPSAodmFsdWUpOyBcCiAgICAg
ICAgIFwKICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKF9pbmRleCA8IHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeSkpOyBcCi0gICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VCggXAotICAgICAgICAgICAgIV92YWx1ZSBcCi0gICAgICAgICAgICB8fCBfZGlyZWN0b3J5LT5k
aXJlY3Rvcnlfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kIFwK
LSAgICAgICAgICAgIHx8IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTXyMjYml0X25hbWUj
I19BVkFJTEFCTEVfSU5fQklBU0lORyk7IFwKICAgICAgICAgXAogICAgICAgICBpZiAoIV9pbmRl
eCkgeyBcCiAgICAgICAgICAgICBfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Jp
dHNfc2V0X2J5X21hc2soIFwKQEAgLTQwNywzNyArMzg0LDE1IEBAIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9zdGFydF9zaGFyaW5nX2kKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0
X3NoYXJpbmdfcGF5bG9hZChkaXJlY3RvcnksIGhlYXBfbG9ja19ob2xkX21vZGUpOwogfQogCi1z
dGF0aWMgaW5saW5lIHBhc192ZXJzaW9uZWRfZmllbGQqIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9kYXRhX2dldF9maXJzdF9lbGlnaWJsZV9wdHIoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2RhdGEqIGRhdGEsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdp
YmxlX2tpbmQga2luZCkKLXsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9idXRfbm90X3RhYmxlZF9raW5kOgotICAg
ICAgICByZXR1cm4gJmRhdGEtPmZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkOwotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2lu
ZDoKLSAgICAgICAgcmV0dXJuICZkYXRhLT5maXJzdF9lbGlnaWJsZV9hbmRfdGFibGVkOwotICAg
IH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJu
IE5VTEw7Ci19Ci0KIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfbWluaW1p
emVfZmlyc3RfZWxpZ2libGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2lu
ZCwKICAgICBzaXplX3QgaW5kZXgpOwogCiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3VwZGF0ZV9maXJzdF9lbGlnaWJsZV9hZnRlcl9zZWFyY2goCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCwKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0
X2VsaWdpYmxlLAogICAgIHNpemVfdCBuZXdfdmFsdWUpOwogCi1QQVNfQVBJIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRo
b3V0X2JpYXNpbmdfdXBkYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAotICAgIHNpemVfdCBpbmRleCk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAot
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldyk7CiBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Zp
ZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKICAgICBzaXplX3QgaW5kZXgpOwpAQCAtNDYzLDEyICs0MTgsNiBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0CiAgICAgcmV0dXJuIFBB
U19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5KTsK
IH0KIAotc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc190YWJs
ZWQoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHNpemVfdCBpbmRl
eCkKLXsKLSAgICByZXR1cm4gUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoZGlyZWN0
b3J5LCBpbmRleCwgdGFibGVkKTsKLX0KLQogUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19jb21taXR0ZWQoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksIHNpemVfdCBpbmRleCk7CiAKQEAgLTQ4MywzMCArNDMyLDE1IEBAIFBBU19BUEkgc2l6
ZV90IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV8KIAogc3RhdGljIGlubGluZSBwYXNfdmVyc2lv
bmVkX2ZpZWxkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfaW1w
bCgKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZCBraW5kLAogICAgIHBhc192ZXJz
aW9uZWRfZmllbGQgKCpyZWFkKShwYXNfdmVyc2lvbmVkX2ZpZWxkKiBmaWVsZCkpCiB7CiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGEqIGRhdGE7Ci0gICAgdW5zaWduZWQgZXhwZWN0
ZWQ7CiAKICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQo
JmRpcmVjdG9yeS0+ZGF0YSk7CiAgICAgaWYgKGRhdGEpCi0gICAgICAgIHJldHVybiByZWFkKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX2dldF9maXJzdF9lbGlnaWJsZV9wdHIoZGF0YSwg
a2luZCkpOworICAgICAgICByZXR1cm4gcmVhZCgmZGF0YS0+Zmlyc3RfZWxpZ2libGUpOwogCi0g
ICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmly
c3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2luZDoKLSAgICAgICAgZXhwZWN0ZWQgPSBQQVNf
U0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9NQVNLOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9hbmRfdGFi
bGVkX2tpbmQ6Ci0gICAgICAgIGV4cGVjdGVkID0KLSAgICAgICAgICAgIFBBU19TRUdSRUdBVEVE
X0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX01BU0sgfAotICAgICAgICAgICAgUEFTX1NFR1JFR0FU
RURfRElSRUNUT1JZX0JJVFNfVEFCTEVEX01BU0s7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAg
ICAKLSAgICBpZiAoKGRpcmVjdG9yeS0+Yml0cyAmIChQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllf
QklUU19FTElHSUJMRV9NQVNLIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNfU0VH
UkVHQVRFRF9ESVJFQ1RPUllfQklUU19UQUJMRURfTUFTSykpCi0gICAgICAgID09IGV4cGVjdGVk
KQorICAgIGlmIChkaXJlY3RvcnktPmJpdHMgJiBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklU
U19FTElHSUJMRV9NQVNLKQogICAgICAgICByZXR1cm4gcGFzX3ZlcnNpb25lZF9maWVsZF9jcmVh
dGVfd2l0aF9pbnZhbGlkX3ZlcnNpb24oMCk7CiAKICAgICByZXR1cm4gIXBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX3ZpZXdfaXNfbnVsbCgmZGlyZWN0b3J5LT5maXJzdF92aWV3KQpAQCAt
NTE1LDI3ICs0NDksMjQgQEAgc3RhdGljIGlubGluZSBwYXNfdmVyc2lvbmVkX2ZpZWxkIHBhc19z
ZQogfQogCiBzdGF0aWMgaW5saW5lIHBhc192ZXJzaW9uZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2li
bGVfa2luZCBraW5kKQorICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQog
ewogICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxl
X2ltcGwoCi0gICAgICAgIGRpcmVjdG9yeSwga2luZCwgcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFk
KTsKKyAgICAgICAgZGlyZWN0b3J5LCBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWQpOwogfQogCiBz
dGF0aWMgaW5saW5lIHBhc192ZXJzaW9uZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2dldF9maXJzdF9lbGlnaWJsZV90b3JuKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9r
aW5kIGtpbmQpCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAg
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVfaW1w
bCgKLSAgICAgICAgZGlyZWN0b3J5LCBraW5kLCBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWRfdG9y
bik7CisgICAgICAgIGRpcmVjdG9yeSwgcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkX3Rvcm4pOwog
fQogCiBzdGF0aWMgaW5saW5lIHBhc192ZXJzaW9uZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3dhdGNoX2ZpcnN0X2VsaWdpYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJs
ZV9raW5kIGtpbmQpCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7
CiAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVf
aW1wbCgKLSAgICAgICAgZGlyZWN0b3J5LCBraW5kLCBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWRf
dG9fd2F0Y2gpOworICAgICAgICBkaXJlY3RvcnksIHBhc192ZXJzaW9uZWRfZmllbGRfcmVhZF90
b193YXRjaCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3ZlcnNpb25lZF9maWVsZCBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2xhc3RfZW1wdHlfcGx1c19vbmVfaW1wbCgKQEAgLTYxMyw4
ICs1NDQsNyBAQCBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2FwCiAKIC8q
IFRoaXMgaGFzIGEgbWF4aW1hbGx5IGluY2x1c2lvbiB3YXkgb2YgdHJlYXRpbmcgbWVtb3J5IHRo
YXQgbXVsdGlwbGUgdmlld3MgbWF5IGhhdmUgZGlicyBvbi4gRm9yCiAgICBleGFtcGxlLCBzaGFy
ZWQgcGFnZSBkaXJlY3RvcmllcyBhbmQgcGFydGlhbCB2aWV3cyBpbiBzaXplIGRpcmVjdG9yaWVz
IG1heSByZXBvcnQgb24gdGhlIHNhbWUKLSAgIGJ5dGVzIG9mIG1lbW9yeS4gRXhjbHVzaXZlIHZp
ZXdzIGluIGEgZ2xvYmFsIHNpemUgZGlyZWN0b3J5IG1heSByZXBvcnQgb24gdGhlIHNhbWUgbWVt
b3J5IGFzCi0gICBiaWFzaW5nIHZpZXdzIGluIGJpYXNpbmcgZGlyZWN0b3JpZXMuICovCisgICBi
eXRlcyBvZiBtZW1vcnkuICovCiBQQVNfQVBJIHBhc19oZWFwX3N1bW1hcnkKIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnkocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRf
cmVmZXJlbmNlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEyNSwxMCArMTI1LDYgQEAgc3RhdGljIGlubGluZSBib29sIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdAogICAgICAgICBfdmFsdWUgPSAodmFsdWUpOyBcCiAgICAgICAgIFwKICAg
ICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3Jl
ZmVyZW5jZV9pc19udWxsKF9yZWZlcmVuY2UpKTsgXAotICAgICAgICBQQVNfVEVTVElOR19BU1NF
UlQoIFwKLSAgICAgICAgICAgICFfdmFsdWUgXAotICAgICAgICAgICAgfHwgX2RpcmVjdG9yeS0+
ZGlyZWN0b3J5X2tpbmQgIT0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCBc
Ci0gICAgICAgICAgICB8fCBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU18jI2JpdF9uYW1l
IyNfQVZBSUxBQkxFX0lOX0JJQVNJTkcpOyBcCiAgICAgICAgIFwKICAgICAgICAgaWYgKHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRfcmVmZXJlbmNlX2lzX2lubGluZShfcmVmZXJlbmNlKSkg
eyBcCiAgICAgICAgICAgICBmb3IgKDs7KSB7IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQyLDggKzI0Miw3IEBAIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVy
YXRlX2JhY2t3YXIKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wKIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pdGVyYXRlX2ZvcndhcmRfdG9fdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAg
ICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcqIGNvbmZpZywKLSAgICBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZCBmaXJzdF9lbGlnaWJs
ZV9raW5kKQorICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29u
ZmlnKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICBzdGF0
aWMgY29uc3QgYm9vbCBzaW1wbGVfZWxpZ2liaWxpdHkgPSBmYWxzZTsKQEAgLTI1OSw4ICsyNTgs
NyBAQCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkCiAgICAgICAgIGlm
ICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygicHJldmlvdXNfc2l6ZSA9ICV6dVxuIiwg
cHJldmlvdXNfc2l6ZSk7CiAKLSAgICAgICAgZmlyc3RfZWxpZ2libGUgPSBwYXNfc2VncmVnYXRl
ZF9kaXJlY3Rvcnlfd2F0Y2hfZmlyc3RfZWxpZ2libGUoCi0gICAgICAgICAgICBjb25maWctPmRp
cmVjdG9yeSwgZmlyc3RfZWxpZ2libGVfa2luZCk7CisgICAgICAgIGZpcnN0X2VsaWdpYmxlID0g
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3dhdGNoX2ZpcnN0X2VsaWdpYmxlKGNvbmZpZy0+ZGly
ZWN0b3J5KTsKIAogICAgICAgICBpZiAoc2ltcGxlX2VsaWdpYmlsaXR5KQogICAgICAgICAgICAg
Y29uZmlnLT5pbmRleCA9IDA7CkBAIC0zMDUsNyArMzAzLDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZAogICAgICAgICAKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3VwZGF0ZV9maXJzdF9lbGlnaWJsZV9hZnRlcl9zZWFyY2goCiAgICAgICAgICAg
ICBjb25maWctPmRpcmVjdG9yeSwKLSAgICAgICAgICAgIGZpcnN0X2VsaWdpYmxlX2tpbmQsCiAg
ICAgICAgICAgICBmaXJzdF9lbGlnaWJsZSwKICAgICAgICAgICAgIGNvbmZpZy0+Zmlyc3RfY29u
c2lkZXJlZCk7CiAgICAgICAgIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDE2ICszNCwx
MyBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAKICAgICAgICAtIGRpcmVjdG9yeQogICAgICAg
ICAgICAtIHNpemUgZGlyZWN0b3J5Ci0gICAgICAgICAgICAgICAtIGdsb2JhbCBzaXplIGRpcmVj
dG9yeQotICAgICAgICAgICAgICAgLSBiaWFzaW5nIGRpcmVjdG9yeQogICAgICAgICAgICAtIHNo
YXJlZCBwYWdlIGRpcmVjdG9yeQogICAgCiAgICBPbmx5IHRoZSB0eXBlcyBhdCB0aGUgbGVhdmVz
IGFyZSBpbnN0YW50aWFibGUuIFRoZSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZCBlbnVt
IGlzIGZvcgogICAgZGVzY3JpYmluZyB0aGUgaW5zdGFudGlhYmxlIGxlYXZlcy4gKi8KIAogZW51
bSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZCB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2tpbmQsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3Rvcnlfa2luZCwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5kLAogICAg
IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9raW5kCiB9OwogCkBAIC01Mywx
MCArNTAsOCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQga2luZCkKIHsKICAgICBzd2l0Y2ggKGtpbmQp
IHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kOgot
ICAgICAgICByZXR1cm4gInNlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IjsKLSAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVy
biAic2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSI7CisgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9raW5kOgorICAgICAgICByZXR1cm4gInNlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkiOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
X2tpbmQ6CiAgICAgICAgIHJldHVybiAic2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnki
OwogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMzYsMTAgKzM2LDEwIEBACiAj
aW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgotI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAKIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3KiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19jcmVhdGUoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBzaXplX3QgaW5kZXgpCiB7
CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAtNTYsNjcgKzU2LDE2
IEBAIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBwYXNfc2VncmUKIAogICAgIC8qIFdl
IGFsbG9jYXRlIHRoaXMgbGF6aWx5LiAqLwogICAgIHJlc3VsdC0+cGFnZV9ib3VuZGFyeSA9IE5V
TEw7Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
X3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKKyAgICBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRp
cmVjdG9yeSk7CiAgICAgcmVzdWx0LT5pbmRleCA9ICh1bnNpZ25lZClpbmRleDsKICAgICBQQVNf
QVNTRVJUKHJlc3VsdC0+aW5kZXggPT0gaW5kZXgpOwotICAgIHJlc3VsdC0+b3duZXJzaGlwX2tp
bmQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ7CisgICAgcmVzdWx0
LT5pc19vd25lZCA9IGZhbHNlOwogICAgIHBhc19sb2NrX2NvbnN0cnVjdCgmcmVzdWx0LT5jb21t
aXRfbG9jayk7CiAgICAgcGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPm93bmVyc2hpcF9sb2Nr
KTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykKLXsK
LSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lz
X293bmVkKHZpZXctPm93bmVyc2hpcF9raW5kKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAg
ICByZXR1cm4gIXBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KHZpZXctPnBhZ2VfYm91
bmRhcnksICpwYWdlX2NvbmZpZyktPm51bV9ub25fZW1wdHlfd29yZHM7Ci19Ci0KLXZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3X25vdGVfZWxpZ2liaWxpdHlfaW1wbCgKLSAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgZWxpZ2libGVfb3duaW5nX3Zp
ZXcsCi0gICAgdW5zaWduZWQgdmlld19pbmRleCkKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7Ci0KLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRf
dmlld19pc19lbGlnaWJsZV9raW5kKGVsaWdpYmxlX293bmluZ192aWV3KSk7Ci0gICAgCi0gICAg
aWYgKHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2coIk5vdGluZyBlbGlnaWJpbGl0eSBpbiBleGNs
dXNpdmUgJXAvJXAuXG4iLCBlbGlnaWJsZV9vd25pbmdfdmlldywgcGFnZSk7Ci0gICAgICAgIAot
ICAgIGlmIChwYWdlLT5sb2NrX3B0cikKLSAgICAgICAgcGFzX2xvY2tfdGVzdGluZ19hc3NlcnRf
aGVsZChwYWdlLT5sb2NrX3B0cik7Ci0gICAgCi0gICAgaWYgKHBhZ2UtPmlzX2luX3VzZV9mb3Jf
YWxsb2NhdGlvbikgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2co
IkRlZmVycmluZyBlbGlnaWJpbGl0eSBub3RpZmljYXRpb24uXG4iKTsKLSAgICAgICAgcGFnZS0+
ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2RlZmVycmVkID0gdHJ1ZTsKLSAgICB9
IGVsc2UgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2coIlRlbGxp
bmcgdGhlIGRpcmVjdG9yeSB0aGF0IHdlIGFyZSBlbGlnaWJsZS5cbiIpOwotICAgICAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRp
cmVjdG9yeSwgdmlld19pbmRleCk7Ci0gICAgfQotICAgIAotICAgIC8qIENsZWFyIHRoZSBpbmVs
aWdpYmxlIGJpdCBmcm9tIHRoZSBvd25lciBmaWVsZC4gKi8KLSAgICBwYWdlLT5vd25lciA9IGVs
aWdpYmxlX293bmluZ192aWV3OwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X25vdGVfZWxpZ2liaWxpdHkoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcq
IHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSkKLXsKLSAgICBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eV9pbXBsKAotICAgICAgICBw
YWdlLAotICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCi0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwodmlldyksCi0gICAg
ICAgIHZpZXctPmluZGV4KTsKLX0KLQogdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19ub3RlX2VtcHRpbmVzcygKICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmll
dywKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKQpAQCAtMTMwLDE2ICs3OSwxNSBAQCB2
b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBkaXJlY3RvcnkgPSAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2U7
CisgICAgZGlyZWN0b3J5ID0gJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2U7CiAgICAgdmlld19pbmRl
eCA9IHZpZXctPmluZGV4OwogICAgIAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3
X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoZGlyZWN0b3J5LCB2aWV3X2luZGV4KTsKIH0KIAot
cGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0
ZV9zdW1tYXJ5X2ltcGwoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcp
CitzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnlfaW1wbChwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldyogdmlldykKIHsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWdf
cHRyOwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnOwpAQCAtMTUw
LDEyICs5OCwxMiBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2CiAg
ICAgc2l6ZV90IG9mZnNldDsKICAgICBzaXplX3QgYmVnaW47CiAgICAgc2l6ZV90IGVuZDsKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwogCi0gICAgc2l6ZV9kaXJl
Y3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KTsKKyAgICBzaXplX2RpcmVjdG9yeSA9IHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZp
ZXctPmRpcmVjdG9yeSk7CiAKLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZpZXctPm93bmVyc2hpcF9raW5kKSkgewotICAgICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NvbXB1dGVfc3Vt
bWFyeV9mb3JfdW5vd25lZF9leGNsdXNpdmUoCisgICAgaWYgKCF2aWV3LT5pc19vd25lZCkgewor
ICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1t
YXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKICAgICAgICAgICAgIHNpemVfZGlyZWN0b3J5KTsK
ICAgICB9CiAKQEAgLTE2NSw3ICsxMTMsNyBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2CiAgICAgCiAgICAgcmVzdWx0ID0gcGFzX2hlYXBfc3VtbWFyeV9jcmVhdGVf
ZW1wdHkoKTsKIAotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YV9wdHJfbG9hZCgmc2l6ZV9kaXJlY3RvcnktPmRhdGEpOworICAgIGRhdGEgPSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZzaXplX2RpcmVjdG9yeS0+
ZGF0YSk7CiAgICAgYm91bmRhcnkgPSB2aWV3LT5wYWdlX2JvdW5kYXJ5OwogICAgIHBhZ2UgPSBw
YXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShib3VuZGFyeSwgcGFnZV9jb25maWcpOwog
CkBAIC0yMDksNyArMTU3LDcgQEAgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdgogICAgIHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0OwogICAgIAogICAgIHBhc19sb2NrX2xv
Y2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwodmlldyk7CisgICAgcmVzdWx0
ID0gY29tcHV0ZV9zdW1tYXJ5X2ltcGwodmlldyk7CiAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3
LT5vd25lcnNoaXBfbG9jayk7CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMjIwLDEzICsxNjgs
MTMgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbnN0YQogewogICAgIHZv
aWQqIGJvdW5kYXJ5OwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBwYWdlX2NvbmZpZzsKICAgICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNl
X2NvdW50czsKICAgICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogZnVsbF91c2VfY291bnRz
OwogICAgIHNpemVfdCBudW1fZ3JhbnVsZXM7CiAKLSAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmll
dy0+ZGlyZWN0b3J5KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpOwogICAgIHBh
Z2VfY29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhk
aXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CiAgICAgYm91bmRhcnkgPSB2aWV3LT5w
YWdlX2JvdW5kYXJ5OwogICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFy
eShib3VuZGFyeSwgcGFnZV9jb25maWcpOwpAQCAtMjM3LDcgKzE4NSw3IEBAIHZvaWQgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5zdGEKICAgICBudW1fZ3JhbnVsZXMgPSAocGFnZV9j
b25maWcuYmFzZS5wYWdlX3NpemUgLyBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CiAK
ICAgICBmdWxsX3VzZV9jb3VudHMgPSBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3Vz
ZV9jb3VudF9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgJnBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YShkaXJlY3RvcnkpLT5mdWxsX3VzZV9j
b3VudHMpOworICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVu
ZGVkX2RhdGEoZGlyZWN0b3J5KS0+ZnVsbF91c2VfY291bnRzKTsKICAgICAKICAgICBtZW1jcHko
dXNlX2NvdW50cywKICAgICAgICAgICAgZnVsbF91c2VfY291bnRzLApAQCAtMjQ3LDE0ICsxOTUs
MTQgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbnN0YQogYm9vbCBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldyogdmlldykKIHsKICAgICByZXR1cm4gUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X0dFVF9CSVQoCi0gICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKKyAgICAg
ICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251
bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCiAgICAgICAgIHZpZXctPmluZGV4LCBlbGlnaWJs
ZSk7CiB9CiAKIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaXNfZW1wdHkocGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcpCiB7CiAgICAgcmV0dXJuIFBBU19TRUdS
RUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9y
eSktPmJhc2UsCisgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLT5iYXNlLAogICAgICAgICB2aWV3
LT5pbmRleCwgZW1wdHkpOwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDI0
ICsyNiwyNiBAQAogI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9FWENMVVNJVkVfVklFV19ICiAjZGVm
aW5lIFBBU19TRUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX0gKIAotI2luY2x1ZGUgInBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCiAjaW5jbHVkZSAicGFz
X2xvY2suaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNo
aXBfa2luZC5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgi
CiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7
CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldzsKIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9wYWdlOworc3RydWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGU7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlldzsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZTsKK3R5cGVkZWYgc3RydWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGUgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZTsKIAogc3RydWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHsK
ICAgICB2b2lkKiBwYWdlX2JvdW5kYXJ5OwogICAgIAotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7CisgICAgcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5OwogCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQgb3duZXJzaGlwX2tpbmQ7CisgICAg
Ym9vbCBpc19vd25lZDsKIAogICAgIHVuc2lnbmVkIGluZGV4OwogCkBAIC05MSwyOSArOTMsMTMg
QEAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfaW5lbGlnaQogCiBQQVNfQVBJIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KgogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfY3JlYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAg
ICAgc2l6ZV90IGluZGV4KTsKIAotUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X3Nob3VsZF90YWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyog
dmlldywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOwotCi1Q
QVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3X25vdGVfZWxpZ2li
aWxpdHlfaW1wbCgKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgZWxp
Z2libGVfb3duaW5nX3ZpZXcsCi0gICAgdW5zaWduZWQgdmlld19pbmRleCk7Ci0KLVBBU19BUEkg
dm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VsaWdpYmlsaXR5KAotICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2UqIHBhZ2UpOwotCiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfbm90ZV9lbXB0aW5lc3MoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZp
ZXcsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSk7CiAKLVBBU19BUEkgcGFzX2hlYXBf
c3VtbWFyeSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5
X2ltcGwoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcpOwogUEFTX0FQ
SSBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NvbXB1dGVf
c3VtbWFyeSgKICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldyk7CiAKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTcg
KzI2LDIxIEBACiAjaWZuZGVmIFBBU19TRUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX0lOTElORVNf
SAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9FWENMVVNJVkVfVklFV19JTkxJTkVTX0gKIAorI2lu
Y2x1ZGUgInBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCIKKyNpbmNsdWRl
ICJwYXNfbG9jYWxfdmlld19jYWNoZS5oIgogI2luY2x1ZGUgInBhc19sb2cuaCIKKyNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oIgogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVz
LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF9wYWdlLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNo
ZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmlld19kaWRfc3RhcnRfYWxsb2NhdGlu
ZygKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2RpZF9zdGFydF9hbGxvY2F0aW5nKAogICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3KiB2aWV3LAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgb3duZXJfdmlldywgLyogQ291
bGQgYmUgdGhlIGJpYXNpbmcgdmlldywgb3IgdGhlIGV4Y2x1c2l2ZSB2aWV3LiAqLwotICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeSwKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeSwKICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAgIHBhc19sb2NrKiogaGVsZF9sb2NrLAogICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQpAQCAtNTQsNyArNTgsOCBA
QCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2VncmVnCiAgICAgaWYgKHZlcmJv
c2UpCiAgICAgICAgIHBhc19sb2coIkRpZCBzdGFydCBhbGxvY2F0aW5nIGluICVwLlxuIiwgcGFn
ZSk7CiAKLSAgICBQQVNfVEVTVElOR19BU1NFUlQoIXBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2Nh
dGlvbik7CisgICAgLyogTk9URTogV2UgY2Fubm90IGFzc2VydCB0aGF0IHRoZSBwYWdlIGlzIG5v
dCBpbiB1c2UgZm9yIGFsbG9jYXRpb24gc2luY2Ugd2UgbWF5IGJlIGNvbWluZyBoZXJlCisgICAg
ICAgdmlhIHRoZSB2aWV3IGNhY2hlLCB3aGljaCBhbHdheXMgc2F5cyB0aGF0IHBhZ2VzIGFyZSBp
biB1c2UgZm9yIGFsbG9jYXRpb24uICovCiAKICAgICAvKiBXZSB3YW50IHRvIGRlZmVyIG5vdGlm
eWluZyBhbnlvbmUgYWJvdXQgYW55IG5ld2x5IGZyZWVkIG9iamVjdHMuIERvIHRoaXMgaGVyZSBz
aW5jZQogICAgICAgIHRoZSBjb2RlIGJlbG93IG1heSByZWxlYXNlIChhbmQgdGhlbiByZWFjcXVp
cmUpIHRoZSBwYWdlIGxvY2suIFRoYXQgY291bGQgY2F1c2Ugc29tZQpAQCAtNjgsNiArNzMsMTQ2
IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWcKICAgICBwYWdlLT5v
d25lciA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfaW5lbGlnaWJsZShvd25lcl92aWV3KTsKIH0K
IAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZygKKyAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldyogdmlldywKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcgcGFnZV9jb25maWcsCisgICAgYm9vbCBzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5
KQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworICAgIHVuc2ln
bmVkIHZpZXdfaW5kZXg7CisgICAgYm9vbCBzaG91bGRfbm90aWZ5X2VtcHRpbmVzczsKKworICAg
IHZpZXdfaW5kZXggPSB2aWV3LT5pbmRleDsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdGlvbiBpbiBleGNsdXNpdmUgJXAvJXAuXG4iLCB2
aWV3LCBwYWdlKTsKKyAgICAKKyAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lz
X3V0aWxpdHkocGFnZV9jb25maWcpKQorICAgICAgICBwYXNfbG9ja190ZXN0aW5nX2Fzc2VydF9o
ZWxkKHBhZ2UtPmxvY2tfcHRyKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFnZS0+aXNfaW5f
dXNlX2Zvcl9hbGxvY2F0aW9uKTsKKyAgICAKKyAgICBzaG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9
IHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdChwYWdlLCBwYWdlX2Nv
bmZpZyk7CisgICAgCisgICAgcGFnZS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uID0gZmFsc2U7
CisgICAgCisgICAgaWYgKHNob3VsZF9ub3RpZnlfZWxpZ2liaWxpdHkpIHsKKyAgICAgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJUZWxsaW5nIGRpcmVjdG9yeSBhYm91dCBk
ZWZlcnJlZCBlbGlnaWJpbGl0eS5cbiIpOworICAgICAgICAKKyAgICAgICAgLyogUGFnZSBtdXN0
IGtub3cgdGhhdCB3ZSBhcmUgZWxpZ2libGUgZmlyc3QuICovCisgICAgICAgIFBBU19URVNUSU5H
X0FTU0VSVCgKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQocGFnZS0+
b3duZXIpID09IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQpOworICAgICAgICAK
KyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJs
ZV9hdF9pbmRleCgKKyAgICAgICAgICAgICZkaXJlY3RvcnktPmJhc2UsCisgICAgICAgICAgICB2
aWV3X2luZGV4KTsKKyAgICB9CisgICAgCisgICAgLyogSXQncyBpbXBvcnRhbnQgdG8gbm90aWZ5
IGVtcHRpbmVzcyBsYXN0LCBzbyB0aGF0IHdlIG5ldmVyIGZpbmQgb3V0c2VsdmVzIGluIGEgY2Fz
ZSB3aGVyZSB0aGUKKyAgICAgICBzY2F2ZW5nZXIgdGFrZXMgdGhlIGVtcHR5IGJpdCwgY2Fubm90
IHRha2UgdGhlIGVsaWdpYmxlIGJpdCwgYW5kIHRoaXMgY29kZSBoYWQgYWxyZWFkeSBzZXQgdGhl
CisgICAgICAgZW1wdHkgYml0IGJ1dCBub3QgdGhlIGVsaWdpYmxlIGJpdC4gKi8KKyAgICBpZiAo
c2hvdWxkX25vdGlmeV9lbXB0aW5lc3MpIHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKKyAgICAgICAgICAgICZkaXJlY3Rv
cnktPmJhc2UsCisgICAgICAgICAgICB2aWV3X2luZGV4KTsKKyAgICB9Cit9CisKK3N0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVf
ZWxpZ2liaWxpdHkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fbW9kZSBkZWFsbG9jYXRpb25fbW9kZSwKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiBjYWNoZSwKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKK3sK
KyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OworCisgICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5k
aXJlY3RvcnkpOworICAgIGRpcmVjdG9yeSA9ICZzaXplX2RpcmVjdG9yeS0+YmFzZTsKKyAgICAK
KyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiTm90aW5nIGVsaWdpYmlsaXR5IGlu
IGV4Y2x1c2l2ZSAlcC8lcC5cbiIsIHZpZXcsIHBhZ2UpOworICAgICAgICAKKyAgICBpZiAocGFn
ZS0+bG9ja19wdHIpCisgICAgICAgIHBhc19sb2NrX3Rlc3RpbmdfYXNzZXJ0X2hlbGQocGFnZS0+
bG9ja19wdHIpOworICAgIAorICAgIGlmIChwYWdlLT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb24p
IHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJEZWZlcnJpbmcg
ZWxpZ2liaWxpdHkgbm90aWZpY2F0aW9uLlxuIik7CisgICAgICAgIHBhZ2UtPmVsaWdpYmlsaXR5
X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJlZCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgYm9vbCBkaWRfY2FjaGVfdmlldzsKKworICAgICAgICBkaWRfY2FjaGVfdmlldyA9IGZh
bHNlOworCisgICAgICAgIHN3aXRjaCAoZGVhbGxvY2F0aW9uX21vZGUpIHsKKyAgICAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGU6CisgICAgICAgICAgICBp
ZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJVc2luZyBkaXJlY3QgZGVhbGxv
Y2F0aW9uIG1vZGUgKCV1KS5cbiIsIHBhZ2UtPm9iamVjdF9zaXplKTsKKyAgICAgICAgICAgIGJy
ZWFrOworCisgICAgICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdf
Y2FjaGVfbW9kZTogeworICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxs
b2NhdG9yX3Jlc3VsdDsKKyAgICAgICAgICAgIHBhc19sb2NhbF92aWV3X2NhY2hlKiB2aWV3X2Nh
Y2hlOworCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9n
KCJVc2luZyB0b192aWV3X2NhY2hlIGRlYWxsb2NhdGlvbiBtb2RlICgldSkuXG4iLCBwYWdlLT5v
YmplY3Rfc2l6ZSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghcGFnZV9jb25maWcu
ZW5hYmxlX3ZpZXdfY2FjaGUpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6IFZpZXcgY2FjaGUgZGlzYWJsZWQgaW4gY29uZmln
IiwgY2FjaGUtPm5vZGUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBhbGxvY2F0b3JfcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90
cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcigKKyAgICAgICAgICAgICAgICBjYWNoZSwgcGFnZS0+dmll
d19jYWNoZV9pbmRleCk7CisgICAgICAgICAgICBpZiAoIWFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1
Y2NlZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9nKCIlcDogVmlldyBjYWNoZSBpcyBkaXNhYmxlZCBmb3IgdGhpcyBwYWdlIG9y
IGl0IGRvZXNuJ3QgZXhpc3QgeWV0IGluIHRoaXMgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJUTEMuXG4iLCBjYWNoZS0+bm9kZSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICB2
aWV3X2NhY2hlID0gKHBhc19sb2NhbF92aWV3X2NhY2hlKilhbGxvY2F0b3JfcmVzdWx0LmFsbG9j
YXRvcjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICAgICAgcGFzX2xvZygiVHJ5aW5nIHRvIHB1c2ggdG8gdmlldyBjYWNoZS5cbiIpOworCisgICAg
ICAgICAgICBpZiAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbCh2aWV3X2NhY2hlKSkgewor
ICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgICAgICBwYXNfbG9n
KCIlcCwgJXA6IENhY2hlIGlzIGZ1bGwgKCV1KS5cbiIsIGNhY2hlLT5ub2RlLCB2aWV3X2NhY2hl
LCBwYWdlLT5vYmplY3Rfc2l6ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRpZF9jYWNoZV92aWV3ID0gdHJ1ZTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgcGFnZS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uID0g
dHJ1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICAgICAgcGFzX2xvZygiJXAsICVwOiBQdXNoaW5nIHRvIGNhY2hlICgldSkuXG4iLCBjYWNoZS0+
bm9kZSwgdmlld19jYWNoZSwgcGFnZS0+b2JqZWN0X3NpemUpOworCisgICAgICAgICAgICBwYXNf
bG9jYWxfdmlld19jYWNoZV9wdXNoKHZpZXdfY2FjaGUsIHZpZXcpOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0gfQorCisgICAgICAgIGlmICghZGlkX2NhY2hlX3ZpZXcpIHsKKyAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIlRlbGxpbmcgdGhl
IGRpcmVjdG9yeSB0aGF0IHdlIGFyZSBlbGlnaWJsZSAoJXUpLlxuIiwgcGFnZS0+b2JqZWN0X3Np
emUpOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29t
ZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIHZpZXctPmluZGV4KTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIC8qIENsZWFyIHRoZSBpbmVsaWdpYmxlIGJpdCBmcm9tIHRoZSBvd25lciBm
aWVsZC4gKi8KKyAgICBwYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2FzX3ZpZXdfbm9uX251bGwodmlldyk7Cit9CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRp
ZiAvKiBQQVNfU0VHUkVHQVRFRF9FWENMVVNJVkVfVklFV19JTkxJTkVTX0ggKi8KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X293bmVyc2hpcF9raW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQu
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDE0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU0VHUkVHQVRFRF9FWENMVVNJVkVfVklFV19P
V05FUlNISVBfS0lORF9ICi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVXX09X
TkVSU0hJUF9LSU5EX0gKLQotI2luY2x1ZGUgInBhc191dGlscy5oIgotCi1QQVNfQkVHSU5fRVhU
RVJOX0M7Ci0KLS8qIFRoaXMgaXMgcmVhbGx5IHR3byBmbGFncyAtLSBvd25lZCBhbmQgYmlhc2Vk
LgotCi0gICBPd25lcnNoaXAgbWVhbnMgdGhhdCB0aGUgcGFnZSBwb2ludGVyIHBvaW50cyB0byBh
IGNvbW1pdHRlZCBhbmQgZnVsbHkgY29uc3RydWN0ZWQKLSAgIHBhZ2UuIFRoZSBvd25lcnNoaXAg
bG9jayBpcyB0YWtlbiB3aGVuIHRoaXMgc3RhdGUgY2hhbmdlcy4gU28gaWYgeW91IGdyYWIgdGhl
IG93bmVyc2hpcAotICAgbG9jayBhbmQgb2JzZXJ2ZSB0aGUgb3duZXJzaGlwIGJpdCB0byBiZSBz
ZXQsIHRoZW4geW91IGtub3cgdGhhdCB5b3UgY2FuIGRlcmVmZXJlbmNlCi0gICB0aGUgcGFnZSBw
b2ludGVyIGFuZCBhY2Nlc3MgdGhlIHBhZ2Uga25vd2luZyB0aGF0IGl0J3MgZnVsbHkgaW5pdGlh
bGl6ZWQuIEJ1dCB0aGF0Ci0gICByZXF1aXJlcyBjb250aW51aW5nIHRvIGhvbGQgdGhlIG93bmVy
c2hpcCBsb2NrLgotCi0gICBCaWFzaW5nIG1lYW5zIHRoYXQgdGhlcmUgaXMgYSBiaWFzaW5nX3Zp
ZXcgdGhhdCBoYXMgdGFrZW4gb3ZlciB0aGUgZXhjbHVzaXZlIHZpZXcgYW5kCi0gICBzbyB0aGUg
ZXhjbHVzaXZlIHZpZXcgaXNuJ3QgcmVhbGx5IGFjdGluZyBhcyBhIG1lbWJlciBvZiBpdHMgZGly
ZWN0b3J5IChpdCBzaG91bGQgYmUKLSAgIGluZWxpZ2libGUgaW4gdGhhdCBkaXJlY3RvcnkgYW5k
IGlnbm9yZWQpLiAqLwotZW51bSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fKSkgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQgewotICAgIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZCwKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19vd25lZCwKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWRf
YW5kX2JpYXNlZCwKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZF9hbmRf
Ymlhc2VkLAotfTsKLQotdHlwZWRlZiBlbnVtIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X293bmVyc2hpcF9raW5kIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9r
aW5kOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZXJzaGlwX2tpbmRfaXNfb3duZWQoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfb3duZXJzaGlwX2tpbmQga2luZCkKLXsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZDoKLSAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZF9hbmRfYmlhc2VkOgotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25l
ZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkX2FuZF9iaWFz
ZWQ6Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxk
IG5vdCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgaW5saW5l
IGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlh
c2VkKAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kIGtp
bmQpCi17Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19ub3Rfb3duZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19vd25lZDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19vd25lcnNoaXBfa2luZAotcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZXJzaGlwX2tpbmRfd2l0aF9vd25lZCgKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19vd25lcnNoaXBfa2luZCBraW5kLAotICAgIGJvb2wgaXNfb3duZWQpCi17Ci0gICAgc3dp
dGNoIChraW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rf
b3duZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAg
ICAgICAgcmV0dXJuIGlzX293bmVkCi0gICAgICAgICAgICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVkCi0gICAgICAgICAgICA6IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X25vdF9vd25lZDsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25v
dF9vd25lZF9hbmRfYmlhc2VkOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfb3duZWRfYW5kX2JpYXNlZDoKLSAgICAgICAgcmV0dXJuIGlzX293bmVkCi0gICAgICAgICAg
ICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkX2FuZF9iaWFzZWQKLSAgICAg
ICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFz
ZWQ7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOwotfQotCi1z
dGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5k
Ci1wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNl
ZCgKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZCBraW5k
LAotICAgIGJvb2wgaXNfYmlhc2VkKQotewotICAgIHN3aXRjaCAoa2luZCkgewotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOgotICAgIGNhc2UgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJl
dHVybiBpc19iaWFzZWQKLSAgICAgICAgICAgID8gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfbm90X293bmVkX2FuZF9iaWFzZWQKLSAgICAgICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfbm90X293bmVkOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25l
ZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4gaXNfYmlhc2VkCi0gICAgICAgICAgICA/IHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkX2FuZF9iaWFzZWQKLSAgICAgICAgICAg
IDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWQ7Ci0gICAgfQotICAgIFBBU19B
U1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOwotfQotCi1zdGF0aWMgaW5saW5lIGNvbnN0IGNo
YXIqIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2dldF9zdHJp
bmcoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQga2lu
ZCkKLXsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X25vdF9vd25lZDoKLSAgICAgICAgcmV0dXJuICJub3Rfb3duZWQiOwotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWQ6Ci0gICAgICAgIHJldHVybiAi
b3duZWQiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVk
X2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiAibm90X293bmVkX2FuZF9iaWFzZWQiOwotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWRfYW5kX2JpYXNlZDoKLSAg
ICAgICAgcmV0dXJuICJvd25lZF9hbmRfYmlhc2VkIjsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCgh
IlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBOVUxMOwotfQotCi1QQVNfRU5E
X0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX1NFR1JFR0FURURfRVhDTFVTSVZFX1ZJRVdfT1dO
RVJTSElQX0tJTkRfSCAqLwotCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYwkobm9u
ZXhpc3RlbnQpCkBAIC0xLDEyMjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBM
SUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5LmgiCi0KLSNpbmNsdWRlICJwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIgot
I2luY2x1ZGUgInBhc19iaXRmaXRfaGVhcC5oIgotI2luY2x1ZGUgInBhc19kZWZlcnJlZF9kZWNv
bW1pdF9sb2cuaCIKLSNpbmNsdWRlICJwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190
YWJsZS5oIgotI2luY2x1ZGUgInBhc19tb25vdG9uaWNfdGltZS5oIgotI2luY2x1ZGUgInBhc19w
YWdlX21hbGxvYy5oIgotI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3N0cmVhbS5oIgotI2luY2x1ZGUg
InBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgiCi0jaW5jbHVkZSAicGFzX3V0aWxpdHlf
aGVhcC5oIgotCi1ib29sIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5f
ZXhwbG9kZSA9IGZhbHNlOwotYm9vbCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZm9yY2VfZXhwbG9kZSA9IGZhbHNlOwotCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGUoCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZSwK
LSAgICB1bnNpZ25lZCBhbGlnbm1lbnQsCi0gICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZp
ZywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpCi17Ci0gICAg
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcmVzdWx0OwotICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmQgcGFnZV9jb25maWdfa2luZDsKLQotICAgIHBhc19oZWFwX2xvY2tfYXNz
ZXJ0X2hlbGQoKTsKLQotICAgIGlmIChwYWdlX2NvbmZpZykKLSAgICAgICAgcGFnZV9jb25maWdf
a2luZCA9IHBhZ2VfY29uZmlnLT5raW5kOwotICAgIGVsc2UKLSAgICAgICAgcGFnZV9jb25maWdf
a2luZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbDsKLQotICAgIGlmIChw
YWdlX2NvbmZpZykKLSAgICAgICAgUEFTX0FTU0VSVChoZWFwX2NvbmZpZyA9PSBwYWdlX2NvbmZp
Zy0+YmFzZS5oZWFwX2NvbmZpZ19wdHIpOwotCi0gICAgcGFzX2hlYXBfY29uZmlnX2FjdGl2YXRl
KGhlYXBfY29uZmlnKTsKLQotICAgIGlmICh2ZXJib3NlICYmIHBhZ2VfY29uZmlnKSB7Ci0gICAg
ICAgIHBhc19sb2coImxvY2FsIGFsbG9jYXRvciBzaXplIGZvciAlczogJXp1XG4iLAotICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdl
X2NvbmZpZ19raW5kKSwKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX2NvbmZpZygqcGFnZV9jb25maWcp
KTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKLSAg
ICAgICAgc2l6ZW9mKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSksCi0gICAg
ICAgICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkiLAotICAgICAgICBwYXNf
b2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgcGFzX2xv
ZygiQ3JlYXRpbmcgZGlyZWN0cm95ICVwIGZvciAlc1xuIiwKLSAgICAgICAgICAgICAgICByZXN1
bHQsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZp
Z19raW5kKSk7Ci0gICAgfQotCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29u
c3RydWN0KAotICAgICAgICAmcmVzdWx0LT5iYXNlLCBwYWdlX2NvbmZpZ19raW5kLAotICAgICAg
ICBoZWFwLT5ydW50aW1lX2NvbmZpZy0+c2hhcmluZ19tb2RlLAotICAgICAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZCk7Ci0KLSAgICByZXN1bHQtPmhlYXAgPSBo
ZWFwOwotICAgIHJlc3VsdC0+b2JqZWN0X3NpemUgPSBvYmplY3Rfc2l6ZTsKLQotICAgIFBBU19B
U1NFUlQocGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25tZW50KSk7Ci0gICAgUEFTX0FTU0VSVChwYXNf
aXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgYWxpZ25tZW50KSk7Ci0gICAgcmVzdWx0LT5hbGlnbm1l
bnRfc2hpZnQgPSBwYXNfbG9nMihhbGlnbm1lbnQpOwotICAgIAotICAgIHJlc3VsdC0+YmFzZWxp
bmVfYWxsb2NhdG9yX2luZGV4ID0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfc3RvcmUoJnJl
c3VsdC0+ZGF0YSwgTlVMTCk7Ci0KLSAgICBpZiAocGFnZV9jb25maWcpCi0gICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyX3N0b3JlKCZyZXN1bHQt
PmJpdGZpdF9zaXplX2NsYXNzLCBOVUxMKTsKLSAgICBlbHNlIHsKLSAgICAgICAgcGFzX2JpdGZp
dF9oZWFwKiBiaXRmaXRfaGVhcDsKLSAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
cyogYml0Zml0X3NpemVfY2xhc3M7Ci0KLSAgICAgICAgYml0Zml0X2hlYXAgPSBwYXNfc2VncmVn
YXRlZF9oZWFwX2dldF9iaXRmaXQoaGVhcCwgaGVhcF9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQp
OwotICAgICAgICBQQVNfQVNTRVJUKGJpdGZpdF9oZWFwKTsKLSAgICAgICAgCi0gICAgICAgIGJp
dGZpdF9zaXplX2NsYXNzID0KLSAgICAgICAgICAgIHBhc19iaXRmaXRfaGVhcF9lbnN1cmVfZ2xv
YmFsX3NpemVfY2xhc3MoCi0gICAgICAgICAgICAgICAgYml0Zml0X2hlYXAsIHJlc3VsdCwgaGVh
cF9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgICAgICAKLSAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHJfc3RvcmUoCi0gICAgICAgICAg
ICAmcmVzdWx0LT5iaXRmaXRfc2l6ZV9jbGFzcywgYml0Zml0X3NpemVfY2xhc3MpOwotICAgIH0K
LSAgICAKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPm5leHRfZm9yX2hlYXAsIE5VTEwpOwotCi0gICAgaWYg
KCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5l
X2FsbG9jYXRvcnMpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9jcmVhdGVfdGxjX2FsbG9jYXRvcihyZXN1bHQpOwotICAgIGlmICghaGVhcC0+cnVudGltZV9j
b25maWctPmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzKQotICAgICAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3
cyhyZXN1bHQpOwotCi0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9mb3JjZV9leHBsb2RlCi0gICAgICAgICYmIHBhZ2VfY29uZmlnCi0gICAgICAgICYmICFwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2lzX3V0aWxpdHkocGFnZV9jb25maWdfa2luZCkp
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9leHBsb2RlKHJl
c3VsdCwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1wYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFw
X2xvY2tfaG9sZF9tb2RlKQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2Nv
bmZpZzsKLQotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLQotICAgIGlmIChkYXRhKQotICAgICAg
ICByZXR1cm4gZGF0YTsKLQotICAgIHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsK
LQotICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21v
ZGUpOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwotICAgIGlmIChkYXRhKSB7Ci0gICAgICAg
IHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7
Ci0gICAgICAgIHJldHVybiBkYXRhOwotICAgIH0KLQotICAgIGlmIChwYWdlX2NvbmZpZyAmJiBw
YWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy0+YmFzZS5ncmFudWxlX3Np
emUpIHsKLSAgICAgICAgZGF0YSA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAotICAgICAg
ICAgICAgc2l6ZW9mKHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9kYXRhKSwKLSAgICAgICAgICAgICJwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfZGF0YSIsCi0gICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwot
Ci0gICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9z
dG9yZSgKLSAgICAgICAgICAgICYoKHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9kYXRhKilkYXRhKS0+ZnVsbF91c2VfY291bnRzLCBOVUxMKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBkYXRhID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCi0gICAgICAg
ICAgICBzaXplb2YocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEpLAot
ICAgICAgICAgICAgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhIiwK
LSAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0gICAgfQotCi0gICAgcGFzX2Nv
bXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9zdG9yZSgmZGF0YS0+ZnVsbF9hbGxvY19iaXRzLCBO
VUxMKTsKLSAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVj
dCA9IDA7Ci0gICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFz
dF9vYmplY3QgPSAwOwotICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IDA7Ci0g
ICAgZGF0YS0+YWxsb2NhdG9yX2luZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7
Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9z
dG9yZSgmZGF0YS0+bmV4dF9mb3JfbGF5b3V0LCBOVUxMKTsKLQotICAgIHBhc19mZW5jZSgpOwot
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX3N0b3Jl
KCZkaXJlY3RvcnktPmRhdGEsIGRhdGEpOwotCi0gICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29u
ZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotICAgIHJldHVybiBkYXRhOwotfQot
Ci1wYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSoKLXBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7Ci0KLSAgICBwYWdlX2Nv
bmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3Rv
cnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7Ci0gICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZyk7
Ci0gICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZp
Zy0+YmFzZS5ncmFudWxlX3NpemUpOwotCi0gICAgcmV0dXJuIChwYXNfZXh0ZW5kZWRfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSopCi0gICAgICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwot
fQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxj
X2FsbG9jYXRvcigKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0
YSogZGF0YTsKLSAgICAKLSAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7Ci0KLSAgICBk
YXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRp
cmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0KLSAgICBpZiAoZGF0YS0+YWxsb2NhdG9yX2lu
ZGV4ICE9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9pc191dGlsaXR5KGRpcmVj
dG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkKGRpcmVjdG9yeSk7Ci0KLSAgICBQQVNfQVNT
RVJUKGRhdGEtPmFsbG9jYXRvcl9pbmRleCA8IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFY
KTsKLX0KLQotdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZW5hYmxl
X2V4Y2x1c2l2ZV92aWV3cygKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSogZGF0YTsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IHRlbXBsYXRlX2RpcmVjdG9yeTsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
IHBhZ2VfY29uZmlnX2tpbmQ7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2Vf
Y29uZmlnX3B0cjsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsK
LSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZTsKLSAgICBzaXplX3QgYWxsb2NfYml0c19ieXRlczsK
LSAgICB1bnNpZ25lZCBvZmZzZXQ7Ci0gICAgdW5zaWduZWQgYmVnaW47Ci0gICAgdW5zaWduZWQg
ZW5kOwotICAgIHVuc2lnbmVkKiBmdWxsX2FsbG9jX2JpdHM7Ci0gICAgdW5zaWduZWQgZnVsbF9u
dW1fbm9uX2VtcHR5X3dvcmRzOwotICAgIHNpemVfdCBpbmRleDsKLSAgICBwYXNfYWxsb2NhdGlv
bl9jb25maWcgYm9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnOwotCi0gICAgcGFzX2hlYXBfbG9j
a19hc3NlcnRfaGVsZCgpOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9lbnN1cmVfZGF0YShkaXJlY3RvcnksIHBhc19sb2NrX2lzX2hlbGQpOwotICAg
IGlmIChkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHMpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHBhZ2VfY29uZmlnX2tpbmQgPSBkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZDsK
LSAgICBpZiAocGFnZV9jb25maWdfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX251bGwpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBwYWdlX2NvbmZpZ19wdHIgPSBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcocGFnZV9jb25maWdfa2lu
ZCk7Ci0gICAgb2JqZWN0X3NpemUgPSBkaXJlY3RvcnktPm9iamVjdF9zaXplOwotICAgIAotICAg
IHRlbXBsYXRlX2RpcmVjdG9yeSA9IHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3Rh
YmxlX2dldCgKLSAgICAgICAgJnBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxl
X2luc3RhbmNlLAotICAgICAgICBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb19rZXlf
Y3JlYXRlKG9iamVjdF9zaXplLCBwYWdlX2NvbmZpZ19raW5kKSk7Ci0gICAgaWYgKHRlbXBsYXRl
X2RpcmVjdG9yeSkgewotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSogdGVtcGxhdGVfZGF0YTsKLQotICAgICAgICB0ZW1wbGF0ZV9kYXRhID0gcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJnRlbXBsYXRlX2Rp
cmVjdG9yeS0+ZGF0YSk7Ci0gICAgICAgIAotICAgICAgICBkYXRhLT5mdWxsX2FsbG9jX2JpdHMg
PSB0ZW1wbGF0ZV9kYXRhLT5mdWxsX2FsbG9jX2JpdHM7Ci0gICAgICAgIGRhdGEtPm9mZnNldF9m
cm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0KLSAgICAgICAgICAgIHRlbXBsYXRl
X2RhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0OwotICAgICAg
ICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9
Ci0gICAgICAgICAgICB0ZW1wbGF0ZV9kYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3Rv
X2VuZF9vZl9sYXN0X29iamVjdDsKLQotICAgICAgICBpZiAocGFnZV9jb25maWdfcHRyLT5iYXNl
LnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnX3B0ci0+YmFzZS5ncmFudWxlX3NpemUpIHsKLSAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRf
ZGF0YShkaXJlY3RvcnkpLT5mdWxsX3VzZV9jb3VudHMgPQotICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICAg
ICAgICAgICAgICAgICAgdGVtcGxhdGVfZGlyZWN0b3J5KS0+ZnVsbF91c2VfY291bnRzOwotICAg
ICAgICB9Ci0KLSAgICAgICAgcGFzX2ZlbmNlKCk7Ci0gICAgICAgIGRhdGEtPmZ1bGxfbnVtX25v
bl9lbXB0eV93b3JkcyA9Ci0gICAgICAgICAgICB0ZW1wbGF0ZV9kYXRhLT5mdWxsX251bV9ub25f
ZW1wdHlfd29yZHM7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBwYWdlX2NvbmZpZyA9
ICpwYWdlX2NvbmZpZ19wdHI7Ci0gICAgCi0gICAgYWxsb2NfYml0c19ieXRlcyA9IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRlcyhwYWdlX2NvbmZpZyk7Ci0gICAgZnVs
bF9hbGxvY19iaXRzID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9tYW51YWxfYWxp
Z25tZW50KAotICAgICAgICBhbGxvY19iaXRzX2J5dGVzLCBzaXplb2YodW5zaWduZWQpLAotICAg
ICAgICAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEvZnVsbF9hbGxv
Y19iaXRzIiwKLSAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLSAgICBwYXNfY29tcGFj
dF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3JlKCZkYXRhLT5mdWxsX2FsbG9jX2JpdHMsIGZ1bGxf
YWxsb2NfYml0cyk7Ci0gICAgcGFzX3plcm9fbWVtb3J5KGZ1bGxfYWxsb2NfYml0cywgYWxsb2Nf
Yml0c19ieXRlcyk7Ci0KLSAgICBiZWdpbiA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zy
b21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcpOwotICAgIGVuZCA9IHBhc19z
ZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9v
YmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhZ2VfY29uZmlnKTsKLQotICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlf
dG9fZmlyc3Rfb2JqZWN0ID0gYmVnaW47Ci0gICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3Vu
ZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSBlbmQ7Ci0KLSAgICBmb3IgKG9mZnNldCA9IGJl
Z2luOyBvZmZzZXQgPCBlbmQ7IG9mZnNldCArPSBvYmplY3Rfc2l6ZSkgewotICAgICAgICBwYXNf
Yml0dmVjdG9yX3NldCgKLSAgICAgICAgICAgIGZ1bGxfYWxsb2NfYml0cywKLSAgICAgICAgICAg
IHBhc19wYWdlX2Jhc2VfaW5kZXhfb2Zfb2JqZWN0X2F0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRh
cnkoCi0gICAgICAgICAgICAgICAgb2Zmc2V0LCBwYWdlX2NvbmZpZy5iYXNlKSwKLSAgICAgICAg
ICAgIHRydWUpOwotICAgIH0KLSAgICAKLSAgICBmdWxsX251bV9ub25fZW1wdHlfd29yZHMgPSAw
OwotICAgIGZvciAoaW5kZXggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nf
d29yZHMocGFnZV9jb25maWcpOyBpbmRleC0tOykgewotICAgICAgICBpZiAoZnVsbF9hbGxvY19i
aXRzW2luZGV4XSkKLSAgICAgICAgICAgIGZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcysrOwotICAg
IH0KLSAgICBQQVNfQVNTRVJUKGZ1bGxfbnVtX25vbl9lbXB0eV93b3Jkcyk7Ci0KLSAgICBpZiAo
cGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6
ZSkgewotICAgICAgICBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSogZXh0ZW5kZWRfZGF0YTsKLSAgICAgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291
bnQqIGZ1bGxfdXNlX2NvdW50czsKLSAgICAgICAgdWludHB0cl90IG51bV9ncmFudWxlczsKLSAg
ICAgICAgYm9vbCBpbml0aWFsaXplX3Jlc3VsdDsKLQotICAgICAgICBleHRlbmRlZF9kYXRhID0g
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2dldF9leHRlbmRlZF9kYXRhKGRp
cmVjdG9yeSk7Ci0KLSAgICAgICAgbnVtX2dyYW51bGVzID0gcGFnZV9jb25maWcuYmFzZS5wYWdl
X3NpemUgLyBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZTsKLQotICAgICAgICBmdWxsX3Vz
ZV9jb3VudHMgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX21hbnVhbF9hbGlnbm1l
bnQoCi0gICAgICAgICAgICBudW1fZ3JhbnVsZXMgKiBzaXplb2YocGFzX3BhZ2VfZ3JhbnVsZV91
c2VfY291bnQpLAotICAgICAgICAgICAgc2l6ZW9mKHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50
KSwKLSAgICAgICAgICAgICJwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YS9mdWxsX3VzZV9jb3VudHMiLAotICAgICAgICAgICAgcGFzX29iamVjdF9hbGxv
Y2F0aW9uKTsKLQotICAgICAgICBpbml0aWFsaXplX3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMoCi0gICAgICAgICAgICBOVUxMLCBkaXJlY3Rv
cnksIGZ1bGxfdXNlX2NvdW50cywgbnVtX2dyYW51bGVzLCBwYWdlX2NvbmZpZyk7Ci0KLSAgICAg
ICAgLyogVGhpcyBzaG91bGQgaGF2ZSBpbml0aWFsaXplZCBhbGwgb2YgdGhlIGJpdHMuICovCi0g
ICAgICAgIFBBU19BU1NFUlQoaW5pdGlhbGl6ZV9yZXN1bHQpOwotCi0gICAgICAgIHBhc19jb21w
YWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9zdG9yZSgKLSAgICAgICAgICAg
ICZleHRlbmRlZF9kYXRhLT5mdWxsX3VzZV9jb3VudHMsCi0gICAgICAgICAgICBmdWxsX3VzZV9j
b3VudHMpOwotICAgIH0KLQotICAgIHBhc19mZW5jZSgpOwotICAgIGRhdGEtPmZ1bGxfbnVtX25v
bl9lbXB0eV93b3JkcyA9IGZ1bGxfbnVtX25vbl9lbXB0eV93b3JkczsKLSAgICBQQVNfQVNTRVJU
KGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9PSBmdWxsX251bV9ub25fZW1wdHlfd29y
ZHMpOwotCi0gICAgcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWdfY29u
c3RydWN0KCZib290c3RyYXBfYWxsb2NhdGlvbl9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwot
ICAgIAotICAgIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2FkZF9uZXco
Ci0gICAgICAgICZwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZV9pbnN0YW5j
ZSwKLSAgICAgICAgZGlyZWN0b3J5LAotICAgICAgICBOVUxMLAotICAgICAgICAmYm9vdHN0cmFw
X2FsbG9jYXRpb25fY29uZmlnKTsKLX0KLQotdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfZXhwbG9kZShwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNf
QVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2lzX3V0aWxpdHkoZGlyZWN0
b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpKTsKLSAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+
YmFzZS5wYWdlX2NvbmZpZ19raW5kICE9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRf
bnVsbCk7Ci0KLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9j
YW5fZXhwbG9kZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9lbnN1cmVfZGF0YShkaXJlY3RvcnksIGhlYXBfbG9ja19o
b2xkX21vZGUpOwotCi0gICAgaWYgKCFwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bv
b2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKSkgewotICAgICAgICBwYXNfaGVh
cF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotICAgICAg
ICBpZiAoIXBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZGF0
YS0+Ymlhc19zaGFyaW5nX3Bvb2wpKSB7Ci0gICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2wqIHBvb2w7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBvb2wgPSBwYXNfaW1tb3J0YWxf
aGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgKLSAgICAgICAgICAgICAgICBzaXplb2YocGFz
X3BhZ2Vfc2hhcmluZ19wb29sKSwKLSAgICAgICAgICAgICAgICBhbGlnbm9mKHBhc19wYWdlX3No
YXJpbmdfcG9vbCksCi0gICAgICAgICAgICAgICAgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS9iaWFzX3NoYXJpbmdfcG9vbCIsCi0gICAgICAgICAgICAgICAgcGFzX29iamVj
dF9hbGxvY2F0aW9uKTsKLQotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2NvbnN0
cnVjdChwb29sKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9zdG9yZSgmZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wsIHBv
b2wpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19j
b25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgIH0KLQotICAgIFBBU19BU1NF
UlQocGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkKCZkYXRhLT5i
aWFzX3NoYXJpbmdfcG9vbCkpOwotfQotCi1wYXNfYmFzZWxpbmVfYWxsb2NhdG9yKgotcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3Jfc2xvdygKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAg
ICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2luaXRpYWxpemVfaWZfbmVjZXNzYXJ5KCk7
Ci0gICAgCi0gICAgZm9yICg7OykgewotICAgICAgICB1bnNpZ25lZCBhX2luZGV4OwotICAgICAg
ICB1bnNpZ25lZCBiX2luZGV4OwotICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBhX2Fs
bG9jYXRvcjsKLSAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogYl9hbGxvY2F0b3I7Ci0g
ICAgICAgIHVuc2lnbmVkIHNlbGVjdGVkX2luZGV4OwotICAgICAgICBwYXNfYmFzZWxpbmVfYWxs
b2NhdG9yKiBzZWxlY3RlZF9hbGxvY2F0b3I7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogc2VsZWN0ZWRfZGlyZWN0b3J5OwotCi0gICAgICAgIHNlbGVjdGVk
X2luZGV4ID0gZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAgIGlm
IChzZWxlY3RlZF9pbmRleCA8IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUykgewotICAgICAg
ICAgICAgc2VsZWN0ZWRfYWxsb2NhdG9yID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSAr
IHNlbGVjdGVkX2luZGV4OwotCi0gICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZzZWxlY3RlZF9h
bGxvY2F0b3ItPmxvY2spOwotCi0gICAgICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9h
bGxvY2F0b3JfaW5kZXggIT0gc2VsZWN0ZWRfaW5kZXgpIHsKLSAgICAgICAgICAgICAgICBwYXNf
bG9ja191bmxvY2soJnNlbGVjdGVkX2FsbG9jYXRvci0+bG9jayk7Ci0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZF9h
bGxvY2F0b3I7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoc2VsZWN0ZWRfaW5kZXggPCAyICog
UEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTKQotICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXgg
LT0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOwotICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIFBBU19BU1NFUlQoc2VsZWN0ZWRfaW5kZXggPT0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxM
T0NBVE9SUyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGFfaW5kZXggPSBwYXNfYmFzZWxp
bmVfYWxsb2NhdG9yX3RhYmxlX2dldF9yYW5kb21faW5kZXgoKTsKLSAgICAgICAgICAgIGJfaW5k
ZXggPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2dldF9yYW5kb21faW5kZXgoKTsKLSAg
ICAKLSAgICAgICAgICAgIGFfYWxsb2NhdG9yID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJs
ZSArIGFfaW5kZXg7Ci0gICAgICAgICAgICBiX2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxv
Y2F0b3JfdGFibGUgKyBiX2luZGV4OwotCi0gICAgICAgICAgICAvKiBJZiBpdCdzIGNoZWFwIHRv
IHN0b3Agb25lIG9mIHRoZXNlIHRoZW4ganVzdCBwaWNrIGVpdGhlciBvbmUuICovCi0gICAgICAg
ICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3JfaXNfYWN0aXZlKCZhX2FsbG9jYXRvci0+dS5h
bGxvY2F0b3IpKQotICAgICAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4ID0gYV9pbmRleDsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX2FjdGl2ZSgmYl9hbGxv
Y2F0b3ItPnUuYWxsb2NhdG9yKSkKLSAgICAgICAgICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGJf
aW5kZXg7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF92aWV3IGFfdmlldzsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IGJfdmll
dzsKLQotICAgICAgICAgICAgICAgIGFfdmlldyA9IGFfYWxsb2NhdG9yLT51LmFsbG9jYXRvci52
aWV3OwotICAgICAgICAgICAgICAgIGJfdmlldyA9IGJfYWxsb2NhdG9yLT51LmFsbG9jYXRvci52
aWV3OwotCi0gICAgICAgICAgICAgICAgaWYgKCFhX3ZpZXcpCi0gICAgICAgICAgICAgICAgICAg
IHNlbGVjdGVkX2luZGV4ID0gYV9pbmRleDsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4ID0gYl9pbmRleDsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgaWYgKCFwYXNfY29tcGFyZV9hbmRfc3dhcF91aW50MTZfd2VhaygmZGlyZWN0
b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19O
VU1fQkFTRUxJTkVfQUxMT0NBVE9SUyArIHNlbGVjdGVkX2luZGV4KSkKLSAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgfQotICAgIAotICAgICAgICBzZWxlY3RlZF9hbGxvY2F0b3Ig
PSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlICsgc2VsZWN0ZWRfaW5kZXg7Ci0gICAgCi0g
ICAgICAgIHBhc19sb2NrX2xvY2soJnNlbGVjdGVkX2FsbG9jYXRvci0+bG9jayk7Ci0KLSAgICAg
ICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID09IHNlbGVjdGVkX2lu
ZGV4KQotICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkX2FsbG9jYXRvcjsKLQotICAgICAgICBp
ZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggIT0gUEFTX05VTV9CQVNFTElO
RV9BTExPQ0FUT1JTICsgc2VsZWN0ZWRfaW5kZXgpIHsKLSAgICAgICAgICAgIHBhc19sb2NrX3Vu
bG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5sb2NrKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwot
ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX251bGwoJnNl
bGVjdGVkX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IpKSB7Ci0gICAgICAgICAgICBwYXNfbnVtX2Jh
c2VsaW5lX2FsbG9jYXRvcl9ldmljdGlvbnMrKzsKLSAgICAgICAgICAgIHNlbGVjdGVkX2RpcmVj
dG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeShzZWxl
Y3RlZF9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yLnZpZXcpOwotICAgICAgICAgICAgcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl9kZXRhY2hfZGlyZWN0b3J5KHNlbGVjdGVkX2FsbG9jYXRvcik7Ci0gICAg
ICAgICAgICBwYXNfZmVuY2UoKTsKLSAgICAgICAgICAgIHNlbGVjdGVkX2RpcmVjdG9yeS0+YmFz
ZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsK
LSAgICAgICAgfQotCi0gICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfYXR0YWNoX2RpcmVj
dG9yeShzZWxlY3RlZF9hbGxvY2F0b3IsIGRpcmVjdG9yeSk7Ci0KLSAgICAgICAgZGlyZWN0b3J5
LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSBzZWxlY3RlZF9pbmRleDsKLQotICAgICAgICBy
ZXR1cm4gc2VsZWN0ZWRfYWxsb2NhdG9yOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgdGFrZV9m
aXJzdF9lbGlnaWJsZV9kaXJlY3RfbG9vcF9oZWFkX2NhbGxiYWNrKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCog
Ymlhc19wb29sOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGRpcmVjdG9yeS0+ZGlyZWN0b3J5
X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2tpbmQpOwotICAg
IAotICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeSA9IChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLQotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZ2xvYmFsX3NpemVfZGlyZWN0b3J5LT5k
YXRhKTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBiaWFzX3Bv
b2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEt
PmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICAKLSAgICBpZiAoIWJpYXNfcG9vbCkKLSAgICAgICAg
cmV0dXJuOwotICAgIAotICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZF9oZWFwX2xvY2tfaG9sZF9tb2RlKGRpcmVjdG9yeS0+cGFn
ZV9jb25maWdfa2luZCkKLSAgICAgICAgPT0gcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgIAot
ICAgIHBhc19iaWFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UoYmlhc19wb29sKTsKLX0KLQotc3Rh
dGljIHBhc19zZWdyZWdhdGVkX3ZpZXcgdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3RfY3JlYXRl
X25ld192aWV3X2NhbGxiYWNrKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRl
X2NvbmZpZyogY29uZmlnKQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxz
ZTsKLSAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2Jh
bF9zaXplX2RpcmVjdG9yeTsKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0gICAgcGFz
X2hlYXBfcnVudGltZV9jb25maWcqIHJ1bnRpbWVfY29uZmlnOwotCi0gICAgUEFTX1RFU1RJTkdf
QVNTRVJUKGNvbmZpZy0+ZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZCk7Ci0gICAgCi0gICAgZ2xvYmFsX3NpemVfZGly
ZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSopY29uZmlnLT5k
aXJlY3Rvcnk7Ci0KLSAgICBydW50aW1lX2NvbmZpZyA9IGdsb2JhbF9zaXplX2RpcmVjdG9yeS0+
aGVhcC0+cnVudGltZV9jb25maWc7Ci0KLSAgICBpZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1l
X2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MpCi0gICAgICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3Zp
ZXdzKGdsb2JhbF9zaXplX2RpcmVjdG9yeSk7Ci0KLSAgICBpZiAoY29uZmlnLT5pbmRleCA+PSBy
dW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRv
cnMpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGVf
dGxjX2FsbG9jYXRvcihnbG9iYWxfc2l6ZV9kaXJlY3RvcnkpOwotICAgIAotICAgIGlmIChwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFi
bGVkKGdsb2JhbF9zaXplX2RpcmVjdG9yeSkpIHsKLSAgICAgICAgdmlldyA9IHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwoCi0gICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19jcmVhdGUoZ2xvYmFsX3NpemVfZGlyZWN0b3J5LCBjb25m
aWctPmluZGV4KSk7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9n
KCIlcDogY3JlYXRlZCBleGNsdXNpdmUgJXAuXG4iLAotICAgICAgICAgICAgICAgICAgICBnbG9i
YWxfc2l6ZV9kaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSk7Ci0g
ICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3X2FzX3ZpZXdfbm9uX251bGwoCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXdfY3JlYXRlKGdsb2JhbF9zaXplX2RpcmVjdG9yeSwgY29uZmlnLT5pbmRleCkp
OwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgcGFzX2xvZygiJXA6IGNyZWF0
ZWQgcGFydGlhbCAlcC5cbiIsCi0gICAgICAgICAgICAgICAgICAgIGdsb2JhbF9zaXplX2RpcmVj
dG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIHJldHVybiB2aWV3OwotfQotCi1wYXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVjdCgK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2JhbF9zaXplX2Rp
cmVjdG9yeSkKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAg
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnIGNvbmZpZzsKLSAgICBwYXNfc2VncmVnYXRl
ZF92aWV3IHZpZXc7Ci0KLSAgICBQQVNfVEVTVElOR19BU1NFUlQoCi0gICAgICAgIGdsb2JhbF9z
aXplX2RpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kICE9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2tpbmRfbnVsbCk7Ci0KLSAgICBkaXJlY3RvcnkgPSAmZ2xvYmFsX3NpemVfZGly
ZWN0b3J5LT5iYXNlOwotCi0gICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbCgKLSAgICAgICAgZGlyZWN0b3J5LCAmY29uZmlnLAot
ICAgICAgICB0YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVjdF9sb29wX2hlYWRfY2FsbGJhY2ssCi0g
ICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0X2NyZWF0ZV9uZXdfdmlld19jYWxsYmFj
ayk7Ci0KLSAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBwYXNfbG9nKCJUYWtpbmcgZWxpZ2li
bGUgdmlldyAlcCAoJXMpLlxuIiwKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9wdHIodmlldyksCi0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5k
X2dldF9zdHJpbmcocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkpOwotICAgIH0K
LQotICAgIFBBU19URVNUSU5HX0FTU0VSVCghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9C
SVQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X2luZGV4KHZpZXcpLCBlbGlnaWJsZSkpOwotICAgIAotICAgIHJldHVybiB2aWV3
OwotfQotCi1wYXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKQotewotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBh
c19wYWdlX3NoYXJpbmdfcG9vbCogYmlhc19wb29sOwotICAgIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnQgcGFydGljaXBhbnQ7Ci0gICAgdW5zaWduZWQgbWFnYXppbmVfaW5kZXg7Ci0KLSAg
ICBQQVNfVEVTVElOR19BU1NFUlQoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQgIT0g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9udWxsKTsKLQotICAgIGlmIChwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBs
b3Npb24oZGlyZWN0b3J5KSkKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2V4cGxvZGUoZGlyZWN0b3J5LCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0KLSAgICBk
YXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQo
JmRpcmVjdG9yeS0+ZGF0YSk7Ci0KLSAgICBpZiAoIWRhdGEgfHwgIW1hZ2F6aW5lKQotICAgICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3Rf
ZWxpZ2libGVfZGlyZWN0KGRpcmVjdG9yeSk7Ci0KLSAgICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFj
dF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19w
b29sKTsKLSAgICBpZiAoIWJpYXNfcG9vbCkKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVjdChkaXJlY3Rv
cnkpOwotCi0gICAgbWFnYXppbmVfaW5kZXggPSBtYWdhemluZS0+bWFnYXppbmVfaW5kZXg7Ci0K
LSAgICBwYXJ0aWNpcGFudCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFydGljaXBhbnQo
Ymlhc19wb29sLCBtYWdhemluZV9pbmRleCk7Ci0gICAgaWYgKCFwYXJ0aWNpcGFudCkgewotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7
Ci0KLSAgICAgICAgYmlhc2luZ19kaXJlY3RvcnkgPSBOVUxMOwotICAgICAgICAKLSAgICAgICAg
cGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0gICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hh
cmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFzX3Bvb2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAg
ICAgICAgaWYgKCFwYXJ0aWNpcGFudCkKLSAgICAgICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0g
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfY3JlYXRlKGRpcmVjdG9yeSwgbWFnYXpp
bmVfaW5kZXgpOwotICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwotCi0gICAgICAgIGlm
ICghcGFydGljaXBhbnQpIHsKLSAgICAgICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hh
cmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFzX3Bvb2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAg
ICAgICAgICAgIFBBU19BU1NFUlQoCi0gICAgICAgICAgICAgICAgcGFydGljaXBhbnQgPT0gcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCi0gICAgICAgICAgICAgICAgICAgICZi
aWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lw
YW50X2JpYXNpbmdfZGlyZWN0b3J5KSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgUEFT
X0FTU0VSVChwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9raW5kKHBhcnRpY2lwYW50
KQotICAgICAgICAgICAgICAgPT0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5n
X2RpcmVjdG9yeSk7Ci0gICAgCi0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAgICAgIHBhc191bndyYXBfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFudCkpLAotICAgICAgICBkaXJlY3RvcnkpOwotfQotCi10
eXBlZGVmIHN0cnVjdCB7Ci0gICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRf
bG9nOwotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlOwotICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBteV9wYWdlX2NvbmZpZ19wdHI7Ci0gICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHJlc3VsdDsKLX0gdGFrZV9sYXN0X2VtcHR5X2Rh
dGE7Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1bnNpZ25lZAotdGFrZV9sYXN0X2VtcHR5
X3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCBzZWdtZW50LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQotewotICAgIHRha2VfbGFzdF9lbXB0eV9kYXRh
KiBkYXRhOwotCi0gICAgZGF0YSA9IGNvbmZpZy0+YXJnOwotCi0gICAgcmV0dXJuIHNlZ21lbnQu
ZW1wdHlfYml0czsKLX0KLQotc3RhdGljIGJvb2wKLXRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92
aWV3KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQotewot
ICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLQotICAgIC8qIFdlIHB1dCBv
dXIgdGFrZV9sYXN0X2VtcHR5IGxvZ2ljIGluIGNvbnNpZGVyX3ZpZXcgYmVjYXVzZSBzaG91bGRf
Y29uc2lkZXJfdmlld19wYXJhbGxlbAotICAgICAgIGNhbm5vdCByZWFsbHkgdGVsbCBpZiBhIHBh
Z2UgY2FuIGJlIHRha2VuLiAqLwotCi0gICAgdGFrZV9sYXN0X2VtcHR5X2RhdGEqIGRhdGE7Ci0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKLSAgICBwYXNfZGVmZXJy
ZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2c7Ci0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhl
YXBfbG9ja19ob2xkX21vZGU7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIG15X3Bh
Z2VfY29uZmlnX3B0cjsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBteV9wYWdlX2Nv
bmZpZzsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBnZW5lcmlj
X3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXc7Ci0gICAgcGFz
X2xvY2sqIGhlbGRfbG9jazsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOwotICAgIGJv
b2wgZGlkX3Rha2VfYml0OwotICAgIHBhc19sb2NrKiBvd25lcnNoaXBfbG9jazsKLQotICAgIGRp
cmVjdG9yeSA9IGNvbmZpZy0+ZGlyZWN0b3J5OwotICAgIGluZGV4ID0gY29uZmlnLT5pbmRleDsK
LQotICAgIGRpZF90YWtlX2JpdCA9IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRp
cmVjdG9yeSwgaW5kZXgsIGVtcHR5LCBmYWxzZSk7Ci0gICAgCi0gICAgaWYgKCFkaWRfdGFrZV9i
aXQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHNpemVfZGlyZWN0b3J5ID0gKHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSopZGlyZWN0b3J5OwotICAgIGdlbmVyaWNf
dmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5LCBpbmRleCk7Ci0g
ICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZShnZW5lcmljX3Zp
ZXcpKTsKLSAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKGdlbmVy
aWNfdmlldyk7Ci0gICAgaGVsZF9sb2NrID0gTlVMTDsKLSAgICBkYXRhID0gY29uZmlnLT5hcmc7
Ci0KLSAgICBteV9wYWdlX2NvbmZpZ19wdHIgPSBkYXRhLT5teV9wYWdlX2NvbmZpZ19wdHI7Ci0g
ICAgaGVhcF9sb2NrX2hvbGRfbW9kZSA9IGRhdGEtPmhlYXBfbG9ja19ob2xkX21vZGU7Ci0gICAg
ZGVjb21taXRfbG9nID0gZGF0YS0+ZGVjb21taXRfbG9nOwotICAgIG15X3BhZ2VfY29uZmlnID0g
Km15X3BhZ2VfY29uZmlnX3B0cjsKLSAgICAKLSAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgcGFz
X2xvZygiJXA6IGNvbnNpZGVyaW5nIGVtcHR5IGluZGV4ICV6dSwgdmlldyA9ICVwLlxuIiwgZGly
ZWN0b3J5LCBpbmRleCwgdmlldyk7Ci0KLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpCi0gICAgICAgIG93bmVyc2hpcF9sb2NrID0g
cGFzX2xvY2tfZm9yX3N3aXRjaF9jb25kaXRpb25hbGx5KCZwYXNfaGVhcF9sb2NrLCBoZWFwX2xv
Y2tfaG9sZF9tb2RlKTsKLSAgICBlbHNlCi0gICAgICAgIG93bmVyc2hpcF9sb2NrID0gJnZpZXct
Pm93bmVyc2hpcF9sb2NrOwotCi0gICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIG93bmVy
c2hpcF9sb2NrKTsKLSAgICAKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNf
dXRpbGl0eShteV9wYWdlX2NvbmZpZykpCi0gICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hl
bGQoKTsKLSAgICAKLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVy
c2hpcF9raW5kX2lzX293bmVkKHZpZXctPm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICBpZiAo
dmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2coIm5vdCBvd25lZC5cbiIpOwotICAgICAgICAK
LSAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOwotICAgIH0K
LSAgICAKLSAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkodmlldy0+
cGFnZV9ib3VuZGFyeSwgbXlfcGFnZV9jb25maWcpOwotICAgIAotICAgIGlmICghcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2VkKHZpZXctPm93bmVy
c2hpcF9raW5kKSkgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2co
ImV4Y2x1c2l2ZSBtb2RlLlxuIik7Ci0gICAgICAgIAotICAgICAgICBpZiAoIVBBU19TRUdSRUdB
VEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVsaWdpYmxlLCBmYWxzZSkp
Ci0gICAgICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7Ci0g
ICAgICAgIAotICAgICAgICAvKiBJZiB3ZSBzdG9sZSBlbGlnaWJpbGl0eSB0aGVuIHRoZSBleGNs
dXNpdmUgdmlldyBjYW5ub3QgYmUgZWxpZ2liaWxlLiAqLwotICAgICAgICBQQVNfQVNTRVJUKCFw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19iaWFzZWQodmll
dy0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQodmlldy0+b3duZXJzaGlw
X2tpbmQpKSB7Ci0gICAgICAgICAgICBib29sIHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdCA9
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5k
ZXgoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKHJlc3VsdCk7Ci0g
ICAgICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIC8qIEF3a3dhcmRseSwgdGhpcyBpcyB0aGUgY29ycmVj
dCBwbGFjZSB0byBkbyB0aGUgcXVhbGlmaWVzLWZvci1kZWNvbW1pdCBjaGVjay4gU2VlIGNvbW1l
bnQKLSAgICAgICAgICAgYmVsb3csIGluIHRoZSBiaWFzaW5nIGNhc2UsIGFib3ZlIHRoZSBzYW1l
IGNoZWNrLiBUaGVuIHlvdSdsbCB1bmRlcnN0YW5kIHdoeSB3ZSBkbyB0aGlzCi0gICAgICAgICAg
IGNoZWNrIGhlcmUuICovCi0gICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZp
ZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSkgewotICAgICAgICAgICAgaWYg
KHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygid2FzIG5vdCBlbXB0eS5cbiIpOwot
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGln
aWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAgIGdvdG8gcmVsZWFz
ZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgb3duaW5nX3ZpZXc7Ci0gICAgICAgIHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2luZ192aWV3OwotICAgICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnkqIG93bmluZ19kaXJlY3Rvcnk7Ci0gICAgICAgIHNpemVfdCBpbmRleF9pbl9v
d25pbmc7Ci0gICAgICAgIGJvb2wgcmVzdWx0OwotICAgICAgICAKLSAgICAgICAgLyogVGhpcyBp
cyB0aGUgb3duZWQrYmlhc2VkIGNhc2UuICovCi0gICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19vd25lZCh2aWV3
LT5vd25lcnNoaXBfa2luZCkpOwotICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2VkKHZpZXctPm93bmVy
c2hpcF9raW5kKSk7Ci0KLSAgICAgICAgb3duaW5nX3ZpZXcgPSBwYWdlLT5vd25lcjsKLQotICAg
ICAgICAvKiBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IGlmIHdlIGRldGVjdCBjZXJ0YWluIGtpbmRz
IG9mIGluY29uc2lzdGVudCBzdGF0ZSB0aGVuIGl0IGNvdWxkIGJlCi0gICAgICAgICAgIHRoYXQg
d2UncmUgcmFjaW5nIHdpdGggc29tZW9uZSB0cnlpbmcgdG8gdXNlIHRoaXMgdmlldyBmb3IgYWxs
b2NhdGlvbiAtIGluIHBhcnRpY3VsYXIsCi0gICAgICAgICAgIGJpYXNpbmcgb3IgdW5iaWFzaW5n
LiBJbiB0aGF0IGNhc2UsIHdlIGp1c3QgbG9zZSB0aGUgcmFjZS4KLSAgICAgICAgCi0gICAgICAg
ICAgIFRoaXMgaXMgZmluZSBiZWNhdXNlIGluIGVhY2ggb2YgdGhvc2UgcmFjZXMsIHdlIGFyZW4n
dCBmb3JnZXR0aW5nIGFib3V0IHRoZSBlbXB0eSBiaXQ6Ci0gICAgICAgIAotICAgICAgICAgICAt
IFdlIGNvdWxkIGJlIHJhY2luZyB3aXRoIGJpYXNpbmc6IHRoZSBwYWdlLT5vd25lciBoYXNuJ3Qg
eWV0IGJlZW4gc2V0IHRvIHRoZSBiaWFzaW5nIHZpZXcsCi0gICAgICAgICAgICAgYnV0IHRoZSBv
d25lcnNoaXAga2luZCBoYXMgYWxyZWFkeSBiZWVuIHNldCB0byBiaWFzZWQuIEluIHRoYXQgY2Fz
ZSwgaXQncyBPSyB0byBiYWlsIG91dAotICAgICAgICAgICAgIGV2ZW4gdGhvdWdoIHdlJ3ZlIGFs
cmVhZHkgdGFrZW4gdGhlIGVtcHR5IGJpdCwgc2luY2UgYmlhc2luZyBoYXBwZW5zIG9uIGEgcGF0
aC1vZi1uby1yZXR1cm4KLSAgICAgICAgICAgICB0byBhbGxvY2F0aW5nIHNvbWUgb2JqZWN0IGlu
IHRoZSBwYWdlLCB3aGljaCB3aWxsIGNhdXNlIGl0IHRvIGJlY29tZSBub24tZW1wdHkuIEFsc28s
Ci0gICAgICAgICAgICAgYWxsb2NhdGlvbiBtZWFucyB0aGF0IHdlIHdpbGwgaGF2ZSB0byBkaWRf
c3RvcF9hbGxvY2F0aW5nLCB3aGljaCBzZXRzIHRoZSBlbXB0eSBiaXQgYWdhaW4KLSAgICAgICAg
ICAgICBpZiB0aGUgcGFnZSBpcyBlbXB0eSBhdCB0aGF0IHBvaW50LgotICAgICAgICAKLSAgICAg
ICAgICAgLSBXZSBjb3VsZCBiZSByYWNpbmcgd2l0aCB1bmJpYXNpbmc6IGZvciBub3csIHRoaW5n
cyBhcmUgZmluZSwgc2luY2UgaWYgd2Ugc2VlIHRoYXQgdGhlCi0gICAgICAgICAgICAgb3duZXJz
aGlwX2tpbmQgaXMgYmlhc2VkIHdoaWxlIGhvbGRpbmcgdGhlIG93bmVyc2hpcCBsb2NrLCB0aGVu
IGl0IG11c3QgbWVhbiB0aGF0IHdlJ3JlCi0gICAgICAgICAgICAgcnVubmluZyBiZWZvcmUgYW55
IHVuYmlhc2luZyBoYXBwZW5lZCwgb3Igd2UgYXJlIHJpZ2h0IHBhc3QgdGhlIHBvaW50IHdoZXJl
IHVuYmlhc2luZyB3b3VsZAotICAgICAgICAgICAgIGhhdmUgdGFrZW4gZWxpZ2liaWxpdHkgYnV0
IGJlZm9yZSB0aGUgcG9pbnQgd2hlcmUgaXQgd291bGQgZ3JhYiB0aGUgb3duZXJzaGlwIGxvY2su
IFRoaXMKLSAgICAgICAgICAgICBtZWFucyB0aGF0IHdlIGNvdWxkIGZhaWwgdG8gdGFrZSB0aGUg
ZWxpZ2libGUgYml0IGhlcmUuIEJ1dCB0aGVuIHVuYmlhc2luZyB3b3VsZCBzZXQgdGhlCi0gICAg
ICAgICAgICAgZW1wdHkgYml0IGlmIGl0IG5lZWRzIHRvIGJlIHNldC4gV2hlbiB3ZSBzd2l0Y2gg
bG9ja3MgdG8gdGhlIHBhZ2UgbG9jaywgdGhlbiB3ZSB3b3VsZCBoYXZlCi0gICAgICAgICAgICAg
YWxyZWFkeSBtYXJrZWQgdGhlIGV4Y2x1c2l2ZSB2aWV3IGFzIG5vdCBiaWFzZWQsIHdoaWNoIHdv
dWxkIGNhdXNlIGFueSBvdGhlciB1bmJpYXNpbmcKLSAgICAgICAgICAgICBhdHRlbXB0IHRvIGdp
dmUgdXAuICovCi0KLSAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfYmlh
c2luZyhvd25pbmdfdmlldykpIHsKLSAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAg
ICAgICAgIHBhc19sb2coIm93bmluZyB2aWV3IGlzIG5vdCBzb21lIGJpYXNpbmcuXG4iKTsKLSAg
ICAgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygib3duaW5n
IHZpZXcgaXMgYmlhc2luZy5cbiIpOwotICAgICAgICAKLSAgICAgICAgYmlhc2luZ192aWV3ID0g
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyhvd25pbmdfdmlldyk7Ci0KLSAgICAgICAg
LyogSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaWFzaW5nIGNvZGUgaGFzIGFscmVhZHkgYXNzb2Np
YXRlZCB0aGUgYmlhc2luZyB2aWV3IHdpdGggdGhlIGV4Y2x1c2l2ZQotICAgICAgICAgICB2aWV3
LCBidXQgaGFzbid0IHlldCB0b2xkIHRoZSBwYWdlLiBXZSBjb3VsZCBzZWUgdGhhdCBzaW5jZSB0
aGUgb3duZXJzaGlwIGxvY2sgd291bGQgYmUKLSAgICAgICAgICAgZHJvcHBlZCBieSB0aGVuLiBC
dXQgaW4gdGhhdCBjYXNlLCB0aGUgcGFnZSB3b3VsZCB0aGluayB0aGF0IGl0cyBvd25lciBpcyBl
eGNsdXNpdmUsIG5vdAotICAgICAgICAgICBiaWFzaW5nLiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhl
IHVuYmlhc2luZyBjb2RlIGhhcyBhbHJlYWR5IGRpc2Fzc29jaWF0ZWQgdGhlIGJpYXNpbmcgYW5k
Ci0gICAgICAgICAgIGV4Y2x1c2l2ZSB2aWV3cywgYnV0IGhhc24ndCB5ZXQgdG9sZCB0aGUgcGFn
ZS4gV2UgY291bGQgc2VlIHRoYXQgc2luY2UgdGhlIG93bmVyc2hpcCBsb2NrCi0gICAgICAgICAg
IHdvdWxkIGJlIGRyb3BwZWQgYnkgdGhlbi4gQnV0IGluIHRoYXQgY2FzZSwgd2Ugd291bGRuJ3Qg
aGF2ZSBlbmRlZCB1cCBoZXJlLiBBbmQgaXQncyBub3QKLSAgICAgICAgICAgcG9zc2libGUgZm9y
IGJpYXNpbmcgYW5kIHVuYmlhc2luZyB0byBpbnRlcmxlYXZlLiBCaWFzaW5nIHJ1bnMgYWZ0ZXIg
Ym90aCB0aGUgYmlhc2luZyBhbmQKLSAgICAgICAgICAgZXhjbHVzaXZlIHZpZXcgYXJlIGluZWxp
Z2libGUuIFVuYmlhc2luZyBydW5zIHdoaWxlIHRoZSBleGNsdXNpdmUgdmlldyBpcyBzdGlsbCBp
bmVsaWdpYmxlCi0gICAgICAgICAgIChieSB2aXJ0dWUgb2YgdGhlIHZpZXcgYmVpbmcgYmlhc2Vk
IHN0aWxsKSBhbmQgdGhlIGJpYXNpbmcgdmlldyBpcyBtYWRlIGluZWxpZ2libGUgYWxzby4KLSAg
ICAgICAgICAgVGhlcmVmb3JlLCB0aGV5IGNhbm5vdCBydW4gYXQgdGhlIHNhbWUgdGltZSBmb3Ig
ZWl0aGVyIHRoZSBzYW1lIGV4Y2x1c2l2ZSB2aWV3IChhbmQgc28gcGFnZSkKLSAgICAgICAgICAg
b3IgdGhlIHNhbWUgYmlhc2luZyB2aWV3LiAqLwotICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKCZiaWFzaW5nX3Zp
ZXctPmV4Y2x1c2l2ZSkKLSAgICAgICAgICAgICAgICAgICA9PSB2aWV3KTsKLQotICAgICAgICBp
ZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2coImhhdmUgcmlnaHQgZXhjbHVzaXZlLlxu
Iik7Ci0gICAgICAgIAotICAgICAgICBvd25pbmdfZGlyZWN0b3J5ID0KLSAgICAgICAgICAgICZw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkKCZiaWFzaW5n
X3ZpZXctPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgICAgIGluZGV4X2luX293bmluZyA9IGJpYXNp
bmdfdmlldy0+aW5kZXg7Ci0gICAgICAgIAotICAgICAgICBpZiAoIVBBU19TRUdSRUdBVEVEX0RJ
UkVDVE9SWV9TRVRfQklUKAotICAgICAgICAgICAgICAgIG93bmluZ19kaXJlY3RvcnksIGluZGV4
X2luX293bmluZywgZWxpZ2libGUsIGZhbHNlKSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2Up
Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygiZGlkIG5vdCBnZXQgZWxpZ2liaWxpdHkuXG4iKTsK
LSAgICAgICAgICAgIAotICAgICAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0
dXJuX2ZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICAvKiBCZWZvcmUgd2UgdW5i
aWFzLCBpdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIGlmIHRoZSBwYWdlIHdvdWxkIHF1YWxp
ZnkgZm9yIGRlY29tbWl0Ci0gICAgICAgICAgIGF0IGFsbC4gTGlrZSwgd2UgY2FuJ3QgdW5iaWFz
IGFuZCB0aGVuIGRvIHRoaXMgY2hlY2sgLSBpZiB3ZSBkaWQsIHRoZW4gYW55IGJpYXNlZCBwYWdl
Ci0gICAgICAgICAgIHRoYXQgaGFkIGV2ZXIgZ29uZSBlbXB0eSB3b3VsZCBiZSB1bmJpYXNlZCB0
aGUgZmlyc3QgdGltZSB0aGUgc2NhdmVuZ2VyIHJhbi4gQnV0IGl0J3MKLSAgICAgICAgICAgY29v
bCAtLSB3ZSBjYW4gZG8gdGhpcy4gSGVyZSdzIHRoZSByZWFzb25pbmcuCi0gICAgICAgICAgIAot
ICAgICAgICAgICBBdCB0aGlzIHBvaW50LCB3ZSBjYW4gbWFrZSBhIGZpbmFsIGp1ZGdlbWVudCBz
aW5jZSB3ZToKLSAgICAgICAgICAgCi0gICAgICAgICAgIC0gSG9sZCB0aGUgb3duZXJzaGlwIGxv
Y2sgYW5kIGhhdmUgY29uZmlybWVkIHRoYXQgdGhlIHBhZ2UgaXMgc3RpbGwgb3duZWQuIFNvLCB3
ZQotICAgICAgICAgICBjYW4gcmVhZCB0aGUgcGFnZS4KLSAgICAgICAgICAgCi0gICAgICAgICAg
IC0gVGhhdCBwYWdlIGlzIGluZWxpZ2libGUuIFNvLCBpZiBpdCBoYWQgYmVlbiBlbXB0eSBhdCB0
aGUgbW9tZW50IHdlIG1hZGUgaXQKLSAgICAgICAgICAgaW5lbGlnaWJsZSB0aGVuIGl0IGNhbid0
IHBvc3NpYmx5IGZpbGwgdXAgdW50aWwgd2UgbWFrZSBpdCBlbGlnaWJsZSBhZ2Fpbi4gT25seQot
ICAgICAgICAgICBkZWFsbG9jYXRpb25zIGNhbiBoYXBwZW4uIFNvLCBpdCBfaXNfIHBvc3NpYmxl
IGZvciB1cyB0byBub3cgdGhpbmsgdGhhdCB0aGUgcGFnZSBpcwotICAgICAgICAgICBub3QgZW1w
dHkgYnV0IHRoZSBwYWdlIGNhbiBiZWNvbWUgZW1wdHkgcmlnaHQgYWZ0ZXIgdGhhdC4gRm9ydHVu
YXRlbHksIGlmIHRoYXQKLSAgICAgICAgICAgaGFwcGVucywgdGhlIGVtcHR5IGJpdCB3aWxsIGdl
dCBzZXQgYWdhaW4uICovCi0gICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZp
ZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSkgewotICAgICAgICAgICAgaWYg
KHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygid2FzIG5vdCBlbXB0eS5cbiIpOwot
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGln
aWJsZV9hdF9pbmRleCgKLSAgICAgICAgICAgICAgICBvd25pbmdfZGlyZWN0b3J5LCBpbmRleF9p
bl9vd25pbmcpOwotICAgICAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJu
X2ZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICAvKiBVbmJpYXMuIFRoaXMgZW5z
dXJlcyB0aGF0IHdoZW4gdGhlIGJpYXNpbmcgZGlyZWN0b3J5IHRyaWVzIHRvIGFsbG9jYXRlIG91
dCBvZgotICAgICAgICAgICB0aGlzIGJpYXNpbmcgdmlldywgaXQgZ2V0cyBhIGNoYW5jZSB0byB0
YWtlX2ZpcnN0X2VsaWdpYmxlIGZyb20gdGhpcyBnbG9iYWwgc2l6ZQotICAgICAgICAgICBkaXJl
Y3RvcnkgKHdoaWNoIGhvcGVmdWxseSBnaXZlcyBpdCBhIHZpZXcgdGhhdCBpc24ndCBkZWNvbW1p
dHRlZCkuICovCi0gICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kID0KLSAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX3dpdGhfYmlhc2VkKAot
ICAgICAgICAgICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kLCBmYWxzZSk7Ci0gICAgICAgIGlm
ICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25lcnNoaXAg
a2luZCA9ICVzIGR1ZSB0byB1bmJpYXNpbmcgaW4gdGFrZV9sYXN0X2VtcHR5XG4iLAotICAgICAg
ICAgICAgICAgICAgICB2aWV3LAotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRfc3RyaW5nKAotICAgICAgICAgICAgICAg
ICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCAq
bXlfcGFnZV9jb25maWdfcHRyKTsKLSAgICAgICAgCi0gICAgICAgIC8qIElmIHRoaXMgZXhjbHVz
aXZlIGFscmVhZHkgaGFkIGEgcGFnZSwgdGhlbiB0aGUgcGFnZSBtdXN0IGJlIHNheWluZyB0aGF0
IGl0J3MKLSAgICAgICAgICAgZWxpZ2libGUuIFNvIGl0IGlzX2JpYXNpbmcsIG5vdCBtZXJlbHkg
aXNfc29tZV9iaWFzaW5nLiAqLwotICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfaXNfYmlhc2luZyhwYWdlLT5vd25lcikpOwotICAgICAgICAKLSAgICAgICAgcGFnZS0+b3du
ZXIgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19hc192aWV3X25vbl9udWxsKHZpZXcp
OwotICAgICAgICAKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfcHRyX3N0b3JlKCZiaWFzaW5nX3ZpZXctPmV4Y2x1c2l2ZSwgTlVMTCk7Ci0gICAg
ICAgIAotICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRf
YmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAotICAgICAgICAgICAgb3duaW5nX2RpcmVjdG9yeSwg
aW5kZXhfaW5fb3duaW5nKTsKLSAgICAgICAgUEFTX0FTU0VSVChyZXN1bHQpOwotICAgIH0KLSAg
ICAKLSAgICAvKiBUaGlzIGhhcyBhIHZlcnkgc2hvcnQgcmFjZSB0aGF0IGNhdXNlcyB0aGUgZGly
ZWN0b3J5IHRvIHBvc3NpYmx5IHdhc3RlIG1lbW9yeTogaWYKLSAgICAgICBkdXJpbmcgdGhpcyBi
cmllZiB3aW5kb3cgd2UgaGF2ZSBzb21lb25lIHRyeWluZyB0byBmaW5kIGFuIGVsaWdpYmxlIHBh
Z2UsIHRoZXkgbWF5Ci0gICAgICAgZW5kIHVwIGFsbG9jYXRpbmcgYSBuZXcgb25lLgotICAgICAg
IAotICAgICAgIEJ1dCB3ZSBkZWxpYmVyYXRlbHkga2VlcCB0aGUgZHVyYXRpb24gb2YgdGhpcyBy
YWNlIHdpbmRvdyBzaG9ydC4gV2UgbWFrZSB0aGUgcGFnZQotICAgICAgIGluZWxpZ2libGUgb25s
eSBkdXJpbmcgdGhlIHRpbWUgaXQgdGFrZXMgdXMgdG8gZmlndXJlIG91dCBob3cgdG8gZGVjb21t
aXQgaXQgYW5kIHRvCi0gICAgICAgYWNxdWlyZSB0aGUgY29tbWl0IGxvY2suIFRoZSBjb21taXQg
bG9jayBzaG91bGQgYmUgdHJpdmlhbGx5IGF2YWlsYWJsZSBoZXJlLCBzbwotICAgICAgIHRoYXQn
cyBqdXN0IGEgQ0FTLiBBZnRlciB0aGF0LCB0aGUgcGFnZSBpcyBtYWRlIGVpdGhlciBlbGlnaWJs
ZSBvciBkZWNvbW1pdHRlZC4KLSAgICAgICBFaXRoZXIgd2F5LCBpZiBpdCdzIHRoZSBmaXJzdCBl
bGlnaWJsZSwgc29tZW9uZSB3aWxsIHRyeSB0byB1c2UgaXQuIEF0IHRoYXQgcG9pbnQsCi0gICAg
ICAgaWYgd2UgYXJlIG5vdCBkb25lLCB0aGV5IHdpbGwgd2FpdCBmb3IgdXMgc2luY2Ugd2UgaG9s
ZCB0aGUgY29tbWl0IGxvY2suICovCi0KLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9s
b2NrKHBhZ2UsICZoZWxkX2xvY2ssIG15X3BhZ2VfY29uZmlnKTsKLQotICAgIGlmIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSkgewotICAgICAg
ICAvKiBUaGUgdXRpbGl0eSBoZWFwIHJlcXVpcmVzIHVzIHRvIGhvbGQgdGhlIGhlYXAgbG9jayBh
bnl0aW1lIHdlJ2QgaG9sZCB0aGUgb3duZXJzaGlwLCBjb21taXQsCi0gICAgICAgICAgIG9yIHBh
Z2UgbG9ja3MuIEl0IGp1c3Qgc28gaGFwcGVucyB0aGF0IHdlIHdlcmUgYWxyZWFkeSBob2xkaW5n
IHRoZSBoZWFwIGxvY2ssIGFuZAotICAgICAgICAgICBwYWdlX3N3aXRjaF9sb2NrIGRvZXMgbm90
aGluZyBmb3IgdXRpbGl0eS4gU28gd2Ugc2hvdWxkIHN0aWxsIGJlIGhvbGRpbmcgdGhlIGhlYXAg
bG9jay4gKi8KLSAgICAgICAgUEFTX0FTU0VSVChoZWxkX2xvY2sgPT0gcGFzX2xvY2tfZm9yX3N3
aXRjaF9jb25kaXRpb25hbGx5KCZwYXNfaGVhcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKSk7
Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKLSAgICB9Ci0KLSAgICBQQVNf
QVNTRVJUKCFQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfR0VUX0JJVChkaXJlY3RvcnksIGluZGV4
LCBlbGlnaWJsZSkpOwotCi0gICAgLyogSXQncyB0b3RhbGx5IHBvc3NpYmxlIHRoYXQgdGhlIGVt
cHR5IGJpdCBnb3Qgc2V0IGFnYWluLiBXZSBzaG91bGQgY2xlYXIgaXQgZm9yIHN1cmUgbm93LiAq
LwotICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgs
IGVtcHR5LCBmYWxzZSk7Ci0KLSAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSk7Ci0gICAg
Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9j
b25maWcpKSB7Ci0gICAgICAgIFBBU19BU1NFUlQobXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3Np
emUgPT0gbXlfcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemUpOwotICAgICAgICAKLSAgICAg
ICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwotCi0gICAgICAgIHZpZXctPm93bmVyc2hp
cF9raW5kID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfd2l0
aF9vd25lZCgKLSAgICAgICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kLCBmYWxzZSk7Ci0gICAg
ICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25l
cnNoaXAga2luZCA9ICVzIGR1ZSB0byB1dGlsaXR5IGRlY29tbWl0IGluIHRha2VfbGFzdF9lbXB0
eVxuIiwKLSAgICAgICAgICAgICAgICAgICAgdmlldywKLSAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfZ2V0X3N0cmluZygKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgIH0K
LSAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KAotICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBteV9wYWdlX2NvbmZpZyksCi0gICAgICAgICAgICBt
eV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7Ci0gICAgICAgIGRlY29tbWl0X2xvZy0+dG90
YWwgKz0gbXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemU7Ci0gICAgICAgIG15X3BhZ2VfY29u
ZmlnLmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFnZS0+YmFzZSwgcGFzX2xvY2tfaXNfaGVs
ZCk7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxp
Z2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgIHBhc19sb2NrX3N3aXRj
aCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICAgICAgZGF0YS0+cmVzdWx0ID0gcGFzX3BhZ2Vfc2hh
cmluZ19wb29sX3Rha2Vfc3VjY2VzczsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAg
IAotICAgIGlmIChwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzKSB7Ci0gICAgICAgIGJvb2wgZGVj
b21taXRfcmVzdWx0OwotICAgICAgICBzaXplX3QgbnVtX2NvbW1pdHRlZF9ncmFudWxlczsKLSAg
ICAgICAgCi0gICAgICAgIC8qIE5vIHBhcnRpYWwgZGVjb21taXQgaW4gdGhlIHV0aWxpdHkgaGVh
cCEgKi8KLSAgICAgICAgUEFTX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNf
dXRpbGl0eShteV9wYWdlX2NvbmZpZykpOwotICAgICAgICAKLSAgICAgICAgLyogV2Uga25vdyB0
aGF0IHRoZXJlIG11c3QgYmUgZW1wdHkgZ3JhbnVsZXMgaW4gdGhpcyBwYWdlLCBzaW5jZSBlaXRo
ZXIgdGhlIGVtcHR5Ci0gICAgICAgICAgIG9yIHRoZSBwYXJ0bHlfZW1wdHkgYml0IHdhcyBzZXQu
IFRob3NlIGJpdHMgd291bGRuJ3QgZ2V0IHNldCB1bmxlc3Mgd2Ugbm90aWNlZAotICAgICAgICAg
ICBhbiBlbXB0eSBncmFudWxlLiBJZiB3ZSBkaWQgdHJ5IHRvIGFsbG9jYXRlIGZyb20gdGhvc2Ug
Z3JhbnVsZXMsIHdlIHdvdWxkIGZpcnN0Ci0gICAgICAgICAgIGhhdmUgdG8gdGFrZSBhd2F5IGl0
cyBlbGlnaWJpbGl0eSBhbmQgdGhlbiBjbGVhciBpdHMgZW1wdHkgYml0cy4gQnV0IHdlIGtub3cg
dGhhdAotICAgICAgICAgICB0aGlzIGNvdWxkIG5vdCBoYXZlIGhhcHBlbmVkIHNpbmNlICp3ZSog
dG9vayBhd2F5IGl0cyBlbGlnaWJpbGl0eS4gKi8KLSAgICAgICAgCi0gICAgICAgIGRlY29tbWl0
X3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfdGFrZV9lbXB0eV9ncmFudWxlcygKLSAgICAg
ICAgICAgIHBhZ2UsIGRlY29tbWl0X2xvZywgJmhlbGRfbG9jaywgcGFzX3JhbmdlX2lzX25vdF9s
b2NrZWQsIGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICAKLSAgICAgICAgcGFzX2xvY2tf
c3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotICAgICAgICAKLSAgICAgICAgbnVtX2NvbW1pdHRl
ZF9ncmFudWxlcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X251bV9jb21taXR0ZWRfZ3JhbnVs
ZXMocGFnZSk7Ci0gICAgICAgIFBBU19BU1NFUlQobnVtX2NvbW1pdHRlZF9ncmFudWxlcyk7Ci0g
ICAgICAgIAotICAgICAgICAvKiBUaGUgcGFnZSBjYW4gYmVjb21lIGVsaWdpYmxlIGFnYWluIG5v
dyB0aGF0IHdlJ3ZlIG1hcmtlZCB0aGluZ3MgZm9yIGRlY29tbWl0LiAqLwotICAgICAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRp
cmVjdG9yeSwgaW5kZXgpOwotICAgICAgICAKLSAgICAgICAgaWYgKGRlY29tbWl0X3Jlc3VsdCkg
ewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6
IGRpZCBwYXJ0bHkgdGFrZSBpbmRleCAlenVcbiIsIGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlk
X2JlY29tZV9lbXB0eV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAgIGRh
dGEtPnJlc3VsdCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxl
OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAg
ICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgJnZpZXctPm93bmVyc2hpcF9sb2NrKTsK
LSAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19vd25lcnNoaXBfa2luZF93aXRoX293bmVkKAotICAgICAgICAgICAgdmlldy0+b3duZXJz
aGlwX2tpbmQsIGZhbHNlKTsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBh
c19sb2coInZpZXcgJXAgaGFzIG93bmVyc2hpcCBraW5kID0gJXMgZHVlIHRvIG5vcm1hbCBkZWNv
bW1pdCBpbiB0YWtlX2xhc3RfZW1wdHlcbiIsCi0gICAgICAgICAgICAgICAgICAgIHZpZXcsCi0g
ICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kX2dldF9zdHJpbmcoCi0gICAgICAgICAgICAgICAgICAgICAgICB2aWV3LT5vd25lcnNo
aXBfa2luZCkpOwotICAgICAgICB9Ci0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2Nr
LCBOVUxMKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV90YWtl
X3BoeXNpY2FsbHkoCi0gICAgICAgICAgICAgICAgcGFnZSwgZGVjb21taXRfbG9nLCBwYXNfcmFu
Z2VfaXNfbm90X2xvY2tlZCwgaGVhcF9sb2NrX2hvbGRfbW9kZSkpIHsKLSAgICAgICAgICAgIFBB
U19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfaXNfdXRpbGl0eShkaXJl
Y3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcGFz
X2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssICZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAg
ICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X293bmVyc2hpcF9raW5kX3dpdGhfb3duZWQoCi0gICAgICAgICAgICAgICAgdmlldy0+b3duZXJz
aGlwX2tpbmQsIHRydWUpOwotICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAg
ICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25lcnNoaXAga2luZCA9ICVzIGR1ZSB0byB1bmRv
IG9mIGRlY29tbWl0IGluIHRha2VfbGFzdF9lbXB0eVxuIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVf
YXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgp
OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBkYXRhLT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfdGFrZV9sb2Nrc191bmF2YWlsYWJsZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAg
ICAgcGFzX2xvZygiJXA6IGRpZCBmdWxseSB0YWtlIGluZGV4ICV6dVxuIiwgZGlyZWN0b3J5LCBp
bmRleCk7Ci0gICAgICAgICAgICBwYXNfbG9nKCJEZXN0cm95aW5nIHBhZ2UgaGVhZGVyIGZvciB2
aWV3ID0gJXAsIHBhZ2UgPSAlcCwgYm91bmRhcnkgPSAlcCAoJXApICIKLSAgICAgICAgICAgICAg
ICAgICAgImFzIHBhcnQgb2YgZGVjb21taXQuXG4iLAotICAgICAgICAgICAgICAgICAgICB2aWV3
LCBwYWdlLCBwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIG15X3BhZ2VfY29uZmln
KSwKLSAgICAgICAgICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSk7Ci0gICAgICAgIH0K
LSAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5i
YXNlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgp
OwotICAgIH0KLSAgICAKLSAgICBkYXRhLT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
dGFrZV9zdWNjZXNzOwotICAgIHJldHVybiB0cnVlOwotCi1yZWxlYXNlX2hlbGRfbG9ja19hbmRf
cmV0dXJuX2ZhbHNlOgotICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLQot
ICAgIC8qIFJldHVybmluZyBmYWxzZSBtZWFucyB0aGF0IHRoZSBiYWNrd2FyZHMgaXRlcmF0aW9u
IGtlZXBzIGdvaW5nIGFuZCB0aGlzIHNob3VsZCBnZXQgY2FsbGVkCi0gICAgICAgYWdhaW4gaWYg
dGhlcmUgYXJlIGFueSBvdGhlciB2aWV3cyBtYXJrZWQgZW1wdHkuICovCi0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1wYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQKLXBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKLSAgICBwYXNfZGVm
ZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2csCi0gICAgcGFzX2xvY2tfaG9sZF9tb2Rl
IGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAgLyogQmUgY2FyZWZ1bDogaGVhcF9sb2NrX2hv
bGRfbW9kZSBoZXJlIGNhbiBiZSB1bnJlbGF0ZWQgdG8gd2hhdCBwYWdlX2NvbmZpZyBzYXlzLCBz
aW5jZQotICAgICAgIHdlIG1heSBiZSBhc2tlZCBieSB0aGUgcGh5c2ljYWwgcGFnZSBzaGFyaW5n
IHBvb2wgdG8gZGVjb21taXQgb24gYmVoYWxmIG9mIGFueSBvdGhlciBoZWFwLAotICAgICAgIGlu
Y2x1ZGluZyBvbmVzIHRoYXQgaG9sZCB0aGUgaGVhcCBsb2NrIHdoaWxlIGRvaW5nIGJ1c2luZXNz
LiAqLwotCi0gICAgdGFrZV9sYXN0X2VtcHR5X2RhdGEgZGF0YTsKLSAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcgY29uZmlnOwotICAgIGJvb2wgZGlkX2ZpbmRfc29t
ZXRoaW5nOwotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotCi0gICAg
ZGlyZWN0b3J5ID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOwotCi0gICAgUEFTX1RFU1RJTkdfQVNT
RVJUKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kX251bGwpOwotCi0gICAgZGF0YS5kZWNvbW1pdF9sb2cgPSBkZWNvbW1pdF9sb2c7
Ci0gICAgZGF0YS5oZWFwX2xvY2tfaG9sZF9tb2RlID0gaGVhcF9sb2NrX2hvbGRfbW9kZTsKLSAg
ICBkYXRhLnJlc3VsdCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxl
OwotCi0gICAgZGF0YS5teV9wYWdlX2NvbmZpZ19wdHIgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKTsKLQotICAg
IGNvbmZpZy5kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7Ci0gICAgY29uZmlnLnNob3VsZF9jb25zaWRl
cl92aWV3X3BhcmFsbGVsID0gdGFrZV9sYXN0X2VtcHR5X3Nob3VsZF9jb25zaWRlcl92aWV3X3Bh
cmFsbGVsOwotICAgIGNvbmZpZy5jb25zaWRlcl92aWV3ID0gdGFrZV9sYXN0X2VtcHR5X2NvbnNp
ZGVyX3ZpZXc7Ci0gICAgY29uZmlnLmFyZyA9ICZkYXRhOwotCi0gICAgZGlkX2ZpbmRfc29tZXRo
aW5nID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfYmFja3dhcmRf
dG9fdGFrZV9sYXN0X2VtcHR5KCZjb25maWcpOwotCi0gICAgaWYgKCFkaWRfZmluZF9zb21ldGhp
bmcpCi0gICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWls
YWJsZTsKLQotICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2RvaW5n
X3NoYXJpbmcoZGlyZWN0b3J5KSk7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVh
dGVfZGVsdGEoCi0gICAgICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCi0gICAg
ICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAotICAgICAgICAgICAgZGly
ZWN0b3J5LAotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kX3Nl
bGVjdF9mb3Jfc2VncmVnYXRlZF9kaXJlY3RvcnkoCi0gICAgICAgICAgICAgICAgZGlyZWN0b3J5
LT5kaXJlY3Rvcnlfa2luZCkpKTsKLSAgICAKLSAgICByZXR1cm4gZGF0YS5yZXN1bHQ7Ci19Ci0K
LXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCi0gICAgdWludHB0cl90IGJlZ2luLAotICAg
IHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFsKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9mb3Jfb2JqZWN0KGJlZ2luLCBjb25maWcpKTsKLX0KLQotcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvcl9yZXN1bHQKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRf
YWxsb2NhdG9yX2Zyb21fdGxjKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBjb3VudCwKLSAgICBwYXNfY291bnRfbG9va3Vw
X21vZGUgY291bnRfbG9va3VwX21vZGUsCi0gICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCi0g
ICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKLXsKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jl
c3VsdCB0bGNfcmVzdWx0OwotICAgIHVuc2lnbmVkIGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsK
LQotICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2hh
c190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkpOwotICAgIFBBU19BU1NFUlQoIXBhc19oZWFwX2Nv
bmZpZ19pc191dGlsaXR5KGNvbmZpZykpOwotICAgIAotICAgIHBhc19oZWFwX2xvY2tfbG9jaygp
OwotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleCgKLSAgICAg
ICAgZGlyZWN0b3J5LT5oZWFwLAotICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgIGNvdW50LAot
ICAgICAgICBjb3VudF9sb29rdXBfbW9kZSwKLSAgICAgICAgY29uZmlnLAotICAgICAgICBjYWNo
ZWRfaW5kZXgpOwotICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7Ci0KLSAgICAvKiBDdXJyZW50
bHkgYXMgc29vbiBhcyB3ZSBzd2l0Y2ggdG8gVExDIGFsbG9jYXRvcnMsIHdlIGNhbm5vdCBwb3Nz
aWJseSBoYXZlIGEgYmFzZWxpbmUKLSAgICAgICBhbGxvY2F0b3IuIEJ1dCBpZiB3ZSBkbywgd2Ug
c2hvdWxkIHN0b3AgaXQgbm93LiAqLwotICAgIGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9IGRp
cmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OwotICAgIGlmIChiYXNlbGluZV9hbGxv
Y2F0b3JfaW5kZXggPCBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpIHsKLSAgICAgICAgcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvciogYmFzZWxpbmVfYWxsb2NhdG9yOwotICAgICAgICAKLSAgICAg
ICAgYmFzZWxpbmVfYWxsb2NhdG9yID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGJh
c2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgCi0gICAgICAgIHBhc19sb2NrX2xvY2so
JmJhc2VsaW5lX2FsbG9jYXRvci0+bG9jayk7Ci0KLSAgICAgICAgLyogSXQncyBwb3NzaWJsZSB0
aGF0IGR1ZSB0byBhIHJhY2UsIHRoZSBkaXJlY3RvcnkncyBpbmRleCBoYXMgYmVlbiByZWFzc2ln
bmVkIHRvIHNvbWV0aGluZwotICAgICAgICAgICBlbHNlLiBBdCB3b3JzdCwgdGhhdCByYWNlIHdp
bGwgbWVhbiB0aGF0IHNvbWUgYmFzZWxpbmUgYWxsb2NhdG9yIHdpbGwgYmUgdXNlZCBmb3IKLSAg
ICAgICAgICAgYWxsb2NhdGlvbi4gVGhlcmUncyBub3QgYSB3aG9sZSBsb3Qgd2UgY2FuIGRvIGFi
b3V0IHRoYXQuIEF0IHdvcnN0LCBpdCBtZWFucyBsZXR0aW5nIHRoZQotICAgICAgICAgICBoaWdo
IHdhdGVybWFyayBncm93IGEgYml0IGluIGNhc2Ugb2YgYSB3ZWlyZCByYWNlLiAqLwotICAgICAg
ICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPT0gYmFzZWxpbmVfYWxs
b2NhdG9yX2luZGV4KSB7Ci0gICAgICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2RldGFj
aF9kaXJlY3RvcnkoYmFzZWxpbmVfYWxsb2NhdG9yKTsKLSAgICAgICAgICAgIHBhc19mZW5jZSgp
OwotICAgICAgICAgICAgZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSAyICog
UEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICBwYXNfbG9ja191bmxvY2soJmJhc2VsaW5lX2FsbG9jYXRvci0+bG9jayk7Ci0gICAgfQotICAg
IAotICAgIHRsY19yZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxv
Y2F0b3IoCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0KGNvbmZpZyksCi0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25v
bl9udWxsKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXgsCi0gICAgICAgIHBhc19s
b2NrX2lzX25vdF9oZWxkKTsKLSAgICAKLSAgICBQQVNfQVNTRVJUKHRsY19yZXN1bHQuZGlkX3N1
Y2NlZWQpOwotCi0gICAgcmV0dXJuIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0
ZV9zdWNjZXNzKHRsY19yZXN1bHQuYWxsb2NhdG9yLCBOVUxMKTsKLX0KLQotcGFzX2hlYXBfc3Vt
bWFyeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5
X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdl
X2NvbmZpZzsKLSAgICBwYXNfaGVhcF9zdW1tYXJ5IHJlc3VsdDsKLSAgICBzaXplX3QgcGF5bG9h
ZF9zaXplOwotCi0gICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2lu
ZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpOwotCi0gICAgZGF0YSA9
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJl
Y3RvcnktPmRhdGEpOwotICAgIHBhZ2VfY29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7Ci0g
ICAgCi0gICAgcmVzdWx0ID0gcGFzX2hlYXBfc3VtbWFyeV9jcmVhdGVfZW1wdHkoKTsKLSAgICAK
LSAgICBwYXlsb2FkX3NpemUgPSAoZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19l
bmRfb2ZfbGFzdF9vYmplY3QgLQotICAgICAgICAgICAgICAgICAgICBkYXRhLT5vZmZzZXRfZnJv
bV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCk7Ci0gICAgCi0gICAgcmVzdWx0LmRlY29t
bWl0dGVkICs9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplOwotICAgIHJlc3VsdC5mcmVlICs9
IHBheWxvYWRfc2l6ZTsKLSAgICByZXN1bHQuZnJlZV9kZWNvbW1pdHRlZCArPSBwYXlsb2FkX3Np
emU7Ci0gICAgCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdHlwZWRlZiBzdHJ1Y3QgewotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZ2xvYmFsX3NpemVfZGlyZWN0
b3J5OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9s
aXZlX29iamVjdF9jYWxsYmFjayBjYWxsYmFjazsKLSAgICB2b2lkKiBhcmc7Ci19IGZvcl9lYWNo
X2xpdmVfb2JqZWN0X2RhdGE7Ci0KLXN0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0X2Nh
bGxiYWNrKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXcgdmlldywKLSAgICB1aW50cHRyX3QgYmVnaW4sCi0gICAgdm9pZCog
YXJnKQotewotICAgIGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNf
VU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7Ci0KLSAgICBkYXRhID0gYXJnOwotCi0gICAgcmV0dXJu
IGRhdGEtPmNhbGxiYWNrKGRhdGEtPmdsb2JhbF9zaXplX2RpcmVjdG9yeSwgdmlldywgYmVnaW4s
IGRhdGEtPmFyZyk7Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjayBjYWxsYmFjaywKLSAgICB2b2lk
KiBhcmcpCi17Ci0gICAgZm9yX2VhY2hfbGl2ZV9vYmplY3RfZGF0YSBkYXRhOwotCi0gICAgZGF0
YS5nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7Ci0gICAgZGF0YS5jYWxsYmFjayA9
IGNhbGxiYWNrOwotICAgIGRhdGEuYXJnID0gYXJnOwotICAgIAotICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdCgKLSAgICAgICAgJmRp
cmVjdG9yeS0+YmFzZSwgZm9yX2VhY2hfbGl2ZV9vYmplY3RfY2FsbGJhY2ssICZkYXRhKTsKLX0K
LQotc2l6ZV90IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxv
Y2F0b3Jfc2l6ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIGtpbmQ7Ci0K
LSAgICBraW5kID0gZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7Ci0KLSAgICBpZiAo
a2luZCA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpCi0gICAgICAgIHJl
dHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9y
X3NpemVfZm9yX251bGxfY29uZmlnKCk7Ci0gICAgCi0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfY29uZmlnKAot
ICAgICAgICAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGtpbmQp
KTsKLX0KLQotcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9hbGxvY2F0
b3Jfc2l6ZSgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xv
Y2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSkpOwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKQot
ewotICAgIHBhc19zdHJlYW1fcHJpbnRmKAotICAgICAgICBzdHJlYW0sCi0gICAgICAgICIlcChz
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSwgJXUsICVwLCAlcykiLAotICAgICAgICBk
aXJlY3RvcnksCi0gICAgICAgIGRpcmVjdG9yeS0+b2JqZWN0X3NpemUsCi0gICAgICAgIGRpcmVj
dG9yeS0+aGVhcCwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRf
c3RyaW5nKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKSk7Ci19Ci0KLXZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtKAotICAg
IHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZShkaXJlY3RvcnksIHN0cmVh
bSk7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS5oCShub25leGlzdGVudCkKQEAgLTEsMjMxICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19TRUdS
RUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9ICi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX0dM
T0JBTF9TSVpFX0RJUkVDVE9SWV9ICi0KLSNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4Lmgi
Ci0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19w
dHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRy
LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRfcGFn
ZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF90YWdnZWRf
dW5zaWduZWRfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19o
ZWFwX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmgiCi0j
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKLQotUEFTX0JFR0lOX0VY
VEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2RhdGE7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
Owotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhOwotdHlw
ZWRlZiBzdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2RhdGEgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGE7
Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0
YSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YTsKLXR5cGVkZWYgc3Ry
dWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YTsKLQotUEFTX0RFRklORV9DT01QQUNUX0FUT01JQ19QVFIocGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHIpOwotCi1QQVNf
QVBJIGV4dGVybiBib29sIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5f
ZXhwbG9kZTsKLVBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2ZvcmNlX2V4cGxvZGU7Ci0KLXN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFz
X3ZlcnNpb25lZF9maWVsZCkpIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSB7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5IGJhc2U7Ci0gICAgCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcDsKLQotICAgIHVuc2lnbmVkIG9iamVjdF9zaXplIDogMjc7Ci0gICAg
dW5zaWduZWQgYWxpZ25tZW50X3NoaWZ0IDogNTsKLQotICAgIC8qIFRoaXMgaGFzIGEgZnVubnkg
ZW5jb2RpbmcgKGxldCBOID0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTKToKLSAgICAgICAK
LSAgICAgICBpbmRleCBpbiBbMCwgTikgICAgID0+IGF0dGFjaGVkIHRvIGluZGV4Ci0gICAgICAg
aW5kZXggaW4gW04sIDJOKSAgICA9PiBhdHRhY2hpbmcgdG8gaW5kZXggLSBOCi0gICAgICAgMk4g
ICAgICAgICAgICAgICAgICA9PiBkZXRhY2hlZAotICAgICAgIAotICAgICAgIEluIHRoZSBkZXRh
Y2hlZCBzdGF0ZSwgdGhlIG9ubHkgd2F5IHRvIGNoYW5nZSB0aGlzIGlzIHRvIENBUyBpdC4KLSAg
ICAgICAKLSAgICAgICBJbiB0aGUgYXR0YWNoZWQgYW5kIGF0dGFjaGluZyBzdGF0ZXMsIHRoZSBj
b3JyZXNwb25kaW5nIGluZGV4J3MgbG9jayBwcm90ZWN0cyB0aGlzIGZpZWxkLiAqLwotICAgIHVp
bnQxNl90IGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKLSAgICAKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHIgZGF0YTsKLSAgICBwYXNfY29tcGFjdF9h
dG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ciBiaXRmaXRfc2l6ZV9jbGFzczsKLQot
ICAgIC8qIFRoZSBvd25pbmcgc2VncmVnYXRlZCBoZWFwIGhvbGRzIHRoZXNlIGluIGEgc2luZ2x5
IGxpbmtlZCBsaXN0LiAqLwotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHIgbmV4dF9mb3JfaGVhcDsKLX07Ci0KLXN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSB7Ci0gICAgdW5zaWduZWQgb2Zmc2V0
X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3Q7IC8qIENhY2hlZCB0byBtYWtlIHJl
ZmlsbCBmYXN0LiAqLwotICAgIHVuc2lnbmVkIG9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9f
ZW5kX29mX2xhc3Rfb2JqZWN0OyAvKiBDYWNoZWQgdG8gbWFrZSByZWZpbGwgZmFzdC4gKi8KLSAg
ICAKLSAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKLSAgICAKLSAgICB1
aW50OF90IGZ1bGxfbnVtX25vbl9lbXB0eV93b3JkczsKLQotICAgIHBhc19jb21wYWN0X3RhZ2dl
ZF91bnNpZ25lZF9wdHIgZnVsbF9hbGxvY19iaXRzOyAvKiBQcmVjb21wdXRlZCBhbGxvYyBiaXRz
IGluIHRoZSBjYXNlIHRoYXQgYSBwYWdlIGlzIGVtcHR5LiAqLwotICAgIHBhc19jb21wYWN0X2F0
b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIgYmlhc19zaGFyaW5nX3Bvb2w7Ci0gICAgcGFzX2Nv
bXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0X2Zvcl9sYXlv
dXQ7Ci19OwotCi1zdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2RhdGEgewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhIGJhc2U7Ci0gICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRf
cHRyIGZ1bGxfdXNlX2NvdW50czsKLX07Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRf
dmlldwotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2FzX3ZpZXcocGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX3ZpZXdfY3JlYXRlKGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc2l6ZV90
Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiAo
c2l6ZV90KTEgPDwgKHNpemVfdClkaXJlY3RvcnktPmFsaWdubWVudF9zaGlmdDsKLX0KLQotUEFT
X0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwKLSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZSwKLSAgICB1bnNpZ25lZCBhbGlnbm1lbnQs
Ci0gICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZywKLSAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyogcGFnZV9jb25maWcpOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NvbnRlbnRpb25fZGlkX3RyaWdnZXJfZXhwbG9z
aW9uKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X21pc2NfYml0KCZk
aXJlY3RvcnktPmJhc2UpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3NldF9jb250ZW50aW9uX2RpZF90cmlnZ2VyX2V4cGxvc2lv
bigKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
LSAgICBib29sIHZhbHVlKQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
c2V0X21pc2NfYml0KCZkaXJlY3RvcnktPmJhc2UsIHZhbHVlKTsKLX0KLQotUEFTX0FQSSBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKLQotUEFTX0FQSSBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSoKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLS8qIENhbGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8K
LVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY3JlYXRl
X3RsY19hbGxvY2F0b3IoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsK
LSAgICByZXR1cm4gZGF0YSAmJiBkYXRhLT5hbGxvY2F0b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0
b3JfaW5kZXgpVUlOVF9NQVg7Ci19Ci0KLS8qIENhbGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8K
LVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZW5hYmxl
X2V4Y2x1c2l2ZV92aWV3cygKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSk7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIGRhdGEgPSBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0
b3J5LT5kYXRhKTsKLSAgICByZXR1cm4gZGF0YSAmJiBkYXRhLT5mdWxsX251bV9ub25fZW1wdHlf
d29yZHM7Ci19Ci0KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZXhwbG9kZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKLSAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7
Ci0KLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3QoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHBhc19zZWdy
ZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmly
c3RfZWxpZ2libGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnksCi0gICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSk7Ci0KLVBBU19BUEkgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxv
ZywKLSAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLVBBU19B
UEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKLSAgICB1aW50cHRyX3QgYmVnaW4sCi0g
ICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpOwotCi0vKiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSBh
bHJlYWR5IGhhdmUgYSBkYXRhLiBUaGF0J3MgYSB2YWxpZCBhc3N1bXB0aW9uIGlmIHdlIGhhdmUg
ZXhjbHVzaXZlcy4gKi8KLVBBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2
ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7
Ci0KLS8qIFdlIHVzZSBhIHBhZ2Ugc2hhcmluZyBwb29sIGFzIG91ciBjb2xsZWN0aW9uIG9mIGJp
YXNpbmcgZGlyZWN0b3JpZXMuCi0gCi0gICBDb29sIGZhY3Q6IHBhZ2Ugc2hhcmluZyBwb29sIGl0
ZXJhdGlvbiBmdW5jdGlvbnMgd29yayBmb3IgTlVMTC4gVGhleSdsbCBiZWhhdmUgYXMgaWYgeW91
IGhhZCBhbgotICAgZW1wdHkgcG9vbC4gU28sIG5vIG5lZWQgdG8gTlVMTC1jaGVjayBpZiB1c2lu
ZyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb24gdG8gaXRlcmF0ZSB0aGUKLSAgIGJp
YXNpbmcgZGlyZWN0b3JpZXMuICovCi1zdGF0aWMgaW5saW5lIHBhc19wYWdlX3NoYXJpbmdfcG9v
bCogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2JpYXNfc2hhcmluZ19wb29s
KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQot
ewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwot
ICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybiBO
VUxMOwotICAgIHJldHVybiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRy
X2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKTsKLX0KLQotdHlwZWRlZiBib29sICgqcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2Nh
bGxiYWNrKSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCi0gICAgdWludHB0cl90IGJlZ2lu
LAotICAgIHZvaWQqIGFyZyk7Ci0KLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3QoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNr
LAotICAgIHZvaWQqIGFyZyk7Ci0KLVBBU19BUEkgc2l6ZV90IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZSgKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgcGFzX2FsbG9j
YXRvcl9pbmRleCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9j
YXRvcl9pbmRpY2VzKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5KTsKLQotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKTsKLQotUEFTX0FQSSB2b2lk
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSgK
LSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQqIGRpcmVjdG9yeSk7Ci0KLVBBU19FTkRfRVhU
RVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllf
SCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxp
bmVzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
YykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX1NFR1JFR0FURURf
R0xPQkFMX1NJWkVfRElSRUNUT1JZX0lOTElORVNfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9H
TE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19ICi0KLSNpbmNsdWRlICJwYXNfYmFzZWxpbmVf
YWxsb2NhdG9yX3Jlc3VsdC5oIgotI2luY2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFi
bGUuaCIKLSNpbmNsdWRlICJwYXNfY291bnRfbG9va3VwX21vZGUuaCIKLSNpbmNsdWRlICJwYXNf
bG9jYWxfYWxsb2NhdG9yLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgotI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUg
InBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1QQVNf
QVBJIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZ2V0X2FsbG9jYXRvcl9mcm9tX3RsYygKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgY291bnQsCi0g
ICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAotICAgIHBhc19oZWFw
X2NvbmZpZyogY29uZmlnLAotICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpOwotCi1QQVNfQVBJ
IHBhc19iYXNlbGluZV9hbGxvY2F0b3IqCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcigKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgY291bnQsCi0gICAgcGFzX2NvdW50
X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAotICAgIHBhc19oZWFwX2NvbmZpZyogY29u
ZmlnLAotICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCi17Ci0gICAgaWYgKHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpCi0g
ICAgICAgICYmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSB8fCBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkpIHsKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAotICAgICAgICAg
ICAgZGlyZWN0b3J5LCBjb3VudCwgY291bnRfbG9va3VwX21vZGUsIGNvbmZpZywgY2FjaGVkX2lu
ZGV4KTsKLSAgICB9Ci0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIHVuc2lnbmVkIGluZGV4Owot
ICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBhbGxvY2F0b3I7Ci0KLSAgICAgICAgaW5k
ZXggPSBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgaWYgKGlu
ZGV4ID49IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUykKLSAgICAgICAgICAgIGFsbG9jYXRv
ciA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9y
X3Nsb3coZGlyZWN0b3J5KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBhbGxvY2F0b3Ig
PSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlICsgaW5kZXg7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIHBhc19sb2NrX2xvY2soJmFsbG9jYXRvci0+bG9jayk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIGlmIChkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCAhPSBp
bmRleCkgewotICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmYWxsb2NhdG9yLT5sb2Nr
KTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQot
Ci0gICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KGFsbG9jYXRvci0+dS5hbGxvY2F0b3IudmlldykgPT0gZGlyZWN0b3J5KTsKLQot
ICAgICAgICByZXR1cm4gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nl
c3MoCi0gICAgICAgICAgICAmYWxsb2NhdG9yLT51LmFsbG9jYXRvciwgJmFsbG9jYXRvci0+bG9j
ayk7Ci0gICAgfQotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90Ci1wYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX251
bGxfY29uZmlnKHZvaWQpCi17Ci0gICAgcmV0dXJuIFBBU19MT0NBTF9BTExPQ0FUT1JfU0laRSgw
KTsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX2NvbmZpZygKLSAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBjb25maWcpCi17Ci0gICAgUEFTX0FTU0VSVChj
b25maWcuYmFzZS5pc19lbmFibGVkKTsKLSAgICByZXR1cm4gUEFTX0xPQ0FMX0FMTE9DQVRPUl9T
SVpFKGNvbmZpZy5udW1fYWxsb2NfYml0cyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX2FsbG9j
YXRvcl9pbmRleAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxv
Y2F0b3JfaW5kaWNlc19mb3JfYWxsb2NhdG9yX3NpemUoc2l6ZV90IHNpemUpCi17Ci0gICAgcGFz
X2FsbG9jYXRvcl9pbmRleCByZXN1bHQ7Ci0KLSAgICByZXN1bHQgPSAocGFzX2FsbG9jYXRvcl9p
bmRleCkoc2l6ZSAvIDgpOwotICAgIFBBU19URVNUSU5HX0FTU0VSVCgoc2l6ZV90KXJlc3VsdCAq
IDggPT0gc2l6ZSk7Ci0gICAgCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0b3JfaW5kZXgKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2NvbmZpZygKLSAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyBjb25maWcpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHNpemVfdCBzaXplOwotCi0gICAgUEFTX0FTU0VS
VChjb25maWcuYmFzZS5pc19lbmFibGVkKTsKLSAgICAKLSAgICBzaXplID0gcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9jb25maWco
Y29uZmlnKTsKLQotICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIHBhc19sb2coCi0gICAgICAg
ICAgICAia2luZCA9ICVzLCBzaXplID0gJXp1LlxuIiwKLSAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhjb25maWcua2luZCksCi0gICAgICAgICAg
ICBzaXplKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxsb2NhdG9yX3NpemUoc2l6ZSk7
Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9HTE9C
QUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUg
InBhc19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfcmVmLmgiCiAjaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlLmgiCiAjaW5jbHVkZSAicGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZS5oIgogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0LmgiCkBAIC0xOTIsNyArMTkyLDcgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9oZWFwX2NvbnN0
cnVjdChwYXNfcwogCiAgICAgc2VncmVnYXRlZF9oZWFwLT5ydW50aW1lX2NvbmZpZyA9IHJ1bnRp
bWVfY29uZmlnOwogICAgIAotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAmc2VncmVnYXRlZF9oZWFw
LT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCwgTlVMTCk7CiAgICAgCiAgICAgc2VncmVn
YXRlZF9oZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZCA9IDA7CkBAIC00MDUsNyArNDA1LDcg
QEAgdW5zaWduZWQgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fYWxsbwogICAgIHJldHVybiBV
SU5UX01BWDsKIH0KIAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXNf
c2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9mb3JfaW5kZXgoCitwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9k
aXJlY3RvcnlfZm9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAg
c2l6ZV90IGluZGV4LAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0
b3J5X3NlYXJjaF9tb2RlIHNlYXJjaF9tb2RlLApAQCAtNDE3LDcgKzQxNyw3IEBAIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGEKICAgICAgICAgaGVhcCwgaW5kZXgsIHNl
YXJjaF9tb2RlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICAKICAgICBpZiAobWVkaXVtX2Rp
cmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmbWVkaXVtX2RpcmVjdG9yeS0+ZGlyZWN0b3J5
KTsKKyAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3B0cl9sb2FkKCZtZWRpdW1fZGlyZWN0b3J5LT5kaXJlY3RvcnkpOwogICAgIAogICAg
IHJldHVybiBOVUxMOwogfQpAQCAtNDQzLDcgKzQ0Myw3IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9j
b3VudF9sb29rdXAocGFzX3NlZ3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2hlYXBfY29uZmlnKiBjb25maWcpCiB7CiAgICAgc2l6ZV90IGluZGV4X3VwcGVyX2JvdW5kOwot
ICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHIqIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc2l6ZV9kaXJlY3Rvcnk7CiAgICAg
cGFzX2FsbG9jYXRvcl9pbmRleCogaW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4OwogICAgIHVuc2ln
bmVkIGluZGV4OwogICAgIApAQCAtNDU2LDcgKzQ1Niw3IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9j
b3VudF9sb29rdXAocGFzX3NlZ3IKICAgICBpbmRleF91cHBlcl9ib3VuZCA9IGNvbXB1dGVfc21h
bGxfaW5kZXhfdXBwZXJfYm91bmQoaGVhcCwgY29uZmlnKTsKICAgICAKICAgICBpbmRleF90b19z
aXplX2RpcmVjdG9yeSA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAotICAgICAgICBzaXpl
b2YocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0
cikgKiBpbmRleF91cHBlcl9ib3VuZCwKKyAgICAgICAgc2l6ZW9mKHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cikgKiBpbmRleF91cHBlcl9ib3VuZCwKICAg
ICAgICAgInBhc19zZWdyZWdhdGVkX2hlYXAvaW5kZXhfdG9fc2l6ZV9kaXJlY3RvcnkiLAogICAg
ICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwogICAgIGluZGV4X3RvX2FsbG9jYXRvcl9pbmRl
eCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKApAQCAtNDY1LDcgKzQ2NSw3IEBAIHN0YXRp
YyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAocGFzX3NlZ3IKICAgICAgICAgcGFzX29iamVjdF9h
bGxvY2F0aW9uKTsKICAgICAKICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBpbmRleF91cHBl
cl9ib3VuZDsgKytpbmRleCkgewotICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAorICAgICAgICBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAgICAgICBp
bmRleF90b19zaXplX2RpcmVjdG9yeSArIGluZGV4LCBOVUxMKTsKICAgICAgICAgaW5kZXhfdG9f
YWxsb2NhdG9yX2luZGV4W2luZGV4XSA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOwog
ICAgIH0KQEAgLTQ4MSw3ICs0ODEsNyBAQCBzdGF0aWMgdm9pZCBlbnN1cmVfY291bnRfbG9va3Vw
KHBhc19zZWdyCiB1bnNpZ25lZAogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9y
X2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBzaXplX3QgY291bnQsCiAgICAgcGFzX2Nv
dW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAogICAgIHBhc19oZWFwX2NvbmZpZyog
Y29uZmlnLApAQCAtNTE0LDcgKzUxNCw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2Fs
bG9jYXRvcl9pbmQKICAgICAgICAgcHJpbnRmKCJpbmRleCA9ICV6dVxuIiwgaW5kZXgpOwogCiAg
ICAgYWxsb2NhdG9yX2luZGV4ID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRl
eDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgm
ZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2NhdG9yX2luZGV4OwogICAgIFBBU19BU1NFUlQoKHBhc19h
bGxvY2F0b3JfaW5kZXgpYWxsb2NhdG9yX2luZGV4ID09IGFsbG9jYXRvcl9pbmRleCk7CiAgICAg
UEFTX0FTU0VSVChhbGxvY2F0b3JfaW5kZXggPCAodW5zaWduZWQpKHBhc19hbGxvY2F0b3JfaW5k
ZXgpVUlOVF9NQVgpOwogICAgIApAQCAtNTU5LDcgKzU1OSw3IEBAIHBhc19zZWdyZWdhdGVkX2hl
YXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQKICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxk
KTsKICAgICAgICAgUEFTX0FTU0VSVChtZWRpdW1fZGlyZWN0b3J5KTsKICAgICAgICAgUEFTX0FT
U0VSVCgKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmbWVkaXVtX2RpcmVjdG9yeS0+ZGlyZWN0b3J5KQorICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
X2xvYWQoJm1lZGl1bV9kaXJlY3RvcnktPmRpcmVjdG9yeSkKICAgICAgICAgICAgID09IGRpcmVj
dG9yeSk7CiAgICAgICAgIAogICAgICAgICBtZWRpdW1fZGlyZWN0b3J5LT5hbGxvY2F0b3JfaW5k
ZXggPSAocGFzX2FsbG9jYXRvcl9pbmRleClhbGxvY2F0b3JfaW5kZXg7CkBAIC02OTcsMTggKzY5
NywyMCBAQCBlbnN1cmVfY291bnRfbG9va3VwX2lmX25lY2Vzc2FyeShwYXNfc2VnCiAgICAgICAg
IGVuc3VyZV9jb3VudF9sb29rdXAoaGVhcCwgY29uZmlnKTsKIH0KIAotcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KgotcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9k
aXJlY3RvcnlfZm9yX2NvdW50KHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGNvdW50LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBhbGlnbm1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2Nv
bmZpZyogY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCitwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSoKK3Bhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9j
b3VudCgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAgIHNpemVfdCBjb3VudCwK
KyAgICBzaXplX3QgYWxpZ25tZW50LAorICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9s
b29rdXBfbW9kZSwKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAgICB1bnNpZ25lZCog
Y2FjaGVkX2luZGV4LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9u
X21vZGUgY3JlYXRpb25fbW9kZSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CiAKICAgICBwYXNfaGVhcCogcGFyZW50X2hlYXA7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIHJlc3VsdDsKICAgICBzaXplX3QgaW5kZXg7CiAgICAgc2l6ZV90IG9iamVjdF9z
aXplOwogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSogbWVk
aXVtX3R1cGxlOwpAQCAtODE2LDExICs4MTgsMTEgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1
cmVfc2l6ZV9kaXJlY3RvcgogCiAgICAgUEFTX0FTU0VSVCgKICAgICAgICAgIXJlc3VsdCB8fAot
ICAgICAgICBwYXNfaXNfYWxpZ25lZChyZXN1bHQtPm9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHJlc3VsdCkpKTsKKyAgICAgICAgcGFz
X2lzX2FsaWduZWQocmVzdWx0LT5vYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfYWxpZ25tZW50KHJlc3VsdCkpKTsKIAogICAgIGlzX3V0aWxpdHkgPSBwYXNfaGVhcF9j
b25maWdfaXNfdXRpbGl0eShjb25maWcpOwogICAgIAotICAgIGlmIChyZXN1bHQgJiYgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChyZXN1bHQpIDwgYWxpZ25t
ZW50KSB7CisgICAgaWYgKHJlc3VsdCAmJiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9h
bGlnbm1lbnQocmVzdWx0KSA8IGFsaWdubWVudCkgewogICAgICAgICBzaXplX3QgdmljdGltX2lu
ZGV4OwogICAgICAgICAKICAgICAgICAgLyogSW4gdGhpcyBjYXNlLCByZXN1bHQgaXMgYSBzaXpl
IGNsYXNzIGZvciBhdCBsZWFzdCBhcyBiaWcgb2YgYSBzaXplCkBAIC04MzMsMTYgKzgzNSwxNiBA
QCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgIFRo
aXMgbG9vcCBzdGFydHMgYXQgaW5kZXggKG5vdCBpbmRleCArIDEgZGVzcGl0ZSB3aGF0IHRoZSBp
bml0aWFsCiAgICAgICAgICAgIGNvbmRpdGlvbiBzZWVtcyB0byBkbykgYW5kIHRyYXZlbHMgZG93
bi4gKi8KICAgICAgICAgaWYgKGhlYXAtPnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKSB7Ci0gICAg
ICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyKiBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKKyAgICAgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21h
bGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4KiBpbmRl
eF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAKICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxs
X3NpemVfZGlyZWN0b3J5ID0gaGVhcC0+aW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAg
ICAgICAgICAgICBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXggPSBoZWFwLT5pbmRleF90
b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZvciAo
dmljdGltX2luZGV4ID0gaW5kZXggKyAxOyB2aWN0aW1faW5kZXgtLTspIHsKLSAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5Owog
Ci0gICAgICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgIGRpcmVj
dG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkKAogICAgICAgICAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSAr
IHZpY3RpbV9pbmRleCk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCFk
aXJlY3RvcnkpCkBAIC04NTEsNyArODUzLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVf
c2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIGlmIChkaXJlY3RvcnkgIT0gcmVzdWx0KQog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAg
ICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVj
dG9yeSArIHZpY3RpbV9pbmRleCwgTlVMTCk7CiAgICAgICAgICAgICAgICAgaWYgKCFpc191dGls
aXR5KQogICAgICAgICAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXhb
dmljdGltX2luZGV4XSA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOwpAQCAtOTE5LDcg
KzkyMSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAg
ICAgICAgCiAgICAgICAgICAgIFNtYWxsZXIgaW5kZXg6IGNsZWFyIGl0IGlmIGl0IG1hdGNoZXMs
IHNpbmNlIHdlICptYXkqIHdhbnQgdGhvc2UKICAgICAgICAgICAgc21hbGxlciBhbGxvY2F0aW9u
cyB0byBjb25zaWRlciBvdXIgbmV3IG9uZS4gKi8KLSAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAg
aWYgKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2Fk
KAogICAgICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCkg
PT0gcmVzdWx0CiAgICAgICAgICAgICAmJiByZXN1bHQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJl
Y3RvcnkKICAgICAgICAgICAgICYmIGluZGV4ID49IChjYWNoZWRfaW5kZXggPyAqY2FjaGVkX2lu
ZGV4IDogMSkpIHsKQEAgLTkzNSwxNCArOTM3LDE0IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5z
dXJlX3NpemVfZGlyZWN0b3IKICAgICAKICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBzaXpl
X3QgY2FuZGlkYXRlX2luZGV4OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGNhbmRpZGF0ZTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGNhbmRpZGF0ZTsKICAgICAgICAgc2l6ZV90IG1lZGl1bV9pbnN0YWxsX2luZGV4OwogICAg
ICAgICBzaXplX3QgbWVkaXVtX2luc3RhbGxfY291bnQ7CiAgICAgICAgIGRvdWJsZSBiZXN0X2J5
dGVzX2RpcnRpZWRfcGVyX29iamVjdDsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcqIGJlc3RfcGFnZV9jb25maWc7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X3ZhcmlhbnQgdmFyaWFudDsKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogYmFzaWNfc2l6
ZV9kaXJlY3RvcnlfYW5kX2hlYWQ7CisgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7Cisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBiYXNpY19zaXplX2RpcmVjdG9y
eV9hbmRfaGVhZDsKIAogICAgICAgICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSA9IGhl
YXAtPmluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5OwogICAgICAgICAKQEAgLTk1NCw3ICs5
NTYsNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAg
IGZvciAoY2FuZGlkYXRlX2luZGV4ID0gaW5kZXg7CiAgICAgICAgICAgICAgY2FuZGlkYXRlX2lu
ZGV4IDwgaGVhcC0+c21hbGxfaW5kZXhfdXBwZXJfYm91bmQ7CiAgICAgICAgICAgICAgKytjYW5k
aWRhdGVfaW5kZXgpIHsKLSAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAg
IGNhbmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5
ICsgY2FuZGlkYXRlX2luZGV4KTsKICAgICAgICAgICAgIGlmIChjYW5kaWRhdGUpCiAgICAgICAg
ICAgICAgICAgYnJlYWs7CkBAIC05NjMsNyArOTY1LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9l
bnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAvKiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJh
c2ljIHNpemUgY2xhc3MgaXMgYSBjYW5kaWRhdGUuIFRoYXQgY291bGQKICAgICAgICAgICAgaGFw
cGVuIGlmIHdlIGRpZCBub3QgZm9yY2UgY291bnQgbG9va3VwIHdoZW4gY3JlYXRpbmcgdGhhdCBi
YXNpYyBzaXplCiAgICAgICAgICAgIGNsYXNzLiAqLwotICAgICAgICBiYXNpY19zaXplX2RpcmVj
dG9yeV9hbmRfaGVhZCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hl
YWQgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZCgKICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCk7CiAg
ICAgICAgIGlmICgoIWNhbmRpZGF0ZSB8fCBjYW5kaWRhdGVfaW5kZXggPiAoY2FjaGVkX2luZGV4
ID8gKmNhY2hlZF9pbmRleCA6IDEpKQogICAgICAgICAgICAgJiYgYmFzaWNfc2l6ZV9kaXJlY3Rv
cnlfYW5kX2hlYWQKQEAgLTk4MCw4ICs5ODIsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3Vy
ZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9z
aXplX2RpcmVjdG9yeV9zZWFyY2hfbGVhc3RfZ3JlYXRlcl9lcXVhbCwKICAgICAgICAgICAgIHBh
c19sb2NrX2lzX2hlbGQpOwogICAgICAgICBpZiAobWVkaXVtX3R1cGxlKSB7Ci0gICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICAg
ICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAg
ICAgICAmbWVkaXVtX3R1cGxlLT5kaXJlY3RvcnkpOwogICAgICAgICAgICAgaWYgKCFjYW5kaWRh
dGUgfHwgZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSA8IGNhbmRpZGF0ZS0+b2JqZWN0X3NpemUpCiAg
ICAgICAgICAgICAgICAgY2FuZGlkYXRlID0gZGlyZWN0b3J5OwpAQCAtMTA0MSw3ICsxMDQzLDcg
QEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAg
UEFTX0FTU0VSVCghaXNfdXRpbGl0eSk7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoY2FuZGlk
YXRlICYmIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQoY2Fu
ZGlkYXRlKSA+PSBhbGlnbm1lbnQpIHsKKyAgICAgICAgaWYgKGNhbmRpZGF0ZSAmJiBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQoY2FuZGlkYXRlKSA+PSBhbGlnbm1lbnQp
IHsKICAgICAgICAgICAgIGRvdWJsZSBieXRlc19kaXJ0aWVkX3Blcl9vYmplY3RfYnlfY2FuZGlk
YXRlOwogICAgICAgICAKICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CkBAIC0xMDYzLDggKzEw
NjUsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAg
IH0KICAgICAKICAgICAgICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIqIGhlYWQ7Ci0gICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGJhc2ljX3NpemVf
ZGlyZWN0b3J5X2FuZF9oZWFkOworICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBoZWFkOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkOwogCiAgICAg
ICAgICAgICBpZiAoYmVzdF9wYWdlX2NvbmZpZykgewogICAgICAgICAgICAgICAgIG9iamVjdF9z
aXplID0gY29tcHV0ZV9pZGVhbF9vYmplY3Rfc2l6ZSgKQEAgLTExMDEsMTYgKzExMDMsMTcgQEAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgaWYg
KHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgcGFzX2xvZygiQnVtcGVkIGFsaWdubWVudCB1cCB0
byAlenUuXG4iLCBhbGlnbm1lbnQpOwogICAgICAgICAKLSAgICAgICAgICAgIHJlc3VsdCA9IHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGUoCisgICAgICAgICAgICBy
ZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGUoCiAgICAgICAgICAg
ICAgICAgaGVhcCwKICAgICAgICAgICAgICAgICAodW5zaWduZWQpb2JqZWN0X3NpemUsCiAgICAg
ICAgICAgICAgICAgKHVuc2lnbmVkKWFsaWdubWVudCwKICAgICAgICAgICAgICAgICBjb25maWcs
Ci0gICAgICAgICAgICAgICAgYmVzdF9wYWdlX2NvbmZpZyk7CisgICAgICAgICAgICAgICAgYmVz
dF9wYWdlX2NvbmZpZywKKyAgICAgICAgICAgICAgICBjcmVhdGlvbl9tb2RlKTsKICAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIHByaW50ZigiQ3JlYXRlZCBzaXplIGNs
YXNzID0gJXBcbiIsIHJlc3VsdCk7CiAKLSAgICAgICAgICAgIGJhc2ljX3NpemVfZGlyZWN0b3J5
X2FuZF9oZWFkID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hl
YWQgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZCgKICAgICAgICAgICAgICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQp
OwogICAgICAgICAgICAgaWYgKGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkCiAgICAgICAg
ICAgICAgICAgJiYgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQtPmJhc2UuaXNfYmFzaWNf
c2l6ZV9kaXJlY3RvcnkpCkBAIC0xMTE4LDI0ICsxMTIxLDI0IEBAIHBhc19zZWdyZWdhdGVkX2hl
YXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBoZWFkID0gJmhlYXAtPmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkOwogCi0gICAgICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyX3N0b3JlKAorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICZyZXN1bHQtPm5leHRfZm9y
X2hlYXAsCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKGhlYWQpKTsKLSAgICAgICAgICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoaGVh
ZCwgcmVzdWx0KTsKKyAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChoZWFkKSk7CisgICAgICAgICAgICBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoaGVhZCwgcmVzdWx0
KTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKGNhY2hlZF9pbmRleAogICAgICAg
ICAgICAgPyAqY2FjaGVkX2luZGV4ID09IFVJTlRfTUFYIHx8ICpjYWNoZWRfaW5kZXggPT0gaW5k
ZXgKICAgICAgICAgICAgIDogaW5kZXggPT0gMSkgewotICAgICAgICAgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciogcHJldl9uZXh0X3B0
cjsKKyAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0ciogcHJldl9uZXh0X3B0cjsKICAgICAgICAgICAgIGJvb2wgZGlkX2ZpbmRfcmVzdWx0
OwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICAg
ICAgICAgIHByaW50ZigicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX2NvdW50OiAiCiAgICAgICAgICAgICAgICAgICAgICAgICJDYWNoaW5nIGFzIGJhc2ljIHNp
emUgY2xhc3MhXG4iKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZCgKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICZoZWFwLT5iYXNpY19z
aXplX2RpcmVjdG9yeV9hbmRfaGVhZCk7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKCFkaXJlY3Rv
cnkgfHwgIWRpcmVjdG9yeS0+YmFzZS5pc19iYXNpY19zaXplX2RpcmVjdG9yeSk7IAogICAgICAg
ICAgICAgaWYgKGNhY2hlZF9pbmRleCkgewpAQCAtMTE0OCwzNCArMTE1MSwzNCBAQCBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICAgICB0byBleHBl
cmllbmNlIHRoZSBPKG4pIGNhc2Ugb2YgdGhpcyBsb29wLiAqLwogICAgICAgICAgICAgZGlkX2Zp
bmRfcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICBmb3IgKHByZXZfbmV4dF9wdHIgPSAmaGVh
cC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQ7Ci0gICAgICAgICAgICAgICAgICFwYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2lzX251
bGwocHJldl9uZXh0X3B0cik7CisgICAgICAgICAgICAgICAgICFwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfaXNfbnVsbChwcmV2X25leHRfcHRyKTsKICAg
ICAgICAgICAgICAgICAgcHJldl9uZXh0X3B0ciA9Ci0gICAgICAgICAgICAgICAgICAgICAmcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2Fk
KAorICAgICAgICAgICAgICAgICAgICAgJnBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZfbmV4
dF9wdHIpLT5uZXh0X2Zvcl9oZWFwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChwcmV2X25l
eHRfcHRyKQorICAgICAgICAgICAgICAgIGlmIChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChwcmV2X25leHRfcHRyKQogICAgICAgICAgICAgICAg
ICAgICA9PSByZXN1bHQpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKKyAgICAgICAgICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
X3N0b3JlKAogICAgICAgICAgICAgICAgICAgICAgICAgcHJldl9uZXh0X3B0ciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZyZXN1bHQtPm5leHRfZm9yX2hlYXApKTsKLSAgICAgICAgICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICAgICAgICAg
JnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwgTlVMTCk7CiAgICAgICAgICAgICAgICAgICAgIGRpZF9m
aW5kX3Jlc3VsdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgICAgICAvKiBJZiB3ZSdyZSBnb2luZyB0byBnbyB0aHJvdWdo
IHRoZSBlZmZvcnQgb2Ygc2Nhbm5pbmcgdGhpcyBsaXN0IHdlIG1pZ2h0IGFzCiAgICAgICAgICAg
ICAgICAgICAgd2VsbCBjaGVjayBzb21lIGJhc2ljIHByb3BlcnRpZXMgb2YgaXQuICovCi0gICAg
ICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAgICAgIFBBU19BU1NFUlQo
IXBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZfbmV4dF9wdHIpLT5iYXNlLmlzX2Jh
c2ljX3NpemVfZGlyZWN0b3J5KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFBBU19BU1NF
UlQoZGlkX2ZpbmRfcmVzdWx0KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKAorICAg
ICAgICAgICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHJfaXNfbnVsbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN1bHQt
Pm5leHRfZm9yX2hlYXApKTsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAgICAgICBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAg
ICAgICAgICAgJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwKLSAgICAgICAgICAgICAgICBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisg
ICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVj
dG9yeV9hbmRfaGVhZCkpOwotICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKKyAgICAgICAgICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKICAgICAgICAg
ICAgICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQsIHJlc3VsdCk7CiAg
ICAgICAgICAgICByZXN1bHQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkgPSB0cnVlOwog
ICAgICAgICB9IGVsc2UgewpAQCAtMTE5Miw3ICsxMTk1LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgIAogICAgICAgICBpZiAoaW5kZXggPCBoZWFwLT5z
bWFsbF9pbmRleF91cHBlcl9ib3VuZCkgewogICAgICAgICAgICAgc2l6ZV90IGNhbmRpZGF0ZV9p
bmRleDsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5OworICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBp
bmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKICAgICAgICAgICAgIHBhc19hbGxvY2F0b3Jf
aW5kZXgqIGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleDsKIAogICAgICAgICAgICAgaWYg
KHZlcmJvc2UpIHsKQEAgLTEyMDMsNyArMTIwNiw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5z
dXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0
b3J5ID0gaGVhcC0+aW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAgICBp
bmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXggPSBoZWFwLT5pbmRleF90b19zbWFsbF9hbGxv
Y2F0b3JfaW5kZXg7CiAgICAgICAgIAotICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2lzX251bGwoCisg
ICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0cl9pc19udWxsKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhf
dG9fc21hbGxfc2l6ZV9kaXJlY3RvcnkgKyBpbmRleCkpOwogICAgICAgICAgICAgaWYgKCFpc191
dGlsaXR5KQogICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoaW5kZXhfdG9fc21hbGxfYWxsb2Nh
dG9yX2luZGV4W2luZGV4XSA9PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CkBAIC0x
MjE3LDEyICsxMjIwLDEyIEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0
b3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhbmRpZGF0ZV9pbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICpjb25maWcpIDw9IG9iamVjdF9zaXplKTsKICAgICAgICAg
ICAgICAgICAgKytjYW5kaWRhdGVfaW5kZXgpIHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGNhbmRpZGF0ZTsKKyAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogY2FuZGlkYXRlOwogCiAgICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkluc3RhbGxpbmcg
YXQgaW5kZXggY2FuZGlkYXRlX2luZGV4ID0gJXp1LlxuIiwgY2FuZGlkYXRlX2luZGV4KTsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAg
ICAgICBjYW5kaWRhdGUgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAgICAgaW5kZXhfdG9fc21hbGxfc2l6ZV9k
aXJlY3RvcnkgKyBjYW5kaWRhdGVfaW5kZXgpOwogICAgICAgICAgICAgICAgIGlmIChjYW5kaWRh
dGUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCkBAIC0xMjM1LDcgKzEyMzgs
NyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3Rv
cmUoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICAgICBoZWFwLT5pbmRleF90b19z
bWFsbF9zaXplX2RpcmVjdG9yeSArIGNhbmRpZGF0ZV9pbmRleCwgcmVzdWx0KTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMTI3Nyw3ICsxMjgwLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQp
OwogICAgICAgICAKICAgICAgICAgICAgIGlmIChuZXh0X3R1cGxlICYmCi0gICAgICAgICAgICAg
ICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0
cl9sb2FkKAorICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAgICAmbmV4dF90dXBsZS0+
ZGlyZWN0b3J5KSA9PSByZXN1bHQpIHsKICAgICAgICAgICAgICAgICBzaXplX3QgYmVnaW5faW5k
ZXg7CiAgICAgICAgICAgICAgICAgYmVnaW5faW5kZXggPSBQQVNfTUlOKGluZGV4LCAoc2l6ZV90
KW5leHRfdHVwbGUtPmJlZ2luX2luZGV4KTsKQEAgLTEzMDgsNyArMTMxMSw3IEBAIHBhc19zZWdy
ZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICAgICAgICAg
b25lLiAqLwogICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKAogICAgICAgICAgICAgICAg
ICAgICAgICAgb2JqZWN0X3NpemUgPAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5leHRfdHVw
bGUtPmRpcmVjdG9yeSktPm9iamVjdF9zaXplKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICBQQVNfQVNTRVJUKG5leHRfdHVwbGUgLSBtZWRpdW1fZGlyZWN0b3JpZXMKQEAgLTEz
NjQsNyArMTM2Nyw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IK
ICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKChwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9k
aXJlY3RvcnlfaW5kZXgpbWVkaXVtX2luc3RhbGxfaW5kZXgKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgID09IG1lZGl1bV9pbnN0YWxsX2luZGV4KTsKICAgICAgICAgICAgICAgICBtZWRpdW1f
ZGlyZWN0b3J5ID0gbWVkaXVtX2RpcmVjdG9yaWVzICsgdHVwbGVfaW5zZXJ0aW9uX2luZGV4Owot
ICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICAg
ICAmbWVkaXVtX2RpcmVjdG9yeS0+ZGlyZWN0b3J5LCByZXN1bHQpOwogICAgICAgICAgICAgICAg
IG1lZGl1bV9kaXJlY3RvcnktPmFsbG9jYXRvcl9pbmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4
KVVJTlRfTUFYOwogCkBAIC0xNDAwLDE3ICsxNDAzLDE3IEBAIHNpemVfdCBwYXNfc2VncmVnYXRl
ZF9oZWFwX2dldF9udW1fZnJlZV8KICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9jb21w
dXRlX3N1bW1hcnkoaGVhcCkuZnJlZTsKIH0KIAotYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2Zv
cl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKK2Jvb2wgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9m
b3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAot
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Nh
bGxiYWNrIGNhbGxiYWNrLAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9k
aXJlY3RvcnlfY2FsbGJhY2sgY2FsbGJhY2ssCiAgICAgdm9pZCAqYXJnKQogewotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAKLSAgICBmb3IgKGRpcmVjdG9yeSA9
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJf
bG9hZCgKKyAgICBmb3IgKGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXpl
X2RpcmVjdG9yeV9hbmRfaGVhZCk7CiAgICAgICAgICBkaXJlY3Rvcnk7Ci0gICAgICAgICBkaXJl
Y3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWQoCisgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAmZGlyZWN0b3J5
LT5uZXh0X2Zvcl9oZWFwKSkgewogICAgICAgICBpZiAoIWNhbGxiYWNrKGhlYXAsIGRpcmVjdG9y
eSwgYXJnKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTE0MjcsNyArMTQzMCw3IEBA
IHR5cGVkZWYgc3RydWN0IHsKIAogc3RhdGljIGJvb2wgZm9yX2VhY2hfY29tbWl0dGVkX3NpemVf
ZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnksCiAgICAgdm9p
ZCogYXJnKQogewogICAgIGZvcl9lYWNoX2NvbW1pdHRlZF9wYWdlX2RhdGEqIGRhdGE7CkBAIC0x
NDU4LDcgKzE0NjEsNyBAQCBib29sIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfY29tbWl0
CiAgICAgZGF0YS5oZWFwID0gaGVhcDsKICAgICBkYXRhLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAg
ICAgZGF0YS5hcmcgPSBhcmc7Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2Vh
Y2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9oZWFw
X2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICBoZWFwLAogICAgICAgICBmb3JfZWFj
aF9jb21taXR0ZWRfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssCiAgICAgICAgICZkYXRhKTsKQEAg
LTE0NzEsNyArMTQ3NCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKIH0gZm9yX2VhY2hfdmlld19pbmRl
eF9kYXRhOwogCiBzdGF0aWMgYm9vbCBmb3JfZWFjaF92aWV3X2luZGV4X2RpcmVjdG9yeV9jYWxs
YmFjayhwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2Rp
cmVjdG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQqIGFyZykKIHsKICAgICBmb3JfZWFjaF92aWV3X2luZGV4X2RhdGEqIGRhdGE7CkBA
IC0xNTAxLDcgKzE1MDQsNyBAQCBib29sIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfdmll
d19pCiAgICAgZGF0YS5oZWFwID0gaGVhcDsKICAgICBkYXRhLmNhbGxiYWNrID0gY2FsbGJhY2s7
CiAgICAgZGF0YS5hcmcgPSBhcmc7Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9y
X2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9o
ZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICBoZWFwLAogICAgICAgICBmb3Jf
ZWFjaF92aWV3X2luZGV4X2RpcmVjdG9yeV9jYWxsYmFjaywKICAgICAgICAgJmRhdGEpOwpAQCAt
MTUxMyw3ICsxNTE2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgIHZvaWQqIGFyZzsKIH0gZm9y
X2VhY2hfbGl2ZV9vYmplY3RfZGF0YTsKIAotc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmpl
Y3Rfb2JqZWN0X2NhbGxiYWNrKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAorc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxi
YWNrKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
dyB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnRwdHJfdCBiZWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2b2lkKiBhcmcpCkBAIC0xNTI1LDExICsxNTI4LDExIEBAIHN0YXRpYyBib29s
IGZvcl9lYWNoX2xpdmVfb2JqZWN0X29iamVjdF8KIAogc3RhdGljIGJvb2wgZm9yX2VhY2hfbGl2
ZV9vYmplY3RfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhl
YXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lk
KiBhcmcpCiB7CiAgICAgUEFTX1VOVVNFRF9QQVJBTShoZWFwKTsKLSAgICByZXR1cm4gcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KAorICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVj
dCgKICAgICAgICAgZGlyZWN0b3J5LAogICAgICAgICBmb3JfZWFjaF9saXZlX29iamVjdF9vYmpl
Y3RfY2FsbGJhY2ssCiAgICAgICAgIGFyZyk7CkBAIC0xNTYzLDcgKzE1NjYsNyBAQCBib29sIHBh
c19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfbGl2ZV9vCiAgICAgZGF0YS5jYWxsYmFjayA9IGNh
bGxiYWNrOwogICAgIGRhdGEuYXJnID0gYXJnOwogICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCisgICAgaWYgKCFwYXNfc2Vn
cmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICAgICAgaGVhcCwK
ICAgICAgICAgICAgIGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RpcmVjdG9yeV9jYWxsYmFjaywKICAg
ICAgICAgICAgICZkYXRhKSkKQEAgLTE1ODUsNyArMTU4OCw3IEBAIHR5cGVkZWYgc3RydWN0IHsK
IAogc3RhdGljIGJvb2wgbnVtX2NvbW1pdHRlZF92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2soCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFyZykKIHsKICAgICBudW1fY29tbWl0dGVkX3Zp
ZXdzX2RhdGEqIGRhdGE7CkBAIC0xNjA1LDcgKzE2MDgsNyBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9udW1fY29tbWl0dGVkCiAKICAgICBkYXRhLnJlc3VsdCA9IDA7CiAgICAgCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICAgICAgaGVh
cCwgbnVtX2NvbW1pdHRlZF92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2ssICZkYXRhKTsKICAgICAK
ICAgICByZXR1cm4gZGF0YS5yZXN1bHQ7CkBAIC0xNjE3LDcgKzE2MjAsNyBAQCB0eXBlZGVmIHN0
cnVjdCB7CiAKIHN0YXRpYyBib29sIG51bV9lbXB0eV92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2so
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFyZykKIHsKICAgICBudW1fZW1wdHlfdmll
d3NfZGF0YSogZGF0YTsKQEAgLTE2MzcsNyArMTY0MCw3IEBAIHNpemVfdCBwYXNfc2VncmVnYXRl
ZF9oZWFwX251bV9lbXB0eV92aWUKIAogICAgIGRhdGEucmVzdWx0ID0gMDsKICAgICAKLSAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICBoZWFw
LCBudW1fZW1wdHlfdmlld3NfZGlyZWN0b3J5X2NhbGxiYWNrLCAmZGF0YSk7CiAgICAgCiAgICAg
cmV0dXJuIGRhdGEucmVzdWx0OwpAQCAtMTY0OSw3ICsxNjUyLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg
ewogCiBzdGF0aWMgYm9vbCBudW1fZW1wdHlfZ3JhbnVsZXNfZGlyZWN0b3J5X2NhbGxiYWNrKAog
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgbnVtX2VtcHR5X2dyYW51
bGVzX2RhdGEqIGRhdGE7CkBAIC0xNjY5LDcgKzE2NzIsNyBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9udW1fZW1wdHlfZ3JhCiAKICAgICBkYXRhLnJlc3VsdCA9IDA7CiAKLSAgICBwYXNf
c2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNf
c2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICBoZWFwLCBu
dW1fZW1wdHlfZ3JhbnVsZXNfZGlyZWN0b3J5X2NhbGxiYWNrLCAmZGF0YSk7CiAKICAgICByZXR1
cm4gZGF0YS5yZXN1bHQ7CkBAIC0xNjgxLDcgKzE2ODQsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAK
IHN0YXRpYyBib29sIG51bV92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAogICAgIHZvaWQqIGFyZykKIHsKICAgICBudW1fdmlld3NfZGF0YSogZGF0YTsKQEAgLTE3
MDEsNyArMTcwNCw3IEBAIHNpemVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX251bV92aWV3cyhwYXMK
ICAgICAKICAgICBkYXRhLnJlc3VsdCA9IDA7CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICAgICAgaGVhcCwgbnVtX3ZpZXdzX2RpcmVj
dG9yeV9jYWxsYmFjaywgJmRhdGEpOwogICAgIAogICAgIHJldHVybiBkYXRhLnJlc3VsdDsKQEAg
LTE3MDksNyArMTcxMiw3IEBAIHNpemVfdCBwYXNfc2VncmVnYXRlZF9oZWFwX251bV92aWV3cyhw
YXMKIAogc3RhdGljIGJvb2wgY29tcHV0ZV9zdW1tYXJ5X2RpcmVjdG9yeV9jYWxsYmFjaygKICAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKQogewogICAgIHBhc19oZWFwX3N1bW1hcnkq
IHN1bW1hcnk7CkBAIC0xNzMyLDcgKzE3MzUsNyBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdy
ZWdhdGVkX2hlYXBfY29tCiAgICAgCiAgICAgcmVzdWx0ID0gcGFzX2hlYXBfc3VtbWFyeV9jcmVh
dGVfZW1wdHkoKTsKICAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVf
ZGlyZWN0b3J5KAogICAgICAgICBoZWFwLCBjb21wdXRlX3N1bW1hcnlfZGlyZWN0b3J5X2NhbGxi
YWNrLCAmcmVzdWx0KTsKIAogICAgIGJpdGZpdF9oZWFwID0gcGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF9oZWFwX3B0cl9sb2FkKCZoZWFwLT5iaXRmaXRfaGVhcCk7CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw3ICsyOSw3IEBACiAj
aW5jbHVkZSAicGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCIKICNpbmNsdWRlICJwYXNf
Y29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oIgogI2luY2x1ZGUgInBhc19jb21w
YWN0X2F0b21pY19wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBh
Y3RfaGVhcF9wdHIuaCIKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2Nv
dW50X2xvb2t1cF9tb2RlLmgiCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAicGFzX2xvY2Fs
X2FsbG9jYXRvci5oIgogI2luY2x1ZGUgInBhc19tdXRhdGlvbl9jb3VudC5oIgogI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tpbmQuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vf
c2hhcmluZ19tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIgogCkBAIC01
OCwxMiArNTksMTIgQEAgZW51bSBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2Rpcgog
dHlwZWRlZiBlbnVtIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3Nl
YXJjaF9tb2RlIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJj
aF9tb2RlOwogCiBzdHJ1Y3QgcGFzX2hlYXA7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owog
c3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXA7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9t
ZWRpdW1fZGlyZWN0b3J5X3R1cGxlOwogc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9k
YXRhOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXAgcGFzX2hlYXA7Ci10eXBlZGVmIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9oZWFwIHBhc19zZWdyZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9yYXJlX2RhdGEgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9yYXJlX2RhdGE7CkBAIC03NiwxMiAr
NzcsMTIgQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAgewogICAgIHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnKiBydW50aW1lX2NvbmZpZzsKICAgICAKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4
KiBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6
ZV9kaXJlY3Rvcnk7CisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyKiBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKIAogICAgIC8qIFRoaXMg
aXMgdGhlIGhlYWQgb2YgdGhlIGxpbmtlZCBsaXN0IG9mIHNlZ3JlZ2F0ZWQgc2l6ZSBkaXJlY3Rv
cmllcy4gQWxzbywgaWYgdGhlcmUgaXMKICAgICAgICBhIGJhc2ljIHNpemUgZGlyZWN0b3J5ICh0
aGUgb25lIGZvciBpbmRleCA9PSAxIG9yIGluZGV4ID09ICpjYWNoZWRfaW5kZXgpLCB0aGVuIGl0
IHdpbGwKICAgICAgICBiZSBhdCB0aGUgaGVhZCBvZiB0aGUgbGlzdCB3aXRoIHRoZSBpc19iYXNp
Y19zaXplX2RpcmVjdG9yeSBiaXQgc2V0LiAqLwotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5k
X2hlYWQ7CisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyIGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkOwogICAgIAogICAgIHBhc19zZWdyZWdh
dGVkX2hlYXBfcmFyZV9kYXRhX3B0ciByYXJlX2RhdGE7CiAKQEAgLTEwNiw3ICsxMDcsNyBAQCBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0CiAgICAgLyogTk9URTogVGhp
cyBkaXJlY3RvcnkgaXMgYWx3YXlzIGdvaW5nIHRvIGJlIG1lZGl1bSBzaXplZCBiZWNhdXNlIHRo
aXMgZGF0YSBzdHJ1Y3R1cmUgaXMgb25seQogICAgICAgIHVzZWQgZm9yIHNpemVzIHRoYXQgYXJl
IGJleW9uZCB0aGUgbWF4IG9iamVjdCBzaXplIGZvciBzbWFsbCBwYWdlcy4gQnV0IG5vYm9keSBz
dHJvbmdseQogICAgICAgIHJlbGllcyBvbiB0aGF0IHByb3BlcnR5LiAqLwotICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5
OworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBk
aXJlY3Rvcnk7CiAKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKICAg
ICAKQEAgLTE4OSw3ICsxOTAsNyBAQCBQQVNfQVBJIHVuc2lnbmVkIHBhc19zZWdyZWdhdGVkX2hl
YXBfbWVkCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3Rvcnlfc2Vh
cmNoX21vZGUgc2VhcmNoX21vZGUsCiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19o
b2xkX21vZGUpOwogCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KAor
UEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9tZWRpdW1fc2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsCiAgICAgc2l6ZV90IGluZGV4LAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVk
aXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2RlIHNlYXJjaF9tb2RlLApAQCAtMjMxLDcgKzIz
Miw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfYWxsb2NhdG9yX2luZGV4X2Zvcl8KIFBBU19BUEkg
dW5zaWduZWQKIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleCgKICAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGNvdW50LAogICAgIHBhc19jb3VudF9sb29rdXBf
bW9kZSBjb3VudF9sb29rdXBfbW9kZSwKICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKQEAg
LTI1NywyOSArMjU4LDMwIEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9p
bmQKICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleF9mb3JfY291
bnQuIE5lZWQgdG8gaG9sZCBoZWFwIGxvY2sgdG8KICAgIGNhbGwgdGhpcy4gT0sgdG8gcGFzcyBO
VUxMIGZvciBjYWNoZWRfaW5kZXg7IG9ubHkgcHJpbWl0aXZlX2hlYXBfcmVmJ3MgdXNlCiAgICB0
aGF0LiAqLwotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCitQ
QVNfQVBJIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KAogICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsCiAgICAgc2l6ZV90IGNvdW50LCBzaXplX3QgYWxpZ25tZW50LAogICAgIHBhc19j
b3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKICAgICBwYXNfaGVhcF9jb25maWcq
IGNvbmZpZywKLSAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KTsKKyAgICB1bnNpZ25lZCogY2Fj
aGVkX2luZGV4LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21v
ZGUgY3JlYXRpb25fbW9kZSk7CiAKIFBBU19BUEkgc2l6ZV90IHBhc19zZWdyZWdhdGVkX2hlYXBf
Z2V0X251bV9mcmVlX2J5dGVzKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXApOwogCi10eXBlZGVm
IGJvb2wgKCpwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9jYWxsYmFjaykoCit0eXBlZGVmIGJvb2wgKCpwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNo
X3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFw
LAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCog
YXJnKTsKIAotUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KAorUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2Vh
Y2hfc2l6ZV9kaXJlY3RvcnkoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFj
ayBjYWxsYmFjaywKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0
b3J5X2NhbGxiYWNrIGNhbGxiYWNrLAogICAgIHZvaWQqIGFyZyk7CiAKIHR5cGVkZWYgYm9vbCAo
KnBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfY29tbWl0dGVkX3ZpZXdfY2FsbGJhY2spKAog
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgdm9p
ZCogYXJnKTsKIApAQCAtMjkwLDcgKzI5Miw3IEBAIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRl
ZF9oZWFwX2Zvcl9lYWMKIAogdHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3Jf
ZWFjaF92aWV3X2luZGV4X2NhbGxiYWNrKSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFw
LAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90
IGluZGV4LAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlld3AsCiAgICAgdm9pZCogYXJnKTsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hl
YXBfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMjEgKzI3LDIxIEBACiAjZGVmaW5lIFBBU19TRUdS
RUdBVEVEX0hFQVBfSU5MSU5FU19ICiAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgi
Ci0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKIAogUEFTX0JFR0lOX0VYVEVS
Tl9DOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5Kgorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2RpcmVjdG9yeV9mb3JfaW5k
ZXgoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKICAgICBzaXplX3QgaW5kZXgsCiAg
ICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKIHsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zaXplX2RpcmVjdG9y
eTsKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIq
IGluZGV4X3RvX3NpemVfZGlyZWN0b3J5OwogICAgIAogICAgIGlmIChpbmRleCA9PSAoY2FjaGVk
X2luZGV4ID8gKmNhY2hlZF9pbmRleCA6IDEpKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogcmVzdWx0OwotICAgICAgICByZXN1bHQgPSBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CisgICAgICAgIHJlc3Vs
dCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2Fk
KAogICAgICAgICAgICAgJmhlYXAtPmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKTsKICAg
ICAgICAgaWYgKHJlc3VsdCAmJiByZXN1bHQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3Rvcnkp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNjEsMTAgKzYxLDEwIEBAIHBhc19zZWdy
ZWdhdGVkX2hlYXBfc2l6ZV9kaXJlY3RvcnlfZm9yX2kKICAgICAgICAgcmV0dXJuIE5VTEw7CiAg
ICAgfQogICAgIAotICAgIHJldHVybiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoaW5kZXhfdG9fc2l6ZV9kaXJlY3RvcnkgKyBpbmRl
eCk7CisgICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0cl9sb2FkKGluZGV4X3RvX3NpemVfZGlyZWN0b3J5ICsgaW5kZXgpOwogfQogCi1zdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
Kgorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KgogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQoCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKICAgICBzaXplX3QgY291bnQsCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9wYWdlLmMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAK
ICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKICNpbmNsdWRlICJwYXNfcmFuZ2Uu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKLSNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXBfY29u
ZmlnLmgiCiAKIGRvdWJsZSBwYXNfc2VncmVnYXRlZF9wYWdlX2V4dHJhX3dhc3RlYWdlX2hhbmRp
Y2FwX2Zvcl9jb25maWdfdmFyaWFudFsKQEAgLTU1LDE1ICs1NSwxMyBAQCBQQVNfQVBJIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9sb2NrX3dpCiAgICAgcGFzX2xvY2sqKiBoZWxkX2xvY2ssCiAg
ICAgcGFzX2xvY2sqIGxvY2tfcHRyKQogewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKLSAgICAKICAgICBwYXNfbG9ja19sb2NrKGxvY2tfcHRyKTsKICAgICAKICAgICBp
ZiAobG9ja19wdHIgPT0gcGFnZS0+bG9ja19wdHIpIHsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlldyBvd25lcjsKIAogICAgICAgICBvd25lciA9IHBhZ2UtPm93bmVyOwotICAgICAgICBpZiAo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKG93bmVyKSkgeworICAgICAgICBp
ZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShvd25lcikpIHsKICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7CiAgICAgICAg
ICAgICBwYXNfbG9jayogZmFsbGJhY2tfbG9jazsKICAgICAgICAgICAgIApAQCAtNzQsMTMgKzcy
LDYgQEAgUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3BhZ2VfbG9ja193aQogICAgICAgICAg
ICAgZmFsbGJhY2tfbG9jayA9ICZleGNsdXNpdmUtPm93bmVyc2hpcF9sb2NrOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBpZiAobG9ja19wdHIgIT0gZmFsbGJhY2tfbG9jaykgewotICAgICAg
ICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJUcmln
Z2VyaW5nIGV4cGxvc2lvbi5cbiIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9zZXRfY29udGVudGlvbl9kaWRf
dHJpZ2dlcl9leHBsb3Npb24oCi0gICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZleGNsdXNpdmUtPmRpcmVjdG9y
eSksCi0gICAgICAgICAgICAgICAgICAgIHRydWUpOwotICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2xvY2soZmFsbGJhY2tfbG9jayk7CiAgICAgICAgICAgICAgICAg
cGFnZS0+bG9ja19wdHIgPSBmYWxsYmFja19sb2NrOwogICAgICAgICAgICAgICAgIHBhc19sb2Nr
X3VubG9jayhsb2NrX3B0cik7CkBAIC0xMjAsMTAgKzExMSwxMCBAQCBwYXNfbG9jayogcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jCiAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUg
cmVhY2hlZCIpOwogfQogCi12b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5k
X3JlYmlhc190b19tYWdhemluZV93aGlsZV9pbmVsaWdpYmxlX2ltcGwoCit2b2lkIHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc193aGlsZV9pbmVsaWdpYmxlX2ltcGwo
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICBwYXNfbG9jayoqIGhlbGRfbG9j
aywKLSAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKQorICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbm9kZSogY2FjaGVfbm9kZSkKIHsKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXcgb3duZXI7CkBAIC0xMzQsMTQgKzEyNSwxNCBAQCB2b2lkIHBhc19zZWdyZWdh
dGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kCiAgICAgCiAgICAgICAgIHBhZ2VfbG9jayA9IHBhZ2Ut
PmxvY2tfcHRyOwogCi0gICAgICAgIGlmICgqaGVsZF9sb2NrID09IHBhZ2VfbG9jayAmJiAqaGVs
ZF9sb2NrID09ICZtYWdhemluZS0+bG9jaykgeworICAgICAgICBpZiAoKmhlbGRfbG9jayA9PSBw
YWdlX2xvY2sgJiYgKmhlbGRfbG9jayA9PSAmY2FjaGVfbm9kZS0+cGFnZV9sb2NrKSB7CiAgICAg
ICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCiAgICAgICAgIG93bmVyID0gcGFnZS0+b3duZXI7CiAKLSAgICAgICAgaWYgKCFwYXNf
c2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gob3duZXIpIHx8ICFtYWdhemluZSkgewor
ICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUob3duZXIp
IHx8ICFjYWNoZV9ub2RlKSB7CiAgICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goaGVsZF9sb2Nr
LCBwYWdlX2xvY2spOwogICAgICAgICAgICAgaWYgKHBhZ2UtPmxvY2tfcHRyICE9IHBhZ2VfbG9j
aykKICAgICAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTE0OSwxNCArMTQwLDE0IEBAIHZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmQKICAgICAgICAgfQogCiAgICAgICAg
IGRpZF9sb2NrX3F1aWNrbHkgPQotICAgICAgICAgICAgKCpoZWxkX2xvY2sgPT0gJm1hZ2F6aW5l
LT5sb2NrICYmIHBhc19sb2NrX3RyeV9sb2NrKHBhZ2VfbG9jaykpIHx8Ci0gICAgICAgICAgICAo
KmhlbGRfbG9jayA9PSBwYWdlX2xvY2sgJiYgcGFzX2xvY2tfdHJ5X2xvY2soJm1hZ2F6aW5lLT5s
b2NrKSk7CisgICAgICAgICAgICAoKmhlbGRfbG9jayA9PSAmY2FjaGVfbm9kZS0+cGFnZV9sb2Nr
ICYmIHBhc19sb2NrX3RyeV9sb2NrKHBhZ2VfbG9jaykpIHx8CisgICAgICAgICAgICAoKmhlbGRf
bG9jayA9PSBwYWdlX2xvY2sgJiYgcGFzX2xvY2tfdHJ5X2xvY2soJmNhY2hlX25vZGUtPnBhZ2Vf
bG9jaykpOwogCiAgICAgICAgIGlmICghZGlkX2xvY2tfcXVpY2tseSkgewogICAgICAgICAgICAg
aWYgKCpoZWxkX2xvY2spCiAgICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCpoZWxkX2xv
Y2spOwogCi0gICAgICAgICAgICBpZiAoJm1hZ2F6aW5lLT5sb2NrID09IHBhZ2VfbG9jaykgewor
ICAgICAgICAgICAgaWYgKCZjYWNoZV9ub2RlLT5wYWdlX2xvY2sgPT0gcGFnZV9sb2NrKSB7CiAg
ICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9jayhwYWdlX2xvY2spOwogICAgICAgICAgICAgICAg
ICpoZWxkX2xvY2sgPSBwYWdlX2xvY2s7CiAgICAgICAgICAgICAgICAgaWYgKHBhZ2UtPmxvY2tf
cHRyICE9IHBhZ2VfbG9jaykKQEAgLTE2OCwyNiArMTU5LDI3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmQKIAogICAgICAgICAgICAgLyogVGhpcyBlbmZvcmNlcyB0
aGF0OgogICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAtIE1hZ2F6aW5lIGxvY2tzIG11
c3QgYmUgYWNxdWlyZWQgYmVmb3JlIHBhZ2UgbG9ja3MuCisgICAgICAgICAgICAgICAtIENhY2hl
IG5vZGUgcGFnZSBsb2NrcyBtdXN0IGJlIGFjcXVpcmVkIGJlZm9yZSBwYWdlIGxvY2tzLgogICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAtIE1hZ2F6aW5lIGxvY2tzIGFyZSBhY3F1aXJl
ZCBpbiBwb2ludGVyLWFzLWludGVnZXIgb3JkZXIgcmVsYXRpdmUgdG8gb25lIGFub3RoZXIuICov
Ci0gICAgICAgICAgICBpZiAoJmV4Y2x1c2l2ZS0+b3duZXJzaGlwX2xvY2sgPT0gcGFnZV9sb2Nr
IHx8ICZtYWdhemluZS0+bG9jayA8IHBhZ2VfbG9jaykgewotICAgICAgICAgICAgICAgIHBhc19s
b2NrX2xvY2soJm1hZ2F6aW5lLT5sb2NrKTsKKyAgICAgICAgICAgICAgIC0gQ2FjaGUgbm9kZSBw
YWdlIGxvY2tzIGFyZSBhY3F1aXJlZCBpbiBwb2ludGVyLWFzLWludGVnZXIgb3JkZXIgcmVsYXRp
dmUgdG8gb25lCisgICAgICAgICAgICAgICAgIGFub3RoZXIuICovCisgICAgICAgICAgICBpZiAo
JmV4Y2x1c2l2ZS0+b3duZXJzaGlwX2xvY2sgPT0gcGFnZV9sb2NrIHx8ICZjYWNoZV9ub2RlLT5w
YWdlX2xvY2sgPCBwYWdlX2xvY2spIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZj
YWNoZV9ub2RlLT5wYWdlX2xvY2spOwogICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2socGFn
ZV9sb2NrKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcGFzX2xvY2tf
bG9jayhwYWdlX2xvY2spOwotICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2soJm1hZ2F6aW5l
LT5sb2NrKTsKKyAgICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZjYWNoZV9ub2RlLT5wYWdl
X2xvY2spOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgUEFTX0FTU0VSVChw
YWdlX2xvY2sgIT0gJm1hZ2F6aW5lLT5sb2NrKTsKKyAgICAgICAgUEFTX0FTU0VSVChwYWdlX2xv
Y2sgIT0gJmNhY2hlX25vZGUtPnBhZ2VfbG9jayk7CiAKICAgICAgICAgZ290X3JpZ2h0X2xvY2sg
PSAocGFnZS0+bG9ja19wdHIgPT0gcGFnZV9sb2NrKTsKICAgICAgICAgaWYgKGdvdF9yaWdodF9s
b2NrKQotICAgICAgICAgICAgcGFnZS0+bG9ja19wdHIgPSAmbWFnYXppbmUtPmxvY2s7CisgICAg
ICAgICAgICBwYWdlLT5sb2NrX3B0ciA9ICZjYWNoZV9ub2RlLT5wYWdlX2xvY2s7CiAgICAgICAg
IAogICAgICAgICBwYXNfbG9ja191bmxvY2socGFnZV9sb2NrKTsKLSAgICAgICAgKmhlbGRfbG9j
ayA9ICZtYWdhemluZS0+bG9jazsKKyAgICAgICAgKmhlbGRfbG9jayA9ICZjYWNoZV9ub2RlLT5w
YWdlX2xvY2s7CiAKICAgICAgICAgaWYgKGdvdF9yaWdodF9sb2NrKQogICAgICAgICAgICAgcmV0
dXJuOwpAQCAtMjE0LDggKzIwNiw5IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1
Y3QocGFzX3MKICAgICBwYWdlLT51c2VfZXBvY2ggPSBQQVNfRVBPQ0hfSU5WQUxJRDsKIAogICAg
IGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIHBhc19sb2coIkNvbnN0cnVjdGluZyBwYWdlICVwIGZv
ciB2aWV3ICVwIGFuZCBjb25maWcgJXMuXG4iLAotICAgICAgICAgICAgICAgIHBhZ2UsIG93bmVy
LCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcocGFnZV9jb25maWcu
a2luZCkpOworICAgICAgICBwYXNfbG9nKCJDb25zdHJ1Y3RpbmcgcGFnZSAlcCB3aXRoIGJvdW5k
YXJ5ICVwIGZvciB2aWV3ICVwIGFuZCBjb25maWcgJXMuXG4iLAorICAgICAgICAgICAgICAgIHBh
Z2UsIHBhc19zZWdyZWdhdGVkX3BhZ2VfYm91bmRhcnkocGFnZSwgcGFnZV9jb25maWcpLAorICAg
ICAgICAgICAgICAgIG93bmVyLCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9z
dHJpbmcocGFnZV9jb25maWcua2luZCkpOwogICAgIH0KIAogICAgIGlmIChwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KHBhZ2VfY29uZmlnKSkKQEAgLTIyOCwyMiArMjIxLDI5
IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QocGFzX3MKIAogICAgIHBhZ2Ut
Pm51bV9ub25fZW1wdHlfd29yZHMgPSAwOwogICAgIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF92
aWV3X2lzX2V4Y2x1c2l2ZV9pc2gob3duZXIpKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYWdlLT52aWV3X2NhY2hlX2lu
ZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7CisKKyAgICBpZiAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShvd25lcikpIHsKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKIAotICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkob3duZXIpOwotICAgICAgICBk
YXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRf
bm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CisgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KG93bmVyKTsKKyAgICAgICAgZGF0YSA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVj
dG9yeS0+ZGF0YSk7CiAKICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPm9iamVjdF9zaXpl
KTsKICAgICAgICAgcGFnZS0+b2JqZWN0X3NpemUgPSBkaXJlY3RvcnktPm9iamVjdF9zaXplOwog
ICAgICAgICBQQVNfQVNTRVJUKHBhZ2UtPm9iamVjdF9zaXplID09IGRpcmVjdG9yeS0+b2JqZWN0
X3NpemUpOyAvKiBDaGVjayBmb3Igb3ZlcmZsb3dzLiAqLworCisgICAgICAgIGlmIChwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2NhY2hlX2NhcGFjaXR5KGRpcmVjdG9yeSkpIHsK
KyAgICAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5LT52aWV3X2NhY2hlX2luZGV4IDwgKHBh
c19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOworICAgICAgICAgICAgcGFnZS0+dmlld19jYWNo
ZV9pbmRleCA9IGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleDsKKyAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCA9PSAocGFz
X2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CiAgICAgfSBlbHNlCiAgICAgICAgIHBhZ2UtPm9i
amVjdF9zaXplID0gMDsKIAogICAgIHBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbiA9IGZh
bHNlOwogICAgIHBhZ2UtPmlzX2NvbW1pdHRpbmdfZnVsbHkgPSBmYWxzZTsKLSAgICBwYWdlLT5h
dm9pZF9saW5lX2FsbG9jYXRvciA9IGZhbHNlOwogCiAgICAgaWYgKHBhZ2VfY29uZmlnLmJhc2Uu
cGFnZV9zaXplICE9IHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplKSB7CiAgICAgICAgIHBh
c19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzOwpAQCAtNTA2LDggKzUwNiw4IEBA
IHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb21taXRfZnVsbHkoCiAgICAgICAgICAgICAgICAg
ICAgIGNvbW1pdF9zcGFuLnRvdGFsX2J5dGVzKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVtX2FkZCgKLSAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG93bmVyKSwKLSAg
ICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2R1
bXBfZm9yX3NwZWN0cnVtLAorICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9zaXplX2RpcmVjdG9yeShvd25lciksCisgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtLAogICAgICAgICAgICAgICAg
ICAgICBjb21taXRfc3Bhbi50b3RhbF9ieXRlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuaAkocmV2aXNpb24gMjgy
MjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
cGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
YykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBQQVNfU0VH
UkVHQVRFRF9QQUdFX0gKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9ICiAKKyNpbmNsdWRl
ICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCiAjaW5jbHVkZSAicGFzX2JpdHZlY3Rvci5oIgogI2lu
Y2x1ZGUgInBhc19jb25maWcuaCIKICNpbmNsdWRlICJwYXNfZnJlZV9yYW5nZV9raW5kLmgiCkBA
IC02Nyw5ICs2OCw3IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlIHsKICAgICBib29sIGVs
aWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJlZDsKIAogICAgIC8qIFRoaXMg
aXMgaGFuZHkgZm9yIGRlYnVnZ2luZy4gKi8KLSAgICBib29sIGlzX2NvbW1pdHRpbmdfZnVsbHkg
OiAxOwotCi0gICAgYm9vbCBhdm9pZF9saW5lX2FsbG9jYXRvciA6IDE7CisgICAgYm9vbCBpc19j
b21taXR0aW5nX2Z1bGx5OwogCiAgICAgdW5zaWduZWQgb2JqZWN0X3NpemU7IC8qIENhY2hpbmcg
dGhpcyBoZXJlIGlzIGdyZWF0IGZvciBwZXJmb3JtYW5jZS4gKi8KIApAQCAtMTA1LDYgKzEwNCw3
IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlIHsKICAgICBwYXNfc2VncmVnYXRlZF92aWV3
IG93bmVyOwogICAgIAogICAgIHVpbnQxNl90IG51bV9ub25fZW1wdHlfd29yZHM7CisgICAgcGFz
X2FsbG9jYXRvcl9pbmRleCB2aWV3X2NhY2hlX2luZGV4OwogCiAgICAgdW5zaWduZWQgYWxsb2Nf
Yml0c1sxXTsKIH07CkBAIC0yOTAsNiArMjkwLDM0IEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0
X2dyYW51bGVfdXNlX2NvdW4KICAgICAgICAgcGFnZS0+YWxsb2NfYml0cyArIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY193b3JkcyhwYWdlX2NvbmZpZykpOwogfQogCitzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbAorcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNf
Zm9yX2RlY29tbWl0KAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCit7CisgICAgcGFzX3BhZ2VfZ3JhbnVs
ZV91c2VfY291bnQqIHVzZV9jb3VudHM7CisgICAgdWludHB0cl90IG51bV9ncmFudWxlczsKKyAg
ICB1aW50cHRyX3QgZ3JhbnVsZV9pbmRleDsKKyAgICAKKyAgICBQQVNfQVNTRVJUKHBhZ2VfY29u
ZmlnLmJhc2UuaXNfZW5hYmxlZCk7CisKKyAgICBpZiAoIXBhZ2UtPm51bV9ub25fZW1wdHlfd29y
ZHMpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAorICAgIGlmIChwYWdlX2NvbmZpZy5iYXNl
LnBhZ2Vfc2l6ZSA9PSBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIAorICAgIHVzZV9jb3VudHMgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2dl
dF9ncmFudWxlX3VzZV9jb3VudHMocGFnZSwgcGFnZV9jb25maWcpOworICAgIG51bV9ncmFudWxl
cyA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC8gcGFnZV9jb25maWcuYmFzZS5ncmFudWxl
X3NpemU7CisgICAgCisgICAgZm9yIChncmFudWxlX2luZGV4ID0gbnVtX2dyYW51bGVzOyBncmFu
dWxlX2luZGV4LS07KSB7CisgICAgICAgIGlmICghdXNlX2NvdW50c1tncmFudWxlX2luZGV4XSkK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30K
Kwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX3BhZ2UqCiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeSh2b2lkKiBib3VuZGFyeSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmln
KQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHN0cnVjdCBwYXNfbG9jYWxfYWxs
b2NhdG9yOwogc3RydWN0IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnOwogc3RydWN0IHBhc19wYWdl
X3NoYXJpbmdfcG9vbDsKIHN0cnVjdCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uOwot
c3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwog
c3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2U7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWc7CkBAIC02Niw3ICs2Niw3IEBAIHR5cGVkZWYgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0
b3IgcGFzX2wKIHR5cGVkZWYgc3RydWN0IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnIHBhc19oZWFw
X3J1bnRpbWVfY29uZmlnOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3BhZ2Vfc2hhcmluZ19wb29sIHBh
c19wYWdlX3NoYXJpbmdfcG9vbDsKIHR5cGVkZWYgc3RydWN0IHBhc19waHlzaWNhbF9tZW1vcnlf
dHJhbnNhY3Rpb24gcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbjsKLXR5cGVkZWYgc3Ry
dWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0
IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0
IHBhc19zZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKIHR5cGVkZWYgc3RydWN0
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnOwpA
QCAtNzYsNyArNzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIHBh
CiAKIHR5cGVkZWYgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KgogKCpwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IpKAot
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIHR5cGVkZWYgdm9pZCAo
KnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2RlYWxsb2NfZnVuYykocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgYmVnaW4pOwogCkBAIC04Niw3
ICs4Niw3IEBAIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiB0eXBlZGVmIGJvb2wKICgq
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3N0
YXJ0X2FsbG9jYXRpbmdfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcpKAogICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0
aWFsLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJl
Y3RvcnkpOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9y
eSk7CiB0eXBlZGVmIGJvb2wgKCpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19zcGVjaWFsaXpl
ZF9sb2NhbF9hbGxvY2F0b3JfcmVmaWxsKSgKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxv
Y2F0b3IsCiAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cyk7CkBAIC05NCw3ICs5NCw3
IEBAIHR5cGVkZWYgdm9pZCAoKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmkKICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAog
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRf
bW9kZSk7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyB7CkBAIC0xNTMsNiAr
MTUzLDkgQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHsKICAgICAgICBvZiBi
aXRzIGdvZXMgY2xlYXIuICovCiAgICAgYm9vbCBlbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0
eV9vcHRpbWl6YXRpb247CiAKKyAgICAvKiBUZWxscyBpZiB3ZSB1c2UgdGhlIHZpZXcgY2FjaGUg
Zm9yIHRoaXMgc2l6ZSBjbGFzcy4gKi8KKyAgICBib29sIGVuYWJsZV92aWV3X2NhY2hlOworCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVj
dG9yIHNoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvcjsKIAogICAgIC8qIFRoZXNlIHR3byBn
ZXQgZmlsbGVkIGluIHdpdGggdGhlIFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX1NQRUNJQUxJ
WkFUSU9OUygpIG1hY3JvLiAqLwpAQCAtMTgzLDcgKzE4Niw3IEBAIFBBU19BUEkgZXh0ZXJuIGJv
b2wgcGFzX21lZGl1bV9zZWdyZWdhdGUKICAgICBQQVNfQVBJIGJvb2wgbG93ZXJfY2FzZV9wYWdl
X2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxsb2Nh
dGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxfdmlldyggXAogICAgICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yKiBhbGxvY2F0b3IsIFwKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
KiBwYXJ0aWFsLCBcCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogc2l6ZV9kaXJlY3RvcnkpOyBcCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBzaXplX2RpcmVjdG9yeSk7IFwKICAgICBQQVNfQVBJIGJvb2wgbG93ZXJfY2FzZV9wYWdl
X2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfcmVmaWxsKCBcCiAg
ICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgXAogICAgICAgICBwYXNfYWxs
b2NhdG9yX2NvdW50cyogY291bnRzKTsgXApAQCAtMTkyLDcgKzE5NSw3IEBAIFBBU19BUEkgZXh0
ZXJuIGJvb2wgcGFzX21lZGl1bV9zZWdyZWdhdGUKICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
ciogYWxsb2NhdG9yLCBcCiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywgXAogICAg
ICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLCBcCi0gICAgICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBcCisgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksIFwKICAgICAgICAgcGFzX2xvY2tfaG9sZF9t
b2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFHRV9D
T05GSUdfU1BFQ0lBTElaQVRJT05TKGxvd2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSkgXApJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaAkocmV2aXNpb24gMjgy
MjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIFBB
U19CRUdJTl9FWFRFUk5fQzsKICAgICBQQVNfTkVWRVJfSU5MSU5FIGJvb2wgbG93ZXJfY2FzZV9w
YWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3Jfc3RhcnRfYWxs
b2NhdGluZ19pbl9wcmltb3JkaWFsX3BhcnRpYWxfdmlldyggXAogICAgICAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yKiBhbGxvY2F0b3IsIFwKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3KiBwYXJ0aWFsLCBcCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogc2l6ZV9kaXJlY3RvcnkpIFwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIHNpemVfZGlyZWN0b3J5KSBcCiAgICAgeyBcCiAgICAgICAgIHJldHVybiBwYXNfbG9j
YWxfYWxsb2NhdG9yX3N0YXJ0X2FsbG9jYXRpbmdfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXco
IFwKICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFydGlhbCwgc2l6ZV9kaXJlY3RvcnksIChwYWdl
X2NvbmZpZ192YWx1ZSkpOyBcCkBAIC02NCw3ICs2NCw3IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsK
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBcCiAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldywgXAogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
LCBcCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LCBcCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
IFwKICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpIFwKICAg
ICB7IFwKICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZ2Uo
IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX3V0aWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfdXRpbHMuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192ZXJpZnlfZGVhbGxvCiAgICAgXAogICAgIFBBU19B
UEkgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBcCiAgICAgbmFtZSAjIyBf
cGFnZV9jb25maWdfc2VsZWN0X3NoYXJlZF9wYWdlX2RpcmVjdG9yeSggXAotICAgICAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSk7IFwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7IFwKICAgICBcCiAgICAgc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgXAogICAgIG5hbWUgIyMgX2RlYWxsb2NfZnVuYyhw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwgdWludHB0cl90IGJlZ2luKQpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
dXRpbHNfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaAkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3
ICs1Miw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICBcCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5KiBcCiAgICAgbmFtZSAjIyBfcGFnZV9jb25maWdfc2VsZWN0X3No
YXJlZF9wYWdlX2RpcmVjdG9yeSggXAotICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFw
LCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KSBc
CisgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSkgXAogICAgIHsgXAogICAgICAgICBQQVNfVU5VU0VE
X1BBUkFNKHNpemVfZGlyZWN0b3J5KTsgXAogICAgICAgICBcCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDE1ICsyOCwxNSBAQAogCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgogI2luY2x1ZGUg
InBhc19sb2cuaCIKLSNpbmNsdWRlICJwYXNfbWFnYXppbmUuaCIKICNpbmNsdWRlICJwYXNfcGFn
ZV9iYXNlX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgiCisjaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIgogI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3BhZ2UuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnku
aCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfaGFuZGxlX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3
X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaCIKIAog
UEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC00NCwyMiArNDQsMjIgQEAgUEFTX0JFR0lOX0VYVEVS
Tl9DOwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkCiBwYXNfc2VncmVnYXRlZF9w
YWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0KAogICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsK
ICAgICB1aW50cHRyX3QgcmVzdWx0OwogCiAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNl
LmlzX2VuYWJsZWQpOwogICAgIAotICAgIGlmICghcGFnZSB8fCBwYXNfc2VncmVnYXRlZF92aWV3
X2lzX2V4Y2x1c2l2ZV9pc2gocGFnZS0+b3duZXIpKSB7CisgICAgaWYgKCFwYWdlIHx8IHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUocGFnZS0+b3duZXIpKSB7CiAgICAgICAg
IGlmICghcGFnZSkKICAgICAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5KTsKICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgIGRpcmVj
dG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoCiAgICAgICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2
ZShwYWdlLT5vd25lciktPmRpcmVjdG9yeSk7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4g
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251
bGwoJmRpcmVjdG9yeS0+ZGF0YSkKKyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSkKICAgICAg
ICAgICAgIC0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3Q7CiAgICAg
fQogCkBAIC03Niw3ICs3Niw3IEBAIHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFn
ZV9ib3UKICAgIGJyaW5naW5nIHVwIHNoYXJlZCB2aWV3cy4gKi8KIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBib29sIHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3Vu
dHMoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKLSAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1
c2VfY291bnRzLAogICAgIHVpbnRwdHJfdCBlbmRfZ3JhbnVsZV9pbmRleCwKICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3NlZ3JlZwogICAgIHVpbnRwdHJfdCBlbmRfb2Zf
bGFzdF9vYmplY3Q7CiAgICAgdWludHB0cl90IG9iamVjdF9zaXplOwogICAgIHVpbnRwdHJfdCBv
ZmZzZXQ7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRh
dGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKIAogICAg
IFBBU19BU1NFUlQocGFnZV9jb25maWcuYmFzZS5pc19lbmFibGVkKTsKICAgICAKQEAgLTEyMiw3
ICsxMjIsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnCiAgICAg
aWYgKCFkaXJlY3RvcnkpCiAgICAgICAgIHJldHVybiBlbmRfZ3JhbnVsZV9vZmZzZXQgPT0gcGFn
ZV9jb25maWcuYmFzZS5wYWdlX3NpemU7CiAKLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0
YSk7CisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xv
YWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7CiAKICAgICBzdGFydF9vZl9maXJzdF9vYmpl
Y3QgPQogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRh
cnlfdG9fZmlyc3Rfb2JqZWN0KApAQCAtMjM1LDE0ICsyMzUsMzMgQEAgUEFTX0FQSSBwYXNfbG9j
ayogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zdwogICAgIHBhc19sb2NrKiBoZWxkX2xvY2ssCiAgICAg
cGFzX2xvY2sqIHBhZ2VfbG9jayk7CiAKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBh
c19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfaW1wbCgKKyAgICBwYXNfc2VncmVnYXRlZF9w
YWdlKiBwYWdlLAorICAgIHBhc19sb2NrKiogaGVsZF9sb2NrKQoreworICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBwYXNfbG9jayogaGVsZF9sb2NrX3Zh
bHVlOworICAgIHBhc19sb2NrKiBwYWdlX2xvY2s7CisgICAgCisgICAgaGVsZF9sb2NrX3ZhbHVl
ID0gKmhlbGRfbG9jazsKKyAgICBwYWdlX2xvY2sgPSBwYWdlLT5sb2NrX3B0cjsKKyAgICAKKyAg
ICBpZiAoUEFTX0xJS0VMWShoZWxkX2xvY2tfdmFsdWUgPT0gcGFnZV9sb2NrKSkgeworICAgICAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coIkdldHRpbmcgdGhlIHNhbWUgbG9j
ayBhcyBiZWZvcmUgKCVwKS5cbiIsIHBhZ2VfbG9jayk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgCisgICAgKmhlbGRfbG9jayA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tf
c2xvdyhwYWdlLCBoZWxkX2xvY2tfdmFsdWUsIHBhZ2VfbG9jayk7Cit9CisKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBib29sIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfd2l0aF9t
b2RlKAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgcGFzX2xvY2sqKiBoZWxk
X2xvY2ssCiAgICAgcGFzX2xvY2tfbG9ja19tb2RlIGxvY2tfbW9kZSwKICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7Ci0gICAgCiAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlz
X2VuYWJsZWQpOwogICAgIAogICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191
dGlsaXR5KHBhZ2VfY29uZmlnKSkgewpAQCAtMjU1LDE5ICsyNzQsNyBAQCBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnCiAgICAgICAgIHJldHVybiBwYXNfbG9ja19zd2l0
Y2hfd2l0aF9tb2RlKGhlbGRfbG9jaywgcGFnZS0+bG9ja19wdHIsIHBhc19sb2NrX2xvY2tfbW9k
ZV90cnlfbG9jayk7CiAKICAgICBjYXNlIHBhc19sb2NrX2xvY2tfbW9kZV9sb2NrOiB7Ci0gICAg
ICAgIHBhc19sb2NrKiBoZWxkX2xvY2tfdmFsdWU7Ci0gICAgICAgIHBhc19sb2NrKiBwYWdlX2xv
Y2s7Ci0KLSAgICAgICAgaGVsZF9sb2NrX3ZhbHVlID0gKmhlbGRfbG9jazsKLSAgICAgICAgcGFn
ZV9sb2NrID0gcGFnZS0+bG9ja19wdHI7Ci0gICAgICAgIAotICAgICAgICBpZiAoUEFTX0xJS0VM
WShoZWxkX2xvY2tfdmFsdWUgPT0gcGFnZV9sb2NrKSkgewotICAgICAgICAgICAgaWYgKHZlcmJv
c2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiR2V0dGluZyB0aGUgc2FtZSBsb2NrIGFzIGJl
Zm9yZSAoJXApLlxuIiwgcGFnZV9sb2NrKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9Ci0KLSAgICAgICAgKmhlbGRfbG9jayA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNo
X2xvY2tfc2xvdyhwYWdlLCBoZWxkX2xvY2tfdmFsdWUsIHBhZ2VfbG9jayk7CisgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfaW1wbChwYWdlLCBoZWxkX2xvY2spOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IH0KICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBi
ZSByZWFjaGVkIik7CkBAIC0yODcsMTYgKzI5NCwxNiBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdm9pZCBwYXNfc2VncmVnCiAgICAgUEFTX0FTU0VSVChyZXN1bHQpOwogfQogCi1QQVNfQVBJ
IHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6
aW5lX3doaWxlX2luZWxpZ2libGVfaW1wbCgKK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9w
YWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfd2hpbGVfaW5lbGlnaWJsZV9pbXBsKAogICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgcGFzX2xvY2sqKiBoZWxkX2xvY2ssCi0gICAg
cGFzX21hZ2F6aW5lKiBtYWdhemluZSk7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2Rl
KiBjYWNoZV9ub2RlKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQKLXBhc19zZWdy
ZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19tYWdhemluZV93aGlsZV9pbmVs
aWdpYmxlKAorcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3doaWxl
X2luZWxpZ2libGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICBwYXNfbG9j
ayoqIGhlbGRfbG9jaywKLSAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lLAorICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbm9kZSogY2FjaGVfbm9kZSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKICAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnLmJhc2Uu
aXNfZW5hYmxlZCk7CkBAIC0zMDYsOCArMzEzLDggQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0
Y2hfbG9ja19hbmRfcmViaQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6aW5lX3doaWxlX2luZWxp
Z2libGVfaW1wbCgKLSAgICAgICAgcGFnZSwgaGVsZF9sb2NrLCBtYWdhemluZSk7CisgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3doaWxlX2luZWxpZ2libGVf
aW1wbCgKKyAgICAgICAgcGFnZSwgaGVsZF9sb2NrLCBjYWNoZV9ub2RlKTsKIH0KIAogUEFTX0FQ
SSB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfdmVyaWZ5X2dyYW51bGVzKHBhc19zZWdyZWdhdGVk
X3BhZ2UqIHBhZ2UpOwpAQCAtMzE3LDYgKzMyNCw4IEBAIFBBU19BUEkgUEFTX05PX1JFVFVSTiBQ
QVNfVVNFRCB2b2lkIHBhc18KIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBh
Z2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBi
ZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUgZGVhbGxvY2F0aW9uX21vZGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVh
ZF9sb2NhbF9jYWNoZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7CiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAtMzkzLDExICs0MDIsMTUgQEAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZQogICAgICAgICBwYXNfc2VncmVnYXRlZF92
aWV3IG93bmVyOwogICAgICAgICBvd25lciA9IHBhZ2UtPm93bmVyOwogICAgICAgICAKLSAgICAg
ICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlX2tpbmQob3duZXIpKSB7Ci0g
ICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKG93bmVy
KSkgeworICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZChvd25lcikgIT0g
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZCkgeworICAgICAgICAgICAgaWYgKHBh
c19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUob3duZXIpKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIk5vdGlmeWlu
ZyBleGNsdXNpdmUtaXNoIGVsaWdpYmlsaXR5IG9uIHZpZXcgJXAuXG4iLCBvd25lcik7Ci0gICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19ub3RlX2VsaWdpYmlsaXR5KG93bmVyLCBw
YWdlKTsKKyAgICAgICAgICAgICAgICAvKiBOT1RFOiBJZiB0aGlzIGRlY2lkZXMgdG8gY2FjaGUg
dGhlIHZpZXcgdGhlbiBpdCdzIHBvc3NpYmxlIHRoYXQgd2Ugd2lsbCByZWxlYXNlIGFuZAorICAg
ICAgICAgICAgICAgICAgIHRoZW4gcmVhY3F1aXJlIHRoaXMgcGFnZSdzIGxvY2suICovCisgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbGlnaWJpbGl0
eSgKKyAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZl
KG93bmVyKSwKKyAgICAgICAgICAgICAgICAgICAgcGFnZSwgZGVhbGxvY2F0aW9uX21vZGUsIHRo
cmVhZF9sb2NhbF9jYWNoZSwgcGFnZV9jb25maWcpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlKiBzaGFyZWRfaGFuZGxl
OwogICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyogcGFydGlhbF92
aWV3OwpAQCAtNDM2LDEwICs0NDksMTAgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRl
X3dpdGhfcGFnZQogICAgICAgICBiaXRfaW5kZXggPSBvZmZzZXRfaW5fcGFnZSA+PiBwYWdlX2Nv
bmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlmdDsKICAgICAgICAgb3duZXIgPSBwYWdlLT5vd25lcjsK
IAotICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKG93bmVy
KSkKKyAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUob3du
ZXIpKQogICAgICAgICAgICAgb2JqZWN0X3NpemUgPSBwYWdlLT5vYmplY3Rfc2l6ZTsKICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBvYmplY3Rfc2l6ZSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAg
b2JqZWN0X3NpemUgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFu
ZGxlX3BhcnRpYWxfdmlld19mb3JfaW5kZXgoCiAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUob3duZXIpLAogICAgICAgICAgICAgICAgICAg
ICBiaXRfaW5kZXgsCkBAIC00NzMsNiArNDg2LDggQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFs
bG9jYXRlX3dpdGhfcGFnZQogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9kZWFsbG9jYXRlKAogICAgIHVpbnRwdHJfdCBiZWdpbiwKICAgICBwYXNfbG9j
ayoqIGhlbGRfbG9jaywKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZSBkZWFs
bG9jYXRpb25fbW9kZSwKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxf
Y2FjaGUsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7CiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZTsKQEAgLTQ4MSwzOCArNDk2LDExIEBAIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWcKICAgICAKICAgICBwYWdlID0gcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYWRkcmVzc19hbmRfcGFnZV9jb25maWcoYmVnaW4sIHBhZ2Vf
Y29uZmlnKTsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBhZ2UsIGhlbGRf
bG9jaywgcGFnZV9jb25maWcpOwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93
aXRoX3BhZ2UocGFnZSwgYmVnaW4sIHBhZ2VfY29uZmlnKTsKLX0KLQotc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIGJvb2wKLXBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1p
dCgKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAgIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50
KiB1c2VfY291bnRzOwotICAgIHVpbnRwdHJfdCBudW1fZ3JhbnVsZXM7Ci0gICAgdWludHB0cl90
IGdyYW51bGVfaW5kZXg7Ci0gICAgCi0gICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNlLmlz
X2VuYWJsZWQpOwotCi0gICAgaWYgKCFwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUg
PT0gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemUpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAKLSAgICB1c2VfY291bnRzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfZ3JhbnVsZV91
c2VfY291bnRzKHBhZ2UsIHBhZ2VfY29uZmlnKTsKLSAgICBudW1fZ3JhbnVsZXMgPSBwYWdlX2Nv
bmZpZy5iYXNlLnBhZ2Vfc2l6ZSAvIHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplOwotICAg
IAotICAgIGZvciAoZ3JhbnVsZV9pbmRleCA9IG51bV9ncmFudWxlczsgZ3JhbnVsZV9pbmRleC0t
OykgewotICAgICAgICBpZiAoIXVzZV9jb3VudHNbZ3JhbnVsZV9pbmRleF0pCi0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZSgKKyAgICAgICAgcGFnZSwgYmVnaW4sIGRl
YWxsb2NhdGlvbl9tb2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUsIHBhZ2VfY29uZmlnKTsKIH0KIAot
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSoKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSoKIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2RpcmVjdG9yeV9mb3JfYWRkcmVzc19pbl9w
YWdlKHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKQEAgLTUyNiwxMyArNTE0LDExIEBAIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfZ2V0X2RpcmVjdG9yeV9mb3JfYWQKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2tpbmQob3duaW5nX3ZpZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJs
ZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmll
d19raW5kOgotICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgIHJldHVybiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAg
ICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShvd25pbmdfdmlldyktPmRpcmVj
dG9yeSk7CiAKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKLSAg
ICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkKAorICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFu
ZGxlX3BhcnRpYWxfdmlld19mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUob3duaW5nX3ZpZXcpLCBiZWdpbiwgcGFnZV9jb25m
aWcpLT5kaXJlY3RvcnkpOwogCkBAIC01NDIsNyArNTI4LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9nZXRfZGlyZWN0b3J5X2Zvcl9hZAogICAgIH0KIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK3N0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc19zZWdyZWdhdGVk
X3BhZ2VfZ2V0X2RpcmVjdG9yeV9mb3JfYWRkcmVzc19hbmRfcGFnZV9jb25maWcodWludHB0cl90
IGJlZ2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsK
QEAgLTU2NywxMiArNTUzLDEwIEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X29iamVjdF9zaXpl
X2Zvcl8KICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQob3duaW5nX3Zp
ZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFn
ZS0+b2JqZWN0X3NpemU7CiAKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVf
a2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9z
aGFyZWRfaGFuZGxlX3BhcnRpYWxfdmlld19mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUob3duaW5nX3ZpZXcpLAogICAgICAg
ICAgICAgICAgIGJlZ2luLCBwYWdlX2NvbmZpZyktPmRpcmVjdG9yeSktPm9iamVjdF9zaXplOwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
dy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAKIHBhc19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlldyoKIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jcmVhdGUoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBzaXplX3QgaW5kZXgpCiB7
CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAtNTcsNyArNTcsNyBA
QCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKAogICAgIC8qIFdlIGF0dGFjaCB0
byBhIHNoYXJlZCB2aWV3IGxhemlseSAtIG9uY2Ugd2Uga25vdyB3aGF0IHdlJ3JlIGFsbG9jYXRp
bmcuICovCiAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHJfc3RvcmUo
JnJlc3VsdC0+c2hhcmVkX3ZpZXcsIE5VTEwpOwogCi0gICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGly
ZWN0b3J5KTsKKyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9z
dG9yZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRpcmVjdG9yeSk7CiAKICAgICBQQVNfQVNTRVJUKCh1
aW50OF90KWluZGV4ID09IGluZGV4KTsKICAgICByZXN1bHQtPmluZGV4ID0gKHVpbnQ4X3QpaW5k
ZXg7CkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X25v
dGVfZWwKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCIlcDogQWN0
dWFsbHkgdGVsbGluZyB0aGUgZGlyZWN0b3J5IHRoYXQgd2UncmUgZWxpZ2libGUuXG4iLCB2aWV3
KTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGln
aWJsZSgKLSAgICAgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKKyAgICAg
ICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25v
bl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLT5iYXNlLAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXdfbm9uX251bGwodmlldykpOwogICAgIH0KICAgICB2aWV3
LT5lbGlnaWJpbGl0eV9oYXNfYmVlbl9ub3RlZCA9IHRydWU7CkBAIC0xNjMsNyArMTYzLDcgQEAg
Ym9vbCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfc2hvdWxkXwogCiBzdGF0aWMgcGFzX2hl
YXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnkocGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiB2
aWV3KQogewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9k
aXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0
b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFyZWRfdmlldzsKICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyogcGFnZV9jb25maWdfcHRyOwpAQCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRpYyBw
YXNfaGVhcF9zdW1tYXJ5IGNvbXB1dGVfc3VtbWFyeSgKICAgICBzaXplX3QgZW5kX2luZGV4Owog
ICAgIHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0OwogCi0gICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgmdmlldy0+ZGlyZWN0b3J5KTsKKyAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9y
eSk7CiAgICAgZGlyZWN0b3J5ID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOwogICAgIHBhZ2VfY29u
ZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJl
Y3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpOwogICAgIHBhZ2VfY29uZmlnID0gKnBhZ2VfY29uZmln
X3B0cjsKQEAgLTI2Miw3ICsyNjIsNyBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfCiBib29sIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pc19lbGlnaWJsZShw
YXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHZpZXcpCiB7CiAgICAgcmV0dXJuIFBBU19TRUdS
RUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9y
eSktPmJhc2UsCisgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLT5iYXNlLAogICAgICAgICB2aWV3
LT5pbmRleCwgZWxpZ2libGUpOwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcu
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3
LDcgQEAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfUEFSVElBTF9WSUVXX0gKIAogI2luY2x1ZGUg
InBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyLmgiCi0jaW5jbHVkZSAicGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCisjaW5jbHVk
ZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKICNpbmNsdWRl
ICJwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3Vu
dC5oIgpAQCAtMzgsMTYgKzM4LDE2IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBh
c19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldzsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
dmlldzsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9wYXJ0aWFsX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3OwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXc7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnk7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcgewogICAgIHVuc2lnbmVk
IGlubGluZV9hbGxvY19iaXRzOwogICAgIAogICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hh
cmVkX3ZpZXdfcHRyIHNoYXJlZF92aWV3OwotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7CisgICAgcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5OwogICAgIHBhc19jb21wYWN0X3RhZ2dl
ZF91bnNpZ25lZF9wdHIgYWxsb2NfYml0czsKIAogICAgIC8qIFRoZSBpbmRleCBjYW4gYmUgc21h
bGwgc2luY2Ugd2Ugd291bGQgbmV2ZXIgY3JlYXRlIGEgaGlnaC1pbmRleGVkIHBhcnRpYWwgdmll
dy4gVGhhdCB3b3VsZCBub3QKQEAgLTk0LDcgKzk0LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3X2FzX3ZpZXdfbm9uXwogCiBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
dyoKIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBzaXplX3QgaW5kZXgpOwogCiBQQVNfQVBJ
IHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X25vdGVfZWxpZ2liaWxpdHkoCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRf
cGFnZV9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYwkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw4ICsxNDQs
NyBAQCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyogcGFzX3NlZ3JlZ2F0CiAgICAgICAgIGNv
bmZpZy5hcmcgPSAmZGF0YTsKICAgICAgICAgZGF0YS52aWV3ID0gTlVMTDsKIAotICAgICAgICBk
aWRfZmluZF9zb21ldGhpbmcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3
YXJkX3RvX3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAgICAgICAgICAmY29uZmlnLCBQQVNfU0VH
UkVHQVRFRF9TSEFSRURfUEFHRV9ESVJFQ1RPUllfRklSU1RfRUxJR0lCTEVfS0lORCk7CisgICAg
ICAgIGRpZF9maW5kX3NvbWV0aGluZyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRl
X2ZvcndhcmRfdG9fdGFrZV9maXJzdF9lbGlnaWJsZSgmY29uZmlnKTsKIAogICAgICAgICBpZiAo
ZGlkX2ZpbmRfc29tZXRoaW5nKSB7CiAgICAgICAgICAgICBpZiAoIWRhdGEudmlldykgewpAQCAt
MzUwLDcgKzM0OSw3IEBAIHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KAogCiAgICAgZm9y
IChwYXJ0aWFsX2luZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9udW1fdmlld3Mo
cGFnZV9jb25maWcpOyBwYXJ0aWFsX2luZGV4LS07KSB7CiAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlldyogcGFydGlhbF92aWV3OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWw7CisgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsOwog
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeV9vZl9wYXJ0aWFsOwog
CiAgICAgICAgIHBhcnRpYWxfdmlldyA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlld19wdHJfbG9hZCgKQEAgLTM1OSw3ICszNTgsNyBAQCB0YWtlX2xhc3RfZW1wdHlf
Y29uc2lkZXJfdmlldygKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIHNpemVfZGly
ZWN0b3J5X29mX3BhcnRpYWwgPQotICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5KTsK
KyAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWQoJnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5KTsKICAgICAgICAgZGlyZWN0b3J5X29mX3BhcnRp
YWwgPSAmc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbC0+YmFzZTsKICAgICAgICAgCiAgICAgICAg
IGlmICghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX1NFVF9CSVQoCkBAIC00NTEsNyArNDUwLDcg
QEAgcmV0dXJuX3Rha2VuX3BhcnRpYWxfdmlld3NfYWZ0ZXJfZGVjb21taQogICAgIHN3aXRjaF90
b19vd25lcnNoaXAoc2hhcmVkX3ZpZXcsICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKICAgICBm
b3IgKHBhcnRpYWxfaW5kZXggPSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX251bV92aWV3
cyhwYWdlX2NvbmZpZyk7IHBhcnRpYWxfaW5kZXgtLTspIHsKICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsX3ZpZXc7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbDsKKyAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWw7
CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5X29mX3BhcnRpYWw7
CiAgICAgICAgIGJvb2wgc2V0X3Jlc3VsdDsKIApAQCAtNDYzLDcgKzQ2Miw3IEBAIHJldHVybl90
YWtlbl9wYXJ0aWFsX3ZpZXdzX2FmdGVyX2RlY29tbWkKICAgICAgICAgcGFydGlhbF92aWV3LT5u
b3RlZF9pbl9zY2FuID0gZmFsc2U7CiAKICAgICAgICAgc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlh
bCA9Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgmcGFydGlhbF92aWV3LT5kaXJlY3RvcnkpOworICAgICAgICAgICAgcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmcGFydGlhbF92aWV3
LT5kaXJlY3RvcnkpOwogICAgICAgICBkaXJlY3Rvcnlfb2ZfcGFydGlhbCA9ICZzaXplX2RpcmVj
dG9yeV9vZl9wYXJ0aWFsLT5iYXNlOwogCiAgICAgICAgIFBBU19BU1NFUlQocGFydGlhbF92aWV3
LT5pc19hdHRhY2hlZF90b19zaGFyZWRfaGFuZGxlKTsKQEAgLTQ5Miw3ICs0OTEsNyBAQCByZXR1
cm5fdGFrZW5fcGFydGlhbF92aWV3c191bmxvY2tfdGhpc192CiAgICAgc3dpdGNoX3RvX293bmVy
c2hpcChzaGFyZWRfdmlldywgJmhlbGRfbG9jaywgcGFnZV9jb25maWcpOwogICAgIGZvciAocGFy
dGlhbF9pbmRleCA9IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfbnVtX3ZpZXdzKHBhZ2Vf
Y29uZmlnKTsgcGFydGlhbF9pbmRleC0tOykgewogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0
aWFsX3ZpZXcqIHBhcnRpYWxfdmlldzsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsOworICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbDsKICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnlfb2ZfcGFydGlhbDsKICAgICAg
ICAgYm9vbCBzZXRfcmVzdWx0OwogCkBAIC01MDIsNyArNTAxLDcgQEAgcmV0dXJuX3Rha2VuX3Bh
cnRpYWxfdmlld3NfdW5sb2NrX3RoaXNfdgogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IAogICAgICAgICBzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsID0KLSAgICAgICAgICAgIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZwYXJ0aWFs
X3ZpZXctPmRpcmVjdG9yeSk7CisgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkKCZwYXJ0aWFsX3ZpZXctPmRpcmVjdG9yeSk7CiAgICAgICAg
IGRpcmVjdG9yeV9vZl9wYXJ0aWFsID0gJnNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWwtPmJhc2U7
CiAKICAgICAgICAgc2V0X3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2Rp
ZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9z
aGFyZWRfcGFnZV9kaXJlY3RvcnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDEwICs0Niw2IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfcGFnZV9kaXJlY3QKICAgICAgICAgIC5uZXh0ID0gTlVMTCBcCiAgICAgIH0pCiAK
LS8qIE5PVEU6IEl0IGRvZXNuJ3QgbWF0dGVyIHdoaWNoIGtpbmQgb2YgZmlyc3RfZWxpZ2libGUg
d2UgdXNlLiBXZSBqdXN0IHBpY2sgb25lLiAqLwotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9TSEFS
RURfUEFHRV9ESVJFQ1RPUllfRklSU1RfRUxJR0lCTEVfS0lORCBcCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkX2tpbmQKLQogZXh0ZXJu
IFBBU19BUEkgdW5zaWduZWQgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3By
b2JhYmlsaXR5X29mX2luZWxpZ2liaWxpdHk7CiAKIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3ZpZXcqIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9maW5kX2ZpcnN0
X2VsaWdpYmxlKApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCShyZXZpc2lv
biAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeS5jCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwzMiArMjksOTM2IEBA
CiAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogCisjaW5jbHVk
ZSAicGFzX2JpdGZpdF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2RlZmVycmVkX2RlY29tbWl0X2xv
Zy5oIgogI2luY2x1ZGUgInBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgi
CiAjaW5jbHVkZSAicGFzX21vbm90b25pY190aW1lLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFs
bG9jLmgiCisjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5s
aW5lcy5oIgorI2luY2x1ZGUgInBhc19zdHJlYW0uaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dC5oIgorI2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXAuaCIKKyNpbmNs
dWRlIDx1bmlzdGQuaD4KKworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBo
ZWFwLAorICAgIHVuc2lnbmVkIG9iamVjdF9zaXplLAorICAgIHVuc2lnbmVkIGFsaWdubWVudCwK
KyAgICBwYXNfaGVhcF9jb25maWcqIGhlYXBfY29uZmlnLAorICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnKiBwYWdlX2NvbmZpZywKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jcmVhdGlvbl9tb2RlIGNyZWF0aW9uX21vZGUpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wg
dmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiByZXN1bHQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZCBwYWdlX2NvbmZp
Z19raW5kOworCisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgaWYgKHBh
Z2VfY29uZmlnKQorICAgICAgICBwYWdlX2NvbmZpZ19raW5kID0gcGFnZV9jb25maWctPmtpbmQ7
CisgICAgZWxzZQorICAgICAgICBwYWdlX2NvbmZpZ19raW5kID0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZF9udWxsOworCisgICAgaWYgKHBhZ2VfY29uZmlnKQorICAgICAgICBQQVNf
QVNTRVJUKGhlYXBfY29uZmlnID09IHBhZ2VfY29uZmlnLT5iYXNlLmhlYXBfY29uZmlnX3B0cik7
CisKKyAgICBwYXNfaGVhcF9jb25maWdfYWN0aXZhdGUoaGVhcF9jb25maWcpOworCisgICAgaWYg
KHZlcmJvc2UgJiYgcGFnZV9jb25maWcpIHsKKyAgICAgICAgcGFzX2xvZygibG9jYWwgYWxsb2Nh
dG9yIHNpemUgZm9yICVzOiAlenVcbiIsCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKHBhZ2VfY29uZmlnX2tpbmQpLAorICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXpl
X2Zvcl9jb25maWcoKnBhZ2VfY29uZmlnKSk7CisgICAgfQorCisgICAgcmVzdWx0ID0gcGFzX2lt
bW9ydGFsX2hlYXBfYWxsb2NhdGUoCisgICAgICAgIHNpemVvZihwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSksCisgICAgICAgICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSIsCisg
ICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisKKyAgICBpZiAodmVyYm9zZSkgeworICAg
ICAgICBwYXNfbG9nKCIlZDogQ3JlYXRpbmcgZGlyZWN0b3J5ICVwIGZvciAlcyB3aXRoIG9iamVj
dF9zaXplID0gJXUsIGFsaWdubWVudCA9ICV1XG4iLAorICAgICAgICAgICAgICAgIGdldHBpZCgp
LCByZXN1bHQsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdl
X2NvbmZpZ19raW5kKSwKKyAgICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSwgYWxpZ25tZW50KTsK
KyAgICB9CisKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfY29uc3RydWN0KAorICAgICAg
ICAmcmVzdWx0LT5iYXNlLCBwYWdlX2NvbmZpZ19raW5kLAorICAgICAgICBoZWFwLT5ydW50aW1l
X2NvbmZpZy0+c2hhcmluZ19tb2RlLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9raW5kKTsKKworICAgIHJlc3VsdC0+aGVhcCA9IGhlYXA7CisgICAgcmVzdWx0LT5vYmpl
Y3Rfc2l6ZSA9IG9iamVjdF9zaXplOworCisgICAgUEFTX0FTU0VSVChwYXNfaXNfcG93ZXJfb2Zf
MihhbGlnbm1lbnQpKTsKKyAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXpl
LCBhbGlnbm1lbnQpKTsKKyAgICByZXN1bHQtPmFsaWdubWVudF9zaGlmdCA9IHBhc19sb2cyKGFs
aWdubWVudCk7CisgICAgCisgICAgcmVzdWx0LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSAy
ICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOworICAgIHJlc3VsdC0+dmlld19jYWNoZV9p
bmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOworICAgIAorICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX3N0b3JlKCZyZXN1bHQtPmRhdGEsIE5VTEwp
OwogCi0jaWZkZWYgUEFTX0xJQk1BTExPQwotYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV91c2VfdGFibGluZyA9IHRydWU7Ci0jZWxzZQotYm9vbCBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV91c2VfdGFibGluZyA9IGZhbHNlOwotI2VuZGlmCi0KLXZvaWQgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29uc3RydWN0KAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFn
ZV9jb25maWdfa2luZCwKLSAgICBwYXNfcGFnZV9zaGFyaW5nX21vZGUgcGFnZV9zaGFyaW5nX21v
ZGUsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQga2luZCkKKyAgICBpZiAocGFn
ZV9jb25maWcpCisgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19w
dHJfc3RvcmUoJnJlc3VsdC0+Yml0Zml0X3NpemVfY2xhc3MsIE5VTEwpOworICAgIGVsc2Ugewor
ICAgICAgICBwYXNfYml0Zml0X2hlYXAqIGJpdGZpdF9oZWFwOworICAgICAgICBwYXNfYml0Zml0
X3NpemVfY2xhc3MqIGJpdGZpdF9zaXplX2NsYXNzOworCisgICAgICAgIGJpdGZpdF9oZWFwID0g
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9nZXRfYml0Zml0KGhlYXAsIGhlYXBfY29uZmlnLCBwYXNfbG9j
a19pc19oZWxkKTsKKyAgICAgICAgUEFTX0FTU0VSVChiaXRmaXRfaGVhcCk7CisgICAgICAgIAor
ICAgICAgICBiaXRmaXRfc2l6ZV9jbGFzcyA9CisgICAgICAgICAgICBwYXNfYml0Zml0X2hlYXBf
ZW5zdXJlX3NpemVfY2xhc3MoCisgICAgICAgICAgICAgICAgYml0Zml0X2hlYXAsIHJlc3VsdCwg
aGVhcF9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOworICAgICAgICAKKyAgICAgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9zdG9yZSgKKyAgICAgICAgICAgICZy
ZXN1bHQtPmJpdGZpdF9zaXplX2NsYXNzLCBiaXRmaXRfc2l6ZV9jbGFzcyk7CisgICAgfQorICAg
IAorICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9z
dG9yZSgmcmVzdWx0LT5uZXh0X2Zvcl9oZWFwLCBOVUxMKTsKKworICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3NldF9kaWRfdHJ5X3RvX2NyZWF0ZV92aWV3X2NhY2hlKHJlc3VsdCwg
ZmFsc2UpOworCisgICAgc3dpdGNoIChjcmVhdGlvbl9tb2RlKSB7CisgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbml0aWFsX2NyZWF0aW9uX21vZGU6CisgICAgICAgIGJy
ZWFrOworCisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mdWxsX2NyZWF0
aW9uX21vZGU6CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2ZpbmlzaF9j
cmVhdGlvbihyZXN1bHQpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCit2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2ZpbmlzaF9jcmVh
dGlvbihwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewotICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9jb25zdHJ1Y3QoZGlyZWN0b3J5LCBwYWdlX2NvbmZpZ19r
aW5kLCBwYWdlX3NoYXJpbmdfbW9kZSwga2luZCk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcDsKKworICAgIGhlYXAgPSBkaXJlY3RvcnktPmhlYXA7CisgICAgCisgICAgaWYgKCFoZWFw
LT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9j
YXRvcnMpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNf
YWxsb2NhdG9yKGRpcmVjdG9yeSk7CisgICAgaWYgKCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGly
ZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MpCisgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2VuYWJsZV9leGNsdXNpdmVfdmlld3MoZGlyZWN0b3J5KTsKKyAg
ICBpZiAoIWhlYXAtPnJ1bnRpbWVfY29uZmlnLT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9f
dmlld19jYWNoZSkKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRl
X3RsY192aWV3X2NhY2hlKGRpcmVjdG9yeSk7Cit9CisKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2RhdGEqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKAor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2xv
Y2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
ZyogcGFnZV9jb25maWc7CisKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKworICAgIGlmIChkYXRhKQorICAg
ICAgICByZXR1cm4gZGF0YTsKKworICAgIHBhZ2VfY29uZmlnID0gcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5k
KTsKKworICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xk
X21vZGUpOworCisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFf
cHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7CisgICAgaWYgKGRhdGEpIHsKKyAgICAgICAgcGFz
X2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAg
ICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorCisgICAgaWYgKHBhZ2VfY29uZmlnICYmIHBhZ2Vf
Y29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLT5iYXNlLmdyYW51bGVfc2l6ZSkg
eworICAgICAgICBkYXRhID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCisgICAgICAgICAg
ICBzaXplb2YocGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSksCisg
ICAgICAgICAgICAicGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSIs
CisgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOworCisgICAgICAgIHBhc19jb21w
YWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0cl9zdG9yZSgKKyAgICAgICAgICAg
ICYoKHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqKWRhdGEpLT5m
dWxsX3VzZV9jb3VudHMsIE5VTEwpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRhdGEgPSBwYXNf
aW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKKyAgICAgICAgICAgIHNpemVvZihwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kYXRhKSwKKyAgICAgICAgICAgICJwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9kYXRhIiwKKyAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Cisg
ICAgfQorCisgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9zdG9yZSgmZGF0YS0+
ZnVsbF9hbGxvY19iaXRzLCBOVUxMKTsKKyAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5k
YXJ5X3RvX2ZpcnN0X29iamVjdCA9IDA7CisgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3Vu
ZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSAwOworICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9l
bXB0eV93b3JkcyA9IDA7CisgICAgZGF0YS0+YWxsb2NhdG9yX2luZGV4ID0gKHBhc19hbGxvY2F0
b3JfaW5kZXgpVUlOVF9NQVg7CisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgmZGF0YS0+bmV4dF9mb3JfbGF5b3V0LCBOVUxMKTsKKwor
ICAgIHBhc19mZW5jZSgpOworCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0
YV9wdHJfc3RvcmUoJmRpcmVjdG9yeS0+ZGF0YSwgZGF0YSk7CisKKyAgICBwYXNfaGVhcF9sb2Nr
X3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOworCisgICAgcmV0dXJu
IGRhdGE7Cit9CisKK3Bhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEq
CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKKworICAgIHBhZ2VfY29uZmlnID0gcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5w
YWdlX2NvbmZpZ19raW5kKTsKKyAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnKTsKKyAgICBQQVNf
QVNTRVJUKHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLT5iYXNlLmdy
YW51bGVfc2l6ZSk7CisKKyAgICByZXR1cm4gKHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2RhdGEqKQorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9k
YXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOworfQorCit2b2lkIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9yKAorICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICAKKyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxk
KCk7CisKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9pc191dGlsaXR5
KGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVj
dG9yeSwgcGFzX2xvY2tfaXNfaGVsZCk7CisKKyAgICBpZiAoZGF0YS0+YWxsb2NhdG9yX2luZGV4
ICE9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKQorICAgICAgICByZXR1cm47CisgICAg
CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkKGRpcmVjdG9yeSk7CisgICAg
CisgICAgUEFTX0FTU0VSVChkYXRhLT5hbGxvY2F0b3JfaW5kZXggPCAocGFzX2FsbG9jYXRvcl9p
bmRleClVSU5UX01BWCk7Cit9CisKK3ZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Y3JlYXRlX3RsY192aWV3X2NhY2hlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpCit7CisgICAgc2l6ZV90IGluZGV4OworICAgIAorICAgIHBhc19oZWFwX2xv
Y2tfYXNzZXJ0X2hlbGQoKTsKKworICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NldF9k
aWRfdHJ5X3RvX2NyZWF0ZV92aWV3X2NhY2hlKGRpcmVjdG9yeSwgdHJ1ZSkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNo
ZV9jYXBhY2l0eShkaXJlY3RvcnkpKQorICAgICAgICByZXR1cm47CisKKyAgICBQQVNfQVNTRVJU
KGRpcmVjdG9yeS0+dmlld19jYWNoZV9pbmRleCA9PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5U
X01BWCk7CisgICAgCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX3ZpZXdf
Y2FjaGUoZGlyZWN0b3J5KTsKKyAgICAKKyAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19j
YWNoZV9pbmRleCA8IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKKworICAgIGZvciAo
aW5kZXggPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5LT5iYXNlKTsg
aW5kZXgtLTspIHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OworCisgICAgICAg
IHZpZXcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnktPmJhc2UsIGlu
ZGV4KTsKKworICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNp
dmUodmlldykpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoIXBhc19zZWdy
ZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19pZl9vd25lZCh2aWV3KSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2Uodmll
dyktPnZpZXdfY2FjaGVfaW5kZXggPSBkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXg7CisgICAg
ICAgIAorICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X3VubG9ja19vd25lcnNoaXBfbG9jayh2
aWV3KTsKKyAgICB9Cit9CisKK3ZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5h
YmxlX2V4Y2x1c2l2ZV92aWV3cygKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5KQoreworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRh
dGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHRlbXBsYXRlX2RpcmVjdG9y
eTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIHBhZ2VfY29uZmlnX2tpbmQ7
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnX3B0cjsKKyAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKKyAgICB1bnNpZ25lZCBvYmpl
Y3Rfc2l6ZTsKKyAgICBzaXplX3QgYWxsb2NfYml0c19ieXRlczsKKyAgICB1bnNpZ25lZCBvZmZz
ZXQ7CisgICAgdW5zaWduZWQgYmVnaW47CisgICAgdW5zaWduZWQgZW5kOworICAgIHVuc2lnbmVk
KiBmdWxsX2FsbG9jX2JpdHM7CisgICAgdW5zaWduZWQgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRz
OworICAgIHNpemVfdCBpbmRleDsKKyAgICBwYXNfYWxsb2NhdGlvbl9jb25maWcgYm9vdHN0cmFw
X2FsbG9jYXRpb25fY29uZmlnOworCisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwor
CisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRp
cmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgaWYgKGRhdGEtPmZ1bGxfbnVtX25vbl9l
bXB0eV93b3JkcykKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZV9jb25maWdfa2luZCA9IGRp
cmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOworICAgIGlmIChwYWdlX2NvbmZpZ19raW5k
ID09IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIHBhZ2VfY29uZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfZ2V0X2NvbmZpZyhwYWdlX2NvbmZpZ19raW5kKTsKKyAgICBvYmplY3Rfc2l6ZSA9IGRp
cmVjdG9yeS0+b2JqZWN0X3NpemU7CisgICAgCisgICAgdGVtcGxhdGVfZGlyZWN0b3J5ID0gcGFz
X2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGVfZ2V0KAorICAgICAgICAmcGFzX2V4
Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGVfaW5zdGFuY2UsCisgICAgICAgIHBhc19l
eGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX2tleV9jcmVhdGUob2JqZWN0X3NpemUsIHBhZ2Vf
Y29uZmlnX2tpbmQpKTsKKyAgICBpZiAodGVtcGxhdGVfZGlyZWN0b3J5KSB7CisgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIHRlbXBsYXRlX2RhdGE7CisKKyAgICAg
ICAgdGVtcGxhdGVfZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRy
X2xvYWQoJnRlbXBsYXRlX2RpcmVjdG9yeS0+ZGF0YSk7CisgICAgICAgIAorICAgICAgICBkYXRh
LT5mdWxsX2FsbG9jX2JpdHMgPSB0ZW1wbGF0ZV9kYXRhLT5mdWxsX2FsbG9jX2JpdHM7CisgICAg
ICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0KKyAg
ICAgICAgICAgIHRlbXBsYXRlX2RhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmly
c3Rfb2JqZWN0OworICAgICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2Vu
ZF9vZl9sYXN0X29iamVjdCA9CisgICAgICAgICAgICB0ZW1wbGF0ZV9kYXRhLT5vZmZzZXRfZnJv
bV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKKworICAgICAgICBpZiAocGFn
ZV9jb25maWdfcHRyLT5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnX3B0ci0+YmFzZS5ncmFu
dWxlX3NpemUpIHsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dl
dF9leHRlbmRlZF9kYXRhKGRpcmVjdG9yeSktPmZ1bGxfdXNlX2NvdW50cyA9CisgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoCisg
ICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlX2RpcmVjdG9yeSktPmZ1bGxfdXNlX2NvdW50czsK
KyAgICAgICAgfQorCisgICAgICAgIHBhc19mZW5jZSgpOworICAgICAgICBkYXRhLT5mdWxsX251
bV9ub25fZW1wdHlfd29yZHMgPQorICAgICAgICAgICAgdGVtcGxhdGVfZGF0YS0+ZnVsbF9udW1f
bm9uX2VtcHR5X3dvcmRzOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFnZV9jb25m
aWcgPSAqcGFnZV9jb25maWdfcHRyOworICAgIAorICAgIGFsbG9jX2JpdHNfYnl0ZXMgPSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2NfYnl0ZXMocGFnZV9jb25maWcpOworICAg
IGZ1bGxfYWxsb2NfYml0cyA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfbWFudWFs
X2FsaWdubWVudCgKKyAgICAgICAgYWxsb2NfYml0c19ieXRlcywgc2l6ZW9mKHVuc2lnbmVkKSwK
KyAgICAgICAgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEvZnVsbF9hbGxvY19i
aXRzIiwKKyAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKKyAgICBwYXNfY29tcGFjdF90
YWdnZWRfdW5zaWduZWRfcHRyX3N0b3JlKCZkYXRhLT5mdWxsX2FsbG9jX2JpdHMsIGZ1bGxfYWxs
b2NfYml0cyk7CisgICAgcGFzX3plcm9fbWVtb3J5KGZ1bGxfYWxsb2NfYml0cywgYWxsb2NfYml0
c19ieXRlcyk7CisKKyAgICBiZWdpbiA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21f
cGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcpOworICAgIGVuZCA9IHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmpl
Y3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhZ2VfY29uZmlnKTsKKworICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9f
Zmlyc3Rfb2JqZWN0ID0gYmVnaW47CisgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFy
eV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSBlbmQ7CisKKyAgICBmb3IgKG9mZnNldCA9IGJlZ2lu
OyBvZmZzZXQgPCBlbmQ7IG9mZnNldCArPSBvYmplY3Rfc2l6ZSkgeworICAgICAgICBwYXNfYml0
dmVjdG9yX3NldCgKKyAgICAgICAgICAgIGZ1bGxfYWxsb2NfYml0cywKKyAgICAgICAgICAgIHBh
c19wYWdlX2Jhc2VfaW5kZXhfb2Zfb2JqZWN0X2F0X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnko
CisgICAgICAgICAgICAgICAgb2Zmc2V0LCBwYWdlX2NvbmZpZy5iYXNlKSwKKyAgICAgICAgICAg
IHRydWUpOworICAgIH0KKyAgICAKKyAgICBmdWxsX251bV9ub25fZW1wdHlfd29yZHMgPSAwOwor
ICAgIGZvciAoaW5kZXggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29y
ZHMocGFnZV9jb25maWcpOyBpbmRleC0tOykgeworICAgICAgICBpZiAoZnVsbF9hbGxvY19iaXRz
W2luZGV4XSkKKyAgICAgICAgICAgIGZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcysrOworICAgIH0K
KyAgICBQQVNfQVNTRVJUKGZ1bGxfbnVtX25vbl9lbXB0eV93b3Jkcyk7CisKKyAgICBpZiAocGFn
ZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkg
eworICAgICAgICBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBl
eHRlbmRlZF9kYXRhOworICAgICAgICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogZnVsbF91
c2VfY291bnRzOworICAgICAgICB1aW50cHRyX3QgbnVtX2dyYW51bGVzOworICAgICAgICBib29s
IGluaXRpYWxpemVfcmVzdWx0OworCisgICAgICAgIGV4dGVuZGVkX2RhdGEgPSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YShkaXJlY3RvcnkpOworCisgICAg
ICAgIG51bV9ncmFudWxlcyA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplIC8gcGFnZV9jb25m
aWcuYmFzZS5ncmFudWxlX3NpemU7CisKKyAgICAgICAgZnVsbF91c2VfY291bnRzID0gcGFzX2lt
bW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9tYW51YWxfYWxpZ25tZW50KAorICAgICAgICAgICAg
bnVtX2dyYW51bGVzICogc2l6ZW9mKHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50KSwKKyAgICAg
ICAgICAgIHNpemVvZihwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCksCisgICAgICAgICAgICAi
cGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YS9mdWxsX3VzZV9jb3Vu
dHMiLAorICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKKworICAgICAgICBpbml0
aWFsaXplX3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9j
b3VudHMoCisgICAgICAgICAgICBOVUxMLCBkaXJlY3RvcnksIGZ1bGxfdXNlX2NvdW50cywgbnVt
X2dyYW51bGVzLCBwYWdlX2NvbmZpZyk7CisKKyAgICAgICAgLyogVGhpcyBzaG91bGQgaGF2ZSBp
bml0aWFsaXplZCBhbGwgb2YgdGhlIGJpdHMuICovCisgICAgICAgIFBBU19BU1NFUlQoaW5pdGlh
bGl6ZV9yZXN1bHQpOworCisgICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVf
dXNlX2NvdW50X3B0cl9zdG9yZSgKKyAgICAgICAgICAgICZleHRlbmRlZF9kYXRhLT5mdWxsX3Vz
ZV9jb3VudHMsCisgICAgICAgICAgICBmdWxsX3VzZV9jb3VudHMpOworICAgIH0KKworICAgIHBh
c19mZW5jZSgpOworICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IGZ1bGxfbnVt
X25vbl9lbXB0eV93b3JkczsKKyAgICBQQVNfQVNTRVJUKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0
eV93b3JkcyA9PSBmdWxsX251bV9ub25fZW1wdHlfd29yZHMpOworCisgICAgcGFzX2Jvb3RzdHJh
cF9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWdfY29uc3RydWN0KCZib290c3RyYXBfYWxsb2Nh
dGlvbl9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOworICAgIAorICAgIHBhc19leGNsdXNpdmVf
dmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2FkZF9uZXcoCisgICAgICAgICZwYXNfZXhjbHVzaXZl
X3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZV9pbnN0YW5jZSwKKyAgICAgICAgZGlyZWN0b3J5LAor
ICAgICAgICBOVUxMLAorICAgICAgICAmYm9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnKTsKK30K
KworcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcioKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3NlbGVjdF9hbGxvY2F0b3Jfc2xvdygKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQoreworICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVfaW5pdGlh
bGl6ZV9pZl9uZWNlc3NhcnkoKTsKKyAgICAKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIHVuc2ln
bmVkIGFfaW5kZXg7CisgICAgICAgIHVuc2lnbmVkIGJfaW5kZXg7CisgICAgICAgIHBhc19iYXNl
bGluZV9hbGxvY2F0b3IqIGFfYWxsb2NhdG9yOworICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yKiBiX2FsbG9jYXRvcjsKKyAgICAgICAgdW5zaWduZWQgc2VsZWN0ZWRfaW5kZXg7CisgICAg
ICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIHNlbGVjdGVkX2FsbG9jYXRvcjsKKyAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNlbGVjdGVkX2RpcmVjdG9yeTsKKworICAg
ICAgICBzZWxlY3RlZF9pbmRleCA9IGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4
OworICAgICAgICBpZiAoc2VsZWN0ZWRfaW5kZXggPCBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRP
UlMpIHsKKyAgICAgICAgICAgIHNlbGVjdGVkX2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxv
Y2F0b3JfdGFibGUgKyBzZWxlY3RlZF9pbmRleDsKKworICAgICAgICAgICAgcGFzX2xvY2tfbG9j
aygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5sb2NrKTsKKworICAgICAgICAgICAgaWYgKGRpcmVjdG9y
eS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ICE9IHNlbGVjdGVkX2luZGV4KSB7CisgICAgICAg
ICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOworICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1
cm4gc2VsZWN0ZWRfYWxsb2NhdG9yOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHNlbGVjdGVk
X2luZGV4IDwgMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUykKKyAgICAgICAgICAgIHNl
bGVjdGVkX2luZGV4IC09IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKKyAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICBQQVNfQVNTRVJUKHNlbGVjdGVkX2luZGV4ID09IDIgKiBQQVNfTlVN
X0JBU0VMSU5FX0FMTE9DQVRPUlMpOworICAgICAgICAgICAgCisgICAgICAgICAgICBhX2luZGV4
ID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZV9nZXRfcmFuZG9tX2luZGV4KCk7CisgICAg
ICAgICAgICBiX2luZGV4ID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZV9nZXRfcmFuZG9t
X2luZGV4KCk7CisgICAgCisgICAgICAgICAgICBhX2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9h
bGxvY2F0b3JfdGFibGUgKyBhX2luZGV4OworICAgICAgICAgICAgYl9hbGxvY2F0b3IgPSBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlICsgYl9pbmRleDsKKworICAgICAgICAgICAgLyogSWYg
aXQncyBjaGVhcCB0byBzdG9wIG9uZSBvZiB0aGVzZSB0aGVuIGp1c3QgcGljayBlaXRoZXIgb25l
LiAqLworICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX2FjdGl2ZSgmYV9h
bGxvY2F0b3ItPnUuYWxsb2NhdG9yKSkKKyAgICAgICAgICAgICAgICBzZWxlY3RlZF9pbmRleCA9
IGFfaW5kZXg7CisgICAgICAgICAgICBlbHNlIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19h
Y3RpdmUoJmJfYWxsb2NhdG9yLT51LmFsbG9jYXRvcikpCisgICAgICAgICAgICAgICAgc2VsZWN0
ZWRfaW5kZXggPSBiX2luZGV4OworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlldyBhX3ZpZXc7CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlldyBiX3ZpZXc7CisKKyAgICAgICAgICAgICAgICBhX3ZpZXcgPSBhX2FsbG9jYXRvci0+
dS5hbGxvY2F0b3IudmlldzsKKyAgICAgICAgICAgICAgICBiX3ZpZXcgPSBiX2FsbG9jYXRvci0+
dS5hbGxvY2F0b3IudmlldzsKKworICAgICAgICAgICAgICAgIGlmICghYV92aWV3KQorICAgICAg
ICAgICAgICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGFfaW5kZXg7CisgICAgICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZF9pbmRleCA9IGJfaW5kZXg7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghcGFzX2NvbXBhcmVfYW5kX3N3YXBfdWludDE2
X3dlYWsoJmRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICogUEFTX05VTV9CQVNFTElO
RV9BTExPQ0FUT1JTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMgKyBzZWxlY3RlZF9pbmRleCkpCisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgc2VsZWN0
ZWRfYWxsb2NhdG9yID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIHNlbGVjdGVkX2lu
ZGV4OworICAgIAorICAgICAgICBwYXNfbG9ja19sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxv
Y2spOworCisgICAgICAgIGlmIChkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9
PSBzZWxlY3RlZF9pbmRleCkKKyAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7
CisKKyAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ICE9IFBB
U19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyArIHNlbGVjdGVkX2luZGV4KSB7CisgICAgICAgICAg
ICBwYXNfbG9ja191bmxvY2soJnNlbGVjdGVkX2FsbG9jYXRvci0+bG9jayk7CisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRv
cl9pc19udWxsKCZzZWxlY3RlZF9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yKSkgeworICAgICAgICAg
ICAgcGFzX251bV9iYXNlbGluZV9hbGxvY2F0b3JfZXZpY3Rpb25zKys7CisgICAgICAgICAgICBz
ZWxlY3RlZF9kaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9y
eShzZWxlY3RlZF9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yLnZpZXcpOworICAgICAgICAgICAgcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvcl9kZXRhY2hfZGlyZWN0b3J5KHNlbGVjdGVkX2FsbG9jYXRvcik7
CisgICAgICAgICAgICBwYXNfZmVuY2UoKTsKKyAgICAgICAgICAgIHNlbGVjdGVkX2RpcmVjdG9y
eS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NB
VE9SUzsKKyAgICAgICAgfQorCisgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfYXR0YWNo
X2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3IsIGRpcmVjdG9yeSk7CisKKyAgICAgICAgZGly
ZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSBzZWxlY3RlZF9pbmRleDsKKworICAg
ICAgICByZXR1cm4gc2VsZWN0ZWRfYWxsb2NhdG9yOworICAgIH0KK30KKworc3RhdGljIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3RfY3JlYXRlX25ld192aWV3
X2NhbGxiYWNrKAorICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyog
Y29uZmlnKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CisgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OworICAgIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnKiBy
dW50aW1lX2NvbmZpZzsKKworICAgIFBBU19URVNUSU5HX0FTU0VSVChjb25maWctPmRpcmVjdG9y
eS0+ZGlyZWN0b3J5X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfa2luZCk7
CisgICAgCisgICAgc2l6ZV9kaXJlY3RvcnkgPSAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqKWNvbmZpZy0+ZGlyZWN0b3J5OworCisgICAgcnVudGltZV9jb25maWcgPSBzaXplX2RpcmVj
dG9yeS0+aGVhcC0+cnVudGltZV9jb25maWc7CisKKyAgICBpZiAoY29uZmlnLT5pbmRleCA+PSBy
dW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX3BhcnRpYWxfdmlld3MpCisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2VuYWJsZV9leGNsdXNpdmVfdmll
d3Moc2l6ZV9kaXJlY3RvcnkpOworCisgICAgaWYgKGNvbmZpZy0+aW5kZXggPj0gcnVudGltZV9j
b25maWctPmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzKQorICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihz
aXplX2RpcmVjdG9yeSk7CisKKyAgICBpZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZp
Zy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUpCisgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfdmlld19jYWNoZShzaXplX2RpcmVj
dG9yeSk7CisgICAgCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FyZV9l
eGNsdXNpdmVfdmlld3NfZW5hYmxlZChzaXplX2RpcmVjdG9yeSkpIHsKKyAgICAgICAgdmlldyA9
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwoCisgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19jcmVhdGUoc2l6ZV9kaXJlY3Rvcnks
IGNvbmZpZy0+aW5kZXgpKTsKKyAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBh
c19sb2coIiVwOiBjcmVhdGVkIGV4Y2x1c2l2ZSAlcC5cbiIsCisgICAgICAgICAgICAgICAgICAg
IHNpemVfZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpOworICAg
ICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlld19hc192aWV3X25vbl9udWxsKAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3X2NyZWF0ZShzaXplX2RpcmVjdG9yeSwgY29uZmlnLT5pbmRleCkpOworICAgICAg
ICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgcGFzX2xvZygiJXA6IGNyZWF0ZWQgcGFydGlh
bCAlcC5cbiIsCisgICAgICAgICAgICAgICAgICAgIHNpemVfZGlyZWN0b3J5LCBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9wdHIodmlldykpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHZl
cmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygiJWQ6ICVwICglcywgJXUpOiBub3cgaGF2ZSAlenUg
dmlld3MuXG4iLAorICAgICAgICAgICAgICAgIGdldHBpZCgpLCBzaXplX2RpcmVjdG9yeSwKKyAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmco
c2l6ZV9kaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCksCisgICAgICAgICAgICAgICAg
c2l6ZV9kaXJlY3RvcnktPm9iamVjdF9zaXplLAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9zaXplKCZzaXplX2RpcmVjdG9yeS0+YmFzZSkpOworICAgIH0KKworICAg
IHJldHVybiB2aWV3OworfQorCitwYXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVj
dG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcgY29uZmln
OworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsKKworICAgIFBBU19URVNUSU5HX0FTU0VS
VCgKKyAgICAgICAgc2l6ZV9kaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCAhPSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpOworCisgICAgZGlyZWN0b3J5ID0gJnNp
emVfZGlyZWN0b3J5LT5iYXNlOworCisgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbCgKKyAgICAgICAgZGlyZWN0b3J5LCAmY29u
ZmlnLAorICAgICAgICB0YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVjdF9jcmVhdGVfbmV3X3ZpZXdf
Y2FsbGJhY2spOworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygiVGFraW5n
IGVsaWdpYmxlIHZpZXcgJXAgKCVzKS5cbiIsCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfcHRyKHZpZXcpLAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfa2luZF9nZXRfc3RyaW5nKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpKTsK
KyAgICB9CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9S
WV9HRVRfQklUKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9pbmRleCh2aWV3KSwgZWxpZ2libGUpKTsKKyAgICAKKyAgICByZXR1
cm4gdmlldzsKIH0KIAogdHlwZWRlZiBzdHJ1Y3QgeworICAgIHBhc19kZWZlcnJlZF9kZWNvbW1p
dF9sb2cqIGRlY29tbWl0X2xvZzsKKyAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hv
bGRfbW9kZTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogbXlfcGFnZV9jb25maWdf
cHRyOworICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCByZXN1bHQ7Cit9IHRh
a2VfbGFzdF9lbXB0eV9kYXRhOworCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQK
K3Rha2VfbGFzdF9lbXB0eV9zaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbCgKKyAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQgc2VnbWVudCwKKyAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcqIGNvbmZpZykKK3sKKyAgICB0YWtl
X2xhc3RfZW1wdHlfZGF0YSogZGF0YTsKKworICAgIGRhdGEgPSBjb25maWctPmFyZzsKKworICAg
IHJldHVybiBzZWdtZW50LmVtcHR5X2JpdHM7Cit9CisKK3N0YXRpYyBib29sCit0YWtlX2xhc3Rf
ZW1wdHlfY29uc2lkZXJfdmlldyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25m
aWcqIGNvbmZpZykKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisK
KyAgICAvKiBXZSBwdXQgb3VyIHRha2VfbGFzdF9lbXB0eSBsb2dpYyBpbiBjb25zaWRlcl92aWV3
IGJlY2F1c2Ugc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwKKyAgICAgICBjYW5ub3QgcmVh
bGx5IHRlbGwgaWYgYSBwYWdlIGNhbiBiZSB0YWtlbi4gKi8KKworICAgIHRha2VfbGFzdF9lbXB0
eV9kYXRhKiBkYXRhOworICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5Owor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKKyAgICBw
YXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2c7CisgICAgcGFzX2xvY2tfaG9s
ZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGU7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcqIG15X3BhZ2VfY29uZmlnX3B0cjsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBt
eV9wYWdlX2NvbmZpZzsKKyAgICBzaXplX3QgaW5kZXg7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
dyBnZW5lcmljX3ZpZXc7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXc7
CisgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
OworICAgIGJvb2wgZGlkX3Rha2VfYml0OworICAgIHBhc19sb2NrKiBvd25lcnNoaXBfbG9jazsK
KworICAgIGRpcmVjdG9yeSA9IGNvbmZpZy0+ZGlyZWN0b3J5OworICAgIGluZGV4ID0gY29uZmln
LT5pbmRleDsKKworICAgIGRpZF90YWtlX2JpdCA9IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9T
RVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5LCBmYWxzZSk7CisgICAgCisgICAgaWYgKCFk
aWRfdGFrZV9iaXQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHNpemVfZGlyZWN0b3J5
ID0gKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KilkaXJlY3Rvcnk7CisgICAgZ2VuZXJp
Y192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnksIGluZGV4KTsK
KyAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlKGdlbmVyaWNf
dmlldykpOworICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUoZ2Vu
ZXJpY192aWV3KTsKKyAgICBoZWxkX2xvY2sgPSBOVUxMOworICAgIGRhdGEgPSBjb25maWctPmFy
ZzsKKworICAgIG15X3BhZ2VfY29uZmlnX3B0ciA9IGRhdGEtPm15X3BhZ2VfY29uZmlnX3B0cjsK
KyAgICBoZWFwX2xvY2tfaG9sZF9tb2RlID0gZGF0YS0+aGVhcF9sb2NrX2hvbGRfbW9kZTsKKyAg
ICBkZWNvbW1pdF9sb2cgPSBkYXRhLT5kZWNvbW1pdF9sb2c7CisgICAgbXlfcGFnZV9jb25maWcg
PSAqbXlfcGFnZV9jb25maWdfcHRyOworICAgIAorICAgIGlmICh2ZXJib3NlKQorICAgICAgICBw
YXNfbG9nKCIlcDogY29uc2lkZXJpbmcgZW1wdHkgaW5kZXggJXp1LCB2aWV3ID0gJXAuXG4iLCBk
aXJlY3RvcnksIGluZGV4LCB2aWV3KTsKKworICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSkKKyAgICAgICAgb3duZXJzaGlwX2xvY2sg
PSBwYXNfbG9ja19mb3Jfc3dpdGNoX2NvbmRpdGlvbmFsbHkoJnBhc19oZWFwX2xvY2ssIGhlYXBf
bG9ja19ob2xkX21vZGUpOworICAgIGVsc2UKKyAgICAgICAgb3duZXJzaGlwX2xvY2sgPSAmdmll
dy0+b3duZXJzaGlwX2xvY2s7CisKKyAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgb3du
ZXJzaGlwX2xvY2spOworICAgIAorICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19p
c191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSkKKyAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRf
aGVsZCgpOworICAgIAorICAgIGlmICghdmlldy0+aXNfb3duZWQpIHsKKyAgICAgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJub3Qgb3duZWQuXG4iKTsKKyAgICAgICAgCisg
ICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZTsKKyAgICB9Cisg
ICAgCisgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KHZpZXctPnBh
Z2VfYm91bmRhcnksIG15X3BhZ2VfY29uZmlnKTsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgcGFzX2xvZygiZXhjbHVzaXZlIG1vZGUuXG4iKTsKKyAgICAKKyAgICBpZiAoIVBBU19T
RUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVsaWdpYmxlLCBm
YWxzZSkpCisgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZTsK
KyAgICAgICAgCisgICAgaWYgKCF2aWV3LT5pc19vd25lZCkgeworICAgICAgICBib29sIHJlc3Vs
dDsKKyAgICAgICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2Jl
Y29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgUEFTX0FT
U0VSVChyZXN1bHQpOworICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9sb2NrX2FuZF9yZXR1cm5f
ZmFsc2U7CisgICAgfQorICAgIAorICAgIC8qIFRoZSBlbXB0eSBiaXQganVzdCBtZWFucyB0aGF0
IHRoZSBwYWdlICpjb3VsZCogYmUgZW1wdHkuIEl0J3MgcG9zc2libGUgdG8gY29tZSBoZXJlIGFu
ZCBmaW5kCisgICAgICAgYSBub24tZW1wdHkgcGFnZS4gSW4gdGhhdCBjYXNlIHdlIG1ha2UgdGhl
IHBhZ2UgZWxpZ2libGUgYWdhaW4gYnV0IGxlYXZlIHRoZSBlbXB0eSBiaXQgY2xlYXIuICovCisg
ICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQocGFnZSwg
bXlfcGFnZV9jb25maWcpKSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFz
X2xvZygid2FzIG5vdCBlbXB0eS5cbiIpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwor
ICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7CisgICAgfQor
ICAgIAorICAgIC8qIFRoaXMgaGFzIGEgdmVyeSBzaG9ydCByYWNlIHRoYXQgY2F1c2VzIHRoZSBk
aXJlY3RvcnkgdG8gcG9zc2libHkgd2FzdGUgbWVtb3J5OiBpZgorICAgICAgIGR1cmluZyB0aGlz
IGJyaWVmIHdpbmRvdyB3ZSBoYXZlIHNvbWVvbmUgdHJ5aW5nIHRvIGZpbmQgYW4gZWxpZ2libGUg
cGFnZSwgdGhleSBtYXkKKyAgICAgICBlbmQgdXAgYWxsb2NhdGluZyBhIG5ldyBvbmUuCisgICAg
ICAgCisgICAgICAgQnV0IHdlIGRlbGliZXJhdGVseSBrZWVwIHRoZSBkdXJhdGlvbiBvZiB0aGlz
IHJhY2Ugd2luZG93IHNob3J0LiBXZSBtYWtlIHRoZSBwYWdlCisgICAgICAgaW5lbGlnaWJsZSBv
bmx5IGR1cmluZyB0aGUgdGltZSBpdCB0YWtlcyB1cyB0byBmaWd1cmUgb3V0IGhvdyB0byBkZWNv
bW1pdCBpdCBhbmQgdG8KKyAgICAgICBhY3F1aXJlIHRoZSBjb21taXQgbG9jay4gVGhlIGNvbW1p
dCBsb2NrIHNob3VsZCBiZSB0cml2aWFsbHkgYXZhaWxhYmxlIGhlcmUsIHNvCisgICAgICAgdGhh
dCdzIGp1c3QgYSBDQVMuIEFmdGVyIHRoYXQsIHRoZSBwYWdlIGlzIG1hZGUgZWl0aGVyIGVsaWdp
YmxlIG9yIGRlY29tbWl0dGVkLgorICAgICAgIEVpdGhlciB3YXksIGlmIGl0J3MgdGhlIGZpcnN0
IGVsaWdpYmxlLCBzb21lb25lIHdpbGwgdHJ5IHRvIHVzZSBpdC4gQXQgdGhhdCBwb2ludCwKKyAg
ICAgICBpZiB3ZSBhcmUgbm90IGRvbmUsIHRoZXkgd2lsbCB3YWl0IGZvciB1cyBzaW5jZSB3ZSBo
b2xkIHRoZSBjb21taXQgbG9jay4gKi8KKworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNo
X2xvY2socGFnZSwgJmhlbGRfbG9jaywgbXlfcGFnZV9jb25maWcpOworCisgICAgaWYgKHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9jb25maWcpKSB7CisgICAg
ICAgIC8qIFRoZSB1dGlsaXR5IGhlYXAgcmVxdWlyZXMgdXMgdG8gaG9sZCB0aGUgaGVhcCBsb2Nr
IGFueXRpbWUgd2UnZCBob2xkIHRoZSBvd25lcnNoaXAsIGNvbW1pdCwKKyAgICAgICAgICAgb3Ig
cGFnZSBsb2Nrcy4gSXQganVzdCBzbyBoYXBwZW5zIHRoYXQgd2Ugd2VyZSBhbHJlYWR5IGhvbGRp
bmcgdGhlIGhlYXAgbG9jaywgYW5kCisgICAgICAgICAgIHBhZ2Vfc3dpdGNoX2xvY2sgZG9lcyBu
b3RoaW5nIGZvciB1dGlsaXR5LiBTbyB3ZSBzaG91bGQgc3RpbGwgYmUgaG9sZGluZyB0aGUgaGVh
cCBsb2NrLiAqLworICAgICAgICBQQVNfQVNTRVJUKGhlbGRfbG9jayA9PSBwYXNfbG9ja19mb3Jf
c3dpdGNoX2NvbmRpdGlvbmFsbHkoJnBhc19oZWFwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUp
KTsKKyAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworICAgIH0KKworICAgIFBB
U19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKGRpcmVjdG9yeSwgaW5k
ZXgsIGVsaWdpYmxlKSk7CisKKyAgICAvKiBJdCdzIHRvdGFsbHkgcG9zc2libGUgdGhhdCB0aGUg
ZW1wdHkgYml0IGdvdCBzZXQgYWdhaW4uIFdlIHNob3VsZCBjbGVhciBpdCBmb3Igc3VyZSBub3cu
ICovCisgICAgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX1NFVF9CSVQoZGlyZWN0b3J5LCBpbmRl
eCwgZW1wdHksIGZhbHNlKTsKKworICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRl
ZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQocGFnZSwgbXlfcGFnZV9jb25maWcpKTsKKyAg
ICAKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdl
X2NvbmZpZykpIHsKKyAgICAgICAgUEFTX0FTU0VSVChteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vf
c2l6ZSA9PSBteV9wYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSk7CisgICAgICAgIAorICAg
ICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisKKyAgICAgICAgdmlldy0+aXNfb3du
ZWQgPSBmYWxzZTsKKyAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2co
InZpZXcgJXAgaGFzIGlzX293bmVkID0gZmFsc2UgZHVlIHRvIHV0aWxpdHkgZGVjb21taXQgaW4g
dGFrZV9sYXN0X2VtcHR5XG4iLAorICAgICAgICAgICAgICAgICAgICB2aWV3KTsKKyAgICAgICAg
fQorICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQoCisgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSwKKyAgICAgICAgICAg
IG15X3BhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAgZGVjb21taXRfbG9nLT50
b3RhbCArPSBteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsKKyAgICAgICAgbXlfcGFnZV9j
b25maWcuYmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNlLCBwYXNfbG9ja19pc19o
ZWxkKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9l
bGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgcGFzX2xvY2tfc3dp
dGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgICAgICBkYXRhLT5yZXN1bHQgPSBwYXNfcGFnZV9z
aGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cisg
ICAgCisgICAgaWYgKHBhZ2UtPm51bV9ub25fZW1wdHlfd29yZHMpIHsKKyAgICAgICAgYm9vbCBk
ZWNvbW1pdF9yZXN1bHQ7CisgICAgICAgIHNpemVfdCBudW1fY29tbWl0dGVkX2dyYW51bGVzOwor
ICAgICAgICAKKyAgICAgICAgLyogTm8gcGFydGlhbCBkZWNvbW1pdCBpbiB0aGUgdXRpbGl0eSBo
ZWFwISAqLworICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19p
c191dGlsaXR5KG15X3BhZ2VfY29uZmlnKSk7CisgICAgICAgIAorICAgICAgICAvKiBXZSBrbm93
IHRoYXQgdGhlcmUgbXVzdCBiZSBlbXB0eSBncmFudWxlcyBpbiB0aGlzIHBhZ2UsIHNpbmNlIGVp
dGhlciB0aGUgZW1wdHkKKyAgICAgICAgICAgb3IgdGhlIHBhcnRseV9lbXB0eSBiaXQgd2FzIHNl
dC4gVGhvc2UgYml0cyB3b3VsZG4ndCBnZXQgc2V0IHVubGVzcyB3ZSBub3RpY2VkCisgICAgICAg
ICAgIGFuIGVtcHR5IGdyYW51bGUuIElmIHdlIGRpZCB0cnkgdG8gYWxsb2NhdGUgZnJvbSB0aG9z
ZSBncmFudWxlcywgd2Ugd291bGQgZmlyc3QKKyAgICAgICAgICAgaGF2ZSB0byB0YWtlIGF3YXkg
aXRzIGVsaWdpYmlsaXR5IGFuZCB0aGVuIGNsZWFyIGl0cyBlbXB0eSBiaXRzLiBCdXQgd2Uga25v
dyB0aGF0CisgICAgICAgICAgIHRoaXMgY291bGQgbm90IGhhdmUgaGFwcGVuZWQgc2luY2UgKndl
KiB0b29rIGF3YXkgaXRzIGVsaWdpYmlsaXR5LiAqLworICAgICAgICAKKyAgICAgICAgZGVjb21t
aXRfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV90YWtlX2VtcHR5X2dyYW51bGVzKAorICAg
ICAgICAgICAgcGFnZSwgZGVjb21taXRfbG9nLCAmaGVsZF9sb2NrLCBwYXNfcmFuZ2VfaXNfbm90
X2xvY2tlZCwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgIAorICAgICAgICBwYXNfbG9j
a19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisgICAgICAgIAorICAgICAgICBudW1fY29tbWl0
dGVkX2dyYW51bGVzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9nZXRfbnVtX2NvbW1pdHRlZF9ncmFu
dWxlcyhwYWdlKTsKKyAgICAgICAgUEFTX0FTU0VSVChudW1fY29tbWl0dGVkX2dyYW51bGVzKTsK
KyAgICAgICAgCisgICAgICAgIC8qIFRoZSBwYWdlIGNhbiBiZWNvbWUgZWxpZ2libGUgYWdhaW4g
bm93IHRoYXQgd2UndmUgbWFya2VkIHRoaW5ncyBmb3IgZGVjb21taXQuICovCisgICAgICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgo
ZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAgIAorICAgICAgICBpZiAoZGVjb21taXRfcmVzdWx0
KSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCIl
cDogZGlkIHBhcnRseSB0YWtlIGluZGV4ICV6dVxuIiwgZGlyZWN0b3J5LCBpbmRleCk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19k
aWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICAgICAg
ZGF0YS0+cmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbG9ja3NfdW5hdmFpbGFi
bGU7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7Cisg
ICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCAmdmlldy0+b3duZXJzaGlwX2xvY2sp
OworICAgICAgICB2aWV3LT5pc19vd25lZCA9IGZhbHNlOworICAgICAgICBpZiAodmVyYm9zZSkg
eworICAgICAgICAgICAgcGFzX2xvZygidmlldyAlcCBoYXMgaXNfb3duZWQgPSBmYWxzZSBkdWUg
dG8gbm9ybWFsIGRlY29tbWl0IGluIHRha2VfbGFzdF9lbXB0eVxuIiwKKyAgICAgICAgICAgICAg
ICAgICAgdmlldyk7CisgICAgICAgIH0KKyAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xv
Y2ssIE5VTEwpOworICAgICAgICAKKyAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX3Rh
a2VfcGh5c2ljYWxseSgKKyAgICAgICAgICAgICAgICBwYWdlLCBkZWNvbW1pdF9sb2csIHBhc19y
YW5nZV9pc19ub3RfbG9ja2VkLCBoZWFwX2xvY2tfaG9sZF9tb2RlKSkgeworICAgICAgICAgICAg
UEFTX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9pc191dGlsaXR5KGRp
cmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCkpOworICAgICAgICAgICAgCisgICAgICAgICAgICBw
YXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAg
ICAgICAgIHZpZXctPmlzX293bmVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7
CisgICAgICAgICAgICAgICAgcGFzX2xvZygidmlldyAlcCBoYXMgaXNfb3duZWQgPSB0cnVlIGR1
ZSB0byB1bmRvIG9mIGRlY29tbWl0IGluIHRha2VfbGFzdF9lbXB0eVxuIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHZpZXcpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFzX2xvY2tf
c3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRp
cmVjdG9yeSwgaW5kZXgpOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Zp
ZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgZGF0YS0+cmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rh
a2VfbG9ja3NfdW5hdmFpbGFibGU7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2co
IiVwOiBkaWQgZnVsbHkgdGFrZSBpbmRleCAlenVcbiIsIGRpcmVjdG9yeSwgaW5kZXgpOworICAg
ICAgICAgICAgcGFzX2xvZygiRGVzdHJveWluZyBwYWdlIGhlYWRlciBmb3IgdmlldyA9ICVwLCBw
YWdlID0gJXAsIGJvdW5kYXJ5ID0gJXAgKCVwKSAiCisgICAgICAgICAgICAgICAgICAgICJhcyBw
YXJ0IG9mIGRlY29tbWl0LlxuIiwKKyAgICAgICAgICAgICAgICAgICAgdmlldywgcGFnZSwgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBteV9wYWdlX2NvbmZpZyksCisgICAgICAg
ICAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91bmRhcnkpOworICAgICAgICB9CisgICAgICAgIG15
X3BhZ2VfY29uZmlnLmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFnZS0+YmFzZSwgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CisKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdf
ZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKKyAgICB9Cisg
ICAgCisgICAgZGF0YS0+cmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2Vz
czsKKyAgICByZXR1cm4gdHJ1ZTsKKworcmVsZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxz
ZToKKyAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisKKyAgICAvKiBSZXR1
cm5pbmcgZmFsc2UgbWVhbnMgdGhhdCB0aGUgYmFja3dhcmRzIGl0ZXJhdGlvbiBrZWVwcyBnb2lu
ZyBhbmQgdGhpcyBzaG91bGQgZ2V0IGNhbGxlZAorICAgICAgIGFnYWluIGlmIHRoZXJlIGFyZSBh
bnkgb3RoZXIgdmlld3MgbWFya2VkIGVtcHR5LiAqLworICAgIHJldHVybiBmYWxzZTsKK30KKwor
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0CitwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIHNpemVfZGlyZWN0b3J5LAorICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29t
bWl0X2xvZywKKyAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sK
KyAgICAvKiBCZSBjYXJlZnVsOiBoZWFwX2xvY2tfaG9sZF9tb2RlIGhlcmUgY2FuIGJlIHVucmVs
YXRlZCB0byB3aGF0IHBhZ2VfY29uZmlnIHNheXMsIHNpbmNlCisgICAgICAgd2UgbWF5IGJlIGFz
a2VkIGJ5IHRoZSBwaHlzaWNhbCBwYWdlIHNoYXJpbmcgcG9vbCB0byBkZWNvbW1pdCBvbiBiZWhh
bGYgb2YgYW55IG90aGVyIGhlYXAsCisgICAgICAgaW5jbHVkaW5nIG9uZXMgdGhhdCBob2xkIHRo
ZSBoZWFwIGxvY2sgd2hpbGUgZG9pbmcgYnVzaW5lc3MuICovCisKKyAgICB0YWtlX2xhc3RfZW1w
dHlfZGF0YSBkYXRhOworICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZp
ZyBjb25maWc7CisgICAgYm9vbCBkaWRfZmluZF9zb21ldGhpbmc7CiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisKKyAgICBkaXJlY3RvcnkgPSAmc2l6ZV9kaXJlY3Rv
cnktPmJhc2U7CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoZGlyZWN0b3J5LT5wYWdlX2NvbmZp
Z19raW5kICE9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7CisKKyAgICBk
YXRhLmRlY29tbWl0X2xvZyA9IGRlY29tbWl0X2xvZzsKKyAgICBkYXRhLmhlYXBfbG9ja19ob2xk
X21vZGUgPSBoZWFwX2xvY2tfaG9sZF9tb2RlOworICAgIGRhdGEucmVzdWx0ID0gcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFibGU7CisKKyAgICBkYXRhLm15X3BhZ2VfY29u
ZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJl
Y3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpOworCisgICAgY29uZmlnLmRpcmVjdG9yeSA9IGRpcmVj
dG9yeTsKKyAgICBjb25maWcuc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwgPSB0YWtlX2xh
c3RfZW1wdHlfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWw7CisgICAgY29uZmlnLmNvbnNp
ZGVyX3ZpZXcgPSB0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldzsKKyAgICBjb25maWcuYXJn
ID0gJmRhdGE7CisKKyAgICBkaWRfZmluZF9zb21ldGhpbmcgPQorICAgICAgICBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9iYWNrd2FyZF90b190YWtlX2xhc3RfZW1wdHkoJmNvbmZp
Zyk7CisKKyAgICBpZiAoIWRpZF9maW5kX3NvbWV0aGluZykKKyAgICAgICAgcmV0dXJuIHBhc19w
YWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOworCisgICAgUEFTX0FTU0VSVChw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZG9pbmdfc2hhcmluZyhkaXJlY3RvcnkpKTsKKyAg
ICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YSgKKyAgICAgICAgJnBhc19w
aHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbCwKKyAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0
aWNpcGFudF9jcmVhdGUoCisgICAgICAgICAgICBkaXJlY3RvcnksCisgICAgICAgICAgICBwYXNf
cGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmRfc2VsZWN0X2Zvcl9zZWdyZWdhdGVkX2RpcmVj
dG9yeSgKKyAgICAgICAgICAgICAgICBkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kKSkpOworICAg
IAorICAgIHJldHVybiBkYXRhLnJlc3VsdDsKK30KKworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgdWlu
dHB0cl90IGJlZ2luLAorICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQoreworICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldzsKKyAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jf
b2JqZWN0KGJlZ2luLCBjb25maWcpOworICAgIGlmICh2aWV3KQorICAgICAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkodmlldyk7CisgICAgcmV0dXJuIE5V
TEw7Cit9CisKK3Bhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0CitwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAorICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgc2l6ZV90IGNvdW50LAorICAgIHBhc19j
b3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKKyAgICBwYXNfaGVhcF9jb25maWcq
IGNvbmZpZywKKyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KQoreworICAgIHBhc19sb2NhbF9h
bGxvY2F0b3JfcmVzdWx0IHRsY19yZXN1bHQ7CisgICAgdW5zaWduZWQgYmFzZWxpbmVfYWxsb2Nh
dG9yX2luZGV4OworCisgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpKTsKKyAgICBQQVNfQVNTRVJUKCFwYXNfaGVh
cF9jb25maWdfaXNfdXRpbGl0eShjb25maWcpKTsKKyAgICAKKyAgICBwYXNfaGVhcF9sb2NrX2xv
Y2soKTsKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kZXgoCisg
ICAgICAgIGRpcmVjdG9yeS0+aGVhcCwKKyAgICAgICAgZGlyZWN0b3J5LAorICAgICAgICBjb3Vu
dCwKKyAgICAgICAgY291bnRfbG9va3VwX21vZGUsCisgICAgICAgIGNvbmZpZywKKyAgICAgICAg
Y2FjaGVkX2luZGV4KTsKKyAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOworCisgICAgLyogQ3Vy
cmVudGx5IGFzIHNvb24gYXMgd2Ugc3dpdGNoIHRvIFRMQyBhbGxvY2F0b3JzLCB3ZSBjYW5ub3Qg
cG9zc2libHkgaGF2ZSBhIGJhc2VsaW5lCisgICAgICAgYWxsb2NhdG9yLiBCdXQgaWYgd2UgZG8s
IHdlIHNob3VsZCBzdG9wIGl0IG5vdy4gKi8KKyAgICBiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgg
PSBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKKyAgICBpZiAoYmFzZWxpbmVf
YWxsb2NhdG9yX2luZGV4IDwgUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTKSB7CisgICAgICAg
IHBhc19iYXNlbGluZV9hbGxvY2F0b3IqIGJhc2VsaW5lX2FsbG9jYXRvcjsKKyAgICAgICAgCisg
ICAgICAgIGJhc2VsaW5lX2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUg
KyBiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXg7CisgICAgICAgIAorICAgICAgICBwYXNfbG9ja19s
b2NrKCZiYXNlbGluZV9hbGxvY2F0b3ItPmxvY2spOworCisgICAgICAgIC8qIEl0J3MgcG9zc2li
bGUgdGhhdCBkdWUgdG8gYSByYWNlLCB0aGUgZGlyZWN0b3J5J3MgaW5kZXggaGFzIGJlZW4gcmVh
c3NpZ25lZCB0byBzb21ldGhpbmcKKyAgICAgICAgICAgZWxzZS4gQXQgd29yc3QsIHRoYXQgcmFj
ZSB3aWxsIG1lYW4gdGhhdCBzb21lIGJhc2VsaW5lIGFsbG9jYXRvciB3aWxsIGJlIHVzZWQgZm9y
CisgICAgICAgICAgIGFsbG9jYXRpb24uIFRoZXJlJ3Mgbm90IGEgd2hvbGUgbG90IHdlIGNhbiBk
byBhYm91dCB0aGF0LiBBdCB3b3JzdCwgaXQgbWVhbnMgbGV0dGluZyB0aGUKKyAgICAgICAgICAg
aGlnaCB3YXRlcm1hcmsgZ3JvdyBhIGJpdCBpbiBjYXNlIG9mIGEgd2VpcmQgcmFjZS4gKi8KKyAg
ICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID09IGJhc2VsaW5l
X2FsbG9jYXRvcl9pbmRleCkgeworICAgICAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9k
ZXRhY2hfZGlyZWN0b3J5KGJhc2VsaW5lX2FsbG9jYXRvcik7CisgICAgICAgICAgICBwYXNfZmVu
Y2UoKTsKKyAgICAgICAgICAgIGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0g
MiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgcGFzX2xvY2tfdW5sb2NrKCZiYXNlbGluZV9hbGxvY2F0b3ItPmxvY2spOworICAgIH0K
KyAgICAKKyAgICB0bGNfcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxf
YWxsb2NhdG9yKAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldChjb25maWcpLAor
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9u
dWxsKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXgsCisgICAgICAgIHBhc19sb2Nr
X2lzX25vdF9oZWxkKTsKKyAgICAKKyAgICBQQVNfQVNTRVJUKHRsY19yZXN1bHQuZGlkX3N1Y2Nl
ZWQpOworCisgICAgcmV0dXJuIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9z
dWNjZXNzKHRsY19yZXN1bHQuYWxsb2NhdG9yLCBOVUxMKTsKK30KKworcGFzX2hlYXBfc3VtbWFy
eSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnlfZm9yX3Vub3du
ZWRfZXhjbHVzaXZlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKKyAgICBwYXNfaGVhcF9z
dW1tYXJ5IHJlc3VsdDsKKyAgICBzaXplX3QgcGF5bG9hZF9zaXplOworCisgICAgUEFTX0FTU0VS
VChkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX251bGwpOworCisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7CisgICAgcGFnZV9jb25maWcg
PSAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+
YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKKyAgICAKKyAgICByZXN1bHQgPSBwYXNfaGVhcF9zdW1t
YXJ5X2NyZWF0ZV9lbXB0eSgpOworICAgIAorICAgIHBheWxvYWRfc2l6ZSA9IChkYXRhLT5vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdCAtCisgICAgICAgICAg
ICAgICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0
KTsKKyAgICAKKyAgICByZXN1bHQuZGVjb21taXR0ZWQgKz0gcGFnZV9jb25maWcuYmFzZS5wYWdl
X3NpemU7CisgICAgcmVzdWx0LmZyZWUgKz0gcGF5bG9hZF9zaXplOworICAgIHJlc3VsdC5mcmVl
X2RlY29tbWl0dGVkICs9IHBheWxvYWRfc2l6ZTsKKyAgICAKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCit0eXBlZGVmIHN0cnVjdCB7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9s
aXZlX29iamVjdF9jYWxsYmFjayBjYWxsYmFjazsKICAgICB2b2lkKiBhcmc7CiB9IGZvcl9lYWNo
X2xpdmVfb2JqZWN0X2RhdGE7CkBAIC02OCwxNCArOTcyLDEzIEBAIHN0YXRpYyBib29sIGZvcl9l
YWNoX2xpdmVfb2JqZWN0X29iamVjdF8KIAogICAgIGRhdGEgPSBhcmc7CiAKLSAgICBQQVNfQVNT
RVJUKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9nbG9iYWwoZGF0YS0+ZGlyZWN0
b3J5KS0+b2JqZWN0X3NpemUKLSAgICAgICAgICAgICAgID09IHBhc19yYW5nZV9zaXplKHJhbmdl
KSk7CisgICAgUEFTX0FTU0VSVChkYXRhLT5kaXJlY3RvcnktPm9iamVjdF9zaXplID09IHBhc19y
YW5nZV9zaXplKHJhbmdlKSk7CiAKICAgICByZXR1cm4gZGF0YS0+Y2FsbGJhY2soZGF0YS0+ZGly
ZWN0b3J5LCB2aWV3LCByYW5nZS5iZWdpbiwgZGF0YS0+YXJnKTsKIH0KIAogYm9vbCBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdCgKLSAgICBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zv
cl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNrLAogICAgIHZvaWQqIGFyZykKIHsK
QEAgLTg4LDEwICs5OTEsMTAgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9m
b3JfZQogCiAgICAgLyogVGhlIGNvb2wgdGhpbmcgYWJvdXQgdGhpcyBsb29wIGlzIHRoYXQgaW4g
Y2FzZSBvZiByYWNlcyBpdCdsbCB0ZW5kIHRvIGdvIGNoZWNrIG91dAogICAgICAgIG1vcmUgdmll
dy4gKi8KLSAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7CisgICAgZm9yIChpbmRleCA9IDA7IGluZGV4
IDwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeS0+YmFzZSk7ICsraW5k
ZXgpIHsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OwogCi0gICAgICAgIHZpZXcg
PSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAg
ICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5LT5iYXNlLCBp
bmRleCk7CiAgICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3JfZWFjaF9saXZlX29i
amVjdCgKICAgICAgICAgICAgICAgICB2aWV3LCBmb3JfZWFjaF9saXZlX29iamVjdF9vYmplY3Rf
Y2FsbGJhY2ssICZkYXRhLCBwYXNfbG9ja19pc19ub3RfaGVsZCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xMDAsMTUgKzEwMDMsNjEgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9mb3JfZQogICAgIHJldHVybiB0cnVlOwogfQogCi1wYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCi0gICAg
dWludHB0cl90IGJlZ2luLAotICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQordWludDhfdCBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2NhY2hlX2NhcGFjaXR5KHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3OwotICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmplY3QoYmVn
aW4sIGNvbmZpZyk7Ci0gICAgaWYgKHZpZXcpCi0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIGtpbmQ7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcqIGNvbmZpZzsKKworICAgIGtpbmQgPSBkaXJlY3RvcnktPmJhc2UucGFnZV9j
b25maWdfa2luZDsKKworICAgIGlmIChraW5kID09IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfbnVsbCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBjb25maWcgPSBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoa2luZCk7CisgICAgaWYgKCFjb25maWct
PmVuYWJsZV92aWV3X2NhY2hlKQorICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAgICByZXR1cm4g
cGFzX2hlYXBfcnVudGltZV9jb25maWdfdmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3Np
emUoCisgICAgICAgIGRpcmVjdG9yeS0+aGVhcC0+cnVudGltZV9jb25maWcsIGRpcmVjdG9yeS0+
b2JqZWN0X3NpemUsIGNvbmZpZyk7Cit9CisKK3NpemVfdCBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tp
bmQga2luZDsKKworICAgIGtpbmQgPSBkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZDsK
KworICAgIGlmIChraW5kID09IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCkK
KyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9j
YXRvcl9zaXplX2Zvcl9udWxsX2NvbmZpZygpOworICAgIAorICAgIHJldHVybiBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfY29uZmlnKAorICAg
ICAgICAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGtpbmQpKTsK
K30KKworcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9u
dW1fYWxsb2NhdG9yX2luZGljZXMoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSkKK3sKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
bnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9hbGxvY2F0b3Jfc2l6ZSgKKyAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemUoZGlyZWN0b3J5KSk7
Cit9CisKK3ZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2Uo
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVh
bSogc3RyZWFtKQoreworICAgIHBhc19zdHJlYW1fcHJpbnRmKAorICAgICAgICBzdHJlYW0sCisg
ICAgICAgICIlcChzZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LCAldSwgJXAsICVzKSIsCisgICAg
ICAgIGRpcmVjdG9yeSwKKyAgICAgICAgZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSwKKyAgICAgICAg
ZGlyZWN0b3J5LT5oZWFwLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
X2dldF9zdHJpbmcoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpKTsKK30KKwordm9p
ZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSgKKyAgICBw
YXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQqIGRpcmVjdG9yeSkKK3sKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZShkaXJlY3RvcnksIHN0cmVhbSk7CiB9CiAK
ICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNywzNCArMjcsMTkwIEBACiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZ
X0gKIAogI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXguaCIKKyNpbmNsdWRlICJwYXNfY29t
cGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBh
Y3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19j
b21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKKyNpbmNsdWRl
ICJwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCIKKyNpbmNs
dWRlICJwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2Nv
bmZpZy5oIgogI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgorI2luY2x1ZGUgInBhc19wYWdl
X2dyYW51bGVfdXNlX2NvdW50LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9k
ZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLVBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3RhYmxpbmc7CitzdHJ1Y3QgcGFzX2V4dGVuZGVk
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRh
OwordHlwZWRlZiBzdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YSBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhOwordHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kYXRhOwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVj
dCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2RhdGE7CisKK1BBU19ERUZJTkVfQ09NUEFDVF9BVE9NSUNfUFRSKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cik7CisKK3N0cnVjdCBQQVNf
QUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5IHsKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkgYmFzZTsKKyAgICAKKyAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwOworCisgICAgdW5zaWduZWQgb2JqZWN0X3NpemUg
OiAyNzsKKyAgICB1bnNpZ25lZCBhbGlnbm1lbnRfc2hpZnQgOiA1OworCisgICAgLyogVGhpcyBo
YXMgYSBmdW5ueSBlbmNvZGluZyAobGV0IE4gPSBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMp
OgorICAgICAgIAorICAgICAgIGluZGV4IGluIFswLCBOKSAgICAgPT4gYXR0YWNoZWQgdG8gaW5k
ZXgKKyAgICAgICBpbmRleCBpbiBbTiwgMk4pICAgID0+IGF0dGFjaGluZyB0byBpbmRleCAtIE4K
KyAgICAgICAyTiAgICAgICAgICAgICAgICAgID0+IGRldGFjaGVkCisgICAgICAgCisgICAgICAg
SW4gdGhlIGRldGFjaGVkIHN0YXRlLCB0aGUgb25seSB3YXkgdG8gY2hhbmdlIHRoaXMgaXMgdG8g
Q0FTIGl0LgorICAgICAgIAorICAgICAgIEluIHRoZSBhdHRhY2hlZCBhbmQgYXR0YWNoaW5nIHN0
YXRlcywgdGhlIGNvcnJlc3BvbmRpbmcgaW5kZXgncyBsb2NrIHByb3RlY3RzIHRoaXMgZmllbGQu
ICovCisgICAgdWludDE2X3QgYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OworCisgICAgcGFzX2Fs
bG9jYXRvcl9pbmRleCB2aWV3X2NhY2hlX2luZGV4OyAvKiBUaGlzIGNvdWxkIGJlIGluIHRoZSBz
aXplX2RpcmVjdG9yeV9kYXRhIGJ1dCB3ZSBwdXQgaXQgaGVyZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVjYXVzZSBpdCB0YWtlcyBsZXNzIHNwYWNlIHRv
IHB1dCBpdCBoZXJlLiAqLworICAgIAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2RhdGFfcHRyIGRhdGE7CisgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNz
X3B0ciBiaXRmaXRfc2l6ZV9jbGFzczsKKworICAgIC8qIFRoZSBvd25pbmcgc2VncmVnYXRlZCBo
ZWFwIGhvbGRzIHRoZXNlIGluIGEgc2luZ2x5IGxpbmtlZCBsaXN0LiAqLworICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBuZXh0X2Zvcl9oZWFwOwor
fTsKKworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEgeworICAgIHVu
c2lnbmVkIG9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0OyAvKiBDYWNo
ZWQgdG8gbWFrZSByZWZpbGwgZmFzdC4gKi8KKyAgICB1bnNpZ25lZCBvZmZzZXRfZnJvbV9wYWdl
X2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsgLyogQ2FjaGVkIHRvIG1ha2UgcmVmaWxs
IGZhc3QuICovCisgICAgCisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7
CisgICAgCisgICAgdWludDhfdCBmdWxsX251bV9ub25fZW1wdHlfd29yZHM7CisKKyAgICBwYXNf
Y29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyIGZ1bGxfYWxsb2NfYml0czsgLyogUHJlY29tcHV0
ZWQgYWxsb2MgYml0cyBpbiB0aGUgY2FzZSB0aGF0IGEgcGFnZSBpcyBlbXB0eS4gKi8KKyAgICBw
YXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5leHRfZm9y
X2xheW91dDsKK307CisKK3N0cnVjdCBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9kYXRhIHsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhIGJhc2U7
CisgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyIGZ1bGxf
dXNlX2NvdW50czsKK307CisKK3N0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldworcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXNfdmlldyhwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2Ny
ZWF0ZShkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZCk7
Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9hbGlnbm1lbnQocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sK
KyAgICByZXR1cm4gKHNpemVfdCkxIDw8IChzaXplX3QpZGlyZWN0b3J5LT5hbGlnbm1lbnRfc2hp
ZnQ7Cit9CisKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBo
ZWFwLAorICAgIHVuc2lnbmVkIG9iamVjdF9zaXplLAorICAgIHVuc2lnbmVkIGFsaWdubWVudCwK
KyAgICBwYXNfaGVhcF9jb25maWcqIGhlYXBfY29uZmlnLAorICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnKiBwYWdlX2NvbmZpZywKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jcmVhdGlvbl9tb2RlIGNyZWF0aW9uX21vZGUpOworCitQQVNfQVBJIHZvaWQgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZmluaXNoX2NyZWF0aW9uKHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGlkX3RyeV90b19jcmVhdGVfdmlld19jYWNoZSgKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHJldHVybiBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X21pc2NfYml0KCZkaXJlY3RvcnktPmJhc2UpOworfQor
CitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2V0X2Rp
ZF90cnlfdG9fY3JlYXRlX3ZpZXdfY2FjaGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKKyAgICBib29sIHZhbHVlKQoreworICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3Rvcnlfc2V0X21pc2NfYml0KCZkaXJlY3RvcnktPmJhc2UsIHZhbHVlKTsK
K30KKworUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbnN1cmVfZGF0YSgKKyAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xv
Y2tfaG9sZF9tb2RlKTsKKworUEFTX0FQSSBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kYXRhKgorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVk
X2RhdGEoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisK
Ky8qIENhbGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KK1BBU19BUEkgdm9pZCBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcigKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworc3RhdGljIGlubGluZSBib29sIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKAorICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAgICByZXR1
cm4gZGF0YSAmJiBkYXRhLT5hbGxvY2F0b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgp
VUlOVF9NQVg7Cit9CisKKy8qIENhbGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KK1BBU19BUEkg
dm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX3ZpZXdfY2FjaGUo
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKKy8qIENh
bGwgd2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3ZpZXdzKAorICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKAorICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBkYXRhID0gcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAg
ICByZXR1cm4gZGF0YSAmJiBkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHM7Cit9CisKK1BB
U19BUEkgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90
YWtlX2ZpcnN0X2VsaWdpYmxlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpOworCitQQVNfQVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdAor
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KAorICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2RlZmVycmVkX2Rl
Y29tbWl0X2xvZyogbG9nLAorICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9t
b2RlKTsKIAotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NvbnN0
cnVjdCgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIHBhZ2VfY29uZmlnX2tpbmQsCi0gICAgcGFzX3Bh
Z2Vfc2hhcmluZ19tb2RlIHBhZ2Vfc2hhcmluZ19tb2RlLAotICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9raW5kIGtpbmQpOworUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICB1aW50cHRy
X3QgYmVnaW4sCisgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpOworCisvKiBUaGlzIGFzc3Vt
ZXMgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgYSBkYXRhLiBUaGF0J3MgYSB2YWxpZCBhc3N1bXB0aW9u
IGlmIHdlIGhhdmUgZXhjbHVzaXZlcy4gKi8KK1BBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnlfZm9yX3Vub3duZWRfZXhj
bHVzaXZlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwog
CiB0eXBlZGVmIGJvb2wgKCpwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9s
aXZlX29iamVjdF9jYWxsYmFjaykoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgdWludHB0cl90IGJlZ2luLAogICAgIHZv
aWQqIGFyZyk7CiAKIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9m
b3JfZWFjaF9saXZlX29iamVjdCgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxi
YWNrIGNhbGxiYWNrLAogICAgIHZvaWQqIGFyZyk7CiAKLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAotICAg
IHVpbnRwdHJfdCBiZWdpbiwKLSAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZyk7CitQQVNfQVBJ
IHVpbnQ4X3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0
eSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworUEFT
X0FQSSBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9y
X3NpemUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisK
K1BBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9udW1fYWxsb2NhdG9yX2luZGljZXMoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSk7CisKK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9kdW1wX3JlZmVyZW5jZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0pOworCitQQVNfQVBJIHZvaWQgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0oCisgICAgcGFzX3N0cmVhbSog
c3RyZWFtLCB2b2lkKiBkaXJlY3RvcnkpOwogCiBQQVNfRU5EX0VYVEVSTl9DOwogCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jcmVhdGlvbl9tb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5o
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfQ1JFQVRJT05fTU9E
RV9ICisjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0NSRUFUSU9OX01PREVf
SAorCisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworZW51
bSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlIHsKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbml0aWFsX2NyZWF0aW9uX21vZGUsCisgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZnVsbF9jcmVhdGlvbl9tb2RlCit9OworCit0eXBl
ZGVmIGVudW0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlOworCitzdGF0aWMgaW5saW5l
IGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGVf
Z2V0X3N0cmluZygKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9t
b2RlIG1vZGUpCit7CisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9pbml0aWFsX2NyZWF0aW9uX21vZGU6CisgICAgICAgIHJldHVybiAi
aW5pdGlhbCI7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mdWxsX2Ny
ZWF0aW9uX21vZGU6CisgICAgICAgIHJldHVybiAiZnVsbCI7CisgICAgfQorICAgIFBBU19BU1NF
UlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworUEFT
X0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZ
X0NSRUFUSU9OX01PREVfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDQ2ICsyMywxMzEgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICov
CiAKLSNpZm5kZWYgUEFTX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19ICi0jZGVm
aW5lIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0lOTElORVNfSAorI2lmbmRlZiBQQVNf
U0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19ICisjZGVmaW5lIFBBU19T
RUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9JTkxJTkVTX0gKIAogI2luY2x1ZGUgInBh
c19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvcl90YWJsZS5oIgogI2luY2x1ZGUgInBhc19jb3VudF9sb29rdXBfbW9kZS5oIgotI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFz
X2xvY2FsX2FsbG9jYXRvci5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
bmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNo
ZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1
bnNpZ25lZAotcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJs
ZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3X25vdF90YWJsZWRfcGFyYWxsZWwoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50IHNlZ21lbnQsCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpCitQQVNfQVBJIHBh
c19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCisgICAgc2l6ZV90IGNvdW50LAorICAgIHBhc19jb3VudF9sb29rdXBf
bW9kZSBjb3VudF9sb29rdXBfbW9kZSwKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAg
ICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KTsKKworUEFTX0FQSSBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yKgorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93
KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQKK3Bhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3IoCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBzaXplX3QgY291bnQsCisgICAg
cGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAorICAgIHBhc19oZWFwX2Nv
bmZpZyogY29uZmlnLAorICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCiB7Ci0gICAgUEFTX1VO
VVNFRF9QQVJBTShjb25maWcpOworICAgIGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpCisgICAgICAgICYmIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX3RyeV9nZXQoKSB8fCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkp
IHsKKyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9hbGxv
Y2F0b3JfZnJvbV90bGMoCisgICAgICAgICAgICBkaXJlY3RvcnksIGNvdW50LCBjb3VudF9sb29r
dXBfbW9kZSwgY29uZmlnLCBjYWNoZWRfaW5kZXgpOworICAgIH0KKworICAgIGZvciAoOzspIHsK
KyAgICAgICAgdW5zaWduZWQgaW5kZXg7CisgICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3Iq
IGFsbG9jYXRvcjsKKworICAgICAgICBpbmRleCA9IGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2Nh
dG9yX2luZGV4OworICAgICAgICBpZiAoaW5kZXggPj0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FU
T1JTKQorICAgICAgICAgICAgYWxsb2NhdG9yID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KGRpcmVjdG9yeSk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgYWxsb2NhdG9yID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGluZGV4
OworICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZhbGxvY2F0b3ItPmxv
Y2spOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9h
bGxvY2F0b3JfaW5kZXggIT0gaW5kZXgpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxv
Y2soJmFsbG9jYXRvci0+bG9jayk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dS5hbGxvY2F0b3IudmlldykgPT0gZGly
ZWN0b3J5KTsKKworICAgICAgICByZXR1cm4gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHRf
Y3JlYXRlX3N1Y2Nlc3MoCisgICAgICAgICAgICAmYWxsb2NhdG9yLT51LmFsbG9jYXRvciwgJmFs
bG9jYXRvci0+bG9jayk7CisgICAgfQorfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6
ZV90CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9m
b3JfbnVsbF9jb25maWcodm9pZCkKK3sKKyAgICByZXR1cm4gUEFTX0xPQ0FMX0FMTE9DQVRPUl9T
SVpFKDApOworfQorCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9jb25maWcoCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgY29uZmlnKQoreworICAgIFBBU19BU1NFUlQoY29u
ZmlnLmJhc2UuaXNfZW5hYmxlZCk7CisgICAgcmV0dXJuIFBBU19MT0NBTF9BTExPQ0FUT1JfU0la
RShjb25maWcubnVtX2FsbG9jX2JpdHMpOworfQorCitzdGF0aWMgaW5saW5lIHBhc19hbGxvY2F0
b3JfaW5kZXgKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5k
aWNlc19mb3JfYWxsb2NhdG9yX3NpemUoc2l6ZV90IHNpemUpCit7CisgICAgcGFzX2FsbG9jYXRv
cl9pbmRleCByZXN1bHQ7CisKKyAgICByZXN1bHQgPSAocGFzX2FsbG9jYXRvcl9pbmRleCkoc2l6
ZSAvIDgpOworICAgIFBBU19URVNUSU5HX0FTU0VSVCgoc2l6ZV90KXJlc3VsdCAqIDggPT0gc2l6
ZSk7CiAgICAgCi0gICAgcmV0dXJuIHNlZ21lbnQuZWxpZ2libGVfYml0cyAmIH5zZWdtZW50LnRh
YmxlZF9iaXRzOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfYWxsb2NhdG9yX2luZGV4CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9u
dW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2NvbmZpZygKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBjb25maWcpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
OworICAgIAorICAgIHNpemVfdCBzaXplOworCisgICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5p
c19lbmFibGVkKTsKKyAgICAKKyAgICBzaXplID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX2NvbmZpZyhjb25maWcpOworCisgICAgaWYgKHZl
cmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygKKyAgICAgICAgICAgICJraW5kID0gJXMsIHNpemUg
PSAlenUuXG4iLAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9n
ZXRfc3RyaW5nKGNvbmZpZy5raW5kKSwKKyAgICAgICAgICAgIHNpemUpOworICAgIH0KKworICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGlj
ZXNfZm9yX2FsbG9jYXRvcl9zaXplKHNpemUpOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgdW5zaWduZWQKLXBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxp
Z2libGVfaW1wbF9zaG91bGRfY29uc2lkZXJfdmlld190YWJsZWRfcGFyYWxsZWwoCitwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGxfc2hvdWxkX2Nv
bnNpZGVyX3ZpZXdfcGFyYWxsZWwoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZl
Y3Rvcl9zZWdtZW50IHNlZ21lbnQsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJh
dGVfY29uZmlnKiBjb25maWcpCiB7CiAgICAgUEFTX1VOVVNFRF9QQVJBTShjb25maWcpOwogICAg
IAotICAgIHJldHVybiBzZWdtZW50LmVsaWdpYmxlX2JpdHMgJiBzZWdtZW50LnRhYmxlZF9iaXRz
OworICAgIHJldHVybiBzZWdtZW50LmVsaWdpYmxlX2JpdHM7CiB9CiAKIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF92aWV3CiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGwoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29u
ZmlnKiBjb25maWcsCi0gICAgdm9pZCAoKmxvb3BfaGVhZF9jYWxsYmFjaykocGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpLAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgKCpjcmVh
dGVfbmV3X3ZpZXdfY2FsbGJhY2spKAogICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXRlcmF0ZV9jb25maWcqIGNvbmZpZykpCiB7CkBAIC04NSwxMTEgKzE3MCw1MCBAQCBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0CiAgICAgICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICAgICAgcGFzX2xvZygiJXA6IEF0IHRvcCBvZiB0YWtlX2ZpcnN0X2VsaWdpYmxlX2lt
cGwgbG9vcC5cbiIsIGRpcmVjdG9yeSk7CiAgICAgICAgIAotICAgICAgICBsb29wX2hlYWRfY2Fs
bGJhY2soZGlyZWN0b3J5KTsKLSAgICAgICAgCiAgICAgICAgIGNvbmZpZy0+ZGlyZWN0b3J5ID0g
ZGlyZWN0b3J5OwogICAgICAgICBjb25maWctPnNob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVs
ID0KLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3Rf
ZWxpZ2libGVfaW1wbF9zaG91bGRfY29uc2lkZXJfdmlld19ub3RfdGFibGVkX3BhcmFsbGVsOwor
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGln
aWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsOwogICAgICAgICBjb25maWct
PmNvbnNpZGVyX3ZpZXcgPSBOVUxMOwogICAgICAgICBjb25maWctPmFyZyA9IE5VTEw7CiAKLSAg
ICAgICAgZGlkX2ZpbmRfc29tZXRoaW5nID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJh
dGVfZm9yd2FyZF90b190YWtlX2ZpcnN0X2VsaWdpYmxlKAotICAgICAgICAgICAgY29uZmlnLCBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2lu
ZCk7CisgICAgICAgIGRpZF9maW5kX3NvbWV0aGluZyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9pdGVyYXRlX2ZvcndhcmRfdG9fdGFrZV9maXJzdF9lbGlnaWJsZShjb25maWcpOwogCiAgICAg
ICAgIGlmIChkaWRfZmluZF9zb21ldGhpbmcpIHsKICAgICAgICAgICAgIHZpZXcgPSBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeSwgY29uZmlnLT5pbmRleCk7CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xv
ZygiQXQgaW5kZXggJXp1OiBUYWtpbmcgZXhpc3RpbmcgdmlldyAlcCAobm90IHRhYmxlZCkuXG4i
LAorICAgICAgICAgICAgICAgIHBhc19sb2coIkF0IGluZGV4ICV6dTogVGFraW5nIGV4aXN0aW5n
IHZpZXcgJXAuXG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgKHNpemVfdCljb25maWctPmlu
ZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRy
KHZpZXcpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKGNvbmZpZy0+c2VnbWVudC5lbGlnaWJsZV9iaXRzICYgY29uZmlnLT5iaXRf
cmVmZXJlbmNlLm1hc2spOwotICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCEoY29uZmln
LT5zZWdtZW50LnRhYmxlZF9iaXRzICYgY29uZmlnLT5iaXRfcmVmZXJlbmNlLm1hc2spKTsKIAog
ICAgICAgICAgICAgaWYgKFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRfUkVGRVJFTkNFX1NF
VCgKICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBjb25maWctPmJpdF9yZWZlcmVuY2Us
IGVsaWdpYmxlLCBmYWxzZSkpIHsKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvZygiRGlkIHRha2UgZmlyc3QgZWxpZ2libGUuXG4iKTsKLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3VzZV90YWJsaW5nKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfc2hv
dWxkX3RhYmxlKHZpZXcsIHBhZ2VfY29uZmlnX3B0cikpCi0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwogCi0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAg
IHBhc19sb2coIlRhYmxpbmcuXG4iKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUX1JFRkVSRU5DRV9TRVQoCi0gICAgICAgICAg
ICAgICAgICAgIGRpcmVjdG9yeSwgY29uZmlnLT5iaXRfcmVmZXJlbmNlLCB0YWJsZWQsIHRydWUp
OwotICAgICAgICAgICAgICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRfUkVGRVJFTkNF
X1NFVCgKLSAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBjb25maWctPmJpdF9yZWZlcmVu
Y2UsIGVsaWdpYmxlLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfbWluaW1pemVfZmlyc3RfZWxpZ2libGUoCi0gICAgICAgICAgICAgICAgICAgIGRpcmVj
dG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRf
a2luZCwgY29uZmlnLT5pbmRleCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzaXplX3Qgbm90X3RhYmxlZF9pbmRl
eDsKLQotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygi
RGlkbid0IGZpbmQgYW55dGhpbmcsIHNlYXJjaGluZyB0YWJsZWQuXG4iKTsKLQotICAgICAgICAg
ICAgbm90X3RhYmxlZF9pbmRleCA9IGNvbmZpZy0+aW5kZXg7Ci0KLSAgICAgICAgICAgIGNvbmZp
Zy0+ZGlyZWN0b3J5ID0gZGlyZWN0b3J5OwotICAgICAgICAgICAgY29uZmlnLT5zaG91bGRfY29u
c2lkZXJfdmlld19wYXJhbGxlbCA9Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3
X3RhYmxlZF9wYXJhbGxlbDsKLSAgICAgICAgICAgIGNvbmZpZy0+Y29uc2lkZXJfdmlldyA9IE5V
TEw7Ci0gICAgICAgICAgICBjb25maWctPmFyZyA9IE5VTEw7Ci0gICAgICAgICAgICBkaWRfZmlu
ZF9zb21ldGhpbmcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkX3Rv
X3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAgICAgICAgICAgICAgY29uZmlnLCBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYW5kX3RhYmxlZF9raW5kKTsKLQotICAgICAg
ICAgICAgaWYgKGRpZF9maW5kX3NvbWV0aGluZykgewotICAgICAgICAgICAgICAgIHZpZXcgPSBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeSwgY29uZmlnLT5pbmRleCk7Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvZygiQXQgaW5kZXggJXp1OiBUYWtpbmcgZXhpc3RpbmcgdmlldyAl
cCAodGFibGVkKS5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLT5pbmRl
eCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9w
dHIodmlldykpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoY29uZmlnLT5zZWdtZW50LmVsaWdpYmxlX2JpdHMg
JiBjb25maWctPmJpdF9yZWZlcmVuY2UubWFzayk7Ci0gICAgICAgICAgICAgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKGNvbmZpZy0+c2VnbWVudC50YWJsZWRfYml0cyAmIGNvbmZpZy0+Yml0X3JlZmVy
ZW5jZS5tYXNrKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoUEFTX1NF
R1JFR0FURURfRElSRUNUT1JZX0JJVF9SRUZFUkVOQ0VfU0VUKAotICAgICAgICAgICAgICAgICAg
ICAgICAgZGlyZWN0b3J5LCBjb25maWctPmJpdF9yZWZlcmVuY2UsIGVsaWdpYmxlLCBmYWxzZSkp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9nKCJEaWQgdGFrZSBmaXJzdCBlbGlnaWJsZS5cbiIpOwotCi0gICAgICAgICAg
ICAgICAgICAgIC8qIEZJWE1FOiBUaGlzIGlzIHdlaXJkIGZvciBwYXJ0aWFscy4gSWRlYWxseSwg
d2UnZCB3YW50IHRvIHVudGFibGUgYWxsIG9mIHRoZSBwYXJ0aWFscwotICAgICAgICAgICAgICAg
ICAgICAgICB0aGF0IHNoYXJlIHRoZSBzYW1lIHNoYXJlZCB2aWV3IGFzIHRoaXMgb25lLiBCdXQg
dGFibGluZyBpcyBtb3N0IGxpa2VseSB0byBoYXBwZW4KLSAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIGRlY29tbWl0dGVkIHBhZ2VzLCBpbiB3aGljaCBjYXNlIHdlIGNhbm5vdCBmaW5kIHRoZSBv
dGhlciBwYXJ0aWFscyAtIHdlIHdvdWxkCi0gICAgICAgICAgICAgICAgICAgICAgIGhhdmUgZm9y
Z290dGVuIGFib3V0IHRoZW0uIFNvLCB3ZSBsZXQgdGhlIG90aGVyIHBhcnRpYWxzIHN0YXkgdGFi
bGVkLiAqLwotICAgICAgICAgICAgICAgICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklU
X1JFRkVSRU5DRV9TRVQoCi0gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGNvbmZp
Zy0+Yml0X3JlZmVyZW5jZSwgdGFibGVkLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgc2l6ZV90IG5ld19zaXplOwotCi0gICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19s
b2NrX2NvbmRpdGlvbmFsbHkoCi0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpKTsKLQotICAgICAgICAg
ICAgICAgIG5ld19zaXplID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5
KTsKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKG5ld19zaXplID49IG5vdF90YWJsZWRfaW5k
ZXgpOwotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQobmV3X3NpemUgPj0gY29uZmlnLT5pbmRl
eCk7Ci0gICAgICAgICAgICAgICAgaWYgKG5ld19zaXplID09IG5vdF90YWJsZWRfaW5kZXggJiYg
bmV3X3NpemUgPT0gY29uZmlnLT5pbmRleCkgewotICAgICAgICAgICAgICAgICAgICB2aWV3ID0g
Y3JlYXRlX25ld192aWV3X2NhbGxiYWNrKGNvbmZpZyk7Ci0gICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9hcHBlbmQoZGlyZWN0b3J5LCBjb25maWctPmluZGV4LCB2
aWV3KTsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9u
YWxseSgKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpKTsKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
c2l6ZV90IG5ld19zaXplOworICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNfaGVhcF9sb2Nr
X2xvY2tfY29uZGl0aW9uYWxseSgKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKSk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIG5ld19zaXplID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGly
ZWN0b3J5KTsKKyAgICAgICAgICAgIFBBU19BU1NFUlQobmV3X3NpemUgPj0gY29uZmlnLT5pbmRl
eCk7CisgICAgICAgICAgICBpZiAobmV3X3NpemUgPT0gY29uZmlnLT5pbmRleCkgeworICAgICAg
ICAgICAgICAgIHZpZXcgPSBjcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2soY29uZmlnKTsKKyAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYXBwZW5kKGRpcmVjdG9yeSwgY29u
ZmlnLT5pbmRleCwgdmlldyk7CiAgICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tf
Y29uZGl0aW9uYWxseSgKICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykpOworICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNfaGVh
cF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpKTsKICAgICAg
ICAgfQogICAgIH0KICAgICAKQEAgLTIwNSwyNSArMjI5LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfdGFrZV9maXJzdAogICAgIHJldHVybiB2aWV3OwogfQogCi1zdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgotcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2dsb2JhbChwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBpZiAoIWRpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJu
IE5VTEw7Ci0gICAgc3dpdGNoIChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kKSB7Ci0gICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgcmV0
dXJuIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAg
ICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJl
dHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZF9ub25fbnVsbCgKLSAgICAgICAgICAgICYoKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5KilkaXJlY3RvcnkpLT5wYXJlbnRfZ2xvYmFsKTsKLSAgICBkZWZhdWx0OgotICAgICAgICBi
cmVhazsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwot
ICAgIHJldHVybiBOVUxMOwotfQotCiBQQVNfRU5EX0VYVEVSTl9DOwogCi0jZW5kaWYgLyogUEFT
X1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19IICovCisjZW5kaWYgLyogUEFTX1NF
R1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX0lOTElORVNfSCAqLwogCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3LmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
dmlldy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF92aWV3LmMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDYg
QEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCiAKICNpbmNsdWRlICJwYXNfZnVs
bF9hbGxvY19iaXRzX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oIgog
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3LmgiCkBAIC00MSw0MSArMzksMTYgQEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2Vf
Ym91bmRhcnlfaW5saW5lcy5oIgogCi1wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5X3Nsb3cocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2
aWV3KQorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCitwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9zaXplX2RpcmVjdG9yeV9zbG93KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKICAg
ICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKICAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAmcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251
bGwoCi0gICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcp
LT5kaXJlY3RvcnkpLT5iYXNlOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19r
aW5kOgotICAgICAgICByZXR1cm4gJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfYmlhc2luZyh2aWV3KS0+ZGlyZWN0b3J5KS0+YmFzZTsKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOgotICAgICAgICByZXR1cm4gJnBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAg
ICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldyktPmRpcmVjdG9yeSkt
PmJhc2U7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUg
cmVhY2hlZCIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci19Ci0KLXBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKLXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9zbG93KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICBz
d2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKLSAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgK
KyAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
X2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhj
bHVzaXZlKHZpZXcpLT5kaXJlY3RvcnkpOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdf
dmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAg
ICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KS0+ZGlyZWN0
b3J5KS0+cGFyZW50X2dsb2JhbCk7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICByZXR1cm4gcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAg
ICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYXJ0aWFsKHZpZXcpLT5kaXJlY3RvcnkpOwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQi
KTsKQEAgLTg4LDEyICs2MSw4IEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFz
X3NlZ3IKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsK
ICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHJl
dHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZF9ub25fbnVsbCgKKyAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5kaXJlY3RvcnkpLT5iYXNlLnBhZ2VfY29uZmlnX2tp
bmQ7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJl
dHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkX25v
bl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmll
dyktPmRpcmVjdG9yeSktPmJhc2UucGFnZV9jb25maWdfa2luZDsKICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUodmlldyktPmRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZp
Z19raW5kOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDoKQEAgLTEw
MSwxMCArNzAsMTAgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZCBwYXNfc2Vncgog
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpLT5zaGFyZWRf
aGFuZGxlX29yX3BhZ2VfYm91bmRhcnkpCiAgICAgICAgICAgICAtPmRpcmVjdG9yeS0+YmFzZS5w
YWdlX2NvbmZpZ19raW5kOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tp
bmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAm
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KS0+ZGlyZWN0b3J5KS0+YmFzZS5w
YWdlX2NvbmZpZ19raW5kOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kOworICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kOgorICAgICAgICBy
ZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkodmlldyktPmJhc2Uu
cGFnZV9jb25maWdfa2luZDsKICAgICBkZWZhdWx0OgogICAgICAgICBQQVNfQVNTRVJUKCEiU2hv
dWxkIG5vdCBiZSByZWFjaGVkIik7CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX251bGw7CkBAIC0xMjMsOSArOTIsNiBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfaW5kZXgocGFzCiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVf
dmlld19raW5kOgogICAgICAgICByZXR1cm4gKChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+aW5kZXg7Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAoKHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+
aW5kZXg7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAgICAg
ICByZXR1cm4gKChwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfcHRyKHZpZXcpKS0+aW5kZXg7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
aGFuZGxlX2tpbmQ6CkBAIC0xNDUsMTMgKzExMSw2IEBAIHZvaWQqIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3BhZ2VfYm91bmQKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3
X2tpbmQ6CiAgICAgICAgIHJldHVybiAoKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3Kilw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldykpLT5wYWdlX2JvdW5kYXJ5OwotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOiB7Ci0gICAgICAgIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7Ci0gICAgICAgIGV4Y2x1c2l2ZSA9IHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKAotICAgICAg
ICAgICAgJigocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KilwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9wdHIodmlldykpLT5leGNsdXNpdmUpOwotICAgICAgICByZXR1cm4gZXhjbHVzaXZlID8g
ZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5IDogTlVMTDsKLSAgICB9CiAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFzX3NoYXJlZF9oYW5k
bGVfb3JfcGFnZV9ib3VuZGFyeV9nZXRfcGFnZV9ib3VuZGFyeV9ub19saXZlbmVzc19jaGVja3Mo
CiAgICAgICAgICAgICAoKHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KikKQEAgLTE2OCw3ICsx
MjcsNyBAQCB2b2lkKiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2JvdW5kCiAgICAgICAg
IHJldHVybiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2dldF9wYWdlX2JvdW5k
YXJ5KAogICAgICAgICAgICAgc2hhcmVkX3ZpZXctPnNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3Vu
ZGFyeSwKICAgICAgICAgICAgICpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9j
b25maWcoCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAg
ICAgICAgICAgICAgJnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5KS0+YmFzZS5wYWdlX2NvbmZpZ19r
aW5kKSk7CiAgICAgfQogICAgIGRlZmF1bHQ6CkBAIC0xODQsMTEyICsxNDMsMTIgQEAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZSogcGFzX3NlZ3JlZ2F0ZWRfdmlldwogICAgICAgICAqcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfcGFnZV9jb25maWcodmlldykpOwogfQogCi1ib29sIHBhc19zZWdyZWdhdGVk
X3ZpZXdfc2hvdWxkX3Jlc3RhcnQocGFzX3NlZ3JlZ2F0ZWRfdmlldyBvd25lcl92aWV3LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19tYWdhemluZSogbWFnYXpp
bmUpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kIGtpbmQ7Ci0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgaW5kZXg7Ci0KLSAgICBr
aW5kID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZChvd25lcl92aWV3KTsKLSAgICBzd2l0
Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6
IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZTsKLSAg
ICAgICAgZXhjbHVzaXZlID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKG93bmVy
X3ZpZXcpOwotICAgICAgICBkaXJlY3RvcnkgPSAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmZXhjbHVz
aXZlLT5kaXJlY3RvcnkpLT5iYXNlOwotICAgICAgICBpbmRleCA9IGV4Y2x1c2l2ZS0+aW5kZXg7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2li
bGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ192aWV3KiBiaWFzaW5nOwotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0gICAgICAgIGJpYXNpbmcgPSBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKG93bmVyX3ZpZXcpOwotICAgICAgICBiaWFzaW5nX2Rp
cmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xv
YWRfbm9uX251bGwoCi0gICAgICAgICAgICAmYmlhc2luZy0+ZGlyZWN0b3J5KTsKLSAgICAgICAg
aWYgKCFtYWdhemluZSB8fAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnlfbWFnYXppbmVfaW5kZXgoCi0gICAgICAgICAgICAgICAgYmlhc2luZ19kaXJlY3Rvcnkp
ICE9IG1hZ2F6aW5lLT5tYWdhemluZV9pbmRleCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgZGlyZWN0b3J5ID0gJmJpYXNpbmdfZGlyZWN0b3J5LT5iYXNlOwotICAgICAgICBp
bmRleCA9IGJpYXNpbmctPmluZGV4OwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDogewot
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWw7Ci0gICAgICAgIHBh
cnRpYWwgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYXJ0aWFsKG93bmVyX3ZpZXcpOwotICAg
ICAgICBpZiAoIXBhcnRpYWwtPmVsaWdpYmlsaXR5X2hhc19iZWVuX25vdGVkKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBkaXJlY3RvcnkgPSAmcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAg
ICAmcGFydGlhbC0+ZGlyZWN0b3J5KS0+YmFzZTsKLSAgICAgICAgaW5kZXggPSBwYXJ0aWFsLT5p
bmRleDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBBU19B
U1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLQotICAgIC8qIFRoZXJlJ3Mgc29tZXRoaW5nIGludGVyZXN0aW5nIGhlcmU6IHRoZSA8
PSBjb21wYXJpc29uIG9mIHZpZXcgaW5kaWNlcy4gSXQgcmVhbGx5IG91Z2h0IHRvCi0gICAgICAg
YmUgPCwgc2luY2UgdGhlIG93bmVyX3ZpZXcgaXNuJ3QgYWN0dWFsbHkgZWxpZ2libGUuCi0gICAg
ICAgCi0gICAgICAgQnV0IHRoZSBmaXJzdF9lbGlnaWJsZSBwcm9wZXJ0eSBoYXMgYW4gb2ZmLWJ5
LW9uZSBzdGlja2luZXNzIHRvIGl0LiBUaGF0IGp1c3Qgc29ydCBvZiBmYWxscwotICAgICAgIG91
dCBvZiB0aGUgZ2VuZXJpYyB0YWtlX2ZpcnN0X2VsaWdpYmxlIGFsZ29yaXRobS4gVGhhdCBuZWNl
c3NpdGF0ZXMgdGhlIDw9LgotICAgICAgIAotICAgICAgIFRoaXMgZG9lc24ndCBoYXZlIHRvIGJl
IHN1cGVyIGNvcnJlY3QuIEl0J3MgaW1wb3J0YW50IGZvciB0aGUgYWxnb3JpdGhtIHRvIHRlbmQg
dG93YXJkcyB1c2luZwotICAgICAgIHRoZSBsb3dlc3QtaW5kZXhlZCB2aWV3LiBCdXQgaWYgaXQg
c29tZXRpbWVzIGZhaWxzIHRvIGRvIHRoYXQsIHRoZW4gaXQncyBub3QgdGhlIGVuZCBvZiB0aGUK
LSAgICAgICB3b3JsZC4KLSAgICAKLSAgICAgICBIb3dldmVyLCBpdCBtaWdodCBiZSBuaWNlIHRv
IHJldmlzaXQgd2hldGhlciB0aGlzIGlzIHJlYWxseSB0aGUgYmVzdCB0aGF0IHdlIGNhbiBkby4g
SSB0aGluawotICAgICAgIHRoYXQgdW5kZXIgY29tcGxleCByYWNlcywgd2UgbWlnaHQgaGF2ZSBm
aXJzdF9lbGlnaWJsZSBwb2ludGluZyB0b28gbG93LCBtYWtpbmcgaXQgc2VlbSBsaWtlCi0gICAg
ICAgb3duZXJfdmlldyBpc24ndCB0aGUgZmlyc3RfZWxpZ2libGUgb25lLiBPbmUgd2F5IHRvIGZp
eCB0aGlzIGlzIHRvIGp1c3QgaGF2ZQotICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGUgdGFrZSBv
dXIgaW5kZXggYW5kIGhhdmUgaXQgbm90IHJldHVybiBhbnl0aGluZyB1bmxlc3MgdGhhdCBzb21l
dGhpbmcgaGFzCi0gICAgICAgYSBsb3dlciBpbmRleCB0aGFuIHVzLiBUaGF0IHNlZW1zIGJldHRl
ciBhbmQgbW9yZSBlZmZpY2llbnQgaW4gbG90cyBvZiB3YXlzLiAqLwotICAgIHJldHVybiAoaW5k
ZXggPD0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZV90b3JuKAot
ICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0
X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVkX2tpbmQpLnZhbHVlKQotICAgICAgICAmJiAoaW5kZXgg
PD0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZV90b3JuKAotICAg
ICAgICAgICAgICAgIGRpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2Vs
aWdpYmxlX2FuZF90YWJsZWRfa2luZCkudmFsdWUpOwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVk
X3ZpZXdfY291bGRfYnVtcChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnOwotICAgIHBhZ2VfY29uZmlnID0gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9jb25maWcodmlldyk7Ci0gICAgc3dpdGNoIChwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJs
ZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgICAgICByZXR1cm4gIXBhc19zZWdyZWdhdGVkX3Bh
Z2VfZm9yX2JvdW5kYXJ5KAotICAgICAgICAgICAgKChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+cGFnZV9ib3VuZGFyeSwK
LSAgICAgICAgICAgICpwYWdlX2NvbmZpZyktPm51bV9ub25fZW1wdHlfd29yZHM7Ci0gICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAhcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkoCi0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAg
ICAgICAgICAmKChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3B0cigKLSAgICAgICAgICAgICAgICAgICAgICB2aWV3KSktPmV4Y2x1c2l2ZSktPnBh
Z2VfYm91bmRhcnksCi0gICAgICAgICAgICAqcGFnZV9jb25maWcpLT5udW1fbm9uX2VtcHR5X3dv
cmRzOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBkZWZhdWx0OgotICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxk
IG5vdCBiZSByZWFjaGVkIik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19Ci0KIHBh
c19sb2NrKiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9jb21taXRfbG9jayhwYXNfc2VncmVnYXRl
ZF92aWV3IHZpZXcpCiB7CiAgICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5k
KHZpZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgog
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgog
ICAgICAgICByZXR1cm4gJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KS0+
Y29tbWl0X2xvY2s7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0g
ICAgICAgIHJldHVybiAmcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfYmlhc2luZyh2aWV3KS0+ZXhjbHVzaXZlKS0+Y29tbWl0X2xvY2s7CiAgICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgogICAgICAgICByZXR1cm4gJnBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X3NoYXJlZCh2aWV3KS0+Y29tbWl0X2xvY2s7CiAgICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQ6CkBAIC0zMTAsMTAgKzE2OSw2IEBAIHBhc19sb2Nr
KiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9vd25lcnMKICAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxl
X2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfZXhjbHVzaXZlKHZpZXcpLT5vd25lcnNoaXBfbG9jazsKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGln
aWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuICZwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAg
ICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKHZpZXcpLT5leGNsdXNpdmUpLT5v
d25lcnNoaXBfbG9jazsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6
CiAgICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpLT5v
d25lcnNoaXBfbG9jazsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2lu
ZDoKQEAgLTMzMywxMSArMTg4LDcgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVk
KHBhc19zZQogICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkg
ewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICAgICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293
bmVkKAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcp
LT5vd25lcnNoaXBfa2luZCk7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdf
a2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tp
bmQ6Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfaXNfb3duZWQo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KSk7CisgICAgICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldyktPmlzX293bmVkOwogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZCh2aWV3KS0+aXNfb3duZWQ7CiAgICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQ6CkBAIC0zNTUsNTkgKzIwNiwxOCBAQCBib29s
IHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfb3duZWQocGFzX3NlCiAgICAgfQogfQogCi1ib29sIHBh
c19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcg
dmlldywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKQotewotICAgIHN3
aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkgewotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3Nob3VsZF90YWJsZSgKLSAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KSwgcGFnZV9jb25maWcpOwotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3X3Nob3VsZF90YWJsZSgKLSAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldyksIHBhZ2VfY29uZmlnKTsKLSAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3X3Nob3VsZF90YWJsZSgKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X3BhcnRpYWwodmlldyksIHBhZ2VfY29uZmlnKTsKLSAgICBkZWZhdWx0OgotICAg
ICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgICAgIHJldHVy
biBOVUxMOwotICAgIH0KLX0KLQotYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9l
eGNsdXNpdmUocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQordm9pZCBwYXNfc2VncmVnYXRlZF92
aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQogewotICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7Ci0gICAgCi0gICAgaWYg
KCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZSh2aWV3KSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAotICAgIGV4Y2x1c2l2ZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4
Y2x1c2l2ZSh2aWV3KTsKLSAgICAKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2VkKGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQp
OwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNf
c2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNf
c29tZV9iaWFzaW5nKHZpZXcpKQotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2lu
Zyh2aWV3KSk7Ci0KICAgICBwYXNfbG9ja19sb2NrKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X293
bmVyc2hpcF9sb2NrKHZpZXcpKTsKLSAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBwYXNfc2Vn
cmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfY29uZGl0aW9uYWxseShwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcsCit2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBf
bG9ja19jb25kaXRpb25hbGx5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tf
aG9sZF9tb2RlIGxvY2tfaG9sZF9tb2RlKQogewotICAgIGJvb2wgcmVzdWx0OwogICAgIHBhc19j
b21waWxlcl9mZW5jZSgpOwotICAgIGlmIChsb2NrX2hvbGRfbW9kZSkKLSAgICAgICAgcmVzdWx0
ID0gdHJ1ZTsKLSAgICBlbHNlCi0gICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdf
bG9ja19vd25lcnNoaXBfbG9jayh2aWV3KTsKKyAgICBpZiAoIWxvY2tfaG9sZF9tb2RlKQorICAg
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7CiAgICAg
cGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBwYXNf
c2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfaWZfb3duZWQocGFzX3NlZ3JlZ2F0
ZWRfdmlldyB2aWV3KQpAQCAtNDE4LDEyICsyMjgsNyBAQCBib29sIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfbG9ja19vd25lcnNoaXBfCiBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNo
aXBfbG9ja19pZl9vd25lZF9jb25kaXRpb25hbGx5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGxvY2tfaG9sZF9tb2RlKQogewotICAgIGJv
b2wgcmVzdWx0OwotCi0gICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVy
c2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkodmlldywgbG9ja19ob2xkX21vZGUpOwotCi0gICAgaWYg
KCFyZXN1bHQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXNfc2VncmVnYXRlZF92aWV3
X2xvY2tfb3duZXJzaGlwX2xvY2tfY29uZGl0aW9uYWxseSh2aWV3LCBsb2NrX2hvbGRfbW9kZSk7
CiAKICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19vd25lZCh2aWV3KSkKICAgICAgICAg
cmV0dXJuIHRydWU7CkBAIC00NTcsMzMgKzI2Miw2IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19wcmltb3JkaWFsX3AKICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRp
YWwodmlldyktPnNoYXJlZF92aWV3KTsKIH0KIAotdm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X25v
dGVfZWxpZ2liaWxpdHkoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAotICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOwotCi0gICAgaWYgKHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2coIk5vdGluZyBlbGln
aWJpbGl0eSBmb3IgdmlldyAlcCwgcGFnZSAlcC5cbiIsIHZpZXcsIHBhZ2UpOwotICAgIAotICAg
IHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkgewotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eShwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9leGNsdXNpdmUodmlldyksIHBhZ2UpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2lu
ZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfdmlld19ub3RlX2VsaWdpYmlsaXR5KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmco
dmlldyksIHBhZ2UpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X25v
dGVfZWxpZ2liaWxpdHkocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KSwgcGFn
ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICBkZWZhdWx0OgotICAgICAgICBQQVNfQVNTRVJUKCEi
U2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci19Ci0KIHZv
aWQgcGFzX3NlZ3JlZ2F0ZWRfdmlld19ub3RlX2VtcHRpbmVzcygKICAgICBwYXNfc2VncmVnYXRl
ZF92aWV3IHZpZXcsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSkKQEAgLTQ5NCwxMSAr
MjcyLDYgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZW1wdGluZXNzKAogICAgICAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VtcHRpbmVzcygKICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KSwgcGFnZSk7CiAgICAg
ICAgIHJldHVybjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X25vdGVfZW1wdGluZXNzKAotICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KSwgcGFnZSk7Ci0gICAg
ICAgIHJldHVybjsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoK
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9ub3RlX2VtcHRpbmVzcygKICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZF9oYW5kbGUodmlldykpOwpA
QCAtNTk0LDcgKzM2Nyw3IEBAIHN0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0KAogICAg
IGZ1bGxfYWxsb2NfYml0cyA9IHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl92aWV3KHZp
ZXcsIHBhZ2VfY29uZmlnKTsKICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFn
ZSh2aWV3KTsKICAgICBwYWdlX2JvdW5kYXJ5ID0gKHVpbnRwdHJfdClwYXNfc2VncmVnYXRlZF9w
YWdlX2JvdW5kYXJ5KHBhZ2UsIHBhZ2VfY29uZmlnKTsKLSAgICBvYmplY3Rfc2l6ZSA9IHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KS0+b2JqZWN0X3Np
emU7CisgICAgb2JqZWN0X3NpemUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVj
dG9yeSh2aWV3KS0+b2JqZWN0X3NpemU7CiAKICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBw
YXNfbG9nKCJwYWdlID0gJXAsIGdvdCBhbGxvYyBiaXRzIHJhbmdlICV6dS4uLiV6dS5cbiIsCkBA
IC02NTQsMTEgKzQyNyw5IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3JfZWFjaF9saXZl
X28KICAgICAvKiBGb3IgcGFydGlhbCBhbmQgc2hhcmVkIHZpZXdzLCB0aGUgcGFnZSBsb2NrIGlz
IHRoZSBvd25lcnNoaXAgbG9jay4gRm9yIGV4Y2x1c2l2ZSB2aWV3cywKICAgICAgICBob2xkaW5n
IHRoZSBvd25lcnNoaXAgbG9jayBpcyBhZGVxdWF0ZSBhbnl3YXkuICovCiAKLSAgICBpZiAocGFz
X3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkodmlldywg
b3duZXJzaGlwX2xvY2tfaG9sZF9tb2RlKSkgewotICAgICAgICByZXN1bHQgPSBmb3JfZWFjaF9s
aXZlX29iamVjdCh2aWV3LCBjYWxsYmFjaywgYXJnKTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlld191bmxvY2tfb3duZXJzaGlwX2xvY2tfY29uZGl0aW9uYWxseSh2aWV3LCBvd25lcnNoaXBf
bG9ja19ob2xkX21vZGUpOwotICAgIH0gZWxzZQotICAgICAgICByZXN1bHQgPSB0cnVlOworICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KHZp
ZXcsIG93bmVyc2hpcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgcmVzdWx0ID0gZm9yX2VhY2hfbGl2
ZV9vYmplY3QodmlldywgY2FsbGJhY2ssIGFyZyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191
bmxvY2tfb3duZXJzaGlwX2xvY2tfY29uZGl0aW9uYWxseSh2aWV3LCBvd25lcnNoaXBfbG9ja19o
b2xkX21vZGUpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTcwNCw5ICs0NzUsNiBAQCBz
dGF0aWMgcGFzX3RyaV9zdGF0ZSBzaG91bGRfYmVfZWxpZ2libGUoCiAgICAgICAgIHJldHVybiBw
YXNfdHJpX3N0YXRlX21heWJlOwogICAgIH0KICAgICAKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRf
dmlld19pc19iaWFzZWRfZXhjbHVzaXZlKHZpZXcpKQotICAgICAgICByZXR1cm4gcGFzX3RyaV9z
dGF0ZV9ubzsKLQogICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19vd25lZCh2aWV3KSkK
ICAgICAgICAgcmV0dXJuIHBhc190cmlfc3RhdGVfeWVzOwogICAgIApAQCAtNzcxLDEzICs1Mzks
OSBAQCBwYXNfdHJpX3N0YXRlIHBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkCiAgICAgICAgICAg
ICAgICAgdmlldywgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9zdHJpbmcocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkpOwogICAgIH0KIAotICAgIGlmIChwYXNfc2VncmVn
YXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2sodmlldykpIHsKLSAgICAgICAgcmVzdWx0ID0g
c2hvdWxkX2JlX2VsaWdpYmxlKHZpZXcsIHBhZ2VfY29uZmlnKTsKLSAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlld191bmxvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgLyogVGhpcyBoYXBwZW5zIHdoZW4gYSBiaWFzaW5nIHZpZXcgaXMgdW5vd25lZC4gU28g
aXQgc2hvdWxkIGJlIGVsaWdpYmxlISAqLwotICAgICAgICByZXN1bHQgPSBwYXNfdHJpX3N0YXRl
X3llczsKLSAgICB9CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2Nr
KHZpZXcpOworICAgIHJlc3VsdCA9IHNob3VsZF9iZV9lbGlnaWJsZSh2aWV3LCBwYWdlX2NvbmZp
Zyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191bmxvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7
CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtODA3LDExICs1NzEsNiBAQCBwYXNfc2VncmVn
YXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX3ZpZXdfCiAgICAgICAgICAgIFRoaXMgbWFrZXMgZXF1
YWxpdHkgYXNzZXJ0aW9ucyBpbiB0aGUgdGVzdHMgZWFzaWVyIHRvIHdyaXRlLiAqLwogICAgICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfdmlldyhwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9leGNsdXNpdmUob3duaW5nX3ZpZXcpKTsKIAotICAgIGNhc2UgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVs
aWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICAvKiBTZWUgYWJvdmUuICovCi0gICAg
ICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfYXNfdmlldyhwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9iaWFzaW5nKG93bmluZ192aWV3KSk7Ci0KICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlld19hc192aWV3KAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X2hhbmRsZV9wYXJ0aWFsX3ZpZXdfZm9yX29iamVjdCgKQEAgLTgzMSwxMCArNTkwLDYgQEAgcGFz
X2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF92aWV3X2NvbQogICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KSk7CiAKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFz
aW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
d19jb21wdXRlX3N1bW1hcnkocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KSk7
Ci0KICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJl
dHVybiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19jb21wdXRlX3N1bW1hcnkocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnKTsKQEAgLTg1NSwxMCAr
NjEwLDYgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlKHBhcwogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaXNfZWxpZ2libGUocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpKTsKIAotICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdp
YmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmll
dykpOwotCiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKICAgICAg
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pc19lbGlnaWJsZShwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9wYXJ0aWFsKHZpZXcpKTsKIApAQCAtODY4LDEyICs2MTksNiBAQCBi
b29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGUocGFzCiAgICAgfQogfQogCi1ib29s
IHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGVfb3JfYmlhc2VkKHBhc19zZWdyZWdhdGVk
X3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJs
ZSh2aWV3KQotICAgICAgICB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNp
dmUodmlldyk7Ci19Ci0KIHN0YXRpYyBib29sIGlzX3BheWxvYWRfZW1wdHlfY2FsbGJhY2socGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfcmFuZ2UgcmFuZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQgKmFyZykKQEAgLTg5NywxMCArNjQyLDYgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92
aWV3X2lzX2VtcHR5KHBhc19zZQogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9l
eGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcp
KTsKIAotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICBy
ZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X2JpYXNpbmcodmlldykpOwotCiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfdmlld19raW5kOgogICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdf
aXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2hhcmVkKHZpZXcpKTsKIApAQCAtOTE4
LDEwICs2NTksNCBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHkocGFzX3NlCiAg
ICAgfQogfQogCi1ib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHlfb3JfYmlhc2VkKHBh
c19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19lbXB0eSh2aWV3KQotICAgICAgICB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNl
ZF9leGNsdXNpdmUodmlldyk7Ci19Ci0KICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3ZpZXcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3
ICs0NSw2IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19oZWFwX2NvbmZpZzsK
IHN0cnVjdCBwYXNfbWFnYXppbmU7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldzsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlOwpAQCAtNTQsMTEg
KzUzLDEwIEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXc7CiBzdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
cGFnZV9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7Ci1zdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX3ZpZXdfb3BhcXVl
OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfY29uZmlnIHBhc19oZWFwX2NvbmZpZzsKIHR5cGVk
ZWYgc3RydWN0IHBhc19tYWdhemluZSBwYXNfbWFnYXppbmU7Ci10eXBlZGVmIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3OwogdHlw
ZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZSBwYXNfc2VncmVnYXRlZF9wYWdlOwpAQCAtNjcsNyArNjUsNyBAQCB0eXBlZGVmIHN0cnVj
dCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpCiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfaGFuZGxlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGU7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7Ci10eXBlZGVmIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF92aWV3X29wYXF1ZSogcGFzX3NlZ3JlZ2F0ZWRfdmlldzsKIAogLyogTk9URTogaXQn
cyBhbiBhbnRpcGF0dGVybiB0byB1c2UgdGhpcyBmdW5jdGlvbiBkaXJlY3RseSB3aGVuIHlvdSBj
b3VsZCBoYXZlIHVzZWQgdGhlIG11Y2ggbW9yZQpAQCAtMTE1LDcyICsxMTMsMzcgQEAgc3RhdGlj
IGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShwYXNfc2VncmVnYXRlZF92aWV3
IHZpZXcpCiB7Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlKHZp
ZXcpCi0gICAgICAgIHx8IHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfaW5lbGlnaWJsZV9leGNsdXNp
dmUodmlldyk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lz
X2V4Y2x1c2l2ZV9pc2gocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfZXhjbHVzaXZlX2lzaChwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9raW5kKHZpZXcpKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfYmlhc2luZyhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcmV0
dXJuICFwYXNfc2VncmVnYXRlZF92aWV3X2lzX251bGwodmlldykKLSAgICAgICAgJiYgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSA9PSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXdfa2luZDsKLX0KLQotc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNf
aW5lbGlnaWJsZV9iaWFzaW5nKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSA9PSBwYXNfc2VncmVnYXRlZF9p
bmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFz
X3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2JpYXNpbmcocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNpbmcodmlldykKLSAg
ICAgICAgfHwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19pbmVsaWdpYmxlX2JpYXNpbmcodmlldyk7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAg
ICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9iaWFzaW5nKHZpZXcpKTsK
LSAgICByZXR1cm4gKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfcHRyKHZpZXcpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19pc19lbGlnaWJsZV9raW5kKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2VsaWdpYmxlKHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19pbmVsaWdpYmxlX2tpbmQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfaW5lbGlnaWJsZShw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKTsKKyAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19raW5kX2lzX3NvbWVfZXhjbHVzaXZlKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X2tpbmQodmlldykpOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFz
X3NlZ3JlZ2F0ZWRfdmlld19hc19pbmVsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykK
IHsKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHJlc3VsdDsKLSAgICBQQVNfVEVTVElOR19BU1NF
UlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKHZpZXcpKTsKKyAgICBQQVNf
VEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3
KSk7CiAgICAgcmVzdWx0ID0gKHBhc19zZWdyZWdhdGVkX3ZpZXcpKAogICAgICAgICAodWludHB0
cl90KXZpZXcgfCAodWludHB0cl90KXBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZl
X3ZpZXdfa2luZCk7CiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3B0cih2aWV3KSA9PSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIocmVzdWx0KSk7Ci0g
ICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNp
dmUodmlldykKLSAgICAgICAgICAgICAgICAgICAgICAgPT0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19zb21lX2V4Y2x1c2l2ZShyZXN1bHQpKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSk7CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAogc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVk
X3ZpZXdfYXNfZWxpZ2libGUocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQogewogICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgcmVzdWx0OwotICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVn
YXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2godmlldykpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKHZpZXcpKTsKICAgICByZXN1
bHQgPSAocGFzX3NlZ3JlZ2F0ZWRfdmlldykoCiAgICAgICAgICh1aW50cHRyX3QpdmlldyAmIH4o
dWludHB0cl90KXBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZCk7
CiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3
KSA9PSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIocmVzdWx0KSk7Ci0gICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykKLSAg
ICAgICAgICAgICAgICAgICAgICAgPT0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1
c2l2ZShyZXN1bHQpKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3Rh
dGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfZXhjbHVzaXZlKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKK3sKKyAgICBQQVNf
VEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3
KSk7CisgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19zaGFyZWQocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQogewogICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpID09IHBhc19zZWdyZWdh
dGVkX3NoYXJlZF92aWV3X2tpbmQ7CkBAIC0yMTUsMzMgKzE3OCwyMiBAQCBzdGF0aWMgaW5saW5l
IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmllCiAgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKIH0KIAotc3Rh
dGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX3NpemVfZGlyZWN0b3J5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykK
IHsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSA9PSBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kOworICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpID09IHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3ZpZXdfa2luZDsKIH0KIAotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnkqCitQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnlfc2xvdyhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcp
OwogCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSoKK3N0YXRpYyBpbmxp
bmUgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9zaXplX2RpcmVjdG9yeShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCiB7Ci0gICAgaWYgKHBh
c19zZWdyZWdhdGVkX3ZpZXdfaXNfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHZpZXcpKQotICAgICAg
ICByZXR1cm4gKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSopcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcHRyKHZpZXcpOworICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NpemVfZGlyZWN0
b3J5KHZpZXcpKQorICAgICAgICByZXR1cm4gKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7CiAgICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5X3Nsb3codmlldyk7CiB9CiAKLVBBU19BUEkg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgotcGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Nsb3cocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
KTsKLQotc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
Ci1wYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkocGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3KQotewotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSh2aWV3KSkKLSAgICAgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsK
LSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3Nsb3codmlldyk7Ci19Ci0KIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2lu
ZAogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9jb25maWdfa2luZChwYXNfc2VncmVnYXRl
ZF92aWV3IHZpZXcpOwogUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9jb25maWcocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsK
QEAgLTI1MSwyMyArMjAzLDkgQEAgUEFTX0FQSSBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfaQogUEFTX0FQSSB2b2lkKiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2JvdW5kYXJ5
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3BhZ2Uq
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2UocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsK
IAotLyogVGhpcyBhc3N1bWVzIHRoYXQgb3duZXJfdmlldyBpcyBlaXRoZXI6Ci0gICAKLSAgID0+
IEFuIGV4Y2x1c2l2ZS1pc2ggdmlldyAoZXhjbHVzaXZlIG9yIGJpYXNpbmcpIHRoYXQgd2FzIGxv
YWRlZCBmcm9tIHBhZ2UtPm93bmVyLCBzbyBpdHMga2luZAotICAgICAgY2FuIHRlbGwgdXMgYWJv
dXQgZWxpZ2liaWxpdHkuCi0KLSAgID0+IEEgcGFydGlhbCB2aWV3IGlmIHRoZSBwYWdlIG93bmVy
IHdhcyBhIHNoYXJlZCBoYW5kbGUuCi0KLSAgIFRoaXMgc2V0IG9mIGFzc3VtcHRpb25zIGhhcHBl
bnMgdG8gbWF0Y2ggbG9jYWxfYWxsb2NhdG9yJ3MgdmlldyBvZiB0aGUgd29ybGQuICovCi1QQVNf
QVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19zaG91bGRfcmVzdGFydChwYXNfc2VncmVnYXRl
ZF92aWV3IG93bmVyX3ZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKTsKLQotUEFTX0FQSSBib29sIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfY291bGRfYnVtcChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwotCiAv
KiBJdCdzIG9ubHkgT0sgdG8gY2FsbCB0aGlzIHdoZW4geW91IGhhdmUgb3duZXJzaGlwIG9mIHRo
ZSBwYWdlLCBsaWtlIGlmIHlvdSBtYWRlIGl0IGluZWxpZ2libGUgb3IKICAgIGdyYWJiZWQgdGhl
IG93bmVyc2hpcCBsb2NrLiBPZiBjb3Vyc2UsIGlmIHlvdSBncmFiYmVkIHRoZSBvd25lcnNoaXAg
bG9jayB0aGVuIHlvdSBjYW5ub3QgZ3JhYiB0aGUKLSAgIGNvbW1pdCBsb2NrLCBzbyBob3BlZnVs
bHkgeW91IGdvdCBoZXJlIGJ5IG1ha2luZyB0aGUgcGFnZSBpbmVsaWdpYmxlLiBBbHNvLCBmb3Ig
Ymlhc2luZyB2aWV3cywgaXQncwotICAgb25seSBPSyBpZiB0aGUgYmlhc2luZyB2aWV3IGlzIGF0
dGFjaGVkIHRvIGFuIGV4Y2x1c2l2ZS4gKi8KKyAgIGNvbW1pdCBsb2NrLCBzbyBob3BlZnVsbHkg
eW91IGdvdCBoZXJlIGJ5IG1ha2luZyB0aGUgcGFnZSBpbmVsaWdpYmxlLiAqLwogUEFTX0FQSSBw
YXNfbG9jayogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfY29tbWl0X2xvY2socGFzX3NlZ3JlZ2F0
ZWRfdmlldyB2aWV3KTsKIAogLyogSXQncyBvbmx5IE9LIHRvIGNhbGwgdGhpcyBpZiB5b3UgYWxy
ZWFkeSBob2xkIHRoZSBvd25lcnNoaXAgbG9jayBvciB0aGUgdmlldyBpcyBpbmVsaWdpYmxlLiAq
LwpAQCAtMjc1LDE1ICsyMTMsOSBAQCBQQVNfQVBJIHBhc19sb2NrKiBwYXNfc2VncmVnYXRlZF92
aWV3X2dlCiAKIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVkKHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiAKLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3
X3Nob3VsZF90YWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7Ci0KLS8qIFRydWUgaWYgdGhpcyBpcyBhbiBl
eGNsdXNpdmUgdmlldyB0aGF0IGlzIGJpYXNlZC4gKi8KLVBBU19BUEkgYm9vbCBwYXNfc2VncmVn
YXRlZF92aWV3X2lzX2JpYXNlZF9leGNsdXNpdmUocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsK
LQotLyogTG9ja3MgdGhlIG93bmVyc2hpcCBsb2NrIGFuZCB0ZWxscyB5b3UgaWYgYW55IGxvY2sg
d2FzIHN1Y2Nlc3NmdWxseSBsb2NrZWQuICovCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19sb2NrX293bmVyc2hpcF9sb2NrKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7Ci1QQVNf
QVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlv
bmFsbHkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAorLyogTG9ja3MgdGhlIG93bmVyc2hpcCBs
b2NrLiAqLworUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBf
bG9jayhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOworUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdh
dGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KHBhc19zZWdyZWdhdGVk
X3ZpZXcgdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgbG9ja19ob2xkX21vZGUp
OwogLyogTG9ja3MgdGhlIG93bmVyc2hpcCBsb2NrIGFuZCB0ZWxscyB5b3UgaWYgdGhlIHZpZXcg
aXMgb3duZWQuIElmIGl0IGlzbid0IG93bmVkIGl0IGFsc28gdW5sb2NrcyBpdC4gKi8KIFBBU19B
UEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfaWZfb3duZWQo
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKQEAgLTI5OCwxMCArMjMwLDYgQEAgUEFTX0FQSSB2
b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfdW5sb2NrXwogLyogVGhpcyBpcyBvbmx5IHZhbGlkIHRv
IGNhbGwgb24gYSBwYXJ0aWFsIHZpZXcgdGhhdCB3YXMganVzdCBtYWRlIGluZWxpZ2libGUuICov
CiBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19wcmltb3JkaWFsX3BhcnRpYWwo
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIAotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVk
X3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSgKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSk7Ci0KIFBBU19BUEkgdm9pZCBwYXNfc2VncmVn
YXRlZF92aWV3X25vdGVfZW1wdGluZXNzKAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywK
ICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKQEAgLTMzNywxMCArMjY1LDggQEAgUEFT
X0FQSSBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkXwogICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7CiAKIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRl
ZF92aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7Ci1QQVNfQVBJIGJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9vcl9iaWFzZWQocGFzX3NlZ3JlZ2F0
ZWRfdmlldyB2aWV3KTsKIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3BheWxv
YWRfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIFBBU19BUEkgYm9vbCBwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7Ci1QQVNfQVBJ
IGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbXB0eV9vcl9iaWFzZWQocGFzX3NlZ3JlZ2F0
ZWRfdmlldyB2aWV3KTsKIAogUEFTX0VORF9FWFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxv
Y2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMiArMjcsMTAgQEAKICNkZWZp
bmUgUEFTX1NFR1JFR0FURURfVklFV19BTExPQ0FUT1JfSU5MSU5FU19ICiAKICNpbmNsdWRlICJw
YXNfZXBvY2guaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5o
IgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oIgotI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2Vf
aW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oIgotI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3ZpZXcuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC01Nyw3ICs1NSw3IEBA
IHBhc19zZWdyZWdhdGVkX3ZpZXdfd2lsbF9zdGFydF9hbGxvY2F0aW4KICAgICBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOwogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlldyogcGFydGlhbDsKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IGluZWxpZ2libGVfb3du
aW5nX3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXpl
X2RpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJl
Y3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9iYXNl
OwogICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlOwogICAgIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogc2hhcmVkX3BhZ2VfZGlyZWN0b3J5OwpA
QCAtNjcsMzI0ICs2NSwyNDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9j
YXRpbgogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUqIHNoYXJlZF9oYW5kbGU7CiAK
ICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKLSAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDogewotICAgICAgICBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXcqIGJpYXNpbmdfdmlldzsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5OwotCi0gICAgICAgIGJpYXNpbmdf
dmlldyA9IChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3B0cih2aWV3KTsKLQotICAgICAgICBleGNsdXNpdmUgPSBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZCgmYmlhc2luZ192aWV3LT5leGNsdXNp
dmUpOwotICAgICAgICBiaWFzaW5nX2RpcmVjdG9yeSA9Ci0gICAgICAgICAgICBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZiaWFzaW5n
X3ZpZXctPmRpcmVjdG9yeSk7Ci0KLSAgICAgICAgaWYgKCFleGNsdXNpdmUpIHsKLSAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7
Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHJlc3VsdGluZ192aWV3OwotICAgICAg
ICAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKLQotICAgICAgICAgICAgc2l6ZV9kaXJlY3Rvcnkg
PSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgKLSAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPnBhcmVudF9nbG9i
YWwpOwotCi0gICAgICAgICAgICByZXN1bHRpbmdfdmlldyA9Ci0gICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfZGly
ZWN0KHNpemVfZGlyZWN0b3J5KTsKLQotICAgICAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92
aWV3X2lzX2V4Y2x1c2l2ZShyZXN1bHRpbmdfdmlldykpIHsKLSAgICAgICAgICAgICAgICBQQVNf
QVNTRVJUKCFyZXN1bHRpbmdfdmlldyB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3BhcnRpYWwo
cmVzdWx0aW5nX3ZpZXcpKTsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAotICAgICAgICAgICAgICAgICAg
ICAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGJpYXNpbmdfdmlldy0+aW5kZXgpOwotICAgICAg
ICAgICAgICAgIHZpZXcgPSByZXN1bHRpbmdfdmlldzsKLSAgICAgICAgICAgICAgICBnb3RvIHBh
cnRpYWxfdmlld19jYXNlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBleGNsdXNpdmUg
PSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUocmVzdWx0aW5nX3ZpZXcpOwotCi0g
ICAgICAgICAgICBoZWxkX2xvY2sgPSBOVUxMOwotICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNo
KCZoZWxkX2xvY2ssICZleGNsdXNpdmUtPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9zdG9yZSgmYmlh
c2luZ192aWV3LT5leGNsdXNpdmUsIGV4Y2x1c2l2ZSk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJU
KCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19iaWFzZWQo
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kKSk7
Ci0gICAgICAgICAgICBleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kID0KLSAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNl
ZCgKLSAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCwgdHJ1ZSk7
Ci0gICAgICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAgICAgIHBhc19sb2coInZp
ZXcgJXAgaGFzIG93bmVyc2hpcCBraW5kID0gJXMgZHVlIHRvIGJpYXNpbmcgd2lsbF9zdGFydF9h
bGxvY2F0aW5nXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlw
X2tpbmRfZ2V0X3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUt
Pm93bmVyc2hpcF9raW5kKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQoZXhjbHVzaXZl
LT5vd25lcnNoaXBfa2luZCkpIHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdl
KiBwYWdlOwotCi0gICAgICAgICAgICAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9y
X2JvdW5kYXJ5KGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhw
YWdlLCAmaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAvKiBJZiB0aGlzIGV4Y2x1c2l2ZSBhbHJlYWR5IGhhZCBhIHBhZ2UsIHRoZW4gdGhlIHBh
Z2UgbXVzdCBiZSBzYXlpbmcgdGhhdCBpdCdzIGVsaWdpYmxlLiAqLwotICAgICAgICAgICAgICAg
IFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmUocGFnZS0+b3duZXIp
KTsKLQotICAgICAgICAgICAgICAgIHBhZ2UtPm93bmVyID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3X2FzX3ZpZXdfbm9uX251bGwoYmlhc2luZ192aWV3KTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotCi0gICAgICAg
ICAgICAvKiBUaGUgZXhjbHVzaXZlIGlzIGluZWxpZ2libGUgaW4gdGhlIHNpemUgZGlyZWN0b3J5
IG5vdywgc28gaXQncyBub3cgb3VycyB0byBkbyB3aXRoIGFzCi0gICAgICAgICAgICAgICB3ZSBw
bGVhc2UuICovCi0gICAgICAgIH0KLQotICAgICAgICBpbmVsaWdpYmxlX293bmluZ192aWV3ID0g
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX2luZWxpZ2libGVfdmlld19ub25fbnVsbChi
aWFzaW5nX3ZpZXcpOwotCi0gICAgICAgIGdvdG8gZXhjbHVzaXZlX3ZpZXdfY2FzZTsKLSAgICB9
CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOiB7CiAgICAgICAg
IGV4Y2x1c2l2ZSA9IChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyopcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfcHRyKHZpZXcpOwogICAgICAgICBpbmVsaWdpYmxlX293bmluZ192aWV3ID0g
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfYXNfaW5lbGlnaWJsZV92aWV3X25vbl9udWxs
KGV4Y2x1c2l2ZSk7CiAKLSAgICAgICAgZ290byBleGNsdXNpdmVfdmlld19jYXNlOwotICAgIH0K
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOiB7Ci0gICAgICAgIGdv
dG8gcGFydGlhbF92aWV3X2Nhc2U7Ci0gICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBBU19B
U1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0g
ICAgfQorICAgICAgICAvKiBUaGlzIGlzIGNhbGxlZCB3aXRoIHRoZSBwYWdlIGxvY2sgTk9UIGhl
bGQuICovCiAKLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBkcm9wIGRvd24gdG8gaGVyZS4i
KTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfa2luZChpbmVsaWdpYmxlX293bmluZ192aWV3KQorICAgICAgICAgICAgPT0g
cGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kKTsKKyAgICAKKyAg
ICAgICAgc2l6ZV9kaXJlY3RvcnkgPQorICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmZXhjbHVzaXZlLT5kaXJlY3Rvcnkp
OworICAgICAgICBzaXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOwor
ICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
aGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZyk7CiAKLWV4Y2x1c2l2ZV92aWV3X2Nhc2U6
Ci0gICAgLyogVGhpcyBpcyBjYWxsZWQgd2l0aCB0aGUgcGFnZSBsb2NrIE5PVCBoZWxkLiAqLwor
ICAgICAgICAvKiBDb29sIGZhY3Q6IHRoaXMgd29uJ3QgY2F1c2UgdGhlIHNpemUgZGlyZWN0b3J5
IHRvIGhhdmUgc2hhcmluZyBwYXlsb2FkcyB1bnRpbCB0aGF0CisgICAgICAgICAgIHNpemUgZGly
ZWN0b3J5IGFsbG9jYXRlcyBleGNsdXNpdmUgdmlld3MuICovCiAKLSAgICBQQVNfVEVTVElOR19B
U1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19pbmVsaWdpYmxlX2tpbmQoaW5lbGlnaWJsZV9v
d25pbmdfdmlldykpOwotICAgIAotICAgIHNpemVfZGlyZWN0b3J5ID0KLSAgICAgICAgcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
JmV4Y2x1c2l2ZS0+ZGlyZWN0b3J5KTsKLSAgICBzaXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVf
ZGlyZWN0b3J5LT5iYXNlOwotICAgIGhlYXBfbG9ja19ob2xkX21vZGUgPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKTsKLQotICAgIC8q
IENvb2wgZmFjdDogdGhpcyB3b24ndCBjYXVzZSB0aGUgc2l6ZSBkaXJlY3RvcnkgdG8gaGF2ZSBz
aGFyaW5nIHBheWxvYWRzIHVudGlsIHRoYXQKLSAgICAgICBzaXplIGRpcmVjdG9yeSBhbGxvY2F0
ZXMgZXhjbHVzaXZlIHZpZXdzLiAqLwotCi0gICAgLyogRXZlbiB0aG91Z2ggd2UgaG9sZCBubyBs
b2Nrcywgd2UgY2FuIHRvdGFsbHkgY2hlY2sgdGhpcyBiaXQuIFRoZSBlbGlnaWJsZSBiaXQgaXMg
YSBzZWNvbmRhcnkKLSAgICAgICBwcm90ZWN0aW9uIGhlcmUgc2luY2UgaXQgaXMgb25seSBsZWdh
bCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMgYml0IGlmIHlvdSd2ZSBzdG9sZW4KLSAgICAg
ICBlbGlnaWJpbGl0eSBhbmQgbG9ja2VkIHRoZSBwYWdlLiAqLwotICAgIGlmICghcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQoZXhjbHVzaXZlLT5v
d25lcnNoaXBfa2luZCkpIHsKLSAgICAgICAgYm9vbCB3YXNfc3RvbGVuOworICAgICAgICAvKiBF
dmVuIHRob3VnaCB3ZSBob2xkIG5vIGxvY2tzLCB3ZSBjYW4gdG90YWxseSBjaGVjayB0aGlzIGJp
dC4gVGhlIGVsaWdpYmxlIGJpdCBpcyBhIHNlY29uZGFyeQorICAgICAgICAgICBwcm90ZWN0aW9u
IGhlcmUgc2luY2UgaXQgaXMgb25seSBsZWdhbCB0byBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoaXMg
Yml0IGlmIHlvdSd2ZSBzdG9sZW4KKyAgICAgICAgICAgZWxpZ2liaWxpdHkgYW5kIGxvY2tlZCB0
aGUgcGFnZS4gKi8KKyAgICAgICAgaWYgKCFleGNsdXNpdmUtPmlzX293bmVkKSB7CisgICAgICAg
ICAgICBib29sIHdhc19zdG9sZW47CiAKLSAgICAgICAgd2FzX3N0b2xlbiA9IGZhbHNlOworICAg
ICAgICAgICAgd2FzX3N0b2xlbiA9IGZhbHNlOwogICAgICAgICAKLSAgICAgICAgaWYgKCFleGNs
dXNpdmUtPnBhZ2VfYm91bmRhcnkpIHsKLSAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAg
ICAgICAgICAgIHBhc19sb2coIk5vIHBhZ2UsIHRyeWluZyB0byBnZXQgb25lIHNvbWVob3cuXG4i
KTsKLSAgICAgICAgICAgIGlmICghZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5Ci0gICAgICAgICAg
ICAgICAgJiYgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Nhbl9kb19zaGFyaW5nKHNpemVfZGly
ZWN0b3J5X2Jhc2UpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAg
ICAgICAgICAgIHBhc19sb2coIlRyeWluZyBwaHlzaWNhbC5cbiIpOwotICAgICAgICAgICAgICAg
IHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2Zvcl9wYWdlX2NvbmZpZygKLSAg
ICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUsIHBhZ2VfY29uZmln
LmJhc2UucGFnZV9jb25maWdfcHRyLAotICAgICAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9s
ZF9tb2RlLCBOVUxMLCAwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAogICAgICAgICAg
ICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpIHsKICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiQWxsb2NhdGluZyBhIHBhZ2Uu
XG4iKTsKLSAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseSho
ZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91
bmRhcnkgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2VfYWxsb2NhdG9yKHNpemVfZGlyZWN0b3J5LT5o
ZWFwKTsKLSAgICAgICAgICAgICAgICBpZiAoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJDcmVhdGluZyBwYWdlIGhlYWRlciBmb3IgbmV3IGV4Y2x1c2l2ZSBwYWdlLCBi
b3VuZGFyeSA9ICVwLlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVz
aXZlLT5wYWdlX2JvdW5kYXJ5KTsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiTm8gcGFn
ZSwgdHJ5aW5nIHRvIGdldCBvbmUgc29tZWhvdy5cbiIpOworICAgICAgICAgICAgICAgIGlmICgh
ZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5CisgICAgICAgICAgICAgICAgICAgICYmIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9jYW5fZG9fc2hhcmluZyhzaXplX2RpcmVjdG9yeV9iYXNlKSkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19sb2coIlRyeWluZyBwaHlzaWNhbC5cbiIpOworICAgICAgICAgICAgICAgICAgICBwYXNf
cGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9mb3JfcGFnZV9jb25maWcoCisgICAgICAg
ICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSwgcGFnZV9jb25maWcu
YmFzZS5wYWdlX2NvbmZpZ19wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWFwX2xvY2tf
aG9sZF9tb2RlLCBOVUxMLCAwKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgICAgICBpZiAoIWV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSkgeworICAgICAgICAg
ICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2co
IkFsbG9jYXRpbmcgYSBwYWdlLlxuIik7CisgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2xv
Y2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICAgICAg
ICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vf
YWxsb2NhdG9yKHNpemVfZGlyZWN0b3J5LT5oZWFwKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJDcmVhdGlu
ZyBwYWdlIGhlYWRlciBmb3IgbmV3IGV4Y2x1c2l2ZSBwYWdlLCBib3VuZGFyeSA9ICVwLlxuIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3Vu
ZGFyeSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcigKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5jcmVhdGVfcGFnZV9oZWFkZXIoCi0gICAg
ICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksCi0gICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgICAgICAgICAgICAgcGFz
X2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9nKCJHb3QgcGFnZSA9ICVwLlxuIiwgZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KTsKICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29u
ZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiR290IHBhZ2UgPSAlcC5cbiIsIGV4
Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7Ci0gICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIGlmICghZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5KSB7Ci0gICAgICAgICAgICAg
ICAgLyogT3V0IG9mIG1lbW9yeS4gKi8KLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHN0YXRpYyBjb25zdCBz
aXplX3QgbWF4X251bV9sb2Nrc19oZWxkID0gMTsKLSAgICAgICAgICAgIHBhc19sb2NrKiBsb2Nr
c19oZWxkW21heF9udW1fbG9ja3NfaGVsZF07Ci0gICAgICAgICAgICBzaXplX3QgbnVtX2xvY2tz
X2hlbGQ7Ci0gICAgICAgICAgICBib29sIGRpZF9sb2NrX2xvY2s7CisgICAgICAgICAgICAgICAg
aWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpIHsKKyAgICAgICAgICAgICAgICAgICAgLyog
T3V0IG9mIG1lbW9yeS4gKi8KKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzdGF0
aWMgY29uc3Qgc2l6ZV90IG1heF9udW1fbG9ja3NfaGVsZCA9IDE7CisgICAgICAgICAgICAgICAg
cGFzX2xvY2sqIGxvY2tzX2hlbGRbbWF4X251bV9sb2Nrc19oZWxkXTsKKyAgICAgICAgICAgICAg
ICBzaXplX3QgbnVtX2xvY2tzX2hlbGQ7CisgICAgICAgICAgICAgICAgYm9vbCBkaWRfbG9ja19s
b2NrOwogICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBBdCB0aGlzIHBvaW50IG5vYm9keSBi
dXQgdXMgY2FuICppbml0aWF0ZSogYW55dGhpbmcgb24gdGhpcyBwYWdlLiBCdXQgaXQncwotICAg
ICAgICAgICAgICAgcG9zc2libGUgdGhhdCB3aG9ldmVyIGRlY29tbWl0dGVkIHRoaXMgcGFnZSBp
c24ndCBhY3R1YWxseSBkb25lIGRlY29tbWl0dGluZwotICAgICAgICAgICAgICAgeWV0LiBTbyB3
ZSBncmFiIHRoZSBjb21taXQgbG9jayBmb3IgdGhpcyBwYWdlIHRvIGVuc3VyZSB0aGF0IHdlIGFy
ZSB0aGUgb25lcwotICAgICAgICAgICAgICAgd2hvIGdldCB0byBkbyBpdC4gTm90ZSB0aGF0IGlm
IHRoZSBoZWFwIGxvY2sgaXMgaGVsZCB0aGVuIHdlIGhhdmUgdG8gZG8gdGhpcwotICAgICAgICAg
ICAgICAgdmlhIHRoZSBwaHlzaWNhbCBtZW1vcnkgdHJhbnNhY3Rpb24uIEFsc28gbm90ZSB0aGF0
IGl0J3MgdmVyeSB1bmxpa2VseSB0aGF0Ci0gICAgICAgICAgICAgICB0aGUgY29tbWl0IGxvY2sg
aXMgaGVsZCBoZXJlLCBzaW5jZSB3ZSB0cnkgdG8gb25seSBkZWNvbW1pdCBwYWdlcyB0aGF0IGFy
ZQotICAgICAgICAgICAgICAgdW5saWtlbHkgdG8gYmUgdXNlZCBhbnl0aW1lIHNvb24uICovCisg
ICAgICAgICAgICAgICAgLyogQXQgdGhpcyBwb2ludCBub2JvZHkgYnV0IHVzIGNhbiAqaW5pdGlh
dGUqIGFueXRoaW5nIG9uIHRoaXMgcGFnZS4gQnV0IGl0J3MKKyAgICAgICAgICAgICAgICAgICBw
b3NzaWJsZSB0aGF0IHdob2V2ZXIgZGVjb21taXR0ZWQgdGhpcyBwYWdlIGlzbid0IGFjdHVhbGx5
IGRvbmUgZGVjb21taXR0aW5nCisgICAgICAgICAgICAgICAgICAgeWV0LiBTbyB3ZSBncmFiIHRo
ZSBjb21taXQgbG9jayBmb3IgdGhpcyBwYWdlIHRvIGVuc3VyZSB0aGF0IHdlIGFyZSB0aGUgb25l
cworICAgICAgICAgICAgICAgICAgIHdobyBnZXQgdG8gZG8gaXQuIE5vdGUgdGhhdCBpZiB0aGUg
aGVhcCBsb2NrIGlzIGhlbGQgdGhlbiB3ZSBoYXZlIHRvIGRvIHRoaXMKKyAgICAgICAgICAgICAg
ICAgICB2aWEgdGhlIHBoeXNpY2FsIG1lbW9yeSB0cmFuc2FjdGlvbi4gQWxzbyBub3RlIHRoYXQg
aXQncyB2ZXJ5IHVubGlrZWx5IHRoYXQKKyAgICAgICAgICAgICAgICAgICB0aGUgY29tbWl0IGxv
Y2sgaXMgaGVsZCBoZXJlLCBzaW5jZSB3ZSB0cnkgdG8gb25seSBkZWNvbW1pdCBwYWdlcyB0aGF0
IGFyZQorICAgICAgICAgICAgICAgICAgIHVubGlrZWx5IHRvIGJlIHVzZWQgYW55dGltZSBzb29u
LiAqLwogICAgICAgICAgICAgCi0gICAgICAgICAgICBudW1fbG9ja3NfaGVsZCA9IDA7Ci0gICAg
ICAgICAgICBkaWRfbG9ja19sb2NrID0gZmFsc2U7CisgICAgICAgICAgICAgICAgbnVtX2xvY2tz
X2hlbGQgPSAwOworICAgICAgICAgICAgICAgIGRpZF9sb2NrX2xvY2sgPSBmYWxzZTsKIAotICAg
ICAgICAgICAgLyogVGhlIHV0aWxpdHkgaGVhcCBkb2VzIGFsbCBjb21taXQvZGVjb21taXQgdW5k
ZXIgdGhlIGhlYXAgbG9jaywgc28gd2UgZG9uJ3QgbmVlZCB0bwotICAgICAgICAgICAgICAgcGxh
eSBhbnkgZ2FtZXMgd2l0aCB0aGUgY29tbWl0IGxvY2suICAqLwotICAgICAgICAgICAgaWYgKHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKQotICAgICAg
ICAgICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKLSAgICAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoaGVhcF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNf
bG9ja19pc19ub3RfaGVsZCk7Ci0gICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmZXhjbHVz
aXZlLT5jb21taXRfbG9jayk7Ci0gICAgICAgICAgICAgICAgbG9ja3NfaGVsZFtudW1fbG9ja3Nf
aGVsZCsrXSA9ICZleGNsdXNpdmUtPmNvbW1pdF9sb2NrOwotICAgICAgICAgICAgICAgIGRpZF9s
b2NrX2xvY2sgPSB0cnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcGFzX2NvbXBpbGVy
X2ZlbmNlKCk7CisgICAgICAgICAgICAgICAgLyogVGhlIHV0aWxpdHkgaGVhcCBkb2VzIGFsbCBj
b21taXQvZGVjb21taXQgdW5kZXIgdGhlIGhlYXAgbG9jaywgc28gd2UgZG9uJ3QgbmVlZCB0bwor
ICAgICAgICAgICAgICAgICAgIHBsYXkgYW55IGdhbWVzIHdpdGggdGhlIGNvbW1pdCBsb2NrLiAg
Ki8KKyAgICAgICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRp
bGl0eShwYWdlX2NvbmZpZykpCisgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfYXNz
ZXJ0X2hlbGQoKTsKKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
UEFTX0FTU0VSVChoZWFwX2xvY2tfaG9sZF9tb2RlID09IHBhc19sb2NrX2lzX25vdF9oZWxkKTsK
KyAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmZXhjbHVzaXZlLT5jb21taXRfbG9j
ayk7CisgICAgICAgICAgICAgICAgICAgIGxvY2tzX2hlbGRbbnVtX2xvY2tzX2hlbGQrK10gPSAm
ZXhjbHVzaXZlLT5jb21taXRfbG9jazsKKyAgICAgICAgICAgICAgICAgICAgZGlkX2xvY2tfbG9j
ayA9IHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBhc19jb21waWxl
cl9mZW5jZSgpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBQQVNfQVNTRVJUKG51bV9sb2Nr
c19oZWxkIDw9IG1heF9udW1fbG9ja3NfaGVsZCk7CisgICAgICAgICAgICAgICAgUEFTX0FTU0VS
VChudW1fbG9ja3NfaGVsZCA8PSBtYXhfbnVtX2xvY2tzX2hlbGQpOwogCi0gICAgICAgICAgICBp
ZiAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Nhbl9kb19zaGFyaW5nKHNpemVfZGlyZWN0b3J5
X2Jhc2UpKSB7Ci0gICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29s
X3Rha2VfZm9yX3BhZ2VfY29uZmlnKAotICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5i
YXNlLnBhZ2Vfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdl
X2NvbmZpZ19wdHIsCi0gICAgICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUsCi0g
ICAgICAgICAgICAgICAgICAgIGxvY2tzX2hlbGQsCi0gICAgICAgICAgICAgICAgICAgIG51bV9s
b2Nrc19oZWxkKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAocGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2Nhbl9kb19zaGFyaW5nKHNpemVfZGlyZWN0b3J5X2Jhc2UpKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2Zv
cl9wYWdlX2NvbmZpZygKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2Uu
cGFnZV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdl
X2NvbmZpZ19wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2Rl
LAorICAgICAgICAgICAgICAgICAgICAgICAgbG9ja3NfaGVsZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG51bV9sb2Nrc19oZWxkKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19jb21taXQoZXhjbHVzaXZlLT5wYWdlX2JvdW5k
YXJ5LCBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7Ci0gICAgICAgICAgICBpZiAodmVyYm9z
ZSkgewotICAgICAgICAgICAgICAgIHBhc19sb2coIkNyZWF0aW5nIHBhZ2UgaGVhZGVyIHdoZW4g
Y29tbWl0dGluZyBleGNsdXNpdmUgcGFnZSwgdmlldyA9ICVwLCAiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAiYm91bmRhcnkgPSAlcC5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNs
dXNpdmUsIGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcigKLSAgICAgICAgICAgICAg
ICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksCi0gICAgICAgICAgICAgICAgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7CisgICAgICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdChleGNsdXNp
dmUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJDcmVh
dGluZyBwYWdlIGhlYWRlciB3aGVuIGNvbW1pdHRpbmcgZXhjbHVzaXZlIHBhZ2UsIHZpZXcgPSAl
cCwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJib3VuZGFyeSA9ICVwLlxuIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUsIGV4Y2x1c2l2ZS0+cGFnZV9ib3Vu
ZGFyeSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJh
c2UuY3JlYXRlX3BhZ2VfaGVhZGVyKAorICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBh
Z2VfYm91bmRhcnksCisgICAgICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOwog
ICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICAgICAg
ICAgIGlmIChkaWRfbG9ja19sb2NrKQotICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygm
ZXhjbHVzaXZlLT5jb21taXRfbG9jayk7Ci0KLSAgICAgICAgICAgIGlmIChQQVNfREVCVUdfU1BF
Q1RSVU1fVVNFX0ZPUl9DT01NSVQpIHsKLSAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xv
Y2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAgICAgICAgICAgICBw
YXNfZGVidWdfc3BlY3RydW1fYWRkKAotICAgICAgICAgICAgICAgICAgICBzaXplX2RpcmVjdG9y
eSwgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVt
LAotICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7Ci0gICAg
ICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tf
aG9sZF9tb2RlKTsKKyAgICAgICAgICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKyAgICAg
ICAgICAgICAgICBpZiAoZGlkX2xvY2tfbG9jaykKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xv
Y2tfdW5sb2NrKCZleGNsdXNpdmUtPmNvbW1pdF9sb2NrKTsKKworICAgICAgICAgICAgICAgIGlm
IChQQVNfREVCVUdfU1BFQ1RSVU1fVVNFX0ZPUl9DT01NSVQpIHsKKyAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CisgICAgICAgICAgICAgICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoCisgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX2RpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZHVtcF9mb3Jfc3BlY3RydW0sCisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZp
Zy5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5s
b2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQotICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbnN0cnVjdCgKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9y
X2JvdW5kYXJ5X3VuY2hlY2tlZChleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmln
KSwKLSAgICAgICAgICAgIGluZWxpZ2libGVfb3duaW5nX3ZpZXcsCi0gICAgICAgICAgICB3YXNf
c3RvbGVuLAotICAgICAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKilwYWdlX2Nv
bmZpZy5iYXNlLnBhZ2VfY29uZmlnX3B0cik7Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9ja19jb25k
aXRpb25hbGx5KCZleGNsdXNpdmUtPm93bmVyc2hpcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKLSAgICAgICAgZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCA9Ci0gICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX293bmVkKGV4Y2x1
c2l2ZS0+b3duZXJzaGlwX2tpbmQsIHRydWUpOwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAg
ICAgICAgICAgcGFzX2xvZygidmlldyAlcCBoYXMgb3duZXJzaGlwIGtpbmQgPSAlcyBkdWUgdG8g
ZXhjbHVzaXZlIHdpbGxfc3RhcnRfYWxsb2NhdGluZ1xuIiwKLSAgICAgICAgICAgICAgICAgICAg
ZXhjbHVzaXZlLAotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19vd25lcnNoaXBfa2luZF9nZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAg
ZXhjbHVzaXZlLT5vd25lcnNoaXBfa2luZCkpOwotICAgICAgICB9Ci0gICAgICAgIHBhc19sb2Nr
X3VubG9ja19jb25kaXRpb25hbGx5KCZleGNsdXNpdmUtPm93bmVyc2hpcF9sb2NrLCBoZWFwX2xv
Y2tfaG9sZF9tb2RlKTsKLSAgICB9CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bnN0cnVjdCgKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFy
eV91bmNoZWNrZWQoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyksCisgICAg
ICAgICAgICAgICAgaW5lbGlnaWJsZV9vd25pbmdfdmlldywKKyAgICAgICAgICAgICAgICB3YXNf
c3RvbGVuLAorICAgICAgICAgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyopcGFn
ZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIpOwogCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJU
KGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7CisgICAgICAgICAgICBwYXNfbG9ja19sb2NrX2Nv
bmRpdGlvbmFsbHkoJmV4Y2x1c2l2ZS0+b3duZXJzaGlwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21v
ZGUpOworICAgICAgICAgICAgZXhjbHVzaXZlLT5pc19vd25lZCA9IHRydWU7CisgICAgICAgICAg
ICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIGlz
IG93bmVkID0gdHJ1ZSBkdWUgdG8gZXhjbHVzaXZlIHdpbGxfc3RhcnRfYWxsb2NhdGluZ1xuIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgmZXhjbHVzaXZlLT5vd25lcnNo
aXBfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgIH0KIAotICAgIHJldHVybiB2
aWV3OworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5
KTsKIAotcGFydGlhbF92aWV3X2Nhc2U6Ci0gICAgcGFydGlhbCA9IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3BhcnRpYWwodmlldyk7Ci0gICAgCi0gICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgm
cGFydGlhbC0+ZGlyZWN0b3J5KTsKLSAgICBzaXplX2RpcmVjdG9yeV9iYXNlID0gJnNpemVfZGly
ZWN0b3J5LT5iYXNlOwotICAgIGhlYXAgPSBzaXplX2RpcmVjdG9yeS0+aGVhcDsKLSAgICBzaGFy
ZWRfcGFnZV9kaXJlY3RvcnkgPSBwYWdlX2NvbmZpZy5zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2Vs
ZWN0b3IoaGVhcCwgc2l6ZV9kaXJlY3RvcnkpOwotICAgIHNoYXJlZF9wYWdlX2RpcmVjdG9yeV9i
YXNlID0gJnNoYXJlZF9wYWdlX2RpcmVjdG9yeS0+YmFzZTsKLSAgICBoZWFwX2xvY2tfaG9sZF9t
b2RlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdl
X2NvbmZpZyk7Ci0KLSAgICBzaGFyZWRfdmlldyA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hh
cmVkX3ZpZXdfcHRyX2xvYWQoJnBhcnRpYWwtPnNoYXJlZF92aWV3KTsKLSAgICBpZiAoIXNoYXJl
ZF92aWV3KSB7Ci0gICAgICAgIC8qIFdlIGhhdmUgYSBwcmltb3JkaWFsIHBhcnRpYWwgdmlldyEg
TGV0IHRoZSBsb2NhbCBhbGxvY2F0b3Igd29ycnkgYWJvdXQgaXQuIFRoZXJlJ3MKLSAgICAgICAg
ICAgbm90aGluZyB3ZSBjYW4gZG8gc2luY2Ugd2UgZG9uJ3QgcmVhbGx5IGhhdmUgZW5vdWdoIGlu
Zm9ybWF0aW9uLiBUaGlzIHBhdGggaGFzIHRvIGRvCi0gICAgICAgICAgIHRoaXMgY2FyZWZ1bCBk
YW5jZSB3aGVyZSBpdCBhdG9taWNhbGx5IHBpY2tzIGEgc2hhcmVkIHZpZXcgYW5kIGFsbG9jYXRl
cyBzb21ldGhpbmcKLSAgICAgICAgICAgZnJvbSBpdCwgYW5kIHRoZW4gdGhhdCBzb21ldGhpbmcg
aGFzIHRvIGJlIGltbWVkaWF0ZWx5IHNob3ZlZCBpbnRvIHRoZSBsb2NhbAotICAgICAgICAgICBh
bGxvY2F0b3IuICovCiAgICAgICAgIHJldHVybiB2aWV3OwogICAgIH0KKyAgICAgICAgCisgICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDogeworICAgICAgICBwYXJ0aWFs
ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KTsKKyAgICAKKyAgICAgICAg
c2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFsLT5kaXJlY3RvcnkpOworICAgICAgICBzaXplX2RpcmVj
dG9yeV9iYXNlID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOworICAgICAgICBoZWFwID0gc2l6ZV9k
aXJlY3RvcnktPmhlYXA7CisgICAgICAgIHNoYXJlZF9wYWdlX2RpcmVjdG9yeSA9IHBhZ2VfY29u
ZmlnLnNoYXJlZF9wYWdlX2RpcmVjdG9yeV9zZWxlY3RvcihoZWFwLCBzaXplX2RpcmVjdG9yeSk7
CisgICAgICAgIHNoYXJlZF9wYWdlX2RpcmVjdG9yeV9iYXNlID0gJnNoYXJlZF9wYWdlX2RpcmVj
dG9yeS0+YmFzZTsKKyAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpOwogCi0gICAgcGFz
X2xvY2tfbG9ja19jb25kaXRpb25hbGx5KCZzaGFyZWRfdmlldy0+Y29tbWl0X2xvY2ssIGhlYXBf
bG9ja19ob2xkX21vZGUpOworICAgICAgICBzaGFyZWRfdmlldyA9IHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX2xvYWQoJnBhcnRpYWwtPnNoYXJlZF92aWV3KTsKKyAgICAg
ICAgaWYgKCFzaGFyZWRfdmlldykgeworICAgICAgICAgICAgLyogV2UgaGF2ZSBhIHByaW1vcmRp
YWwgcGFydGlhbCB2aWV3ISBMZXQgdGhlIGxvY2FsIGFsbG9jYXRvciB3b3JyeSBhYm91dCBpdC4g
VGhlcmUncworICAgICAgICAgICAgICAgbm90aGluZyB3ZSBjYW4gZG8gc2luY2Ugd2UgZG9uJ3Qg
cmVhbGx5IGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uLiBUaGlzIHBhdGggaGFzIHRvIGRvCisgICAg
ICAgICAgICAgICB0aGlzIGNhcmVmdWwgZGFuY2Ugd2hlcmUgaXQgYXRvbWljYWxseSBwaWNrcyBh
IHNoYXJlZCB2aWV3IGFuZCBhbGxvY2F0ZXMgc29tZXRoaW5nCisgICAgICAgICAgICAgICBmcm9t
IGl0LCBhbmQgdGhlbiB0aGF0IHNvbWV0aGluZyBoYXMgdG8gYmUgaW1tZWRpYXRlbHkgc2hvdmVk
IGludG8gdGhlIGxvY2FsCisgICAgICAgICAgICAgICBhbGxvY2F0b3IuICovCisgICAgICAgICAg
ICByZXR1cm4gdmlldzsKKyAgICAgICAgfQogCi0gICAgc2hhcmVkX2hhbmRsZSA9IHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3X2NvbW1pdF9wYWdlX2lmX25lY2Vzc2FyeSgKLSAgICAgICAgc2hh
cmVkX3ZpZXcsIGhlYXAsIHNoYXJlZF9wYWdlX2RpcmVjdG9yeSwgcGFydGlhbCwgcGFnZV9jb25m
aWcpOworICAgICAgICBwYXNfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoJnNoYXJlZF92aWV3LT5j
b21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKLSAgICBpZiAoIXNoYXJlZF9oYW5k
bGUpIHsKLSAgICAgICAgLyogVGhpcyBtZWFucyBPT00gKi8KLSAgICAgICAgcGFzX2xvY2tfdW5s
b2NrX2NvbmRpdGlvbmFsbHkoJnNoYXJlZF92aWV3LT5jb21taXRfbG9jaywgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KKyAgICAgICAgc2hhcmVkX2hh
bmRsZSA9IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NvbW1pdF9wYWdlX2lmX25lY2Vzc2Fy
eSgKKyAgICAgICAgICAgIHNoYXJlZF92aWV3LCBoZWFwLCBzaGFyZWRfcGFnZV9kaXJlY3Rvcnks
IHBhcnRpYWwsIHBhZ2VfY29uZmlnKTsKKworICAgICAgICBpZiAoIXNoYXJlZF9oYW5kbGUpIHsK
KyAgICAgICAgICAgIC8qIFRoaXMgbWVhbnMgT09NICovCisgICAgICAgICAgICBwYXNfbG9ja191
bmxvY2tfY29uZGl0aW9uYWxseSgmc2hhcmVkX3ZpZXctPmNvbW1pdF9sb2NrLCBoZWFwX2xvY2tf
aG9sZF9tb2RlKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CiAKLSAgICBp
ZiAoIXBhcnRpYWwtPmlzX2F0dGFjaGVkX3RvX3NoYXJlZF9oYW5kbGUpIHsKLSAgICAgICAgdW5z
aWduZWQqIGZ1bGxfYWxsb2NfYml0czsKLSAgICAgICAgdW5zaWduZWQgYmVnaW5fd29yZF9pbmRl
eDsKLSAgICAgICAgdW5zaWduZWQgZW5kX3dvcmRfaW5kZXg7Ci0gICAgICAgIHVuc2lnbmVkIHdv
cmRfaW5kZXg7Ci0gICAgICAgIAotICAgICAgICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfY29tcGFj
dF90YWdnZWRfdW5zaWduZWRfcHRyX2xvYWRfbm9uX251bGwoJnBhcnRpYWwtPmFsbG9jX2JpdHMp
OwotICAgICAgICAKLSAgICAgICAgYmVnaW5fd29yZF9pbmRleCA9IHBhcnRpYWwtPmFsbG9jX2Jp
dHNfb2Zmc2V0OwotICAgICAgICBlbmRfd29yZF9pbmRleCA9IGJlZ2luX3dvcmRfaW5kZXggKyBw
YXJ0aWFsLT5hbGxvY19iaXRzX3NpemU7Ci0gICAgICAgIAotICAgICAgICBpZiAocGFnZV9jb25m
aWcuc2hhcmluZ19zaGlmdCA9PSBQQVNfQklUVkVDVE9SX1dPUkRfU0hJRlQpIHsKLSAgICAgICAg
ICAgIGZvciAod29yZF9pbmRleCA9IGJlZ2luX3dvcmRfaW5kZXg7IHdvcmRfaW5kZXggPCBlbmRf
d29yZF9pbmRleDsgKyt3b3JkX2luZGV4KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZ1bGxfYWxs
b2NfYml0c1t3b3JkX2luZGV4XSkgewotICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCFw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfcHRyX2xvYWQoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9oYW5kbGUtPnBhcnRpYWxfdmll
d3MgKyB3b3JkX2luZGV4KSk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHJfc3RvcmUoCi0gICAgICAgICAgICAgICAgICAg
ICAgICBzaGFyZWRfaGFuZGxlLT5wYXJ0aWFsX3ZpZXdzICsgd29yZF9pbmRleCwgcGFydGlhbCk7
CisgICAgICAgIGlmICghcGFydGlhbC0+aXNfYXR0YWNoZWRfdG9fc2hhcmVkX2hhbmRsZSkgewor
ICAgICAgICAgICAgdW5zaWduZWQqIGZ1bGxfYWxsb2NfYml0czsKKyAgICAgICAgICAgIHVuc2ln
bmVkIGJlZ2luX3dvcmRfaW5kZXg7CisgICAgICAgICAgICB1bnNpZ25lZCBlbmRfd29yZF9pbmRl
eDsKKyAgICAgICAgICAgIHVuc2lnbmVkIHdvcmRfaW5kZXg7CisgICAgICAgIAorICAgICAgICAg
ICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9sb2Fk
X25vbl9udWxsKCZwYXJ0aWFsLT5hbGxvY19iaXRzKTsKKyAgICAgICAgCisgICAgICAgICAgICBi
ZWdpbl93b3JkX2luZGV4ID0gcGFydGlhbC0+YWxsb2NfYml0c19vZmZzZXQ7CisgICAgICAgICAg
ICBlbmRfd29yZF9pbmRleCA9IGJlZ2luX3dvcmRfaW5kZXggKyBwYXJ0aWFsLT5hbGxvY19iaXRz
X3NpemU7CisgICAgICAgIAorICAgICAgICAgICAgaWYgKHBhZ2VfY29uZmlnLnNoYXJpbmdfc2hp
ZnQgPT0gUEFTX0JJVFZFQ1RPUl9XT1JEX1NISUZUKSB7CisgICAgICAgICAgICAgICAgZm9yICh3
b3JkX2luZGV4ID0gYmVnaW5fd29yZF9pbmRleDsgd29yZF9pbmRleCA8IGVuZF93b3JkX2luZGV4
OyArK3dvcmRfaW5kZXgpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZ1bGxfYWxsb2NfYml0
c1t3b3JkX2luZGV4XSkgeworICAgICAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3B0cl9sb2FkKAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX2hhbmRsZS0+cGFydGlhbF92
aWV3cyArIHdvcmRfaW5kZXgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHJfc3RvcmUoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2hhcmVkX2hhbmRsZS0+cGFydGlhbF92aWV3cyArIHdvcmRfaW5kZXgs
IHBhcnRpYWwpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZm9yICh3b3JkX2luZGV4
ID0gYmVnaW5fd29yZF9pbmRleDsgd29yZF9pbmRleCA8IGVuZF93b3JkX2luZGV4OyArK3dvcmRf
aW5kZXgpIHsKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCBmdWxsX2FsbG9jX3dvcmQ7CisgICAg
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGZvciAod29yZF9pbmRleCA9IGJlZ2lu
X3dvcmRfaW5kZXg7IHdvcmRfaW5kZXggPCBlbmRfd29yZF9pbmRleDsgKyt3b3JkX2luZGV4KSB7
CisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGZ1bGxfYWxsb2Nfd29yZDsKICAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICBmdWxsX2FsbG9jX3dvcmQgPSBmdWxsX2FsbG9jX2Jp
dHNbd29yZF9pbmRleF07Ci0gICAgICAgICAgICAgICAgaWYgKCFmdWxsX2FsbG9jX3dvcmQpCi0g
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBmdWxsX2Fs
bG9jX3dvcmQgPSBmdWxsX2FsbG9jX2JpdHNbd29yZF9pbmRleF07CisgICAgICAgICAgICAgICAg
ICAgIGlmICghZnVsbF9hbGxvY193b3JkKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3X3RlbGxfc2hhcmVkX2hhbmRsZV9mb3Jfd29yZF9nZW5lcmFsX2Nhc2UoCi0gICAg
ICAgICAgICAgICAgICAgIHBhcnRpYWwsIHNoYXJlZF9oYW5kbGUsIHdvcmRfaW5kZXgsIGZ1bGxf
YWxsb2Nfd29yZCwgcGFnZV9jb25maWcuc2hhcmluZ19zaGlmdCk7CisgICAgICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld190ZWxsX3NoYXJlZF9oYW5kbGVfZm9yX3dv
cmRfZ2VuZXJhbF9jYXNlKAorICAgICAgICAgICAgICAgICAgICAgICAgcGFydGlhbCwgc2hhcmVk
X2hhbmRsZSwgd29yZF9pbmRleCwgZnVsbF9hbGxvY193b3JkLCBwYWdlX2NvbmZpZy5zaGFyaW5n
X3NoaWZ0KTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIHBhc19sb2NrX2xvY2soJnNoYXJlZF92aWV3LT5vd25lcnNoaXBfbG9j
ayk7Ci0gICAgICAgIHBhcnRpYWwtPmlzX2F0dGFjaGVkX3RvX3NoYXJlZF9oYW5kbGUgPSB0cnVl
OwotICAgICAgICBwYXNfbG9ja191bmxvY2soJnNoYXJlZF92aWV3LT5vd25lcnNoaXBfbG9jayk7
Ci0gICAgfQorICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmc2hhcmVkX3ZpZXctPm93bmVyc2hp
cF9sb2NrKTsKKyAgICAgICAgICAgIHBhcnRpYWwtPmlzX2F0dGFjaGVkX3RvX3NoYXJlZF9oYW5k
bGUgPSB0cnVlOworICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZzaGFyZWRfdmlldy0+b3du
ZXJzaGlwX2xvY2spOworICAgICAgICB9CiAKLSAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdl
X3NpemUgPiBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkgewotICAgICAgICAvKiBXZSBh
bHdheXMgbWFuYWdlIHBhcnRpYWwgY29tbWl0IG9mIG1lZGl1bSBwYWdlcyB1bmRlciB0aGUgY29t
bWl0IGxvY2suIE90aGVyd2lzZSwKLSAgICAgICAgICAgbXVsdGlwbGUgcnVucyBvZiB0aGlzIGZ1
bmN0aW9uIGNvdWxkIGludGVybGVhdmUgaW4gd2VpcmQgd2F5cy4gKi8KLSAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZSogcGFnZTsKLSAgICAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKLQotICAg
ICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkoc2hhcmVkX2hhbmRs
ZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpOwotICAgICAgICBoZWxkX2xvY2sgPSBOVUxM
OwotICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhwYWdl
LCAmaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29tbWl0X2Z1bGx5KAotICAgICAgICAgICAgcGFnZSwgJmhlbGRfbG9jaywgcGFzX2NvbW1pdF9m
dWxseV9ob2xkaW5nX3BhZ2VfYW5kX2NvbW1pdF9sb2Nrcyk7Ci0gICAgICAgIHBhc19sb2NrX3N3
aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICB9CisgICAgICAgIGlmIChwYWdlX2NvbmZpZy5i
YXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplKSB7CisgICAgICAg
ICAgICAvKiBXZSBhbHdheXMgbWFuYWdlIHBhcnRpYWwgY29tbWl0IG9mIG1lZGl1bSBwYWdlcyB1
bmRlciB0aGUgY29tbWl0IGxvY2suIE90aGVyd2lzZSwKKyAgICAgICAgICAgICAgIG11bHRpcGxl
IHJ1bnMgb2YgdGhpcyBmdW5jdGlvbiBjb3VsZCBpbnRlcmxlYXZlIGluIHdlaXJkIHdheXMuICov
CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlOworICAgICAgICAgICAgcGFz
X2xvY2sqIGhlbGRfbG9jazsKKworICAgICAgICAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZm9yX2JvdW5kYXJ5KHNoYXJlZF9oYW5kbGUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmln
KTsKKyAgICAgICAgICAgIGhlbGRfbG9jayA9IE5VTEw7CisgICAgICAgIAorICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9jayhwYWdlLCAmaGVsZF9sb2NrLCBwYWdlX2Nv
bmZpZyk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbW1pdF9mdWxseSgKKyAg
ICAgICAgICAgICAgICBwYWdlLCAmaGVsZF9sb2NrLCBwYXNfY29tbWl0X2Z1bGx5X2hvbGRpbmdf
cGFnZV9hbmRfY29tbWl0X2xvY2tzKTsKKyAgICAgICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVs
ZF9sb2NrLCBOVUxMKTsKKyAgICAgICAgfQogCi0gICAgLyogQXQgdGhpcyBwb2ludCB0aGUgc2hh
cmVkIGhhbmRsZSBrbm93cyBhYm91dCB0aGlzIHBhcnRpYWwgdmlldyBhbmQgdGhpcyBwYXJ0aWFs
IHZpZXcKLSAgICAgICBpcyBpbmVsaWdpYmxlLiBUaGlzIGFjdHMgYXMgYSBob2xkIG9uIHRoZSBz
aGFyZWQgdmlldzogZXZlbiBpZiB3ZSByZWxlYXNlIHRoZSBjb21taXQKLSAgICAgICBsb2NrLCB0
aGF0IHNoYXJlZCB2aWV3IGNhbm5vdCBiZSBkZWNvbW1pdHRlZCwgZXZlbiB0aG91Z2ggaXQgbWF5
IGJlIGVtcHR5LiAqLworICAgICAgICAvKiBBdCB0aGlzIHBvaW50IHRoZSBzaGFyZWQgaGFuZGxl
IGtub3dzIGFib3V0IHRoaXMgcGFydGlhbCB2aWV3IGFuZCB0aGlzIHBhcnRpYWwgdmlldworICAg
ICAgICAgICBpcyBpbmVsaWdpYmxlLiBUaGlzIGFjdHMgYXMgYSBob2xkIG9uIHRoZSBzaGFyZWQg
dmlldzogZXZlbiBpZiB3ZSByZWxlYXNlIHRoZSBjb21taXQKKyAgICAgICAgICAgbG9jaywgdGhh
dCBzaGFyZWQgdmlldyBjYW5ub3QgYmUgZGVjb21taXR0ZWQsIGV2ZW4gdGhvdWdoIGl0IG1heSBi
ZSBlbXB0eS4gKi8KIAotICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZzaGFyZWRf
dmlldy0+Y29tbWl0X2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICBwYXNfbG9j
a191bmxvY2tfY29uZGl0aW9uYWxseSgmc2hhcmVkX3ZpZXctPmNvbW1pdF9sb2NrLCBoZWFwX2xv
Y2tfaG9sZF9tb2RlKTsKIAotICAgIHJldHVybiB2aWV3OworICAgICAgICByZXR1cm4gdmlldzsK
KyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUg
cmVhY2hlZCIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiB9CiAKIHN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkCkBAIC0zOTQsMTMgKzMxNSw4IEBAIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZGlkX3N0b3BfYWxsb2NhdGluZygKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3Nl
ID0gZmFsc2U7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZl
OwotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogb3duaW5nX2RpcmVjdG9yeTsKLSAgICB1
bnNpZ25lZCBpbmRleF9pbl9vd25pbmc7CiAgICAgYm9vbCBzaG91bGRfbm90aWZ5X2VsaWdpYmls
aXR5OwogICAgIGJvb2wgc2hvdWxkX25vdGlmeV9lbXB0aW5lc3M7Ci0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgdmlld19pbmRleDsKIAogICAg
IGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJEaWQgc3RvcCBhbGxvY2F0aW5nIGluIHZp
ZXcgJXAsIHBhZ2UgJXAuXG4iLCB2aWV3LCBwYWdlKTsKQEAgLTQwOCwzMSArMzI0LDM0IEBAIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZygKICAgICBzd2l0Y2ggKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxl
X2V4Y2x1c2l2ZV92aWV3X2tpbmQ6IHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXcqIGV4Y2x1c2l2ZTsKKyAgICAgICAgCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAg
ICAgICAgcGFzX2xvZygiSXQncyBleGNsdXNpdmUuXG4iKTsKICAgICAgICAgZXhjbHVzaXZlID0g
KHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9w
dHIodmlldyk7Ci0gICAgICAgIG93bmluZ19kaXJlY3RvcnkgPQotICAgICAgICAgICAgJnBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KCZleGNsdXNpdmUtPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgICAgIGluZGV4X2luX293bmluZyA9
IGV4Y2x1c2l2ZS0+aW5kZXg7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5l
bGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDogewotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcqIGJpYXNpbmc7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFz
X2xvZygiSXQncyBiaWFzaW5nLlxuIik7Ci0gICAgICAgIGJpYXNpbmcgPSAocGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ192aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7Ci0gICAg
ICAgIGV4Y2x1c2l2ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X3B0cl9sb2FkX25vbl9udWxsKCZiaWFzaW5nLT5leGNsdXNpdmUpOwotICAgICAgICBvd25p
bmdfZGlyZWN0b3J5ID0KLSAgICAgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZiaWFzaW5nLT5kaXJlY3RvcnkpLT5iYXNl
OwotICAgICAgICBpbmRleF9pbl9vd25pbmcgPSBiaWFzaW5nLT5pbmRleDsKLSAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgc2hvdWxkX25vdGlmeV9lbGlnaWJpbGl0eSA9IGZhbHNlOworICAgICAg
ICAKKyAgICAgICAgaWYgKHBhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9k
ZWZlcnJlZCkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFz
X2xvZygiRWxpZ2liaWxpdHkgbm90aWZpY2F0aW9uIGhhcyBiZWVuIGRlZmVycmVkLlxuIik7Cisg
ICAgICAgICAgICBwYWdlLT5lbGlnaWJpbGl0eV9ub3RpZmljYXRpb25faGFzX2JlZW5fZGVmZXJy
ZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIHNob3VsZF9ub3RpZnlfZWxpZ2liaWxpdHkgPSB0cnVl
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICAgICAgcGFzX2xvZygiTm8gZGVmZXJyZWQgZWxpZ2liaWxpdHkgbm90aWZpY2F0aW9uLlxuIik7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcoCisgICAgICAgICAgICBleGNsdXNpdmUsIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJmV4Y2x1c2l2
ZS0+ZGlyZWN0b3J5KSwKKyAgICAgICAgICAgIHBhZ2UsIHBhZ2VfY29uZmlnLCBzaG91bGRfbm90
aWZ5X2VsaWdpYmlsaXR5KTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOiB7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlldyogcGFydGlhbF92aWV3OwogICAgICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
dmlldyogc2hhcmVkX3ZpZXc7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUq
IHNoYXJlZF9oYW5kbGU7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogc2l6ZV9kaXJlY3Rvcnk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBzaXplX2RpcmVjdG9yeTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBz
aXplX2RpcmVjdG9yeV9iYXNlOwogICAgICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9k
aXJlY3RvcnkqIHNoYXJlZF9wYWdlX2RpcmVjdG9yeTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5KiBzaGFyZWRfcGFnZV9kaXJlY3RvcnlfYmFzZTsKQEAgLTQ0NSw3ICszNjQsNyBA
QCBwYXNfc2VncmVnYXRlZF92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcoCiAgICAgICAgIAogICAg
ICAgICBzaGFyZWRfdmlldyA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRy
X2xvYWRfbm9uX251bGwoJnBhcnRpYWxfdmlldy0+c2hhcmVkX3ZpZXcpOwogICAgICAgICBzaXpl
X2RpcmVjdG9yeSA9Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmcGFydGlhbF92aWV3LT5kaXJlY3Rvcnkp
OworICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgmcGFydGlhbF92aWV3LT5kaXJlY3RvcnkpOwogICAgICAgICBzaXplX2Rp
cmVjdG9yeV9iYXNlID0gJnNpemVfZGlyZWN0b3J5LT5iYXNlOwogICAgICAgICBzaGFyZWRfaGFu
ZGxlID0gcGFzX3Vud3JhcF9zaGFyZWRfaGFuZGxlKHNoYXJlZF92aWV3LT5zaGFyZWRfaGFuZGxl
X29yX3BhZ2VfYm91bmRhcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFnZV9jb25maWcpOwpAQCAtNTEyLDU0ICs0MzEsNiBAQCBwYXNfc2VncmVn
YXRlZF92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcoCiAgICAgICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIGRpcmVj
dG9yeSA9ICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJf
bG9hZCgmZXhjbHVzaXZlLT5kaXJlY3RvcnkpLT5iYXNlOwotICAgIHZpZXdfaW5kZXggPSBleGNs
dXNpdmUtPmluZGV4OwotCi0gICAgaWYgKHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2coIlN0b3Bw
aW5nIGFsbG9jYXRpb24gaW4gZXhjbHVzaXZlICVwLyVwLlxuIiwgZXhjbHVzaXZlLCBwYWdlKTsK
LQotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2Nv
bmZpZykpCi0gICAgICAgIHBhc19sb2NrX3Rlc3RpbmdfYXNzZXJ0X2hlbGQocGFnZS0+bG9ja19w
dHIpOwotICAgIFBBU19URVNUSU5HX0FTU0VSVChwYWdlLT5pc19pbl91c2VfZm9yX2FsbG9jYXRp
b24pOwotICAgIAotICAgIHNob3VsZF9ub3RpZnlfZWxpZ2liaWxpdHkgPSBmYWxzZTsKLQotICAg
IHNob3VsZF9ub3RpZnlfZW1wdGluZXNzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNf
Zm9yX2RlY29tbWl0KAotICAgICAgICBwYWdlLCBwYWdlX2NvbmZpZyk7Ci0KLSAgICBpZiAocGFn
ZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2RlZmVycmVkKSB7Ci0gICAgICAg
IGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygiRWxpZ2liaWxpdHkgbm90aWZpY2F0
aW9uIGhhcyBiZWVuIGRlZmVycmVkLlxuIik7Ci0gICAgICAgIHBhZ2UtPmVsaWdpYmlsaXR5X25v
dGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJlZCA9IGZhbHNlOwotICAgICAgICBzaG91bGRfbm90
aWZ5X2VsaWdpYmlsaXR5ID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAodmVyYm9z
ZSkKLSAgICAgICAgICAgIHBhc19sb2coIk5vIGRlZmVycmVkIGVsaWdpYmlsaXR5IG5vdGlmaWNh
dGlvbi5cbiIpOwotICAgIH0KLQotICAgIHBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbiA9
IGZhbHNlOwotICAgIAotICAgIGlmIChzaG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5KSB7Ci0gICAg
ICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygiVGVsbGluZyBkaXJlY3Rvcnkg
YWJvdXQgZGVmZXJyZWQgZWxpZ2liaWxpdHkuXG4iKTsKLQotICAgICAgICAvKiBQYWdlIG11c3Qg
a25vdyB0aGF0IHdlIGFyZSBlbGlnaWJsZSBmaXJzdC4gKi8KLSAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGVfa2luZChwYWdlLT5vd25lcikp
OwotICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2Jl
Y29tZV9lbGlnaWJsZV9hdF9pbmRleCgKLSAgICAgICAgICAgIG93bmluZ19kaXJlY3RvcnksCi0g
ICAgICAgICAgICBpbmRleF9pbl9vd25pbmcpOwotICAgIH0KLQotICAgIC8qIEl0J3MgaW1wb3J0
YW50IHRvIG5vdGlmeSBlbXB0aW5lc3MgbGFzdCwgc28gdGhhdCB3ZSBuZXZlciBmaW5kIG91dHNl
bHZlcyBpbiBhIGNhc2Ugd2hlcmUgdGhlCi0gICAgICAgc2NhdmVuZ2VyIHRha2VzIHRoZSBlbXB0
eSBiaXQsIGNhbm5vdCB0YWtlIHRoZSBlbGlnaWJsZSBiaXQsIGFuZCB0aGlzIGNvZGUgaGFkIGFs
cmVhZHkgc2V0IHRoZQotICAgICAgIGVtcHR5IGJpdCBidXQgbm90IHRoZSBlbGlnaWJsZSBiaXQu
ICovCi0gICAgaWYgKHNob3VsZF9ub3RpZnlfZW1wdGluZXNzKSB7Ci0gICAgICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoCi0gICAgICAg
ICAgICBkaXJlY3RvcnksCi0gICAgICAgICAgICB2aWV3X2luZGV4KTsKLSAgICB9CiB9CiAKIFBB
U19FTkRfRVhURVJOX0M7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaAkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pbmxpbmVzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0NSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQ
QVNfU0VHUkVHQVRFRF9WSUVXX0lOTElORVNfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9WSUVX
X0lOTElORVNfSAotCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmgiCi0j
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0K
LXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAg
aWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykpCi0gICAgICAg
IHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3B0cih2aWV3KTsKLSAgICByZXR1cm4gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWQoCi0gICAgICAgICYoKHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+ZXhjbHVzaXZl
KTsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19TRUdSRUdBVEVEX1ZJ
RVdfSU5MSU5FU19IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF92aWV3X2tpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTkgKzMyLDEzIEBAIFBBU19CRUdJ
Tl9FWFRFUk5fQzsKIAogZW51bSBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQgewogICAgIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3X2tpbmQsIC8qIEl0J3Mgc3BlY2lhbCB0aGF0IGV4Y2x1c2l2ZSBhbmQgYmlhc2luZyBj
b21lIGZpcnN0LCBzZWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2VsaWdpYmlsZSgpLCBiZWxvdy4gKi8KICAgICBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQsIC8qIFJlYWxseSB0
aGUgc2FtZSB0eXBlIGFzIGV4Y2x1c2l2ZV92aWV3LCBidXQgdGhpcwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0cyB1cyB1c2UgdGhlIGtp
bmQgYml0cyBvZiBhIHZpZXcgdG8gc2F5IGlmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlnaWJpbGl0eSBoYXMgYmVlbiBub3RlZC4gKi8K
LSAgICBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kLCAvKiBMaWtl
IGluZWxpZ2libGVfZXhjbHVzaXZlLCBidXQgZm9yIGJpYXNpbmcuIEl0J3MKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWFsIHRoYXQgdGhp
cyBpcyB3aGVyZSB0aGlzIGlzLCBzZWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfZXhjbHVzaXZl
X2lzaCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJlbG93LiAqLwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQsCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9raW5kLAogICAgIHBhc19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlld19raW5kLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV92aWV3X2tpbmQKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQK
IH07CiAKIHR5cGVkZWYgZW51bSBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19raW5kOwpAQCAtNTcsMTYgKzUxLDEzIEBAIHN0YXRpYyBpbmxpbmUgY2hhciBwYXNf
c2VncmVnYXRlZF92aWV3X2sKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3
X2tpbmQ6CiAgICAgICAgIHJldHVybiAnRSc7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2lu
Z192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAnQic7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfdmlld19raW5kOgogICAgICAgICByZXR1cm4gJ1MnOwogICAgIGNhc2UgcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9raW5kOgogICAgICAgICByZXR1cm4gJ0gnOwogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAnUCc7
Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5k
OgorICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kOgogICAg
ICAgICByZXR1cm4gJ1MnOwogICAgIH0KICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSBy
ZWFjaGVkIik7CkBAIC04MCwzOCArNzEsMjIgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBw
YXNfc2VncmVnYXRlZAogICAgICAgICByZXR1cm4gImV4Y2x1c2l2ZV92aWV3IjsKICAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAg
cmV0dXJuICJpbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3IjsKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gImJpYXNpbmdfdmlldyI7Ci0g
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAg
ICAgICByZXR1cm4gImluZWxpZ2libGVfYmlhc2luZ192aWV3IjsKICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAic2hhcmVkX3ZpZXciOwog
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9raW5kOgogICAgICAgICByZXR1
cm4gInNoYXJlZF9oYW5kbGUiOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
X2tpbmQ6CiAgICAgICAgIHJldHVybiAicGFydGlhbF92aWV3IjsKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAi
Z2xvYmFsX3NpemVfZGlyZWN0b3J5IjsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3ZpZXdfa2luZDoKKyAgICAgICAgcmV0dXJuICJzaXplX2RpcmVjdG9yeSI7CiAgICAg
fQogICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKICAgICByZXR1cm4g
TlVMTDsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9p
c19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQga2luZCkKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfc29tZV9leGNsdXNpdmUocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19raW5kIGtpbmQpCiB7Ci0gICAgcmV0dXJuIGtpbmQgPD0gcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ192aWV3X2tpbmQ7Ci19Ci0KLS8qIElzIHRoaXMgZWl0aGVyIGV4Y2x1c2l2ZSBv
ciBiaWFzaW5nPyAqLwotc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2lu
ZF9pc19leGNsdXNpdmVfaXNoKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCBraW5kKQotewotICAg
IHJldHVybiBraW5kIDw9IHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tp
bmQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNf
aW5lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQga2luZCkKLXsKLSAgICByZXR1cm4g
cGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2V4Y2x1c2l2ZV9pc2goa2luZCkKLSAgICAgICAg
JiYgIXBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19lbGlnaWJsZShraW5kKTsKKyAgICByZXR1
cm4ga2luZCA8PSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ7
CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfY2FuX2Jl
Y29tZV9lbXB0eShwYXNfc2VncmVnYXRlZF92aWV3X2tpbmQga2luZCkKQEAgLTExOSwxNCArOTQs
MTIgQEAgc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfawogICAgIHN3aXRj
aCAoa2luZCkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoK
ICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2luZDoKLSAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQ6CisgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQ6CiAgICAgICAgIFBBU19B
U1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNf
cmVwb3J0ZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc3RhdHVzX3JlcG9ydGVyLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwkod29ya2luZyBjb3B5
KQpAQCAtMzIsOSArMzIsNyBAQAogI2luY2x1ZGUgInBhc19hbGxfaGVhcHMuaCIKICNpbmNsdWRl
ICJwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzLmgiCiAjaW5jbHVkZSAicGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl90YWJsZS5oIgotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeV9p
bmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2lu
Y2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRm
aXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9oZWFwLmgiCiAjaW5jbHVkZSAi
cGFzX2JpdGZpdF9zaXplX2NsYXNzLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3LmgiCkBA
IC01MCw4ICs0OCw3IEBACiAjaW5jbHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgi
CiAjaW5jbHVkZSAicGFzX2xvZy5oIgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5o
IgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
LmgiCkBAIC0xMzgsMjQgKzEzNSw2IEBAIHN0YXRpYyB2b2lkIHJlcG9ydF9iaXRmaXRfZGlyZWN0
b3J5X2NvbnQKIAogICAgICAgICBtYXhfZnJlZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9t
YXhfZnJlZShkaXJlY3RvcnksIGluZGV4KTsKIAotICAgICAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+
ZGlyZWN0b3J5X2tpbmQpIHsKLSAgICAgICAgY2FzZSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnlfa2luZDogewotICAgICAgICAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3OwotICAgICAgICAg
ICAgCi0gICAgICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGly
ZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKHZpZXcpOwotCi0gICAgICAg
ICAgICBpZiAoIXBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRy
X2lzX251bGwoJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5KSkgewotICAgICAgICAgICAgICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgImIiKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAg
Y2FzZSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgaWYgKG1heF9mcmVlID09IFBBU19CSVRG
SVRfTUFYX0ZSRUVfRU1QVFkpCiAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0s
ICJFIik7CiAgICAgICAgIGVsc2UKQEAgLTE2NSw1NiArMTQ0LDE2IEBAIHN0YXRpYyB2b2lkIHJl
cG9ydF9iaXRmaXRfZGlyZWN0b3J5X2NvbnQKICAgICAKICAgICBwYXNfc3RyZWFtX3ByaW50Zihz
dHJlYW0sICIlcyAgRW1wdHkgKGJpdCk6ICIsIHByZWZpeCk7CiAgICAgZm9yIChpbmRleCA9IDA7
IGluZGV4IDwgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7
Ci0gICAgICAgIHN3aXRjaCAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICBj
YXNlIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kOiB7Ci0gICAgICAgICAgICBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIGdsb2JhbF9kaXJlY3RvcnkgPSAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAocGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoZ2xvYmFsX2RpcmVj
dG9yeSwgaW5kZXgpKQotICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IngiKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50
ZihzdHJlYW0sICIgIik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAg
IGNhc2UgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kOiB7Ci0gICAgICAgICAgICBw
YXNfYml0Zml0X3ZpZXcqIHZpZXc7Ci0gICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpZXcg
PSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsKLSAgICAg
ICAgICAgIGlmICghdmlldykgewotICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0
cmVhbSwgIiAiKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9Ci0gICAgICAgICAgICAgICAgcGFzX2NvbXBh
Y3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmdsb2Jh
bF9kaXJlY3RvcnkpOwotCi0gICAgICAgICAgICBpZiAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoCi0gICAgICAgICAgICAgICAgICAgIGdsb2JhbF9k
aXJlY3RvcnksIHZpZXctPmluZGV4X2luX2dsb2JhbCkpCi0gICAgICAgICAgICAgICAgcGFzX3N0
cmVhbV9wcmludGYoc3RyZWFtLCAieCIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9IH0KKyAgICAgICAgaWYgKHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9lbXB0eV9i
aXRfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCkpCisgICAgICAgICAgICBwYXNfc3RyZWFtX3By
aW50ZihzdHJlYW0sICJ4Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhc19zdHJlYW1f
cHJpbnRmKHN0cmVhbSwgIiAiKTsKICAgICB9CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFt
LCAiXG4iKTsKICAgICAKLSAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpIHsK
LSAgICBjYXNlIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kOiB7Ci0gICAgICAgIHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICAgICAgCi0g
ICAgICAgIGdsb2JhbF9kaXJlY3RvcnkgPSAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Kilk
aXJlY3Rvcnk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0
cmVhbSwgIiVzIExhc3QgRW1wdHkrMTogIiwgcHJlZml4KTsKLSAgICAgICAgZHVtcF9hcnJvdyhz
dHJlYW0sICh1aW50cHRyX3QpZ2xvYmFsX2RpcmVjdG9yeS0+bGFzdF9lbXB0eV9wbHVzX29uZS52
YWx1ZSk7Ci0gICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KLSAgICBjYXNlIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlfa2lu
ZDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQorICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IiVzIExhc3QgRW1wdHkrMTogIiwgcHJlZml4KTsKKyAgICBkdW1wX2Fycm93KHN0cmVhbSwgKHVp
bnRwdHJfdClkaXJlY3RvcnktPmxhc3RfZW1wdHlfcGx1c19vbmUudmFsdWUpOworICAgIHBhc19z
dHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CiAKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJl
YW0sICIlcyAgICBDb21taXR0ZWQ6ICIsIHByZWZpeCk7CiAgICAgZm9yIChpbmRleCA9IDA7IGlu
ZGV4IDwgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7CkBA
IC0yNTQsNjggKzE5MywxNyBAQCBzdGF0aWMgdm9pZCByZXBvcnRfYml0Zml0X2RpcmVjdG9yeV9j
b250CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIH0KIAotdm9pZCBwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KAotICAgIHBhc19z
dHJlYW0qIHN0cmVhbSwgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQor
dm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2RpcmVjdG9yeSgKKyAgICBwYXNf
c3RyZWFtKiBzdHJlYW0sIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7Ci0gICAg
cGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAgICAgICVzIEJpYXNpbmcgRGly
ICVwKCV1KTogIiwKLSAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmln
X3ZhcmlhbnRfZ2V0X2NhcGl0YWxpemVkX3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQpLT52YXJpYW50KSwK
LSAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAg
cGFzX2JpYXNpbmdfZGlyZWN0b3J5X21hZ2F6aW5lX2luZGV4KCZkaXJlY3RvcnktPmJpYXNpbmdf
YmFzZSkpOwotICAgIHBhc19oZWFwX3N1bW1hcnlfZHVtcChwYXNfYml0Zml0X2RpcmVjdG9yeV9j
b21wdXRlX3N1bW1hcnkoJmRpcmVjdG9yeS0+YmFzZSksIHN0cmVhbSk7Ci0gICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLQotICAgIHJlcG9ydF9iaXRmaXRfZGlyZWN0b3J5X2Nv
bnRlbnRzKHN0cmVhbSwgJmRpcmVjdG9yeS0+YmFzZSwgIiAgICAgICAgICAgICAgICAgICAgIik7
Ci0KLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICAgICAgICAgICAgICBF
bGlnaWJsZSBIV006ICIpOwotICAgIGR1bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90KWRpcmVj
dG9yeS0+Ymlhc2luZ19iYXNlLmVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlKTsKLSAgICBw
YXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0
cmVhbSwgIiAgICAgICAgICAgICAgICAgICAgICBDdXJyZW50IEhXTTogIik7Ci0gICAgZHVtcF9h
cnJvdyhzdHJlYW0sIGRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmN1cnJlbnRfaGlnaF93YXRlcm1h
cmspOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0gICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAgICAgICAgICAgUHJldmlvdXMgSFdNOiAiKTsK
LSAgICBkdW1wX2Fycm93KHN0cmVhbSwgZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UucHJldmlvdXNf
aGlnaF93YXRlcm1hcmspOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci19
Ci0KLXZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
KAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpCi17Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBiaWFzX3Bvb2w7Ci0gICAg
CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAgJXMgR2xvYmFsIERp
ciAoJXApOiAiLAogICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdf
dmFyaWFudF9nZXRfY2FwaXRhbGl6ZWRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZygKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpcmVjdG9yeS0+YmFzZS5jb25maWdfa2luZCktPnZhcmlhbnQpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0
X2NvbmZpZyhkaXJlY3RvcnktPmNvbmZpZ19raW5kKS0+dmFyaWFudCksCiAgICAgICAgICAgICAg
ICAgICAgICAgZGlyZWN0b3J5KTsKLSAgICBwYXNfaGVhcF9zdW1tYXJ5X2R1bXAocGFzX2JpdGZp
dF9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5KCZkaXJlY3RvcnktPmJhc2UpLCBzdHJlYW0pOwor
ICAgIHBhc19oZWFwX3N1bW1hcnlfZHVtcChwYXNfYml0Zml0X2RpcmVjdG9yeV9jb21wdXRlX3N1
bW1hcnkoZGlyZWN0b3J5KSwgc3RyZWFtKTsKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0s
ICJcbiIpOwogCi0gICAgcmVwb3J0X2JpdGZpdF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCAm
ZGlyZWN0b3J5LT5iYXNlLCAiICAgICAgICAgICAgICAgICIpOwotCi0gICAgYmlhc19wb29sID0g
cGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkKCZkaXJlY3Rvcnkt
PmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICBpZiAoYmlhc19wb29sKSB7Ci0gICAgICAgIHNpemVf
dCBpbmRleDsKLSAgICAgICAgCi0gICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IHBhc19w
YWdlX3NoYXJpbmdfcG9vbF9udW1fcGFydGljaXBhbnRzKGJpYXNfcG9vbCk7ICsraW5kZXgpIHsK
LSAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQ7Ci0g
ICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19mZW5jZV9hZnRlcl9sb2FkKCk7IC8qIE1ha2Ug
c3VyZSB0aGF0IHRoZSBzaXplIGlzIHdoYXQgdGhlIHRoaW5nIHNheXMgaXQgaXMuICovCi0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X2dldF9wYXJ0aWNpcGFudChiaWFzX3Bvb2wsIGluZGV4KTsKLSAgICAgICAgICAgIGlmICghcGFy
dGljaXBhbnQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIFBBU19BU1NFUlQocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfa2luZChw
YXJ0aWNpcGFudCkKLSAgICAgICAgICAgICAgICAgICAgICAgPT0gcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAg
ICAgICAgICAgICAgc3RyZWFtLAotICAgICAgICAgICAgICAgIHBhc191bndyYXBfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5KAotICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X2dldF9wdHIocGFydGljaXBhbnQpKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAg
cmVwb3J0X2JpdGZpdF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCBkaXJlY3RvcnksICIgICAg
ICAgICAgICAgICAgIik7CiB9CiAKIHN0YXRpYyB2b2lkIHJlcG9ydF9zZWdyZWdhdGVkX2RpcmVj
dG9yeV9jb250ZW50cygKQEAgLTMzMiwxMSArMjIwLDYgQEAgc3RhdGljIHZvaWQgcmVwb3J0X3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5XwogICAgICAgICAKICAgICAgICAgdmlldyA9IHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5LCBpbmRleCk7CiAKLSAgICAgICAgaWYgKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2VkX2V4Y2x1c2l2ZSh2aWV3KSkgewotICAgICAgICAgICAg
cGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiYiIpOwotICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKAogICAgICAgICAg
ICAgc3RyZWFtLCAiJWMiLAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dl
dF9jaGFyYWN0ZXJfY29kZSgKQEAgLTQwMyw2MCArMjg2LDIzIEBAIHN0YXRpYyB2b2lkIHJlcG9y
dF9zZWdyZWdhdGVkX2RpcmVjdG9yeV8KICAgICB9CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiXG4iKTsKIAotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgICAgVGFi
bGVkOiAiLCBwcmVmaXgpOworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzIEZpcnN0
IEVsZ2JsOiAiLCBwcmVmaXgpOworICAgIGR1bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90KXBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGUoZGlyZWN0b3J5KS52YWx1
ZSk7CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKKworICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgICAgIEVtcHR5OiAiLCBwcmVmaXgpOwogICAgIGZvciAo
aW5kZXggPSAwOyBpbmRleCA8IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9y
eSk7ICsraW5kZXgpIHsKLSAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc190
YWJsZWQoZGlyZWN0b3J5LCBpbmRleCkpCisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXNfZW1wdHkoZGlyZWN0b3J5LCBpbmRleCkpCiAgICAgICAgICAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICJ4Iik7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKICAgICB9CiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiXG4iKTsKIAotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICBGaXJzdCBF
Jn5UOiAiLCBwcmVmaXgpOwotICAgIGR1bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90KXBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGUoCi0gICAgICAgICAgICAgICAg
ICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0
X25vdF90YWJsZWRfa2luZCkudmFsdWUpOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IlxuIik7Ci0KLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgIEZpcnN0IEUmVDog
IiwgcHJlZml4KTsKLSAgICBkdW1wX2Fycm93KHN0cmVhbSwgKHVpbnRwdHJfdClwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlKAotICAgICAgICAgICAgICAgICAgIGRp
cmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJs
ZWRfa2luZCkudmFsdWUpOworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzIExhc3Qg
RW1wdCsxOiAiLCBwcmVmaXgpOworICAgIGR1bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90KXBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfbGFzdF9lbXB0eV9wbHVzX29uZShkaXJlY3Rvcnkp
LnZhbHVlKTsKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCi0gICAgcGFz
X3N0cmVhbV9wcmludGYoc3RyZWFtLCAiJXMgICAgICAgRW1wdHk6ICIsIHByZWZpeCk7Ci0gICAg
Zm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGly
ZWN0b3J5KTsgKytpbmRleCkgewotICAgICAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0b3J5
X2tpbmQpIHsKLSAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfa2luZDoKLSAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rv
cnlfa2luZDoKLSAgICAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1w
dHkoZGlyZWN0b3J5LCBpbmRleCkpCi0gICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYo
c3RyZWFtLCAieCIpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZDogewotICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OwotICAgICAgICAgICAgdmlldyA9IHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICBpZiAocGFz
X3NlZ3JlZ2F0ZWRfdmlld19pc19lbXB0eSh2aWV3KSkKLSAgICAgICAgICAgICAgICBwYXNfc3Ry
ZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0gfQotICAgIH0KLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwot
Ci0gICAgc3dpdGNoIChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kKSB7Ci0gICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZDoKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBwYXNfc3RyZWFtX3By
aW50ZihzdHJlYW0sICIlcyAgICBMYXN0IEUrMTogIiwgcHJlZml4KTsKLSAgICAgICAgZHVtcF9h
cnJvdyhzdHJlYW0sICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9sYXN0
X2VtcHR5X3BsdXNfb25lKAotICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkpLnZhbHVl
KTsKLSAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kOgotICAg
ICAgICBicmVhazsKLSAgICB9Ci0KICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAg
IENvbW1pdHRlZDogIiwgcHJlZml4KTsKICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNf
c2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7CiAgICAgICAg
IGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeSwgaW5k
ZXgpKQpAQCAtNDY3LDQ5ICszMTMsMTMgQEAgc3RhdGljIHZvaWQgcmVwb3J0X3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5XwogICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CiB9CiAKLXZv
aWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnko
Ci0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQotewotICAgIHBhc19oZWFwX3N1bW1hcnkgc3VtbWFyeTsKLSAgICAKLSAg
ICBwYXNfc3RyZWFtX3ByaW50ZigKLSAgICAgICAgc3RyZWFtLAotICAgICAgICAiICAgICAgICAg
ICAgICAgIEJpYXNpbmcgRGlyICVwKCV1KTogTnVtIFZpZXdzOiAlenUiLAotICAgICAgICBkaXJl
Y3RvcnksCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X21hZ2F6aW5l
X2luZGV4KGRpcmVjdG9yeSksCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXpl
KCZkaXJlY3RvcnktPmJhc2UpKTsKLQotICAgIGlmIChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
ZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5iYXNlLmRhdGEpKQotICAgICAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICIsIEhhcyBCYXNlIERhdGEiKTsKLQotICAgIHBhc19zdHJlYW1fcHJp
bnRmKHN0cmVhbSwgIiwgIik7Ci0KLSAgICBzdW1tYXJ5ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2NvbXB1dGVfc3VtbWFyeSgmZGlyZWN0b3J5LT5iYXNlKTsKLSAgICBwYXNfaGVhcF9zdW1t
YXJ5X2R1bXAoc3VtbWFyeSwgc3RyZWFtKTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVh
bSwgIlxuIik7Ci0KLSAgICByZXBvcnRfc2VncmVnYXRlZF9kaXJlY3RvcnlfY29udGVudHMoc3Ry
ZWFtLCAmZGlyZWN0b3J5LT5iYXNlLCAiICAgICAgICAgICAgICAgICAgICAiKTsKLQotICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAgICAgICAgICAgICAgICAgRWxpZ2libGUgSFdN
OiAiKTsKLSAgICBkdW1wX2Fycm93KHN0cmVhbSwgKHVpbnRwdHJfdClkaXJlY3RvcnktPmJpYXNp
bmdfYmFzZS5lbGlnaWJsZV9oaWdoX3dhdGVybWFyay52YWx1ZSk7Ci0gICAgcGFzX3N0cmVhbV9w
cmludGYoc3RyZWFtLCAiXG4iKTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAg
ICAgICAgICAgICAgICAgICBDdXJyZW50IEhXTTogIik7Ci0gICAgZHVtcF9hcnJvdyhzdHJlYW0s
IGRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmN1cnJlbnRfaGlnaF93YXRlcm1hcmspOwotICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiICAgICAgICAgICAgICAgICAgICBQcmV2aW91cyBIV006ICIpOwotICAgIGR1bXBfYXJy
b3coc3RyZWFtLCBkaXJlY3RvcnktPmJpYXNpbmdfYmFzZS5wcmV2aW91c19oaWdoX3dhdGVybWFy
ayk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLX0KLQotdm9pZCBwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCi0g
ICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSkKK3ZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkoCisgICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHBhc19oZWFwX3N1bW1hcnkgcGFydGlh
bF9zdW1tYXJ5OwogICAgIHBhc19oZWFwX3N1bW1hcnkgZXhjbHVzaXZlX3N1bW1hcnk7CiAgICAg
c2l6ZV90IGluZGV4OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhKiBkYXRhOwotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogYmlhc19wb29sOworICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CiAgICAgCiAgICAgcGFzX3N0
cmVhbV9wcmludGYoCiAgICAgICAgIHN0cmVhbSwKQEAgLTUyMSwxNyArMzMxLDEyIEBAIHZvaWQg
cGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWQKIAogICAgIGlmIChwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5iYXNlLmRhdGEpKQogICAg
ICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIsIEhhcyBCYXNlIERhdGEiKTsKLSAgICBk
YXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQo
JmRpcmVjdG9yeS0+ZGF0YSk7Ci0gICAgaWYgKGRhdGEpIHsKKyAgICBkYXRhID0gcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKKyAg
ICBpZiAoZGF0YSkKICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiLCBIYXMgRGF0
YSIpOwotICAgICAgICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5n
X3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICAgICAgaWYgKGJp
YXNfcG9vbCkKLSAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwgRXhwbG9k
ZWQiKTsKLSAgICB9IGVsc2UKLSAgICAgICAgYmlhc19wb29sID0gTlVMTDsKLSAgICBpZiAocGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVj
dG9yeSkpCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxs
b2NhdG9yKGRpcmVjdG9yeSkpCiAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwg
SGFzIFRMQSIpOwotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
YXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKGRpcmVjdG9yeSkpCisgICAgaWYgKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FyZV9leGNsdXNpdmVfdmlld3NfZW5hYmxlZChkaXJlY3Rv
cnkpKQogICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIsIEVuYWJsZWQgRXhjbHVz
aXZlcyIpOwogICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CiAKQEAgLTU2OCwy
NiArMzczLDYgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZAogICAg
IH0KICAgICAKICAgICByZXBvcnRfc2VncmVnYXRlZF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFt
LCAmZGlyZWN0b3J5LT5iYXNlLCAiICAgICAgICAgICAgICAgICIpOwotCi0gICAgaWYgKGJpYXNf
cG9vbCkgewotICAgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfbnVtX3BhcnRpY2lwYW50cyhiaWFzX3Bvb2wpOyArK2luZGV4KSB7Ci0gICAgICAgICAg
ICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50IHBhcnRpY2lwYW50OwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBwYXNfZmVuY2VfYWZ0ZXJfbG9hZCgpOyAvKiBNYWtlIHN1cmUgdGhhdCB0
aGUgc2l6ZSBpcyB3aGF0IHRoZSB0aGluZyBzYXlzIGl0IGlzLiAqLwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBwYXJ0aWNpcGFudCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9nZXRfcGFydGlj
aXBhbnQoYmlhc19wb29sLCBpbmRleCk7Ci0gICAgICAgICAgICBpZiAoIXBhcnRpY2lwYW50KQot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBQQVNf
QVNTRVJUKHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X2tpbmQocGFydGljaXBhbnQp
Ci0gICAgICAgICAgICAgICAgICAgICAgID09IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
Ymlhc2luZ19kaXJlY3RvcnkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfc3RhdHVz
X3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICAgICAgICAg
ICAgICBzdHJlYW0sCi0gICAgICAgICAgICAgICAgcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5KAotICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRp
Y2lwYW50X2dldF9wdHIocGFydGljaXBhbnQpKSk7Ci0gICAgICAgIH0KLSAgICB9CiB9CiAKIHZv
aWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5KApAQCAtNzAyLDcgKzQ4Nyw3IEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2Jv
b3RzdHJhcF8KIAogc3RhdGljIGJvb2wgZHVtcF9zZWdyZWdhdGVkX2hlYXBfZGlyZWN0b3J5X2Nh
bGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgcGFzX3N0
cmVhbSogc3RyZWFtOwpAQCAtNzExLDcgKzQ5Niw3IEBAIHN0YXRpYyBib29sIGR1bXBfc2VncmVn
YXRlZF9oZWFwX2RpcmVjdG8KIAogICAgIHN0cmVhbSA9IGFyZzsKIAotICAgIHBhc19zdGF0dXNf
cmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShzdHJlYW0sIGRp
cmVjdG9yeSk7CisgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3Rvcnkoc3RyZWFtLCBkaXJlY3RvcnkpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC03
MjUsNyArNTEwLDcgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2hlYQog
ICAgIGlmIChwYXNfc3RhdHVzX3JlcG9ydGVyX2VuYWJsZWQgPj0gMykgewogICAgICAgICBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQgdmFyaWFudDsKICAgICAgICAgZm9yIChQQVNfRUFD
SF9CSVRGSVRfUEFHRV9DT05GSUdfVkFSSUFOVF9BU0NFTkRJTkcodmFyaWFudCkpIHsKLSAgICAg
ICAgICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSgK
KyAgICAgICAgICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfZGlyZWN0b3J5KAog
ICAgICAgICAgICAgICAgIHN0cmVhbSwKICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2hlYXBf
Z2V0X2RpcmVjdG9yeShoZWFwLCB2YXJpYW50KSk7CiAgICAgICAgIH0KQEAgLTc1NSw3ICs1NDAs
NyBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkCiAgICAgcGFzX3N0
cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIAogICAgIGlmIChwYXNfc3RhdHVzX3JlcG9ydGVy
X2VuYWJsZWQgPj0gMykgewotICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFj
aF9zaXplX2RpcmVjdG9yeSgKICAgICAgICAgICAgIGhlYXAsIGR1bXBfc2VncmVnYXRlZF9oZWFw
X2RpcmVjdG9yeV9jYWxsYmFjaywgc3RyZWFtKTsKICAgICB9CiAgICAgCkBAIC05MDEsOSArNjg2
LDkgQEAgc3RhdGljIHZvaWQgZHVtcF9oaXN0b2dyYW0ocGFzX3N0cmVhbSogcwogICAgIH0KIH0K
IAotc3RhdGljIGJvb2wgdG90YWxfZnJhZ21lbnRhdGlvbl9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
Y2FsbGJhY2soCitzdGF0aWMgYm9vbCB0b3RhbF9mcmFnbWVudGF0aW9uX3NpemVfZGlyZWN0b3J5
X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgdG90
YWxfZnJhZ21lbnRhdGlvbl9kYXRhKiBkYXRhOwpAQCAtOTQzLDggKzcyOCw4IEBAIHN0YXRpYyBi
b29sIHRvdGFsX2ZyYWdtZW50YXRpb25faGVhcF9jYWwKIAogICAgIGRhdGEgPSBhcmc7CiAKLSAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKLSAg
ICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwgdG90YWxfZnJhZ21lbnRhdGlvbl9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEpOworICAgIHBhc19zZWdyZWdhdGVkX2hlYXBf
Zm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCisgICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAs
IHRvdGFsX2ZyYWdtZW50YXRpb25fc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEpOwogCiAg
ICAgZGF0YS0+bGFyZ2VfZnJhZ21lbnRhdGlvbiArPSBwYXNfaGVhcF9zdW1tYXJ5X2ZyYWdtZW50
YXRpb24oCiAgICAgICAgIHBhc19sYXJnZV9oZWFwX2NvbXB1dGVfc3VtbWFyeSgmaGVhcC0+bGFy
Z2VfaGVhcCkpOwpAQCAtOTczLDggKzc1OCw4IEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX3RvdGFsX2ZyYWcKICAgICBwYXNfYWxsX2hlYXBzX2Zvcl9lYWNoX2hlYXAodG90YWxfZnJh
Z21lbnRhdGlvbl9oZWFwX2NhbGxiYWNrLCAmZGF0YSk7CiAgICAgcGFzX2FsbF9zaGFyZWRfcGFn
ZV9kaXJlY3Rvcmllc19mb3JfZWFjaCgKICAgICAgICAgdG90YWxfZnJhZ21lbnRhdGlvbl9zaGFy
ZWRfcGFnZV9kaXJlY3RvcnlfY2FsbGJhY2ssICZkYXRhKTsKLSAgICBwYXNfc2VncmVnYXRlZF9o
ZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKLSAgICAgICAgJnBhc191dGlsaXR5
X3NlZ3JlZ2F0ZWRfaGVhcCwgdG90YWxfZnJhZ21lbnRhdGlvbl9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfY2FsbGJhY2ssICZkYXRhKTsKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3Np
emVfZGlyZWN0b3J5KAorICAgICAgICAmcGFzX3V0aWxpdHlfc2VncmVnYXRlZF9oZWFwLCB0b3Rh
bF9mcmFnbWVudGF0aW9uX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrLCAmZGF0YSk7CiAgICAgZGF0
YS5sYXJnZV9mcmFnbWVudGF0aW9uICs9IHBhc19oZWFwX3N1bW1hcnlfZnJhZ21lbnRhdGlvbigK
ICAgICAgICAgcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2NvbXB1dGVfc3VtbWFyeSgpKTsK
ICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgU2VncmVnYXRlZCBFeGNsdXNpdmUg
RnJhZ21lbnRhdGlvbiBIaXN0b2dyYW06XG4iKTsKQEAgLTEwMDMsOSArNzg4LDkgQEAgdHlwZWRl
ZiBzdHJ1Y3QgewogICAgIHNpemVfdCBudW1faGVhcHM7CiB9IHRpZXJfdXBfcmF0ZV9kYXRhOwog
Ci1zdGF0aWMgYm9vbCB0aWVyX3VwX3JhdGVfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNr
KAorc3RhdGljIGJvb2wgdGllcl91cF9yYXRlX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKAogICAg
IHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgdGllcl91cF9yYXRlX2RhdGEq
IGRhdGE7CkBAIC0xMDE0LDExICs3OTksMTEgQEAgc3RhdGljIGJvb2wgdGllcl91cF9yYXRlX2ds
b2JhbF9zaXplX2RpcgogCiAgICAgZGF0YSA9IGFyZzsKIAotICAgIGlmIChwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKSkK
KyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGly
ZWN0b3J5LT5kYXRhKSkKICAgICAgICAgZGF0YS0+bnVtX2RpcmVjdG9yaWVzX3dpdGhfZGF0YSsr
OwotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19h
bGxvY2F0b3IoZGlyZWN0b3J5KSkKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KSkKICAgICAgICAgZGF0YS0+bnVtX2RpcmVj
dG9yaWVzX3dpdGhfdGxhcysrOwotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKGRpcmVjdG9yeSkpCisgICAgaWYg
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FyZV9leGNsdXNpdmVfdmlld3NfZW5hYmxl
ZChkaXJlY3RvcnkpKQogICAgICAgICBkYXRhLT5udW1fZGlyZWN0b3JpZXNfd2l0aF9leGNsdXNp
dmVzKys7CiAgICAgZGF0YS0+bnVtX2RpcmVjdG9yaWVzKys7CiAKQEAgLTEwMzEsOCArODE2LDgg
QEAgc3RhdGljIGJvb2wgdGllcl91cF9yYXRlX2hlYXBfY2FsbGJhY2socAogCiAgICAgZGF0YSA9
IGFyZzsKIAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KAotICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLCB0aWVyX3VwX3JhdGVfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrLCBkYXRhKTsKKyAgICBwYXNfc2VncmVnYXRlZF9o
ZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAorICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9o
ZWFwLCB0aWVyX3VwX3JhdGVfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEpOwogCiAgICAg
ZGF0YS0+bnVtX2hlYXBzKys7CiAKQEAgLTEwOTYsNyArODgxLDcgQEAgdm9pZCBwYXNfc3RhdHVz
X3JlcG9ydGVyX2R1bXBfYmFzZWxpbmVfYQogICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJl
YW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAlenU6IGRpcmVjdG9yeSA9
ICVwLCAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHZpZXcgPyBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkodmlldykgOiBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3
ID8gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkodmlldykgOiBOVUxMLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3Jfc3RhdGUoYWxsb2NhdG9yKSk7CiAg
ICAgfQogfQpAQCAtMTEwOSw4ICs4OTQsMTAgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1
bXBfdGhyZWFkX2xvYwogCiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgIFRocmVh
ZCBMb2NhbCBDYWNoZSBMYXlvdXQ6XG4iKTsKICAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FD
SEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkgewotICAgICAgICBwYXNfc3Ry
ZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICV1OiBkaXJlY3RvcnkgPSAlcFxuIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9n
ZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2RlKSwKKyAgICAgICAgcGFzX3N0cmVhbV9wcmlu
dGYoc3RyZWFtLCAiICAgICAgICAldTogJXMsIGRpcmVjdG9yeSA9ICVwXG4iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9h
bGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhsYXlvdXRfbm9kZSksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZF9nZXRfc3RyaW5n
KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfa2luZChsYXlvdXRfbm9kZSkpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkobGF5
b3V0X25vZGUpKTsKICAgICB9CiAKQEAgLTExNDAsNyArOTI3LDExIEBAIHZvaWQgcGFzX3N0YXR1
c19yZXBvcnRlcl9kdW1wX3RocmVhZF9sb2MKICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5k
ZXggYWxsb2NhdG9yX2luZGV4OwogICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxs
b2NhdG9yOwogCi0gICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5b3V0X25vZGUpOworICAg
ICAgICAgICAgaWYgKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2Vu
dHNfYWxsb2NhdG9yKGxheW91dF9ub2RlKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0KKyAgICAgICAgICAgICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRv
cihsYXlvdXRfbm9kZSk7CiAKICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gY2Fj
aGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCkKICAgICAgICAgICAgICAgICBicmVhazsK
QEAgLTExNDksNyArOTQwLDcgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFk
X2xvYwogICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICV1OiBkaXJlY3RvcnkgPSAlcCwgJXNcbiIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXgsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmll
dyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3Jfc3RhdGUoYWxsb2Nh
dG9yKSk7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9y
dGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDM2ICszMSwyNiBAQAogCiBQQVNfQkVHSU5fRVhU
RVJOX0M7CiAKLXN0cnVjdCBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5Owotc3RydWN0IHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeTsK
IHN0cnVjdCBwYXNfbGFyZ2VfaGVhcDsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwogc3RydWN0IHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeTsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiBz
dHJ1Y3QgcGFzX3N0cmVhbTsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJl
Y3RvcnkgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeTsKLXR5cGVkZWYgc3RydWN0IHBhc19i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Cit0eXBl
ZGVmIHN0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeSBwYXNfYml0Zml0X2RpcmVjdG9yeTsKIHR5
cGVkZWYgc3RydWN0IHBhc19sYXJnZV9oZWFwIHBhc19sYXJnZV9oZWFwOwotdHlwZWRlZiBzdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdy
ZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9k
aXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5OwotdHlwZWRlZiBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1
Y3QgcGFzX3N0cmVhbSBwYXNfc3RyZWFtOwogCiBQQVNfQVBJIGV4dGVybiB1bnNpZ25lZCBwYXNf
c3RhdHVzX3JlcG9ydGVyX2VuYWJsZWQ7CiBQQVNfQVBJIGV4dGVybiB1bnNpZ25lZCBwYXNfc3Rh
dHVzX3JlcG9ydGVyX3BlcmlvZF9pbl9taWNyb3NlY29uZHM7CiAKLVBBU19BUEkgdm9pZCBwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KAotICAgIHBhc19z
dHJlYW0qIHN0cmVhbSwgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsK
LVBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSk7CiBQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2Jp
dGZpdF9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci1QQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3Ry
ZWFtLCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLVBBU19B
UEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisgICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNf
Yml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKK1BBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3Jl
cG9ydGVyX2R1bXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc3RyZWFtKiBz
dHJlYW0sIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogUEFTX0FQ
SSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeSgKICAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9y
dGVyX2R1bXBfbGFyZ2VfaGVhcChwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19sYXJnZV9oZWFwKiBo
ZWFwKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdl
X21hcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zdWJwYWdlX21hcC5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDEwMyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNs
dWRlICJwYXNfc3VicGFnZV9tYXAuaCIKLQotI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKLSNp
bmNsdWRlICJwYXNfaW50ZXJuYWxfY29uZmlnLmgiCi0jaW5jbHVkZSAicGFzX2xhcmdlX3V0aWxp
dHlfZnJlZV9oZWFwLmgiCi0KLXBhc19zdWJwYWdlX21hcF9oYXNodGFibGUgcGFzX3N1YnBhZ2Vf
bWFwX2hhc2h0YWJsZV9pbnN0YW5jZTsKLQotcGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBwYXNfc3Vi
cGFnZV9tYXBfYWRkKHZvaWQqIGJhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19jb21taXRfbW9kZSBjb21taXRfbW9kZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2Nr
X2hvbGRfbW9kZSkKLXsKLSAgICB2b2lkKiBmdWxsX2Jhc2U7Ci0gICAgcGFzX3N1YnBhZ2VfbWFw
X2hhc2h0YWJsZV9hZGRfcmVzdWx0IGFkZF9yZXN1bHQ7Ci0gICAgcGFzX3N1YnBhZ2VfbWFwX2Vu
dHJ5KiBlbnRyeTsKLQotICAgIFBBU19BU1NFUlQoYmFzZSk7Ci0gICAgZnVsbF9iYXNlID0gcGFz
X3N1YnBhZ2VfbWFwX2dldF9mdWxsX2Jhc2UoYmFzZSwgYnl0ZXMpOwotICAgIAotICAgIHBhc19o
ZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAg
YWRkX3Jlc3VsdCA9IHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfYWRkKAotICAgICAgICAmcGFz
X3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9pbnN0YW5jZSwgZnVsbF9iYXNlLCBOVUxMLAotICAgICAg
ICAmcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2FsbG9jYXRpb25fY29uZmlnKTsKLSAgICBp
ZiAoYWRkX3Jlc3VsdC5pc19uZXdfZW50cnkpIHsKLSAgICAgICAgcGFzX2NvbXBhY3Rfc3VicGFn
ZV9tYXBfZW50cnlfcHRyX3N0b3JlKAotICAgICAgICAgICAgYWRkX3Jlc3VsdC5lbnRyeSwgcGFz
X3N1YnBhZ2VfbWFwX2VudHJ5X2NyZWF0ZShmdWxsX2Jhc2UsIGNvbW1pdF9tb2RlKSk7Ci0gICAg
fQotCi0gICAgZW50cnkgPSBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHJfbG9hZF9u
b25fbnVsbChhZGRfcmVzdWx0LmVudHJ5KTsKLSAgICBwYXNfc3VicGFnZV9tYXBfYXNzZXJ0X2Nv
bW1pdF9zdGF0ZShlbnRyeSwgYmFzZSwgYnl0ZXMsIGNvbW1pdF9tb2RlKTsKLSAgICAKLSAgICBw
YXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwot
Ci0gICAgcmV0dXJuIGVudHJ5OwotfQotCi1wYXNfc3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJw
YWdlX21hcF9nZXQodm9pZCogYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0g
ICAgcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyKiBlbnRyeTsKLSAgICB2b2lkKiBm
dWxsX2Jhc2U7Ci0KLSAgICBQQVNfQVNTRVJUKGJhc2UpOwotCi0gICAgZnVsbF9iYXNlID0gcGFz
X3N1YnBhZ2VfbWFwX2dldF9mdWxsX2Jhc2UoYmFzZSwgYnl0ZXMpOwotCi0gICAgcGFzX2hlYXBf
bG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLSAgICBlbnRy
eSA9IHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZmluZCgmcGFzX3N1YnBhZ2VfbWFwX2hhc2h0
YWJsZV9pbnN0YW5jZSwgZnVsbF9iYXNlKTsKLQotICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2Nv
bmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLSAgICBQQVNfQVNTRVJUKGVudHJ5
KTsKLSAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyX2xvYWRfbm9u
X251bGwoZW50cnkpOwotfQotCi12b2lkKiBwYXNfc3VicGFnZV9tYXBfZ2V0X2Z1bGxfYmFzZSh2
b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMpCi17Ci0gICAgdm9pZCogZnVsbF9iYXNlOwotICAgIAot
ICAgIFBBU19BU1NFUlQoISgodWludHB0cl90KWJhc2UgJiAoUEFTX1NVQlBBR0VfU0laRSAtIDEp
KSk7Ci0gICAgUEFTX0FTU0VSVCghKCh1aW50cHRyX3QpYnl0ZXMgJiAoUEFTX1NVQlBBR0VfU0la
RSAtIDEpKSk7Ci0KLSAgICBmdWxsX2Jhc2UgPSAodm9pZCopKCh1aW50cHRyX3QpYmFzZSAmIC1w
YXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpOwotCi0gICAgUEFTX0FTU0VSVCgodWludHB0cl90
KWJhc2UgKyBieXRlcyA8PSAodWludHB0cl90KWZ1bGxfYmFzZSArIHBhc19wYWdlX21hbGxvY19h
bGlnbm1lbnQoKSk7Ci0KLSAgICByZXR1cm4gZnVsbF9iYXNlOwotfQotCi0jZW5kaWYgLyogTElC
UEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zdWJwYWdlX21hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zdWJwYWdlX21hcC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDEyMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpZm5kZWYgUEFTX1NVQlBBR0VfTUFQX0gKLSNkZWZpbmUgUEFTX1NVQlBBR0VfTUFQ
X0gKLQotI2luY2x1ZGUgInBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oIgotI2lu
Y2x1ZGUgInBhc19oYXNodGFibGUuaCIKLSNpbmNsdWRlICJwYXNfc3VicGFnZV9tYXBfZW50cnku
aCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi10eXBlZGVmIHBhc19jb21wYWN0X3N1YnBhZ2Vf
bWFwX2VudHJ5X3B0ciBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5OwotdHlwZWRlZiB2
b2lkKiBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2tleTsKLQotc3RhdGljIGlubGluZSBwYXNf
c3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50
cnlfY3JlYXRlX2VtcHR5KHZvaWQpCi17Ci0gICAgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9l
bnRyeSByZXN1bHQgPSBQQVNfQ09NUEFDVF9QVFJfSU5JVElBTElaRVI7Ci0gICAgcmV0dXJuIHJl
c3VsdDsKLX0KLQotc3RhdGljIGlubGluZSBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5
IHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnlfY3JlYXRlX2RlbGV0ZWQodm9pZCkKLXsK
LSAgICBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IHJlc3VsdCA9IFBBU19DT01QQUNU
X1BUUl9JTklUSUFMSVpFUjsKLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5ldmVyIGNyZWF0ZWQg
YSBkZWxldGVkIHN1YnBhZ2UgbWFwIGhhc2h0YWJsZSBlbnRyeSAoYW5kIGl0J3MgaW1wb3NzaWJs
ZSkiKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wKLXBhc19z
dWJwYWdlX21hcF9oYXNodGFibGVfZW50cnlfaXNfZW1wdHlfb3JfZGVsZXRlZChwYXNfc3VicGFn
ZV9tYXBfaGFzaHRhYmxlX2VudHJ5IGVudHJ5KQotewotICAgIHJldHVybiBwYXNfY29tcGFjdF9z
dWJwYWdlX21hcF9lbnRyeV9wdHJfaXNfbnVsbCgmZW50cnkpOwotfQotCi1zdGF0aWMgaW5saW5l
IGJvb2wKLXBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnlfaXNfZW1wdHkocGFzX3N1YnBh
Z2VfbWFwX2hhc2h0YWJsZV9lbnRyeSBlbnRyeSkKLXsKLSAgICByZXR1cm4gcGFzX2NvbXBhY3Rf
c3VicGFnZV9tYXBfZW50cnlfcHRyX2lzX251bGwoJmVudHJ5KTsKLX0KLQotc3RhdGljIGlubGlu
ZSBib29sCi1wYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5X2lzX2RlbGV0ZWQocGFzX3N1
YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSBlbnRyeSkKLXsKLSAgICBQQVNfVU5VU0VEX1BBUkFN
KGVudHJ5KTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCogcGFz
X3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeV9nZXRfa2V5KHBhc19zdWJwYWdlX21hcF9oYXNo
dGFibGVfZW50cnkgZW50cnkpCi17Ci0gICAgcmV0dXJuIHBhc19zdWJwYWdlX21hcF9lbnRyeV9m
dWxsX2Jhc2UocGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyX2xvYWQoJmVudHJ5KSk7
Ci19Ci0KLXN0YXRpYyB1bnNpZ25lZCBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2tleV9nZXRf
aGFzaCh2b2lkKiBrZXkpCi17Ci0gICAgcmV0dXJuIHBhc19oYXNoX3B0cihrZXkpOwotfQotCi1z
dGF0aWMgYm9vbCBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2tleV9pc19lcXVhbCh2b2lkKiBh
LCB2b2lkKiBiKQotewotICAgIHJldHVybiBhID09IGI7Ci19Ci0KLVBBU19DUkVBVEVfSEFTSFRB
QkxFKHBhc19zdWJwYWdlX21hcF9oYXNodGFibGUsCi0gICAgICAgICAgICAgICAgICAgICBwYXNf
c3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5LAotICAgICAgICAgICAgICAgICAgICAgcGFzX3N1
YnBhZ2VfbWFwX2hhc2h0YWJsZV9rZXkpOwotCi1leHRlcm4gUEFTX0FQSSBwYXNfc3VicGFnZV9t
YXBfaGFzaHRhYmxlIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfaW5zdGFuY2U7Ci0KLS8qIFRo
aXMgaW5pdGlhbGl6ZXMgYW4gZW50cnkgZm9yIGEgc3lzdGVtIChha2EgZnVsbCkgcGFnZSBpbiB0
aGUgbWFwIGJhc2VkIG9uIGFuIGFsbG9jYXRpb24gb2YKLSAgIHplcm8gb3IgbW9yZSBzdWJwYWdl
cy4gVGhpcyBoYXMgc29tZSBpbXBsaWNhdGlvbnM6Ci0KLSAgIC0gSWYgeW91IGFsbG9jYXRlIG1l
bW9yeSBmb3IgYSBzdWJwYWdlIHNvbWVob3csIHRoZW4geW91IG11c3QgYWxzbyBhbGxvY2F0ZSB0
aGUgcmVzdCBvZiB0aGUKLSAgICAgbWVtb3J5IGluIHRoZSBmdWxsIHBhZ2UgYXMgc3VicGFnZXMu
Ci0KLSAgIC0gVGhlIGNvbW1pdCBzdGF0ZSBvZiBhbGwgc3VicGFnZXMgd2l0aGluIHRoZSBmdWxs
IHBhZ2UgbXVzdCBzdGFydCB0aGUgc2FtZSB3YXkuIFNvLCBpZiB5b3UKLSAgICAgYWxsb2NhdGUg
dGhlIGZpcnN0IHN1YnBhZ2UgaW4gYSBmdWxsIHBhZ2UgYW5kIHRlbGwgdGhlIG1hcCB0aGF0IGl0
J3MgY29tbWl0dGVkLCB0aGVuIHdoZW5ldmVyCi0gICAgIHlvdSBkbyBnZXQgYXJvdW5kIHRvIGFs
bG9jYXRpbmcgdGhlIG90aGVyIHN1YnBhZ2VzLCB0aG9zZSBtdXN0IGFsc28gc3RhcnQgY29tbWl0
dGVkLiBJdCdzIE9LCi0gICAgIGlmIGluIHRoZSBtZWFudGltZSB0aGUgZmlyc3Qgc3VicGFnZSBn
b3QgZGVjb21taXR0ZWQ7IHRoZSBwb2ludCBpcyB0aGF0IHdoYXRldmVyIHRoZSBzdGFydAotICAg
ICBzdGF0ZSB3YXMgKGNvbW1pdHRlZCBpbiB0aGUgZXhhbXBsZSkgbXVzdCBhbHNvIGJlIHRoZSBz
dGFydCBzdGF0ZSBmb3IgYWxsIG90aGVyIHBhZ2VzLiBUaGF0J3MKLSAgICAgYmVjYXVzZSBpZiB0
aGUgc3VicGFnZSBtYXAgaXMgdG9sZCBhYm91dCBhIGZ1bGwgcGFnZSBmb3IgdGhlIGZpcnN0IHRp
bWUgaW4gdGhlIGZvcm0gb2YgYQotICAgICBjYWxsIHRvIHRoaXMgdGhhdCBpbml0aWFsaXplcyBz
b21lIHN1YnBhZ2UgdGhlbiB0aGUgbWFwIHdpbGwgaW5pdGlhbGl6ZSB0aGUgY29tbWl0IHN0YXRl
IG9mCi0gICAgIHRoZSBlbnRpcmUgZnVsbCBwYWdlIHRvIHdoYXRldmVyIHlvdSB0b2xkIHRoaXMu
Ci0KLSAgIC0gVGhlIGJ5dGVzIGNhbm5vdCBiZSBzbyBiaWcgdGhhdCB0aGlzIHJlcXVpcmVzIG1v
cmUgdGhhbiBvbmUgZnVsbCBwYWdlLiAqLwotUEFTX0FQSSBwYXNfc3VicGFnZV9tYXBfZW50cnkq
IHBhc19zdWJwYWdlX21hcF9hZGQodm9pZCogYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21taXRfbW9kZSBjb21t
aXRfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotUEFTX0FQSSBw
YXNfc3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9nZXQodm9pZCogYmFzZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBi
eXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotLyogVGhpcyBpcyBh
IGhlbHBlciB0aGF0IHN1YnBhZ2VfbWFwIGFuZCBzdWJwYWdlX21hcF9lbnRyeSBzaGFyZS4gKi8K
LVBBU19BUEkgdm9pZCogcGFzX3N1YnBhZ2VfbWFwX2dldF9mdWxsX2Jhc2Uodm9pZCogYmFzZSwg
c2l6ZV90IGJ5dGVzKTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19TVUJQ
QUdFX01BUF9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zdWJwYWdlX21hcF9lbnRyeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5jCShyZXZpc2lvbiAyODIyMzgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnku
Ywkobm9uZXhpc3RlbnQpCkBAIC0xLDE3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNpZiBM
SUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmgiCi0KLSNp
bmNsdWRlICJwYXNfYml0dmVjdG9yLmgiCi0jaW5jbHVkZSAicGFzX2RlZmVycmVkX2RlY29tbWl0
X2xvZy5oIgotI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX2lu
dGVybmFsX2NvbmZpZy5oIgotI2luY2x1ZGUgPHN0ZGFsaWduLmg+Ci0KLXN0YXRpYyB2b2lkIHNl
dF9wYWNrZWRfdmFsdWUocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdm9pZCogZnVsbF9iYXNlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBiaXRzKQotewotICAgIGVudHJ5LT5wYWNrZWRfdmFsdWUgPSAodWlu
dHB0cl90KWZ1bGxfYmFzZSB8IGJpdHM7Ci0gICAgUEFTX0FTU0VSVChwYXNfc3VicGFnZV9tYXBf
ZW50cnlfZnVsbF9iYXNlKGVudHJ5KSA9PSBmdWxsX2Jhc2UpOwotICAgIFBBU19BU1NFUlQocGFz
X3N1YnBhZ2VfbWFwX2VudHJ5X2JpdHMoZW50cnkpID09IGJpdHMpOwotfQotCi1wYXNfc3VicGFn
ZV9tYXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9lbnRyeV9jcmVhdGUodm9pZCogZnVsbF9iYXNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19jb21taXRfbW9kZSBjb21taXRfbW9kZSkKLXsKLSAgICBwYXNfc3VicGFnZV9tYXBfZW50cnkq
IGVudHJ5OwotICAgIHVuc2lnbmVkIGJpdHM7Ci0KLSAgICBQQVNfQVNTRVJUKCEoKHVpbnRwdHJf
dClmdWxsX2Jhc2UgJiAocGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpIC0gMSkpKTsKLSAgICBQ
QVNfQVNTRVJUKHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSAvIFBBU19TVUJQQUdFX1NJWkUg
PD0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdCgpKTsKLQotICAgIGVudHJ5ID0gcGFz
X2ltbW9ydGFsX2hlYXBfYWxsb2NhdGVfd2l0aF9tYW51YWxfYWxpZ25tZW50KAotICAgICAgICBz
aXplb2YocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KSwKLSAgICAgICAgYWxpZ25vZihwYXNfbG9jayks
Ci0gICAgICAgICJwYXNfc3VicGFnZV9tYXBfZW50cnkiLAotICAgICAgICBwYXNfb2JqZWN0X2Fs
bG9jYXRpb24pOwotCi0gICAgcGFzX2xvY2tfY29uc3RydWN0KCZlbnRyeS0+Y29tbWl0X2xvY2sp
OwotCi0gICAgYml0cyA9IDA7Ci0gICAgaWYgKGNvbW1pdF9tb2RlKSB7Ci0gICAgICAgIHVpbnRw
dHJfdCBpbmRleDsKLSAgICAgICAgZm9yIChpbmRleCA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1l
bnQoKSAvIFBBU19TVUJQQUdFX1NJWkU7IGluZGV4LS07KQotICAgICAgICAgICAgcGFzX2JpdHZl
Y3Rvcl9zZXRfaW5fb25lX3dvcmQoJmJpdHMsIGluZGV4LCB0cnVlKTsKLSAgICB9Ci0KLSAgICBz
ZXRfcGFja2VkX3ZhbHVlKGVudHJ5LCBmdWxsX2Jhc2UsIGJpdHMpOwotCi0gICAgcGFzX2ZlbmNl
KCk7Ci0KLSAgICByZXR1cm4gZW50cnk7Ci19Ci0KLXN0YXRpYyB2b2lkIHByZXBhcmVfaW5kaWNl
cyhwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2b2lkKiogZnVsbF9iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJf
dCogYmVnaW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90KiBlbmQpCi17
Ci0gICAgKmZ1bGxfYmFzZSA9IHBhc19zdWJwYWdlX21hcF9lbnRyeV9mdWxsX2Jhc2UoZW50cnkp
OwotCi0gICAgKmJlZ2luID0gKCh1aW50cHRyX3QpYmFzZSAtICh1aW50cHRyX3QpKmZ1bGxfYmFz
ZSkgLyBQQVNfU1VCUEFHRV9TSVpFOwotICAgICplbmQgPSAqYmVnaW4gKyBieXRlcyAvIFBBU19T
VUJQQUdFX1NJWkU7Ci19Ci0KLXZvaWQgcGFzX3N1YnBhZ2VfbWFwX2Fzc2VydF9jb21taXRfc3Rh
dGUocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdm9pZCogYmFzZSwgc2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tbWl0X21vZGUgY29tbWl0X21vZGUp
Ci17Ci0gICAgLyogVGhpcyBkb2Vzbid0IGJvdGhlciB3aXRoIGxvY2tpbmcgb24gdGhlIGdyb3Vu
ZHMgdGhhdCB3ZSBkb24ndCBoYXZlIG91dC1vZi10aGluLWFpciB2YWx1ZXMuCi0gICAgICAgV2Un
cmUgb25seSBhc3NlcnRpbmcgY29tbWl0IHN0YXRlIHdoZW4gYWRkaW5nIGFub3RoZXIgc3VicGFn
ZSB0byBhIGZ1bGwgcGFnZSB0aGF0IHdlCi0gICAgICAgcHJldmlvdXNseSBjcmVhdGVkLCBhbmQg
d2Ugd2FudCB0byBhc3NlcnQgdGhhdCBub2JvZHkgY2hhbmdlZCB0aGUgY29tbWl0IHN0YXRlIG9m
IHRob3NlCi0gICAgICAgcGFnZXMgaW4gdGhlIG1lYW50aW1lLiBFdmVuIGlmIHRoZSBjb21taXQg
c3RhdGUgb2Ygb3RoZXIgc3VicGFnZXMgaXMgY2hhbmdpbmcgY29uY3VycmVudGx5LAotICAgICAg
IHRoZSBsYWNrIG9mIG91dC1vZi10aGluLWFpciB2YWx1ZXMgbWVhbnMgdGhhdCB0aGUgYml0cyB3
ZSdyZSBhc3NlcnRpbmcgYWJvdXQgd2lsbCBzdGlsbCBiZQotICAgICAgIHN0dWNrIGluIHRoZSBz
dGF0ZSB0aGF0IHdlIGV4cGVjdGVkIHRoZW0gdG8gYmUgaW4uICovCi0KLSAgICB2b2lkKiBmdWxs
X2Jhc2U7Ci0gICAgdWludHB0cl90IGJlZ2luOwotICAgIHVpbnRwdHJfdCBlbmQ7Ci0gICAgdWlu
dHB0cl90IGluZGV4OwotICAgIHVuc2lnbmVkIGJpdHM7Ci0KLSAgICBwcmVwYXJlX2luZGljZXMo
ZW50cnksIGJhc2UsIGJ5dGVzLCAmZnVsbF9iYXNlLCAmYmVnaW4sICZlbmQpOwotCi0gICAgYml0
cyA9IHBhc19zdWJwYWdlX21hcF9lbnRyeV9iaXRzKGVudHJ5KTsKLQotICAgIGZvciAoaW5kZXgg
PSBlbmQ7IGluZGV4LS0gPiBiZWdpbjspCi0gICAgICAgIFBBU19BU1NFUlQocGFzX2JpdHZlY3Rv
cl9nZXRfZnJvbV9vbmVfd29yZCgmYml0cywgaW5kZXgpID09ICEhY29tbWl0X21vZGUpOwotfQot
Ci1zdGF0aWMgdm9pZCBzZXRfYml0cyhwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAg
ICAgICAgICAgICAgICAgICAgdm9pZCogYmFzZSwgc2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAg
ICAgICAgICAgcGFzX2NvbW1pdF9tb2RlIGNvbW1pdF9tb2RlLAotICAgICAgICAgICAgICAgICAg
ICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogbG9nLAotICAgICAgICAgICAgICAgICAgICAg
cGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAgdm9pZCogZnVs
bF9iYXNlOwotICAgIHVpbnRwdHJfdCBiZWdpbjsKLSAgICB1aW50cHRyX3QgZW5kOwotICAgIHVp
bnRwdHJfdCBpbmRleDsKLSAgICB1bnNpZ25lZCBvbGRfYml0czsKLSAgICB1bnNpZ25lZCBiaXRz
OwotCi0gICAgcGFzX2xvY2tfYXNzZXJ0X2hlbGQoJmVudHJ5LT5jb21taXRfbG9jayk7Ci0KLSAg
ICBwcmVwYXJlX2luZGljZXMoZW50cnksIGJhc2UsIGJ5dGVzLCAmZnVsbF9iYXNlLCAmYmVnaW4s
ICZlbmQpOwotCi0gICAgb2xkX2JpdHMgPSBwYXNfc3VicGFnZV9tYXBfZW50cnlfYml0cyhlbnRy
eSk7Ci0gICAgYml0cyA9IG9sZF9iaXRzOwotCi0gICAgZm9yIChpbmRleCA9IGVuZDsgaW5kZXgt
LSA+IGJlZ2luOykKLSAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXRfaW5fb25lX3dvcmQoJmJpdHMs
IGluZGV4LCBjb21taXRfbW9kZSk7Ci0KLSAgICBzZXRfcGFja2VkX3ZhbHVlKGVudHJ5LCBmdWxs
X2Jhc2UsIGJpdHMpOwotCi0gICAgaWYgKCFvbGRfYml0cyAmJiBiaXRzKSB7Ci0gICAgICAgIFBB
U19BU1NFUlQoY29tbWl0X21vZGUpOwotICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGZ1
bGxfYmFzZSwgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGlmIChvbGRfYml0cyAmJiAhYml0cykgewotICAgICAgICBQQVNfQVNTRVJU
KCFjb21taXRfbW9kZSk7Ci0gICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfYWRkX21h
eWJlX2xvY2tlZCgKLSAgICAgICAgICAgIGxvZywKLSAgICAgICAgICAgIHBhc192aXJ0dWFsX3Jh
bmdlX2NyZWF0ZSgKLSAgICAgICAgICAgICAgICAodWludHB0cl90KWZ1bGxfYmFzZSwgKHVpbnRw
dHJfdClmdWxsX2Jhc2UgKyBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCksCi0gICAgICAgICAg
ICAgICAgJmVudHJ5LT5jb21taXRfbG9jayksCi0gICAgICAgICAgICBwYXNfcmFuZ2VfaXNfbG9j
a2VkLAotICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoIWNvbW1pdF9tb2RlKQotICAgICAgICBwYXNfZGVmZXJyZWRfZGVj
b21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVkX2FkZChsb2csICZlbnRyeS0+Y29tbWl0X2xv
Y2spOwotfQotCi12b2lkIHBhc19zdWJwYWdlX21hcF9lbnRyeV9jb21taXQocGFzX3N1YnBhZ2Vf
bWFwX2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk
KiBiYXNlLCBzaXplX3QgYnl0ZXMpCi17Ci0gICAgLyogTk9URTogcGFzX2xvY2tfaXNfbm90X2hl
bGQgY2FuIGJlIGEgbGllIHNpbmNlIHNldF9iaXRzIGRvZXMgbm90IHVzZSB0aGF0IHZhbHVlIHVu
bGVzcwotICAgICAgIHdlIGFyZSBkZWNvbW1pdHRpbmcuICovCi0gICAgc2V0X2JpdHMoZW50cnks
IGJhc2UsIGJ5dGVzLCBwYXNfY29tbWl0dGVkLCBOVUxMLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7
Ci19Ci0KLS8qIEhhdmUgdG8gYWxyZWFkeSBob2xkIHRoZSBjb21taXQgbG9jayB0byBkbyB0aGlz
LiAqLwotdm9pZCBwYXNfc3VicGFnZV9tYXBfZW50cnlfZGVjb21taXQocGFzX3N1YnBhZ2VfbWFw
X2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQq
IGJhc2UsIHNpemVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxvZywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQotewot
ICAgIHNldF9iaXRzKGVudHJ5LCBiYXNlLCBieXRlcywgcGFzX2RlY29tbWl0dGVkLCBsb2csIGhl
YXBfbG9ja19ob2xkX21vZGUpOwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRy
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
dWJwYWdlX21hcF9lbnRyeS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnkuaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLQotI2lmbmRlZiBQQVNfU1VCUEFHRV9NQVBfRU5UUllfSAotI2RlZmluZSBQQVNfU1VCUEFH
RV9NQVBfRU5UUllfSAotCi0jaW5jbHVkZSAicGFzX2NvbW1pdF9tb2RlLmgiCi0jaW5jbHVkZSAi
cGFzX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9tYWxsb2MuaCIKLQotUEFTX0JFR0lOX0VY
VEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZzsKLXN0cnVjdCBwYXNf
c3VicGFnZV9tYXBfZW50cnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfZGVmZXJyZWRfZGVjb21taXRf
bG9nIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2c7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc3VicGFn
ZV9tYXBfZW50cnkgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5OwotCi0vKiBOT1RFOiBUaGlzIGlzIDQt
Ynl0ZSBhbGlnbmVkISAqLwotc3RydWN0IHBhc19zdWJwYWdlX21hcF9lbnRyeSB7Ci0gICAgcGFz
X2xvY2sgY29tbWl0X2xvY2s7Ci0KLSAgICAvKiBUaGlzIGlzIGxpa2UgYSBwYWdlIHBvaW50ZXIs
IGV4Y2VwdCB0aGF0IHRoZSBsb3cgYml0cyB0aGF0IHdvdWxkIG5vcm1hbGx5IGJlIHplcm8gZm9y
IGEgcGFnZQotICAgICAgIHBvaW50ZXIgKGkuZS4gdGhlIHBhZ2Ugb2Zmc2V0IGJpdHMpIGFyZSB1
c2VkIGFzIGEgYml0bWFwLiBUaGlzIGNvbnN0cmFpbnMgdGhlIHBvc3NpYmxlIHN5c3RlbQotICAg
ICAgIHBhZ2Ugc2l6ZSBhcyBmb2xsb3dzOgotICAgICAgIAotICAgICAgICAgICBTWVNURU1fUEFH
RV9TSVpFL2xvZyhTWVNURU1fUEFHRV9TSVpFKSA8PSBQQVNfU1VCUEFHRV9TSVpFCi0KLSAgICAg
ICBXaGljaCBjYW4gYmUgYWxzbyB3cml0dGVuIGFzIChpZiB3ZSB3YW50IHRvIHVzZSBpbnRlZ2Vy
cyk6Ci0gICAgCi0gICAgICAgICAgIFNZU1RFTV9QQUdFX1NJWkUvUEFTX1NVQlBBR0VfU0laRSA8
PSBsb2coU1lTVEVNX1BBR0VfU0laRSkKLQotICAgICAgIE5PVEU6IFRoaXMgaXMgbm90IHVpbnRw
dHJfdC1hbGlnbmVkISBXZSBsZXZlcmFnZSB0aGUgZmFjdCB0aGF0IHRoaXMgaXMgYWx3YXlzIGFj
Y2Vzc2VkIHVuZGVyCi0gICAgICAgdGhlIGNvbW1pdCBsb2NrIGFuZCBzYXZlIHNvbWUgc3BhY2Uu
IFdlIGFsc28gbGV2ZXJhZ2UgdGhlIGZhY3QgdGhhdCB0aGUgcGFnZSBmdWxsIGJhc2UgYml0cwot
ICAgICAgIGFyZSBpbW11dGFibGUsIHNvIHJlYWRpbmcgdGhvc2UgY2FuIGJlIGRvbmUgYXQgYW55
IHRpbWUsIHdpdGhvdXQgbG9ja2luZy4gKi8KLSAgICB1aW50cHRyX3QgcGFja2VkX3ZhbHVlOwot
fTsKLQotUEFTX0FQSSBwYXNfc3VicGFnZV9tYXBfZW50cnkqIHBhc19zdWJwYWdlX21hcF9lbnRy
eV9jcmVhdGUodm9pZCogZnVsbF9iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbW1pdF9tb2RlIGNvbW1pdF9tb2Rl
KTsKLQotc3RhdGljIGlubGluZSB2b2lkKiBwYXNfc3VicGFnZV9tYXBfZW50cnlfZnVsbF9iYXNl
KHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnkpCi17Ci0gICAgcmV0dXJuICh2b2lkKikoZW50
cnktPnBhY2tlZF92YWx1ZSAmIC1wYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpOwotfQotCi1z
dGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19zdWJwYWdlX21hcF9lbnRyeV9iaXRzKHBhc19zdWJw
YWdlX21hcF9lbnRyeSogZW50cnkpCi17Ci0gICAgdWludHB0cl90IHJlc3VsdCA9IGVudHJ5LT5w
YWNrZWRfdmFsdWUgJiAocGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpIC0gMSk7Ci0gICAgUEFT
X0FTU0VSVCgodW5zaWduZWQpcmVzdWx0ID09IHJlc3VsdCk7Ci0gICAgcmV0dXJuICh1bnNpZ25l
ZClyZXN1bHQ7Ci19Ci0KLVBBU19BUEkgdm9pZCBwYXNfc3VicGFnZV9tYXBfYXNzZXJ0X2NvbW1p
dF9zdGF0ZShwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29t
bWl0X21vZGUgY29tbWl0X21vZGUpOwotCi0vKiBIYXZlIHRvIGFscmVhZHkgaG9sZCB0aGUgY29t
bWl0IGxvY2sgdG8gZG8gdGhpcy4gKi8KLVBBU19BUEkgdm9pZCBwYXNfc3VicGFnZV9tYXBfZW50
cnlfY29tbWl0KHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMpOwotCi0v
KiBIYXZlIHRvIGFscmVhZHkgaG9sZCB0aGUgY29tbWl0IGxvY2sgdG8gZG8gdGhpcy4gVGhpcyB3
aWxsIHJlbGVhc2UgdGhlIGNvbW1pdCBsb2NrLiAqLwotUEFTX0FQSSB2b2lkIHBhc19zdWJwYWdl
X21hcF9lbnRyeV9kZWNvbW1pdChwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3Qg
Ynl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxvZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwot
Ci1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX1NVQlBBR0VfTUFQX0VOVFJZX0gg
Ki8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSwxNCArMzEsMTMgQEAKIAogI2luY2x1ZGUgPG1hY2gvdGhyZWFkX2Fj
dC5oPgogI2luY2x1ZGUgInBhc19hbGxfaGVhcF9jb25maWdzLmgiCi0jaW5jbHVkZSAicGFzX2Fs
bF9tYWdhemluZXMuaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVf
aGVhcC5oIgogI2luY2x1ZGUgInBhc19kZWJ1Z19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBf
bG9jay5oIgogI2luY2x1ZGUgInBhc19sb2cuaCIKICNpbmNsdWRlICJwYXNfbW9ub3RvbmljX3Rp
bWUuaCIKICNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
cGFnZS5oIgogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgiCiAjaW5j
bHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgiCkBAIC01OSwxOCArNTgsNiBAQCBz
aXplX3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hCiBzdGF0aWMgdm9pZCBkZWFs
bG9jYXRlKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSkKIHsKICAg
ICBjaGFyKiBiZWdpbjsKLSAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxh
eW91dF9ub2RlOwotCi0gICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNI
X0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKLSAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBh
bGxvY2F0b3JfaW5kZXg7Ci0KLSAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2RlKTsK
LSAgICAgICAgCi0gICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gdGhyZWFkX2xvY2FsX2Nh
Y2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCi0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9kZXN0cnVjdCgKLSAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKHRocmVhZF9sb2NhbF9jYWNo
ZSwgYWxsb2NhdG9yX2luZGV4KSk7Ci0gICAgfQogCiAgICAgcGFzX2NvbXBhY3RfbGFyZ2VfdXRp
bGl0eV9mcmVlX2hlYXBfZGVhbGxvY2F0ZSgKICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5z
aG91bGRfc3RvcF9iaXR2ZWN0b3IsCkBAIC0xNzMsMTMgKzE2MCw4IEBAIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWwKICAgICAKICAgICB0aHJlYWRfbG9jYWxfY2FjaGUt
PmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCA9IGFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3Vu
ZDsKIAotICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FU
T1IobGF5b3V0X25vZGUpKSB7Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0
KAotICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9y
X2ltcGwoCi0gICAgICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLAotICAgICAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRl
eChsYXlvdXRfbm9kZSkpLAotICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9nZXRfZGlyZWN0b3J5KGxheW91dF9ub2RlKSk7Ci0gICAgfQorICAgIGZvciAoUEFT
X1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKQor
ICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbnN0cnVjdChsYXlv
dXRfbm9kZSwgdGhyZWFkX2xvY2FsX2NhY2hlKTsKIAogICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfc2V0X2ltcGwodGhyZWFkX2xvY2FsX2NhY2hlKTsKICAgICAKQEAgLTI0MiwxMCArMjI0LDcg
QEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX3RocmVhZF9sbwogICAgIG9sZF9pbmRl
eF91cHBlcl9ib3VuZCA9IHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVy
X2JvdW5kOwogICAgIAogICAgIFBBU19BU1NFUlQoZGVzaXJlZF9hbGxvY2F0b3JfaW5kZXggPj0g
b2xkX2luZGV4X3VwcGVyX2JvdW5kKTsKLSAgICAKLSAgICAvKiBJdCBjb3VsZCBiZSB0aGF0IHdl
IGp1c3QgZG9uJ3QgaGF2ZSBhbiBhbGxvY2F0b3IgaW5kZXggeWV0LiAqLwotICAgIGlmIChkZXNp
cmVkX2FsbG9jYXRvcl9pbmRleCA+PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCkKLSAg
ICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7
CisgICAgUEFTX0FTU0VSVChkZXNpcmVkX2FsbG9jYXRvcl9pbmRleCA8IChwYXNfYWxsb2NhdG9y
X2luZGV4KVVJTlRfTUFYKTsKICAgICAKICAgICAvKiBSYXRoZXIgdGhhbiBjb3B5IHRoZSBkZWFs
bG9jYXRpb24gbG9nIGxldCdzIGp1c3QgZmx1c2ggaXQuICovCiAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9nKHRocmVhZF9sb2NhbF9jYWNoZSwgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CkBAIC0yNzgsMTUgKzI1NywxMyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAgICAgICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNI
RV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7CiAgICAgICAgICAgICBwYXNf
YWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKICAgICAgICAgICAgIAotICAgICAgICAg
ICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9n
ZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2RlKTsKKyAgICAgICAgICAgIGFsbG9jYXRvcl9p
bmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9p
bmRleF9nZW5lcmljKGxheW91dF9ub2RlKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KGFsbG9jYXRvcl9pbmRleCA+PSBvbGRfaW5kZXhfdXBwZXJfYm91bmQpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX21vdmUoCi0gICAgICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwo
Ci0gICAgICAgICAgICAgICAgICAgIG5ld190aHJlYWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9p
bmRleCksCi0gICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxf
YWxsb2NhdG9yX2ltcGwoCi0gICAgICAgICAgICAgICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZSwg
YWxsb2NhdG9yX2luZGV4KSk7CisKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfbW92ZSgKKyAgICAgICAgICAgICAgICBsYXlvdXRfbm9kZSwgbmV3X3RocmVh
ZF9sb2NhbF9jYWNoZSwgdGhyZWFkX2xvY2FsX2NhY2hlKTsKICAgICAgICAgfQogCiAgICAgICAg
IG1lbWNweShuZXdfdGhyZWFkX2xvY2FsX2NhY2hlLT5zaG91bGRfc3RvcF9iaXR2ZWN0b3IsCkBA
IC0zMDAsMTYgKzI3NywxNCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFk
X2xvCiAgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRP
UihsYXlvdXRfbm9kZSkpIHsKICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3Jf
aW5kZXg7CiAKLSAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2RlKTsKKyAgICAgICAg
YWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRf
YWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0X25vZGUpOwogICAgICAgICAKICAgICAgICAg
aWYgKGFsbG9jYXRvcl9pbmRleCA8IG9sZF9pbmRleF91cHBlcl9ib3VuZCkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IGRlc2lyZWRfaW5kZXhf
dXBwZXJfYm91bmQpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9jb25zdHJ1Y3QoCi0gICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9s
b2NhbF9hbGxvY2F0b3JfaW1wbCgKLSAgICAgICAgICAgICAgICBuZXdfdGhyZWFkX2xvY2FsX2Nh
Y2hlLCBhbGxvY2F0b3JfaW5kZXgpLAotICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KGxheW91dF9ub2RlKSk7CisKKyAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb25zdHJ1Y3QobGF5b3V0X25vZGUsIG5l
d190aHJlYWRfbG9jYWxfY2FjaGUpOwogICAgIH0KIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgp
OwpAQCAtMzQ1LDMwICszMjAsMjYgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxf
YWxsb2NhdAogdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9y
cyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9k
ZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQogewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKLSAgICAKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxh
eW91dF9ub2RlOwogCiAgICAgLyogV2UgaGF2ZSB0byBob2xkIHRoZSBoZWFwIGxvY2sgdG8gZG8g
dGhpbmdzIHRvIG91ciBsb2NhbCBhbGxvY2F0b3JzIHVubGVzcyB3ZSBhbHNvIHNldCB0aGUKICAg
ICAgICBpc19pbl91c2UgYml0LiAqLwogICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25h
bGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgIAorICAgIHBhc19sb2NrX2xvY2soJnRocmVh
ZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNoX2xvY2spOworCiAgICAgZm9yIChQQVNfVEhS
RUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKICAg
ICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3IgKmFsbG9jYXRvcjsKIAotICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5
b3V0X25vZGUpOworICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhsYXlvdXRfbm9kZSk7
CiAgICAgICAgIAogICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IHRocmVhZF9sb2NhbF9j
YWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQogICAgICAgICAgICAgYnJlYWs7CiAK
LSAgICAgICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2ltcGwoCi0gICAgICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9p
bmRleCk7Ci0gICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcGFzX2xvZygiU3RvcHBp
bmcgYWxsb2NhdG9yICVwIGJlY2F1c2UgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2Fs
X2FsbG9jYXRvcnNcbiIsIGFsbG9jYXRvcik7Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c3RvcChhbGxvY2F0b3IsIHBhc19sb2NrX2xvY2tfbW9kZV9sb2NrLCBwYXNfbG9ja19pc19oZWxk
KTsKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9wKAorICAg
ICAgICAgICAgbGF5b3V0X25vZGUsIHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX2xvY2tfbG9ja19t
b2RlX2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpOwogICAgIH0KIAorICAgIHBhc19sb2NrX3VubG9j
aygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hfbG9jayk7CiAgICAgcGFzX2hl
YXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIH0KIApA
QCAtMzk4LDcgKzM2OSw3IEBAIHN0YXRpYyBib29sIHN0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9u
ZWMKICAgICAKICAgICBzdG9wX2xvY2FsX2FsbG9jYXRvcnNfaWZfbmVjZXNzYXJ5X2RhdGEqIGRh
dGE7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgcGFzX2xv
Y2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRhOwogCiAgICAgZGF0YSA9IGFyZzsKIApAQCAtNDA4LDE4
ICszNzksMTkgQEAgc3RhdGljIGJvb2wgc3RvcF9sb2NhbF9hbGxvY2F0b3JzX2lmX25lYwogICAg
IAogICAgIHBhc19iaXR2ZWN0b3Jfc2V0KGRhdGEtPnNob3VsZF9zdG9wX2JpdHZlY3RvciwgYWxs
b2NhdG9yX2luZGV4LCBmYWxzZSk7CiAgICAgCi0gICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCisgICAgc2NhdmVuZ2VyX2RhdGEg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKICAgICAg
ICAgZGF0YS0+dGhyZWFkX2xvY2FsX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOwotICAgIAotICAg
IGlmIChhbGxvY2F0b3IgPT0gZGF0YS0+cmVxdWVzdGluZ19hbGxvY2F0b3IpCisKKyAgICBpZiAo
KHBhc19sb2NhbF9hbGxvY2F0b3IqKXNjYXZlbmdlcl9kYXRhID09IGRhdGEtPnJlcXVlc3Rpbmdf
YWxsb2NhdG9yKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKLSAgICBpZiAoIWFsbG9jYXRv
ci0+c2hvdWxkX3N0b3BfY291bnQpCisgICAgaWYgKCFzY2F2ZW5nZXJfZGF0YS0+c2hvdWxkX3N0
b3BfY291bnQpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIGlmICh2ZXJib3NlKQot
ICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgYmVjYXVzZSBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9uZWNlc3NhcnlcbiIsIGFsbG9j
YXRvcik7Ci0gICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKGFsbG9jYXRvciwgcGFzX2xvY2tf
bG9ja19tb2RlX2xvY2ssIGRhdGEtPmhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICBwYXNf
bG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgYmVjYXVzZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X3N0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9uZWNlc3NhcnlcbiIsIHNjYXZlbmdlcl9kYXRhKTsK
KyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCisgICAgICAgIHNj
YXZlbmdlcl9kYXRhLCBwYXNfbG9ja19sb2NrX21vZGVfbG9jaywgZGF0YS0+aGVhcF9sb2NrX2hv
bGRfbW9kZSk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTQ1MSw2ICs0MjMsNyBAQCB2b2lk
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hCiAKIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkCiBwcm9jZXNzX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9jb25maWcocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUgZGVhbGxvY2F0aW9uX21vZGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcgcGFnZV9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2l6ZV90KiBpbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50cHRyX3QgZW5jb2RlZF9iZWdpbiwKQEAgLTQ3Nyw3ICs0NTAsOCBAQCBwcm9jZXNzX2RlYWxs
b2NhdGlvbl9sb2dfd2l0aF9jb25maWcocGFzCiAKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg
ICAgIGxhc3RfaGVsZF9sb2NrID0gKmhlbGRfbG9jazsKLSAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfZGVhbGxvY2F0ZShiZWdpbiwgaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7CisgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUoCisgICAgICAgICAgICAgICAg
YmVnaW4sIGhlbGRfbG9jaywgZGVhbGxvY2F0aW9uX21vZGUsIGNhY2hlLCBwYWdlX2NvbmZpZyk7
CiAgICAgICAgICAgICBpZiAodmVyYm9zZSAmJiAqaGVsZF9sb2NrICE9IGxhc3RfaGVsZF9sb2Nr
ICYmIGxhc3RfaGVsZF9sb2NrKQogICAgICAgICAgICAgICAgIHBhc19sb2coIlN3aXRjaGVkIGxv
Y2sgZnJvbSAlcCB0byAlcC5cbiIsIGxhc3RfaGVsZF9sb2NrLCAqaGVsZF9sb2NrKTsKICAgICAg
ICAgICAgIApAQCAtNDk3LDE5ICs0NzEsMTUgQEAgcHJvY2Vzc19kZWFsbG9jYXRpb25fbG9nX3dp
dGhfY29uZmlnKHBhcwogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9u
X2xvZyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tf
aG9sZF9tb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzX2xv
Y2FsKQorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xv
ZygKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUgZGVhbGxvY2F0aW9uX21vZGUpCiB7CiAg
ICAgc2l6ZV90IGluZGV4OwogICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7Ci0gICAgCi0gICAgaWYg
KCF0aHJlYWRfbG9jYWxfY2FjaGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhc19sb2NrX2xv
Y2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNoX2xvY2spOwotICAgIHBhc19j
b21waWxlcl9mZW5jZSgpOwogCisgICAgcGFzX2xvY2tfdGVzdGluZ19hc3NlcnRfaGVsZCgmdGhy
ZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hfbG9jayk7CisgICAgCiAgICAgaW5kZXgg
PSB0aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfaW5kZXg7CiAgICAgaGVsZF9s
b2NrID0gTlVMTDsKIApAQCAtNTIzLDcgKzQ5Myw3IEBAIHN0YXRpYyB2b2lkIGZsdXNoX2RlYWxs
b2NhdGlvbl9sb2cocGFzX3QKICNkZWZpbmUgUEFTX0RFRklORV9TRUdSRUdBVEVEX1BBR0VfQ09O
RklHX0tJTkQobmFtZSwgdmFsdWUpIFwKICAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kXyAjIyBuYW1lOiBcCiAgICAgICAgICAgICBwcm9jZXNzX2RlYWxsb2NhdGlv
bl9sb2dfd2l0aF9jb25maWcoIFwKLSAgICAgICAgICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUs
IHZhbHVlLCAmaW5kZXgsIGVuY29kZWRfYmVnaW4sICZoZWxkX2xvY2spOyBcCisgICAgICAgICAg
ICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBkZWFsbG9jYXRpb25fbW9kZSwgdmFsdWUsICZpbmRl
eCwgZW5jb2RlZF9iZWdpbiwgJmhlbGRfbG9jayk7IFwKICAgICAgICAgICAgIGJyZWFrOwogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmIgogI3VuZGVmIFBBU19E
RUZJTkVfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19LSU5ECkBAIC01MzEsMjQgKzUwMSwzNyBAQCBz
dGF0aWMgdm9pZCBmbHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190CiAgICAgfQogICAgIAogICAg
IHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICAKLSAgICBpZiAoaXNfbG9j
YWwpIHsKLSAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4
ID0gMDsKLSAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5udW1fbG9nZ2VkX2J5dGVzID0gMDsK
LSAgICB9Cit9CiAKLSAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICBwYXNfbG9ja191bmxv
Y2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNoX2xvY2spOworc3RhdGljIHZv
aWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19mb3Jfc2NhdmVuZ2VyKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSkKK3sKKyAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNo
ZS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleCkKKyAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGlm
IChoZWFwX2xvY2tfaG9sZF9tb2RlID09IHBhc19sb2NrX2lzX25vdF9oZWxkKQotICAgICAgICBw
YXNfc2NhdmVuZ2VyX25vdGlmeV9lbGlnaWJpbGl0eV9pZl9uZWVkZWQoKTsKKyAgICBmbHVzaF9k
ZWFsbG9jYXRpb25fbG9nKHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxv
Y2F0aW9uX2RpcmVjdF9tb2RlKTsKIH0KIAogdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zs
dXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2Fs
X2NhY2hlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7Ci0gICAgYm9vbCBp
c19sb2NhbCA9IHRydWU7Ci0gICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyh0aHJlYWRfbG9jYWxf
Y2FjaGUsIGhlYXBfbG9ja19ob2xkX21vZGUsIGlzX2xvY2FsKTsKKyAgICBpZiAoIXRocmVhZF9s
b2NhbF9jYWNoZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFzX2xvY2tfbG9jaygmdGhyZWFk
X2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hfbG9jayk7CisKKyAgICBmbHVzaF9kZWFsbG9j
YXRpb25fbG9nKHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9u
X3RvX3ZpZXdfY2FjaGVfbW9kZSk7CisgICAgCisgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFs
bG9jYXRpb25fbG9nX2luZGV4ID0gMDsKKyAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPm51bV9sb2dn
ZWRfYnl0ZXMgPSAwOworCisgICAgLyogRGlydHlpbmcgdGhlIGRlYWxsb2NhdGlvbiBsb2cgaXMg
YSBzaWduYWwgdG8gdGhlIHNjYXZlbmdlciB0aGF0IHdlIGFyZSBhY3RpdmVseSBvcGVyYXRpbmcg
b24KKyAgICAgICB0aGlzIGxvZy4gKi8KKyAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxsb2Nh
dGlvbl9sb2dfZGlydHkgPSB0cnVlOworCisgICAgcGFzX2xvY2tfdW5sb2NrKCZ0aHJlYWRfbG9j
YWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKKyAgICAKKyAgICBpZiAoaGVhcF9sb2Nr
X2hvbGRfbW9kZSA9PSBwYXNfbG9ja19pc19ub3RfaGVsZCkKKyAgICAgICAgcGFzX3NjYXZlbmdl
cl9ub3RpZnlfZWxpZ2liaWxpdHlfaWZfbmVlZGVkKCk7CiB9CiAKIHN0YXRpYyB2b2lkIHN1c3Bl
bmQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpCkBAIC01ODcsNyArNTcwLDcgQEAgc3Rh
dGljIHZvaWQgcmVzdW1lKHBhc190aHJlYWRfbG9jYWxfY2FjaAogICAgIAogICAgIGlmIChjYWNo
ZS0+dGhyZWFkID09IHB0aHJlYWRfc2VsZigpKQogICAgICAgICByZXR1cm47Ci0gICAgCisKICAg
ICByZXN1bHQgPSB0aHJlYWRfcmVzdW1lKHB0aHJlYWRfbWFjaF90aHJlYWRfbnAoY2FjaGUtPnRo
cmVhZCkpOwogICAgIAogICAgIFBBU19BU1NFUlQocmVzdWx0ID09IEtFUk5fU1VDQ0VTUyk7CkBA
IC02MjcsNyArNjEwLDI2IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBh
c18KICAgICAgICAgY2FjaGUgPSBub2RlLT5jYWNoZTsKICAgICAgICAgaWYgKCFjYWNoZSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAKKworICAgICAgICBwYXNfbG9ja19sb2NrKCZu
b2RlLT5sb2dfZmx1c2hfbG9jayk7CisKKyAgICAgICAgc3dpdGNoIChkZWFsbG9jYXRvcl9hY3Rp
b24pIHsKKyAgICAgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uOgor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBwYXNfZGVhbGxv
Y2F0b3Jfc2NhdmVuZ2VfZmx1c2hfbG9nX2lmX2NsZWFuX2FjdGlvbjoKKyAgICAgICAgICAgIGlm
IChjYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19kaXJ0eSkgeworICAgICAgICAgICAgICAgIGNhY2hl
LT5kZWFsbG9jYXRpb25fbG9nX2RpcnR5ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gISFjYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleDsKKyAgICAgICAgICAgIH0gZWxzZQor
ICAgICAgICAgICAgICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZm9yX3NjYXZlbmdlcihjYWNo
ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgICAgICBjYXNlIHBhc19k
ZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfYWN0aW9uOgorICAgICAgICAgICAgZmx1c2hf
ZGVhbGxvY2F0aW9uX2xvZ19mb3Jfc2NhdmVuZ2VyKGNhY2hlKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKICAgICAgICAgaWYgKGFsbG9jYXRvcl9hY3Rpb24gIT0gcGFzX2FsbG9j
YXRvcl9zY2F2ZW5nZV9ub19hY3Rpb24pIHsKICAgICAgICAgICAgIGJvb2wgZGlkX3N1c3BlbmQ7
CiAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9u
b2RlOwpAQCAtNjM2LDM5ICs2MzgsNDAgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zv
cl9hbGwocGFzXwogCiAgICAgICAgICAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZ
T1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkgewogICAgICAgICAgICAgICAgIHBhc19h
bGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OwotICAgICAgICAgICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKKyAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhKiBzY2F2ZW5nZXJfZGF0YTsKIAotICAgICAgICAgICAgICAgIGFs
bG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2Fs
bG9jYXRvcl9pbmRleChsYXlvdXRfbm9kZSk7CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2lu
ZGV4ID0KKyAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0X25vZGUpOwogCiAgICAgICAg
ICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3Vw
cGVyX2JvdW5kKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9s
b2NhbF9hbGxvY2F0b3JfaW1wbChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKLSAgICAgICAgICAg
ICAgICAKKworICAgICAgICAgICAgICAgIHNjYXZlbmdlcl9kYXRhID0gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7
CisKICAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yX2FjdGlvbiA9PSBwYXNfYWxsb2NhdG9y
X3NjYXZlbmdlX3JlcXVlc3Rfc3RvcF9hY3Rpb24pIHsKICAgICAgICAgICAgICAgICAgICAgdWlu
dDhfdCBzaG91bGRfc3RvcF9jb3VudDsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygi
RG9pbmcgdGhlIHJlcXVlc3QgdGhpbmd5LlxuIik7CiAgICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yLT5kaXJ0eSkgeworICAgICAgICAgICAgICAg
ICAgICBpZiAoc2NhdmVuZ2VyX2RhdGEtPmRpcnR5KSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJJdCB3
YXMgZGlydHkuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvci0+ZGlydHkg
PSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjYXZlbmdlcl9kYXRhLT5kaXJ0eSA9
IGZhbHNlOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAKICAgICAg
ICAgICAgICAgICAgICAgLyogQmFpbCBvdXQgaWYgaXQncyBubyBsb25nZXIgYWN0aXZlLiAqLwot
ICAgICAgICAgICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3JfaXNfYWN0aXZlKGFs
bG9jYXRvcikpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2ZShzY2F2ZW5nZXJfZGF0YSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19sb2coIkl0IHdhcyBlbXB0eS5cbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICBzaG91bGRf
c3RvcF9jb3VudCA9IGFsbG9jYXRvci0+c2hvdWxkX3N0b3BfY291bnQ7CisgICAgICAgICAgICAg
ICAgICAgIHNob3VsZF9zdG9wX2NvdW50ID0gc2NhdmVuZ2VyX2RhdGEtPnNob3VsZF9zdG9wX2Nv
dW50OwogICAgICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkX3N0b3BfY291bnQgPCBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBhbGxvY2F0b3ItPnNob3VsZF9zdG9wX2NvdW50ID0gKytzaG91bGRfc3Rv
cF9jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNjYXZlbmdlcl9kYXRhLT5zaG91bGRf
c3RvcF9jb3VudCA9ICsrc2hvdWxkX3N0b3BfY291bnQ7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoc2hvdWxkX3N0b3BfY291bnQK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPD0gcGFzX2xvY2FsX2FsbG9jYXRv
cl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZCk7CkBAIC02OTMsNyArNjk2LDcgQEAgYm9v
bCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzXwogICAgICAgICAgICAgICAgICAg
ICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9hY3Rpb24gPT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9m
b3JjZV9zdG9wX2FjdGlvbik7CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
aWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX2FjdGl2ZShhbGxvY2F0b3IpKSB7CisgICAgICAg
ICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2
ZShzY2F2ZW5nZXJfZGF0YSkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZW1wdHkuXG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CkBAIC03MDcsMjMgKzcxMCwyMiBAQCBib29sIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfCiAgICAgICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIk5l
ZWQgdG8gc3VzcGVuZCBmb3IgYWxsb2NhdG9yICVwXG4iLCBhbGxvY2F0b3IpOworICAgICAgICAg
ICAgICAgICAgICBwYXNfbG9nKCJOZWVkIHRvIHN1c3BlbmQgZm9yIGFsbG9jYXRvciAlcFxuIiwg
c2NhdmVuZ2VyX2RhdGEpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICgh
ZGlkX3N1c3BlbmQpIHsKICAgICAgICAgICAgICAgICAgICAgc3VzcGVuZChjYWNoZSk7Ci0gICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBkaWRfc3VzcGVuZCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlm
IChhbGxvY2F0b3ItPmlzX2luX3VzZSkgeworICAgICAgICAgICAgICAgIGlmIChzY2F2ZW5nZXJf
ZGF0YS0+aXNfaW5fdXNlKSB7CiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CiAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJTdG9w
cGluZyBhbGxvY2F0b3IgJXAgd2hpbGUgc3VzcGVuZGVkXG4iLCBhbGxvY2F0b3IpOwotICAgICAg
ICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKAotICAgICAgICAgICAgICAg
ICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9ja19sb2NrX21vZGVfdHJ5X2xvY2ssIHBhc19sb2Nr
X2lzX2hlbGQpKQorICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0
b3IgJXAgd2hpbGUgc3VzcGVuZGVkXG4iLCBzY2F2ZW5nZXJfZGF0YSk7CisgICAgICAgICAgICAg
ICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCisgICAgICAg
ICAgICAgICAgICAgICAgICBzY2F2ZW5nZXJfZGF0YSwgcGFzX2xvY2tfbG9ja19tb2RlX3RyeV9s
b2NrLCBwYXNfbG9ja19pc19oZWxkKSkKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1
ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApAQCAtNzMxLDEyICs3MzMsNyBAQCBib29s
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfCiAgICAgICAgICAgICAgICAgcmVz
dW1lKGNhY2hlKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKGRlYWxsb2NhdG9y
X2FjdGlvbiA9PSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hfbG9nX2FjdGlvbikgewot
ICAgICAgICAgICAgYm9vbCBpc19sb2NhbDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgaXNf
bG9jYWwgPSBmYWxzZTsKLSAgICAgICAgICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2coY2FjaGUs
IHBhc19sb2NrX2lzX2hlbGQsIGlzX2xvY2FsKTsKLSAgICAgICAgfQorICAgICAgICBwYXNfbG9j
a191bmxvY2soJm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKICAgICB9CiAgICAgCiAgICAgcGFzX2hl
YXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0gKICNkZWZp
bmUgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9ICiAKKyNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2lu
ZGV4LmgiCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCIKICNpbmNs
dWRlICJwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgiCiAjaW5jbHVkZSAicGFzX2Zh
c3RfdGxzLmgiCkBAIC01Niw2ICs1NywxMCBAQCBzdHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZSB7CiAKICAgICB1bnNpZ25lZCBkZWFsbG9jYXRpb25fbG9nX2luZGV4OwogCisgICAgLyogQSBk
aXJ0eSBhbGxvY2F0aW9uIGxvZyBpcyBvbmUgdGhhdCBoYXMgYmVlbiBmbHVzaGVkIGJ5IHRoZSB0
aHJlYWQgcmVjZW50bHkuIEEgY2xlYW4gb25lIGlzCisgICAgICAgb25lIHRoYXQgaGFzbid0IGJl
ZW4gdG91Y2hlZCBieSB0aGUgdGhyZWFkIChleGNlcHQgbWF5YmUgYnkgYXBwZW5kaW5nIG1vcmUg
dGhpbmdzIHRvIGl0KS4gKi8KKyAgICBib29sIGRlYWxsb2NhdGlvbl9sb2dfZGlydHk7CisKICAg
ICBzaXplX3QgbnVtX2xvZ2dlZF9ieXRlczsgLyogVGhpcyB1bmRlcmNvdW50cyBzaW5jZSB3aGVu
IHdlIGFwcGVuZCBzbWFsbCBvYmplY3RzIHdlIGRvbid0CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRvdWNoIHRoaXMuICovCiAKQEAgLTE2OCwxMiArMTczLDEyIEBAIFBBU19BUEkg
cGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX3QKICAgICB1bnNpZ25lZCBhbGxvY2F0b3Jf
aW5kZXgsCiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCi1z
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2xvY2FsX2FsbG9jYXRvcioKK3N0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB2b2lkKgogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxs
b2NhdG9yX2ltcGwoCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2Nh
Y2hlLAogICAgIHVpbnRwdHJfdCBhbGxvY2F0b3JfaW5kZXgpCiB7Ci0gICAgcmV0dXJuIChwYXNf
bG9jYWxfYWxsb2NhdG9yKikodGhyZWFkX2xvY2FsX2NhY2hlLT5sb2NhbF9hbGxvY2F0b3JzICsg
YWxsb2NhdG9yX2luZGV4KTsKKyAgICByZXR1cm4gKHZvaWQqKSh0aHJlYWRfbG9jYWxfY2FjaGUt
PmxvY2FsX2FsbG9jYXRvcnMgKyBhbGxvY2F0b3JfaW5kZXgpOwogfQogCiBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQKQEAgLTE4Myw2ICsxODgsMTAg
QEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdAogICAgIHBhc19sb2Nr
X2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQogewogICAgIGlmIChQQVNfVU5MSUtFTFko
YWxsb2NhdG9yX2luZGV4ID49IHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3Vw
cGVyX2JvdW5kKSkgeworICAgICAgICAvKiBJdCBjb3VsZCBiZSB0aGF0IHdlIGp1c3QgZG9uJ3Qg
aGF2ZSBhbiBhbGxvY2F0b3IgaW5kZXggeWV0LiAqLworICAgICAgICBpZiAoYWxsb2NhdG9yX2lu
ZGV4ID49IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKQorICAgICAgICAgICAgcmV0dXJu
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAgCiAgICAg
ICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3Jfc2xv
dygKICAgICAgICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2luZGV4LCBoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKICAgICB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmMJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDggKzMxLDkgQEAKIAogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNf
bGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKKyNpbmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNo
ZV9ub2RlLmgiCiAjaW5jbHVkZSAicGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5o
IgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgog
I2luY2x1ZGUgInBhc191dGlscy5oIgogCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2ZpcnN0X25vZGUgPSBOVUxMOwpAQCAt
NDUsMTcgKzQ2LDEzIEBAIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMK
IAogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggcmVzdWx0OwogICAgIGJvb2wgZGlkX292ZXJmbG93
OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5Owog
CiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogCiAgICAgUEFTX0FTU0VSVCgKLSAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2lu
ZGV4KG5vZGUpCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0
X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5vZGUpCiAgICAgICAgID09IChwYXNfYWxsb2NhdG9y
X2luZGV4KVVJTlRfTUFYKTsKIAotICAgIGRpcmVjdG9yeSA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShub2RlKTsKLSAgICBQQVNfQVNTRVJUKGRpcmVj
dG9yeSk7Ci0KICAgICBQQVNfQVNTRVJUKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9uZXh0KG5vZGUpKTsKICAgICAKICAgICByZXN1bHQgPSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleDsKQEAgLTY2LDEyICs2MywxMiBAQCBw
YXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjCiAgICAgaWYgKHZlcmJvc2Up
IHsKICAgICAgICAgcGFzX2xvZygicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX25v
ZGU6IG5vZGUgPSAlcCwgYWxsb2NhdG9yX2luZGV4ID0gJXUsICIKICAgICAgICAgICAgICAgICAi
bnVtX2FsbG9jYXRvcl9pbmRpY2VzID0gJXVcbiIsCi0gICAgICAgICAgICAgICAgbm9kZSwgcmVz
dWx0LCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9p
bmRpY2VzKGRpcmVjdG9yeSkpOworICAgICAgICAgICAgICAgIG5vZGUsIHJlc3VsdCwgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKG5vZGUpKTsKICAg
ICB9CiAKICAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1aWx0aW5fYWRkX292ZXJmbG93KAogICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleCwKLSAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3Jf
aW5kaWNlcyhkaXJlY3RvcnkpLAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9udW1fYWxsb2NhdG9yX2luZGljZXMobm9kZSksCiAgICAgICAgICZwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleCk7CiAgICAgUEFTX0FTU0VSVCghZGlk
X292ZXJmbG93KTsKIApAQCAtOTMsNyArOTAsNyBAQCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190
aHJlYWRfbG9jYWxfY2FjCiB9CiAKIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfYWRkKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5KQorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCkBAIC0x
MDQsMTEgKzEwMSwxMSBAQCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2Fj
CiAgICAgfQogICAgIAogICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9h
ZGRfbm9kZSgKLSAgICAgICAgcGFzX3dyYXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkoZGlyZWN0b3J5KSk7CisgICAgICAgIHBhc193cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkoZGlyZWN0b3J5KSk7CiB9CiAKIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfZHVwbGljYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5KQorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpCiB7CiAgICAgcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSog
cmVkdW5kYW50X25vZGU7CiAKQEAgLTExOCw0ICsxMTUsMTQgQEAgcGFzX2FsbG9jYXRvcl9pbmRl
eCBwYXNfdGhyZWFkX2xvY2FsX2NhYwogICAgICAgICBwYXNfd3JhcF9yZWR1bmRhbnRfbG9jYWxf
YWxsb2NhdG9yX25vZGUocmVkdW5kYW50X25vZGUpKTsKIH0KIAorcGFzX2FsbG9jYXRvcl9pbmRl
eCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfdmlld19jYWNoZSgKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19sb2NhbF92
aWV3X2NhY2hlX25vZGUqIGNhY2hlX25vZGU7CisKKyAgICBjYWNoZV9ub2RlID0gcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfbm9kZV9jcmVhdGUoZGlyZWN0b3J5KTsKKworICAgIHJldHVybiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfbm9kZShwYXNfd3JhcF9sb2NhbF92aWV3X2NhY2hl
X25vZGUoY2FjaGVfbm9kZSkpOworfQorCiAjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaAkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQzLDEwICs0MywxMyBAQCBQQVNfQVBJIHBhc19h
bGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZSBub2RlKTsKIAogUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZCgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSk7CiAKIFBBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9kdXBsaWNhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfQVBJIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX3ZpZXdfY2FjaGUoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKICNkZWZpbmUgUEFTX1RIUkVBRF9MT0NB
TF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1Iobm9kZSkgXAogICAgIG5vZGUgPSBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9maXJzdF9ub2RlOyBcCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykg
MjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMzYgKzI5LDc1IEBACiAKICNpbmNsdWRlICJwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgiCiAKKyNpbmNsdWRlICJwYXNfbG9jYWxfdmll
d19jYWNoZS5oIgorI2luY2x1ZGUgInBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCIKICNpbmNs
dWRlICJwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmgiCi0jaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgogCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7Ci0gICAgaWYgKHBhc19pc193cmFwcGVkX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG5vZGUpKQotICAgICAgICByZXR1cm4gcGFzX3Vu
d3JhcF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShub2RlKTsKKyAgICBpZiAocGFz
X2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2RlKSkKKyAgICAgICAgcmV0
dXJuIHBhc191bndyYXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2RlKTsKIAotICAgIHJl
dHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9h
ZCgKLSAgICAgICAgJnBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5v
ZGUpLT5kaXJlY3RvcnkpOworICAgIGlmIChwYXNfaXNfd3JhcHBlZF9yZWR1bmRhbnRfbG9jYWxf
YWxsb2NhdG9yX25vZGUobm9kZSkpeworICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgICZwYXNf
dW53cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKS0+ZGlyZWN0b3J5KTsK
KyAgICB9CisKKyAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgJnBhc191bndyYXBfbG9jYWxfdmlld19jYWNo
ZV9ub2RlKG5vZGUpLT5kaXJlY3RvcnkpOworfQorCitwYXNfYWxsb2NhdG9yX2luZGV4CitwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9yX2luZGljZXMocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQoreworICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisKKyAgICBkaXJlY3RvcnkgPSBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3Rvcnkobm9kZSk7CisgICAgCisgICAgaWYg
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3Io
bm9kZSkpCisgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1f
YWxsb2NhdG9yX2luZGljZXMoZGlyZWN0b3J5KTsKKworICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9yX2FsbG9jYXRvcl9zaXpl
KAorICAgICAgICBQQVNfTE9DQUxfVklFV19DQUNIRV9TSVpFKHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3ZpZXdfY2FjaGVfY2FwYWNpdHkoZGlyZWN0b3J5KSkpOwogfQogCiBzdGF0aWMg
cGFzX2FsbG9jYXRvcl9pbmRleCoKIGFsbG9jYXRvcl9pbmRleF9wdHIocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewotICAgIGlmIChwYXNfaXNfd3JhcHBlZF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShub2RlKSkgewotICAgICAgICByZXR1cm4gJnBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKAotICAgICAg
ICAgICAgJnBhc191bndyYXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9kZSkt
PmRhdGEpLT5hbGxvY2F0b3JfaW5kZXg7CisgICAgaWYgKHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3Rvcnkobm9kZSkpIHsKKyAgICAgICAgcmV0dXJuICZwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKAorICAgICAgICAgICAgJnBhc191bndyYXBf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2RlKS0+ZGF0YSktPmFsbG9jYXRvcl9pbmRleDsK
ICAgICB9CiAKLSAgICByZXR1cm4gJnBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRv
cl9ub2RlKG5vZGUpLT5hbGxvY2F0b3JfaW5kZXg7CisgICAgaWYgKHBhc19pc193cmFwcGVkX3Jl
ZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKSkKKyAgICAgICAgcmV0dXJuICZwYXNf
dW53cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKS0+YWxsb2NhdG9yX2lu
ZGV4OworCisgICAgcmV0dXJuICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAmcGFzX3Vud3JhcF9sb2NhbF92aWV3X2NhY2hl
X25vZGUobm9kZSktPmRpcmVjdG9yeSktPnZpZXdfY2FjaGVfaW5kZXg7CiB9CiAKIHBhc19hbGxv
Y2F0b3JfaW5kZXgKLXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9j
YXRvcl9pbmRleChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCitwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJp
YyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7CiAgICAgcmV0dXJu
ICphbGxvY2F0b3JfaW5kZXhfcHRyKG5vZGUpOwogfQogCitwYXNfYWxsb2NhdG9yX2luZGV4Citw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9y
X2FsbG9jYXRvcihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCit7Cisg
ICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2Vu
dHNfYWxsb2NhdG9yKG5vZGUpKTsKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSk7Cit9CisKK3Bhc19h
bGxvY2F0b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2Fs
bG9jYXRvcl9pbmRleF9mb3Jfdmlld19jYWNoZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlIG5vZGUpCit7CisgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX3JlcHJlc2VudHNfdmlld19jYWNoZShub2RlKSk7CisgICAgcmV0dXJuIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmlj
KG5vZGUpOworfQorCiB2b2lkCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3Nl
dF9hbGxvY2F0b3JfaW5kZXgocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2Rl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19hbGxvY2F0b3JfaW5kZXggaW5kZXgpCkBAIC02OSwxMiArMTA4LDE1IEBAIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc2V0X2EKIHN0YXRpYyBwYXNfY29tcGFjdF9hdG9t
aWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlKgogbmV4dF9wdHIocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewotICAgIGlmIChwYXNfaXNfd3JhcHBlZF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShub2RlKSkgewotICAgICAgICByZXR1cm4g
JnBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKAotICAg
ICAgICAgICAgJnBhc191bndyYXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9k
ZSktPmRhdGEpLT5uZXh0X2Zvcl9sYXlvdXQ7CisgICAgaWYgKHBhc19pc193cmFwcGVkX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3Rvcnkobm9kZSkpIHsKKyAgICAgICAgcmV0dXJuICZwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKAorICAgICAgICAgICAgJnBhc191bndy
YXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShub2RlKS0+ZGF0YSktPm5leHRfZm9yX2xheW91
dDsKICAgICB9Ci0gICAgCi0gICAgcmV0dXJuICZwYXNfdW53cmFwX3JlZHVuZGFudF9sb2NhbF9h
bGxvY2F0b3Jfbm9kZShub2RlKS0+bmV4dDsKKworICAgIGlmIChwYXNfaXNfd3JhcHBlZF9yZWR1
bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobm9kZSkpCisgICAgICAgIHJldHVybiAmcGFzX3Vu
d3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobm9kZSktPm5leHQ7CisKKyAgICBy
ZXR1cm4gJnBhc191bndyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKG5vZGUpLT5uZXh0OwogfQog
CiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlCkBAIC04MywxMSArMTI1LDcyIEBA
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X24KICAgICByZXR1cm4gcGFz
X2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkKG5leHRf
cHRyKG5vZGUpKTsKIH0KIAotdm9pZAotcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9zZXRfbmV4dChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgbmV4dF9ub2RlKQordm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX3NldF9uZXh0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUg
bm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5leHRfbm9kZSkKIHsKICAgICBwYXNf
Y29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3JlKG5leHRf
cHRyKG5vZGUpLCBuZXh0X25vZGUpOwogfQogCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfY29uc3RydWN0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUg
bm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpCit7CisgICAgaWYgKHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3Iobm9kZSkpIHsKKyAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QoCisgICAgICAgICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKKyAgICAgICAgICAgICAgICBj
YWNoZSwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2lu
ZGV4X2Zvcl9hbGxvY2F0b3Iobm9kZSkpLAorICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KG5vZGUpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX2NvbnN0cnVjdCgKKyAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCisgICAgICAgICAg
ICBjYWNoZSwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9y
X2luZGV4X2Zvcl92aWV3X2NhY2hlKG5vZGUpKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eSgKKyAgICAgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShub2RlKSkpOworfQorCit2b2lk
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbW92ZShwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0b19jYWNoZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUqIGZyb21fY2FjaGUpCit7CisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5k
ZXg7CisKKyAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhub2RlKTsKKyAgICAKKyAgICBpZiAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihu
b2RlKSkgeworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX21vdmUoCisgICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCh0b19jYWNoZSwg
YWxsb2NhdG9yX2luZGV4KSwKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0
X2xvY2FsX2FsbG9jYXRvcl9pbXBsKGZyb21fY2FjaGUsIGFsbG9jYXRvcl9pbmRleCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbW92ZSgKKyAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwodG9f
Y2FjaGUsIGFsbG9jYXRvcl9pbmRleCksCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
Z2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKGZyb21fY2FjaGUsIGFsbG9jYXRvcl9pbmRleCkpOwor
fQorCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2tf
bW9kZSBwYWdlX2xvY2tfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQoreworICAg
IHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBwYXNfYWxsb2Nh
dG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKKyAgICB2b2lkKiBhbGxvY2F0b3I7CisKKyAgICBh
bGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9h
bGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhub2RlKTsKKyAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbChjYWNoZSwgYWxsb2NhdG9yX2lu
ZGV4KTsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcg
YWxsb2NhdG9yICVwIGJlY2F1c2UgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2Fs
bG9jYXRvcnNcbiIsIGFsbG9jYXRvcik7CisgICAgCisgICAgaWYgKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3Iobm9kZSkpIHsKKyAgICAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKGFsbG9jYXRvciwgcGFnZV9sb2NrX21vZGUsIGhlYXBf
bG9ja19ob2xkX21vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfc3RvcChhbGxvY2F0b3IsIHBhZ2VfbG9ja19tb2RlKTsKK30KKwogI2VuZGlm
IC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjcsNjYgKzI3LDE0MyBAQAogI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xB
WU9VVF9OT0RFX0gKIAogI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXguaCIKKyNpbmNsdWRl
ICJwYXNfbG9jay5oIgorI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfa2luZC5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7
CiAKK3N0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlOwogc3RydWN0IHBhc19yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGU7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Oworc3Ry
dWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGU7CiBzdHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9vcGFxdWU7Cit0eXBlZGVmIHN0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNo
ZV9ub2RlIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfcmVk
dW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlIHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9y
X25vZGU7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIHBhc190aHJlYWRfbG9j
YWxfY2FjaGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX29wYXF1ZSogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZTsKIAotI2RlZmlu
ZSBQQVNfSVNfUkVEVU5EQU5UX0xPQ0FMX0FMTE9DQVRPUl9OT0RFX0JJVCAoKHVpbnRwdHJfdCkx
KQorI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0tJTkRfTUFTSyAz
bHUKKworc3RhdGljIGlubGluZSB2b2lkKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9wdHIocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQorewor
ICAgIHJldHVybiAodm9pZCopKCh1aW50cHRyX3Qpbm9kZSAmIH5QQVNfVEhSRUFEX0xPQ0FMX0NB
Q0hFX0xBWU9VVF9OT0RFX0tJTkRfTUFTSyk7Cit9CisKK3N0YXRpYyBpbmxpbmUgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kCitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2dldF9raW5kKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9k
ZSkKK3sKKyAgICByZXR1cm4gKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2lu
ZCkoCisgICAgICAgICh1aW50cHRyX3Qpbm9kZSAmIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZ
T1VUX05PREVfS0lORF9NQVNLKTsKK30KKworc3RhdGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlCitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2Ny
ZWF0ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQga2luZCwgdm9pZCog
cHRyKQoreworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcmVzdWx0Owor
ICAgIAorICAgIFBBU19BU1NFUlQocHRyKTsKKworICAgIHJlc3VsdCA9IChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlKSgodWludHB0cl90KXB0ciB8ICh1aW50cHRyX3Qpa2luZCk7
CisgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9w
dHIocmVzdWx0KSA9PSBwdHIpOworICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfa2luZChyZXN1bHQpID09IGtpbmQpOworCisgICAgcmV0dXJuIHJl
c3VsdDsKK30KIAogc3RhdGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlCi1wYXNfd3JhcF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3Bhc193cmFwX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSkKIHsKLSAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeSk7Ci0gICAgcmV0dXJuIChwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlKWRpcmVjdG9yeTsKKyAgICByZXR1cm4gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jcmVhdGUoCisgICAgICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfbm9kZV9raW5kLCBkaXJl
Y3RvcnkpOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUKIHBhc193cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShwYXNfcmVkdW5k
YW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKiBub2RlKQogewotICAgIFBBU19BU1NFUlQobm9kZSk7
Ci0gICAgcmV0dXJuIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlKSgKLSAgICAg
ICAgKHVpbnRwdHJfdClub2RlIHwgUEFTX0lTX1JFRFVOREFOVF9MT0NBTF9BTExPQ0FUT1JfTk9E
RV9CSVQpOworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2Ny
ZWF0ZSgKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfcmVkdW5kYW50X2xv
Y2FsX2FsbG9jYXRvcl9ub2RlX2tpbmQsIG5vZGUpOworfQorCitzdGF0aWMgaW5saW5lIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUKK3Bhc193cmFwX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZShwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKiBub2RlKQoreworICAgIHJldHVybiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NyZWF0ZSgKKyAgICAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbG9jYWxfdmlld19jYWNoZV9ub2RlX2tpbmQsIG5vZGUpOwog
fQogCiBzdGF0aWMgaW5saW5lIGJvb2wKLXBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkK
K3Bhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewotICAgIHJldHVybiAhKCh1aW50cHRyX3Qpbm9k
ZSAmIFBBU19JU19SRURVTkRBTlRfTE9DQUxfQUxMT0NBVE9SX05PREVfQklUKTsKKyAgICByZXR1
cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfa2luZChub2RlKQorICAg
ICAgICA9PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X25vZGVfa2luZDsKIH0KIAogc3RhdGljIGlubGluZSBib29sCiBwYXNfaXNfd3JhcHBl
ZF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZSBub2RlKQogewotICAgIHJldHVybiAhcGFzX2lzX3dyYXBwZWRfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9kZSk7CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2tpbmQobm9kZSkKKyAgICAgICAgPT0gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlX2tpbmQ7
Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbAorcGFzX2lzX3dyYXBwZWRfbG9jYWxfdmlld19jYWNo
ZV9ub2RlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3sKKyAgICBy
ZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfa2luZChub2RlKQor
ICAgICAgICA9PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sb2NhbF92aWV3X2NhY2hl
X25vZGVfa2luZDsKIH0KIAotc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqCi1wYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3N0YXRpYyBpbmxpbmUg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCitwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewot
ICAgIFBBU19BU1NFUlQocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3Rvcnkobm9kZSkpOwotICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5Kilub2RlOworICAgIFBBU19BU1NFUlQocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeShub2RlKSk7CisgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSopcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfcHRyKG5vZGUp
OwogfQogCiBzdGF0aWMgaW5saW5lIHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUq
CiBwYXNfdW53cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7CiAgICAgUEFTX0FTU0VSVChwYXNfaXNfd3Jh
cHBlZF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobm9kZSkpOwotICAgIHJldHVybiAo
cGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSopKAotICAgICAgICAodWludHB0cl90
KW5vZGUgJiB+UEFTX0lTX1JFRFVOREFOVF9MT0NBTF9BTExPQ0FUT1JfTk9ERV9CSVQpOworICAg
IHJldHVybiAocGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSopcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfcHRyKG5vZGUpOwogfQogCi1QQVNfQVBJIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK3N0YXRpYyBpbmxpbmUgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfbm9kZSoKK3Bhc191bndyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3sKKyAgICBQQVNfQVNTRVJUKHBh
c19pc193cmFwcGVkX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShub2RlKSk7CisgICAgcmV0dXJuIChw
YXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKilwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9wdHIobm9kZSk7Cit9CisKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3Rvcnko
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKIAogUEFTX0FQSSBwYXNf
YWxsb2NhdG9yX2luZGV4Ci1wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9h
bGxvY2F0b3JfaW5kZXgocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsK
K3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxvY2F0b3JfaW5kaWNlcyhwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpOworCitzdGF0aWMgaW5saW5lIGJv
b2wKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0
b3IocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQoreworICAgIHJldHVy
biBwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5vZGUpCisgICAgICAg
IHx8IHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKTsK
K30KKworc3RhdGljIGlubGluZSBib29sCitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX3JlcHJlc2VudHNfdmlld19jYWNoZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlIG5vZGUpCit7CisgICAgcmV0dXJuIHBhc19pc193cmFwcGVkX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZShub2RlKTsKK30KKworUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4CitwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpOworCitQQVNfQVBJIHBhc19hbGxv
Y2F0b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9j
YXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbm9kZSk7CisKK1BBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleAorcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl92aWV3X2Nh
Y2hlKAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7CiAKIFBB
U19BUEkgdm9pZAogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zZXRfYWxsb2Nh
dG9yX2luZGV4KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKQEAgLTk5
LDYgKzE3NiwxOCBAQCBQQVNfQVBJIHZvaWQKIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfc2V0X25leHQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlIG5leHRfbm9kZSk7CiAKK1BBU19BUEkgdm9pZCBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbnN0cnVjdChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpOwor
CitQQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9tb3ZlKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZSogdG9fY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGZyb21fY2FjaGUpOworCitQQVNfQVBJ
IHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9wKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpOworCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX1RIUkVB
RF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2tpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX1RIUkVBRF9MT0NB
TF9DQUNIRV9MQVlPVVRfTk9ERV9LSU5EX0gKKyNkZWZpbmUgUEFTX1RIUkVBRF9MT0NBTF9DQUNI
RV9MQVlPVVRfTk9ERV9LSU5EX0gKKworI2luY2x1ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVH
SU5fRVhURVJOX0M7CisKK2VudW0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9r
aW5kIHsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X25vZGVfa2luZCwKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9y
ZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfa2luZCwKKyAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9sb2NhbF92aWV3X2NhY2hlX25vZGVfa2luZAorfTsKKwordHlwZWRlZiBl
bnVtIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZCBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQ7CitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZF9nZXRfc3RyaW5nKAorICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZCBraW5kKQoreworICAgIHN3aXRj
aCAoa2luZCkgeworICAgIGNhc2UgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9ub2RlX2tpbmQ6CisgICAgICAgIHJldHVybiAic2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSI7CisgICAgY2FzZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfa2luZDoKKyAgICAgICAgcmV0dXJuICJy
ZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yIjsKKyAgICBjYXNlIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2xvY2FsX3ZpZXdfY2FjaGVfbm9kZV9raW5kOgorICAgICAgICByZXR1cm4gImxv
Y2FsX3ZpZXdfY2FjaGUiOworICAgIH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSBy
ZWFjaGVkIik7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNl
bmRpZiAvKiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0tJTkRfSCAqLworCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX25vZGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2Rl
LmMJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDggKzQ4LDE5IEBAIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbm9kZSogcGFzX3RocmVhZF8KIAogICAgIHJlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbm9kZV9maXJzdF9mcmVlOwogICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIHJlc3VsdCA9
IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAotICAgICAgICAgICAgc2l6ZW9mKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbm9kZSksCisgICAgICAgIGNvbnN0IHNpemVfdCBpbnRlcmZlcmVuY2Vf
cGFkZGluZyA9IDY0OworICAgICAgICAKKyAgICAgICAgc2l6ZV90IHNpemU7CisKKyAgICAgICAg
c2l6ZSA9IFBBU19NQVgoCisgICAgICAgICAgICBpbnRlcmZlcmVuY2VfcGFkZGluZywKKyAgICAg
ICAgICAgIHBhc19yb3VuZF91cF90b19uZXh0X3Bvd2VyX29mXzIoc2l6ZW9mKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbm9kZSkpKTsKKworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAg
IHBhc19sb2coIkFsbG9jYXRpbmcgVExDIG5vZGUgd2l0aCBzaXplL2FsaWdubWVudCA9ICV6dS5c
biIsIHNpemUpOworICAgICAgICAKKyAgICAgICAgcmVzdWx0ID0gcGFzX2ltbW9ydGFsX2hlYXBf
YWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQoCisgICAgICAgICAgICBzaXplLCBzaXplLAogICAgICAg
ICAgICAgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSIsCiAgICAgICAgICAgICBwYXNfb2Jq
ZWN0X2FsbG9jYXRpb24pOwogICAgICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9k
ZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyAr
MjcsNiBAQAogI2RlZmluZSBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX05PREVfSAogCiAjaW5jbHVk
ZSAicGFzX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19tYWdhemluZS5oIgogI2luY2x1ZGUgInBh
c19sb2NrLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmgJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxs
b2NhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNyBAQCBwYXNfdHJ5X2FsbG9jYXRl
X2ltcGwocGFzX2hlYXBfcmVmKiBoZWFwCiAgICAgICAgICAgICBjYWNoZSwKICAgICAgICAgICAg
IGFsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgIGlmIChQQVNfTElLRUxZKGFsbG9jYXRvci5kaWRf
c3VjY2VlZCkpIHsKLSAgICAgICAgICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQg
cmVzdWx0OworICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKICAgICAg
ICAgICAgIHBhc190cnlfYWxsb2NhdGVfaW1wbF9zaXplX3RodW5rX2RhdGEgc2l6ZV90aHVua19k
YXRhOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvKiBUaGlzIHRoaW5nIHdpdGggdGhlIHNp
emUgdGh1bmsgbWVhbnMgdGhhdCBpc29oZWFwcyB1c3VhbGx5IGRvbid0IGhhdmUgdG8gZ2V0IHRo
ZQpAQCAtODMsNyArODMsOCBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ltcGwocGFzX2hlYXBfcmVmKiBo
ZWFwCiAgICAgICAgICAgICBzaXplX3RodW5rX2RhdGEuaGVhcF9yZWYgPSBoZWFwX3JlZjsKIAog
ICAgICAgICAgICAgcmVzdWx0ID0gdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0KAotICAgICAgICAg
ICAgICAgIGFsbG9jYXRvci5hbGxvY2F0b3IsIHBhc190cnlfYWxsb2NhdGVfaW1wbF9zaXplX3Ro
dW5rLCAmc2l6ZV90aHVua19kYXRhLCAxKTsKKyAgICAgICAgICAgICAgICAocGFzX2xvY2FsX2Fs
bG9jYXRvciopYWxsb2NhdG9yLmFsbG9jYXRvciwgcGFzX3RyeV9hbGxvY2F0ZV9pbXBsX3NpemVf
dGh1bmssCisgICAgICAgICAgICAgICAgJnNpemVfdGh1bmtfZGF0YSwgMSk7CiAKICAgICAgICAg
ICAgIHR5cGUgPSBoZWFwX3JlZi0+dHlwZTsKICAgICAgICAgICAgIHJldHVybiBwYXNfdHlwZWRf
YWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
KApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0
ZV9hcnJheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9hcnJheS5oCSh3b3JraW5n
IGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIHBhc190cnlfYWxsb2NhdGVfYXJyYXlfaW1wbChwYXNf
aGVhcF9yZWYKICAgICAgICAgYWxsb2NhdG9yX2luZGV4LCBjb25maWcuY29uZmlnX3B0cik7CiAK
ICAgICBpZiAoYWxpZ25tZW50ICE9IDEgJiYgYWxsb2NhdG9yLmRpZF9zdWNjZWVkCi0gICAgICAg
ICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRvci5h
bGxvY2F0b3IpKQorICAgICAgICAmJiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2Fs
aWdubWVudCgocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yLmFsbG9jYXRvcikpCiAgICAg
ICAgIGFsbG9jYXRvci5kaWRfc3VjY2VlZCA9IGZhbHNlOwogICAgIAogICAgIHJldHVybiBwYXNf
dHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0KApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9h
bGxvY2F0ZV9jb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKICNpbmNsdWRlICJwYXNfZGVidWdf
aGVhcC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmgiCisjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVz
dWx0LmgiCiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgiCiAjaW5jbHVk
ZSAicGFzX3ByaW1pdGl2ZV9oZWFwX3JlZi5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hl
YXBfaW5saW5lcy5oIgpAQCAtNDIsMjYgKzQyLDQzIEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9u
X2Nhbl9nb19mYXN0KHBhc18KICAgICByZXR1cm4gYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2Vl
ZDsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQK
K3Bhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfZmFzdF9pbmxpbmVfb25seSgKKyAgICBwYXNf
aGVhcF9jb25maWcgY29uZmlnLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVz
dWx0X2ZpbHRlciwKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpCit7CisgICAg
cmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX2lubGluZV9vbmx5KGFsbG9j
YXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bHRfZmlsdGVyKTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9m
YXN0KAogICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCiAgICAgcGFzX2FsbG9jYXRvcl9jb3Vu
dHMqIGFsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dCAoKnJlc3VsdF9maWx0ZXIpKHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0
KSwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0ZXIsCiAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgIHBhc19zaXplX3RodW5rIHNpemVf
dGh1bmssCiAgICAgdm9pZCogc2l6ZV90aHVua19hcmcsCiAgICAgc2l6ZV90IGFsaWdubWVudCkK
IHsKLSAgICByZXR1cm4gcmVzdWx0X2ZpbHRlcihwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0X2NyZWF0ZSgKLSAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUoYWxs
b2NhdG9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Ro
dW5rLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3RodW5r
X2FyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9jb3VudHMpKSk7
CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGUoYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdGh1bmssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90aHVua19hcmcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25tZW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfY291bnRzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9maWx0ZXIpOworICAgIGlmICh2
ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJpbiBjb21tb24gLSByZXN1bHQuYmVnaW4gPSAlcFxu
IiwgcmVzdWx0LmJlZ2luKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3RyeV9hbGxvY2F0ZV9jb21t
b25faW1wbF9zbG93KAogICAgIHBhc19oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgcGFzX2hlYXBf
cmVmX2tpbmQgaGVhcF9yZWZfa2luZCwKQEAgLTc5LDcgKzk2LDcgQEAgcGFzX3RyeV9hbGxvY2F0
ZV9jb21tb25faW1wbF9zbG93KAogICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAg
ICAgcGFzX2hlYXAqIGhlYXA7CiAgICAgcGFzX2hlYXBfdHlwZSogdHlwZTsKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5k
ZXg7CiAKICAgICBpZiAodmVyYm9zZSkKQEAgLTEwNCw3ICsxMjEsNyBAQCBwYXNfdHJ5X2FsbG9j
YXRlX2NvbW1vbl9pbXBsX3Nsb3coCiAgICAgICAgICAgICByZXN1bHQuYmVnaW4gPSAodWludHB0
cl90KXJhd19yZXN1bHQ7CiAgICAgICAgIH0KIAotICAgICAgICByZXR1cm4gcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAKICAgICBoZWFwID0gcGFzX2Vuc3VyZV9oZWFwKGhlYXBfcmVmLCBoZWFwX3Jl
Zl9raW5kLCBjb25maWcuY29uZmlnX3B0ciwgcnVudGltZV9jb25maWcpOwpAQCAtMTU2LDcgKzE3
Myw3IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdygKICAgICAgICAgCiAgICAg
ICAgIHBhc19zY2F2ZW5nZXJfbm90aWZ5X2VsaWdpYmlsaXR5X2lmX25lZWRlZCgpOwogICAgICAg
ICAKLSAgICAgICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRl
KHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAogICAgIGlmICh2
ZXJib3NlKQpAQCAtMTY0LDcgKzE4MSw3IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxf
c2xvdygKICAgICAKICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeSk7CiAgICAgCi0gICAgYmFzZWxp
bmVfYWxsb2NhdG9yX3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9zZWxlY3RfYWxsb2NhdG9yKAorICAgIGJhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQgPSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yKAogICAgICAgICBkaXJl
Y3RvcnksIGFsaWduZWRfY291bnQsIGNvdW50X2xvb2t1cF9tb2RlLCBjb25maWcuY29uZmlnX3B0
ciwgY2FjaGVkX2luZGV4KTsKICAgICAKICAgICByZXN1bHQgPSBwYXNfbG9jYWxfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZShiYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0LmFsbG9jYXRvciwKQEAgLTE3
MiwxNiArMTg5LDE3IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdygKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopc2l6ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9jb3Vu
dHMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9j
YXRvcl9jb3VudHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKICAgICAKICAgICBwYXNfY29tcGls
ZXJfZmVuY2UoKTsKICAgICBpZiAoYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5sb2NrKQogICAg
ICAgICBwYXNfbG9ja191bmxvY2soYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5sb2NrKTsKIAot
ICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZShyZXN1bHQp
OworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFz
X2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsKAogICAgIHBh
c19oZWFwX3JlZiogaGVhcF9yZWYsCiAgICAgc2l6ZV90IGFsaWduZWRfY291bnQsIC8qIE11c3Qg
YmUgPSByb3VuZF91cChjb3VudCAqIHR5cGVfc2l6ZSwgYWxpZ25tZW50KSAvIHR5cGVfc2l6ZSAq
LwpAQCAtMTg5LDggKzIwNyw4IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGwoCiAgICAg
c2l6ZV90IGFsaWdubWVudCwKICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAogICAgIHBhc19h
bGxvY2F0b3JfY291bnRzKiBhbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQgKCpyZXN1bHRfZmlsdGVyKShwYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0IHJlc3VsdCksCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCAoKnNs
b3cpKAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnJlc3VsdF9maWx0ZXIpKHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdCByZXN1bHQpLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnNsb3cp
KAogICAgICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgYWxpZ25lZF9jb3VudCwg
c2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpLAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVzdWx0IGFsbG9jYXRvcl9yZXN1bHQpCiB7CkBAIC0yMDMsNyArMjIxLDcgQEAgcGFzX3RyeV9h
bGxvY2F0ZV9jb21tb25faW1wbCgKIAogICAgIGlmIChQQVNfTElLRUxZKHBhc190cnlfYWxsb2Nh
dGVfY29tbW9uX2Nhbl9nb19mYXN0KGFsbG9jYXRvcl9yZXN1bHQpKSkgewogICAgICAgICByZXR1
cm4gcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9mYXN0KAotICAgICAgICAgICAgY29uZmln
LCBhbGxvY2F0b3JfY291bnRzLCByZXN1bHRfZmlsdGVyLCBhbGxvY2F0b3JfcmVzdWx0LmFsbG9j
YXRvciwKKyAgICAgICAgICAgIGNvbmZpZywgYWxsb2NhdG9yX2NvdW50cywgcmVzdWx0X2ZpbHRl
ciwgKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvcl9yZXN1bHQuYWxsb2NhdG9yLAogICAg
ICAgICAgICAgcGFzX3RyaXZpYWxfc2l6ZV90aHVuaywgKHZvaWQqKXNpemUsIGFsaWdubWVudCk7
CiAgICAgfQogCkBAIC0yMTEsNyArMjI5LDE0IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2lt
cGwoCiB9CiAKICNkZWZpbmUgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQ09NTU9OKG5hbWUsIGhl
YXBfcmVmX2tpbmQsIGhlYXBfY29uZmlnLCBydW50aW1lX2NvbmZpZywgYWxsb2NhdG9yX2NvdW50
cywgY291bnRfbG9va3VwX21vZGUsIHJlc3VsdF9maWx0ZXIpIFwKLSAgICBzdGF0aWMgUEFTX1VO
VVNFRCBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IFwK
KyAgICBzdGF0aWMgUEFTX1VOVVNFRCBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQgXAorICAgIG5hbWUgIyMgX2Zhc3RfaW5saW5lX29ubHkocGFzX2xvY2FsX2FsbG9jYXRv
ciogYWxsb2NhdG9yKSBcCisgICAgeyBcCisgICAgICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRl
X2NvbW1vbl9pbXBsX2Zhc3RfaW5saW5lX29ubHkoIFwKKyAgICAgICAgICAgIChoZWFwX2NvbmZp
ZyksIChyZXN1bHRfZmlsdGVyKSwgYWxsb2NhdG9yKTsgXAorICAgIH0gXAorICAgIFwKKyAgICBz
dGF0aWMgUEFTX1VOVVNFRCBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQg
XAogICAgIG5hbWUgIyMgX2Zhc3QocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBwYXNf
c2l6ZV90aHVuayBzaXplX3RodW5rLCB2b2lkKiBzaXplX3RodW5rX2FyZywgXAogICAgICAgICAg
ICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkgXAogICAgIHsgXApAQCAtMjIwLDcgKzI0NSw3IEBA
IHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGwoCiAgICAgICAgICAgICBzaXplX3RodW5rLCBz
aXplX3RodW5rX2FyZywgYWxpZ25tZW50KTsgXAogICAgIH0gXAogICAgIFwKLSAgICBzdGF0aWMg
UEFTX05FVkVSX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IFwKKyAgICBz
dGF0aWMgUEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIG5hbWUg
IyMgX3Nsb3cocGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGFsaWduZWRfY291bnQsIHNp
emVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSBcCiAgICAgeyBcCiAgICAgICAgIHJldHVybiAo
cmVzdWx0X2ZpbHRlcikoIFwKQEAgLTIyOSw3ICsyNTQsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2Nv
bW1vbl9pbXBsKAogICAgICAgICAgICAgICAgIChhbGxvY2F0b3JfY291bnRzKSwgKGNvdW50X2xv
b2t1cF9tb2RlKSkpOyBcCiAgICAgfSBcCiAgICAgXAotICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBB
U19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIHN0
YXRpYyBQQVNfVU5VU0VEIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBc
CiAgICAgbmFtZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgYWxpZ25lZF9jb3VudCwg
c2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQsIFwKICAgICAgICAgIHBhc19sb2NhbF9hbGxv
Y2F0b3JfcmVzdWx0IGFsbG9jYXRvcl9yZXN1bHQpIFwKICAgICB7IFwKQEAgLTI0MCwxMyArMjY1
LDE2IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGwoCiAgICAgXAogICAgIHN0cnVjdCBw
YXNfZHVtbXkKIAotdHlwZWRlZiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFz
X3RyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCkoCit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCAoKnBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3RfaW5saW5lX29ubHkpKAorICAgIHBhc19s
b2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcik7CisKK3R5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVz
dWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCkoCiAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvciogYWxsb2NhdG9yLCBwYXNfc2l6ZV90aHVuayBzaXplX3RodW5rLCB2b2lkKiBzaXplX3Ro
dW5rX2FyZywgc2l6ZV90IGFsaWdubWVudCk7CiAKLXR5cGVkZWYgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3cpKAordHlwZWRlZiBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93KSgKICAg
ICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgYWxpZ25lZF9jb3VudCwgc2l6ZV90IHNp
emUsIHNpemVfdCBhbGlnbm1lbnQpOwogCi10eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbikoCit0eXBlZGVmIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfY29tbW9uKSgKICAgICBwYXNfaGVhcF9yZWYq
IGhlYXBfcmVmLCBzaXplX3QgYWxpZ25lZF9jb3VudCwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGln
bm1lbnQsCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdCk7
CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2Nh
dGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oCShy
ZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaAkod29ya2luZyBjb3B5KQpAQCAtNTks
NjUgKzU5LDggQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgICAgICAuY29uZmlnX2tpbmQgPSAo
cGFzc2VkX2NvbmZpZykua2luZCwgXAogICAgIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1p
dGl2ZV9pbXBsX21lZGl1bV9zbG93X2Nhc2UoCi0gICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSog
Y2FjaGUsCi0gICAgcGFzX2hlYXAqIGhlYXAsCi0gICAgc2l6ZV90IGFsaWduZWRfc2l6ZSwKLSAg
ICBzaXplX3QgYWxpZ25tZW50LAotICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCi0gICAgcGFz
X3RyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCB0cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3QsCi0gICAg
cGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fc2xvdyB0cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3cpCi17
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHNpemVf
dCBpbmRleDsKLSAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yOwotICAgIHBhc19oZWFwX3JlZiBmYWtlX2hlYXBfcmVm
OwotCi0gICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9wcmltaXRpdmVf
Y291bnQoYWxpZ25lZF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZyk7Ci0gICAgCi0gICAgYWxsb2NhdG9yX2luZGV4
ID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fYWxsb2NhdG9yX2luZGV4X2Zv
cl9pbmRleCgKLSAgICAgICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsCi0gICAgICAgICAg
ICBpbmRleCwKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGly
ZWN0b3J5X3NlYXJjaF93aXRoaW5fc2l6ZV9jbGFzc19wcm9ncmVzc2lvbiwKLSAgICAgICAgICAg
IHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLQotICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcigKLSAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9p
bmRleCwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgIAotICAgIFBBU19URVNUSU5HX0FTU0VS
VCghYWxsb2NhdG9yLmRpZF9zdWNjZWVkIHx8IGFsbG9jYXRvci5hbGxvY2F0b3ItPm9iamVjdF9z
aXplID49IGFsaWduZWRfc2l6ZSk7Ci0gICAgCi0gICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lh
bGl6ZWQgb3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5M
SU5FIGFuZAotICAgICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KLSAgICBp
ZiAoYWxpZ25tZW50ICE9IDEgJiYgYWxsb2NhdG9yLmRpZF9zdWNjZWVkCi0gICAgICAgICYmIGFs
aWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRvci5hbGxvY2F0
b3IpKSB7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCJEaXNj
YXJkaW5nIGdvb2QgYWxsb2NhdG9yIHJlc3VsdCBiZWNhdXNlIGFsaWdubWVudCBpcyBpbmFkZXF1
YXRlICIKLSAgICAgICAgICAgICAgICAgICAgIiglenUsIG5lZWRlZCAlenUpLlxuIiwKLSAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yLmFs
bG9jYXRvciksIGFsaWdubWVudCk7Ci0gICAgICAgIH0KLSAgICAgICAgYWxsb2NhdG9yLmRpZF9z
dWNjZWVkID0gZmFsc2U7Ci0gICAgfQotICAgIAotICAgIGlmIChQQVNfTElLRUxZKGFsbG9jYXRv
ci5kaWRfc3VjY2VlZCkpIHsKLSAgICAgICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb25fZmFz
dCgKLSAgICAgICAgICAgIGFsbG9jYXRvci5hbGxvY2F0b3IsIHBhc190cml2aWFsX3NpemVfdGh1
bmssICh2b2lkKilhbGlnbmVkX3NpemUsIGFsaWdubWVudCk7Ci0gICAgfQotCi0gICAgZmFrZV9o
ZWFwX3JlZi50eXBlID0gaGVhcC0+dHlwZTsKLSAgICBmYWtlX2hlYXBfcmVmLmhlYXAgPSBoZWFw
OwotICAgIGZha2VfaGVhcF9yZWYuYWxsb2NhdG9yX2luZGV4ID0gVUlOVF9NQVg7Ci0KLSAgICBy
ZXR1cm4gdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93KCZmYWtlX2hlYXBfcmVmLCBhbGlnbmVkX3Np
emUsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsKLSAgICAKLX0KLQotc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKLXBhc190cnlfYWxsb2Nh
dGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsKAogICAgIHBhc19oZWFwKiBoZWFwLAogICAgIHNp
emVfdCBzaXplLAogICAgIHNpemVfdCBhbGlnbm1lbnQsCkBAIC0xMjUsOSArNjgsNiBAQCBwYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1wCiAgICAgcGFzX2hlYXBfY29uZmln
IGNvbmZpZywKICAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0IHRyeV9hbGxvY2F0ZV9j
b21tb25fZmFzdCwKICAgICBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9zbG93IHRyeV9hbGxvY2F0
ZV9jb21tb25fc2xvdywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqbWVk
aXVtX3Nsb3dfY2FzZSkocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3QgYWxpZ25lZF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50KSwKICAgICBwYXNfaW50cmlu
c2ljX2hlYXBfZGVzaWduYXRpb25fbW9kZSBkZXNpZ25hdGlvbl9tb2RlKQogewogICAgIHN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKQEAgLTE0MSw3ICs4MSw3IEBAIHBhc190cnlf
YWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXAKICAgICBQQVNfQVNTRVJUKGFsaWdubWVu
dCA9PSAxIHx8ICFkZXNpZ25hdGlvbl9tb2RlKTsKIAogICAgIGlmICghcGFzX2lzX3Bvd2VyX29m
XzIoYWxpZ25tZW50KSkKLSAgICAgICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9y
ZXN1bHRfY3JlYXRlX2VtcHR5KCk7CisgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfY3JlYXRlX2ZhaWx1cmUoKTsKIAogICAgIC8qIEluIHRoZSBub24tbWVtYWxpZ24gY2FzZSwg
d2UgY2FuIGhhcHBpbHkgaGFuZGxlIHplcm8tc2l6ZWQgYWxsb2NhdGlvbnMgd2l0aCBhbGlnbmVk
X3NpemUKICAgICAgICBiZWluZyAwLiBUaGlzIHdvcmtzIGJlY2F1c2UgdGhlIGhlYXAncyAwIHNp
emUgY2xhc3MgaXMganVzdCBhIGNvcHkgb2YgdGhlIG1pbmFsaWduIHNpemUKQEAgLTE2Niw0NCAr
MTA2LDUzIEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXAKICAgICBj
YWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwogICAgIGlmIChQQVNfTElL
RUxZKGNhY2hlKSkgewogICAgICAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFsbG9jYXRvcjsKKyAgICAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdDsKKyAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yOwogICAgICAgICAKICAgICAgICAgZGVzaWduYXRlZF9pbmRleCA9
IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5kZXgoCiAgICAgICAg
ICAgICBpbmRleCwgZGVzaWduYXRpb25fbW9kZSwgY29uZmlnKTsKICAgICAgICAgaWYgKFBBU19M
SUtFTFkoZGVzaWduYXRlZF9pbmRleC5kaWRfc3VjY2VlZCkpIHsKLSAgICAgICAgICAgIGFsbG9j
YXRvciA9IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKAorICAgICAg
ICAgICAgYWxsb2NhdG9yX3Jlc3VsdCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0
ZV9zdWNjZXNzKAogICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xv
Y2FsX2FsbG9jYXRvcl9pbXBsKAogICAgICAgICAgICAgICAgICAgICBjYWNoZSwKICAgICAgICAg
ICAgICAgICAgICAgZGVzaWduYXRlZF9pbmRleC5pbmRleCAqIHBhc19kZXNpZ25hdGVkX2ludHJp
bnNpY19oZWFwX251bV9hbGxvY2F0b3JfaW5kaWNlcyhjb25maWcpKSk7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBpZiAoUEFTX1VOTElLRUxZKGluZGV4ID49IFBBU19OVU1fSU5UUklO
U0lDX1NJWkVfQ0xBU1NFUykpCi0gICAgICAgICAgICAgICAgcmV0dXJuIG1lZGl1bV9zbG93X2Nh
c2UoY2FjaGUsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgYWxsb2NhdG9yX2luZGV4ID0gaW50cmluc2ljX3N1cHBvcnQtPmluZGV4X3RvX2FsbG9j
YXRvcl9pbmRleFtpbmRleF07CisgICAgICAgICAgICBpZiAoUEFTX1VOTElLRUxZKGluZGV4ID49
IFBBU19OVU1fSU5UUklOU0lDX1NJWkVfQ0xBU1NFUykpIHsKKyAgICAgICAgICAgICAgICBhbGxv
Y2F0b3JfaW5kZXggPQorICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21l
ZGl1bV9hbGxvY2F0b3JfaW5kZXhfZm9yX2luZGV4KAorICAgICAgICAgICAgICAgICAgICAgICAg
JmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LAor
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9k
aXJlY3Rvcnlfc2VhcmNoX3dpdGhpbl9zaXplX2NsYXNzX3Byb2dyZXNzaW9uLAorICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gaW50cmluc2ljX3N1cHBvcnQtPmlu
ZGV4X3RvX2FsbG9jYXRvcl9pbmRleFtpbmRleF07CiAgICAgICAgIAogICAgICAgICAgICAgaWYg
KHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgcGFzX2xvZygiYWxsb2NhdG9yX2luZGV4ID0gJXUu
XG4iLCBhbGxvY2F0b3JfaW5kZXgpOwogICAgICAgICAKLSAgICAgICAgICAgIGFsbG9jYXRvciA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldF9sb2NhbF9hbGxvY2F0b3IoY2FjaGUsIGFs
bG9jYXRvcl9pbmRleCk7CisgICAgICAgICAgICBhbGxvY2F0b3JfcmVzdWx0ID0gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yKAorICAgICAgICAgICAgICAgIGNhY2hl
LCBhbGxvY2F0b3JfaW5kZXgsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKICAgICAgICAgfQogCi0g
ICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yLmRpZF9zdWNjZWVkIHx8IGFsbG9j
YXRvci5hbGxvY2F0b3ItPm9iamVjdF9zaXplID49IHNpemUpOworICAgICAgICBhbGxvY2F0b3Ig
PSAocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yX3Jlc3VsdC5hbGxvY2F0b3I7CisKKyAg
ICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkIHx8
IGFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxpZ25lZF9zaXplKTsKICAgICAKICAgICAgICAg
LyogVGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQgb3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNh
c2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFuZAogICAgICAgICAgICBhbGlnbm1lbnQgYmVp
bmcgdGhlIGNvbnN0YW50IDEuICovCi0gICAgICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGxv
Y2F0b3IuZGlkX3N1Y2NlZWQKLSAgICAgICAgICAgICYmIGFsaWdubWVudCA+IHBhc19sb2NhbF9h
bGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRvci5hbGxvY2F0b3IpKSB7CisgICAgICAgIGlmIChh
bGlnbm1lbnQgIT0gMSAmJiBhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkCisgICAgICAgICAg
ICAmJiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0b3Ip
KSB7CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICAgICAgICAgIHBhc19sb2co
IkRpc2NhcmRpbmcgZ29vZCBhbGxvY2F0b3IgcmVzdWx0IGJlY2F1c2UgYWxpZ25tZW50IGlzIGlu
YWRlcXVhdGUgIgogICAgICAgICAgICAgICAgICAgICAgICAgIiglenUsIG5lZWRlZCAlenUpLlxu
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50
KGFsbG9jYXRvci5hbGxvY2F0b3IpLCBhbGlnbm1lbnQpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yKSwgYWxpZ25tZW50KTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFsbG9jYXRvci5kaWRfc3VjY2VlZCA9IGZhbHNl
OworICAgICAgICAgICAgYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCA9IGZhbHNlOwogICAg
ICAgICB9CiAKLSAgICAgICAgaWYgKFBBU19MSUtFTFkoYWxsb2NhdG9yLmRpZF9zdWNjZWVkKSkg
eworICAgICAgICBpZiAoUEFTX0xJS0VMWShhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkKSkg
ewogICAgICAgICAgICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb25fZmFzdCgKLSAgICAgICAg
ICAgICAgICBhbGxvY2F0b3IuYWxsb2NhdG9yLCBwYXNfdHJpdmlhbF9zaXplX3RodW5rLCAodm9p
ZCopYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQpOworICAgICAgICAgICAgICAgIGFsbG9jYXRvciwg
cGFzX3RyaXZpYWxfc2l6ZV90aHVuaywgKHZvaWQqKWFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsK
ICAgICAgICAgfQogICAgIH0KIApAQCAtMjE0LDYgKzE2Myw5NCBAQCBwYXNfdHJ5X2FsbG9jYXRl
X2ludHJpbnNpY19wcmltaXRpdmVfaW1wCiAgICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb25f
c2xvdygmZmFrZV9oZWFwX3JlZiwgYWxpZ25lZF9zaXplLCBhbGlnbmVkX3NpemUsIGFsaWdubWVu
dCk7CiB9CiAKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQK
K3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsX2lubGluZV9vbmx5KAor
ICAgIHNpemVfdCBzaXplLAorICAgIHNpemVfdCBhbGlnbm1lbnQsCisgICAgcGFzX2ludHJpbnNp
Y19oZWFwX3N1cHBvcnQqIGludHJpbnNpY19zdXBwb3J0LAorICAgIHBhc19oZWFwX2NvbmZpZyBj
b25maWcsCisgICAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25fZmFzdF9pbmxpbmVfb25seSB0cnlf
YWxsb2NhdGVfY29tbW9uX2Zhc3RfaW5saW5lX29ubHksCisgICAgcGFzX2ludHJpbnNpY19oZWFw
X2Rlc2lnbmF0aW9uX21vZGUgZGVzaWduYXRpb25fbW9kZSkKK3sKKyAgICBzdGF0aWMgY29uc3Qg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgc2l6ZV90IGFsaWduZWRfc2l6ZTsKKyAg
ICBzaXplX3QgaW5kZXg7CisgICAgcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0IGRlc2lnbmF0
ZWRfaW5kZXg7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGU7CisgICAgdW5zaWdu
ZWQgYWxsb2NhdG9yX2luZGV4OworICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFsbG9j
YXRvcl9yZXN1bHQ7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOworCisgICAg
UEFTX0FTU0VSVChhbGlnbm1lbnQgPT0gMSB8fCAhZGVzaWduYXRpb25fbW9kZSk7CisKKyAgICBp
ZiAoIXBhc19pc19wb3dlcl9vZl8yKGFsaWdubWVudCkpCisgICAgICAgIHJldHVybiBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKworICAgIC8qIEluIHRoZSBub24tbWVt
YWxpZ24gY2FzZSwgd2UgY2FuIGhhcHBpbHkgaGFuZGxlIHplcm8tc2l6ZWQgYWxsb2NhdGlvbnMg
d2l0aCBhbGlnbmVkX3NpemUKKyAgICAgICBiZWluZyAwLiBUaGlzIHdvcmtzIGJlY2F1c2UgdGhl
IGhlYXAncyAwIHNpemUgY2xhc3MgaXMganVzdCBhIGNvcHkgb2YgdGhlIG1pbmFsaWduIHNpemUK
KyAgICAgICBjbGFzcy4gQnV0IHdlIGNhbm5vdCBkbyB0aGlzIHByb3Blcmx5IGlmIHRoZSAwIHNp
emUgY2xhc3MgaGFzIHRvIGhhdmUgc29tZSBhbGlnbm1lbnQuIFRoYXQncworICAgICAgIGJlY2F1
c2Ugd2UgZXhwZWN0IHRoYXQgZm9yIGEgc2l6ZSBjbGFzcyB0byBzYXRpc2Z5IHNvbWUgYWxpZ25t
ZW50LCB0aGF0IHNpemUgbXVzdCBpdHNlbGYKKyAgICAgICBiZSBhbGlnbmVkIHRvIHRoYXQgYWxp
Z25tZW50LiAqLworICAgIGlmIChhbGlnbm1lbnQgPT0gMSkKKyAgICAgICAgYWxpZ25lZF9zaXpl
ID0gc2l6ZTsKKyAgICBlbHNlIGlmIChzaXplIDwgYWxpZ25tZW50KQorICAgICAgICBhbGlnbmVk
X3NpemUgPSBhbGlnbm1lbnQ7CisgICAgZWxzZQorICAgICAgICBhbGlnbmVkX3NpemUgPSBwYXNf
cm91bmRfdXBfdG9fcG93ZXJfb2ZfMihzaXplLCBhbGlnbm1lbnQpOworICAgIAorICAgIGluZGV4
ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3JfcHJpbWl0aXZlX2NvdW50KGFsaWduZWRf
c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25maWcpOworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygi
YWxpZ25lZF9zaXplID0gJXp1LCBpbmRleCA9ICV6dSwgYWxpZ25tZW50ID0gJXp1LlxuIiwKKyAg
ICAgICAgICAgICAgICBhbGlnbmVkX3NpemUsIGluZGV4LCBhbGlnbm1lbnQpOworICAgIH0KKwor
ICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7CisgICAgaWYgKFBB
U19VTkxJS0VMWSghY2FjaGUpKQorICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAgCisgICAgZGVzaWduYXRlZF9pbmRleCA9IHBhc19kZXNp
Z25hdGVkX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5kZXgoCisgICAgICAgIGluZGV4LCBk
ZXNpZ25hdGlvbl9tb2RlLCBjb25maWcpOworICAgIGlmIChQQVNfTElLRUxZKGRlc2lnbmF0ZWRf
aW5kZXguZGlkX3N1Y2NlZWQpKSB7CisgICAgICAgIGFsbG9jYXRvcl9yZXN1bHQgPSBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcygKKyAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAorICAgICAgICAgICAgICAg
IGNhY2hlLAorICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfaW5kZXguaW5kZXggKiBwYXNfZGVz
aWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fYWxsb2NhdG9yX2luZGljZXMoY29uZmlnKSkpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChQQVNfVU5MSUtFTFkoaW5kZXggPj0gUEFTX05VTV9J
TlRSSU5TSUNfU0laRV9DTEFTU0VTKSkKKyAgICAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKyAgICAgICAgCisgICAgICAgIGFsbG9jYXRvcl9p
bmRleCA9IGludHJpbnNpY19zdXBwb3J0LT5pbmRleF90b19hbGxvY2F0b3JfaW5kZXhbaW5kZXhd
OworICAgICAgICAKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJh
bGxvY2F0b3JfaW5kZXggPSAldS5cbiIsIGFsbG9jYXRvcl9pbmRleCk7CisgICAgICAgIAorICAg
ICAgICBhbGxvY2F0b3JfcmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xv
Y2FsX2FsbG9jYXRvcihjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKKyAgICB9CisgICAgCisgICAg
aWYgKFBBU19VTkxJS0VMWSghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCkpCisgICAgICAg
IHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKKyAgICAKKyAg
ICBhbGxvY2F0b3IgPSAocGFzX2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yX3Jlc3VsdC5hbGxv
Y2F0b3I7CisgICAgCisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3JfcmVzdWx0LmRp
ZF9zdWNjZWVkIHx8IGFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxpZ25lZF9zaXplKTsKKyAg
ICAKKyAgICAvKiBUaGlzIHNob3VsZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4gdGhlIG5vbi1hbGln
bm1lbnQgY2FzZSBiZWNhdXNlIG9mIEFMV0FZU19JTkxJTkUgYW5kCisgICAgICAgYWxpZ25tZW50
IGJlaW5nIHRoZSBjb25zdGFudCAxLiAqLworICAgIGlmIChhbGlnbm1lbnQgIT0gMSAmJiBhbGln
bm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0b3IpKSB7CisgICAg
ICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICBwYXNfbG9nKCJEaXNjYXJkaW5nIGdvb2Qg
YWxsb2NhdG9yIHJlc3VsdCBiZWNhdXNlIGFsaWdubWVudCBpcyBpbmFkZXF1YXRlICIKKyAgICAg
ICAgICAgICAgICAgICAgIiglenUsIG5lZWRlZCAlenUpLlxuIiwKKyAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yKSwgYWxpZ25tZW50KTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9m
YWlsdXJlKCk7CisgICAgfQorICAgIAorICAgIHJldHVybiB0cnlfYWxsb2NhdGVfY29tbW9uX2Zh
c3RfaW5saW5lX29ubHkoYWxsb2NhdG9yKTsKK30KKwogI2RlZmluZSBQQVNfQ1JFQVRFX1RSWV9B
TExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUSVZFKG5hbWUsIGhlYXBfY29uZmlnLCBydW50aW1lX2Nv
bmZpZywgYWxsb2NhdG9yX2NvdW50cywgcmVzdWx0X2ZpbHRlciwgaGVhcCwgaGVhcF9zdXBwb3J0
LCBkZXNpZ25hdGlvbl9tb2RlKSBcCiAgICAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQ09NTU9O
KCBcCiAgICAgICAgIG5hbWUgIyMgX2ltcGwsIFwKQEAgLTIyNCwzNSArMjYxLDUwIEBAIHBhc190
cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXAKICAgICAgICAgcGFzX2ZvcmNlX2Nv
dW50X2xvb2t1cCwgXAogICAgICAgICAocmVzdWx0X2ZpbHRlcikpOyBcCiAgICAgXAotICAgIHN0
YXRpYyBQQVNfTkVWRVJfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgXAot
ICAgIG5hbWUgIyMgX21lZGl1bV9zbG93X2Nhc2UocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2Fj
aGUsIHNpemVfdCBhbGlnbmVkX3NpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKKyAgICBzdGF0aWMg
UEFTX05FVkVSX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIG5hbWUgIyMgX21l
ZGl1bV9zbG93X2Nhc2Uoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKICAgICB7IFwK
ICAgICAgICAgcmV0dXJuIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBs
X21lZGl1bV9zbG93X2Nhc2UoIFwKLSAgICAgICAgICAgIGNhY2hlLCAoaGVhcCksIGFsaWduZWRf
c2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9jb25maWcpLCBcCi0gICAgICAgICAgICBuYW1lICMjIF9p
bXBsX2Zhc3QsIG5hbWUgIyMgX2ltcGxfc2xvdyk7IFwKKyAgICAgICAgICAgIChoZWFwKSwgc2l6
ZSwgYWxpZ25tZW50LCAoaGVhcF9zdXBwb3J0KSwgKGhlYXBfY29uZmlnKSwgXAorICAgICAgICAg
ICAgbmFtZSAjIyBfaW1wbF9mYXN0LCBuYW1lICMjIF9pbXBsX3Nsb3csIChkZXNpZ25hdGlvbl9t
b2RlKSk7IFwKICAgICB9IFwKICAgICBcCi0gICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFs
aWdubWVudCkgXAorICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHQgbmFtZSAjIyBfaW5saW5lX29ubHkoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQp
IFwKICAgICB7IFwKLSAgICAgICAgcmV0dXJuIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3By
aW1pdGl2ZV9pbXBsKCBcCi0gICAgICAgICAgICAoaGVhcCksIHNpemUsIGFsaWdubWVudCwgKGhl
YXBfc3VwcG9ydCksIChoZWFwX2NvbmZpZyksIFwKLSAgICAgICAgICAgIG5hbWUgIyMgX2ltcGxf
ZmFzdCwgbmFtZSAjIyBfaW1wbF9zbG93LCBuYW1lICMjIF9tZWRpdW1fc2xvd19jYXNlLCBcCi0g
ICAgICAgICAgICAoZGVzaWduYXRpb25fbW9kZSkpOyBcCisgICAgICAgIHJldHVybiBwYXNfdHJ5
X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1wbF9pbmxpbmVfb25seSggXAorICAgICAg
ICAgICAgc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9zdXBwb3J0KSwgKGhlYXBfY29uZmlnKSwgXAor
ICAgICAgICAgICAgbmFtZSAjIyBfaW1wbF9mYXN0X2lubGluZV9vbmx5LCAoZGVzaWduYXRpb25f
bW9kZSkpOyBcCisgICAgfSBcCisgICAgXAorICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQgbmFtZShzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkg
XAorICAgIHsgXAorICAgICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7IFwK
KyAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsgXAorICAgICAgICByZXN1bHQg
PSBuYW1lICMjIF9pbmxpbmVfb25seShzaXplLCBhbGlnbm1lbnQpOyBcCisgICAgICAgIGlmIChQ
QVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkpIHsgXAorICAgICAgICAgICAgaWYgKHZlcmJv
c2UpIFwKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJSZXR1cm5pbmcgc3VjY2Vzc2Z1bCByZXN1
bHQgKGJlZ2luID0gJXApXG4iLCAodm9pZCopcmVzdWx0LmJlZ2luKTsgXAorICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsgXAorICAgICAgICB9IFwKKyAgICAgICAgcmV0dXJuIG5hbWUgIyMgX21l
ZGl1bV9zbG93X2Nhc2Uoc2l6ZSwgYWxpZ25tZW50KTsgXAogICAgIH0gXAogICAgIFwKLSAgICBz
dGF0aWMgUEFTX1VOVVNFRCBQQVNfTkVWRVJfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHQgXAorICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19ORVZFUl9JTkxJTkUgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0IFwKICAgICBuYW1lICMjIF9mb3JfcmVhbGxvYyhzaXplX3Qgc2l6ZSkg
XAogICAgIHsgXAotICAgICAgICByZXR1cm4gbmFtZShzaXplLCAxKTsgXAorICAgICAgICBzdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7IFwKKyAgICAgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0IHJlc3VsdCA9IG5hbWUoc2l6ZSwgMSk7IFwKKyAgICAgICAgaWYgKHZlcmJvc2UpIFwK
KyAgICAgICAgICAgIHBhc19sb2coInJlc3VsdC5iZWdpbiA9ICVwXG4iLCByZXN1bHQuYmVnaW4p
OyBcCisgICAgICAgIHJldHVybiByZXN1bHQ7IFwKICAgICB9IFwKICAgICBcCiAgICAgc3RydWN0
IHBhc19kdW1teQogCi10eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpw
YXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUpKHNpemVfdCBzaXplLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50KTsKK3R5cGVkZWYgcGFzX2FsbG9jYXRp
b25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKShzaXplX3Qg
c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50KTsKIAotdHlwZWRlZiBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci0oKnBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3By
aW1pdGl2ZV9mb3JfcmVhbGxvYykoc2l6ZV90IHNpemUpOyAgICAgICAKK3R5cGVkZWYgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2Zv
cl9yZWFsbG9jKShzaXplX3Qgc2l6ZSk7CiAKIFBBU19FTkRfRVhURVJOX0M7CiAKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ry
eV9hbGxvY2F0ZV9wcmltaXRpdmUuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsMTQgKzMwLDE0IEBACiAjaW5jbHVkZSAicGFzX2hlYXAuaCIKICNpbmNs
dWRlICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCi0jaW5j
bHVkZSAicGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oIgorI2luY2x1ZGUgInBhc19h
bGxvY2F0aW9uX3Jlc3VsdC5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5l
cy5oIgogI2luY2x1ZGUgInBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uaCIKICNpbmNs
dWRlICJwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAot
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQK
K3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlf
YWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50LApAQCAtNTMsNyArNTMsNyBA
QCBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKHBhc19wcmltCiAgICAgc2l6ZV90IGlu
ZGV4OwogICAgIAogICAgIGlmICghcGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25tZW50KSkKLSAgICAg
ICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2VtcHR5KCk7
CisgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsK
ICAgICAKICAgICBhbGlnbmVkX3NpemUgPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihzaXpl
LCBhbGlnbm1lbnQpOwogICAgIApAQCAtOTIsNyArOTIsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZV9pbXBsKHBhc19wcmltCiAgICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQg
b3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFu
ZAogICAgICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KICAgICBpZiAoYWxp
Z25tZW50ICE9IDEgJiYgYWxsb2NhdG9yLmRpZF9zdWNjZWVkCi0gICAgICAgICYmIGFsaWdubWVu
dCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRvci5hbGxvY2F0b3IpKQor
ICAgICAgICAmJiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudCgocGFz
X2xvY2FsX2FsbG9jYXRvciopYWxsb2NhdG9yLmFsbG9jYXRvcikpCiAgICAgICAgIGFsbG9jYXRv
ci5kaWRfc3VjY2VlZCA9IGZhbHNlOwogCiAgICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb24o
JmhlYXBfcmVmLT5iYXNlLCBhbGlnbmVkX3NpemUsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LCBh
bGxvY2F0b3IpOwpAQCAtMTA4LDcgKzEwOCw3IEBAIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZl
X2ltcGwocGFzX3ByaW0KICAgICAgICAgcGFzX2F2b2lkX2NvdW50X2xvb2t1cCwgXAogICAgICAg
ICAocmVzdWx0X2ZpbHRlcikpOyBcCiAgICAgXAotICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IG5hbWUoIFwKKyAgICBzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IG5hbWUoIFwKICAgICAgICAgcGFz
X3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIFwKICAgICAgICAgc2l6ZV90IHNpemUsIFwK
ICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkgXApAQCAtMTE3LDcgKzExNyw3IEBAIHBhc190cnlf
YWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFzX3ByaW0KICAgICAgICAgICAgIGhlYXBfcmVmLCBz
aXplLCBhbGlnbm1lbnQsIChoZWFwX2NvbmZpZyksIChydW50aW1lX2NvbmZpZyksIG5hbWUgIyMg
X2ltcGwpOyBcCiAgICAgfSBcCiAgICAgXAotICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19ORVZF
Ul9JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9mb3JfcmVh
bGxvYyggXAorICAgIHN0YXRpYyBQQVNfVU5VU0VEIFBBU19ORVZFUl9JTkxJTkUgcGFzX2FsbG9j
YXRpb25fcmVzdWx0IG5hbWUgIyMgX2Zvcl9yZWFsbG9jKCBcCiAgICAgICAgIHBhc19wcmltaXRp
dmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3Qgc2l6ZSkgXAogICAgIHsgXAogICAgICAgICBy
ZXR1cm4gbmFtZShoZWFwX3JlZiwgc2l6ZSwgMSk7IFwKQEAgLTEyNSwxMCArMTI1LDEwIEBAIHBh
c190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwocGFzX3ByaW0KICAgICBcCiAgICAgc3RydWN0
IHBhc19kdW1teQogCi10eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpw
YXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZSkoCit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dCAoKnBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlKSgKICAgICBwYXNfcHJpbWl0aXZlX2hlYXBf
cmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpOwogCi10eXBlZGVm
IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZV9mb3JfcmVhbGxvYykoCit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190
cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2Zvcl9yZWFsbG9jKSgKICAgICBwYXNfcHJpbWl0aXZlX2hl
YXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNpemUpOwogCiBQQVNfRU5EX0VYVEVSTl9DOwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9yZWFsbG9jYXRlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9y
ZWFsbG9jYXRlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsy
Niw3IEBACiAjaWZuZGVmIFBBU19UUllfUkVBTExPQ0FURV9ICiAjZGVmaW5lIFBBU19UUllfUkVB
TExPQ0FURV9ICiAKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKKyNp
bmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19kZWFsbG9jYXRl
LmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX21hcC5oIgogI2luY2x1ZGUgInBhc19yZWFsbG9jYXRl
X2ZyZWVfbW9kZS5oIgpAQCAtNTQsNiArNTQsOCBAQCBwYXNfdHJ5X2FsbG9jYXRlX2Zvcl9yZWFs
bG9jYXRlX2FuZF9jb3B5CiAgICAgcGFzX3RyeV9yZWFsbG9jYXRlX2FsbG9jYXRlX2NhbGxiYWNr
IGFsbG9jYXRlX2NhbGxiYWNrLAogICAgIHZvaWQqIGFsbG9jYXRlX2NhbGxiYWNrX2FyZykKIHsK
KyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCiAgICAgcGFzX3R5
cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKIAogICAgIC8qIElmIGhlYXBzIGFyZSBiYXNl
ZCBvbiBzb21lIHJpZ29yb3VzIG5vdGlvbiBvZiB0eXBlLCB0aGVuIHdlIHNob3VsZCBkaXNhbGxv
dyBoZWFwCkBAIC05MSw2ICs5Myw4IEBAIHBhc190cnlfYWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVf
YW5kX2NvcHkKICAgICByZXN1bHQgPSBhbGxvY2F0ZV9jYWxsYmFjayh0YXJnZXRfaGVhcCwgbmV3
X2NvdW50LCBhbGxvY2F0ZV9jYWxsYmFja19hcmcpOwogICAgIAogICAgIGlmIChyZXN1bHQucHRy
KSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygicmVzdWx0LnB0
ciA9ICVwXG4iLCByZXN1bHQucHRyKTsKICAgICAgICAgLyogRklYTUU6IFdlIG5lZWQgdG8gYWN0
dWFsbHkgYmUgcm91bmRpbmcgZG93biB0aGUgb2xkIHNpemUgdG8gb3VyCiAgICAgICAgICAgIHR5
cGUgc2l6ZS4gVG8gZG8gdGhhdCB3ZSdkIHdhbnQgdGhlIHR5cGVkIGFsbG9jYXRpb24gcmVzdWx0
IHRvCiAgICAgICAgICAgIGdpdmUgdXMgdGhlIHR5cGUgc2l6ZS4gRm9yIHByaW1pdGl2ZSBhbGxv
Y2F0aW9ucywgaXQgd291bGQKQEAgLTEzMyw3ICsxMzcsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVf
dGFibGVfc2VncmVnYXRlZF9jYXNlCiAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNl
IHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBvcnQ6IHsKLSAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgICAgIGRpcmVjdG9yeSA9
IHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X2RpcmVjdG9yeV9mb3JfYWRkcmVzc19pbl9wYWdlKAog
ICAgICAgICAgICAgcGFnZSwgYmVnaW4sIHNlZ3JlZ2F0ZWRfY29uZmlnKTsKICAgICAgICAgb2xk
X3NpemUgPSBkaXJlY3RvcnktPm9iamVjdF9zaXplOwpAQCAtMTc1LDkgKzE3OSw5IEBAIHBhc190
cnlfcmVhbGxvY2F0ZV90YWJsZV9iaXRmaXRfY2FzZShwYXMKICAgICAgICAgCiAgICAgY2FzZSBw
YXNfcmVhbGxvY2F0ZV9kaXNhbGxvd19oZWFwX3RlbGVwb3J0OgogICAgICAgICBvbGRfaGVhcCA9
IHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoCi0gICAgICAgICAgICBwYXNfY29tcGFjdF9i
aXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgIHBh
c19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAg
ICAgICAgJnBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfbG9hZF9ub25fbnVsbCgK
LSAgICAgICAgICAgICAgICAgICAgJnBhZ2UtPm93bmVyKS0+Z2xvYmFsX2RpcmVjdG9yeSktPmhl
YXApOworICAgICAgICAgICAgICAgICAgICAmcGFnZS0+b3duZXIpLT5kaXJlY3RvcnkpLT5oZWFw
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIApAQCAtMjE3LDcgKzIyMSw3IEBAIHBhc190
cnlfcmVhbGxvY2F0ZSh2b2lkKiBvbGRfcHRyLAogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAg
ICAgY2FzZSBwYXNfcmVhbGxvY2F0ZV9kaXNhbGxvd19oZWFwX3RlbGVwb3J0OiB7Ci0gICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAg
ICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2dldF9kaXJlY3RvcnlfZm9y
X2FkZHJlc3NfYW5kX3BhZ2VfY29uZmlnKAogICAgICAgICAgICAgICAgIGJlZ2luLCBjb25maWcu
c21hbGxfc2VncmVnYXRlZF9jb25maWcpOwogICAgICAgICAgICAgb2xkX3NpemUgPSBkaXJlY3Rv
cnktPm9iamVjdF9zaXplOwpAQCAtMjQ5LDkgKzI1Myw5IEBAIHBhc190cnlfcmVhbGxvY2F0ZSh2
b2lkKiBvbGRfcHRyLAogCiAgICAgICAgIGNhc2UgcGFzX3JlYWxsb2NhdGVfZGlzYWxsb3dfaGVh
cF90ZWxlcG9ydDoKICAgICAgICAgICAgIG9sZF9oZWFwID0gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0
ZWRfaGVhcCgKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRm
aXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAgICAgICAmcGFz
X2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAg
ICAgICAgICAgICAgICAgJnBhZ2UtPm93bmVyKS0+Z2xvYmFsX2RpcmVjdG9yeSktPmhlYXApOwor
ICAgICAgICAgICAgICAgICAgICAgICAgJnBhZ2UtPm93bmVyKS0+ZGlyZWN0b3J5KS0+aGVhcCk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAKQEAgLTM4NCw3ICszODgs
NyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9hCiAgICAgICAgIG5l
d19jb3VudCk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25f
cmVzdWx0CiBwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKICAgICB2b2lk
KiBvbGRfcHRyLAogICAgIHBhc19oZWFwKiBoZWFwLApAQCAtNTIzLDE5ICs1MjcsMjcgQEAgcGFz
X3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZV9hbGxvY2F0ZV9jYQogICAgIHNpemVfdCBuZXdfY291
bnQsCiAgICAgdm9pZCogYXJnKQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKKyAgICAKICAgICBwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2FsbG9jYXRlX2Rh
dGEqIGRhdGE7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKIAogICAgIFBBU19V
TlVTRURfUEFSQU0oaGVhcCk7CiAgICAgCiAgICAgZGF0YSA9IChwYXNfdHJ5X3JlYWxsb2NhdGVf
cHJpbWl0aXZlX2FsbG9jYXRlX2RhdGEqKWFyZzsKKworICAgIHJlc3VsdCA9IGRhdGEtPnRyeV9h
bGxvY2F0ZV9wcmltaXRpdmUoZGF0YS0+aGVhcF9yZWYsIG5ld19jb3VudCk7CisKKyAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiaW4gcmVhbGxvYyAtIHJlc3VsdC5iZWdpbiA9ICVw
XG4iLCAodm9pZCopcmVzdWx0LmJlZ2luKTsKICAgICAKICAgICByZXR1cm4gcGFzX3R5cGVkX2Fs
bG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgK
LSAgICAgICAgZGF0YS0+dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShkYXRhLT5oZWFwX3JlZiwgbmV3
X2NvdW50KSwKKyAgICAgICAgcmVzdWx0LAogICAgICAgICBOVUxMLAogICAgICAgICBuZXdfY291
bnQpOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3Vs
dAogcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZSgKICAgICB2b2lkKiBvbGRfcHRyLAogICAg
IHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3R5cGVkX2FsbG9jYXRp
b25fcmVzdWx0LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIFBBU19UWVBFRF9BTExPQ0FUSU9OX1JFU1VMVF9ICiAj
ZGVmaW5lIFBBU19UWVBFRF9BTExPQ0FUSU9OX1JFU1VMVF9ICiAKLSNpbmNsdWRlICJwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmgiCisjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVz
dWx0LmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKQEAg
LTcxLDEyICs3MSwxMiBAQCBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKHBhc19o
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNf
YWxsb2NhdGlvbl9yZXN1bHQKIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHQoCiAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IGlu
dGVybmFsX3Jlc3VsdCkKIHsKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHJl
c3VsdDsKLSAgICByZXN1bHQucHRyID0gaW50ZXJuYWxfcmVzdWx0LnB0cjsKKyAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgIHJlc3VsdC5iZWdpbiA9ICh1aW50cHRyX3QpaW50
ZXJuYWxfcmVzdWx0LnB0cjsKICAgICByZXN1bHQuZGlkX3N1Y2NlZWQgPSBpbnRlcm5hbF9yZXN1
bHQuZGlkX3N1Y2NlZWQ7CiAgICAgcmVzdWx0Lnplcm9fbW9kZSA9IGludGVybmFsX3Jlc3VsdC56
ZXJvX21vZGU7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTg0LDEzICs4NCwxMyBAQCBwYXNfdHlw
ZWRfYWxsb2NhdGlvbl9yZXN1bHRfYXNfaW50cmluc2ljCiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jl
c3VsdF9jcmVhdGVfd2l0aF9pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQoCi0gICAgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBpbnRyaW5zaWNfcmVzdWx0LAorICAgIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdCBpbnRyaW5zaWNfcmVzdWx0LAogICAgIHBhc19oZWFwX3R5cGUqIHR5cGUs
CiAgICAgc2l6ZV90IHNpemUpCiB7CiAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJl
c3VsdDsKICAgICByZXN1bHQudHlwZSA9IHR5cGU7Ci0gICAgcmVzdWx0LnB0ciA9IGludHJpbnNp
Y19yZXN1bHQucHRyOworICAgIHJlc3VsdC5wdHIgPSAodm9pZCopaW50cmluc2ljX3Jlc3VsdC5i
ZWdpbjsKICAgICByZXN1bHQuc2l6ZSA9IHNpemU7CiAgICAgcmVzdWx0LmRpZF9zdWNjZWVkID0g
aW50cmluc2ljX3Jlc3VsdC5kaWRfc3VjY2VlZDsKICAgICByZXN1bHQuemVyb19tb2RlID0gaW50
cmluc2ljX3Jlc3VsdC56ZXJvX21vZGU7CkBAIC0xMDAsNyArMTAwLDcgQEAgcGFzX3R5cGVkX2Fs
bG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoXwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBh
c190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3pl
cm8ocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKIHsKLSAgICBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3pl
cm8oCiAgICAgICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQocmVzdWx0KSwKICAgICAgICAgcmVzdWx0LnNpemUpOwogICAgIHJldHVy
biByZXN1bHQ7CkBAIC0xMDksNyArMTA5LDcgQEAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
X3plcm8ocGFzX3R5cAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9hbGxvY2F0
aW9uX3Jlc3VsdAogcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyhwYXNfdHlw
ZWRfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQogewotICAgIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHRfc2V0X2Vycm5vKAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJy
bm8oCiAgICAgICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9hc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQocmVzdWx0KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTExNyw3
ICsxMTcsNyBAQCBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKHBhCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHlw
ZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IocGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0IHJlc3VsdCkKIHsKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2Ny
YXNoX29uX2Vycm9yKAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcigK
ICAgICAgICAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdChyZXN1bHQpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXAuYwko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3V0aWxpdHlfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC00MiwxNCArNDIsMTIgQEAgcGFzX2hl
YXBfcnVudGltZV9jb25maWcgcGFzX3V0aWxpdHlfaGVhcAogICAgIC5zaGFyaW5nX21vZGUgPSBw
YXNfc2hhcmVfcGFnZXMsCiAgICAgLnN0YXRpY2FsbHlfYWxsb2NhdGVkID0gdHJ1ZSwKICAgICAu
aXNfcGFydF9vZl9oZWFwID0gZmFsc2UsCi0gICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9w
YXJ0aWFsX3ZpZXdzID0KLSAgICAgICAgUEFTX1VUSUxJVFlfQk9VTkRfRk9SX1BBUlRJQUxfVklF
V1MsCi0gICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0K
LSAgICAgICAgUEFTX1VUSUxJVFlfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMsCi0gICAg
Lm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0KLSAgICAgICAgUEFTX1VUSUxJVFlfTUFYX1NF
R1JFR0FURURfT0JKRUNUX1NJWkUsCi0gICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPQotICAg
ICAgICBQQVNfVVRJTElUWV9NQVhfQklURklUX09CSkVDVF9TSVpFCisgICAgLmRpcmVjdG9yeV9z
aXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzID0gUEFTX1VUSUxJVFlfQk9VTkRfRk9SX1BBUlRJ
QUxfVklFV1MsCisgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0
b3JzID0gUEFTX1VUSUxJVFlfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMsCisgICAgLmRp
cmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlID0gUEFTX1VUSUxJVFlfQk9VTkRf
Rk9SX05PX1ZJRVdfQ0FDSEUsCisgICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gUEFT
X1VUSUxJVFlfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUsCisgICAgLm1heF9iaXRmaXRfb2Jq
ZWN0X3NpemUgPSBQQVNfVVRJTElUWV9NQVhfQklURklUX09CSkVDVF9TSVpFLAorICAgIC52aWV3
X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmln
X3plcm9fdmlld19jYWNoZV9jYXBhY2l0eQogfTsKIAogcGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNf
dXRpbGl0eV9zZWdyZWdhdGVkX2hlYXAgPSB7CkBAIC0xMDUsMTMgKzEwMywxNCBAQCB2b2lkKiBw
YXNfdXRpbGl0eV9oZWFwX3RyeV9hbGxvY2F0ZV93aXRoCiAKICAgICBpZiAocGFzX2xvY2FsX2Fs
bG9jYXRvcl9pc19udWxsKGFsbG9jYXRvcikKICAgICAgICAgfHwgYWxpZ25tZW50ID4gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yKSkgewotICAgICAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICAgICAgCiAgICAgICAgIHBhc191
dGlsaXR5X2hlYXBfc3VwcG9ydF9pbnN0YW5jZS5zbG93X3BhdGhfY291bnQrKzsKIAogICAgICAg
ICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9m
b3JfY291bnQoCiAgICAgICAgICAgICAmcGFzX3V0aWxpdHlfc2VncmVnYXRlZF9oZWFwLCBhbGln
bmVkX3NpemUsIGFsaWdubWVudCwKLSAgICAgICAgICAgIHBhc19mb3JjZV9jb3VudF9sb29rdXAs
ICZwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZywgTlVMTCk7CisgICAgICAgICAgICBwYXNfZm9yY2Vf
Y291bnRfbG9va3VwLCAmcGFzX3V0aWxpdHlfaGVhcF9jb25maWcsIE5VTEwsCisgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mdWxsX2NyZWF0aW9uX21vZGUpOwogCiAg
ICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5KTsKIApAQCAtMTI0LDcgKzEyMyw4IEBAIHZvaWQq
IHBhc191dGlsaXR5X2hlYXBfdHJ5X2FsbG9jYXRlX3dpdGgKICAgICAgICAgKHZvaWQqKWFsaWdu
ZWRfc2l6ZSwKICAgICAgICAgYWxpZ25tZW50LAogICAgICAgICBQQVNfVVRJTElUWV9IRUFQX0NP
TkZJRywKLSAgICAgICAgJnBhc191dGlsaXR5X2FsbG9jYXRvcl9jb3VudHMpLmJlZ2luOworICAg
ICAgICAmcGFzX3V0aWxpdHlfYWxsb2NhdG9yX2NvdW50cywKKyAgICAgICAgcGFzX2FsbG9jYXRp
b25fcmVzdWx0X2lkZW50aXR5KS5iZWdpbjsKIAogICAgIHBhc19kaWRfYWxsb2NhdGUocmVzdWx0
LCBzaXplLCBwYXNfdXRpbGl0eV9oZWFwX2tpbmQsIG5hbWUsIHBhc19vYmplY3RfYWxsb2NhdGlv
bik7CiAKQEAgLTE2Niw3ICsxNjYsOSBAQCB2b2lkIHBhc191dGlsaXR5X2hlYXBfZGVhbGxvY2F0
ZSh2b2lkKiBwCiAKICAgICBiZWdpbiA9ICh1aW50cHRyX3QpcHRyOwogCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9kZWFsbG9jYXRlKGJlZ2luLCBOVUxMLCBQQVNfVVRJTElUWV9IRUFQX0NPTkZJ
Ry5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFs
bG9jYXRlKAorICAgICAgICBiZWdpbiwgTlVMTCwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9u
X2RpcmVjdF9tb2RlLCBOVUxMLAorICAgICAgICBQQVNfVVRJTElUWV9IRUFQX0NPTkZJRy5zbWFs
bF9zZWdyZWdhdGVkX2NvbmZpZyk7CiB9CiAKIHNpemVfdCBwYXNfdXRpbGl0eV9oZWFwX2dldF9u
dW1fZnJlZV9ieXRlcyh2b2lkKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3V0aWxpdHlfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXAuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCwxMCArMzgsMTAgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlOwotc3RydWN0
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2Ug
cGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Cit0
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeTsKIAogLyogVGhlIHV0aWxpdHkgaGVhcCBpcyBmb3IgYWxsb2NhdGlu
ZyBoaWdoIHZvbHVtZXMgb2Ygc21hbGwgb2JqZWN0cyBhcyBwYXJ0IG9mIGJvb2trZWVwaW5nIGZv
cgogICAgdGhlIGhlYXBzIHRoYXQgbGlicGFzIGFjdHVhbGx5IHByb3ZpZGVzLiBJdCBjYW4gb25s
eSBoYW5kbGUgb2JqZWN0cyB1cCB0byBzb21lIHNpemUgKHJvdWdobHkKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVh
cF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNjIs
NyArNjIsNyBAQCBQQVNfQVBJIHZvaWQqIHBhc191dGlsaXR5X2hlYXBfYWxsb2NhdGVfCiAKIHN0
YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KgogcGFzX3V0
aWxpdHlfaGVhcF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IocGFzX3NlZ3JlZ2F0ZWRf
aGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICBQQVNfVU5VU0VEX1BBUkFNKGhl
YXApOwogICAgIFBBU19VTlVTRURfUEFSQU0oZGlyZWN0b3J5KTsKQEAgLTEyNiw2ICsxMjYsNyBA
QCBQQVNfQVBJIGJvb2wgcGFzX3V0aWxpdHlfaGVhcF9jb25maWdfZm9yCiAgICAgICAgICAgICAu
dXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAogICAgICAgICAgICAgLmNo
ZWNrX2RlYWxsb2NhdGlvbiA9IGZhbHNlLCBcCiAgICAgICAgICAgICAuZW5hYmxlX2VtcHR5X3dv
cmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0gZmFsc2UsIFwKKyAgICAgICAgICAgIC5lbmFi
bGVfdmlld19jYWNoZSA9IGZhbHNlLCBcCiAgICAgICAgICAgICAuc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5X3NlbGVjdG9yID0gcGFzX3V0aWxpdHlfaGVhcF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2Vs
ZWN0b3IsIFwKICAgICAgICAgICAgIFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX1NQRUNJQUxJ
WkFUSU9OUyhwYXNfdXRpbGl0eV9oZWFwX3BhZ2VfY29uZmlnKSBcCiAgICAgICAgIH0sIFwKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfc3Vw
cG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c191dGlsaXR5X2hlYXBfc3VwcG9ydC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX3N1cHBvcnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCB0eXBlZGVmIHN0cnVjdCBwYXNfdXRpbGl0eV9oZWFw
X3N1cHBvcnQgCiB0eXBlZGVmIHVuaW9uIHBhc191dGlsaXR5X2hlYXBfYWxsb2NhdG9yIHBhc191
dGlsaXR5X2hlYXBfYWxsb2NhdG9yOwogCiBzdHJ1Y3QgcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0
IHsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyCiAgICAgICAgIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5W1BBU19OVU1fVVRJTElUWV9TSVpF
X0NMQVNTRVNdOwogICAgIHBhc191dGlsaXR5X2hlYXBfYWxsb2NhdG9yKiBhbGxvY2F0b3JzOwog
ICAgIHVpbnQ2NF90IHNsb3dfcGF0aF9jb3VudDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc191dGlscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc191dGlscy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaAkod29ya2luZyBjb3B5KQpAQCAt
Mzg4LDYgKzM4OCwxMSBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19sb2cyX3JvdW5kZWRf
CiAgICAgcmV0dXJuIHBhc19sb2cyX3JvdW5kZWRfdXAodmFsdWUpOwogfQogCitzdGF0aWMgaW5s
aW5lIHVpbnRwdHJfdCBwYXNfcm91bmRfdXBfdG9fbmV4dF9wb3dlcl9vZl8yKHVpbnRwdHJfdCB2
YWx1ZSkKK3sKKyAgICByZXR1cm4gKHVpbnRwdHJfdCkxIDw8IHBhc19sb2cyX3JvdW5kZWRfdXBf
c2FmZSh2YWx1ZSk7Cit9CisKICNkZWZpbmUgUEFTX1NXQVAobGVmdCwgcmlnaHQpIGRvIHsgXAog
ICAgICAgICB0eXBlb2YgKGxlZnQpIF9zd2FwX3RtcCA9IGxlZnQ7IFwKICAgICAgICAgbGVmdCA9
IHJpZ2h0OyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lf
aGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Ro
aW5neV9oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3RoaW5neV9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTY4LDM2ICs2OCwzNiBA
QCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgVEhJTkdZX0hF
QVBfQ09ORklHLAogICAgICZ0aGluZ3lfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZp
Zy5iYXNlLAogICAgICZ0aGluZ3lfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9p
ZGVudGl0eSwKICAgICAmdGhpbmd5X3ByaW1pdGl2ZV9oZWFwLAogICAgICZ0aGluZ3lfcHJpbWl0
aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0
ZWQpOwogCiB2b2lkKiB0aGluZ3lfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShzaXplX3Qgc2l6ZSkK
IHsKLSAgICByZXR1cm4gdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShzaXplLCAxKS5wdHI7CisgICAg
cmV0dXJuICh2b2lkKil0cnlfYWxsb2NhdGVfcHJpbWl0aXZlKHNpemUsIDEpLmJlZ2luOwogfQog
CiB2b2lkKiB0aGluZ3lfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV96ZXJvZWQoc2l6ZV90IHNpemUp
CiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyh0cnlf
YWxsb2NhdGVfcHJpbWl0aXZlKHNpemUsIDEpLCBzaXplKS5wdHI7CisgICAgcmV0dXJuICh2b2lk
KilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyh0cnlfYWxsb2NhdGVfcHJpbWl0aXZlKHNpemUs
IDEpLCBzaXplKS5iZWdpbjsKIH0KIAogdm9pZCogdGhpbmd5X3RyeV9hbGxvY2F0ZV9wcmltaXRp
dmVfd2l0aF9hbGlnbm1lbnQoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAg
cmV0dXJuIHRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoc2l6ZSwgYWxpZ25tZW50KS5wdHI7CisgICAg
cmV0dXJuICh2b2lkKil0cnlfYWxsb2NhdGVfcHJpbWl0aXZlKHNpemUsIGFsaWdubWVudCkuYmVn
aW47CiB9CiAKIHZvaWQqIHRoaW5neV90cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUodm9pZCogb2xk
X3B0ciwgc2l6ZV90IG5ld19zaXplKQogewotICAgIHJldHVybiBwYXNfdHJ5X3JlYWxsb2NhdGVf
aW50cmluc2ljX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0
ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRyLAogICAgICAgICAmdGhpbmd5
X3ByaW1pdGl2ZV9oZWFwLAogICAgICAgICBuZXdfc2l6ZSwKICAgICAgICAgVEhJTkdZX0hFQVBf
Q09ORklHLAogICAgICAgICB0cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2Zvcl9yZWFsbG9jLAogICAg
ICAgICBwYXNfcmVhbGxvY2F0ZV9kaXNhbGxvd19oZWFwX3RlbGVwb3J0LAotICAgICAgICBwYXNf
cmVhbGxvY2F0ZV9mcmVlX2lmX3N1Y2Nlc3NmdWwpLnB0cjsKKyAgICAgICAgcGFzX3JlYWxsb2Nh
dGVfZnJlZV9pZl9zdWNjZXNzZnVsKS5iZWdpbjsKIH0KIAogUEFTX0NSRUFURV9UUllfQUxMT0NB
VEUoCkBAIC0xMDUsNyArMTA1LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCiAgICAgVEhJ
TkdZX0hFQVBfQ09ORklHLAogICAgICZ0aGluZ3lfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwK
ICAgICAmdGhpbmd5X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdF9pZGVudGl0eSk7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5
KTsKIAogX19hdHRyaWJ1dGVfXygobWFsbG9jKSkKIHZvaWQqIHRoaW5neV90cnlfYWxsb2NhdGUo
cGFzX2hlYXBfcmVmKiBoZWFwX3JlZikKQEAgLTEyMyw3ICsxMjMsNyBAQCBQQVNfQ1JFQVRFX1RS
WV9BTExPQ0FURV9BUlJBWSgKICAgICBUSElOR1lfSEVBUF9DT05GSUcsCiAgICAgJnRoaW5neV90
eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZ0aGluZ3lfYWxsb2NhdG9yX2NvdW50cywK
LSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKKyAgICBwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOwogCiBfX2F0dHJpYnV0ZV9fKChtYWxsb2MpKQog
dm9pZCogdGhpbmd5X3RyeV9hbGxvY2F0ZV9hcnJheShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBz
aXplX3QgY291bnQsIHNpemVfdCBhbGlnbm1lbnQpCkBAIC0xNzAsMTQgKzE3MCwxNCBAQCBQQVNf
Q1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgVEhJTkdZX0hFQVBfQ09O
RklHLAogICAgICZ0aGluZ3lfaW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNl
LAogICAgICZ0aGluZ3lfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9j
cmFzaF9vbl9lcnJvciwKICAgICAmdGhpbmd5X3V0aWxpdHlfaGVhcCwKICAgICAmdGhpbmd5X3V0
aWxpdHlfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWdu
YXRlZCk7CiAKIHZvaWQqIHRoaW5neV91dGlsaXR5X2hlYXBfYWxsb2NhdGUoc2l6ZV90IHNpemUp
CiB7Ci0gICAgcmV0dXJuIHV0aWxpdHlfaGVhcF9hbGxvY2F0ZShzaXplLCAxKS5wdHI7CisgICAg
cmV0dXJuICh2b2lkKil1dGlsaXR5X2hlYXBfYWxsb2NhdGUoc2l6ZSwgMSkuYmVnaW47CiB9CiAK
ICNlbmRpZiAvKiBQQVNfRU5BQkxFX1RISU5HWSAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmMJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFw
X2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoYykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3LDcgKzM3LDggQEAgcGFzX2hlYXBfY29uZmlnIHRo
aW5neV9oZWFwX2NvbmZpZyA9IFRISQogCiBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElP
TlMoCiAgICAgdGhpbmd5LCBUSElOR1ksCi0gICAgLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8g
PSB0cnVlKTsKKyAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IHRydWUsCisgICAgLmlu
dHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVf
Y29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKICNlbmRpZiAvKiBQQVNfRU5BQkxF
X1RISU5HWSAqLwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGlu
Z3lfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUzLDcgKzUzLDggQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIC5zbWFsbF9z
ZWdyZWdhdGVkX3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAg
IC5zbWFsbF9zZWdyZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFO
RElDQVAsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJp
bGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAotICAgIC5zbWFsbF91c2VfcmV2ZXJzZWRfY3Vy
cmVudF93b3JkID0gUEFTX0FSTTY0LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVy
c2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9
IGZhbHNlLCBcCiAgICAgLnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2Jp
dGZpdF9taW5fYWxpZ25fc2hpZnQgPSBUSElOR1lfTUlOX0FMSUdOX1NISUZULCBcCiAgICAgLnNt
YWxsX2JpdGZpdF9wYWdlX3NpemUgPSBQQVNfU01BTExfQklURklUX1BBR0VfREVGQVVMVF9TSVpF
LCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcENoYW9zVGVz
dHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29I
ZWFwQ2hhb3NUZXN0cy5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4
OSw4ICszODksMTAgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVuc2lnbmVkIG51bVRocgog
ICAgICAgICAgICAgb3B0aW9uYWxPYmplY3RzLnB1c2hfYmFjayhPcHRpb25hbE9iamVjdCgpKTsK
ICAgICB9CiAKLSAgICBpZiAoIXNlbGVjdGVkQWxsb2NhdGUpCi0gICAgICAgIG51bUlzb2xhdGVk
SGVhcHMgPSAwOworICAgIGlmICghc2VsZWN0ZWRBbGxvY2F0ZSAmJiBudW1Jc29sYXRlZEhlYXBz
KSB7CisgICAgICAgIGNvdXQgPDwgIlNraXBwaW5nIGJlY2F1c2UgdGVzdCByZXF1aXJlcyBpc29s
YXRlZCBoZWFwcyBhbmQgd2UgZG9uJ3Qgc3VwcG9ydCB0aGVtIGluIHRoaXMgY29uZmlndXJhdGlv
bi5cbiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgCiAgICAgdmVjdG9yPHBhc19oZWFw
X3JlZio+IGlzb2xhdGVkSGVhcHM7CiAgICAgZm9yICh1bnNpZ25lZCBpc29sYXRlZEhlYXBJbmRl
eCA9IG51bUlzb2xhdGVkSGVhcHM7IGlzb2xhdGVkSGVhcEluZGV4LS07KSB7CkBAIC03ODEsNiAr
NzgzLDcgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVuc2lnbmVkIG51bVRocgogICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBQ
QVNfQVNTRVJUKCEiYmFkIHJhbmRvbSBudW1iZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAodmVyYm9zZSkKQEAgLTg1Miwz
NSArODU1LDM5IEBAIHZvaWQgdGVzdEFsbG9jYXRpb25DaGFvcyh1bnNpZ25lZCBudW1UaHIKICAg
ICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwogfQogCi12b2lkIGFkZFRoZVRlc3RzKGJvb2wgdGVz
dEVudW1lcmF0b3IpCit2b2lkIGFkZFRoZVRlc3RzKHVuc2lnbmVkIG11bHRpcGxpZXIsIGJvb2wg
dGVzdEVudW1lcmF0b3IpCiB7Ci0gICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxLCAx
MCwgMTAwMCwgMTAwMDAwMCwgMTAwMDAwMDAsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdEFs
bG9jYXRpb25DaGFvcygxMCwgMTAsIDEwMDAsIDIwMDAwMCwgMTAwMDAwMDAsIGZhbHNlKSk7Cisg
ICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFvcygxLCAwLCAxMDAwICogbXVsdGlwbGllciwg
MTAwMDAwMCAqIG11bHRpcGxpZXIsIDEwMDAwMDAwICogbXVsdGlwbGllciwgZmFsc2UpKTsKKyAg
ICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEsIDEwLCAxMDAwICogbXVsdGlwbGllciwg
MTAwMDAwMCAqIG11bHRpcGxpZXIsIDEwMDAwMDAwICogbXVsdGlwbGllciwgZmFsc2UpKTsKKyAg
ICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNoYW9zKDEwLCAwLCAxMDAwICogbXVsdGlwbGllciwg
MjAwMDAwICogbXVsdGlwbGllciwgMTAwMDAwMDAgKiBtdWx0aXBsaWVyLCBmYWxzZSkpOworICAg
IEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDEwLCAxMDAwICogbXVsdGlwbGllciwg
MjAwMDAwICogbXVsdGlwbGllciwgMTAwMDAwMDAgKiBtdWx0aXBsaWVyLCBmYWxzZSkpOwogICAg
IGlmICh0ZXN0RW51bWVyYXRvcikgeworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGlvbkNo
YW9zKDEsIDAsIDEwMDAsIDcwMDAsIDEwMDAwMDAwLCB0cnVlKSk7CiAgICAgICAgIEFERF9URVNU
KHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMTAsIDEwMDAsIDcwMDAsIDEwMDAwMDAwLCB0cnVlKSk7
CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDAsIDEwMDAsIDQwMDAs
IDEwMDAwMDAwLCB0cnVlKSk7CiAgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3Mo
MTAsIDEwLCAxMDAwLCA0MDAwLCAxMDAwMDAwMCwgdHJ1ZSkpOwogICAgIH0KIH0KIAogdm9pZCBh
ZGRTcG90VGVzdHMoYm9vbCB0ZXN0RW51bWVyYXRvcikKIHsKLSAgICBhZGRUaGVUZXN0cyh0ZXN0
RW51bWVyYXRvcik7CisgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEwLCB0ZXN0RW51bWVyYXRv
cikpOwogICAgIAogICAgIHsKICAgICAgICAgRm9yY2VFeGNsdXNpdmVzIGZvcmNlRXhjbHVzaXZl
czsKICAgICAgICAgRGlzYWJsZUJpdGZpdCBkaXNhYmxlQml0Zml0OwotICAgICAgICBhZGRUaGVU
ZXN0cyh0ZXN0RW51bWVyYXRvcik7CisgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0
ZXN0RW51bWVyYXRvcikpOwogICAgIH0KICAgICAKICAgICB7CiAgICAgICAgIEZvcmNlVExBcyBm
b3JjZVRMQXM7CiAgICAgICAgIEZvcmNlUGFydGlhbHMgZm9yY2VQYXJ0aWFsczsKLSAgICAgICAg
YWRkVGhlVGVzdHMoZmFsc2UpOworICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFs
c2UpKTsKICAgICB9CiAgICAgCiAgICAgewogICAgICAgICBGb3JjZUJpdGZpdCBmb3JjZUJpdGZp
dDsKLSAgICAgICAgYWRkVGhlVGVzdHMoZmFsc2UpOworICAgICAgICBBRERfR1JPVVAoYWRkVGhl
VGVzdHMoMSwgZmFsc2UpKTsKICAgICB9CiB9CiAKQEAgLTkwNCw1MCArOTExLDUwIEBAIHZvaWQg
YWRkSXNvSGVhcENoYW9zVGVzdHMoKQogICAgICAgICAgICAgICAgIHNlbGVjdGVkSGVhcFJlZkdl
dEhlYXAgPSBpc29faGVhcF9yZWZfZ2V0X2hlYXA7CiAgICAgICAgICAgICB9KTsKICAgICAKLSAg
ICAgICAgYWRkVGhlVGVzdHModHJ1ZSk7CisgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygx
MCwgdHJ1ZSkpOwogCiAgICAgICAgIHsKICAgICAgICAgICAgIERpc2FibGVCaXRmaXQgZGlzYWJs
ZUJpdGZpdDsKLSAgICAgICAgICAgIGFkZFRoZVRlc3RzKGZhbHNlKTsKKyAgICAgICAgICAgIEFE
RF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOwogICAgICAgICB9CiAgICAgCiAgICAgICAg
IHsKICAgICAgICAgICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7Ci0gICAgICAg
ICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7CisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVz
dHMoMSwgZmFsc2UpKTsKICAgICAgICAgfQogICAgIAogICAgICAgICB7CiAgICAgICAgICAgICBG
b3JjZUV4Y2x1c2l2ZXMgZm9yY2VFeGNsdXNpdmVzOwogICAgICAgICAgICAgRGlzYWJsZUJpdGZp
dCBkaXNhYmxlQml0Zml0OwotICAgICAgICAgICAgYWRkVGhlVGVzdHModHJ1ZSk7IC8vIFRoaXMg
dGVzdHMgZW51bWVyYXRpb24gd2l0aCBleGNsdXNpdmVzIG9uIGZvciBzdXJlLgorICAgICAgICAg
ICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIHRydWUpKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJh
dGlvbiB3aXRoIGV4Y2x1c2l2ZXMgb24gZm9yIHN1cmUuCiAgICAgICAgIH0KICAgICAKICAgICAg
ICAgewogICAgICAgICAgICAgRm9yY2VUTEFzIGZvcmNlVExBczsKICAgICAgICAgICAgIEZvcmNl
UGFydGlhbHMgZm9yY2VQYXJ0aWFsczsKLSAgICAgICAgICAgIGFkZFRoZVRlc3RzKHRydWUpOyAv
LyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggcGFydGlhbHMgYW5kIFRMQXMgb24gZm9yIHN1
cmUuCisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgdHJ1ZSkpOyAvLyBUaGlz
IHRlc3RzIGVudW1lcmF0aW9uIHdpdGggcGFydGlhbHMgYW5kIFRMQXMgb24gZm9yIHN1cmUuCiAg
ICAgICAgIH0KICAgICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VCaXRmaXQgZm9yY2VC
aXRmaXQ7Ci0gICAgICAgICAgICBhZGRUaGVUZXN0cyh0cnVlKTsgLy8gVGhpcyB0ZXN0cyBlbnVt
ZXJhdGlvbiB3aXRoIGJpdGZpdCBvbiBmb3Igc3VyZS4KKyAgICAgICAgICAgIEFERF9HUk9VUChh
ZGRUaGVUZXN0cygxLCB0cnVlKSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBiaXRm
aXQgb24gZm9yIHN1cmUuCiAgICAgICAgIH0KICAgICAKICAgICAgICAgewogICAgICAgICAgICAg
Rm9yY2VCYXNlbGluZXMgZm9yY2VCYXNlbGluZXM7CiAgICAgICAgICAgICBEaXNhYmxlQml0Zml0
IGRpc2FibGVCaXRmaXQ7Ci0gICAgICAgICAgICBhZGRUaGVUZXN0cyh0cnVlKTsgLy8gVGhpcyB0
ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGJhc2VsaW5lcyBhbmQgc2VnaGVhcHMgb24gZm9yIHN1cmUu
CisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgdHJ1ZSkpOyAvLyBUaGlzIHRl
c3RzIGVudW1lcmF0aW9uIHdpdGggYmFzZWxpbmVzIGFuZCBzZWdoZWFwcyBvbiBmb3Igc3VyZS4K
ICAgICAgICAgfQogICAgIAogICAgICAgICB7CiAgICAgICAgICAgICBGb3JjZVRMQXMgZm9yY2VU
TEFzOwotICAgICAgICAgICAgYWRkVGhlVGVzdHMoZmFsc2UpOworICAgICAgICAgICAgQUREX0dS
T1VQKGFkZFRoZVRlc3RzKDEsIGZhbHNlKSk7CiAgICAgICAgIH0KICAgICAKICAgICAgICAgewog
ICAgICAgICAgICAgRm9yY2VCYXNlbGluZXMgZm9yY2VCYXNlbGluZXM7CiAgICAgICAgICAgICBG
b3JjZVBhcnRpYWxzIGZvcmNlUGFydGlhbHM7Ci0gICAgICAgICAgICBhZGRUaGVUZXN0cyhmYWxz
ZSk7CisgICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHsKQEAgLTEwMzAsNyArMTAzNyw3IEBAIHZvaWQgYWRkSXNvSGVhcENo
YW9zVGVzdHMoKQogICAgICAgICAgICAgICAgIHNlbGVjdGVkSGVhcFJlZkdldEhlYXAgPSBibWFs
bG9jX2hlYXBfcmVmX2dldF9oZWFwOwogICAgICAgICAgICAgfSk7CiAgICAgCi0gICAgICAgIGFk
ZFNwb3RUZXN0cyhmYWxzZSk7CisgICAgICAgIGFkZFNwb3RUZXN0cyh0cnVlKTsKICAgICB9CiAj
ZW5kaWYgLy8gUEFTX0VOQUJMRV9CTUFMTE9DCiAKQEAgLTEwNjgsNyArMTA3NSw3IEBAIHZvaWQg
YWRkSXNvSGVhcENoYW9zVGVzdHMoKQogCiAgICAgICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRIZWFw
OwogCi0gICAgICAgIGFkZFRoZVRlc3RzKHRydWUpOworICAgICAgICBBRERfR1JPVVAoYWRkVGhl
VGVzdHMoMSwgdHJ1ZSkpOwogICAgIH0KIAogICAgIHsKQEAgLTEwODcsNyArMTA5NCw3IEBAIHZv
aWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogCiAgICAgICAgIEJvb3RKSVRIZWFwIGJvb3RKSVRI
ZWFwOwogCi0gICAgICAgIGFkZFRoZVRlc3RzKGZhbHNlKTsKKyAgICAgICAgQUREX0dST1VQKGFk
ZFRoZVRlc3RzKDEsIGZhbHNlKSk7CiAgICAgfQogI2VuZGlmIC8vIFBBU19FTkFCTEVfSE9UQklU
CiAjZW5kaWYgLy8gUEFTX0VOQUJMRV9JU08KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQ
YWdlU2hhcmluZ1Rlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQAogI2lu
Y2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgogI2luY2x1ZGUgInBhc19wYWdl
X21hbGxvYy5oIgogI2luY2x1ZGUgInBhc19zY2F2ZW5nZXIuaCIKLSNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCIK
ICNpbmNsdWRlIDxzZXQ+CiAjaW5jbHVkZSA8dmVjdG9yPgpAQCAtOTYsNyArOTYsNyBAQCB2b2lk
IHRlc3RUYWtlUGFnZXModW5zaWduZWQgZmlyc3RPYmplY3RTCiAgICAgICAgIENIRUNLKCFvYmpl
Y3RzLmNvdW50KG9iamVjdCkpOwogICAgICAgICBvYmplY3RzLmluc2VydChvYmplY3QpOwogICAg
ICAgICBvYmplY3RMaXN0LnB1c2hfYmFjayhvYmplY3QpOwotICAgICAgICBDSEVDS19FUVVBTChw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICAgICAg
Q0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3Qp
LAogICAgICAgICAgICAgICAgICAgICAgICAgJmlzb19oZWFwX2NvbmZpZyktPm9iamVjdF9zaXpl
LAogICAgICAgICAgICAgICAgICAgICByZXN1bHRpbmdGaXJzdE9iamVjdFNpemUpOwpAQCAtMTY1
LDcgKzE2NSw3IEBAIHZvaWQgdGVzdFRha2VQYWdlcyh1bnNpZ25lZCBmaXJzdE9iamVjdFMKICAg
ICAgICAgQ0hFQ0soIW9iamVjdHMuY291bnQob2JqZWN0KSk7CiAgICAgICAgIG9iamVjdHMuaW5z
ZXJ0KG9iamVjdCk7CiAgICAgICAgIG9iamVjdExpc3QucHVzaF9iYWNrKG9iamVjdCk7Ci0gICAg
ICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jf
b2JqZWN0KAorICAgICAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1
aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAmaXNvX2hlYXBfY29u
ZmlnKS0+b2JqZWN0X3NpemUsCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdGluZ1NlY29uZE9i
amVjdFNpemUpOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIHZvaWQgdGVzdFRha2VQYWdlcyh1bnNpZ25l
ZCBmaXJzdE9iamVjdFMKICAgICAgICAgQ0hFQ0sob2JqZWN0KTsKICAgICAgICAgQ0hFQ0soIW9i
amVjdHMuY291bnQob2JqZWN0KSk7CiAgICAgICAgIG9iamVjdHMuaW5zZXJ0KG9iamVjdCk7Ci0g
ICAgICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9m
b3Jfb2JqZWN0KAorICAgICAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAgICAgICAgICAgICAgICAgICAmaXNvX2hlYXBf
Y29uZmlnKS0+b2JqZWN0X3NpemUsCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdGluZ0ZpcnN0
T2JqZWN0U2l6ZSk7CkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCB0ZXN0VGFrZVBhZ2VzRnJvbUNv
cnJlY3RIZWFwKHVuc2lnbgogICAgIAogICAgIHBhc19oZWFwX3JlZiogaGVhcFJlZnMgPSBuZXcg
cGFzX2hlYXBfcmVmW251bUhlYXBzXTsKICAgICB2b2lkKiogb2JqZWN0cyA9IG5ldyB2b2lkKltu
dW1IZWFwc107Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiogZGly
ZWN0b3JpZXMgPSBuZXcgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KltudW1I
ZWFwc107CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqKiBkaXJlY3RvcmllcyA9
IG5ldyBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSpbbnVtSGVhcHNdOwogICAgIAogICAg
IHVuc2lnbmVkIG51bUhlYXBzSW5TZWNvbmRQaGFzZSA9IG51bUhlYXBzIC0gbnVtSGVhcHNJbkZp
cnN0UGhhc2U7CiAgICAgCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCB0ZXN0VGFrZVBhZ2VzRnJv
bUNvcnJlY3RIZWFwKHVuc2lnbgogICAgICAgICBvYmplY3RzW2ldID0gaXNvX3RyeV9hbGxvY2F0
ZShoZWFwUmVmcyArIGkpOwogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIGNvdXQg
PDwgIiAgICBBbGxvY2F0ZWQgb2JqZWN0IGF0ICIgPDwgb2JqZWN0c1tpXSA8PCAiXG4iOwotICAg
ICAgICBkaXJlY3Rvcmllc1tpXSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9mb3Jfb2JqZWN0KAorICAgICAgICBkaXJlY3Rvcmllc1tpXSA9IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVp
bnRwdHJfdD4ob2JqZWN0c1tpXSksICZpc29faGVhcF9jb25maWcpOwogICAgICAgICBpZiAoZGly
ZWN0b3JpZXNbaV0pCiAgICAgICAgICAgICBDSEVDS19FUVVBTChkaXJlY3Rvcmllc1tpXS0+b2Jq
ZWN0X3NpemUsIHNpemVGdW5jKGkpKTsKQEAgLTE5ODAsOSArMTk4MCw5IEBAIHBhc19oZWFwKiBz
bWFsbEhlYXBUd287CiBwYXNfaGVhcCogc21hbGxIZWFwVGhyZWU7CiBwYXNfaGVhcCogbGFyZ2VI
ZWFwT25lOwogcGFzX2hlYXAqIGxhcmdlSGVhcFR3bzsKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogcHJpbWl0aXZlU21hbGxPbmVEaXJlY3Rvcnk7Ci1wYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHByaW1pdGl2ZVNtYWxsVHdvRGlyZWN0b3J5OwotcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwcmltaXRpdmVTbWFsbFRocmVlRGly
ZWN0b3J5OworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHByaW1pdGl2ZVNtYWxsT25l
RGlyZWN0b3J5OworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHByaW1pdGl2ZVNtYWxs
VHdvRGlyZWN0b3J5OworcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHByaW1pdGl2ZVNt
YWxsVGhyZWVEaXJlY3Rvcnk7CiAKIHZvaWQgc2V0dXBUaGluZ3koKQogewpAQCAtMjA4Niw5ICsy
MDg2LDkgQEAgdm9pZCBhbGxvY2F0ZVRoaW5naWVzSW1wbChUaGluZ3lLaW5kIGtpbgogICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBhbGxvY2F0ZU1hbnkgPyAxNTYyNTAgOiAxOyBpLS07KSB7CiAg
ICAgICAgICAgICB2b2lkKiBvYmplY3QgPSBhZGRPYmplY3QoaXNvX3RyeV9hbGxvY2F0ZV9jb21t
b25fcHJpbWl0aXZlKDMyKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zv
cl9vYmplY3QoCisgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9mb3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihvYmplY3QpLAogICAgICAgICAgICAgICAgICZpc29faGVhcF9jb25maWcpOwogICAg
ICAgICAgICAgCkBAIC0yMTAyLDkgKzIxMDIsOSBAQCB2b2lkIGFsbG9jYXRlVGhpbmdpZXNJbXBs
KFRoaW5neUtpbmQga2luCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGFsbG9jYXRlTWFueSA/
IDM5MDYyIDogMTsgaS0tOykgewogICAgICAgICAgICAgdm9pZCogb2JqZWN0ID0gYWRkT2JqZWN0
KGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZSgxMjgpKTsKICAgICAgICAgICAgIAot
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
OwogICAgICAgICAgICAgCi0gICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAg
ICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAgICAgICAgICAg
Jmlzb19oZWFwX2NvbmZpZyk7CiAgICAgICAgICAgICAKQEAgLTIxMTgsOSArMjExOCw5IEBAIHZv
aWQgYWxsb2NhdGVUaGluZ2llc0ltcGwoVGhpbmd5S2luZCBraW4KICAgICAgICAgZm9yICh1bnNp
Z25lZCBpID0gYWxsb2NhdGVNYW55ID8gMTA0MTY2IDogMTsgaS0tOykgewogICAgICAgICAgICAg
dm9pZCogb2JqZWN0ID0gYWRkT2JqZWN0KGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2
ZSg0OCkpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRpcmVj
dG9yeSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAor
ICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9y
X29iamVjdCgKICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2Jq
ZWN0KSwKICAgICAgICAgICAgICAgICAmaXNvX2hlYXBfY29uZmlnKTsKICAgICAgICAgICAgIApA
QCAtNDU0Miw3ICs0NTQyLDYgQEAgdm9pZCBhZGRJc29IZWFwUGFnZVNoYXJpbmdUZXN0cygpCiAg
ICAgRm9yY2VFeGNsdXNpdmVzIGZvcmNlRXhjbHVzaXZlczsKICAgICBGb3JjZVRMQXMgZm9yY2VU
TEFzOwogICAgIERpc2FibGVCaXRmaXQgZGlzYWJsZUJpdGZpdDsKLSAgICBGb3JjZU9uZU1hZ2F6
aW5lIGZvcmNlT25lTWFnYXppbmU7CiAgICAgCiAgICAgewogICAgICAgICBUZXN0U2NvcGUgdGVz
dFNjb3BlKApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0
aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlh
bEFuZEJhc2VsaW5lVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODUsNyArMTg1LDcgQEAg
dm9pZCB0ZXN0U2ltcGxlUGFydGlhbEFsbG9jYXRpb25zKHNpemVfdAogICAgIHNldDx2b2lkKj4g
b2JqZWN0U2V0OwogICAgIHNldDxwYXNfc2VncmVnYXRlZF92aWV3PiB2aWV3U2V0OwogICAgIHNl
dDxwYXNfc2VncmVnYXRlZF9wYWdlKj4gcGFnZVNldDsKLSAgICBzZXQ8cGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5Kj4gc2l6ZURpcmVjdG9yeVNldDsKKyAgICBzZXQ8cGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqPiBzaXplRGlyZWN0b3J5U2V0OwogICAgIAogICAgIHBh
c19oZWFwX3JlZiBoZWFwID0gSVNPX0hFQVBfUkVGX0lOSVRJQUxJWkVSX1dJVEhfQUxJR05NRU5U
KHNpemUsIGFsaWdubWVudCk7CiAKQEAgLTIwOSw5ICsyMDksOSBAQCB2b2lkIHRlc3RTaW1wbGVQ
YXJ0aWFsQWxsb2NhdGlvbnMoc2l6ZV90CiAgICAgICAgIG9iamVjdFNldC5pbnNlcnQocHRyKTsK
ICAgICAgICAgdmlld1NldC5pbnNlcnQodmlldyk7CiAgICAgICAgIHBhZ2VTZXQuaW5zZXJ0KHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2UodmlldykpOwotICAgICAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVEaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkodmlldyk7CisgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBzaXplRGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfc2l6ZV9kaXJlY3Rvcnkodmlldyk7CiAgICAgICAgIENIRUNLX0VRVUFMKHNpemVEaXJlY3Rv
cnktPm9iamVjdF9zaXplLCBzaXplKTsKLSAgICAgICAgQ0hFQ0socGFzX2lzX2FsaWduZWQocGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChzaXplRGlyZWN0b3J5
KSwgYWxpZ25tZW50KSk7CisgICAgICAgIENIRUNLKHBhc19pc19hbGlnbmVkKHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChzaXplRGlyZWN0b3J5KSwgYWxpZ25tZW50KSk7
CiAgICAgICAgIHNpemVEaXJlY3RvcnlTZXQuaW5zZXJ0KHNpemVEaXJlY3RvcnkpOwogICAgIH0K
IApAQCAtMjg3LDkgKzI4Nyw5IEBAIHZvaWQgdGVzdFNpbXBsZVBhcnRpYWxBbGxvY2F0aW9ucyhz
aXplX3QKICAgICAgICAgb2JqZWN0U2V0Lmluc2VydChwdHIpOwogICAgICAgICB2aWV3U2V0Lmlu
c2VydCh2aWV3KTsKICAgICAgICAgcGFnZVNldC5pbnNlcnQocGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcGFnZSh2aWV3KSk7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogc2l6ZURpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSh2aWV3KTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkq
IHNpemVEaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2
aWV3KTsKICAgICAgICAgQ0hFQ0tfRVFVQUwoc2l6ZURpcmVjdG9yeS0+b2JqZWN0X3NpemUsIHNp
emUpOwotICAgICAgICBDSEVDSyhwYXNfaXNfYWxpZ25lZChwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHNpemVEaXJlY3RvcnkpLCBhbGlnbm1lbnQpKTsKKyAg
ICAgICAgQ0hFQ0socGFzX2lzX2FsaWduZWQocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
YWxpZ25tZW50KHNpemVEaXJlY3RvcnkpLCBhbGlnbm1lbnQpKTsKICAgICAgICAgc2l6ZURpcmVj
dG9yeVNldC5pbnNlcnQoc2l6ZURpcmVjdG9yeSk7CiAgICAgfQogCkBAIC02MDMsOCArNjAzLDYg
QEAgdm9pZCB0ZXN0TXVsdGlwbGVQYXJ0aWFsc0Zyb21EaWZmZXJlbnRUaAogewogICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKLSAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV91c2VfdGFibGluZyA9IGZhbHNlOwotICAgIAogICAgIHBhc19oZWFwX3Jl
ZiBoZWFwID0gSVNPX0hFQVBfUkVGX0lOSVRJQUxJWkVSX1dJVEhfQUxJR05NRU5UKHNpemUsIGFs
aWdubWVudCk7CiAKICAgICB2ZWN0b3I8dGhyZWFkPiB0aHJlYWRzOwpAQCAtNzkyLDcgKzc5MCw2
IEBAIHZvaWQgdGVzdFR3b0Jhc2VsaW5lc0V2aWN0aW9ucyhzaXplX3Qgc2kKIHZvaWQgYWRkU2Nh
dmVuZ2VyRGVwZW5kZW50VGVzdHMoKQogewogICAgIERpc2FibGVCaXRmaXQgZGlzYWJsZUJpdGZp
dDsKLSAgICBEaXNhYmxlRXhwbG9zaW9uIGRpc2FibGVFeHBsb3Npb247CiAgICAgCiAgICAgewog
ICAgICAgICBGb3JjZVBhcnRpYWxzIGZvcmNlUGFydGlhbHM7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBUYWJsaW5nVGVzdHMuY3BwCShy
ZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVh
cFRhYmxpbmdUZXN0cy5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMjcgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiVGVzdEhh
cm5lc3MuaCIKLQotI2lmIFBBU19FTkFCTEVfSVNPCi0KLSNpbmNsdWRlICJpc29fdGVzdF9oZWFw
LmgiCi0jaW5jbHVkZSAiaXNvX3Rlc3RfaGVhcF9jb25maWcuaCIKLSNpbmNsdWRlIDxtYXA+Ci0j
aW5jbHVkZSA8dmVjdG9yPgotCi11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1lc3BhY2Ugewot
Ci12b2lkIHRlc3RUYWJsaW5nKHVuc2lnbmVkIHNpemUsCi0gICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQgdmFyaWFudCwKLSAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbnVtUGFnZXNUb0VtcHR5LAotICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1Q
YWdlc05vdFRvRW1wdHksCi0gICAgICAgICAgICAgICAgIGJvb2wgdXNlVGFibGluZywKLSAgICAg
ICAgICAgICAgICAgYm9vbCByYWdlU2NhdmVuZ2VEdXJpbmdSZWZpbGwpCi17Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKLSAgICBtYXA8cGFzX3NlZ3Jl
Z2F0ZWRfdmlldywgdmVjdG9yPHZvaWQqPj4gcGFnZXNUb0VtcHR5OwotICAgIG1hcDxwYXNfc2Vn
cmVnYXRlZF92aWV3LCB2ZWN0b3I8dm9pZCo+PiBwYWdlc05vdFRvRW1wdHk7Ci0gICAgdW5zaWdu
ZWQgbnVtYmVyT2ZPYmplY3RzUGVyUGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfbnVtYmVyX29m
X29iamVjdHMoCi0gICAgICAgIHNpemUsICpwYXNfaGVhcF9jb25maWdfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQoJmlzb190ZXN0X2hlYXBfY29uZmlnLCB2YXJpYW50KSk7
Ci0KLSAgICBhdXRvIGZpbGwgPQotICAgICAgICBbJl0gKGF1dG8mIG1hcCwgdW5zaWduZWQgbGlt
aXQpIHsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgcGFnZUluZGV4ID0gMDsgcGFnZUluZGV4
IDwgbGltaXQ7ICsrcGFnZUluZGV4KSB7Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3ID0gbnVsbHB0cjsKLSAgICAgICAgICAgICAgICB2ZWN0b3I8dm9pZCo+IG9iamVj
dHM7Ci0gICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBvYmplY3RJbmRleCA9IDA7IG9iamVj
dEluZGV4IDwgbnVtYmVyT2ZPYmplY3RzUGVyUGFnZTsgKytvYmplY3RJbmRleCkgewotICAgICAg
ICAgICAgICAgICAgICB2b2lkKiBvYmplY3QgPSBpc29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJp
bWl0aXZlKHNpemUpOwotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IG15
VmlldyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZm9yX29iamVjdCgKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgJmlzb190ZXN0X2hlYXBfY29uZmlnKTsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICJBbGxvY2F0ZWQg
b2JqZWN0ICIgPDwgb2JqZWN0IDw8ICIgaW4gdmlldyAiIDw8IG15VmlldyA8PCAiXG4iOwotICAg
ICAgICAgICAgICAgICAgICBDSEVDSyhteVZpZXcpOwotICAgICAgICAgICAgICAgICAgICBpZiAo
IW9iamVjdEluZGV4KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCF2aWV3
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcgPSBteVZpZXc7Ci0gICAgICAgICAgICAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobXlWaWV3
LCB2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAgb2JqZWN0cy5wdXNoX2JhY2sob2JqZWN0KTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgQ0hFQ0sodmlldyk7Ci0gICAgICAg
ICAgICAgICAgQ0hFQ0soIW1hcC5jb3VudCh2aWV3KSk7Ci0gICAgICAgICAgICAgICAgbWFwW3Zp
ZXddID0gb2JqZWN0czsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgIGZpbGwocGFn
ZXNUb0VtcHR5LCBudW1QYWdlc1RvRW1wdHkpOwotICAgIGZpbGwocGFnZXNOb3RUb0VtcHR5LCBu
dW1QYWdlc05vdFRvRW1wdHkpOwotCi0gICAgZm9yIChhdXRvJiBlbnRyeSA6IHBhZ2VzVG9FbXB0
eSkgewotICAgICAgICB3aGlsZSAoZW50cnkuc2Vjb25kLnNpemUoKSkgewotICAgICAgICAgICAg
aXNvX3Rlc3RfZGVhbGxvY2F0ZShlbnRyeS5zZWNvbmQuYmFjaygpKTsKLSAgICAgICAgICAgIGVu
dHJ5LnNlY29uZC5wb3BfYmFjaygpOwotICAgICAgICB9Ci0gICAgfQotICAgIGZvciAoYXV0byYg
ZW50cnkgOiBwYWdlc05vdFRvRW1wdHkpIHsKLSAgICAgICAgd2hpbGUgKGVudHJ5LnNlY29uZC5z
aXplKCkgPj0gMikgewotICAgICAgICAgICAgaXNvX3Rlc3RfZGVhbGxvY2F0ZShlbnRyeS5zZWNv
bmQuYmFjaygpKTsKLSAgICAgICAgICAgIGVudHJ5LnNlY29uZC5wb3BfYmFjaygpOwotICAgICAg
ICB9Ci0gICAgfQotCi0gICAgc2NhdmVuZ2UoKTsKLQotICAgIGF1dG8gcmVmaWxsID0KLSAgICAg
ICAgWyZdIChhdXRvJiBtYXAsIHVuc2lnbmVkIGxpbWl0LCB1bnNpZ25lZCBleGNsdWRlKSB7Ci0g
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHBhZ2VJbmRleCA9IDA7IHBhZ2VJbmRleCA8IGxpbWl0
OyArK3BhZ2VJbmRleCkgewotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmll
dyA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgdmVjdG9yPHZvaWQqPiBvYmplY3RzOwotICAg
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgb2JqZWN0SW5kZXggPSAwOwotICAgICAgICAgICAg
ICAgICAgICAgb2JqZWN0SW5kZXggPCBudW1iZXJPZk9iamVjdHNQZXJQYWdlIC0gZXhjbHVkZTsK
LSAgICAgICAgICAgICAgICAgICAgICsrb2JqZWN0SW5kZXgpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKHJhZ2VTY2F2ZW5nZUR1cmluZ1JlZmlsbCkKLSAgICAgICAgICAgICAgICAgICAgICAg
IHNjYXZlbmdlKCk7Ci0gICAgICAgICAgICAgICAgICAgIHZvaWQqIG9iamVjdCA9IGlzb190ZXN0
X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXcgbXlWaWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0
KAotICAgICAgICAgICAgICAgICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9i
amVjdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAmaXNvX3Rlc3RfaGVhcF9jb25maWcpOwot
ICAgICAgICAgICAgICAgICAgICBpZiAoIW9iamVjdEluZGV4KSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBQQVNfQVNTRVJUKCF2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcg
PSBteVZpZXc7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAg
ICAgICAgQ0hFQ0tfRVFVQUwobXlWaWV3LCB2aWV3KTsKLSAgICAgICAgICAgICAgICAgICAgb2Jq
ZWN0cy5wdXNoX2JhY2sob2JqZWN0KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgUEFTX0FTU0VSVCh2aWV3KTsKLSAgICAgICAgICAgICAgICBDSEVDSyhtYXAuY291bnQodmll
dykpOwotICAgICAgICAgICAgICAgIENIRUNLX0VRVUFMKG1hcFt2aWV3XS5zaXplKCkgKyBvYmpl
Y3RzLnNpemUoKSwgbnVtYmVyT2ZPYmplY3RzUGVyUGFnZSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH07Ci0KLSAgICBpZiAodXNlVGFibGluZykgewotICAgICAgICByZWZpbGwocGFnZXNOb3RU
b0VtcHR5LCBudW1QYWdlc05vdFRvRW1wdHksIDEpOwotICAgICAgICByZWZpbGwocGFnZXNUb0Vt
cHR5LCBudW1QYWdlc1RvRW1wdHksIDApOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHJlZmlsbChw
YWdlc1RvRW1wdHksIG51bVBhZ2VzVG9FbXB0eSwgMCk7Ci0gICAgICAgIHJlZmlsbChwYWdlc05v
dFRvRW1wdHksIG51bVBhZ2VzTm90VG9FbXB0eSwgMSk7Ci0gICAgfQotfQotCi12b2lkIHRlc3RV
bnRhYmxpbmcoKQotewotICAgIHZlY3Rvcjx2ZWN0b3I8dm9pZCo+PiBvYmplY3RzSW5QYWdlOwot
Ci0gICAgdW5zaWduZWQgbnVtYmVyT2ZPYmplY3RzUGVyUGFnZSA9IHBhc19zZWdyZWdhdGVkX3Bh
Z2VfbnVtYmVyX29mX29iamVjdHMoCi0gICAgICAgIDE2LCBJU09fVEVTVF9IRUFQX0NPTkZJRy5z
bWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
MjsgKytpKSB7Ci0gICAgICAgIHZlY3Rvcjx2b2lkKj4gb2JqZWN0czsKLSAgICAgICAgZm9yICh1
bnNpZ25lZCBqID0gMDsgaiA8IG51bWJlck9mT2JqZWN0c1BlclBhZ2U7ICsraikKLSAgICAgICAg
ICAgIG9iamVjdHMucHVzaF9iYWNrKGlzb190ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUo
MTYpKTsKLSAgICAgICAgb2JqZWN0c0luUGFnZS5wdXNoX2JhY2sob2JqZWN0cyk7Ci0gICAgfQot
Ci0gICAgZm9yICh2b2lkKiBvYmplY3QgOiBvYmplY3RzSW5QYWdlWzBdKQotICAgICAgICBpc29f
dGVzdF9kZWFsbG9jYXRlKG9iamVjdCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwg
b2JqZWN0c0luUGFnZVsxXS5zaXplKCk7ICsraSkKLSAgICAgICAgaXNvX3Rlc3RfZGVhbGxvY2F0
ZShvYmplY3RzSW5QYWdlWzFdW2ldKTsKLQotICAgIHNjYXZlbmdlKCk7Ci0KLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAxOyBpIDwgb2JqZWN0c0luUGFnZVsxXS5zaXplKCk7ICsraSkgewotICAgICAg
ICBDSEVDS19FUVVBTChpc29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKDE2KSwKLSAg
ICAgICAgICAgICAgICAgICAgb2JqZWN0c0luUGFnZVsxXVtpXSk7Ci0gICAgfQotCi0gICAgQ0hF
Q0tfRVFVQUwoaXNvX3Rlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZSgxNiksCi0gICAgICAg
ICAgICAgICAgb2JqZWN0c0luUGFnZVswXVswXSk7Ci0KLSAgICBpc29fdGVzdF9kZWFsbG9jYXRl
KG9iamVjdHNJblBhZ2VbMV1bMF0pOwotCi0gICAgc2NhdmVuZ2UoKTsKLQotICAgIENIRUNLX0VR
VUFMKGlzb190ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoMTYpLAotICAgICAgICAgICAg
ICAgIG9iamVjdHNJblBhZ2VbMF1bMV0pOwotfQotCi12b2lkIGFkZFRhYmxpbmdUZXN0cyhib29s
IHVzZVRhYmxpbmcpCi17Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBhc19zbWFsbF9z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEsIHVzZVRhYmxpbmcsIGZhbHNlKSk7
Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX3ZhcmlhbnQsIDEsIDEwLCB1c2VUYWJsaW5nLCBmYWxzZSkpOwotICAgIEFERF9URVNU
KHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50
LCAxMCwgMSwgdXNlVGFibGluZywgZmFsc2UpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygx
NiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMTAsIDEwLCB1c2VU
YWJsaW5nLCBmYWxzZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4LCBwYXNfbWVk
aXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMSwgdXNlVGFibGluZywgZmFs
c2UpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxOTk2OCwgcGFzX21lZGl1bV9zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEwLCB1c2VUYWJsaW5nLCBmYWxzZSkpOwotICAg
IEFERF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfdmFyaWFudCwgMTAsIDEsIHVzZVRhYmxpbmcsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1Qo
dGVzdFRhYmxpbmcoMTk5NjgsIHBhc19tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJp
YW50LCAxMCwgMTAsIHVzZVRhYmxpbmcsIGZhbHNlKSk7Ci0KLSAgICBBRERfVEVTVCh0ZXN0VGFi
bGluZygxNiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMSwgMSwg
dXNlVGFibGluZywgdHJ1ZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21h
bGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxLCAxMCwgdXNlVGFibGluZywgdHJ1
ZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMSwgdXNlVGFibGluZywgdHJ1ZSkpOwotICAgIEFERF9U
RVNUKHRlc3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJp
YW50LCAxMCwgMTAsIHVzZVRhYmxpbmcsIHRydWUpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGlu
ZygxOTk2OCwgcGFzX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEs
IHVzZVRhYmxpbmcsIHRydWUpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxOTk2OCwgcGFz
X21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEwLCB1c2VUYWJsaW5n
LCB0cnVlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTk5NjgsIHBhc19tZWRpdW1fc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxMCwgMSwgdXNlVGFibGluZywgdHJ1ZSkpOwot
ICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfdmFyaWFudCwgMTAsIDEwLCB1c2VUYWJsaW5nLCB0cnVlKSk7Ci19Ci0KLX0gLy8g
YW5vbnltb3VzIG5hbWVzcGFjZQotCi0jZW5kaWYgLy8gUEFTX0VOQUJMRV9JU08KLQotdm9pZCBh
ZGRJc29IZWFwVGFibGluZ1Rlc3RzKCkKLXsKLSAgICBSdW5TY2F2ZW5nZXJGdWxseSBydW5TY2F2
ZW5nZXJGdWxseTsKLSAgICBGb3JjZUV4Y2x1c2l2ZXMgZm9yY2VFeGNsdXNpdmVzOwotICAgIEZv
cmNlVExBcyBmb3JjZVRMQXM7Ci0gICAgRGlzYWJsZUJpdGZpdCBkaXNhYmxlQml0Zml0OwotCi0g
ICAgewotICAgICAgICBUZXN0U2NvcGUgZW5hYmxlVGFibGluZygKLSAgICAgICAgICAgICJlbmFi
bGUtdGFibGluZyIsCi0gICAgICAgICAgICBbXSAoKSB7Ci0gICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3RhYmxpbmcgPSB0cnVlOwotICAgICAgICAgICAg
fSk7Ci0KLSAgICAgICAgYWRkVGFibGluZ1Rlc3RzKHRydWUpOwotICAgICAgICAKLSAgICAgICAg
QUREX1RFU1QodGVzdFVudGFibGluZygpKTsKLSAgICB9Ci0KLSAgICB7Ci0gICAgICAgIFRlc3RT
Y29wZSBlbmFibGVUYWJsaW5nKAotICAgICAgICAgICAgImRpc2FibGUtdGFibGluZyIsCi0gICAg
ICAgICAgICBbXSAoKSB7Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfdXNlX3RhYmxpbmcgPSBmYWxzZTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIGFk
ZFRhYmxpbmdUZXN0cyhmYWxzZSk7Ci0gICAgfQotfQotCi0KLQpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy90ZXN0L1JhY2VUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy90ZXN0L1JhY2VUZXN0cy5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9SYWNlVGVzdHMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDEsNyArMTQxLDcgQEAgdm9pZCB0ZXN0TG9jYWxBbGxvY2F0b3JTdG9wUmFjZShw
YXNfcmFjZQogICAgICAgICAgICAgaWYgKGtpbmQgIT0ga2luZFRvU3RvcE9uKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobG9ja3NIZWxkRm9yVGhy
ZWFkW3RoaXNfdGhyZWFkOjpnZXRfaWQoKV0uc2l6ZSgpLCAyKTsKKyAgICAgICAgICAgIENIRUNL
X0VRVUFMKGxvY2tzSGVsZEZvclRocmVhZFt0aGlzX3RocmVhZDo6Z2V0X2lkKCldLnNpemUoKSwg
Myk7CiAgICAgICAgICAgICBDSEVDSyhva1RvR2V0VG9Ib29rKTsKIAogICAgICAgICAgICAgdW5p
cXVlX2xvY2s8bXV0ZXg+IGxvY2tlcihnbG9iYWxMb2NrKTsKQEAgLTIwMiw3ICsyMDIsNyBAQCB2
b2lkIHRlc3RMb2NhbEFsbG9jYXRvclN0b3BSYWNlQWdhaW5zdFNjCiAgICAgICAgICAgICBpZiAo
a2luZCAhPSBraW5kVG9TdG9wT24pCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAg
ICAgICBDSEVDS19FUVVBTChsb2Nrc0hlbGRGb3JUaHJlYWRbdGhpc190aHJlYWQ6OmdldF9pZCgp
XS5zaXplKCksIDIpOworICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobG9ja3NIZWxkRm9yVGhyZWFk
W3RoaXNfdGhyZWFkOjpnZXRfaWQoKV0uc2l6ZSgpLCAzKTsKICAgICAgICAgICAgIENIRUNLKG9r
VG9HZXRUb0hvb2spOwogCiAgICAgICAgICAgICB1bmlxdWVfbG9jazxtdXRleD4gbG9ja2VyKGds
b2JhbExvY2spOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJu
ZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVz
dEhhcm5lc3MuY3BwCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBA
CiAjaW5jbHVkZSAiaml0X2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAibWluYWxpZ24zMl9oZWFw
X2NvbmZpZy5oIgogI2luY2x1ZGUgInBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmgiCi0jaW5jbHVk
ZSAicGFzX2FsbF9tYWdhemluZXMuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRl
ICJwYXNfZmRfc3RyZWFtLmgiCiAjaW5jbHVkZSAicGFzX2hlYXAuaCIKQEAgLTIwOSwzNSArMjA4
LDYgQEAgSW5zdGFsbFZlcmlmaWVyOjpJbnN0YWxsVmVyaWZpZXIoKQogewogfQogCi1EaXNhYmxl
RXhwbG9zaW9uOjpEaXNhYmxlRXhwbG9zaW9uKCkKLSAgICA6IFRlc3RTY29wZSgKLSAgICAgICAg
ImRpc2FibGUtZXhwbG9zaW9uIiwKLSAgICAgICAgW10gKCkgewotICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Nhbl9leHBsb2RlID0gZmFsc2U7Ci0gICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yY2VfZXhwbG9k
ZSA9IGZhbHNlOwotICAgICAgICB9KQotewotfQotCi1Gb3JjZUV4cGxvc2lvbjo6Rm9yY2VFeHBs
b3Npb24oKQotICAgIDogVGVzdFNjb3BlKAotICAgICAgICAiZm9yY2UtZXhwbG9zaW9uIiwKLSAg
ICAgICAgW10gKCkgewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2Nhbl9leHBsb2RlID0gdHJ1ZTsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9mb3JjZV9leHBsb2RlID0gdHJ1ZTsKLSAgICAgICAgfSkKLXsK
LX0KLQotRm9yY2VPbmVNYWdhemluZTo6Rm9yY2VPbmVNYWdhemluZSgpCi0gICAgOiBUZXN0U2Nv
cGUoCi0gICAgICAgICJmb3JjZS1vbmUtbWFnYXppbmUiLAotICAgICAgICBbXSAoKSB7Ci0gICAg
ICAgICAgICBwYXNfYWxsX21hZ2F6aW5lc19mb3JjZWRfY3B1X251bWJlciA9IDA7Ci0gICAgICAg
IH0pCi17Ci19Ci0KIEVwb2NoSXNDb3VudGVyOjpFcG9jaElzQ291bnRlcigpCiAgICAgOiBUZXN0
U2NvcGUoCiAgICAgICAgICJlcG9jaC1pcy1jb3VudGVyIiwKQEAgLTM1Niw3ICszMjYsNiBAQCB2
b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3RzKCk7CiB2b2lkIGFkZElzb0hlYXBQYWdlU2hhcmluZ1Rl
c3RzKCk7CiB2b2lkIGFkZElzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cygpOwogdm9pZCBh
ZGRJc29IZWFwUmVzZXJ2ZWRNZW1vcnlUZXN0cygpOwotdm9pZCBhZGRJc29IZWFwVGFibGluZ1Rl
c3RzKCk7CiB2b2lkIGFkZEpJVEhlYXBUZXN0cygpOwogdm9pZCBhZGRMYXJnZUZyZWVIZWFwVGVz
dHMoKTsKIHZvaWQgYWRkTGFyZ2VTaGFyaW5nUG9vbFRlc3RzKCk7CkBAIC03MTQsNyArNjgzLDYg
QEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIEFERF9TVUlURShJc29IZWFw
UGFnZVNoYXJpbmcpOwogICAgIEFERF9TVUlURShJc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lKTsK
ICAgICBBRERfU1VJVEUoSXNvSGVhcFJlc2VydmVkTWVtb3J5KTsKLSAgICBBRERfU1VJVEUoSXNv
SGVhcFRhYmxpbmcpOwogICAgIEFERF9TVUlURShKSVRIZWFwKTsKICAgICBBRERfU1VJVEUoTGFy
Z2VGcmVlSGVhcCk7CiAgICAgQUREX1NVSVRFKExhcmdlU2hhcmluZ1Bvb2wpOwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmgJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNzUsMjEgKzI3NSw2IEBAIHB1YmxpYzoKICAgICBJbnN0YWxsVmVy
aWZpZXIoKTsKIH07CiAKLWNsYXNzIERpc2FibGVFeHBsb3Npb24gOiBwdWJsaWMgVGVzdFNjb3Bl
IHsKLXB1YmxpYzoKLSAgICBEaXNhYmxlRXhwbG9zaW9uKCk7Ci19OwotCi1jbGFzcyBGb3JjZUV4
cGxvc2lvbiA6IHB1YmxpYyBUZXN0U2NvcGUgewotcHVibGljOgotICAgIEZvcmNlRXhwbG9zaW9u
KCk7Ci19OwotCi1jbGFzcyBGb3JjZU9uZU1hZ2F6aW5lIDogcHVibGljIFRlc3RTY29wZSB7Ci1w
dWJsaWM6Ci0gICAgRm9yY2VPbmVNYWdhemluZSgpOwotfTsKLQogY2xhc3MgRXBvY2hJc0NvdW50
ZXIgOiBwdWJsaWMgVGVzdFNjb3BlIHsKIHB1YmxpYzoKICAgICBFcG9jaElzQ291bnRlcigpOwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1RoaW5neUFuZFV0aWxpdHlIZWFw
QWxsb2NhdGlvblRlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwCShyZXZpc2lv
biAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRp
bGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3
IEBACiAjaW5jbHVkZSAicGFzX21lZ2FwYWdlX2NhY2hlLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vf
bWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3NjYXZlbmdlci5oIgotI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCIKICNpbmNs
dWRlICJwYXNfdXRpbGl0eV9oZWFwLmgiCkBAIC04MSwxMCArODEsMTAgQEAgdm9pZCBmbHVzaERl
YWxsb2NhdGlvbkxvZ0FuZFN0b3BBbGxvY2F0bwogLy8gRklYTUU6IE9uY2Ugd2UgYWRkIHJlYWwg
c2NhdmVuZ2luZywgd2Ugd2lsbCB3YW50IHRvIGFkZCBhIHNocmlua0hlYXBzKCkgZnVuY3Rpb24g
dGhhdCBkb2VzCiAvLyBmbHVzaERlYWxsb2NhdGlvbkxvZ0FuZFN0b3BBbGxvY2F0b3JzKCkgcGx1
cyB0aGUgYWN0dWFsIHNjYXZlbmdpbmcuCiAKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogc2l6ZUNsYXNzRm9yKHZvaWQqIG9iamVjdCkKK3Bhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBzaXplQ2xhc3NGb3Iodm9pZCogb2JqZWN0KQogewogI2lmIFNFR0hFQVAKLSAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3Qo
CisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QpLCAmdGhpbmd5X2hlYXBf
Y29uZmlnKTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMTMsNyArMTEzLDcgQEAg
dm9pZCBmb3JFYWNoTGl2ZVV0aWxpdHlPYmplY3QoZnVuY3Rpb248YgogCiAjaWYgU0VHSEVBUAog
Ym9vbCBmb3JFYWNoQ29tbWl0dGVkVmlld0FkYXB0ZXIocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogc2l6ZUNsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVDbGFzcywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFyZykKIHsKQEAgLTI2Miw5ICsyNjIs
OSBAQCB2b2lkIHZlcmlmeUhlYXBFbXB0eShwYXNfaGVhcCogaGVhcCkKICAgICBmb3JFYWNoQ29t
bWl0dGVkVmlldygKICAgICAgICAgaGVhcCwKICAgICAgICAgWyZdIChwYXNfc2VncmVnYXRlZF92
aWV3IHZpZXcpIC0+IGJvb2wgewotICAgICAgICAgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19lbGlnaWJsZV9vcl9iaWFzZWQodmlldykpOworICAgICAgICAgICAgQ0hFQ0socGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZSh2aWV3KSk7CiAjaWYgVExDCi0gICAgICAgICAgICBD
SEVDSyhwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5X29yX2JpYXNlZCh2aWV3KSk7CisgICAg
ICAgICAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5KHZpZXcpKTsKICNlbmRp
ZgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0pOwpAQCAtOTY2LDI4ICs5NjYs
MjYgQEAgdm9pZCB0ZXN0SW50ZXJuYWxTY2F2ZW5nZUZyb21Db3JyZWN0RGlyZQogICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldzEgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmplY3QocmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdDEpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRoaW5neV9oZWFwX2Nv
bmZpZyk7CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkxID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5MSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihv
YmplY3QxKSwgJnRoaW5neV9oZWFwX2NvbmZpZyk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBnbG9iYWxEaXJlY3RvcnkxID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2dsb2JhbChkaXJlY3RvcnkxKTsKICAgICAKLSAgICBDSEVD
S19FUVVBTChnbG9iYWxEaXJlY3RvcnkxLT5vYmplY3Rfc2l6ZSwgZmlyc3RTaXplKTsKLSAgICBD
SEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkxKSwgMSk7
Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3Rv
cnkxLCAwKSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgm
Z2xvYmFsRGlyZWN0b3J5MS0+YmFzZSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5MSwgMCkpOworICAgIENIRUNLX0VRVUFMKGRp
cmVjdG9yeTEtPm9iamVjdF9zaXplLCBmaXJzdFNpemUpOworICAgIENIRUNLX0VRVUFMKHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnkxLT5iYXNlKSwgMSk7CisgICAgQ0hF
Q0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5MS0+YmFz
ZSwgMCkpOworICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRp
cmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXNfY29tbWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0g
ICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5MSwgMCksCisgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVjdG9yeTEtPmJhc2UsIDApLAog
ICAgICAgICB2aWV3MSk7CiAgICAgCiAgICAgZmx1c2hEZWFsbG9jYXRpb25Mb2dBbmRTdG9wQWxs
b2NhdG9ycygpOwogCi0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3Np
emUoZGlyZWN0b3J5MSksIDEpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
c19lbGlnaWJsZShkaXJlY3RvcnkxLCAwKSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGlyZWN0b3J5MS0+YmFzZSwgMCkpOwotICAgIENIRUNL
KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5MSwgMCkpOwor
ICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3Rvcnkx
LT5iYXNlKSwgMSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdp
YmxlKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsK
ICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChk
aXJlY3RvcnkxLCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGly
ZWN0b3J5MS0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcxKTsKICAgICAKICAgICB2b2lkKiBvYmpl
Y3QyID0gdGhpbmd5X3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUoc2Vjb25kU2l6ZSk7CkBAIC05OTYs
NDUgKzk5NCw0MyBAQCB2b2lkIHRlc3RJbnRlcm5hbFNjYXZlbmdlRnJvbUNvcnJlY3REaXJlCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3MiA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZm9yX29i
amVjdChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0MiksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGhpbmd5
X2hlYXBfY29uZmlnKTsKICAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVj
dG9yeTIgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAorICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkyID0gcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50
cHRyX3Q+KG9iamVjdDIpLCAmdGhpbmd5X2hlYXBfY29uZmlnKTsKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2JhbERpcmVjdG9yeTIgPQotICAgICAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFsKGRpcmVjdG9yeTIpOwogICAgIAot
ICAgIENIRUNLX0VRVUFMKGdsb2JhbERpcmVjdG9yeTItPm9iamVjdF9zaXplLCBzZWNvbmRTaXpl
KTsKKyAgICBDSEVDS19FUVVBTChkaXJlY3RvcnkyLT5vYmplY3Rfc2l6ZSwgc2Vjb25kU2l6ZSk7
CiAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3Rv
cnkxKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxl
KGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkxLCAwKSk7CisgICAgQ0hFQ0tf
RVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAx
KTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVj
dG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VtcHR5KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOwogICAgIENIRUNL
X0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTEs
IDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkxLT5i
YXNlLCAwKSwKICAgICAgICAgdmlldzEpOwogICAgIAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTIpLCAxKTsKLSAgICBDSEVDSyghcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTIsIDApKTsKLSAgICBDSEVD
SyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkyLT5i
YXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRl
ZChkaXJlY3RvcnkyLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X3NpemUoJmRpcmVjdG9yeTItPmJhc2UpLCAxKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7CisgICAgQ0hF
Q0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5Mi0+YmFzZSwg
MCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRp
cmVjdG9yeTItPmJhc2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnkyLCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcyKTsK
ICAgICAKICAgICBmbHVzaERlYWxsb2NhdGlvbkxvZ0FuZFN0b3BBbGxvY2F0b3JzKCk7CiAKLSAg
ICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkxKSwg
MSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVj
dG9yeTEsIDApKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5
KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkxLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwo
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAg
ICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTEt
PmJhc2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5
KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFM
KAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTEsIDApLAor
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkxLT5iYXNlLCAw
KSwKICAgICAgICAgdmlldzEpOwogICAgIAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTIpLCAxKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5MiwgMCkpOwotICAgIENIRUNLKCFwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERpcmVjdG9yeTItPmJhc2UsIDAp
KTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVj
dG9yeTIsIDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6
ZSgmZGlyZWN0b3J5Mi0+YmFzZSksIDEpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKCFwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsKKyAg
ICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3Rvcnky
LT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9nZXQoZGlyZWN0b3J5MiwgMCksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9nZXQoJmRpcmVjdG9yeTItPmJhc2UsIDApLAogICAgICAgICB2aWV3Mik7CiAgICAgCiAg
ICAgdGhpbmd5X2RlYWxsb2NhdGUob2JqZWN0MSk7CkBAIC0xMDQyLDIwICsxMDM4LDIwIEBAIHZv
aWQgdGVzdEludGVybmFsU2NhdmVuZ2VGcm9tQ29ycmVjdERpcmUKIAogICAgIGZsdXNoRGVhbGxv
Y2F0aW9uTG9nQW5kU3RvcEFsbG9jYXRvcnMoKTsKIAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTEpLCAxKTsKLSAgICBDSEVDSyhwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5MSwgMCkpOwotICAgIENIRUNL
KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGlyZWN0b3J5MS0+YmFz
ZSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQo
ZGlyZWN0b3J5MSwgMCkpOworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9zaXplKCZkaXJlY3RvcnkxLT5iYXNlKSwgMSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0so
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7
CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0
b3J5MS0+YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTEsIDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSwKICAgICAgICAgdmlldzEpOwogCi0g
ICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5Miks
IDEpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJl
Y3RvcnkyLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5
KCZnbG9iYWxEaXJlY3RvcnkyLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkyLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwo
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTItPmJhc2UpLCAxKTsKKyAg
ICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTIt
PmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHko
JmRpcmVjdG9yeTItPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwo
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5MiwgMCksCisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVjdG9yeTItPmJhc2UsIDAp
LAogICAgICAgICB2aWV3Mik7CiAgICAgCiAgICAgdm9pZCogb2JqZWN0MyA9IHRoaW5neV90cnlf
YWxsb2NhdGVfcHJpbWl0aXZlKHRoaXJkU2l6ZSk7CkBAIC0xMDY0LDMxICsxMDYwLDI5IEBAIHZv
aWQgdGVzdEludGVybmFsU2NhdmVuZ2VGcm9tQ29ycmVjdERpcmUKICAgICBwYXNfc2VncmVnYXRl
ZF92aWV3IHZpZXczID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90PihvYmplY3QzKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0aGluZ3lfaGVhcF9jb25maWcpOwog
ICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5MyA9IHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTMgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9m
b3Jfb2JqZWN0KAogICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0Myks
ICZ0aGluZ3lfaGVhcF9jb25maWcpOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSogZ2xvYmFsRGlyZWN0b3J5MyA9Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2dldF9nbG9iYWwoZGlyZWN0b3J5Myk7Ci0gICAgQ0hFQ0tfRVFVQUwoZ2xvYmFs
RGlyZWN0b3J5My0+b2JqZWN0X3NpemUsIHRoaXJkU2l6ZSk7Ci0gICAgCi0gICAgQ0hFQ0tfRVFV
QUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5MSksIDEpOwotICAgIENI
RUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3RvcnkxLCAwKSk7
Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGly
ZWN0b3J5MS0+YmFzZSwgMCkpOwotICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
aXNfY29tbWl0dGVkKGRpcmVjdG9yeTEsIDApKTsKLQotICAgIENIRUNLX0VRVUFMKHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTIpLCAxKTsKLSAgICBDSEVDSyhwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5MiwgMCkpOwotICAgIENIRUNL
KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZ2xvYmFsRGlyZWN0b3J5Mi0+YmFz
ZSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQo
ZGlyZWN0b3J5MiwgMCkpOworICAgIENIRUNLX0VRVUFMKGRpcmVjdG9yeTMtPm9iamVjdF9zaXpl
LCB0aGlyZFNpemUpOworICAgIAorICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9zaXplKCZkaXJlY3RvcnkxLT5iYXNlKSwgMSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hF
Q0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5MS0+YmFzZSwg
MCkpOworICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZk
aXJlY3RvcnkxLT5iYXNlLCAwKSk7CisKKyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5Mi0+YmFzZSksIDEpOworICAgIENIRUNLKHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAg
IENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5Mi0+YmFz
ZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQo
JmRpcmVjdG9yeTItPmJhc2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnkyLCAwKSwKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcy
KTsKICAgICAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShk
aXJlY3RvcnkzKSwgMSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19l
bGlnaWJsZShkaXJlY3RvcnkzLCAwKSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pc19lbXB0eSgmZ2xvYmFsRGlyZWN0b3J5My0+YmFzZSwgMCkpOwotICAgIENIRUNLKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5MywgMCkpOworICAg
IENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnkzLT5i
YXNlKSwgMSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJs
ZSgmZGlyZWN0b3J5My0+YmFzZSwgMCkpOworICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTMtPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkzLT5iYXNlLCAwKSk7CiAg
ICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGly
ZWN0b3J5MywgMCksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVj
dG9yeTMtPmJhc2UsIDApLAogICAgICAgICB2aWV3Myk7CiAKICAgICBDSEVDS19FUVVBTChwYXNf
c2NhdmVuZ2VyX2N1cnJlbnRfc3RhdGUsIHBhc19zY2F2ZW5nZXJfc3RhdGVfbm9fdGhyZWFkKTsK
QEAgLTExMzAsMTEgKzExMjQsMTEgQEAgdm9pZCB0ZXN0U2l6ZUNsYXNzQ3JlYXRpb25JbXBsKGNv
bnN0IHZlYwogI2lmIFRMQwogICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfdmFsaWRhdGVfZWFj
aF9zcGxhdCA9IHRydWU7CiAjZW5kaWYKLSAgICBtYXA8c2l6ZV90LCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqPiBzaXplTWFwOworICAgIG1hcDxzaXplX3QsIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5Kj4gc2l6ZU1hcDsKICAgICBmb3IgKGNvbnN0IFNpemVDbGFz
c1Byb2dyYW0mIHByb2dyYW0gOiBwcm9ncmFtcykgewogICAgICAgICBjb3V0IDw8ICIgICAgUHJv
Z3JhbTogIiA8PCBwcm9ncmFtLm5hbWUgPDwgZW5kbDsKICAgICAgICAgCi0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcmVzdWx0aW5nU2l6ZUNsYXNzID0gbnVs
bHB0cjsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdGluZ1Np
emVDbGFzcyA9IG51bGxwdHI7CiAgICAgICAgIAogICAgICAgICB7CiAjaWYgUEFTX0VOQUJMRV9U
RVNUSU5HCkBAIC0xMTc3LDcgKzExNzEsNiBAQCB2b2lkIHRlc3RTcHVyaW91c0VsaWdpYmlsaXR5
KCkKICNpZiBUTEMKICAgICBwYXNfc2NhdmVuZ2VyX3N1c3BlbmQoKTsKICAgICBwYXNfbGFyZ2Vf
c2hhcmluZ19wb29sX3ZhbGlkYXRlX2VhY2hfc3BsYXQgPSB0cnVlOwotICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5nID0gZmFsc2U7CiAjZW5kaWYKICAgICAKICAg
ICB1bnNpZ25lZCBvYmplY3RTaXplID0gMTY7CkBAIC0xNTM4LDYgKzE1MzEsOCBAQCB2b2lkIHRl
c3RDb21wbGV4TGFyZ2VBbGxvY2F0aW9uSW1wbChjb25zCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBFeHBlY3RlZEJ5dGVzIGV4cGVjdGVkTnVtTWFwcGVkQnl0ZXMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3I8QWxsb2NhdGlvblBy
b2dyYW0+JiBwcm9ncmFtcykKIHsKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9
IGZhbHNlOworICAgIAogI2lmIFRMQwogICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfdmFsaWRh
dGVfZWFjaF9zcGxhdCA9IHRydWU7CiAjZW5kaWYKQEAgLTE1NTAsNiArMTU0NSwxMCBAQCB2b2lk
IHRlc3RDb21wbGV4TGFyZ2VBbGxvY2F0aW9uSW1wbChjb25zCiAgICAgICAgICAgICBjb3V0IDw8
ICIgICAgUHJvZ3JhbTogYWxsb2NhdGUoIiA8PCBwcm9ncmFtLmtleSgpIDw8ICIsICIgPDwgcHJv
Z3JhbS5jb3VudCgpIDw8ICIsICIKICAgICAgICAgICAgICAgICAgPDwgcHJvZ3JhbS5hbGlnbm1l
bnQoKSA8PCAiKSIgPDwgZW5kbDsKICAgICAgICAgICAgIHZvaWQqIHB0ciA9IGFsbG9jYXRvci5h
bGxvY2F0ZShwcm9ncmFtLmNvdW50KCksIHByb2dyYW0uYWxpZ25tZW50KCkpOworICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICBjb3V0IDw8ICJBbGxvY2F0ZWQgcHRy
ID0gIiA8PCBwdHIgPDwgIiB3aXRoIGtpbmQgIgorICAgICAgICAgICAgICAgICAgICAgPDwgcGFz
X2dldF9vYmplY3Rfa2luZChwdHIsIFRISU5HWV9IRUFQX0NPTkZJRykgPDwgZW5kbDsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIENIRUNLKHBhc19pc19hbGlnbmVkKHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90PihwdHIpLCBwcm9ncmFtLmFsaWdubWVudCgpKSk7CiAgICAgICAgICAgICBD
SEVDSyghb2JqZWN0QnlLZXkuY291bnQocHJvZ3JhbS5rZXkoKSkpOwogICAgICAgICAgICAgb2Jq
ZWN0QnlLZXlbcHJvZ3JhbS5rZXkoKV0gPSBwdHI7CkBAIC0zMjE4LDE1ICszMjE3LDcgQEAgdm9p
ZCBhZGRBbGxUZXN0cygpCiAgICAgICAgICAgICB9KTsKICAgICAgICAgCiAgICAgICAgIGFkZEFs
bFRlc3RzSW1wbCgpOwotCi0gICAgICAgIHsKLSAgICAgICAgICAgIERpc2FibGVFeHBsb3Npb24g
RGlzYWJsZUV4cGxvc2lvbjsKLSAgICAgICAgICAgIGFkZFNtYWxsSGVhcFRlc3RzKCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgewotICAgICAgICAgICAgRm9yY2VFeHBsb3Npb24gZm9yY2VFeHBsb3Np
b247Ci0gICAgICAgICAgICBhZGRTbWFsbEhlYXBUZXN0cygpOwotICAgICAgICB9CisgICAgICAg
IGFkZFNtYWxsSGVhcFRlc3RzKCk7CiAgICAgfQogfQogCkBAIC0zMjQ0LDcgKzMyMzUsNiBAQCB2
b2lkIGFkZFRoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlCiAKICAgICBGb3JjZUV4Y2x1
c2l2ZXMgZm9yY2VFeGNsdXNpdmVzOwogICAgIEZvcmNlVExBcyBmb3JjZVRMQXM7Ci0gICAgRm9y
Y2VPbmVNYWdhemluZSBmb3JjZU9uZU1hZ2F6aW5lOwogICAgIEVwb2NoSXNDb3VudGVyIGVwb2No
SXNDb3VudGVyOwogCiAgICAgewo=
</data>
<flag name="review"
          id="461040"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
    <flag name="commit-queue"
          id="461079"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438314</attachid>
            <date>2021-09-15 18:39:25 -0700</date>
            <delta_ts>2021-09-16 01:07:58 -0700</delta_ts>
            <desc>patch for landing?</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>1307477</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvd3RmL0dpZ2FjYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V1RGL3d0Zi9HaWdhY2FnZS5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9XVEYvd3Rm
L0dpZ2FjYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTctMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
IDx3dGYvR2lnYWNhZ2UuaD4KIAogI2luY2x1ZGUgPHd0Zi9BdG9taWNzLmg+CisjaW5jbHVkZSA8
d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvUGFnZUJsb2NrLmg+CiAKICNpZiBVU0UoU1lT
VEVNX01BTExPQykKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0dpZ2FjYWdlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvR2lnYWNhZ2UuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L1dURi93dGYvR2lnYWNhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCogdHJ5QWxsb2NhdGVaZXJvCiBXVEZfRVhQT1JUX1BSSVZBVEUg
dm9pZCBmcmVlVmlydHVhbFBhZ2VzKEtpbmQsIHZvaWQqIGJhc2VQdHIsIHNpemVfdCBzaXplKTsK
IAogfSAvLyBuYW1lc3BhY2UgR2lnYWNhZ2UKLSNlbHNlCisjZWxzZSAvLyBVU0UoU1lTVEVNX01B
TExPQykgLT4gc28gIVVTRShTWVNURU1fTUFMTE9DKQogI2luY2x1ZGUgPGJtYWxsb2MvR2lnYWNh
Z2UuaD4KIAogbmFtZXNwYWNlIEdpZ2FjYWdlIHsKQEAgLTEwOCw3ICsxMDgsNyBAQCBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCogdHJ5QWxsb2NhdGVaZXJvCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBmcmVlVmlydHVhbFBhZ2VzKEtpbmQsIHZvaWQqIGJhc2VQdHIsIHNpemVfdCBzaXplKTsKIAog
fSAvLyBuYW1lc3BhY2UgR2lnYWNhZ2UKLSNlbmRpZgorI2VuZGlmIC8vIFVTRShTWVNURU1fTUFM
TE9DKSAtPiBzbyBlbmQgb2YgIVVTRShTWVNURU1fTUFMTE9DKQogCiBuYW1lc3BhY2UgR2lnYWNh
Z2UgewogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvQ2hhbmdlTG9nCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxv
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw3MjkgQEAKKzIwMjEtMDktMDkg
IEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBbbGlicGFzXSBVcGRh
dGUgdG8gMzhiOWIwYjkyY2NjOTYyODYyN2M3NDI1MjNkZTYyMDBhY2MwODIxMSBhbmQgZnVsbHkg
ZW5hYmxlIG9uIEFTCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzAxMjQKKworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAg
ICAgIFRoaXMgdXBkYXRlcyBsaWJwYXMgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIGFuZCBlbmFibGVz
IGl0IGNvbXBsZXRlbHkgb24gQVMgKG5vdCBqdXN0IGZvcgorICAgICAgICBqaXRfaGVhcCBhcyBi
ZWZvcmUpLgorCisgICAgICAgIFRoZSBtYWluIGNoYW5nZXMgYXJlOgorCisgICAgICAgIC0gUmVw
bGFjZSBiaWFzaW5nIGFuZCBtYWdhemluZXMgd2l0aCBwZXItdGhyZWFkIHZpZXcgY2FjaGVzLiBB
IHZpZXcgY2FjaGUgaXMgYSBib3VuZGVkLXNpemUKKyAgICAgICAgICBxdWV1ZSBvZiBleGNsdXNp
dmVfdmlld3MgKGkuZS4gcGFnZXMpIHRoYXQgaXMgbG9jYWwgdG8gYSB0aHJlYWQuIEVhY2ggdGhy
ZWFkIGhhcyBhIHZpZXcKKyAgICAgICAgICBjYWNoZSBmb3IgZXZlcnkgc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSB0aGF0IGl0IHRhbGtzIHRvIGFuZCB0aGF0IGhhcyB2aWV3IGNhY2hpbmcKKyAg
ICAgICAgICBlbmFibGVkLiBUaGUgc2l6ZSBkaXJlY3RvcmllcyBjYW4gY29udHJvbCB2aWV3IGNh
Y2hlIHNpemUgc29tZXdoYXQgZHluYW1pY2FsbHkgKGRpZmZlcmVudAorICAgICAgICAgIGRpcmVj
dG9yaWVzIGNhbiBoYXZlIGRpZmZlcmVudCBzaXplIHZpZXcgY2FjaGVzKS4gVmlld3MgZ2V0IGVu
cXVldWVkIHdoZW4gYSB0aHJlYWQgZnJlZXMKKyAgICAgICAgICB0aGUgZmlyc3Qgb2JqZWN0IGlu
IHRoZSBwYWdlLiBWaWV3cyBnZXQgZGVxdWV1ZWQgd2hlbmV2ZXIgYSB0aHJlYWQgd291bGQgaGF2
ZSBhc2tlZCB0aGUKKyAgICAgICAgICBkaXJlY3RvcnkgZm9yIGEgdmlldyBidXQgdGhlIHZpZXcg
Y2FjaGUgd2FzIG5vbi1lbXB0eS4KKworICAgICAgICAgIFRoaXMgY2hhbmdlIGluY3JlYXNlcyB0
aGUgZWZmaWNpZW5jeSBvZiBsb2NhbF9hbGxvY2F0b3JfcmVmaWxsLCBzaW5jZSBwYWdlcyBoYXZl
IGEgbG9uZ2VyCisgICAgICAgICAgdGltZSB0byAiY29vayIgYmVmb3JlIGFueW9uZSBhbGxvY2F0
ZXMgZnJvbSB0aGVtIChzaW5jZSB0aGUgdmlldyBjYWNoZSBpcyBhIHF1ZXVlKS4gQXMKKyAgICAg
ICAgICB3ZWxsLCB2aWV3IGNhY2hlcycgdGhyZWFkLWxvY2FsaXR5IG1lYW5zIHRoYXQgdGhlcmUg
aXMgbm8gbG9ja2luZyBvciBjb250ZW50aW9uIHdoZW4KKyAgICAgICAgICBhY2Nlc3NpbmcgdGhl
bS4gVGhlIHNjYXZlbmdlciBoYXMgY2xldmVyIHRyaWNrcyBmb3IgY2xlYXJpbmcgb3V0IHZpZXcg
Y2FjaGVzLCBzaW1pbGFybHkgdG8KKyAgICAgICAgICBob3cgaXQgY2xlYXJzIG91dCBsb2NhbCBh
bGxvY2F0b3JzIChpdCB1c2VzIHRocmVhZF9zdXNwZW5kKS4KKworICAgICAgICAtIEZpeCBoYXNo
IGNvbGxpc2lvbnMgaW4gdGhlIHBhZ2UgaGVhZGVyIHRhYmxlLiBQcmV2aW91c2x5LCBJIHdhcyB1
c2luZyBhbiB1bmFjY2VwdGFibHkKKyAgICAgICAgICB0cml2aWFsIGhhc2ggZnVuY3Rpb24gYW5k
IGl0IF9zb21ldGltZXNfIGNhdXNlZCBwZXJmIHBhdGhvbG9naWVzLgorCisgICAgICAgIC0gR2V0
IHJpZCBvZiBpbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQsIHNpbmNlIHRoaXMgd2FzIGFubm95
aW5nbHkgcmVkdW5kYW50IHdpdGgKKyAgICAgICAgICBhbGxvY2F0aW9uX3Jlc3VsdC4KKworICAg
ICAgICAtIFJlZmFjdG9yIHNvbWUgYWxsb2NhdGlvbiBmYXN0IHBhdGhzIHNvIHRoYXQgdGhleSBo
YXZlIGZld2VyIGNhbGxlZS1zYXZlcy4KKworICAgICAgICAtIE1ha2Ugc2NhdmVuZ2luZyBhIHdo
b2xlIGxvdCBtb3JlIHByZWNpc2UuIFNjYXZlbmdpbmcgaXMgbm93IGJhc2VkIG9uIHRpbWUgc2lu
Y2Ugd2hlbiBhCisgICAgICAgICAgcGFnZSBiZWNvbWUgZW1wdHkuIElmIGVub3VnaCB0aW1lIHBh
c3NlcyAoY3VycmVudGx5IDMwMG1zKSB0aGVuIHN1Y2ggYSBwYWdlIGlzIGRlY29tbWl0dGVkLgor
ICAgICAgICAgIFByZXZpb3VzbHkgdGhlIGhldXJpc3RpYyB3YXMgbm90IG5lYXJseSBzbyBjbGVh
ci4gVGhpcyBpbXByb3ZlcyBtZW1vcnkgdXNhZ2Ugd2l0aG91dAorICAgICAgICAgIHJlYWxseSBo
dXJ0aW5nIHBlcmZvcm1hbmNlIChpdCBzaGlmdHMgdGhlIHRpbWUtbWVtb3J5IGN1cnZlIGNsb3Nl
ciB0byB0aGUgb3JpZ2luLCBhbmQKKyAgICAgICAgICB0aGlzIGFsc28gY2hhbmdlcyB0dW5pbmcg
cGFyYW1ldGVycyBzbyB0aGF0IGl0J3MgYSBzbGlnaHQgc3BlZWQtdXAgYW5kIGEgc2xpZ2h0IG1l
bW9yeQorICAgICAgICAgIGltcHJvdmVtZW50LCBidXQgaXQgY291bGQgaGF2ZSBiZWVuIGEgYmln
Z2VyIG1lbW9yeSBpbXByb3ZlbWVudCB3aXRoIG5vIHNwZWVkLXVwLCBvciBhbgorICAgICAgICAg
IGV2ZW4gYmlnZ2VyIG1lbW9yeSBpbXByb3ZlbWVudCB3aXRoIGEgc2xvdy1kb3duKS4KKworICAg
ICAgICAtIE1ha2UgdGhlIGdpZ2FjYWdlIHdvcmsgbW9yZSBsaWtlIGJtYWxsb2MnczsgaW4gcGFy
dGljdWxhciwgdGhpcyBtYWtlcyBsYXJnZSBmcmVlIG9iamVjdHMKKyAgICAgICAgICByZXVzYWJs
ZSBmb3Igc21hbGwvbWVkaXVtL21hcmdlIG9iamVjdHMuIFRoaXMgZml4ZXMKKyAgICAgICAgICBM
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJLZXktY3JlYXRlLWFycmF5LWJ1ZmZlci12
aWV3LW9vbS5odG1sLgorCisgICAgICAgIC0gTW9kaWZ5IGxpYnBhcy54Y29kZXByb2ogdG8gaGF2
ZSBtb3JlIHdhcm5pbmdzIGFuZCBmaXggdGhvc2Ugd2FybmluZ3MuIFRoaXMgaW5jbHVkZXMgZml4
ZXMKKyAgICAgICAgICB0byB3YXJuaW5ncyB0aGF0IFdlYktpdCBkb2Vzbid0IGNvbXBpbGUgd2l0
aCBhbmQgc29tZSBvZiB0aG9zZSBmaXhlcyBzbWVsbGVkIGxpa2UgdGhleQorICAgICAgICAgIGNv
dWxkIHBvc3NpYmx5IGZpeCByZWFsIGlzc3VlcyBvciBwcmV2ZW50IHRoZW0gYnkgbWFraW5nIHRo
ZSBjb2RlIG11Y2ggbW9yZSBjbGVhcgorICAgICAgICAgIChlc3BlY2lhbGx5IGFib3V0IG51bWVy
aWNhbCB0eXBlcyBhbmQgd2hlbiB0aGV5IGFyZSBjb252ZXJ0ZWQpLgorCisgICAgICAgIC0gQWRk
IGJldHRlciBsaWJwYXMgdGVzdHMgZm9yIGdpZ2FjYWdlIGFuZCBmb3IgbGFyZ2UgYWxsb2NhdGlv
bnMgaW4gZ2VuZXJhbC4gVGhpcyBjYXVnaHQKKyAgICAgICAgICBzb21lIGlzc3Vlcy4gVGhleSB3
ZXJlIHRoZSBraW5kcyBvZiBpc3N1ZXMgdGhhdCBwcm9iYWJseSB3b3VsZCBub3QgaGF2ZSBhZmZl
Y3RlZAorICAgICAgICAgIFdlYktpdCwgYnV0IEkgZml4ZWQgdGhlbSBhbnl3YXkuCisKKyAgICAg
ICAgMS4zJSBmYXN0ZXIgb24gU3BlZWRvbWV0ZXIyLiBOZXV0cmFsIG9uIEpldFN0cmVhbTIuIDMu
NyUgbGVzcyBtZW1vcnkgb24gUkFNaWZpY2F0aW9uLiBMYXN0CisgICAgICAgIEkgdGVzdGVkIGl0
LCBpdCB3YXMgYSBiaWcgd2luIG9uIFBMVU0gYW5kIG1lbWJ1c3RlciBhcyB3ZWxsLgorCisgICAg
ICAgICogYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJtYWxs
b2MvQlBsYXRmb3JtLmg6CisgICAgICAgICogbGlicGFzL2V4cG9ydC5zaDogQWRkZWQuCisgICAg
ICAgICogbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jOgorICAgICAgICAoYm1hbGxvY19hbGxv
Y2F0ZV9zbG93KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29u
ZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9pbmxpbmVzLmg6Cisg
ICAgICAgIChibWFsbG9jX3RyeV9hbGxvY2F0ZV9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY190
cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfdHJ5
X2FsbG9jYXRlX3plcm9lZF9pbmxpbmUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV9pbmxp
bmUpOgorICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbmxpbmUpOgor
ICAgICAgICAoYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRfaW5saW5lKToKKyAgICAgICAgKGJtYWxs
b2NfdHJ5X3JlYWxsb2NhdGVfaW5saW5lKToKKyAgICAgICAgKGJtYWxsb2NfcmVhbGxvY2F0ZV9p
bmxpbmUpOgorICAgICAgICAoYm1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSk6
CisgICAgICAgIChibWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUpOgorICAgICAgICAo
Ym1hbGxvY190cnlfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9lZF9pbmxpbmUpOgorICAgICAgICAo
Ym1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2lubGluZSk6CisgICAgICAgIChibWFs
bG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGlnbm1lbnRfaW5saW5lKToKKyAgICAg
ICAgKGJtYWxsb2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3dpdGhfYWxpZ25tZW50X2lubGluZSk6Cisg
ICAgICAgIChibWFsbG9jX3RyeV9yZWFsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUpOgorICAgICAg
ICAoYm1hbGxvY19yZWFsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL2hvdGJpdF9oZWFwX2NvbmZpZy5jOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL2hvdGJpdF9oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L2hvdGJpdF9oZWFwX2lubGluZXMuaDoKKyAgICAgICAgKGhvdGJpdF90cnlfYWxsb2NhdGVfaW5s
aW5lKToKKyAgICAgICAgKGhvdGJpdF90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW5saW5l
KToKKyAgICAgICAgKGhvdGJpdF90cnlfcmVhbGxvY2F0ZV9pbmxpbmUpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2NvbmZpZy5jOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL2lzb19oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2lz
b19oZWFwX2lubGluZXMuaDoKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1p
dGl2ZV9pbmxpbmUpOgorICAgICAgICAoaXNvX3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZl
X3dpdGhfYWxpZ25tZW50X2lubGluZSk6CisgICAgICAgIChpc29fdHJ5X2FsbG9jYXRlX2NvbW1v
bl9wcmltaXRpdmVfemVyb2VkX2lubGluZSk6CisgICAgICAgIChpc29fYWxsb2NhdGVfY29tbW9u
X3ByaW1pdGl2ZV9pbmxpbmUpOgorICAgICAgICAoaXNvX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRp
dmVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKToKKyAgICAgICAgKGlzb19hbGxvY2F0ZV9jb21tb25f
cHJpbWl0aXZlX3plcm9lZF9pbmxpbmUpOgorICAgICAgICAoaXNvX3RyeV9yZWFsbG9jYXRlX2Nv
bW1vbl9wcmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb19yZWFsbG9jYXRlX2NvbW1vbl9w
cmltaXRpdmVfaW5saW5lKToKKyAgICAgICAgKGlzb190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2lu
bGluZSk6CisgICAgICAgIChpc29fYWxsb2NhdGVfcHJpbWl0aXZlX2lubGluZSk6CisgICAgICAg
IChpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV96ZXJvZWRfaW5saW5lKToKKyAgICAgICAgKGlz
b19hbGxvY2F0ZV9wcmltaXRpdmVfemVyb2VkX2lubGluZSk6CisgICAgICAgIChpc29fdHJ5X2Fs
bG9jYXRlX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAgICAoaXNvX2Fs
bG9jYXRlX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVudF9pbmxpbmUpOgorICAgICAgICAoaXNvX3Ry
eV9yZWFsbG9jYXRlX3ByaW1pdGl2ZV9pbmxpbmUpOgorICAgICAgICAoaXNvX3JlYWxsb2NhdGVf
cHJpbWl0aXZlX2lubGluZSk6CisgICAgICAgIChpc29fdHJ5X2FsbG9jYXRlX2Zvcl9vYmpjX2lu
bGluZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcC5jOgorICAg
ICAgICAoaXNvX3Rlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZSk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcF9jb25maWcuYzoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL2ppdF9oZWFwLmM6CisgICAgICAgIChqaXRfaGVhcF90cnlfYWxsb2NhdGUpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcC5jOgorICAgICAgICAobWluYWxpZ24zMl9h
bGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9t
aW5hbGlnbjMyX2hlYXBfY29uZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvbWlu
YWxpZ24zMl9oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3BhZ2Vz
aXplNjRrX2hlYXAuYzoKKyAgICAgICAgKHBhZ2VzaXplNjRrX2FsbG9jYXRlX2NvbW1vbl9wcmlt
aXRpdmUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29u
ZmlnLmM6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25m
aWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2JpYXNpbmdfZGlyZWN0
b3JpZXMuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYWxsX2hlYXBzLmM6CisgICAgICAgIChmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9y
eV9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgIChmb3JfZWFjaF9zZWdyZWdhdGVk
X2RpcmVjdG9yeV9zZWdyZWdhdGVkX2hlYXBfY2FsbGJhY2spOgorICAgICAgICAoZHVtcF9kaXJl
Y3RvcnlfbmljZWx5KToKKyAgICAgICAgKGNvbXB1dGVfdG90YWxfbm9uX3V0aWxpdHlfc2VncmVn
YXRlZF9zdW1tYXJ5X2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgIChmb3JfZWFjaF9zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfbWFnYXppbmVzLmM6IFJlbW92
ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQu
YzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9y
ZXN1bHQuaDoKKyAgICAgICAgKHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk6CisgICAg
ICAgIChwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybyk6CisgICAgICAgIChwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfc2V0X2Vycm5vKToKKyAgICAgICAgKHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFz
aF9vbl9lcnJvcik6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvci5jOgorICAgICAgICAocGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9hdHRhY2hfZGlyZWN0
b3J5KToKKyAgICAgICAgKHBhc19iYXNlbGluZV9hbGxvY2F0b3JfZGV0YWNoX2RpcmVjdG9yeSk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9yeS5jOiBSZW1v
dmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVjdG9yeS5o
OiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5nX2RpcmVj
dG9yeV9pbmxpbmVzLmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X2JpdGZpdF9hbGxvY2F0b3IuYzoKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1p
dF92aWV3KToKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpbmlzaF9mYWlsaW5nKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5oOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaDoK
KyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX3Jlc2V0KToKKyAgICAgICAgKHBhc19iaXRm
aXRfYWxsb2NhdG9yX2Fzc2VydF9yZXNldCk6CisgICAgICAgIChwYXNfYml0Zml0X2FsbG9jYXRv
cl90cnlfYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnkuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5Lmg6IFJlbW92ZWQuCisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuYzoKKyAgICAgICAgKHBhc19iaXRm
aXRfZGlyZWN0b3J5X2NvbnN0cnVjdCk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9yeV9t
YXhfZnJlZV9kaWRfYmVjb21lX3VucHJvY2Vzc2VkKToKKyAgICAgICAgKHBhc19iaXRmaXRfZGly
ZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWRfdW5jaGVja2VkKToKKyAgICAg
ICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHkpOgorICAg
ICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2ZyZWVfdmlldyk6CisgICAgICAg
IChwYXNfYml0Zml0X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcpOgorICAgICAgICAocGFzX2JpdGZp
dF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaCk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVjdG9y
eV9nZXRfZW1wdHlfYml0X2F0X2luZGV4KToKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5
X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgpOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3Rvcnlf
dmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KToKKyAgICAgICAgKHBhc19iaXRmaXRfZGly
ZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eSk6CisgICAgICAgIChwYXNfYml0Zml0X2RpcmVj
dG9yeV90YWtlX2xhc3RfZW1wdHkpOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVt
cF9yZWZlcmVuY2UpOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3Bl
Y3RydW0pOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfdXBkYXRlX2JpYXNpbmdfZWxp
Z2liaWxpdHkpOiBEZWxldGVkLgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2Zy
ZWVfZGlkX2JlY29tZV9lbXB0eV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5
X2lubGluZXMuaDoKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9nbG9iYWwpOiBE
ZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5
X2tpbmQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmM6IFJlbW92ZWQuCisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5o
OiBSZW1vdmVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5j
OgorICAgICAgICAocGFzX2JpdGZpdF9oZWFwX2NyZWF0ZSk6CisgICAgICAgIChwYXNfYml0Zml0
X2hlYXBfZW5zdXJlX3NpemVfY2xhc3MpOgorICAgICAgICAocGFzX2JpdGZpdF9oZWFwX2NvbXB1
dGVfc3VtbWFyeSk6CisgICAgICAgIChwYXNfYml0Zml0X2hlYXBfZm9yX2VhY2hfbGl2ZV9vYmpl
Y3QpOgorICAgICAgICAocGFzX2JpdGZpdF9oZWFwX2Vuc3VyZV9nbG9iYWxfc2l6ZV9jbGFzcyk6
IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmg6
CisgICAgICAgIChwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeSk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlLmM6CisgICAgICAgIChwYXNfYml0Zml0X3Bh
Z2VfZ2V0X2NvbmZpZyk6CisgICAgICAgIChwYXNfYml0Zml0X3BhZ2VfZm9yX2VhY2hfbGl2ZV9v
YmplY3QpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25m
aWcuaDoKKyAgICAgICAgKHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXNlc19zdWJwYWdlcyk6IERl
bGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2lubGlu
ZXMuaDoKKyAgICAgICAgKHBhc19iaXRmaXRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZV9pbXBs
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3NpemVfY2xhc3MuYzoK
KyAgICAgICAgKHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jcmVhdGUpOgorICAgICAgICAocGFzX2Jp
dGZpdF9zaXplX2NsYXNzX2dldF9maXJzdF9mcmVlX3ZpZXcpOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19iaXRmaXRfdmlldy5jOgorICAgICAgICAocGFzX2JpdGZpdF92aWV3X2NyZWF0
ZSk6CisgICAgICAgIChwYXNfYml0Zml0X3ZpZXdfbm90ZV9ub25lbXB0aW5lc3MpOgorICAgICAg
ICAoZGlkX2JlY29tZV9lbXB0eV9mb3JfYml0cyk6CisgICAgICAgIChwYXNfYml0Zml0X3ZpZXdf
bm90ZV9mdWxsX2VtcHRpbmVzcyk6CisgICAgICAgIChwYXNfYml0Zml0X3ZpZXdfbm90ZV9tYXhf
ZnJlZSk6CisgICAgICAgIChjb21wdXRlX3N1bW1hcnkpOgorICAgICAgICAoZm9yX2VhY2hfbGl2
ZV9vYmplY3QpOgorICAgICAgICAocGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tf
c2xvdyk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92
aWV3Lmg6CisgICAgICAgIChwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayk6IERl
bGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF92aWV3X2lubGlu
ZXMuaDoKKyAgICAgICAgKHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRfaW5k
ZXgpOiBEZWxldGVkLgorICAgICAgICAocGFzX2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5
KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19iaXRmaXRfdmlld19pbmRleF9pbl9jdXJyZW50KTog
RGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaDogQWRkZWQuCisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19w
dHIuaDogQWRkZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmg6IFJlbW92ZWQuCisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHIuaDogQWRkZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc3Vi
cGFnZV9tYXBfZW50cnlfcHRyLmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX2RlYWxsb2NhdGUuYzoKKyAgICAgICAgKGRlYWxsb2NhdGVfc2VncmVnYXRlZCk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlv
bi5oOgorICAgICAgICAocGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbl9nZXRfc3RyaW5n
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNf
aGVhcC5jOgorICAgICAgICAoc2V0X3VwX3JhbmdlKToKKyAgICAgICAgKHBhc19kZXNpZ25hdGVk
X2ludHJpbnNpY19oZWFwX2luaXRpYWxpemUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19k
ZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9hbGxvY2F0b3JfaW5kaWNlcyk6CisgICAgICAg
IChwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2VzX2Zv
cl9zbWFsbF9jb25maWcpOgorICAgICAgICAocGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBf
ZGVzaWduYXRlZF9pbmRleF9mb3Jfc21hbGxfY29uZmlnKToKKyAgICAgICAgKHBhc19kZXNpZ25h
dGVkX2ludHJpbnNpY19oZWFwX251bV9kZXNpZ25hdGVkX2luZGljZXMpOgorICAgICAgICAocGFz
X2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfZGVzaWduYXRlZF9pbmRleCk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYzoKKyAgICAgICAg
KHZpZXdfY2FsbGJhY2spOgorICAgICAgICAoZW51bWVyYXRlX2JpdGZpdF9kaXJlY3RvcnkpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFw
cy5jOgorICAgICAgICAocmVjb3JkX3BhZ2Vfb2JqZWN0cyk6CisgICAgICAgIChlbnVtZXJhdGVf
ZXhjbHVzaXZlX3ZpZXcpOgorICAgICAgICAoZW51bWVyYXRlX3BhcnRpYWxfdmlldyk6CisgICAg
ICAgIChlbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwX2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19l
bnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaDoKKyAgICAgICAgKHBh
c19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9leGNsdXNpdmUpOgorICAgICAgICAocGFzX2Z1
bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3ZpZXdfYW5kX2RpcmVjdG9yeSk6CisgICAgICAgIChw
YXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9mb3Jfdmlldyk6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2dldF9oZWFwLmg6CisgICAgICAgIChwYXNfZ2V0X2hlYXApOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmM6CisgICAgICAgIChwYXNfaGVhcF9lbnN1
cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50X3Nsb3cpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19oZWFwLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBf
Y29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX2lu
bGluZXMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRp
bHMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHNf
aW5saW5lcy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2lubGluZXMu
aDoKKyAgICAgICAgKHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1bnRpbWVfY29uZmlnLmM6IEFk
ZGVkLgorICAgICAgICAocGFzX2hlYXBfcnVudGltZV9jb25maWdfdmlld19jYWNoZV9jYXBhY2l0
eV9mb3Jfb2JqZWN0X3NpemUpOgorICAgICAgICAocGFzX2hlYXBfcnVudGltZV9jb25maWdfemVy
b192aWV3X2NhY2hlX2NhcGFjaXR5KToKKyAgICAgICAgKHBhc19oZWFwX3J1bnRpbWVfY29uZmln
X2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfaW50ZXJuYWxfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oOiBSZW1vdmVkLgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0Lmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2Nh
Y2hlLmM6CisgICAgICAgIChsYXJnZV9hbGlnbmVkX2FsbG9jYXRvcik6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jOgorICAgICAgICAocGFzX2xvY2Fs
X2FsbG9jYXRvcl9jb25zdHJ1Y3QpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9yZXNl
dCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX21vdmUpOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl9maW5pc2hfcmVmaWxsX3dpdGhfYml0Zml0KToKKyAgICAgICAgKHN0b3Bf
aW1wbCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3ApOgorICAgICAgICAocGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZSk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9y
X2Rlc3RydWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
YWxfYWxsb2NhdG9yLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2Fs
bG9jYXRvcl9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc2V0X2lt
cGwpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfYnVtcCk6CisgICAgICAg
IChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYW5fYml0c190b19zZXRfdXBfZnJlZV9iaXRzKToKKyAg
ICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2V0X3VwX2ZyZWVfYml0cyk6CisgICAgICAgIChw
YXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxsb2NhdGUpOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl9zdGFydF9hbGxvY2F0aW5nX2luX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3
KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY29uZmln
KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfcmV0dXJuX21lbW9yeV90b19wYWdlX3Nl
dF9iaXRfY2FsbGJhY2spOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9yZXR1cm5fbWVt
b3J5X3RvX3BhZ2UpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVf
d2l0aF9mcmVlX2JpdHMpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2Nh
dGVfaW5saW5lX2Nhc2VzKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9j
YXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfc2xvdyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZV9zbG93KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2Fs
bG9jYXRlX2lubGluZV9vbmx5KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2Fs
bG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9y
X2tpbmQuaDogQWRkZWQuCisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmRfZ2V0X3N0
cmluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9s
aW5lLmg6IFJlbW92ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZXN1bHQuaDoKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2Ny
ZWF0ZV9zdWNjZXNzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxs
b2NhdG9yX3NjYXZlbmdlcl9kYXRhLmM6IEFkZGVkLgorICAgICAgICAocGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19hY3RpdmUpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9wKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmg6IEFkZGVkLgorICAgICAgICAocGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb25zdHJ1Y3QpOgorICAgICAgICAocGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9uKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5jOiBBZGRl
ZC4KKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX2NvbnN0cnVjdCk6CisgICAgICAgIChw
YXNfbG9jYWxfdmlld19jYWNoZV9tb3ZlKToKKyAgICAgICAgKHN0b3BfaW1wbCk6CisgICAgICAg
IChwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfdmlld19jYWNoZS5oOiBBZGRlZC4KKyAgICAgICAgKHBhc19sb2NhbF92aWV3
X2NhY2hlX2lzX2VtcHR5KToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX3BvcCk6Cisg
ICAgICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxsKToKKyAgICAgICAgKHBhc19sb2Nh
bF92aWV3X2NhY2hlX3B1c2gpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF92aWV3X2NhY2hlX25vZGUuYzogQWRkZWQuCisgICAgICAgIChwYXNfbG9jYWxfdmlld19jYWNo
ZV9ub2RlX2NyZWF0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfbm9kZS5oOiBBZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYzoKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuaDoKKyAgICAgICAg
KHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZV9maW5kKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19wYWdlX2hlYWRlcl90YWJsZS5oOgorICAgICAgICAocGFzX3BhZ2Vf
aGVhZGVyX3RhYmxlX2hhc2gpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdl
X3NoYXJpbmdfcGFydGljaXBhbnQuYzoKKyAgICAgICAgKHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfZ2V0X3BheWxvYWQpOgorICAgICAgICAocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9nZXRfdXNlX2Vwb2NoKToKKyAgICAgICAgKHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
Z2V0X3BhcmVudF9wb29sKToKKyAgICAgICAgKHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
aXNfZWxpZ2libGUpOgorICAgICAgICAocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF90YWtl
X2xlYXN0X3JlY2VudGx5X3VzZWQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaDoKKyAgICAgICAgKHBhc19wYWdlX3No
YXJpbmdfcGFydGljaXBhbnRfa2luZF9zZWxlY3RfZm9yX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KToK
KyAgICAgICAgKHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZF9nZXRfc3RyaW5nKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYzoKKyAg
ICAgICAgKHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZSk6CisgICAgICAg
IChwYXNfYmlhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlKTogRGVsZXRlZC4KKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0Lmg6IEFk
ZGVkLgorICAgICAgICAocGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdF9jcmVh
dGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxs
b2NhdG9yX25vZGUuYzoKKyAgICAgICAgKHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25v
ZGVfY3JlYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkdW5kYW50X2xv
Y2FsX2FsbG9jYXRvcl9ub2RlLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nj
YXZlbmdlci5jOgorICAgICAgICAoc2NhdmVuZ2VyX3RocmVhZF9tYWluKToKKyAgICAgICAgKHBh
c19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19leGNlcHRfcmVtb3RlX3RsY3MpOgorICAgICAg
ICAocGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9mcmVlX21lbW9yeSk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmM6IFJlbW92ZWQuCisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXcuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXcuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlX2dldF9zdHJpbmcpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9kYXRhX3Nsb3cpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X21pbmltaXplX2ZpcnN0X2VsaWdpYmxlKToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV91cGRhdGVfZmlyc3RfZWxpZ2libGVfYWZ0ZXJfc2VhcmNoKToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2li
bGVfYXRfaW5kZXgpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2FwcGVuZCk6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdp
YmxlX2F0X2luZGV4X3dpdGhvdXRfYmlhc2luZ191cGRhdGUpOiBEZWxldGVkLgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV93aXRob3V0
X2JpYXNpbmdfdXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9zcG9vZl9pbmxpbmVfc2VnbWVudCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlX2ltcGwpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlX3Rvcm4pOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3dhdGNoX2ZpcnN0X2VsaWdpYmxlKToKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9kYXRhX2dldF9maXJzdF9lbGlnaWJsZV9wdHIpOiBEZWxldGVkLgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX3RhYmxlZCk6IERlbGV0ZWQuCisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZl
cmVuY2UuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaW5saW5lcy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJh
dGVfZm9yd2FyZF90b190YWtlX2ZpcnN0X2VsaWdpYmxlKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmRfZ2V0X3N0cmluZyk6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYzoKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NyZWF0ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19ub3RlX2VtcHRpbmVzcyk6CisgICAgICAgIChjb21wdXRlX3N1bW1h
cnlfaW1wbCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19jb21wdXRl
X3N1bW1hcnkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5zdGFs
bF9mdWxsX3VzZV9jb3VudHMpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfaXNfZWxpZ2libGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
aXNfZW1wdHkpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfc2hvdWxk
X3RhYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hf
dmlld19ub3RlX2VsaWdpYmlsaXR5X2ltcGwpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSk6IERlbGV0ZWQuCisgICAgICAg
IChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwp
OiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfZGlkX3N0YXJ0X2FsbG9jYXRpbmcpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZyk6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VsaWdpYmlsaXR5KToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hfdmlld19kaWRfc3RhcnRfYWxsb2NhdGluZyk6IERlbGV0
ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZXJzaGlwX2tpbmQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYzogUmVtb3ZlZC4KKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oOiBSZW1vdmVkLgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYzoKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2hlYXBfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBf
bWVkaXVtX3NpemVfZGlyZWN0b3J5X2Zvcl9pbmRleCk6CisgICAgICAgIChlbnN1cmVfY291bnRf
bG9va3VwKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9p
bmRleCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9y
eV9mb3JfY291bnQpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXpl
X2RpcmVjdG9yeSk6CisgICAgICAgIChmb3JfZWFjaF9jb21taXR0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Y2FsbGJhY2spOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9jb21taXR0
ZWRfdmlldyk6CisgICAgICAgIChmb3JfZWFjaF92aWV3X2luZGV4X2RpcmVjdG9yeV9jYWxsYmFj
ayk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3ZpZXdfaW5kZXgpOgor
ICAgICAgICAoZm9yX2VhY2hfbGl2ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNrKToKKyAgICAgICAg
KGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2xpdmVfb2JqZWN0KToKKyAgICAgICAgKG51bV9jb21t
aXR0ZWRfdmlld3NfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X2hlYXBfbnVtX2NvbW1pdHRlZF92aWV3cyk6CisgICAgICAgIChudW1fZW1wdHlfdmlld3NfZGly
ZWN0b3J5X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfbnVtX2VtcHR5
X3ZpZXdzKToKKyAgICAgICAgKG51bV9lbXB0eV9ncmFudWxlc19kaXJlY3RvcnlfY2FsbGJhY2sp
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fZW1wdHlfZ3JhbnVsZXMpOgorICAg
ICAgICAobnVtX3ZpZXdzX2RpcmVjdG9yeV9jYWxsYmFjayk6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9oZWFwX251bV92aWV3cyk6CisgICAgICAgIChjb21wdXRlX3N1bW1hcnlfZGlyZWN0b3J5
X2NhbGxiYWNrKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfY29tcHV0ZV9zdW1tYXJ5
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9oZWFwLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZGlyZWN0
b3J5X2Zvcl9pbmRleCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFnZS5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRf
cmViaWFzX3doaWxlX2luZWxpZ2libGVfaW1wbCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbnN0cnVjdCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbW1pdF9mdWxs
eSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNf
dG9fbWFnYXppbmVfd2hpbGVfaW5lbGlnaWJsZV9pbXBsKTogRGVsZXRlZC4KKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmg6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX3F1YWxpZmllc19mb3JfZGVjb21taXQpOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmg6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaW5saW5lcy5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmg6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
dXRpbHNfaW5saW5lcy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhZ2VfaW5saW5lcy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRf
ZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCk6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9wYWdlX2luaXRpYWxpemVfZnVsbF91c2VfY291bnRzKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfaW1wbCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9w
YWdlX3N3aXRjaF9sb2NrX3dpdGhfbW9kZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdl
X3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfd2hpbGVfaW5lbGlnaWJsZSk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2dl
dF9kaXJlY3RvcnlfZm9yX2FkZHJlc3NfaW5fcGFnZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9wYWdlX2dldF9vYmplY3Rfc2l6ZV9mb3JfYWRkcmVzc19pbl9wYWdlKToKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19tYWdhemluZV93aGls
ZV9pbmVsaWdpYmxlKTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVh
bGlmaWVzX2Zvcl9kZWNvbW1pdCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmM6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlld19ub3RlX2VsaWdpYmlsaXR5KToKKyAgICAgICAgKGNvbXB1dGVfc3VtbWFyeSk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfaXNfZWxpZ2libGUpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eS5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2ZpbmRf
Zmlyc3RfZWxpZ2libGUpOgorICAgICAgICAodGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcp
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdl
X2RpcmVjdG9yeS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5LmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jcmVhdGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZmluaXNo
X2NyZWF0aW9uKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Vuc3Vy
ZV9kYXRhKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9leHRl
bmRlZF9kYXRhKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0
ZV90bGNfYWxsb2NhdG9yKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2NyZWF0ZV90bGNfdmlld19jYWNoZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3ZpZXdzKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3Jfc2xvdyk6CisgICAgICAgICh0YWtlX2Zp
cnN0X2VsaWdpYmxlX2RpcmVjdF9jcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2spOgorICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZSk6CisgICAg
ICAgICh0YWtlX2xhc3RfZW1wdHlfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwpOgorICAg
ICAgICAodGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcpOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2FsbG9jYXRvcl9mcm9tX3RsYyk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnlfZm9yX3Vub3duZWRfZXhj
bHVzaXZlKToKKyAgICAgICAgKGZvcl9lYWNoX2xpdmVfb2JqZWN0X29iamVjdF9jYWxsYmFjayk6
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29i
amVjdCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2NhY2hl
X2NhcGFjaXR5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2Fs
X2FsbG9jYXRvcl9zaXplKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X251bV9hbGxvY2F0b3JfaW5kaWNlcyk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kdW1wX3JlZmVyZW5jZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9jb25zdHJ1Y3QpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Lmg6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9hc192aWV3KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2FsaWdubWVudCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kaWRfdHJ5X3RvX2NyZWF0ZV92aWV3X2NhY2hlKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NldF9kaWRfdHJ5X3RvX2NyZWF0ZV92aWV3X2NhY2hlKToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9y
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FyZV9leGNsdXNpdmVf
dmlld3NfZW5hYmxlZCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oOiBBZGRlZC4KKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGVfZ2V0X3N0cmluZyk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5s
aW5lcy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2Fs
bG9jYXRvcik6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9h
bGxvY2F0b3Jfc2l6ZV9mb3JfbnVsbF9jb25maWcpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX2NvbmZpZyk6CisgICAgICAg
IChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXNfZm9y
X2FsbG9jYXRvcl9zaXplKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfY29uZmlnKToKKyAgICAgICAgKHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbF9zaG91bGRfY29uc2lk
ZXJfdmlld19wYXJhbGxlbCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGwpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92aWV3
X25vdF90YWJsZWRfcGFyYWxsZWwpOiBEZWxldGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsX3Nob3VsZF9jb25zaWRlcl92
aWV3X3RhYmxlZF9wYXJhbGxlbCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3LmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9zaXplX2RpcmVjdG9yeV9zbG93KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3BhZ2VfY29uZmlnX2tpbmQpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfaW5kZXgpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9ib3VuZGFy
eSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9jb21taXRfbG9jayk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9vd25lcnNoaXBfbG9jayk6CisgICAgICAgIChw
YXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVkKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfbG9ja19vd25lcnNoaXBfbG9jayk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2xv
Y2tfb3duZXJzaGlwX2xvY2tfY29uZGl0aW9uYWxseSk6CisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfaWZfb3duZWRfY29uZGl0aW9uYWxseSk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF92aWV3X25vdGVfZW1wdGluZXNzKToKKyAgICAgICAgKGZvcl9l
YWNoX2xpdmVfb2JqZWN0KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZm9yX2VhY2hf
bGl2ZV9vYmplY3QpOgorICAgICAgICAoc2hvdWxkX2JlX2VsaWdpYmxlKToKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX2JlX2VsaWdpYmxlKToKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZm9yX29iamVjdCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2Nv
bXB1dGVfc3VtbWFyeSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxl
KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHkpOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Nsb3cpOiBEZWxldGVk
LgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19zaG91bGRfcmVzdGFydCk6IERlbGV0ZWQu
CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2NvdWxkX2J1bXApOiBEZWxldGVkLgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19zaG91bGRfdGFibGUpOiBEZWxldGVkLgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzZWRfZXhjbHVzaXZlKTogRGVsZXRlZC4KKyAg
ICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eSk6IERlbGV0ZWQuCisg
ICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlX29yX2JpYXNlZCk6IERlbGV0
ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5X29yX2JpYXNlZCk6IERl
bGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5o
OgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSk6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2FzX2luZWxpZ2libGUpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19hc19lbGlnaWJsZSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9leGNsdXNpdmUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zaXplX2Rp
cmVjdG9yeSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9y
eSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gpOiBEZWxl
dGVkLgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzaW5nKTogRGVsZXRlZC4K
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfaW5lbGlnaWJsZV9iaWFzaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9iaWFzaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcpOiBEZWxldGVk
LgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9raW5kKTogRGVsZXRl
ZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfaW5lbGlnaWJsZV9raW5kKTogRGVs
ZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9z
aXplX2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbmcpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0
ZWRfdmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2tpbmQuaDoKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfY2hhcmFjdGVyX2NvZGUpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19raW5kX2dldF9zdHJpbmcpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRf
dmlld19raW5kX2lzX3NvbWVfZXhjbHVzaXZlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfa2luZF9jYW5fYmVjb21lX2VtcHR5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3ZpZXdf
a2luZF9pc19lbGlnaWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3
X2tpbmRfaXNfZXhjbHVzaXZlX2lzaCk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc2VncmVnYXRl
ZF92aWV3X2tpbmRfaXNfaW5lbGlnaWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5jOgorICAgICAgICAocmVwb3J0X2JpdGZpdF9k
aXJlY3RvcnlfY29udGVudHMpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2Jp
dGZpdF9kaXJlY3RvcnkpOgorICAgICAgICAocmVwb3J0X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Nv
bnRlbnRzKToKKyAgICAgICAgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KToKKyAgICAgICAgKGR1bXBfc2VncmVnYXRlZF9oZWFwX2RpcmVjdG9yeV9j
YWxsYmFjayk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2hlYXAp
OgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfaGVhcCk6Cisg
ICAgICAgICh0b3RhbF9mcmFnbWVudGF0aW9uX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKToKKyAg
ICAgICAgKHRvdGFsX2ZyYWdtZW50YXRpb25faGVhcF9jYWxsYmFjayk6CisgICAgICAgIChwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfdG90YWxfZnJhZ21lbnRhdGlvbik6CisgICAgICAgICh0aWVy
X3VwX3JhdGVfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2spOgorICAgICAgICAodGllcl91cF9yYXRl
X2hlYXBfY2FsbGJhY2spOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2Jhc2Vs
aW5lX2FsbG9jYXRvcnMpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RocmVh
ZF9sb2NhbF9jYWNoZXMpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeSk6IERlbGV0ZWQuCisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9y
dGVyX2R1bXBfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAgICAgICAocGFz
X3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkpOiBEZWxl
dGVkLgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKHRvdGFsX2ZyYWdtZW50YXRpb25f
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKHRpZXJf
dXBfcmF0ZV9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuaDoKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuYzogUmVtb3ZlZC4KKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnkuYzogUmVtb3ZlZC4KKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnkuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmM6Cisg
ICAgICAgIChkZWFsbG9jYXRlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY3Jl
YXRlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9zbG93KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxv
Y2F0b3JzKToKKyAgICAgICAgKHN0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9uZWNlc3Nhcnlfc2V0
X2JpdF9jYWxsYmFjayk6CisgICAgICAgIChwcm9jZXNzX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9j
b25maWcpOgorICAgICAgICAoZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyk6CisgICAgICAgIChmbHVz
aF9kZWFsbG9jYXRpb25fbG9nX2Zvcl9zY2F2ZW5nZXIpOgorICAgICAgICAocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9nKToKKyAgICAgICAgKHJlc3VtZSk6Cisg
ICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaDoKKyAgICAgICAgKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKToKKyAgICAgICAgKHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcik6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYzoKKyAgICAgICAgKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZF9ub2RlKToKKyAgICAgICAgKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9kdXBsaWNhdGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfYWRkX3ZpZXdfY2FjaGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jOgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KToKKyAgICAgICAgKHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxvY2F0b3JfaW5kaWNlcyk6CisgICAgICAg
IChhbGxvY2F0b3JfaW5kZXhfcHRyKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKToKKyAgICAgICAgKHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9mb3JfYWxs
b2NhdG9yKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0
X2FsbG9jYXRvcl9pbmRleF9mb3Jfdmlld19jYWNoZSk6CisgICAgICAgIChuZXh0X3B0cik6Cisg
ICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9uZXh0KToKKyAg
ICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29uc3RydWN0KToKKyAg
ICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbW92ZSk6CisgICAgICAg
IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3ApOgorICAgICAgICAocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlLmg6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9wdHIpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9nZXRfa2luZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2NyZWF0ZSk6CisgICAgICAgIChwYXNfd3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KToK
KyAgICAgICAgKHBhc193cmFwX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSk6CisgICAg
ICAgIChwYXNfd3JhcF9sb2NhbF92aWV3X2NhY2hlX25vZGUpOgorICAgICAgICAocGFzX2lzX3dy
YXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSk6CisgICAgICAgIChwYXNfaXNfd3JhcHBl
ZF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUpOgorICAgICAgICAocGFzX2lzX3dyYXBw
ZWRfbG9jYWxfdmlld19jYWNoZV9ub2RlKToKKyAgICAgICAgKHBhc191bndyYXBfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSk6CisgICAgICAgIChwYXNfdW53cmFwX3JlZHVuZGFudF9sb2NhbF9h
bGxvY2F0b3Jfbm9kZSk6CisgICAgICAgIChwYXNfdW53cmFwX2xvY2FsX3ZpZXdfY2FjaGVfbm9k
ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2Vu
dHNfYWxsb2NhdG9yKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfcmVwcmVzZW50c192aWV3X2NhY2hlKToKKyAgICAgICAgKHBhc193cmFwX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKHBhc19pc193cmFwcGVk
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KTogRGVsZXRlZC4KKyAgICAgICAgKHBh
c191bndyYXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkpOiBEZWxldGVkLgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfa2luZC5oOiBBZGRlZC4KKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfa2luZF9nZXRfc3RyaW5nKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYzoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbm9kZV9hbGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9ub2RlLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ry
eV9hbGxvY2F0ZS5oOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9pbXBsKToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5Lmg6CisgICAgICAgIChw
YXNfdHJ5X2FsbG9jYXRlX2FycmF5X2ltcGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc190cnlfYWxsb2NhdGVfY29tbW9uLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2Nv
bW1vbl9pbXBsX2Zhc3RfaW5saW5lX29ubHkpOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9j
b21tb25faW1wbF9mYXN0KToKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxf
c2xvdyk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsKToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUu
aDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZV9pbXBsX21l
ZGl1bV9zbG93X2Nhc2UpOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJp
bWl0aXZlX2ltcGxfaW5saW5lX29ubHkpOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWNfcHJpbWl0aXZlX2ltcGwpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9j
YXRlX3ByaW1pdGl2ZV9pbXBsKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5
X3JlYWxsb2NhdGUuaDoKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfZm9yX3JlYWxsb2NhdGVf
YW5kX2NvcHkpOgorICAgICAgICAocGFzX3RyeV9yZWFsbG9jYXRlX3RhYmxlX3NlZ3JlZ2F0ZWRf
Y2FzZSk6CisgICAgICAgIChwYXNfdHJ5X3JlYWxsb2NhdGVfdGFibGVfYml0Zml0X2Nhc2UpOgor
ICAgICAgICAocGFzX3RyeV9yZWFsbG9jYXRlKToKKyAgICAgICAgKHBhc190cnlfcmVhbGxvY2F0
ZV9wcmltaXRpdmVfYWxsb2NhdGVfY2FsbGJhY2spOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdC5oOgorICAgICAgICAocGFzX3R5cGVkX2Fs
bG9jYXRpb25fcmVzdWx0X2FzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCk6CisgICAgICAg
IChwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0KToKKyAgICAgICAgKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF96ZXJv
KToKKyAgICAgICAgKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOgorICAg
ICAgICAocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmM6CisgICAgICAgIChwYXNf
dXRpbGl0eV9oZWFwX2RlYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c191dGlsaXR5X2hlYXAuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0
eV9oZWFwX2NvbmZpZy5oOgorICAgICAgICAocGFzX3V0aWxpdHlfaGVhcF9zaGFyZWRfcGFnZV9k
aXJlY3Rvcnlfc2VsZWN0b3IpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGls
aXR5X2hlYXBfc3VwcG9ydC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGls
cy5oOgorICAgICAgICAocGFzX3JvdW5kX3VwX3RvX25leHRfcG93ZXJfb2ZfMik6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXAuYzoKKyAgICAgICAgKHRoaW5neV90cnlf
YWxsb2NhdGVfcHJpbWl0aXZlKToKKyAgICAgICAgKHRoaW5neV90cnlfYWxsb2NhdGVfcHJpbWl0
aXZlX3plcm9lZCk6CisgICAgICAgICh0aGluZ3lfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV93aXRo
X2FsaWdubWVudCk6CisgICAgICAgICh0aGluZ3lfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKToK
KyAgICAgICAgKHRoaW5neV91dGlsaXR5X2hlYXBfYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3RoaW5neV9oZWFwX2NvbmZpZy5jOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3RoaW5neV9oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9J
c29IZWFwQ2hhb3NUZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OnRlc3RBbGxvY2F0aW9uQ2hhb3Mp
OgorICAgICAgICAoc3RkOjphZGRUaGVUZXN0cyk6CisgICAgICAgIChzdGQ6OmFkZFNwb3RUZXN0
cyk6CisgICAgICAgIChhZGRJc29IZWFwQ2hhb3NUZXN0cyk6CisgICAgICAgICogbGlicGFzL3Ny
Yy90ZXN0L0lzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6dGVzdFRh
a2VQYWdlcyk6CisgICAgICAgIChzdGQ6OnRlc3RUYWtlUGFnZXNGcm9tQ29ycmVjdEhlYXApOgor
ICAgICAgICAoc3RkOjphbGxvY2F0ZVRoaW5naWVzSW1wbCk6CisgICAgICAgIChhZGRJc29IZWFw
UGFnZVNoYXJpbmdUZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBQYXJ0
aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OnRlc3RTaW1wbGVQYXJ0aWFs
QWxsb2NhdGlvbnMpOgorICAgICAgICAoc3RkOjp0ZXN0TXVsdGlwbGVQYXJ0aWFsc0Zyb21EaWZm
ZXJlbnRUaHJlYWRzUGVyU2hhcmVkKToKKyAgICAgICAgKHN0ZDo6YWRkU2NhdmVuZ2VyRGVwZW5k
ZW50VGVzdHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9Jc29IZWFwVGFibGluZ1Rlc3Rz
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvUmFjZVRlc3RzLmNwcDoK
KyAgICAgICAgKHN0ZDo6dGVzdExvY2FsQWxsb2NhdG9yU3RvcFJhY2UpOgorICAgICAgICAoc3Rk
Ojp0ZXN0TG9jYWxBbGxvY2F0b3JTdG9wUmFjZUFnYWluc3RTY2F2ZW5nZSk6CisgICAgICAgICog
bGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAg
ICAoRGlzYWJsZUV4cGxvc2lvbjo6RGlzYWJsZUV4cGxvc2lvbik6IERlbGV0ZWQuCisgICAgICAg
IChGb3JjZUV4cGxvc2lvbjo6Rm9yY2VFeHBsb3Npb24pOiBEZWxldGVkLgorICAgICAgICAoRm9y
Y2VPbmVNYWdhemluZTo6Rm9yY2VPbmVNYWdhemluZSk6IERlbGV0ZWQuCisgICAgICAgICogbGli
cGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmg6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L1Ro
aW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6c2l6
ZUNsYXNzRm9yKToKKyAgICAgICAgKHN0ZDo6Zm9yRWFjaENvbW1pdHRlZFZpZXdBZGFwdGVyKToK
KyAgICAgICAgKHN0ZDo6dmVyaWZ5SGVhcEVtcHR5KToKKyAgICAgICAgKHN0ZDo6dGVzdEludGVy
bmFsU2NhdmVuZ2VGcm9tQ29ycmVjdERpcmVjdG9yeSk6CisgICAgICAgIChzdGQ6OnRlc3RTaXpl
Q2xhc3NDcmVhdGlvbkltcGwpOgorICAgICAgICAoc3RkOjp0ZXN0U3B1cmlvdXNFbGlnaWJpbGl0
eSk6CisgICAgICAgIChzdGQ6OnRlc3RDb21wbGV4TGFyZ2VBbGxvY2F0aW9uSW1wbCk6CisgICAg
ICAgIChzdGQ6OmFkZEFsbFRlc3RzKToKKyAgICAgICAgKGFkZFRoaW5neUFuZFV0aWxpdHlIZWFw
QWxsb2NhdGlvblRlc3RzKToKKwogMjAyMS0wOS0wMiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIG1vcmUgc3VwcG9ydCBmb3IgSklUIG9wZXJhdGlvbiB2YWxp
ZGF0aW9uIHRlc3RpbmcuCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMx
LDggKzMxLDYgQEAKIAkJMEYxOEY4NEMyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hl
YXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThG
ODQzMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmggKi87IH07CiAJCTBGMThG
ODREMjVDMzQ2NzcwMDcyMUMyQSAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4Rjg0NDI1QzM0Njc3MDA3
MjFDMkEgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jICovOyB9OwogCQkwRjE4Rjg1ODI1QzM0
N0YzMDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEY4NTcyNUMz
NDdGMzAwNzIxQzJBIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjFBRUNF
QzI2NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMUFFQ0VBMjY1ODFCNUUwMDBDNTIxOCAv
KiBwYXNfYWxsX21hZ2F6aW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTBGMUFFQ0VEMjY1ODFCNUUwMDBDNTIxOCAvKiBwYXNfYWxsX21hZ2F6
aW5lcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYx
QUVDRUIyNjU4MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgKi87IH07CiAJCTBG
MUJGRDQ3MjY2NDVBQzcwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMUJGRDQ1MjY2NDVBQzcwMENFQzI4
RCAvKiBwYXNfaGVhcF9jb25maWcuYyAqLzsgfTsKIAkJMEYxQkZENDgyNjY0NUFDNzAwQ0VDMjhE
IC8qIHBhc19hbGxfaGVhcF9jb25maWdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjFCRkQ0NjI2NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2FsbF9oZWFw
X2NvbmZpZ3MuaCAqLzsgfTsKIAkJMEYyNkE3QTUyMDU0ODMxMzAwOTBBMTQxIC8qIFBlclByb2Nl
c3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYy
NkE3QTQyMDU0ODMwRDAwOTBBMTQxIC8qIFBlclByb2Nlc3MuY3BwICovOyB9OwpAQCAtNjMsNyAr
NjEsNiBAQAogCQkwRjVGRTdERjI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY1RkU3Q0EyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2F0
b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjVGRTdFMDI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUZFN0NCMjVCNjIxMEMwMDE4NTlG
QyAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNUZFN0Ux
MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9w
dHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUZF
N0NDMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQkwRjVGRTdFMzI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50
cnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjVGRTdDRTI1QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlf
cHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEY1RkU3RTQyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91
bmRhcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY1RkU3Q0YyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3Bh
Z2VfYm91bmRhcnlfaW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGNUZFN0U2MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2FuZF9jb25maWcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNUZFN0QxMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2FuZF9jb25maWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkwRjVGRTdFNzI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNUZFN0QyMjVCNjIxMEMwMDE4NTlGQyAvKiBwYXNfY29tcGFj
dF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MCw2ICs3NywyMiBAQAogCQkwRjc0
QjkzRjFGODk3MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzRCOTNEMUY4OTcxM0UwMEI5MzVEMyAv
KiBDcnlwdG9SYW5kb20uY3BwICovOyB9OwogCQkwRjc1NDk4MjI0ODY5NzQwMDAyQTRDN0QgLyog
cGFzX2FsbG9jYXRvcl9pbmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY3NTQ5ODAyNDg2OTczQzAwMkE0QzdEIC8qIHBhc19hbGxvY2F0b3JfaW5k
ZXguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
Rjc1NDk4MzI0ODY5NzQyMDAyQTRDN0QgLyogcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9p
bmRleF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNzU0OTgxMjQ4Njk3M0MwMDJBNEM3RCAvKiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9y
X2luZGV4X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTBGN0M5MkUyMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
c2NhdmVuZ2VfcmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjdDOTJEMjI2RTU3Rjc0MDA2QUYwMTIgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3NjYXZlbmdlX3Jlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTBGN0M5MkUzMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDMyNkU1N0Y3NDAwNkFGMDEyIC8qIHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRTQyNkU1N0Y3NTAwNkFGMDEyIC8qIHBh
c19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkQ0MjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRTUyNkU1N0Y3NTAwNkFGMDEyIC8qIHBh
c19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJENTI2RTU3Rjc0MDA2QUYwMTIgLyogcGFzX3Nl
Z3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJFNjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xv
Y2FsX3ZpZXdfY2FjaGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGN0M5MkQ2MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5j
ICovOyB9OworCQkwRjdDOTJFNzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJENzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRTgyNkU1N0Y3NTAw
NkFGMDEyIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDgyNkU1N0Y3
NTAwNkFGMDEyIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGN0M5MkU5
MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyRDkyNkU1N0Y3NTAwNkFG
MDEyIC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmMgKi87IH07CisJCTBGN0M5MkVBMjZFNTdG
NzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdDOTJEQTI2RTU3Rjc1
MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jICovOyB9Owor
CQkwRjdDOTJFQjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGN0M5MkRCMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTBGN0M5MkVDMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmll
d19jYWNoZV9ub2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjdDOTJEQzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9k
ZS5oICovOyB9OworCQkwRjdDOTJFRDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3QzkyREQyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjdDOTJFRTI2RTU3Rjc1MDA2QUYwMTIg
LyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGN0M5MkRFMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmll
d19jYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTBGN0M5MkVGMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9ja19mcmVlX3JlYWRfaGFzaHRh
YmxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdD
OTJERjI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oICov
OyB9OworCQkwRjdDOTJGMDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9r
aW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdD
OTJFMDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY3QzkyRjEyNkU1
N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0M5MkUxMjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgKi87IH07CiAJCTBGN0VCODIzMUY5NTQx
QjAwMEYxQUJDQiAvKiBFbGlnaWJpbGl0eVJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3RUI3RkMxRjk1NDFBRDAwRjFBQkNCIC8qIEVsaWdp
YmlsaXR5UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY3RUI4MjQxRjk1NDFCMDAwRjFBQkNCIC8qIElzb0hlYXBJbXBsSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3RUI3RkQx
Rjk1NDFBRDAwRjFBQkNCIC8qIElzb0hlYXBJbXBsSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGN0VCODI1MUY5NTQxQjAwMEYxQUJD
QiAvKiBEZWZlcnJlZFRyaWdnZXJJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdFQjdGRTFGOTU0MUFEMDBGMUFCQ0IgLyogRGVmZXJyZWRU
cmlnZ2VySW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMjgsNyArMTQxLDYgQEAKIAkJMEY4NzAwMDIyNUFGODk3QzAwMEUxQUJGIC8q
IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZDQzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNp
bmdfZGlyZWN0b3J5X2tpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjg3MDAwMzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxv
Y2F0b3IuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
ODdGRkNEMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jICovOyB9Owog
CQkwRjg3MDAwNDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2VudW1l
cmF0b3JfZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4N0ZGQ0UyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVt
ZXJhdG9yX2RhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQkwRjg3MDAwNTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
Rjg3RkZDRjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMg
Ki87IH07CiAJCTBGODcwMDA2MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2JpdGZp
dF9oZWFwcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY4N0ZGRDAyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMg
Ki87IH07CiAJCTBGODcwMDA3MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkQxMjVB
Rjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2UuYyAqLzsgfTsKIAkJMEY4NzAwMDgyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkQyMjVBRjg5N0MwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE4OSwxMCArMjAxLDYgQEAKIAkJMEY4NzAwN0Qy
NUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDA2MDI1QUY4QTFCMDAwRTFBQkYg
LyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjg3MDA3RTI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2Vf
aGVhZGVyX3RhYmxlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjg3MDA2MTI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMg
Ki87IH07CiAJCTBGODcwMDdGMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9ncmFudWxlX3Vz
ZV9jb3VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY4NzAwNjIyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4NzAw
ODgyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwODMyNUFGOTQ2MTAwMEUx
QUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5jICovOyB9OwotCQkwRjg3MDA4OTI1QUY5NDYy
MDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDA4NDI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBh
Z2VfbWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJMEY4NzAwOEEyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5jIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwODUyNUFGOTQ2MTAw
MEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5jICovOyB9OwotCQkwRjg3MDA4QjI1QUY5NDYyMDAw
RTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDA4NjI1QUY5NDYxMDAwRTFBQkYgLyogcGFzX3N1
YnBhZ2VfbWFwX2VudHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY4NzAwOEMyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc192ZXJzaW9uZWRfZmll
bGQuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODcw
MDg3MjVBRjk0NjIwMDBFMUFCRiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgKi87IH07CiAJCTBG
ODcwMENGMjVCMENCMDMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwQ0EyNUIwQ0IwMjAwMEUxQUJGIC8q
IHRoaW5neV9oZWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY4NzAwRDAyNUIwQ0IwMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX3ByZWZpeC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NzAwQ0Iy
NUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX3ByZWZpeC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMDAsMzUgKzIwOCwyMiBAQAogCQkw
Rjg3MDBEMjI1QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3MDBDRDI1QjBDQjAyMDAw
RTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmMgKi87IH07CiAJCTBGODcwMEQzMjVCMENCMDMw
MDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY4NzAwQ0UyNUIwQ0IwMzAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmMg
Ki87IH07CiAJCTBGODdGRkQ4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4
N0ZGQTEyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRDkyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkEyMjVBRjg5NzkwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGREEyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19jb21taXRfc3Bhbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY4N0ZGQTMyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19jb21taXRfc3Bhbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdG
RkRCMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkE0MjVB
Rjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZEQzI1QUY4
OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBNTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF92aWV3LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKLQkJMEY4N0ZGREQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2Fu
ZF9pbmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY4N0ZGQTYyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRl
eC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBG
ODdGRkRFMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZBNzI1
QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jICovOyB9Owog
CQkwRjg3RkZERjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdf
ZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY4N0ZGQTgyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19jb21wYWN0X2F0b21pY19iaWFz
aW5nX2RpcmVjdG9yeV9wdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQkwRjg3RkZFMDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9i
YWxfc2l6ZV9jbGFzcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY4N0ZGQTkyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3MuYyAqLzsgfTsKIAkJMEY4N0ZGRTIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iYXNpY19o
ZWFwX2NvbmZpZ19yb290X2RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGODdGRkFCMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmFzaWNfaGVhcF9j
b25maWdfcm9vdF9kYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY4N0ZGRTMyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfc2l6ZV9j
bGFzcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4
N0ZGQUMyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5jICovOyB9Owog
CQkwRjg3RkZFNDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5k
LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZB
RDI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgKi87IH07
CiAJCTBGODdGRkU1MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQUUyNUFG
ODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRTYyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQUYyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5n
X2RpcmVjdG9yeS5jICovOyB9OwogCQkwRjg3RkZFNzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Vu
dW1lcmF0ZV9sYXJnZV9oZWFwcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY4N0ZGQjAyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfbGFy
Z2VfaGVhcHMuYyAqLzsgfTsKLQkJMEY4N0ZGRTgyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFz
aW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjg3RkZCMTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGly
ZWN0b3J5X2lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQkwRjg3RkZFOTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0
b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3
RkZCMzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGRUEyNUFGODk3
QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQjQyNUFGODk3QTAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfc2l6ZV9jbGFzcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGODdGRkVCMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjg3RkZCNTI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODdGRkVD
MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQjYyNUFGODk3QTAw
MEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGRUQyNUFGODk3QzAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkI3MjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4N0ZGRUUyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY4N0ZGQjgyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5j
ICovOyB9OwogCQkwRjg3RkZFRjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4N0ZGQjkyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGlu
ZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkw
Rjg3RkZGMDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQkEy
NUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZGMTI1QUY4
OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQkIyNUFGODk3QjAwMEUx
QUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjg3RkZGMjI1QUY4OTdDMDAwRTFBQkYg
LyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCQzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMEY4N0ZGRjMyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
aGVhcC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4
N0ZGQkQyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfaGVhcC5jICovOyB9OwotCQkwRjg3
RkZGNDI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4N0ZGQkUyNUFGODk3
QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjg3RkZGNTI1QUY4OTdDMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZCRjI1QUY4OTdCMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMgKi87IH07Ci0JCTBGODdGRkY2MjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkMwMjVBRjg5N0IwMDBFMUFCRiAvKiBw
YXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZGNzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjg3RkZDMTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZ19raW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY4N0ZGRjgyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjg3RkZD
MjI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg3RkZGOTI1QUY4OTdDMDAw
RTFBQkYgLyogcGFzX2VudW1lcmF0ZV9pbml0aWFsbHlfdW5hY2NvdW50ZWRfcGFnZXMuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODdGRkMzMjVBRjg5
N0IwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5j
ICovOyB9OwpAQCAtMjUxLDI1ICsyNDYsMTEgQEAKIAkJMEY4QTgxMzQyNUY4M0UyNTAwNzkwQjRB
IC8qIGJtYWxsb2NfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY4QTgxMjUyNUY4M0UyNDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOEE4MTM1MjVG
ODNFMjUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4QTgxMjYyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9o
ZWFwLmggKi87IH07CiAJCTBGOEE4MTM2MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEE4MTI3
MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyAqLzsgfTsKLQkJMEY4QTgxMzcyNUY4
M0UyNTAwNzkwQjRBIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4QTgxMjgyNUY4M0UyNTAwNzkwQjRB
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOEE4MTM4MjVGODNFMjUwMDc5MEI0QSAvKiBibWFs
bG9jX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjhBODEyOTI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2NvbmZpZy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3
ODYwMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfbWFnYXppbmUuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODRCMjQ3ODczOTQwMEUxMjRBNiAvKiBw
YXNfbWFnYXppbmUuYyAqLzsgfTsKIAkJMEY4RTc4NjEyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19j
b21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODRDMjQ3ODczOTQwMEUxMjRBNiAvKiBw
YXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY4RTc4NjIyNDc4NzM5NTAwRTEy
NEE2IC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg0RDI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX2hl
YXBfY29uZmlnX2lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkwRjhFNzg2MzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg0RTI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NjQyNDc4NzM5
NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOEU3ODRGMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NjYyNDc4NzM5NTAwRTEyNEE2IC8qIHBh
c19tYWdhemluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4RTc4NTEyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19tYWdhemluZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODY3MjQ3ODczOTUw
MEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODUyMjQ3ODczOTQwMEUxMjRBNiAv
KiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyAqLzsgfTsKLQkJMEY4RTc4NjkyNDc4NzM5
NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5k
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFNzg1
NDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJz
aGlwX2tpbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQkwRjhFNzg2QTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjhFNzg1NTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5LmMgKi87IH07Ci0JCTBGOEU3ODZCMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODU2MjQ3ODczOTUwMEUx
MjRBNiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjhF
Nzg2QzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODU3
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOEU3ODZE
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY4RTc4NTgyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnlfcHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJMEY4RTc4NkUyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4RTc4NTkyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBG
OEU3ODcwMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY4RTc4NUIyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJMEY4RTc4NzEyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjhFNzg1QzI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ19kaXJlY3RvcnkuYyAqLzsgfTsKLQkJMEY4RTc4NzIyNDc4NzM5NTAwRTEyNEE2IC8q
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTc4NUQyNDc4NzM5NTAwRTEyNEE2IC8q
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTBGOEU3ODczMjQ3ODczOTUwMEUxMjRB
NiAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOEU3ODVFMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNf
c2VncmVnYXRlZF92aWV3X2lubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjhFODMyQzI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Rlc2ln
bmF0ZWRfaW50cmluc2ljX2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGOEU4MzI0MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9p
bnRyaW5zaWNfaGVhcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTBGOEU4MzJEMjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfY29tcGFjdF9hdG9taWNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjhFODMyNTI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX2Nv
bXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGOEU4MzJFMjQ5MkVBRjMw
MDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4RTgzMjYyNDkyRUFGMzAwNDZEN0Y4
IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmMgKi87IH07CkBAIC01MjIsNyArNTAz
LDYgQEAKIAkJMEZDNDBCOEQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJl
ZV9oZWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkM0MEFCMjI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYyAq
LzsgfTsKIAkJMEZDNDBCOEYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19mb3VuZF9pbmRleC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNDBBQjQyNDUx
NDk4RjAwODc2REEwIC8qIHBhc19mb3VuZF9pbmRleC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGQzQwQjkwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBw
YXNfaGVhcF9yZWZfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZDNDBBQjUyNDUxNDk4RjAwODc2REEwIC8qIHBhc19oZWFwX3JlZl9raW5kLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEZDNDBC
OTIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUI3MjQ1
MTQ5OEYwMDg3NkRBMCAvKiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBCOTMyNDUx
NDk5NDAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUI4MjQ1MTQ5OEYw
MDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9tb2RlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBCOTQyNDUxNDk5NDAw
ODc2REEwIC8qIHBhc19zdHJlYW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQzQwQUI5MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc3RyZWFtLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZDNDBCOTUy
NDUxNDk5NDAwODc2REEwIC8qIHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzQwQUJBMjQ1MTQ5OEYwMDg3NkRB
MCAvKiBwYXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY5OSw4ICs2NzksNiBAQAogCQkwRjE4Rjg0MzI1QzM0
Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYWdlc2l6ZTY0a19oZWFwLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9w
YWdlc2l6ZTY0a19oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMThGODQ0
MjVDMzQ2NzcwMDcyMUMyQSAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgbmFtZSA9IG1pbmFsaWduMzJfaGVhcF9jb25maWcuYzsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYxOEY4NTcyNUMzNDdGMzAwNzIxQzJBIC8qIHBhc19zZWdyZWdhdGVk
X3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjFBRUNFQTI2NTgxQjVFMDAwQzUyMTggLyogcGFz
X2FsbF9tYWdhemluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2Fs
bF9tYWdhemluZXMuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfbWFnYXppbmVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMUFFQ0VCMjY1ODFCNUUwMDBDNTIx
OCAvKiBwYXNfYWxsX21hZ2F6aW5lcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUg
PSBwYXNfYWxsX21hZ2F6aW5lcy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9t
YWdhemluZXMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxQkZENDUyNjY0NUFD
NzAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7
IG5hbWUgPSBwYXNfaGVhcF9jb25maWcuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjFCRkQ0NjI2NjQ1
QUM3MDBDRUMyOEQgLyogcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaDsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19hbGxfaGVhcF9jb25maWdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGMjZBN0E0MjA1NDgzMEQwMDkwQTE0MSAvKiBQZXJQcm9jZXNzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBlclByb2Nlc3MuY3BwOyBwYXRoID0gYm1hbGxv
Yy9QZXJQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTczMCw3ICs3
MDgsNiBAQAogCQkwRjVGRTdDQTI1QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUZFN0NCMjVCNjIxMEMwMDE4NTlGQyAv
KiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBh
Y3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY1RkU3Q0MyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0ci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjVGRTdDRTI1QjYyMTBDMDAxODU5RkMg
LyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0ci5oOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNUZFN0NGMjVCNjIxMEMwMDE4NTlGQyAv
KiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFy
eV9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2hhcmVkX2hhbmRsZV9v
cl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY1RkU3RDEyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZp
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9wYWdl
X2FuZF9jb25maWcuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Bh
Z2VfYW5kX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjVGRTdEMjI1
QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzc19wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3Rf
YXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NDcsNiArNzI0LDIyIEBACiAJCTBGNzRC
OTNEMUY4OTcxM0UwMEI5MzVEMyAvKiBDcnlwdG9SYW5kb20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQ3J5cHRvUmFuZG9tLmNwcDsgcGF0aCA9IGJtYWxsb2MvQ3J5
cHRvUmFuZG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3NTQ5ODAyNDg2
OTczQzAwMkE0QzdEIC8qIHBhc19hbGxvY2F0b3JfaW5kZXguaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gcGFzX2FsbG9jYXRvcl9pbmRleC5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2FsbG9jYXRvcl9pbmRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRjc1NDk4MTI0ODY5NzNDMDAyQTRDN0QgLyogcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRv
cl9pbmRleF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBh
Y3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGN0M5MkQyMjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRDMyNkU1N0Y3NDAwNkFGMDEyIC8qIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
cHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJE
NDI2RTU3Rjc0MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5
MkQ1MjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fbW9kZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyRDYy
NkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19sb2NhbF92aWV3X2NhY2hlLmM7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjdDOTJENzI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5o
OyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5
MkQ4MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMEY3QzkyRDkyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19oZWFwX3J1bnRpbWVf
Y29uZmlnLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJEQTI2RTU3Rjc1MDA2
QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkRCMjZFNTdGNzUw
MDZBRjAxMiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMEY3QzkyREMyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25v
ZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjdDOTJERDI2RTU3Rjc1MDA2
QUYwMTIgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jcmVhdGlvbl9tb2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTBGN0M5MkRFMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNo
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbG9jYWxfdmlld19jYWNo
ZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY3QzkyREYyNkU1N0Y3NTAwNkFGMDEyIC8qIHBh
c19sb2NrX2ZyZWVfcmVhZF9oYXNodGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFkX2hhc2h0YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkwRjdDOTJFMDI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19sb2NhbF9hbGxv
Y2F0b3Jfa2luZC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRv
cl9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGN0M5MkUxMjZFNTdGNzUw
MDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuYzsgbmFtZSA9IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYzsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY3RUI3RkMxRjk1NDFBRDAwRjFBQkNCIC8qIEVsaWdpYmlsaXR5UmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEVsaWdpYmlsaXR5UmVzdWx0
Lmg7IHBhdGggPSBibWFsbG9jL0VsaWdpYmlsaXR5UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSBTT1VS
Q0VfUk9PVDsgfTsKIAkJMEY3RUI3RkQxRjk1NDFBRDAwRjFBQkNCIC8qIElzb0hlYXBJbXBsSW5s
aW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJc29IZWFwSW1wbElubGlu
ZXMuaDsgcGF0aCA9IGJtYWxsb2MvSXNvSGVhcEltcGxJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKIAkJMEY3RUI3RkUxRjk1NDFBRDAwRjFBQkNCIC8qIERlZmVycmVkVHJp
Z2dlcklubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRGVmZXJyZWRU
cmlnZ2VySW5saW5lcy5oOyBwYXRoID0gYm1hbGxvYy9EZWZlcnJlZFRyaWdnZXJJbmxpbmVzLmg7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTg0MywxMCArODM2LDYgQEAKIAkJMEY4
NzAwNjAyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19wYWdlX2Jhc2VfY29uZmlnLmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjg3MDA2MTI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVy
X3RhYmxlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19wYWdlX2hlYWRl
cl90YWJsZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxl
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODcwMDYyMjVBRjhBMUIwMDBFMUFC
RiAvKiBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMEY4NzAwODMyNUFGOTQ2MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcF9l
bnRyeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfc3VicGFnZV9tYXBf
ZW50cnkuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdWJwYWdlX21hcF9lbnRyeS5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3MDA4NDI1QUY5NDYxMDAwRTFBQkYg
LyogcGFzX3N1YnBhZ2VfbWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19zdWJwYWdlX21hcC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODcwMDg1MjVBRjk0NjEwMDBFMUFC
RiAvKiBwYXNfc3VicGFnZV9tYXAuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0g
cGFzX3N1YnBhZ2VfbWFwLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9t
YXAuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4NzAwODYyNUFGOTQ2MTAwMEUx
QUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBwYXNfc3VicGFnZV9tYXBfZW50cnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19zdWJwYWdlX21hcF9lbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
Rjg3MDA4NzI1QUY5NDYyMDAwRTFBQkYgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfdmVyc2lvbmVkX2ZpZWxkLmM7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdmVyc2lvbmVkX2ZpZWxkLmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGODcwMENBMjVCMENCMDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSB0aGluZ3lfaGVhcC5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY4NzAwQ0IyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX3ByZWZpeC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSB0aGluZ3lfaGVhcF9wcmVmaXguaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFwX3ByZWZpeC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtODU0LDM2ICs4NDMsMjMgQEAKIAkJMEY4NzAwQ0QyNUIwQ0IwMjAwMEUx
QUJGIC8qIHRoaW5neV9oZWFwX2NvbmZpZy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5h
bWUgPSB0aGluZ3lfaGVhcF9jb25maWcuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3RoaW5n
eV9oZWFwX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3MDBDRTI1
QjBDQjAzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBuYW1lID0gdGhpbmd5X2hlYXAuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9o
ZWFwLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkExMjVBRjg5NzkwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMEY4N0ZGQTIyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9nbG9i
YWxfc2l6ZV9jbGFzcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9i
YWxfc2l6ZV9jbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZBMzI1
QUY4OTc5MDAwRTFBQkYgLyogcGFzX2NvbW1pdF9zcGFuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IHBhc19jb21taXRfc3Bhbi5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX2NvbW1pdF9zcGFuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkE0
MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJp
YW50Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX3Zh
cmlhbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQTUyNUFGODk3OTAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfdmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBwYXNfYml0Zml0X3ZpZXcuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfdmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZBNjI1QUY4OTc5
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oOyBw
YXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkE3MjVBRjg5N0EwMDBFMUFCRiAv
KiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgbmFtZSA9IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYzsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQTgyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19jb21wYWN0X2F0
b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZBOTI1QUY4OTdBMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IG5hbWUgPSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmM7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkFCMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmFzaWNf
aGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY4N0ZGQUMyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfc2l6ZV9j
bGFzcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfYml0Zml0X3NpemVf
Y2xhc3MuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZBRDI1QUY4OTdBMDAwRTFBQkYg
LyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgbmFtZSA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGODdGRkFFMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9j
YXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X2FsbG9j
YXRvci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQUYyNUFGODk3QTAwMEUxQUJGIC8q
IHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUg
PSBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aWFzaW5nX2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZC
MDI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5jICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmM7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2xhcmdlX2hlYXBzLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkIxMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNf
Ymlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY4N0ZGQjIyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWdfa2luZC5kZWYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBmaWxlRW5jb2RpbmcgPSA0OyBuYW1lID0gcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ19raW5kLmRlZjsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfcGFnZV9jb25maWdfa2luZC5kZWY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
ODdGRkIzMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5Lmg7IHBhdGgg
PSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQjQyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
c2l6ZV9jbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0
X3NpemVfY2xhc3MuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9j
bGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZCNTI1QUY4OTdBMDAw
RTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGODdGRkI2MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFw
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfZW51bWVyYXRlX2JpdGZp
dF9oZWFwcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9iaXRmaXRf
aGVhcHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQjcyNUFGODk3QjAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZCODI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2Fs
bG9jYXRpb25fcmVzdWx0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19h
bGxvY2F0aW9uX3Jlc3VsdC5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9jYXRp
b25fcmVzdWx0LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkI5MjVBRjg5
N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaDsgcGF0
aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQkEyNUFGODk3QjAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjg3RkZCQjI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0
b3JfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0
X2FsbG9jYXRvcl9pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X2FsbG9jYXRvcl9pbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGODdG
RkJDMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQkQyNUFGODk3QjAwMEUxQUJG
IC8qIHBhc19iaXRmaXRfaGVhcC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBw
YXNfYml0Zml0X2hlYXAuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVh
cC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjg3RkZCRTI1QUY4OTdCMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmg7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGODdGRkJGMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2JpdGZpdF9n
bG9iYWxfZGlyZWN0b3J5LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2ds
b2JhbF9kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4N0ZGQzAy
NUFGODk3QjAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaDsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZDMTI1QUY4OTdCMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGODdGRkMyMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9y
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYml0Zml0X2RpcmVjdG9y
eS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQzMyNUFGODk3QjAwMEUxQUJGIC8qIHBh
c19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3Bh
Z2VzLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2luaXRpYWxseV91
bmFjY291bnRlZF9wYWdlcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODk3LDcg
Kzg3Myw2IEBACiAJCTBGODdGRkNDMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJl
Y3Rvcnlfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfYmlhc2lu
Z19kaXJlY3Rvcnlfa2luZC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4N0ZGQ0Qy
NUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19iaXRmaXRfYWxsb2NhdG9yLmM7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjg3RkZDRTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmln
X2VudW1lcmF0b3JfZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNf
YmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGODdGRkNGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFz
X2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
YWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4N0ZGRDAyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19lbnVtZXJhdGVfYml0Zml0X2hl
YXBzLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFw
cy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg3RkZEMTI1QUY4OTdDMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9wYWdlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9
IHBhc19iaXRmaXRfcGFnZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9w
YWdlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODdGRkQyMjVBRjg5N0MwMDBF
MUFCRiAvKiBwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaDsgcGF0aCA9IGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTkxOSwyNSArODk0LDExIEBACiAJCTBGOEE4MTI1MjVGODNFMjQwMDc5MEI0
QSAvKiBibWFsbG9jX2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gYm1h
bGxvY19oZWFwLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4QTgxMjYyNUY4M0UyNDAwNzkwQjRBIC8qIGhv
dGJpdF9oZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IGhvdGJpdF9oZWFw
Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjhBODEyNzI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxvY19oZWFw
LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IGJtYWxsb2NfaGVhcC5jOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGOEE4MTI4MjVGODNFMjUwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9y
X2xpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xvY2FsX2FsbG9j
YXRvcl9saW5lLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9y
X2xpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4QTgxMjkyNUY4M0UyNTAw
NzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gYm1hbGxvY19oZWFwX2NvbmZpZy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
Ym1hbGxvY19oZWFwX2NvbmZpZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhF
Nzg0QjI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX21hZ2F6aW5lLmMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuYzsgbmFtZSA9IHBhc19tYWdhemluZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX21hZ2F6aW5lLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEU3ODRDMjQ3
ODczOTQwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY19w
YWdlX3NoYXJpbmdfcG9vbF9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21w
YWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY4RTc4NEQyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19oZWFwX2NvbmZpZ19pbmxp
bmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19oZWFwX2NvbmZpZ19p
bmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfaW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhFNzg0RTI0Nzg3Mzk0MDBFMTI0
QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODRGMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NTEyNDc4NzM5NDAwRTEyNEE2IC8q
IHBhc19tYWdhemluZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbWFn
YXppbmUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhFNzg1MjI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTBGOEU3ODU0MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19vd25lcnNoaXBfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tp
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NTUyNDc4NzM5NTAwRTEy
NEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjhFNzg1NjI0Nzg3
Mzk1MDBFMTI0QTYgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODU3MjQ3ODczOTUwMEUxMjRBNiAv
KiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY4RTc4NTgyNDc4NzM5NTAwRTEyNEE2IC8qIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkwRjhFNzg1OTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfdmlldy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z192aWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODVCMjQ3ODczOTUw
MEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMEY4RTc4NUMyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVk
X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQkwRjhFNzg1RDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGOEU3ODVFMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVn
YXRlZF92aWV3X2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF92aWV3X2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY4RTgzMjQyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19kZXNpZ25hdGVkX2ludHJp
bnNpY19oZWFwLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVzaWduYXRlZF9pbnRy
aW5zaWNfaGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjhFODMyNTI0OTJF
QUYzMDA0NkQ3RjggLyogcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tcGFjdF9h
dG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmg7IHBhdGggPSBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOEU4MzI2MjQ5MkVBRjMwMDQ2RDdG
OCAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IG5hbWUgPSBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcC5jOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExOTQsNyArMTE1NSw2IEBACiAJCTBGQzQwQUIyMjQ1MTQ5
OEYwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmM7IG5hbWUgPSBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5jOyBwYXRoID0g
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuYzsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBQjQyNDUxNDk4RjAwODc2REEwIC8qIHBhc19mb3Vu
ZF9pbmRleC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfZm91bmRfaW5k
ZXguaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19mb3VuZF9pbmRleC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM0MEFCNTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX2hl
YXBfcmVmX2tpbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2hlYXBf
cmVmX2tpbmQuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3JlZl9raW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGQzQwQUI3MjQ1MTQ5OEYwMDg3NkRBMCAv
KiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaDsgcGF0aCA9IGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDNDBBQjgyNDUxNDk4RjAwODc2REEwIC8qIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVmaWxsX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oOyBwYXRoID0gbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRkM0MEFCOTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3N0cmVhbS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfc3RyZWFtLmg7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGQzQwQUJBMjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19oZWFwX3BhZ2VfcHJvdmlkZXIu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3BhZ2VfcHJvdmlkZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MzUsMTE2ICsxMzk1LDEwMCBAQAogCQkwRkM0
MDkwRTI0NTE0OTJFMDA4NzZEQTAgLyogbGlicGFzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKLQkJCQkwRjhBODEyNzI1RjgzRTI1MDA3OTBCNEEgLyogYm1hbGxv
Y19oZWFwLmMgKi8sCi0JCQkJMEY4QTgxMjUyNUY4M0UyNDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVh
cC5oICovLAogCQkJCTBGOEE4MTFEMjVGODNFMjQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29u
ZmlnLmMgKi8sCiAJCQkJMEY4QTgxMjkyNUY4M0UyNTAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9j
b25maWcuaCAqLywKIAkJCQkwRjhBODExQjI1RjgzRTIzMDA3OTBCNEEgLyogYm1hbGxvY19oZWFw
X2lubGluZXMuaCAqLywKIAkJCQkwRjhBODExRjI1RjgzRTI0MDA3OTBCNEEgLyogYm1hbGxvY19o
ZWFwX2lubmFyZHMuaCAqLywKIAkJCQkwRjhBODEyMzI1RjgzRTI0MDA3OTBCNEEgLyogYm1hbGxv
Y19oZWFwX3JlZi5oICovLAotCQkJCTBGOEE4MTIwMjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRf
aGVhcC5jICovLAotCQkJCTBGOEE4MTI2MjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5o
ICovLAorCQkJCTBGOEE4MTI3MjVGODNFMjUwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyAqLywK
KwkJCQkwRjhBODEyNTI1RjgzRTI0MDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmggKi8sCiAJCQkJ
MEY4QTgxMUUyNUY4M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5jICovLAogCQkJ
CTBGOEE4MTIxMjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuaCAqLywKIAkJ
CQkwRjhBODExQzI1RjgzRTI0MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5saW5lcy5oICovLAog
CQkJCTBGOEE4MTIyMjVGODNFMjQwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9pbm5hcmRzLmggKi8s
Ci0JCQkJMEZDNDA5MjEyNDUxNDk0MjAwODc2REEwIC8qIGlzb19oZWFwLmMgKi8sCi0JCQkJMEZD
NDA5MjkyNDUxNDk0MzAwODc2REEwIC8qIGlzb19oZWFwLmggKi8sCisJCQkJMEY4QTgxMjAyNUY4
M0UyNDAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwLmMgKi8sCisJCQkJMEY4QTgxMjYyNUY4M0UyNDAw
NzkwQjRBIC8qIGhvdGJpdF9oZWFwLmggKi8sCiAJCQkJMEZDNDA5MkYyNDUxNDk0MzAwODc2REEw
IC8qIGlzb19oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGQzQwOTI1MjQ1MTQ5NDMwMDg3NkRBMCAv
KiBpc29faGVhcF9jb25maWcuaCAqLywKIAkJCQkwRjVGRTdCNjI1QjYxRUMxMDAxODU5RkMgLyog
aXNvX2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBGNTE2RUU4MjQ1NjFBRTgwMDRFMkI4RCAvKiBp
c29faGVhcF9pbm5hcmRzLmggKi8sCiAJCQkJMEY1MjlERTAyNDU1NDYzRjAwMzg1QThDIC8qIGlz
b19oZWFwX3JlZi5oICovLAotCQkJCTBGQzQwOTBGMjQ1MTQ5NDIwMDg3NkRBMCAvKiBpc29fdGVz
dF9oZWFwLmMgKi8sCi0JCQkJMEZDNDA5MTAyNDUxNDk0MjAwODc2REEwIC8qIGlzb190ZXN0X2hl
YXAuaCAqLywKKwkJCQkwRkM0MDkyMTI0NTE0OTQyMDA4NzZEQTAgLyogaXNvX2hlYXAuYyAqLywK
KwkJCQkwRkM0MDkyOTI0NTE0OTQzMDA4NzZEQTAgLyogaXNvX2hlYXAuaCAqLywKIAkJCQkwRkM0
MDkzNzI0NTE0OTQ0MDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuYyAqLywKIAkJCQkw
RkM0MDkyMzI0NTE0OTQyMDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuaCAqLywKLQkJ
CQkwRjUxOTNFQzI2NkM0MkFDMDA0ODNBMkMgLyogaml0X2hlYXAuYyAqLywKLQkJCQkwRjUxOTNF
OTI2NkM0MkFDMDA0ODNBMkMgLyogaml0X2hlYXAuaCAqLywKKwkJCQkwRkM0MDkwRjI0NTE0OTQy
MDA4NzZEQTAgLyogaXNvX3Rlc3RfaGVhcC5jICovLAorCQkJCTBGQzQwOTEwMjQ1MTQ5NDIwMDg3
NkRBMCAvKiBpc29fdGVzdF9oZWFwLmggKi8sCisJCQkJMEY1MTkzRUEyNjZDNDJBQzAwNDgzQTJD
IC8qIGppdF9oZWFwX2NvbmZpZ19yb290X2RhdGEuaCAqLywKIAkJCQkwRjUxOTNFQjI2NkM0MkFD
MDA0ODNBMkMgLyogaml0X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY1MTkzRTgyNjZDNDJBQzAw
NDgzQTJDIC8qIGppdF9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBGNTE5M0VBMjY2QzQyQUMwMDQ4
M0EyQyAvKiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8sCi0JCQkJMEYxOEY4M0QyNUMz
NDY3NzAwNzIxQzJBIC8qIG1pbmFsaWduMzJfaGVhcC5jICovLAotCQkJCTBGMThGODQxMjVDMzQ2
NzcwMDcyMUMyQSAvKiBtaW5hbGlnbjMyX2hlYXAuaCAqLywKKwkJCQkwRjUxOTNFQzI2NkM0MkFD
MDA0ODNBMkMgLyogaml0X2hlYXAuYyAqLywKKwkJCQkwRjUxOTNFOTI2NkM0MkFDMDA0ODNBMkMg
Lyogaml0X2hlYXAuaCAqLywKIAkJCQkwRjE4Rjg0NDI1QzM0Njc3MDA3MjFDMkEgLyogbWluYWxp
Z24zMl9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGMThGODQyMjVDMzQ2NzcwMDcyMUMyQSAvKiBt
aW5hbGlnbjMyX2hlYXBfY29uZmlnLmggKi8sCi0JCQkJMEYxOEY4M0UyNUMzNDY3NzAwNzIxQzJB
IC8qIHBhZ2VzaXplNjRrX2hlYXAuYyAqLywKLQkJCQkwRjE4Rjg0MzI1QzM0Njc3MDA3MjFDMkEg
LyogcGFnZXNpemU2NGtfaGVhcC5oICovLAorCQkJCTBGMThGODNEMjVDMzQ2NzcwMDcyMUMyQSAv
KiBtaW5hbGlnbjMyX2hlYXAuYyAqLywKKwkJCQkwRjE4Rjg0MTI1QzM0Njc3MDA3MjFDMkEgLyog
bWluYWxpZ24zMl9oZWFwLmggKi8sCiAJCQkJMEYxOEY4NDAyNUMzNDY3NzAwNzIxQzJBIC8qIHBh
Z2VzaXplNjRrX2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEYxOEY4M0YyNUMzNDY3NzAwNzIxQzJB
IC8qIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmggKi8sCisJCQkJMEYxOEY4M0UyNUMzNDY3NzAw
NzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuYyAqLywKKwkJCQkwRjE4Rjg0MzI1QzM0Njc3MDA3
MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5oICovLAogCQkJCTBGQzQwOTJBMjQ1MTQ5NDMwMDg3
NkRBMCAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGQzQwOTJC
MjQ1MTQ5NDMwMDg3NkRBMCAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0b3IuaCAqLywKIAkJCQkwRkM0
MDkyRDI0NTE0OTQzMDA4NzZEQTAgLyogcGFzX2FsaWdubWVudC5jICovLAogCQkJCTBGQzQwOTMw
MjQ1MTQ5NDMwMDg3NkRBMCAvKiBwYXNfYWxpZ25tZW50LmggKi8sCi0JCQkJMEY4N0ZGQ0YyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jICovLAotCQkJCTBG
ODdGRkMwMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCAq
LywKIAkJCQkwRjFCRkQ0NjI2NjQ1QUM3MDBDRUMyOEQgLyogcGFzX2FsbF9oZWFwX2NvbmZpZ3Mu
aCAqLywKIAkJCQkwRkM0MDkzNDI0NTE0OTQzMDA4NzZEQTAgLyogcGFzX2FsbF9oZWFwcy5jICov
LAogCQkJCTBGQzQwOTg4MjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfYWxsX2hlYXBzLmggKi8sCi0J
CQkJMEYxQUVDRUIyNjU4MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgKi8sCi0J
CQkJMEYxQUVDRUEyNjU4MUI1RTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggKi8sCiAJ
CQkJMEZDNDA5QkYyNDUxNDk2MzAwODc2REEwIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0
b3JpZXMuYyAqLywKIAkJCQkwRkM0MDk3MjI0NTE0OTVFMDA4NzZEQTAgLyogcGFzX2FsbF9zaGFy
ZWRfcGFnZV9kaXJlY3Rvcmllcy5oICovLAogCQkJCTBGQzQwOTlFMjQ1MTQ5NjEwMDg3NkRBMCAv
KiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyAqLywKIAkJCQkwRkM0MDk4OTI0NTE0OTYwMDA4
NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmggKi8sCiAJCQkJMEZDNDA5ODEyNDUx
NDk1RjAwODc2REEwIC8qIHBhc19hbGxvY2F0aW9uX2NvbmZpZy5oICovLAogCQkJCTBGQzQwOTc3
MjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdGlvbl9raW5kLmggKi8sCi0JCQkJMEY4N0ZG
QjgyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5jICovLAogCQkJCTBG
QzQwOUJFMjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJ
CQkwRkM0MDlBQTI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2FsbG9jYXRvcl9jb3VudHMuaCAqLywK
IAkJCQkwRjc1NDk4MDI0ODY5NzNDMDAyQTRDN0QgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oICov
LAogCQkJCTBGQzQwOThEMjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdG9yX3NjYXZlbmdl
X2FjdGlvbi5oICovLAotCQkJCTBGQzQwOTg0MjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYmFzZWxp
bmVfYWxsb2NhdG9yLmMgKi8sCi0JCQkJMEZDNDA5QTIyNDUxNDk2MTAwODc2REEwIC8qIHBhc19i
YXNlbGluZV9hbGxvY2F0b3IuaCAqLywKIAkJCQkwRkM0MDk4MjI0NTE0OTVGMDA4NzZEQTAgLyog
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQuaCAqLywKIAkJCQkwRkM0MDk5NzI0NTE0OTYx
MDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5jICovLAogCQkJCTBGQzQw
OTdCMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmggKi8s
CisJCQkJMEZDNDA5ODQyNDUxNDk1RjAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3Iu
YyAqLywKKwkJCQkwRkM0MDlBMjI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9j
YXRvci5oICovLAogCQkJCTBGNTE5M0VEMjY2QzQyQUQwMDQ4M0EyQyAvKiBwYXNfYmFzaWNfaGVh
cF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmMgKi8sCiAJCQkJMEY4N0ZGQ0UyNUFGODk3QzAwMEUx
QUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaCAqLywKIAkJCQkw
Rjg3RkZBQjI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0
YS5oICovLAogCQkJCTBGQzQwOUE2MjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfYmFzaWNfaGVhcF9w
YWdlX2NhY2hlcy5oICovLAogCQkJCTBGQzQwOTdFMjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfYmFz
aWNfaGVhcF9ydW50aW1lX2NvbmZpZy5oICovLAogCQkJCTBGQzQwOTk2MjQ1MTQ5NjEwMDg3NkRB
MCAvKiBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oICovLAotCQkJCTBGODdGRkFG
MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyAqLywKLQkJCQkwRjg3
RkZCMzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmggKi8sCi0JCQkJ
MEY4N0ZGQjEyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVz
LmggKi8sCiAJCQkJMEY4N0ZGQ0MyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVj
dG9yeV9raW5kLmggKi8sCiAJCQkJMEZDNDA5QjUyNDUxNDk2MzAwODc2REEwIC8qIHBhc19iaXRm
aWVsZF92ZWN0b3IuaCAqLywKIAkJCQkwRjg3RkZENjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2Jp
dGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAorCQkJCTBGODdGRkJCMjVBRjg5N0IwMDBFMUFC
RiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCiAJCQkJMEY4N0ZGQ0QyNUFG
ODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgKi8sCiAJCQkJMEY4N0ZGQUUy
NUFGODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggKi8sCi0JCQkJMEY4N0ZG
QkIyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCAqLywK
LQkJCQkwRjg3RkZBNzI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeS5jICovLAotCQkJCTBGODdGRkJBMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5LmggKi8sCisJCQkJMEY4N0ZGQjkyNUFGODk3QjAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKIAkJCQkwRjg3RkZDQjI1QUY4OTdDMDAw
RTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuYyAqLywKIAkJCQkwRjg3RkZDMjI1QUY4OTdC
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjg3RkZBNjI1QUY4
OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmggKi8sCi0JCQkJ
MEY4N0ZGQjkyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMu
aCAqLywKLQkJCQkwRjg3RkZCRTI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfa2luZC5oICovLAotCQkJCTBGODdGRkJGMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkuYyAqLywKLQkJCQkwRjg3RkZCQzI1QUY4OTdCMDAwRTFBQkYgLyog
cGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEY4N0ZGQTkyNUFGODk3QTAw
MEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYyAqLywKLQkJCQkwRjg3RkZB
MjI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oICovLAog
CQkJCTBGODdGRkJEMjVBRjg5N0IwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2hlYXAuYyAqLywKIAkJ
CQkwRjg3RkZDNzI1QUY4OTdCMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9oZWFwLmggKi8sCiAJCQkJ
MEY4N0ZGQzQyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUuaCAqLywKLQkJ
CQkwRjg3RkZEMTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlLmMgKi8sCi0JCQkJ
MEY4N0ZGQzUyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5oICovLAotCQkJCTBG
ODdGRkI1MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggKi8sCiAJ
CQkJMEY4N0ZGRDMyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfaW5s
aW5lcy5oICovLAogCQkJCTBGODdGRkFEMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmQuYyAqLywKIAkJCQkwRjg3RkZCMjI1QUY4OTdBMDAwRTFBQkYgLyogcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmRlZiAqLywKIAkJCQkwRjg3RkZDMTI1QUY4OTdCMDAw
RTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmggKi8sCi0JCQkJMEY4N0ZGQjcy
NUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCAqLywKIAkJ
CQkwRjg3RkZDOTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGls
c19pbmxpbmVzLmggKi8sCisJCQkJMEY4N0ZGQjcyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRm
aXRfcGFnZV9jb25maWdfdXRpbHMuaCAqLywKIAkJCQkwRjg3RkZBNDI1QUY4OTc5MDAwRTFBQkYg
LyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmggKi8sCisJCQkJMEY4N0ZGQjUyNUFG
ODk3QTAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCAqLywKIAkJCQkwRjg3RkZB
MTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCAqLywKKwkJCQkw
Rjg3RkZEMTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdlLmMgKi8sCisJCQkJMEY4
N0ZGQzUyNUFGODk3QjAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5oICovLAogCQkJCTBGODdG
RkFDMjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyAqLywKIAkJCQkw
Rjg3RkZCNDI1QUY4OTdBMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmggKi8sCi0J
CQkJMEY4N0ZGQzgyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfdmlldy5jICovLAotCQkJ
CTBGODdGRkE1MjVBRjg5NzkwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAqLywKIAkJCQkw
Rjg3RkZEMjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oICov
LAogCQkJCTBGODdGRkQ1MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXdfaW5saW5l
cy5oICovLAorCQkJCTBGODdGRkM4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X3ZpZXcu
YyAqLywKKwkJCQkwRjg3RkZBNTI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2JpdGZpdF92aWV3Lmgg
Ki8sCiAJCQkJMEZDNDA5QTkyNDUxNDk2MjAwODc2REEwIC8qIHBhc19iaXR2ZWN0b3IuaCAqLywK
IAkJCQkwRkM0MDlCQjI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAu
YyAqLywKIAkJCQkwRkM0MDlBNzI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2Jvb3RzdHJhcF9mcmVl
X2hlYXAuaCAqLywKQEAgLTE1NjgsOSArMTUxMiw5IEBACiAJCQkJMEY4RTc4NEMyNDc4NzM5NDAw
RTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCAqLywK
IAkJCQkwRkM0MDlDMjI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3B0ci5o
ICovLAogCQkJCTBGOEU3ODRFMjQ3ODczOTQwMEUxMjRBNiAvKiBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLywKLQkJCQkwRjhFNzg0RjI0Nzg3Mzk0
MDBFMTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0ci5oICovLAogCQkJCTBGQzQwOTg2MjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19wb29sc19wdHIuaCAqLywK
IAkJCQkwRkM0MDlBQjI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3X3B0ci5oICovLAorCQkJCTBGN0M5MkQ3MjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAq
LywKIAkJCQkwRkM0MDlCQzI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfdmlldy5oICovLAogCQkJCTBGOEU4MzI1MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNf
Y29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8sCiAJCQkJ
MEZDNDA5OEIyNDUxNDk2MDAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0b21pY191bnNpZ25lZF9w
dHIuaCAqLywKQEAgLTE1ODksMTQgKzE1MzMsMTQgQEAKIAkJCQkwRjVGRTdEODI1QjYyMTBEMDAx
ODU5RkMgLyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCAqLywKIAkJ
CQkwRkM0MDk4NzI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfcHRyLmggKi8sCiAJCQkJ
MEY4RTc4NTgyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnlfcHRyLmggKi8sCi0JCQkJMEY4RTc4NTYyNDc4NzM5NTAwRTEyNEE2IC8qIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oICovLAorCQkJ
CTBGN0M5MkQzMjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X3B0ci5oICovLAogCQkJCTBGQzQwOUJBMjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2hlYXBfcHRyLmggKi8sCiAJCQkJMEZDNDA5QTEyNDUxNDk2MTAw
ODc2REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3B0
ci5oICovLAogCQkJCTBGQzQwOTcwMjQ1MTQ5NUUwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5oICovLAorCQkJCTBGN0M5MkRCMjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICovLAogCQkJ
CTBGQzQwOThGMjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3ZpZXcu
aCAqLywKLQkJCQkwRkM0MDk3RDI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rfc2tpcF9s
aXN0X25vZGVfcHRyLmggKi8sCiAJCQkJMEZDNDA5OTkyNDUxNDk2MTAwODc2REEwIC8qIHBhc19j
b21wYWN0X3NraXBfbGlzdF9ub2RlX3B0cl9wdHIuaCAqLywKLQkJCQkwRjVGRTdDRTI1QjYyMTBD
MDAxODU5RkMgLyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmggKi8sCisJCQkJ
MEZDNDA5N0QyNDUxNDk1RjAwODc2REEwIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0
ci5oICovLAogCQkJCTBGQzQwOUMxMjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdn
ZWRfYXRvbWljX3B0ci5oICovLAogCQkJCTBGNUZFN0Q5MjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNf
Y29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCAqLywKIAkJCQkwRkM0
MDk3MTI0NTE0OTVFMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oICovLApAQCAt
MTYwNCwyNCArMTU0OCwyNCBAQAogCQkJCTBGQzQwOTlBMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNf
Y29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLywKIAkJCQkwRkM0MDk3OTI0NTE0OTVGMDA4NzZEQTAg
LyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmMgKi8sCiAJCQkJMEZDNDA5
QjMyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNr
cy5oICovLAotCQkJCTBGQzQwOUI4MjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfY29uZmlnLmggKi8s
CiAJCQkJMEZDNDA5QTgyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jb25maWdfcHJlZml4LmggKi8s
CisJCQkJMEZDNDA5QjgyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb25maWcuaCAqLywKIAkJCQkw
RkM0MDlBRDI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2NvdW50X2xvb2t1cF9tb2RlLmggKi8sCiAJ
CQkJMEZDNDA5QTUyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdl
X2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5jICovLAogCQkJCTBGQzQwOTZGMjQ1MTQ5NUUw
MDg3NkRBMCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZl
ZF9tZW1vcnkuaCAqLywKIAkJCQkwRkM0MDk5ODI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2RlYWxs
b2NhdGUuYyAqLywKIAkJCQkwRkM0MDk5QjI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2RlYWxsb2Nh
dGUuaCAqLywKIAkJCQkwRjVGRTdEQTI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2RlYWxsb2NhdGlv
bl9tb2RlLmggKi8sCi0JCQkJMEZDNDA5QTMyNDUxNDk2MTAwODc2REEwIC8qIHBhc19kZWFsbG9j
YXRvci5oICovLAogCQkJCTBGQzQwOTg1MjQ1MTQ5NjAwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0
b3Jfc2NhdmVuZ2VfYWN0aW9uLmggKi8sCisJCQkJMEZDNDA5QTMyNDUxNDk2MTAwODc2REEwIC8q
IHBhc19kZWFsbG9jYXRvci5oICovLAogCQkJCTBGMzczRTUzMjY1OUVBNzAwMDM0QkE5NiAvKiBw
YXNfZGVidWdfaGVhcC5oICovLAogCQkJCTBGQkM2MkM0MjY1RjE4MEMwMDVBNTcyMCAvKiBwYXNf
ZGVidWdfc3BlY3RydW0uYyAqLywKIAkJCQkwRkJDNjJDNTI2NUYxODBDMDA1QTU3MjAgLyogcGFz
X2RlYnVnX3NwZWN0cnVtLmggKi8sCiAJCQkJMEZDNDA5QjkyNDUxNDk2MzAwODc2REEwIC8qIHBh
c19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuYyAqLywKIAkJCQkwRkM0MDlBMDI0NTE0OTYxMDA4NzZE
QTAgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oICovLAorCQkJCTBGOEU4MzJCMjQ5MkVB
RjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmggKi8s
CiAJCQkJMEY4RTgzMjYyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNp
Y19oZWFwLmMgKi8sCiAJCQkJMEY4RTgzMjQyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25h
dGVkX2ludHJpbnNpY19oZWFwLmggKi8sCi0JCQkJMEY4RTgzMkIyNDkyRUFGMzAwNDZEN0Y4IC8q
IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRkM0MDk4
QTI0NTE0OTYwMDA4NzZEQTAgLyogcGFzX2R5bGRfc3RhdGUuYyAqLywKIAkJCQkwRkM0MDk5RDI0
NTE0OTYxMDA4NzZEQTAgLyogcGFzX2R5bGRfc3RhdGUuaCAqLywKIAkJCQkwRkM0MDk4MDI0NTE0
OTVGMDA4NzZEQTAgLyogcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmMgKi8sCkBAIC0x
NjQ0LDExICsxNTg4LDExIEBACiAJCQkJMEY4NzAwMTIyNUFGODlDNzAwMEUxQUJGIC8qIHBhc19l
bnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5oICovLAogCQkJCTBGODcwMDFEMjVBRjg5QzgwMDBF
MUFCRiAvKiBwYXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuYyAqLywKIAkJ
CQkwRjg3MDAxRTI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9w
YWdlc19hc19tZXRhLmggKi8sCi0JCQkJMEY4NzAwMTQyNUFGODlDNzAwMEUxQUJGIC8qIHBhc19l
bnVtZXJhdG9yLmMgKi8sCi0JCQkJMEY4NzAwMjcyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19lbnVt
ZXJhdG9yLmggKi8sCiAJCQkJMEY4NzAwMjgyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19lbnVtZXJh
dG9yX2ludGVybmFsLmggKi8sCiAJCQkJMEY4NzAwMjAyNUFGODlDODAwMEUxQUJGIC8qIHBhc19l
bnVtZXJhdG9yX3JlZ2lvbi5jICovLAogCQkJCTBGODcwMDIxMjVBRjg5QzgwMDBFMUFCRiAvKiBw
YXNfZW51bWVyYXRvcl9yZWdpb24uaCAqLywKKwkJCQkwRjg3MDAxNDI1QUY4OUM3MDAwRTFBQkYg
LyogcGFzX2VudW1lcmF0b3IuYyAqLywKKwkJCQkwRjg3MDAyNzI1QUY4OUM5MDAwRTFBQkYgLyog
cGFzX2VudW1lcmF0b3IuaCAqLywKIAkJCQkwRkM0MDlBRjI0NTE0OTYyMDA4NzZEQTAgLyogcGFz
X2Vwb2NoLmMgKi8sCiAJCQkJMEZDNDA5QjEyNDUxNDk2MjAwODc2REEwIC8qIHBhc19lcG9jaC5o
ICovLAogCQkJCTBGQzQwOUIwMjQ1MTQ5NjIwMDg3NkRBMCAvKiBwYXNfZXhjbHVzaXZlX3ZpZXdf
dGVtcGxhdGVfbWVtb190YWJsZS5jICovLApAQCAtMTY2Miw4ICsxNjA2LDggQEAKIAkJCQkwRjg3
MDAyMzI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oICovLAogCQkJ
CTBGODcwMDIyMjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5jICov
LAogCQkJCTBGODcwMDI0MjVBRjg5QzgwMDBFMUFCRiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJs
ZS5oICovLAotCQkJCTBGODcwMDE2MjVBRjg5QzcwMDBFMUFCRiAvKiBwYXNfZmFzdF9wYXRoX2Fs
bG9jYXRpb25fcmVzdWx0LmggKi8sCiAJCQkJMEY4NzAwMTEyNUFGODlDNzAwMEUxQUJGIC8qIHBh
c19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2luZC5oICovLAorCQkJCTBGODcwMDE2MjVB
Rjg5QzcwMDBFMUFCRiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCiAJ
CQkJMEZCNTcwNkMyNjdEMDU1OTAwODBGQThCIC8qIHBhc19mYXN0X3Rscy5oICovLAogCQkJCTBG
QzQwQUM5MjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfZmRfc3RyZWFtLmMgKi8sCiAJCQkJMEZDNDBB
Q0EyNDUxNDk5MTAwODc2REEwIC8qIHBhc19mZF9zdHJlYW0uaCAqLywKQEAgLTE2NzQsOCArMTYx
OCw4IEBACiAJCQkJMEY4NzAwMUYyNUFGODlDODAwMEUxQUJGIC8qIHBhc19mcmVlX2dyYW51bGVz
LmggKi8sCiAJCQkJMEZDNDBBQTgyNDUxNDk4RTAwODc2REEwIC8qIHBhc19mcmVlX21vZGUuaCAq
LywKIAkJCQkwRkM0MEEzNDI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX2ZyZWVfcmFuZ2Vfa2luZC5o
ICovLAotCQkJCTBGQzQwQUNCMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfZnVsbF9hbGxvY19iaXRz
LmggKi8sCiAJCQkJMEZDNDBBNDUyNDUxNDk4NzAwODc2REEwIC8qIHBhc19mdWxsX2FsbG9jX2Jp
dHNfaW5saW5lcy5oICovLAorCQkJCTBGQzQwQUNCMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfZnVs
bF9hbGxvY19iaXRzLmggKi8sCiAJCQkJMEZDNDBBM0EyNDUxNDk4NjAwODc2REEwIC8qIHBhc19n
ZW5lcmljX2xhcmdlX2ZyZWVfaGVhcC5oICovLAogCQkJCTBGQzQwQTk2MjQ1MTQ5OEQwMDg3NkRB
MCAvKiBwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oICovLAogCQkJCTBGQzQwQUUxMjQ1MTQ5OTIw
MDg3NkRBMCAvKiBwYXNfZ2V0X2hlYXAuaCAqLywKQEAgLTE2ODMsMTcgKzE2MjcsMTUgQEAKIAkJ
CQkwRjg3MDAxQzI1QUY4OUM4MDAwRTFBQkYgLyogcGFzX2dldF9wYWdlX2Jhc2UuaCAqLywKIAkJ
CQkwRkM0MEE3MjI0NTE0OThBMDA4NzZEQTAgLyogcGFzX2hhc19vYmplY3QuaCAqLywKIAkJCQkw
RkM0MEE0ODI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX2hhc2h0YWJsZS5oICovLAotCQkJCTBGQzQw
QUNDMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfaGVhcC5jICovLAotCQkJCTBGQzQwQTVGMjQ1MTQ5
ODkwMDg3NkRBMCAvKiBwYXNfaGVhcC5oICovLAotCQkJCTBGMUJGRDQ1MjY2NDVBQzcwMENFQzI4
RCAvKiBwYXNfaGVhcF9jb25maWcuYyAqLywKLQkJCQkwRkM0MEFBQTI0NTE0OThFMDA4NzZEQTAg
LyogcGFzX2hlYXBfY29uZmlnLmggKi8sCiAJCQkJMEY4RTc4NEQyNDc4NzM5NDAwRTEyNEE2IC8q
IHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBNjkyNDUxNDk4QTAwODc2
REEwIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmMgKi8sCiAJCQkJMEZDNDBBOEQyNDUxNDk4QzAw
ODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmRlZiAqLywKIAkJCQkwRkM0MEE1ODI0NTE0
OTg5MDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuaCAqLywKKwkJCQkwRkM0MEE0MjI0
NTE0OTg3MDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKIAkJ
CQkwRkM0MEE1RTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMgKi8s
CiAJCQkJMEZDNDBBREIyNDUxNDk5MjAwODc2REEwIC8qIHBhc19oZWFwX2NvbmZpZ191dGlscy5o
ICovLAotCQkJCTBGQzQwQTQyMjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNfaGVhcF9jb25maWdfdXRp
bHNfaW5saW5lcy5oICovLAorCQkJCTBGMUJGRDQ1MjY2NDVBQzcwMENFQzI4RCAvKiBwYXNfaGVh
cF9jb25maWcuYyAqLywKKwkJCQkwRkM0MEFBQTI0NTE0OThFMDA4NzZEQTAgLyogcGFzX2hlYXBf
Y29uZmlnLmggKi8sCiAJCQkJMEZDNDBBNzcyNDUxNDk4QjAwODc2REEwIC8qIHBhc19oZWFwX2Zv
cl9jb25maWcuYyAqLywKIAkJCQkwRkM0MEE5QTI0NTE0OThEMDA4NzZEQTAgLyogcGFzX2hlYXBf
Zm9yX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQUQ5MjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfaGVh
cF9pbmxpbmVzLmggKi8sCkBAIC0xNzAxLDIzICsxNjQzLDI0IEBACiAJCQkJMEZDNDBBRTQyNDUx
NDk5MjAwODc2REEwIC8qIHBhc19oZWFwX2xvY2suYyAqLywKIAkJCQkwRkM0MEE3QjI0NTE0OThC
MDA4NzZEQTAgLyogcGFzX2hlYXBfbG9jay5oICovLAogCQkJCTBGQzQwQUJBMjQ1MTQ5OEYwMDg3
NkRBMCAvKiBwYXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmggKi8sCi0JCQkJMEZDNDBBNEYyNDUxNDk4
ODAwODc2REEwIC8qIHBhc19oZWFwX3JlZi5jICovLAotCQkJCTBGQzQwQTY2MjQ1MTQ5ODkwMDg3
NkRBMCAvKiBwYXNfaGVhcF9yZWYuaCAqLywKIAkJCQkwRkM0MEFCNTI0NTE0OThGMDA4NzZEQTAg
LyogcGFzX2hlYXBfcmVmX2tpbmQuaCAqLywKIAkJCQkwRkM0MEE4RTI0NTE0OThDMDA4NzZEQTAg
LyogcGFzX2hlYXBfcmVmX3ByZWZpeC5oICovLAorCQkJCTBGQzQwQTRGMjQ1MTQ5ODgwMDg3NkRB
MCAvKiBwYXNfaGVhcF9yZWYuYyAqLywKKwkJCQkwRkM0MEE2NjI0NTE0OTg5MDA4NzZEQTAgLyog
cGFzX2hlYXBfcmVmLmggKi8sCisJCQkJMEY3QzkyRDkyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19o
ZWFwX3J1bnRpbWVfY29uZmlnLmMgKi8sCiAJCQkJMEZDNDBBRTkyNDUxNDk5MzAwODc2REEwIC8q
IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmggKi8sCiAJCQkJMEZDNDBBRjIyNDUxNDk5MzAwODc2
REEwIC8qIHBhc19oZWFwX3N1bW1hcnkuYyAqLywKIAkJCQkwRkM0MEFENjI0NTE0OTkxMDA4NzZE
QTAgLyogcGFzX2hlYXBfc3VtbWFyeS5oICovLAorCQkJCTBGQzQwQTRFMjQ1MTQ5ODgwMDg3NkRB
MCAvKiBwYXNfaGVhcF90YWJsZV9zdGF0ZS5oICovLAogCQkJCTBGQzQwQUM2MjQ1MTQ5OTAwMDg3
NkRBMCAvKiBwYXNfaGVhcF90YWJsZS5jICovLAogCQkJCTBGQzQwQTJFMjQ1MTQ5ODYwMDg3NkRB
MCAvKiBwYXNfaGVhcF90YWJsZS5oICovLAotCQkJCTBGQzQwQTRFMjQ1MTQ5ODgwMDg3NkRBMCAv
KiBwYXNfaGVhcF90YWJsZV9zdGF0ZS5oICovLAorCQkJCTBGQzQwQUNDMjQ1MTQ5OTEwMDg3NkRB
MCAvKiBwYXNfaGVhcC5jICovLAorCQkJCTBGQzQwQTVGMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNf
aGVhcC5oICovLAogCQkJCTBGQzQwQTY0MjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfaW1tb3J0YWxf
aGVhcC5jICovLAogCQkJCTBGQzQwQTlGMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfaW1tb3J0YWxf
aGVhcC5oICovLAogCQkJCTBGQzQwQTk0MjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfaW1tdXRhYmxl
X3ZlY3Rvci5oICovLAogCQkJCTBGNTE2RUU0MjQ1NjE4NEYwMDRFMkI4RCAvKiBwYXNfaW50ZXJu
YWxfY29uZmlnLmggKi8sCi0JCQkJMEZDNDBBQjcyNDUxNDk4RjAwODc2REEwIC8qIHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRkM0MEE1MTI0NTE0OTg4MDA4NzZE
QTAgLyogcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaCAqLywKLQkJCQkwRkM0MEE5QzI0NTE0
OThEMDA4NzZEQTAgLyogcGFzX2xhcmdlX2ZyZWUuaCAqLywKIAkJCQkwRkM0MEE1NDI0NTE0OTg4
MDA4NzZEQTAgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRkFCRERD
RjI0OEFCMDg0MDBBODQwQjMgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVm
ICovLAogCQkJCTBGQzQwQUNEMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFw
X2RlZmVycmVkX2NvbW1pdF9sb2cuYyAqLywKQEAgLTE3MjcsMzUgKzE2NzAsNDEgQEAKIAkJCQkw
RkFCRERDRTI0OEFCMDg0MDBBODQwQjMgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmgg
Ki8sCiAJCQkJMEZDNDBBNzQyNDUxNDk4QTAwODc2REEwIC8qIHBhc19sYXJnZV9mcmVlX2lubGlu
ZXMuaCAqLywKIAkJCQkwRkM0MEEyMzI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX2xhcmdlX2ZyZWVf
dmlzaXRvci5oICovLAotCQkJCTBGQzQwQTkzMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfbGFyZ2Vf
aGVhcC5jICovLAotCQkJCTBGQzQwQTdBMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfaGVh
cC5oICovLAorCQkJCTBGQzQwQTlDMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZS5o
ICovLAogCQkJCTBGQzQwQTgzMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfaGVhcF9waHlz
aWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYyAqLywKIAkJCQkwRkM0MEFCMDI0NTE0OThGMDA4NzZE
QTAgLyogcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggKi8sCisJ
CQkJMEZDNDBBOTMyNDUxNDk4RDAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwLmMgKi8sCisJCQkJ
MEZDNDBBN0EyNDUxNDk4QjAwODc2REEwIC8qIHBhc19sYXJnZV9oZWFwLmggKi8sCisJCQkJMEZD
NDBBRDQyNDUxNDk5MTAwODc2REEwIC8qIHBhc19sYXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkw
RkM0MEFGNDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xhcmdlX21hcC5jICovLAogCQkJCTBGQzQw
QTM2MjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfbWFwLmggKi8sCi0JCQkJMEZDNDBBRDQy
NDUxNDk5MTAwODc2REEwIC8qIHBhc19sYXJnZV9tYXBfZW50cnkuaCAqLywKKwkJCQkwRkM0MEFC
RDI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVf
bW9kZS5oICovLAogCQkJCTBGQzQwQTRCMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfbGFyZ2Vfc2hh
cmluZ19wb29sLmMgKi8sCiAJCQkJMEZDNDBBMUQyNDUxNDk4NDAwODc2REEwIC8qIHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2wuaCAqLywKLQkJCQkwRkM0MEFCRDI0NTE0OTkwMDA4NzZEQTAgLyogcGFz
X2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oICovLAogCQkJCTBGQzQwQUEz
MjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyAqLywKIAkJ
CQkwRkM0MEFGMTI0NTE0OTkzMDA4NzZEQTAgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFw
LmggKi8sCiAJCQkJMEY4QTgxMjQyNUY4M0UyNDAwNzkwQjRBIC8qIHBhc19saW5lX3dvcmRfY29u
ZmlnLmggKi8sCiAJCQkJMEZDNDBBN0QyNDUxNDk4QjAwODc2REEwIC8qIHBhc19saXN0X2RpcmVj
dGlvbi5oICovLAotCQkJCTBGQzQwQTI4MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxs
b2NhdG9yLmMgKi8sCi0JCQkJMEZDNDBBNEEyNDUxNDk4ODAwODc2REEwIC8qIHBhc19sb2NhbF9h
bGxvY2F0b3IuaCAqLywKIAkJCQkwRkM0MEE0QzI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX2xvY2Fs
X2FsbG9jYXRvcl9jb25maWdfa2luZC5oICovLAogCQkJCTBGQzQwQTk4MjQ1MTQ5OEQwMDg3NkRB
MCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCAqLywKLQkJCQkwRjhBODEyODI1Rjgz
RTI1MDA3OTBCNEEgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lLmggKi8sCisJCQkJMEY3Qzky
RTAyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oICovLAogCQkJ
CTBGQzQwQUI4MjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9t
b2RlLmggKi8sCiAJCQkJMEZDNDBBNTAyNDUxNDk4ODAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxv
Y2F0b3JfcmVzdWx0LmggKi8sCi0JCQkJMEZDNDBCRDkyNDUyNDNBNDAwODc2REEwIC8qIHBhc19s
b2NrLmMgKi8sCi0JCQkJMEZDNDBBOEIyNDUxNDk4QzAwODc2REEwIC8qIHBhc19sb2NrLmggKi8s
CisJCQkJMEY3QzkyREEyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGEuYyAqLywKKwkJCQkwRjdDOTJENDI2RTU3Rjc0MDA2QUYwMTIgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oICovLAorCQkJCTBGQzQwQTI4MjQ1MTQ5ODUw
MDg3NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmMgKi8sCisJCQkJMEZDNDBBNEEyNDUxNDk4
ODAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuaCAqLywKKwkJCQkwRjdDOTJFMTI2RTU3
Rjc1MDA2QUYwMTIgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jICovLAorCQkJCTBGN0M5
MkRDMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggKi8sCisJ
CQkJMEY3QzkyRDYyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgKi8s
CisJCQkJMEY3QzkyREUyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmgg
Ki8sCisJCQkJMEY3QzkyREYyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9o
YXNodGFibGUuaCAqLywKIAkJCQkwRkM0MEE1NjI0NTE0OTg4MDA4NzZEQTAgLyogcGFzX2xvY2tf
ZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmMgKi8sCiAJCQkJMEZDNDBBQTQyNDUxNDk4RTAw
ODc2REEwIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5oICovLAorCQkJ
CTBGQzQwQkQ5MjQ1MjQzQTQwMDg3NkRBMCAvKiBwYXNfbG9jay5jICovLAorCQkJCTBGQzQwQThC
MjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfbG9jay5oICovLAogCQkJCTBGQzQwQUQ3MjQ1MTQ5OTEw
MDg3NkRBMCAvKiBwYXNfbG9nLmMgKi8sCiAJCQkJMEZDNDBBQzEyNDUxNDk5MDAwODc2REEwIC8q
IHBhc19sb2cuaCAqLywKLQkJCQkwRjhFNzg0QjI0Nzg3Mzk0MDBFMTI0QTYgLyogcGFzX21hZ2F6
aW5lLmMgKi8sCi0JCQkJMEY4RTc4NTEyNDc4NzM5NDAwRTEyNEE2IC8qIHBhc19tYWdhemluZS5o
ICovLAogCQkJCTBGODcwMDRCMjVBRjhBMTkwMDBFMUFCRiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdl
X2NhY2hlLmMgKi8sCiAJCQkJMEY4NzAwNDgyNUFGOEExOTAwMEUxQUJGIC8qIHBhc19tZWRpdW1f
bWVnYXBhZ2VfY2FjaGUuaCAqLywKIAkJCQkwRkM0MEE4MTI0NTE0OThCMDA4NzZEQTAgLyogcGFz
X21lZ2FwYWdlX2NhY2hlLmMgKi8sCkBAIC0xNzY2LDEzICsxNzE1LDEzIEBACiAJCQkJMEZDNDBB
RDIyNDUxNDk5MTAwODc2REEwIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oICovLAogCQkJCTBGODcw
MDRFMjVBRjhBMTkwMDBFMUFCRiAvKiBwYXNfb2JqZWN0X2tpbmQuaCAqLywKIAkJCQkwRkM0MEEz
QjI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX29iamVjdF9zaXplX21vZGUuaCAqLywKLQkJCQkwRjg3
MDA1MjI1QUY4QTFBMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZS5jICovLAotCQkJCTBGODcwMDVE
MjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlLmggKi8sCi0JCQkJMEY4NzAwNjAyNUFG
OEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggKi8sCiAJCQkJMEY4NzAwNUUy
NUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX2lubGluZXMuaCAqLywKLQkJ
CQkwRjg3MDA0RDI1QUY4QTE5MDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMu
aCAqLywKIAkJCQkwRjg3MDA1NjI1QUY4QTFBMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25m
aWdfdXRpbHNfaW5saW5lcy5oICovLAorCQkJCTBGODcwMDREMjVBRjhBMTkwMDBFMUFCRiAvKiBw
YXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICovLAorCQkJCTBGODcwMDYwMjVBRjhBMUIwMDBF
MUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oICovLAogCQkJCTBGODcwMDUwMjVBRjhBMUEw
MDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCAqLywKKwkJCQkwRjg3MDA1MjI1QUY4
QTFBMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZS5jICovLAorCQkJCTBGODcwMDVEMjVBRjhBMUEw
MDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlLmggKi8sCiAJCQkJMEY4NzAwNEEyNUFGOEExOTAwMEUx
QUJGIC8qIHBhc19wYWdlX2NvbmZpZ19raW5kLmggKi8sCiAJCQkJMEY4NzAwNjIyNUFGOEExQjAw
MEUxQUJGIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggKi8sCiAJCQkJMEY4NzAwNDky
NUFGOEExOTAwMEUxQUJGIC8qIHBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oICovLApA
QCAtMTc4MiwxMiArMTczMSwxMyBAQAogCQkJCTBGQzQwQTg5MjQ1MTQ5OEMwMDg3NkRBMCAvKiBw
YXNfcGFnZV9tYWxsb2MuYyAqLywKIAkJCQkwRkM0MEFGNTI0NTE0OTk0MDA4NzZEQTAgLyogcGFz
X3BhZ2VfbWFsbG9jLmggKi8sCiAJCQkJMEY4NzAwNUIyNUFGOEExQTAwMEUxQUJGIC8qIHBhc19w
YWdlX3NoYXJpbmdfbW9kZS5oICovLAorCQkJCTBGQzQwQUEwMjQ1MTQ5OEUwMDg3NkRBMCAvKiBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaCAqLywKIAkJCQkwRkM0MEEzMzI0NTE0
OTg2MDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jICovLAogCQkJCTBG
QzQwQTREMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50Lmgg
Ki8sCi0JCQkJMEZDNDBBQTAyNDUxNDk4RTAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfa2luZC5oICovLAorCQkJCTBGN0M5MkQyMjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmggKi8sCisJCQkJMEZDNDBBNzMyNDUx
NDk4QTAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdC5oICovLAog
CQkJCTBGQzQwQUFGMjQ1MTQ5OEYwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYyAq
LywKIAkJCQkwRkM0MEFBOTI0NTE0OThFMDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29s
LmggKi8sCi0JCQkJMEZDNDBBNzMyNDUxNDk4QTAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdf
cG9vbF90YWtlX3Jlc3VsdC5oICovLAogCQkJCTBGODcwMDRDMjVBRjhBMTkwMDBFMUFCRiAvKiBw
YXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYyAqLywKIAkJCQkwRjg3MDA1QzI1QUY4
QTFBMDAwRTFBQkYgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0LmggKi8sCiAJ
CQkJMEZDNDBBMzcyNDUxNDk4NjAwODc2REEwIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hy
b25pemF0aW9uX3N0eWxlLmggKi8sCkBAIC0xODA1LDExICsxNzU1LDExIEBACiAJCQkJMEZDNDBB
NDAyNDUxNDk4NzAwODc2REEwIC8qIHBhc19yYWNlX3Rlc3RfaG9va3MuaCAqLywKIAkJCQkwRkM0
MEExRjI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3JhbmRvbS5jICovLAogCQkJCTBGQzQwQTg0MjQ1
MTQ5OEMwMDg3NkRBMCAvKiBwYXNfcmFuZG9tLmggKi8sCi0JCQkJMEZDNDBBMjcyNDUxNDk4NTAw
ODc2REEwIC8qIHBhc19yYW5nZS5oICovLAotCQkJCTBGQzQwQTc1MjQ1MTQ5OEIwMDg3NkRBMCAv
KiBwYXNfcmFuZ2UxNi5oICovLAogCQkJCTBGODcwMDU0MjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNf
cmFuZ2VfYmVnaW5fbWluX2hlYXAuaCAqLywKIAkJCQkwRkM0MEFEODI0NTE0OTkyMDA4NzZEQTAg
LyogcGFzX3JhbmdlX2xvY2tlZF9tb2RlLmggKi8sCiAJCQkJMEZDNDBBQkMyNDUxNDk5MDAwODc2
REEwIC8qIHBhc19yYW5nZV9taW5faGVhcC5oICovLAorCQkJCTBGQzQwQTI3MjQ1MTQ5ODUwMDg3
NkRBMCAvKiBwYXNfcmFuZ2UuaCAqLywKKwkJCQkwRkM0MEE3NTI0NTE0OThCMDA4NzZEQTAgLyog
cGFzX3JhbmdlMTYuaCAqLywKIAkJCQkwRkM0MEE0NDI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3Jl
YWxsb2NhdGVfZnJlZV9tb2RlLmggKi8sCiAJCQkJMEZDNDBBODYyNDUxNDk4QzAwODc2REEwIC8q
IHBhc19yZWFsbG9jYXRlX2hlYXBfdGVsZXBvcnRfcnVsZS5oICovLAogCQkJCTBGQzQwQUJGMjQ1
MTQ5OTAwMDg3NkRBMCAvKiBwYXNfcmVkX2JsYWNrX3RyZWUuYyAqLywKQEAgLTE4MjMsNjcgKzE3
NzMsNjAgQEAKIAkJCQkwRkM0MEE2RDI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3NjYXZlbmdlci5j
ICovLAogCQkJCTBGQzQwQTU3MjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfc2NhdmVuZ2VyLmggKi8s
CiAJCQkJMEZDNDBBNzAyNDUxNDk4QTAwODc2REEwIC8qIHBhc19zZWdtZW50ZWRfdmVjdG9yLmgg
Ki8sCi0JCQkJMEY4RTc4NUMyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5LmMgKi8sCi0JCQkJMEY4RTc4NTcyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEY4RTc4NTIyNDc4NzM5NDAw
RTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5jICovLAotCQkJCTBGOEU3ODU5
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCAqLywKLQkJ
CQkwRkM0MEEyNDI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmMg
Ki8sCi0JCQkJMEZDNDBBNkYyNDUxNDk4QTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeS5oICovLAorCQkJCTBGN0M5MkQ1MjZFNTdGNzQwMDZBRjAxMiAvKiBwYXNfc2VncmVnYXRl
ZF9kZWFsbG9jYXRpb25fbW9kZS5oICovLAogCQkJCTBGQzQwQTkwMjQ1MTQ5OEMwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oICovLAogCQkJCTBGODcw
MDU4MjVBRjhBMUEwMDBFMUFCRiAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxp
Z2libGVfa2luZC5oICovLAogCQkJCTBGQzQwQTgwMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaW5saW5lcy5oICovLAogCQkJCTBGQzQwQUVFMjQ1MTQ5OTMwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oICovLAorCQkJCTBGQzQwQTI0
MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYyAqLywKKwkJCQkw
RkM0MEE2RjI0NTE0OThBMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmggKi8s
CisJCQkJMEYxOEY4M0MyNUMzNDY3NzAwNzIxQzJBIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEFFNjI0NTE0OTkzMDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYyAqLywKIAkJCQkwRkM0MEE2QjI0NTE0OThBMDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCAqLywKLQkJCQkwRjE4Rjgz
QzI1QzM0Njc3MDA3MjFDMkEgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5l
cy5oICovLAotCQkJCTBGOEU3ODU0MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oICovLAotCQkJCTBGOEU3ODU1MjQ3ODczOTUw
MEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuYyAqLywKLQkJ
CQkwRjhFNzg1RDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5LmggKi8sCi0JCQkJMEY4RTc4NUIyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCi0JCQkJMEZDNDBBREMy
NDUxNDk5MjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuYyAqLywKLQkJCQkwRkM0MEEy
RjI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oICovLAogCQkJCTBGQzQw
QTIwMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaCAqLywK
IAkJCQkwRkM0MEE3RjI0NTE0OThCMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29r
dXBfa2luZC5oICovLAogCQkJCTBGQzQwQTU5MjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfc2VncmVn
YXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19tb2RlLmggKi8sCi0JCQkJMEZDNDBBREYyNDUxNDk5MjAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuYyAqLywKLQkJCQkwRkM0MEEzODI0NTE0OTg2
MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oICovLAorCQkJCTBGQzQwQURDMjQ1MTQ5
OTIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmMgKi8sCisJCQkJMEZDNDBBMkYyNDUx
NDk4NjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuaCAqLywKIAkJCQkwRjVGRTdEMTI1
QjYyMTBDMDAxODU5RkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmggKi8sCi0J
CQkJMEZDNDBBNDEyNDUxNDk4NzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
LmMgKi8sCi0JCQkJMEZDNDBBRDEyNDUxNDk5MTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnLmggKi8sCiAJCQkJMEZDNDBBREEyNDUxNDk5MjAwODc2REEwIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEFFNTI0NTE0OTkzMDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5jICovLAogCQkJCTBGQzQw
QTc2MjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRl
ZiAqLywKIAkJCQkwRkM0MEE1QTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZC5oICovLAotCQkJCTBGQzQwQTk3MjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBGQzQwQTU1MjQ1MTQ5ODgw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8s
CisJCQkJMEZDNDBBOTcyNDUxNDk4RDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY1RkU3QzkyNUI2MjEwQjAwMTg1OUZDIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCAqLywKKwkJCQkwRkM0MEE0MTI0NTE0OTg3MDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyAqLywKKwkJCQkwRkM0MEFEMTI0
NTE0OTkxMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCAqLywKIAkJCQkw
RkM0MEFBQzI0NTE0OThFMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5lc3Nf
a2luZC5oICovLAogCQkJCTBGQzQwQTk5MjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggKi8sCiAJCQkJMEZDNDBBNjcyNDUxNDk4QTAwODc2
REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggKi8sCiAJ
CQkJMEZDNDBBREQyNDUxNDk5MjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5l
cy5oICovLAorCQkJCTBGQzQwQURGMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlLmMgKi8sCisJCQkJMEZDNDBBMzgyNDUxNDk4NjAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X3BhZ2UuaCAqLywKKwkJCQkwRkM0MEFERTI0NTE0OTkyMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3X2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEEzQzI0NTE0OTg3MDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMgKi8sCiAJCQkJMEZDNDBBMjEyNDUx
NDk4NTAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oICovLAotCQkJCTBG
QzQwQURFMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfaW5s
aW5lcy5oICovLAorCQkJCTBGQzQwQUY3MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfaGFuZGxlX2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEFGMzI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZS5jICovLAogCQkJCTBGQzQwQTZBMjQ1
MTQ5OEEwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmggKi8sCi0JCQkJ
MEZDNDBBRjcyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVf
aW5saW5lcy5oICovLAogCQkJCTBGQzQwQTUzMjQ1MTQ5ODgwMDg3NkRBMCAvKiBwYXNfc2VncmVn
YXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYyAqLywKIAkJCQkwRkM0MEFCQjI0NTE0OThGMDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmggKi8sCisJCQkJ
MEZDNDBBODgyNDUxNDk4QzAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lu
bGluZXMuaCAqLywKIAkJCQkwRkM0MEE0OTI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3ZpZXcuYyAqLywKIAkJCQkwRkM0MEEzMjI0NTE0OTg2MDA4NzZEQTAgLyogcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaCAqLywKLQkJCQkwRkM0MEE4ODI0NTE0OThDMDA4NzZE
QTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5lcy5oICovLAorCQkJCTBGN0M5
MkREMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVh
dGlvbl9tb2RlLmggKi8sCisJCQkJMEZDNDBBMjIyNDUxNDk4NTAwODc2REEwIC8qIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKIAkJCQkwRkM0MEFBQjI0NTE0OThF
MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYyAqLywKIAkJCQkwRkM0
MEFGNjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCAq
LywKLQkJCQkwRkM0MEEyMjI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfaW5saW5lcy5oICovLAotCQkJCTBGQzQwQTZFMjQ1MTQ5OEEwMDg3NkRBMCAvKiBw
YXNfc2VncmVnYXRlZF92aWV3LmMgKi8sCi0JCQkJMEZDNDBBRUYyNDUxNDk5MzAwODc2REEwIC8q
IHBhc19zZWdyZWdhdGVkX3ZpZXcuaCAqLywKIAkJCQkwRjE4Rjg1NzI1QzM0N0YzMDA3MjFDMkEg
LyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oICovLAotCQkJCTBGOEU3
ODVFMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMuaCAqLywK
IAkJCQkwRkM0MEE4NTI0NTE0OThDMDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5k
LmggKi8sCi0JCQkJMEZDNDBBQzAyNDUxNDk5MDAwODc2REEwIC8qIHBhc19zaGFyZWRfaGFuZGxl
X29yX3BhZ2UuaCAqLywKLQkJCQkwRjVGRTdEQjI1QjYyMTBEMDAxODU5RkMgLyogcGFzX3NoYXJl
ZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oICovLAorCQkJCTBGQzQwQTZFMjQ1MTQ5OEEwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmMgKi8sCisJCQkJMEZDNDBBRUYyNDUxNDk5MzAw
ODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuaCAqLywKIAkJCQkwRjVGRTdDRjI1QjYyMTBD
MDAxODU5RkMgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmgg
Ki8sCisJCQkJMEY1RkU3REIyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19zaGFyZWRfaGFuZGxlX29y
X3BhZ2VfYm91bmRhcnkuaCAqLywKIAkJCQkwRkM0MEFBRDI0NTE0OThFMDA4NzZEQTAgLyogcGFz
X3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9pbmxpbmVzLmggKi8sCisJCQkJMEZDNDBBQzAyNDUxNDk5
MDAwODc2REEwIC8qIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2UuaCAqLywKIAkJCQkwRkNDRDE0
MjI2NTYwMTg2MDAxNzFBMUYgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmMg
Ki8sCiAJCQkJMEZDQ0QxNDMyNjU2MDE4NjAwMTcxQTFGIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJl
Y3RvcnlfYnlfc2l6ZS5oICovLAogCQkJCTBGQzQwQTQ2MjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNf
c2ltcGxlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVmICovLApAQCAtMTg5NCwxMSArMTgzNywx
MSBAQAogCQkJCTBGQzQwQTlCMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2xhcmdlX2Zy
ZWVfaGVhcC5oICovLAogCQkJCTBGQzQwQTI2MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2ltcGxl
X3R5cGUuaCAqLywKIAkJCQkwRjk5Rjk4NjI1Q0IyQ0QxMDBFRUU0NDkgLyogcGFzX3NpemVfdGh1
bmsuaCAqLywKKwkJCQkwRkM0MEEyQTI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3NraXBfbGlzdF9p
bmxpbmVzLmggKi8sCiAJCQkJMEZDNDBBQUUyNDUxNDk4RjAwODc2REEwIC8qIHBhc19za2lwX2xp
c3QuYyAqLywKIAkJCQkwRkM0MEFDNDI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3NraXBfbGlzdC5o
ICovLAotCQkJCTBGQzQwQTJBMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfc2tpcF9saXN0X2lubGlu
ZXMuaCAqLywKLQkJCQkwRkM0MEE5MjI0NTE0OThEMDA4NzZEQTAgLyogcGFzX3Nsb3dfcGF0aF9t
b2RlLmggKi8sCiAJCQkJMEZDNDBBNjEyNDUxNDk4OTAwODc2REEwIC8qIHBhc19zbG93X3BhdGhf
bW9kZV9wcmVmaXguaCAqLywKKwkJCQkwRkM0MEE5MjI0NTE0OThEMDA4NzZEQTAgLyogcGFzX3Ns
b3dfcGF0aF9tb2RlLmggKi8sCiAJCQkJMEZDNDBBRDUyNDUxNDk5MTAwODc2REEwIC8qIHBhc19z
bWFsbF9sYXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkwRkM0MEFFQjI0NTE0OTkzMDA4NzZEQTAg
LyogcGFzX3NucHJpbnRmLmggKi8sCiAJCQkJMEZDNDBBMUUyNDUxNDk4NDAwODc2REEwIC8qIHBh
c19zdGF0dXNfcmVwb3J0ZXIuYyAqLywKQEAgLTE5MDcsNDggKzE4NTAsNDUgQEAKIAkJCQkwRkM0
MEFCOTI0NTE0OThGMDA4NzZEQTAgLyogcGFzX3N0cmVhbS5oICovLAogCQkJCTBGQzQwQTk1MjQ1
MTQ5OEQwMDg3NkRBMCAvKiBwYXNfc3RyaW5nX3N0cmVhbS5jICovLAogCQkJCTBGQzQwQTNGMjQ1
MTQ5ODcwMDg3NkRBMCAvKiBwYXNfc3RyaW5nX3N0cmVhbS5oICovLAotCQkJCTBGODcwMDg1MjVB
Rjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXAuYyAqLywKLQkJCQkwRjg3MDA4NDI1QUY5
NDYxMDAwRTFBQkYgLyogcGFzX3N1YnBhZ2VfbWFwLmggKi8sCi0JCQkJMEY4NzAwODMyNUFGOTQ2
MTAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5jICovLAotCQkJCTBGODcwMDg2MjVB
Rjk0NjEwMDBFMUFCRiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCAqLywKLQkJCQkwRkM0MEE3
QzI0NTE0OThCMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jICovLAotCQkJCTBG
QzQwQUM3MjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmggKi8sCi0J
CQkJMEZDNDBBNjIyNDUxNDk4OTAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0LmMgKi8sCi0JCQkJMEZDNDBBODIyNDUxNDk4QjAwODc2REEwIC8qIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0LmggKi8sCisJCQkJMEY3QzkyRDgyNkU1N0Y3NTAwNkFGMDEyIC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oICovLAogCQkJCTBGOEU4MzI3
MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMg
Ki8sCiAJCQkJMEY4RTgzMjgyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUuaCAqLywKKwkJCQkwRkM0MEE2MjI0NTE0OTg5MDA4NzZEQTAgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYyAqLywKKwkJCQkwRkM0MEE4MjI0NTE0OThCMDA4
NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCAqLywKIAkJCQkwRkM0MEFB
MjI0NTE0OThFMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmMgKi8sCiAJ
CQkJMEZDNDBBQTcyNDUxNDk4RTAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9k
ZS5oICovLAorCQkJCTBGQzQwQTdDMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlLmMgKi8sCisJCQkJMEZDNDBBQzcyNDUxNDk5MDAwODc2REEwIC8qIHBhc190aHJlYWRf
bG9jYWxfY2FjaGUuaCAqLywKIAkJCQkwRkM0MEE3ODI0NTE0OThCMDA4NzZEQTAgLyogcGFzX3Rp
bnlfbGFyZ2VfbWFwX2VudHJ5LmggKi8sCiAJCQkJMEZDNDBBQzUyNDUxNDk5MDAwODc2REEwIC8q
IHBhc190cmVlX2RpcmVjdGlvbi5oICovLAogCQkJCTBGOEE4MDFDMjVDRjkzOEEwMDc5MEI0QSAv
KiBwYXNfdHJpX3N0YXRlLmggKi8sCi0JCQkJMEZDNDBBNjUyNDUxNDk4OTAwODc2REEwIC8qIHBh
c190cnlfYWxsb2NhdGUuaCAqLywKIAkJCQkwRkM0MEE1MjI0NTE0OTg4MDA4NzZEQTAgLyogcGFz
X3RyeV9hbGxvY2F0ZV9hcnJheS5oICovLAogCQkJCTBGQzQwQTM5MjQ1MTQ5ODYwMDg3NkRBMCAv
KiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oICovLAogCQkJCTBGQzQwQTg3MjQ1MTQ5OEMwMDg3
NkRBMCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaCAqLywKIAkJCQkw
RkM0MEEyQjI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaCAq
LywKKwkJCQkwRkM0MEE2NTI0NTE0OTg5MDA4NzZEQTAgLyogcGFzX3RyeV9hbGxvY2F0ZS5oICov
LAogCQkJCTBGQzQwQTMwMjQ1MTQ5ODYwMDg3NkRBMCAvKiBwYXNfdHJ5X3JlYWxsb2NhdGUuaCAq
LywKIAkJCQkwRjUxOTNGNDI2NkM0MkJGMDA0ODNBMkMgLyogcGFzX3RyeV9zaHJpbmsuaCAqLywK
IAkJCQkwRkM0MEE3OTI0NTE0OThCMDA4NzZEQTAgLyogcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVz
dWx0LmggKi8sCi0JCQkJMEZDNDBBMzEyNDUxNDk4NjAwODc2REEwIC8qIHBhc191dGlsaXR5X2hl
YXAuYyAqLywKLQkJCQkwRkM0MEFEMDI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX3V0aWxpdHlfaGVh
cC5oICovLAogCQkJCTBGQzQwQTJDMjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfdXRpbGl0eV9oZWFw
X2NvbmZpZy5jICovLAogCQkJCTBGQzQwQTlEMjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNfdXRpbGl0
eV9oZWFwX2NvbmZpZy5oICovLAogCQkJCTBGQzQwQTFDMjQ1MTQ5ODQwMDg3NkRBMCAvKiBwYXNf
dXRpbGl0eV9oZWFwX3N1cHBvcnQuaCAqLywKKwkJCQkwRkM0MEEzMTI0NTE0OTg2MDA4NzZEQTAg
LyogcGFzX3V0aWxpdHlfaGVhcC5jICovLAorCQkJCTBGQzQwQUQwMjQ1MTQ5OTEwMDg3NkRBMCAv
KiBwYXNfdXRpbGl0eV9oZWFwLmggKi8sCisJCQkJMEZDNDBBNUMyNDUxNDk4OTAwODc2REEwIC8q
IHBhc191dGlsc19wcmVmaXguaCAqLywKIAkJCQkwRkM0MEFFNzI0NTE0OTkzMDA4NzZEQTAgLyog
cGFzX3V0aWxzLmMgKi8sCiAJCQkJMEZDNDBBRDMyNDUxNDk5MTAwODc2REEwIC8qIHBhc191dGls
cy5oICovLAotCQkJCTBGQzQwQTVDMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfdXRpbHNfcHJlZml4
LmggKi8sCiAJCQkJMEY4NzAwODcyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc192ZXJzaW9uZWRfZmll
bGQuYyAqLywKIAkJCQkwRkM0MEEyRDI0NTE0OTg2MDA4NzZEQTAgLyogcGFzX3ZlcnNpb25lZF9m
aWVsZC5oICovLAorCQkJCTBGQzQwQUUwMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNfdmlydHVhbF9y
YW5nZV9taW5faGVhcC5oICovLAogCQkJCTBGQzQwQUJFMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNf
dmlydHVhbF9yYW5nZS5jICovLAogCQkJCTBGQzQwQUVEMjQ1MTQ5OTMwMDg3NkRBMCAvKiBwYXNf
dmlydHVhbF9yYW5nZS5oICovLAotCQkJCTBGQzQwQUUwMjQ1MTQ5OTIwMDg3NkRBMCAvKiBwYXNf
dmlydHVhbF9yYW5nZV9taW5faGVhcC5oICovLAogCQkJCTBGQzQwQUVBMjQ1MTQ5OTMwMDg3NkRB
MCAvKiBwYXNfemVyb19tb2RlLmggKi8sCi0JCQkJMEY4NzAwQ0UyNUIwQ0IwMzAwMEUxQUJGIC8q
IHRoaW5neV9oZWFwLmMgKi8sCi0JCQkJMEY4NzAwQ0EyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5n
eV9oZWFwLmggKi8sCiAJCQkJMEY4NzAwQ0QyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFw
X2NvbmZpZy5jICovLAogCQkJCTBGODcwMENDMjVCMENCMDIwMDBFMUFCRiAvKiB0aGluZ3lfaGVh
cF9jb25maWcuaCAqLywKIAkJCQkwRjg3MDBDQjI1QjBDQjAyMDAwRTFBQkYgLyogdGhpbmd5X2hl
YXBfcHJlZml4LmggKi8sCisJCQkJMEY4NzAwQ0UyNUIwQ0IwMzAwMEUxQUJGIC8qIHRoaW5neV9o
ZWFwLmMgKi8sCisJCQkJMEY4NzAwQ0EyNUIwQ0IwMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmgg
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IGxpYnBhczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0yMTM2LDYgKzIwNzYsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsK
IAkJCWZpbGVzID0gKAogCQkJCTE0REQ3OEM1MThGNDhENzUwMDk1MDcwMiAvKiBBbGdvcml0aG0u
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0M5MkVEMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRjdFQjgzNDFGOTU0MUIwMDBGMUFCQ0IgLyogQWxsSXNvSGVhcHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGN0VCODRGMUY5NTRENEUwMEYxQUJDQiAvKiBBbGxJc29IZWFwc0lubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTE0REQ3ODk4MThGNDhENEEwMDk1MDcwMiAvKiBBbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovLApAQCAtMjIxOSw2ICsyMTYwLDcgQEAKIAkJCQkwRjdFQjgyNzFGOTU0
MUIwMDBGMUFCQ0IgLyogSXNvVExTRGVhbGxvY2F0b3JFbnRyeUlubGluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGN0VCODJEMUY5NTQxQjAwMEYxQUJDQiAvKiBJc29UTFNFbnRyeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY3RUI4MzUxRjk1NDFCMDAwRjFBQkNCIC8qIElzb1RMU0VudHJ5SW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRjAyNkU1N0Y3NTAwNkFGMDEyIC8qIHBh
c19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3RUI4NDYxRjk1
NDFCMDAwRjFBQkNCIC8qIElzb1RMU0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VC
ODQwMUY5NTQxQjAwMEYxQUJDQiAvKiBJc29UTFNMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNTE5M0VGMjY2QzQyQUQwMDQ4M0EyQyAvKiBqaXRfaGVhcC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMjQzLDEwICsyMTg1LDggQEAKIAkJCQkwRkM0MDk1QTI0NTE0OTQ0MDA4NzZEQTAgLyogcGFz
X2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOTVC
MjQ1MTQ5NDQwMDg3NkRBMCAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwOTYwMjQ1MTQ5NDQwMDg3NkRBMCAvKiBwYXNfYWxpZ25tZW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjg3RkZGNjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2FsbF9iaWFzaW5n
X2RpcmVjdG9yaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjFCRkQ0ODI2NjQ1QUM3MDBDRUMy
OEQgLyogcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOURF
MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsX2hlYXBzLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RjFBRUNFQzI2NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGQzQwOUM4MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdl
X2RpcmVjdG9yaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlERjI0NTE0OTY0MDA4NzZE
QTAgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0
MDlENzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2FsbG9jYXRpb25fY29uZmlnLmggaW4gSGVhZGVy
cyAqLywKQEAgLTIyNTYsNiArMjE5Niw3IEBACiAJCQkJMEY3NTQ5ODIyNDg2OTc0MDAwMkE0QzdE
IC8qIHBhc19hbGxvY2F0b3JfaW5kZXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUUzMjQ1
MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDA5RjgyNDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxv
Y2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0M5MkUzMjZFNTdGNzUwMDZBRjAxMiAvKiBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDA5RDgyNDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3Jf
cmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlEMTI0NTE0OTY0MDA4NzZEQTAgLyog
cGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAw
MDQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2Rh
dGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjI2MywyMCArMjIwNCwxMyBAQAogCQkJCTBGQzQwOUZD
MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYmFzaWNfaGVhcF9wYWdlX2NhY2hlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDA5RDQyNDUxNDk2NDAwODc2REEwIC8qIHBhc19iYXNpY19oZWFwX3J1
bnRpbWVfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlFQzI0NTE0OTY0MDA4NzZE
QTAgLyogcGFzX2Jhc2ljX3NlZ3JlZ2F0ZWRfcGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGODdGRkU5MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGODdGRkU4MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYmlhc2lu
Z19kaXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwMDIyNUFGODk3
QzAwMEUxQUJGIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MEEwQjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2JpdGZpZWxkX3ZlY3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwMEMyNUFGODk3RDAwMEUxQUJGIC8qIHBhc19iaXRmaXRf
YWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODdGRkU1MjVBRjg5N0Mw
MDBFMUFCRiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4
N0ZGRjEyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGODdGRkYwMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3RkZGODI1QUY4OTdD
MDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
ODdGRkREMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXgu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGODdGRkVGMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0
Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3RkZGNDI1QUY4
OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY4N0ZGRjIyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4N0ZGRDkyNUFGODk3QzAwMEUxQUJGIC8qIHBh
c19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODdGRkZE
MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGODdGRkZBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X21heF9mcmVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjg3RkZGQjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9wYWdl
LmggaW4gSGVhZGVycyAqLywKQEAgLTIzMTEsNyArMjI0NSw2IEBACiAJCQkJMEY4RTc4NjEyNDc4
NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTE4MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29t
cGFjdF9hdG9taWNfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhFNzg2MzI0Nzg3Mzk1MDBF
MTI0QTYgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRy
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg2NDI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDA5REMyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX3Bvb2xzX3B0ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDNDBBMDEyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTEy
MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF92aWV3Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTIzMjksMjQgKzIyNjIsMjUgQEAKIAkJCQkwRjVGRTdFRDI1QjYy
MTBEMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzQwOUREMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFj
dF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEU3ODZEMjQ3ODczOTUwMEUxMjRBNiAvKiBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY4RTc4NkIyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBB
MTAyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfaGVhcF9wdHIuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzQwOUY3MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwOUM2MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3No
YXJlZF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RTUyNDUxNDk2NDAwODc2
REEwIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY3QzkyRTIyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5n
ZV9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUQzMjQ1MTQ5NjQwMDg3NkRBMCAv
KiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwOUVGMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJf
cHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjVGRTdFMzI1QjYyMTBEMDAxODU5RkMgLyogcGFz
X2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0
MEExNzI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHIuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNUZFN0VFMjVCNjIxMEQwMDE4NTlGQyAvKiBwYXNfY29tcGFj
dF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwOUM3MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdnZWRfcHRyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MDlGNTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbXBhY3Rf
dGFnZ2VkX3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RjAyNDUxNDk2
NDAwODc2REEwIC8qIHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDBBMDkyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0
X2NhbGxiYWNrcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRUYyNkU1N0Y3NTAwNkFGMDEy
IC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9oYXNodGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwQTBFMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkM0MDlGRTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbmZpZ19wcmVmaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQzQwQTAzMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY291bnRfbG9va3Vw
X21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUM1MjQ1MTQ5NjQwMDg3NkRBMCAvKiBw
YXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGN0M5MkVDMjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxf
dmlld19jYWNoZV9ub2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlGMTI0NTE0OTY0MDA4
NzZEQTAgLyogcGFzX2RlYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUZFN0VGMjVC
NjIxMEQwMDE4NTlGQyAvKiBwYXNfZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwOUY5MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0b3IuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjQxOCw3ICsyMzUyLDYgQEAKIAkJCQkwRkM0MEI3QTI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX2ltbW9ydGFsX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjZGMjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaW1tdXRhYmxlX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEY1MTZFRTUyNDU2MTg0RjAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGQzQwQjkyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIyRjI0NTE0OTk0
MDA4NzZEQTAgLyogcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwQjc3MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfZnJlZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDBCMzIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sYXJnZV9mcmVlX2hl
YXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKQEAgLTI0NDAsMTMgKzIzNzMsMTIgQEAKIAkJCQkw
RkM0MEIyODI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDBCMkEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NhbF9hbGxvY2F0
b3JfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjczMjQ1MTQ5OTQwMDg3
NkRBMCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGOEE4MTM3MjVGODNFMjUwMDc5MEI0QSAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzQwQjkzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9jYWxf
YWxsb2NhdG9yX3JlZmlsbF9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIyRTI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQjY3MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfbG9jay5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY3QzkyRTcyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBC
N0YyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCOUMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19s
b2cuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3ODY2MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNf
bWFnYXppbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDY1MjVBRjhBMUIwMDBFMUFCRiAv
KiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIw
NDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MEI1QTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX21pbl9oZWFwLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI0NjYsNiArMjM5OCw3IEBACiAJCQkJMEY4NzAwNkMyNUFGOEExQjAwMEUxQUJG
IC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNzcy
NUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwQkQwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFnZV9tYWxsb2MuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGN0M5MkU0MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA3ODI1QUY4QTFCMDAwRTFB
QkYgLyogcGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIy
QjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDBCN0IyNDUxNDk5NDAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnRfa2luZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgzLDYgKzI0MTYsNyBA
QAogCQkJCTBGQzQwQjFGMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcmFjZV90ZXN0X2hvb2tzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI2MDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3JhbmRv
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMDYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19y
YW5nZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRTgyNkU1N0Y3NTAwNkFGMDEyIC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDNDBCNTIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19yYW5nZTE2LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjg3MDA3MTI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3JhbmdlX2JlZ2luX21pbl9o
ZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJCMzI0NTE0OTk0MDA4NzZEQTAgLyogcGFz
X3JhbmdlX2xvY2tlZF9tb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI0OTUsOCArMjQyOSw2IEBA
CiAJCQkJMEY4NzAwNzYyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19yb290LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MEIzNTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NjYXZlbmdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDBCNEQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdtZW50ZWRf
dmVjdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg2QzI0Nzg3Mzk1MDBFMTI0QTYgLyog
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
OEU3ODZFMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzQwQjRDMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjZCMjQ1MTQ5OTQwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY4NzAwNzUyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MDQsOSAr
MjQzNiw2IEBACiAJCQkJMEZDNDBCQzkyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI0ODI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGMThGODQ1MjVDMzQ2NzcwMDcyMUMyQSAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhFNzg2OTI0Nzg3Mzk1MDBFMTI0
QTYgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOEU3ODcyMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEU3ODcwMjQ3
ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMEUyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19zZWdyZWdhdGVkX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQUZGMjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwQjVCMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1
cF9raW5kLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTUsMTIgKzI0NDQsMTQgQEAKIAkJCQkwRjVG
RTdFNjI1QjYyMTBEMDAxODU5RkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJBQzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkI1MjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjdDOTJFNTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkQ2MjQ1MTQ5QUUwMDg3
NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kLmRlZiBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQjM4MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI3MjI0NTE0OTk0MDA4NzZEQTAg
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwQjMzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191
dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVGRTdERTI1QjYyMTBEMDAxODU5
RkMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDBCODcyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfZW1w
dGluZXNzX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGN0M5MkVFMjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNzQy
NDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjQ0MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDBCQjgyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNTM1LDcgKzI0NjYsNiBAQAogCQkJCTBGQzQwQjAxMjQ1MTQ5
OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MEJDQTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0
ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxOEY4NTgyNUMzNDdGMzAwNzIxQzJBIC8q
IHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGOEU3ODczMjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjYxMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
c2VncmVnYXRlZF92aWV3X2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjlCMjQ1MTQ5
OTQwMDg3NkRBMCAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjVGRTdGMDI1QjYyMTBEMDAxODU5RkMgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFn
ZV9ib3VuZGFyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTU3LDggKzI0ODcsNiBAQAogCQkJCTBG
QzQwQUZBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEI5NDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3N0cmVhbS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDBCMUUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zdHJpbmdfc3Ry
ZWFtLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3MDA4OTI1QUY5NDYyMDAwRTFBQkYgLyogcGFz
X3N1YnBhZ2VfbWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3MDA4QjI1QUY5NDYyMDAwRTFB
QkYgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJB
MjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDNDBCNUUyNDUxNDk5NDAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhFODMzMDI0OTJFQUYzMDA0NkQ3Rjgg
LyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNTkyLDYgKzI1MjAsNyBAQAogCQkJCTBGNUJGMTUzMUYyMkUxNTcwMDI5RDkxRCAvKiBTY2F2
ZW5nZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0OEVGQUU4MUQ2Qjk1M0IwMDhFNzIxRSAvKiBT
Y29wZUV4aXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0REQ3ODkwMThGNDhDRUIwMDk1MDcwMiAv
KiBTaXplcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3QzkyRUIyNkU1N0Y3NTAwNkFGMDEyIC8q
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxNERENzhCQzE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxMaW5lLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxNERENzhCRDE4RjQ4RDZCMDA5NTA3MDIgLyogU21hbGxQYWdlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMzFFNzQ4MDIyMzhDQTVDMDA1RDA4NEEgLyogU3RhdGljUGVyUHJvY2Vz
cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzM1LDIyICsyNjY0LDE2IEBACiAJCQkJMEYxOEY4NDcy
NUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTBGMThGODQ5MjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZDNDA5NUQyNDUxNDk0NDAwODc2REEwIC8qIHBhc19hbGlnbm1l
bnQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGODcwMDA1MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNf
YWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwOTY0MjQ1
MTQ5NDQwMDg3NkRBMCAvKiBwYXNfYWxsX2hlYXBzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjFB
RUNFRDI2NTgxQjVFMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGQzQwQTE1MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfYWxsX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yaWVzLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MDlGNDI0NTE0OTY0MDA4NzZEQTAg
LyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3RkZF
RTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMgaW4gU291cmNlcyAq
LywKIAkJCQkwRkM0MDlEQTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
ci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDA5RUQyNDUxNDk2NDAwODc2REEwIC8qIHBhc19i
YXNlbGluZV9hbGxvY2F0b3JfdGFibGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGNTE5M0YzMjY2
QzQyQUQwMDQ4M0EyQyAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51bWVyYXRvcl9kYXRhLmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRjg3RkZFNjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpYXNp
bmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3MDAwMzI1QUY4OTdDMDAwRTFB
QkYgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGODdGRkRF
MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRjg3MDAwMTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9kaXJl
Y3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGODdGRkY1MjVBRjg5N0MwMDBFMUFCRiAvKiBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGODdGRkUw
MjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRjg3RkZGMzI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2JpdGZpdF9oZWFw
LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjdDOTJGMTI2RTU3Rjc1MDA2QUYwMTIgLyogcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfbm9kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwMDcyNUFGODk3
QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4N0ZG
RTQyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY4N0ZGRTMyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19iaXRmaXRfc2l6
ZV9jbGFzcy5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNzc2LDYgKzI2OTksOCBAQAogCQkJCTBGODcw
MDQyMjVBRjg5QzkwMDBFMUFCRiAvKiBwYXNfZW51bWVyYWJsZV9yYW5nZV9saXN0LmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRjg3MDAwNjI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2VudW1lcmF0ZV9i
aXRmaXRfaGVhcHMuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODdGRkY5MjVBRjg5N0MwMDBFMUFC
RiAvKiBwYXNfZW51bWVyYXRlX2luaXRpYWxseV91bmFjY291bnRlZF9wYWdlcy5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEY3QzkyRTkyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc19oZWFwX3J1bnRpbWVf
Y29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjdDOTJFQTI2RTU3Rjc1MDA2QUYwMTIgLyog
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY4N0ZGRTcyNUFGODk3QzAwMEUxQUJGIC8qIHBhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMuYyBp
biBTb3VyY2VzICovLAogCQkJCTBGODcwMDMwMjVBRjg5QzkwMDBFMUFCRiAvKiBwYXNfZW51bWVy
YXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMDM2MjVBRjg5
QzkwMDBFMUFCRiAvKiBwYXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuYyBp
biBTb3VyY2VzICovLApAQCAtMjc4Myw2ICsyNzA4LDcgQEAKIAkJCQkwRjg3MDAzOTI1QUY4OUM5
MDAwRTFBQkYgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RkM0MEEwNTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Vwb2NoLmMgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkM0MEEwNjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRl
X21lbW9fdGFibGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGN0M5MkU2MjZFNTdGNzUwMDZBRjAx
MiAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDA5Q0Iy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19leHRlbmRlZF9nY2QuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTBGQzQwQjc5MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfZmFzdF9sYXJnZV9mcmVlX2hlYXAuYyBp
biBTb3VyY2VzICovLAogCQkJCTBGODcwMDMxMjVBRjg5QzkwMDBFMUFCRiAvKiBwYXNfZmFzdF9t
ZWdhcGFnZV9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCkBAIC0yODEwLDcgKzI3MzYsNiBAQAogCQkJ
CTBGQzQwQkRBMjQ1MjQzQTQwMDg3NkRBMCAvKiBwYXNfbG9jay5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDNDBCMzQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRy
X2hhc2h0YWJsZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCQjIyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19sb2cuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOEU3ODYwMjQ3ODczOTUwMEUxMjRB
NiAvKiBwYXNfbWFnYXppbmUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGODcwMDY4MjVBRjhBMUIw
MDBFMUFCRiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkM0MEI1RDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRkM0MEI2QTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX21vbm90b25pY190
aW1lLmMgaW4gU291cmNlcyAqLywKQEAgLTI4MzAsMTEgKzI3NTUsOCBAQAogCQkJCTBGQzQwQjY2
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRjg3MDA3MDI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3Jvb3QuYyBpbiBT
b3VyY2VzICovLAogCQkJCTBGQzQwQjRBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2NhdmVuZ2Vy
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjhFNzg3MTI0Nzg3Mzk1MDBFMTI0QTYgLyogcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOEU3ODY3
MjQ3ODczOTUwMEUxMjRBNiAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGQzQwQjAzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQkMxMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4
RTc4NkEyNDc4NzM5NTAwRTEyNEE2IC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCQjcyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19zZWdyZWdhdGVkX2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQkJBMjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0
MEIyMDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyBpbiBT
b3VyY2VzICovLApAQCAtMjg1Miw4ICsyNzc0LDYgQEAKIAkJCQkwRkM0MEFGRDI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3N0YXR1c19yZXBvcnRlci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBC
NDUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zdHJlYW0uYyBpbiBTb3VyY2VzICovLAogCQkJCTBG
QzQwQjcwMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc3RyaW5nX3N0cmVhbS5jIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEY4NzAwOEEyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19zdWJwYWdlX21hcC5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEY4NzAwODgyNUFGOTQ2MjAwMEUxQUJGIC8qIHBhc19zdWJwYWdl
X21hcF9lbnRyeS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNTgyNDUxNDk5NDAwODc2REEw
IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjQw
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY4RTgzMkYyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUuYyBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL2JtYWxs
b2MvYm1hbGxvYy9CUGxhdGZvcm0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0JQbGF0Zm9ybS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0JQbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjAsOCArMzIwLDEyIEBACiAKIC8q
IEJVU0UoTElCUEFTKSBpcyB1c2luZyBsaWJwYXMgZm9yIGJtYWxsb2MgcmVwbGFjZW1lbnQuICov
CiAjaWYgIWRlZmluZWQoQlVTRV9MSUJQQVMpCisjaWYgZGVmaW5lZChCRU5BQkxFX0xJQlBBUykg
JiYgQkVOQUJMRV9MSUJQQVMKKyNkZWZpbmUgQlVTRV9MSUJQQVMgMQorI2Vsc2UKICNkZWZpbmUg
QlVTRV9MSUJQQVMgMAogI2VuZGlmCisjZW5kaWYKIAogI2lmICFkZWZpbmVkKEJVU0VfUFJFQ09N
UFVURURfQ09OU1RBTlRTX1ZNUEFHRTRLKQogI2RlZmluZSBCVVNFX1BSRUNPTVBVVEVEX0NPTlNU
QU5UU19WTVBBR0U0SyAxCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvZXhwb3J0LnNoCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9leHBvcnQuc2gJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2V4cG9ydC5zaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDM5IEBACisjIS9iaW4vc2gKKyMgQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIworIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyMgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisKK3NldCAtZQorc2V0IC14CisKK3JtIC1yZiBsaWJwYXMtZXhwb3J0CitnaXQgY2xvbmUgLiBs
aWJwYXMtZXhwb3J0CitybSAtcmYgbGlicGFzLWV4cG9ydC8uZ2l0CisKK3doZXJlPSQxCisKK2lm
IFsgIngkd2hlcmUiICE9ICJ4IiBdCit0aGVuCisgICAgZGl0dG8gbGlicGFzLWV4cG9ydCAkd2hl
cmUKKyAgICBybSAtcmYgbGlicGFzLWV4cG9ydAorZmkKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjog
U291cmNlL2JtYWxsb2MvbGlicGFzL2V4cG9ydC5zaApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhl
Y3V0YWJsZQojIyAtMCwwICsxICMjCisqClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MzksMjcgKzM5LDI1IEBACiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCQkwRjAz
N0FGMzI1QUVBOTFBMDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5jIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwMzdBRjEyNUFFQTkx
OTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYyAqLzsgfTsKIAkJMEYwMzdB
RjQyNUFFQTkxQTAwNzlCNTgyIC8qIHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDM3QUYyMjVBRUE5MUEw
MDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmggKi87IH07Ci0JCTBGMDRDMjE0
MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMDIyNDYw
REI2RDAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmggKi87IH07
Ci0JCTBGMDRDMjE1MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGMDRDMjAzMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkuYyAqLzsgfTsKLQkJMEYwNEMyMTYyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMDQyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oICovOyB9OwotCQkwRjA0QzIxOTI0NjBE
QjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tp
bmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRD
MjA3MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25l
cnNoaXBfa2luZC5oICovOyB9OwotCQkwRjA0QzIxQTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX21h
Z2F6aW5lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjA0QzIwODI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmggKi87IH07Ci0JCTBGMDRD
MjFDMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjBBMjQ2MERC
NkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyAqLzsgfTsKIAkJMEYw
NEMyMUQyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0QzIwQjI0NjBEQjZF
MDAxRDMxRjAgLyogcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaCAqLzsgfTsKLQkJMEYwNEMyMUUy
NDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwNEMyMEMyNDYwREI2RTAw
MUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oICovOyB9OwogCQkwRjA0QzIx
RjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2xvY2suYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjBEMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfbG9j
ay5jICovOyB9OwotCQkwRjA0QzIyMDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMDRDMjBFMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeS5jICovOyB9OwotCQkwRjA0QzIyMTI0NjBEQjZGMDAxRDMxRjAgLyogcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjBGMjQ2MERCNkUwMDFEMzFG
MCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovOyB9
OwotCQkwRjA0QzIyMjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxp
bmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjA0
QzIxMDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggKi87
IH07Ci0JCTBGMDRDMjI0MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuYyBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjEyMjQ2MERCNkYw
MDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuYyAqLzsgfTsKIAkJMEYwNEMyMjUyNDYwREI2RjAwMUQz
MUYwIC8qIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjEzMjQ2MERCNkYw
MDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmggKi87
IH07Ci0JCTBGMDRDMjI4MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMDRDMjI2MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLzsgfTsKLQkJMEYwNEMy
MjkyNDYxMUNGRDAwMUQzMUYwIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMDRDMjI3MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggKi87IH07CiAJCTBGMDgz
RjVBMjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19p
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjA4M0Y1ODIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRp
bHNfaW5saW5lcy5oICovOyB9OwogCQkwRjA4M0Y1QjIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX2hl
YXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMDgzRjU5MjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfaGVhcF9jb25m
aWdfdXRpbHNfaW5saW5lcy5oICovOyB9OwogCQkwRjA5MjI2QTIyQjA3QzIxMDA3RDVEM0EgLyog
cGFzX211dGF0aW9uX2NvdW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjA5MjI2OTIyQjA3QzIxMDA3RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50
LmggKi87IH07CiAJCTBGMDkyMjZDMjJCMkQ4OEUwMDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEYwOTIyNkIyMkIyRDg4RTAwN0Q1RDNBIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX3V0aWxzLmggKi87IH07CiAJCTBGMDkyMjZFMjJCMkQ5MDkwMDdENUQzQSAvKiBwYXNf
aGVhcF9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMDkyMjZEMjJCMkQ5MDkwMDdENUQzQSAvKiBwYXNfaGVhcF9jb25maWdfdXRp
bHMuaCAqLzsgfTsKKwkJMEYxNDg3MTAyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVk
X2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjE0ODcwQTI2OUI3NTE3MDA2ODg3QTkgLyogcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX21vZGUuaCAqLzsgfTsKKwkJMEYxNDg3MTEyNjlCNzUxODAwNjg4N0E5IC8qIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MEIyNjlCNzUxODAw
Njg4N0E5IC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
ci5oICovOyB9OworCQkwRjE0ODcxMjI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdf
Y2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
MTQ4NzBDMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5oICovOyB9Owor
CQkwRjE0ODcxMzI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGMTQ4NzBEMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X3B0ci5oICovOyB9OworCQkwRjE0ODcxNDI2OUI3NTE4MDA2ODg3QTkg
LyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzBFMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfaGVhcF9y
dW50aW1lX2NvbmZpZy5jICovOyB9OworCQkwRjE0ODcxNTI2OUI3NTE4MDA2ODg3QTkgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzBGMjY5Qjc1MTgwMDY4ODdBOSAv
KiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICovOyB9OworCQkw
RjE0ODcxRjI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNDg3MUEyNjlG
NUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCAqLzsgfTsKKwkJMEYx
NDg3MjAyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcxQjI2OUY1RkNBMDA2
ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYyAqLzsgfTsKKwkJMEYxNDg3MjEyNjlGNUZD
QTAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMTQ4NzFD
MjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlv
bl9tb2RlLmggKi87IH07CisJCTBGMTQ4NzIyMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxf
dmlld19jYWNoZV9ub2RlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjE0ODcxRDI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZS5jICovOyB9OworCQkwRjE0ODcyMzI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE0ODcxRTI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggKi87IH07CiAJCTBGMTUxOEZEMjM0NDFF
MzIwMDgzMkI1QyAvKiBwYXNfaGFzX29iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNTE4RkMyMzQ0MUUzMjAwODMyQjVDIC8qIHBhc19oYXNf
b2JqZWN0LmggKi87IH07CiAJCTBGMThFNjNFMjYyOEJGQjcwMEY2OTAzRCAvKiBwYXNfc2hhcmVk
X3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGMThFNjNDMjYyOEJGQjYwMEY2OTAzRCAvKiBwYXNfc2hhcmVkX3Bh
Z2VfZGlyZWN0b3J5X2J5X3NpemUuaCAqLzsgfTsKIAkJMEYxOEU2M0YyNjI4QkZCNzAwRjY5MDNE
IC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEU2M0QyNjI4QkZCNjAwRjY5MDNEIC8q
IHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5jICovOyB9OwpAQCAtNzUsOCArNzMs
NiBAQAogCQkwRjE5MzI2OTIyRjNCM0YzMDBGQkE3MTMgLyogcGFzX2xhcmdlX2hlYXBfcGh5c2lj
YWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjE5MzI2NzIyRjNCM0YzMDBGQkE3MTMgLyogcGFzX2xhcmdlX2hlYXBf
cGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggKi87IH07CiAJCTBGMTkzMjZDMjJGNzNFODUw
MEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjE5MzI2QTIyRjczRTg0MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdl
ci5oICovOyB9OwogCQkwRjE5MzI2RDIyRjczRTg1MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOTMyNkIy
MkY3M0U4NDAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuYyAqLzsgfTsKLQkJMEYxQUVDRTgyNjU4
MTk2MTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjFBRUNFNjI2NTgxOTYwMDAwQzUyMTggLyogcGFz
X2FsbF9tYWdhemluZXMuYyAqLzsgfTsKLQkJMEYxQUVDRTkyNjU4MTk2MTAwMEM1MjE4IC8qIHBh
c19hbGxfbWFnYXppbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjFBRUNFNzI2NTgxOTYxMDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuaCAq
LzsgfTsKIAkJMEYxQkZENDQyNjY0NTdGMTAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxQkZENDMyNjY0
NTdGMTAwQ0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jICovOyB9OwogCQkwRjIxNTBFQjI0ODRC
QjJBMDAwRDYzNEIgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYyMTUwRUEyNDg0QkIyQTAwMEQ2MzRCIC8qIHBh
c19hbGxvY2F0b3JfaW5kZXguaCAqLzsgfTsKIAkJMEYyMTUwRUQyNDg0QkI4NjAwMEQ2MzRCIC8q
IHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjIxNTBFQzI0ODRCQjg2MDAwRDYzNEIg
LyogcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCAqLzsgfTsKQEAgLTEw
Nyw2ICsxMDMsOSBAQAogCQkwRjQ0M0I0ODIzNDE3NjE1MDBCRTUwRDEgLyogbWJtYWxsb2NfaXNv
X2NvbW1vbl9wcmltaXRpdmUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGRjA4RjU1MjJBODZFMkUwMDM4NjU3NSAvKiBtYm1hbGxvY19pc29fY29tbW9u
X3ByaW1pdGl2ZS5jICovOyBzZXR0aW5ncyA9IHtDT01QSUxFUl9GTEFHUyA9ICItRFBBU19WRVJJ
RklFRCI7IH07IH07CiAJCTBGNDQzQjRBMjM0MTc2MTUwMEJFNTBEMSAvKiBsaWJwYXMuZHlsaWIg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkRFQTVE
OTIyOTVGQzhDMDA4NUUzNDAgLyogbGlicGFzLmR5bGliICovOyB9OwogCQkwRjQ0M0I0RjIzNDE3
NzgzMDBCRTUwRDEgLyogbGlicGFzX3ZlcmlmaWVyLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NDNCM0EyMzQxNkE3QzAwQkU1MEQxIC8q
IGxpYnBhc192ZXJpZmllci5keWxpYiAqLzsgfTsKKwkJMEY0NUQ1QTkyNkFCNzMxNDAwQzM1RDkz
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NUQ1QTYyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfa2luZC5oICovOyB9OworCQkwRjQ1RDVBQTI2QUI3MzE0MDBDMzVEOTMgLyog
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0NUQ1QTcyNkFCNzMxNDAwQzM1RDkzIC8qIHBh
c19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYyAqLzsgfTsKKwkJMEY0NUQ1QUIyNkFC
NzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDVENUE4MjZBQjcz
MTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmggKi87IH07
CiAJCTBGNDdDMzFBMjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9raW5kLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjQ3QzMxODIzMzk2
RDFGMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fa2luZC5oICovOyB9OwogCQkwRjQ3QzMxQjIz
Mzk2RDFGMDAyQTFDRjcgLyogcGFzX2hlYXBfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0N0MzMTkyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19o
ZWFwX2tpbmQuaCAqLzsgfTsKIAkJMEY0N0MzMUUyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxv
Y2F0aW9uX2NhbGxiYWNrcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY0N0MzMUMyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2NhbGxi
YWNrcy5jICovOyB9OwpAQCAtMTQ0LDcgKzE0Myw2IEBACiAJCTBGNEY2MUNBMjVBNENEM0IwMDhC
NEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEY2MUM4MjVBNENEM0IwMDhCNEE4
MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCAqLzsgfTsKIAkJMEY0RjYx
Q0IyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5j
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RjYxQzky
NUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jICov
OyB9OwogCQkwRjUwOEQ1MzI1OEVDRkQzMDAxNTFFRDggLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNTA4RDUyMjU4RUNGRDMwMDE1MUVEOCAvKiBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZC5oICovOyB9OwotCQkwRjUwOEQ1QzI1OEVE
Q0E3MDAxNTFFRDggLyogSXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUwOEQ1QjI1OEVEQ0E3MDAxNTFFRDggLyog
SXNvSGVhcFRhYmxpbmdUZXN0cy5jcHAgKi87IH07CiAJCTBGNTE2RUUzMjQ1NjBGRjUwMDRFMkI4
RCAvKiBwYXNfaW50ZXJuYWxfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjUxNkVFMjI0NTYwRkY1MDA0RTJCOEQgLyogcGFzX2ludGVybmFs
X2NvbmZpZy5oICovOyB9OwogCQkwRjUxNkVFNzI0NTYxQTYwMDA0RTJCOEQgLyogaXNvX2hlYXBf
aW5uYXJkcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEY1MTZFRTYyNDU2MUE2MDAwNEUyQjhEIC8qIGlzb19oZWFwX2lubmFyZHMuaCAqLzsgfTsKIAkJ
MEY1MTkzRTcyNjZBRTVENDAwNDgzQTJDIC8qIEpJVEhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUxOTNFNjI2NkFFNUQ0MDA0ODNB
MkMgLyogSklUSGVhcFRlc3RzLmNwcCAqLzsgfTsKQEAgLTI2OSwzNCArMjY3LDI1IEBACiAJCTBG
OTdFNjJFMjJBOUE4NUYwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5N0U2MkQyMkE5
QTg1RjAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggKi87IH07CiAJCTBG
OTdFNjMwMjJBOUFBQzEwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5N0U2MkYyMkE5
QUFDMTAwQzM1NUY4IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgKi87IH07CiAJCTBG
OTlGOThDMjVDQjJDRTgwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5OUY5OEIyNUNCMkNFODAwRUVFNDQ5
IC8qIHBhc19zaXplX3RodW5rLmggKi87IH07Ci0JCTBGOUExQ0UzMjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfc3VicGFnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOUExQzk3MjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc3VicGFnZV9t
YXBfZW50cnkuaCAqLzsgfTsKLQkJMEY5QTFDRTQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY5QTFDOTgyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeS5oICovOyB9OwogCQkwRjlBMUNFNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zh
c3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUM5OTI1NTk5NjExMDBDOEQxMUIgLyogcGFzX2Zh
c3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9raW5kLmggKi87IH07CiAJCTBGOUExQ0U2MjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUM5QTI1NTk5NjExMDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlscy5oICovOyB9OwogCQkwRjlBMUNFNzI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9tYXhfZnJlZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOUIyNTU5OTYxMTAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfbWF4X2ZyZWUuaCAqLzsgfTsKLQkJMEY5QTFDRTgyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOUMyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zdWJwYWdl
X21hcF9lbnRyeS5jICovOyB9OwogCQkwRjlBMUNFOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3No
YXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDOUQyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zaGFy
ZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnkuaCAqLzsgfTsKIAkJMEY5QTFDRUIyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQzlGMjU1OTk2MTEwMEM4
RDExQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LmggKi87IH07CiAJCTBG
OUExQ0VDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9jYWNoZS5jIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTAyNTU5OTYx
MjAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmMgKi87IH07CiAJCTBGOUExQ0VE
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0ExMjU1OTk2MTIwMEM4RDExQiAvKiBw
YXNfYml0Zml0X3ZpZXcuaCAqLzsgfTsKIAkJMEY5QTFDRUUyNTU5OTYxNzAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfdmlldy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5QTFDQTIyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5jICovOyB9
OwotCQkwRjlBMUNFRjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBMzI1
NTk5NjEyMDBDOEQxMUIgLyogcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMgKi87IH07CiAJCTBGOUEx
Q0YwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0E0MjU1OTk2MTIwMEM4RDExQiAv
KiBwYXNfY29tbWl0X3NwYW4uYyAqLzsgfTsKIAkJMEY5QTFDRjEyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19jb21wYWN0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQTUyNTU5OTYxMjAwQzhEMTFCIC8qIHBh
c19jb21wYWN0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovOyB9OwogCQkwRjlBMUNGMjI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBNjI1NTk5NjEyMDBDOEQxMUIgLyog
cGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMgKi87IH07Ci0JCTBGOUExQ0YzMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBNzI1NTk5NjEyMDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oICovOyB9OwogCQkwRjlBMUNGNDI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBODI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2NvbW1pdF9z
cGFuLmggKi87IH07CiAJCTBGOUExQ0Y1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19k
aXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY5QTFDQTkyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9r
aW5kLmggKi87IH07Ci0JCTBGOUExQ0Y2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9hbmRfaW5kZXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGOUExQ0FBMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9y
eV9hbmRfaW5kZXguaCAqLzsgfTsKIAkJMEY5QTFDRjcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19w
YWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0FCMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFn
ZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi87IH07CiAJCTBGOUExQ0Y4MjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0FDMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNf
cGFnZV9iYXNlX2lubGluZXMuaCAqLzsgfTsKIAkJMEY5QTFDRjkyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19wcm9tb3RlX2ludHJpbnNpY19oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNBRDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX3Byb21v
dGVfaW50cmluc2ljX2hlYXAuaCAqLzsgfTsKIAkJMEY5QTFDRkEyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQUUyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfcGFnZV9jb25maWdfa2luZC5oICovOyB9OwotCQkwRjlBMUNGQjI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQUYyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCAqLzsgfTsKLQkJMEY5QTFDRkMyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0IwMjU1OTk2MTMwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMgKi87IH07CiAJCTBGOUExQ0ZEMjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNCMTI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX3Zl
cnNpb25lZF9maWVsZC5jICovOyB9OwogCQkwRjlBMUNGRTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQjIyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19mYXN0
X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLzsgfTsKLQkJMEY5QTFDRkYyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0IzMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9raW5kLmggKi87IH07CiAJCTBGOUExRDAwMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfZnJlZV9ncmFudWxlcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5QTFDQjQyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51
bGVzLmMgKi87IH07CiAJCTBGOUExRDAxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Bh
Z2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5QTFDQjUyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgg
Ki87IH07CiAJCTBGOUExRDAyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9y
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFD
QjYyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmggKi87IH07CkBAIC0z
MDYsMzkgKzI5NSwyOSBAQAogCQkwRjlBMUQwNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2Vf
YmFzZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5
QTFDQkEyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuYyAqLzsgfTsKIAkJMEY5QTFE
MDcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0JCMjU1OTk2
MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0LmggKi87IH07CiAJCTBG
OUExRDA4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQkMyNTU5OTYxNDAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggKi87IH07Ci0JCTBGOUExRDA5MjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0JEMjU1OTk2MTQwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuYyAqLzsgfTsKLQkJMEY5QTFEMEEyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQkUyNTU5OTYxNDAwQzhE
MTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jICovOyB9OwotCQkwRjlBMUQwQjI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0JGMjU1OTk2MTQw
MEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oICovOyB9OwogCQkwRjlB
MUQwQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0MwMjU1OTk2MTQwMEM4
RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oICovOyB9OwogCQkwRjlBMUQwRDI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0MxMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X2RpcmVjdG9yeS5jICovOyB9OwotCQkwRjlBMUQwRTI1NTk5NjE3MDBDOEQxMUIgLyog
cGFzX3N1YnBhZ2VfbWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjlBMUNDMjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmggKi87
IH07Ci0JCTBGOUExRDBGMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21h
cF9lbnRyeV9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGOUExQ0MzMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9l
bnRyeV9wdHIuaCAqLzsgfTsKIAkJMEY5QTFEMTAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjlBMUNDNDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3IuYyAq
LzsgfTsKIAkJMEY5QTFEMTEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5jIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDQzUyNTU5
OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5jICovOyB9OwogCQkwRjlBMUQxMjI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0M2MjU1OTk2MTQwMEM4RDExQiAvKiBw
YXNfcGFnZV9jb25maWdfa2luZC5oICovOyB9OwotCQkwRjlBMUQxMzI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDNzI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5LmMgKi87IH07CiAJCTBGOUExRDE0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjlBMUNDODI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJl
Y3RvcnlfaW5saW5lcy5oICovOyB9OwogCQkwRjlBMUQxNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNDOTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ19raW5kLmMgKi87IH07CiAJCTBGOUExRDE2MjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfZmFzdF9tZWdhcGFnZV9raW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjlBMUNDQTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBh
Z2Vfa2luZC5oICovOyB9OwogCQkwRjlBMUQxNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ192YXJpYW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjlBMUNDQjI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZ192YXJpYW50LmggKi87IH07CiAJCTBGOUExRDE4MjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGOUExQ0NEMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuaCAqLzsg
fTsKIAkJMEY5QTFEMTkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUND
RTI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGUuaCAqLzsgfTsKLQkJ
MEY5QTFEMUIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDAy
NTU5OTYxNTAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oICovOyB9Owog
CQkwRjlBMUQxQzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmMgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNEMTI1NTk5NjE1MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmMgKi87IH07CiAJCTBGOUExRDFEMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNEMjI1NTk5NjE1MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oICovOyB9OwogCQkwRjlBMUQxRTI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNE
MzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2Vf
Y291bnRfcHRyLmggKi87IH07CiAJCTBGOUExRDFGMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFn
ZV9iYXNlX2NvbmZpZ191dGlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY5QTFDRDQyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29u
ZmlnX3V0aWxzLmggKi87IH07CiAJCTBGOUExRDIwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFn
ZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Q1MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFk
ZXJfcGxhY2VtZW50X21vZGUuaCAqLzsgfTsKIAkJMEY5QTFEMjEyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY5QTFDRDYyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6
ZV9jbGFzcy5oICovOyB9OwotCQkwRjlBMUQyMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3N1YnBh
Z2VfbWFwLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjlBMUNENzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwLmMgKi87IH07Ci0JCTBG
OUExRDIzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0Q4MjU1OTk2MTYw
MEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCAqLzsgfTsKIAkJMEY5QTFEMjQyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRDkyNTU5OTYxNjAwQzhEMTFCIC8q
IHBhc19wYWdlX3NoYXJpbmdfbW9kZS5oICovOyB9OwogCQkwRjlBMUQyNTI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0RBMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNf
cGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovOyB9OwogCQkwRjlBMUQyNjI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNEQjI1NTk5NjE2
MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmgg
Ki87IH07CiAJCTBGOUExRDI3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9wYWdlX2dy
YW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY5QTFDREMyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3BhZ2Vf
Z3JhbnVsZV91c2VfY291bnRfcHRyLmggKi87IH07CiAJCTBGOUExRDI4MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNERDI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZy5oICovOyB9OwogCQkwRjlBMUQyOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFz
X3BhZ2Vfa2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY5QTFDREUyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2tpbmQuaCAqLzsgfTsKLQkJ
MEY5QTFEMkEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Mu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0RG
MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgKi87IH07
CiAJCTBGOUExRDJCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGOUExQ0UwMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyAqLzsgfTsKIAkJMEY5QTFE
MkMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjlBMUNFMTI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2ZyZWVfZ3JhbnVsZXMuaCAqLzsgfTsKIAkJMEY5QTFEMkQyNTU5OTYxNzAwQzhEMTFC
IC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY5QTFDRTIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hl
YWRlcl90YWJsZS5oICovOyB9OwpAQCAtNDAwLDYgKzM3OSw3IEBACiAJCTBGQzY4MjMxMjEyOUNC
NDYwMDNDNkExMyAvKiBFeHRlbmRlZEdDRFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQzY4MjJGMjEyOUNCNDMwMDNDNkExMyAvKiBFeHRl
bmRlZEdDRFRlc3RzLmNwcCAqLzsgfTsKIAkJMEZDNjgyMzgyMTI5RDRFRTAwM0M2QTEzIC8qIENv
YWxpZ25UZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkM2ODIzNjIxMjlENEVCMDAzQzZBMTMgLyogQ29hbGlnblRlc3RzLmNwcCAqLzsgfTsK
IAkJMEZDODQ3OTUyMzJENjk0OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBv
Y2hfdXBkYXRlX21vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGQzg0Nzk0MjMyRDY5NDkwMEIzODZCNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29s
X2Vwb2NoX3VwZGF0ZV9tb2RlLmggKi87IH07CisJCTBGQ0JEMDM0MjZBREY5MjUwMEQyNkQ2OCAv
KiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkNCRDAzMzI2QURGOTI1MDBEMjZENjgg
LyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oICovOyB9OwogCQkwRkND
RDE0MTI2NTVFNkU3MDAxNzFBMUYgLyogcGFzX2NvbXBhY3RfYXRvbWljX2VudW1lcmFibGVfcmFu
Z2VfbGlzdF9jaHVua19wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGQ0NEMTQwMjY1NUU2RTcwMDE3MUExRiAvKiBwYXNfY29tcGFjdF9hdG9taWNf
ZW51bWVyYWJsZV9yYW5nZV9saXN0X2NodW5rX3B0ci5oICovOyB9OwogCQkwRkNGQTQ5QTIzODM1
MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDRkE0OTgyMzgzNTJFQjAwQ0NENzI2IC8q
IHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCAqLzsgfTsKIAkJMEZDRkE0OUIyMzgzNTJFQzAwQ0NE
NzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGQ0ZBNDk5MjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFy
Z2Vfc2hhcmluZ19wb29sLmMgKi87IH07CkBAIC01MTMsNyArNDkzLDYgQEAKIAkJMEZFN0VFMTQy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZl9wcmVmaXguaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNDdENDBBMjE0MERCMDUwMDhDNDFGMCAv
KiBwYXNfaGVhcF9yZWZfcHJlZml4LmggKi87IH07CiAJCTBGRTdFRTE1MjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfaGVhcF9yZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGQzY4MUM3MjEwRjdDOUYwMDNDNkExMyAvKiBwYXNfaGVhcF9yZWYuaCAqLzsg
fTsKIAkJMEZFN0VFMTYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkM2ODFDMDIxMEY3QzlFMDAzQzZB
MTMgLyogcGFzX2hlYXAuaCAqLzsgfTsKLQkJMEZFN0VFMUEyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGREVBNDI3MjI4QjY0MzMwMDg1RTM0MCAvKiBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0LmggKi87IH07CiAJCTBGRTdFRTFDMjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNjgyNDYyMTJBMEYxRjAwM0M2QTEzIC8qIHBh
c19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmggKi87IH07CiAJCTBGRTdFRTFFMjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfbGFyZ2VfZnJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEZDNjgxQTgyMTAzQ0FDOTAwM0M2QTEzIC8qIHBhc19sYXJnZV9mcmVl
LmggKi87IH07CiAJCTBGRTdFRTFGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfaGVhcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDNjgxQTcy
MTAzQjBFNjAwM0M2QTEzIC8qIHBhc19sYXJnZV9oZWFwLmggKi87IH07CkBAIC03MjksMjcgKzcw
OCwyNSBAQAogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAJCTBGMDM3QUYx
MjVBRUE5MTkwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwMzdBRjIyNUFFQTkxQTAwNzlCNTgyIC8qIHBh
c19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRjA0QzIwMjI0NjBEQjZEMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYw
NEMyMDMyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYw
NEMyMDQyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYw
NEMyMDcyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293
bmVyc2hpcF9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTBGMDRDMjA4MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX21hZ2F6aW5lLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjBBMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0g
cGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGMDRDMjBCMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfaGVhcF9jb25maWdfaW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfaGVhcF9jb25maWdfaW5saW5l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIwQzI0NjBEQjZFMDAxRDMx
RjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjA0QzIwRDI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX2xvY2suYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2xvY2suYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMEYwNEMyMEUyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTBGMDRDMjBGMjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjA0QzIxMDI0NjBEQjZGMDAxRDMxRjAgLyogcGFz
X3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkwRjA0QzIxMjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19tYWdhemluZS5jOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkwRjA0QzIxMzI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2NvbXBhY3Rf
YXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjI2MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMDRDMjI3
MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwODNGNTgyMkMyOTc5QjAwRjNDREIzIC8q
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNfaW5s
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjA4M0Y1OTIyQzI5NzlCMDBG
M0NEQjMgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTIyNjkyMkIwN0MyMTAwN0Q1RDNBIC8qIHBhc19t
dXRhdGlvbl9jb3VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbXV0
YXRpb25fY291bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYwOTIyNkIyMkIy
RDg4RTAwN0Q1RDNBIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0
aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMDkyMjZEMjJCMkQ5MDkwMDdE
NUQzQSAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2hlYXBfY29uZmlnX3V0aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGMTQ4NzBBMjY5Qjc1MTcwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fbW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVn
YXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RjE0ODcwQjI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcwQzI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2xv
Y2FsX3ZpZXdfY2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xv
Y2FsX3ZpZXdfY2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MEQy
NjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
cHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTBGMTQ4NzBFMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5jICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcwRjI2OUI3NTE4MDA2ODg3QTkg
LyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MUEyNjlGNUZD
QTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRjE0ODcxQjI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2Fs
X3ZpZXdfY2FjaGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2xvY2Fs
X3ZpZXdfY2FjaGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEYxNDg3MUMyNjlG
NUZDQTAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21v
ZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkwRjE0ODcxRDI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5j
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbG9jYWxfdmlld19jYWNoZV9u
b2RlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMTQ4NzFFMjY5RjVGQ0EwMDY4
ODdBOSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMTUxOEZDMjM0NDFF
MzIwMDgzMkI1QyAvKiBwYXNfaGFzX29iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfaGFzX29iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RjE4RTYzQzI2MjhCRkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9z
aXplLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaGFyZWRfcGFnZV9k
aXJlY3RvcnlfYnlfc2l6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE4RTYz
RDI2MjhCRkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmMg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zaGFyZWRfcGFnZV9kaXJlY3Rv
cnlfYnlfc2l6ZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzY1LDggKzc0Miw2
IEBACiAJCTBGMTkzMjY3MjJGM0IzRjMwMEZCQTcxMyAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNh
bF9wYWdlX3NoYXJpbmdfY2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTBGMTkzMjZBMjJGNzNFODQwMEZCQTcxMyAvKiBwYXNfc2NhdmVu
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zY2F2ZW5nZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOTMyNkIyMkY3M0U4NDAwRkJBNzEzIC8q
IHBhc19zY2F2ZW5nZXIuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3Nj
YXZlbmdlci5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjFBRUNFNjI2NTgxOTYw
MDAwQzUyMTggLyogcGFzX2FsbF9tYWdhemluZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBwYXRoID0gcGFzX2FsbF9tYWdhemluZXMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMEYxQUVDRTcyNjU4MTk2MTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19hbGxfbWFnYXppbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMUJGRDQzMjY2NDU3RjEwMENFQzI4RCAvKiBwYXNfaGVh
cF9jb25maWcuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2hlYXBfY29u
ZmlnLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMjE1MEVBMjQ4NEJCMkEwMDBE
NjM0QiAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19hbGxvY2F0b3JfaW5kZXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEYyMTUwRUMyNDg0QkI4NjAwMEQ2MzRCIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0
b3JfaW5kZXhfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jb21w
YWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC03OTUsNiArNzcwLDkgQEAKIAkJMEY0NDNCM0EyMzQxNkE3QzAwQkU1MEQxIC8qIGxp
YnBhc192ZXJpZmllci5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsg
cGF0aCA9IGxpYnBhc192ZXJpZmllci5keWxpYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJMEY0NDNCM0YyMzQxNkI2MzAwQkU1MEQxIC8qIFZlcmlmaWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFZlcmlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDQz
QjRFMjM0MTc2MTUwMEJFNTBEMSAvKiBsaWJtYm1hbGxvY19pc29fY29tbW9uX3ByaW1pdGl2ZV92
ZXJpZmllZC5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9
IGxpYm1ibWFsbG9jX2lzb19jb21tb25fcHJpbWl0aXZlX3ZlcmlmaWVkLmR5bGliOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkwRjQ1RDVBNjI2QUI3MzE0MDBDMzVEOTMg
LyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkwRjQ1RDVBNzI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9z
Y2F2ZW5nZXJfZGF0YS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbG9j
YWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTBGNDVENUE4MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY0N0MzMTgyMzM5NkQxRjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2tpbmQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2FsbG9jYXRpb25fa2luZC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjQ3QzMxOTIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2hl
YXBfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfaGVhcF9raW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNDdDMzFDMjMzOTZFMEIwMDJBMUNG
NyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBwYXRoID0gcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04MzQsNyArODEyLDYgQEAKIAkJMEY0RjYxQzgyNUE0Q0QzQjAwOEI0QTgyIC8q
IHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0RjYxQzkyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19w
YXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7
IHBhdGggPSBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY1MDhENTIyNThFQ0ZEMzAwMTUxRUQ4IC8qIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5k
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNTA4RDVCMjU4RURDQTcwMDE1MUVE
OCAvKiBJc29IZWFwVGFibGluZ1Rlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IElzb0hlYXBUYWJsaW5nVGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjUxNkVFMjI0NTYwRkY1MDA0RTJCOEQgLyogcGFzX2ludGVybmFsX2NvbmZpZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfaW50ZXJuYWxfY29uZmlnLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTE2RUU2MjQ1NjFBNjAwMDRFMkI4RCAv
KiBpc29faGVhcF9pbm5hcmRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGlz
b19oZWFwX2lubmFyZHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1MTkzRTYy
NjZBRTVENDAwNDgzQTJDIC8qIEpJVEhlYXBUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKSVRIZWFwVGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtOTYyLDM0ICs5MzksMjUgQEAKIAkJMEY5N0U2MkQyMkE5QTg1RjAwQzM1NUY4IC8q
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGOTdFNjJGMjJBOUFBQzEwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjk5Rjk4QjI1
Q0IyQ0U4MDBFRUU0NDkgLyogcGFzX3NpemVfdGh1bmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gcGFzX3NpemVfdGh1bmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMEY5QTFDOTcyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc3VicGFnZV9tYXBfZW50cnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDOTgyNTU5OTYxMTAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY5QTFDOTkyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxs
b2NhdGlvbl9yZXN1bHRfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY5QTFDOUEyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWdfdXRpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ191dGlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlB
MUM5QjI1NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9tYXhfZnJlZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X21heF9mcmVlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQzlDMjU1OTk2MTEwMEM4RDExQiAvKiBwYXNfc3VicGFn
ZV9tYXBfZW50cnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3N1YnBh
Z2VfbWFwX2VudHJ5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQzlEMjU1
OTk2MTEwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2Vf
Ym91bmRhcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDOUYyNTU5OTYx
MTAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFy
aWFudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNBMDI1NTk5NjEyMDBD
OEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5jOyBwYXRoID0gcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY5QTFDQTEyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X3ZpZXcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTIyNTU5OTYxMjAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfdmlldy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0
Zml0X3ZpZXcuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQTMyNTU5OTYx
MjAwQzhEMTFCIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IHBhdGggPSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEY5QTFDQTQyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5j
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfY29tbWl0X3NwYW4uYzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTUyNTU5OTYxMjAwQzhEMTFCIC8qIHBh
c19jb21wYWN0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBwYXNfY29tcGFjdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQTYyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdl
X2hlYWRlcl90YWJsZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfcGFn
ZV9oZWFkZXJfdGFibGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQTcy
NTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNBODI1NTk5NjEyMDBDOEQxMUIg
LyogcGFzX2NvbW1pdF9zcGFuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19jb21taXRfc3Bhbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNBOTI1
NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQUEyNTU5OTYxMjAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQUIyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2Vf
Y29uZmlnX3V0aWxzX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjlBMUNBQzI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9pbmxp
bmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2Jhc2VfaW5s
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNBRDI1NTk5NjEzMDBD
OEQxMUIgLyogcGFzX3Byb21vdGVfaW50cmluc2ljX2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gcGFzX3Byb21vdGVfaW50cmluc2ljX2hlYXAuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQUUyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
cGFnZV9jb25maWdfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEY5QTFDQUYyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNCMDI1NTk5NjEz
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0IxMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNf
dmVyc2lvbmVkX2ZpZWxkLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc192
ZXJzaW9uZWRfZmllbGQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQjIy
NTU5OTYxMzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jl
c3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjlBMUNCMzI1NTk5NjEzMDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGOUExQ0I0MjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfZnJlZV9ncmFu
dWxlcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfZnJlZV9ncmFudWxl
cy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNCNTI1NTk5NjEzMDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEY5QTFDQjYyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfZGlyZWN0b3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05OTksMTcgKzk2NywxMSBAQAogCQkw
RjlBMUNCQTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfcGFnZV9iYXNlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGOUExQ0JCMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRp
b25fcmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRf
YWxsb2NhdGlvbl9yZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFD
QkMyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfYWxsb2NhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0JEMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGOUExQ0JFMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMu
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0JGMjU1OTk2MTQw
MEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYmlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDMDI1NTk5NjE0MDBDOEQxMUIgLyogcGFz
X3BhZ2VfYmFzZV9jb25maWcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFz
X3BhZ2VfYmFzZV9jb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFD
QzEyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5LmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfZGlyZWN0b3J5LmM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0MyMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfc3VicGFn
ZV9tYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3N1YnBhZ2VfbWFw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0MzMjU1OTk2MTQwMEM4RDEx
QiAvKiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0M0MjU1OTk2MTQwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2FsbG9jYXRvci5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBw
YXNfYml0Zml0X2FsbG9jYXRvci5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlB
MUNDNTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZS5jOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjlBMUNDNjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfY29uZmlnX2tp
bmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2VfY29uZmlnX2tp
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY5QTFDQzcyNTU5OTYxNTAwQzhE
MTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7
IHBhdGggPSBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY5QTFDQzgyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lu
bGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9kaXJl
Y3RvcnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDOTI1
NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNDQTI1NTk5NjE1MDBDOEQxMUIgLyog
cGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfZmFzdF9tZWdhcGFnZV9raW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDE3LDIyICs5NzksMTggQEAKIAkJMEY5QTFDQ0MyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19i
aXRmaXRfcGFnZV9jb25maWdfa2luZC5kZWYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19raW5kLmRlZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEY5QTFDQ0QyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfYml0Zml0X2hlYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY5QTFDQ0UyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2Fw
YWdlX3RhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19mYXN0X21l
Z2FwYWdlX3RhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0QwMjU1
OTk2MTUwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0QxMjU1OTk2MTUwMEM4RDExQiAvKiBw
YXNfYml0Zml0X2hlYXAuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2Jp
dGZpdF9oZWFwLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0QyMjU1OTk2
MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDRDMyNTU5OTYxNjAwQzhEMTFCIC8qIHBh
c19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3Vz
ZV9jb3VudF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDRDQyNTU5
OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0Q1MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNf
cGFnZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGOUExQ0Q2MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVf
Y2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9zaXpl
X2NsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0Q3MjU1OTk2MTYw
MEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBw
YXRoID0gcGFzX3N1YnBhZ2VfbWFwLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBG
OUExQ0Q4MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUExQ0Q5MjU1OTk2MTYwMEM4RDExQiAvKiBwYXNf
cGFnZV9zaGFyaW5nX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFz
X3BhZ2Vfc2hhcmluZ19tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGOUEx
Q0RBMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNEQjI1NTk5NjE2MDBDOEQxMUIg
LyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRh
cnlfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNEQzI1NTk5
NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxl
X3VzZV9jb3VudF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDREQy
NTU5OTYxNjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjlBMUNERTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2Vf
a2luZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGFnZV9raW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGOUExQ0RGMjU1OTk2MTYwMEM4RDExQiAv
KiBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
YzsgcGF0aCA9IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYzsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEY5QTFDRTAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6
ZV9jbGFzcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfYml0Zml0X3Np
emVfY2xhc3MuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY5QTFDRTEyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19mcmVlX2dyYW51bGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGOUExQ0UyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTQ4LDYgKzExMDYsNyBAQAogCQkwRkM2
ODI0QzIxMkE1QkZFMDAzQzZBMTMgLyogcGFzX2RlYWxsb2NhdG9yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19kZWFsbG9jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkM2ODI1RDIxMkNBNzZEMDAzQzZBMTMgLyogcGFzX2xvY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xvY2suaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZDODQ3OTQyMzJENjk0OTAwQjM4NkI2IC8qIHBhc19sYXJnZV9zaGFyaW5n
X3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRkNCRDAzMzI2QURGOTI1MDBEMjZENjggLyogcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0NEMTQwMjY1NUU2RTcwMDE3MUExRiAvKiBwYXNfY29t
cGFjdF9hdG9taWNfZW51bWVyYWJsZV9yYW5nZV9saXN0X2NodW5rX3B0ci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF9hdG9taWNfZW51bWVyYWJsZV9yYW5n
ZV9saXN0X2NodW5rX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNGQTQ5
ODIzODM1MkVCMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0ZBNDk5MjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFy
Z2Vfc2hhcmluZ19wb29sLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19s
YXJnZV9zaGFyaW5nX3Bvb2wuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMjAs
NyArMTE3OSw2IEBACiAJCTBGREVBNDFBMjI4QjY0MzIwMDg1RTM0MCAvKiBwYXNfY2FyZXNfYWJv
dXRfc2l6ZV9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19jYXJl
c19hYm91dF9zaXplX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZERUE0
MUIyMjhCNjQzMjAwODVFMzQwIC8qIHBhc191dGlsaXR5X2hlYXBfY29uZmlnLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc191dGlsaXR5X2hlYXBfY29uZmlnLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREVBNDIzMjI4QjY0MzMwMDg1RTM0MCAvKiBwYXNf
dXRpbGl0eV9oZWFwX2NvbmZpZy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBw
YXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkw
RkRFQTQyNzIyOEI2NDMzMDA4NUUzNDAgLyogcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREVBNDJCMjI4
QjY0MzMwMDg1RTM0MCAvKiBwYXNfYWxpZ25tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19hbGlnbm1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MEZERUE0NUQyMjhCNjUxQjAwODVFMzQwIC8qIEJpdGZpZWxkVmVjdG9yVGVzdHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQml0ZmllbGRWZWN0b3JUZXN0cy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREVBNDZEMjI4QjY1NDMwMDg1RTM0MCAv
KiBwYXNfemVyb19tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc196
ZXJvX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNTIsOCArMTMxMCw4
IEBACiAJCTBGNDQzQjM0MjM0MDUwRTUwMEJFNTBEMSAvKiB2ZXJpZmllciAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMEY0NDNCMzUyMzQxNkE0MDAwQkU1
MEQxIC8qIFZlcmlmaWVyLmNwcCAqLywKIAkJCQkwRjQ0M0IzRjIzNDE2QjYzMDBCRTUwRDEgLyog
VmVyaWZpZXIuaCAqLywKKwkJCQkwRjQ0M0IzNTIzNDE2QTQwMDBCRTUwRDEgLyogVmVyaWZpZXIu
Y3BwICovLAogCQkJKTsKIAkJCXBhdGggPSB2ZXJpZmllcjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0xMzgxLDcgKzEzMzksNiBAQAogCQkJCTBGRjI0OEZCMjMwQ0M0QzcwMDc3MjAy
RSAvKiBJc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAgKi8sCiAJCQkJMEZENDhCNjYyM0I1ODk5
MTAwMjZDNDZEIC8qIElzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAgKi8sCiAJCQkJ
MEY1QjYwOTMyMzVFOTE5OTAwQ0FFNjI5IC8qIElzb0hlYXBSZXNlcnZlZE1lbW9yeVRlc3RzLmNw
cCAqLywKLQkJCQkwRjUwOEQ1QjI1OEVEQ0E3MDAxNTFFRDggLyogSXNvSGVhcFRhYmxpbmdUZXN0
cy5jcHAgKi8sCiAJCQkJMEY1MTkzRTYyNjZBRTVENDAwNDgzQTJDIC8qIEpJVEhlYXBUZXN0cy5j
cHAgKi8sCiAJCQkJMEZDNjQxOTAyMTM3NDVGQTAwNDBDRTVFIC8qIExhcmdlRnJlZUhlYXBUZXN0
cy5jcHAgKi8sCiAJCQkJMEZFQjY2NjYyMzFDODdCQzAwOUMwMDFCIC8qIExhcmdlU2hhcmluZ1Bv
b2xEdW1wLmNwcCAqLywKQEAgLTE0MDUsMTE2ICsxMzYyLDEwMCBAQAogCQkwRkM2ODFFNzIxMEZF
NzUxMDAzQzZBMTMgLyogbGlicGFzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKLQkJCQkwRjhBODA1RjI1RUVDQzFDMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmMg
Ki8sCi0JCQkJMEY4QTgwNjAyNUVFQ0MxQzAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5oICovLAog
CQkJCTBGOEE4MDYxMjVFRUNDMUMwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmMgKi8s
CiAJCQkJMEY4QTgwNjIyNUVFQ0MxQzAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuaCAq
LywKIAkJCQkwRjhBODA1RTI1RUVDQzFDMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2lubGluZXMu
aCAqLywKIAkJCQkwRjhBODA2NDI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX2lubmFy
ZHMuaCAqLywKIAkJCQkwRjhBODA2MzI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwX3Jl
Zi5oICovLAotCQkJCTBGOEE4MEZFMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5jICov
LAotCQkJCTBGOEE4MEZGMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5oICovLAorCQkJ
CTBGOEE4MDVGMjVFRUNDMUMwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyAqLywKKwkJCQkwRjhB
ODA2MDI1RUVDQzFDMDA3OTBCNEEgLyogYm1hbGxvY19oZWFwLmggKi8sCiAJCQkJMEY4QTgwRkIy
NUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5jICovLAogCQkJCTBGOEE4MEZE
MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRjhBODEw
MDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBGOEE4
MEZDMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9pbm5hcmRzLmggKi8sCi0JCQkJMEZF
N0VFNzQyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmMgKi8sCi0JCQkJMEZFN0VFNzUyMjlG
MDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmggKi8sCisJCQkJMEY4QTgwRkUyNUY2QTc5NTAwNzkw
QjRBIC8qIGhvdGJpdF9oZWFwLmMgKi8sCisJCQkJMEY4QTgwRkYyNUY2QTc5NTAwNzkwQjRBIC8q
IGhvdGJpdF9oZWFwLmggKi8sCiAJCQkJMEZFN0VFNTUyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19o
ZWFwX2NvbmZpZy5jICovLAogCQkJCTBGRTdFRTU0MjI5NzQzMzUwMDRGNDE2NiAvKiBpc29faGVh
cF9jb25maWcuaCAqLywKIAkJCQkwRjVGRTdBMzI1QjYxNEYyMDAxODU5RkMgLyogaXNvX2hlYXBf
aW5saW5lcy5oICovLAogCQkJCTBGNTE2RUU2MjQ1NjFBNjAwMDRFMkI4RCAvKiBpc29faGVhcF9p
bm5hcmRzLmggKi8sCiAJCQkJMEY1MjlEREUyNDU1NDYwQzAwMzg1QThDIC8qIGlzb19oZWFwX3Jl
Zi5oICovLAotCQkJCTBGNUU1Q0U5MjNCRUYzNUYwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmMg
Ki8sCi0JCQkJMEY1RTVDRUEyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuaCAqLywK
KwkJCQkwRkU3RUU3NDIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuYyAqLywKKwkJCQkwRkU3
RUU3NTIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuaCAqLywKIAkJCQkwRjVFNUNFODIzQkVG
MzVGMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuYyAqLywKIAkJCQkwRjVFNUNFQjIz
QkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuaCAqLywKLQkJCQkwRjU5QTM5
RDI2Njg0NzBFMDBBMzg2NTcgLyogaml0X2hlYXAuYyAqLywKLQkJCQkwRjU5QTM4RjI2NjdGMDBF
MDBBMzg2NTcgLyogaml0X2hlYXAuaCAqLywKKwkJCQkwRjVFNUNFOTIzQkVGMzVGMDBBQTBCNkYg
LyogaXNvX3Rlc3RfaGVhcC5jICovLAorCQkJCTBGNUU1Q0VBMjNCRUYzNjAwMEFBMEI2RiAvKiBp
c29fdGVzdF9oZWFwLmggKi8sCisJCQkJMEY1OUEzOTcyNjY4MzE3NDAwQTM4NjU3IC8qIGppdF9o
ZWFwX2NvbmZpZ19yb290X2RhdGEuaCAqLywKIAkJCQkwRjU5QTM5OTI2Njg0NEEzMDBBMzg2NTcg
Lyogaml0X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEY1OUEzOTAyNjY3RjAwRTAwQTM4NjU3IC8q
IGppdF9oZWFwX2NvbmZpZy5oICovLAotCQkJCTBGNTlBMzk3MjY2ODMxNzQwMEEzODY1NyAvKiBq
aXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggKi8sCi0JCQkJMEZCRDY3RDYyNUJEMzYzQTAwQTQ5
MEQyIC8qIG1pbmFsaWduMzJfaGVhcC5jICovLAotCQkJCTBGQkQ2N0Q4MjVCRDM2M0EwMEE0OTBE
MiAvKiBtaW5hbGlnbjMyX2hlYXAuaCAqLywKKwkJCQkwRjU5QTM5RDI2Njg0NzBFMDBBMzg2NTcg
Lyogaml0X2hlYXAuYyAqLywKKwkJCQkwRjU5QTM4RjI2NjdGMDBFMDBBMzg2NTcgLyogaml0X2hl
YXAuaCAqLywKIAkJCQkwRkJENjdENzI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFw
X2NvbmZpZy5jICovLAogCQkJCTBGQkQ2N0Q5MjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMy
X2hlYXBfY29uZmlnLmggKi8sCi0JCQkJMEZCRDY3RUYyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2Vz
aXplNjRrX2hlYXAuYyAqLywKLQkJCQkwRkJENjdFRDI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNp
emU2NGtfaGVhcC5oICovLAorCQkJCTBGQkQ2N0Q2MjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGln
bjMyX2hlYXAuYyAqLywKKwkJCQkwRkJENjdEODI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24z
Ml9oZWFwLmggKi8sCiAJCQkJMEZCRDY3RUMyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRr
X2hlYXBfY29uZmlnLmMgKi8sCiAJCQkJMEZCRDY3RUUyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2Vz
aXplNjRrX2hlYXBfY29uZmlnLmggKi8sCisJCQkJMEZCRDY3RUYyNUJFMDc4NzAwQTQ5MEQyIC8q
IHBhZ2VzaXplNjRrX2hlYXAuYyAqLywKKwkJCQkwRkJENjdFRDI1QkUwNzg3MDBBNDkwRDIgLyog
cGFnZXNpemU2NGtfaGVhcC5oICovLAogCQkJCTBGQzY4MUY2MjExQ0Q1REYwMDNDNkExMyAvKiBw
YXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oICovLAogCQkJCTBGQzY4MUYzMjExQ0Q1REYw
MDNDNkExMyAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0b3IuaCAqLywKIAkJCQkwRkRFQTQxNjIyOEI2
NDMyMDA4NUUzNDAgLyogcGFzX2FsaWdubWVudC5jICovLAogCQkJCTBGREVBNDJCMjI4QjY0MzMw
MDg1RTM0MCAvKiBwYXNfYWxpZ25tZW50LmggKi8sCi0JCQkJMEY5QTFDQkUyNTU5OTYxNDAwQzhE
MTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jICovLAotCQkJCTBGOUExQ0QwMjU1
OTk2MTUwMEM4RDExQiAvKiBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaCAqLywKIAkJCQkw
RjU5QTM5MTI2NjdGMDBFMDBBMzg2NTcgLyogcGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCAqLywKIAkJ
CQkwRkM2ODFFRTIxMTREOTgzMDAzQzZBMTMgLyogcGFzX2FsbF9oZWFwcy5jICovLAogCQkJCTBG
QzY4MUVGMjExNEQ5ODQwMDNDNkExMyAvKiBwYXNfYWxsX2hlYXBzLmggKi8sCi0JCQkJMEYxQUVD
RTYyNjU4MTk2MDAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmMgKi8sCi0JCQkJMEYxQUVD
RTcyNjU4MTk2MTAwMEM1MjE4IC8qIHBhc19hbGxfbWFnYXppbmVzLmggKi8sCiAJCQkJMEZENDhC
MEIyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuYyAq
LywKIAkJCQkwRkQ0OEIyNzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2FsbF9zaGFyZWRfcGFnZV9k
aXJlY3Rvcmllcy5oICovLAogCQkJCTBGNDdDMzFDMjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxs
b2NhdGlvbl9jYWxsYmFja3MuYyAqLywKIAkJCQkwRjQ3QzMxRDIzMzk2RTBCMDAyQTFDRjcgLyog
cGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmggKi8sCiAJCQkJMEY3ODA4OEMyMkZBNTM0MTAwRjM3
NDUxIC8qIHBhc19hbGxvY2F0aW9uX2NvbmZpZy5oICovLAogCQkJCTBGNDdDMzE4MjMzOTZEMUYw
MDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9raW5kLmggKi8sCi0JCQkJMEY5QTFDQTMyNTU5OTYx
MjAwQzhEMTFCIC8qIHBhc19hbGxvY2F0aW9uX3Jlc3VsdC5jICovLAogCQkJCTBGQzY4MUIyMjEw
NjVBMDAwMDNDNkExMyAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRkRCQjA3
QTIyQkJGRjgzMDA2QkE1RkMgLyogcGFzX2FsbG9jYXRvcl9jb3VudHMuaCAqLywKIAkJCQkwRjIx
NTBFQTI0ODRCQjJBMDAwRDYzNEIgLyogcGFzX2FsbG9jYXRvcl9pbmRleC5oICovLAogCQkJCTBG
NkI0N0ZDMjMzMTVBRTQwMDJBNUUwQyAvKiBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5o
ICovLAotCQkJCTBGRDQ4QjI4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yLmMgKi8sCi0JCQkJMEZENDhCMDAyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9h
bGxvY2F0b3IuaCAqLywKIAkJCQkwRkQ0OEIwNTIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl9yZXN1bHQuaCAqLywKIAkJCQkwRkQ0OEIwNDIzQTlBQkIwMDAyNkM0NkQg
LyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5jICovLAogCQkJCTBGRDQ4QjFGMjNBOUFC
QjIwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmggKi8sCisJCQkJMEZE
NDhCMjgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3IuYyAqLywKKwkJ
CQkwRkQ0OEIwMDIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvci5oICov
LAogCQkJCTBGNTlBMzlBMjY2ODQ0QTMwMEEzODY1NyAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdf
ZW51bWVyYXRvcl9kYXRhLmMgKi8sCiAJCQkJMEY0RjYxNjMyNTlCRkI4NTAwOEI0QTgyIC8qIHBh
c19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaCAqLywKIAkJCQkwRjRGNjE2QzI1
OUJGRjkxMDA4QjRBODIgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oICovLAog
CQkJCTBGMzI5QTFFMjNGMTEzMkEwMEExMzNDNCAvKiBwYXNfYmFzaWNfaGVhcF9wYWdlX2NhY2hl
cy5oICovLAogCQkJCTBGMzI5QTFEMjNGMTEzMkEwMEExMzNDNCAvKiBwYXNfYmFzaWNfaGVhcF9y
dW50aW1lX2NvbmZpZy5oICovLAogCQkJCTBGMzI5QTIwMjNGMTEzMkEwMEExMzNDNCAvKiBwYXNf
YmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oICovLAotCQkJCTBGOUExQ0M3MjU1OTk2MTUw
MEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyAqLywKLQkJCQkwRjlBMUNEODI1NTk5
NjE2MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEY5QTFDQkYy
NTU5OTYxNDAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggKi8sCiAJ
CQkJMEY5QTFDQTkyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5k
LmggKi8sCiAJCQkJMEZERUE0MTkyMjhCNjQzMjAwODVFMzQwIC8qIHBhc19iaXRmaWVsZF92ZWN0
b3IuaCAqLywKIAkJCQkwRjlBMUNCQjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9hbGxv
Y2F0aW9uX3Jlc3VsdC5oICovLAorCQkJCTBGOUExQ0QyMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmggKi8sCiAJCQkJMEY5QTFDQzQyNTU5OTYxNDAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgKi8sCiAJCQkJMEY5QTFDQkMyNTU5OTYxNDAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmggKi8sCi0JCQkJMEY5QTFDRDIyNTU5OTYx
NTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCAqLywKLQkJCQkwRjlB
MUNCMDI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jICov
LAotCQkJCTBGOUExQ0E3MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGly
ZWN0b3J5LmggKi8sCisJCQkJMEY5QTFDQzgyNTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X2lubGluZXMuaCAqLywKIAkJCQkwRjlBMUNDMTI1NTk5NjE0MDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9kaXJlY3RvcnkuYyAqLywKIAkJCQkwRjlBMUNCNjI1NTk5NjEzMDBDOEQxMUIg
LyogcGFzX2JpdGZpdF9kaXJlY3RvcnkuaCAqLywKLQkJCQkwRjlBMUNBQTI1NTk5NjEyMDBDOEQx
MUIgLyogcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmggKi8sCi0JCQkJMEY5QTFDQzgy
NTU5OTYxNTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKLQkJ
CQkwRjlBMUNCMzI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5o
ICovLAotCQkJCTBGOUExQ0JEMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkuYyAqLywKLQkJCQkwRjlBMUM5ODI1NTk5NjExMDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEY5QTFDREYyNTU5OTYxNjAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYyAqLywKLQkJCQkwRjlBMUNBRjI1NTk5NjEz
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oICovLAogCQkJCTBGOUEx
Q0QxMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuYyAqLywKIAkJCQkwRjlBMUND
RDI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmggKi8sCiAJCQkJMEY5QTFDOUIy
NTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUuaCAqLywKLQkJCQkwRjlBMUND
NTI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmMgKi8sCi0JCQkJMEY5QTFDQjcy
NTU5OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5oICovLAotCQkJCTBGOUExQ0REMjU1
OTk2MTYwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmggKi8sCiAJCQkJMEY1NzA5
MTcyNTZBQjIxMTAwMDM3QkIzIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfaW5saW5lcy5oICov
LAogCQkJCTBGOUExQ0M5MjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmln
X2tpbmQuYyAqLywKIAkJCQkwRjlBMUNDQzI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZ19raW5kLmRlZiAqLywKIAkJCQkwRjlBMUNBRTI1NTk5NjEzMDBDOEQxMUIgLyog
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kLmggKi8sCi0JCQkJMEY5QTFDOUEyNTU5OTYxMTAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCAqLywKIAkJCQkwRjU3MDkx
OTI1NkFCNDE3MDAwMzdCQjMgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ191dGlsc19pbmxpbmVz
LmggKi8sCisJCQkJMEY5QTFDOUEyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9j
b25maWdfdXRpbHMuaCAqLywKIAkJCQkwRjlBMUNDQjI1NTk5NjE1MDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmggKi8sCisJCQkJMEY5QTFDREQyNTU5OTYxNjAwQzhE
MTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWcuaCAqLywKIAkJCQkwRjlBMUNCNTI1NTk5NjEz
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaCAqLywKKwkJCQkwRjlBMUNDNTI1
NTk5NjE0MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmMgKi8sCisJCQkJMEY5QTFDQjcyNTU5
OTYxMzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5oICovLAogCQkJCTBGOUExQ0UwMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3NpemVfY2xhc3MuYyAqLywKIAkJCQkwRjlBMUNENjI1
NTk5NjE2MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9zaXplX2NsYXNzLmggKi8sCi0JCQkJMEY5QTFD
QTIyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5jICovLAotCQkJCTBGOUExQ0Ex
MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCAqLywKIAkJCQkwRjlBMUQ0NDI1
NURCRTYxMDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleC5oICovLAogCQkJCTBG
OUExRDQwMjU1QUYyNzkwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXdfaW5saW5lcy5oICovLAor
CQkJCTBGOUExQ0EyMjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuYyAqLywKKwkJ
CQkwRjlBMUNBMTI1NTk5NjEyMDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmggKi8sCiAJCQkJ
MEZDNjgxQjMyMTA2Q0Q3OTAwM0M2QTEzIC8qIHBhc19iaXR2ZWN0b3IuaCAqLywKIAkJCQkwRkM2
ODIzRDIxMjlFRDUwMDAzQzZBMTMgLyogcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAuYyAqLywKIAkJ
CQkwRkM2ODIzRjIxMjlFRDUxMDAzQzZBMTMgLyogcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAuaCAq
LywKQEAgLTE1MzgsOSArMTQ3OSw5IEBACiAJCQkJMEYwNEMyMTMyNDYwREI2RjAwMUQzMUYwIC8q
IHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCAqLywKIAkJCQkwRjZE
NTY0MTIzQ0FBMUI5MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3B0ci5oICovLAogCQkJ
CTBGNjZENTQyMjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19wdHIuaCAqLywKLQkJCQkwRjA0QzIyNzI0NjExQ0ZEMDAxRDMxRjAg
LyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0
ci5oICovLAogCQkJCTBGNkQ1NjVGMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9oZWFwX3BhZ2Vfc2hhcmluZ19wb29sc19wdHIuaCAqLywKIAkJCQkwRjZE
NTY1OTIzQ0JEMTlDMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3X3B0ci5oICovLAorCQkJCTBGMTQ4NzBCMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkw
RjZENTY2MDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
dmlldy5oICovLAogCQkJCTBGQTVFNDU1MjQ5MkQ1QjkwMENFOTYyQSAvKiBwYXNfY29tcGFjdF9h
dG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8sCiAJCQkJMEY2RDU2NTEy
M0NCRDE5QzAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY191bnNpZ25lZF9wdHIuaCAqLywK
QEAgLTE1NTksMTQgKzE1MDAsMTQgQEAKIAkJCQkwRjlBMUNEQzI1NTk5NjE2MDBDOEQxMUIgLyog
cGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCAqLywKIAkJCQkwRjZENTYz
RjIzQ0FBMUI5MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfcHRyLmggKi8sCiAJCQkJMEY2NkQ1NDEy
NDg3NjBBODAwRkM3MzQ3IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rv
cnlfcHRyLmggKi8sCi0JCQkJMEYwNEMyMjYyNDYxMUNGRDAwMUQzMUYwIC8qIHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oICovLAorCQkJCTBGMTQ4NzBE
MjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X3B0ci5oICovLAogCQkJCTBGNkQ1Njc1MjNDQzE0MUUwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2hlYXBfcHRyLmggKi8sCiAJCQkJMEY2RDU2NTUyM0NCRDE5QzAwRjQwREJCIC8q
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3B0ci5oICovLAog
CQkJCTBGNkQ1NjVCMjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3No
YXJlZF92aWV3X3B0ci5oICovLAorCQkJCTBGMTQ4NzBGMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oICovLAogCQkJCTBGNkQ1NjUz
MjNDQkQxOUMwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3ZpZXcuaCAqLywKLQkJ
CQkwRjMxQTYzRjIzRENGODQ4MDAyQzBDQTMgLyogcGFzX2NvbXBhY3Rfc2tpcF9saXN0X25vZGVf
cHRyLmggKi8sCiAJCQkJMEYzMUE2NDUyM0U0QzQ0MTAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3Nr
aXBfbGlzdF9ub2RlX3B0cl9wdHIuaCAqLywKLQkJCQkwRjlBMUNDMzI1NTk5NjE0MDBDOEQxMUIg
LyogcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyLmggKi8sCisJCQkJMEYzMUE2M0Yy
M0RDRjg0ODAwMkMwQ0EzIC8qIHBhc19jb21wYWN0X3NraXBfbGlzdF9ub2RlX3B0ci5oICovLAog
CQkJCTBGNkQ1NjREMjNDQUJBNjUwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfYXRvbWlj
X3B0ci5oICovLAogCQkJCTBGOUExQ0QzMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfY29tcGFjdF90
YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCAqLywKIAkJCQkwRjZENTY0NDIzQ0FB
MUI5MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oICovLApAQCAtMTU3NCwyNCAr
MTUxNSwyNCBAQAogCQkJCTBGNkQ1NjRGMjNDQkQxOUIwMEY0MERCQiAvKiBwYXNfY29tcGFjdF91
bnNpZ25lZF9wdHIuaCAqLywKIAkJCQkwRkM0RUMzNTIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2Nv
bXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmMgKi8sCiAJCQkJMEZDNEVDMzAyMzRBOTFF
MjAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5oICovLAot
CQkJCTBGQzY4MUEyMjEwMzkxN0IwMDNDNkExMyAvKiBwYXNfY29uZmlnLmggKi8sCiAJCQkJMEY4
NUVGRDUyMkUyQkVDNzAwM0EzNjJCIC8qIHBhc19jb25maWdfcHJlZml4LmggKi8sCisJCQkJMEZD
NjgxQTIyMTAzOTE3QjAwM0M2QTEzIC8qIHBhc19jb25maWcuaCAqLywKIAkJCQkwRkQ0OEIwQTIz
QTlBQkIxMDAyNkM0NkQgLyogcGFzX2NvdW50X2xvb2t1cF9tb2RlLmggKi8sCiAJCQkJMEYzMjlB
MjYyM0YxRDYzNTAwQTEzM0M0IC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193
aXRoX3Jlc2VydmVkX21lbW9yeS5jICovLAogCQkJCTBGMzI5QTI1MjNGMUQ2MzUwMEExMzNDNCAv
KiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnku
aCAqLywKIAkJCQkwRkU3RUU1RjIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2RlYWxsb2NhdGUuYyAq
LywKIAkJCQkwRkU3RUU1RTIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2RlYWxsb2NhdGUuaCAqLywK
IAkJCQkwRkZGRDUxNDI1NkIwRkJDMDAxRUI5NEMgLyogcGFzX2RlYWxsb2NhdGlvbl9tb2RlLmgg
Ki8sCi0JCQkJMEZDNjgyNEMyMTJBNUJGRTAwM0M2QTEzIC8qIHBhc19kZWFsbG9jYXRvci5oICov
LAogCQkJCTBGNkI0N0ZCMjMzMTVBRTQwMDJBNUUwQyAvKiBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVu
Z2VfYWN0aW9uLmggKi8sCisJCQkJMEZDNjgyNEMyMTJBNUJGRTAwM0M2QTEzIC8qIHBhc19kZWFs
bG9jYXRvci5oICovLAogCQkJCTBGMzczRTUxMjY1OUVBNUUwMDM0QkE5NiAvKiBwYXNfZGVidWdf
aGVhcC5oICovLAogCQkJCTBGQkM2MkMwMjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdfc3Bl
Y3RydW0uYyAqLywKIAkJCQkwRkJDNjJDMTI2NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3Nw
ZWN0cnVtLmggKi8sCiAJCQkJMEY3ODA4OTgyMkZBNkYwODAwRjM3NDUxIC8qIHBhc19kZWZlcnJl
ZF9kZWNvbW1pdF9sb2cuYyAqLywKIAkJCQkwRjc4MDg5OTIyRkE2RjA4MDBGMzc0NTEgLyogcGFz
X2RlZmVycmVkX2RlY29tbWl0X2xvZy5oICovLAorCQkJCTBGNUI4M0JFMjQ5MTg5OUUwMEY0MTA1
MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmggKi8sCiAJCQkJMEY1
QjgzQkIyNDkxODg4QTAwRjQxMDUyIC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmMg
Ki8sCiAJCQkJMEY1QjgzQkEyNDkxODg4OTAwRjQxMDUyIC8qIHBhc19kZXNpZ25hdGVkX2ludHJp
bnNpY19oZWFwLmggKi8sCi0JCQkJMEY1QjgzQkUyNDkxODk5RTAwRjQxMDUyIC8qIHBhc19kZXNp
Z25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCAqLywKIAkJCQkwRjlFOTQ2NDIzNDY2MEQz
MDA5RkFGREQgLyogcGFzX2R5bGRfc3RhdGUuYyAqLywKIAkJCQkwRjlFOTQ2NTIzNDY2MEQzMDA5
RkFGREQgLyogcGFzX2R5bGRfc3RhdGUuaCAqLywKIAkJCQkwRkVBNDVDMTIzNkNFODlEMDBCNUEz
NzUgLyogcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwLmMgKi8sCkBAIC0xNjE0LDExICsx
NTU1LDExIEBACiAJCQkJMEY0RjYxMkIyNTk5MDg3NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVf
c2VncmVnYXRlZF9oZWFwcy5oICovLAogCQkJCTBGNEY2MUE1MjVBM0QwQkIwMDhCNEE4MiAvKiBw
YXNfZW51bWVyYXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuYyAqLywKIAkJCQkwRjRGNjFB
OTI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdlc19hc19t
ZXRhLmggKi8sCi0JCQkJMEY0RjYxMDQyNTk3QUY4NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9y
LmMgKi8sCi0JCQkJMEY0RjYxMDMyNTk3QUY4NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yLmgg
Ki8sCiAJCQkJMEY0RjYxODAyNTlFNzM0RjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yX2ludGVy
bmFsLmggKi8sCiAJCQkJMEY0RjYxMTkyNTk4MzhCMTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9y
X3JlZ2lvbi5jICovLAogCQkJCTBGNEY2MTFBMjU5ODM4QjEwMDhCNEE4MiAvKiBwYXNfZW51bWVy
YXRvcl9yZWdpb24uaCAqLywKKwkJCQkwRjRGNjEwNDI1OTdBRjg3MDA4QjRBODIgLyogcGFzX2Vu
dW1lcmF0b3IuYyAqLywKKwkJCQkwRjRGNjEwMzI1OTdBRjg3MDA4QjRBODIgLyogcGFzX2VudW1l
cmF0b3IuaCAqLywKIAkJCQkwRjE5MzI0RjIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2Vwb2NoLmMg
Ki8sCiAJCQkJMEYxOTMyNEQyMkVEMDRBNTAwRkJBNzEzIC8qIHBhc19lcG9jaC5oICovLAogCQkJ
CTBGRDQ4QUY5MjNBOUFCQUYwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVf
bWVtb190YWJsZS5jICovLApAQCAtMTYzMiw4ICsxNTczLDggQEAKIAkJCQkwRjlBMUNDQTI1NTk5
NjE1MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oICovLAogCQkJCTBGOUExRDQ3
MjU1RTI4NDIwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5jICovLAogCQkJCTBG
OUExQ0NFMjU1OTk2MTUwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oICovLAot
CQkJCTBGOUExQ0IyMjU1OTk2MTMwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25f
cmVzdWx0LmggKi8sCiAJCQkJMEY5QTFDOTkyNTU5OTYxMTAwQzhEMTFCIC8qIHBhc19mYXN0X3Bh
dGhfYWxsb2NhdGlvbl9yZXN1bHRfa2luZC5oICovLAorCQkJCTBGOUExQ0IyMjU1OTk2MTMwMEM4
RDExQiAvKiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0LmggKi8sCiAJCQkJMEZCNTcw
NkEyNjdEMDNDRDAwODBGQThCIC8qIHBhc19mYXN0X3Rscy5oICovLAogCQkJCTBGQzRFQzJGMjM0
QTkxRTIwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFtLmMgKi8sCiAJCQkJMEZDNEVDMzYyMzRBOTFF
MzAwQjcxMEEzIC8qIHBhc19mZF9zdHJlYW0uaCAqLywKQEAgLTE2NDQsOCArMTU4NSw4IEBACiAJ
CQkJMEY5QTFDRTEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmggKi8sCiAJ
CQkJMEYxOTMyNTEyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19mcmVlX21vZGUuaCAqLywKIAkJCQkw
RkQ0OEIxMzIzQTlBQkIxMDAyNkM0NkQgLyogcGFzX2ZyZWVfcmFuZ2Vfa2luZC5oICovLAotCQkJ
CTBGRDQ4QjFEMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzLmggKi8sCiAJ
CQkJMEZENDhBRkYyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5l
cy5oICovLAorCQkJCTBGRDQ4QjFEMjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfZnVsbF9hbGxvY19i
aXRzLmggKi8sCiAJCQkJMEZGMDhGMzcyMkE1QjNFMjAwMzg2NTc1IC8qIHBhc19nZW5lcmljX2xh
cmdlX2ZyZWVfaGVhcC5oICovLAogCQkJCTBGRTdFRTU4MjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNf
Z2V0X2FsbG9jYXRpb25fc2l6ZS5oICovLAogCQkJCTBGRTdFRTVDMjI5RTE0RjkwMDRGNDE2NiAv
KiBwYXNfZ2V0X2hlYXAuaCAqLywKQEAgLTE2NTMsMTcgKzE1OTQsMTUgQEAKIAkJCQkwRjlBMUQ0
RTI1NjMwNUI0MDBDOEQxMUIgLyogcGFzX2dldF9wYWdlX2Jhc2UuaCAqLywKIAkJCQkwRjE1MThG
QzIzNDQxRTMyMDA4MzJCNUMgLyogcGFzX2hhc19vYmplY3QuaCAqLywKIAkJCQkwRkM2ODIwQTIx
MjFGNkU4MDAzQzZBMTMgLyogcGFzX2hhc2h0YWJsZS5oICovLAotCQkJCTBGQzY4MUM4MjEwRjdD
OUYwMDNDNkExMyAvKiBwYXNfaGVhcC5jICovLAotCQkJCTBGQzY4MUMwMjEwRjdDOUUwMDNDNkEx
MyAvKiBwYXNfaGVhcC5oICovLAotCQkJCTBGMUJGRDQzMjY2NDU3RjEwMENFQzI4RCAvKiBwYXNf
aGVhcF9jb25maWcuYyAqLywKLQkJCQkwRkM2ODI0NzIxMkExMDU0MDAzQzZBMTMgLyogcGFzX2hl
YXBfY29uZmlnLmggKi8sCiAJCQkJMEYwNEMyMEIyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19oZWFw
X2NvbmZpZ19pbmxpbmVzLmggKi8sCiAJCQkJMEY2RDU2NTQyM0NCRDE5QzAwRjQwREJCIC8qIHBh
c19oZWFwX2NvbmZpZ19raW5kLmMgKi8sCiAJCQkJMEY2RDU2NTIyM0NCRDE5QzAwRjQwREJCIC8q
IHBhc19oZWFwX2NvbmZpZ19raW5kLmRlZiAqLywKIAkJCQkwRjZENTY1RDIzQ0JEMTlEMDBGNDBE
QkIgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuaCAqLywKKwkJCQkwRjA4M0Y1OTIyQzI5NzlCMDBG
M0NEQjMgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzX2lubGluZXMuaCAqLywKIAkJCQkwRkM2ODI0
OTIxMkExNjBCMDAzQzZBMTMgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMgKi8sCiAJCQkJMEYw
OTIyNkQyMkIyRDkwOTAwN0Q1RDNBIC8qIHBhc19oZWFwX2NvbmZpZ191dGlscy5oICovLAotCQkJ
CTBGMDgzRjU5MjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5l
cy5oICovLAorCQkJCTBGMUJGRDQzMjY2NDU3RjEwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcu
YyAqLywKKwkJCQkwRkM2ODI0NzIxMkExMDU0MDAzQzZBMTMgLyogcGFzX2hlYXBfY29uZmlnLmgg
Ki8sCiAJCQkJMEZDMkZEMzYyMzc2MTUxMzAwNTNERDQxIC8qIHBhc19oZWFwX2Zvcl9jb25maWcu
YyAqLywKIAkJCQkwRkMyRkQzNTIzNzYxNTEyMDA1M0RENDEgLyogcGFzX2hlYXBfZm9yX2NvbmZp
Zy5oICovLAogCQkJCTBGRDQ4QjY4MjNCNkFFRDUwMDI2QzQ2RCAvKiBwYXNfaGVhcF9pbmxpbmVz
LmggKi8sCkBAIC0xNjcxLDIzICsxNjEwLDI0IEBACiAJCQkJMEZDNjgxOUUyMTAzOTE3QjAwM0M2
QTEzIC8qIHBhc19oZWFwX2xvY2suYyAqLywKIAkJCQkwRkM2ODE5RjIxMDM5MTdCMDAzQzZBMTMg
LyogcGFzX2hlYXBfbG9jay5oICovLAogCQkJCTBGNkRCODhCMjM1RTU0QTYwMDY5Q0FEQiAvKiBw
YXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmggKi8sCi0JCQkJMEZDNjgxQzYyMTBGN0M5RjAwM0M2QTEz
IC8qIHBhc19oZWFwX3JlZi5jICovLAotCQkJCTBGQzY4MUM3MjEwRjdDOUYwMDNDNkExMyAvKiBw
YXNfaGVhcF9yZWYuaCAqLywKIAkJCQkwRjg3OTJCMjIzOEExRDBDMDBBRUU3RjEgLyogcGFzX2hl
YXBfcmVmX2tpbmQuaCAqLywKIAkJCQkwRjQ3RDQwQTIxNDBEQjA1MDA4QzQxRjAgLyogcGFzX2hl
YXBfcmVmX3ByZWZpeC5oICovLAorCQkJCTBGQzY4MUM2MjEwRjdDOUYwMDNDNkExMyAvKiBwYXNf
aGVhcF9yZWYuYyAqLywKKwkJCQkwRkM2ODFDNzIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX2hlYXBf
cmVmLmggKi8sCisJCQkJMEYxNDg3MEUyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnLmMgKi8sCiAJCQkJMEYzMjlBMUYyM0YxMTMyQTAwQTEzM0M0IC8qIHBhc19oZWFw
X3J1bnRpbWVfY29uZmlnLmggKi8sCiAJCQkJMEZDNEVDMzEyMzRBOTFFMjAwQjcxMEEzIC8qIHBh
c19oZWFwX3N1bW1hcnkuYyAqLywKIAkJCQkwRkVCNjY2NDIzMUIyQTU3MDA5QzAwMUIgLyogcGFz
X2hlYXBfc3VtbWFyeS5oICovLAorCQkJCTBGNkQ1NDgxMjNDNTgxQzEwMEY0MERCQiAvKiBwYXNf
aGVhcF90YWJsZV9zdGF0ZS5oICovLAogCQkJCTBGNkQ1NDc0MjNDNTczRTAwMEY0MERCQiAvKiBw
YXNfaGVhcF90YWJsZS5jICovLAogCQkJCTBGNkQ1NDc2MjNDNTczRTAwMEY0MERCQiAvKiBwYXNf
aGVhcF90YWJsZS5oICovLAotCQkJCTBGNkQ1NDgxMjNDNTgxQzEwMEY0MERCQiAvKiBwYXNfaGVh
cF90YWJsZV9zdGF0ZS5oICovLAorCQkJCTBGQzY4MUM4MjEwRjdDOUYwMDNDNkExMyAvKiBwYXNf
aGVhcC5jICovLAorCQkJCTBGQzY4MUMwMjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfaGVhcC5oICov
LAogCQkJCTBGRDQ4QUZFMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5jICov
LAogCQkJCTBGRDQ4QjA5MjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5oICov
LAogCQkJCTBGRDQ4QUZDMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfaW1tdXRhYmxlX3ZlY3Rvci5o
ICovLAogCQkJCTBGNTE2RUUyMjQ1NjBGRjUwMDRFMkI4RCAvKiBwYXNfaW50ZXJuYWxfY29uZmln
LmggKi8sCi0JCQkJMEZERUE0MjcyMjhCNjQzMzAwODVFMzQwIC8qIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHQuaCAqLywKIAkJCQkwRkYwOEY0OTIyQTg0NDZCMDAzODY1NzUgLyogcGFz
X2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaCAqLywKLQkJCQkwRkM2ODFBODIxMDNDQUM5MDAzQzZB
MTMgLyogcGFzX2xhcmdlX2ZyZWUuaCAqLywKIAkJCQkwRkM2ODI0NjIxMkEwRjFGMDAzQzZBMTMg
LyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCAqLywKIAkJCQkwRjY2RDUzRjI0ODc2MEE3
MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVmICovLAogCQkJ
CTBGNzgwODg5MjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVk
X2NvbW1pdF9sb2cuYyAqLywKQEAgLTE2OTcsMzUgKzE2MzcsNDEgQEAKIAkJCQkwRjY2RDUzRTI0
ODc2MEE3MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmggKi8sCiAJCQkJ
MEZGMDBEMzcyMzc3NkQ2NDAwQzIwQUMwIC8qIHBhc19sYXJnZV9mcmVlX2lubGluZXMuaCAqLywK
IAkJCQkwRkYwOEYzRjIyQTVGNjU1MDAzODY1NzUgLyogcGFzX2xhcmdlX2ZyZWVfdmlzaXRvci5o
ICovLAotCQkJCTBGQzY4MUFDMjEwNEZFQUQwMDNDNkExMyAvKiBwYXNfbGFyZ2VfaGVhcC5jICov
LAotCQkJCTBGQzY4MUE3MjEwM0IwRTYwMDNDNkExMyAvKiBwYXNfbGFyZ2VfaGVhcC5oICovLAor
CQkJCTBGQzY4MUE4MjEwM0NBQzkwMDNDNkExMyAvKiBwYXNfbGFyZ2VfZnJlZS5oICovLAogCQkJ
CTBGMTkzMjY2MjJGM0IzRjIwMEZCQTcxMyAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdl
X3NoYXJpbmdfY2FjaGUuYyAqLywKIAkJCQkwRjE5MzI2NzIyRjNCM0YzMDBGQkE3MTMgLyogcGFz
X2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggKi8sCisJCQkJMEZDNjgx
QUMyMTA0RkVBRDAwM0M2QTEzIC8qIHBhc19sYXJnZV9oZWFwLmMgKi8sCisJCQkJMEZDNjgxQTcy
MTAzQjBFNjAwM0M2QTEzIC8qIHBhc19sYXJnZV9oZWFwLmggKi8sCisJCQkJMEZGMDhGNDcyMkE3
NjNGMTAwMzg2NTc1IC8qIHBhc19sYXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkwRkM2ODFBMDIx
MDM5MTdCMDAzQzZBMTMgLyogcGFzX2xhcmdlX21hcC5jICovLAogCQkJCTBGQzY4MUExMjEwMzkx
N0IwMDNDNkExMyAvKiBwYXNfbGFyZ2VfbWFwLmggKi8sCi0JCQkJMEZGMDhGNDcyMkE3NjNGMTAw
Mzg2NTc1IC8qIHBhc19sYXJnZV9tYXBfZW50cnkuaCAqLywKKwkJCQkwRkM4NDc5NDIzMkQ2OTQ5
MDBCMzg2QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oICov
LAogCQkJCTBGQ0ZBNDk5MjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29s
LmMgKi8sCiAJCQkJMEZDRkE0OTgyMzgzNTJFQjAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5n
X3Bvb2wuaCAqLywKLQkJCQkwRkM4NDc5NDIzMkQ2OTQ5MDBCMzg2QjYgLyogcGFzX2xhcmdlX3No
YXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oICovLAogCQkJCTBGNkQ1NDc1MjNDNTczRTAw
MEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyAqLywKIAkJCQkwRjZENTQ3
MjIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggKi8sCiAJ
CQkJMEY4QTgwMjcyNUVDNTg4ODAwNzkwQjRBIC8qIHBhc19saW5lX3dvcmRfY29uZmlnLmggKi8s
CiAJCQkJMEYzMUE2NDMyM0UzNTA5RTAwMkMwQ0EzIC8qIHBhc19saXN0X2RpcmVjdGlvbi5oICov
LAotCQkJCTBGREJCMDcxMjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yLmMg
Ki8sCi0JCQkJMEZEQkIwNzIyMkI4NzVBNjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Iu
aCAqLywKIAkJCQkwRkQ0OEIwMjIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2xvY2FsX2FsbG9jYXRv
cl9jb25maWdfa2luZC5oICovLAogCQkJCTBGREJCMDc2MjJCODc3RkEwMDZCQTVGQyAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCAqLywKKwkJCQkwRjQ1RDVBNjI2QUI3MzE0MDBDMzVE
OTMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmggKi8sCiAJCQkJMEY4QTgwMjgyNUVDNTg4
ODAwNzkwQjRBIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oICovLAogCQkJCTBGREJCMDcw
MjJCODc1QTYwMDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9tb2RlLmggKi8s
CiAJCQkJMEZDNjgxQkYyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVz
dWx0LmggKi8sCi0JCQkJMEYwNEMyMEQyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19sb2NrLmMgKi8s
Ci0JCQkJMEZDNjgyNUQyMTJDQTc2RDAwM0M2QTEzIC8qIHBhc19sb2NrLmggKi8sCisJCQkJMEY0
NUQ1QTcyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEuYyAqLywKKwkJCQkwRjQ1RDVBODI2QUI3MzE0MDBDMzVEOTMgLyogcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YS5oICovLAorCQkJCTBGREJCMDcxMjJCODc1QTYwMDZCQTVGQyAv
KiBwYXNfbG9jYWxfYWxsb2NhdG9yLmMgKi8sCisJCQkJMEZEQkIwNzIyMkI4NzVBNjAwNkJBNUZD
IC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuaCAqLywKKwkJCQkwRjE0ODcxRDI2OUY1RkNBMDA2ODg3
QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jICovLAorCQkJCTBGMTQ4NzFBMjY5RjVG
Q0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggKi8sCisJCQkJMEYxNDg3
MUIyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmMgKi8sCisJCQkJMEYx
NDg3MEMyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggKi8sCiAJCQkJ
MEZFQTQ1QkEyMzZDRDVBQzAwQjVBMzc1IC8qIHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hh
c2h0YWJsZS5jICovLAogCQkJCTBGRUE0NUJCMjM2Q0Q1QUMwMEI1QTM3NSAvKiBwYXNfbG9ja19m
cmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuaCAqLywKKwkJCQkwRjA0QzIwRDI0NjBEQjZFMDAx
RDMxRjAgLyogcGFzX2xvY2suYyAqLywKKwkJCQkwRkM2ODI1RDIxMkNBNzZEMDAzQzZBMTMgLyog
cGFzX2xvY2suaCAqLywKIAkJCQkwRjlFOTQ1NjIzNDUyMjYyMDA5RkFGREQgLyogcGFzX2xvZy5j
ICovLAogCQkJCTBGOUU5NDU3MjM0NTIyNjIwMDlGQUZERCAvKiBwYXNfbG9nLmggKi8sCi0JCQkJ
MEYwNEMyMTIyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19tYWdhemluZS5jICovLAotCQkJCTBGMDRD
MjA4MjQ2MERCNkUwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuaCAqLywKIAkJCQkwRjAzN0FGMTI1
QUVBOTE5MDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZS5jICovLAogCQkJCTBG
MDM3QUYyMjVBRUE5MUEwMDc5QjU4MiAvKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmggKi8s
CiAJCQkJMEZDNjgyMDAyMTIxMEIxOTAwM0M2QTEzIC8qIHBhc19tZWdhcGFnZV9jYWNoZS5jICov
LApAQCAtMTczNSwxMyArMTY4MSwxMyBAQAogCQkJCTBGRDQ4QUZEMjNBOUFCQjAwMDI2QzQ2RCAv
KiBwYXNfbW9ub3RvbmljX3RpbWUuaCAqLywKIAkJCQkwRjA5MjI2OTIyQjA3QzIxMDA3RDVEM0Eg
LyogcGFzX211dGF0aW9uX2NvdW50LmggKi8sCiAJCQkJMEY5QTFENEEyNTVGMkNENzAwQzhEMTFC
IC8qIHBhc19vYmplY3Rfa2luZC5oICovLAotCQkJCTBGOUExQ0JBMjU1OTk2MTQwMEM4RDExQiAv
KiBwYXNfcGFnZV9iYXNlLmMgKi8sCi0JCQkJMEY5QTFDQjkyNTU5OTYxMzAwQzhEMTFCIC8qIHBh
c19wYWdlX2Jhc2UuaCAqLywKLQkJCQkwRjlBMUNDMDI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfYmFzZV9jb25maWcuaCAqLywKIAkJCQkwRjlBMUQ0MjI1NUFGNzMyMDBDOEQxMUIgLyogcGFz
X3BhZ2VfYmFzZV9jb25maWdfaW5saW5lcy5oICovLAotCQkJCTBGOUExQ0Q0MjU1OTk2MTYwMEM4
RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBGOUExQ0FCMjU1
OTk2MTIwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggKi8s
CisJCQkJMEY5QTFDRDQyNTU5OTYxNjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0
aWxzLmggKi8sCisJCQkJMEY5QTFDQzAyNTU5OTYxNDAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2Vf
Y29uZmlnLmggKi8sCiAJCQkJMEY5QTFDQUMyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jh
c2VfaW5saW5lcy5oICovLAorCQkJCTBGOUExQ0JBMjU1OTk2MTQwMEM4RDExQiAvKiBwYXNfcGFn
ZV9iYXNlLmMgKi8sCisJCQkJMEY5QTFDQjkyNTU5OTYxMzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jh
c2UuaCAqLywKIAkJCQkwRjlBMUNDNjI1NTk5NjE0MDBDOEQxMUIgLyogcGFzX3BhZ2VfY29uZmln
X2tpbmQuaCAqLywKIAkJCQkwRjlBMUNEQTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2VfZ3Jh
bnVsZV91c2VfY291bnQuaCAqLywKIAkJCQkwRjlBMUNENTI1NTk5NjE2MDBDOEQxMUIgLyogcGFz
X3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggKi8sCkBAIC0xNzUxLDEyICsxNjk3LDEzIEBA
CiAJCQkJMEZDNjgxOEMyMTAyN0I0NzAwM0M2QTEzIC8qIHBhc19wYWdlX21hbGxvYy5jICovLAog
CQkJCTBGQzY4MTg5MjEwMjdCNDYwMDNDNkExMyAvKiBwYXNfcGFnZV9tYWxsb2MuaCAqLywKIAkJ
CQkwRjlBMUNEOTI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmggKi8s
CisJCQkJMEYxOTMyNUIyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfa2luZC5oICovLAogCQkJCTBGMTkzMjVEMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50LmMgKi8sCiAJCQkJMEYxOTMyNUUyMkYxMTkzRDAwRkJBNzEz
IC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCAqLywKLQkJCQkwRjE5MzI1QjIyRjEx
OTNEMDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kLmggKi8sCisJ
CQkJMEZDQkQwMzMyNkFERjkyNTAwRDI2RDY4IC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2
ZW5nZV9yZXN1bHQuaCAqLywKKwkJCQkwRkYyNDhGODIyRkM5RURCMDA3NzIwMkUgLyogcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmggKi8sCiAJCQkJMEZEMjJDRkUyMkNDMDFEMzAw
QjIxODQxIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbC5jICovLAogCQkJCTBGRDIyQ0ZEMjJDQzAx
RDMwMEIyMTg0MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCAqLywKLQkJCQkwRkYyNDhGODIy
RkM5RURCMDA3NzIwMkUgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmggKi8s
CiAJCQkJMEY0RjYxQzkyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9u
X3BhZ2VfbGlzdC5jICovLAogCQkJCTBGNEY2MUM4MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5
bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuaCAqLywKIAkJCQkwRjZENTQ3MzIzQzU3M0UwMDBG
NDBEQkIgLyogcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUuaCAqLywK
QEAgLTE3NzQsMTEgKzE3MjEsMTEgQEAKIAkJCQkwRjVFNDgzNTIzRDY5NjBGMDA0NkRBNUMgLyog
cGFzX3JhY2VfdGVzdF9ob29rcy5oICovLAogCQkJCTBGRDQ4QUY1MjNBOUFCQUYwMDI2QzQ2RCAv
KiBwYXNfcmFuZG9tLmMgKi8sCiAJCQkJMEZENDhCMEYyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19y
YW5kb20uaCAqLywKLQkJCQkwRjE5MzI1MjIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX3JhbmdlLmgg
Ki8sCi0JCQkJMEY2RDU2MzkyM0M3OUQzNzAwRjQwREJCIC8qIHBhc19yYW5nZTE2LmggKi8sCiAJ
CQkJMEY0RjYxQUQyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19yYW5nZV9iZWdpbl9taW5faGVhcC5o
ICovLAogCQkJCTBGRDQ4QUYxMjNBOUFCQUYwMDI2QzQ2RCAvKiBwYXNfcmFuZ2VfbG9ja2VkX21v
ZGUuaCAqLywKIAkJCQkwRjc4MDg4QTIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX3JhbmdlX21pbl9o
ZWFwLmggKi8sCisJCQkJMEYxOTMyNTIyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19yYW5nZS5oICov
LAorCQkJCTBGNkQ1NjM5MjNDNzlEMzcwMEY0MERCQiAvKiBwYXNfcmFuZ2UxNi5oICovLAogCQkJ
CTBGRTdFRTdFMjJBMUE1ODAwMDRGNDE2NiAvKiBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUuaCAq
LywKIAkJCQkwRkU3RUU3QzIyQTFBMzFDMDA0RjQxNjYgLyogcGFzX3JlYWxsb2NhdGVfaGVhcF90
ZWxlcG9ydF9ydWxlLmggKi8sCiAJCQkJMEZGMDhGMzIyMkE1OEYxMjAwMzg2NTc1IC8qIHBhc19y
ZWRfYmxhY2tfdHJlZS5jICovLApAQCAtMTc5Miw2MiArMTczOSw1NSBAQAogCQkJCTBGMTkzMjZC
MjJGNzNFODQwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmMgKi8sCiAJCQkJMEYxOTMyNkEyMkY3
M0U4NDAwRkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuaCAqLywKIAkJCQkwRjY4MTI3MTIyQkQ0QkY0
MDAzNkEwMkIgLyogcGFzX3NlZ21lbnRlZF92ZWN0b3IuaCAqLywKLQkJCQkwRjA0QzIwRTI0NjBE
QjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYyAqLywKLQkJ
CQkwRjA0QzIwMjI0NjBEQjZEMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkuaCAqLywKLQkJCQkwRjA0QzIwQTI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ192aWV3LmMgKi8sCi0JCQkJMEYwNEMyMEMyNDYwREI2RTAwMUQzMUYwIC8qIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oICovLAotCQkJCTBGRDQ4QjFFMjNBOUFCQjIwMDI2
QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYyAqLywKLQkJCQkwRkQ0OEIxQjIzQTlB
QkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmggKi8sCisJCQkJMEYxNDg3
MEEyNjlCNzUxNzAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgg
Ki8sCiAJCQkJMEZENDhCMEMyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9iaXRfcmVmZXJlbmNlLmggKi8sCiAJCQkJMEY1MDhENTIyNThFQ0ZEMzAwMTUxRUQ4IC8q
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kLmggKi8sCiAJCQkJ
MEZENDhBRjgyM0E5QUJBRjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxp
bmVzLmggKi8sCiAJCQkJMEZENDhCMjIyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9raW5kLmggKi8sCisJCQkJMEZENDhCMUUyM0E5QUJCMjAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jICovLAorCQkJCTBGRDQ4QjFCMjNBOUFCQjIwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaCAqLywKKwkJCQkwRkU2NzJCNjI1QzIxRDUz
MDA2RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oICovLAog
CQkJCTBGRDQ4QjE4MjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldy5jICovLAogCQkJCTBGRDQ4QjA2MjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldy5oICovLAotCQkJCTBGRTY3MkI2MjVDMjFENTMwMDZGNjBBMiAvKiBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmggKi8sCi0JCQkJMEYwNEMyMDcy
NDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kLmggKi8sCi0JCQkJMEYwNEMyMDMyNDYwREI2RTAwMUQzMUYwIC8qIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jICovLAotCQkJCTBGMDRDMjA0MjQ2MERCNkUwMDFE
MzFGMCAvKiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCAqLywKLQkJCQkw
RjA0QzIwRjI0NjBEQjZFMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2lubGluZXMuaCAqLywKLQkJCQkwRkM2ODFDMTIxMEY3QzlFMDAzQzZBMTMgLyogcGFz
X3NlZ3JlZ2F0ZWRfaGVhcC5jICovLAotCQkJCTBGQzY4MUM1MjEwRjdDOUYwMDNDNkExMyAvKiBw
YXNfc2VncmVnYXRlZF9oZWFwLmggKi8sCiAJCQkJMEZENDhBRjAyM0E5QUJBRjAwMjZDNDZEIC8q
IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oICovLAogCQkJCTBGREVBNTg3MjI4RjdENEYw
MDg1RTM0MCAvKiBwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9raW5kLmggKi8sCi0JCQkJMEZD
NjgxQjQyMTA2Q0Q3OTAwM0M2QTEzIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuYyAqLywKLQkJCQkw
RkM2ODFBRjIxMDY1QTAwMDAzQzZBMTMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oICovLAorCQkJ
CTBGQzY4MUMxMjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmMgKi8sCisJ
CQkJMEZDNjgxQzUyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc19zZWdyZWdhdGVkX2hlYXAuaCAqLywK
IAkJCQkwRjlBMUQzRTI1NUE1MEQ2MDBDOEQxMUIgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRf
Y29uZmlnLmggKi8sCi0JCQkJMEY5N0U2MkYyMkE5QUFDMTAwQzM1NUY4IC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnLmMgKi8sCi0JCQkJMEY5N0U2MkQyMkE5QTg1RjAwQzM1NUY4IC8qIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmggKi8sCiAJCQkJMEZEQkIwNzgyMkI5ODA1NDAwNkJB
NUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaCAqLywKIAkJCQkwRkQ0
OEIyMzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5j
ICovLAogCQkJCTBGRjhENjI2MjJDMDRBNkQwMEVDNzJGRSAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kLmRlZiAqLywKIAkJCQkwRkRFQTQwQTIyOEI2NDMxMDA4NUUzNDAgLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5oICovLAotCQkJCTBGMDkyMjZCMjJCMkQ4OEUw
MDdENUQzQSAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oICovLAogCQkJCTBG
MDgzRjU4MjJDMjk3OUIwMEYzQ0RCMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGls
c19pbmxpbmVzLmggKi8sCisJCQkJMEYwOTIyNkIyMkIyRDg4RTAwN0Q1RDNBIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggKi8sCiAJCQkJMEY5QTFDOUYyNTU5OTYxMTAwQzhE
MTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCAqLywKKwkJCQkwRjk3
RTYyRjIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyAqLywK
KwkJCQkwRjk3RTYyRDIyQTlBODVGMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcuaCAqLywKIAkJCQkwRkM0RUM3ODIzNTE3MDdCMDBCNzEwQTMgLyogcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9lbXB0aW5lc3Nfa2luZC5oICovLAogCQkJCTBGRjhENjI4MjJDMTY2RjUwMEVDNzJGRSAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCAqLywKKwkJCQkwRkM2ODFCNDIxMDZDRDc5
MDAzQzZBMTMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jICovLAorCQkJCTBGQzY4MUFGMjEwNjVB
MDAwMDNDNkExMyAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmggKi8sCisJCQkJMEZENDhCMkEyM0E5
QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19pbmxpbmVzLmggKi8s
CiAJCQkJMEZENDhCMTEyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlldy5jICovLAogCQkJCTBGRDQ4QUZBMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXcuaCAqLywKLQkJCQkwRkQ0OEIyQTIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGluZXMuaCAqLywKKwkJCQkwRkQ0OEIwMTIzQTlB
QkIwMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxpbmVzLmggKi8s
CiAJCQkJMEZENDhCMEQyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9o
YW5kbGUuYyAqLywKIAkJCQkwRkQ0OEIxQTIzQTlBQkIyMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX2hhbmRsZS5oICovLAotCQkJCTBGRDQ4QjAxMjNBOUFCQjAwMDI2QzQ2RCAvKiBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2lubGluZXMuaCAqLywKIAkJCQkwRkQ0OEFGMzIz
QTlBQkFGMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMg
Ki8sCiAJCQkJMEZENDhCMUMyM0E5QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeS5oICovLAorCQkJCTBGNUU1Q0YxMjNCRkJGQjgwMEFBMEI2RiAvKiBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhCMTcyM0E5
QUJCMjAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMgKi8sCiAJCQkJMEZE
NDhCMjUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmggKi8s
Ci0JCQkJMEY1RTVDRjEyM0JGQkZCODAwQUEwQjZGIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92
aWV3X2lubGluZXMuaCAqLywKKwkJCQkwRjE0ODcxQzI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oICovLAorCQkJCTBGRDQ4QjE5
MjNBOUFCQjIwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
LmggKi8sCiAJCQkJMEZENDhCMjEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5LmMgKi8sCiAJCQkJMEZENDhCMjkyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmggKi8sCi0JCQkJMEZENDhCMTkyM0E5QUJCMjAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCAqLywKLQkJCQkw
RkQ0OEFGQjIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jICovLAotCQkJ
CTBGRDQ4QjBFMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmggKi8sCiAJ
CQkJMEZFNjcyQzYyNUMyMUY2NzAwNkY2MEEyIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2Nh
dG9yX2lubGluZXMuaCAqLywKLQkJCQkwRjA0QzIxMDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pbmxpbmVzLmggKi8sCiAJCQkJMEZENDhCMTQyM0E5QUJCMjAwMjZDNDZE
IC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oICovLAotCQkJCTBGOUExQzlEMjU1OTk2MTEw
MEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggKi8sCisJCQkJ
MEZENDhBRkIyM0E5QUJCMDAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXcuYyAqLywKKwkJ
CQkwRkQ0OEIwRTIzQTlBQkIxMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5oICovLAog
CQkJCTBGOUExQ0RCMjU1OTk2MTYwMEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdl
X2JvdW5kYXJ5X2lubGluZXMuaCAqLywKKwkJCQkwRjlBMUM5RDI1NTk5NjExMDBDOEQxMUIgLyog
cGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeS5oICovLAogCQkJCTBGMThFNjNEMjYy
OEJGQjYwMEY2OTAzRCAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuYyAqLywK
IAkJCQkwRjE4RTYzQzI2MjhCRkI2MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eV9ieV9zaXplLmggKi8sCiAJCQkJMEY2RDU2M0UyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19zaW1w
bGVfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgKi8sCkBAIC0xODU4LDExICsxNzk4LDExIEBA
CiAJCQkJMEZGMDhGM0IyMkE1REM2OTAwMzg2NTc1IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9o
ZWFwLmggKi8sCiAJCQkJMEZERUE1NzYyMjhFMjM0NDAwODVFMzQwIC8qIHBhc19zaW1wbGVfdHlw
ZS5oICovLAogCQkJCTBGOTlGOThCMjVDQjJDRTgwMEVFRTQ0OSAvKiBwYXNfc2l6ZV90aHVuay5o
ICovLAorCQkJCTBGMzFBNjM5MjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0X2lubGlu
ZXMuaCAqLywKIAkJCQkwRjMxQTYzQTIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdC5j
ICovLAogCQkJCTBGMzFBNjNCMjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0LmggKi8s
Ci0JCQkJMEYzMUE2MzkyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3RfaW5saW5lcy5o
ICovLAotCQkJCTBGQzY0MTg0MjEzMERGQjYwMDQwQ0U1RSAvKiBwYXNfc2xvd19wYXRoX21vZGUu
aCAqLywKIAkJCQkwRjQ3RDQwRTIxNDBEQjA1MDA4QzQxRjAgLyogcGFzX3Nsb3dfcGF0aF9tb2Rl
X3ByZWZpeC5oICovLAorCQkJCTBGQzY0MTg0MjEzMERGQjYwMDQwQ0U1RSAvKiBwYXNfc2xvd19w
YXRoX21vZGUuaCAqLywKIAkJCQkwRjZENTQ3ODIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX3NtYWxs
X2xhcmdlX21hcF9lbnRyeS5oICovLAogCQkJCTBGQzY4MjE3MjEyNTM2MjcwMDNDNkExMyAvKiBw
YXNfc25wcmludGYuaCAqLywKIAkJCQkwRkM0RUMzMjIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX3N0
YXR1c19yZXBvcnRlci5jICovLApAQCAtMTg3MSw0OCArMTgxMSw0NSBAQAogCQkJCTBGQzY4MjE5
MjEyNTM2MjcwMDNDNkExMyAvKiBwYXNfc3RyZWFtLmggKi8sCiAJCQkJMEZDNEVDMkUyMzRBOTFF
MjAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgKi8sCiAJCQkJMEZDNEVDMzMyMzRBOTFF
MjAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFtLmggKi8sCi0JCQkJMEY5QTFDRDcyNTU5OTYx
NjAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5jICovLAotCQkJCTBGOUExQ0MyMjU1OTk2MTQw
MEM4RDExQiAvKiBwYXNfc3VicGFnZV9tYXAuaCAqLywKLQkJCQkwRjlBMUM5QzI1NTk5NjExMDBD
OEQxMUIgLyogcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMgKi8sCi0JCQkJMEY5QTFDOTcyNTU5OTYx
MTAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oICovLAotCQkJCTBGQzY4MUM5MjEw
RjdDOUYwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgKi8sCi0JCQkJMEZDNjgx
QzQyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCAqLywKLQkJCQkw
RkM2ODFDMjIxMEY3QzlFMDAzQzZBMTMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQu
YyAqLywKLQkJCQkwRkM2ODFDQTIxMEY3QzlGMDAzQzZBMTMgLyogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXQuaCAqLywKKwkJCQkwRjE0ODcxRTI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggKi8sCiAJCQkJMEZBNUU0NTEyNDky
RDVCOTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYyAqLywK
IAkJCQkwRkE1RTQ1MzI0OTJENUI5MDBDRTk2MkEgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oICovLAorCQkJCTBGQzY4MUMyMjEwRjdDOUUwMDNDNkExMyAvKiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jICovLAorCQkJCTBGQzY4MUNBMjEwRjdDOUYwMDNDNkEx
MyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oICovLAogCQkJCTBGN0Y1MUJDMjMx
NTlFQzAwMDc1NTJBRSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYyAqLywKIAkJCQkw
RjdGNTFCRDIzMTU5RUMwMDA3NTUyQUUgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgg
Ki8sCisJCQkJMEZDNjgxQzkyMTBGN0M5RjAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUuYyAqLywKKwkJCQkwRkM2ODFDNDIxMEY3QzlFMDAzQzZBMTMgLyogcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZS5oICovLAogCQkJCTBGNkQ1NDcxMjNDNTczRTAwMEY0MERCQiAvKiBwYXNfdGlueV9s
YXJnZV9tYXBfZW50cnkuaCAqLywKIAkJCQkwRjMxQTY2OTIzRThFNTk0MDAyQzBDQTMgLyogcGFz
X3RyZWVfZGlyZWN0aW9uLmggKi8sCiAJCQkJMEY4QTgwMEMyNUNGNjRDOTAwNzkwQjRBIC8qIHBh
c190cmlfc3RhdGUuaCAqLywKLQkJCQkwRkU3RUU1QjIyOUUxNEY5MDA0RjQxNjYgLyogcGFzX3Ry
eV9hbGxvY2F0ZS5oICovLAogCQkJCTBGRTdFRTVBMjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfdHJ5
X2FsbG9jYXRlX2FycmF5LmggKi8sCiAJCQkJMEZENDhCMDMyM0E5QUJCMDAwMjZDNDZEIC8qIHBh
c190cnlfYWxsb2NhdGVfY29tbW9uLmggKi8sCiAJCQkJMEZFN0VFNTkyMjlFMTRGOTAwNEY0MTY2
IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZS5oICovLAogCQkJCTBGRTdF
RTVEMjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oICovLAor
CQkJCTBGRTdFRTVCMjI5RTE0RjkwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlLmggKi8sCiAJ
CQkJMEZFN0VFNzgyMkEwNDhCQTAwNEY0MTY2IC8qIHBhc190cnlfcmVhbGxvY2F0ZS5oICovLAog
CQkJCTBGNTlBMzkyMjY2N0YwMEUwMEEzODY1NyAvKiBwYXNfdHJ5X3Nocmluay5oICovLAogCQkJ
CTBGREVBNDc2MjI4QjY1NDMwMDg1RTM0MCAvKiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQu
aCAqLywKLQkJCQkwRkM2ODIzRTIxMjlFRDUxMDAzQzZBMTMgLyogcGFzX3V0aWxpdHlfaGVhcC5j
ICovLAotCQkJCTBGQzY4MjQxMjEyOUVENTEwMDNDNkExMyAvKiBwYXNfdXRpbGl0eV9oZWFwLmgg
Ki8sCiAJCQkJMEZERUE0MjMyMjhCNjQzMzAwODVFMzQwIC8qIHBhc191dGlsaXR5X2hlYXBfY29u
ZmlnLmMgKi8sCiAJCQkJMEZERUE0MUIyMjhCNjQzMjAwODVFMzQwIC8qIHBhc191dGlsaXR5X2hl
YXBfY29uZmlnLmggKi8sCiAJCQkJMEZENDhBRjIyM0E5QUJBRjAwMjZDNDZEIC8qIHBhc191dGls
aXR5X2hlYXBfc3VwcG9ydC5oICovLAorCQkJCTBGQzY4MjNFMjEyOUVENTEwMDNDNkExMyAvKiBw
YXNfdXRpbGl0eV9oZWFwLmMgKi8sCisJCQkJMEZDNjgyNDEyMTI5RUQ1MTAwM0M2QTEzIC8qIHBh
c191dGlsaXR5X2hlYXAuaCAqLywKKwkJCQkwRkM2NDE5NjIxNDBDQURDMDA0MENFNUUgLyogcGFz
X3V0aWxzX3ByZWZpeC5oICovLAogCQkJCTBGQzY4MThGMjEwMjdDNDQwMDNDNkExMyAvKiBwYXNf
dXRpbHMuYyAqLywKIAkJCQkwRkM2ODE4ODIxMDI3QjQ2MDAzQzZBMTMgLyogcGFzX3V0aWxzLmgg
Ki8sCi0JCQkJMEZDNjQxOTYyMTQwQ0FEQzAwNDBDRTVFIC8qIHBhc191dGlsc19wcmVmaXguaCAq
LywKIAkJCQkwRjlBMUNCMTI1NTk5NjEzMDBDOEQxMUIgLyogcGFzX3ZlcnNpb25lZF9maWVsZC5j
ICovLAogCQkJCTBGNjgxMjZGMjJCRDQxOUUwMDM2QTAyQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxk
LmggKi8sCisJCQkJMEY3ODA4ODgyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc192aXJ0dWFsX3Jhbmdl
X21pbl9oZWFwLmggKi8sCiAJCQkJMEY3ODA4ODMyMkZBMjJEMjAwRjM3NDUxIC8qIHBhc192aXJ0
dWFsX3JhbmdlLmMgKi8sCiAJCQkJMEY3ODA4ODIyMkZBMjJEMTAwRjM3NDUxIC8qIHBhc192aXJ0
dWFsX3JhbmdlLmggKi8sCi0JCQkJMEY3ODA4ODgyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc192aXJ0
dWFsX3JhbmdlX21pbl9oZWFwLmggKi8sCiAJCQkJMEZERUE0NkQyMjhCNjU0MzAwODVFMzQwIC8q
IHBhc196ZXJvX21vZGUuaCAqLywKLQkJCQkwRjg3MDBBMjI1QjBBOEMyMDAwRTFBQkYgLyogdGhp
bmd5X2hlYXAuYyAqLywKLQkJCQkwRjg3MDBBMzI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hl
YXAuaCAqLywKIAkJCQkwRjg3MDBBNDI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29u
ZmlnLmMgKi8sCiAJCQkJMEY4NzAwQTUyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwX2Nv
bmZpZy5oICovLAogCQkJCTBGODcwMEExMjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9w
cmVmaXguaCAqLywKKwkJCQkwRjg3MDBBMjI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAu
YyAqLywKKwkJCQkwRjg3MDBBMzI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXAuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gbGlicGFzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTE5MjAsOCArMTg1Nyw4IEBACiAJCTBGRTdFRThDMjJBMURDMzMwMDRGNDE2NiAvKiBtYm1hbGxv
YyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMEY4QTgw
NTQyNUVFQ0JENDAwNzkwQjRBIC8qIG1ibWFsbG9jX2JtYWxsb2MuYyAqLywKIAkJCQkwRjhBODBC
MzI1RjZBNDZDMDA3OTBCNEEgLyogbWJtYWxsb2NfaG90Yml0LmMgKi8sCisJCQkJMEY4QTgwNTQy
NUVFQ0JENDAwNzkwQjRBIC8qIG1ibWFsbG9jX2JtYWxsb2MuYyAqLywKIAkJCQkwRkYwOEY1NTIy
QTg2RTJFMDAzODY1NzUgLyogbWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmUuYyAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gbWJtYWxsb2M7CkBAIC0xOTM5LDE0ICsxODc2LDE0IEBACiAJCTNBNkNB
NjU4MjEwMTI4OTUwMDNFRkRCRiAvKiBQcm9kdWN0cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJMEZCQUU2ODMyNDhFQzFDMDAwMzExRTZGIC8qIGNoYW9z
ICovLAogCQkJCTBGQzY4MURCMjEwRkFDNEIwMDNDNkExMyAvKiB0ZXN0X3BhcyAqLywKLQkJCQkw
RjhBODAzQjI1RUVDQkFGMDA3OTBCNEEgLyogbGlibWJtYWxsb2NfYm1hbGxvYy5keWxpYiAqLywK
LQkJCQkwRjhBODA5NzI1RjZBNDRGMDA3OTBCNEEgLyogbGlibWJtYWxsb2NfaG90Yml0LmR5bGli
ICovLAotCQkJCTBGRjA4RjU0MjJBODZDOUEwMDM4NjU3NSAvKiBsaWJtYm1hbGxvY19pc29fY29t
bW9uX3ByaW1pdGl2ZS5keWxpYiAqLywKLQkJCQkwRjQ0M0I0RTIzNDE3NjE1MDBCRTUwRDEgLyog
bGlibWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmVfdmVyaWZpZWQuZHlsaWIgKi8sCiAJCQkJ
MEZERUE1RDkyMjk1RkM4QzAwODVFMzQwIC8qIGxpYnBhcy5keWxpYiAqLywKKwkJCQkwRkYwOEY1
NDIyQTg2QzlBMDAzODY1NzUgLyogbGlibWJtYWxsb2NfaXNvX2NvbW1vbl9wcmltaXRpdmUuZHls
aWIgKi8sCiAJCQkJMEY0NDNCM0EyMzQxNkE3QzAwQkU1MEQxIC8qIGxpYnBhc192ZXJpZmllci5k
eWxpYiAqLywKKwkJCQkwRjQ0M0I0RTIzNDE3NjE1MDBCRTUwRDEgLyogbGlibWJtYWxsb2NfaXNv
X2NvbW1vbl9wcmltaXRpdmVfdmVyaWZpZWQuZHlsaWIgKi8sCisJCQkJMEZCQUU2ODMyNDhFQzFD
MDAwMzExRTZGIC8qIGNoYW9zICovLAorCQkJCTBGOEE4MDNCMjVFRUNCQUYwMDc5MEI0QSAvKiBs
aWJtYm1hbGxvY19ibWFsbG9jLmR5bGliICovLAorCQkJCTBGOEE4MDk3MjVGNkE0NEYwMDc5MEI0
QSAvKiBsaWJtYm1hbGxvY19ob3RiaXQuZHlsaWIgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFByb2R1
Y3RzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIwMDUsMzY1ICsxOTQyLDM1NCBA
QAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAy
MTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJMEY4QTgwNjcyNUVFQ0MxRDAwNzkwQjRBIC8q
IGJtYWxsb2NfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgwNjkyNUVFQ0MxRDAwNzkw
QjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOEE4MDY1
MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY4QTgwNkIyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9pbm5hcmRzLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODA2QTI1RUVDQzFEMDA3OTBCNEEgLyogYm1hbGxvY19o
ZWFwX3JlZi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgxMDUyNUY2QTc5NTAwNzkwQjRBIC8q
IGhvdGJpdF9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODEwMzI1RjZBNzk1MDA3OTBC
NEEgLyogaG90Yml0X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjhBODEwNjI1
RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY4QTgxMDIyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2lubmFyZHMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRTdFRTc3MjI5RjAxMEYwMDRGNDE2NiAvKiBpc29faGVhcC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNTYyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19oZWFwX2Nv
bmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1RkU3QTQyNUI2MTRGMjAwMTg1OUZDIC8qIGlz
b19oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTE2RUU3MjQ1NjFBNjAwMDRF
MkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjUyOURERjI0
NTU0NjBDMDAzODVBOEMgLyogaXNvX2hlYXBfcmVmLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjVF
NUNFRTIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY1RTVDRUYyM0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXBfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjU5QTM5MzI2NjdGMDBFMDBBMzg2NTcgLyogaml0X2hlYXAuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGNTlBMzk0MjY2N0YwMEUwMEEzODY1NyAvKiBqaXRfaGVhcF9j
b25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNTlBMzk4MjY2ODMxNzQwMEEzODY1NyAvKiBq
aXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkJENjdEQzI1
QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
RkJENjdERDI1QkQzNjNBMDBBNDkwRDIgLyogbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZCRDY3RjEyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2VzaXplNjRrX2hl
YXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQkQ2N0YyMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdl
c2l6ZTY0a19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VERkUyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkU3RUU2NDIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2dldF9oZWFwLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjVFNUNGMjIzQkZCRkI5MDBBQTBCNkYgLyogcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMkUyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tpbmQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGRDQ4QjVCMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZlX3ZpZXdf
dGVtcGxhdGVfbWVtb190YWJsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMzMyMjk2MDE0
MjAwNEY0MTY2IC8qIHBhc19zdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTY1MjI5
RTE0RkEwMDRGNDE2NiAvKiBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEYxNDg3MjMyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYyMTUwRUQyNDg0QkI4
NjAwMEQ2MzRCIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkU3RURGRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsaWduZWRf
YWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwMDIyOTYwMTQyMDA0RjQxNjYg
LyogcGFzX2FsaWdubWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMUIyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY1OUEzOTUyNjY3RjAwRTAwQTM4NjU3IC8qIHBhc19hbGxfaGVhcF9jb25maWdzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkU3RUUwMTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2FsbF9oZWFw
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxQUVDRTkyNjU4MTk2MTAwMEM1MjE4IC8qIHBhc19h
bGxfbWFnYXppbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI2MjIzQTlBQkIzMDAyNkM0
NkQgLyogcGFzX2FsbF9zaGFyZWRfcGFnZV9kaXJlY3Rvcmllcy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY0N0MzMUYyMzM5NkUwQjAwMkExQ0Y3IC8qIHBhc19hbGxvY2F0aW9uX2NhbGxiYWNrcy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3ODA4OTIyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc19hbGxv
Y2F0aW9uX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0N0MzMUEyMzM5NkQxRjAwMkEx
Q0Y3IC8qIHBhc19hbGxvY2F0aW9uX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTAy
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGREJCMDdCMjJCQkZGODMwMDZCQTVGQyAvKiBwYXNfYWxsb2NhdG9yX2NvdW50cy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEYyMTUwRUIyNDg0QkIyQTAwMEQ2MzRCIC8qIHBhc19hbGxv
Y2F0b3JfaW5kZXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkI0N0ZFMjMzMTVBRTUwMDJBNUUw
QyAvKiBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZENDhCM0IyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3IuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRDQ4QjQwMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVf
YWxsb2NhdG9yX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNUEyM0E5QUJCMzAw
MjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNEY2MTY0MjU5QkZCODUwMDhCNEE4MiAvKiBwYXNfYmFzaWNfaGVhcF9jb25maWdfZW51
bWVyYXRvcl9kYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjE2RDI1OUJGRjkxMDA4QjRB
ODIgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jvb3RfZGF0YS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEYzMjlBMjIyM0YxMTMyQjAwQTEzM0M0IC8qIHBhc19iYXNpY19oZWFwX3BhZ2VfY2FjaGVz
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMyOUEyMTIzRjExMzJBMDBBMTMzQzQgLyogcGFzX2Jh
c2ljX2hlYXBfcnVudGltZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzI5QTI0MjNG
MTEzMkIwMEExMzNDNCAvKiBwYXNfYmFzaWNfc2VncmVnYXRlZF9wYWdlX2NhY2hlcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY5QTFEMjMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaWFzaW5nX2Rp
cmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMEIyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlB
MUNGNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGRTdFRTAzMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYml0ZmllbGRf
dmVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjY2RDU0ODI0ODc2MEE4MDBGQzczNDcgLyog
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGNkI0N0ZEMjMzMTVBRTUwMDJBNUUwQyAvKiBwYXNfZGVhbGxvY2F0b3Jfc2Nh
dmVuZ2VfYWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkM0RUMzRjIzNEE5MUUzMDBCNzEw
QTMgLyogcGFzX2ZkX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRTUyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfa2luZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEZFN0VFMEMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19leHRlbmRlZF9n
Y2QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0Y3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
cGFnZV9iYXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlB
MUQyNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFy
eV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQwNzI1NTk5NjE3MDBDOEQxMUIg
LyogcGFzX2JpdGZpdF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1
RkU3QTQyNUI2MTRGMjAwMTg1OUZDIC8qIGlzb19oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGOUExRDA4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMUQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0YzMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjlBMUQwMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rvcnku
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0Y2MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0
Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDE0MjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjlBMUNGRjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRTQyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFD
RkIyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExRDE4MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2hl
YXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0U3MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X21heF9mcmVlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQwMzI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyODI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY1NzA5MTgyNTZBQjIxMTAwMDM3QkIzIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRkEyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFD
RTYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdXRpbHMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGNTcwOTFBMjU2QUI0MTcwMDAzN0JCMyAvKiBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDE3MjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGOUExRDAxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2Vf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjEyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRUQyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5
QTFENDUyNTVEQkU2MTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlld19hbmRfaW5kZXguaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExRDQxMjU1QUYyNzkwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Zp
ZXdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMDQyMjk2MDE0MjAwNEY0MTY2
IC8qIHBhc19iaXR2ZWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTA1MjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY1QjYwODQyMzVFNTcyMDAwQ0FFNjI5IC8qIHBhc19ib290c3RyYXBfaGVhcF9wYWdlX3Byb3Zp
ZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUwODIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X2NhcmVzX2Fib3V0X3NpemVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMUE2NjYyM0U4
QTk0MjAwMkMwQ0EzIC8qIHBhc19jYXJ0ZXNpYW5fdHJlZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZFN0VFMDkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jb2FsaWduLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjE5MzI1MzIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2NvbW1pdF9tb2RlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjlBMUNGNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbW1pdF9zcGFu
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjIxNTBFRDI0ODRCQjg2MDAwRDYzNEIgLyogcGFzX2Nv
bXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
OUExRDQ4MjU1RTI4NDIwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQzQzI1NUE0QkE2MDBDOEQxMUIg
LyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExRDJGMjU1OUJBN0EwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9h
dG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY5QTFEMzEyNTU5QkI1RDAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfaGVh
cF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDM3MjU1QTQ0NzMwMEM4RDExQiAvKiBw
YXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjlBMUQzNjI1NUE0NDczMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZp
dF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDQ0QxNDEyNjU1RTZFNzAwMTcxQTFG
IC8qIHBhc19jb21wYWN0X2F0b21pY19lbnVtZXJhYmxlX3JhbmdlX2xpc3RfY2h1bmtfcHRyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIyNTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2NvbXBh
Y3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2
RDU2NDkyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19wdHIuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGNjZENTQ5MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
MDRDMjI5MjQ2MTFDRkQwMDFEMzFGMCAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxMDIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2hhc2h0YWJsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1
MTZFRTMyNDU2MEZGNTAwNEUyQjhEIC8qIHBhc19pbnRlcm5hbF9jb25maWcuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGNzgwODkzMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFw
X2RlZmVycmVkX2NvbW1pdF9sb2cuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjQwMjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY2RDU2NzEyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX2hlYXBfcGFnZV9zaGFyaW5nX3Bvb2xzX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY2RDU2NkIyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjcyMjNDQkQx
OUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF92aWV3LmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkE1RTQ1QTI0OTJENUJBMDBDRTk2MkEgLyogcGFzX2NvbXBhY3RfYXRv
bWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY2RDU2NjQyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2F0b21pY191bnNpZ25lZF9w
dHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0YxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Y29tcGFjdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY2
MTJEMjU5OTA4NzcwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0ZWRfaGVhcHMuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGODcwMEE2MjVCMEE4QzIwMDBFMUFCRiAvKiB0aGluZ3lfaGVh
cF9wcmVmaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDM4MjU1QTQ0NzMwMEM4RDExQiAv
KiBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEY5QTFEM0QyNTVBNEJBNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMzkyNTVBNDQ3MzAwQzhEMTFC
IC8qIHBhc19jb21wYWN0X2JpdGZpdF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2
RDU2NDgyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X2Jvb3RzdHJhcF9mcmVlX2hlYXAu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MUMwMjVBNENCMDkwMDhCNEE4MiAvKiBwYXNfY29t
cGFjdF9jYXJ0ZXNpYW5fdHJlZV9ub2RlX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2
NzAyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBfcHRyLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjZENTY2ODIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfaGVhcF9yZXNl
cnZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2NkQ1NDUyNDg3NjBBODAwRkM3MzQ3IC8q
IHBhc19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjlBMUQyNzI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfcGFnZV9ncmFudWxlX3Vz
ZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjQ3MjNDQUExQkEwMEY0MERC
QiAvKiBwYXNfY29tcGFjdF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNjZENTQ4MjQ4NzYw
QTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3B0
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMjgyNDYxMUNGRDAwMUQzMUYwIC8qIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY2RDU2NzcyM0NDMTQxRTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfaGVhcF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjY3MjNDQkQxOUQwMEY0MERC
QiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9wdHIuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjZEMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGMDhG
NEEyMkE4NDQ2QjAwMzg2NTc1IC8qIHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRkNGQTQ5QTIzODM1MkVDMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJp
bmdfcG9vbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMDQyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19iaXR2ZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDJEMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1
NjY1MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3ZpZXcuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGMzFBNjQwMjNEQ0Y4NDgwMDJDMENBMyAvKiBwYXNfY29tcGFjdF9z
a2lwX2xpc3Rfbm9kZV9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzFBNjQ2MjNFNEM0NDEw
MDJDMENBMyAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjlBMUQwRjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbXBhY3Rfc3VicGFn
ZV9tYXBfZW50cnlfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTY0RTIzQ0FCQTY1MDBG
NDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGOUExRDFFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9n
cmFudWxlX3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NjRCMjNDQUEx
QkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcHRyLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjZENTY3OTIzQ0Q3MDU5MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVk
X3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2NjIyM0NCRDE5RDAwRjQwREJCIC8qIHBh
c19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZDNEVDMzkyMzRB
OTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMEEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jb25maWcu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGODVFRkRBMjJFMkJFQzcwMDNBMzYyQiAvKiBwYXNfY29u
ZmlnX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNDUyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19jb3VudF9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMjlBMkIy
M0YxRDYzNjAwQTEzM0M0IC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRo
X3Jlc2VydmVkX21lbW9yeS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNjYyMjlFMTRGQTAw
NEY0MTY2IC8qIHBhc19kZWFsbG9jYXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkZGRDUxNTI1
NkIwRkJEMDAxRUI5NEMgLyogcGFzX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkU3RUUwQjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2RlYWxsb2NhdG9yLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjZCNDdGRDIzMzE1QUU1MDAyQTVFMEMgLyogcGFzX2RlYWxsb2NhdG9y
X3NjYXZlbmdlX2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzNzNFNTIyNjU5RUE1RTAw
MzRCQTk2IC8qIHBhc19kZWJ1Z19oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkJDNjJDMzI2
NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjRGNjFCMDI1QTNEMEJCMDA4QjRBODIgLyogcGFzX3B0cl9taW5faGVhcC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY0RjYxNDcyNTlCQjEwOTAwOEI0QTgyIC8qIHBhc19wdHJfaGFzaF9zZXQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFREZFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxp
Z25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFQTQ1QzIyMzZD
RTg5RDAwQjVBMzc1IC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZEMjJDRkMyMkNBRjE2NDAwQjIxODQxIC8qIHBhc19taW5faGVhcC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY3ODA4OUIyMkZBNkYwODAwRjM3NDUxIC8qIHBhc19kZWZlcnJl
ZF9kZWNvbW1pdF9sb2cuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0U5MjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkQ0OEIzRTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3RyeV9hbGxvY2F0ZV9jb21t
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDAyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
Yml0Zml0X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCMkMyM0E5QUJCMzAw
MjZDNDZEIC8qIHBhc19yYW5nZV9sb2NrZWRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5
QTFEMjcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3BhZ2VfZ3JhbnVsZV91c2VfY291
bnRfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxNDIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2hlYXBfcmVmX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1OUEzOTQyNjY3RjAw
RTAwQTM4NjU3IC8qIGppdF9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1MzE4
MEYyMkM5NTI5NDAwM0Y3QjZBIC8qIHBhc19mb3VuZF9pbmRleC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEZFN0VFMkQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zbG93X3BhdGhfbW9kZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY4NzkyQjMyMzhBMUQwQzAwQUVFN0YxIC8qIHBhc19oZWFwX3JlZl9r
aW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVCNjA4NDIzNUU1NzIwMDBDQUU2MjkgLyogcGFz
X2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4
QjU4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkU3RUU1NjIyOTc0MzM1MDA0RjQxNjYgLyogaXNvX2hlYXBfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkM4NDc5NTIzMkQ2OTQ5MDBCMzg2QjYgLyogcGFzX2xhcmdlX3No
YXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOTMy
NjkyMkYzQjNGMzAwRkJBNzEzIC8qIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19jYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NkYyM0NCRDE5RDAwRjQwREJCIC8q
IHBhc19oZWFwX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RURGRDIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX3NpbXBsZV90eXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjA4
M0Y1QTIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdXRpbHNf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMjlBMjQyM0YxMTMyQjAwQTEzM0M0IC8q
IHBhc19iYXNpY19zZWdyZWdhdGVkX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkU3RUU3RjIyQTFBNTgwMDA0RjQxNjYgLyogcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjVCODNCQzI0OTE4ODhBMDBGNDEwNTIgLyogcGFzX2Rlc2lnbmF0
ZWRfaW50cmluc2ljX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNjgxMjcwMjJCRDQxOUUw
MDM2QTAyQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3
RUUwMzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2JpdGZpZWxkX3ZlY3Rvci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFN0VFMTEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjZCMjNDQkQxOUQwMEY0MERC
QiAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfcHRyLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkY4RDYyOTIyQzE2NkY1MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVCNjY2NTIzMUIyQTU3MDA5
QzAwMUIgLyogcGFzX2hlYXBfc3VtbWFyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMDUy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NUI4M0JGMjQ5MTg5OUUwMEY0MTA1MiAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlFOTQ2NzIzNDY2MEQ0MDA5RkFGREQgLyog
cGFzX2R5bGRfc3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUE0NUMyMjM2Q0U4OUQwMEI1
QTM3NSAvKiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGMzI5QTJEMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2lu
dG9fcmVzZXJ2ZWRfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMyOUEyRTIzRjFENjM2
MDBBMTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTBGNEY2MUIxMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9wYWdl
X21hbGxvYy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxQjUyNUEzRDBCQjAwOEI0QTgyIC8q
IHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MTc4
MjU5RDEwNjUwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY0RjYxQUUyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfaW5p
dGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRGNjExMTI1
OTdGODFFMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEY0RjYxMkQyNTk5MDg3NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfc2VncmVn
YXRlZF9oZWFwcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxQjMyNUEzRDBCQjAwOEI0QTgy
IC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0YS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZFN0VFMzEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTY2MjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZGVh
bGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMjkyNTU5OTYxNzAwQzhEMTFCIC8q
IHBhc19wYWdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGREJCMDczMjJCODc1QTYwMDZC
QTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9tb2RlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkQ0OEI0NTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2NvdW50X2xvb2t1cF9tb2RlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY0RTIzQ0FCQTY1MDBGNDBEQkIgLyogcGFzX2NvbXBh
Y3RfdGFnZ2VkX2F0b21pY19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTFFMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJlZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhC
NTUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGREJCMDdCMjJCQkZGODMwMDZCQTVGQyAvKiBwYXNfYWxsb2NhdG9y
X2NvdW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDNEVDM0QyMzRBOTFFMzAwQjcxMEEzIC8q
IHBhc19zdGF0dXNfcmVwb3J0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTc5MjJBMDQ4
QkIwMDRGNDE2NiAvKiBwYXNfdHJ5X3JlYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RTdFRTNCMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfemVyb19tb2RlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkNDRDE0MTI2NTVFNkU3MDAxNzFBMUYgLyogcGFzX2NvbXBhY3RfYXRvbWljX2VudW1l
cmFibGVfcmFuZ2VfbGlzdF9jaHVua19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTMy
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc25wcmludGYuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
MzFBNjQwMjNEQ0Y4NDgwMDJDMENBMyAvKiBwYXNfY29tcGFjdF9za2lwX2xpc3Rfbm9kZV9wdHIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTAyMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxs
b2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRkZENTE1MjU2QjBGQkQwMDFF
Qjk0QyAvKiBwYXNfZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUEx
RDIwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9oZWFkZXJfcGxhY2VtZW50X21vZGUuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzFGMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxf
dmlld19jYWNoZV9ub2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNFQjI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY0RjYxMDUyNTk3QUY4NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjRGNjE4MTI1OUU3MzRGMDA4QjRBODIgLyogcGFzX2VudW1lcmF0
b3JfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNEY2MTFDMjU5ODM4QjEwMDhCNEE4
MiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMTkzMjU0
MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4
QjVCMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190
YWJsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMEMyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19leHRlbmRlZF9nY2QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRjA4RjQ0MjJBNjI3QzEwMDM4
NjU3NSAvKiBwYXNfZmFzdF9sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
OUExRDA0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9jYWNoZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY5QTFEMTYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X21lZ2Fw
YWdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDE5MjU1OTk2MTcwMEM4RDExQiAv
KiBwYXNfZmFzdF9tZWdhcGFnZV90YWJsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRkUy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOUExQ0U1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9wYXRo
X2FsbG9jYXRpb25fcmVzdWx0X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQjU3MDZCMjY3
RDAzQ0QwMDgwRkE4QiAvKiBwYXNfZmFzdF90bHMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzRF
QzNGMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfZmRfc3RyZWFtLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjZENTQ3RjIzQzU3M0UxMDBGNDBEQkIgLyogcGFzX2ZpcnN0X2xldmVsX3RpbnlfbGFyZ2Vf
bWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI1MTIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX2ZvdW5kX2JpdF9pbmRleC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1MzE4MEYyMkM5
NTI5NDAwM0Y3QjZBIC8qIHBhc19mb3VuZF9pbmRleC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5
QTFEMkMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjE5MzI1ODIyRUQwNEE2MDBGQkE3MTMgLyogcGFzX2ZyZWVfbW9kZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZENDhCNEUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19mcmVlX3Jhbmdl
X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjU4MjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfZnVsbF9hbGxvY19iaXRzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzQTIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRkYwOEYzQTIyQTVCNDAzMDAzODY1NzUgLyogcGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9o
ZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUU2MDIyOUUxNEZBMDA0RjQxNjYgLyogcGFz
X2dldF9hbGxvY2F0aW9uX3NpemUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTY0MjI5RTE0
RkEwMDRGNDE2NiAvKiBwYXNfZ2V0X2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDRE
MjU1RjJDRDcwMEM4RDExQiAvKiBwYXNfZ2V0X29iamVjdF9raW5kLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjlBMUQ0RjI1NjMwNUI0MDBDOEQxMUIgLyogcGFzX2dldF9wYWdlX2Jhc2UuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGMTUxOEZEMjM0NDFFMzIwMDgzMkI1QyAvKiBwYXNfaGFzX29iamVj
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMTAyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19o
YXNodGFibGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTE2MjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMTIyMjk2MDE0MjAwNEY0MTY2
IC8qIHBhc19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwNEMyMUQyNDYwREI2
RjAwMUQzMUYwIC8qIHBhc19oZWFwX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjZENTY2RjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2hlYXBfY29uZmlnX2tpbmQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGMDkyMjZFMjJCMkQ5MDkwMDdENUQzQSAvKiBwYXNfaGVhcF9jb25m
aWdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTAwMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfYWxpZ25tZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQxRDI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYwODNGNUIyMkMyOTc5QjAwRjNDREIzIC8qIHBhc19oZWFwX2NvbmZpZ191dGlsc19pbmxp
bmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkMyRkQzODIzNzYxNTEzMDA1M0RENDEgLyogcGFz
X2hlYXBfZm9yX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCNjkyM0I2QUVENTAw
MjZDNDZEIC8qIHBhc19oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNDdDMzFC
MjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfaGVhcF9raW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjRGNjFCMTI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFibGVfcGFnZV9tYWxsb2MuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRTdFRTA5MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY29hbGln
bi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOTMyNjMyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTEzMjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9sb2NrLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjZE
Qjg4QzIzNUU1NEE2MDA2OUNBREIgLyogcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VFMTUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19oZWFwX3JlZi5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY4NzkyQjMyMzhBMUQwQzAwQUVFN0YxIC8qIHBhc19oZWFwX3Jl
Zl9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUxNDIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2hlYXBfcmVmX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMjlBMjMyM0YxMTMy
QjAwQTEzM0M0IC8qIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkVCNjY2NTIzMUIyQTU3MDA5QzAwMUIgLyogcGFzX2hlYXBfc3VtbWFyeS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY2RDU0N0UyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQkwRjZENTQ4MjIzQzU4MUMxMDBGNDBEQkIgLyogcGFzX2hlYXBf
dGFibGVfc3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjQ0MjNBOUFCQjMwMDI2QzQ2
RCAvKiBwYXNfaW1tb3J0YWxfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhCMzcyM0E5
QUJCMzAwMjZDNDZEIC8qIHBhc19pbW11dGFibGVfdmVjdG9yLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjUxNkVFMzI0NTYwRkY1MDA0RTJCOEQgLyogcGFzX2ludGVybmFsX2NvbmZpZy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZFN0VFMUEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRjA4RjRBMjJBODQ0NkIw
MDM4NjU3NSAvKiBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEZFN0VFMUUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9mcmVlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkU3RUUxQzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWVfaGVh
cF9jb25maWcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNjZENTRCMjQ4NzYwQUYwMEZDNzM0NyAv
KiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjc4MDg5MzIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJl
ZF9jb21taXRfbG9nLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjY2RDU0QzI0ODc2MEI0MDBGQzcz
NDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZpbml0aW9ucy5kZWYgaW4gSGVhZGVycyAqLywK
KwkJCQkwRjRGNjE2RDI1OUJGRjkxMDA4QjRBODIgLyogcGFzX2Jhc2ljX2hlYXBfY29uZmlnX3Jv
b3RfZGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1RTQ4MzcyM0Q2OTYwRjAwNDZEQTVDIC8q
IHBhc19yYWNlX3Rlc3RfaG9va3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMDkyMjZBMjJCMDdD
MjEwMDdENUQzQSAvKiBwYXNfbXV0YXRpb25fY291bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NkQ1NDc5MjNDNTczRTEwMEY0MERCQiAvKiBwYXNfdGlueV9sYXJnZV9tYXBfZW50cnkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGOUExRDE0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI2MDIzQTlBQkIzMDAy
NkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGQ0JEMDM0MjZBREY5MjUwMEQyNkQ2OCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVu
Z2VfcmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyRjI1NTlCQTdBMDBDOEQxMUIg
LyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNkQ1NjQ3MjNDQUExQkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9w
dHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1NjY0MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNf
Y29tcGFjdF9hdG9taWNfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVCNjA5
MjIzNUU4OEVGMDBDQUU2MjkgLyogcGFzX3Jlc2VydmVkX21lbW9yeV9wcm92aWRlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEY2RDU2NzkyM0NENzA1OTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Rh
Z2dlZF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjM1MjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNjZENTQ2MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBl
cnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRjAwRDM4MjM3NzZENjUwMEMyMEFDMCAvKiBwYXNf
bGFyZ2VfZnJlZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkYwOEY0MDIyQTVGNjU1
MDAzODY1NzUgLyogcGFzX2xhcmdlX2ZyZWVfdmlzaXRvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MEZFN0VFMUYyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9oZWFwLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjE5MzI2OTIyRjNCM0YzMDBGQkE3MTMgLyogcGFzX2xhcmdlX2hlYXBfcGh5c2lj
YWxfcGFnZV9zaGFyaW5nX2NhY2hlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUyMDIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX21hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZDNEVD
MzkyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNr
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMEQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191
dGlsaXR5X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI1QTIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZCRDY3REQyNUJEMzYzQTAwQTQ5MEQyIC8qIG1pbmFsaWduMzJfaGVhcF9jb25maWcu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0Y1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYmlh
c2luZ19kaXJlY3Rvcnlfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMjEyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZEQkIwNzkyMkI5ODA1NDAwNkJBNUZDIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lu
bGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDJDMjU1OTk2MTcwMEM4RDExQiAvKiBw
YXNfZnJlZV9ncmFudWxlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEM0YyNTVBNTBENjAw
QzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfYW5kX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZGMDhGNDgyMkE3NjNGMTAwMzg2NTc1IC8qIHBhc19sYXJnZV9tYXBfZW50cnkuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGQ0ZBNDlBMjM4MzUyRUMwMENDRDcyNiAvKiBwYXNfbGFyZ2Vf
c2hhcmluZ19wb29sLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkM4NDc5NTIzMkQ2OTQ5MDBCMzg2
QjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEY2RDU0N0EyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19sYXJnZV91dGlsaXR5
X2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4QTgwMjkyNUVDNTg4ODAwNzkwQjRB
IC8qIHBhc19saW5lX3dvcmRfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjMxQTY0NDIz
RTM1MDlFMDAyQzBDQTMgLyogcGFzX2xpc3RfZGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkRCQjA3NTIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZENDhCM0QyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19sb2NhbF9hbGxv
Y2F0b3JfY29uZmlnX2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGREJCMDc3MjJCODc3RkEw
MDZCQTVGQyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGODcwMEFBMjVCMEE4QzMwMDBFMUFCRiAvKiB0aGluZ3lfaGVhcF9jb25maWcuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGRDQ4QjM3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfaW1tdXRhYmxl
X3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFENEYyNTYzMDVCNDAwQzhEMTFCIC8q
IHBhc19nZXRfcGFnZV9iYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTQ4MjIzQzU4MUMx
MDBGNDBEQkIgLyogcGFzX2hlYXBfdGFibGVfc3RhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
OUExRDREMjU1RjJDRDcwMEM4RDExQiAvKiBwYXNfZ2V0X29iamVjdF9raW5kLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkU3RUUxNTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfcmVmLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjZENTYzQTIzQzc5RDM3MDBGNDBEQkIgLyogcGFzX3JhbmdlMTYu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzExMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29t
cGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGNkQ1NjRCMjNDQUExQkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcHRy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhBODAyQTI1RUM1ODg4MDA3OTBCNEEgLyogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9saW5lLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkRCQjA3MzIyQjg3NUE2
MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfbW9kZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFN0VFMEUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVzdWx0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUyMTIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2xvY2suaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRUE0NUJEMjM2Q0Q1QUMwMEI1QTM3NSAv
KiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGOEE4MDBEMjVDRjY0QzkwMDc5MEI0QSAvKiBwYXNfdHJpX3N0YXRlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjZENTY0ODIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYm9vdHN0
cmFwX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxODEyNTlFNzM0RjAwOEI0
QTgyIC8qIHBhc19lbnVtZXJhdG9yX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU2
NzJDNzI1QzIxRjY3MDA2RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEQkIwNzUyMkI4NzVBNjAwNkJBNUZDIC8qIHBh
c19sb2NhbF9hbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjUxMjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfZm91bmRfYml0X2luZGV4LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjg1
RUZEQTIyRTJCRUM3MDAzQTM2MkIgLyogcGFzX2NvbmZpZ19wcmVmaXguaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGOUU5NDU5MjM0NTIyNjIwMDlGQUZERCAvKiBwYXNfbG9nLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjA0QzIxQTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX21hZ2F6aW5lLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjAzN0FGNDI1QUVBOTFBMDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdh
cGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMjIyMjk2MDE0MjAwNEY0MTY2
IC8qIHBhc19tZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZEMjJDRkMyMkNB
RjE2NDAwQjIxODQxIC8qIHBhc19taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZENDhC
MzgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19tb25vdG9uaWNfdGltZS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEYwOTIyNkEyMkIwN0MyMTAwN0Q1RDNBIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFENEMyNTVGMkNENzAwQzhEMTFCIC8qIHBhc19vYmplY3Rf
a2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMDUyNTU5OTYxNzAwQzhEMTFCIC8qIHBh
c19wYWdlX2Jhc2UuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExRDBDMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU2NkQy
M0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRy
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhBODEwMzI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0
X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTQ4MDIzQzU3M0UxMDBGNDBE
QkIgLyogcGFzX3NtYWxsX2xhcmdlX21hcF9lbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5
QTFENDMyNTVBRjczMjAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX2lubGluZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGNDdDMzFCMjMzOTZEMUYwMDJBMUNGNyAvKiBwYXNfaGVhcF9r
aW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjc4MDg5MjIyRkE1MzQxMDBGMzc0NTEgLyogcGFz
X2FsbG9jYXRpb25fY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyODI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEZENDhCNTQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4MDY1MjVFRUNDMUQwMDc5MEI0QSAv
KiBibWFsbG9jX2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMzgyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
OUExRDM5MjU1QTQ0NzMwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9iaXRmaXRfdmlld19wdHIuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGMTQ4NzIxMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjlBMUQzRDI1NUE0QkE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI0NDIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX2ltbW9ydGFsX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4MDY5MjVFRUND
MUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjZENTY0OTIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3B0ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY5QTFEMUYyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2Vf
Y29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUNGNzI1NTk5NjE3MDBDOEQx
MUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJMEY5QTFDRjgyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2Jhc2VfaW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxQjcyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19yYW5n
ZV9iZWdpbl9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOTMyNkMyMkY3M0U4NTAw
RkJBNzEzIC8qIHBhc19zY2F2ZW5nZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDEyMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMEY5QTFEMjUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQyRDI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjlBMUQyOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2Vfa2luZC5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VFMjcyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19wYWdlX21hbGxvYy5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMjQyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdl
X3NoYXJpbmdfbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxOTMyNjMyMkYxMTkzRDAwRkJB
NzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGMTkzMjYwMjJGMTE5M0QwMEZCQTcxMyAvKiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50
X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDIyQ0ZGMjJDQzAxRDMwMEIyMTg0MSAvKiBw
YXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRjI0OEZBMjJGQzlF
REIwMDc3MjAyRSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGMTQ4NzE1MjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGMDBEMzgy
Mzc3NkQ2NTAwQzIwQUMwIC8qIHBhc19sYXJnZV9mcmVlX2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRDQ4QjNDMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
aGFuZGxlX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDMxMjU1OUJCNUQwMEM4
RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2hlYXBfcHRyLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkE1RTQ1ODI0OTJENUJBMDBDRTk2MkEgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMjEyMjk2MDE0MjAwNEY0
MTY2IC8qIHBhc19sb2NrLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQwNDI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
RDQ4QjRFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnJlZV9yYW5nZV9raW5kLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkU3RUUzNTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgxMDYyNUY2QTc5NTAwNzkwQjRBIC8qIGhv
dGJpdF9oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNzgwODkwMjJGQTUzNDEw
MEYzNzQ1MSAvKiBwYXNfcmFuZ2VfbWluX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMjE1
MEVCMjQ4NEJCMkEwMDBENjM0QiAvKiBwYXNfYWxsb2NhdG9yX2luZGV4LmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjlBMUQxODI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9oZWFwLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzQjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5l
X2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4NzAwQTgyNUIwQThDMjAwMEUxQUJG
IC8qIHRoaW5neV9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY3MjIzQ0JEMTlEMDBG
NDBEQkIgLyogcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY1MjlEREYyNDU1NDYwQzAwMzg1QThDIC8qIGlzb19oZWFwX3JlZi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY0RjYxQ0EyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jl
c2VydmF0aW9uX3BhZ2VfbGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOTMyNTMyMkVEMDRB
NjAwRkJBNzEzIC8qIHBhc19jb21taXRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGMDhG
NDQyMkE2MjdDMTAwMzg2NTc1IC8qIHBhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY5QTFENDEyNTVBRjI3OTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlld19p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQzNzI1NUE0NDczMDBDOEQxMUIgLyog
cGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY2RDU0N0IyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfc3lu
Y2hyb25pemF0aW9uX3N0eWxlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjc4MDg4NzIyRkEyRTQ5
MDBGMzc0NTEgLyogcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFN0VFMjkyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19wcmltaXRpdmVfaGVhcF9y
ZWYuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0Y5MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
cHJvbW90ZV9pbnRyaW5zaWNfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0RjYxNUIyNTlC
RjZFQzAwOEI0QTgyIC8qIHBhc19wdHJfaGFzaF9tYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBG
NEY2MTQ3MjU5QkIxMDkwMDhCNEE4MiAvKiBwYXNfcHRyX2hhc2hfc2V0LmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRjRGNjFCMDI1QTNEMEJCMDA4QjRBODIgLyogcGFzX3B0cl9taW5faGVhcC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYxNTIyNTlCQzMzMzAwOEI0QTgyIC8qIHBhc19wdHJfd29y
a2xpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUU0ODM3MjNENjk2MEYwMDQ2REE1QyAvKiBw
YXNfcmFjZV90ZXN0X2hvb2tzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI0QTIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX3JhbmRvbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYxOTMyNTkyMkVE
MDRBNjAwRkJBNzEzIC8qIHBhc19yYW5nZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2RDU2M0Ey
M0M3OUQzNzAwRjQwREJCIC8qIHBhc19yYW5nZTE2LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjRG
NjFCNzI1QTNEMEJCMDA4QjRBODIgLyogcGFzX3JhbmdlX2JlZ2luX21pbl9oZWFwLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkQ0OEIyQzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3JhbmdlX2xvY2tl
ZF9tb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjc4MDg5MDIyRkE1MzQxMDBGMzc0NTEgLyog
cGFzX3JhbmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUU3RjIyQTFBNTgw
MDA0RjQxNjYgLyogcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjlBMUNGNDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkQ0OEI2NTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjA4RjNBMjJBNUI0MDMw
MDM4NjU3NSAvKiBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAor
CQkJCTBGNkQ1NjY3MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3No
YXJlZF9wYWdlX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzFBNjY2MjNF
OEE5NDIwMDJDMENBMyAvKiBwYXNfY2FydGVzaWFuX3RyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNjZENTQ5MjQ4NzYwQTgwMEZDNzM0NyAvKiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQkQ2N0YyMjVCRTA3
ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFN0VFN0QyMkExQTMxQzAwNEY0MTY2IC8qIHBhc19yZWFsbG9jYXRlX2hlYXBfdGVsZXBv
cnRfcnVsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEQkIwNzcyMkI4NzdGQTAwNkJBNUZDIC8q
IHBhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhC
NTcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEM0MyNTVBNEJBNjAwQzhEMTFCIC8qIHBhc19j
b21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRjMyOUEyMTIzRjExMzJBMDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hlYXBfcnVudGlt
ZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTJGMjI5NjAxNDIwMDRGNDE2NiAv
KiBwYXNfc2VncmVnYXRlZF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUNGOTI1NTk5
NjE3MDBDOEQxMUIgLyogcGFzX3Byb21vdGVfaW50cmluc2ljX2hlYXAuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRDQ4QjM4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGMzI5QTJEMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJl
X2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RjMyOUEyMjIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXMuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGMzFBNjQ2MjNFNEM0NDEwMDJDMENBMyAvKiBwYXNfY29tcGFj
dF9za2lwX2xpc3Rfbm9kZV9wdHJfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkVBNDVCRDIz
NkNENUFDMDBCNUEzNzUgLyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRjMxQTY2QTIzRThFNTk0MDAyQzBDQTMgLyogcGFzX3RyZWVf
ZGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEIzRDIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYxNDg3MTIyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjQ3QzMxQTIzMzk2RDFGMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25f
a2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMDhGMzMyMkE1OEYxMjAwMzg2NTc1IC8qIHBh
c19yZWRfYmxhY2tfdHJlZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMDEyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc19hbGxfaGVhcHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQTVFNDU3MjQ5
MkQ1QkEwMENFOTYyQSAvKiBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRjVCNjA5MjIzNUU4OEVGMDBDQUU2MjkgLyogcGFzX3Jlc2VydmVk
X21lbW9yeV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY0RjYwRkIyNTk3OUJDODAw
OEI0QTgyIC8qIHBhc19yb290LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjE5MzI2QzIyRjczRTg1
MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2ODEyNzIy
MkJENEJGNDAwMzZBMDJCIC8qIHBhc19zZWdtZW50ZWRfdmVjdG9yLmggaW4gSGVhZGVycyAqLywK
LQkJCQkwRjA0QzIxNDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMDRDMjFFMjQ2MERCNkYwMDFEMzFGMCAv
KiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4
QjU2MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTBGRDQ4QjQ3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY1MDhENTMyNThF
Q0ZEMzAwMTUxRUQ4IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9r
aW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzMzIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOEE4
MDY3MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNDVENUE5MjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGQkQ2N0YxMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0
a19oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxQzIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjVE
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEZENDhCNDEyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU2NzJCNzI1QzIxRDUzMDA2
RjYwQTIgLyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEYwNEMyMTkyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIx
NjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjA0QzIyMTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGRTdFRTJGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9oZWFwLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjAzN0FGNDI1QUVBOTFBMDA3OUI1ODIgLyogcGFzX21lZGl1bV9t
ZWdhcGFnZV9jYWNoZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2NkQ1NDUyNDg3NjBBODAwRkM3
MzQ3IC8qIHBhc19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAq
LywKKwkJCQkwRkU3RUUzQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkU3RUU2MTIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX3RyeV9hbGxvY2F0ZV9p
bnRyaW5zaWNfcHJpbWl0aXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQwQzI1NTk5NjE3
MDBDOEQxMUIgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NTlBMzk4MjY2ODMxNzQwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWdfcm9vdF9kYXRhLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjRGNjExMTI1OTdGODFFMDA4QjRBODIgLyogcGFzX2VudW1lcmF0
ZV9sYXJnZV9oZWFwcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMzQyMjk2MDE0MjAwNEY0
MTY2IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjE0ODcxMDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9u
X21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTYyMjI5RTE0RkEwMDRGNDE2NiAvKiBw
YXNfdHJ5X2FsbG9jYXRlX2FycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUyOTIyOTYw
MTQyMDA0RjQxNjYgLyogcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEYxOTMyNTQyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19lcG9jaC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEY4QTgwNkEyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9yZWYuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGOUExRDAzMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3Bh
Z2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNkQ1Njc3MjNDQzE0MUUwMEY0MERCQiAvKiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2hlYXBfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjMxQTYz
RTIzRENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY3ODA4OEUyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc192aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUzOTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxz
X3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZENDhCMkIyM0E5QUJCMzAwMjZDNDZEIC8q
IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VF
MkUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tpbmQuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGRTdFRTMxMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjlBMUQzRjI1NUE1MEQ2MDBDOEQxMUIg
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9hbmRfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJCQkw
Rjk3RTYyRTIyQTlBODVGMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCBp
biBIZWFkZXJzICovLAotCQkJCTBGREJCMDc5MjJCOTgwNTQwMDZCQTVGQyAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkY4RDYyNzIy
QzA0QTc3MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5kZWYgaW4g
SGVhZGVycyAqLywKLQkJCQkwRkU3RUUxMTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYwOTIyNkMyMkIyRDg4
RTAwN0Q1RDNBIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjA4M0Y1QTIyQzI5NzlCMDBGM0NEQjMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfdXRpbHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFDRUIyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGQzRFQzc5MjM1MTcwN0IwMEI3MTBBMyAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2VtcHRpbmVzc19raW5kLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkY4RDYyOTIyQzE2
NkY1MDBFQzcyRkUgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKLQkJCQkwRkQ0OEIzNTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI2NTIzQTlBQkIzMDAyNkM0NkQgLyog
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGRDQ4QjU1MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEIzQzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0
OEI1NzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ0OEI2MDIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNUU1Q0YyMjNC
RkJGQjkwMEFBMEI2RiAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkQ0OEI2NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjU0MjNBOUFCQjMw
MDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkQ0OEI0OTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
dmlldy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFNjcyQzcyNUMyMUY2NzAwNkY2MEEyIC8qIHBh
c19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTBGMDRDMjIyMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfc2VncmVnYXRlZF92aWV3X2lubGluZXMu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjRGMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF92aWV3X2tpbmQuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGOUExQ0U5MjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRjlBMUQyNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3NoYXJlZF9oYW5kbGVf
b3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjE4RTYzRTI2
MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjc4MDg4NzIyRkEyRTQ5MDBGMzc0NTEgLyogcGFzX3BoeXNpY2Fs
X21lbW9yeV90cmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYwRkIyNTk3OUJD
ODAwOEI0QTgyIC8qIHBhc19yb290LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjQ3QzMxRjIzMzk2
RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjlBMUQ0QzI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX29iamVjdF9raW5kLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjZENTY2MjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdW5z
aWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkM0RUMzQzIzNEE5MUUzMDBCNzEwQTMg
LyogcGFzX3N0cmluZ19zdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGQjU3MDZCMjY3RDAz
Q0QwMDgwRkE4QiAvKiBwYXNfZmFzdF90bHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1NjRD
MjNDQUExQkEwMEY0MERCQiAvKiBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxwZXJzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRkYwOEYzRDIyQTVEQzY5MDAzODY1NzUgLyogcGFzX3NpbXBsZV9sYXJn
ZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFREZEMjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfc2ltcGxlX3R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTE2MjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYxOTMyNjAyMkYx
MTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEYwNEMyMjUyNDYwREI2RjAwMUQzMUYwIC8qIHBhc19jb21wYWN0X2F0
b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0Y4
MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTBGRTdFRTIyMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjYyMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYWxsX3No
YXJlZF9wYWdlX2RpcmVjdG9yaWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjRGNjExQzI1OTgz
OEIxMDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRkQ0OEI2OTIzQjZBRUQ1MDAyNkM0NkQgLyogcGFzX2hlYXBfaW5saW5lcy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY0NUQ1QUIyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0U2MjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRjlBMUNGQTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19r
aW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE1MThGRDIzNDQxRTMyMDA4MzJCNUMgLyogcGFz
X2hhc19vYmplY3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTBFMjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY2
RDU0N0UyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19oZWFwX3RhYmxlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkwRkQ0OEIzQTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxp
bmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUU2MzIyOUUxNEZBMDA0RjQxNjYgLyogcGFz
X3RyeV9hbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgxMDUyNUY2QTc5NTAwNzkw
QjRBIC8qIGhvdGJpdF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkU3RUUxMjIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQ0OEI2
NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGQkQ2N0RDMjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hl
YXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTlGOThDMjVDQjJDRTgwMEVFRTQ0OSAvKiBwYXNf
c2l6ZV90aHVuay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzMUE2M0UyM0RDRjgwNDAwMkMwQ0Ez
IC8qIHBhc19za2lwX2xpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTYwMjI5RTE0RkEw
MDRGNDE2NiAvKiBwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEYwOTIyNkUyMkIyRDkwOTAwN0Q1RDNBIC8qIHBhc19oZWFwX2NvbmZpZ191dGlscy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMEYxOTMyNTgyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19mcmVlX21vZGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjA4RjQwMjJBNUY2NTUwMDM4NjU3NSAvKiBwYXNfbGFy
Z2VfZnJlZV92aXNpdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjVFNUNFRjIzQkVGMzYwMDBB
QTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdF
RTFGMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY5QTFDRTcyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfbWF4X2ZyZWUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGMDRDMjFEMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfaGVhcF9jb25m
aWdfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxQjUyNUEzRDBCQjAwOEI0QTgy
IC8qIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdF
RTA4MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY2FyZXNfYWJvdXRfc2l6ZV9tb2RlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjMyOUEyMzIzRjExMzJCMDBBMTMzQzQgLyogcGFzX2hlYXBfcnVudGlt
ZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNjZENTRDMjQ4NzYwQjQwMEZDNzM0NyAv
KiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmluaXRpb25zLmRlZiBpbiBIZWFkZXJzICovLAorCQkJ
CTBGOUExRDAxMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY0RjYxNzgyNTlEMTA2NTAwOEI0QTgyIC8qIHBhc19lbnVtZXJh
dGVfYml0Zml0X2hlYXBzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTY2ODIzQ0JEMTlEMDBG
NDBEQkIgLyogcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMEY3ODA4ODQyMkZBMjJEMjAwRjM3NDUxIC8qIHBhc192aXJ0dWFsX3JhbmdlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjU3MDkxQTI1NkFCNDE3MDAwMzdCQjMgLyogcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkMyRkQzODIzNzYx
NTEzMDA1M0RENDEgLyogcGFzX2hlYXBfZm9yX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MEY2RDU2NzAyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X2hlYXBfcHRyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjRGNjFDMDI1QTRDQjA5MDA4QjRBODIgLyogcGFzX2NvbXBhY3RfY2Fy
dGVzaWFuX3RyZWVfbm9kZV9wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNTE2RUU3MjQ1NjFB
NjAwMDRFMkI4RCAvKiBpc29faGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjE4
RTYzRTI2MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXpl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQ0NTI1NURCRTYxMDBDOEQxMUIgLyogcGFzX2Jp
dGZpdF92aWV3X2FuZF9pbmRleC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYwOTIyNkMyMkIyRDg4
RTAwN0Q1RDNBIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjMxQTY0NDIzRTM1MDlFMDAyQzBDQTMgLyogcGFzX2xpc3RfZGlyZWN0aW9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZCNDdGRTIzMzE1QUU1MDAyQTVFMEMgLyogcGFzX2Fs
bG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMTkzMjU5MjJF
RDA0QTYwMEZCQTcxMyAvKiBwYXNfcmFuZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTI3
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfcGFnZV9tYWxsb2MuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGRDQ4QjMzMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY3RjUxQkYyMzE1OUVDMDAwNzU1MkFFIC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNTYy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEYzMUE2M0MyM0RDRjgwNDAwMkMwQ0EzIC8qIHBhc19za2lwX2xpc3RfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMkQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19z
bG93X3BhdGhfbW9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZENDhCNEYyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5
QTFEMzYyNTVBNDQ3MzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19w
dHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjRBMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
cmFuZG9tLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjZENTQ3RjIzQzU3M0UxMDBGNDBEQkIgLyog
cGFzX2ZpcnN0X2xldmVsX3RpbnlfbGFyZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjlBMUQxNjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBhZ2Vfa2luZC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEZCQzYyQzMyNjVGMTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19z
cGVjdHJ1bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMkMyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19zbG93X3BhdGhfbW9kZV9wcmVmaXguaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NDgw
MjNDNTczRTEwMEY0MERCQiAvKiBwYXNfc21hbGxfbGFyZ2VfbWFwX2VudHJ5LmggaW4gSGVhZGVy
cyAqLywKLQkJCQkwRkU3RUUzMjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3NucHJpbnRmLmggaW4g
SGVhZGVycyAqLywKLQkJCQkwRkM0RUMzRDIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX3N0YXR1c19y
ZXBvcnRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFMzMyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19zdHJlYW0uaCBpbiBIZWFkZXJzICovLAotCQkJCTBGQzRFQzNDMjM0QTkxRTMwMEI3MTBB
MyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5QTFEMEUyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY5
QTFDRTMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19zdWJwYWdlX21hcF9lbnRyeS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJMEZFN0VFMzUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRTdFRTM0MjI5NjAxNDIwMDRGNDE2NiAvKiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZBNUU0
NTgyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCTBGN0Y1MUJGMjMxNTlFQzAwMDc1NTJBRSAvKiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX25vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGNkQ1NDc5MjNDNTcz
RTEwMEY0MERCQiAvKiBwYXNfdGlueV9sYXJnZV9tYXBfZW50cnkuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGMzFBNjZBMjNFOEU1OTQwMDJDMENBMyAvKiBwYXNfdHJlZV9kaXJlY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAotCQkJCTBGOEE4MDBEMjVDRjY0QzkwMDc5MEI0QSAvKiBwYXNfdHJpX3N0YXRl
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUU2MzIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX3Ry
eV9hbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNjIyMjlFMTRGQTAwNEY0MTY2
IC8qIHBhc190cnlfYWxsb2NhdGVfYXJyYXkuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGRDQ4QjNF
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbi5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMEZFN0VFNjEyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljX3ByaW1pdGl2ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VFNjUyMjlFMTRGQTAw
NEY0MTY2IC8qIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRkU3RUU3OTIyQTA0OEJCMDA0RjQxNjYgLyogcGFzX3RyeV9yZWFsbG9jYXRlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkwRjU5QTM5NjI2NjdGMDBFMDBBMzg2NTcgLyogcGFzX3RyeV9zaHJpbmsu
aCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTY3MkI3MjVDMjFENTMwMDZGNjBBMiAvKiBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkYw
OEYzRDIyQTVEQzY5MDAzODY1NzUgLyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTBGNTlBMzk1MjY2N0YwMEUwMEEzODY1NyAvKiBwYXNfYWxsX2hlYXBf
Y29uZmlncy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY4QTgxMDIyNUY2QTc5NTAwNzkwQjRBIC8q
IGhvdGJpdF9oZWFwX2lubmFyZHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRjI0OEZBMjJGQzlF
REIwMDc3MjAyRSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTBGRTdFRTBBMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKKwkJCQkwRjE0ODcxMzI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUEx
RDI0MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTBGNEY2MTUyMjU5QkMzMzMwMDhCNEE4MiAvKiBwYXNfcHRyX3dvcmtsaXN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUzNzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3R5cGVk
X2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUzODIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX3V0aWxpdHlfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEZFN0VF
MEQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlsaXR5X2hlYXBfY29uZmlnLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRkU3RUUwNTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Jvb3RzdHJhcF9mcmVl
X2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUU5NDY3MjM0NjYwRDQwMDlGQUZERCAvKiBw
YXNfZHlsZF9zdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZGOEQ2MjcyMkMwNEE3NzAwRUM3
MkZFIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuZGVmIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZEMjJDRkYyMkNDMDFEMzAwQjIxODQxIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY2RDU0N0EyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19sYXJn
ZV91dGlsaXR5X2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYzMjlBMkUyM0YxRDYz
NjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF93aXRoX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkwRjU5QTM5NjI2NjdGMDBFMDBBMzg2NTcgLyogcGFzX3RyeV9zaHJpbmsuaCBp
biBIZWFkZXJzICovLAorCQkJCTBGNEY2MUIzMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVy
YXRlX3VuYWNjb3VudGVkX3BhZ2VzX2FzX21ldGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNjZE
NTRCMjQ4NzYwQUYwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5k
ZWYgaW4gSGVhZGVycyAqLywKKwkJCQkwRjZEQjg4QzIzNUU1NEE2MDA2OUNBREIgLyogcGFzX2hl
YXBfcGFnZV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1OUEzOTMyNjY3RjAwRTAw
QTM4NjU3IC8qIGppdF9oZWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjhBODAyOTI1RUM1ODg4
MDA3OTBCNEEgLyogcGFzX2xpbmVfd29yZF9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
MzI5QTJCMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNo
ZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExQ0VEMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
OUExRDQ4MjU1RTI4NDIwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkE1RTQ1QTI0OTJENUJBMDBDRTk2MkEg
LyogcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRkUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mYXN0X3Bh
dGhfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjQ5MjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF92aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkU3RUU3NzIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTBGNTA4RDUzMjU4RUNGRDMwMDE1MUVEOCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmly
c3RfZWxpZ2libGVfa2luZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZFN0VFMEIyMjk2MDE0MjAw
NEY0MTY2IC8qIHBhc19kZWFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFDRjEy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMEY5N0U2MkUyMkE5QTg1RjAwQzM1NUY4IC8qIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkM0RUM3OTIzNTE3MDdCMDBC
NzEwQTMgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9lbXB0aW5lc3Nfa2luZC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEY4QTgwNkIyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9pbm5hcmRz
LmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjlBMUQyNTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3Bh
Z2VfZ3JhbnVsZV91c2VfY291bnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGOUExRDFFMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9w
dHIuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRDQ4QjQxMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY1RTVDRUUy
M0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCTBG
NjgxMjcyMjJCRDRCRjQwMDM2QTAyQiAvKiBwYXNfc2VnbWVudGVkX3ZlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEY0RjYxNjQyNTlCRkI4NTAwOEI0QTgyIC8qIHBhc19iYXNpY19oZWFwX2Nv
bmZpZ19lbnVtZXJhdG9yX2RhdGEuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGRTdFRTIwMjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfbWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRjU3MDkx
ODI1NkFCMjExMDAwMzdCQjMgLyogcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkQ0OEIyRDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3V0aWxpdHlf
aGVhcF9zdXBwb3J0LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUzQTIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3V0aWxzLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUzOTIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX3V0aWxzX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY2ODEyNzAy
MkJENDE5RTAwMzZBMDJCIC8qIHBhc192ZXJzaW9uZWRfZmllbGQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTBGNzgwODg0MjJGQTIyRDIwMEYzNzQ1MSAvKiBwYXNfdmlydHVhbF9yYW5nZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJMEY3ODA4OEUyMkZBNTM0MTAwRjM3NDUxIC8qIHBhc192aXJ0dWFsX3Jh
bmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkU3RUUzQjIyOTYwMTQyMDA0RjQx
NjYgLyogcGFzX3plcm9fbW9kZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY4NzAwQTgyNUIwQThD
MjAwMEUxQUJGIC8qIHRoaW5neV9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjg3MDBBQTI1
QjBBOEMzMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKLQkJ
CQkwRjg3MDBBNjI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5X2hlYXBfcHJlZml4LmggaW4gSGVh
ZGVycyAqLywKKwkJCQkwRjlBMUQxOTI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2Zhc3RfbWVnYXBh
Z2VfdGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGMzczRTUyMjY1OUVBNUUwMDM0QkE5NiAv
KiBwYXNfZGVidWdfaGVhcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEY5QTFEMTcyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMEZENDhCNDcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9iaXRfcmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI2MjAsMzEgKzI1NDYsMzAgQEAK
IAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTBGREVBNDYxMjI4QjY1MUIwMDg1RTM0MCAvKiBC
aXRmaWVsZFZlY3RvclRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQzY4MUVEMjExMjdB
MTkwMDNDNkExMyAvKiBUZXN0SGFybmVzcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRkYwOEYz
NjIyQTU5REIzMDAzODY1NzUgLyogUmVkQmxhY2tUcmVlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMEZDNjgyMzgyMTI5RDRFRTAwM0M2QTEzIC8qIENvYWxpZ25UZXN0cy5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkwRjUxOTNFNzI2NkFFNUQ0MDA0ODNBMkMgLyogSklUSGVhcFRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTBGODcwMEMyMjVCMEIyNkEwMDBFMUFCRiAvKiBUaGluZ3lB
bmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkwRjVC
NjA5NDIzNUU5MTk5MDBDQUU2MjkgLyogSXNvSGVhcFJlc2VydmVkTWVtb3J5VGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZFQjY2NjgyMzFDODdCQzAwOUMwMDFCIC8qIExhcmdlU2hhcmlu
Z1Bvb2xEdW1wLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTMxODExMjJDOTU0RUQwMDNGN0I2
QSAvKiBCaXR2ZWN0b3JUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjMxQTY2ODIzRThC
MzM2MDAyQzBDQTMgLyogQ2FydGVzaWFuVHJlZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTBGQzY4MjM4MjEyOUQ0RUUwMDNDNkExMyAvKiBDb2FsaWduVGVzdHMuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEZDNjgyMzEyMTI5Q0I0NjAwM0M2QTEzIC8qIEV4dGVuZGVkR0NEVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDNjgyMTUyMTI0OEE3OTAwM0M2QTEzIC8qIEhhc2h0YWJs
ZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUE0NUM1MjM2RTEwQUEwMEI1QTM3NSAv
KiBJc29EeW5hbWljUHJpbWl0aXZlSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBG
MzFBNjQyMjNERDRFMDIwMDJDMENBMyAvKiBTa2lwTGlzdFRlc3RzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGQTE4NTQ2MjM2QjNDODIwMDM2MDlBRCAvKiBJc29IZWFwQ2hhb3NUZXN0cy5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkwRkYyNDhGRDIzMENDNENCMDA3NzIwMkUgLyogSXNvSGVhcFBh
Z2VTaGFyaW5nVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQTQ1QzUyMzZFMTBBQTAw
QjVBMzc1IC8qIElzb0R5bmFtaWNQcmltaXRpdmVIZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMEY1RTQ4M0EyM0Q2OUY2MTAwNDZEQTVDIC8qIFJhY2VUZXN0cy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkwRjg3MDBGNTI1QjE0QzhCMDAwRTFBQkYgLyogVFNEVGVzdHMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZENDhCNjcyM0I1ODk5MTAwMjZDNDZEIC8qIElzb0hlYXBQYXJ0aWFs
QW5kQmFzZWxpbmVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjVCNjA5NDIzNUU5MTk5
MDBDQUU2MjkgLyogSXNvSGVhcFJlc2VydmVkTWVtb3J5VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY1MDhENUMyNThFRENBNzAwMTUxRUQ4IC8qIElzb0hlYXBUYWJsaW5nVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1MTkzRTcyNjZBRTVENDAwNDgzQTJDIC8qIEpJVEhlYXBU
ZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkwRkM2NDE5MTIxMzc0NUZBMDA0MENFNUUgLyog
TGFyZ2VGcmVlSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGRUI2NjY4MjMxQzg3
QkMwMDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sRHVtcC5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkVCNjY2QTIzMURBODZGMDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9vbFRlc3RzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTBGMzFBNjY4MjNFOEIzMzYwMDJDMENBMyAvKiBDYXJ0ZXNpYW5U
cmVlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZGMjQ4RkQyMzBDQzRDQjAwNzcyMDJF
IC8qIElzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGREVB
NDYxMjI4QjY1MUIwMDg1RTM0MCAvKiBCaXRmaWVsZFZlY3RvclRlc3RzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRUE0NUJGMjM2Q0RBRUQwMEI1QTM3NSAvKiBMb2NrRnJlZVJlYWRQdHJQdHJI
YXNodGFibGVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQyMkQwODIyQ0Q4QTc1MDBC
MjE4NDEgLyogTWluSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGNUU0ODNBMjNE
NjlGNjEwMDQ2REE1QyAvKiBSYWNlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZGMDhG
MzYyMkE1OURCMzAwMzg2NTc1IC8qIFJlZEJsYWNrVHJlZVRlc3RzLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTBGMzFBNjQyMjNERDRFMDIwMDJDMENBMyAvKiBTa2lwTGlzdFRlc3RzLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTBGQzY4MUVEMjExMjdBMTkwMDNDNkExMyAvKiBUZXN0SGFybmVzcy5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3MDBDMjI1QjBCMjZBMDAwRTFBQkYgLyogVGhpbmd5
QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY4
NzAwRjUyNUIxNEM4QjAwMEUxQUJGIC8qIFRTRFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRUI2NjZBMjMxREE4NkYwMDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sVGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEZDNjgyMTUyMTI0OEE3OTAwM0M2QTEzIC8qIEhhc2h0YWJsZVRl
c3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTMxODEzMjJDOTYwOUQwMDNGN0I2QSAvKiBV
dGlsc1Rlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBGQzY0MTkxMjEzNzQ1RkEwMDQwQ0U1
RSAvKiBMYXJnZUZyZWVIZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNjgyMzEy
MTI5Q0I0NjAwM0M2QTEzIC8qIEV4dGVuZGVkR0NEVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yNjUyLDE1MSArMjU3NywxNDIgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTBGOEE4
MDY2MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTBGOEE4MDY4MjVFRUNDMUQwMDc5MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmMgaW4gU291
cmNlcyAqLywKLQkJCQkwRjhBODEwNDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGOEE4MTAxMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVh
cF9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFRTc2MjI5RjAxMEYwMDRGNDE2NiAv
KiBpc29faGVhcC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VFNTcyMjk3NDMzNTAwNEY0MTY2
IC8qIGlzb19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1RTVDRjAyM0JFRjU1
MzAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNUU1Q0VD
MjNCRUYzNjAwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEY1OUEzOUUyNjY4NDcwRTAwQTM4NjU3IC8qIGppdF9oZWFwLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRjU5QTM5QjI2Njg0NEEzMDBBMzg2NTcgLyogaml0X2hlYXBfY29uZmlnLmMgaW4g
U291cmNlcyAqLywKKwkJCQkwRkU3RURENTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDNEVDMzcyMzRBOTFFMzAwQjcxMEEz
IC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjBGQTI1OTc5
QkM4MDA4QjRBODIgLyogcGFzX3Jvb3QuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQkQ2N0RBMjVC
RDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
QkQ2N0RCMjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmMgaW4gU291
cmNlcyAqLywKLQkJCQkwRkJENjdGMzI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVh
cC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZCRDY3RjAyNUJFMDc4NzAwQTQ5MEQyIC8qIHBhZ2Vz
aXplNjRrX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURCNDIyOTYwMTQy
MDA0RjQxNjYgLyogcGFzX2FsaWdubWVudC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFEMEEy
NTU5OTYxNzAwQzhEMTFCIC8qIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllcy5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEZFN0VEQjUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19hbGxfaGVhcHMuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGMUFFQ0U4MjY1ODE5NjEwMDBDNTIxOCAvKiBwYXNfYWxsX21h
Z2F6aW5lcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCNDYyM0E5QUJCMzAwMjZDNDZEIC8q
IHBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3JpZXMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
NDdDMzFFMjMzOTZFMEIwMDJBMUNGNyAvKiBwYXNfYWxsb2NhdGlvbl9jYWxsYmFja3MuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGOUExQ0VGMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYWxsb2NhdGlv
bl9yZXN1bHQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjYzMjNBOUFCQjMwMDI2QzQ2RCAv
KiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEIzRjIz
QTlBQkIzMDAyNkM0NkQgLyogcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEY1OUEzOUMyNjY4NDRBMzAwQTM4NjU3IC8qIHBhc19iYXNpY19oZWFwX2Nv
bmZpZ19lbnVtZXJhdG9yX2RhdGEuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDEzMjU1OTk2
MTcwMEM4RDExQiAvKiBwYXNfYmlhc2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTBGOUExRDEwMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X2FsbG9jYXRvci5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY5QTFDRkMyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDBEMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFE
MDkyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jIGluIFNv
dXJjZXMgKi8sCi0JCQkJMEY5QTFEMkEyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDFDMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfYml0Zml0X2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDExMjU1
OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2UuYyBpbiBTb3VyY2VzICovLAotCQkJCTBG
OUExRDE1MjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGOUExRDJCMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfYml0Zml0
X3NpemVfY2xhc3MuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExQ0VFMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfYml0Zml0X3ZpZXcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREI2MjI5NjAx
NDIwMDRGNDE2NiAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEY1QjYwODMyMzVFNTcyMDAwQ0FFNjI5IC8qIHBhc19ib290c3RyYXBfaGVhcF9wYWdlX3By
b3ZpZGVyLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURCOTIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2NvYWxpZ24uYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExQ0YwMjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfY29tbWl0X3NwYW4uYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNkQ1NjRBMjNDQUEx
QkEwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9ib290c3RyYXBfZnJlZV9oZWFwLmMgaW4gU291cmNl
cyAqLywKLQkJCQkwRjZENTY2RTIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfaGVhcF9y
ZXNlcnZhdGlvbi5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2NkQ1NDcyNDg3NjBBODAwRkM3MzQ3
IC8qIHBhc19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRkM0RUMzRTIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmpl
Y3RfY2FsbGJhY2tzLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjMyOUEyQzIzRjFENjM2MDBBMTMz
QzQgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVt
b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RUU2NzIyOUUxNEZBMDA0RjQxNjYgLyogcGFz
X2RlYWxsb2NhdGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGQkM2MkMyMjY1RjEyQTMwMDVBNTcy
MCAvKiBwYXNfZGVidWdfc3BlY3RydW0uYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREQxMjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlLmMgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjc4MDg5QTIyRkE2RjA4MDBGMzc0NTEgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1QjgzQkQyNDkxODg4QTAwRjQxMDUyIC8qIHBhc19kZXNp
Z25hdGVkX2ludHJpbnNpY19oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlFOTQ2NjIzNDY2
MEQ0MDA5RkFGREQgLyogcGFzX2R5bGRfc3RhdGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRUE0
NUMzMjM2Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGMzI5QTMwMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJl
X2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RjMyOUEyRjIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9jYWNo
ZXMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MUI2MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNf
ZW51bWVyYWJsZV9wYWdlX21hbGxvYy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxQjQyNUEz
RDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3JhbmdlX2xpc3QuYyBpbiBTb3VyY2VzICov
LAotCQkJCTBGNEY2MTc3MjU5RDEwNjUwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9o
ZWFwcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxQjIyNUEzRDBCQjAwOEI0QTgyIC8qIHBh
c19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjRGNjExMDI1OTdGODFFMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFw
cy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxMkUyNTk5MDg3NzAwOEI0QTgyIC8qIHBhc19l
bnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxQUYy
NUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfdW5hY2NvdW50ZWRfcGFnZXNfYXNfbWV0
YS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY0RjYxMDYyNTk3QUY4NzAwOEI0QTgyIC8qIHBhc19l
bnVtZXJhdG9yLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjRGNjExQjI1OTgzOEIxMDA4QjRBODIg
LyogcGFzX2VudW1lcmF0b3JfcmVnaW9uLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjE5MzI1NjIy
RUQwNEE2MDBGQkE3MTMgLyogcGFzX2Vwb2NoLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEIz
NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFi
bGUuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFREJBMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
ZXh0ZW5kZWRfZ2NkLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkYwOEY0MzIyQTYyN0MxMDAzODY1
NzUgLyogcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlB
MUNGMjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRjQ3QzMxRTIzMzk2RTBCMDAyQTFDRjcgLyogcGFzX2FsbG9jYXRpb25fY2Fs
bGJhY2tzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkVBNDVCQzIzNkNENUFDMDBCNUEzNzUgLyog
cGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmMgaW4gU291cmNlcyAqLywKKwkJ
CQkwRjE0ODcxNDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2hlYXBfcnVudGltZV9jb25maWcuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGNEY2MTc3MjU5RDEwNjUwMDhCNEE4MiAvKiBwYXNfZW51bWVy
YXRlX2JpdGZpdF9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCM0YyM0E5QUJCMzAw
MjZDNDZEIC8qIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuYyBpbiBTb3VyY2VzICovLAog
CQkJCTBGOUExQ0VDMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfZmFzdF9tZWdhcGFnZV9jYWNoZS5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFENDkyNTVFMjg0MjAwQzhEMTFCIC8qIHBhc19mYXN0
X21lZ2FwYWdlX3RhYmxlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkM0RUMzODIzNEE5MUUzMDBC
NzEwQTMgLyogcGFzX2ZkX3N0cmVhbS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFEMDAyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51bGVzLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RkU3RURDMDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTBGMUJGRDQ0MjY2NDU3RjEwMENFQzI4RCAvKiBwYXNfaGVhcF9jb25maWcuYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGNkQ1NjY2MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfaGVhcF9jb25maWdfa2lu
ZC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFN0VEQkQyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19o
ZWFwX2NvbmZpZ191dGlscy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZDMkZEMzkyMzc2MTUxMzAw
NTNERDQxIC8qIHBhc19oZWFwX2Zvcl9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdF
REJFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfaGVhcF9sb2NrLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkU3RURCRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfcmVmLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRkM0RUMzQTIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2hlYXBfc3VtbWFyeS5jIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEY2RDU0N0MyM0M1NzNFMTAwRjQwREJCIC8qIHBhc19oZWFwX3Rh
YmxlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjE0ODcyMDI2OUY1RkNBMDA2ODg3QTkgLyogcGFz
X2xvY2FsX3ZpZXdfY2FjaGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFRTc2MjI5RjAxMEYw
MDRGNDE2NiAvKiBpc29faGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMUMyNTU5OTYx
NzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhC
MzkyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19pbW1vcnRhbF9oZWFwLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjc4MDg4RjIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZl
cnJlZF9jb21taXRfbG9nLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjY2RDU0QTI0ODc2MEE4MDBG
QzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMgaW4gU291cmNlcyAqLywKLQkJ
CQkwRkU3RURDNjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2hlYXAuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGQkQ2N0YwMjVCRTA3ODcwMEE0OTBEMiAvKiBwYWdlc2l6ZTY0a19oZWFwX2Nv
bmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCNTIyM0E5QUJCMzAwMjZDNDZEIC8qIHBh
c19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEIzNjIz
QTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEZEMjJEMDAyMkNDMDFEMzAwQjIxODQxIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbC5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY4QTgxMDEyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFw
X2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYxNTEyNTlCQzMzMzAwOEI0QTgyIC8q
IHBhc19wdHJfd29ya2xpc3QuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGMTkzMjY4MjJGM0IzRjMw
MEZCQTcxMyAvKiBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGRTdFREM3MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2Vf
bWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkNGQTQ5QjIzODM1MkVDMDBDQ0Q3MjYgLyogcGFz
X2xhcmdlX3NoYXJpbmdfcG9vbC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY2RDU0N0QyM0M1NzNF
MTAwRjQwREJCIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEZEQkIwNzQyMkI4NzVBNjAwNkJBNUZDIC8qIHBhc19sb2NhbF9hbGxvY2F0b3IuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGMDRDMjFGMjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfbG9jay5j
IGluIFNvdXJjZXMgKi8sCi0JCQkJMEZFQTQ1QkMyMzZDRDVBQzAwQjVBMzc1IC8qIHBhc19sb2Nr
X2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5RTk0
NTgyMzQ1MjI2MjAwOUZBRkREIC8qIHBhc19sb2cuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMDRD
MjI0MjQ2MERCNkYwMDFEMzFGMCAvKiBwYXNfbWFnYXppbmUuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGRTdFREI0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYWxpZ25tZW50LmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRkQ0OEI0ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X2hhbmRsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZGMjQ4RjkyMkZDOUVEQjAwNzcyMDJFIC8q
IHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
QzRFQzNBMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfaGVhcF9zdW1tYXJ5LmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRkU3RURCRDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXBfY29uZmlnX3V0aWxz
LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURCRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hl
YXBfcmVmLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjVFNUNGMDIzQkVGNTUzMDBBQTBCNkYgLyog
aXNvX3Rlc3RfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCNEMyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEZFN0VERDgyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc191dGlscy5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEY1QjgzQkQyNDkxODg4QTAwRjQxMDUyIC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19o
ZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkMyRkQzOTIzNzYxNTEzMDA1M0RENDEgLyogcGFz
X2hlYXBfZm9yX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2RDU2NjYyM0NCRDE5RDAw
RjQwREJCIC8qIHBhc19oZWFwX2NvbmZpZ19raW5kLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3
RURDMDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
NTlBMzlCMjY2ODQ0QTMwMEEzODY1NyAvKiBqaXRfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGMzFBNjNEMjNEQ0Y4MDQwMDJDMENBMyAvKiBwYXNfc2tpcF9saXN0LmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRjAzN0FGMzI1QUVBOTFBMDA3OUI1ODIgLyogcGFzX21lZGl1bV9tZWdh
cGFnZV9jYWNoZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQzcyMjk2MDE0MjAwNEY0MTY2
IC8qIHBhc19sYXJnZV9tYXAuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREJFMjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfaGVhcF9sb2NrLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjMyOUEyQzIz
RjFENjM2MDBBMTMzQzQgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhf
cmVzZXJ2ZWRfbWVtb3J5LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjZENTY2RTIzQ0JEMTlEMDBG
NDBEQkIgLyogcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZhdGlvbi5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEZBNUU0NTkyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2Nh
dG9yX25vZGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNkQ1NjQ2MjNDQUExQkEwMEY0MERCQiAv
KiBwYXNfc2ltcGxlX2ZyZWVfaGVhcF9oZWxwZXJzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjhB
ODEwNDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGOUExQ0ZEMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRjRGNjEwNjI1OTdBRjg3MDA4QjRBODIgLyogcGFzX2VudW1lcmF0b3Iu
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGMTkzMjZEMjJGNzNFODUwMEZCQTcxMyAvKiBwYXNfc2Nh
dmVuZ2VyLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlFOTQ2NjIzNDY2MEQ0MDA5RkFGREQgLyog
cGFzX2R5bGRfc3RhdGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNjZENTQ3MjQ4NzYwQTgwMEZD
NzM0NyAvKiBwYXNfY29tcGFjdF9sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMg
Ki8sCisJCQkJMEY1RTQ4MzgyM0Q2OTYwRjAwNDZEQTVDIC8qIHBhc19yYWNlX3Rlc3RfaG9va3Mu
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREQzMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc3Ry
ZWFtLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjg3MDBBOTI1QjBBOEMzMDAwRTFBQkYgLyogdGhp
bmd5X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjRGNjFBRjI1QTNEMEJCMDA4
QjRBODIgLyogcGFzX2VudW1lcmF0ZV91bmFjY291bnRlZF9wYWdlc19hc19tZXRhLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRkU3RUU1NzIyOTc0MzM1MDA0RjQxNjYgLyogaXNvX2hlYXBfY29uZmln
LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEI1MzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFREM4MjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGQzRFQzNCMjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfc3RhdHVzX3JlcG9ydGVyLmMgaW4gU291
cmNlcyAqLywKKwkJCQkwRjRGNjExMDI1OTdGODFFMDA4QjRBODIgLyogcGFzX2VudW1lcmF0ZV9s
YXJnZV9oZWFwcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY1OUEzOUMyNjY4NDRBMzAwQTM4NjU3
IC8qIHBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuYyBpbiBTb3VyY2VzICov
LAorCQkJCTBGRDQ4QjYzMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjA0QzIxRjI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX2xv
Y2suYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNDVENUFBMjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3
RURDNjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2hlYXAuYyBpbiBTb3VyY2VzICovLAor
CQkJCTBGRjA4RjQzMjJBNjI3QzEwMDM4NjU3NSAvKiBwYXNfZmFzdF9sYXJnZV9mcmVlX2hlYXAu
YyBpbiBTb3VyY2VzICovLAorCQkJCTBGNUI2MDgzMjM1RTU3MjAwMENBRTYyOSAvKiBwYXNfYm9v
dHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZENDhCMkUy
M0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMEY4NzAwQTcyNUIwQThDMjAwMEUxQUJGIC8qIHRoaW5neV9o
ZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEI0QjIzQTlBQkIzMDAyNkM0NkQgLyogcGFz
X21vbm90b25pY190aW1lLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjlBMUQwNjI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX3BhZ2VfYmFzZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY5QTFDRjIyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZFN0VEQ0IyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19wYWdlX21hbGxvYy5jIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMEYxOTMyNjIyMkYxMTkzRDAwRkJBNzEzIC8qIHBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnQuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDIyRDAwMjJDQzAxRDMwMEIyMTg0
MSAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNEY2MUNC
MjVBNENEM0IwMDhCNEE4MiAvKiBwYXNfcGF5bG9hZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGRjI0OEY5MjJGQzlFREIwMDc3MjAyRSAvKiBwYXNfcGh5c2lj
YWxfbWVtb3J5X3RyYW5zYWN0aW9uLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjc4MDg4RjIyRkE1
MzQxMDBGMzc0NTEgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmMg
aW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUNGMDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2NvbW1p
dF9zcGFuLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjY2RDU0QTI0ODc2MEE4MDBGQzczNDcgLyog
cGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjE4RTYz
RjI2MjhCRkI3MDBGNjkwM0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmMg
aW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUQyQjI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZp
dF9zaXplX2NsYXNzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RUU2NzIyOUUxNEZBMDA0RjQx
NjYgLyogcGFzX2RlYWxsb2NhdGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRDQ4QjM0MjNBOUFC
QjMwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY1OUEzOUUyNjY4NDcwRTAwQTM4NjU3IC8qIGppdF9oZWFwLmMg
aW4gU291cmNlcyAqLywKKwkJCQkwRkM0RUMzODIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2ZkX3N0
cmVhbS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY2RDU0N0QyM0M1NzNFMTAwRjQwREJCIC8qIHBh
c19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFN0VEQ0My
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19wcmltaXRpdmVfaGVhcF9yZWYuYyBpbiBTb3VyY2VzICov
LAotCQkJCTBGNEY2MTUxMjU5QkMzMzMwMDhCNEE4MiAvKiBwYXNfcHRyX3dvcmtsaXN0LmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRjVFNDgzODIzRDY5NjBGMDA0NkRBNUMgLyogcGFzX3JhY2VfdGVz
dF9ob29rcy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCMzAyM0E5QUJCMzAwMjZDNDZEIC8q
IHBhc19yYW5kb20uYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREJCMjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMDhG
MzQyMkE1OEYxMjAwMzg2NTc1IC8qIHBhc19yZWRfYmxhY2tfdHJlZS5jIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEZBNUU0NTkyNDkyRDVCQTAwQ0U5NjJBIC8qIHBhc19yZWR1bmRhbnRfbG9jYWxfYWxs
b2NhdG9yX25vZGUuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGNUI2MDkxMjM1RTg4RUYwMENBRTYy
OSAvKiBwYXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmMgaW4gU291cmNlcyAqLywKLQkJCQkw
RjRGNjBGQTI1OTc5QkM4MDA4QjRBODIgLyogcGFzX3Jvb3QuYyBpbiBTb3VyY2VzICovLAotCQkJ
CTBGMTkzMjZEMjJGNzNFODUwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmMgaW4gU291cmNlcyAq
LywKLQkJCQkwRjA0QzIyMDI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGMDRDMjFDMjQ2MERCNkYwMDFEMzFG
MCAvKiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBG
OUU5NDU4MjM0NTIyNjIwMDlGQUZERCAvKiBwYXNfbG9nLmMgaW4gU291cmNlcyAqLywKKwkJCQkw
RkRCQjA3NDIyQjg3NUE2MDA2QkE1RkMgLyogcGFzX2xvY2FsX2FsbG9jYXRvci5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJMEY3RjUxQkUyMzE1OUVDMDAwNzU1MkFFIC8qIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbm9kZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNTkyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhC
NTMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRjA0QzIxNTI0NjBEQjZGMDAxRDMxRjAgLyogcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkU3RURDRjIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCi0J
CQkJMEZFN0VERDEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2UuYyBpbiBT
b3VyY2VzICovLAotCQkJCTBGOTdFNjMwMjJBOUFBQzEwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZENDhCNUUyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuYyBpbiBTb3VyY2VzICovLAot
CQkJCTBGRDQ4QjRDMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjQ4MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEIyRTIz
QTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMg
aW4gU291cmNlcyAqLywKLQkJCQkwRkQ0OEI1MjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3ZpZXcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGRTdFREI1MjI5NjAxNDIw
MDRGNDE2NiAvKiBwYXNfYWxsX2hlYXBzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjlBMUNFRTI1
NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3LmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RkQ0OEI1QzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnku
YyBpbiBTb3VyY2VzICovLAotCQkJCTBGRDQ4QjM2MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF92aWV3LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjE4RTYzRjI2MjhCRkI3MDBGNjkw
M0QgLyogcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmMgaW4gU291cmNlcyAqLywK
LQkJCQkwRjZENTY0NjIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfaGVs
cGVycy5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZGMDhGM0UyMkE1REM2OTAwMzg2NTc1IC8qIHBh
c19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjMxQTYzRDIz
RENGODA0MDAyQzBDQTMgLyogcGFzX3NraXBfbGlzdC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZD
NEVDM0IyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19zdGF0dXNfcmVwb3J0ZXIuYyBpbiBTb3VyY2Vz
ICovLAotCQkJCTBGRTdFREQzMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfc3RyZWFtLmMgaW4gU291
cmNlcyAqLywKLQkJCQkwRkM0RUMzNzIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX3N0cmluZ19zdHJl
YW0uYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExRDIyMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNf
c3VicGFnZV9tYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExQ0U4MjU1OTk2MTcwMEM4RDEx
QiAvKiBwYXNfc3VicGFnZV9tYXBfZW50cnkuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREQ1
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgaW4gU291cmNlcyAq
LywKKwkJCQkwRjZENTY0QTIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfYm9vdHN0cmFw
X2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYxQjIyNUEzRDBCQjAwOEI0QTgy
IC8qIHBhc19lbnVtZXJhdGVfaW5pdGlhbGx5X3VuYWNjb3VudGVkX3BhZ2VzLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRjlBMUQwRDI1NTk5NjE3MDBDOEQxMUIgLyogcGFzX2JpdGZpdF9kaXJlY3Rv
cnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFREQ0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMEZBNUU0NTYy
NDkyRDVCQTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYyBp
biBTb3VyY2VzICovLAotCQkJCTBGN0Y1MUJFMjMxNTlFQzAwMDc1NTJBRSAvKiBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX25vZGUuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGOUExRDA2MjU1OTk2MTcw
MEM4RDExQiAvKiBwYXNfcGFnZV9iYXNlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEIzMDIz
QTlBQkIzMDAyNkM0NkQgLyogcGFzX3JhbmRvbS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFQTQ1
QzMyMzZDRTg5RDAwQjVBMzc1IC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMEY4QTgwNjgyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVh
cF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNEY2MUI2MjVBM0QwQkIwMDhCNEE4MiAv
KiBwYXNfZW51bWVyYWJsZV9wYWdlX21hbGxvYy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZDRkE0
OUIyMzgzNTJFQzAwQ0NENzI2IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTBGNEY2MUI0MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9yYW5n
ZV9saXN0LmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjE5MzI1NjIyRUQwNEE2MDBGQkE3MTMgLyog
cGFzX2Vwb2NoLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkQ0OEI1RTIzQTlBQkIzMDAyNkM0NkQg
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5jIGluIFNvdXJjZXMgKi8sCisJCQkJ
MEY0RjYxQ0IyNUE0Q0QzQjAwOEI0QTgyIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2Vf
bGlzdC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZFN0VEQjYyMjk2MDE0MjAwNEY0MTY2IC8qIHBh
c19ib290c3RyYXBfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjk3RTYzMDIyQTlB
QUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGRTdFREQ3MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfdXRpbGl0eV9oZWFwLmMgaW4g
U291cmNlcyAqLywKLQkJCQkwRkU3RURCQjIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX3V0aWxpdHlf
aGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGRTdFREQ4MjI5NjAxNDIwMDRGNDE2
NiAvKiBwYXNfdXRpbHMuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGOUExQ0ZEMjU1OTk2MTcwMEM4
RDExQiAvKiBwYXNfdmVyc2lvbmVkX2ZpZWxkLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRjE0ODcy
MjI2OUY1RkNBMDA2ODg3QTkgLyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY3ODA4ODUyMkZBMjJEMjAwRjM3NDUxIC8qIHBhc192aXJ0dWFsX3Jhbmdl
LmMgaW4gU291cmNlcyAqLywKLQkJCQkwRjg3MDBBNzI1QjBBOEMyMDAwRTFBQkYgLyogdGhpbmd5
X2hlYXAuYyBpbiBTb3VyY2VzICovLAotCQkJCTBGODcwMEE5MjVCMEE4QzMwMDBFMUFCRiAvKiB0
aGluZ3lfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNkQ1NDdDMjNDNTczRTEw
MEY0MERCQiAvKiBwYXNfaGVhcF90YWJsZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZGMDhGM0Uy
MkE1REM2OTAwMzg2NTc1IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmMgaW4gU291cmNl
cyAqLywKKwkJCQkwRkQ0OEI0NjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2FsbF9zaGFyZWRfcGFn
ZV9kaXJlY3Rvcmllcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFENDkyNTVFMjg0MjAwQzhE
MTFCIC8qIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3
RURCOTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvYWxpZ24uYyBpbiBTb3VyY2VzICovLAorCQkJ
CTBGQkQ2N0RCMjVCRDM2M0EwMEE0OTBEMiAvKiBtaW5hbGlnbjMyX2hlYXBfY29uZmlnLmMgaW4g
U291cmNlcyAqLywKKwkJCQkwRjVCNjA5MTIzNUU4OEVGMDBDQUU2MjkgLyogcGFzX3Jlc2VydmVk
X21lbW9yeV9wcm92aWRlci5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMTAyNTU5OTYxNzAw
QzhEMTFCIC8qIHBhc19iaXRmaXRfYWxsb2NhdG9yLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkJE
NjdGMzI1QkUwNzg3MDBBNDkwRDIgLyogcGFnZXNpemU2NGtfaGVhcC5jIGluIFNvdXJjZXMgKi8s
CisJCQkJMEYzMjlBMkYyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF93aXRoX3Bh
Z2VfY2FjaGVzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkM0RUMzRTIzNEE5MUUzMDBCNzEwQTMg
LyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmMgaW4gU291cmNlcyAqLywK
KwkJCQkwRjE5MzI2MjIyRjExOTNEMDBGQkE3MTMgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMTUyNTU5OTYxNzAwQzhEMTFCIC8qIHBh
c19iaXRmaXRfcGFnZV9jb25maWdfa2luZC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjYxMkUy
NTk5MDg3NzAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jIGluIFNv
dXJjZXMgKi8sCisJCQkJMEY5QTFEMDAyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19mcmVlX2dyYW51
bGVzLmMgaW4gU291cmNlcyAqLywKKwkJCQkwRkU3RURDRjIyOTYwMTQyMDA0RjQxNjYgLyogcGFz
X3NlZ3JlZ2F0ZWRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEYxQkZENDQyNjY0NTdGMTAw
Q0VDMjhEIC8qIHBhc19oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEZBNUU0NTYy
NDkyRDVCQTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYyBp
biBTb3VyY2VzICovLAorCQkJCTBGQkM2MkMyMjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdf
c3BlY3RydW0uYyBpbiBTb3VyY2VzICovLAorCQkJCTBGNUU1Q0VDMjNCRUYzNjAwMEFBMEI2RiAv
KiBpc29fdGVzdF9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY5QTFEMTEyNTU5
OTYxNzAwQzhEMTFCIC8qIHBhc19iaXRmaXRfcGFnZS5jIGluIFNvdXJjZXMgKi8sCisJCQkJMEY4
QTgwNjYyNUVFQ0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcC5jIGluIFNvdXJjZXMgKi8sCisJ
CQkJMEYzMjlBMzAyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50
b19yZXNlcnZlZF9tZW1vcnkuYyBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMzE1MSw2ICszMDY3LDExIEBA
CiAJCQkJQ0xBTkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMTQiOwogCQkJCUNMQU5H
X0VOQUJMRV9NT0RVTEVTID0gTk87CiAJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRV9ERUJVR0dJTkcg
PSBOTzsKKwkJCQlDTEFOR19XQVJOX0FTU0lHTl9FTlVNID0gWUVTOworCQkJCUNMQU5HX1dBUk5f
RkxPQVRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lNUExJQ0lUX1NJR05fQ09O
VkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX1NFTUlDT0xPTl9CRUZPUkVfTUVUSE9EX0JP
RFkgPSBZRVM7CisJCQkJQ0xBTkdfV0FSTl9TVVNQSUNJT1VTX0lNUExJQ0lUX0NPTlZFUlNJT04g
PSBOTzsKIAkJCQlDT0RFX1NJR05fU1RZTEUgPSBBdXRvbWF0aWM7CiAJCQkJRFlMSUJfQ09NUEFU
SUJJTElUWV9WRVJTSU9OID0gMTsKIAkJCQlEWUxJQl9DVVJSRU5UX1ZFUlNJT04gPSAxOwpAQCAt
MzE1OSw2ICszMDgwLDE0IEBACiAJCQkJCSJERUJVRz0xIiwKIAkJCQkJIiQoaW5oZXJpdGVkKSIs
CiAJCQkJKTsKKwkJCQlHQ0NfVFJFQVRfSU1QTElDSVRfRlVOQ1RJT05fREVDTEFSQVRJT05TX0FT
X0VSUk9SUyA9IFlFUzsKKwkJCQlHQ0NfVFJFQVRfSU5DT01QQVRJQkxFX1BPSU5URVJfVFlQRV9X
QVJOSU5HU19BU19FUlJPUlMgPSBZRVM7CisJCQkJR0NDX1dBUk5fQUJPVVRfTUlTU0lOR19GSUVM
RF9JTklUSUFMSVpFUlMgPSBZRVM7CisJCQkJR0NDX1dBUk5fQUJPVVRfTUlTU0lOR19QUk9UT1RZ
UEVTID0gWUVTOworCQkJCUdDQ19XQVJOX1NJR05fQ09NUEFSRSA9IFlFUzsKKwkJCQlHQ0NfV0FS
Tl9VTktOT1dOX1BSQUdNQVMgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX0xBQkVMID0gWUVT
OworCQkJCUdDQ19XQVJOX1VOVVNFRF9QQVJBTUVURVIgPSBZRVM7CiAJCQkJTUFDT1NYX0RFUExP
WU1FTlRfVEFSR0VUID0gMTAuMTQ7CiAJCQkJTVRMX0ZBU1RfTUFUSCA9IFlFUzsKIAkJCQlPVEhF
Ul9DRkxBR1MgPSAiLURMSUJQQVM9MSI7CkBAIC0zMTc1LDEwICszMTA0LDIzIEBACiAJCQkJQ0xB
TkdfQ1hYX0xBTkdVQUdFX1NUQU5EQVJEID0gImdudSsrMTQiOwogCQkJCUNMQU5HX0VOQUJMRV9N
T0RVTEVTID0gTk87CiAJCQkJQ0xBTkdfRU5BQkxFX01PRFVMRV9ERUJVR0dJTkcgPSBOTzsKKwkJ
CQlDTEFOR19XQVJOX0FTU0lHTl9FTlVNID0gWUVTOworCQkJCUNMQU5HX1dBUk5fRkxPQVRfQ09O
VkVSU0lPTiA9IFlFUzsKKwkJCQlDTEFOR19XQVJOX0lNUExJQ0lUX1NJR05fQ09OVkVSU0lPTiA9
IFlFUzsKKwkJCQlDTEFOR19XQVJOX1NFTUlDT0xPTl9CRUZPUkVfTUVUSE9EX0JPRFkgPSBZRVM7
CisJCQkJQ0xBTkdfV0FSTl9TVVNQSUNJT1VTX0lNUExJQ0lUX0NPTlZFUlNJT04gPSBOTzsKIAkJ
CQlDT0RFX1NJR05fU1RZTEUgPSBBdXRvbWF0aWM7CiAJCQkJRFlMSUJfQ09NUEFUSUJJTElUWV9W
RVJTSU9OID0gMTsKIAkJCQlEWUxJQl9DVVJSRU5UX1ZFUlNJT04gPSAxOwogCQkJCUVYRUNVVEFC
TEVfUFJFRklYID0gbGliOworCQkJCUdDQ19UUkVBVF9JTVBMSUNJVF9GVU5DVElPTl9ERUNMQVJB
VElPTlNfQVNfRVJST1JTID0gWUVTOworCQkJCUdDQ19UUkVBVF9JTkNPTVBBVElCTEVfUE9JTlRF
Ul9UWVBFX1dBUk5JTkdTX0FTX0VSUk9SUyA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNT
SU5HX0ZJRUxEX0lOSVRJQUxJWkVSUyA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9BQk9VVF9NSVNTSU5H
X1BST1RPVFlQRVMgPSBZRVM7CisJCQkJR0NDX1dBUk5fU0lHTl9DT01QQVJFID0gWUVTOworCQkJ
CUdDQ19XQVJOX1VOS05PV05fUFJBR01BUyA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTlVTRURfTEFC
RUwgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1BBUkFNRVRFUiA9IFlFUzsKIAkJCQlNQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xNDsKIAkJCQlNVExfRkFTVF9NQVRIID0gWUVTOwog
CQkJCU9USEVSX0NGTEFHUyA9ICItRExJQlBBUz0xIjsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5jCShyZXZpc2lvbiAyODIyMzgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuYwkod29ya2lu
ZyBjb3B5KQpAQCAtNjMsNiArNjMsMTEgQEAgdm9pZCogYm1hbGxvY190cnlfYWxsb2NhdGVfemVy
b2VkKHNpemVfdAogICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxvY2F0ZV96ZXJvZWRfaW5saW5l
KHNpemUpOwogfQogCitQQVNfTkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2NhdGVfc2xv
dyhzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfYWxsb2NhdGVfaW1w
bF9tZWRpdW1fc2xvd19jYXNlKHNpemUsIDEpLmJlZ2luOworfQorCiB2b2lkKiBibWFsbG9jX2Fs
bG9jYXRlKHNpemVfdCBzaXplKQogewogICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2lubGlu
ZShzaXplKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2Nf
aGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuYwkod29ya2luZyBj
b3B5KQpAQCAtNDAsNyArNDAsOCBAQCBwYXNfaGVhcF9jb25maWcgYm1hbGxvY19oZWFwX2NvbmZp
ZyA9IEJNCiAKIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygKICAgICBibWFsbG9j
LCBCTUFMTE9DLAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UpOworICAg
IC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJpbnNpY19wcmlt
aXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jl
c3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZvaWQgYm1hbGxvY19oZWFwX2NvbmZpZ19h
Y3RpdmF0ZSh2b2lkKQogewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
Ym1hbGxvY19oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5oCSh3
b3JraW5nIGNvcHkpCkBAIC01MSw5ICs1MSwxMCBAQCBQQVNfQVBJIHZvaWQgYm1hbGxvY19oZWFw
X2NvbmZpZ19hY3RpdmF0CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NN
QUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2Vf
aGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdh
dGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUsIFwK
LSAgICAuc21hbGxfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBBU19BUk02NCwgXAorICAg
IC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJNNjQs
IFwKKyAgICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSB0cnVlLCBcCiAgICAgLnVzZV9zbWFsbF9iaXRm
aXQgPSB0cnVlLCBcCi0gICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQgPSA0LCBcCisg
ICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQgPSBCTUFMTE9DX01JTkFMSUdOX1NISUZU
LCBcCiAgICAgLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUgPSBQQVNfU01BTExfQklURklUX1BBR0Vf
REVGQVVMVF9TSVpFLCBcCiAgICAgLm1lZGl1bV9wYWdlX3NpemUgPSBQQVNfTUVESVVNX1BBR0Vf
REVGQVVMVF9TSVpFLCBcCiAgICAgLmdyYW51bGVfc2l6ZSA9IFBBU19HUkFOVUxFX0RFRkFVTFRf
U0laRSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19o
ZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9ibWFsbG9jX2hlYXBfaW5saW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfaW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJ
Q19QUklNSVQKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX2ludHJpbnNp
Y19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3Jf
Y291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisg
ICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5LAogICAgICZibWFsbG9jX2NvbW1vbl9w
cmltaXRpdmVfaGVhcCwKICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9y
dCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfZGVzaWduYXRlZCk7CkBAIC01Niw3ICs1Niw3
IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBCTUFMTE9D
X0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9j
b25maWcuYmFzZSwKICAgICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisgICAgcGFzX2FsbG9jYXRpb25fcmVz
dWx0X2lkZW50aXR5LAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAm
Ym1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2lj
X2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwpAQCAtNjYsNyArNjYsNyBAQCBQQVNfQ1JFQVRFX1RS
WV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgQk1BTExPQ19IRUFQX0NPTkZJRywKICAg
ICAmYm1hbGxvY19pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAg
JmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0X2NyYXNoX29uX2Vycm9yLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9v
bl9lcnJvciwKICAgICAmYm1hbGxvY19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmJtYWxs
b2NfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFw
X2lzX2Rlc2lnbmF0ZWQpOwpAQCAtNzYsNzMgKzc2LDc5IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9D
QVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAgICZibWFs
bG9jX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmYm1hbGxv
Y19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRf
Y3Jhc2hfb25fZXJyb3IsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9y
LAogICAgICZibWFsbG9jX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmYm1hbGxvY19jb21t
b25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90
X2Rlc2lnbmF0ZWQpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190
cnlfYWxsb2NhdGVfaW5saW5lKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBibWFsbG9jX3Ry
eV9hbGxvY2F0ZV9pbXBsKHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2Nf
dHJ5X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkKgogYm1hbGxvY190cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW5saW5l
KHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiBibWFsbG9jX3Ry
eV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkucHRyOworICAg
IHJldHVybiAodm9pZCopYm1hbGxvY190cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChz
aXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCogYm1hbGxvY190cnlfYWxsb2NhdGVfemVyb2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsKLSAg
ICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVy
biAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGJtYWxsb2NfdHJ5
X2FsbG9jYXRlX2ltcGwoc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsKKyAgICAgICAgc2l6
ZSkuYmVnaW47CiB9CiAKK1BBU19BUEkgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9zbG93KHNpemVf
dCBzaXplKTsKKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfYWxsb2Nh
dGVfaW5saW5lKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX2lt
cGwoc2l6ZSwgMSkucHRyOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CisgICAg
cmVzdWx0ID0gYm1hbGxvY19hbGxvY2F0ZV9pbXBsX2lubGluZV9vbmx5KHNpemUsIDEpOworICAg
IGlmIChQQVNfTElLRUxZKHJlc3VsdC5kaWRfc3VjY2VlZCkpCisgICAgICAgIHJldHVybiAodm9p
ZCopcmVzdWx0LmJlZ2luOworICAgIHJldHVybiBibWFsbG9jX2FsbG9jYXRlX3Nsb3coc2l6ZSk7
CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogYm1hbGxvY19hbGxvY2F0ZV93
aXRoX2FsaWdubWVudF9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0g
ICAgcmV0dXJuIGJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGln
bm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWJtYWxsb2NfYWxsb2NhdGVfd2l0aF9hbGln
bm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV96ZXJvZWRfaW5saW5lKHNpemVfdCBzaXpl
KQogewotICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisg
ICAgcmV0dXJuICh2b2lkKilwYXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgYm1h
bGxvY19hbGxvY2F0ZV9pbXBsKHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAgICAg
IHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGJtYWxs
b2NfdHJ5X3JlYWxsb2NhdGVfaW5saW5lKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBuZXdfc2l6ZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBm
cmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJp
bWl0aXZlKAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19w
cmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgICZibWFsbG9jX2NvbW1vbl9wcmlt
aXRpdmVfaGVhcCwKICAgICAgICAgbmV3X3NpemUsCiAgICAgICAgIEJNQUxMT0NfSEVBUF9DT05G
SUcsCiAgICAgICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2ltcGxfZm9yX3JlYWxsb2MsCiAgICAg
ICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9k
ZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdm9pZCoKIGJtYWxsb2NfcmVhbGxvY2F0ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwg
c2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmVhbGxvY2F0
ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQogewotICAgIHJldHVybiBwYXNfdHJ5X3JlYWxsb2NhdGVf
aW50cmluc2ljX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0
ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRyLAogICAgICAgICAmYm1hbGxv
Y19jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgICAgIG5ld19zaXplLAogICAgICAgICBCTUFM
TE9DX0hFQVBfQ09ORklHLAogICAgICAgICBibWFsbG9jX2FsbG9jYXRlX2ltcGxfZm9yX3JlYWxs
b2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAg
IGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCiBQQVNfQ1JF
QVRFX1RSWV9BTExPQ0FURSgKQEAgLTE1MCw3ICsxNTYsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExP
Q0FURSgKICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX3R5cGVkX3J1bnRp
bWVfY29uZmlnLmJhc2UsCiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KTsKKyAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfaWRlbnRpdHkpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1h
bGxvY190cnlfaXNvX2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQogewpA
QCAtMTYyLDcgKzE2OCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIEJNQUxMT0Nf
SEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAg
ICAmYm1hbGxvY19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFz
aF9vbl9lcnJvcik7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX2lz
b19hbGxvY2F0ZV9pbmxpbmUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZikKIHsKQEAgLTE3NCwxMiAr
MTgwLDEyIEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1JVElWRSgKICAgICBCTUFMTE9D
X0hFQVBfQ09ORklHLAogICAgICZibWFsbG9jX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNl
LAogICAgICZibWFsbG9jX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50
aXR5KTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfdHJ5X2FsbG9j
YXRlX2F1eGlsaWFyeV9pbmxpbmUocGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gYm1hbGxvY190cnlfYWxsb2Nh
dGVfYXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZv
aWQqKWJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAx
KS5iZWdpbjsKIH0KIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKApAQCAtMTg3
LDI5ICsxOTMsMjkgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfUFJJTUlUSVZFKAogICAgIEJN
QUxMT0NfSEVBUF9DT05GSUcsCiAgICAgJmJtYWxsb2NfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmln
LmJhc2UsCiAgICAgJmJtYWxsb2NfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9y
ZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCog
Ym1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYq
IGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gYm1hbGxvY19h
bGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkucHRyOworICAgIHJldHVy
biAodm9pZCopYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwg
MSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBibWFsbG9jX3Ry
eV9hbGxvY2F0ZV9hdXhpbGlhcnlfemVyb2VkX2lubGluZSgKICAgICBwYXNfcHJpbWl0aXZlX2hl
YXBfcmVmKiBoZWFwX3JlZiwKICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFzX2Fs
bG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGJtYWxsb2NfdHJ5X2FsbG9jYXRlX2F1eGls
aWFyeV9pbXBsKGhlYXBfcmVmLCBzaXplLCAxKSwKLSAgICAgICAgc2l6ZSkucHRyOworICAgICAg
ICBzaXplKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxs
b2NfYWxsb2NhdGVfYXV4aWxpYXJ5X3plcm9lZF9pbmxpbmUocGFzX3ByaW1pdGl2ZV9oZWFwX3Jl
ZiogaGVhcF9yZWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4g
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCop
cGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGJtYWxsb2NfYWxsb2NhdGVfYXV4
aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAg
ICAgIHNpemUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAg
LTIxNyw3ICsyMjMsNyBAQCBibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0aF9hbGln
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiBibWFsbG9jX3RyeV9hbGxv
Y2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5wdHI7CisgICAg
cmV0dXJuICh2b2lkKilibWFsbG9jX3RyeV9hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3Jl
Ziwgc2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHZvaWQqCkBAIC0yMjUsNyArMjMxLDcgQEAgYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfd2l0
aF9hbGlnbm1lbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGJtYWxsb2NfYWxsb2Nh
dGVfYXV4aWxpYXJ5X2ltcGwoaGVhcF9yZWYsIHNpemUsIGFsaWdubWVudCkucHRyOworICAgIHJl
dHVybiAodm9pZCopYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnlfaW1wbChoZWFwX3JlZiwgc2l6
ZSwgYWxpZ25tZW50KS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQq
IGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfYXV4aWxpYXJ5X2lubGluZSgKQEAgLTIzNCw3ICsyNDAs
NyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY190CiAgICAgc2l6ZV90
IG5ld19zaXplLAogICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0g
ICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCisgICAgcmV0dXJuICh2b2lk
KilwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRyLAogICAgICAg
ICBoZWFwX3JlZiwKICAgICAgICAgbmV3X3NpemUsCkBAIC0yNDIsNyArMjQ4LDcgQEAgc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfdAogICAgICAgICBibWFsbG9jX3RyeV9h
bGxvY2F0ZV9hdXhpbGlhcnlfaW1wbF9mb3JfcmVhbGxvYywKICAgICAgICAgJmJtYWxsb2NfcHJp
bWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2FsbG93
X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVlX21v
ZGUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19y
ZWFsbG9jYXRlX2F1eGlsaWFyeV9pbmxpbmUodm9pZCogb2xkX3B0ciwKQEAgLTI1MCw3ICsyNTYs
NyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogYm1hbGxvY19yCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBmcmVl
X21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCisgICAg
cmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAgICAgICBvbGRf
cHRyLAogICAgICAgICBoZWFwX3JlZiwKICAgICAgICAgbmV3X3NpemUsCkBAIC0yNTgsNyArMjY0
LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGJtYWxsb2NfcgogICAgICAgICBi
bWFsbG9jX2FsbG9jYXRlX2F1eGlsaWFyeV9pbXBsX2Zvcl9yZWFsbG9jLAogICAgICAgICAmYm1h
bGxvY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAgICAgcGFzX3JlYWxsb2Nh
dGVfYWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAg
IGZyZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIGJt
YWxsb2NfZGVhbGxvY2F0ZV9pbmxpbmUodm9pZCogcHRyKQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfY29uZmlnLmMJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2hvdGJpdF9o
ZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw4IEBAIHBhc19oZWFwX2Nv
bmZpZyBob3RiaXRfaGVhcF9jb25maWcgPSBIT1QKIAogUEFTX0JBU0lDX0hFQVBfQ09ORklHX0RF
RklOSVRJT05TKAogICAgIGhvdGJpdCwgSE9UQklULAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3Vs
ZF96ZXJvID0gZmFsc2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2Us
CisgICAgLmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFw
X3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZvaWQg
aG90Yml0X2hlYXBfY29uZmlnX2FjdGl2YXRlKHZvaWQpCiB7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9jb25maWcuaAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0
X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDggQEAgUEFTX0FQSSB2
b2lkIGhvdGJpdF9oZWFwX2NvbmZpZ19hY3RpdmF0ZQogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3Bh
Z2Vfc2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdy
ZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAg
ICAuc21hbGxfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6
YXRpb24gPSB0cnVlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQ
QVNfQVJNNjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93
b3JkID0gUEFTX0FSTTY0LCBcCisgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gdHJ1ZSwgXAogICAg
IC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9iaXRmaXRfbWluX2FsaWdu
X3NoaWZ0ID0gSE9UQklUX01JTkFMSUdOX1NISUZULCBcCiAgICAgLnNtYWxsX2JpdGZpdF9wYWdl
X3NpemUgPSBQQVNfU01BTExfQklURklUX1BBR0VfREVGQVVMVF9TSVpFLCBcCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ob3RiaXRfaGVhcF9pbmxpbmVzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaG90Yml0X2hlYXBfaW5s
aW5lcy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9ob3RiaXRfaGVhcF9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcg
QEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEhPVEJJVF9I
RUFQX0NPTkZJRywKICAgICAmaG90Yml0X2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25m
aWcuYmFzZSwKICAgICAmaG90Yml0X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRf
aWRlbnRpdHksCiAgICAgJmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmhvdGJp
dF9jb21tb25fcHJpbWl0aXZlX2hlYXBfc3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBf
aXNfZGVzaWduYXRlZCk7CkBAIC01NCwzNCArNTQsMzQgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NB
VEVfSU5UUklOU0lDX1BSSU1JVAogICAgIEhPVEJJVF9IRUFQX0NPTkZJRywKICAgICAmaG90Yml0
X2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaG90Yml0X2Fs
bG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVu
dGl0eSwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCiAgICAgJmhvdGJpdF9j
b21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXBf
c3VwcG9ydCwKICAgICBwYXNfaW50cmluc2ljX2hlYXBfaXNfbm90X2Rlc2lnbmF0ZWQpOwogCiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaG90Yml0X3RyeV9hbGxvY2F0ZV9pbmxpbmUo
c2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIGhvdGJpdF90cnlfYWxsb2NhdGVfaW1wbChzaXpl
LCAxKS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilob3RiaXRfdHJ5X2FsbG9jYXRlX2ltcGwoc2l6
ZSwgMSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogaG90Yml0
X3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudF9pbmxpbmUoc2l6ZV90IHNpemUsIHNpemVfdCBh
bGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGhvdGJpdF90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1l
bnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWhvdGJpdF90
cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwog
fQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGhvdGJpdF90cnlfcmVhbGxvY2F0
ZV9pbmxpbmUodm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXplLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJlZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAg
ICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCisgICAgcmV0
dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKICAgICAg
ICAgb2xkX3B0ciwKICAgICAgICAgJmhvdGJpdF9jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAg
ICAgIG5ld19zaXplLAogICAgICAgICBIT1RCSVRfSEVBUF9DT05GSUcsCiAgICAgICAgIGhvdGJp
dF90cnlfYWxsb2NhdGVfaW1wbF9mb3JfcmVhbGxvYywKICAgICAgICAgcGFzX3JlYWxsb2NhdGVf
YWxsb3dfaGVhcF90ZWxlcG9ydCwKLSAgICAgICAgZnJlZV9tb2RlKS5wdHI7CisgICAgICAgIGZy
ZWVfbW9kZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIGhvdGJp
dF9kZWFsbG9jYXRlX2lubGluZSh2b2lkKiBwdHIpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcuYwkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmMJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAy
MDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNyw3ICszNyw4IEBAIHBhc19oZWFwX2NvbmZpZyBpc29faGVh
cF9jb25maWcgPSBJU09fSEUKIAogUEFTX0JBU0lDX0hFQVBfQ09ORklHX0RFRklOSVRJT05TKAog
ICAgIGlzbywgSVNPLAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UpOwor
ICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAgLmludHJpbnNpY19w
cmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3pl
cm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKICNlbmRpZiAvKiBQQVNfRU5BQkxFX0lTTyAqLwog
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9jb25maWcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVh
cF9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvaXNvX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDgg
QEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSA9
IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3dh
c3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAgICAuc21hbGxf
c2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBm
YWxzZSwgXAotICAgIC5zbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gUEFTX0FSTTY0
LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2VkX2N1cnJlbnRfd29yZCA9IFBB
U19BUk02NCwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IGZhbHNlLCBcCiAgICAgLnVzZV9z
bWFsbF9iaXRmaXQgPSB0cnVlLCBcCiAgICAgLnNtYWxsX2JpdGZpdF9taW5fYWxpZ25fc2hpZnQg
PSBJU09fTUlOQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBB
U19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29faGVhcF9pbmxpbmVzLmgJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb19oZWFwX2lu
bGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBQQVNfQ1JFQVRFX1RSWV9B
TExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29f
aW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2Nh
dG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJu
bywKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vLAogICAgICZpc29fY29tbW9u
X3ByaW1pdGl2ZV9oZWFwLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQs
CiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKQEAgLTYwLDcgKzYw
LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVAogICAgIElTT19I
RUFQX0NPTkZJRywKICAgICAmaXNvX2ludHJpbnNpY19wcmltaXRpdmVfcnVudGltZV9jb25maWcu
YmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxv
Y2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8sCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9l
cnJubywKICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaXNvX2NvbW1vbl9w
cmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVz
aWduYXRlZCk7CkBAIC03MCw3ICs3MCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJ
TlNJQ19QUklNSVQKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb19pbnRyaW5zaWNfcHJp
bWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAot
ICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAg
cGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAogICAgICZpc29fY29tbW9uX3By
aW1pdGl2ZV9oZWFwLAogICAgICZpc29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAg
ICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKQEAgLTgwLDczICs4MCw3
MyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgSVNPX0hF
QVBfQ09ORklHLAogICAgICZpc29faW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5i
YXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9j
cmFzaF9vbl9lcnJvciwKICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaXNv
X2NvbW1vbl9wcmltaXRpdmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9p
c19ub3RfZGVzaWduYXRlZCk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29f
dHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKHNpemVfdCBzaXplKQogewotICAg
IHJldHVybiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW1wbChzaXplLCAxKS5w
dHI7CisgICAgcmV0dXJuICh2b2lkKilpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVf
aW1wbChzaXplLCAxKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQq
CiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW5saW5l
KHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KQogewotICAgIHJldHVybiBpc29fdHJ5X2Fs
bG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGlnbm1l
bnQpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKWlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1p
dGl2ZV93aXRoX2FsaWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmlt
aXRpdmVfemVyb2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsKLSAgICByZXR1cm4gcGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVybiAodm9pZCopcGFzX2FsbG9j
YXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1p
dGl2ZV9pbXBsKHNpemUsIDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAgICAgIHNpemUpLmJl
Z2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX2FsbG9jYXRlX2Nv
bW1vbl9wcmltaXRpdmVfaW5saW5lKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBpc29fYWxs
b2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbXBsKHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZv
aWQqKWlzb19hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSkuYmVnaW47CiB9
CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgogaXNvX2FsbG9jYXRlX2NvbW1vbl9w
cmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW5saW5lKHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25t
ZW50KQogewotICAgIHJldHVybiBpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV93aXRoX2Fs
aWdubWVudF9pbXBsKHNpemUsIGFsaWdubWVudCkucHRyOworICAgIHJldHVybiAodm9pZCopaXNv
X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfd2l0aF9hbGlnbm1lbnRfaW1wbChzaXplLCBhbGln
bm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX2Fs
bG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfemVyb2VkX2lubGluZShzaXplX3Qgc2l6ZSkKIHsKLSAg
ICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAgIHJldHVy
biAodm9pZCopcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCiAgICAgICAgIGlzb19hbGxvY2F0
ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSksCi0gICAgICAgIHNpemUpLnB0cjsKKyAg
ICAgICAgc2l6ZSkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKgog
aXNvX3RyeV9yZWFsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKHZvaWQqIG9sZF9wdHIs
IHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKQogewotICAgIHJldHVybiBw
YXNfdHJ5X3JlYWxsb2NhdGVfaW50cmluc2ljX3ByaW1pdGl2ZSgKKyAgICByZXR1cm4gKHZvaWQq
KXBhc190cnlfcmVhbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAogICAgICAgICBvbGRfcHRy
LAogICAgICAgICAmaXNvX2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAgICAgbmV3X3NpemUs
CiAgICAgICAgIElTT19IRUFQX0NPTkZJRywKICAgICAgICAgaXNvX3RyeV9hbGxvY2F0ZV9jb21t
b25fcHJpbWl0aXZlX2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2Fs
bG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVl
X21vZGUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIGlzb19y
ZWFsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmVfaW5saW5lKHZvaWQqIG9sZF9wdHIsIHNpemVfdCBu
ZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFs
bG9jYXRlX2ZyZWVfbW9kZSBmcmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxv
Y2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFs
bG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgICZp
c29fY29tbW9uX3ByaW1pdGl2ZV9oZWFwLAogICAgICAgICBuZXdfc2l6ZSwKICAgICAgICAgSVNP
X0hFQVBfQ09ORklHLAogICAgICAgICBpc29fYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZV9pbXBs
X2Zvcl9yZWFsbG9jLAogICAgICAgICBwYXNfcmVhbGxvY2F0ZV9hbGxvd19oZWFwX3RlbGVwb3J0
LAotICAgICAgICBmcmVlX21vZGUpLnB0cjsKKyAgICAgICAgZnJlZV9tb2RlKS5iZWdpbjsKIH0K
IAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEUoCkBAIC0xNTQsNyArMTU0LDcgQEAgUEFTX0NSRUFU
RV9UUllfQUxMT0NBVEUoCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29fdHlwZWRfcnVu
dGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOworICAgIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdF9zZXRfZXJybm8pOwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNv
X3RyeV9hbGxvY2F0ZV9pbmxpbmUocGFzX2hlYXBfcmVmKiBoZWFwX3JlZikKIHsKQEAgLTE2Niw3
ICsxNjYsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKICAgICBJU09fSEVBUF9DT05GSUcs
CiAgICAgJmlzb190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9y
X2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vy
cm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX2FsbG9jYXRlX2lubGluZShwYXNfaGVhcF9y
ZWYqIGhlYXBfcmVmKQogewpAQCAtMTc4LDcgKzE3OCw3IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9D
QVRFX0FSUkFZKAogICAgIElTT19IRUFQX0NPTkZJRywKICAgICAmaXNvX3R5cGVkX3J1bnRpbWVf
Y29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfc2V0X2Vycm5vKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqCiBpc29fdHJ5
X2FsbG9jYXRlX2FycmF5X2lubGluZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLCBzaXplX3QgY291
bnQsIHNpemVfdCBhbGlnbm1lbnQpCkBAIC0xOTEsNyArMTkxLDcgQEAgUEFTX0NSRUFURV9UUllf
QUxMT0NBVEVfQVJSQVkoCiAgICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29fdHlwZWRfcnVu
dGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9j
YXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHZvaWQqCiBpc29fYWxsb2NhdGVfYXJyYXlfaW5saW5lKHBhc19oZWFwX3JlZiogaGVhcF9yZWYs
IHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCkKQEAgLTI0NywxMiArMjQ3LDEyIEBAIFBB
U19DUkVBVEVfVFJZX0FMTE9DQVRFX1BSSU1JVElWRSgKICAgICBJU09fSEVBUF9DT05GSUcsCiAg
ICAgJmlzb19wcmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRv
cl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8p
OworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8pOwogCiBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdm9pZCogaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKHBhc19w
cmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKLSAg
ICByZXR1cm4gaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwg
MSkucHRyOworICAgIHJldHVybiAodm9pZCopaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1w
bChoZWFwX3JlZiwgc2l6ZSwgMSkuYmVnaW47CiB9CiAKIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRF
X1BSSU1JVElWRSgKQEAgLTI2MCwyOCArMjYwLDI4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRF
X1BSSU1JVElWRSgKICAgICBJU09fSEVBUF9DT05GSUcsCiAgICAgJmlzb19wcmltaXRpdmVfcnVu
dGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9j
YXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHZvaWQqIGlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9y
ZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBpc29fYWxsb2Nh
dGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYsIHNpemUsIDEpLnB0cjsKKyAgICByZXR1cm4gKHZv
aWQqKWlzb19hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgMSkuYmVnaW47
CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX3By
aW1pdGl2ZV96ZXJvZWRfaW5saW5lKHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNf
YWxsb2NhdGlvbl9yZXN1bHRfemVybygKKyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9u
X3Jlc3VsdF96ZXJvKAogICAgICAgICBpc29fdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKGhl
YXBfcmVmLCBzaXplLCAxKSwKLSAgICAgICAgc2l6ZSkucHRyOworICAgICAgICBzaXplKS5iZWdp
bjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb19hbGxvY2F0ZV9wcmlt
aXRpdmVfemVyb2VkX2lubGluZShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2l6ZV90IHNpemUpCiB7Ci0gICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHRfemVybygKKyAgICByZXR1cm4gKHZvaWQqKXBhc19hbGxvY2F0aW9uX3Jlc3Vs
dF96ZXJvKAogICAgICAgICBpc29fYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYsIHNp
emUsIDEpLAotICAgICAgICBzaXplKS5wdHI7CisgICAgICAgIHNpemUpLmJlZ2luOwogfQogCiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAgLTI4OSw3ICsyODksNyBAQCBpc29fdHJ5
X2FsbG9jYXRlX3ByaW1pdGl2ZV93aXRoX2FsaWdubWVuCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAg
ICByZXR1cm4gaXNvX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwg
YWxpZ25tZW50KS5wdHI7CisgICAgcmV0dXJuICh2b2lkKilpc29fdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZV9pbXBsKGhlYXBfcmVmLCBzaXplLCBhbGlnbm1lbnQpLmJlZ2luOwogfQogCiBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKQEAgLTI5Nyw3ICsyOTcsNyBAQCBpc29fYWxsb2NhdGVf
cHJpbWl0aXZlX3dpdGhfYWxpZ25tZW50X2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIGlzb19h
bGxvY2F0ZV9wcmltaXRpdmVfaW1wbChoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50KS5wdHI7Cisg
ICAgcmV0dXJuICh2b2lkKilpc29fYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGwoaGVhcF9yZWYsIHNp
emUsIGFsaWdubWVudCkuYmVnaW47CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
KiBpc29fdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlX2lubGluZSh2b2lkKiBvbGRfcHRyLApAQCAt
MzA1LDcgKzMwNSw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X3IK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaXplX3QgbmV3X3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JlYWxsb2NhdGVfZnJl
ZV9tb2RlIGZyZWVfbW9kZSkKIHsKLSAgICByZXR1cm4gcGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1p
dGl2ZSgKKyAgICByZXR1cm4gKHZvaWQqKXBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCiAg
ICAgICAgIG9sZF9wdHIsCiAgICAgICAgIGhlYXBfcmVmLAogICAgICAgICBuZXdfc2l6ZSwKQEAg
LTMxMyw3ICszMTMsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaXNvX3RyeV9y
CiAgICAgICAgIGlzb190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxfZm9yX3JlYWxsb2MsCiAg
ICAgICAgICZpc29fcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgICAgIHBhc19y
ZWFsbG9jYXRlX2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOwor
ICAgICAgICBmcmVlX21vZGUpLmJlZ2luOwogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCogaXNvX3JlYWxsb2NhdGVfcHJpbWl0aXZlX2lubGluZSh2b2lkKiBvbGRfcHRyLApAQCAt
MzIxLDcgKzMyMSw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fcmVhbGwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yZWFsbG9jYXRlX2ZyZWVfbW9kZSBm
cmVlX21vZGUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUoCisg
ICAgcmV0dXJuICh2b2lkKilwYXNfdHJ5X3JlYWxsb2NhdGVfcHJpbWl0aXZlKAogICAgICAgICBv
bGRfcHRyLAogICAgICAgICBoZWFwX3JlZiwKICAgICAgICAgbmV3X3NpemUsCkBAIC0zMjksNyAr
MzI5LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQqIGlzb19yZWFsbAogICAgICAg
ICBpc29fYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxfZm9yX3JlYWxsb2MsCiAgICAgICAgICZpc29f
cHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgICAgIHBhc19yZWFsbG9jYXRlX2Fs
bG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIGZyZWVfbW9kZSkucHRyOworICAgICAgICBmcmVl
X21vZGUpLmJlZ2luOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUoCkBA
IC0zMzcsMTYgKzMzNywxNiBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9QUklNSVRJVkUoCiAg
ICAgSVNPX0hFQVBfQ09ORklHLAogICAgICZpc29fb2JqY19ydW50aW1lX2NvbmZpZy5iYXNlLAog
ICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0X3NldF9lcnJubyk7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubyk7
CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBpc29fdHJ5X2FsbG9jYXRlX2Zvcl9v
YmpjX2lubGluZShjb25zdCB2b2lkKiBjbHMsIHNpemVfdCBzaXplKQogewotICAgIHJldHVybiBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8oCisgICAgcmV0dXJuICh2b2lkKilw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfemVybygKICAgICAgICAgaXNvX3RyeV9hbGxvY2F0ZV9mb3Jf
b2JqY19pbXBsKAogICAgICAgICAgICAgcGFzX2R5bmFtaWNfcHJpbWl0aXZlX2hlYXBfbWFwX2Zp
bmQoCiAgICAgICAgICAgICAgICAgJmlzb19vYmpjX2R5bmFtaWNfaGVhcF9tYXAsIGNscywgc2l6
ZSksCiAgICAgICAgICAgICBzaXplLCAxKSwKLSAgICAgICAgc2l6ZSkucHRyOworICAgICAgICBz
aXplKS5iZWdpbjsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgaXNvX2hhc19v
YmplY3RfaW5saW5lKHZvaWQqIHB0cikKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL2lzb190ZXN0X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hlYXAuYwkod29ya2luZyBjb3B5
KQpAQCAtNTUsNyArNTUsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJ
TUlUCiAgICAgSVNPX1RFU1RfSEVBUF9DT05GSUcsCiAgICAgJmlzb190ZXN0X2ludHJpbnNpY19w
cmltaXRpdmVfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMs
Ci0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKKyAg
ICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCiAgICAgJmlzb190ZXN0X2Nv
bW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaXNvX3Rlc3RfY29tbW9uX3ByaW1pdGl2ZV9oZWFw
X3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVkKTsKQEAg
LTY1LDE4ICs2NSwxOCBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKICAgICBJU09fVEVTVF9I
RUFQX0NPTkZJRywKICAgICAmaXNvX3Rlc3RfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAg
ICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jl
c3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29u
X2Vycm9yKTsKIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQVJSQVkoCiAgICAgdGVzdF9hbGxv
Y2F0ZV9hcnJheV9pbXBsLAogICAgIElTT19URVNUX0hFQVBfQ09ORklHLAogICAgICZpc29fdGVz
dF90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2NhdG9yX2NvdW50cywK
LSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKKyAg
ICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IpOwogCiB2b2lkKiBpc29fdGVz
dF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemVfdCBzaXplKQogewotICAgIHJldHVybiB0
ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSwgMSkucHRyOworICAgIHJldHVybiAo
dm9pZCopdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemUsIDEpLmJlZ2luOwogfQog
CiB2b2lkKiBpc29fdGVzdF9hbGxvY2F0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmKQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaXNvX3Rlc3RfaGVhcF9jb25maWcuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9o
ZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw4IEBAIHBhc19oZWFwX2NvbmZpZyBpc29fdGVzdF9oZWFwX2NvbmZpZyA9IEkKIAogUEFT
X0JBU0lDX0hFQVBfQ09ORklHX0RFRklOSVRJT05TKAogICAgIGlzb190ZXN0LCBJU09fVEVTVCwK
LSAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNlKTsKKyAgICAuYWxsb2NhdGVf
cGFnZV9zaG91bGRfemVybyA9IGZhbHNlLAorICAgIC5pbnRyaW5zaWNfcHJpbWl0aXZlX3ZpZXdf
Y2FjaGVfY2FwYWNpdHkgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVf
Y2FwYWNpdHkpOwogCiAjZW5kaWYgLyogUEFTX0VOQUJMRV9JU09fVEVTVCAqLwogCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9pc29fdGVzdF9oZWFwX2NvbmZpZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2lzb190ZXN0X2hl
YXBfY29uZmlnLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL2lzb190ZXN0X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcg
KzUyLDggQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vf
c2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdyZWdh
dGVkX3dhc3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAgICAu
c21hbGxfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRp
b24gPSBmYWxzZSwgXAotICAgIC5zbWFsbF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0gZmFs
c2UsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0g
ZmFsc2UsIFwKKyAgICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSBmYWxzZSwgXAogICAgIC51c2Vfc21h
bGxfYml0Zml0ID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9iaXRmaXRfbWluX2FsaWduX3NoaWZ0ID0g
SVNPX1RFU1RfTUlOQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9
IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXAuYwkod29ya2luZyBjb3B5
KQpAQCAtNjAsMTQgKzYwLDE0IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19Q
UklNSVQKICAgICBKSVRfSEVBUF9DT05GSUcsCiAgICAgJmppdF9oZWFwX3J1bnRpbWVfY29uZmln
LAogICAgICZqaXRfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0X2lkZW50aXR5LAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSwK
ICAgICAmaml0X2NvbW1vbl9wcmltaXRpdmVfaGVhcCwKICAgICAmaml0X2NvbW1vbl9wcmltaXRp
dmVfaGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRl
ZCk7CiAKIHZvaWQqIGppdF9oZWFwX3RyeV9hbGxvY2F0ZShzaXplX3Qgc2l6ZSkKIHsKLSAgICBy
ZXR1cm4gaml0X3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2ltcGwoc2l6ZSwgMSkucHRy
OworICAgIHJldHVybiAodm9pZCopaml0X3RyeV9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlX2lt
cGwoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHZvaWQgaml0X2hlYXBfc2hyaW5rKHZvaWQqIG9iamVj
dCwgc2l6ZV90IG5ld19zaXplKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvaml0X2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiYm1hbGxvY19oZWFwX2NvbmZpZy5oIgog
I2luY2x1ZGUgInBhc19iYXNpY19oZWFwX2NvbmZpZ19lbnVtZXJhdG9yX2RhdGEuaCIKICNpbmNs
dWRlICJwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfZW51
bWVyYWJsZV9wYWdlX21hbGxvYy5oIgogI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZ19pbmxpbmVz
LmgiCiAjaW5jbHVkZSAicGFzX3Jvb3QuaCIKIApAQCAtNzIsOSArNzMsMTIgQEAgc3RhdGljIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCBhbGxvY2F0ZV9mcgogfQogCiBzdGF0aWMgcGFzX2FsbG9jYXRp
b25fcmVzdWx0IHBhZ2VfcHJvdmlkZXIoCi0gICAgc2l6ZV90IHNpemUsIHBhc19hbGlnbm1lbnQg
YWxpZ25tZW50LCBjb25zdCBjaGFyKiBuYW1lLCB2b2lkKiBhcmcpCisgICAgc2l6ZV90IHNpemUs
IHBhc19hbGlnbm1lbnQgYWxpZ25tZW50LCBjb25zdCBjaGFyKiBuYW1lLAorICAgIHBhc19oZWFw
KiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgdm9p
ZCogYXJnKQogewogICAgIFBBU19VTlVTRURfUEFSQU0obmFtZSk7CisgICAgUEFTX1VOVVNFRF9Q
QVJBTShoZWFwKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKHRyYW5zYWN0aW9uKTsKICAgICBQQVNf
QVNTRVJUKCFhcmcpOwogICAgIHJldHVybiBhbGxvY2F0ZV9mcm9tX2ZyZXNoKHNpemUsIGFsaWdu
bWVudCk7CiB9CkBAIC05Nyw4ICsxMDEsMTAgQEAgcGFzX2hlYXBfcnVudGltZV9jb25maWcgaml0
X2hlYXBfcnVudGltZQogICAgIC5pc19wYXJ0X29mX2hlYXAgPSB0cnVlLAogICAgIC5kaXJlY3Rv
cnlfc2l6ZV9ib3VuZF9mb3JfcGFydGlhbF92aWV3cyA9IDAsCiAgICAgLmRpcmVjdG9yeV9zaXpl
X2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0gMCwKKyAgICAuZGlyZWN0b3J5X3NpemVf
Ym91bmRfZm9yX25vX3ZpZXdfY2FjaGUgPSBVSU5UX01BWCwKICAgICAubWF4X3NlZ3JlZ2F0ZWRf
b2JqZWN0X3NpemUgPSAwLAotICAgIC5tYXhfYml0Zml0X29iamVjdF9zaXplID0gVUlOVF9NQVgK
KyAgICAubWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSA9IFVJTlRfTUFYLAorICAgIC52aWV3X2NhY2hl
X2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9f
dmlld19jYWNoZV9jYXBhY2l0eQogfTsKIAogaml0X2hlYXBfY29uZmlnX3Jvb3RfZGF0YSBqaXRf
cm9vdF9kYXRhID0gewpAQCAtMTIzLDkgKzEyOSwxMSBAQCBwYXNfcGFnZV9iYXNlKiBqaXRfcGFn
ZV9oZWFkZXJfZm9yX2JvdW5kCiAgICAgcmV0dXJuIHBhc19wdHJfaGFzaF9tYXBfZ2V0KCZkYXRh
LT5wYWdlX2hlYWRlcl90YWJsZSwgYm91bmRhcnkpLnZhbHVlOwogfQogCi12b2lkKiBqaXRfc21h
bGxfYml0Zml0X2FsbG9jYXRlX3BhZ2UocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCkKK3ZvaWQq
IGppdF9zbWFsbF9iaXRmaXRfYWxsb2NhdGVfcGFnZSgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFw
KiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKIHsK
ICAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOworICAgIFBBU19VTlVTRURfUEFSQU0odHJhbnNh
Y3Rpb24pOwogICAgIHJldHVybiAodm9pZCopYWxsb2NhdGVfZnJvbV9mcmVzaCgKICAgICAgICAg
SklUX1NNQUxMX1BBR0VfU0laRSwgcGFzX2FsaWdubWVudF9jcmVhdGVfdHJhZGl0aW9uYWwoSklU
X1NNQUxMX1BBR0VfU0laRSkpLmJlZ2luOwogfQpAQCAtMTUzLDkgKzE2MSwxMSBAQCB2b2lkIGpp
dF9zbWFsbF9iaXRmaXRfZGVzdHJveV9wYWdlX2hlYWRlCiAgICAgcGFzX2hlYXBfbG9ja191bmxv
Y2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIH0KIAotdm9pZCogaml0X21l
ZGl1bV9iaXRmaXRfYWxsb2NhdGVfcGFnZShwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwKQordm9p
ZCogaml0X21lZGl1bV9iaXRmaXRfYWxsb2NhdGVfcGFnZSgKKyAgICBwYXNfc2VncmVnYXRlZF9o
ZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikK
IHsKICAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOworICAgIFBBU19VTlVTRURfUEFSQU0odHJh
bnNhY3Rpb24pOwogICAgIHJldHVybiAodm9pZCopYWxsb2NhdGVfZnJvbV9mcmVzaCgKICAgICAg
ICAgSklUX01FRElVTV9QQUdFX1NJWkUsIHBhc19hbGlnbm1lbnRfY3JlYXRlX3RyYWRpdGlvbmFs
KEpJVF9NRURJVU1fUEFHRV9TSVpFKSkuYmVnaW47CiB9CkBAIC0yODgsNyArMjk4LDExIEBAIHZv
aWQgaml0X2hlYXBfY29uZmlnX2FkZF9mcmVzaF9tZW1vcnkocGEKIHsKICAgICBwYXNfbGFyZ2Vf
ZnJlZV9oZWFwX2NvbmZpZyBjb25maWc7CiAKKyAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVk
KHJhbmdlLmJlZ2luLCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpKTsKKyAgICBQQVNfQVNT
RVJUKHBhc19pc19hbGlnbmVkKHJhbmdlLmVuZCwgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgp
KSk7CisKICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisgICAgcGFzX2VudW1lcmFi
bGVfcmFuZ2VfbGlzdF9hcHBlbmQoJnBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9jX3BhZ2VfbGlz
dCwgcmFuZ2UpOwogICAgIGluaXRpYWxpemVfZnJlc2hfbWVtb3J5X2NvbmZpZygmY29uZmlnKTsK
ICAgICBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcF9kZWFsbG9jYXRlKAogICAgICAgICAmaml0
X2ZyZXNoX21lbW9yeV9oZWFwLCByYW5nZS5iZWdpbiwgcmFuZ2UuZW5kLCBwYXNfemVyb19tb2Rl
X2lzX2FsbF96ZXJvLCAmY29uZmlnKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNjYsNyArNjYsOCBAQCBQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGppdF9wYWdl
X2hlYWRlcl9mCiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfcGFnZV9iYXNlKiBqaXRf
c21hbGxfYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBib3VuZGFyeSk7CiBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaml0X3NtYWxsX2JpdGZpdF9ib3VuZGFyeV9m
b3JfcGFnZV9oZWFkZXIocGFzX3BhZ2VfYmFzZSogcGFnZSk7Ci1QQVNfQVBJIHZvaWQqIGppdF9z
bWFsbF9iaXRmaXRfYWxsb2NhdGVfcGFnZShwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwKTsKK1BB
U19BUEkgdm9pZCogaml0X3NtYWxsX2JpdGZpdF9hbGxvY2F0ZV9wYWdlKAorICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uKTsKIFBBU19BUEkgcGFzX3BhZ2VfYmFzZSogaml0X3NtYWxsX2JpdGZpdF9jcmVhdGVf
cGFnZV9oZWFkZXIoCiAgICAgdm9pZCogYm91bmRhcnksIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKIFBBU19BUEkgdm9pZCBqaXRfc21hbGxfYml0Zml0X2Rlc3Ryb3lf
cGFnZV9oZWFkZXIoCkBAIC03Niw3ICs3Nyw4IEBAIFBBU19CSVRGSVRfUEFHRV9DT05GSUdfU1BF
Q0lBTElaQVRJT05fREUKIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19wYWdlX2Jhc2Uq
IGppdF9tZWRpdW1fYml0Zml0X3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBib3VuZGFy
eSk7CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogaml0X21lZGl1bV9iaXRmaXRfYm91
bmRhcnlfZm9yX3BhZ2VfaGVhZGVyeShwYXNfcGFnZV9iYXNlKiBwYWdlKTsKLVBBU19BUEkgdm9p
ZCogaml0X21lZGl1bV9iaXRmaXRfYWxsb2NhdGVfcGFnZShwYXNfc2VncmVnYXRlZF9oZWFwKiBo
ZWFwKTsKK1BBU19BUEkgdm9pZCogaml0X21lZGl1bV9iaXRmaXRfYWxsb2NhdGVfcGFnZSgKKyAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbik7CiBQQVNfQVBJIHBhc19wYWdlX2Jhc2UqIGppdF9tZWRpdW1fYml0
Zml0X2NyZWF0ZV9wYWdlX2hlYWRlcigKICAgICB2b2lkKiBib3VuZGFyeSwgcGFzX2xvY2tfaG9s
ZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogUEFTX0FQSSB2b2lkIGppdF9tZWRpdW1fYml0
Zml0X2Rlc3Ryb3lfcGFnZV9oZWFkZXIoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9taW5hbGlnbjMyX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwLmMJKHdvcmtp
bmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklO
U0lDX1BSSU1JVAogICAgIE1JTkFMSUdOMzJfSEVBUF9DT05GSUcsCiAgICAgJm1pbmFsaWduMzJf
aW50cmluc2ljX3ByaW1pdGl2ZV9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAgICZpc29fYWxsb2Nh
dG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29u
X2Vycm9yLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKICAgICAm
bWluYWxpZ24zMl9jb21tb25fcHJpbWl0aXZlX2hlYXAsCiAgICAgJm1pbmFsaWduMzJfY29tbW9u
X3ByaW1pdGl2ZV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX2Rlc2ln
bmF0ZWQpOwpAQCAtNjQsMTggKzY0LDE4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAg
IE1JTkFMSUdOMzJfSEVBUF9DT05GSUcsCiAgICAgJm1pbmFsaWduMzJfdHlwZWRfcnVudGltZV9j
b25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0X2NyYXNoX29uX2Vycm9yKTsKIAogUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfQVJSQVko
CiAgICAgdGVzdF9hbGxvY2F0ZV9hcnJheV9pbXBsLAogICAgIE1JTkFMSUdOMzJfSEVBUF9DT05G
SUcsCiAgICAgJm1pbmFsaWduMzJfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNv
X2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9j
cmFzaF9vbl9lcnJvcik7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vycm9y
KTsKIAogdm9pZCogbWluYWxpZ24zMl9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemVfdCBz
aXplKQogewotICAgIHJldHVybiB0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSwg
MSkucHRyOworICAgIHJldHVybiAodm9pZCopdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZl
KHNpemUsIDEpLmJlZ2luOwogfQogCiB2b2lkKiBtaW5hbGlnbjMyX2FsbG9jYXRlKHBhc19oZWFw
X3JlZiogaGVhcF9yZWYpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9t
aW5hbGlnbjMyX2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29u
ZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDggQEAgcGFzX2hlYXBfY29uZmlnIG1p
bmFsaWduMzJfaGVhcF9jb25maWcgPQogCiBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElP
TlMoCiAgICAgbWluYWxpZ24zMiwgTUlOQUxJR04zMiwKLSAgICAuYWxsb2NhdGVfcGFnZV9zaG91
bGRfemVybyA9IGZhbHNlKTsKKyAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IGZhbHNl
LAorICAgIC5pbnRyaW5zaWNfcHJpbWl0aXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkgPSBwYXNfaGVh
cF9ydW50aW1lX2NvbmZpZ19hZ2dyZXNzaXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHkpOwogCiB2b2lk
IG1pbmFsaWduMzJfaGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKIHsKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBf
Y29uZmlnLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNyAr
NTQsOCBAQCBQQVNfQVBJIHZvaWQgbWluYWxpZ24zMl9oZWFwX2NvbmZpZ19hY3RpCiAgICAgLnNt
YWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBc
CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFH
RV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2Vs
aWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUsIFwKLSAgICAuc21hbGxfdXNlX3JldmVyc2Vk
X2N1cnJlbnRfd29yZCA9IHRydWUsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJz
ZWRfY3VycmVudF93b3JkID0gdHJ1ZSwgXAorICAgIC5lbmFibGVfdmlld19jYWNoZSA9IHRydWUs
IFwKICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAuc21hbGxfYml0Zml0X21p
bl9hbGlnbl9zaGlmdCA9IE1JTkFMSUdOMzJfTUlOQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxf
Yml0Zml0X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6
ZTY0a19oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtNTQsNyArNTQs
NyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9JTlRSSU5TSUNfUFJJTUlUCiAgICAgUEFHRVNJ
WkU2NEtfSEVBUF9DT05GSUcsCiAgICAgJnBhZ2VzaXplNjRrX2ludHJpbnNpY19wcmltaXRpdmVf
cnVudGltZV9jb25maWcuYmFzZSwKICAgICAmaXNvX2FsbG9jYXRvcl9jb3VudHMsCi0gICAgcGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvciwKKyAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCiAgICAgJnBhZ2VzaXplNjRrX2NvbW1vbl9w
cmltaXRpdmVfaGVhcCwKICAgICAmcGFnZXNpemU2NGtfY29tbW9uX3ByaW1pdGl2ZV9oZWFwX3N1
cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX2Rlc2lnbmF0ZWQpOwpAQCAtNjQsMTgg
KzY0LDE4IEBAIFBBU19DUkVBVEVfVFJZX0FMTE9DQVRFKAogICAgIFBBR0VTSVpFNjRLX0hFQVBf
Q09ORklHLAogICAgICZwYWdlc2l6ZTY0a190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAg
ICZpc29fYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0X2NyYXNoX29uX2Vycm9yKTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25f
ZXJyb3IpOwogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURV9BUlJBWSgKICAgICB0ZXN0X2FsbG9j
YXRlX2FycmF5X2ltcGwsCiAgICAgUEFHRVNJWkU2NEtfSEVBUF9DT05GSUcsCiAgICAgJnBhZ2Vz
aXplNjRrX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJmlzb19hbGxvY2F0b3JfY291
bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3Jhc2hfb25fZXJyb3Ip
OworICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcik7CiAKIHZvaWQqIHBh
Z2VzaXplNjRrX2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZV90IHNpemUpCiB7Ci0gICAg
cmV0dXJuIHRlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplLCAxKS5wdHI7CisgICAg
cmV0dXJuICh2b2lkKil0ZXN0X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoc2l6ZSwgMSkuYmVn
aW47CiB9CiAKIHZvaWQqIHBhZ2VzaXplNjRrX2FsbG9jYXRlKHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYWdlc2l6ZTY0a19o
ZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmMJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDggQEAgcGFzX2hlYXBfY29uZmlnIHBhZ2VzaXplNjRr
X2hlYXBfY29uZmlnIAogCiBQQVNfQkFTSUNfSEVBUF9DT05GSUdfREVGSU5JVElPTlMoCiAgICAg
cGFnZXNpemU2NGssIFBBR0VTSVpFNjRLLAotICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJv
ID0gZmFsc2UpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gZmFsc2UsCisgICAg
LmludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eSA9IHBhc19oZWFwX3J1bnRp
bWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSk7CiAKIHZvaWQgcGFnZXNpemU2NGtf
aGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCkKIHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3BhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFnZXNpemU2NGtfaGVhcF9jb25maWcuaAko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFn
ZXNpemU2NGtfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsOCBAQCBQ
QVNfQVBJIHZvaWQgcGFnZXNpemU2NGtfaGVhcF9jb25maWdfYWN0CiAgICAgLnNtYWxsX3NlZ3Jl
Z2F0ZWRfcGFnZV9zaXplID0gUEFHRVNJWkU2NEtfU01BTExfUEFHRV9TSVpFLCBcCiAgICAgLnNt
YWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNB
UCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5
X29wdGltaXphdGlvbiA9IGZhbHNlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50
X3dvcmQgPSAhUEFTX0FSTTY0LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2Vk
X2N1cnJlbnRfd29yZCA9ICFQQVNfQVJNNjQsIFwKKyAgICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSBm
YWxzZSwgXAogICAgIC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwgXAogICAgIC5zbWFsbF9iaXRm
aXRfbWluX2FsaWduX3NoaWZ0ID0gUEFHRVNJWkU2NEtfTUlOQUxJR05fU0hJRlQsIFwKICAgICAu
c21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSA9IFBBR0VTSVpFNjRLX1NNQUxMX1BBR0VfU0laRSwgXApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9iaWFzaW5nX2Rp
cmVjdG9yaWVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
cy5jCShub25leGlzdGVudCkKQEAgLTEsMTk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lm
IExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMu
aCIKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVk
ZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NjYXZlbmdlci5oIgot
Ci1wYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3RvciBwYXNfYWxsX2Jp
YXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5jZTsKLXBhc19hbGxfYmlh
c2luZ19kaXJlY3Rvcmllc192ZWN0b3IgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3Rv
cl9pbnN0YW5jZTsKLQotdm9pZCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYXBwZW5kKHBh
c19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHNpemVfdCBpbmRleDsKLSAg
ICBzaXplX3Qgd29yZF9pbmRleDsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyIGRpcmVjdG9yeV9wdHI7Ci0KLSAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxk
KCk7Ci0gICAgCi0gICAgaW5kZXggPSBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9y
X2luc3RhbmNlLnNpemU7Ci0KLSAgICBQQVNfQVNTRVJUKCFkaXJlY3RvcnktPmluZGV4X2luX2Fs
bCk7Ci0gICAgUEFTX0FTU0VSVCgodW5zaWduZWQpaW5kZXggPT0gaW5kZXgpOwotICAgIGRpcmVj
dG9yeS0+aW5kZXhfaW5fYWxsID0gKHVuc2lnbmVkKWluZGV4OwotCi0gICAgcGFzX2NvbXBhY3Rf
YXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9zdG9yZSgmZGlyZWN0b3J5X3B0ciwgZGlyZWN0
b3J5KTsKLSAgICBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9yX2FwcGVuZCgKLSAg
ICAgICAgJnBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfaW5zdGFuY2UsIGRpcmVj
dG9yeV9wdHIsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIAotICAgIC8qIFdlIGhhdmUgdG8gc3Rv
cmUgdG8gdGhlIGJpdHZlY3RvciBzZWNvbmQsIHNvIHRoYXQgd2hlbiB3ZSBzZWUgYSBiaXQgc2V0
IGluIHRoZSBiaXR2ZWN0b3IsCi0gICAgICAgd2Uga25vdyB0aGF0IHRoZSB0aGluZyBpbiBxdWVz
dGlvbiBpcyBhbHJlYWR5IGFwcGVuZGVkIHRvIHRoZSB2ZWN0b3IuIFRoaXMgaXMgYWN0dWFsbHkK
LSAgICAgICBvdmVya2lsbCBzaW5jZSB3ZSBvbmx5IHN0b3JlIHRoZSBiaXQgdXNpbmcgYSBDQVMg
YW5kIG9ubHkgYWZ0ZXIgcmVsZWFzaW5nIHRoZSBoZWFwIGxvY2ssIGJ1dAotICAgICAgIHdoYXRl
dmVyIC0gaXQncyBub3Qgd29ydGggaXQgdG8gdHJ5IHRvIGJlIGZhc3QgaGVyZS4gKi8KLSAgICBw
YXNfZmVuY2UoKTsKLQotICAgIHdvcmRfaW5kZXggPSBQQVNfQklUVkVDVE9SX1dPUkRfSU5ERVgo
aW5kZXgpOwotCi0gICAgd2hpbGUgKHdvcmRfaW5kZXggPj0gcGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfaW5zdGFuY2Uuc2l6ZSkgewotICAgICAgICBwYXNfYWxs
X2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9hcHBlbmQoCi0gICAgICAgICAg
ICAmcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfaW5zdGFuY2Us
IDAsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIH0KLX0KLQotYm9vbCBwYXNfYWxsX2JpYXNpbmdf
ZGlyZWN0b3JpZXNfYWN0aXZhdGUocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17
Ci0gICAgc2l6ZV90IGluZGV4OwotICAgIHNpemVfdCB3b3JkX2luZGV4OwotICAgIGJvb2wgZGlk
X2FjdGl2YXRlOwotCi0gICAgaW5kZXggPSBkaXJlY3RvcnktPmluZGV4X2luX2FsbDsKLSAgICAK
LSAgICB3b3JkX2luZGV4ID0gUEFTX0JJVFZFQ1RPUl9XT1JEX0lOREVYKGluZGV4KTsKLSAgICAK
LSAgICBQQVNfQVNTRVJUKHdvcmRfaW5kZXggPCBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNf
YWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5jZS5zaXplKTsKLSAgICAKLSAgICBkaWRfYWN0aXZhdGUg
PSBwYXNfYml0dmVjdG9yX3NldF9hdG9taWNfaW5fd29yZCgKLSAgICAgICAgcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfZ2V0X3B0cigKLSAgICAgICAgICAgICZw
YXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfYWN0aXZlX2JpdHZlY3Rvcl9pbnN0YW5jZSwKLSAg
ICAgICAgICAgIHdvcmRfaW5kZXgpLAotICAgICAgICBpbmRleCwKLSAgICAgICAgdHJ1ZSk7Ci0K
LSAgICBpZiAoZGlkX2FjdGl2YXRlKQotICAgICAgICBwYXNfc2NhdmVuZ2VyX2RpZF9jcmVhdGVf
ZWxpZ2libGUoKTsKLQotICAgIHJldHVybiBkaWRfYWN0aXZhdGU7Ci19Ci0KLXR5cGVkZWYgc3Ry
dWN0IHsKLSAgICBib29sIHNob3VsZF9nb19hZ2FpbjsKLSAgICB1bnNpZ25lZCogd29yZF9wdHI7
Ci19IHNjYXZlbmdlX2RhdGE7Ci0KLXN0YXRpYyB1bnNpZ25lZCBzY2F2ZW5nZV9mb3JfZWFjaF9z
ZXRfYml0X2JpdHNfc291cmNlKHNpemVfdCB3b3JkX2luZGV4LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQotewotICAgIHNj
YXZlbmdlX2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNfVU5VU0VEX1BBUkFNKHdvcmRfaW5kZXgpOwot
Ci0gICAgZGF0YSA9IGFyZzsKLQotICAgIHJldHVybiAqZGF0YS0+d29yZF9wdHI7Ci19Ci0KLXN0
YXRpYyBib29sIHNjYXZlbmdlX2Zvcl9lYWNoX3NldF9iaXRfY2FsbGJhY2socGFzX2ZvdW5kX2Jp
dF9pbmRleCBmb3VuZF9iaXRfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZvaWQqIGFyZykKLXsKLSAgICBzY2F2ZW5nZV9kYXRhKiBkYXRhOwot
ICAgIHVuc2lnbmVkIGluZGV4OwotICAgIHVuc2lnbmVkIHdvcmQ7Ci0gICAgdW5zaWduZWQqIHdv
cmRfcHRyOwotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgIHVuc2ln
bmVkIGN1cnJlbnRfaGlnaF93YXRlcm1hcms7Ci0gICAgdWludHB0cl90IGxhcmdlX2VsaWdpYmxl
X2hpZ2hfd2F0ZXJtYXJrOwotICAgIHVuc2lnbmVkIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrOwot
Ci0gICAgZGF0YSA9IGFyZzsKLQotICAgIGluZGV4ID0gKHVuc2lnbmVkKWZvdW5kX2JpdF9pbmRl
eC5pbmRleDsKLSAgICBQQVNfQVNTRVJUKGluZGV4ID09IGZvdW5kX2JpdF9pbmRleC5pbmRleCk7
Ci0KLSAgICB3b3JkID0gZm91bmRfYml0X2luZGV4LndvcmQ7Ci0gICAgd29yZF9wdHIgPSBkYXRh
LT53b3JkX3B0cjsKLQotICAgIFBBU19BU1NFUlQoaW5kZXggPCBwYXNfYWxsX2JpYXNpbmdfZGly
ZWN0b3JpZXNfdmVjdG9yX2luc3RhbmNlLnNpemUpOwotICAgIGRpcmVjdG9yeSA9IHBhc19jb21w
YWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZCgKLSAgICAgICAgcGFzX2FsbF9i
aWFzaW5nX2RpcmVjdG9yaWVzX3ZlY3Rvcl9nZXRfcHRyKAotICAgICAgICAgICAgJnBhc19hbGxf
Ymlhc2luZ19kaXJlY3Rvcmllc192ZWN0b3JfaW5zdGFuY2UsIGluZGV4KSk7Ci0KLSAgICBjdXJy
ZW50X2hpZ2hfd2F0ZXJtYXJrID0gZGlyZWN0b3J5LT5jdXJyZW50X2hpZ2hfd2F0ZXJtYXJrOwot
Ci0gICAgaWYgKGN1cnJlbnRfaGlnaF93YXRlcm1hcmspCi0gICAgICAgIGRhdGEtPnNob3VsZF9n
b19hZ2FpbiA9IHRydWU7Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8qIFdlJ3ZlIGdvdCB0byBjbGVh
ciB0aGUgYml0IGJlZm9yZSB3ZSBkbyBhbnl0aGluZyBlbHNlLiBPdGhlcndpc2UgdGhlcmUncyBh
IHJhY2Ugd2hlcmUgd2UKLSAgICAgICAgICAgbWlnaHQgbWlzcyBhIG5vdGlmaWNhdGlvbiBhYm91
dCBhY3RpdmF0aW9uLiAqLwotICAgICAgICBwYXNfYml0dmVjdG9yX3NldF9hdG9taWNfaW5fd29y
ZCh3b3JkX3B0ciwgaW5kZXgsIGZhbHNlKTsKLSAgICB9Ci0gICAgCi0gICAgbGFyZ2VfZWxpZ2li
bGVfaGlnaF93YXRlcm1hcmsgPSBkaXJlY3RvcnktPmVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZh
bHVlOwotICAgIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrID0gKHVuc2lnbmVkKWxhcmdlX2VsaWdp
YmxlX2hpZ2hfd2F0ZXJtYXJrOwotICAgIFBBU19BU1NFUlQoZWxpZ2libGVfaGlnaF93YXRlcm1h
cmsgPT0gbGFyZ2VfZWxpZ2libGVfaGlnaF93YXRlcm1hcmspOwotCi0gICAgZGlyZWN0b3J5LT5w
cmV2aW91c19oaWdoX3dhdGVybWFyayA9IGN1cnJlbnRfaGlnaF93YXRlcm1hcms7Ci0gICAgZGly
ZWN0b3J5LT5jdXJyZW50X2hpZ2hfd2F0ZXJtYXJrID0gMDsKLQotICAgIGlmIChjdXJyZW50X2hp
Z2hfd2F0ZXJtYXJrIDwgZWxpZ2libGVfaGlnaF93YXRlcm1hcmspCi0gICAgICAgIHBhc19iaWFz
aW5nX2RpcmVjdG9yeV9kaWRfY3JlYXRlX2RlbHRhKGRpcmVjdG9yeSk7Ci0KLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQotc3RhdGljIGJvb2wgc2NhdmVuZ2VfYml0dmVjdG9yX3dvcmRfY2FsbGJhY2so
dW5zaWduZWQqIHdvcmRfcHRyLCBzaXplX3Qgd29yZF9pbmRleCwgdm9pZCogYXJnKQotewotICAg
IHNjYXZlbmdlX2RhdGEqIGRhdGE7Ci0gICAgYm9vbCByZXN1bHQ7Ci0KLSAgICBkYXRhID0gYXJn
OwotICAgIGRhdGEtPndvcmRfcHRyID0gd29yZF9wdHI7Ci0gICAgCi0gICAgcmVzdWx0ID0gcGFz
X2JpdHZlY3Rvcl9mb3JfZWFjaF9zZXRfYml0KHNjYXZlbmdlX2Zvcl9lYWNoX3NldF9iaXRfYml0
c19zb3VyY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdv
cmRfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdv
cmRfaW5kZXggKyAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzY2F2ZW5nZV9mb3JfZWFjaF9zZXRfYml0X2NhbGxiYWNrLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhKTsKLSAgICBQQVNfQVNTRVJUKHJlc3VsdCk7
Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgcGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzX3NjYXZlbmdlKHZvaWQpCi17Ci0gICAgc2NhdmVuZ2VfZGF0YSBkYXRhOwotICAgIHBh
c19mb3VuZF9pbmRleCByZXN1bHQ7Ci0KLSAgICBkYXRhLnNob3VsZF9nb19hZ2FpbiA9IGZhbHNl
OwotICAgIGRhdGEud29yZF9wdHIgPSBOVUxMOwotCi0gICAgcmVzdWx0ID0gcGFzX2FsbF9iaWFz
aW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3JfaXRlcmF0ZSgKLSAgICAgICAgJnBhc19h
bGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0dmVjdG9yX2luc3RhbmNlLAotICAgICAg
ICAwLAotICAgICAgICBzY2F2ZW5nZV9iaXR2ZWN0b3Jfd29yZF9jYWxsYmFjaywKLSAgICAgICAg
JmRhdGEpOwotCi0gICAgUEFTX0FTU0VSVCghcmVzdWx0LmRpZF9zdWNjZWVkKTsKLQotICAgIHJl
dHVybiBkYXRhLnNob3VsZF9nb19hZ2FpbjsKLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVE
ICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsX2JpYXNp
bmdfZGlyZWN0b3JpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXMuaAkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9iaWFzaW5nX2RpcmVj
dG9yaWVzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0FMTF9CSUFTSU5HX0RJ
UkVDVE9SSUVTX0gKLSNkZWZpbmUgUEFTX0FMTF9CSUFTSU5HX0RJUkVDVE9SSUVTX0gKLQotI2lu
Y2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X2F0
b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfc2VnbWVudGVkX3Zl
Y3Rvci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLVBBU19ERUNMQVJFX1NFR01FTlRFRF9W
RUNUT1IocGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FjdGl2ZV9iaXR2ZWN0b3IsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA0KTsKLVBBU19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX2FsbF9iaWFzaW5n
X2RpcmVjdG9yaWVzX3ZlY3RvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0ciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgNCk7Ci0KLVBBU19BUEkgZXh0ZXJuIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmll
c19hY3RpdmVfYml0dmVjdG9yIHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmVfYml0
dmVjdG9yX2luc3RhbmNlOwotUEFTX0FQSSBleHRlcm4gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9y
aWVzX3ZlY3RvciBwYXNfYWxsX2JpYXNpbmdfZGlyZWN0b3JpZXNfdmVjdG9yX2luc3RhbmNlOwot
Ci1QQVNfQVBJIHZvaWQgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FwcGVuZChwYXNfYmlh
c2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgYm9vbCBwYXNfYWxsX2JpYXNp
bmdfZGlyZWN0b3JpZXNfYWN0aXZhdGUocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3Rvcnkp
OwotCi1QQVNfQVBJIGJvb2wgcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3NjYXZlbmdlKHZv
aWQpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0FMTF9CSUFTSU5HX0RJ
UkVDVE9SSUVTX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2FsbF9oZWFwcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19hbGxfaGVhcHMuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9oZWFwcy5jCSh3b3JraW5nIGNvcHkpCkBAIC0z
NiwxNCArMzYsMTIgQEAKICNpbmNsdWRlICJqaXRfaGVhcC5oIgogI2luY2x1ZGUgIm1pbmFsaWdu
MzJfaGVhcC5oIgogI2luY2x1ZGUgInBhZ2VzaXplNjRrX2hlYXAuaCIKLSNpbmNsdWRlICJwYXNf
Ymlhc2luZ19kaXJlY3RvcnlfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfaGVhcC5o
IgogI2luY2x1ZGUgInBhc19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgogI2lu
Y2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgogI2luY2x1ZGUgInBhc19wdHJf
aGFzaF9zZXQuaCIKICNpbmNsdWRlICJwYXNfc2NhdmVuZ2VyLmgiCi0jaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9o
ZWFwLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5oIgogI2luY2x1ZGUgInBhc191dGls
aXR5X2hlYXBfY29uZmlnLmgiCkBAIC0yMjMsNDMgKzIyMSwxOCBAQCB0eXBlZGVmIHN0cnVjdCB7
CiAgICAgdm9pZCogYXJnOwogfSBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhOwog
Ci1zdGF0aWMgYm9vbCBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVjdG9yeV9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfY2FsbGJhY2soCitzdGF0aWMgYm9vbCBmb3JfZWFjaF9zZWdyZWdhdGVkX2RpcmVj
dG9yeV9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBo
ZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9p
ZCogYXJnKQogewogICAgIGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGEqIGRhdGE7
Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwb29sOwotICAgIHNpemVfdCBpbmRleDsKIAog
ICAgIFBBU19VTlVTRURfUEFSQU0oaGVhcCk7CiAKICAgICBkYXRhID0gYXJnOwogCi0gICAgaWYg
KCFkYXRhLT5jYWxsYmFjaygmZGlyZWN0b3J5LT5iYXNlLCBkYXRhLT5hcmcpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICBwb29sID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2JpYXNfc2hhcmluZ19wb29sKGRpcmVjdG9yeSk7Ci0gICAgZm9yIChpbmRleCA9IHBh
c19wYWdlX3NoYXJpbmdfcG9vbF9udW1fcGFydGljaXBhbnRzKHBvb2wpOyBpbmRleC0tOykgewot
ICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50IHBhcnRpY2lwYW50OwotICAgICAg
ICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0K
LSAgICAgICAgcGFydGljaXBhbnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZ2V0X3BhcnRpY2lw
YW50KHBvb2wsIGluZGV4KTsKLQotICAgICAgICBpZiAoIXBhcnRpY2lwYW50KQotICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgUEFTX0FTU0VSVChwYXNfcGFnZV9zaGFyaW5nX3BhcnRp
Y2lwYW50X2dldF9raW5kKHBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAgICAgID09IHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnkpOwotCi0gICAgICAgIGJp
YXNpbmdfZGlyZWN0b3J5ID0gcGFzX3Vud3JhcF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5
KAotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfcHRyKHBhcnRp
Y2lwYW50KSk7Ci0KLSAgICAgICAgaWYgKCFkYXRhLT5jYWxsYmFjaygmYmlhc2luZ19kaXJlY3Rv
cnktPmJhc2UsIGRhdGEtPmFyZykpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
ICAgIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBkYXRhLT5jYWxsYmFjaygmZGlyZWN0
b3J5LT5iYXNlLCBkYXRhLT5hcmcpOwogfQogCiBzdGF0aWMgYm9vbCBmb3JfZWFjaF9zZWdyZWdh
dGVkX2RpcmVjdG9yeV9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfY2FsbGJhY2soCkBAIC0yODcsOCAr
MjYwLDggQEAgc3RhdGljIGJvb2wgZm9yX2VhY2hfc2VncmVnYXRlZF9kaXJlY3RvcgogCiAgICAg
ZGF0YSA9IGFyZzsKIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkoCi0gICAgICAgICAgICBoZWFwLCBmb3JfZWFjaF9zZWdyZWdhdGVk
X2RpcmVjdG9yeV9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRhdGEpKQorICAgIGlm
ICghcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKKyAgICAgICAg
ICAgIGhlYXAsIGZvcl9lYWNoX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemVfZGlyZWN0b3J5X2Nh
bGxiYWNrLCBkYXRhKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFjb25maWct
PmZvcl9lYWNoX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSgKQEAgLTMyOCwxMyArMzAxLDggQEAgc3Rh
dGljIHZvaWQgZHVtcF9kaXJlY3RvcnlfbmljZWx5KHBhc19zZQogICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+cGFnZV9jb25m
aWdfa2luZCksCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZF9nZXRf
c3RyaW5nKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQpKTsKICAgICBzd2l0Y2ggKGRpcmVjdG9y
eS0+ZGlyZWN0b3J5X2tpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9raW5kOgotICAgICAgICBwYXNfbG9nKCIsICV1IiwgKChwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKWRpcmVjdG9yeSktPm9iamVjdF9zaXplKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5k
OgotICAgICAgICBwYXNfbG9nKCIsICV1IiwKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKLSAgICAgICAgICAgICAg
ICAgICAgJigocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVjdG9yeSktPnBh
cmVudF9nbG9iYWwpLT5vYmplY3Rfc2l6ZSk7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9raW5kOgorICAgICAgICBwYXNfbG9nKCIsICV1IiwgKChwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSopZGlyZWN0b3J5KS0+b2JqZWN0X3NpemUpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9raW5kOgog
ICAgICAgICBicmVhazsKQEAgLTQ0NSw5ICs0MTMsNiBAQCBzdGF0aWMgYm9vbCBjb21wdXRlX3Rv
dGFsX25vbl91dGlsaXR5X3NlCiAgICAgc2l6ZV90IGluZGV4OwogICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKIAotICAgIGlmIChkaXJlY3RvcnktPmRpcmVjdG9y
eV9raW5kID09IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQpCi0gICAgICAg
IHJldHVybiB0cnVlOwotCiAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5k
X2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
YWxsX21hZ2F6aW5lcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19hbGxfbWFnYXppbmVzLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxfbWFnYXppbmVzLmMJKG5vbmV4aXN0ZW50
KQpAQCAtMSw4OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFC
TEVECi0KLSNpbmNsdWRlICJwYXNfYWxsX21hZ2F6aW5lcy5oIgotCi0jaW5jbHVkZSAicGFzX2hl
YXBfbG9jay5oIgotI2luY2x1ZGUgInBhc19tYWdhemluZS5oIgotI2luY2x1ZGUgInBhc19tb25v
dG9uaWNfdGltZS5oIgotI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oIgot
Ci0jaWYgZGVmaW5lZChfX2hhc19pbmNsdWRlKSAmJiBfX2hhc19pbmNsdWRlKDxvcy90c2QuaD4p
Ci0jaW5jbHVkZSA8b3MvdHNkLmg+Ci0jZGVmaW5lIFBBU19IQVZFX09TX1RTRCAxCi0jZWxzZQot
I2RlZmluZSBQQVNfSEFWRV9PU19UU0QgMAotI2VuZGlmCi0KLXBhc19hbGxfbWFnYXppbmVzX3Zl
Y3RvciBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2UgPSBQQVNfSU1NVVRBQkxFX1ZF
Q1RPUl9JTklUSUFMSVpFUjsKLXVuc2lnbmVkIHBhc19hbGxfbWFnYXppbmVzX2ZvcmNlZF9jcHVf
bnVtYmVyID0gVUlOVF9NQVg7Ci0KLXBhc19tYWdhemluZSogcGFzX2FsbF9tYWdhemluZXNfZ2V0
X2N1cnJlbnQodm9pZCkKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
Ci0gICAgCi0gICAgdW5zaWduZWQgY3B1OwotICAgIHVuc2lnbmVkIHNpemU7Ci0KLSAgICBjcHUg
PSBwYXNfYWxsX21hZ2F6aW5lc19mb3JjZWRfY3B1X251bWJlcjsKLSAgICBpZiAoY3B1ID09IFVJ
TlRfTUFYKSB7Ci0jaWYgUEFTX0hBVkVfT1NfVFNECi0gICAgICAgIGNwdSA9IF9vc19jcHVfbnVt
YmVyKCk7Ci0jZWxzZQotICAgICAgICBjcHUgPSAwOyAvKiBGSVhNRTogV2Ugc2hvdWxkIGJlIGFi
bGUgdG8gZG8gYmV0dGVyIHRoYW4gdGhpcyEgKi8KLSNlbmRpZgotICAgIH0KLQotICAgIGlmICh2
ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJjcHUgPSAldVxuIiwgY3B1KTsKLQotICAgIHNpemUg
PSBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2Uuc2l6ZTsKLQotICAgIGlmIChQQVNf
TElLRUxZKGNwdSA8IHNpemUpKQotICAgICAgICByZXR1cm4gcGFzX2FsbF9tYWdhemluZXNfdmVj
dG9yX2dldCgmcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2luc3RhbmNlICsgcGFzX2RlcGVuZChz
aXplKSwgY3B1KTsKLQotICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotCi0gICAgd2hpbGUgKGNw
dSA+PSBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2Uuc2l6ZSkgewotICAgICAgICBw
YXNfbWFnYXppbmUqIG1hZ2F6aW5lOwotCi0gICAgICAgIG1hZ2F6aW5lID0gcGFzX21hZ2F6aW5l
X2NyZWF0ZShwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfaW5zdGFuY2Uuc2l6ZSk7Ci0gICAgICAg
IAotICAgICAgICBwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3JfYXBwZW5kKCZwYXNfYWxsX21hZ2F6
aW5lc192ZWN0b3JfaW5zdGFuY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWFnYXppbmUsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIH0KLQotICAgIHBhc19oZWFw
X2xvY2tfdW5sb2NrKCk7Ci0KLSAgICBQQVNfQVNTRVJUKGNwdSA8IHBhc19hbGxfbWFnYXppbmVz
X3ZlY3Rvcl9pbnN0YW5jZS5zaXplKTsKLSAgICByZXR1cm4gcGFzX2FsbF9tYWdhemluZXNfdmVj
dG9yX2dldCgmcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2luc3RhbmNlLCBjcHUpOwotfQotCi0j
ZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19hbGxfbWFnYXppbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbF9tYWdhemluZXMu
aAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIw
MjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19BTExfTUFHQVpJTkVTX0gK
LSNkZWZpbmUgUEFTX0FMTF9NQUdBWklORVNfSAotCi0jaW5jbHVkZSAicGFzX2ltbXV0YWJsZV92
ZWN0b3IuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX21hZ2F6aW5lOwot
dHlwZWRlZiBzdHJ1Y3QgcGFzX21hZ2F6aW5lIHBhc19tYWdhemluZTsKLQotUEFTX0RFQ0xBUkVf
SU1NVVRBQkxFX1ZFQ1RPUihwYXNfYWxsX21hZ2F6aW5lc192ZWN0b3IsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19tYWdhemluZSopOwotCi1QQVNfQVBJIGV4dGVybiBwYXNfYWxs
X21hZ2F6aW5lc192ZWN0b3IgcGFzX2FsbF9tYWdhemluZXNfdmVjdG9yX2luc3RhbmNlOwotUEFT
X0FQSSBleHRlcm4gdW5zaWduZWQgcGFzX2FsbF9tYWdhemluZXNfZm9yY2VkX2NwdV9udW1iZXI7
Ci0KLVBBU19BUEkgcGFzX21hZ2F6aW5lKiBwYXNfYWxsX21hZ2F6aW5lc19nZXRfY3VycmVudCh2
b2lkKTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19BTExfTUFHQVpJTkVT
X0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9j
YXRpb25fcmVzdWx0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2FsbG9jYXRpb25fcmVzdWx0LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19hbGxvY2F0aW9uX3Jlc3VsdC5jCShub25l
eGlzdGVudCkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VO
QUJMRUQKLQotI2luY2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIgotCi12b2lkIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCogcmVzdWx0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKLXsKLSAgICBpZiAoIXJl
c3VsdC0+emVyb19tb2RlICYmIHJlc3VsdC0+ZGlkX3N1Y2NlZWQpIHsKLSAgICAgICAgcGFzX3pl
cm9fbWVtb3J5KCh2b2lkKilyZXN1bHQtPmJlZ2luLCBzaXplKTsKLSAgICAgICAgcmVzdWx0LT56
ZXJvX21vZGUgPSBwYXNfemVyb19tb2RlX2lzX2FsbF96ZXJvOwotICAgIH0KLX0KLQotI2VuZGlm
IC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYWxsb2NhdGlvbl9yZXN1bHQuaAkocmV2aXNpb24gMjgy
MjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2FsbG9jYXRpb25f
cmVzdWx0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChjKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFBBU19B
TExPQ0FUSU9OX1JFU1VMVF9ICiAjZGVmaW5lIFBBU19BTExPQ0FUSU9OX1JFU1VMVF9ICiAKKyNp
bmNsdWRlIDxlcnJuby5oPgogI2luY2x1ZGUgInBhc191dGlscy5oIgogI2luY2x1ZGUgInBhc196
ZXJvX21vZGUuaCIKIApAQCAtMzgsMTEgKzM5LDEzIEBAIHR5cGVkZWYgc3RydWN0IHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdCBwYXMKICAgIHRvIHNlcGFyYXRlIG91dCB0aGUgYWxsb2NhdGlvbiByZXN1
bHQgc3RhdHVzIGZyb20gdGhlIHBvaW50ZXIgdG8gbWFrZSBjb21waWxlciB0cmFuc2Zvcm1hdGlv
bnMKICAgIG9uIHRoZSBhbGxvY2F0aW9uIGZhc3QgcGF0aCB3b3JrLiAqLwogc3RydWN0IHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCB7CisgICAgdWludHB0cl90IGJlZ2luOwogICAgIGJvb2wgZGlkX3N1
Y2NlZWQ7CiAgICAgcGFzX3plcm9fbW9kZSB6ZXJvX21vZGU7Ci0gICAgdWludHB0cl90IGJlZ2lu
OwogfTsKIAordHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfYWxsb2NhdGlvbl9y
ZXN1bHRfZmlsdGVyKShwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KTsKKwogc3RhdGljIGlu
bGluZSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9m
YWlsdXJlKHZvaWQpCiB7CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKQEAgLTY5
LDggKzcyLDM5IEBAIHN0YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHBhc18KICAg
ICAgICAgYmVnaW4sIHBhc196ZXJvX21vZGVfbWF5X2hhdmVfbm9uX3plcm8pOwogfQogCi1QQVNf
QVBJIHZvaWQgcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8ocGFzX2FsbG9jYXRpb25fcmVzdWx0
KiByZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90
IHNpemUpOworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAor
cGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50aXR5KHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1
bHQpCit7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2FsbG9jYXRpb25fcmVzdWx0X3plcm8ocGFzX2Fs
bG9jYXRpb25fcmVzdWx0IHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBzaXplKQoreworICAgIGlmIChyZXN1bHQuZGlkX3N1Y2NlZWQKKyAgICAgICAgJiYgcmVzdWx0
Lnplcm9fbW9kZSA9PSBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvKSB7CisgICAgICAg
IHBhc196ZXJvX21lbW9yeSgodm9pZCopcmVzdWx0LmJlZ2luLCBzaXplKTsKKyAgICAgICAgcmV0
dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3plcm9fbW9kZSgK
KyAgICAgICAgICAgIHJlc3VsdC5iZWdpbiwgcGFzX3plcm9fbW9kZV9pc19hbGxfemVybyk7Cisg
ICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBw
YXNfYWxsb2NhdGlvbl9yZXN1bHQKK3Bhc19hbGxvY2F0aW9uX3Jlc3VsdF9zZXRfZXJybm8ocGFz
X2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKK3sKKyAgICBpZiAoIXJlc3VsdC5kaWRfc3VjY2Vl
ZCkKKyAgICAgICAgZXJybm8gPSBFTk9NRU07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2FsbG9jYXRp
b25fcmVzdWx0X2NyYXNoX29uX2Vycm9yKHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCit7
CisgICAgUEFTX0FTU0VSVChyZXN1bHQuZGlkX3N1Y2NlZWQpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CiAKIFBBU19FTkRfRVhURVJOX0M7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmMJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iYXNl
bGluZV9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpAQCAtMjksMTYgKzI5LDE2IEBACiAKICNp
bmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmgiCiAKLSNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeS5oIgogCiB2b2lkIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfYXR0YWNoX2Rp
cmVjdG9yeShwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7
CiAgICAgUEFTX0FTU0VSVCghYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3KTsKICAgICAKICAg
ICBQQVNfQVNTRVJUKAogICAgICAgICBQQVNfQkFTRUxJTkVfTE9DQUxfQUxMT0NBVE9SX1NJWkUK
LSAgICAgICAgPj0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2Fs
bG9jYXRvcl9zaXplKGRpcmVjdG9yeSkpOworICAgICAgICA+PSBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZShkaXJlY3RvcnkpKTsKICAgICAKICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdCgmYWxsb2NhdG9yLT51LmFsbG9jYXRvciwgZGly
ZWN0b3J5KTsKIH0KQEAgLTUwLDcgKzUwLDYgQEAgdm9pZCBwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
X2RldGFjaF9kaXJlYwogICAgICAgICAmYWxsb2NhdG9yLT51LmFsbG9jYXRvciwKICAgICAgICAg
cGFzX2xvY2tfbG9ja19tb2RlX2xvY2ssCiAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsK
LSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2Rlc3RydWN0KCZhbGxvY2F0b3ItPnUuYWxsb2NhdG9y
KTsKICAgICBwYXNfemVyb19tZW1vcnkoJmFsbG9jYXRvci0+dS5hbGxvY2F0b3IsIHNpemVvZihw
YXNfbG9jYWxfYWxsb2NhdG9yKSk7IC8qIERvZXMgbm90IHplcm8gdGhlIGJpdHMsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB3aGljaCBpcyBPSy4gKi8KIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iYXNlbGluZV9hbGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmFzZWxpbmVfYWxsb2NhdG9yLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iYXNlbGluZV9hbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBAQCBz
dHJ1Y3QgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciB7CiAgICAgfSkKIAogUEFTX0FQSSB2b2lkIHBh
c19iYXNlbGluZV9hbGxvY2F0b3JfYXR0YWNoX2RpcmVjdG9yeShwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yKiBhbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKIFBBU19BUEkg
dm9pZCBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlY3RvcnkocGFzX2Jhc2VsaW5l
X2FsbG9jYXRvciogYWxsb2NhdG9yKTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmMJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFzaW5n
X2RpcmVjdG9yeS5jCShub25leGlzdGVudCkKQEAgLTEsMTQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2Nv
bmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2Rp
cmVjdG9yeS5oIgotCi0jaW5jbHVkZSAicGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmgiCi0j
aW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bv
b2wuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIK
LQotdm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfY29uc3RydWN0KHBhc19iaWFzaW5nX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19iaWFzaW5nX2RpcmVjdG9yeV9raW5kIGtpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgbWFnYXppbmVfaW5kZXgpCi17Ci0gICAgcGFzX3ZlcnNpb25l
ZF9maWVsZF9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+ZWxpZ2libGVfaGlnaF93YXRlcm1hcmssIDAp
OwotICAgIAotICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9hZF93aXRoX3Vz
ZV9lcG9jaF9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3BheWxvYWQpOwotCi0g
ICAgZGlyZWN0b3J5LT5jdXJyZW50X2hpZ2hfd2F0ZXJtYXJrID0gMDsKLSAgICBkaXJlY3Rvcnkt
PnByZXZpb3VzX2hpZ2hfd2F0ZXJtYXJrID0gMDsKLQotICAgIGRpcmVjdG9yeS0+aW5kZXhfaW5f
YWxsID0gMDsKLSAgICAKLSAgICBkaXJlY3RvcnktPmtpbmQgPSBraW5kOwotCi0gICAgcGFzX2Fs
bF9iaWFzaW5nX2RpcmVjdG9yaWVzX2FwcGVuZChkaXJlY3RvcnkpOwotCi0gICAgcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX2FkZF9hdF9pbmRleCgKLSAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5
X2dldF9zaGFyaW5nX3Bvb2woZGlyZWN0b3J5KSwKLSAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9jcmVhdGUoCi0gICAgICAgICAgICBkaXJlY3RvcnksIHBhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3RvcnkpLAotICAgICAgICBtYWdhemluZV9pbmRl
eCk7Ci19Ci0KLXBhc19wYWdlX3NoYXJpbmdfcG9vbCogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dl
dF9zaGFyaW5nX3Bvb2wocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAg
aWYgKHBhc19pc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KGRpcmVjdG9yeSkpIHsKLSAg
ICAgICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9h
ZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAmcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0g
ICAgICAgICAgICAgICAgICAgICZwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rv
cnkoCi0gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkpLT5wYXJlbnRfZ2xvYmFsKS0+
ZGF0YSktPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcGFzX2NvbXBh
Y3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAm
cGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0g
ICAgICAgICAgICAmcGFzX3Vud3JhcF9iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAg
ICAgICAgICAgZGlyZWN0b3J5KS0+cGFyZW50X2dsb2JhbCktPmJpYXNfc2hhcmluZ19wb29sKTsK
LX0KLQotdm9pZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZGlkX2NyZWF0ZV9kZWx0YShwYXNfYmlh
c2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wq
IHBvb2w7Ci0gICAgCi0gICAgcG9vbCA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9nZXRfc2hhcmlu
Z19wb29sKGRpcmVjdG9yeSk7Ci0gICAgCi0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9j
cmVhdGVfZGVsdGEoCi0gICAgICAgIHBvb2wsCi0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfY3JlYXRlKAotICAgICAgICAgICAgZGlyZWN0b3J5LAotICAgICAgICAgICAgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSkpOwotfQotCi1wYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2Vf
bGFzdF91bnVzZWQoCi0gICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0g
ICAgaWYgKHBhc19pc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KGRpcmVjdG9yeSkpIHsK
LSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfbGFz
dF91bnVzZWQoCi0gICAgICAgICAgICBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkoZGlyZWN0b3J5KSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgKLSAgICAgICAgcGFzX3Vud3JhcF9iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5KSk7Ci19Ci0KLXZvaWQgcGFzX2JpYXNpbmdfZGly
ZWN0b3J5X2RpZF91c2VfaW5kZXhfc2xvdyhwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
aW5kZXgpCi17Ci0gICAgc2l6ZV90IGxhcmdlX2luZGV4X3BsdXNfb25lOwotICAgIHVuc2lnbmVk
IGluZGV4X3BsdXNfb25lOwotICAgIGJvb2wgZGlkX292ZXJmbG93OwotCi0gICAgZGlkX292ZXJm
bG93ID0gX19idWlsdGluX2FkZF9vdmVyZmxvdyhpbmRleCwgMSwgJmxhcmdlX2luZGV4X3BsdXNf
b25lKTsKLSAgICBQQVNfQVNTRVJUKCFkaWRfb3ZlcmZsb3cpOwotICAgIGluZGV4X3BsdXNfb25l
ID0gKHVuc2lnbmVkKWxhcmdlX2luZGV4X3BsdXNfb25lOwotICAgIFBBU19BU1NFUlQoaW5kZXhf
cGx1c19vbmUgPT0gbGFyZ2VfaW5kZXhfcGx1c19vbmUpOwotICAgIGRpcmVjdG9yeS0+Y3VycmVu
dF9oaWdoX3dhdGVybWFyayA9IGluZGV4X3BsdXNfb25lOwotICAgIHBhc19mZW5jZSgpOwotICAg
IHBhc19hbGxfYmlhc2luZ19kaXJlY3Rvcmllc19hY3RpdmF0ZShkaXJlY3RvcnkpOwotfQotCi12
b2lkIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmRleF9kaWRfYmVjb21lX2VsaWdpYmxlKHBhc19i
aWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAgc2l6ZV90IHdh
dGVybWFya19pbmRleDsKLSAgICBib29sIGRpZF9vdmVyZmxvdzsKLSAgICBib29sIHNob3VsZF9u
b3RpZnlfZGVsdGE7Ci0KLSAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1aWx0aW5fYWRkX292ZXJmbG93
KGluZGV4LCAxLCAmd2F0ZXJtYXJrX2luZGV4KTsKLSAgICBQQVNfQVNTRVJUKCFkaWRfb3ZlcmZs
b3cpOwotCi0gICAgc2hvdWxkX25vdGlmeV9kZWx0YSA9Ci0gICAgICAgIHBhc192ZXJzaW9uZWRf
ZmllbGRfbWF4aW1pemUoCi0gICAgICAgICAgICAmZGlyZWN0b3J5LT5lbGlnaWJsZV9oaWdoX3dh
dGVybWFyaywgd2F0ZXJtYXJrX2luZGV4KQotICAgICAgICA8IHdhdGVybWFya19pbmRleDsKLQot
ICAgIGlmIChzaG91bGRfbm90aWZ5X2RlbHRhKSB7Ci0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdf
cG9vbCogcG9vbDsKLQotICAgICAgICBwb29sID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dldF9z
aGFyaW5nX3Bvb2woZGlyZWN0b3J5KTsKLQotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
ZGlkX2NyZWF0ZV9kZWx0YSgKLSAgICAgICAgICAgIHBvb2wsCi0gICAgICAgICAgICBwYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKLSAgICAgICAgICAgICAgICBkaXJlY3Rvcnks
Ci0gICAgICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2Rp
cmVjdG9yeSkpOwotICAgIH0KLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlhc2luZ19kaXJlY3Rvcnku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYmlh
c2luZ19kaXJlY3RvcnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5LmgJKG5vbmV4aXN0ZW50KQpAQCAt
MSwxMjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpZm5kZWYgUEFTX0JJQVNJTkdfRElSRUNUT1JZX0gKLSNkZWZpbmUgUEFTX0JJ
QVNJTkdfRElSRUNUT1JZX0gKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5k
LmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oIgotI2luY2x1ZGUg
InBhc192ZXJzaW9uZWRfZmllbGQuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3Qg
cGFzX2JpYXNpbmdfZGlyZWN0b3J5Owotc3RydWN0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rv
cnk7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0
cnVjdCBwYXNfYmlhc2luZ19kaXJlY3RvcnkgcGFzX2JpYXNpbmdfZGlyZWN0b3J5OwotdHlwZWRl
ZiBzdHJ1Y3QgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rv
cnkgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnk7Ci0KLXN0cnVjdCBwYXNfYmlhc2lu
Z19kaXJlY3RvcnkgewotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZWxpZ2libGVfaGlnaF93YXRl
cm1hcms7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkX3dpdGhfdXNl
X2Vwb2NoIGJpYXNfc2hhcmluZ19wYXlsb2FkOwotICAgIHVuc2lnbmVkIGN1cnJlbnRfaGlnaF93
YXRlcm1hcms7Ci0gICAgdW5zaWduZWQgcHJldmlvdXNfaGlnaF93YXRlcm1hcms7Ci0gICAgdW5z
aWduZWQgaW5kZXhfaW5fYWxsIDogMzE7Ci0gICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQg
a2luZCA6IDE7Ci19OwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2NvbnN0
cnVjdChwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9raW5kIGtp
bmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBtYWdhemluZV9pbmRleCk7Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfaXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeShwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsK
LSAgICByZXR1cm4gZGlyZWN0b3J5LT5raW5kID09IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9zZWdy
ZWdhdGVkX2tpbmQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfaXNfYml0Zml0X2JpYXNp
bmdfZGlyZWN0b3J5KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJl
dHVybiAhcGFzX2lzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoZGlyZWN0b3J5KTsKLX0K
LQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVf
aW5kZXgocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcmV0dXJuIGRp
cmVjdG9yeS0+Ymlhc19zaGFyaW5nX3BheWxvYWQuYmFzZS5pbmRleF9pbl9zaGFyaW5nX3Bvb2w7
Ci19Ci0KLS8qIEFsbCB2aWV3cyBhdCBpbmRpY2VzIGJlbG93IHRoZSBvd25lcnNoaXAgdGhyZXNo
b2xkIGFyZSBnb2luZyB0byBiZSBrZXB0IGZyb20gdGhlIGdsb2JhbAotICAgZGlyZWN0b3J5LiAq
Lwotc3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfYmlhc2luZ19kaXJlY3Rvcnlfb3duZXJzaGlw
X3RocmVzaG9sZChwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICByZXR1
cm4gUEFTX01BWChkaXJlY3RvcnktPmN1cnJlbnRfaGlnaF93YXRlcm1hcmssCi0gICAgICAgICAg
ICAgICAgICAgZGlyZWN0b3J5LT5wcmV2aW91c19oaWdoX3dhdGVybWFyayk7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgdW5zaWduZWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X3VudXNlZF9zcGFuX3NpemUo
cGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgdW5zaWduZWQgb3duZXJz
aGlwX3RocmVzaG9sZDsKLSAgICBzaXplX3QgZWxpZ2libGVfdGhyZXNob2xkOwotICAgIHVuc2ln
bmVkIHNtYWxsX2VsaWdpYmxlX3RocmVzaG9sZDsKLQotICAgIC8qIFRoaXMgaXMgd3JpdHRlbiBz
byB0aGF0IGl0IHJldHVybnMgc29tZXRoaW5nIHNlbnNpYmxlIGV2ZW4gaW4gY2FzZSBvZiByYWNl
cy4gKi8KLSAgICBvd25lcnNoaXBfdGhyZXNob2xkID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X293
bmVyc2hpcF90aHJlc2hvbGQoZGlyZWN0b3J5KTsKLSAgICBlbGlnaWJsZV90aHJlc2hvbGQgPSBk
aXJlY3RvcnktPmVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlOwotCi0gICAgc21hbGxfZWxp
Z2libGVfdGhyZXNob2xkID0gKHVuc2lnbmVkKWVsaWdpYmxlX3RocmVzaG9sZDsKLSAgICBQQVNf
QVNTRVJUKHNtYWxsX2VsaWdpYmxlX3RocmVzaG9sZCA9PSBlbGlnaWJsZV90aHJlc2hvbGQpOwot
Ci0gICAgaWYgKG93bmVyc2hpcF90aHJlc2hvbGQgPiBzbWFsbF9lbGlnaWJsZV90aHJlc2hvbGQp
Ci0gICAgICAgIHJldHVybiAwOyAvKiBUaGlzIGlzIHRvdGFsbHkgcG9zc2libGUgLSBvd25lcnNo
aXAgYW5kIGVsaWdpYmxpdHkgZmxvYXQgaW5kZXBlbmRlbnRseS4gKi8KLQotICAgIHJldHVybiBz
bWFsbF9lbGlnaWJsZV90aHJlc2hvbGQgLSBvd25lcnNoaXBfdGhyZXNob2xkOwotfQotCi1QQVNf
QVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2dldF9zaGFy
aW5nX3Bvb2wocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHZv
aWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2RpZF9jcmVhdGVfZGVsdGEocGFzX2JpYXNpbmdfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtl
X3Jlc3VsdCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgKLSAgICBwYXNf
Ymlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfYmlhc2lu
Z19kaXJlY3RvcnlfZGlkX3VzZV9pbmRleF9zbG93KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGly
ZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZV90IGluZGV4KTsKLQotc3RhdGljIGlubGluZSB2b2lkIHBhc19iaWFzaW5nX2Rp
cmVjdG9yeV9kaWRfdXNlX2luZGV4KHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1aW50NjRfdCBlcG9jaCkKLXsKLSAgICBpZiAoUEFTX1VOTElLRUxZKGluZGV4
ID49IGRpcmVjdG9yeS0+Y3VycmVudF9oaWdoX3dhdGVybWFyaykpCi0gICAgICAgIHBhc19iaWFz
aW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4X3Nsb3coZGlyZWN0b3J5LCBpbmRleCk7Ci0KLSAg
ICBkaXJlY3RvcnktPmJpYXNfc2hhcmluZ19wYXlsb2FkLnVzZV9lcG9jaCA9IGVwb2NoOwotfQot
Ci1QQVNfQVBJIHZvaWQgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2luZGV4X2RpZF9iZWNvbWVfZWxp
Z2libGUocGFzX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4
KTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19CSUFTSU5HX0RJUkVDVE9S
WV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaWFz
aW5nX2RpcmVjdG9yeV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpYXNpbmdf
ZGlyZWN0b3J5X2lubGluZXMuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQklB
U0lOR19ESVJFQ1RPUllfSU5MSU5FU19ICi0jZGVmaW5lIFBBU19CSUFTSU5HX0RJUkVDVE9SWV9J
TkxJTkVTX0gKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUg
InBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0YXRpYyBp
bmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIHBhc191bndyYXBfc2VncmVn
YXRlZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVj
dG9yeSkKLXsKLSAgICBQQVNfQVNTRVJUKHBhc19pc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5KGRpcmVjdG9yeSkpOwotICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkqKSgKLSAgICAgICAgKHVpbnRwdHJfdClkaXJlY3RvcnkgLSBQQVNfT0ZGU0VUT0YocGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnksIGJpYXNpbmdfYmFzZSkpOwotfQotCi1zdGF0
aWMgaW5saW5lIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIHBhc191bndyYXBfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5KAotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5
KQotewotICAgIFBBU19BU1NFUlQocGFzX2lzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeShkaXJl
Y3RvcnkpKTsKLSAgICByZXR1cm4gKHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqKSgKLSAg
ICAgICAgKHVpbnRwdHJfdClkaXJlY3RvcnkgLSBQQVNfT0ZGU0VUT0YocGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeSwgYmlhc2luZ19iYXNlKSk7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0K
LSNlbmRpZiAvKiBQQVNfQklBU0lOR19ESVJFQ1RPUllfSU5MSU5FU19IICovCi0KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9h
bGxvY2F0b3IuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw3ICszNCw3
IEBACiAjaW5jbHVkZSAicGFzX2JpdGZpdF9zaXplX2NsYXNzLmgiCiAjaW5jbHVkZSAicGFzX2Jp
dGZpdF92aWV3X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKLSNpbmNsdWRlICJw
YXNfc3VicGFnZV9tYXAuaCIKKyNpbmNsdWRlICJwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0
aW9uLmgiCiAKIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGFzX2JpdGZp
dF92aWV3KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yKiBsb2NhbCwKQEAgLTQzLDEwICs0Myw5IEBAIGJvb2wgcGFzX2JpdGZp
dF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGEKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CiAgICAgCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnk7Ci0gICAgYm9vbCB1c2VzX3N1YnBhZ2VzOworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5
KiBkaXJlY3Rvcnk7CiAKLSAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9wdHJfbG9hZCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSk7CisgICAgZGlyZWN0
b3J5ID0gcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZCgmdmlldy0+ZGlyZWN0
b3J5KTsKIAogICAgIC8qIFdlJ3JlIGFsbW9zdCBjZXJ0YWlubHkgZ29ubmEgY29tbWl0IGEgcGFn
ZSwgc28gbGV0J3MganVzdCBnZXQgdGhpcyBvdXQgb2YgdGhlIHdheS4gV2UgbmVlZCB0bwogICAg
ICAgIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrIHRvIGRvIHRoaXMuIEJ1dCwgd2UgY2FuJ3Qg
ZG8gaXQgYXQgYWxsIGlmIHdlIGFscmVhZHkgaG9sZCB0aGUgY29tbWl0CkBAIC01NSwxNiArNTQs
MTMgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYQogICAgICAgICBw
YXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKICAgICAgICAgcGFzX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9yX3BhZ2VfY29uZmlnKAogICAgICAgICAgICAg
Y29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgJmNvbmZpZy0+YmFzZSwgcGFzX2xvY2tfaXNfbm90X2hl
bGQsIE5VTEwsIDApOwotICAgICAgICBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9j
ayh2aWV3KTsKKyAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwog
ICAgIH0KIAotICAgIHVzZXNfc3VicGFnZXMgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3VzZXNf
c3VicGFnZXMoKmNvbmZpZyk7Ci0KICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygi
Y29tbWl0dGluZyBiaXRmaXQgdmlldyFcbiIpOwogCiAgICAgZm9yICg7OykgewotICAgICAgICBw
YXNfc3VicGFnZV9tYXBfZW50cnkqIHN1YnBhZ2VfZW50cnk7CiAgICAgICAgIHBhc19sb2NrKiBj
b21taXRfbG9jazsKICAgICAgICAgYm9vbCBoYXNfcGFnZV9ib3VuZGFyeTsKICAgICAgICAgCkBA
IC04NSw0NyArODEsNjMgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhw
YQogICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKIAogICAg
ICAgICBpZiAoIWhhc19wYWdlX2JvdW5kYXJ5KSB7CisgICAgICAgICAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X3RyYW5zYWN0aW9uIHRyYW5zYWN0aW9uOwogICAgICAgICAgICAgYm9vbCBkaWRfc3Vj
Y2VlZDsKKyAgICAgICAgICAgIGJvb2wgZGlkX2FscmVhZHlfaGF2ZV9ib3VuZGFyeTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgcGFzX2xv
ZygibmVlZCB0byBhbGxvY2F0ZSBuZXcgcGFnZS5cbiIpOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKLSAgICAgICAgICAgIHBhc19iaXRmaXRfdmlld19s
b2NrX293bmVyc2hpcF9sb2NrKHZpZXcpOwotICAgICAgICAgICAgaWYgKHZpZXctPnBhZ2VfYm91
bmRhcnkpIHsKLSAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBQQVNfQVNT
RVJUKCF2aWV3LT5pc19vd25lZCk7CisgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3Ry
YW5zYWN0aW9uX2NvbnN0cnVjdCgmdHJhbnNhY3Rpb24pOwogCi0gICAgICAgICAgICBpZiAodmVy
Ym9zZSkgewotICAgICAgICAgICAgICAgIHBhc19sb2coInJlYWxseSBhbGxvY2F0aW5nIG5ldyBw
YWdlLlxuIik7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiR2l2
aW5nIHZpZXcgJXAgd2l0aCBjb25maWcgJXMgYSBwYWdlLlxuIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHZpZXcsIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGNvbmZp
Zy0+a2luZCkpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgZGlkX3N1Y2NlZWQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIGRpZF9hbHJlYWR5X2hhdmVfYm91bmRhcnkgPSBmYWxzZTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSA9IGNvbmZpZy0+YmFzZS5w
YWdlX2FsbG9jYXRvcigKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkobG9jYWwtPnZpZXcpLT5oZWFwKTsKLSAgICAgICAgICAgIGRp
ZF9zdWNjZWVkID0gISF2aWV3LT5wYWdlX2JvdW5kYXJ5OwotCi0gICAgICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJwYWdlX2JvdW5kYXJ5ID0gJXAsIGRpZF9z
dWNjZWVkID0gJWRcbiIsIHZpZXctPnBhZ2VfYm91bmRhcnksIGRpZF9zdWNjZWVkKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgaWYgKGRpZF9zdWNjZWVkKSB7Ci0gICAgICAgICAgICAgICAg
Y29uZmlnLT5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcih2aWV3LT5wYWdlX2JvdW5kYXJ5LCBwYXNf
bG9ja19pc19oZWxkKTsKKyAgICAgICAgICAgIGZvciAoOzspIHsKKyAgICAgICAgICAgICAgICBQ
QVNfQVNTRVJUKCFkaWRfc3VjY2VlZCk7CisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghZGlk
X2FscmVhZHlfaGF2ZV9ib3VuZGFyeSk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgaWYgKHVzZXNfc3VicGFnZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgcGFzX3N1YnBhZ2Vf
bWFwX2FkZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91bmRhcnksCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjb25maWctPmJhc2UucGFnZV9zaXplLAotICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2NvbW1pdHRlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19sb2NrX2lzX2hlbGQpOworICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJh
bnNhY3Rpb25fYmVnaW4oJnRyYW5zYWN0aW9uKTsKKyAgICAgICAgICAgICAgICBwYXNfaGVhcF9s
b2NrX2xvY2soKTsKKyAgICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNo
aXBfbG9jayk7CisgICAgICAgICAgICAgICAgaWYgKHZpZXctPnBhZ2VfYm91bmRhcnkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYm9vbCBlbmRfcmVzdWx0OworICAgICAgICAgICAgICAgICAgICBw
YXNfaGVhcF9sb2NrX3VubG9jaygpOworICAgICAgICAgICAgICAgICAgICBlbmRfcmVzdWx0ID0g
cGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbl9lbmQoJnRyYW5zYWN0aW9uKTsKKyAgICAg
ICAgICAgICAgICAgICAgUEFTX0FTU0VSVChlbmRfcmVzdWx0KTsKKyAgICAgICAgICAgICAgICAg
ICAgZGlkX2FscmVhZHlfaGF2ZV9ib3VuZGFyeSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBQQVNfQVNTRVJUKCF2aWV3LT5pc19vd25lZCk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygi
cmVhbGx5IGFsbG9jYXRpbmcgbmV3IHBhZ2UuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkdpdmluZyB2aWV3ICVwIHdpdGggY29uZmlnICVz
IGEgcGFnZS5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldywgcGFzX2JpdGZp
dF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoY29uZmlnLT5raW5kKSk7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91
bmRhcnkgPSBjb25maWctPmJhc2UucGFnZV9hbGxvY2F0b3IoCisgICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KGxvY2FsLT52aWV3KS0+aGVh
cCwgJnRyYW5zYWN0aW9uKTsKKyAgICAgICAgICAgICAgICBkaWRfc3VjY2VlZCA9ICEhdmlldy0+
cGFnZV9ib3VuZGFyeTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygicGFnZV9ib3VuZGFyeSA9ICVwLCBk
aWRfc3VjY2VlZCA9ICVkXG4iLCB2aWV3LT5wYWdlX2JvdW5kYXJ5LCBkaWRfc3VjY2VlZCk7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGRpZF9zdWNjZWVkKQorICAgICAg
ICAgICAgICAgICAgICBjb25maWctPmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKHZpZXctPnBhZ2Vf
Ym91bmRhcnksIHBhc19sb2NrX2lzX2hlbGQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAg
ICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CisgICAgICAgICAgICAgICAgaWYgKHBhc19w
aHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb25fZW5kKCZ0cmFuc2FjdGlvbikpCisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghZGlkX3N1Y2Nl
ZWQpOworICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xv
Y2spOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfaGVhcF9s
b2NrX3VubG9jaygpOworCisgICAgICAgICAgICBpZiAoZGlkX2FscmVhZHlfaGF2ZV9ib3VuZGFy
eSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgaWYgKGRpZF9zdWNj
ZWVkKSB7CiAgICAgICAgICAgICAgICAgdmlldy0+aXNfb3duZWQgPSB0cnVlOwpAQCAtMTM3LDE2
ICsxNDksNyBAQCBib29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KHBhCiAgICAg
ICAgICAgICByZXR1cm4gZGlkX3N1Y2NlZWQ7CiAgICAgICAgIH0KIAotICAgICAgICBpZiAodXNl
c19zdWJwYWdlcykgewotICAgICAgICAgICAgLyogSXQncyBub3QgZ3JlYXQgdGhhdCB0aGlzIGhh
cyB0byBhY3F1aXJlIHRoZSBoZWFwIGxvY2ssIGJ1dCB0aGVuIGFnYWluIGlmIHdlJ3JlCi0gICAg
ICAgICAgICAgICBoZXJlIHRoZW4gd2UncmUgY29tbWl0dGVkIHRvIGNvbW1pdHRpbmcgdGhlIHBh
Z2UsIHNvIGl0J3MgcHJvYmFibHkgZmluZS4gKi8KLSAgICAgICAgICAgIHN1YnBhZ2VfZW50cnkg
PSBwYXNfc3VicGFnZV9tYXBfZ2V0KAotICAgICAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91bmRh
cnksIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLSAgICAg
ICAgICAgIGNvbW1pdF9sb2NrID0gJnN1YnBhZ2VfZW50cnktPmNvbW1pdF9sb2NrOwotICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgc3VicGFnZV9lbnRyeSA9IE5VTEw7Ci0gICAgICAgICAg
ICBjb21taXRfbG9jayA9ICZ2aWV3LT5jb21taXRfbG9jazsKLSAgICAgICAgfQorICAgICAgICBj
b21taXRfbG9jayA9ICZ2aWV3LT5jb21taXRfbG9jazsKIAogICAgICAgICBwYXNfbG9ja19sb2Nr
X2NvbmRpdGlvbmFsbHkoY29tbWl0X2xvY2ssIGNvbW1pdF9sb2NrX2hvbGRfbW9kZSk7CiAKQEAg
LTE2OSwxOCArMTcyLDExIEBAIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXco
cGEKICAgICAgICAgUEFTX0FTU0VSVCh2aWV3LT5wYWdlX2JvdW5kYXJ5KTsKICAgICAgICAgUEFT
X0FTU0VSVCghdmlldy0+aXNfb3duZWQpOwogCi0gICAgICAgIGlmICh1c2VzX3N1YnBhZ2VzKSB7
Ci0gICAgICAgICAgICBwYXNfc3VicGFnZV9tYXBfZW50cnlfY29tbWl0KAotICAgICAgICAgICAg
ICAgIHN1YnBhZ2VfZW50cnksCi0gICAgICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwK
LSAgICAgICAgICAgICAgICBjb25maWctPmJhc2UucGFnZV9zaXplKTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19jb21taXQoCi0gICAgICAgICAgICAgICAg
dmlldy0+cGFnZV9ib3VuZGFyeSwgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7Ci0gICAgICAgIH0K
KyAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCgKKyAgICAgICAgICAgIHZpZXctPnBhZ2Vf
Ym91bmRhcnksIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOwogICAgICAgICBjb25maWctPmJhc2Uu
Y3JlYXRlX3BhZ2VfaGVhZGVyKHZpZXctPnBhZ2VfYm91bmRhcnksIHBhc19sb2NrX2lzX25vdF9o
ZWxkKTsKIAotICAgICAgICBwYXNfYml0Zml0X3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayh2aWV3
KTsKKyAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwogCiAgICAg
ICAgIFBBU19BU1NFUlQoIXZpZXctPmlzX293bmVkKTsKIApAQCAtMTk0LDcgKzE5MCw3IEBAIGJv
b2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGEKICAgICAgICAgaWYgKFBBU19E
RUJVR19TUEVDVFJVTV9VU0VfRk9SX0NPTU1JVCkgewogICAgICAgICAgICAgcGFzX2hlYXBfbG9j
a19sb2NrKCk7CiAgICAgICAgICAgICBwYXNfZGVidWdfc3BlY3RydW1fYWRkKAotICAgICAgICAg
ICAgICAgIGRpcmVjdG9yeSwgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2R1bXBfZm9yX3Nw
ZWN0cnVtLCBjb25maWctPmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAgICAgICAgICBkaXJlY3Rv
cnksIHBhc19iaXRmaXRfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtLCBjb25maWctPmJhc2Uu
cGFnZV9zaXplKTsKICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CiAgICAgICAg
IH0KICAgICAgICAgCkBAIC0yMTIsNyArMjA4LDcgQEAgcGFzX2JpdGZpdF92aWV3KiBwYXNfYml0
Zml0X2FsbG9jYXRvcl9maQogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAg
ICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNzOwogICAgIHBhc19iaXRmaXRfdmll
dyogbmV3X3ZpZXc7Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4IHZpZXdfZGly
ZWN0b3J5X2FuZF9pbmRleDsKKyAgICB1bnNpZ25lZCB2aWV3X2luZGV4OwogCiAgICAgUEFTX1VO
VVNFRF9QQVJBTShhbGlnbm1lbnQpOwogCkBAIC0yMjIsMTQgKzIxOCw5IEBAIHBhc19iaXRmaXRf
dmlldyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfZmkKIAogICAgIGRpcmVjdG9yeSA9IHBhc19jb21w
YWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnNpemVfY2xhc3MtPmRpcmVj
dG9yeSk7CiAKLSAgICAvKiBJZiB3ZSdyZSBpbiB0aGUgd3JvbmcgZGlyZWN0b3J5LCB0aGVuIHJl
Z2FyZGxlc3Mgb2YgYW55dGhpbmcgZWxzZSAoYWxpZ25tZW50IGV0Yykgd2Ugc2hvdWxkCi0gICAg
ICAganVzdCBjbGVhbiB1cCB0aGUgYWxsb2NhdG9yIGFuZCBiYWlsLiAqLwotICAgIHZpZXdfZGly
ZWN0b3J5X2FuZF9pbmRleCA9IHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRf
aW5kZXgodmlldyk7Ci0gICAgaWYgKGRpcmVjdG9yeSAhPSB2aWV3X2RpcmVjdG9yeV9hbmRfaW5k
ZXguZGlyZWN0b3J5KSB7Ci0gICAgICAgIHBhc19iaXRmaXRfYWxsb2NhdG9yX3Jlc2V0KGFsbG9j
YXRvcik7Ci0gICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwot
ICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9i
aXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpID09IGRp
cmVjdG9yeSk7CisKKyAgICB2aWV3X2luZGV4ID0gdmlldy0+aW5kZXg7CiAKICAgICAvKiBJZiB3
ZSdyZSBzdGlsbCBvbiB0aGUgdmlldyB0aGF0IHRoZSBhbGxvY2F0b3Igd2FzIG9uIGFuZCB3ZSBm
b3VuZCB0aGF0IHRoaXMgdmlldyBubyBsb25nZXIKICAgICAgICBoYXMgZW5vdWdoIG1heF9mcmVl
IGZvciBvdXIgc2l6ZSBjbGFzcywgdGhlbiB0ZWxsIGV2ZXJ5b25lIGFib3V0IHRoaXMgYW5kIGJh
aWwuCkBAIC0yNDYsNyArMjM3LDcgQEAgcGFzX2JpdGZpdF92aWV3KiBwYXNfYml0Zml0X2FsbG9j
YXRvcl9maQogICAgICAgICBQQVNfQVNTRVJUKHZpZXctPnBhZ2VfYm91bmRhcnkpOwogICAgICAg
ICBwYXNfYml0Zml0X3BhZ2VfZm9yX2JvdW5kYXJ5KHZpZXctPnBhZ2VfYm91bmRhcnksICpjb25m
aWcpLT5kaWRfbm90ZV9tYXhfZnJlZSA9IGZhbHNlOwogICAgICAgICAKLSAgICAgICAgaW5kZXgg
PSB2aWV3X2RpcmVjdG9yeV9hbmRfaW5kZXguaW5kZXg7CisgICAgICAgIGluZGV4ID0gdmlld19p
bmRleDsKICAgICAgICAgCiAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF9wcm9jZXNz
ZWRfbWF4X2ZyZWUoCiAgICAgICAgICAgICBkaXJlY3RvcnksIGluZGV4LCBsYXJnZXN0X2F2YWls
YWJsZSA+PiBjb25maWctPmJhc2UubWluX2FsaWduX3NoaWZ0LApAQCAtMjkyLDggKzI4Myw3IEBA
IHBhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfZmkKICAgICAgICBUaGlzIGlz
IGFuIHVudXN1YWwgZGVnZW5lcmF0ZSBjYXNlIHRoYXQgaGFwcGVucyBvbmx5IGZvciBtZW1hbGln
bi4gKi8KICAgICBQQVNfQVNTRVJUKCh1bnNpZ25lZClzaXplID09IHNpemUpOwogICAgIG5ld192
aWV3ID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2ZyZWVfdmlldygKLSAgICAgICAg
ZGlyZWN0b3J5LCBhbGxvY2F0b3ItPmdsb2JhbF9zaXplX2NsYXNzLAotICAgICAgICB2aWV3X2Rp
cmVjdG9yeV9hbmRfaW5kZXguaW5kZXggKyAxLCAodW5zaWduZWQpc2l6ZSwgY29uZmlnKS52aWV3
OworICAgICAgICBkaXJlY3RvcnksIHZpZXdfaW5kZXggKyAxLCAodW5zaWduZWQpc2l6ZSwgY29u
ZmlnKS52aWV3OwogICAgIFBBU19BU1NFUlQobmV3X3ZpZXcpOwogICAgIHJldHVybiBuZXdfdmll
dzsKIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
YWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsMTggKzMxLDE3IEBACiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBw
YXNfYml0Zml0X2FsbG9jYXRvcjsKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNz
Oworc3RydWN0IHBhc19iaXRmaXRfc2l6ZV9jbGFzczsKIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2U7
CiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogc3RydWN0IHBhc19iaXRmaXRfdmlldzsK
IHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfYWxsb2NhdG9yIHBhc19iaXRmaXRfYWxsb2NhdG9y
OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyBwYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNz
IHBhc19iaXRmaXRfc2l6ZV9jbGFzczsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfcGFnZSBw
YXNfYml0Zml0X3BhZ2U7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3NpemVfY2xhc3MgcGFz
X2JpdGZpdF9zaXplX2NsYXNzOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF92aWV3IHBhc19i
aXRmaXRfdmlldzsKIAogc3RydWN0IHBhc19iaXRmaXRfYWxsb2NhdG9yIHsKLSAgICBwYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBnbG9iYWxfc2l6ZV9jbGFzczsKICAgICBwYXNfYml0Zml0
X3NpemVfY2xhc3MqIHNpemVfY2xhc3M7CiAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3OwogICAg
IHVuc2lnbmVkIGNvdW50ZG93bjsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMjcgKzI4
LDI3IEBACiAKICNpbmNsdWRlICJwYXNfYml0Zml0X2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5j
bHVkZSAicGFzX2JpdGZpdF9hbGxvY2F0b3IuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2Jh
bF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgi
CisjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfYml0Zml0
X3NpemVfY2xhc3MuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oIgogI2lu
Y2x1ZGUgInBhc19iaXRmaXRfdmlldy5oIgogI2luY2x1ZGUgInBhc19kZWJ1Z19zcGVjdHJ1bS5o
IgogI2luY2x1ZGUgInBhc19lcG9jaC5oIgogI2luY2x1ZGUgInBhc19mYXN0X3BhdGhfYWxsb2Nh
dGlvbl9yZXN1bHQuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2lubGluZXMuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBzdGF0aWMgaW5saW5lIHZvaWQg
cGFzX2JpdGZpdF9hbGxvY2F0b3JfcmVzZXQocGFzX2JpdGZpdF9hbGxvY2F0b3IqIGFsbG9jYXRv
cikKIHsKLSAgICBhbGxvY2F0b3ItPmdsb2JhbF9zaXplX2NsYXNzID0gTlVMTDsKKyAgICBhbGxv
Y2F0b3ItPnNpemVfY2xhc3MgPSBOVUxMOwogICAgIGFsbG9jYXRvci0+c2l6ZV9jbGFzcyA9IE5V
TEw7CiAgICAgYWxsb2NhdG9yLT52aWV3ID0gTlVMTDsKIH0KIAogc3RhdGljIGlubGluZSB2b2lk
IHBhc19iaXRmaXRfYWxsb2NhdG9yX2Fzc2VydF9yZXNldChwYXNfYml0Zml0X2FsbG9jYXRvciog
YWxsb2NhdG9yKQogewotICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yLT5nbG9iYWxf
c2l6ZV9jbGFzcyk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3ItPnNpemVfY2xh
c3MpOwogICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yLT5zaXplX2NsYXNzKTsKICAg
ICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+dmlldyk7CiB9CkBAIC0xMTgsNyArMTE4
LDcgQEAgcGFzX2JpdGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19iaQogICAgICAgICAg
ICAgICAgIHBhc19sb2NrX2xvY2soJnZpZXctPmNvbW1pdF9sb2NrKTsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7
CisgICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CiAKICAg
ICAgICAgICAgIGlmIChQQVNfVU5MSUtFTFkoIXZpZXctPmlzX293bmVkKSkgewogICAgICAgICAg
ICAgICAgIC8qIE5vdGUgdGhhdCB0aGlzIHdvdWxkIGhhdmUgZmxhc2hlZCB0aGUgb3duZXJzaGlw
IGxvY2sgcG9zc2libHkuICovCkBAIC0xODUsOCArMTg1LDggQEAgcGFzX2JpdGZpdF9hbGxvY2F0
b3JfdHJ5X2FsbG9jYXRlKHBhc19iaQogICAgICAgICBpZiAoUEFTX0RFQlVHX1NQRUNUUlVNX1VT
RV9GT1JfQ09NTUlUICYmIGJ5dGVzX2NvbW1pdHRlZCkgewogICAgICAgICAgICAgcGFzX2hlYXBf
bG9ja19sb2NrKCk7CiAgICAgICAgICAgICBwYXNfZGVidWdfc3BlY3RydW1fYWRkKAotICAgICAg
ICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWQoJmFsbG9jYXRv
ci0+Z2xvYmFsX3NpemVfY2xhc3MtPmJhc2UuZGlyZWN0b3J5KSwKLSAgICAgICAgICAgICAgICBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0sCisgICAgICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZCgmYWxsb2NhdG9yLT5z
aXplX2NsYXNzLT5kaXJlY3RvcnkpLAorICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0
b3J5X2R1bXBfZm9yX3NwZWN0cnVtLAogICAgICAgICAgICAgICAgIGJ5dGVzX2NvbW1pdHRlZCk7
CiAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwogICAgICAgICB9CkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5LmMJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwxNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElC
UEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCIK
LQotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBh
c19iaXRmaXRfcGFnZV9jb25maWcuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXdfaW5saW5l
cy5oIgotI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCi0KLXBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkqIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfY3JlYXRlKAotICAgIHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogcGFyZW50X2dsb2JhbCwKLSAgICB1bnNpZ25lZCBt
YWdhemluZV9pbmRleCkKLXsKLSAgICBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KiByZXN1
bHQ7Ci0gICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogY29uZmlnX3B0cjsKLQotICAgIGNvbmZp
Z19wdHIgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhwYXJlbnRfZ2xv
YmFsLT5iYXNlLmNvbmZpZ19raW5kKTsKLQotICAgIHJlc3VsdCA9IHBhc19pbW1vcnRhbF9oZWFw
X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAotICAgICAgICBzaXplb2YocGFzX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeSksCi0gICAgICAgIGFsaWdub2YocGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeSksCi0gICAgICAgICJwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5IiwKLSAgICAgICAg
cGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLSAgICAKLSAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+cGFyZW50X2dsb2JhbCwgcGFyZW50X2ds
b2JhbCk7Ci0gICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfY29uc3RydWN0KCZyZXN1bHQtPmJhc2Us
IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCwgY29uZmlnX3B0cik7Ci0gICAgcGFz
X2JpYXNpbmdfZGlyZWN0b3J5X2NvbnN0cnVjdCgKLSAgICAgICAgJnJlc3VsdC0+Ymlhc2luZ19i
YXNlLCBwYXNfYmlhc2luZ19kaXJlY3RvcnlfYml0Zml0X2tpbmQsIG1hZ2F6aW5lX2luZGV4KTsK
LQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jl
c3VsdCBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfbGFzdF91bnVzZWQoCi0gICAg
cGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgb3duZXJzaGlwX3RocmVz
aG9sZDsKLSAgICBib29sIGRpZF9maW5kX2VsaWdpYmxlX3BhZ2U7Ci0gICAgc2l6ZV90IGluZGV4
OwotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZWxpZ2libGVfaGlnaF93YXRlcm1hcms7Ci0gICAg
c2l6ZV90IG5ld19lbGlnaWJsZV93YXRlcm1hcms7Ci0gICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZp
ZyBwYWdlX2NvbmZpZzsKLQotICAgIHBhZ2VfY29uZmlnID0gKnBhc19iaXRmaXRfcGFnZV9jb25m
aWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5jb25maWdfa2luZCk7Ci0KLSAgICBn
bG9iYWxfZGlyZWN0b3J5ID0KLSAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+cGFyZW50X2dsb2JhbCk7Ci0KLSAg
ICBvd25lcnNoaXBfdGhyZXNob2xkID0gcGFzX2JpYXNpbmdfZGlyZWN0b3J5X293bmVyc2hpcF90
aHJlc2hvbGQoJmRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlKTsKLQotICAgIC8qIFJlYWQgdG8gd2F0
Y2ggc28gdGhhdCBpZiBhbnlvbmUgdXBkYXRlcyB0aGUgZWxpZ2libGVfaGlnaF93YXRlcm1hcmsg
ZHVyaW5nIG91ciBzY2FuLCB3ZSB3b24ndAotICAgICAgIG92ZXJ3cml0ZSBpdC4gKi8KLSAgICBl
bGlnaWJsZV9oaWdoX3dhdGVybWFyayA9IHBhc192ZXJzaW9uZWRfZmllbGRfcmVhZF90b193YXRj
aCgKLSAgICAgICAgJmRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmVsaWdpYmxlX2hpZ2hfd2F0ZXJt
YXJrKTsKLQotICAgIFBBU19BU1NFUlQoZWxpZ2libGVfaGlnaF93YXRlcm1hcmsudmFsdWUgPD0g
cGFzX2JpdGZpdF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5LT5iYXNlKSk7Ci0KLSAgICBpZiAo
KHNpemVfdClvd25lcnNoaXBfdGhyZXNob2xkID49IGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZh
bHVlKQotICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFp
bGFibGU7Ci0KLSAgICBkaWRfZmluZF9lbGlnaWJsZV9wYWdlID0gZmFsc2U7Ci0KLSAgICBuZXdf
ZWxpZ2libGVfd2F0ZXJtYXJrID0gb3duZXJzaGlwX3RocmVzaG9sZDsKLQotICAgIGZvciAoaW5k
ZXggPSBvd25lcnNoaXBfdGhyZXNob2xkOyBpbmRleCA8IGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJr
LnZhbHVlOyArK2luZGV4KSB7Ci0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmll
d19wdHIqIHZpZXdfcHRyOwotICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7Ci0KLSAgICAg
ICAgdmlld19wdHIgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmlld19wdHIoJmRpcmVjdG9y
eS0+YmFzZSwgaW5kZXgpOwotICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICB2aWV3ID0g
cGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9sb2FkKHZpZXdfcHRyKTsKLSAgICAg
ICAgICAgIGlmICghdmlldykKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAg
ZGlkX2ZpbmRfZWxpZ2libGVfcGFnZSA9IHRydWU7Ci0KLSAgICAgICAgICAgIFBBU19BU1NFUlQo
cGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZp
ZXctPmdsb2JhbF9kaXJlY3RvcnkpCi0gICAgICAgICAgICAgICAgICAgICAgID09IGdsb2JhbF9k
aXJlY3RvcnkpOwotCi0gICAgICAgICAgICBwYXNfbG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBf
bG9jayk7Ci0gICAgICAgICAgICBpZiAocGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5n
X2RpcmVjdG9yeV9wdHJfbG9hZCgmdmlldy0+Ymlhc2luZ19kaXJlY3RvcnkpCi0gICAgICAgICAg
ICAgICAgPT0gZGlyZWN0b3J5KSB7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgICAgIHBhc19sb2coIlVuYmlhc2luZyB2aWV3ICVwIGZyb20gJXA6JXp1XG4i
LCB2aWV3LCBkaXJlY3RvcnksIGluZGV4KTsKLQotICAgICAgICAgICAgICAgIC8qIEl0J3MgcG9z
c2libGUgdGhhdCB0aGlzIHBhcnRpY3VsYXIgdmlldyBnb3QgdW5iaWFzZWQgYW5kIHRoZW4gcmVi
aWFzZWQgYXQgYSBkaWZmZXJlbnQKLSAgICAgICAgICAgICAgICAgICBpbmRleCBhbHJlYWR5LiAq
LwotICAgICAgICAgICAgICAgIGlmICh2aWV3LT5pbmRleF9pbl9iaWFzaW5nICE9IGluZGV4KSB7
Ci0gICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xv
Y2spOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVCh2aWV3LT5pbmRleF9p
bl9iaWFzaW5nID09IGluZGV4KTsKLQotICAgICAgICAgICAgICAgIC8qIElmIHRoZSB2aWV3IGJl
bGlldmVzIHRoYXQgaXQgaXMgYmlhc2VkIHRvIHRoaXMgaW5kZXgsIHRoZW4gdGhlIGRpcmVjdG9y
eSBtdXN0IGFsc28KLSAgICAgICAgICAgICAgICAgICBhZ3JlZSB3aXRoIHRoaXMuICovCi0gICAg
ICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRy
X2xvYWQodmlld19wdHIpID09IHZpZXcpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
LyogV2Ugc2F5IHRoYXQgdW5iaWFzZWQgZW50cmllcyBhcmUgZW1wdHksIG5vdCB1bnByb2Nlc3Nl
ZC4gKi8KLSAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRf
YmVjb21lX2VtcHR5X3dpdGhvdXRfYmlhc2luZ191cGRhdGUoCi0gICAgICAgICAgICAgICAgICAg
ICZkaXJlY3RvcnktPmJhc2UsIGluZGV4LCAiYmVjb21pbmcgZW1wdHkgb24gbm9ybWFsIHVuYmlh
cyIpOwotCi0gICAgICAgICAgICAgICAgLyogTmVlZCBhIGZlbmNlIGhlcmUgYmVjYXVzZSBhcyBz
b29uIGFzIHdlIHN0YXJ0IGNsZWFyaW5nIG91dCB0aGUgdmlldyBmcm9tIHRoZSBiaWFzaW5nCi0g
ICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBpdCdzIHBvc3NpYmxlIGZvciBzb21lb25lIGVs
c2UgdG8gc3RhcnQgbWVzc2luZyB3aXRoIHRoaXMgbWF4X2ZyZWUgZW50cnkKLSAgICAgICAgICAg
ICAgICAgICBpbiB0aGUgYmlhc2luZyBkaXJlY3RvcnkuIFNvIHRoZSBzdG9yZSBhYm92ZSBoYXMg
dG8gaGFwcGVuIGJlZm9yZSBhbnkgb2YgdGhpcy4gKi8KLSAgICAgICAgICAgICAgICBwYXNfY29t
cGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9zdG9yZSgmdmlldy0+Ymlh
c2luZ19kaXJlY3RvcnksIE5VTEwpOwotICAgICAgICAgICAgICAgIHZpZXctPmluZGV4X2luX2Jp
YXNpbmcgPSAwOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogTWFrZSBzdXJlIHRo
YXQgd2UgZG9uJ3QgY2xlYXIgdGhlIHZpZXcgb3V0IG9mIHRoZSBkaXJlY3RvcnkgdW50aWwgd2Un
cmUgZG9uZSB0ZWxsaW5nIHRoZQotICAgICAgICAgICAgICAgICAgIHZpZXcgdGhhdCBpdCdzIG5v
dCBiaWFzZWQuICovCi0gICAgICAgICAgICAgICAgcGFzX2ZlbmNlKCk7Ci0gICAgICAgICAgICAg
ICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9zdG9yZSh2aWV3X3B0ciwgTlVM
TCk7Ci0KLSAgICAgICAgICAgICAgICBpZiAocGFzX2JpdGZpdF92aWV3X2lzX2VtcHR5KHZpZXcs
IHBhZ2VfY29uZmlnKSkgewotICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9y
eV9tYXhfZnJlZV9kaWRfYmVjb21lX2VtcHR5KAotICAgICAgICAgICAgICAgICAgICAgICAgJmds
b2JhbF9kaXJlY3RvcnktPmJhc2UsIHZpZXctPmluZGV4X2luX2dsb2JhbCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICJpbml0aWFsaXplIHRvIGVtcHR5IGluIGdsb2JhbCBvbiBub3JtYWwgdW5i
aWFzIik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgcGFz
X2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29tZV91bnByb2Nlc3NlZCgKLSAgICAg
ICAgICAgICAgICAgICAgICAgICZnbG9iYWxfZGlyZWN0b3J5LT5iYXNlLCB2aWV3LT5pbmRleF9p
bl9nbG9iYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbGl6ZSB0byB1bnByb2Nl
c3NlZCBpbiBnbG9iYWwgb24gbm9ybWFsIHVuYmlhcyIpOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlw
X2xvY2spOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAg
cGFzX3ZlcnNpb25lZF9maWVsZF90cnlfd3JpdGUoCi0gICAgICAgICZkaXJlY3RvcnktPmJpYXNp
bmdfYmFzZS5lbGlnaWJsZV9oaWdoX3dhdGVybWFyaywKLSAgICAgICAgZWxpZ2libGVfaGlnaF93
YXRlcm1hcmssIG5ld19lbGlnaWJsZV93YXRlcm1hcmspOwotCi0gICAgcmV0dXJuIGRpZF9maW5k
X2VsaWdpYmxlX3BhZ2UKLSAgICAgICAgPyBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNj
ZXNzCi0gICAgICAgIDogcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFibGU7
Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3RvcnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oCShub25leGlzdGVudCkK
QEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaWZuZGVmIFBBU19CSVRGSVRfQklBU0lOR19ESVJFQ1RPUllfSAotI2RlZmluZSBQ
QVNfQklURklUX0JJQVNJTkdfRElSRUNUT1JZX0gKLQotI2luY2x1ZGUgInBhc19iaWFzaW5nX2Rp
cmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAi
cGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyLmgiCi0jaW5jbHVkZSAicGFz
X3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0LmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsK
LQotc3RydWN0IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBw
YXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rvcnk7
Ci0KLXN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YodWludHB0cl90KSAqIDIpIHBhc19iaXRmaXRf
Ymlhc2luZ19kaXJlY3RvcnkgewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5IGJhc2U7Ci0gICAg
cGFzX2JpYXNpbmdfZGlyZWN0b3J5IGJpYXNpbmdfYmFzZTsKLSAgICBwYXNfY29tcGFjdF9iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIgcGFyZW50X2dsb2JhbDsKLX07Ci0KLVBBU19BUEkgcGFz
X2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSogcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9j
cmVhdGUoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBwYXJlbnRfZ2xvYmFsLAot
ICAgIHVuc2lnbmVkIG1hZ2F6aW5lX2luZGV4KTsKLQotUEFTX0FQSSBwYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2xhc3Rf
dW51c2VkKAotICAgIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0K
LVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQklURklUX0JJQVNJTkdfRElSRUNU
T1JZX0ggKi8KLQotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5LmMJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDQzICszMCw0NCBAQAogI2luY2x1ZGUgInBhc19iaXRmaXRfZGly
ZWN0b3J5LmgiCiAKICNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0j
aW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy5oIgorI2luY2x1ZGUgInBhc19i
aXRmaXRfc2l6ZV9jbGFzcy5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfdmlld19pbmxpbmVzLmgi
CisjaW5jbHVkZSAicGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oIgogI2luY2x1ZGUgInBhc19l
cG9jaC5oIgorI2luY2x1ZGUgInBhc19mcmVlX2dyYW51bGVzLmgiCiAjaW5jbHVkZSAicGFzX2hl
YXBfbG9jay5oIgogI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgorI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX2hlYXAuaCIKKyNpbmNsdWRlICJwYXNfc3RyZWFtLmgiCiAKIHZvaWQg
cGFzX2JpdGZpdF9kaXJlY3RvcnlfY29uc3RydWN0KHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9raW5kIGRpcmVjdG9yeV9raW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogY29uZmlnKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogY29uZmlnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKLSAgICBpZiAo
dmVyYm9zZSkgewotICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBkaXJlY3RvcnkgJXAgKCVzKVxu
IiwKLSAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmRf
Z2V0X3N0cmluZyhkaXJlY3Rvcnlfa2luZCkpOwotICAgIH0KKyAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgcGFzX2xvZygiQ3JlYXRpbmcgZGlyZWN0b3J5ICVwXG4iLCBkaXJlY3RvcnkpOwogICAg
IAogICAgIHBhc192ZXJzaW9uZWRfZmllbGRfY29uc3RydWN0KCZkaXJlY3RvcnktPmZpcnN0X3Vu
cHJvY2Vzc2VkX2ZyZWUsIDApOwogICAgIHBhc192ZXJzaW9uZWRfZmllbGRfY29uc3RydWN0KCZk
aXJlY3RvcnktPmZpcnN0X2VtcHR5LCAwKTsKICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhf
ZnJlZV92ZWN0b3JfY29uc3RydWN0KCZkaXJlY3RvcnktPm1heF9mcmVlcyk7CiAgICAgcGFzX2Jp
dGZpdF9kaXJlY3Rvcnlfdmlld192ZWN0b3JfY29uc3RydWN0KCZkaXJlY3RvcnktPnZpZXdzKTsK
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX3N0b3JlKCZkaXJl
Y3RvcnktPmxhcmdlc3Rfc2l6ZV9jbGFzcywgTlVMTCk7Ci0gICAgZGlyZWN0b3J5LT5kaXJlY3Rv
cnlfa2luZCA9IGRpcmVjdG9yeV9raW5kOwogICAgIGRpcmVjdG9yeS0+Y29uZmlnX2tpbmQgPSBj
b25maWctPmtpbmQ7Ci19CiAKLXZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfdXBkYXRlX2JpYXNp
bmdfZWxpZ2liaWxpdHkocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4
KQotewotICAgIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5
OwotICAgIAotICAgIGlmIChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kICE9IHBhc19iaXRmaXRf
Ymlhc2luZ19kaXJlY3Rvcnlfa2luZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYmlhc2luZ19k
aXJlY3RvcnkgPSAocGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSopZGlyZWN0b3J5OwotCi0g
ICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2luZGV4X2RpZF9iZWNvbWVfZWxpZ2libGUoJmJpYXNp
bmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UsIGluZGV4KTsKKyAgICBkaXJlY3RvcnktPmhlYXAg
PSBoZWFwOworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2Nv
bnN0cnVjdCgmZGlyZWN0b3J5LT5iaXR2ZWN0b3JzKTsKKyAgICBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X3BheWxvYWRfY29uc3RydWN0KCZkaXJlY3RvcnktPnBoeXNpY2FsX3NoYXJpbmdf
cGF5bG9hZCk7CisKKyAgICAvKiBXZSBjb3VsZCBoYXZlIGJlZW4gbGF6eSBhYm91dCB0aGlzIC0g
YnV0IGl0J3MgcHJvYmFibHkgbm90IHN1cGVyIG5lY2Vzc2FyeSBzaW5jZSB0aGUgcG9pbnQKKyAg
ICAgICBvZiBiaXRmaXQgZ2xvYmFsIGRpcmVjdG9yaWVzIGlzIHRoYXQgdGhlcmUgd29uJ3QgYmUg
dG9vIG1hbnkgb2YgdGhlbS4gKi8KKyAgICBpZiAocGFzX2JpdGZpdF9kaXJlY3RvcnlfZG9lc19z
aGFyaW5nKGRpcmVjdG9yeSkpIHsKKyAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2FkZCgK
KyAgICAgICAgICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCisgICAgICAgICAg
ICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2NyZWF0ZSgKKyAgICAgICAgICAgICAgICBk
aXJlY3RvcnksIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeSkp
OworICAgIH0KIH0KIAogdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVj
b21lX3VucHJvY2Vzc2VkKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCkBAIC03NSw3
ICs3Niw2IEBAIHZvaWQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2IKIHsKICAg
ICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfdW5wcm9jZXNzZWRfbWF4X2ZyZWUoZGlyZWN0b3J5
LCBpbmRleCwgcmVhc29uKTsKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX21pbmltaXplKCZkaXJl
Y3RvcnktPmZpcnN0X3VucHJvY2Vzc2VkX2ZyZWUsIGluZGV4KTsKLSAgICBwYXNfYml0Zml0X2Rp
cmVjdG9yeV91cGRhdGVfYmlhc2luZ19lbGlnaWJpbGl0eShkaXJlY3RvcnksIGluZGV4KTsKIH0K
IAogdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX3VucHJvY2Vz
c2VkX3VuY2hlY2tlZChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LApAQCAtODQsMTAg
Kzg0LDkgQEAgdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYgogewogICAg
IHBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF91bnByb2Nlc3NlZF9tYXhfZnJlZV91bmNoZWNrZWQo
ZGlyZWN0b3J5LCBpbmRleCwgcmVhc29uKTsKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX21pbmlt
aXplKCZkaXJlY3RvcnktPmZpcnN0X3VucHJvY2Vzc2VkX2ZyZWUsIGluZGV4KTsKLSAgICBwYXNf
Yml0Zml0X2RpcmVjdG9yeV91cGRhdGVfYmlhc2luZ19lbGlnaWJpbGl0eShkaXJlY3RvcnksIGlu
ZGV4KTsKIH0KIAotdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21l
X2VtcHR5X3dpdGhvdXRfYmlhc2luZ191cGRhdGUoCit2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5
X21heF9mcmVlX2RpZF9iZWNvbWVfZW1wdHkoCiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKICAgICBzaXplX3QgaW5kZXgsCiAgICAgY29uc3QgY2hhciogcmVhc29uKQpAQCAt
OTYsMTcgKzk1LDggQEAgdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYgog
ICAgIHBhc192ZXJzaW9uZWRfZmllbGRfbWluaW1pemUoJmRpcmVjdG9yeS0+Zmlyc3RfZW1wdHks
IGluZGV4KTsKIH0KIAotdm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVj
b21lX2VtcHR5KHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGluZGV4LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo
YXIqIHJlYXNvbikKLXsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVj
b21lX2VtcHR5X3dpdGhvdXRfYmlhc2luZ191cGRhdGUoZGlyZWN0b3J5LCBpbmRleCwgcmVhc29u
KTsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV91cGRhdGVfYmlhc2luZ19lbGlnaWJpbGl0eShk
aXJlY3RvcnksIGluZGV4KTsKLX0KLQogcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleAogcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2ZyZWVfdmlldyhwYXNfYml0Zml0X2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBzaXplX2NsYXNzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzdGFydF9pbmRleCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2l6ZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyogcGFn
ZV9jb25maWcpCkBAIC0xMTgsMTkgKzEwOCw2IEBAIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9m
aXJzdF9mcmVlX3ZpZXcKICAgICAgICAgc2l6ZV90IG1heF9mcmVlc19zaXplOwogICAgICAgICBw
YXNfYml0Zml0X3ZpZXcqIHZpZXc7CiAKLSAgICAgICAgaWYgKGRpcmVjdG9yeS0+ZGlyZWN0b3J5
X2tpbmQgPT0gcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQpIHsKLSAgICAgICAgICAg
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICAgICAg
ICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogYmlhc19wb29sOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBnbG9iYWxfZGlyZWN0b3J5ID0gKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSop
ZGlyZWN0b3J5OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBiaWFzX3Bvb2wgPSBwYXNfY29t
cGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoCi0gICAgICAgICAgICAgICAg
Jmdsb2JhbF9kaXJlY3RvcnktPmJpYXNfc2hhcmluZ19wb29sKTsKLQotICAgICAgICAgICAgaWYg
KGJpYXNfcG9vbCkKLSAgICAgICAgICAgICAgICBwYXNfYmlhc19wYWdlX3NoYXJpbmdfcG9vbF90
YWtlKGJpYXNfcG9vbCk7Ci0gICAgICAgIH0KLQogICAgICAgICB2aWV3ID0gTlVMTDsKIAogICAg
ICAgICBtYXhfZnJlZXNfc2l6ZSA9IGRpcmVjdG9yeS0+bWF4X2ZyZWVzLnNpemU7CkBAIC0xNzUs
MjIgKzE1MiwxNiBAQCBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJlZV92aWV3CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBkaXJlY3RvcnktPnZpZXdzLnNp
emUsIGRpcmVjdG9yeS0+bWF4X2ZyZWVzLnNpemUpOwogICAgICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgICAgIGlmIChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09IHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeV9raW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9IChwYXNfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTKGRpcmVjdG9yeS0+dmlld3Muc2l6ZSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICE9IGdsb2JhbF9kaXJlY3RvcnktPmJpdHZlY3RvcnMuc2l6
ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChQQVNfQklUVkVDVE9SX05V
TV9XT1JEUyhkaXJlY3RvcnktPnZpZXdzLnNpemUpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID09IGdsb2JhbF9kaXJlY3RvcnktPmJpdHZlY3RvcnMuc2l6ZSArIDEpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NlZ21lbnRl
ZF9iaXR2ZWN0b3JzX2FwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ2xvYmFs
X2RpcmVjdG9yeS0+Yml0dmVjdG9ycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQVNf
QklURklUX0dMT0JBTF9ESVJFQ1RPUllfQklUVkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBQQVNfQVNTRVJUKFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTKGRpcmVjdG9y
eS0+dmlld3Muc2l6ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gZ2xv
YmFsX2RpcmVjdG9yeS0+Yml0dmVjdG9ycy5zaXplKTsKLSAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIGlmIChQQVNfQklUVkVDVE9SX05VTV9XT1JEUyhkaXJlY3RvcnktPnZp
ZXdzLnNpemUpCisgICAgICAgICAgICAgICAgICAgICE9IGRpcmVjdG9yeS0+Yml0dmVjdG9ycy5z
aXplKSB7CisgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoUEFTX0JJVFZFQ1RPUl9OVU1f
V09SRFMoZGlyZWN0b3J5LT52aWV3cy5zaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgID09IGRpcmVjdG9yeS0+Yml0dmVjdG9ycy5zaXplICsgMSk7CisgICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2FwcGVuZCgKKyAg
ICAgICAgICAgICAgICAgICAgICAgICZkaXJlY3RvcnktPmJpdHZlY3RvcnMsCisgICAgICAgICAg
ICAgICAgICAgICAgICBQQVNfQklURklUX0RJUkVDVE9SWV9CSVRWRUNUT1JfU0VHTUVOVF9JTklU
SUFMSVpFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX2hlbGQpOworICAg
ICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKFBBU19CSVRWRUNUT1JfTlVNX1dPUkRTKGRpcmVj
dG9yeS0+dmlld3Muc2l6ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PSBkaXJl
Y3RvcnktPmJpdHZlY3RvcnMuc2l6ZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKQEAgLTIwNywxMjcgKzE3
OCwyMyBAQCBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJlZV92aWV3CiAgICAgICAg
ICAgICAgICAgICAgIGRpcmVjdG9yeSwgKHVuc2lnbmVkKWZvdW5kX2luZGV4LmluZGV4LCB2aWV3
KTsKICAgICAgICAgfQogCi0gICAgICAgIHN3aXRjaCAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2lu
ZCkgewotICAgICAgICBjYXNlIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kOiB7Ci0g
ICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGdsb2JhbF9kaXJlY3Rvcnk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGdsb2JhbF9kaXJlY3RvcnkgPSAocGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAKKyAgICAgICAgaWYg
KCF2aWV3KSB7CisgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKKyAgICAgICAgICAg
IHZpZXcgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGZvdW5kX2lu
ZGV4LmluZGV4KTsKICAgICAgICAgICAgIGlmICghdmlldykgewotICAgICAgICAgICAgICAgIHBh
c19oZWFwX2xvY2tfbG9jaygpOwotICAgICAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGZvdW5kX2luZGV4LmluZGV4KTsKLSAgICAgICAg
ICAgICAgICBpZiAoIXZpZXcpIHsKLSAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCgodW5z
aWduZWQpZm91bmRfaW5kZXguaW5kZXggPT0gZm91bmRfaW5kZXguaW5kZXgpOwotICAgICAgICAg
ICAgICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF92aWV3X2NyZWF0ZShnbG9iYWxfZGlyZWN0b3J5
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5z
aWduZWQpZm91bmRfaW5kZXguaW5kZXgpOwotICAgICAgICAgICAgICAgICAgICBwYXNfc3RvcmVf
c3RvcmVfZmVuY2UoKTsKLSAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF92aWV3X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X2dldF92aWV3X3B0cihkaXJlY3RvcnksIGZvdW5kX2luZGV4LmluZGV4KSwgdmll
dyk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5s
b2NrKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFBBU19URVNU
SU5HX0FTU0VSVCgKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSkKLSAgICAg
ICAgICAgICAgICA9PSBnbG9iYWxfZGlyZWN0b3J5KTsKLSAgICAgICAgICAgIFBBU19URVNUSU5H
X0FTU0VSVCh2aWV3LT5pbmRleF9pbl9nbG9iYWwgPT0gZm91bmRfaW5kZXguaW5kZXgpOwotCi0g
ICAgICAgICAgICAvKiBOb3RlOiBpdCdzIHBvc3NpYmxlIGZvciB0aGlzIHRvIG5vdyBoYXZlIGJl
Y29tZSBhIGJpYXNlZCB2aWV3LiBJdCBzaG91bGQgbm90IGhhcHBlbgotICAgICAgICAgICAgICAg
b2Z0ZW4uIElmIGl0IGlzIG5vdyBhIGJpYXNlZCB2aWV3LCB0aGVuIGl0IG11c3QgaGF2ZSBlYXJs
aWVyIGhhZCBpdHMgbWF4X2ZyZWUKLSAgICAgICAgICAgICAgIHplcm9lZC4gKi8KLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBwYXNfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5X2tpbmQ6IHsKLSAgICAgICAgICAgIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rv
cnkqIGJpYXNpbmdfZGlyZWN0b3J5OwotICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5KiBnbG9iYWxfZGlyZWN0b3J5OwotCi0gICAgICAgICAgICBiaWFzaW5nX2RpcmVjdG9y
eSA9IChwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIGlmICh2aWV3KSB7Ci0gICAgICAgICAgICAgICAgLyogSWYgdGhlcmUg
d2FzIGFueSB2aWV3IGF0IGFsbCB0aGVuIGl0IG11c3QgaGF2ZSBiZWVuIGJpYXNlZCB0byB0aGlz
IGRpcmVjdG9yeSBhdAotICAgICAgICAgICAgICAgICAgIHNvbWUgcG9pbnQgb3IgYW5vdGhlci4g
T2YgY291cnNlIGl0IGNvdWxkIGJlIHVuYmlhc2VkIGF0IGFueSBtb21lbnQsIGJ1dCBpdCBjb3Vs
ZAotICAgICAgICAgICAgICAgICAgIGV2ZW4gYmUgdW5iaWFzZWQgcmlnaHQgYWZ0ZXIgd2UgdmVy
aWZ5IHRoYXQgaXQgaXMgb3Vycy4gKi8KLSAgICAgICAgICAgICAgICBwYXNfYmlhc2luZ19kaXJl
Y3RvcnlfZGlkX3VzZV9pbmRleCgmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3VuZF9p
bmRleC5pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfZ2V0X2Vwb2NoKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBnbG9iYWxfZGlyZWN0b3J5ID0KLSAgICAgICAgICAgICAg
ICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgK
LSAgICAgICAgICAgICAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5wYXJlbnRfZ2xvYmFsKTsK
LSAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAgICAgICAgICAmZ2xvYmFs
X2RpcmVjdG9yeS0+YmFzZQotICAgICAgICAgICAgICAgID09IHBhc19jb21wYWN0X2JpdGZpdF9k
aXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnNpemVfY2xhc3MtPmJhc2UuZGlyZWN0b3J5KSk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgICAgICBw
YXNfYml0Zml0X3ZpZXcqIHByZXZpb3VzX3ZpZXc7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfc2l6ZV9jbGFzc19nZXRfZmlyc3RfZnJlZV92aWV3
KAotICAgICAgICAgICAgICAgICAgICAmc2l6ZV9jbGFzcy0+YmFzZSwgc2l6ZV9jbGFzcywgcGFn
ZV9jb25maWcpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKAotICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSkKLSAgICAgICAg
ICAgICAgICAgICAgPT0gZ2xvYmFsX2RpcmVjdG9yeSk7Ci0KLSAgICAgICAgICAgICAgICBwYXNf
bG9ja19sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICAgICAgLyogV2Ug
c2hvdWxkIG5vdCBiaWFzIGEgdmlldyB0aGF0IGlzIGFscmVhZHkgYmlhc2VkLiBUaGUgZ2xvYmFs
IGRpcmVjdG9yeSB3b3VsZCBub3QgaGF2ZQotICAgICAgICAgICAgICAgICAgIGdpdmVuIHVzIGEg
dmlldyB0aGF0IHdhcyBhbHJlYWR5IGJpYXNlZCBpZiBpdCBrbmV3IHRoYXQgaXQgd2FzIGJpYXNl
ZCBhdCB0aGUgdGltZSBvZgotICAgICAgICAgICAgICAgICAgIHRoZSBzZWFyY2guICovCi0gICAg
ICAgICAgICAgICAgaWYgKCFwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5X3B0cl9pc19udWxsKCZ2aWV3LT5iaWFzaW5nX2RpcmVjdG9yeSkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAg
ICAgICAgICAgICAgIC8qIFNlYXJjaCB0aGUgZ2xvYmFsIGRpcmVjdG9yeSBhZ2Fpbi4gKi8KLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19sb2coIiVwOiV1OiBmb3VuZCBhbHJlYWR5IGJpYXNlZCB2aWV3ID0gJXAuXG4iLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksICh1bnNpZ25lZClmb3VuZF9p
bmRleC5pbmRleCwgdmlldyk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgcHJl
dmlvdXNfdmlldyA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfc3Ryb25nX2Nh
cygKLSAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXdfcHRy
KGRpcmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgpLAotICAgICAgICAgICAgICAgICAgICBOVUxM
LCB2aWV3KTsKLSAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNfdmlldykgewotICAgICAgICAg
ICAgICAgICAgICAvKiBUaGlzIGlzIGFuIHVubGlrZWx5IHJhY2UgY29uZGl0aW9uIHNpbmNlIGJp
YXNpbmcgZGlyZWN0b3JpZXMgYXJlIHVzdWFsbHkgb3duZWQKLSAgICAgICAgICAgICAgICAgICAg
ICAgYnkgYSB0aHJlYWQuIE5vdGUgdGhhdCB0aGUgcHJldmlvdXNfdmlldyBjYW5ub3QgYmUgb3Vy
IHZpZXcsIHNpbmNlIHdlIGhhZCBqdXN0Ci0gICAgICAgICAgICAgICAgICAgICAgIGRldGVjdGVk
IHRoYXQgb3VyIHZpZXcgd2FzIG5vdCBiaWFzZWQsIGFuZCB3ZSBzdGlsbCBob2xkIGl0cyBsb2Nr
LiAqLwotICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHByZXZpb3VzX3ZpZXcgIT0gdmll
dyk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlw
X2xvY2spOwotICAgICAgICAgICAgICAgICAgICB2aWV3ID0gcHJldmlvdXNfdmlldzsKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkJpYXNpbmcgdmll
dyAlcCB0byAlcDoldVxuIiwgdmlldywgZGlyZWN0b3J5LCAodW5zaWduZWQpZm91bmRfaW5kZXgu
aW5kZXgpOwotCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFz
aW5nX2RpcmVjdG9yeV9wdHJfc3RvcmUoCi0gICAgICAgICAgICAgICAgICAgICZ2aWV3LT5iaWFz
aW5nX2RpcmVjdG9yeSwgYmlhc2luZ19kaXJlY3RvcnkpOwogICAgICAgICAgICAgICAgIFBBU19B
U1NFUlQoKHVuc2lnbmVkKWZvdW5kX2luZGV4LmluZGV4ID09IGZvdW5kX2luZGV4LmluZGV4KTsK
LSAgICAgICAgICAgICAgICB2aWV3LT5pbmRleF9pbl9iaWFzaW5nID0gKHVuc2lnbmVkKWZvdW5k
X2luZGV4LmluZGV4OwotCi0gICAgICAgICAgICAgICAgLyogV2UgYXZvaWQgdGhlIGNoZWNraW5n
IGhlcmUgYmVjYXVzZSB0aGlzIG1pZ2h0IGhhdmUgYmVlbiBlbXB0eSwgYW5kIHRoYXQncyBPSy4g
Ki8KLSAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfbWF4X2ZyZWVfdW5j
aGVja2VkKAotICAgICAgICAgICAgICAgICAgICAmZ2xvYmFsX2RpcmVjdG9yeS0+YmFzZSwgdmll
dy0+aW5kZXhfaW5fZ2xvYmFsLCAwLCAiY2xlYXJpbmcgZ2xvYmFsIG9uIGJpYXMiKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChwYXNfYml0Zml0X3ZpZXdfaXNfZW1wdHkodmll
dywgKnBhZ2VfY29uZmlnKSkgewotICAgICAgICAgICAgICAgICAgICAvKiBUaGlzIGhlbHBzIHBy
ZXNlcnZlIGNvbnNpc3RlbmN5IGJ1dCBpdCdzIG5vdCBzdXBlciBpbnRlcmVzdGluZzsgYXMgc29v
biBhcyB3ZQotICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0ZSB3ZSB3aWxsIG1hcmsgdGhp
cyB1bnByb2Nlc3NlZC4gKi8KLSAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfbWF4X2ZyZWVfZGlkX2JlY29tZV9lbXB0eSgKLSAgICAgICAgICAgICAgICAgICAgICAgIGRp
cmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgsICJpbml0aWFsaXplIHRvIGVtcHR5IG9uIGJpYXMi
KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBwYXNfYml0
Zml0X2RpcmVjdG9yeV9tYXhfZnJlZV9kaWRfYmVjb21lX3VucHJvY2Vzc2VkX3VuY2hlY2tlZCgK
LSAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgZm91bmRfaW5kZXguaW5kZXgsICJp
bml0aWFsaXplIHRvIHVucHJvY2Vzc2VkIG9uIGJpYXMiKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRf
dmlld19jcmVhdGUoZGlyZWN0b3J5LCAodW5zaWduZWQpZm91bmRfaW5kZXguaW5kZXgpOworICAg
ICAgICAgICAgICAgIHBhc19zdG9yZV9zdG9yZV9mZW5jZSgpOworICAgICAgICAgICAgICAgIHBh
c19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfc3RvcmUoCisgICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3X3B0cihkaXJlY3RvcnksIGZvdW5kX2lu
ZGV4LmluZGV4KSwgdmlldyk7CiAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHBhc19iaWFz
aW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4KAotICAgICAgICAgICAgICAgICZiaWFzaW5nX2Rp
cmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBmb3VuZF9pbmRleC5pbmRleCwgcGFzX2dldF9lcG9jaCgp
KTsKLQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gfQorICAgICAgICAgICAgcGFzX2hl
YXBfbG9ja191bmxvY2soKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKAorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KQorICAgICAgICAgICAgPT0gZGlyZWN0b3J5
KTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHZpZXctPmluZGV4ID09IGZvdW5kX2luZGV4
LmluZGV4KTsKIAogICAgICAgICByZXR1cm4gcGFzX2JpdGZpdF92aWV3X2FuZF9pbmRleF9jcmVh
dGUodmlldywgZm91bmRfaW5kZXguaW5kZXgpOwogICAgIH0KQEAgLTM5OCw0ICsyNjUsMjkxIEBA
IGJvb2wgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV8KICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcocGFzX2JpdGZp
dF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19t
b2RlX2RvZXNfc2hhcmluZygKKyAgICAgICAgZGlyZWN0b3J5LT5oZWFwLT5ydW50aW1lX2NvbmZp
Zy0+c2hhcmluZ19tb2RlKTsKK30KKyAgICAKK3VpbnQ2NF90IHBhc19iaXRmaXRfZGlyZWN0b3J5
X2dldF91c2VfZXBvY2gocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICB1
aW50cHRyX3QgbGFzdF9lbXB0eV9wbHVzX29uZTsKKyAgICBzaXplX3QgaW5kZXg7CisgICAgcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZyBjb25maWc7CisKKyAgICBsYXN0X2VtcHR5X3BsdXNfb25lID0g
ZGlyZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lLnZhbHVlOworICAgIGNvbmZpZyA9ICpwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmNvbmZpZ19raW5k
KTsKKworICAgIGZvciAoaW5kZXggPSBsYXN0X2VtcHR5X3BsdXNfb25lOyBpbmRleC0tOykgewor
ICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7CisgICAgICAgIHVpbnQ2NF90IGVwb2NoOwor
CisgICAgICAgIC8qIFByb3RlY3QgYWdhaW5zdCB1bnNldCBlcG9jaHMuICovCisgICAgICAgIGlm
ICghcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleChkaXJlY3Rvcnks
IGluZGV4KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHZpZXcgPSBwYXNfYml0
Zml0X2RpcmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgaWYgKCF2
aWV3KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgcGFzX2xvY2tfbG9jaygmdmll
dy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICBlcG9jaCA9IDA7CisgICAgICAgIGlmICh2aWV3
LT5pc19vd25lZCkgeworICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlOworICAgICAg
ICAgICAgcGFnZSA9IHBhc19iaXRmaXRfcGFnZV9mb3JfYm91bmRhcnkodmlldy0+cGFnZV9ib3Vu
ZGFyeSwgY29uZmlnKTsKKyAgICAgICAgICAgIGlmICghcGFnZS0+bnVtX2xpdmVfYml0cykgewor
ICAgICAgICAgICAgICAgIGVwb2NoID0gcGFnZS0+dXNlX2Vwb2NoOworICAgICAgICAgICAgICAg
IFBBU19BU1NFUlQoZXBvY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHBh
c19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOworCisgICAgICAgIGlmIChlcG9j
aCkKKyAgICAgICAgICAgIHJldHVybiBlcG9jaDsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30K
KworYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZW1wdHlfYml0X2F0X2luZGV4KAorICAg
IHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgc2l6ZV90IGluZGV4KQorewor
ICAgIHJldHVybiBwYXNfYml0dmVjdG9yX2dldF9mcm9tX3dvcmQoCisgICAgICAgIHBhc19iaXRm
aXRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2dldF9wdHJfY2hlY2tlZCgKKyAgICAg
ICAgICAgICZkaXJlY3RvcnktPmJpdHZlY3RvcnMsIFBBU19CSVRWRUNUT1JfV09SRF9JTkRFWChp
bmRleCkpLT5lbXB0eV9iaXRzLAorICAgICAgICBpbmRleCk7Cit9CisKKy8qIFJldHVybnMgd2hl
dGhlciB3ZSBjaGFuZ2VkIHRoZSB2YWx1ZS4gKi8KK2Jvb2wgcGFzX2JpdGZpdF9kaXJlY3Rvcnlf
c2V0X2VtcHR5X2JpdF9hdF9pbmRleCgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0
b3J5LAorICAgIHNpemVfdCBpbmRleCwKKyAgICBib29sIHZhbHVlKQoreworICAgIHJldHVybiBw
YXNfYml0dmVjdG9yX3NldF9hdG9taWNfaW5fd29yZCgKKyAgICAgICAgJnBhc19iaXRmaXRfZGly
ZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2dldF9wdHJfY2hlY2tlZCgKKyAgICAgICAgICAg
ICZkaXJlY3RvcnktPmJpdHZlY3RvcnMsIFBBU19CSVRWRUNUT1JfV09SRF9JTkRFWChpbmRleCkp
LT5lbXB0eV9iaXRzLAorICAgICAgICBpbmRleCwKKyAgICAgICAgdmFsdWUpOworfQorCit2b2lk
IHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKKyAg
ICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHNpemVfdCBpbmRleCkKK3sK
KyAgICBpZiAoIXBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgoZGly
ZWN0b3J5LCBpbmRleCwgdHJ1ZSkpCisgICAgICAgIHJldHVybjsKKworICAgIC8qIElmIHdlIGFs
cmVhZHkga25ldyBhYm91dCBlbXB0aWVzLCB0aGVuIHdlIGhhdmUgbm90aGluZyBtb3JlIHRvIGRv
LiAqLworICAgIGlmIChwYXNfdmVyc2lvbmVkX2ZpZWxkX21heGltaXplKCZkaXJlY3RvcnktPmxh
c3RfZW1wdHlfcGx1c19vbmUsIGluZGV4ICsgMSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICghcGFzX2JpdGZpdF9kaXJlY3RvcnlfZG9lc19zaGFyaW5nKGRpcmVjdG9yeSkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0
YSgKKyAgICAgICAgJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbCwKKyAgICAgICAgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCisgICAgICAgICAgICBkaXJlY3Rvcnks
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeSkpOworfQorCit2
b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eSgKKyAgICBwYXNf
Yml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19iaXRmaXRfdmlldyogdmlldykK
K3sKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoCisgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9k
aXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSkKKyAgICAgICAgPT0g
ZGlyZWN0b3J5KTsKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1w
dHlfYXRfaW5kZXgoCisgICAgICAgIGRpcmVjdG9yeSwgdmlldy0+aW5kZXgpOworfQorCitwYXNf
cGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpdGZpdF9kaXJlY3RvcnlfdGFrZV9s
YXN0X2VtcHR5KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFz
X2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nLAorICAgIHBhc19sb2NrX2hvbGRf
bW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKKyAgICAKKyAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGxhc3RfZW1wdHlfcGx1
c19vbmVfdmFsdWU7CisgICAgc2l6ZV90IGluZGV4OworICAgIHBhc19iaXRmaXRfcGFnZV9jb25m
aWcqIHBhZ2VfY29uZmlnOworICAgIHNpemVfdCBudW1fZ3JhbnVsZXM7CisKKyAgICBsYXN0X2Vt
cHR5X3BsdXNfb25lX3ZhbHVlID0gcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkKCZkaXJlY3Rvcnkt
Pmxhc3RfZW1wdHlfcGx1c19vbmUpOworCisgICAgcGFnZV9jb25maWcgPSBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmNvbmZpZ19raW5kKTsKKyAgICBu
dW1fZ3JhbnVsZXMgPSBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgLyBwYWdlX2NvbmZpZy0+
YmFzZS5ncmFudWxlX3NpemU7CisKKyAgICBmb3IgKGluZGV4ID0gbGFzdF9lbXB0eV9wbHVzX29u
ZV92YWx1ZS52YWx1ZTsgaW5kZXgtLTspIHsKKyAgICAgICAgcGFzX2JpdGZpdF92aWV3KiB2aWV3
OworICAgICAgICBwYXNfYml0Zml0X3BhZ2UqIHBhZ2U7CisgICAgICAgIHVpbnRwdHJfdCBiYXNl
OworICAgICAgICBwYXNfbG9jayogY29tbWl0X2xvY2s7CisgICAgICAgIGJvb2wgcGFnZV9pc19k
ZWFkOworICAgICAgICBwYXNfYml0Zml0X21heF9mcmVlIG1heF9mcmVlOworICAgICAgICAKKyAg
ICAgICAgaWYgKCFwYXNfYml0Zml0X2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2luZGV4KGRp
cmVjdG9yeSwgaW5kZXgsIGZhbHNlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IHZpZXcgPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsK
KworICAgICAgICBQQVNfQVNTRVJUKHZpZXcpOworICAgICAgICBQQVNfQVNTRVJUKHZpZXctPnBh
Z2VfYm91bmRhcnkpOyAvKiBZb3UgZG9uJ3QgYmVjb21lIGVtcHR5IHVudGlsIHlvdSBoYXZlIGEg
cGFnZSBhbmQgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB5b3UgbmV2ZXIgbG9zZSB0aGUgcGFnZS4gKi8KKyAgICAgICAgUEFTX0FTU0VSVChwYXNfY29t
cGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3Rvcnkp
ID09IGRpcmVjdG9yeSk7CisgICAgICAgIFBBU19BU1NFUlQodmlldy0+aW5kZXggPT0gaW5kZXgp
OworCisgICAgICAgIGNvbW1pdF9sb2NrID0gJnZpZXctPmNvbW1pdF9sb2NrOworCisgICAgICAg
IGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygiR3JhYmJpbmcgY29tbWl0IGxvY2sg
JXBcbiIsIGNvbW1pdF9sb2NrKTsKKyAgICAgICAgaWYgKCFwYXNfZGVmZXJyZWRfZGVjb21taXRf
bG9nX2xvY2tfZm9yX2FkZGluZygKKyAgICAgICAgICAgICAgICBkZWNvbW1pdF9sb2csIGNvbW1p
dF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKSkgeworICAgICAgICAgICAgcGFzX2JpdGZpdF9k
aXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgp
OworICAgICAgICAgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tzX3Vu
YXZhaWxhYmxlOworICAgICAgICB9CisKKyAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3du
ZXJzaGlwX2xvY2spOworCisgICAgICAgIGlmICghdmlldy0+aXNfb3duZWQpIHsKKyAgICAgICAg
ICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICAgICAg
cGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9hZGQoZGVjb21t
aXRfbG9nLCBjb21taXRfbG9jayk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
CisgICAgICAgIGJhc2UgPSAodWludHB0cl90KXZpZXctPnBhZ2VfYm91bmRhcnk7CisgICAgICAg
IFBBU19BU1NFUlQoYmFzZSk7CisgICAgICAgIHBhZ2UgPSBwYXNfYml0Zml0X3BhZ2VfZm9yX2Jv
dW5kYXJ5KCh2b2lkKiliYXNlLCAqcGFnZV9jb25maWcpOworICAgICAgICBQQVNfQVNTRVJUKHBh
Z2UpOworCisgICAgICAgIHBhZ2VfaXNfZGVhZCA9ICFwYWdlLT5udW1fbGl2ZV9iaXRzOworCisg
ICAgICAgIG1heF9mcmVlID0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X21heF9mcmVlKGRpcmVj
dG9yeSwgaW5kZXgpOworICAgICAgICBpZiAocGFnZV9pc19kZWFkKSB7CisgICAgICAgICAgICAv
KiBJZiBhIHBhZ2UncyBudW1fbGl2ZV9iaXRzIGRyb3BzIHRvIHplcm8gdGhlbiB3ZSB3aWxsIG1h
cmsgaXQgZW1wdHkgaW4gdGhlIGRpcmVjdG9yeSB0aGF0CisgICAgICAgICAgICAgICBvd25zIGl0
IHdoaWxlIGhvbGRpbmcgdGhlIGxvY2suIE5ld2x5IGNyZWF0ZWQgcGFnZXMgc3RhcnQgb3V0IGVt
cHR5LiAgKi8KKyAgICAgICAgICAgIGlmIChtYXhfZnJlZSAhPSBQQVNfQklURklUX01BWF9GUkVF
X0VNUFRZKSB7CisgICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6JXU6IGZvdW5kIG5vbi1lbXB0
eSBwYWdlIHRoYXQgaXMgZGVhZCB3aGVuIHRha2luZyBsYXN0IGVtcHR5LlxuIik7CisgICAgICAg
ICAgICAgICAgUEFTX0FTU0VSVChtYXhfZnJlZSA9PSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZ
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8qIElmIGEg
cGFnZSdzIG51bV9saXZlX2JpdHMgZ29lcyBhYm92ZSB6ZXJvIHRoZW4gd2UgbWFyayBpdCB1bnBy
b2Nlc3NlZCB3aGlsZSBob2xkaW5nIHRoZQorICAgICAgICAgICAgICAgbG9jay4gKi8KKyAgICAg
ICAgICAgIGlmIChtYXhfZnJlZSA9PSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZKSB7CisgICAg
ICAgICAgICAgICAgcGFzX2xvZygiJXA6JXU6IGZvdW5kIGVtcHR5IHBhZ2UgdGhhdCBpcyBub3Qg
ZGVhZCB3aGVuIHRha2luZyBsYXN0IGVtcHR5LlxuIik7CisgICAgICAgICAgICAgICAgUEFTX0FT
U0VSVChtYXhfZnJlZSAhPSBQQVNfQklURklUX01BWF9GUkVFX0VNUFRZKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKG51bV9ncmFudWxlcyA+IDEpIHsK
KyAgICAgICAgICAgIHBhc19mcmVlX2dyYW51bGVzIGZyZWVfZ3JhbnVsZXM7CisgICAgICAgICAg
ICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50czsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiRGVjb21t
aXR0aW5nIGdyYW51bGVzIGZvciBwYWdlICVwXG4iLCBwYWdlKTsKKyAgICAgICAgICAgIHVzZV9j
b3VudHMgPSBwYXNfYml0Zml0X3BhZ2VfZ2V0X2dyYW51bGVfdXNlX2NvdW50cyhwYWdlLCAqcGFn
ZV9jb25maWcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBwYXNfZnJlZV9ncmFudWxlc19j
b21wdXRlX2FuZF9tYXJrX2RlY29tbWl0dGVkKAorICAgICAgICAgICAgICAgICZmcmVlX2dyYW51
bGVzLCB1c2VfY291bnRzLCBudW1fZ3JhbnVsZXMpOworCisgICAgICAgICAgICBpZiAocGFnZV9p
c19kZWFkICE9ICgoZnJlZV9ncmFudWxlcy5udW1fYWxyZWFkeV9kZWNvbW1pdHRlZF9ncmFudWxl
cyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9ncmFudWxlcy5udW1f
ZnJlZV9ncmFudWxlcykgPT0gbnVtX2dyYW51bGVzKSkgeworICAgICAgICAgICAgICAgIHBhc19s
b2coInBhZ2VfaXNfZGVhZCA9ICVkXG4iLCBwYWdlX2lzX2RlYWQpOworICAgICAgICAgICAgICAg
IHBhc19sb2coImZyZWVfZ3JhbnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMgPSAlenVcbiIsCisgICAg
ICAgICAgICAgICAgICAgICAgICBmcmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzKTsKKyAg
ICAgICAgICAgICAgICBwYXNfbG9nKCJmcmVlX2dyYW51bGVzLm51bV9hbHJlYWR5X2RlY29tbWl0
dGVkX2dyYW51bGVzID0gJXp1XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9ncmFu
dWxlcy5udW1fYWxyZWFkeV9kZWNvbW1pdHRlZF9ncmFudWxlcyk7CisgICAgICAgICAgICAgICAg
UEFTX0FTU0VSVCghInBhZ2VfaXNfZGVhZCBkb2VzIG5vdCBtYXRjaCBmcmVlX2dyYW51bGVzIik7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFBBU19BU1NFUlQoZnJl
ZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxlcyA8PSBudW1fZ3JhbnVsZXMpOworCisgICAgICAg
ICAgICBpZiAoIWZyZWVfZ3JhbnVsZXMubnVtX2ZyZWVfZ3JhbnVsZXMpIHsKKyAgICAgICAgICAg
ICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAgICAg
ICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVkX2FkZChk
ZWNvbW1pdF9sb2csIGNvbW1pdF9sb2NrKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHBhZ2VfaXNfZGVhZCkK
KyAgICAgICAgICAgICAgICB2aWV3LT5pc19vd25lZCA9IGZhbHNlOworICAgICAgICAgICAgCisg
ICAgICAgICAgICAvKiBXZSBoYXZlIHRvIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrIHRvIGRl
Y29tbWl0IGJlY2F1c2UgZGVjb21taXQgd2FudHMgdGhlIGhlYXAKKyAgICAgICAgICAgICAgIGxv
Y2suIFRoYXQncyBzYWZlIHNpbmNlIHdlJ3ZlIGFscmVhZHkgbWFya2VkIHRoZSBzdHVmZiBkZWNv
bW1pdHRlZC4gVGhhdCBtZWFucworICAgICAgICAgICAgICAgdGhhdCBhbnkgYXR0ZW1wdCB0byB1
c2UgdGhvc2UgZ3JhbnVsZXMgd2lsbCBoYXZlIHRvIGdyYWIgdGhlIGNvbW1pdCBsb2NrLCB3aGlj
aAorICAgICAgICAgICAgICAgd2UgaG9sZC4gKi8KKyAgICAgICAgICAgIHBhc19sb2NrX3VubG9j
aygmdmlldy0+b3duZXJzaGlwX2xvY2spOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJEb2luZyBmcmVlIGdyYW51bGUgZGVj
b21taXQgd2l0aCBsb2NrICVwXG4iLCBjb21taXRfbG9jayk7CisgICAgICAgICAgICBwYXNfZnJl
ZV9ncmFudWxlc19kZWNvbW1pdF9hZnRlcl9sb2NraW5nX3JhbmdlKAorICAgICAgICAgICAgICAg
ICZmcmVlX2dyYW51bGVzLCAmcGFnZS0+YmFzZSwgZGVjb21taXRfbG9nLCBjb21taXRfbG9jaywg
JnBhZ2VfY29uZmlnLT5iYXNlLAorICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUp
OworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJEb25lLCBzdWNjZXNzIVxuIik7CisgICAgICAgICAgICAKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGlmICghcGFnZV9pc19kZWFkKSB7CisgICAgICAgICAgICAgICAg
cGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CisgICAgICAgICAgICAgICAg
cGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9hZGQoZGVjb21t
aXRfbG9nLCBjb21taXRfbG9jayk7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIC8qIFdlIGRvIHRoaXMgd2hpbGUgaG9sZGluZyBib3RoIGxv
Y2tzLiBXaGVuIHdlIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrLCB0aGVuIGlmIHNvbWVvbmUK
KyAgICAgICAgICAgICAgIGVsc2UgZ2V0cyBpdCwgdGhleSB3aWxsIGltbWVkaWF0ZWx5IHJlbGVh
c2UgaXQgdG8gdHJ5IHRvIGNvbXBldGUgZm9yIHRoZSBjb21taXQgbG9jaywKKyAgICAgICAgICAg
ICAgIHdoaWNoIHdlIGhvbGQuICovCisgICAgICAgICAgICB2aWV3LT5pc19vd25lZCA9IGZhbHNl
OworCisgICAgICAgICAgICAvKiBBbmQgd2UgaGF2ZSB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAg
bG9jayBiZWNhdXNlIGRlY29tbWl0dGluZyBtYXkgbmVlZCB0byBob2xkIHRoZSBoZWFwCisgICAg
ICAgICAgICAgICBsb2NrLCBhbmQgdGhlIGhlYXAgbG9jayBpcyBvdXRlciB0byB0aGUgb3duZXJz
aGlwIGxvY2suICovCisgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hp
cF9sb2NrKTsKKworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFz
X2xvZygiRGVjb21pdHRpbmcgcGFnZSAlcFxuIiwgcGFnZSk7CisKKyAgICAgICAgICAgIHBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2dfYWRkX2FscmVhZHlfbG9ja2VkKAorICAgICAgICAgICAgICAg
IGRlY29tbWl0X2xvZywKKyAgICAgICAgICAgICAgICBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUo
YmFzZSwgYmFzZSArIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgY29tbWl0X2xvY2spLAor
ICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgmZGlyZWN0b3J5LT5sYXN0
X2VtcHR5X3BsdXNfb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
YXN0X2VtcHR5X3BsdXNfb25lX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmRleCk7CisgICAgICAgIAorICAgICAgICBpZiAocGFnZV9pc19kZWFkKQorICAg
ICAgICAgICAgcGFnZV9jb25maWctPmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFnZS0+YmFz
ZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKKyAgICAgICAgUEFTX0FTU0VSVChwYXNfYml0Zml0
X2RpcmVjdG9yeV9kb2VzX3NoYXJpbmcoZGlyZWN0b3J5KSk7CisgICAgICAgIAorICAgICAgICBw
YXNfcGFnZV9zaGFyaW5nX3Bvb2xfZGlkX2NyZWF0ZV9kZWx0YSgKKyAgICAgICAgICAgICZwYXNf
cGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCisgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5n
X3BhcnRpY2lwYW50X2NyZWF0ZSgKKyAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19wYWdl
X3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0X2RpcmVjdG9yeSkpOworICAgICAgICAKKyAgICAg
ICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3N1Y2Nlc3M7CisgICAgfQorCisg
ICAgcGFzX3ZlcnNpb25lZF9maWVsZF90cnlfd3JpdGUoJmRpcmVjdG9yeS0+bGFzdF9lbXB0eV9w
bHVzX29uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0X2VtcHR5X3Bs
dXNfb25lX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOworICAg
IAorICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZTsK
K30KKwordm9pZCBwYXNfYml0Zml0X2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKKyAgICBwYXNf
Yml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0pCit7CisgICAg
cGFzX3N0cmVhbV9wcmludGYoCisgICAgICAgIHN0cmVhbSwgIiVwKGJpdGZpdF9kaXJlY3Rvcnks
ICVzKSIsCisgICAgICAgIGRpcmVjdG9yeSwgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dl
dF9zdHJpbmcoZGlyZWN0b3J5LT5jb25maWdfa2luZCkpOworfQorCit2b2lkIHBhc19iaXRmaXRf
ZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtKHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGly
ZWN0b3J5KQoreworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2R1bXBfcmVmZXJlbmNlKGRpcmVj
dG9yeSwgc3RyZWFtKTsKK30KKwogI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
ZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsMjYgKzI2
LDMwIEBACiAjaWZuZGVmIFBBU19CSVRGSVRfRElSRUNUT1JZX0gKICNkZWZpbmUgUEFTX0JJVEZJ
VF9ESVJFQ1RPUllfSAogCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oIgog
I2luY2x1ZGUgInBhc19iaXRmaXRfbWF4X2ZyZWUuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXdfYW5kX2luZGV4Lmgi
CiAjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oIgog
I2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHIuaCIKICNpbmNsdWRl
ICJwYXNfaGVhcF9zdW1tYXJ5LmgiCisjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudC5oIgogI2luY2x1ZGUgInBhc19zZWdtZW50ZWRfdmVjdG9yLmgiCiAjaW5jbHVkZSAicGFz
X3ZlcnNpb25lZF9maWVsZC5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNf
Yml0Zml0X2RpcmVjdG9yeTsKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzOwor
c3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50Oworc3RydWN0IHBh
c19iaXRmaXRfc2l6ZV9jbGFzczsKIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2U7CiBzdHJ1Y3QgcGFz
X2JpdGZpdF92aWV3Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0cnVj
dCBwYXNfYml0Zml0X2RpcmVjdG9yeSBwYXNfYml0Zml0X2RpcmVjdG9yeTsKLXR5cGVkZWYgc3Ry
dWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9j
bGFzczsKK3R5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdt
ZW50IHBhc19iaXRmaXRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50OwordHlwZWRlZiBzdHJ1
Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzIHBhc19iaXRmaXRfc2l6ZV9jbGFzczsKIHR5cGVkZWYg
c3RydWN0IHBhc19iaXRmaXRfcGFnZSBwYXNfYml0Zml0X3BhZ2U7CiB0eXBlZGVmIHN0cnVjdCBw
YXNfYml0Zml0X3ZpZXcgcGFzX2JpdGZpdF92aWV3OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCBwYXNfc2VncmVnYXRlZF9oZWFwOwogCiAjZGVmaW5lIFBBU19CSVRGSVRfRElS
RUNUT1JZX1ZFUkJPU0VfTUFYX0ZSRUUgZmFsc2UKIApAQCAtNTcsMTkgKzYxLDM1IEBAIFBBU19E
RUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX2JpdGZpdF8KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0ciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgOCk7CiAKK3N0cnVjdCBwYXNfYml0Zml0X2RpcmVjdG9yeV9iaXR2
ZWN0b3Jfc2VnbWVudCB7CisgICAgdW5zaWduZWQgZW1wdHlfYml0czsKK307CisKKyNkZWZpbmUg
UEFTX0JJVEZJVF9ESVJFQ1RPUllfQklUVkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIgXAorICAg
ICgocGFzX2JpdGZpdF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQpeyBcCisgICAgICAgICAu
ZW1wdHlfYml0cyA9IDAsIFwKKyAgICAgfSkKKworUEFTX0RFQ0xBUkVfU0VHTUVOVEVEX1ZFQ1RP
UihwYXNfYml0Zml0X2RpcmVjdG9yeV9zZWdtZW50ZWRfYml0dmVjdG9ycywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQpOworCiBzdHJ1Y3QgUEFTX0FMSUdORUQo
c2l6ZW9mKHBhc192ZXJzaW9uZWRfZmllbGQpKSBwYXNfYml0Zml0X2RpcmVjdG9yeSB7CiAgICAg
cGFzX3ZlcnNpb25lZF9maWVsZCBmaXJzdF91bnByb2Nlc3NlZF9mcmVlOwogICAgIHBhc192ZXJz
aW9uZWRfZmllbGQgZmlyc3RfZW1wdHk7CisgICAgcGFzX3ZlcnNpb25lZF9maWVsZCBsYXN0X2Vt
cHR5X3BsdXNfb25lOyAvKiBaZXJvIG1lYW5zIHRoZXJlIGFyZW4ndCBhbnkuICovCisgICAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcDsKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9zZWdtZW50
ZWRfYml0dmVjdG9ycyBiaXR2ZWN0b3JzOwogICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9m
cmVlX3ZlY3RvciBtYXhfZnJlZXM7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld192ZWN0
b3Igdmlld3M7CisgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkIHBoeXNp
Y2FsX3NoYXJpbmdfcGF5bG9hZDsKICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVf
Y2xhc3NfcHRyIGxhcmdlc3Rfc2l6ZV9jbGFzczsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9r
aW5kIGRpcmVjdG9yeV9raW5kIDogODsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQg
Y29uZmlnX2tpbmQgOiA4OwogfTsKIAogUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZGlyZWN0b3J5
X2NvbnN0cnVjdChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5k
IGRpcmVjdG9yeV9raW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25maWcpOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25maWcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXApOwogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc19iaXRmaXRfZGly
ZWN0b3J5X3NpemUocGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKQEAgLTE5NSw3
ICsyMTUsNiBAQCBzdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpCiAgICBz
aXplX2NsYXNzJ3MgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uLiAqLwogUEFTX0FQSSBwYXNfYml0
Zml0X3ZpZXdfYW5kX2luZGV4CiBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJlZV92
aWV3KHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIHNpemVf
Y2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IHN0YXJ0X2luZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfYml0Zml0X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7CkBAIC0yMTQsNiArMjMzLDM3IEBA
IFBBU19BUEkgYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9mb3JfZWEKICAgICBwYXNfYml0Zml0
X2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjayBjYWxsYmFjaywKICAgICB2
b2lkKiBhcmcpOwogCitQQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9kaXJlY3RvcnlfZG9lc19zaGFy
aW5nKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfQVBJIHVpbnQ2NF90
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF91c2VfZXBvY2gocGFzX2JpdGZpdF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSk7CisKK1BBU19BUEkgYm9vbCBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZW1w
dHlfYml0X2F0X2luZGV4KAorICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisg
ICAgc2l6ZV90IGluZGV4KTsKKworLyogUmV0dXJucyB3aGV0aGVyIHdlIGNoYW5nZWQgdGhlIHZh
bHVlLiAqLworUEFTX0FQSSBib29sIHBhc19iaXRmaXRfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRf
YXRfaW5kZXgoCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBzaXpl
X3QgaW5kZXgsCisgICAgYm9vbCB2YWx1ZSk7CisKK1BBU19BUEkgdm9pZCBwYXNfYml0Zml0X2Rp
cmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoCisgICAgcGFzX2JpdGZpdF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBzaXplX3QgaW5kZXgpOworUEFTX0FQSSB2b2lkIHBh
c19iaXRmaXRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eSgKKyAgICBwYXNfYml0Zml0
X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19iaXRmaXRfdmlldyogdmlldyk7CisKK1BB
U19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19iaXRmaXRfZGlyZWN0
b3J5X3Rha2VfbGFzdF9lbXB0eSgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5
LAorICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZywKKyAgICBwYXNf
bG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKK1BBU19BUEkgdm9pZCBwYXNf
Yml0Zml0X2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKKyAgICBwYXNfYml0Zml0X2RpcmVjdG9y
eSogZGlyZWN0b3J5LCBwYXNfc3RyZWFtKiBzdHJlYW0pOworCitQQVNfQVBJIHZvaWQgcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3RydW0ocGFzX3N0cmVhbSogc3RyZWFtLCB2b2lk
KiBkaXJlY3RvcnkpOworCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0JJVEZJ
VF9ESVJFQ1RPUllfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4LmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleC5oCShub25leGlzdGVudCkKQEAgLTEsNTcgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZu
ZGVmIFBBU19CSVRGSVRfRElSRUNUT1JZX0FORF9JTkRFWF9ICi0jZGVmaW5lIFBBU19CSVRGSVRf
RElSRUNUT1JZX0FORF9JTkRFWF9ICi0KLSNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeV9r
aW5kLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0
b3J5Owotc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleDsKLXR5cGVkZWYgc3Ry
dWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5IHBhc19iaXRmaXRfZGlyZWN0b3J5OwotdHlwZWRlZiBz
dHJ1Y3QgcGFzX2JpdGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4IHBhc19iaXRmaXRfZGlyZWN0b3J5
X2FuZF9pbmRleDsKLQotc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCB7Ci0g
ICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICB1bnNpZ25lZCBpbmRleDsK
LSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kIGtpbmQ7Ci19OwotCi1zdGF0aWMgaW5saW5l
IHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRf
aW5kZXhfY3JlYXRlKAotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHVuc2ln
bmVkIGluZGV4LCBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kIGtpbmQpCi17Ci0gICAgcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfYW5kX2luZGV4IHJlc3VsdDsKLSAgICByZXN1bHQuZGlyZWN0b3J5ID0g
ZGlyZWN0b3J5OwotICAgIHJlc3VsdC5pbmRleCA9IGluZGV4OwotICAgIHJlc3VsdC5raW5kID0g
a2luZDsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5k
aWYgLyogUEFTX0JJVEZJVF9ESVJFQ1RPUllfQU5EX0lOREVYX0ggKi8KLQpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfZGlyZWN0b3J5X2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnlfaW5saW5lcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiwyNyArMjYsMTEgQEAKICNpZm5kZWYgUEFTX0JJVEZJVF9ESVJFQ1RP
UllfSU5MSU5FU19ICiAjZGVmaW5lIFBBU19CSVRGSVRfRElSRUNUT1JZX0lOTElORVNfSAogCi0j
aW5jbHVkZSAicGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19i
aXRmaXRfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
LmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oIgogCiBQQVNfQkVHSU5fRVhU
RVJOX0M7CiAKLXN0YXRpYyBpbmxpbmUgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KgotcGFz
X2JpdGZpdF9kaXJlY3RvcnlfZ2V0X2dsb2JhbChwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0
b3J5KQotewotICAgIHN3aXRjaCAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAgIGNh
c2UgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiAocGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KilkaXJlY3Rvcnk7Ci0gICAgY2FzZSBwYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICYoKHBh
c19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkqKWRpcmVjdG9yeSktPnBhcmVudF9nbG9iYWwpOwot
ICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgcmV0
dXJuIE5VTEw7Ci19Ci0KIHR5cGVkZWYgc3RydWN0IHsKICAgICB1bnNpZ25lZCBudW1fYml0czsK
IH0gcGFzX2JpdGZpdF9kaXJlY3RvcnlfZmluZF9maXJzdF9mcmVlX2Zvcl9udW1fYml0c19pdGVy
YXRlX2RhdGE7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2RpcmVjdG9yeV9raW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZC5oCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9y
eV9raW5kLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0JJVEZJVF9ESVJFQ1RP
UllfS0lORF9ICi0jZGVmaW5lIFBBU19CSVRGSVRfRElSRUNUT1JZX0tJTkRfSAotCi0jaW5jbHVk
ZSAicGFzX3V0aWxzLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotLyogQml0Zml0IGRpcmVj
dG9yaWVzIGZvcm0gYSB0eXBlIGhpZXJhcmNoeSBsaWtlIHNvOgotICAgCi0gICAgICAgLSBkaXJl
Y3RvcnkKLSAgICAgICAgICAgLSBnbG9iYWwgZGlyZWN0b3J5Ci0gICAgICAgICAgIC0gYmlhc2lu
ZyBkaXJlY3RvcnkKLSAgIAotICAgT25seSB0aGUgdHlwZXMgYXQgdGhlIGxlYXZlcyBhcmUgaW5z
dGFudGlhYmxlLiBUaGUgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZCBlbnVtIGlzIGZvcgotICAg
ZGVzY3JpYmluZyB0aGUgaW5zdGFudGlhYmxlIGxlYXZlcy4gKi8KLQotZW51bSBwYXNfYml0Zml0
X2RpcmVjdG9yeV9raW5kIHsKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfa2luZCwK
LSAgICBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQKLX07Ci0KLXR5cGVkZWYgZW51
bSBwYXNfYml0Zml0X2RpcmVjdG9yeV9raW5kIHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQ7Ci0K
LXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFzX2JpdGZpdF9kaXJlY3Rvcnlfa2luZF9nZXRf
c3RyaW5nKHBhc19iaXRmaXRfZGlyZWN0b3J5X2tpbmQga2luZCkKLXsKLSAgICBzd2l0Y2ggKGtp
bmQpIHsKLSAgICBjYXNlIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kOgotICAgICAg
ICByZXR1cm4gImJpdGZpdF9nbG9iYWxfZGlyZWN0b3J5IjsKLSAgICBjYXNlIHBhc19iaXRmaXRf
Ymlhc2luZ19kaXJlY3Rvcnlfa2luZDoKLSAgICAgICAgcmV0dXJuICJiaXRmaXRfYmlhc2luZ19k
aXJlY3RvcnkiOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVk
Iik7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAv
KiBQQVNfQklURklUX0RJUkVDVE9SWV9LSU5EX0ggKi8KLQpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5jCShub25leGlzdGVudCkKQEAg
LTEsNDAzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQK
LQotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgotCi0jaW5jbHVkZSAi
cGFzX2JpdGZpdF9wYWdlLmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCIK
LSNpbmNsdWRlICJwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmgiCi0jaW5jbHVkZSAicGFzX2Zy
ZWVfZ3JhbnVsZXMuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCi0jaW5jbHVkZSAicGFzX3N0cmVhbS5oIgotI2lu
Y2x1ZGUgInBhc19zdWJwYWdlX21hcC5oIgotCi1ib29sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVj
dG9yeV9jYW5fZXhwbG9kZSA9IHRydWU7Ci1ib29sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eV9mb3JjZV9leHBsb2RlID0gZmFsc2U7Ci0KLXZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X2NvbnN0cnVjdChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnKiBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCkKLXsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9y
eV9jb25zdHJ1Y3QoJmRpcmVjdG9yeS0+YmFzZSwgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
X2tpbmQsIGNvbmZpZyk7Ci0gICAgZGlyZWN0b3J5LT5oZWFwID0gaGVhcDsKLSAgICBwYXNfYml0
Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3RvcnNfY29uc3RydWN0KCZkaXJl
Y3RvcnktPmJpdHZlY3RvcnMpOwotICAgIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdf
cG9vbF9wdHJfc3RvcmUoJmRpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wsIE5VTEwpOwotICAg
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9hZF9jb25zdHJ1Y3QoJmRpcmVjdG9y
eS0+cGh5c2ljYWxfc2hhcmluZ19wYXlsb2FkKTsKLSAgICBkaXJlY3RvcnktPmNvbnRlbnRpb25f
ZGlkX3RyaWdnZXJfZXhwbG9zaW9uID0KLSAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5X2Nhbl9leHBsb2RlICYgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2ZvcmNlX2V4cGxv
ZGU7Ci0KLSAgICAvKiBXZSBjb3VsZCBoYXZlIGJlZW4gbGF6eSBhYm91dCB0aGlzIC0gYnV0IGl0
J3MgcHJvYmFibHkgbm90IHN1cGVyIG5lY2Vzc2FyeSBzaW5jZSB0aGUgcG9pbnQKLSAgICAgICBv
ZiBiaXRmaXQgZ2xvYmFsIGRpcmVjdG9yaWVzIGlzIHRoYXQgdGhlcmUgd29uJ3QgYmUgdG9vIG1h
bnkgb2YgdGhlbS4gKi8KLSAgICBpZiAocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2RvZXNf
c2hhcmluZyhkaXJlY3RvcnkpKSB7Ci0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9hZGQo
Ci0gICAgICAgICAgICAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sLAotICAgICAgICAg
ICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUoCi0gICAgICAgICAgICAgICAg
ZGlyZWN0b3J5LCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rvcnkp
KTsKLSAgICB9Ci19Ci0KLWJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2RvZXNfc2hh
cmluZyhwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICByZXR1
cm4gcGFzX3BhZ2Vfc2hhcmluZ19tb2RlX2RvZXNfc2hhcmluZygKLSAgICAgICAgZGlyZWN0b3J5
LT5oZWFwLT5ydW50aW1lX2NvbmZpZy0+c2hhcmluZ19tb2RlKTsKLX0KLSAgICAKLXVpbnQ2NF90
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9nZXRfdXNlX2Vwb2NoKHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHVpbnRwdHJfdCBsYXN0X2VtcHR5X3Bs
dXNfb25lOwotICAgIHNpemVfdCBpbmRleDsKLSAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIGNv
bmZpZzsKLQotICAgIGxhc3RfZW1wdHlfcGx1c19vbmUgPSBkaXJlY3RvcnktPmxhc3RfZW1wdHlf
cGx1c19vbmUudmFsdWU7Ci0gICAgY29uZmlnID0gKnBhc19iaXRmaXRfcGFnZV9jb25maWdfa2lu
ZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+YmFzZS5jb25maWdfa2luZCk7Ci0KLSAgICBmb3IgKGlu
ZGV4ID0gbGFzdF9lbXB0eV9wbHVzX29uZTsgaW5kZXgtLTspIHsKLSAgICAgICAgcGFzX2JpdGZp
dF92aWV3KiB2aWV3OwotICAgICAgICB1aW50NjRfdCBlcG9jaDsKLQotICAgICAgICAvKiBQcm90
ZWN0IGFnYWluc3QgdW5zZXQgZXBvY2hzLiAqLwotICAgICAgICBpZiAoIXBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeV9nZXRfZW1wdHlfYml0X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpKQot
ICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0
b3J5X2dldF92aWV3KCZkaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKLSAgICAgICAgaWYgKCF2aWV3
KQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+
b3duZXJzaGlwX2xvY2spOwotICAgICAgICBlcG9jaCA9IDA7Ci0gICAgICAgIGlmICh2aWV3LT5p
c19vd25lZCkgewotICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlOwotICAgICAgICAg
ICAgcGFnZSA9IHBhc19iaXRmaXRfcGFnZV9mb3JfYm91bmRhcnkodmlldy0+cGFnZV9ib3VuZGFy
eSwgY29uZmlnKTsKLSAgICAgICAgICAgIGlmICghcGFnZS0+bnVtX2xpdmVfYml0cykgewotICAg
ICAgICAgICAgICAgIGVwb2NoID0gcGFnZS0+dXNlX2Vwb2NoOwotICAgICAgICAgICAgICAgIFBB
U19BU1NFUlQoZXBvY2gpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHBhc19s
b2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotCi0gICAgICAgIGlmIChlcG9jaCkK
LSAgICAgICAgICAgIHJldHVybiBlcG9jaDsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQot
Ym9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleCgK
LSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3Qg
aW5kZXgpCi17Ci0gICAgcmV0dXJuIHBhc19iaXR2ZWN0b3JfZ2V0X2Zyb21fd29yZCgKLSAgICAg
ICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2dldF9w
dHJfY2hlY2tlZCgKLSAgICAgICAgICAgICZkaXJlY3RvcnktPmJpdHZlY3RvcnMsIFBBU19CSVRW
RUNUT1JfV09SRF9JTkRFWChpbmRleCkpLT5lbXB0eV9iaXRzLAotICAgICAgICBpbmRleCk7Ci19
Ci0KLS8qIFJldHVybnMgd2hldGhlciB3ZSBjaGFuZ2VkIHRoZSB2YWx1ZS4gKi8KLWJvb2wgcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgoCi0gICAgcGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4LAot
ICAgIGJvb2wgdmFsdWUpCi17Ci0gICAgcmV0dXJuIHBhc19iaXR2ZWN0b3Jfc2V0X2F0b21pY19p
bl93b3JkKAotICAgICAgICAmcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NlZ21lbnRlZF9i
aXR2ZWN0b3JzX2dldF9wdHJfY2hlY2tlZCgKLSAgICAgICAgICAgICZkaXJlY3RvcnktPmJpdHZl
Y3RvcnMsIFBBU19CSVRWRUNUT1JfV09SRF9JTkRFWChpbmRleCkpLT5lbXB0eV9iaXRzLAotICAg
ICAgICBpbmRleCwKLSAgICAgICAgdmFsdWUpOwotfQotCi12b2lkIHBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoCi0gICAgcGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4KQotewotICAg
IGlmICghcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3NldF9lbXB0eV9iaXRfYXRfaW5kZXgo
ZGlyZWN0b3J5LCBpbmRleCwgdHJ1ZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8qIElmIHdl
IGFscmVhZHkga25ldyBhYm91dCBlbXB0aWVzLCB0aGVuIHdlIGhhdmUgbm90aGluZyBtb3JlIHRv
IGRvLiAqLwotICAgIGlmIChwYXNfdmVyc2lvbmVkX2ZpZWxkX21heGltaXplKCZkaXJlY3Rvcnkt
Pmxhc3RfZW1wdHlfcGx1c19vbmUsIGluZGV4ICsgMSkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGlmICghcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhkaXJlY3Rvcnkp
KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9j
cmVhdGVfZGVsdGEoCi0gICAgICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCi0g
ICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAotICAgICAgICAgICAg
ZGlyZWN0b3J5LCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpdGZpdF9kaXJlY3Rvcnkp
KTsKLX0KLQotdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21l
X2VtcHR5KAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAg
IHBhc19iaXRmaXRfdmlldyogdmlldykKLXsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQoCi0gICAg
ICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KQotICAgICAgICA9PSBkaXJlY3RvcnkpOwotICAgIHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgo
Ci0gICAgICAgIGRpcmVjdG9yeSwgdmlldy0+aW5kZXhfaW5fZ2xvYmFsKTsKLX0KLQotcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV90
YWtlX2xhc3RfZW1wdHkoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9iYWxf
ZGlyZWN0b3J5LAotICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZywK
LSAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKLXsKLSAgICBzdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgcGFzX2JpdGZpdF9kaXJl
Y3RvcnkqIGRpcmVjdG9yeTsKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGxhc3RfZW1wdHlfcGx1
c19vbmVfdmFsdWU7Ci0gICAgc2l6ZV90IGluZGV4OwotICAgIHBhc19iaXRmaXRfcGFnZV9jb25m
aWcqIHBhZ2VfY29uZmlnOwotICAgIHNpemVfdCBudW1fZ3JhbnVsZXM7Ci0gICAgYm9vbCB1c2Vz
X3N1YnBhZ2VzOwotCi0gICAgZGlyZWN0b3J5ID0gJmdsb2JhbF9kaXJlY3RvcnktPmJhc2U7Ci0K
LSAgICBsYXN0X2VtcHR5X3BsdXNfb25lX3ZhbHVlID0gcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFk
KCZnbG9iYWxfZGlyZWN0b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lKTsKLQotICAgIHBhZ2VfY29u
ZmlnID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5j
b25maWdfa2luZCk7Ci0gICAgbnVtX2dyYW51bGVzID0gcGFnZV9jb25maWctPmJhc2UucGFnZV9z
aXplIC8gcGFnZV9jb25maWctPmJhc2UuZ3JhbnVsZV9zaXplOwotICAgIHVzZXNfc3VicGFnZXMg
PSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3VzZXNfc3VicGFnZXMoKnBhZ2VfY29uZmlnKTsKLQot
ICAgIGZvciAoaW5kZXggPSBsYXN0X2VtcHR5X3BsdXNfb25lX3ZhbHVlLnZhbHVlOyBpbmRleC0t
OykgewotICAgICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7Ci0gICAgICAgIHBhc19iaXRmaXRf
cGFnZSogcGFnZTsKLSAgICAgICAgdWludHB0cl90IGJhc2U7Ci0gICAgICAgIHBhc19zdWJwYWdl
X21hcF9lbnRyeSogc3VicGFnZV9lbnRyeTsKLSAgICAgICAgcGFzX2xvY2sqIGNvbW1pdF9sb2Nr
OwotICAgICAgICBib29sIHBhZ2VfaXNfZGVhZDsKLSAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3Rv
cnlfYW5kX2luZGV4IGRpcmVjdG9yeV9hbmRfaW5kZXg7Ci0gICAgICAgIHBhc19iaXRmaXRfbWF4
X2ZyZWUgbWF4X2ZyZWU7Ci0gICAgICAgIAotICAgICAgICBpZiAoIXBhc19iaXRmaXRfZ2xvYmFs
X2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2luZGV4KGdsb2JhbF9kaXJlY3RvcnksIGluZGV4
LCBmYWxzZSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICB2aWV3ID0gcGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZ2V0X3ZpZXcoZGlyZWN0b3J5LCBpbmRleCk7Ci0KLSAgICAgICAgUEFT
X0FTU0VSVCh2aWV3KTsKLSAgICAgICAgUEFTX0FTU0VSVCh2aWV3LT5wYWdlX2JvdW5kYXJ5KTsg
LyogWW91IGRvbid0IGJlY29tZSBlbXB0eSB1bnRpbCB5b3UgaGF2ZSBhIHBhZ2UgYW5kIHRoZW4K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeW91IG5ldmVyIGxv
c2UgdGhlIHBhZ2UuICovCi0KLSAgICAgICAgaWYgKHVzZXNfc3VicGFnZXMpIHsKLSAgICAgICAg
ICAgIHN1YnBhZ2VfZW50cnkgPSBwYXNfc3VicGFnZV9tYXBfZ2V0KAotICAgICAgICAgICAgICAg
IHZpZXctPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgICAgICBjb21taXRfbG9jayA9ICZzdWJwYWdlX2VudHJ5
LT5jb21taXRfbG9jazsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHN1YnBhZ2VfZW50
cnkgPSBOVUxMOwotICAgICAgICAgICAgY29tbWl0X2xvY2sgPSAmdmlldy0+Y29tbWl0X2xvY2s7
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2co
IkdyYWJiaW5nIGNvbW1pdCBsb2NrICVwXG4iLCBjb21taXRfbG9jayk7Ci0gICAgICAgIGlmICgh
cGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ19sb2NrX2Zvcl9hZGRpbmcoCi0gICAgICAgICAgICAg
ICAgZGVjb21taXRfbG9nLCBjb21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSkpIHsKLSAg
ICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1w
dHlfYXRfaW5kZXgoZ2xvYmFsX2RpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICAgICAgcmV0dXJu
IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlOwotICAgICAgICB9
Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotCi0gICAg
ICAgIGlmICghdmlldy0+aXNfb3duZWQpIHsKLSAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygm
dmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0
X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9hZGQoZGVjb21taXRfbG9nLCBjb21taXRfbG9jayk7
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotCi0gICAgICAgIGJhc2UgPSAodWlu
dHB0cl90KXZpZXctPnBhZ2VfYm91bmRhcnk7Ci0gICAgICAgIFBBU19BU1NFUlQoYmFzZSk7Ci0g
ICAgICAgIHBhZ2UgPSBwYXNfYml0Zml0X3BhZ2VfZm9yX2JvdW5kYXJ5KCh2b2lkKiliYXNlLCAq
cGFnZV9jb25maWcpOwotICAgICAgICBQQVNfQVNTRVJUKHBhZ2UpOwotCi0gICAgICAgIHBhZ2Vf
aXNfZGVhZCA9ICFwYWdlLT5udW1fbGl2ZV9iaXRzOwotCi0gICAgICAgIGRpcmVjdG9yeV9hbmRf
aW5kZXggPSBwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZpZXcp
OwotICAgICAgICBtYXhfZnJlZSA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF9tYXhfZnJlZShk
aXJlY3RvcnlfYW5kX2luZGV4LmRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5X2FuZF9pbmRleC5pbmRleCk7Ci0g
ICAgICAgIGlmIChwYWdlX2lzX2RlYWQpIHsKLSAgICAgICAgICAgIC8qIElmIGEgcGFnZSdzIG51
bV9saXZlX2JpdHMgZHJvcHMgdG8gemVybyB0aGVuIHdlIHdpbGwgbWFyayBpdCBlbXB0eSBpbiB0
aGUgZGlyZWN0b3J5IHRoYXQKLSAgICAgICAgICAgICAgIG93bnMgaXQgd2hpbGUgaG9sZGluZyB0
aGUgbG9jay4gTmV3bHkgY3JlYXRlZCBwYWdlcyBzdGFydCBvdXQgZW1wdHkuCi0gICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgIFRoZSBmYWN0IHRoYXQgZGVhZCBwYWdlcyBhcmUgZW1wdHkgaW4g
Ymlhc2luZyBkaXJlY3RvcmllcyBoYXMgYW4gaW50ZXJlc3RpbmcgY29uc2VxdWVuY2UuCi0gICAg
ICAgICAgICAgICBJdCBtZWFucyB0aGF0IHdoZW4gd2UgZGVjb21taXQgaXQgdGhlbiB0aGUgYmlh
c2luZyBkaXJlY3Rvcnkgd2lsbCBza2lwIHRoaXMgcGFnZS4gV2UgYWxzbwotICAgICAgICAgICAg
ICAgdW5iaWFzIGl0IHNvIHRoYXQgaWYgd2UgZG8gY29tZSBiYWNrIHRvIGl0LCB3ZSdsbCBnZXQg
YSBmcmVzaCBwYWdlIGZyb20gdGhlIGdsb2JhbAotICAgICAgICAgICAgICAgZGlyZWN0b3J5IHJh
dGhlciB0aGFuIHRyeWluZyB0byBjb21taXQgdGhpcyBvbmUuICAqLwotICAgICAgICAgICAgaWYg
KG1heF9mcmVlICE9IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpIHsKLSAgICAgICAgICAgICAg
ICBwYXNfbG9nKCIlcDoldTogZm91bmQgbm9uLWVtcHR5IHBhZ2UgdGhhdCBpcyBkZWFkIHdoZW4g
dGFraW5nIGxhc3QgZW1wdHkuXG4iKTsKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKG1heF9m
cmVlID09IFBBU19CSVRGSVRfTUFYX0ZSRUVfRU1QVFkpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBpZiAoZGlyZWN0b3J5X2FuZF9pbmRleC5raW5kID09IHBhc19iaXRmaXRfYmlhc2lu
Z19kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICAgICAgICAgIHZpZXctPmluZGV4X2luX2JpYXNp
bmcgPSAwOwotICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X21heF9mcmVlX2Rp
ZF9iZWNvbWVfZW1wdHkoCi0gICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgaW5kZXgsICJi
ZWNvbWUgZW1wdHkgaW4gZ2xvYmFsIG9uIHVuYmlhcyBkdXJpbmcgcGFnZSB0YWtlIik7Ci0gICAg
ICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9w
dHJfc3RvcmUoJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5LCBOVUxMKTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAvKiBNYWtlIHN1cmUgdGhhdCB3ZSBkb24ndCBjbGVhciB0aGUg
dmlldyBvdXQgb2YgdGhlIGRpcmVjdG9yeSB1bnRpbCB3ZSdyZSBkb25lIHRlbGxpbmcKLSAgICAg
ICAgICAgICAgICAgICB0aGUgdmlldyB0aGF0IGl0J3Mgbm90IGJpYXNlZC4gKi8KLSAgICAgICAg
ICAgICAgICBwYXNfZmVuY2UoKTsKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
Yml0Zml0X3ZpZXdfcHRyX3N0b3JlKAotICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2Rp
cmVjdG9yeV9nZXRfdmlld19wdHIoZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3RvcnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rv
cnlfYW5kX2luZGV4LmluZGV4KSwKLSAgICAgICAgICAgICAgICAgICAgTlVMTCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKiBJZiBhIHBhZ2UncyBudW1f
bGl2ZV9iaXRzIGdvZXMgYWJvdmUgemVybyB0aGVuIHdlIG1hcmsgaXQgdW5wcm9jZXNzZWQgd2hp
bGUgaG9sZGluZyB0aGUKLSAgICAgICAgICAgICAgIGxvY2suICovCi0gICAgICAgICAgICBpZiAo
bWF4X2ZyZWUgPT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSkgewotICAgICAgICAgICAgICAg
IHBhc19sb2coIiVwOiV1OiBmb3VuZCBlbXB0eSBwYWdlIHRoYXQgaXMgbm90IGRlYWQgd2hlbiB0
YWtpbmcgbGFzdCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQobWF4X2Zy
ZWUgIT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIGlmIChudW1fZ3JhbnVsZXMgPiAxKSB7Ci0gICAgICAgICAg
ICBwYXNfZnJlZV9ncmFudWxlcyBmcmVlX2dyYW51bGVzOwotICAgICAgICAgICAgcGFzX3BhZ2Vf
Z3JhbnVsZV91c2VfY291bnQqIHVzZV9jb3VudHM7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IFBBU19BU1NFUlQoIXVzZXNfc3VicGFnZXMpOyAvKiBXZSBzaG91bGQgbmV2ZXIgc2V0IHVwIHN1
YnBhZ2VzIGZvciBhIHBhZ2Ugd2l0aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdyYW51bGVzLiBXZSBjb3VsZCBjaGFuZ2UgdGhhdCAoYnkgYWRkaW5nIGEgYml0
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9yZSBsb2dpYykg
YnV0IGZvciBub3cgaXQgbWFrZXMgbm8gc2Vuc2UuIEl0IHdvdWxkCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb25seSBtYWtlIHNlbnNlIGlmIHdlIGhhZCB0byBk
ZWFsIHdpdGggYSBkeW5hbWljCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3lzdGVtIHBhZ2Ugc2l6ZSBhbmQgd2UgZGlkbid0IHdhbnQgdG8gYWNoaWV2ZSB0aGF0
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnkgc2hpcHBpbmcg
bXVsdGlwbGUgY29uZmlncy4gKi8KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKHZlcmJv
c2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiRGVjb21taXR0aW5nIGdyYW51bGVzIGZvciBw
YWdlICVwXG4iLCBwYWdlKTsKLSAgICAgICAgICAgIHVzZV9jb3VudHMgPSBwYXNfYml0Zml0X3Bh
Z2VfZ2V0X2dyYW51bGVfdXNlX2NvdW50cyhwYWdlLCAqcGFnZV9jb25maWcpOwotICAgICAgICAg
ICAgCi0gICAgICAgICAgICBwYXNfZnJlZV9ncmFudWxlc19jb21wdXRlX2FuZF9tYXJrX2RlY29t
bWl0dGVkKAotICAgICAgICAgICAgICAgICZmcmVlX2dyYW51bGVzLCB1c2VfY291bnRzLCBudW1f
Z3JhbnVsZXMpOwotCi0gICAgICAgICAgICBpZiAocGFnZV9pc19kZWFkICE9ICgoZnJlZV9ncmFu
dWxlcy5udW1fYWxyZWFkeV9kZWNvbW1pdHRlZF9ncmFudWxlcyArCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnJlZV9ncmFudWxlcy5udW1fZnJlZV9ncmFudWxlcykgPT0gbnVt
X2dyYW51bGVzKSkgewotICAgICAgICAgICAgICAgIHBhc19sb2coInBhZ2VfaXNfZGVhZCA9ICVk
XG4iLCBwYWdlX2lzX2RlYWQpOwotICAgICAgICAgICAgICAgIHBhc19sb2coImZyZWVfZ3JhbnVs
ZXMubnVtX2ZyZWVfZ3JhbnVsZXMgPSAlenVcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBm
cmVlX2dyYW51bGVzLm51bV9mcmVlX2dyYW51bGVzKTsKLSAgICAgICAgICAgICAgICBwYXNfbG9n
KCJmcmVlX2dyYW51bGVzLm51bV9hbHJlYWR5X2RlY29tbWl0dGVkX2dyYW51bGVzID0gJXp1XG4i
LAotICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9ncmFudWxlcy5udW1fYWxyZWFkeV9kZWNv
bW1pdHRlZF9ncmFudWxlcyk7Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghInBhZ2VfaXNf
ZGVhZCBkb2VzIG5vdCBtYXRjaCBmcmVlX2dyYW51bGVzIik7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIFBBU19BU1NFUlQoZnJlZV9ncmFudWxlcy5udW1fZnJlZV9n
cmFudWxlcyA8PSBudW1fZ3JhbnVsZXMpOwotCi0gICAgICAgICAgICBpZiAoIWZyZWVfZ3JhbnVs
ZXMubnVtX2ZyZWVfZ3JhbnVsZXMpIHsKLSAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2so
JnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVj
b21taXRfbG9nX3VubG9ja19hZnRlcl9hYm9ydGVkX2FkZChkZWNvbW1pdF9sb2csIGNvbW1pdF9s
b2NrKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgaWYgKHBhZ2VfaXNfZGVhZCkKLSAgICAgICAgICAgICAgICB2aWV3
LT5pc19vd25lZCA9IGZhbHNlOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBXZSBoYXZl
IHRvIHJlbGVhc2UgdGhlIG93bmVyc2hpcCBsb2NrIHRvIGRlY29tbWl0IGJlY2F1c2UgZGVjb21t
aXQgd2FudHMgdGhlIGhlYXAKLSAgICAgICAgICAgICAgIGxvY2suIFRoYXQncyBzYWZlIHNpbmNl
IHdlJ3ZlIGFscmVhZHkgbWFya2VkIHRoZSBzdHVmZiBkZWNvbW1pdHRlZC4gVGhhdCBtZWFucwot
ICAgICAgICAgICAgICAgdGhhdCBhbnkgYXR0ZW1wdCB0byB1c2UgdGhvc2UgZ3JhbnVsZXMgd2ls
bCBoYXZlIHRvIGdyYWIgdGhlIGNvbW1pdCBsb2NrLCB3aGljaAotICAgICAgICAgICAgICAgd2Ug
aG9sZC4gKi8KLSAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmdmlldy0+b3duZXJzaGlwX2xv
Y2spOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
ICAgICBwYXNfbG9nKCJEb2luZyBmcmVlIGdyYW51bGUgZGVjb21taXQgd2l0aCBsb2NrICVwXG4i
LCBjb21taXRfbG9jayk7Ci0gICAgICAgICAgICBwYXNfZnJlZV9ncmFudWxlc19kZWNvbW1pdF9h
ZnRlcl9sb2NraW5nX3JhbmdlKAotICAgICAgICAgICAgICAgICZmcmVlX2dyYW51bGVzLCAmcGFn
ZS0+YmFzZSwgZGVjb21taXRfbG9nLCBjb21taXRfbG9jaywgJnBhZ2VfY29uZmlnLT5iYXNlLAot
ICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJEb25lLCBzdWNj
ZXNzIVxuIik7Ci0gICAgICAgICAgICAKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlm
ICghcGFnZV9pc19kZWFkKSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3
LT5vd25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0
X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9hZGQoZGVjb21taXRfbG9nLCBjb21taXRfbG9jayk7
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IC8qIFdlIGRvIHRoaXMgd2hpbGUgaG9sZGluZyBib3RoIGxvY2tzLiBXaGVuIHdlIHJlbGVhc2Ug
dGhlIG93bmVyc2hpcCBsb2NrLCB0aGVuIGlmIHNvbWVvbmUKLSAgICAgICAgICAgICAgIGVsc2Ug
Z2V0cyBpdCwgdGhleSB3aWxsIGltbWVkaWF0ZWx5IHJlbGVhc2UgaXQgdG8gdHJ5IHRvIGNvbXBl
dGUgZm9yIHRoZSBjb21taXQgbG9jaywKLSAgICAgICAgICAgICAgIHdoaWNoIHdlIGhvbGQuICov
Ci0gICAgICAgICAgICB2aWV3LT5pc19vd25lZCA9IGZhbHNlOwotCi0gICAgICAgICAgICAvKiBB
bmQgd2UgaGF2ZSB0byByZWxlYXNlIHRoZSBvd25lcnNoaXAgbG9jayBiZWNhdXNlIGRlY29tbWl0
dGluZyBtYXkgbmVlZCB0byBob2xkIHRoZSBoZWFwCi0gICAgICAgICAgICAgICBsb2NrLCBhbmQg
dGhlIGhlYXAgbG9jayBpcyBvdXRlciB0byB0aGUgb3duZXJzaGlwIGxvY2suICovCi0gICAgICAg
ICAgICBwYXNfbG9ja191bmxvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLQotICAgICAgICAg
ICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiRGVjb21pdHRpbmcgcGFn
ZSAlcFxuIiwgcGFnZSk7Ci0KLSAgICAgICAgICAgIGlmICh1c2VzX3N1YnBhZ2VzKSB7Ci0gICAg
ICAgICAgICAgICAgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2RlY29tbWl0KAotICAgICAgICAgICAg
ICAgICAgICBzdWJwYWdlX2VudHJ5LAotICAgICAgICAgICAgICAgICAgICAodm9pZCopYmFzZSwK
LSAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplLAotICAgICAg
ICAgICAgICAgICAgICBkZWNvbW1pdF9sb2csCi0gICAgICAgICAgICAgICAgICAgIGhlYXBfbG9j
a19ob2xkX21vZGUpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBwYXNf
ZGVmZXJyZWRfZGVjb21taXRfbG9nX2FkZF9hbHJlYWR5X2xvY2tlZCgKLSAgICAgICAgICAgICAg
ICAgICAgZGVjb21taXRfbG9nLAotICAgICAgICAgICAgICAgICAgICBwYXNfdmlydHVhbF9yYW5n
ZV9jcmVhdGUoYmFzZSwgYmFzZSArIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgY29tbWl0
X2xvY2spLAotICAgICAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcGFzX3ZlcnNpb25lZF9maWVs
ZF90cnlfd3JpdGUoJmdsb2JhbF9kaXJlY3RvcnktPmxhc3RfZW1wdHlfcGx1c19vbmUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfZW1wdHlfcGx1c19vbmVfdmFs
dWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4KTsKLSAgICAg
ICAgCi0gICAgICAgIGlmIChwYWdlX2lzX2RlYWQpCi0gICAgICAgICAgICBwYWdlX2NvbmZpZy0+
YmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNlLCBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKLQotICAgICAgICBQQVNfQVNTRVJUKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kb2Vz
X3NoYXJpbmcoZ2xvYmFsX2RpcmVjdG9yeSkpOwotICAgICAgICAKLSAgICAgICAgcGFzX3BhZ2Vf
c2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEoCi0gICAgICAgICAgICAmcGFzX3BoeXNpY2Fs
X3BhZ2Vfc2hhcmluZ19wb29sLAotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9jcmVhdGUoCi0gICAgICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSwgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5KSk7Ci0gICAgICAgIAotICAgICAg
ICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKLSAgICB9Ci0KLSAg
ICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgmZ2xvYmFsX2RpcmVjdG9yeS0+bGFzdF9l
bXB0eV9wbHVzX29uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0X2Vt
cHR5X3BsdXNfb25lX3ZhbHVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAp
OwotICAgIAotICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWls
YWJsZTsKLX0KLQotdm9pZCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZHVtcF9yZWZlcmVu
Y2UoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksIHBhc19zdHJl
YW0qIHN0cmVhbSkKLXsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZigKLSAgICAgICAgc3RyZWFtLCAi
JXAoYml0Zml0X2dsb2JhbF9kaXJlY3RvcnksICVzKSIsCi0gICAgICAgIGRpcmVjdG9yeSwgcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGlyZWN0b3J5LT5iYXNlLmNvbmZp
Z19raW5kKSk7Ci19Ci0KLXZvaWQgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2R1bXBfZm9y
X3NwZWN0cnVtKHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGlyZWN0b3J5KQotewotICAgIHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZShkaXJlY3RvcnksIHN0cmVh
bSk7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oCShub25leGlzdGVudCkK
QEAgLTEsMTA3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19CSVRGSVRfR0xPQkFMX0RJUkVDVE9SWV9ICi0jZGVm
aW5lIFBBU19CSVRGSVRfR0xPQkFMX0RJUkVDVE9SWV9ICi0KLSNpbmNsdWRlICJwYXNfYml0Zml0
X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdf
cG9vbF9wdHIuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmgiCi0K
LVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9y
eTsKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQ7
Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0
cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQgcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50OwotdHlwZWRlZiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNfc2VncmVnYXRlZF9oZWFwOwotCi1zdHJ1Y3QgcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50IHsKLSAgICB1bnNpZ25lZCBl
bXB0eV9iaXRzOwotfTsKLQotI2RlZmluZSBQQVNfQklURklUX0dMT0JBTF9ESVJFQ1RPUllfQklU
VkVDVE9SX1NFR01FTlRfSU5JVElBTElaRVIgXAotICAgICgocGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50KXsgXAotICAgICAgICAgLmVtcHR5X2JpdHMgPSAwLCBc
Ci0gICAgIH0pCi0KLVBBU19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX2JpdGZpdF9nbG9i
YWxfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfYml0dmVjdG9yX3NlZ21lbnQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQpOwotCi1zdHJ1Y3QgUEFTX0FMSUdORUQoc2l6
ZW9mKHBhc192ZXJzaW9uZWRfZmllbGQpKSBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnkgewot
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5IGJhc2U7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcDsKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnlfc2VnbWVudGVkX2JpdHZlY3Rv
cnMgYml0dmVjdG9yczsKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGxhc3RfZW1wdHlfcGx1c19v
bmU7IC8qIFplcm8gbWVhbnMgdGhlcmUgYXJlbid0IGFueS4gKi8KLSAgICBwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50X3BheWxvYWQgcGh5c2ljYWxfc2hhcmluZ19wYXlsb2FkOwotICAgIHBh
c19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIgYmlhc19zaGFyaW5nX3Bvb2w7
Ci0gICAgYm9vbCBjb250ZW50aW9uX2RpZF90cmlnZ2VyX2V4cGxvc2lvbjsKLX07Ci0KLWV4dGVy
biBQQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2Nhbl9leHBsb2RlOwot
ZXh0ZXJuIFBBU19BUEkgYm9vbCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZm9yY2VfZXhw
bG9kZTsKLQotUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9jb25zdHJ1
Y3QocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29u
ZmlnKiBjb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBzZWdyZWdhdGVkX2hlYXApOwotCi1QQVNfQVBJ
IGJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2RvZXNfc2hhcmluZyhwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLVBBU19BUEkgdWludDY0X3QgcGFzX2Jp
dGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF91c2VfZXBvY2gocGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIGJvb2wgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X2dldF9lbXB0eV9iaXRfYXRfaW5kZXgoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4KTsKLQotLyogUmV0dXJucyB3aGV0
aGVyIHdlIGNoYW5nZWQgdGhlIHZhbHVlLiAqLwotUEFTX0FQSSBib29sIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeV9zZXRfZW1wdHlfYml0X2F0X2luZGV4KAotICAgIHBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBpbmRleCwKLSAgICBib29sIHZh
bHVlKTsKLQotUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3X2Rp
ZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCi0gICAgc2l6ZV90IGluZGV4KTsKLVBBU19BUEkgdm9pZCBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5KAotICAgIHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19iaXRmaXRfdmlldyogdmlldyk7
Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHBhc19iaXRmaXRf
Z2xvYmFsX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1wdHkoCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVj
b21taXRfbG9nLAotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsK
LQotUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5j
ZSgKLSAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVh
bSogc3RyZWFtKTsKLQotUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9k
dW1wX2Zvcl9zcGVjdHJ1bShwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQqIGRpcmVjdG9yeSk7Ci0K
LVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfQklURklUX0dMT0JBTF9ESVJFQ1RP
UllfSCAqLwotCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmMJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3MuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDE2NCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUg
InBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfYml0
Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgiCi0KLSNpbmNsdWRlICJwYXNfYmlhc2luZ19kaXJlY3Rv
cnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkuaCIK
LSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNf
aGVhcF9sb2NrLmgiCi0jaW5jbHVkZSAicGFzX2ltbW9ydGFsX2hlYXAuaCIKLSNpbmNsdWRlICJw
YXNfbWFnYXppbmUuaCIKLSNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50Lmgi
Ci0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0KLXBhc19iaXRmaXRfZ2xvYmFs
X3NpemVfY2xhc3MqIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfY3JlYXRlKAotICAgIHVu
c2lnbmVkIHNpemUsCi0gICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciogaW5zZXJ0aW9u
X3BvaW50KQotewotICAgIHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqIHJlc3VsdDsKLQot
ICAgIHJlc3VsdCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAot
ICAgICAgICBzaXplb2YocGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyksCi0gICAgICAgIGFs
aWdub2YocGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyksCi0gICAgICAgICJwYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzIiwKLSAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQot
ICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jb25zdHJ1Y3QoJnJlc3VsdC0+YmFzZSwgc2l6ZSwg
JmRpcmVjdG9yeS0+YmFzZSwgaW5zZXJ0aW9uX3BvaW50KTsKLSAgICBwYXNfYml0Zml0X2dsb2Jh
bF9zaXplX2NsYXNzX2JpYXNpbmdfdmVjdG9yX2NvbnN0cnVjdCgmcmVzdWx0LT5iaWFzaW5nX3Zl
Y3Rvcik7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1wYXNfYml0Zml0X3NpemVfY2xhc3Mq
Ci1wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3NlbGVjdF9mb3JfbWFnYXppbmUocGFzX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogZ2xvYmFsX3NpemVfY2xhc3MsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX21hZ2F6aW5lKiBtYWdhemlu
ZSkKLXsKLSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgIHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICBwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50IHBhcnRpY2lwYW50OwotICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyog
cmVzdWx0OwotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcG9vbDsKLSAgICBwYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeTsKLSAgICBwYXNfY29tcGFjdF9h
dG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBzaXplX2NsYXNzX3B0cjsKLSAgICB1bnNpZ25l
ZCBtYWdhemluZV9pbmRleDsKLQotICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2JpdGZpdF9k
aXJlY3RvcnlfcHRyX2xvYWQoJmdsb2JhbF9zaXplX2NsYXNzLT5iYXNlLmRpcmVjdG9yeSk7Ci0g
ICAgZ2xvYmFsX2RpcmVjdG9yeSA9IChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqKWRpcmVj
dG9yeTsKLSAgICAKLSAgICBpZiAoIWdsb2JhbF9kaXJlY3RvcnktPmNvbnRlbnRpb25fZGlkX3Ry
aWdnZXJfZXhwbG9zaW9uIHx8ICFtYWdhemluZSkKLSAgICAgICAgcmV0dXJuICZnbG9iYWxfc2l6
ZV9jbGFzcy0+YmFzZTsKLSAgICAKLSAgICBQQVNfQVNTRVJUKHBhc19iaXRmaXRfZ2xvYmFsX2Rp
cmVjdG9yeV9jYW5fZXhwbG9kZSk7Ci0gICAgbWFnYXppbmVfaW5kZXggPSBtYWdhemluZS0+bWFn
YXppbmVfaW5kZXg7Ci0KLSAgICBpZiAobWFnYXppbmVfaW5kZXggPCBnbG9iYWxfc2l6ZV9jbGFz
cy0+Ymlhc2luZ192ZWN0b3Iuc2l6ZSkgewotICAgICAgICByZXN1bHQgPSBwYXNfY29tcGFjdF9h
dG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX2xvYWQoCi0gICAgICAgICAgICBwYXNfYml0Zml0
X2dsb2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVjdG9yX2dldF9wdHIoCi0gICAgICAgICAgICAg
ICAgJmdsb2JhbF9zaXplX2NsYXNzLT5iaWFzaW5nX3ZlY3RvciwgbWFnYXppbmVfaW5kZXgpKTsK
LSAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQot
Ci0gICAgcG9vbCA9IHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9h
ZCgmZ2xvYmFsX2RpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotICAgIGlmICghcG9vbCkg
ewotICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsKLQotICAgICAgICBwb29sID0gcGFzX2Nv
bXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9sb2FkKCZnbG9iYWxfZGlyZWN0b3J5
LT5iaWFzX3NoYXJpbmdfcG9vbCk7Ci0gICAgICAgIGlmICghcG9vbCkgewotICAgICAgICAgICAg
cG9vbCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAotICAgICAg
ICAgICAgICAgIHNpemVvZihwYXNfcGFnZV9zaGFyaW5nX3Bvb2wpLAotICAgICAgICAgICAgICAg
IGFsaWdub2YocGFzX3BhZ2Vfc2hhcmluZ19wb29sKSwKLSAgICAgICAgICAgICAgICAicGFzX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzcy9iaWFzX3NoYXJpbmdfcG9vbCIsCi0gICAgICAgICAgICAg
ICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLSAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdf
cG9vbF9jb25zdHJ1Y3QocG9vbCk7Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfcGFn
ZV9zaGFyaW5nX3Bvb2xfcHRyX3N0b3JlKAotICAgICAgICAgICAgICAgICZnbG9iYWxfZGlyZWN0
b3J5LT5iaWFzX3NoYXJpbmdfcG9vbCwgcG9vbCk7Ci0gICAgICAgIH0KLQotICAgICAgICBwYXNf
aGVhcF9sb2NrX3VubG9jaygpOwotCi0gICAgICAgIFBBU19BU1NFUlQoCi0gICAgICAgICAgICBw
YXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmdsb2JhbF9kaXJl
Y3RvcnktPmJpYXNfc2hhcmluZ19wb29sKQotICAgICAgICAgICAgPT0gcG9vbCk7Ci0gICAgfQot
Ci0gICAgUEFTX0FTU0VSVChwb29sKTsKLQotICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hh
cmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChwb29sLCBtYWdhemluZV9pbmRleCk7Ci0gICAgaWYg
KCFwYXJ0aWNpcGFudCkgewotICAgICAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IE5VTEw7Ci0gICAg
ICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotICAgICAgICBwYXJ0aWNpcGFudCA9IHBhc19wYWdl
X3NoYXJpbmdfcG9vbF9nZXRfcGFydGljaXBhbnQocG9vbCwgbWFnYXppbmVfaW5kZXgpOwotICAg
ICAgICBpZiAoIXBhcnRpY2lwYW50KSB7Ci0gICAgICAgICAgICBiaWFzaW5nX2RpcmVjdG9yeSA9
IHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfY3JlYXRlKAotICAgICAgICAgICAgICAgIGds
b2JhbF9kaXJlY3RvcnksIG1hZ2F6aW5lX2luZGV4KTsKLSAgICAgICAgfQotICAgICAgICBwYXNf
aGVhcF9sb2NrX3VubG9jaygpOwotCi0gICAgICAgIGlmICghcGFydGljaXBhbnQpIHsKLSAgICAg
ICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFu
dChwb29sLCBtYWdhemluZV9pbmRleCk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKAotICAgICAg
ICAgICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVh
dGUoCi0gICAgICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNl
LAotICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNp
bmdfZGlyZWN0b3J5KSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgUEFTX0FTU0VSVChw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9raW5kKHBhcnRpY2lwYW50KQotICAgICAg
ICAgICAgICAgPT0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9y
eSk7Ci0KLSAgICBiaWFzaW5nX2RpcmVjdG9yeSA9IHBhc191bndyYXBfYml0Zml0X2JpYXNpbmdf
ZGlyZWN0b3J5KAotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dldF9wdHIo
cGFydGljaXBhbnQpKTsKLQotICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotCi0gICAgd2hpbGUg
KG1hZ2F6aW5lX2luZGV4ID49IGdsb2JhbF9zaXplX2NsYXNzLT5iaWFzaW5nX3ZlY3Rvci5zaXpl
KSB7Ci0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIgbnVs
bF9wdHIgPSBQQVNfQ09NUEFDVF9BVE9NSUNfUFRSX0lOSVRJQUxJWkVSOwotICAgICAgICBwYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVjdG9yX2FwcGVuZCgKLSAgICAgICAg
ICAgICZnbG9iYWxfc2l6ZV9jbGFzcy0+Ymlhc2luZ192ZWN0b3IsIG51bGxfcHRyLCBwYXNfbG9j
a19pc19oZWxkKTsKLSAgICB9Ci0KLSAgICBzaXplX2NsYXNzX3B0ciA9IHBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3NfYmlhc2luZ192ZWN0b3JfZ2V0X3B0cigKLSAgICAgICAgJmdsb2JhbF9z
aXplX2NsYXNzLT5iaWFzaW5nX3ZlY3RvciwgbWFnYXppbmVfaW5kZXgpOwotICAgIHJlc3VsdCA9
IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfbG9hZChzaXplX2NsYXNz
X3B0cik7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgcmVzdWx0ID0gcGFzX2JpdGZpdF9z
aXplX2NsYXNzX2NyZWF0ZSgKLSAgICAgICAgICAgIGdsb2JhbF9zaXplX2NsYXNzLT5iYXNlLnNp
emUsICZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZSk7Ci0gICAgICAgIHBhc19mZW5jZSgpOwotICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX3N0b3JlKHNpemVf
Y2xhc3NfcHRyLCByZXN1bHQpOwotICAgIH0KLQotICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8K
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFs
X3NpemVfY2xhc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3MuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDYyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfQklURklUX0dMT0JBTF9T
SVpFX0NMQVNTX0gKLSNkZWZpbmUgUEFTX0JJVEZJVF9HTE9CQUxfU0laRV9DTEFTU19ICi0KLSNp
bmNsdWRlICJwYXNfYml0Zml0X3NpemVfY2xhc3MuaCIKLSNpbmNsdWRlICJwYXNfc2VnbWVudGVk
X3ZlY3Rvci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfYml0Zml0X2ds
b2JhbF9kaXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzczsKLXN0
cnVjdCBwYXNfbWFnYXppbmU7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJl
Y3RvcnkgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzOwotdHlw
ZWRlZiBzdHJ1Y3QgcGFzX21hZ2F6aW5lIHBhc19tYWdhemluZTsKLQotUEFTX0RFQ0xBUkVfU0VH
TUVOVEVEX1ZFQ1RPUihwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX2JpYXNpbmdfdmVjdG9y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0
X3NpemVfY2xhc3NfcHRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0KTsKLQotc3Ry
dWN0IFBBU19BTElHTkVEKHNpemVvZihwYXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFzX2JpdGZpdF9n
bG9iYWxfc2l6ZV9jbGFzcyB7Ci0gICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzIGJhc2U7Ci0gICAg
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19iaWFzaW5nX3ZlY3RvciBiaWFzaW5nX3ZlY3Rv
cjsKLX07Ci0KLVBBU19BUEkgcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogcGFzX2JpdGZp
dF9nbG9iYWxfc2l6ZV9jbGFzc19jcmVhdGUoCi0gICAgdW5zaWduZWQgc2l6ZSwKLSAgICBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQpOwotCi1QQVNfQVBJIHBh
c19iaXRmaXRfc2l6ZV9jbGFzcyoKLXBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Nfc2VsZWN0
X2Zvcl9tYWdhemluZShwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBzaXplX2NsYXNzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19tYWdh
emluZSogbWFnYXppbmUpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0JJ
VEZJVF9HTE9CQUxfU0laRV9DTEFTU19IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5jCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2hlYXAuYwko
d29ya2luZyBjb3B5KQpAQCAtMjksMTMgKzI5LDEzIEBACiAKICNpbmNsdWRlICJwYXNfYml0Zml0
X2hlYXAuaCIKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgotI2lu
Y2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCIKKyNpbmNsdWRlICJwYXNfYml0
Zml0X2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfc2l6ZV9jbGFzcy5oIgogI2lu
Y2x1ZGUgInBhc19iaXRmaXRfcGFnZS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRfdmlldy5oIgog
I2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFw
LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKIAogcGFzX2JpdGZpdF9o
ZWFwKiBwYXNfYml0Zml0X2hlYXBfY3JlYXRlKHBhc19zZWdyZWdhdGVkX2hlYXAqIHNlZ3JlZ2F0
ZWRfaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVh
cF9jb25maWcqIGhlYXBfY29uZmlnKQpAQCAtNTAsNyArNTAsNyBAQCBwYXNfYml0Zml0X2hlYXAq
IHBhc19iaXRmaXRfaGVhcF9jcmVhdGUoCiAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7
CiAKICAgICBmb3IgKFBBU19FQUNIX0JJVEZJVF9QQUdFX0NPTkZJR19WQVJJQU5UX0FTQ0VORElO
Ryh2YXJpYW50KSkgewotICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfY29uc3Ry
dWN0KAorICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9jb25zdHJ1Y3QoCiAgICAgICAgICAg
ICBwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeShyZXN1bHQsIHZhcmlhbnQpLAogICAgICAg
ICAgICAgcGFzX2hlYXBfY29uZmlnX2JpdGZpdF9wYWdlX2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQo
aGVhcF9jb25maWcsIHZhcmlhbnQpLAogICAgICAgICAgICAgc2VncmVnYXRlZF9oZWFwKTsKQEAg
LTYyLDYgKzYyLDggQEAgcGFzX2JpdGZpdF9oZWFwKiBwYXNfYml0Zml0X2hlYXBfY3JlYXRlKAog
cGFzX2JpdGZpdF92YXJpYW50X3NlbGVjdGlvbiBwYXNfYml0Zml0X2hlYXBfc2VsZWN0X3Zhcmlh
bnQoc2l6ZV90IHJlcXVlc3RlZF9vYmplY3Rfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29u
ZmlnKQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKICAg
ICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQgdmFyaWFudDsKICAgICBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX3ZhcmlhbnQgYmVzdF92YXJpYW50OwogICAgIHNpemVfdCBiZXN0X29iamVj
dF9zaXplOwpAQCAtODAsOSArODIsMjIgQEAgcGFzX2JpdGZpdF92YXJpYW50X3NlbGVjdGlvbiBw
YXNfYml0Zml0XwogICAgICAgICBpZiAoIXBhc19iaXRmaXRfcGFnZV9jb25maWdfaXNfZW5hYmxl
ZChwYWdlX2NvbmZpZykpCiAgICAgICAgICAgICBjb250aW51ZTsKIAorICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgIHBhc19sb2coIm1heCBvYmplY3Qgc2l6ZSA9ICV1XG4iLCBwYWdl
X2NvbmZpZy5iYXNlLm1heF9vYmplY3Rfc2l6ZSk7CisKKyAgICAgICAgUEFTX0FTU0VSVCgKKyAg
ICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UubWF4X29iamVjdF9zaXplCisgICAgICAgICAgICA8
ICgoc2l6ZV90KVBBU19CSVRGSVRfTUFYX0ZSRUVfVU5QUk9DRVNTRUQgPDwgcGFnZV9jb25maWcu
YmFzZS5taW5fYWxpZ25fc2hpZnQpKTsKKyAgICAgICAgUEFTX0FTU0VSVCgKKyAgICAgICAgICAg
IHBhZ2VfY29uZmlnLmJhc2UubWF4X29iamVjdF9zaXplCisgICAgICAgICAgICA8PSAoKHNpemVf
dClQQVNfQklURklUX01BWF9GUkVFX01BWF9WQUxJRCA8PCBwYWdlX2NvbmZpZy5iYXNlLm1pbl9h
bGlnbl9zaGlmdCkpOworICAgICAgICAgICAgCiAgICAgICAgIG9iamVjdF9zaXplID0gcGFzX3Jv
dW5kX3VwX3RvX3Bvd2VyX29mXzIoCiAgICAgICAgICAgICByZXF1ZXN0ZWRfb2JqZWN0X3NpemUs
IHBhc19wYWdlX2Jhc2VfY29uZmlnX21pbl9hbGlnbihwYWdlX2NvbmZpZy5iYXNlKSk7CiAKKyAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJvYmplY3Rfc2l6ZSA9ICV6
dVxuIiwgb2JqZWN0X3NpemUpOworCiAgICAgICAgIGlmIChvYmplY3Rfc2l6ZSA8PSBwYWdlX2Nv
bmZpZy5iYXNlLm1heF9vYmplY3Rfc2l6ZSkgewogICAgICAgICAgICAgUEFTX0FTU0VSVCgKICAg
ICAgICAgICAgICAgICBvYmplY3Rfc2l6ZQpAQCAtMTA3LDE1ICsxMjIsMTUgQEAgcGFzX2JpdGZp
dF92YXJpYW50X3NlbGVjdGlvbiBwYXNfYml0Zml0XwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MqCi1wYXNfYml0Zml0X2hlYXBfZW5zdXJlX2ds
b2JhbF9zaXplX2NsYXNzKHBhc19iaXRmaXRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCitwYXNfYml0Zml0X3NpemVfY2xhc3MqCitwYXNfYml0Zml0X2hlYXBf
ZW5zdXJlX3NpemVfY2xhc3MocGFzX2JpdGZpdF9oZWFwKiBoZWFwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
aGVhcF9jb25maWcqIGNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7CiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAotICAgIHBhc19iaXRmaXRfZ2xv
YmFsX3NpemVfY2xhc3MqIHJlc3VsdDsKKyAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHJlc3Vs
dDsKICAgICBwYXNfYml0Zml0X3ZhcmlhbnRfc2VsZWN0aW9uIGJlc3Q7CiAKICAgICBpZiAodmVy
Ym9zZSkgewpAQCAtMTMzLDEwICsxNDgsMTAgQEAgcGFzX2JpdGZpdF9oZWFwX2Vuc3VyZV9nbG9i
YWxfc2l6ZV9jbGFzcwogICAgICAgICAgICAgICAgICIoZGlyZWN0b3J5IHNpemUgPSAldSwgYmVz
dCBvYmplY3Qgc2l6ZSA9ICV1KS5cbiIsCiAgICAgICAgICAgICAgICAgaGVhcCwgZGlyZWN0b3J5
LCBkaXJlY3RvcnktPm9iamVjdF9zaXplLCBiZXN0Lm9iamVjdF9zaXplKTsKICAgICB9Ci0gICAg
cmVzdWx0ID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHJf
bG9hZCgmZGlyZWN0b3J5LT5iaXRmaXRfc2l6ZV9jbGFzcyk7CisgICAgcmVzdWx0ID0gcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9sb2FkKCZkaXJlY3RvcnktPmJpdGZp
dF9zaXplX2NsYXNzKTsKICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBwYXNfY29tcGFjdF9h
dG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQ7Ci0gICAgICAgIHBh
c19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogYml0Zml0X2RpcmVjdG9yeTsKKyAgICAgICAgcGFz
X2JpdGZpdF9kaXJlY3RvcnkqIGJpdGZpdF9kaXJlY3Rvcnk7CiAgICAgICAgIHBhc19iaXRmaXRf
c2l6ZV9jbGFzcyogc2l6ZV9jbGFzczsKIAogICAgICAgICBpZiAodmVyYm9zZSkKQEAgLTE0NSw3
ICsxNjAsNyBAQCBwYXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2JhbF9zaXplX2NsYXNzCiAgICAg
ICAgIGJpdGZpdF9kaXJlY3RvcnkgPSBwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeShoZWFw
LCBiZXN0LnZhcmlhbnQpOwogCiAgICAgICAgIGluc2VydGlvbl9wb2ludCA9IHBhc19iaXRmaXRf
c2l6ZV9jbGFzc19maW5kX2luc2VydGlvbl9wb2ludCgKLSAgICAgICAgICAgICZiaXRmaXRfZGly
ZWN0b3J5LT5iYXNlLCBiZXN0Lm9iamVjdF9zaXplKTsKKyAgICAgICAgICAgIGJpdGZpdF9kaXJl
Y3RvcnksIGJlc3Qub2JqZWN0X3NpemUpOwogICAgICAgICBpZiAoaW5zZXJ0aW9uX3BvaW50KQog
ICAgICAgICAgICAgc2l6ZV9jbGFzcyA9IHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9j
bGFzc19wdHJfbG9hZChpbnNlcnRpb25fcG9pbnQpOwogICAgICAgICBlbHNlCkBAIC0xNTQsMTMg
KzE2OSwxMyBAQCBwYXNfYml0Zml0X2hlYXBfZW5zdXJlX2dsb2JhbF9zaXplX2NsYXNzCiAgICAg
ICAgIGlmIChzaXplX2NsYXNzICYmIHNpemVfY2xhc3MtPnNpemUgPT0gYmVzdC5vYmplY3Rfc2l6
ZSkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAgcGFzX2xvZygi
QWN0dWFsbHkgaXQgZG9lcyFcbiIpOwotICAgICAgICAgICAgcmVzdWx0ID0gKHBhc19iaXRmaXRf
Z2xvYmFsX3NpemVfY2xhc3MqKXNpemVfY2xhc3M7CisgICAgICAgICAgICByZXN1bHQgPSAocGFz
X2JpdGZpdF9zaXplX2NsYXNzKilzaXplX2NsYXNzOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgcmVzdWx0ID0gcGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19jcmVhdGUoCisgICAg
ICAgICAgICByZXN1bHQgPSBwYXNfYml0Zml0X3NpemVfY2xhc3NfY3JlYXRlKAogICAgICAgICAg
ICAgICAgIGJlc3Qub2JqZWN0X3NpemUsIGJpdGZpdF9kaXJlY3RvcnksIGluc2VydGlvbl9wb2lu
dCk7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyX3N0b3JlKAorICAgICAgICBwYXNfY29tcGFjdF9hdG9t
aWNfYml0Zml0X3NpemVfY2xhc3NfcHRyX3N0b3JlKAogICAgICAgICAgICAgJmRpcmVjdG9yeS0+
Yml0Zml0X3NpemVfY2xhc3MsIHJlc3VsdCk7CiAgICAgfQogICAgIHBhc19oZWFwX2xvY2tfdW5s
b2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CkBAIC0xNzgsOCArMTkzLDcg
QEAgcGFzX2hlYXBfc3VtbWFyeSBwYXNfYml0Zml0X2hlYXBfY29tcHV0ZQogICAgIGZvciAoUEFT
X0VBQ0hfQklURklUX1BBR0VfQ09ORklHX1ZBUklBTlRfQVNDRU5ESU5HKHZhcmlhbnQpKSB7CiAg
ICAgICAgIHJlc3VsdCA9IHBhc19oZWFwX3N1bW1hcnlfYWRkKAogICAgICAgICAgICAgcmVzdWx0
LAotICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5KAotICAg
ICAgICAgICAgICAgICZwYXNfYml0Zml0X2hlYXBfZ2V0X2RpcmVjdG9yeShoZWFwLCB2YXJpYW50
KS0+YmFzZSkpOworICAgICAgICAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfY29tcHV0ZV9zdW1t
YXJ5KHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KGhlYXAsIHZhcmlhbnQpKSk7CiAgICAg
fQogCiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTIxNywxNSArMjMxLDE1IEBAIGJvb2wgcGFzX2Jp
dGZpdF9oZWFwX2Zvcl9lYWNoX2xpdmVfb2JqZWMKICAgICBkYXRhLmFyZyA9IGFyZzsKIAogICAg
IGZvciAoUEFTX0VBQ0hfQklURklUX1BBR0VfQ09ORklHX1ZBUklBTlRfQVNDRU5ESU5HKHZhcmlh
bnQpKSB7Ci0gICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5Owor
ICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgICAgICBzaXplX3Qg
aW5kZXg7CiAKICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2JpdGZpdF9oZWFwX2dldF9kaXJlY3Rv
cnkoaGVhcCwgdmFyaWFudCk7CiAKLSAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFz
X2JpdGZpdF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5LT5iYXNlKTsgKytpbmRleCkgeworICAg
ICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfYml0Zml0X2RpcmVjdG9yeV9zaXplKGRp
cmVjdG9yeSk7ICsraW5kZXgpIHsKICAgICAgICAgICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsK
IAotICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3KCZkaXJl
Y3RvcnktPmJhc2UsIGluZGV4KTsKKyAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X2RpcmVj
dG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsKICAgICAgICAgICAgIGlmICghdmlldykK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9oZWFwLmgJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfaGVhcC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiwyOCArMjYsMjggQEAKICNpZm5kZWYgUEFTX0JJVEZJVF9IRUFQ
X0gKICNkZWZpbmUgUEFTX0JJVEZJVF9IRUFQX0gKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xv
YmFsX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5j
bHVkZSAicGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50LmgiCiAKIFBBU19CRUdJTl9FWFRF
Uk5fQzsKIAogc3RydWN0IHBhc19iaXRmaXRfaGVhcDsKIHN0cnVjdCBwYXNfaGVhcF9jb25maWc7
Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXA7
CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2hlYXAgcGFzX2JpdGZpdF9oZWFwOwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX2hlYXBfY29uZmlnIHBhc19oZWFwX2NvbmZpZzsKLXR5cGVkZWYgc3RydWN0
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIAogc3RydWN0IFBBU19BTElH
TkVEKHNpemVvZihwYXNfdmVyc2lvbmVkX2ZpZWxkKSkgcGFzX2JpdGZpdF9oZWFwIHsKLSAgICBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkgZGlyZWN0b3JpZXNbUEFTX05VTV9CSVRGSVRfUEFH
RV9DT05GSUdfVkFSSUFOVFNdOworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5IGRpcmVjdG9yaWVz
W1BBU19OVU1fQklURklUX1BBR0VfQ09ORklHX1ZBUklBTlRTXTsKIH07CiAKIFBBU19BUEkgcGFz
X2JpdGZpdF9oZWFwKiBwYXNfYml0Zml0X2hlYXBfY3JlYXRlKHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfaGVhcF9jb25maWcqIGhlYXBfY29uZmlnKTsKIAotc3RhdGljIGlubGluZSBwYXNfYml0Zml0
X2dsb2JhbF9kaXJlY3RvcnkqIHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KAorc3RhdGlj
IGlubGluZSBwYXNfYml0Zml0X2RpcmVjdG9yeSogcGFzX2JpdGZpdF9oZWFwX2dldF9kaXJlY3Rv
cnkoCiAgICAgcGFzX2JpdGZpdF9oZWFwKiBoZWFwLAogICAgIHBhc19iaXRmaXRfcGFnZV9jb25m
aWdfdmFyaWFudCB2YXJpYW50KQogewpAQCAtNjMsOSArNjMsOSBAQCB0eXBlZGVmIHN0cnVjdCB7
CiBQQVNfQVBJIHBhc19iaXRmaXRfdmFyaWFudF9zZWxlY3Rpb24KIHBhc19iaXRmaXRfaGVhcF9z
ZWxlY3RfdmFyaWFudChzaXplX3Qgb2JqZWN0X3NpemUsIHBhc19oZWFwX2NvbmZpZyogY29uZmln
KTsKIAotUEFTX0FQSSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKgotcGFzX2JpdGZpdF9o
ZWFwX2Vuc3VyZV9nbG9iYWxfc2l6ZV9jbGFzcyhwYXNfYml0Zml0X2hlYXAqIGhlYXAsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorUEFTX0FQSSBwYXNfYml0Zml0X3NpemVfY2xh
c3MqCitwYXNfYml0Zml0X2hlYXBfZW5zdXJlX3NpemVfY2xhc3MocGFzX2JpdGZpdF9oZWFwKiBo
ZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19o
b2xkX21vZGUpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X3BhZ2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X3BhZ2UuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlLmMJKHdvcmtpbmcgY29weSkKQEAg
LTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZS5oIgogCi0jaW5jbHVk
ZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9k
aXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcuaCIKICNpbmNsdWRlICJwYXNf
ZXBvY2guaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCkBAIC0xMjUsOSArMTI1LDkgQEAgdm9pZCBw
YXNfYml0Zml0X3BhZ2VfY29uc3RydWN0KHBhc19iaXRmaQogcGFzX2JpdGZpdF9wYWdlX2NvbmZp
ZyogcGFzX2JpdGZpdF9wYWdlX2dldF9jb25maWcocGFzX2JpdGZpdF9wYWdlKiBwYWdlKQogewog
ICAgIHJldHVybiBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZygKLSAgICAg
ICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
CisgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
CiAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9sb2FkX25v
bl9udWxsKAotICAgICAgICAgICAgICAgICZwYWdlLT5vd25lciktPmdsb2JhbF9kaXJlY3Rvcnkp
LT5iYXNlLmNvbmZpZ19raW5kKTsKKyAgICAgICAgICAgICAgICAmcGFnZS0+b3duZXIpLT5kaXJl
Y3RvcnkpLT5jb25maWdfa2luZCk7CiB9CiAKIHZvaWQgcGFzX2JpdGZpdF9wYWdlX2xvZ19iaXRz
KApAQCAtMjAxLDggKzIwMSw4IEBAIGJvb2wgcGFzX2JpdGZpdF9wYWdlX2Zvcl9lYWNoX2xpdmVf
b2JqZWMKIAogICAgIHZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3ZpZXdfcHRyX2xv
YWQoJnBhZ2UtPm93bmVyKTsKICAgICBjb25maWdfcHRyID0gcGFzX2JpdGZpdF9wYWdlX2NvbmZp
Z19raW5kX2dldF9jb25maWcoCi0gICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnZpZXctPmdsb2JhbF9kaXJl
Y3RvcnkpLT5iYXNlLmNvbmZpZ19raW5kKTsKKyAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgICAgICZ2aWV3LT5kaXJlY3Rvcnkp
LT5jb25maWdfa2luZCk7CiAgICAgY29uZmlnID0gKmNvbmZpZ19wdHI7CiAKICAgICBib3VuZGFy
eSA9IHBhc19iaXRmaXRfcGFnZV9ib3VuZGFyeShwYWdlLCBjb25maWcpOwpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFn
ZV9jb25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaWZuZGVmIFBBU19CSVRGSVRfUEFHRV9DT05GSUdfSAogI2RlZmluZSBQQVNf
QklURklUX1BBR0VfQ09ORklHX0gKIAorI2luY2x1ZGUgInBhc19iaXRmaXRfbWF4X2ZyZWUuaCIK
ICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQuaCIKICNpbmNsdWRlICJwYXNf
Yml0Zml0X3BhZ2VfY29uZmlnX3ZhcmlhbnQuaCIKICNpbmNsdWRlICJwYXNfYml0dmVjdG9yLmgi
CkBAIC01OSw2ICs2MCwxMCBAQCB0eXBlZGVmIHNpemVfdCAoKnBhc19iaXRmaXRfcGFnZV9jb25m
aWdfCiB0eXBlZGVmIHZvaWQgKCpwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3NwZWNpYWxpemVkX3Bh
Z2Vfc2hyaW5rX3dpdGhfcGFnZSkoCiAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlLCB1aW50cHRy
X3QgYmVnaW4sIHNpemVfdCBuZXdfc2l6ZSk7CiAKKyNkZWZpbmUgUEFTX01BWF9CSVRGSVRfT0JK
RUNUX1NJWkUocGF5bG9hZF9zaXplLCBtaW5fYWxpZ25fc2hpZnQpIFwKKyAgICBQQVNfTUlOX0NP
TlNUKFBBU19NQVhfT0JKRUNUX1NJWkUoKHBheWxvYWRfc2l6ZSkpLCBcCisgICAgICAgICAgICAg
ICAgICBQQVNfQklURklUX01BWF9GUkVFX01BWF9WQUxJRCAqICgxdSA8PCAobWluX2FsaWduX3No
aWZ0KSkpCisKIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIHsKICAgICBwYXNfcGFnZV9i
YXNlX2NvbmZpZyBiYXNlOwogCkBAIC0xNjYsMTIgKzE3MSw2IEBAIHBhc19iaXRmaXRfcGFnZV9j
b25maWdfYnl0ZV9vZmZzZXRfZm9yX28KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLmJhc2UubWluX2FsaWduX3NoaWZ0
KTsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wKLXBhc19iaXRmaXRfcGFnZV9j
b25maWdfdXNlc19zdWJwYWdlcyhwYXNfYml0Zml0X3BhZ2VfY29uZmlnIGNvbmZpZykKLXsKLSAg
ICByZXR1cm4gY29uZmlnLmJhc2UucGFnZV9zaXplIDwgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVu
dCgpOwotfQotCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0JJVEZJVF9QQUdF
X0NPTkZJR19IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X3BhZ2VfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyMywxMyArMzIzLDEzIEBAIHN0YXRpYyBQQVNfQUxX
QVlTX0lOTElORSBwYXNfYml0Zml0X2FsbG8KICAgICAgICAgICAgIHVpbnRwdHJfdCBlbmRfYml0
X2luZGV4OwogICAgICAgICAgICAgdWludHB0cl90IGZpeGVkX3N0YXJ0X2JpdF9pbmRleDsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgc3RhcnRfYml0X2luZGV4ID0gX19idWlsdGluX2N0emxs
KHNoaWZ0ZWRfZnJlZV93b3JkKTsKKyAgICAgICAgICAgIHN0YXJ0X2JpdF9pbmRleCA9ICh1aW50
cHRyX3QpX19idWlsdGluX2N0emxsKHNoaWZ0ZWRfZnJlZV93b3JkKTsKICAgICAgICAgICAgIGZp
eGVkX3N0YXJ0X2JpdF9pbmRleCA9IHN0YXJ0X2JpdF9pbmRleCArIG51bV9sb3N0X2JpdHM7CiAK
ICAgICAgICAgICAgIHJlbWFpbmluZ193b3JkID0gfihzaGlmdGVkX2ZyZWVfd29yZCA+PiBzdGFy
dF9iaXRfaW5kZXgpOwogCiAgICAgICAgICAgICBpZiAocmVtYWluaW5nX3dvcmQpCi0gICAgICAg
ICAgICAgICAgbnVtX2F2YWlsYWJsZV9iaXRzID0gX19idWlsdGluX2N0emxsKHJlbWFpbmluZ193
b3JkKTsKKyAgICAgICAgICAgICAgICBudW1fYXZhaWxhYmxlX2JpdHMgPSAodWludHB0cl90KV9f
YnVpbHRpbl9jdHpsbChyZW1haW5pbmdfd29yZCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAg
ICAgICAgICAgbnVtX2F2YWlsYWJsZV9iaXRzID0gUEFTX0JJVFZFQ1RPUl9CSVRTX1BFUl9XT1JE
NjQ7CiAKQEAgLTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Jp
dGZpdF9hbGxvCiAgICAgICAgICAgICAgICAgICAgIG90aGVyX2FsbG9jX3dvcmQgPSB+b3RoZXJf
ZnJlZV93b3JkOwogCiAgICAgICAgICAgICAgICAgICAgIGlmIChvdGhlcl9hbGxvY193b3JkKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBudW1fYXZhaWxhYmxlX2xlYWRpbmdfYml0cyA9IF9f
YnVpbHRpbl9jdHpsbChvdGhlcl9hbGxvY193b3JkKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IG51bV9hdmFpbGFibGVfbGVhZGluZ19iaXRzID0gKHVpbnQ2NF90KV9fYnVpbHRpbl9jdHpsbChv
dGhlcl9hbGxvY193b3JkKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1fYXZhaWxh
YmxlX2xlYWRpbmdfYml0cyA8IG51bV9yZW1haW5pbmdfbmVlZGVkX2JpdHMgfHwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAhcGFzX2JpdGZpdF9wYWdlX2FsbG9jYXRpb25fc2F0aXNmaWVz
X2FsaWdubWVudCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJndvcmRfaW5kZXgs
CkBAIC01OTksNyArNTk5LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVpbnRwdHJfdCBw
YXNfYgogICAgICAgICAKICAgICBjYXNlIHBhc19iaXRmaXRfcGFnZV9kZWFsbG9jYXRlX3dpdGhf
cGFnZV9pbXBsX2RlYWxsb2NhdGVfbW9kZToKICAgICBjYXNlIHBhc19iaXRmaXRfcGFnZV9kZWFs
bG9jYXRlX3dpdGhfcGFnZV9pbXBsX3Nocmlua19tb2RlOgotICAgICAgICBwYXNfYml0Zml0X3Zp
ZXdfbG9ja19vd25lcnNoaXBfbG9jayhvd25lcik7CisgICAgICAgIHBhc19sb2NrX2xvY2soJm93
bmVyLT5vd25lcnNoaXBfbG9jayk7CiAgICAgICAgIAogICAgICAgICBwYXNfYml0Zml0X3BhZ2Vf
dGVzdGluZ192ZXJpZnkocGFnZSk7CiAKQEAgLTYzOSw3ICs2MzksNyBAQCBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgdWludHB0cl90IHBhc19iCiAgICAgaWYgKHNoaWZ0ZWRfb2JqZWN0X2VuZF93
b3JkKSB7CiAgICAgICAgIHVpbnQ2NF90IG9iamVjdF9lbmRfYml0X2luZGV4OwogCi0gICAgICAg
IG9iamVjdF9lbmRfYml0X2luZGV4ID0gX19idWlsdGluX2N0emxsKHNoaWZ0ZWRfb2JqZWN0X2Vu
ZF93b3JkKTsKKyAgICAgICAgb2JqZWN0X2VuZF9iaXRfaW5kZXggPSAodWludDY0X3QpX19idWls
dGluX2N0emxsKHNoaWZ0ZWRfb2JqZWN0X2VuZF93b3JkKTsKICAgICAgICAgbnVtX2JpdHMgPSBv
YmplY3RfZW5kX2JpdF9pbmRleCArIDE7CiAKICAgICAgICAgaWYgKHZlcmJvc2UpIHsKQEAgLTY5
NSw3ICs2OTUsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdWludHB0cl90IHBhc19iCiAg
ICAgICAgICAgICAgICAgdWludDY0X3Qgb2JqZWN0X2VuZF9iaXRfaW5kZXg7CiAgICAgICAgICAg
ICAgICAgdWludHB0cl90IGludGVybWVkaWF0ZV93b3JkX2luZGV4OwogCi0gICAgICAgICAgICAg
ICAgb2JqZWN0X2VuZF9iaXRfaW5kZXggPSBfX2J1aWx0aW5fY3R6bGwob2JqZWN0X2VuZF93b3Jk
KTsKKyAgICAgICAgICAgICAgICBvYmplY3RfZW5kX2JpdF9pbmRleCA9ICh1aW50NjRfdClfX2J1
aWx0aW5fY3R6bGwob2JqZWN0X2VuZF93b3JkKTsKIAogICAgICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkZvdW5kIGVuZCBiaXQgd29yZCBh
dCAlbHUsIGJpdCBpbmRleCAlbGx1XG4iLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9zaXplX2NsYXNzLmMJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
c2l6ZV9jbGFzcy5jCSh3b3JraW5nIGNvcHkpCkBAIC03NSw4ICs3NSwxMCBAQCB2b2lkIHBhc19i
aXRmaXRfc2l6ZV9jbGFzc19jb25zdHJ1Y3QocGFzCiAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF9zaXplX2NsYXNzX3B0cl9zdG9yZShpbnNlcnRpb25fcG9pbnQsIHNpemVfY2xhc3MpOwog
fQogCi1wYXNfYml0Zml0X3NpemVfY2xhc3MqIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19jcmVhdGUo
dW5zaWduZWQgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5KQorcGFzX2JpdGZpdF9z
aXplX2NsYXNzKiBwYXNfYml0Zml0X3NpemVfY2xhc3NfY3JlYXRlKAorICAgIHVuc2lnbmVkIHNp
emUsCisgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfY29tcGFj
dF9hdG9taWNfYml0Zml0X3NpemVfY2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQpCiB7CiAgICAg
cGFzX2JpdGZpdF9zaXplX2NsYXNzKiByZXN1bHQ7CiAKQEAgLTg2LDE2ICs4OCwxMyBAQCBwYXNf
Yml0Zml0X3NpemVfY2xhc3MqIHBhc19iaXRmaXRfc2l6ZV9jCiAgICAgICAgICJwYXNfYml0Zml0
X3NpemVfY2xhc3MiLAogICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwogCi0gICAgcGFz
X2JpdGZpdF9zaXplX2NsYXNzX2NvbnN0cnVjdCgKLSAgICAgICAgcmVzdWx0LCBzaXplLCBkaXJl
Y3RvcnksCi0gICAgICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzc19maW5kX2luc2VydGlvbl9wb2lu
dChkaXJlY3RvcnksIHNpemUpKTsKKyAgICBwYXNfYml0Zml0X3NpemVfY2xhc3NfY29uc3RydWN0
KHJlc3VsdCwgc2l6ZSwgZGlyZWN0b3J5LCBpbnNlcnRpb25fcG9pbnQpOwogCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAogcGFzX2JpdGZpdF92aWV3KgogcGFzX2JpdGZpdF9zaXplX2NsYXNzX2dl
dF9maXJzdF9mcmVlX3ZpZXcocGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxf
c2l6ZV9jbGFzcyogZ2xvYmFsX3NpemVfY2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykKIHsK
ICAgICBwYXNfYml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5OwpAQCAtMTE0LDcgKzExMyw3IEBA
IHBhc19iaXRmaXRfc2l6ZV9jbGFzc19nZXRfZmlyc3RfZnJlZV92aWUKICAgICBQQVNfQVNTRVJU
KCh1bnNpZ25lZClzdGFydF9pbmRleCA9PSBzdGFydF9pbmRleCk7CiAgICAgCiAgICAgdmlld19h
bmRfaW5kZXggPSBwYXNfYml0Zml0X2RpcmVjdG9yeV9nZXRfZmlyc3RfZnJlZV92aWV3KAotICAg
ICAgICBkaXJlY3RvcnksIGdsb2JhbF9zaXplX2NsYXNzLCAodW5zaWduZWQpc3RhcnRfaW5kZXgs
IHNpemVfY2xhc3MtPnNpemUsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgZGlyZWN0b3J5LCAodW5z
aWduZWQpc3RhcnRfaW5kZXgsIHNpemVfY2xhc3MtPnNpemUsIHBhZ2VfY29uZmlnKTsKIAogICAg
IFBBU19BU1NFUlQodmlld19hbmRfaW5kZXgudmlldyk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfc2l6ZV9jbGFzcy5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfYml0Zml0X3NpemVfY2xhc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDExIEBA
CiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3M7CitzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogc3RydWN0IHBhc19iaXRmaXRf
cGFnZV9jb25maWc7CiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogc3RydWN0IHBhc19i
aXRmaXRfdmlldzsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3Mg
cGFzX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzczsKK3R5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRf
c2l6ZV9jbGFzcyBwYXNfYml0Zml0X3NpemVfY2xhc3M7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0
Zml0X3BhZ2VfY29uZmlnIHBhc19iaXRmaXRfcGFnZV9jb25maWc7CiB0eXBlZGVmIHN0cnVjdCBw
YXNfYml0Zml0X3NpemVfY2xhc3MgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwogdHlwZWRlZiBzdHJ1
Y3QgcGFzX2JpdGZpdF92aWV3IHBhc19iaXRmaXRfdmlldzsKQEAgLTU5LDEyICs1OSwxMyBAQCBQ
QVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9zaXplX2NsYXNzX2NvbnN0CiAgICAgcGFzX2JpdGZpdF9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3NpemVf
Y2xhc3NfcHRyKiBpbnNlcnRpb25fcG9pbnQpOwogCi1QQVNfQVBJIHBhc19iaXRmaXRfc2l6ZV9j
bGFzcyogcGFzX2JpdGZpdF9zaXplX2NsYXNzX2NyZWF0ZSh1bnNpZ25lZCBzaXplLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2JpdGZpdF9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CitQQVNfQVBJIHBhc19iaXRmaXRfc2l6ZV9j
bGFzcyogcGFzX2JpdGZpdF9zaXplX2NsYXNzX2NyZWF0ZSgKKyAgICB1bnNpZ25lZCBzaXplLAor
ICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX2NvbXBhY3RfYXRv
bWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ciogaW5zZXJ0aW9uX3BvaW50KTsKIAogUEFTX0FQSSBw
YXNfYml0Zml0X3ZpZXcqCiBwYXNfYml0Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2ZyZWVfdmll
dyhwYXNfYml0Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3MsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBnbG9i
YWxfc2l6ZV9jbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19iaXRmaXRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKIAogUEFTX0VORF9FWFRFUk5f
QzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmll
dy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfdmlldy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMjksMTMgKzI5
LDE0IEBACiAKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcuaCIKIAorI2luY2x1ZGUgInBhc19i
aXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlLmgiCiAjaW5jbHVk
ZSAicGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNp
bmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKIAotcGFzX2JpdGZpdF92aWV3KiBwYXNf
Yml0Zml0X3ZpZXdfY3JlYXRlKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4
X2luX2dsb2JhbCkKK3Bhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpdF92aWV3X2NyZWF0ZShwYXNf
Yml0Zml0X2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4KQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKICAgICAKQEAgLTQ4LDQyICs0OSwyNCBAQCBwYXNfYml0Zml0X3ZpZXcq
IHBhc19iaXRmaXRfdmlld19jcmVhdGUoCiAKICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICBw
YXNfbG9nKCJDcmVhdGluZyB2aWV3ICVwIHdpdGggY29uZmlnICVzXG4iLAotICAgICAgICAgICAg
ICAgIHJlc3VsdCwgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoZGlyZWN0
b3J5LT5iYXNlLmNvbmZpZ19raW5kKSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LCBwYXNfYml0
Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhkaXJlY3RvcnktPmNvbmZpZ19raW5kKSk7
CiAgICAgfQogCiAgICAgcmVzdWx0LT5wYWdlX2JvdW5kYXJ5ID0gTlVMTDsKLSAgICBwYXNfY29t
cGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5i
aWFzaW5nX2RpcmVjdG9yeSwgTlVMTCk7Ci0gICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9k
aXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmdsb2JhbF9kaXJlY3RvcnksIGRpcmVjdG9yeSk7
CisgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGly
ZWN0b3J5LCBkaXJlY3RvcnkpOwogICAgIHJlc3VsdC0+aXNfb3duZWQgPSBmYWxzZTsKLSAgICBy
ZXN1bHQtPmluZGV4X2luX2dsb2JhbCA9IGluZGV4X2luX2dsb2JhbDsKLSAgICByZXN1bHQtPmlu
ZGV4X2luX2JpYXNpbmcgPSAwOworICAgIHJlc3VsdC0+aW5kZXggPSBpbmRleDsKICAgICBwYXNf
bG9ja19jb25zdHJ1Y3QoJnJlc3VsdC0+b3duZXJzaGlwX2xvY2spOwotCi0gICAgaWYgKHBhc19i
aXRmaXRfcGFnZV9jb25maWdfdXNlc19zdWJwYWdlcygKLSAgICAgICAgICAgICpwYXNfYml0Zml0
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UuY29uZmlnX2tpbmQp
KSkKLSAgICAgICAgcGFzX2xvY2tfY29uc3RydWN0X2Rpc2FibGVkKCZyZXN1bHQtPmNvbW1pdF9s
b2NrKTsKLSAgICBlbHNlCi0gICAgICAgIHBhc19sb2NrX2NvbnN0cnVjdCgmcmVzdWx0LT5jb21t
aXRfbG9jayk7CisgICAgcGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPmNvbW1pdF9sb2NrKTsK
IAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3du
ZXJzaGlwX2xvY2tfc2xvdyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCi17Ci0gICAgcGFzX2NvbXBh
Y3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWQoCi0gICAgICAgICZ2aWV3LT5nbG9i
YWxfZGlyZWN0b3J5KS0+Y29udGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24gPQotICAgICAg
ICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfY2FuX2V4cGxvZGU7Ci0gICAgcGFzX2xvY2tf
bG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2spOwotfQotCiB2b2lkIHBhc19iaXRmaXRfdmlld19u
b3RlX25vbmVtcHRpbmVzcyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCiB7Ci0gICAgcGFzX2JpdGZp
dF9kaXJlY3RvcnlfYW5kX2luZGV4IGRpcmVjdG9yeV9hbmRfaW5kZXg7Ci0gICAgCi0gICAgZGly
ZWN0b3J5X2FuZF9pbmRleCA9IHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9hbmRf
aW5kZXgodmlldyk7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2JlY29t
ZV91bnByb2Nlc3NlZF91bmNoZWNrZWQoCi0gICAgICAgIGRpcmVjdG9yeV9hbmRfaW5kZXguZGly
ZWN0b3J5LAotICAgICAgICBkaXJlY3RvcnlfYW5kX2luZGV4LmluZGV4LAorICAgICAgICBwYXNf
Y29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3Rv
cnkpLAorICAgICAgICB2aWV3LT5pbmRleCwKICAgICAgICAgImJlY29tZSB1bnByb2Nlc3NlZCBv
biBub3RlX25vbmVtcHRpbmVzcyIpOwogfQogCkBAIC05MSwyMCArNzQsMTcgQEAgc3RhdGljIHZv
aWQgZGlkX2JlY29tZV9lbXB0eV9mb3JfYml0cyhwYQogewogICAgIHBhZ2UtPnVzZV9lcG9jaCA9
IHBhc19nZXRfZXBvY2goKTsKIAotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV92aWV3
X2RpZF9iZWNvbWVfZW1wdHkoCi0gICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KSwgdmlldyk7
CisgICAgcGFzX2JpdGZpdF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5KAorICAgICAg
ICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5k
aXJlY3RvcnkpLCB2aWV3KTsKIH0KIAogdm9pZCBwYXNfYml0Zml0X3ZpZXdfbm90ZV9mdWxsX2Vt
cHRpbmVzcyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcsIHBhc19iaXRmaXRfcGFnZSogcGFnZSkKIHsK
LSAgICBwYXNfYml0Zml0X2RpcmVjdG9yeV9hbmRfaW5kZXggZGlyZWN0b3J5X2FuZF9pbmRleDsK
LQogICAgIGRpZF9iZWNvbWVfZW1wdHlfZm9yX2JpdHModmlldywgcGFnZSk7CiAgICAgCi0gICAg
ZGlyZWN0b3J5X2FuZF9pbmRleCA9IHBhc19iaXRmaXRfdmlld19jdXJyZW50X2RpcmVjdG9yeV9h
bmRfaW5kZXgodmlldyk7CiAgICAgcGFzX2JpdGZpdF9kaXJlY3RvcnlfbWF4X2ZyZWVfZGlkX2Jl
Y29tZV9lbXB0eSgKLSAgICAgICAgZGlyZWN0b3J5X2FuZF9pbmRleC5kaXJlY3RvcnksCi0gICAg
ICAgIGRpcmVjdG9yeV9hbmRfaW5kZXguaW5kZXgsCisgICAgICAgIHBhc19jb21wYWN0X2JpdGZp
dF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSksCisgICAgICAg
IHZpZXctPmluZGV4LAogICAgICAgICAiYmVjb21lIGVtcHR5IG9uIG5vdGVfZW1wdGluZXNzIik7
CiB9CiAKQEAgLTExNSwxMSArOTUsOSBAQCB2b2lkIHBhc19iaXRmaXRfdmlld19ub3RlX3BhcnRp
YWxfZW1wdGluCiAKIHZvaWQgcGFzX2JpdGZpdF92aWV3X25vdGVfbWF4X2ZyZWUocGFzX2JpdGZp
dF92aWV3KiB2aWV3KQogewotICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleCBkaXJl
Y3RvcnlfYW5kX2luZGV4OwotICAgIGRpcmVjdG9yeV9hbmRfaW5kZXggPSBwYXNfYml0Zml0X3Zp
ZXdfY3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZpZXcpOwogICAgIHBhc19iaXRmaXRfZGly
ZWN0b3J5X21heF9mcmVlX2RpZF9iZWNvbWVfdW5wcm9jZXNzZWQoCi0gICAgICAgIGRpcmVjdG9y
eV9hbmRfaW5kZXguZGlyZWN0b3J5LAotICAgICAgICBkaXJlY3RvcnlfYW5kX2luZGV4LmluZGV4
LAorICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxs
KCZ2aWV3LT5kaXJlY3RvcnkpLAorICAgICAgICB2aWV3LT5pbmRleCwKICAgICAgICAgImJlY29t
ZSB1bnByb2Nlc3NlZCBvbiBub3RlX21heF9mcmVlIik7CiB9CiAKQEAgLTEzNyw4ICsxMTUsOCBA
QCBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnkoCiAgICAgc2l6ZV90IG9m
ZnNldDsKIAogICAgIGNvbmZpZ19wdHIgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0
X2NvbmZpZygKLSAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRy
X2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSktPmJh
c2UuY29uZmlnX2tpbmQpOworICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAgJnZpZXctPmRpcmVjdG9yeSktPmNvbmZpZ19r
aW5kKTsKICAgICBjb25maWcgPSAqY29uZmlnX3B0cjsKIAogICAgIHJlc3VsdCA9IHBhc19oZWFw
X3N1bW1hcnlfY3JlYXRlX2VtcHR5KCk7CkBAIC0yMjksOCArMjA3LDcgQEAgc3RhdGljIGJvb2wg
Zm9yX2VhY2hfbGl2ZV9vYmplY3QoCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgY29uZmln
X3B0ciA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKAotICAgICAgICBw
YXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAg
ICAgICAgICAgICZ2aWV3LT5nbG9iYWxfZGlyZWN0b3J5KS0+YmFzZS5jb25maWdfa2luZCk7Cisg
ICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZp
ZXctPmRpcmVjdG9yeSktPmNvbmZpZ19raW5kKTsKICAgICBjb25maWcgPSAqY29uZmlnX3B0cjsK
IAogICAgIGJvdW5kYXJ5ID0gdmlldy0+cGFnZV9ib3VuZGFyeTsKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlldy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlldy5oCShyZXZpc2lv
biAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0
X3ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNDIgKzI3LDMwIEBACiAjZGVmaW5lIFBBU19C
SVRGSVRfVklFV19ICiAKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgiCi0jaW5j
bHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCIK
LSNpbmNsdWRlICJwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHIuaCIKKyNp
bmNsdWRlICJwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0ci5oIgogI2luY2x1ZGUgInBh
c19oZWFwX3N1bW1hcnkuaCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgogCiBQQVNfQkVHSU5fRVhU
RVJOX0M7CiAKLXN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFz
X2JpdGZpdF9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlOwogc3RydWN0IHBhc19i
aXRmaXRfdmlldzsKLXR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSBw
YXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnk7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2Rp
cmVjdG9yeSBwYXNfYml0Zml0X2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRf
cGFnZSBwYXNfYml0Zml0X3BhZ2U7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3ZpZXcgcGFz
X2JpdGZpdF92aWV3OwogCiBzdHJ1Y3QgcGFzX2JpdGZpdF92aWV3IHsKICAgICB2b2lkKiBwYWdl
X2JvdW5kYXJ5OwotICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3Rv
cnlfcHRyIGJpYXNpbmdfZGlyZWN0b3J5OwotICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5X3B0ciBnbG9iYWxfZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0X2JpdGZpdF9k
aXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKICAgICBib29sIGlzX293bmVkOwotICAgIHVuc2lnbmVk
IGluZGV4X2luX2dsb2JhbDsKLSAgICB1bnNpZ25lZCBpbmRleF9pbl9iaWFzaW5nOworICAgIHVu
c2lnbmVkIGluZGV4OwogICAgIHBhc19sb2NrIG93bmVyc2hpcF9sb2NrOwogICAgIHBhc19sb2Nr
IGNvbW1pdF9sb2NrOwogfTsKIAotUEFTX0FQSSBwYXNfYml0Zml0X3ZpZXcqIHBhc19iaXRmaXRf
dmlld19jcmVhdGUocGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRl
eF9pbl9nbG9iYWwpOwotCi1QQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJz
aGlwX2xvY2tfc2xvdyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcpOwotCi1zdGF0aWMgaW5saW5lIHZv
aWQgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX2JpdGZpdF92aWV3KiB2
aWV3KQotewotICAgIGlmIChwYXNfbG9ja190cnlfbG9jaygmdmlldy0+b3duZXJzaGlwX2xvY2sp
KQotICAgICAgICByZXR1cm47Ci0gICAgcGFzX2JpdGZpdF92aWV3X2xvY2tfb3duZXJzaGlwX2xv
Y2tfc2xvdyh2aWV3KTsKLX0KK1BBU19BUEkgcGFzX2JpdGZpdF92aWV3KiBwYXNfYml0Zml0X3Zp
ZXdfY3JlYXRlKHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleCk7CiAKIFBB
U19BUEkgdm9pZCBwYXNfYml0Zml0X3ZpZXdfbm90ZV9ub25lbXB0aW5lc3MocGFzX2JpdGZpdF92
aWV3KiB2aWV3KTsKIFBBU19BUEkgdm9pZCBwYXNfYml0Zml0X3ZpZXdfbm90ZV9mdWxsX2VtcHRp
bmVzcyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcsIHBhc19iaXRmaXRfcGFnZSogcGFnZSk7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3ZpZXdfaW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfdmlld19pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfdmlld19pbmxpbmVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDM5ICsyNiwxMSBAQAogI2lmbmRlZiBQQVNfQklURklUX1ZJRVdfSU5MSU5FU19I
CiAjZGVmaW5lIFBBU19CSVRGSVRfVklFV19JTkxJTkVTX0gKIAotI2luY2x1ZGUgInBhc19iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2RpcmVjdG9yeV9h
bmRfaW5kZXguaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkuaCIKICNp
bmNsdWRlICJwYXNfYml0Zml0X3BhZ2UuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcuaCIK
IAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1zdGF0aWMgaW5saW5lIHBhc19iaXRmaXRfZGlyZWN0
b3J5X2FuZF9pbmRleAotcGFzX2JpdGZpdF92aWV3X2N1cnJlbnRfZGlyZWN0b3J5X2FuZF9pbmRl
eChwYXNfYml0Zml0X3ZpZXcqIHZpZXcpCi17Ci0gICAgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVj
dG9yeSogZGlyZWN0b3J5OwotICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19iaXRm
aXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWQoJnZpZXctPmJpYXNpbmdfZGlyZWN0b3J5KTsK
LSAgICBpZiAoZGlyZWN0b3J5KSB7Ci0gICAgICAgIHJldHVybiBwYXNfYml0Zml0X2RpcmVjdG9y
eV9hbmRfaW5kZXhfY3JlYXRlKAotICAgICAgICAgICAgJmRpcmVjdG9yeS0+YmFzZSwgdmlldy0+
aW5kZXhfaW5fYmlhc2luZywgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHBhc19iaXRmaXRfZGlyZWN0b3J5X2FuZF9pbmRleF9jcmVhdGUoCi0g
ICAgICAgICZwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25f
bnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSktPmJhc2UsCi0gICAgICAgIHZpZXctPmluZGV4
X2luX2dsb2JhbCwgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2tpbmQpOwotfQotCi1zdGF0
aWMgaW5saW5lIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBwYXNfYml0Zml0X3ZpZXdfY3VycmVudF9k
aXJlY3RvcnkocGFzX2JpdGZpdF92aWV3KiB2aWV3KQotewotICAgIHJldHVybiBwYXNfYml0Zml0
X3ZpZXdfY3VycmVudF9kaXJlY3RvcnlfYW5kX2luZGV4KHZpZXcpLmRpcmVjdG9yeTsKLX0KLQot
c3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfYml0Zml0X3ZpZXdfaW5kZXhfaW5fY3VycmVudChw
YXNfYml0Zml0X3ZpZXcqIHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19iaXRmaXRfdmlld19jdXJy
ZW50X2RpcmVjdG9yeV9hbmRfaW5kZXgodmlldykuaW5kZXg7Ci19Ci0KLQogc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIGJvb2wgcGFzX2JpdGZpdF92aWV3X2lzX2VtcHR5KHBhc19iaXRmaXRfdmll
dyogdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdHZlY3Rvci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXR2ZWN0b3IuaAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
dHZlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIFBBU19CRUdJTl9FWFRF
Uk5fQzsKICAgICgodWludDhfdCopYml0cylbLTFdIHdpbGwgc2VlIHRoYXQgYml0LiBUaGlzIHBy
ZXNlcnZlcyB0aGUgcHJvcGVydHkgdGhhdCB0aGUgYml0dmVjdG9yIGNhbiBiZQogICAgcmVpbnRl
cnByZXRlZCB1c2luZyBhbnkgd29yZCB3aWR0aC4gVGhlIGNvbXBpbGVyIHdpbGwgdXNlIHRoZSBo
ZWNrIG91dCBvZiB0aGlzIGNhcGFiaWxpdHk6IGl0CiAgICB3aWxsIGxvYWQgNjQtYml0IHdvcmRz
LiAqLwotI2RlZmluZSBQQVNfQkFDS1dBUkRfQklUVkVDVE9SX1dPUkRfSU5ERVgoYml0X2luZGV4
KSAoLTFsIC0gUEFTX0JJVFZFQ1RPUl9XT1JEX0lOREVYKGJpdF9pbmRleCkpCisjZGVmaW5lIFBB
U19CQUNLV0FSRF9CSVRWRUNUT1JfV09SRF9JTkRFWChiaXRfaW5kZXgpICgtMWx1IC0gUEFTX0JJ
VFZFQ1RPUl9XT1JEX0lOREVYKGJpdF9pbmRleCkpCiAjZGVmaW5lIFBBU19CQUNLV0FSRF9CSVRW
RUNUT1JfQklUX01BU0soYml0X2luZGV4KSAoMHg4MDAwMDAwMCA+PiAoKGJpdF9pbmRleCkgJiAz
MSkpCiAKIC8qIFRoaXMgY3JhenkgZnVuY3Rpb25hbGl0eSBpcyBmb3Igb3B0aW1pemVkIGFjY2Vz
c2VzIHRvIHRoZSBweGlfcHJlX2hlYWRlci4gKi8KQEAgLTE1OCw3ICsxNTgsNyBAQCBzdGF0aWMg
aW5saW5lIHBhc19mb3VuZF9iaXRfaW5kZXggcGFzX2JpCiAgICAgICAgIAogICAgICAgICBpZiAo
d29yZCkgewogICAgICAgICAgICAgcmV0dXJuIHBhc19mb3VuZF9iaXRfaW5kZXhfY3JlYXRlKAot
ICAgICAgICAgICAgICAgIFBBU19CSVRWRUNUT1JfQklUX0lOREVYKHdvcmRfaW5kZXgpICsgX19i
dWlsdGluX2N0eih3b3JkKSwKKyAgICAgICAgICAgICAgICBQQVNfQklUVkVDVE9SX0JJVF9JTkRF
WCh3b3JkX2luZGV4KSArIChzaXplX3QpX19idWlsdGluX2N0eih3b3JkKSwKICAgICAgICAgICAg
ICAgICB3b3JkX2luZGV4LAogICAgICAgICAgICAgICAgIHdvcmQpOwogICAgICAgICB9CkBAIC0x
OTQsNyArMTk0LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX2JpdHZlYwog
ICAgICAgICB3aGlsZSAod29yZCkgewogICAgICAgICAgICAgdW5zaWduZWQgaW5kZXhfb2Zmc2V0
OwogCi0gICAgICAgICAgICBpbmRleF9vZmZzZXQgPSBfX2J1aWx0aW5fY3R6KHdvcmQpOworICAg
ICAgICAgICAgaW5kZXhfb2Zmc2V0ID0gKHVuc2lnbmVkKV9fYnVpbHRpbl9jdHood29yZCk7CiAK
ICAgICAgICAgICAgIGlmICghY2FsbGJhY2soCiAgICAgICAgICAgICAgICAgICAgIHBhc19mb3Vu
ZF9iaXRfaW5kZXhfY3JlYXRlKGJhc2VfaW5kZXggKyBpbmRleF9vZmZzZXQsIHdvcmRfaW5kZXgs
IHdvcmQpLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jvb3Rz
dHJhcF9mcmVlX2hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsK
IAotI2RlZmluZSBQQVNfQk9PVFNUUkFQX0ZSRUVfTElTVF9NSU5JTVVNX1NJWkUgNAorI2RlZmlu
ZSBQQVNfQk9PVFNUUkFQX0ZSRUVfTElTVF9NSU5JTVVNX1NJWkUgNHUKIAogI2RlZmluZSBQQVNf
U0lNUExFX0ZSRUVfSEVBUF9OQU1FIHBhc19ib290c3RyYXBfZnJlZV9oZWFwCiAjZGVmaW5lIFBB
U19TSU1QTEVfRlJFRV9IRUFQX0lEKHN1ZmZpeCkgcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXAgIyMg
c3VmZml4CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYm9vdHN0
cmFwX2hlYXBfcGFnZV9wcm92aWRlci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19ib290c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmMJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19ib290
c3RyYXBfaGVhcF9wYWdlX3Byb3ZpZGVyLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsOSArMzUsMTMgQEAg
cGFzX2FsbG9jYXRpb25fcmVzdWx0IHBhc19ib290c3RyYXBfaGVhcAogICAgIHNpemVfdCBzaXpl
LAogICAgIHBhc19hbGlnbm1lbnQgYWxpZ25tZW50LAogICAgIGNvbnN0IGNoYXIqIG5hbWUsCisg
ICAgcGFzX2hlYXAqIGhlYXAsCisgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiog
dHJhbnNhY3Rpb24sCiAgICAgdm9pZCAqYXJnKQogewogICAgIFBBU19VTlVTRURfUEFSQU0oYXJn
KTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOworICAgIFBBU19VTlVTRURfUEFSQU0odHJh
bnNhY3Rpb24pOwogICAgIHJldHVybiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcF90cnlfYWxsb2Nh
dGVfd2l0aF9hbGlnbm1lbnQoCiAgICAgICAgIHNpemUsIGFsaWdubWVudCwgbmFtZSwgcGFzX2Rl
bGVnYXRlX2FsbG9jYXRpb24pOwogfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9w
cm92aWRlci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTM0LDYgKzM0LDggQEAgUEFTX0FQSSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcGFzX2Jvb3RzdAog
ICAgIHNpemVfdCBzaXplLAogICAgIHBhc19hbGlnbm1lbnQgYWxpZ25tZW50LAogICAgIGNvbnN0
IGNoYXIqIG5hbWUsCisgICAgcGFzX2hlYXAqIGhlYXAsCisgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sCiAgICAgdm9pZCAqYXJnKTsKIAogUEFTX0VORF9F
WFRFUk5fQzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb2Fs
aWduLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NvYWxpZ24uYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvYWxpZ24uYwkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBw
YXNfY29hbGlnbl9yZXN1bHQgcGFzX2NvYWxpZ25fb25lX3NpZGVkCiAgICAgUEFTX0FTU0VSVCgo
aW50cHRyX3QpcmlnaHRfc2l6ZSA+PSAwKTsKICAgICAKICAgICBvZmZzZXQgPSBiZWdpbl9sZWZ0
ICUgbGVmdF9zaXplOwotICAgIGdjZF9yZXN1bHQgPSBwYXNfZXh0ZW5kZWRfZ2NkKGxlZnRfc2l6
ZSwgcmlnaHRfc2l6ZSk7CisgICAgZ2NkX3Jlc3VsdCA9IHBhc19leHRlbmRlZF9nY2QoKGludDY0
X3QpbGVmdF9zaXplLCAoaW50NjRfdClyaWdodF9zaXplKTsKICAgICAKICAgICBQQVNfQVNTRVJU
KGdjZF9yZXN1bHQucmVzdWx0ID49IDApOwogICAgIApAQCAtNzksNyArNzksNyBAQCBwYXNfY29h
bGlnbl9yZXN1bHQgcGFzX2NvYWxpZ25fb25lX3NpZGVkCiAgICAgc3RlcCA9IG9mZnNldCAvICh1
aW50cHRyX3QpZ2NkX3Jlc3VsdC5yZXN1bHQ7CiAgICAgYm91bmRhcnkgPSByaWdodF9zaXplICog
KHVpbnRwdHJfdClmb3JtYWxfbW9kKAogICAgICAgICBnY2RfcmVzdWx0LnJpZ2h0X2Jlem91dF9j
b2VmZmljaWVudCAqIChpbnRwdHJfdClzdGVwLAotICAgICAgICBtdWx0aXBsZSAvIHJpZ2h0X3Np
emUpOworICAgICAgICAoaW50cHRyX3QpKG11bHRpcGxlIC8gcmlnaHRfc2l6ZSkpOwogICAgIFBB
U19BU1NFUlQoKGludHB0cl90KWJvdW5kYXJ5ID49IDApOwogICAgIAogICAgIHJlc3VsdC5oYXNf
cmVzdWx0ID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWlj
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9n
bG9iYWxfc2l6ZV9jbGFzc19wdHIuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDExIEBA
CiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RydWN0IHBhc19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3M7Ci10eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzIHBhc19i
aXRmaXRfZ2xvYmFsX3NpemVfY2xhc3M7CitzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzOwor
dHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9zaXplX2NsYXNzIHBhc19iaXRmaXRfc2l6ZV9jbGFz
czsKIAotUEFTX0RFRklORV9DT01QQUNUX0FUT01JQ19QVFIocGFzX2JpdGZpdF9nbG9iYWxfc2l6
ZV9jbGFzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21p
Y19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3NfcHRyKTsKK1BBU19ERUZJTkVfQ09NUEFDVF9BVE9N
SUNfUFRSKHBhc19iaXRmaXRfc2l6ZV9jbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHIpOwogCiBQQVNfRU5E
X0VYVEVSTl9DOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Y29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJKG5vbmV4aXN0ZW50
KQpAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpZm5kZWYgUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURfR0xPQkFMX1NJ
WkVfRElSRUNUT1JZX1BUUl9ICi0jZGVmaW5lIFBBU19DT01QQUNUX0FUT01JQ19TRUdSRUdBVEVE
X0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9QVFJfSAotCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRv
bWljX3B0ci5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
OwotCi1QQVNfREVGSU5FX0NPTVBBQ1RfQVRPTUlDX1BUUihwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyKTsKLQotUEFTX0VO
RF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBBU19DT01QQUNUX0FUT01JQ19TRUdSRUdBVEVEX0dM
T0JBTF9TSVpFX0RJUkVDVE9SWV9QVFJfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURfU0laRV9ESVJFQ1RPUllf
UFRSX0gKKyNkZWZpbmUgUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURfU0laRV9ESVJFQ1RP
UllfUFRSX0gKKworI2luY2x1ZGUgInBhc19jb21wYWN0X2F0b21pY19wdHIuaCIKKworUEFTX0JF
R0lOX0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7Cit0
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeTsKKworUEFTX0RFRklORV9DT01QQUNUX0FUT01JQ19QVFIocGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIpOworCitQQVNf
RU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0NPTVBBQ1RfQVRPTUlDX1NFR1JFR0FURURf
U0laRV9ESVJFQ1RPUllfUFRSX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfcHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19DT01QQUNUX1NF
R1JFR0FURURfRVhDTFVTSVZFX1ZJRVdfUFRSX0gKKyNkZWZpbmUgUEFTX0NPTVBBQ1RfU0VHUkVH
QVRFRF9FWENMVVNJVkVfVklFV19QVFJfSAorCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfcHRyLmgi
CisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXc7CisKK1BBU19ERUZJTkVfQ09NUEFDVF9QVFIocGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyKTsKKworUEFTX0VORF9FWFRFUk5f
QzsKKworI2VuZGlmIC8qIFBBU19DT01QQUNUX1NFR1JFR0FURURfRVhDTFVTSVZFX1ZJRVdfUFRS
X0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0ci5oCShub25leGlzdGVudCkKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19DT01Q
QUNUX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX1BUUl9ICi0jZGVmaW5lIFBBU19D
T01QQUNUX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX1BUUl9ICi0KLSNpbmNsdWRl
ICJwYXNfY29tcGFjdF9wdHIuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeTsKLQotUEFTX0RFRklORV9DT01QQUNUX1BUUihwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cik7Ci0KLVBBU19FTkRfRVhURVJOX0M7
Ci0KLSNlbmRpZiAvKiBQQVNfQ09NUEFDVF9TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9S
WV9QVFJfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9TSVpF
X0RJUkVDVE9SWV9QVFJfSAorI2RlZmluZSBQQVNfQ09NUEFDVF9TRUdSRUdBVEVEX1NJWkVfRElS
RUNUT1JZX1BUUl9ICisKKyNpbmNsdWRlICJwYXNfY29tcGFjdF9wdHIuaCIKKworUEFTX0JFR0lO
X0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7Cit0eXBl
ZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeTsKKworUEFTX0RFRklORV9DT01QQUNUX1BUUihwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHIpOworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYg
LyogUEFTX0NPTVBBQ1RfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9QVFJfSCAqLworCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9zdWJwYWdlX21h
cF9lbnRyeV9wdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rfc3VicGFn
ZV9tYXBfZW50cnlfcHRyLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX0NPTVBB
Q1RfU1VCUEFHRV9NQVBfRU5UUllfUFRSX0gKLSNkZWZpbmUgUEFTX0NPTVBBQ1RfU1VCUEFHRV9N
QVBfRU5UUllfUFRSX0gKLQotI2luY2x1ZGUgInBhc19jb21wYWN0X3B0ci5oIgotCi1QQVNfQkVH
SU5fRVhURVJOX0M7Ci0KLXN0cnVjdCBwYXNfc3VicGFnZV9tYXBfZW50cnk7Ci10eXBlZGVmIHN0
cnVjdCBwYXNfc3VicGFnZV9tYXBfZW50cnkgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5OwotCi1QQVNf
REVGSU5FX0NPTVBBQ1RfUFRSKHBhc19zdWJwYWdlX21hcF9lbnRyeSwgcGFzX2NvbXBhY3Rfc3Vi
cGFnZV9tYXBfZW50cnlfcHRyKTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8qIFBB
U19DT01QQUNUX1NVQlBBR0VfTUFQX0VOVFJZX1BUUl9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193
aXRoX3Jlc2VydmVkX21lbW9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2Vy
dmVkX21lbW9yeS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZl
ZF9tZW1vcnkuYwkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsMjcgQEAKICNpbmNsdWRlICJw
YXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmgiCiAKK3N0YXRpYyBwYXNfYWxsb2NhdGlvbl9yZXN1bHQg
YWxsb2NhdGVfZnJvbV9sYXJnZSgKKyAgICBzaXplX3Qgc2l6ZSwKKyAgICBwYXNfYWxpZ25tZW50
IGFsaWdubWVudCwKKyAgICBjb25zdCBjaGFyKiBuYW1lLAorICAgIHBhc19oZWFwKiBoZWFwLAor
ICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLAorICAgIHZv
aWQqIGFyZykKK3sKKyAgICBQQVNfVU5VU0VEX1BBUkFNKG5hbWUpOworICAgIFBBU19BU1NFUlQo
aGVhcCk7CisgICAgUEFTX0FTU0VSVCh0cmFuc2FjdGlvbik7CisgICAgUEFTX0FTU0VSVCghYXJn
KTsKKyAgICBQQVNfQVNTRVJUKCFhbGlnbm1lbnQuYWxpZ25tZW50X2JlZ2luKTsKKworICAgIHJl
dHVybiBwYXNfbGFyZ2VfaGVhcF90cnlfYWxsb2NhdGVfYW5kX2ZvcmdldCgKKyAgICAgICAgJmhl
YXAtPmxhcmdlX2hlYXAsIHNpemUsIGFsaWdubWVudC5hbGlnbm1lbnQsCisgICAgICAgIHBhc19o
ZWFwX2NvbmZpZ19raW5kX2dldF9jb25maWcoaGVhcC0+Y29uZmlnX2tpbmQpLAorICAgICAgICB0
cmFuc2FjdGlvbik7Cit9CisKKy8qIFdhcm5pbmc6IFRoaXMgY3JlYXRlcyBjYWNoZXMgdGhhdCBh
bGxvdyB0eXBlIGNvbmZ1c2lvbi4gT25seSB1c2UgdGhpcyBmb3IgcHJpbWl0aXZlIGhlYXBzISAq
LwogcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXMqIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdl
X2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeSgKICAgICBwYXNfYmFzaWNfaGVhcF9ydW50aW1l
X2NvbmZpZyogdGVtcGxhdGVfcnVudGltZV9jb25maWcsCiAgICAgdWludHB0cl90IGJlZ2luLApA
QCAtNjcsMTggKzg4LDE4IEBAIHBhc19iYXNpY19oZWFwX3BhZ2VfY2FjaGVzKiBwYXNfY3JlYXRl
X2IKICAgICAKICAgICBwYXNfbWVnYXBhZ2VfY2FjaGVfY29uc3RydWN0KAogICAgICAgICAmY2Fj
aGVzLT5zbWFsbF9zZWdyZWdhdGVkX21lZ2FwYWdlX2NhY2hlLAotICAgICAgICBwYXNfcmVzZXJ2
ZWRfbWVtb3J5X3Byb3ZpZGVyX3RyeV9hbGxvY2F0ZSwKLSAgICAgICAgcHJvdmlkZXIpOworICAg
ICAgICBhbGxvY2F0ZV9mcm9tX2xhcmdlLAorICAgICAgICBOVUxMKTsKIAogICAgIHBhc19tZWdh
cGFnZV9jYWNoZV9jb25zdHJ1Y3QoCiAgICAgICAgICZjYWNoZXMtPnNtYWxsX2JpdGZpdF9tZWdh
cGFnZV9jYWNoZSwKLSAgICAgICAgcGFzX3Jlc2VydmVkX21lbW9yeV9wcm92aWRlcl90cnlfYWxs
b2NhdGUsCi0gICAgICAgIHByb3ZpZGVyKTsKKyAgICAgICAgYWxsb2NhdGVfZnJvbV9sYXJnZSwK
KyAgICAgICAgTlVMTCk7CiAKICAgICBwYXNfbWVnYXBhZ2VfY2FjaGVfY29uc3RydWN0KAogICAg
ICAgICAmY2FjaGVzLT5tZWRpdW1fbWVnYXBhZ2VfY2FjaGUsCi0gICAgICAgIHBhc19yZXNlcnZl
ZF9tZW1vcnlfcHJvdmlkZXJfdHJ5X2FsbG9jYXRlLAotICAgICAgICBwcm92aWRlcik7CisgICAg
ICAgIGFsbG9jYXRlX2Zyb21fbGFyZ2UsCisgICAgICAgIE5VTEwpOwogCiAgICAgZm9yIChQQVNf
RUFDSF9TRUdSRUdBVEVEX1BBR0VfQ09ORklHX1ZBUklBTlRfQVNDRU5ESU5HKHNlZ3JlZ2F0ZWRf
dmFyaWFudCkpIHsKICAgICAgICAgcGFzX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplKiBk
aXJlY3RvcmllczsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19j
cmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jcmVhdGVfYmFz
aWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY3JlYXRlX2Jhc2lj
X2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuaAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNiArMzUsNyBAQCBzdHJ1Y3QgcGFzX2Jhc2ljX2hlYXBfcnVudGltZV9jb25maWc7CiB0
eXBlZGVmIHN0cnVjdCBwYXNfYmFzaWNfaGVhcF9wYWdlX2NhY2hlcyBwYXNfYmFzaWNfaGVhcF9w
YWdlX2NhY2hlczsKIHR5cGVkZWYgc3RydWN0IHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmln
IHBhc19iYXNpY19oZWFwX3J1bnRpbWVfY29uZmlnOwogCisvKiBXYXJuaW5nOiBUaGlzIGNyZWF0
ZXMgY2FjaGVzIHRoYXQgYWxsb3cgdHlwZSBjb25mdXNpb24uIE9ubHkgdXNlIHRoaXMgZm9yIHBy
aW1pdGl2ZSBoZWFwcyEgKi8KIFBBU19BUEkgcGFzX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXMqIHBh
c19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeSgKICAg
ICBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZyogdGVtcGxhdGVfcnVudGltZV9jb25maWcs
CiAgICAgdWludHB0cl90IGJlZ2luLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2RlYWxsb2NhdGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0ZS5jCSh3b3JraW5nIGNv
cHkpCkBAIC04Myw3ICs4Myw4IEBAIHN0YXRpYyB2b2lkIGRlYWxsb2NhdGVfc2VncmVnYXRlZCh1
aW50cHQKIHsKICAgICBwYXNfbG9jayogaGVsZF9sb2NrOwogICAgIGhlbGRfbG9jayA9IE5VTEw7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlKGJlZ2luLCAmaGVsZF9sb2NrLCAq
cGFnZV9jb25maWcpOworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZSgKKyAgICAg
ICAgYmVnaW4sICZoZWxkX2xvY2ssIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3Rf
bW9kZSwgTlVMTCwgKnBhZ2VfY29uZmlnKTsKICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9j
aywgTlVMTCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw2ICszMiw3
IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogZW51bSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vf
YWN0aW9uIHsKICAgICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uLAorICAgIHBh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfaWZfY2xlYW5fYWN0aW9uLAogICAgIHBh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfYWN0aW9uCiB9OwogCkBAIC00NCw2ICs0
NSw4IEBAIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb25fZ2V0X3N0cmkKICAgICB7CiAg
ICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uOgogICAgICAgICByZXR1
cm4gIm5vX2FjdGlvbiI7CisgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hf
bG9nX2lmX2NsZWFuX2FjdGlvbjoKKyAgICAgICAgcmV0dXJuICJmbHVzaF9sb2dfaWZfY2xlYW5f
YWN0aW9uIjsKICAgICBjYXNlIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfYWN0
aW9uOgogICAgICAgICByZXR1cm4gImZsdXNoX2xvZ19hY3Rpb24iOwogICAgIH0KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19o
ZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAu
Ywkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQCBzdGF0aWMgdm9pZCBzZXRfdXBfcmFu
Z2UoaW5pdGlhbGl6ZV9kYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUp
CiB7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBkZXNpZ25hdGVkX2luZGV4OwotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRl
eCBkZXNpZ25hdGVkX2VuZDsKIAogICAgIFBBU19BU1NFUlQoCkBAIC04OCwxNyArODgsMjQgQEAg
c3RhdGljIHZvaWQgc2V0X3VwX3JhbmdlKGluaXRpYWxpemVfZGF0YQogICAgICAgICAgICAgUEFT
X0FTU0VSVCghZGlyZWN0b3J5KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZGlyZWN0b3J5
ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KAot
ICAgICAgICAgICAgICAgIGRhdGEtPmhlYXAsIHNpemUsIDEsIHBhc19mb3JjZV9jb3VudF9sb29r
dXAsIGRhdGEtPmNvbmZpZ19wdHIsIE5VTEwpOworICAgICAgICAgICAgICAgIGRhdGEtPmhlYXAs
IHNpemUsIDEsIHBhc19mb3JjZV9jb3VudF9sb29rdXAsIGRhdGEtPmNvbmZpZ19wdHIsIE5VTEws
CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5pdGlhbF9j
cmVhdGlvbl9tb2RlKTsKKworICAgICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnkpOworCisg
ICAgICAgICAgICBQQVNfQVNTRVJUKAorICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlcyhkaXJlY3RvcnkpCisgICAgICAgICAg
ICAgICAgPD0gcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2FsbG9jYXRvcl9pbmRp
Y2VzKCpkYXRhLT5jb25maWdfcHRyKSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8qIFRo
aXMgaXMgYSB3ZWlyZCBhc3NlcnQgLSBpZiBpdCB3YXMgZmFsc2UgdGhlbiBpdCBkb2Vzbid0IGxp
dGVyYWxseSBtYWtlIHRoaXMgYnJva2VuLgogICAgICAgICAgICAgICAgSXQganVzdCBtZWFucyB0
aGF0IHRoZXJlIGlzIGEgY2hhbmNlIG9mIG1lbW9yeSB3YXN0ZWFnZS4gU28sIGlmIHdlIGhpdCBp
dCwgdGhlbgogICAgICAgICAgICAgICAgbWF5YmUgd2UgY2FuIGp1c3Qgc2F5IHRoYXQgdGhhdCdz
IE9LIGFuZCByZW1vdmUgdGhlIGFzc2VydD8gKi8KICAgICAgICAgICAgIFBBU19BU1NFUlQoZGly
ZWN0b3J5LT5vYmplY3Rfc2l6ZSA9PSBzaXplKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NyZWF0ZV90bGNfYWxsb2NhdG9y
KGRpcmVjdG9yeSk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9j
cmVhdGVfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpOwogCiAgICAgICAgICAgICBQQVNfQVNTRVJU
KAotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXgKKyAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJl
Y3RvcnktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXgKICAgICAgICAgICAgICAgICA9PSB0YXJnZXRf
YWxsb2NhdG9yX2luZGV4KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHBhc19hbGxv
Y2F0b3JfaW5kZXggcmVzdWx0aW5nX2luZGV4OwpAQCAtMTA5LDEwICsxMTYsMTAgQEAgc3RhdGlj
IHZvaWQgc2V0X3VwX3JhbmdlKGluaXRpYWxpemVfZGF0YQogICAgICAgICAgICAgUEFTX0FTU0VS
VChyZXN1bHRpbmdfaW5kZXggPT0gdGFyZ2V0X2FsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgICAg
ICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVj
dG9yeSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2xhc3Rfbm9kZSkgPT0gZGlyZWN0b3J5KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KAor
ICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcigKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xhc3Rfbm9kZSkgPT0gdGFyZ2V0
X2FsbG9jYXRvcl9pbmRleCk7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKAotICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZk
aXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0b3JfaW5kZXgKKyAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpLT5h
bGxvY2F0b3JfaW5kZXgKICAgICAgICAgICAgICAgICA9PSBkZXNpZ25hdGVkX2JlZ2luICogZGF0
YS0+bnVtX2FsbG9jYXRvcl9pbmRpY2VzKTsKICAgICAgICAgfQogICAgIH0KQEAgLTEyNSw2ICsx
MzIsNyBAQCB2b2lkIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2luaXRpCiB7CiAgICAg
cGFzX2hlYXBfY29uZmlnIGNvbmZpZzsKICAgICBpbml0aWFsaXplX2RhdGEgZGF0YTsKKyAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOwogCiAgICAgY29u
ZmlnID0gKmNvbmZpZ19wdHI7CiAKQEAgLTEzMiw3ICsxNDAsNyBAQCB2b2lkIHBhc19kZXNpZ25h
dGVkX2ludHJpbnNpY19oZWFwX2luaXRpCiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgp
OwogICAgIFBBU19BU1NFUlQoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZV9maXJzdCk7CiAg
ICAgUEFTX0FTU0VSVCghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbmV4dF9hbGxvY2F0
b3JfaW5kZXgpOwotICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKAorICAgIFBBU19BU1NFUlQocGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2lzX251bGwoCiAgICAg
ICAgICAgICAgICAgICAgJmhlYXAtPmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKSk7CiAK
ICAgICBkYXRhLmhlYXAgPSBoZWFwOwpAQCAtMjAxLDYgKzIwOSwxNCBAQCB2b2lkIHBhc19kZXNp
Z25hdGVkX2ludHJpbnNpY19oZWFwX2luaXRpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAg
IC8qIENhdXNlIHRoZSBhbGxvY2F0aW9uIG9mIHZpZXcgY2FjaGVzIHRvIGhhcHBlbiBhZnRlciB3
ZSBoYXZlIGxhaWQgb3V0IGFsbCBvZiB0aGUgbG9jYWwgYWxsb2NhdG9ycy4gKi8KKyAgICBmb3Ig
KFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2Rl
KSkgeworICAgICAgICBpZiAoIXBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkobGF5b3V0X25vZGUpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZmluaXNoX2NyZWF0aW9uKHBhc191bndyYXBfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeShsYXlvdXRfbm9kZSkpOworICAgIH0KKwogICAgIGlmIChQQVNf
RU5BQkxFX1RFU1RJTkcpIHsKICAgICAgICAgLyogQ2hlY2sgdGhhdCB3ZSB3b24ndCByZXR1cm4g
YSBkZXNpZ25hdGVkIGluZGV4IHRoYXQgaXMgaW52YWxpZC4gKi8KIApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5s
aW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rlc2lnbmF0ZWRfaW50cmlu
c2ljX2hlYXBfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVm
aW5lIFBBU19ERVNJR05BVEVEX0lOVFJJTlNJQ19IRUFQX0lOTElORVNfSAogCiAjaW5jbHVkZSAi
cGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXAuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBA
IC0zNSwxMCArMzUsOCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRvcl9p
CiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fYWxsb2NhdG9yX2luZGljZXMocGFz
X2hlYXBfY29uZmlnIGNvbmZpZykKIHsKICAgICByZXR1cm4gUEFTX01BWCgKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19m
b3JfY29uZmlnKAotICAgICAgICAgICAgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKSwK
LSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0
b3JfaW5kaWNlc19mb3JfY29uZmlnKAotICAgICAgICAgICAgY29uZmlnLm1lZGl1bV9zZWdyZWdh
dGVkX2NvbmZpZykpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1f
YWxsb2NhdG9yX2luZGljZXNfZm9yX2NvbmZpZyhjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25m
aWcpLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9y
X2luZGljZXNfZm9yX2NvbmZpZyhjb25maWcubWVkaXVtX3NlZ3JlZ2F0ZWRfY29uZmlnKSk7CiB9
CiAKIHR5cGVkZWYgc3RydWN0IHsKQEAgLTY1LDExICs2MywxMiBAQCBwYXNfZGVzaWduYXRlZF9p
bmRleF9yZXN1bHRfY3JlYXRlX3N1Y2NlCiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBz
aXplX3QKLXBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9kZXNpZ25hdGVkX2luZGlj
ZXMocGFzX2hlYXBfY29uZmlnIGNvbmZpZykKK3Bhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFw
X251bV9kZXNpZ25hdGVkX2luZGljZXNfZm9yX3NtYWxsX2NvbmZpZygKKyAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZyBzbWFsbF9jb25maWcpCiB7CiAgICAgLyogRklYTUU6IFRoZXNlIGNv
bnN0YW50cyBoYXZlIHRvIG1hdGNoIHdoYXQgd2UgZG8gd2l0aCBzZXRfdXBfcmFuZ2UgaW4KICAg
ICAgICBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbml0aWFsaXplLiAqLwotICAgIHN3
aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWduKGNvbmZpZy5zbWFsbF9z
ZWdyZWdhdGVkX2NvbmZpZykpIHsKKyAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX21pbl9hbGlnbihzbWFsbF9jb25maWcpKSB7CiAgICAgY2FzZSA4OgogICAgICAgICByZXR1
cm4gMzg7CiAgICAgY2FzZSAxNjoKQEAgLTgyLDIyICs4MSwzOSBAQCBwYXNfZGVzaWduYXRlZF9p
bnRyaW5zaWNfaGVhcF9udW1fZGVzaWduCiAgICAgfQogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0IHBhc19kZXNpZ25hdGVkX2ludHJpbnNp
Y19oZWFwX2Rlc2lnbmF0ZWRfaW5kZXgoCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Rl
c2lnbmF0ZWRfaW5kZXhfcmVzdWx0CitwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNp
Z25hdGVkX2luZGV4X2Zvcl9zbWFsbF9jb25maWcoCiAgICAgc2l6ZV90IGluZGV4LAogICAgIHBh
c19pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGlvbl9tb2RlIGRlc2lnbmF0aW9uX21vZGUsCi0gICAg
cGFzX2hlYXBfY29uZmlnIGNvbmZpZykKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBz
bWFsbF9jb25maWcpCiB7CiAgICAgaWYgKCFkZXNpZ25hdGlvbl9tb2RlKQogICAgICAgICByZXR1
cm4gcGFzX2Rlc2lnbmF0ZWRfaW5kZXhfcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAKICAgICAv
KiBOT1RFOiBXZSBjb3VsZCBkbyBtYXRoIGhlcmUuIFdlIGNob29zZSBub3QgdG8gYmVjYXVzZSBz
byBmYXIgdGhhdCBoYXMgcHJvdmVkIHRvIGJlCiAgICAgICAgYSBwZXJmIHByb2JsZW0uICovCi0g
ICAgaWYgKGluZGV4IDw9IHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX251bV9kZXNpZ25h
dGVkX2luZGljZXMoY29uZmlnKSkKKyAgICBpZiAoaW5kZXggPD0gcGFzX2Rlc2lnbmF0ZWRfaW50
cmluc2ljX2hlYXBfbnVtX2Rlc2lnbmF0ZWRfaW5kaWNlc19mb3Jfc21hbGxfY29uZmlnKHNtYWxs
X2NvbmZpZykpCiAgICAgICAgIHJldHVybiBwYXNfZGVzaWduYXRlZF9pbmRleF9yZXN1bHRfY3Jl
YXRlX3N1Y2Nlc3MoaW5kZXgpOwogCiAgICAgcmV0dXJuIHBhc19kZXNpZ25hdGVkX2luZGV4X3Jl
c3VsdF9jcmVhdGVfZmFpbHVyZSgpOwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6
ZV90CitwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fZGVzaWduYXRlZF9pbmRpY2Vz
KHBhc19oZWFwX2NvbmZpZyBjb25maWcpCit7CisgICAgcmV0dXJuIHBhc19kZXNpZ25hdGVkX2lu
dHJpbnNpY19oZWFwX251bV9kZXNpZ25hdGVkX2luZGljZXNfZm9yX3NtYWxsX2NvbmZpZygKKyAg
ICAgICAgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKK30KKworc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHBhc19kZXNpZ25hdGVkX2luZGV4X3Jlc3VsdCBwYXNfZGVzaWduYXRlZF9p
bnRyaW5zaWNfaGVhcF9kZXNpZ25hdGVkX2luZGV4KAorICAgIHNpemVfdCBpbmRleCwKKyAgICBw
YXNfaW50cmluc2ljX2hlYXBfZGVzaWduYXRpb25fbW9kZSBkZXNpZ25hdGlvbl9tb2RlLAorICAg
IHBhc19oZWFwX2NvbmZpZyBjb25maWcpCit7CisgICAgcmV0dXJuIHBhc19kZXNpZ25hdGVkX2lu
dHJpbnNpY19oZWFwX2Rlc2lnbmF0ZWRfaW5kZXhfZm9yX3NtYWxsX2NvbmZpZygKKyAgICAgICAg
aW5kZXgsIGRlc2lnbmF0aW9uX21vZGUsIGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZyk7
Cit9CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfREVTSUdOQVRFRF9JTlRS
SU5TSUNfSEVBUF9JTkxJTkVTX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50b19yZXNlcnZlZF9tZW1vcnkuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW5zdXJlX2hl
YXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50
b19yZXNlcnZlZF9tZW1vcnkuYwkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgInBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21l
bW9yeS5oIgogI2luY2x1ZGUgInBhc19lbnN1cmVfaGVhcF93aXRoX3BhZ2VfY2FjaGVzLmgiCiAK
Ky8qIFdhcm5pbmc6IFRoaXMgY3JlYXRlcyBjYWNoZXMgdGhhdCBhbGxvdyB0eXBlIGNvbmZ1c2lv
bi4gT25seSB1c2UgdGhpcyBmb3IgcHJpbWl0aXZlIGhlYXBzISAqLwogcGFzX2hlYXAqIHBhc19l
bnN1cmVfaGVhcF9mb3JjZWRfaW50b19yZXNlcnZlZF9tZW1vcnkoCiAgICAgcGFzX2hlYXBfcmVm
KiBoZWFwX3JlZiwKICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9raW5kLApJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Vuc3VyZV9oZWFwX2ZvcmNlZF9p
bnRvX3Jlc2VydmVkX21lbW9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19lbnN1cmVfaGVhcF9mb3JjZWRfaW50b19yZXNlcnZlZF9tZW1vcnku
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2Vuc3VyZV9oZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21lbW9yeS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNCw3ICszNCw5IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICAgIG9uZSBvZiB0aGUg
ImJhc2ljIiBvbmVzIC0gY3JlYXRlZCB3aXRoIHBhc19oZWFwX2NvbmZpZ191dGlscyBvciBzb21l
dGhpbmcgdGhhdCBicm9hZGx5IHVzZXMKICAgIHRoZSBzYW1lIGRlZmF1bHRzLiBJbiBwYXJ0aWN1
bGFyLCBpdCBtdXN0IGJlIHRoZSBraW5kIG9mIGhlYXAgdGhhdCBleHBlY3RzIHRoZSBydW50aW1l
X2NvbmZpZwogICAgdG8gYmUgYSBwYXNfYmFzaWNfaGVhcF9ydW50aW1lX2NvbmZpZy4gVGhpcyB3
aWxsIGNvcHkgdGhlIHJ1bnRpbWVfY29uZmlnIHlvdSBwYXNzIGFuZCBjb21iaW5lCi0gICBpdCB3
aXRoIGEgYmFzaWNfaGVhcF9wYWdlX2NhY2hlcyB0aGF0IG9ubHkgdXNlcyB0aGUgZ2l2ZW4gcmVz
ZXJ2ZWQgbWVtb3J5LiAqLworICAgaXQgd2l0aCBhIGJhc2ljX2hlYXBfcGFnZV9jYWNoZXMgdGhh
dCBvbmx5IHVzZXMgdGhlIGdpdmVuIHJlc2VydmVkIG1lbW9yeS4KKworICAgV2FybmluZzogVGhp
cyBjcmVhdGVzIGNhY2hlcyB0aGF0IGFsbG93IHR5cGUgY29uZnVzaW9uLiBPbmx5IHVzZSB0aGlz
IGZvciBwcmltaXRpdmUgaGVhcHMhICovCiBQQVNfQVBJIHBhc19oZWFwKiBwYXNfZW5zdXJlX2hl
YXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5KAogICAgIHBhc19oZWFwX3JlZiogaGVhcF9y
ZWYsCiAgICAgcGFzX2hlYXBfcmVmX2tpbmQgaGVhcF9yZWZfa2luZCwKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0
ZV9iaXRmaXRfaGVhcHMuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuYwkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAicGFzX2VudW1lcmF0ZV9iaXRmaXRfaGVh
cHMuaCIKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgorI2luY2x1
ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF9oZWFwLmgi
CiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlLmgiCiAjaW5jbHVkZSAicGFzX2JpdGZpdF92aWV3
LmgiCkBAIC00Myw3ICs0Myw3IEBAIHN0YXRpYyBib29sIHZpZXdfY2FsbGJhY2socGFzX2VudW1l
cmF0b3IKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiAgICAg
cGFzX2JpdGZpdF92aWV3KiB2aWV3OwotICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSog
ZGlyZWN0b3J5OworICAgIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFz
X2JpdGZpdF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CiAgICAgdWludHB0cl90IHBhZ2VfYm91
bmRhcnk7CiAgICAgcGFzX2JpdGZpdF9wYWdlKiBwYWdlOwpAQCAtNjQsNyArNjQsNyBAQCBzdGF0
aWMgYm9vbCB2aWV3X2NhbGxiYWNrKHBhc19lbnVtZXJhdG9yCiAgICAgICAgIHJldHVybiB0cnVl
OwogCiAgICAgcGFnZV9ib3VuZGFyeSA9ICh1aW50cHRyX3Qpdmlldy0+cGFnZV9ib3VuZGFyeTsK
LSAgICBwYWdlX2NvbmZpZyA9IHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmln
KGRpcmVjdG9yeS0+YmFzZS5jb25maWdfa2luZCk7CisgICAgcGFnZV9jb25maWcgPSBwYXNfYml0
Zml0X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmNvbmZpZ19raW5kKTsK
ICAgICAKICAgICBpZiAocGFnZV9ib3VuZGFyeSkgewogICAgICAgICBwYXNfZW51bWVyYXRvcl9l
eGNsdWRlX2FjY291bnRlZF9wYWdlcygKQEAgLTE0NiwxMCArMTQ2LDEwIEBAIHN0YXRpYyBib29s
IHZpZXdfY2FsbGJhY2socGFzX2VudW1lcmF0b3IKIH0KIAogc3RhdGljIGJvb2wgZW51bWVyYXRl
X2JpdGZpdF9kaXJlY3RvcnkocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19i
aXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcmV0dXJuIHBhc19iaXRmaXRfZGly
ZWN0b3J5X3ZpZXdfdmVjdG9yX2l0ZXJhdGVfcmVtb3RlKAotICAgICAgICAmZGlyZWN0b3J5LT5i
YXNlLnZpZXdzLCBlbnVtZXJhdG9yLCAwLCB2aWV3X2NhbGxiYWNrLCBkaXJlY3RvcnkpOworICAg
ICAgICAmZGlyZWN0b3J5LT52aWV3cywgZW51bWVyYXRvciwgMCwgdmlld19jYWxsYmFjaywgZGly
ZWN0b3J5KTsKIH0KIAogc3RhdGljIGJvb2wgZW51bWVyYXRlX2JpdGZpdF9oZWFwX2NhbGxiYWNr
KHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfbGFyZ2VfaGVhcHMu
YwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcy5jCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw5
IEBAIHN0YXRpYyBib29sIHJhbmdlX2xpc3RfaXRlcmF0ZV9hZGRfbGFyZ2UKIHN0YXRpYyB2b2lk
IHJlY29yZF9zcGFuKHBhc19lbnVtZXJhdG9yKiBlbnVtZXJhdG9yLAogICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3JhbmdlIHJhbmdlKQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygicmVjb3JkX3Nw
YW46ICVwLi4uJXBcbiIsIHJhbmdlLmJlZ2luLCByYW5nZS5lbmQpOwogICAgIHBhc19lbnVtZXJh
dG9yX3JlY29yZCgKICAgICAgICAgZW51bWVyYXRvciwgKHZvaWQqKXJhbmdlLmJlZ2luLCBwYXNf
cmFuZ2Vfc2l6ZShyYW5nZSksIHBhc19lbnVtZXJhdG9yX3BheWxvYWRfcmVjb3JkKTsKIH0KQEAg
LTExMSw2ICsxMTQsOCBAQCBzdGF0aWMgYm9vbCB0aW55X2xhcmdlX21hcF9oYXNodGFibGVfZW50
CiAKIGJvb2wgcGFzX2VudW1lcmF0ZV9sYXJnZV9oZWFwcyhwYXNfZW51bWVyYXRvciogZW51bWVy
YXRvcikKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCiAg
ICAgcGFzX3JhbmdlX2JlZ2luX21pbl9oZWFwIHBheWxvYWRzOwogICAgIHBhc19yYW5nZSBzcGFu
OwogICAgIHBhc19yYW5nZSByYW5nZTsKQEAgLTEyNCwxNiArMTI5LDI1IEBAIGJvb2wgcGFzX2Vu
dW1lcmF0ZV9sYXJnZV9oZWFwcyhwYXNfZW51bWUKICAgICAgICAgICAgICZwYXlsb2FkcykpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9n
KCJQYXlsb2FkcyBzaXplID0gJXp1XG4iLCBwYXlsb2Fkcy5zaXplKTsKKwogICAgIHNwYW4gPSBw
YXNfcmFuZ2VfY3JlYXRlX2VtcHR5KCk7CiAgICAgd2hpbGUgKCFwYXNfcmFuZ2VfaXNfZW1wdHko
cmFuZ2UgPSBwYXNfcmFuZ2VfYmVnaW5fbWluX2hlYXBfdGFrZV9taW4oJnBheWxvYWRzKSkpIHsK
ICAgICAgICAgdWludHB0cl90IHBhZ2U7CiAKICAgICAgICAgZm9yIChwYWdlID0gcmFuZ2UuYmVn
aW47IHBhZ2UgPCByYW5nZS5lbmQ7IHBhZ2UgKz0gZW51bWVyYXRvci0+cm9vdC0+cGFnZV9tYWxs
b2NfYWxpZ25tZW50KSB7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKHBhZ2UpOworCisgICAgICAg
ICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJMb29raW5nIGF0IHBh
Z2UgJXBcbiIsIHBhZ2UpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIXBhc19lbnVt
ZXJhdG9yX2V4Y2x1ZGVfYWNjb3VudGVkX3BhZ2UoZW51bWVyYXRvciwgKHZvaWQqKXBhZ2UpKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgICAgICAgICBwYXNfbG9nKCIgICAgUmVjb3JkaW5nIGFzIHBheWxvYWQuXG4iKTsKKwog
ICAgICAgICAgICAgaWYgKHBhZ2UgIT0gc3Bhbi5lbmQpIHsKICAgICAgICAgICAgICAgICByZWNv
cmRfc3BhbihlbnVtZXJhdG9yLCBzcGFuKTsKICAgICAgICAgICAgICAgICBzcGFuLmJlZ2luID0g
cGFnZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJh
dGVfc2VncmVnYXRlZF9oZWFwcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFwcy5jCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZW51bWVyYXRl
X3NlZ3JlZ2F0ZWRfaGVhcHMuYwkod29ya2luZyBjb3B5KQpAQCAtMzMsMTEgKzMzLDEyIEBACiAj
aW5jbHVkZSAicGFzX2VudW1lcmF0b3JfaW50ZXJuYWwuaCIKICNpbmNsdWRlICJwYXNfZnVsbF9h
bGxvY19iaXRzLmgiCiAjaW5jbHVkZSAicGFzX2hhc2h0YWJsZS5oIgorI2luY2x1ZGUgInBhc19s
b2NhbF92aWV3X2NhY2hlX25vZGUuaCIKICNpbmNsdWRlICJwYXNfcHRyX2hhc2hfc2V0LmgiCiAj
aW5jbHVkZSAicGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZS5oIgogI2luY2x1ZGUg
InBhc19yb290LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaCIK
LSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlldy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF9o
YW5kbGUuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oIgpAQCAtMjI4
LDcgKzIyOSw3IEBAIHN0YXRpYyB2b2lkIHJlY29yZF9wYWdlX3BheWxvYWRfYW5kX21ldGEKIAog
c3RhdGljIHZvaWQgcmVjb3JkX3BhZ2Vfb2JqZWN0cyhwYXNfZW51bWVyYXRvciogZW51bWVyYXRv
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYXRpb25fY29udGV4dCog
Y29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBw
YWdlX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IHBh
Z2VfYm91bmRhcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2UqIHBhZ2UsCkBAIC0zMTQsMTYgKzMxNSwxNiBAQCBzdGF0aWMgYm9vbCBlbnVtZXJh
dGVfZXhjbHVzaXZlX3ZpZXcocGFzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW51bWVyYXRpb25fY29udGV4dCogY29udGV4dCkKIHsKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9kYXRhKiBkYXRhOwogICAgIHVpbnRwdHJfdCBwYWdlX2JvdW5kYXJ5OwogICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7CiAgICAgbG9jYWxfYWxsb2NhdG9yX25vZGUqIGFsbG9jYXRv
cl9ub2RlOwogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKICAgICBwYXNfZnVs
bF9hbGxvY19iaXRzIGFsbG9jX2JpdHM7CiAKLSAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1vdGUoZW51bWVyYXRv
ciwgJnZpZXctPmRpcmVjdG9yeSk7CisgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9yZW1vdGUoZW51bWVyYXRvciwgJnZpZXctPmRp
cmVjdG9yeSk7CiAgICAgcGFnZV9jb25maWcgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogCiAgICAg
cGFnZV9ib3VuZGFyeSA9ICh1aW50cHRyX3Qpdmlldy0+cGFnZV9ib3VuZGFyeTsKQEAgLTMzNCwx
MCArMzM1LDEwIEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9leGNsdXNpdmVfdmlldyhwYXMKICAg
ICBwYXNfZW51bWVyYXRvcl9leGNsdWRlX2FjY291bnRlZF9wYWdlcygKICAgICAgICAgZW51bWVy
YXRvciwgKHZvaWQqKXBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7
CiAgICAgCi0gICAgaWYgKCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBf
a2luZF9pc19vd25lZCh2aWV3LT5vd25lcnNoaXBfa2luZCkpCisgICAgaWYgKCF2aWV3LT5pc19v
d25lZCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3IsICZk
aXJlY3RvcnktPmRhdGEpOworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cl9sb2FkX3JlbW90ZShlbnVtZXJhdG9yLCAmZGlyZWN0b3J5LT5kYXRhKTsKIAog
ICAgIHBhZ2UgPSAocGFzX3NlZ3JlZ2F0ZWRfcGFnZSopcGFnZV9jb25maWctPmJhc2UucGFnZV9o
ZWFkZXJfZm9yX2JvdW5kYXJ5X3JlbW90ZSgKICAgICAgICAgZW51bWVyYXRvciwgKHZvaWQqKXBh
Z2VfYm91bmRhcnkpOwpAQCAtNDQ4LDcgKzQ0OSw3IEBAIHN0YXRpYyBib29sIGVudW1lcmF0ZV9w
YXJ0aWFsX3ZpZXcocGFzX2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbnVtZXJhdGlvbl9jb250ZXh0KiBjb250ZXh0KQogewotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWcqIHBhZ2VfY29uZmlnOwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBzaGFy
ZWRfdmlldzsKICAgICBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5IHNoYXJlZF9o
YW5kbGVfb3JfcGFnZV9ib3VuZGFyeTsKQEAgLTQ2Miw3ICs0NjMsNyBAQCBzdGF0aWMgYm9vbCBl
bnVtZXJhdGVfcGFydGlhbF92aWV3KHBhc19lCiAgICAgaWYgKCF2aWV3LT5pc19hdHRhY2hlZF90
b19zaGFyZWRfaGFuZGxlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGRpcmVjdG9yeSA9
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX3Jl
bW90ZShlbnVtZXJhdG9yLCAmdmlldy0+ZGlyZWN0b3J5KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX3JlbW90ZShlbnVtZXJh
dG9yLCAmdmlldy0+ZGlyZWN0b3J5KTsKICAgICBwYWdlX2NvbmZpZyA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdf
a2luZCk7CiAKICAgICBzaGFyZWRfdmlldyA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXdfcHRyX2xvYWRfcmVtb3RlKGVudW1lcmF0b3IsICZ2aWV3LT5zaGFyZWRfdmlldyk7CkBA
IC01NjYsMTQgKzU2NywxNCBAQCBzdGF0aWMgYm9vbCBlbnVtZXJhdGVfc2VncmVnYXRlZF9oZWFw
X2NhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQq
IGFyZykKIHsKICAgICBlbnVtZXJhdGlvbl9jb250ZXh0KiBjb250ZXh0OwotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAKICAgICBjb250ZXh0ID0gYXJnOwogCi0g
ICAgZm9yIChkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfcmVtb3RlKAorICAgIGZvciAoZGlyZWN0b3J5ID0gcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfcmVtb3Rl
KAogICAgICAgICAgICAgIGVudW1lcmF0b3IsICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAuYmFzaWNf
c2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpOwogICAgICAgICAgZGlyZWN0b3J5OwotICAgICAgICAg
ZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X3B0cl9sb2FkX3JlbW90ZSgKKyAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX3JlbW90ZSgKICAgICAg
ICAgICAgICBlbnVtZXJhdG9yLCAmZGlyZWN0b3J5LT5uZXh0X2Zvcl9oZWFwKSkKICAgICAgICAg
Zm9yX2VhY2hfdmlldyhlbnVtZXJhdG9yLCAmZGlyZWN0b3J5LT5iYXNlLCBzaXplX2RpcmVjdG9y
eV92aWV3X2NhbGxiYWNrLCBjb250ZXh0KTsKICAgICAKQEAgLTY3OCwyMyArNjc5LDI0IEBAIGJv
b2wgcGFzX2VudW1lcmF0ZV9zZWdyZWdhdGVkX2hlYXBzKHBhc18KIAogICAgICAgICBsYXlvdXRf
bm9kZSA9IHBhc19lbnVtZXJhdG9yX3JlYWRfY29tcGFjdChlbnVtZXJhdG9yLCAqdGxjX2xheW91
dF9maXJzdF9ub2RlX3B0cik7CiAgICAgICAgIHdoaWxlIChsYXlvdXRfbm9kZSkgeworICAgICAg
ICAgICAgYm9vbCBoYXNfYWxsb2NhdG9yOwogICAgICAgICAgICAgdW5zaWduZWQgYWxsb2NhdG9y
X2luZGV4OwotICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOwogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBpZiAocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkobGF5b3V0X25vZGUpKSB7Ci0gICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAg
ICAgICAgICBpZiAocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShsYXlv
dXRfbm9kZSkpIHsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5OworICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RhdGEqIGRhdGE7CiAKLSAgICAgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfdW53cmFw
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGxheW91dF9ub2RlKTsKKyAgICAgICAg
ICAgICAgICBkaXJlY3RvcnkgPSBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnko
bGF5b3V0X25vZGUpOwogCi0gICAgICAgICAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX3JlbW90ZSgKKyAgICAgICAgICAgICAg
ICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9yZW1v
dGUoCiAgICAgICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsICZkaXJlY3RvcnktPmRhdGEpOwog
CiAgICAgICAgICAgICAgICAgbGF5b3V0X25vZGUgPSBwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2xvYWRfcmVtb3RlKAogICAgICAgICAgICAgICAgICAg
ICBlbnVtZXJhdG9yLCAmZGF0YS0+bmV4dF9mb3JfbGF5b3V0KTsKIAogICAgICAgICAgICAgICAg
IGFsbG9jYXRvcl9pbmRleCA9IGRhdGEtPmFsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgaGFzX2FsbG9jYXRvciA9IHRydWU7CisgICAgICAgICAg
ICB9IGVsc2UgaWYgKHBhc19pc193cmFwcGVkX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9k
ZShsYXlvdXRfbm9kZSkpIHsKICAgICAgICAgICAgICAgICBwYXNfcmVkdW5kYW50X2xvY2FsX2Fs
bG9jYXRvcl9ub2RlKiByZWR1bmRhbnRfbm9kZTsKIAogICAgICAgICAgICAgICAgIHJlZHVuZGFu
dF9ub2RlID0gcGFzX3Vud3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobGF5b3V0
X25vZGUpOwpAQCAtNzAzLDE0ICs3MDUsMzEgQEAgYm9vbCBwYXNfZW51bWVyYXRlX3NlZ3JlZ2F0
ZWRfaGVhcHMocGFzXwogICAgICAgICAgICAgICAgICAgICBlbnVtZXJhdG9yLCAmcmVkdW5kYW50
X25vZGUtPm5leHQpOwogCiAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcmVkdW5k
YW50X25vZGUtPmFsbG9jYXRvcl9pbmRleDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBoYXNfYWxsb2NhdG9yID0gdHJ1ZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSogY2FjaGVfbm9kZTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19pc193cmFwcGVkX2xvY2FsX3Zp
ZXdfY2FjaGVfbm9kZShsYXlvdXRfbm9kZSkpOwogCi0gICAgICAgICAgICBpZiAoYWxsb2NhdG9y
X2luZGV4ID49IHRsYy0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQotICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhY2hlX25vZGUgPSBwYXNfdW53cmFwX2xvY2Fs
X3ZpZXdfY2FjaGVfbm9kZShsYXlvdXRfbm9kZSk7CiAKLSAgICAgICAgICAgIGFsbG9jYXRvciA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKHRsYywgYWxs
b2NhdG9yX2luZGV4KTsKKyAgICAgICAgICAgICAgICBsYXlvdXRfbm9kZSA9IHBhc19jb21wYWN0
X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbG9hZF9yZW1vdGUoCisgICAg
ICAgICAgICAgICAgICAgIGVudW1lcmF0b3IsICZjYWNoZV9ub2RlLT5uZXh0KTsKIAotICAgICAg
ICAgICAgY29uc2lkZXJfYWxsb2NhdG9yKGVudW1lcmF0b3IsICZjb250ZXh0LCBhbGxvY2F0b3Ip
OworICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IFVJTlRfTUFYOworICAgICAgICAg
ICAgICAgIGhhc19hbGxvY2F0b3IgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgaWYgKGhhc19hbGxvY2F0b3IpIHsKKyAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yKiBhbGxvY2F0b3I7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgKGFs
bG9jYXRvcl9pbmRleCA+PSB0bGMtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCkKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCh0bGMsIGFsbG9jYXRv
cl9pbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY29uc2lkZXJfYWxs
b2NhdG9yKGVudW1lcmF0b3IsICZjb250ZXh0LCBhbGxvY2F0b3IpOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfZW51bWVyYXRvci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19lbnVtZXJhdG9yLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19lbnVtZXJhdG9yLmMJKHdvcmtpbmcgY29weSkK
QEAgLTI1MSw5ICsyNTEsMTggQEAgdm9pZCBwYXNfZW51bWVyYXRvcl9hZGRfdW5hY2NvdW50ZWRf
cGFnZQogYm9vbCBwYXNfZW51bWVyYXRvcl9leGNsdWRlX2FjY291bnRlZF9wYWdlKHBhc19lbnVt
ZXJhdG9yKiBlbnVtZXJhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZvaWQqIHJlbW90ZV9hZGRyZXNzKQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKKyAgICBib29sIHJlc3VsdDsKICAgICBQQVNfQVNTRVJUKHBhc19pc19h
bGlnbmVkKCh1aW50cHRyX3QpcmVtb3RlX2FkZHJlc3MsIGVudW1lcmF0b3ItPnJvb3QtPnBhZ2Vf
bWFsbG9jX2FsaWdubWVudCkpOwotICAgIHJldHVybiBwYXNfcHRyX2hhc2hfc2V0X3JlbW92ZSgK
KyAgICByZXN1bHQgPSBwYXNfcHRyX2hhc2hfc2V0X3JlbW92ZSgKICAgICAgICAgZW51bWVyYXRv
ci0+dW5hY2NvdW50ZWRfcGFnZXMsIHJlbW90ZV9hZGRyZXNzLCBOVUxMLCAmZW51bWVyYXRvci0+
YWxsb2NhdGlvbl9jb25maWcpOworICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIGlmIChyZXN1
bHQpCisgICAgICAgICAgICBwYXNfbG9nKCJFeGNsdWRpbmcgdW5hY2NvdW50ZWQgcGFnZSAlcFxu
IiwgcmVtb3RlX2FkZHJlc3MpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwYXNfbG9nKCJJ
Z25vcmluZyBhbHJlYWR5IGFjY291bnRlZCBwYWdlICVwXG4iLCByZW1vdGVfYWRkcmVzcyk7Cisg
ICAgfQorICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIHZvaWQgcGFzX2VudW1lcmF0b3JfZXhjbHVk
ZV9hY2NvdW50ZWRfcGFnZXMocGFzX2VudW1lcmF0b3IqIGVudW1lcmF0b3IsCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVf
bWVtb190YWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leGNsdXNpdmVf
dmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcg
QEAKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCiAKICNpbmNsdWRlICJwYXNfaGFzaHRhYmxlLmgi
Ci0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKIAogUEFTX0JFR0lOX0VYVEVS
Tl9DOwogCkBAIC01Miw3ICs1Miw3IEBAIHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1v
X2tleV9jcmUKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi10eXBlZGVmIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9f
ZW50cnk7Cit0eXBlZGVmIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBwYXNfZXhjbHVz
aXZlX3ZpZXdfdGVtcGxhdGVfbWVtb19lbnRyeTsKIAogc3RhdGljIGlubGluZSBwYXNfZXhjbHVz
aXZlX3ZpZXdfdGVtcGxhdGVfbWVtb19lbnRyeQogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRl
X21lbW9fZW50cnlfY3JlYXRlX2VtcHR5KHZvaWQpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfZmFzdF9sYXJnZV9mcmVlX2hlYXAuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZmFzdF9sYXJnZV9mcmVlX2hlYXAu
YwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTQxNCw3ICs0MTQs
MTAgQEAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHBhc19mYXN0X2xhcmdlX2ZyZQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Fs
aWdubWVudCBhbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZyogY29uZmln
KQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICBwYXNfZ2Vu
ZXJpY19sYXJnZV9mcmVlX2hlYXBfY29uZmlnIGdlbmVyaWNfaGVhcF9jb25maWc7CisgICAgaWYg
KHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coImhlYXAgJXAgYWxsb2NhdGluZyAlenUsIGFsaWdu
bWVudCAlenVcbiIsIGhlYXAsIHNpemUsIGFsaWdubWVudC5hbGlnbm1lbnQpOwogICAgIGluaXRp
YWxpemVfZ2VuZXJpY19oZWFwX2NvbmZpZygmZ2VuZXJpY19oZWFwX2NvbmZpZyk7CiAgICAgcmV0
dXJuIHBhc19nZW5lcmljX2xhcmdlX2ZyZWVfaGVhcF90cnlfYWxsb2NhdGUoCiAgICAgICAgIChw
YXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAqKWhlYXAsCkBAIC00MjgsNyArNDMxLDEwIEBAIHZv
aWQgcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwX2RlYWxsb2NhdGUKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3plcm9fbW9kZSB6ZXJvX21vZGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sYXJnZV9mcmVlX2hlYXBfY29u
ZmlnKiBjb25maWcpCiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwog
ICAgIHBhc19nZW5lcmljX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcgZ2VuZXJpY19oZWFwX2NvbmZp
ZzsKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiaGVhcCAlcCBkZWFsbG9jYXRp
bmcgJXAgb2Ygc2l6ZSAlenVcbiIsIGhlYXAsICh2b2lkKiliZWdpbiwgZW5kIC0gYmVnaW4pOwog
ICAgIGluaXRpYWxpemVfZ2VuZXJpY19oZWFwX2NvbmZpZygmZ2VuZXJpY19oZWFwX2NvbmZpZyk7
CiAgICAgcGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9oZWFwX21lcmdlX3BoeXNpY2FsKAogICAgICAg
ICAocGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9oZWFwKiloZWFwLApJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZmFzdF9tZWdhcGFnZV9j
YWNoZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfZmFzdF9tZWdhcGFnZV9jYWNoZS5jCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2
MSw5IEBAIHZvaWQqIHBhc19mYXN0X21lZ2FwYWdlX2NhY2hlX3RyeV9hbGxvY2EKICAgICBwYXNf
ZmFzdF9tZWdhcGFnZV90YWJsZSogdGFibGUsCiAgICAgcGFzX3BhZ2VfYmFzZV9jb25maWcqIGNv
bmZpZywKICAgICBwYXNfZmFzdF9tZWdhcGFnZV9raW5kIGtpbmQsCi0gICAgYm9vbCBzaG91bGRf
emVybykKKyAgICBib29sIHNob3VsZF96ZXJvLAorICAgIHBhc19oZWFwKiBoZWFwLAorICAgIHBh
c19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogewogICAgIHBhc19t
ZWdhcGFnZV9jYWNoZV9jb25maWcgY2FjaGVfY29uZmlnOwogICAgIHRhYmxlX3NldF9ieV9pbmRl
eF9kYXRhIGRhdGE7CkBAIC03OCw3ICs4MCw3IEBAIHZvaWQqIHBhc19mYXN0X21lZ2FwYWdlX2Nh
Y2hlX3RyeV9hbGxvY2EKICAgICBjYWNoZV9jb25maWcudGFibGVfc2V0X2J5X2luZGV4X2FyZyA9
ICZkYXRhOwogICAgIGNhY2hlX2NvbmZpZy5zaG91bGRfemVybyA9IHNob3VsZF96ZXJvOwogICAg
IAotICAgIHJldHVybiBwYXNfbWVnYXBhZ2VfY2FjaGVfdHJ5X2FsbG9jYXRlKGNhY2hlLCAmY2Fj
aGVfY29uZmlnKTsKKyAgICByZXR1cm4gcGFzX21lZ2FwYWdlX2NhY2hlX3RyeV9hbGxvY2F0ZShj
YWNoZSwgJmNhY2hlX2NvbmZpZywgaGVhcCwgdHJhbnNhY3Rpb24pOwogfQogCiAjZW5kaWYgLyog
TElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19mYXN0X21lZ2FwYWdlX2NhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfbWVnYXBhZ2VfY2FjaGUuaAkocmV2aXNpb24gMjgy
MjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Zhc3RfbWVnYXBh
Z2VfY2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAi
cGFzX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19mYXN0X21lZ2FwYWdlX2tpbmQuaCIKKyNpbmNs
dWRlICJwYXNfaGVhcF9yZWYuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9oZWFkZXJfcGxhY2VtZW50
X21vZGUuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApAQCAtMzYsOSArMzcsMTEgQEAgUEFT
X0JFR0lOX0VYVEVSTl9DOwogc3RydWN0IHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlOwogc3RydWN0
IHBhc19tZWdhcGFnZV9jYWNoZTsKIHN0cnVjdCBwYXNfcGFnZV9iYXNlX2NvbmZpZzsKK3N0cnVj
dCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2Zh
c3RfbWVnYXBhZ2VfdGFibGUgcGFzX2Zhc3RfbWVnYXBhZ2VfdGFibGU7CiB0eXBlZGVmIHN0cnVj
dCBwYXNfbWVnYXBhZ2VfY2FjaGUgcGFzX21lZ2FwYWdlX2NhY2hlOwogdHlwZWRlZiBzdHJ1Y3Qg
cGFzX3BhZ2VfYmFzZV9jb25maWcgcGFzX3BhZ2VfYmFzZV9jb25maWc7Cit0eXBlZGVmIHN0cnVj
dCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uIHBhc19waHlzaWNhbF9tZW1vcnlfdHJh
bnNhY3Rpb247CiAKIC8qIEFsbG9jYXRlcyBhIHNtYWxsIHBhZ2UgYWxpZ25lZCB0aGUgd2F5IHRo
YXQgdGhlIHR5cGUtc2FmZSBoZWFwIGRlbWFuZHMgYW5kIHJldHVybnMgdGhlCiAgICBiYXNlIG9u
IHRoZSBhbGxvY2F0aW9uLiBUaGlzIGlzIGd1YXJhbnRlZWQgdG8gcmV0dXJuZWQgemVyb2VkIG1l
bW9yeS4gKi8KQEAgLTQ3LDcgKzUwLDkgQEAgUEFTX0FQSSB2b2lkKiBwYXNfZmFzdF9tZWdhcGFn
ZV9jYWNoZV90cgogICAgIHBhc19mYXN0X21lZ2FwYWdlX3RhYmxlKiB0YWJsZSwKICAgICBwYXNf
cGFnZV9iYXNlX2NvbmZpZyogY29uZmlnLAogICAgIHBhc19mYXN0X21lZ2FwYWdlX2tpbmQga2lu
ZCwKLSAgICBib29sIHNob3VsZF96ZXJvKTsKKyAgICBib29sIHNob3VsZF96ZXJvLAorICAgIHBh
c19oZWFwKiBoZWFwLAorICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uKTsKIAogUEFTX0VORF9FWFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Z1bGxfYWxsb2NfYml0c19p
bmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19mdWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCwxOSArMzAsMTkgQEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5o
IgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxp
bmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKKyNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19mdWxsX2FsbG9jX2JpdHMKIHBhc19mdWxsX2FsbG9j
X2JpdHNfY3JlYXRlX2Zvcl9leGNsdXNpdmUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZp
ZykKIHsKICAgICByZXR1cm4gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGUoCiAgICAgICAgIHBh
c19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAg
ICZwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25f
bnVsbCgKKyAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0
cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAgICZkaXJlY3RvcnktPmRhdGEpLT5mdWxs
X2FsbG9jX2JpdHMpLAogICAgICAgICAwLAogICAgICAgICAodW5zaWduZWQpcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX3dvcmRzKHBhZ2VfY29uZmlnKSk7CkBAIC02NCwxMCAr
NjQsMTAgQEAgcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3BhcnRpYWwocAogc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHBhc19mdWxsX2FsbG9jX2JpdHMKIHBhc19mdWxsX2FsbG9jX2Jp
dHNfY3JlYXRlX2Zvcl92aWV3X2FuZF9kaXJlY3RvcnkoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
dyB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7Ci0gICAgaWYgKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaCh2aWV3KSkKKyAgICBpZiAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSkKICAgICAgICAgcmV0dXJuIHBhc19m
dWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl9leGNsdXNpdmUoZGlyZWN0b3J5LCBwYWdlX2NvbmZp
Zyk7CiAKICAgICByZXR1cm4gcGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX3BhcnRpYWwo
dmlldyk7CkBAIC03OCw5ICs3OCw5IEBAIHBhc19mdWxsX2FsbG9jX2JpdHNfY3JlYXRlX2Zvcl92
aWV3KAogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19leGNsdXNpdmVfaXNoKHZpZXcpKSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgICAgIHNpemVfZGlyZWN0b3J5ID0g
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmll
dykpIHsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0
b3J5OworICAgICAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCiAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5kaXJlY3RvcnkpOwogICAgICAgICByZXR1cm4g
cGFzX2Z1bGxfYWxsb2NfYml0c19jcmVhdGVfZm9yX2V4Y2x1c2l2ZShzaXplX2RpcmVjdG9yeSwg
cGFnZV9jb25maWcpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19nZXRfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19nZXRfaGVhcC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZ2V0X2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUEFTX0dFVF9IRUFQX0gKICNkZWZpbmUgUEFTX0dFVF9I
RUFQX0gKIAotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeS5oIgorI2luY2x1
ZGUgInBhc19iaXRmaXRfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX2hlYXAuaCIKICNpbmNs
dWRlICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfbWFwLmgiCkBAIC01
OCwxMCArNTgsMTAgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19oZWFwKiBwYXNfZwog
ICAgICAgICAgICAgICAgIGJlZ2luLCBjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpLT5o
ZWFwKTsKICAgICBjYXNlIHBhc19zbWFsbF9iaXRmaXRfZmFzdF9tZWdhcGFnZV9raW5kOgogICAg
ICAgICByZXR1cm4gcGFzX2hlYXBfZm9yX3NlZ3JlZ2F0ZWRfaGVhcCgKLSAgICAgICAgICAgIHBh
c19jb21wYWN0X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgK
ICAgICAgICAgICAgICAgICAmcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF92aWV3X3B0cl9sb2Fk
X25vbl9udWxsKAogICAgICAgICAgICAgICAgICAgICAmcGFzX2JpdGZpdF9wYWdlX2Zvcl9hZGRy
ZXNzX2FuZF9wYWdlX2NvbmZpZygKLSAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luLCBjb25m
aWcuc21hbGxfYml0Zml0X2NvbmZpZyktPm93bmVyKS0+Z2xvYmFsX2RpcmVjdG9yeSktPmhlYXAp
OworICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4sIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29u
ZmlnKS0+b3duZXIpLT5kaXJlY3RvcnkpLT5oZWFwKTsKICAgICBjYXNlIHBhc19ub3RfYV9mYXN0
X21lZ2FwYWdlX2tpbmQ6IHsKICAgICAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZV9iYXNlOwogICAg
ICAgICBwYXNfbGFyZ2VfbWFwX2VudHJ5IGVudHJ5OwpAQCAtODUsOSArODUsOSBAQCBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgcGFzX2hlYXAqIHBhc19nCiAgICAgICAgICAgICBjYXNlIHBhc19t
ZWRpdW1fYml0Zml0X3BhZ2Vfa2luZDoKICAgICAgICAgICAgIGNhc2UgcGFzX21hcmdlX2JpdGZp
dF9wYWdlX2tpbmQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhc19oZWFwX2Zvcl9zZWdyZWdh
dGVkX2hlYXAoCi0gICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9nbG9iYWxf
ZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAgICAgICAgICBwYXNfY29t
cGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAg
ICAgICAgICAgJnBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJfbG9hZF9ub25fbnVs
bCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFzX3BhZ2VfYmFzZV9nZXRfYml0Zml0
KHBhZ2VfYmFzZSktPm93bmVyKS0+Z2xvYmFsX2RpcmVjdG9yeSktPmhlYXApOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZwYXNfcGFnZV9iYXNlX2dldF9iaXRmaXQocGFnZV9iYXNlKS0+
b3duZXIpLT5kaXJlY3RvcnkpLT5oZWFwKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFBB
U19BU1NFUlQoISJCYWQgcGFnZSBraW5kIik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuYwkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAu
Ywkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgInBhc19sb2cuaCIK
ICNpbmNsdWRlICJwYXNfbW9ub3RvbmljX3RpbWUuaCIKICNpbmNsdWRlICJwYXNfcHJpbWl0aXZl
X2hlYXBfcmVmLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKIAogcGFz
X2hlYXAqIHBhc19oZWFwX2NyZWF0ZShwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9raW5kLApAQCAtMTgy
LDcgKzE4Miw3IEBAIHZvaWQgcGFzX2hlYXBfcmVzZXRfaGVhcF9yZWYocGFzX2hlYXAqIGgKICAg
ICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CiB9CiAKLXBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KgogcGFzX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudF9zbG93KAogICAgIHBh
c19oZWFwKiBoZWFwLAogICAgIHNpemVfdCBjb3VudCwKQEAgLTE5MSwxMSArMTkxLDEyIEBAIHBh
c19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291bnQKICAgICBwYXNfaGVhcF9jb25m
aWcqIGNvbmZpZywKICAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KQogewotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcmVzdWx0OworICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CiAgICAgCiAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7
CiAgICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX2NvdW50KAotICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLCBjb3VudCwgYWxpZ25t
ZW50LCBmb3JjZV9jb3VudF9sb29rdXAsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKKyAgICAgICAg
JmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwgY291bnQsIGFsaWdubWVudCwgZm9yY2VfY291bnRfbG9v
a3VwLCBjb25maWcsIGNhY2hlZF9pbmRleCwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZnVsbF9jcmVhdGlvbl9tb2RlKTsKICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygp
OwogICAgIAogICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19oZWFwLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDEx
ICszNSwxMSBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfaGVhcDsKIHN0cnVj
dCBwYXNfaGVhcF9yZWY7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5Oworc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Owogc3RydWN0IHBhc19z
ZWdyZWdhdGVkX3BhZ2U7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcCBwYXNfaGVhcDsKIHR5cGVk
ZWYgc3RydWN0IHBhc19oZWFwX3JlZiBwYXNfaGVhcF9yZWY7Ci10eXBlZGVmIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9wYWdlIHBhc19zZWdyZWdhdGVkX3BhZ2U7CiAKIHN0cnVjdCBwYXNfaGVhcCB7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9j
b25maWcuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAK
ICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWdfa2luZC5oIgogI2luY2x1ZGUgInBhc19oZWFwX3Jl
Zi5oIgogI2luY2x1ZGUgInBhc19oZWFwX3JlZl9raW5kLmgiCi0jaW5jbHVkZSAicGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oIgorI2luY2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3Vs
dC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tpbmQuaCIKICNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc191dGlscy5o
IgpAQCAtODYsNyArODYsOCBAQCB0eXBlZGVmIGJvb2wgKCpwYXNfaGVhcF9jb25maWdfZm9yX2Vh
Y2hfCiB0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogKCpwYXNfaGVhcF9jb25maWdfc3Bl
Y2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zZWdyZWdhdGVkX3Ns
b3cpKAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKLSAgICBwYXNfYWxsb2Nh
dG9yX2NvdW50cyogY291bnRzKTsKKyAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzLAor
ICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcik7CiB0eXBlZGVm
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogKCpwYXNfaGVhcF9jb25maWdfc3BlY2lhbGl6ZWRfbG9j
YWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9tZWRpdW1fc2VncmVnYXRlZF93aXRoX2ZyZWVfYml0
cykoCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKTsKQEAgLTk2LDggKzk3LDkg
QEAgdHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfaGVhcAogICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKICAgICBzaXplX3Qgc2l6ZSwKICAgICBzaXplX3QgYWxp
Z25tZW50LAotICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpOwotdHlwZWRlZiBwYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX2hlYXBfY29uZmlnX3NwZWNpYWxpemVk
X3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KSgKKyAgICBwYXNfYWxsb2NhdG9yX2NvdW50
cyogY291bnRzLAorICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRl
cik7Cit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc19oZWFwX2NvbmZpZ19zcGVj
aWFsaXplZF90cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdykoCiAgICAgcGFzX2hlYXBfcmVm
KiBoZWFwX3JlZiwKICAgICBwYXNfaGVhcF9yZWZfa2luZCBoZWFwX3JlZl9raW5kLAogICAgIHNp
emVfdCBhbGlnbmVkX2NvdW50LCAvKiBNdXN0IGJlID0gcm91bmRfdXAoY291bnQgKiB0eXBlX3Np
emUsIGFsaWdubWVudCkgLyB0eXBlX3NpemUgKi8KQEAgLTIwMCw3ICsyMDIsOCBAQCBzdHJ1Y3Qg
cGFzX2hlYXBfY29uZmlnIHsKICNkZWZpbmUgUEFTX0hFQVBfQ09ORklHX1NQRUNJQUxJWkFUSU9O
X0RFQ0xBUkFUSU9OUyhsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUpIFwKICAgICBQQVNfQVBJ
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbG93ZXJfY2FzZV9oZWFwX2NvbmZpZ19uYW1l
ICMjIF9zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxsX3NlZ3Jl
Z2F0ZWRfc2xvdyggXAotICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIHBh
c19hbGxvY2F0b3JfY291bnRzKiBjb3VudCk7IFwKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
ciogYWxsb2NhdG9yLCBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnQsIFwKKyAgICAgICAgcGFz
X2FsbG9jYXRpb25fcmVzdWx0X2ZpbHRlciByZXN1bHRfZmlsdGVyKTsgXAogICAgIFBBU19BUEkg
cGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUg
IyMgX3NwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfaW5saW5lX2Nhc2Vz
KCBcCiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcik7IFwKQEAgLTIxMiw4
ICsyMTUsOSBAQCBzdHJ1Y3QgcGFzX2hlYXBfY29uZmlnIHsKICAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yLCBcCiAgICAgICAgIHNpemVfdCBzaXplLCBcCiAgICAgICAgIHNp
emVfdCBhbGlnbm1lbnQsIFwKLSAgICAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cyk7
IFwKLSAgICBQQVNfQVBJIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgXAorICAgICAg
ICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzLCBcCisgICAgICAgIHBhc19hbGxvY2F0aW9u
X3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcik7IFwKKyAgICBQQVNfQVBJIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdCBcCiAgICAgbG93ZXJfY2FzZV9oZWFwX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFs
aXplZF90cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdyggXAogICAgICAgICBwYXNfaGVhcF9y
ZWYqIGhlYXBfcmVmLCBcCiAgICAgICAgIHBhc19oZWFwX3JlZl9raW5kIGhlYXBfcmVmX2tpbmQs
IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZp
Z19pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX2lubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMzYsMTAgKzM2LDExIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICNkZWZp
bmUgUEFTX0hFQVBfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFRklOSVRJT05TKGxvd2VyX2Nhc2Vf
aGVhcF9jb25maWdfbmFtZSwgaGVhcF9jb25maWdfdmFsdWUpIFwKICAgICBQQVNfTkVWRVJfSU5M
SU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbG93ZXJfY2FzZV9oZWFwX2NvbmZpZ19u
YW1lICMjIF9zcGVjaWFsaXplZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxsX3Nl
Z3JlZ2F0ZWRfc2xvdyggXAotICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3Is
IHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudCkgXAorICAgICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yKiBhbGxvY2F0b3IsIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudCwgXAorICAgICAgICBw
YXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0ZXIpIFwKICAgICB7IFwKICAg
ICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxsX3NlZ3Jl
Z2F0ZWRfc2xvdyggXAotICAgICAgICAgICAgYWxsb2NhdG9yLCAoaGVhcF9jb25maWdfdmFsdWUp
LCBjb3VudCk7IFwKKyAgICAgICAgICAgIGFsbG9jYXRvciwgKGhlYXBfY29uZmlnX3ZhbHVlKSwg
Y291bnQsIHJlc3VsdF9maWx0ZXIpOyBcCiAgICAgfSBcCiAgICAgXAogICAgIFBBU19ORVZFUl9J
TkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKQEAgLTYyLDEzICs2MywxNCBAQCBQQVNfQkVH
SU5fRVhURVJOX0M7CiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgXAog
ICAgICAgICBzaXplX3Qgc2l6ZSwgXAogICAgICAgICBzaXplX3QgYWxpZ25tZW50LCBcCi0gICAg
ICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpIFwKKyAgICAgICAgcGFzX2FsbG9jYXRv
cl9jb3VudHMqIGNvdW50cywgXAorICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVy
IHJlc3VsdF9maWx0ZXIpIFwKICAgICB7IFwKICAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxv
Y2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3coIFwKLSAgICAgICAgICAgIGFsbG9jYXRvciwgc2l6ZSwg
YWxpZ25tZW50LCAoaGVhcF9jb25maWdfdmFsdWUpLCBjb3VudHMpOyBcCisgICAgICAgICAgICBh
bGxvY2F0b3IsIHNpemUsIGFsaWdubWVudCwgKGhlYXBfY29uZmlnX3ZhbHVlKSwgY291bnRzLCBy
ZXN1bHRfZmlsdGVyKTsgXAogICAgIH0gXAogICAgIFwKLSAgICBQQVNfTkVWRVJfSU5MSU5FIHBh
c19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgXAorICAgIFBBU19ORVZFUl9JTkxJTkUgcGFz
X2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBsb3dlcl9jYXNlX2hlYXBfY29uZmlnX25hbWUgIyMg
X3NwZWNpYWxpemVkX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KCBcCiAgICAgICAgIHBh
c19oZWFwX3JlZiogaGVhcF9yZWYsIFwKICAgICAgICAgcGFzX2hlYXBfcmVmX2tpbmQgaGVhcF9y
ZWZfa2luZCwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfY29uZmlnX3V0aWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oCSh3
b3JraW5nIGNvcHkpCkBAIC03MCw3ICs3MCw4IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICBzaXpl
X3Qgc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemU7CiAgICAgZG91YmxlIHNtYWxsX3NlZ3JlZ2F0
ZWRfd2FzdGVhZ2VfaGFuZGljYXA7CiAgICAgYm9vbCBzbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9l
bXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbjsKLSAgICBib29sIHNtYWxsX3VzZV9y
ZXZlcnNlZF9jdXJyZW50X3dvcmQ7CisgICAgYm9vbCBzbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZl
cnNlZF9jdXJyZW50X3dvcmQ7CisgICAgYm9vbCBlbmFibGVfdmlld19jYWNoZTsKICAgICBib29s
IHVzZV9zbWFsbF9iaXRmaXQ7CiAgICAgdWludDhfdCBzbWFsbF9iaXRmaXRfbWluX2FsaWduX3No
aWZ0OwogICAgIHNpemVfdCBzbWFsbF9iaXRmaXRfcGFnZV9zaXplOwpAQCAtMTM0LDEwICsxMzUs
MTIgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25m
aWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFu
ZGljYXAsIFwKICAgICAgICAgLmRlYWxsb2NfZnVuYyA9IG5hbWUgIyMgX3NtYWxsX3NlZ3JlZ2F0
ZWRfZGVhbGxvY19mdW5jLCBcCiAgICAgICAgIC51c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkID0g
XAotICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FS
R1NfX30pLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQsIFwKKyAgICAgICAgICAgICgo
cGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdy
ZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQsIFwKICAgICAgICAgLmNoZWNrX2RlYWxs
b2NhdGlvbiA9ICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199
KS5jaGVja19kZWFsbG9jYXRpb24sIFwKICAgICAgICAgLmVuYWJsZV9lbXB0eV93b3JkX2VsaWdp
YmlsaXR5X29wdGltaXphdGlvbiA9IFwKICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0
eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiwgXAorICAgICAgICAuZW5hYmxlX3ZpZXdf
Y2FjaGUgPSBcCisgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMp
e19fVkFfQVJHU19ffSkuZW5hYmxlX3ZpZXdfY2FjaGUsIFwKICAgICAgICAgLnNoYXJlZF9wYWdl
X2RpcmVjdG9yeV9zZWxlY3RvciA9IFwKICAgICAgICAgICAgIG5hbWUgIyMgX3NtYWxsX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfc2VsZWN0X3NoYXJlZF9wYWdlX2RpcmVjdG9yeSwgXAogICAgICAg
ICBQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19TUEVDSUFMSVpBVElPTlMobmFtZSAjIyBfc21h
bGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZykgXApAQCAtMTg1LDYgKzE4OCw4IEBAIHR5cGVkZWYg
c3RydWN0IHsKICAgICAgICAgLnVzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBmYWxzZSwgXAog
ICAgICAgICAuY2hlY2tfZGVhbGxvY2F0aW9uID0gKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJn
dW1lbnRzKXtfX1ZBX0FSR1NfX30pLmNoZWNrX2RlYWxsb2NhdGlvbiwgXAogICAgICAgICAuZW5h
YmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0gZmFsc2UsIFwKKyAgICAg
ICAgLmVuYWJsZV92aWV3X2NhY2hlID0gXAorICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9j
b25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLmVuYWJsZV92aWV3X2NhY2hlLCBcCiAgICAg
ICAgIC5zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3IgPSBcCiAgICAgICAgICAgICBuYW1l
ICMjIF9tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19zZWxlY3Rfc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5LCBcCiAgICAgICAgIFBBU19TRUdSRUdBVEVEX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFU
SU9OUyhuYW1lICMjIF9tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZykgXApAQCAtMjE5LDEy
ICsyMjQsMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAoKHBhc19i
YXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3Bh
Z2Vfc2l6ZSwgXAogICAgICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19h
cmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X3BhZ2Vfc2l6ZSwgXAogICAgICAg
ICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJH
U19ffSkuc21hbGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCksIFwKLSAgICAgICAgICAgIC5tYXhf
b2JqZWN0X3NpemUgPSBQQVNfTUFYX09CSkVDVF9TSVpFKCBcCisgICAgICAgICAgICAubWF4X29i
amVjdF9zaXplID0gUEFTX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUoIFwKICAgICAgICAgICAgICAg
ICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxf
Yml0Zml0X3BhZ2Vfc2l6ZSAtIFwKICAgICAgICAgICAgICAgICBQQVNfQklURklUX1BBR0VfSEVB
REVSX1NJWkUoIFwKICAgICAgICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdf
YXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUsIFwKICAgICAg
ICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FS
R1NfX30pLnNtYWxsX2JpdGZpdF9wYWdlX3NpemUsIFwKLSAgICAgICAgICAgICAgICAgICAgKChw
YXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLnNtYWxsX2JpdGZp
dF9taW5fYWxpZ25fc2hpZnQpKSwgXAorICAgICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19o
ZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X21pbl9hbGln
bl9zaGlmdCksIFwKKyAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1
bWVudHMpe19fVkFfQVJHU19ffSkuc21hbGxfYml0Zml0X21pbl9hbGlnbl9zaGlmdCksIFwKICAg
ICAgICAgICAgIC5wYWdlX2FsbG9jYXRvciA9IG5hbWUgIyMgX2hlYXBfY29uZmlnX2FsbG9jYXRl
X3NtYWxsX2JpdGZpdF9wYWdlLCBcCiAgICAgICAgICAgICAuY3JlYXRlX3BhZ2VfaGVhZGVyID0g
bmFtZSAjIyBfc21hbGxfYml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlciwgXAogICAgICAgICAgICAg
LmRlc3Ryb3lfcGFnZV9oZWFkZXIgPSBuYW1lICMjIF9zbWFsbF9iaXRmaXRfZGVzdHJveV9wYWdl
X2hlYWRlciBcCkBAIC0yNTYsOCArMjYyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAg
ICAgLnBhZ2Vfb2JqZWN0X3BheWxvYWRfb2Zmc2V0ID0gMCwgXAogICAgICAgICAgICAgLnBhZ2Vf
b2JqZWN0X3BheWxvYWRfc2l6ZSA9IFwKICAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFw
X2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19ffSkubWVkaXVtX3BhZ2Vfc2l6ZSwgXAotICAg
ICAgICAgICAgLm1heF9vYmplY3Rfc2l6ZSA9IFBBU19NQVhfT0JKRUNUX1NJWkUoIFwKLSAgICAg
ICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1bWVudHMpe19fVkFfQVJHU19f
fSkubWVkaXVtX3BhZ2Vfc2l6ZSksIFwKKyAgICAgICAgICAgIC5tYXhfb2JqZWN0X3NpemUgPSBQ
QVNfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSggXAorICAgICAgICAgICAgICAgICgocGFzX2Jhc2lj
X2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tZWRpdW1fcGFnZV9zaXplLCBc
CisgICAgICAgICAgICAgICAgKChwYXNfYmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZB
X0FSR1NfX30pLm1lZGl1bV9iaXRmaXRfbWluX2FsaWduX3NoaWZ0KSwgXAogICAgICAgICAgICAg
LnBhZ2VfYWxsb2NhdG9yID0gbmFtZSAjIyBfaGVhcF9jb25maWdfYWxsb2NhdGVfbWVkaXVtX2Jp
dGZpdF9wYWdlLCBcCiAgICAgICAgICAgICAuY3JlYXRlX3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBf
bWVkaXVtX2JpdGZpdF9jcmVhdGVfcGFnZV9oZWFkZXIsIFwKICAgICAgICAgICAgIC5kZXN0cm95
X3BhZ2VfaGVhZGVyID0gbmFtZSAjIyBfbWVkaXVtX2JpdGZpdF9kZXN0cm95X3BhZ2VfaGVhZGVy
IFwKQEAgLTI4OSw4ICsyOTYsOSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgICAgICAucGFn
ZV9vYmplY3RfcGF5bG9hZF9vZmZzZXQgPSAwLCBcCiAgICAgICAgICAgICAucGFnZV9vYmplY3Rf
cGF5bG9hZF9zaXplID0gXAogICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmln
X2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5tYXJnZV9iaXRmaXRfcGFnZV9zaXplLCBcCi0gICAg
ICAgICAgICAubWF4X29iamVjdF9zaXplID0gUEFTX01BWF9PQkpFQ1RfU0laRSggXAotICAgICAg
ICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29uZmlnX2FyZ3VtZW50cyl7X19WQV9BUkdTX199
KS5tYXJnZV9iaXRmaXRfcGFnZV9zaXplKSwgXAorICAgICAgICAgICAgLm1heF9vYmplY3Rfc2l6
ZSA9IFBBU19NQVhfQklURklUX09CSkVDVF9TSVpFKCBcCisgICAgICAgICAgICAgICAgKChwYXNf
YmFzaWNfaGVhcF9jb25maWdfYXJndW1lbnRzKXtfX1ZBX0FSR1NfX30pLm1hcmdlX2JpdGZpdF9w
YWdlX3NpemUsIFwKKyAgICAgICAgICAgICAgICAoKHBhc19iYXNpY19oZWFwX2NvbmZpZ19hcmd1
bWVudHMpe19fVkFfQVJHU19ffSkubWFyZ2VfYml0Zml0X21pbl9hbGlnbl9zaGlmdCksIFwKICAg
ICAgICAgICAgIC5wYWdlX2FsbG9jYXRvciA9IG5hbWUgIyMgX2hlYXBfY29uZmlnX2FsbG9jYXRl
X21hcmdlX2JpdGZpdF9wYWdlLCBcCiAgICAgICAgICAgICAuY3JlYXRlX3BhZ2VfaGVhZGVyID0g
bmFtZSAjIyBfbWFyZ2VfYml0Zml0X2NyZWF0ZV9wYWdlX2hlYWRlciwgXAogICAgICAgICAgICAg
LmRlc3Ryb3lfcGFnZV9oZWFkZXIgPSBuYW1lICMjIF9tYXJnZV9iaXRmaXRfZGVzdHJveV9wYWdl
X2hlYWRlciBcCkBAIC0zNDksMTIgKzM1NywxNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgXAog
ICAgIFBBU19BUEkgZXh0ZXJuIHBhc19iYXNpY19oZWFwX2NvbmZpZ19yb290X2RhdGEgbmFtZSAj
IyBfcm9vdF9kYXRhOyBcCiAgICAgXAotICAgIFBBU19BUEkgdm9pZCogbmFtZSAjIyBfaGVhcF9j
b25maWdfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9wYWdlKHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXApOyBcCi0gICAgUEFTX0FQSSB2b2lkKiBuYW1lICMjIF9oZWFwX2NvbmZpZ19hbGxvY2F0
ZV9zbWFsbF9iaXRmaXRfcGFnZShwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwKTsgXAotICAgIFBB
U19BUEkgdm9pZCogbmFtZSAjIyBfaGVhcF9jb25maWdfYWxsb2NhdGVfbWVkaXVtX3NlZ3JlZ2F0
ZWRfcGFnZShwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwKTsgXAotICAgIFBBU19BUEkgdm9pZCog
bmFtZSAjIyBfaGVhcF9jb25maWdfYWxsb2NhdGVfbWVkaXVtX2JpdGZpdF9wYWdlKHBhc19zZWdy
ZWdhdGVkX2hlYXAqIGhlYXApOyBcCi0gICAgUEFTX0FQSSB2b2lkKiBuYW1lICMjIF9oZWFwX2Nv
bmZpZ19hbGxvY2F0ZV9tYXJnZV9zZWdyZWdhdGVkX3BhZ2UocGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCk7IFwKLSAgICBQQVNfQVBJIHZvaWQqIG5hbWUgIyMgX2hlYXBfY29uZmlnX2FsbG9jYXRl
X21hcmdlX2JpdGZpdF9wYWdlKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXApOyBcCisgICAgUEFT
X0FQSSB2b2lkKiBuYW1lICMjIF9oZWFwX2NvbmZpZ19hbGxvY2F0ZV9zbWFsbF9zZWdyZWdhdGVk
X3BhZ2UoIFwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2Fs
X21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pOyBcCisgICAgUEFTX0FQSSB2b2lkKiBu
YW1lICMjIF9oZWFwX2NvbmZpZ19hbGxvY2F0ZV9zbWFsbF9iaXRmaXRfcGFnZSggXAorICAgICAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbik7IFwKKyAgICBQQVNfQVBJIHZvaWQqIG5hbWUgIyMgX2hlYXBfY29u
ZmlnX2FsbG9jYXRlX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2UoIFwKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNh
Y3Rpb24pOyBcCisgICAgUEFTX0FQSSB2b2lkKiBuYW1lICMjIF9oZWFwX2NvbmZpZ19hbGxvY2F0
ZV9tZWRpdW1fYml0Zml0X3BhZ2UoIFwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVh
cCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pOyBcCisgICAg
UEFTX0FQSSB2b2lkKiBuYW1lICMjIF9oZWFwX2NvbmZpZ19hbGxvY2F0ZV9tYXJnZV9iaXRmaXRf
cGFnZSggXAorICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxf
bWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7IFwKICAgICBcCiAgICAgUEFTX0FQSSB2
b2lkKiBuYW1lICMjIF9wcmVwYXJlX3RvX2VudW1lcmF0ZShwYXNfZW51bWVyYXRvciogZW51bWVy
YXRvcik7IFwKICAgICBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfaGVhcF9jb25maWdfdXRpbHNfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHJl
dmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwX2NvbmZpZ191dGlsc19pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcg
QEAgUEFTX0FQSSB2b2lkKiBwYXNfaGVhcF9jb25maWdfdXRpbHNfcHJlcAogCiB0eXBlZGVmIHN0
cnVjdCB7CiAgICAgYm9vbCBhbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvOworICAgIHBhc19oZWFw
X3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplX2NhbGxi
YWNrIGludHJpbnNpY19wcmltaXRpdmVfdmlld19jYWNoZV9jYXBhY2l0eTsKIH0gcGFzX2Jhc2lj
X2hlYXBfY29uZmlnX2RlZmluaXRpb25zX2FyZ3VtZW50czsKIAogI2RlZmluZSBQQVNfQkFTSUNf
SEVBUF9DT05GSUdfREVGSU5JVElPTlMobmFtZSwgdXBjYXNlX25hbWUsIC4uLikgXApAQCAtNjUs
MTAgKzY2LDE0IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgICAgICAgICBQQVNfSU5UUklO
U0lDX1BSSU1JVElWRV9CT1VORF9GT1JfUEFSVElBTF9WSUVXUywgXAogICAgICAgICAgICAgLmRp
cmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0gXAogICAgICAgICAg
ICAgICAgIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FU
T1JTLCBcCisgICAgICAgICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2Fj
aGUgPSBcCisgICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfQk9VTkRfRk9S
X05PX1ZJRVdfQ0FDSEUsIFwKICAgICAgICAgICAgIC5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6
ZSA9IFwKICAgICAgICAgICAgICAgICBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9NQVhfU0VHUkVH
QVRFRF9PQkpFQ1RfU0laRSwgXAogICAgICAgICAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUg
PSBcCi0gICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFYX0JJVEZJVF9P
QkpFQ1RfU0laRSBcCisgICAgICAgICAgICAgICAgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfTUFY
X0JJVEZJVF9PQkpFQ1RfU0laRSwgXAorICAgICAgICAgICAgLnZpZXdfY2FjaGVfY2FwYWNpdHlf
Zm9yX29iamVjdF9zaXplID0gXAorICAgICAgICAgICAgICAgICgocGFzX2Jhc2ljX2hlYXBfY29u
ZmlnX2RlZmluaXRpb25zX2FyZ3VtZW50cyl7X19WQV9BUkdTX199KS5pbnRyaW5zaWNfcHJpbWl0
aXZlX3ZpZXdfY2FjaGVfY2FwYWNpdHksIFwKICAgICAgICAgfSwgXAogICAgICAgICAucGFnZV9j
YWNoZXMgPSAmbmFtZSAjIyBfcGFnZV9jYWNoZXMgXAogICAgIH07IFwKQEAgLTgzLDEwICs4OCwx
MyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9CT1VO
RF9GT1JfUEFSVElBTF9WSUVXUywgXAogICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5k
X2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0gXAogICAgICAgICAgICAgICAgIFBBU19QUklNSVRJ
VkVfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMsIFwKKyAgICAgICAgICAgIC5kaXJlY3Rv
cnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IFwKKyAgICAgICAgICAgICAgICBQQVNf
UFJJTUlUSVZFX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFLCBcCiAgICAgICAgICAgICAubWF4X3Nl
Z3JlZ2F0ZWRfb2JqZWN0X3NpemUgPSBcCiAgICAgICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9N
QVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwgXAogICAgICAgICAgICAgLm1heF9iaXRmaXRfb2Jq
ZWN0X3NpemUgPSBcCi0gICAgICAgICAgICAgICAgUEFTX1BSSU1JVElWRV9NQVhfQklURklUX09C
SkVDVF9TSVpFIFwKKyAgICAgICAgICAgICAgICBQQVNfUFJJTUlUSVZFX01BWF9CSVRGSVRfT0JK
RUNUX1NJWkUsIFwKKyAgICAgICAgICAgIC52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rf
c2l6ZSA9IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9jYXBhY2l0eSwg
XAogICAgICAgICB9LCBcCiAgICAgICAgIC5wYWdlX2NhY2hlcyA9ICZuYW1lICMjIF9wYWdlX2Nh
Y2hlcyBcCiAgICAgfTsgXApAQCAtMTAxLDEwICsxMDksMTMgQEAgdHlwZWRlZiBzdHJ1Y3Qgewog
ICAgICAgICAgICAgICAgIFBBU19UWVBFRF9CT1VORF9GT1JfUEFSVElBTF9WSUVXUywgXAogICAg
ICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxvY2F0b3JzID0g
XAogICAgICAgICAgICAgICAgIFBBU19UWVBFRF9CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9S
UywgXAorICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hl
ID0gXAorICAgICAgICAgICAgICAgIFBBU19UWVBFRF9CT1VORF9GT1JfTk9fVklFV19DQUNIRSwg
XAogICAgICAgICAgICAgLm1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplID0gXAogICAgICAgICAg
ICAgICAgIFBBU19UWVBFRF9NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwgXAogICAgICAgICAg
ICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBcCi0gICAgICAgICAgICAgICAgUEFTX1RZUEVE
X01BWF9CSVRGSVRfT0JKRUNUX1NJWkUgXAorICAgICAgICAgICAgICAgIFBBU19UWVBFRF9NQVhf
QklURklUX09CSkVDVF9TSVpFLCBcCisgICAgICAgICAgICAudmlld19jYWNoZV9jYXBhY2l0eV9m
b3Jfb2JqZWN0X3NpemUgPSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVf
Y2FwYWNpdHksIFwKICAgICAgICAgfSwgXAogICAgICAgICAucGFnZV9jYWNoZXMgPSAmbmFtZSAj
IyBfcGFnZV9jYWNoZXMgXAogICAgIH07IFwKQEAgLTExOSwxNSArMTMwLDE5IEBAIHR5cGVkZWYg
c3RydWN0IHsKICAgICAgICAgICAgICAgICBQQVNfT0JKQ19CT1VORF9GT1JfUEFSVElBTF9WSUVX
UywgXAogICAgICAgICAgICAgLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxv
Y2F0b3JzID0gXAogICAgICAgICAgICAgICAgIFBBU19PQkpDX0JPVU5EX0ZPUl9CQVNFTElORV9B
TExPQ0FUT1JTLCBcCisgICAgICAgICAgICAuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3Zp
ZXdfY2FjaGUgPSBcCisgICAgICAgICAgICAgICAgUEFTX09CSkNfQk9VTkRfRk9SX05PX1ZJRVdf
Q0FDSEUsIFwKICAgICAgICAgICAgIC5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9IFwKICAg
ICAgICAgICAgICAgICBQQVNfT0JKQ19NQVhfU0VHUkVHQVRFRF9PQkpFQ1RfU0laRSwgXAogICAg
ICAgICAgICAgLm1heF9iaXRmaXRfb2JqZWN0X3NpemUgPSBcCi0gICAgICAgICAgICAgICAgUEFT
X09CSkNfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSBcCisgICAgICAgICAgICAgICAgUEFTX09CSkNf
TUFYX0JJVEZJVF9PQkpFQ1RfU0laRSwgXAorICAgICAgICAgICAgLnZpZXdfY2FjaGVfY2FwYWNp
dHlfZm9yX29iamVjdF9zaXplID0gcGFzX2hlYXBfcnVudGltZV9jb25maWdfemVyb192aWV3X2Nh
Y2hlX2NhcGFjaXR5LCBcCiAgICAgICAgIH0sIFwKICAgICAgICAgLnBhZ2VfY2FjaGVzID0gJm5h
bWUgIyMgX3BhZ2VfY2FjaGVzIFwKICAgICB9OyBcCiAgICAgXAotICAgIHZvaWQqIG5hbWUgIyMg
X2hlYXBfY29uZmlnX2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZShwYXNfc2VncmVnYXRl
ZF9oZWFwKiBoZWFwKSBcCisgICAgdm9pZCogbmFtZSAjIyBfaGVhcF9jb25maWdfYWxsb2NhdGVf
c21hbGxfc2VncmVnYXRlZF9wYWdlKCBcCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhl
YXAsIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKSBcCiAgICAg
eyBcCiAgICAgICAgIHBhc19iYXNpY19oZWFwX2NvbmZpZ19kZWZpbml0aW9uc19hcmd1bWVudHMg
YXJndW1lbnRzID0ge19fVkFfQVJHU19ffTsgXAogICAgICAgICBcCkBAIC0xNDYsMTIgKzE2MSwx
NSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgICAgICAmbmFtZSAjIyBfbWVnYXBhZ2VfdGFi
bGUsIFwKICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyLCBcCiAg
ICAgICAgICAgICBwYXNfc21hbGxfc2VncmVnYXRlZF9mYXN0X21lZ2FwYWdlX2tpbmQsIFwKLSAg
ICAgICAgICAgIGFyZ3VtZW50cy5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvKTsgXAorICAgICAg
ICAgICAgYXJndW1lbnRzLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8sIFwKKyAgICAgICAgICAg
IHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVhcCksIFwKKyAgICAgICAgICAgIHRyYW5z
YWN0aW9uKTsgXAogICAgICAgICBcCiAgICAgICAgIHJldHVybiBhbGxvY2F0aW9uOyBcCiAgICAg
fSBcCiAgICAgXAotICAgIHZvaWQqIG5hbWUgIyMgX2hlYXBfY29uZmlnX2FsbG9jYXRlX3NtYWxs
X2JpdGZpdF9wYWdlKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXApIFwKKyAgICB2b2lkKiBuYW1l
ICMjIF9oZWFwX2NvbmZpZ19hbGxvY2F0ZV9zbWFsbF9iaXRmaXRfcGFnZSggXAorICAgICAgICBw
YXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9u
KiB0cmFuc2FjdGlvbikgXAogICAgIHsgXAogICAgICAgICBwYXNfYmFzaWNfaGVhcF9jb25maWdf
ZGVmaW5pdGlvbnNfYXJndW1lbnRzIGFyZ3VtZW50cyA9IHtfX1ZBX0FSR1NfX307IFwKICAgICAg
ICAgXApAQCAtMTcwLDEyICsxODgsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgICAgICAg
Jm5hbWUgIyMgX21lZ2FwYWdlX3RhYmxlLCBcCiAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNl
LnBhZ2VfY29uZmlnX3B0ciwgXAogICAgICAgICAgICAgcGFzX3NtYWxsX2JpdGZpdF9mYXN0X21l
Z2FwYWdlX2tpbmQsIFwKLSAgICAgICAgICAgIGFyZ3VtZW50cy5hbGxvY2F0ZV9wYWdlX3Nob3Vs
ZF96ZXJvKTsgXAorICAgICAgICAgICAgYXJndW1lbnRzLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3pl
cm8sIFwKKyAgICAgICAgICAgIHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVhcCksIFwK
KyAgICAgICAgICAgIHRyYW5zYWN0aW9uKTsgXAogICAgICAgICBcCiAgICAgICAgIHJldHVybiBh
bGxvY2F0aW9uOyBcCiAgICAgfSBcCiAgICAgXAotICAgIHZvaWQqIG5hbWUgIyMgX2hlYXBfY29u
ZmlnX2FsbG9jYXRlX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2UocGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCkgXAorICAgIHZvaWQqIG5hbWUgIyMgX2hlYXBfY29uZmlnX2FsbG9jYXRlX21lZGl1bV9z
ZWdyZWdhdGVkX3BhZ2UoIFwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFz
X3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pIFwKICAgICB7IFwKICAg
ICAgICAgcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2RlZmluaXRpb25zX2FyZ3VtZW50cyBhcmd1bWVu
dHMgPSB7X19WQV9BUkdTX199OyBcCiAgICAgICAgIFwKQEAgLTE5MiwxMiArMjEzLDE1IEBAIHR5
cGVkZWYgc3RydWN0IHsKICAgICAgICAgYWxsb2NhdGlvbiA9IHBhc19tZWRpdW1fbWVnYXBhZ2Vf
Y2FjaGVfdHJ5X2FsbG9jYXRlKCBcCiAgICAgICAgICAgICAmcGFnZV9jYWNoZXMtPm1lZGl1bV9t
ZWdhcGFnZV9jYWNoZSwgXAogICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZp
Z19wdHIsIFwKLSAgICAgICAgICAgIGFyZ3VtZW50cy5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJv
KTsgXAorICAgICAgICAgICAgYXJndW1lbnRzLmFsbG9jYXRlX3BhZ2Vfc2hvdWxkX3plcm8sIFwK
KyAgICAgICAgICAgIHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVhcCksIFwKKyAgICAg
ICAgICAgIHRyYW5zYWN0aW9uKTsgXAogICAgICAgICBcCiAgICAgICAgIHJldHVybiBhbGxvY2F0
aW9uOyBcCiAgICAgfSBcCiAgICAgXAotICAgIHZvaWQqIG5hbWUgIyMgX2hlYXBfY29uZmlnX2Fs
bG9jYXRlX21lZGl1bV9iaXRmaXRfcGFnZShwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwKSBcCisg
ICAgdm9pZCogbmFtZSAjIyBfaGVhcF9jb25maWdfYWxsb2NhdGVfbWVkaXVtX2JpdGZpdF9wYWdl
KCBcCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsIHBhc19waHlzaWNhbF9tZW1v
cnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKSBcCiAgICAgeyBcCiAgICAgICAgIHBhc19iYXNp
Y19oZWFwX2NvbmZpZ19kZWZpbml0aW9uc19hcmd1bWVudHMgYXJndW1lbnRzID0ge19fVkFfQVJH
U19ffTsgXAogICAgICAgICBcCkBAIC0yMTQsMTIgKzIzOCwxNSBAQCB0eXBlZGVmIHN0cnVjdCB7
CiAgICAgICAgIGFsbG9jYXRpb24gPSBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlX3RyeV9hbGxv
Y2F0ZSggXAogICAgICAgICAgICAgJnBhZ2VfY2FjaGVzLT5tZWRpdW1fbWVnYXBhZ2VfY2FjaGUs
IFwKICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyLCBcCi0gICAg
ICAgICAgICBhcmd1bWVudHMuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyk7IFwKKyAgICAgICAg
ICAgIGFyZ3VtZW50cy5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvLCBcCisgICAgICAgICAgICBw
YXNfaGVhcF9mb3Jfc2VncmVnYXRlZF9oZWFwKGhlYXApLCBcCisgICAgICAgICAgICB0cmFuc2Fj
dGlvbik7IFwKICAgICAgICAgXAogICAgICAgICByZXR1cm4gYWxsb2NhdGlvbjsgXAogICAgIH0g
XAogICAgIFwKLSAgICB2b2lkKiBuYW1lICMjIF9oZWFwX2NvbmZpZ19hbGxvY2F0ZV9tYXJnZV9i
aXRmaXRfcGFnZShwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwKSBcCisgICAgdm9pZCogbmFtZSAj
IyBfaGVhcF9jb25maWdfYWxsb2NhdGVfbWFyZ2VfYml0Zml0X3BhZ2UoIFwKKyAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiog
dHJhbnNhY3Rpb24pIFwKICAgICB7IFwKICAgICAgICAgcGFzX2Jhc2ljX2hlYXBfY29uZmlnX2Rl
ZmluaXRpb25zX2FyZ3VtZW50cyBhcmd1bWVudHMgPSB7X19WQV9BUkdTX199OyBcCiAgICAgICAg
IFwKQEAgLTIzNiw3ICsyNjMsOSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgIGFsbG9jYXRp
b24gPSBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlX3RyeV9hbGxvY2F0ZSggXAogICAgICAgICAg
ICAgJnBhZ2VfY2FjaGVzLT5tZWRpdW1fbWVnYXBhZ2VfY2FjaGUsIFwKICAgICAgICAgICAgIHBh
Z2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyLCBcCi0gICAgICAgICAgICBhcmd1bWVudHMu
YWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyk7IFwKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hbGxv
Y2F0ZV9wYWdlX3Nob3VsZF96ZXJvLCBcCisgICAgICAgICAgICBwYXNfaGVhcF9mb3Jfc2VncmVn
YXRlZF9oZWFwKGhlYXApLCBcCisgICAgICAgICAgICB0cmFuc2FjdGlvbik7IFwKICAgICAgICAg
XAogICAgICAgICByZXR1cm4gYWxsb2NhdGlvbjsgXAogICAgIH0gXApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2lubGluZXMuaAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBACiAKIFBBU19CRUdJ
Tl9FWFRFUk5fQzsKIAotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqCitQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX2hlYXBfZW5z
dXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudF9zbG93KAogICAgIHBhc19oZWFwKiBoZWFwLAog
ICAgIHNpemVfdCBjb3VudCwKQEAgLTQzLDcgKzQzLDcgQEAgcGFzX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3J5X2Zvcl9jb3VudAogICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAogICAgIHVu
c2lnbmVkKiBjYWNoZWRfaW5kZXgpOwogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Kgorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX2hlYXBfZW5zdXJlX3NpemVfZGly
ZWN0b3J5X2Zvcl9jb3VudCgKICAgICBwYXNfaGVhcCogaGVhcCwKICAgICBzaXplX3QgY291bnQs
CkBAIC01NSw3ICs1NSw3IEBAIHBhc19oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3JfY291
bnQKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogcmVzdWx0OwogCiAgICAgUEFTX1VOVVNFRF9QQVJBTShjb3Vu
dHMpOwogICAgIApAQCAtNjYsNyArNjYsNyBAQCBwYXNfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rv
cnlfZm9yX2NvdW50CiAgICAgCiAgICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXpl
X2RpcmVjdG9yeV9mb3JfY291bnQoCiAgICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsIGNv
dW50LCBjb25maWcsIGNhY2hlZF9pbmRleCk7Ci0gICAgaWYgKHJlc3VsdCAmJiBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHJlc3VsdCkgPj0gYWxpZ25tZW50
KQorICAgIGlmIChyZXN1bHQgJiYgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25t
ZW50KHJlc3VsdCkgPj0gYWxpZ25tZW50KQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCiAjaWYg
UEFTX0VOQUJMRV9URVNUSU5HCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfaGVhcF9wYWdlX3Byb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcGFnZV9wcm92aWRlci5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9wYWdlX3By
b3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChjKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
YykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsMTQgKzI4LDIyIEBACiAKICNpbmNsdWRlICJwYXNf
YWxpZ25tZW50LmgiCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0LmgiCisjaW5jbHVk
ZSAicGFzX2hlYXBfcmVmLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKIFBBU19CRUdJTl9F
WFRFUk5fQzsKIAorc3RydWN0IHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb247Cit0eXBl
ZGVmIHN0cnVjdCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uIHBhc19waHlzaWNhbF9t
ZW1vcnlfdHJhbnNhY3Rpb247CisKKy8qIEhlYXAgYW5kIHRyYW5zYWN0aW9uIGNhbiBiZSBOVUxM
LCBpbiB3aGljaCBjYXNlLCBhc3N1bWUgdGhlIHdvcnN0LiBNb3N0IGltcGxlbWVudGF0aW9ucyBv
ZiB0aGlzCisgICBmdW5jdGlvbiBuZXZlciBuZWVkIHRoZSB0cmFuc2FjdGlvbiBvciB0aGUgaGVh
cC4gKi8KIHR5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX2hlYXBfcGFnZV9wcm92
aWRlcikoCiAgICAgc2l6ZV90IHNpemUsCiAgICAgcGFzX2FsaWdubWVudCBhbGlnbm1lbnQsCiAg
ICAgY29uc3QgY2hhciogbmFtZSwKKyAgICBwYXNfaGVhcCogaGVhcCwgLyogQ2FuIGJlIE5VTEwu
ICovCisgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIC8q
IENhbiBiZSBOVUxMLiAqLwogICAgIHZvaWQgKmFyZyk7CiAKIFBBU19FTkRfRVhURVJOX0M7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19oZWFwX3J1bnRpbWVfY29uZmlnLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcnVudGltZV9jb25maWcuYwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisKKyNpZiBMSUJQQVNfRU5BQkxFRAor
CisjaW5jbHVkZSAicGFzX2hlYXBfcnVudGltZV9jb25maWcuaCIKKworI2luY2x1ZGUgInBhc19k
ZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCIKKwordWludDhfdCBwYXNfaGVhcF9y
dW50aW1lX2NvbmZpZ192aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSgKKyAgICBw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZyogY29uZmlnLAorICAgIHNpemVfdCBvYmplY3Rfc2l6ZSwK
KyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpCit7CisgICAgc2l6
ZV90IHJlc3VsdDsKKworICAgIHJlc3VsdCA9IGNvbmZpZy0+dmlld19jYWNoZV9jYXBhY2l0eV9m
b3Jfb2JqZWN0X3NpemUob2JqZWN0X3NpemUsIHBhZ2VfY29uZmlnKTsKKworICAgIFBBU19BU1NF
UlQoKHVpbnQ4X3QpcmVzdWx0ID09IHJlc3VsdCk7CisgICAgcmV0dXJuICh1aW50OF90KXJlc3Vs
dDsKK30KKworc2l6ZV90IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3plcm9fdmlld19jYWNoZV9j
YXBhY2l0eSgKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnKiBwYWdlX2NvbmZpZykKK3sKKyAgICBQQVNfVU5VU0VEX1BBUkFNKG9iamVjdF9zaXplKTsK
KyAgICBQQVNfVU5VU0VEX1BBUkFNKHBhZ2VfY29uZmlnKTsKKyAgICByZXR1cm4gMDsKK30KKwor
c2l6ZV90IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBh
Y2l0eSgKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
KiBwYWdlX2NvbmZpZykKK3sKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IGNhY2hlX3NpemUgPSAx
NjM4NDAwOworCisgICAgUEFTX1VOVVNFRF9QQVJBTShvYmplY3Rfc2l6ZSk7CisKKyAgICBQQVNf
QVNTRVJUKHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSA8IGNhY2hlX3NpemUpOworCisgICAg
cmV0dXJuIGNhY2hlX3NpemUgLyBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemU7Cit9CisKKyNl
bmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaGVhcF9ydW50aW1lX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3J1bnRpbWVfY29uZmlnLmgJKHJl
dmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwX3J1bnRpbWVfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDEyICsyOCwxOCBAQAog
CiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9sb29rdXBfa2luZC5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX3ZhcmlhbnQuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIAogUEFTX0JFR0lOX0VY
VEVSTl9DOwogCiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25maWc7CitzdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZyBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnOworCit0eXBlZGVmIHNp
emVfdCAoKnBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9yX29i
amVjdF9zaXplX2NhbGxiYWNrKSgKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7CiAKIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1l
X2NvbmZpZyB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29rdXBfa2luZCBsb29rdXBfa2lu
ZCA6IDg7CkBAIC00NCwxMiArNTAsMjggQEAgc3RydWN0IHBhc19oZWFwX3J1bnRpbWVfY29uZmln
IHsKICAgICAKICAgICB1bnNpZ25lZCBkaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfcGFydGlhbF92
aWV3czsKICAgICB1bnNpZ25lZCBkaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxs
b2NhdG9yczsKKyAgICB1bnNpZ25lZCBkaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19j
YWNoZTsKIAogICAgIC8qIEl0J3MgT0sgdG8gc2V0IHRoZXNlIHRvIFVJTlRfTUFYLCBpbiB3aGlj
aCBjYXNlIHRoZSBtYXhpbXVtIGlzIGRlY2lkZWQgYnkgdGhlIGhlYXBfY29uZmlnLiAqLwogICAg
IHVuc2lnbmVkIG1heF9zZWdyZWdhdGVkX29iamVjdF9zaXplOwogICAgIHVuc2lnbmVkIG1heF9i
aXRmaXRfb2JqZWN0X3NpemU7CisKKyAgICBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ192aWV3X2Nh
Y2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZV9jYWxsYmFjayB2aWV3X2NhY2hlX2NhcGFjaXR5
X2Zvcl9vYmplY3Rfc2l6ZTsKIH07CiAKK1BBU19BUEkgdWludDhfdCBwYXNfaGVhcF9ydW50aW1l
X2NvbmZpZ192aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSgKKyAgICBwYXNfaGVh
cF9ydW50aW1lX2NvbmZpZyogY29uZmlnLAorICAgIHNpemVfdCBvYmplY3Rfc2l6ZSwKKyAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOworCitQQVNfQVBJIHNpemVf
dCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHkoCisgICAg
c2l6ZV90IG9iamVjdF9zaXplLAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdl
X2NvbmZpZyk7CisKK1BBU19BUEkgc2l6ZV90IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX2FnZ3Jl
c3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eSgKKyAgICBzaXplX3Qgb2JqZWN0X3NpemUsCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnKTsKKwogUEFTX0VORF9FWFRF
Uk5fQzsKIAogI2VuZGlmIC8qIFBBU19IRUFQX1JVTlRJTUVfQ09ORklHX0ggKi8KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxf
Y29uZmlnLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDcgKzEz
MSw3IEBACiAKICNkZWZpbmUgUEFTX0JJVFNfVFRMICAgICAgICAgICAgICAgICAgICAgMTYKIAot
I2RlZmluZSBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMgICAgICAzMgorI2RlZmluZSBQQVNf
TlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMgICAgICAzMnUKIAogI2RlZmluZSBQQVNfTUFYX09CSkVD
VFNfUEVSX1BBR0UgICAgICAgICAyMDQ4CiAKQEAgLTE0OCwyNiArMTQ4LDMxIEBACiAKICNkZWZp
bmUgUEFTX1VUSUxJVFlfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MgICAgICAgICAgICAgICAgICAg
ICAwCiAjZGVmaW5lIFBBU19VVElMSVRZX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTICAg
ICAgICAgICAgICAgMAorI2RlZmluZSBQQVNfVVRJTElUWV9CT1VORF9GT1JfTk9fVklFV19DQUNI
RSAgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBBU19VVElMSVRZX01BWF9T
RUdSRUdBVEVEX09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUg
UEFTX1VUSUxJVFlfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICAgICAgICAw
CiAKICNkZWZpbmUgUEFTX0lOVFJJTlNJQ19QUklNSVRJVkVfQk9VTkRfRk9SX1BBUlRJQUxfVklF
V1MgICAgICAgICAwCiAjZGVmaW5lIFBBU19JTlRSSU5TSUNfUFJJTUlUSVZFX0JPVU5EX0ZPUl9C
QVNFTElORV9BTExPQ0FUT1JTICAgMAorI2RlZmluZSBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9C
T1VORF9GT1JfTk9fVklFV19DQUNIRSAgICAgICAgIDAKICNkZWZpbmUgUEFTX0lOVFJJTlNJQ19Q
UklNSVRJVkVfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUgICAgICBVSU5UX01BWAogI2RlZmlu
ZSBQQVNfSU5UUklOU0lDX1BSSU1JVElWRV9NQVhfQklURklUX09CSkVDVF9TSVpFICAgICAgICAg
IFVJTlRfTUFYCiAKICNkZWZpbmUgUEFTX1BSSU1JVElWRV9CT1VORF9GT1JfUEFSVElBTF9WSUVX
UyAgICAgICAgICAgICAgICAgICAwCiAjZGVmaW5lIFBBU19QUklNSVRJVkVfQk9VTkRfRk9SX0JB
U0VMSU5FX0FMTE9DQVRPUlMgICAgICAgICAgICAgMAorI2RlZmluZSBQQVNfUFJJTUlUSVZFX0JP
VU5EX0ZPUl9OT19WSUVXX0NBQ0hFICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5l
IFBBU19QUklNSVRJVkVfTUFYX1NFR1JFR0FURURfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAg
VUlOVF9NQVgKICNkZWZpbmUgUEFTX1BSSU1JVElWRV9NQVhfQklURklUX09CSkVDVF9TSVpFICAg
ICAgICAgICAgICAgICAgICBVSU5UX01BWAogCiAjZGVmaW5lIFBBU19UWVBFRF9CT1VORF9GT1Jf
UEFSVElBTF9WSUVXUyAgICAgICAgICAgICAgICAgICAgICAgMTAKICNkZWZpbmUgUEFTX1RZUEVE
X0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTICAgICAgICAgICAgICAgICAwCisjZGVmaW5l
IFBBU19UWVBFRF9CT1VORF9GT1JfTk9fVklFV19DQUNIRSAgICAgICAgICAgICAgICAgICAgICAg
VUlOVF9NQVgKICNkZWZpbmUgUEFTX1RZUEVEX01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFICAg
ICAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfVFlQRURfTUFYX0JJVEZJVF9P
QkpFQ1RfU0laRSAgICAgICAgICAgICAgICAgICAgICAgIDAKIAogI2RlZmluZSBQQVNfT0JKQ19C
T1VORF9GT1JfUEFSVElBTF9WSUVXUyAgICAgICAgICAgICAgICAgICAgICAgIDEwCiAjZGVmaW5l
IFBBU19PQkpDX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTICAgICAgICAgICAgICAgICAg
MTAKKyNkZWZpbmUgUEFTX09CSkNfQk9VTkRfRk9SX05PX1ZJRVdfQ0FDSEUgICAgICAgICAgICAg
ICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfT0JKQ19NQVhfU0VHUkVHQVRFRF9PQkpF
Q1RfU0laRSAgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVmaW5lIFBBU19PQkpDX01B
WF9CSVRGSVRfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICAgICAgICAgMAogCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoYykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19JTlRSSU5TSUNfQUxM
T0NBVElPTl9SRVNVTFRfSAotI2RlZmluZSBQQVNfSU5UUklOU0lDX0FMTE9DQVRJT05fUkVTVUxU
X0gKLQotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0
LmgiCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc191dGlscy5oIgotI2lu
Y2x1ZGUgInBhc196ZXJvX21vZGUuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi0vKiBXZSBr
ZWVwIHRoaXMgc2VwYXJhdGUgZnJvbSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgc2luY2UgdGhpcyBp
cyBzdXBwb3NlZCB0byBiZSBhYmxlIHRvCi0gICBjb21tdW5pY2F0ZSBhbnkgb3RoZXIgbWV0YS1k
YXRhIHRoYXQgdGhlIGludHJpbnNpYy9wcmltaXRpdmUgYWxsb2NhdG9yIGhhcyBhdmFpbGFibGUu
IEF0Ci0gICBvbmUgcG9pbnQgdGhhdCBpbmNsdWRlZCB0aGUgb2JqZWN0X3NpemVfbW9kZSwgYnV0
IHRoYXQncyBubyBsb25nZXIgdGhlIGNhc2UuCi0KLSAgIElmIHdlIGdvIGEgbG9uZyB0aW1lIHdp
dGhvdXQgYWRkaW5nIGFkZGl0aW9uYWwgZmllbGRzIHRvIHRoaXMgdG8gZGlzdGluZ3Vpc2ggaXQg
ZnJvbQotICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHRoZW4gd2Ugc2hvdWxkIHByb2JhYmx5IGdl
dCByaWQgb2YgdGhpcy4gKi8KLQotc3RydWN0IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1
bHQ7Ci10eXBlZGVmIHN0cnVjdCBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQ7Ci0KLXN0cnVjdCBwYXNfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0IHsKLSAgICB2b2lkKiBwdHI7Ci0gICAgYm9vbCBkaWRfc3VjY2VlZDsKLSAg
ICBwYXNfemVyb19tb2RlIHplcm9fbW9kZTsKLX07Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0X2NyZWF0ZV9lbXB0eSh2b2lkKQotewotICAgIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHQgcmVzdWx0OwotICAgIHJlc3VsdC5kaWRfc3VjY2VlZCA9IGZhbHNlOwotICAg
IHJlc3VsdC56ZXJvX21vZGUgPSBwYXNfemVyb19tb2RlX21heV9oYXZlX25vbl96ZXJvOwotICAg
IHJlc3VsdC5wdHIgPSBOVUxMOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZShwYXNfYWxsb2NhdGlvbl9yZXN1bHQgYWxsb2Nh
dGlvbl9yZXN1bHQpCi17Ci0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1
bHQ7Ci0gICAgcmVzdWx0LnB0ciA9ICh2b2lkKilhbGxvY2F0aW9uX3Jlc3VsdC5iZWdpbjsKLSAg
ICByZXN1bHQuZGlkX3N1Y2NlZWQgPSBhbGxvY2F0aW9uX3Jlc3VsdC5kaWRfc3VjY2VlZDsKLSAg
ICByZXN1bHQuemVyb19tb2RlID0gYWxsb2NhdGlvbl9yZXN1bHQuemVyb19tb2RlOwotICAgIHJl
dHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50
aXR5KHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KQotewotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3plcm8ocGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpCi17Ci0gICAgaWYgKHJlc3VsdC5kaWRfc3Vj
Y2VlZAotICAgICAgICAmJiByZXN1bHQuemVyb19tb2RlID09IHBhc196ZXJvX21vZGVfbWF5X2hh
dmVfbm9uX3plcm8pCi0gICAgICAgIHBhc196ZXJvX21lbW9yeShyZXN1bHQucHRyLCBzaXplKTsK
LSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAotcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dF9zZXRfZXJybm8oCi0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQp
Ci17Ci0gICAgaWYgKCFyZXN1bHQuZGlkX3N1Y2NlZWQpCi0gICAgICAgIGVycm5vID0gRU5PTUVN
OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNf
aW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0Ci1wYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVz
dWx0X2NyYXNoX29uX2Vycm9yKAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQg
cmVzdWx0KQotewotICAgIFBBU19BU1NFUlQocmVzdWx0LmRpZF9zdWNjZWVkKTsKLSAgICByZXR1
cm4gcmVzdWx0OwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX0lOVFJJ
TlNJQ19BTExPQ0FUSU9OX1JFU1VMVF9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludHJpbnNpY19oZWFwX3N1cHBv
cnQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyAr
MjcsNyBAQAogI2RlZmluZSBQQVNfSU5UUklOU0lDX0hFQVBfU1VQUE9SVF9ICiAKICNpbmNsdWRl
ICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIgogI2luY2x1ZGUgInBh
c19pbnRlcm5hbF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApAQCAtMzcsNyAr
MzcsNyBAQCBzdHJ1Y3QgcGFzX2ludHJpbnNpY19oZWFwX3N1cHBvcnQ7CiB0eXBlZGVmIHN0cnVj
dCBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydCBwYXNfaW50cmluc2ljX2hlYXBfc3VwcG9ydDsK
IAogc3RydWN0IHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0IHsKLSAgICBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyIGluZGV4X3RvX3NpemVf
ZGlyZWN0b3J5WworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0ciBpbmRleF90b19zaXplX2RpcmVjdG9yeVsKICAgICAgICAgUEFTX05VTV9JTlRSSU5T
SUNfU0laRV9DTEFTU0VTXTsKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGluZGV4X3RvX2FsbG9j
YXRvcl9pbmRleFtQQVNfTlVNX0lOVFJJTlNJQ19TSVpFX0NMQVNTRVNdOwogfTsKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYwko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xhcmdlX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtODgsMTIgKzg4LDExIEBAIHN0YXRpYyB2
b2lkIGluaXRpYWxpemVfY29uZmlnKHBhc19sYXJnZV8KICAgICBjb25maWctPmRlYWxsb2NhdG9y
X2FyZyA9IGhlYXA7CiB9CiAKLXBhc19hbGxvY2F0aW9uX3Jlc3VsdAotcGFzX2xhcmdlX2hlYXBf
dHJ5X2FsbG9jYXRlKHBhc19sYXJnZV9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBh
bGlnbm1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBo
ZWFwX2NvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVt
b3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKK3N0YXRpYyBwYXNfYWxsb2NhdGlvbl9yZXN1
bHQgYWxsb2NhdGVfaW1wbChwYXNfbGFyZ2VfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QqIHNpemUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90KiBhbGlnbm1lbnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2Nv
bmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGh5
c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKIHsKICAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCkBAIC0xMDEsMjMgKzEwMCwyMiBAQCBwYXNf
bGFyZ2VfaGVhcF90cnlfYWxsb2NhdGUocGFzX2xhcmdlX2hlCiAgICAgcGFzX2hlYXBfdHlwZSog
dHlwZTsKICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZyBjb25maWc7CiAgICAgYWxpZ25l
ZF9hbGxvY2F0b3JfZGF0YSBkYXRhOwotICAgIHBhc19sYXJnZV9tYXBfZW50cnkgZW50cnk7CiAg
ICAgCi0gICAgUEFTX0FTU0VSVChwYXNfaXNfcG93ZXJfb2ZfMihhbGlnbm1lbnQpKTsKKyAgICBQ
QVNfQVNTRVJUKHBhc19pc19wb3dlcl9vZl8yKCphbGlnbm1lbnQpKTsKICAgICBwYXNfaGVhcF9s
b2NrX2Fzc2VydF9oZWxkKCk7CiAgICAgCiAgICAgdHlwZSA9IHBhc19oZWFwX2Zvcl9sYXJnZV9o
ZWFwKGhlYXApLT50eXBlOwogICAgIAotICAgIGlmICghc2l6ZSkKLSAgICAgICAgc2l6ZSA9IGhl
YXBfY29uZmlnLT5nZXRfdHlwZV9zaXplKHR5cGUpOworICAgIGlmICghKnNpemUpCisgICAgICAg
ICpzaXplID0gaGVhcF9jb25maWctPmdldF90eXBlX3NpemUodHlwZSk7CiAgICAgCi0gICAgYWxp
Z25tZW50ID0gUEFTX01BWChhbGlnbm1lbnQsIGhlYXBfY29uZmlnLT5nZXRfdHlwZV9hbGlnbm1l
bnQodHlwZSkpOwotICAgIGFsaWdubWVudCA9IFBBU19NQVgoYWxpZ25tZW50LCBoZWFwX2NvbmZp
Zy0+bGFyZ2VfYWxpZ25tZW50KTsKKyAgICAqYWxpZ25tZW50ID0gUEFTX01BWCgqYWxpZ25tZW50
LCBoZWFwX2NvbmZpZy0+Z2V0X3R5cGVfYWxpZ25tZW50KHR5cGUpKTsKKyAgICAqYWxpZ25tZW50
ID0gUEFTX01BWCgqYWxpZ25tZW50LCBoZWFwX2NvbmZpZy0+bGFyZ2VfYWxpZ25tZW50KTsKICAg
ICAKLSAgICBzaXplID0gcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29mXzIoc2l6ZSwgYWxpZ25tZW50
KTsKKyAgICAqc2l6ZSA9IHBhc19yb3VuZF91cF90b19wb3dlcl9vZl8yKCpzaXplLCAqYWxpZ25t
ZW50KTsKICAgICAKICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBwcmludGYoIkFsbG9jYXRp
bmcgbGFyZ2Ugb2JqZWN0IG9mIHNpemUgJXp1XG4iLCBzaXplKTsKKyAgICAgICAgcHJpbnRmKCJB
bGxvY2F0aW5nIGxhcmdlIG9iamVjdCBvZiBzaXplICV6dVxuIiwgKnNpemUpOwogICAgICAgICBw
cmludGYoIkNhcnRlc2lhbiB0cmVlIG1pbmltdW0gPSAlcFxuIiwgcGFzX2NhcnRlc2lhbl90cmVl
X21pbmltdW0oJmhlYXAtPmZyZWVfaGVhcC50cmVlKSk7CiAgICAgICAgIHByaW50ZigiTnVtIG1h
cHBlZCBieXRlcyA9ICV6dVxuIiwgaGVhcC0+ZnJlZV9oZWFwLm51bV9tYXBwZWRfYnl0ZXMpOwog
ICAgIH0KQEAgLTEyNiw4ICsxMjQsOCBAQCBwYXNfbGFyZ2VfaGVhcF90cnlfYWxsb2NhdGUocGFz
X2xhcmdlX2hlCiAgICAgCiAgICAgcmVzdWx0ID0gcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwX3Ry
eV9hbGxvY2F0ZSgKICAgICAgICAgJmhlYXAtPmZyZWVfaGVhcCwKLSAgICAgICAgc2l6ZSwKLSAg
ICAgICAgcGFzX2FsaWdubWVudF9jcmVhdGVfdHJhZGl0aW9uYWwoYWxpZ25tZW50KSwKKyAgICAg
ICAgKnNpemUsCisgICAgICAgIHBhc19hbGlnbm1lbnRfY3JlYXRlX3RyYWRpdGlvbmFsKCphbGln
bm1lbnQpLAogICAgICAgICAmY29uZmlnKTsKICAgICAKICAgICBpZiAoIXJlc3VsdC5kaWRfc3Vj
Y2VlZCkKQEAgLTEzNSwyMiArMTMzLDUwIEBAIHBhc19sYXJnZV9oZWFwX3RyeV9hbGxvY2F0ZShw
YXNfbGFyZ2VfaGUKICAgICAKICAgICBpZiAoaGVhcF9jb25maWctPmFsaWduZWRfYWxsb2NhdG9y
X3RhbGtzX3RvX3NoYXJpbmdfcG9vbCAmJgogICAgICAgICAhcGFzX2xhcmdlX3NoYXJpbmdfcG9v
bF9hbGxvY2F0ZV9hbmRfY29tbWl0KAotICAgICAgICAgICAgcGFzX3JhbmdlX2NyZWF0ZShyZXN1
bHQuYmVnaW4sIHJlc3VsdC5iZWdpbiArIHNpemUpLAorICAgICAgICAgICAgcGFzX3JhbmdlX2Ny
ZWF0ZShyZXN1bHQuYmVnaW4sIHJlc3VsdC5iZWdpbiArICpzaXplKSwKICAgICAgICAgICAgIHRy
YW5zYWN0aW9uLAogICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlf
dmlydHVhbF9yYW5nZV9jb21tb25fbG9jaykpIHsKICAgICAgICAgcGFzX2Zhc3RfbGFyZ2VfZnJl
ZV9oZWFwX2RlYWxsb2NhdGUoCi0gICAgICAgICAgICAmaGVhcC0+ZnJlZV9oZWFwLCByZXN1bHQu
YmVnaW4sIHJlc3VsdC5iZWdpbiArIHNpemUsCisgICAgICAgICAgICAmaGVhcC0+ZnJlZV9oZWFw
LCByZXN1bHQuYmVnaW4sIHJlc3VsdC5iZWdpbiArICpzaXplLAogICAgICAgICAgICAgcmVzdWx0
Lnplcm9fbW9kZSwgJmNvbmZpZyk7CiAgICAgICAgIHJldHVybiBwYXNfYWxsb2NhdGlvbl9yZXN1
bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICB9CiAKKyAgICBQQVNfQVNTRVJUKHBhc19pc19hbGln
bmVkKHJlc3VsdC5iZWdpbiwgKmFsaWdubWVudCkpOworICAgIAorICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3Bhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2xhcmdlX2hlYXBfdHJ5X2FsbG9jYXRl
X2FuZF9mb3JnZXQocGFzX2xhcmdlX2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGhlYXBfY29uZmlnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlv
biogdHJhbnNhY3Rpb24pCit7CisgICAgcmV0dXJuIGFsbG9jYXRlX2ltcGwoaGVhcCwgJnNpemUs
ICZhbGlnbm1lbnQsIGhlYXBfY29uZmlnLCB0cmFuc2FjdGlvbik7Cit9CisKK3Bhc19hbGxvY2F0
aW9uX3Jlc3VsdAorcGFzX2xhcmdlX2hlYXBfdHJ5X2FsbG9jYXRlKHBhc19sYXJnZV9oZWFwKiBo
ZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikK
K3sKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgIHBhc19sYXJnZV9tYXBf
ZW50cnkgZW50cnk7CisKKyAgICByZXN1bHQgPSBhbGxvY2F0ZV9pbXBsKAorICAgICAgICBoZWFw
LCAmc2l6ZSwgJmFsaWdubWVudCwgaGVhcF9jb25maWcsIHRyYW5zYWN0aW9uKTsKKyAgICBpZiAo
IXJlc3VsdC5kaWRfc3VjY2VlZCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKwogICAgIGVudHJ5
LmJlZ2luID0gcmVzdWx0LmJlZ2luOwogICAgIGVudHJ5LmVuZCA9IHJlc3VsdC5iZWdpbiArIHNp
emU7CiAgICAgZW50cnkuaGVhcCA9IGhlYXA7CiAgICAgcGFzX2xhcmdlX21hcF9hZGQoZW50cnkp
OwotICAgIAotICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQocmVzdWx0LmJlZ2luLCBhbGln
bm1lbnQpKTsKLSAgICAKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuaAkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdl
X2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTIgQEAgc3RydWN0IHBhc19sYXJn
ZV9oZWFwIHsKIFBBU19BUEkgdm9pZCBwYXNfbGFyZ2VfaGVhcF9jb25zdHJ1Y3QocGFzX2xhcmdl
X2hlYXAqIGhlYXApOwogCiBQQVNfQVBJIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAorcGFzX2xhcmdl
X2hlYXBfdHJ5X2FsbG9jYXRlX2FuZF9mb3JnZXQocGFzX2xhcmdlX2hlYXAqIGhlYXAsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFs
aWdubWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFw
X2NvbmZpZyogY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pOworCitQQVNfQVBJ
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX2xhcmdlX2hlYXBfdHJ5X2FsbG9jYXRlKHBhc19s
YXJnZV9oZWFwKiBoZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXpl
LCBzaXplX3QgYWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFw
X2NvbmZpZyogY29uZmlnLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2lj
YWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19jYWNoZS5jCSh3b3JraW5nIGNvcHkpCkBAIC05NSw2ICs5NSw3IEBAIHN0YXRpYyBwYXNfYWxp
Z25lZF9hbGxvY2F0aW9uX3Jlc3VsdCBsYXIKICAgICBhbGxvY2F0aW9uX3Jlc3VsdCA9IGRhdGEt
PmNhY2hlLT5wcm92aWRlcigKICAgICAgICAgYWxpZ25lZF9zaXplLCBhbGlnbmVkX2FsaWdubWVu
dCwKICAgICAgICAgInBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS9j
aHVuayIsCisgICAgICAgIE5VTEwsIE5VTEwsCiAgICAgICAgIGRhdGEtPmNhY2hlLT5wcm92aWRl
cl9hcmcpOwogCiAgICAgaWYgKCFhbGxvY2F0aW9uX3Jlc3VsdC5kaWRfc3VjY2VlZCkgewpAQCAt
MTA5LDcgKzExMCw3IEBAIHN0YXRpYyBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdCBsYXIK
ICAgICAgICAgICAgICAgICAgICAgKGNoYXIqKWFsbG9jYXRpb25fcmVzdWx0LmJlZ2luICsgYWxp
Z25lZF9zaXplKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgcGFzX2FsbG9jYXRpb25f
cmVzdWx0X3plcm8oJmFsbG9jYXRpb25fcmVzdWx0LCBhbGlnbmVkX3NpemUpOworICAgICAgICBh
bGxvY2F0aW9uX3Jlc3VsdCA9IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKGFsbG9jYXRpb25f
cmVzdWx0LCBhbGlnbmVkX3NpemUpOwogICAgIH0KIAogICAgIHBhc19lbnVtZXJhYmxlX3Jhbmdl
X2xpc3RfYXBwZW5kKApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xvY2FsX2FsbG9jYXRvci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMywxNiArMzMsMjMgQEAKICNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2Nh
dG9yX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfcmFjZV90ZXN0X2hvb2tzLmgiCiAjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5l
cy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgogI2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXAuaCIK
IAotdWludDhfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNw
ZW5kID0gNTsKKyNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVO
Q1kKK2RvdWJsZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X3N1bSA9IDAu
OworZG91YmxlIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbiA9IDAuOwor
UEFTX0RFRklORV9MT0NLKHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3kpOwor
I2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAq
LwogCiB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KHBhc19sb2NhbF9hbGxvY2F0
b3IqIGFsbG9jYXRvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworCisgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb25zdHJ1Y3QoCisgICAgICAgICZh
bGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLCBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9r
aW5kKTsKICAgICAKICAgICBhbGxvY2F0b3ItPnBheWxvYWRfZW5kID0gMDsKICAgICBhbGxvY2F0
b3ItPnJlbWFpbmluZyA9IDA7CkBAIC01NiwzMCArNjMsMjMgQEAgdm9pZCBwYXNfbG9jYWxfYWxs
b2NhdG9yX2NvbnN0cnVjdChwYXNfbAogICAgIGFsbG9jYXRvci0+Y3VycmVudF9vZmZzZXQgPSAw
OwogICAgIGFsbG9jYXRvci0+ZW5kX29mZnNldCA9IDA7CiAgICAgCi0gICAgYWxsb2NhdG9yLT52
aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2FzX3ZpZXcoZGlyZWN0
b3J5KTsKKyAgICBhbGxvY2F0b3ItPnZpZXcgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9hc192aWV3KGRpcmVjdG9yeSk7CiAgICAgYWxsb2NhdG9yLT5jb25maWdfa2luZCA9IHBhc19s
b2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX25vcm1hbCgKICAgICAgICAgZGlyZWN0
b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAg
IHBhc19sb2coImFsbG9jYXRvciAlcCBoYXMga2luZCAlc1xuIiwKLSAgICAgICAgICAgICAgICBh
bGxvY2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhhbGxv
Y2F0b3ItPmNvbmZpZ19raW5kKSwgIlxuIik7CisgICAgICAgIHBhc19sb2coImFsbG9jYXRvciAl
cCBoYXMga2luZCAlcywgZW5kcyBhdCAlcFxuIiwKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3Is
IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhhbGxvY2F0b3ItPmNv
bmZpZ19raW5kKSwKKyAgICAgICAgICAgICAgICAoY2hhciopYWxsb2NhdG9yICsgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemUoZGlyZWN0b3J5KSk7CiAg
ICAgfQogICAgIAotICAgIGFsbG9jYXRvci0+aXNfaW5fdXNlID0gZmFsc2U7Ci0gICAgYWxsb2Nh
dG9yLT5zaG91bGRfc3RvcF9jb3VudCA9IDA7Ci0gICAgYWxsb2NhdG9yLT5kaXJ0eSA9IGZhbHNl
OwogICAgIGFsbG9jYXRvci0+Y3VycmVudF93b3JkX2lzX3ZhbGlkID0gZmFsc2U7CiB9CiAKLXZv
aWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9kZXN0cnVjdChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxv
Y2F0b3IpCi17Ci0gICAgUEFTX1VOVVNFRF9QQVJBTShhbGxvY2F0b3IpOwotfQotCiB2b2lkIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVzZXQocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKQog
ewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5Owor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAKLSAgICBkaXJl
Y3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoYWxs
b2NhdG9yLT52aWV3KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9z
aXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpOwogCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZXNldF9pbXBsKGFsbG9jYXRvciwgZGlyZWN0b3J5LCBkaXJlY3RvcnktPmJhc2UucGFnZV9j
b25maWdfa2luZCk7CiB9CkBAIC04OCwxMyArODgsMTMgQEAgdm9pZCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX21vdmUocGFzX2xvY2FsXwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvciogc3JjKQogewogICAgIHNpemVfdCBzaXplOwotICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92
aWV3KiBwYXJ0aWFsX3ZpZXc7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHNoYXJl
ZF92aWV3OwogCi0gICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KHNyYy0+dmlldyk7CisgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkoc3JjLT52aWV3KTsKICAgICAKLSAgICBzaXplID0g
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXpl
KGRpcmVjdG9yeSk7CisgICAgc2l6ZSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xv
Y2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSk7CiAgICAgCiAgICAgbWVtY3B5KGRzdCwgc3Jj
LCBzaXplKTsKIApAQCAtMTMxLDEzICsxMzEsMTEgQEAgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3JlZmlsbF93aXRoX2JpdAogCiB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfZmluaXNoX3JlZmls
bF93aXRoX2JpdGZpdCgKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKLSAg
ICBwYXNfbWFnYXppbmUqIG1hZ2F6aW5lKQorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBzaXplX2RpcmVjdG9yeSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CiAgICAgCiAgICAgcGFzX2JpdGZpdF9hbGxvY2F0b3IqIGJpdGZpdDsKLSAgICBwYXNf
Yml0Zml0X2dsb2JhbF9zaXplX2NsYXNzKiBnbG9iYWxfc2l6ZV9jbGFzczsKICAgICBwYXNfYml0
Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3M7CiAgICAgcGFzX2JpdGZpdF92aWV3KiBiaXRmaXRf
dmlldzsKICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmQgYml0Zml0X2tpbmQ7CkBAIC0x
NDgsMjggKzE0NiwyMSBAQCB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfZmluaXNoX3JlZmlsbF93
CiAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBzaXplX2RpcmVjdG9yeSk7CiAgICAgfQogICAg
IAotICAgIGdsb2JhbF9zaXplX2NsYXNzID0gcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9i
YWxfc2l6ZV9jbGFzc19wdHJfbG9hZF9ub25fbnVsbCgKKyAgICBzaXplX2NsYXNzID0gcGFzX2Nv
bXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0cl9sb2FkX25vbl9udWxsKAogICAgICAg
ICAmc2l6ZV9kaXJlY3RvcnktPmJpdGZpdF9zaXplX2NsYXNzKTsKICAgICAKLSAgICBiaXRmaXRf
a2luZCA9IHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCi0g
ICAgICAgICZnbG9iYWxfc2l6ZV9jbGFzcy0+YmFzZS5kaXJlY3RvcnkpLT5jb25maWdfa2luZDsK
KyAgICBiaXRmaXRfa2luZCA9IHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoJnNpemVfY2xhc3MtPmRpcmVjdG9yeSktPmNvbmZpZ19raW5kOwogICAgIAogICAg
IGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5k
X2NyZWF0ZV9iaXRmaXQoYml0Zml0X2tpbmQpOwogICAgIAogICAgIGJpdGZpdCA9IHBhc19sb2Nh
bF9hbGxvY2F0b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpOwogICAgIAotICAgIHNpemVfY2xhc3Mg
PSBwYXNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3NlbGVjdF9mb3JfbWFnYXppbmUoZ2xvYmFs
X3NpemVfY2xhc3MsIG1hZ2F6aW5lKTsKLSAgICAKLSAgICBQQVNfQVNTRVJUKHNpemVfY2xhc3Mp
OwotICAgIAogICAgIGJpdGZpdF9jb25maWcgPSBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRf
Z2V0X2NvbmZpZyhiaXRmaXRfa2luZCk7CiAgICAgCi0gICAgYml0Zml0X3ZpZXcgPSBwYXNfYml0
Zml0X3NpemVfY2xhc3NfZ2V0X2ZpcnN0X2ZyZWVfdmlldygKLSAgICAgICAgc2l6ZV9jbGFzcywg
Z2xvYmFsX3NpemVfY2xhc3MsIGJpdGZpdF9jb25maWcpOworICAgIGJpdGZpdF92aWV3ID0gcGFz
X2JpdGZpdF9zaXplX2NsYXNzX2dldF9maXJzdF9mcmVlX3ZpZXcoc2l6ZV9jbGFzcywgYml0Zml0
X2NvbmZpZyk7CiAgICAgCiAgICAgUEFTX0FTU0VSVChiaXRmaXRfdmlldyk7CiAgICAgCi0gICAg
Yml0Zml0LT5nbG9iYWxfc2l6ZV9jbGFzcyA9IGdsb2JhbF9zaXplX2NsYXNzOwogICAgIGJpdGZp
dC0+c2l6ZV9jbGFzcyA9IHNpemVfY2xhc3M7CiAgICAgYml0Zml0LT52aWV3ID0gYml0Zml0X3Zp
ZXc7CiB9CkBAIC0xODMsNyArMTc0LDcgQEAgc3RhdGljIGJvb2wgc3RvcF9pbXBsKAogICAgIAog
ICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBw
YWdlOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWc7CiAgICAgcGFzX2xvY2sqIGhlbGRf
bG9jazsKIApAQCAtMTkzLDggKzE4NCwxMCBAQCBzdGF0aWMgYm9vbCBzdG9wX2ltcGwoCiAgICAg
aWYgKCFhbGxvY2F0b3ItPnBhZ2VfaXNoKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIGhl
bGRfbG9jayA9IE5VTEw7CisKICAgICB2aWV3ID0gYWxsb2NhdG9yLT52aWV3OwotICAgIGRpcmVj
dG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3
KTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9y
eSh2aWV3KTsKIAogICAgIHBhZ2VfY29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CiAKQEAg
LTIwMiwyOSArMTk1LDI4IEBAIHN0YXRpYyBib29sIHN0b3BfaW1wbCgKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFnZV9jb25maWcp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZp
Zyk7CiAgICAgCi0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KHZpZXcpKSB7CisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc2l6ZV9kaXJl
Y3RvcnkodmlldykpIHsKICAgICAgICAgdmlldyA9IHBhZ2UtPm93bmVyOwotICAgICAgICBQQVNf
QVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaCh2aWV3KSk7CisgICAg
ICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3
KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19wYXJ0aWFsKHZpZXcpKTsKLQotICAgIGhlbGRfbG9jayA9IE5VTEw7CisgICAgCiAgICAgaWYg
KCFwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX3dpdGhfbW9kZShwYWdlLCAmaGVsZF9s
b2NrLCBwYWdlX2xvY2tfbW9kZSwgcGFnZV9jb25maWcpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgCiAgICAgcGFnZV9jb25maWcuc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3JldHVy
bl9tZW1vcnlfdG9fcGFnZSgKICAgICAgICAgYWxsb2NhdG9yLCB2aWV3LCBwYWdlLCBkaXJlY3Rv
cnksIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCisgICAgCiAgICAgcGFzX3JhY2VfdGVzdF9ob29r
KHBhc19yYWNlX3Rlc3RfaG9va19sb2NhbF9hbGxvY2F0b3Jfc3RvcF9iZWZvcmVfZGlkX3N0b3Bf
YWxsb2NhdGluZyk7CiAgICAgCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19kaWRfc3RvcF9hbGxv
Y2F0aW5nKHZpZXcsIHBhZ2UsIHBhZ2VfY29uZmlnKTsKICAgICAKICAgICBwYXNfcmFjZV90ZXN0
X2hvb2socGFzX3JhY2VfdGVzdF9ob29rX2xvY2FsX2FsbG9jYXRvcl9zdG9wX2JlZm9yZV91bmxv
Y2spOwotCi0gICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwogICAgIAogICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzZXQoYWxsb2NhdG9yKTsKICAgICAKKyAgICBwYXNfbG9j
a19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
QEAgLTIzOSw5ICsyMzEsOSBAQCBib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcCgKICAgICAK
ICAgICBib29sIHJlc3VsdDsKIAotICAgIFBBU19BU1NFUlQoIWFsbG9jYXRvci0+aXNfaW5fdXNl
KTsKKyAgICBQQVNfQVNTRVJUKCFhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7
CiAKLSAgICBhbGxvY2F0b3ItPmlzX2luX3VzZSA9IHRydWU7CisgICAgYWxsb2NhdG9yLT5zY2F2
ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOwogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwog
CiAgICAgcmVzdWx0ID0gc3RvcF9pbXBsKGFsbG9jYXRvciwgcGFnZV9sb2NrX21vZGUsIGhlYXBf
bG9ja19ob2xkX21vZGUpOwpAQCAtMjQ5LDExICsyNDEsMTEgQEAgYm9vbCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3N0b3AoCiAgICAgaWYgKHJlc3VsdCkgewogICAgICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgIHBhc19sb2coIkRpZCBzdG9wIGFsbG9jYXRvciAlcFxuIiwgYWxsb2NhdG9yKTsK
LSAgICAgICAgYWxsb2NhdG9yLT5zaG91bGRfc3RvcF9jb3VudCA9IDA7CisgICAgICAgIGFsbG9j
YXRvci0+c2NhdmVuZ2VyX2RhdGEuc2hvdWxkX3N0b3BfY291bnQgPSAwOwogICAgIH0KICAgICAK
ICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICBhbGxvY2F0b3ItPmlzX2luX3VzZSA9IGZh
bHNlOworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gZmFsc2U7CiAK
ICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMjY3LDggKzI1OSw4IEBAIGJvb2wgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZShwYXNfbG8KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAog
ICAgIGlmIChhY3Rpb24gPT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0
aW9uKSB7Ci0gICAgICAgIGlmIChhbGxvY2F0b3ItPmRpcnR5KSB7Ci0gICAgICAgICAgICBhbGxv
Y2F0b3ItPmRpcnR5ID0gZmFsc2U7CisgICAgICAgIGlmIChhbGxvY2F0b3ItPnNjYXZlbmdlcl9k
YXRhLmRpcnR5KSB7CisgICAgICAgICAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmRpcnR5
ID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
YWxfYWxsb2NhdG9yLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNyBAQAogI2luY2x1ZGUgInBhc19iaXRmaXRfYWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAi
cGFzX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQu
aCIKLSNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaCIKKyNpbmNsdWRlICJwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgiCiAjaW5jbHVkZSAicGFzX2xvY2suaCIK
ICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX3ZpZXcuaCIKQEAgLTUwLDYgKzUwLDEyIEBAIHR5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX2hlYXAgcGFzX3MKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2Ug
cGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKIAogc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3IgeworICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEgc2NhdmVuZ2VyX2RhdGE7CisgICAg
CisgICAgdWludDhfdCBhbGlnbm1lbnRfc2hpZnQ7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9j
b25maWdfa2luZCBjb25maWdfa2luZCA6IDg7CisgICAgYm9vbCBjdXJyZW50X3dvcmRfaXNfdmFs
aWQ7IC8qIFRoaXMgaXMganVzdCB1c2VkIGJ5IGVudW1lcmF0aW9uLiAqLworCiAgICAgLyogVGhp
cyBoYXMgdG8gaGF2ZSBhIHBvaW50ZXIgdG8gb3VyIGluZGV4IHdpdGhpbiB0aGUgdmlldy4gV2Ug
Y2FuIGdldCB0byB0aGUgdmlldyB1c2luZwogICAgICAgIHBhZ2VfaXNoLiBNYXliZSB3b3J0aCBy
ZWNvbnNpZGVyaW5nIHRoYXQsIGJ1dCB0aGVuIGFnYWluIG1heWJlIGl0J3MgZ29vZCBlbm91Z2gu
IAogICAgIApAQCAtNzEsMTcgKzc3LDEyIEBAIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yIHsK
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7IC8qIHBvaW50cyB0byBhIHBhcnRpYWwgdmll
dyBpZiB3ZSdyZSBpbiBwYXJ0aWFsIG1vZGUgb3IgdGhlIHNpemUKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpcmVjdG9yeSBvdGhlcndpc2UuIFRoaXMgd2lsbCBwb2ludCB0byBh
IHBhcnRpYWwgdmlldyBpbiBlaXRoZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByaW1vcmRpYWwgcGFydGlhbCBtb2RlIG9yIGluIG5vcm1hbCBwYXJ0aWFsIG1vZGUuICovCi0g
ICAgdWludDE2X3QgbnVtX2xpbmVzOwotICAgIHVpbnQ4X3QgYWxpZ25tZW50X3NoaWZ0OwotICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmQgY29uZmlnX2tpbmQgOiA4OwotICAgIGJv
b2wgaXNfaW5fdXNlOwotICAgIHVpbnQ4X3Qgc2hvdWxkX3N0b3BfY291bnQ7Ci0gICAgYm9vbCBk
aXJ0eTsKLSAgICBib29sIGN1cnJlbnRfd29yZF9pc192YWxpZDsgLyogVGhpcyBpcyBqdXN0IHVz
ZWQgYnkgZW51bWVyYXRpb24uICovCiAgICAgdWludDY0X3QgYml0c1sxXTsKIH07CiAKICNkZWZp
bmUgUEFTX0xPQ0FMX0FMTE9DQVRPUl9OVUxMX0lOSVRJQUxJWkVSICgocGFzX2xvY2FsX2FsbG9j
YXRvcil7IFwKKyAgICAgICAgLnNjYXZlbmdlcl9kYXRhID0gXAorICAgICAgICAgICAgUEFTX0xP
Q0FMX0FMTE9DQVRPUl9TQ0FWRU5HRVJfREFUQV9JTklUSUFMSVpFUihwYXNfbG9jYWxfYWxsb2Nh
dG9yX2FsbG9jYXRvcl9raW5kKSwgXAogICAgICAgICAucGF5bG9hZF9lbmQgPSAwLCBcCiAgICAg
ICAgIC5yZW1haW5pbmcgPSAwLCBcCiAgICAgICAgIC5vYmplY3Rfc2l6ZSA9IDAsIFwKQEAgLTg5
LDEwICs5MCw3IEBAIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yIHsKICAgICAgICAgLmN1cnJl
bnRfb2Zmc2V0ID0gMCwgXAogICAgICAgICAuZW5kX29mZnNldCA9IDAsIFwKICAgICAgICAgLnZp
ZXcgPSBOVUxMLCBcCi0gICAgICAgIC5jb25maWdfa2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3Jf
Y29uZmlnX2tpbmRfbm9ybWFsX251bGwsIFwKLSAgICAgICAgLmlzX2luX3VzZSA9IGZhbHNlLCBc
Ci0gICAgICAgIC5zaG91bGRfc3RvcF9jb3VudCA9IDAsIFwKLSAgICAgICAgLmRpcnR5ID0gZmFs
c2UgXAorICAgICAgICAuY29uZmlnX2tpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19r
aW5kX25vcm1hbF9udWxsIFwKICAgICB9KQogCiAjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1Jf
U0laRShudW1fYWxsb2NfYml0cykgXApAQCAtMTAxLDcgKzk5LDEzIEBAIHN0cnVjdCBwYXNfbG9j
YWxfYWxsb2NhdG9yIHsKICAgICAgICAgIHNpemVvZih1aW50NjRfdCkgKiBQQVNfQklUVkVDVE9S
X05VTV9XT1JEUzY0KG51bV9hbGxvY19iaXRzKSwgXAogICAgICAgICAgUEFTX1JPVU5EX1VQX1RP
X1BPV0VSX09GXzIoc2l6ZW9mKHBhc19iaXRmaXRfYWxsb2NhdG9yKSwgc2l6ZW9mKHVpbnQ2NF90
KSkpKQogCi1QQVNfQVBJIGV4dGVybiB1aW50OF90IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hvdWxk
X3N0b3BfY291bnRfZm9yX3N1c3BlbmQ7CisjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVB
U1VSRV9SRUZJTExfRUZGSUNJRU5DWSAwCisKKyNpZiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNV
UkVfUkVGSUxMX0VGRklDSUVOQ1kKK1BBU19BUEkgZXh0ZXJuIGRvdWJsZSBwYXNfbG9jYWxfYWxs
b2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X3N1bTsKK1BBU19BUEkgZXh0ZXJuIGRvdWJsZSBwYXNf
bG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X247CitQQVNfREVDTEFSRV9MT0NLKHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3kpOworI2VuZGlmIC8qIFBBU19MT0NB
TF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAqLwogCiBzdGF0aWMgaW5saW5l
IGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19udWxsKHBhc19sb2NhbF9hbGxvY2F0b3IqIGFs
bG9jYXRvcikKIHsKQEAgLTEzNCw5ICsxMzgsNyBAQCBzdGF0aWMgaW5saW5lIHVpbnRwdHJfdCBw
YXNfbG9jYWxfYWxsb2NhCiB9CiAKIFBBU19BUEkgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2Nv
bnN0cnVjdChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfQVBJIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9k
ZXN0cnVjdChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpOwogCiBQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXNldChw
YXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9y
X2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI2LDE3ICsyNiwxNiBAQAogI2lmbmRlZiBQQVNfTE9DQUxfQUxMT0NBVE9SX0lOTElORVNfSAog
I2RlZmluZSBQQVNfTE9DQUxfQUxMT0NBVE9SX0lOTElORVNfSAogCi0jaW5jbHVkZSAicGFzX2Fs
bF9tYWdhemluZXMuaCIKICNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2NvdW50cy5oIgogI2luY2x1
ZGUgInBhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0
X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfZ2xvYmFsX3NpemVfY2xhc3MuaCIK
KyNpbmNsdWRlICJwYXNfYml0Zml0X3NpemVfY2xhc3MuaCIKICNpbmNsdWRlICJwYXNfY29uZmln
LmgiCiAjaW5jbHVkZSAicGFzX2Vwb2NoLmgiCiAjaW5jbHVkZSAicGFzX2Z1bGxfYWxsb2NfYml0
c19pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NjYXZlbmdlci5oIgogI2luY2x1ZGUgInBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCiAjaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2lubGluZXMuaCIKQEAgLTUxLDcgKzUw
LDcgQEAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAogc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2Nh
bF9hbGxvY2F0b3JfcmVzZXRfaW1wbChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIGtpbmQpCiB7CiAg
ICAgYWxsb2NhdG9yLT5wYWdlX2lzaCA9IDA7CkBAIC01OSwxMSArNTgsMTAgQEAgc3RhdGljIGlu
bGluZSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfcgogICAgIGFsbG9jYXRvci0+Y3VycmVudF93
b3JkX2lzX3ZhbGlkID0gZmFsc2U7CiAgICAgYWxsb2NhdG9yLT5wYXlsb2FkX2VuZCA9IDA7CiAg
ICAgYWxsb2NhdG9yLT5yZW1haW5pbmcgPSAwOwotICAgIGFsbG9jYXRvci0+bnVtX2xpbmVzID0g
MDsKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0ID0gMDsKICAgICBhbGxvY2F0b3ItPmVu
ZF9vZmZzZXQgPSAwOwogICAgIGFsbG9jYXRvci0+Y3VycmVudF93b3JkID0gMDsKLSAgICBhbGxv
Y2F0b3ItPnZpZXcgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYXNfdmll
dyhkaXJlY3RvcnkpOworICAgIGFsbG9jYXRvci0+dmlldyA9IHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2FzX3ZpZXcoZGlyZWN0b3J5KTsKICAgICBhbGxvY2F0b3ItPmNvbmZpZ19raW5k
ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9jcmVhdGVfbm9ybWFsKGtpbmQpOwog
fQogCkBAIC03Miw5ICs3MCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3MKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnRwdHJfdCBiZWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnRwdHJfdCBlbmQpCiB7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGVu
ZCk7CiAgICAgYWxsb2NhdG9yLT5wYXlsb2FkX2VuZCA9IGVuZDsKICAgICBhbGxvY2F0b3ItPnJl
bWFpbmluZyA9ICh1bnNpZ25lZCkoZW5kIC0gYmVnaW4pOwotICAgIGFsbG9jYXRvci0+bnVtX2xp
bmVzID0gMDsKICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0ID0gMDsKICAgICBhbGxvY2F0
b3ItPmVuZF9vZmZzZXQgPSAwOwogICAgIGFsbG9jYXRvci0+Y3VycmVudF93b3JkID0gMDsKQEAg
LTEyMiw3ICsxMjAsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfbG9jYWxf
CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
bl9iaXRzX3RvX3NldF91cF9mcmVlX2JpdHMoCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxs
b2NhdG9yLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKICAgICB1aW50cHRyX3QgcGFnZV9ib3VuZGFyeSwK
ICAgICB1bnNpZ25lZCBjdXJyZW50X29mZnNldCwKQEAgLTEzOSw2ICsxMzcsMTEgQEAgc3RhdGlj
IFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsXwogICAgIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2Nhbl9iaXRzX3RvX3NldF91cF91c2VfY291bnRzX2RhdGEgZGF0YTsKICAgICB1bnNpZ25l
ZCBvYmplY3Rfc2l6ZTsKIAorI2lmIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExf
RUZGSUNJRU5DWQorICAgIHVuc2lnbmVkIG51bV90b3RhbF9vYmplY3RzOworICAgIHVuc2lnbmVk
IG51bV90YWtlbl9vYmplY3RzOworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfTUVBU1VS
RV9SRUZJTExfRUZGSUNJRU5DWSAqLworCiAgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy5iYXNl
LmlzX2VuYWJsZWQpOwogICAgIFBBU19VTlVTRURfUEFSQU0oZGlyZWN0b3J5KTsKIApAQCAtMTc5
LDggKzE4Miw4IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF8KICAg
ICAgICAgcGFzX2xvZygiQWxsb2NhdG9yICVwIHplcm9pbmcgYml0cy5cbiIsIGFsbG9jYXRvcik7
CiAgICAgcGFzX3plcm9fbWVtb3J5KAogICAgICAgICBhbGxvY2F0b3ItPmJpdHMgKyAoZnVsbF9h
bGxvY19iaXRzLndvcmRfaW5kZXhfYmVnaW4gPj4gMSksCi0gICAgICAgIHNpemVvZih1bnNpZ25l
ZCkgKiAoKChmdWxsX2FsbG9jX2JpdHMud29yZF9pbmRleF9lbmQgKyAxKSAmIH4xKSAtCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKGZ1bGxfYWxsb2NfYml0cy53b3JkX2luZGV4X2JlZ2lu
ICYgfjEpKSk7CisgICAgICAgIHNpemVvZih1bnNpZ25lZCkgKiAoKChmdWxsX2FsbG9jX2JpdHMu
d29yZF9pbmRleF9lbmQgKyAxKSAmIH4xdSkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChmdWxsX2FsbG9jX2JpdHMud29yZF9pbmRleF9iZWdpbiAmIH4xdSkpKTsKIAogICAgIHBhc19j
b21waWxlcl9mZW5jZSgpOwogCkBAIC0xOTMsNiArMTk2LDExIEBAIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkIHBhc19sb2NhbF8KIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogCisj
aWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lFTkNZCisgICAgbnVt
X3RvdGFsX29iamVjdHMgPSAwOworICAgIG51bV90YWtlbl9vYmplY3RzID0gMDsKKyNlbmRpZiAv
KiBQQVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KKwogICAg
IGZvciAoaW5kZXggPSBmdWxsX2FsbG9jX2JpdHMud29yZF9pbmRleF9iZWdpbjsgaW5kZXggPCBm
dWxsX2FsbG9jX2JpdHMud29yZF9pbmRleF9lbmQ7ICsraW5kZXgpIHsKICAgICAgICAgdW5zaWdu
ZWQgZnVsbDsKICAgICAgICAgdW5zaWduZWQgYWxsb2M7CkBAIC0yMDIsNiArMjEwLDEyIEBAIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF8KICAgICAgICAgYWxsb2MgPSBh
bGxvY19iaXRzW2luZGV4XTsKICAgICAgICAgZnJlZSA9IGZ1bGwgJiB+YWxsb2M7CiAgICAgICAg
ICgodW5zaWduZWQqKWFsbG9jYXRvci0+Yml0cylbaW5kZXhdID0gZnJlZTsKKworI2lmIFBBU19M
T0NBTF9BTExPQ0FUT1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWQorICAgICAgICBudW1fdG90
YWxfb2JqZWN0cyArPSBfX2J1aWx0aW5fcG9wY291bnQoZnVsbCk7CisgICAgICAgIG51bV90YWtl
bl9vYmplY3RzICs9IF9fYnVpbHRpbl9wb3Bjb3VudChmcmVlKTsKKyNlbmRpZiAvKiBQQVNfTE9D
QUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KKyAgICAgICAgCiAgICAg
ICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogICAgICAgICBhbGxvY19iaXRzW2luZGV4XSA9IGFs
bG9jIHwgZnVsbDsKICAgICAgICAgc3dpdGNoICh2aWV3X2tpbmQpIHsKQEAgLTI0Myw2ICsyNTcs
MTUgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX2xvY2FsXwogICAgICAgICB9
CiAgICAgfQogCisjaWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lF
TkNZCisgICAgUEFTX0FTU0VSVChudW1fdGFrZW5fb2JqZWN0cyA8PSBudW1fdG90YWxfb2JqZWN0
cyk7CisKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X2xvY2tfbG9j
aygpOworICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfc3VtICs9IChk
b3VibGUpbnVtX3Rha2VuX29iamVjdHMgLyAoZG91YmxlKW51bV90b3RhbF9vYmplY3RzOworICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbisrOworICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja191bmxvY2soKTsKKyNlbmRpZiAvKiBQ
QVNfTE9DQUxfQUxMT0NBVE9SX01FQVNVUkVfUkVGSUxMX0VGRklDSUVOQ1kgKi8KKwogICAgIGlm
IChwYWdlX2NvbmZpZy51c2VfcmV2ZXJzZWRfY3VycmVudF93b3JkKSB7CiAgICAgICAgIFBBU19B
U1NFUlQocGFnZV9jb25maWcudmFyaWFudCA9PSBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ192YXJpYW50KTsKICAgICAgICAgYWxsb2NhdG9yLT5jdXJyZW50X3dvcmQgPSBwYXNfcmV2
ZXJzZTY0KGFsbG9jYXRvci0+Yml0c1tjdXJyZW50X29mZnNldF0pOwpAQCAtMjYyLDcgKzI4NSw3
IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19sb2NhbF8KICAgICBzd2l0Y2gg
KHZpZXdfa2luZCkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2lu
ZDoKICAgICAgICAgcGFnZS0+bnVtX25vbl9lbXB0eV93b3JkcyA9Ci0gICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgK
KyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRf
bm9uX251bGwoCiAgICAgICAgICAgICAgICAgJmRpcmVjdG9yeS0+ZGF0YSktPmZ1bGxfbnVtX25v
bl9lbXB0eV93b3JkczsKICAgICAgICAgYnJlYWs7CiAgICAgICAgIApAQCAtMjgwLDcgKzMwMyw3
IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkCiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nl
dF91cF9mcmVlX2JpdHMocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCB2aWV3
X2tpbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogdmlldywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBh
Z2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IHBhZ2Vf
Ym91bmRhcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCkBAIC0zMDQsNyArMzI3LDcgQEAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zZXRfdXBfZnJlZV9iaXRzKHBhcwogCiAgICAgICAgIGJlZ2luX29mZnNl
dCA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJz
dF9vYmplY3QoCiAgICAgICAgICAgICBwYWdlLCBkaXJlY3RvcnksIHBhZ2VfY29uZmlnKTsKLSAg
ICAgICAgZW5kX29mZnNldCA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhX3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICBlbmRfb2Zmc2V0ID0gcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICZk
aXJlY3RvcnktPmRhdGEpLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0
X29iamVjdDsKIAogICAgICAgICBiZWdpbl9vZmZzZXQgPSBQQVNfQklUVkVDVE9SX1dPUkQ2NF9J
TkRFWCgKQEAgLTM1Myw3ICszNzYsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9f
YWxsb2NhdGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kIHZpZXdfa2luZCwKICAgICB2
b2lkKiB2aWV3LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZyBwYWdlX2NvbmZpZykKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CkBAIC0zNzUsNyArMzk4LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9wcmVwYXJlX3RvX2Fs
bG9jYXRlKAogICAgIGlmICh2aWV3X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfa2luZCAmJiAhcGFnZS0+bnVtX25vbl9lbXB0eV93b3JkcykgewogICAgICAgICB1aW50cHRy
X3QgcGF5bG9hZF9iZWdpbjsKICAgICAgICAgdWludHB0cl90IHBheWxvYWRfZW5kOwotICAgICAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKKyAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKIAogICAgICAgICBp
ZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIlJlZmlsbGluZyB3aXRoIGJ1bXAuXG4i
KTsKQEAgLTM4Myw3ICs0MDYsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3ByZXBhcmVfdG9fYWxs
b2NhdGUoCiAgICAgICAgIGlmIChwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29u
ZmlnLmJhc2UuZ3JhbnVsZV9zaXplKQogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfaW5zdGFsbF9mdWxsX3VzZV9jb3VudHMoKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3Kil2aWV3KTsKIAotICAgICAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWRfbm9uX251bGwoJmRpcmVjdG9yeS0+ZGF0YSk7Cisg
ICAgICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2Fk
X25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpOwogICAgICAgICAKICAgICAgICAgcGF5bG9hZF9i
ZWdpbiA9IHBhZ2VfYm91bmRhcnkgKyBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3Rv
X2ZpcnN0X29iamVjdDsKICAgICAgICAgcGF5bG9hZF9lbmQgPSBwYWdlX2JvdW5kYXJ5ICsgZGF0
YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3Q7CkBAIC0z
OTgsNiArNDIxLDEzIEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcHJlcGFyZV90b19hbGxvY2F0ZSgK
ICAgICAgICAgbWVtY3B5KHBhZ2UtPmFsbG9jX2JpdHMsIHBhc19jb21wYWN0X3RhZ2dlZF91bnNp
Z25lZF9wdHJfbG9hZF9ub25fbnVsbCgmZGF0YS0+ZnVsbF9hbGxvY19iaXRzKSwKICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRlcyhwYWdlX2Nv
bmZpZykpOwogCisjaWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lF
TkNZCisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbG9ja19s
b2NrKCk7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfc3Vt
Kys7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfbisrOwor
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF9lZmZpY2llbmN5X2xvY2tfdW5sb2Nr
KCk7CisjZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklMTF9FRkZJQ0lF
TkNZICovCisgICAgICAgIAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApAQCAtNTMyLDcg
KzU2Miw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sCiBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3N0YXJ0X2FsbG9jYXRpbmdfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcoCiAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlldyogdmlldywKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNp
emVfZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2Rp
cmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKIHsK
ICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CkBAIC04MjEsOCArODUxLDcg
QEAgUEFTX0FQSSBib29sIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsXwogCiBQQVNfQVBJIHZv
aWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9maW5pc2hfcmVmaWxsX3dpdGhfYml0Zml0KAogICAgIHBh
c19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5LAotICAgIHBhc19tYWdhemluZSogbWFnYXpp
bmUpOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSk7
CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sCiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jl
ZmlsbF93aXRoX2tub3duX2NvbmZpZygKQEAgLTgzOCwxNCArODY3LDE1IEBAIHBhc19sb2NhbF9h
bGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY28KICAgICBwYXNfbG9jayogaGVsZF9sb2NrOwog
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIG9sZF9wYWdlOwogICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2UqIG5ld19wYWdlOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
c2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVf
ZGlyZWN0b3J5OwogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAg
IHBhc19tYWdhemluZSogbWFnYXppbmU7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2Rl
KiBjYWNoZV9ub2RlOwogICAgIGJvb2wgZGlkX2luaXRpYWxpemVfYml0Zml0OwogICAgIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFydGlhbF92aWV3KiBwYXJ0aWFsOwogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBz
aGFyZWQ7CiAgICAgYm9vbCBlbmFibGVfc2VncmVnYXRlZDsKKyAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiBjYWNoZTsKIAogICAgIFBBU19VTlVTRURfUEFSQU0oY291bnRzKTsKIApAQCAtODU2
LDcgKzg4Niw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY28KICAg
ICBpZiAoc2tpcF9iaXRmaXQpCiAgICAgICAgIFBBU19BU1NFUlQoZW5hYmxlX3NlZ3JlZ2F0ZWQp
OwogICAgIAotICAgIHNpemVfZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyk7CisgICAgc2l6ZV9kaXJlY3Rvcnkg
PSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcp
OwogICAgIGRpcmVjdG9yeSA9ICZzaXplX2RpcmVjdG9yeS0+YmFzZTsKIAogICAgIGlmICh2ZXJi
b3NlKSB7CkBAIC04NzcsMTAgKzkwNyw5IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dp
dGhfa25vd25fY28KICAgICAgICAgcGFzX2JpdGZpdF9hbGxvY2F0b3JfYXNzZXJ0X3Jlc2V0KGJp
dGZpdCk7CiAgICAgfQogCi0gICAgaWYgKCFhbGxvY2F0b3ItPmRpcnR5ICYmIHZlcmJvc2UpCisg
ICAgaWYgKCFhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmRpcnR5ICYmIHZlcmJvc2UpCiAgICAg
ICAgIHBhc19sb2coIlVzaW5nIGFsbG9jYXRvciAlcFxuIiwgYWxsb2NhdG9yKTsKLSAgICBhbGxv
Y2F0b3ItPmRpcnR5ID0gdHJ1ZTsKLSAgICBhbGxvY2F0b3ItPnNob3VsZF9zdG9wX2NvdW50ID0g
MDsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91c2VfZm9yX2Fs
bG9jYXRpb24oJmFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEpOwogICAgIAogICAgIGlmIChwYXNf
c2NhdmVuZ2VyX2RpZF9jcmVhdGVfZWxpZ2libGUoKSkgewogICAgICAgICBpZiAocGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykgPT0gcGFz
X2xvY2tfaXNfbm90X2hlbGQpCkBAIC04OTcsNyArOTI2LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZWZpbGxfd2l0aF9rbm93bl9jbwogICAgICAgICBvbGRfcGFnZSA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfZm9yX2JvdW5kYXJ5KAogICAgICAgICAgICAgKHZvaWQqKXBhc19sb2NhbF9hbGxvY2F0
b3JfcGFnZV9ib3VuZGFyeShhbGxvY2F0b3IsIHBhZ2VfY29uZmlnKSwgcGFnZV9jb25maWcpOwog
ICAgICAgICBvbGRfdmlldyA9IG9sZF9wYWdlLT5vd25lcjsKLSAgICAgICAgaWYgKCFwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZV9pc2gob2xkX3ZpZXcpKSB7CisgICAgICAgIGlmICgh
cGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShvbGRfdmlldykpIHsKICAgICAg
ICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zaGFyZWRfaGFuZGxlKG9s
ZF92aWV3KSk7CiAgICAgICAgICAgICBvbGRfdmlldyA9IGFsbG9jYXRvci0+dmlldzsKICAgICAg
ICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19wYXJ0aWFsKG9sZF92aWV3
KSk7CkBAIC05MTgsMzQgKzk0NywyOSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRo
X2tub3duX2NvCiAgICAgICAgIGNvdW50cy0+c2xvd19yZWZpbGxzKys7CiAjZW5kaWYgLyogUEFT
X0VOQUJMRV9URVNUSU5HICovCiAKLSAgICBtYWdhemluZSA9IE5VTEw7CisgICAgY2FjaGUgPSBO
VUxMOworICAgIGNhY2hlX25vZGUgPSBOVUxMOwogICAgIAogICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpIHsKLSAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogY2FjaGU7Ci0gICAgICAgIAogICAgICAgICBjYWNoZSA9IHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOwogICAgICAgICAKICAgICAgICAgaWYgKGNhY2hl
KSB7CisgICAgICAgICAgICBjYWNoZV9ub2RlID0gY2FjaGUtPm5vZGU7CisgICAgICAgICAgICAK
ICAgICAgICAgICAgIC8qIERvaW5nIHRoaXMgaGVyZSBoYXMgc29tZSBzcGVjaWFsIHByb3BlcnRp
ZXMuIEZvciBleGFtcGxlLCBpdCBkb2Vzbid0IHByZXZlbnQgZmFzdCByZXVzZQogICAgICAgICAg
ICAgICAgb2YgdGhlIHBhZ2Ugd2UganVzdCBmaW5pc2hlZCBhbGxvY2F0aW5nIG91dCBvZi4gKi8K
ICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxvY2F0b3Jz
X2lmX25lY2Vzc2FyeSgKICAgICAgICAgICAgICAgICBjYWNoZSwgYWxsb2NhdG9yLCBwYXNfbG9j
a19pc19ub3RfaGVsZCk7CiAgICAgICAgIH0KLQotICAgICAgICAvKiBOT1RFOiBUaGlzIGlzIHJh
Y3ksIGFuZCB0aGF0J3MgT0suIE1hZ2F6aW5lcyBhcmUgZGVzaWduZWQgc28gdGhhdCBpZiBhIHRo
cmVhZCBhY2Nlc3NlcyBpdAotICAgICAgICAgICBmcm9tIHRoZSB3cm9uZyBjb3JlIHRoZW4gdGhl
IHdvcnN0IHRoaW5nIHRoYXQgd2lsbCBoYXBwZW4gaXMgYSBiaXQgb2YgY29udGVudGlvbi4gKi8K
LSAgICAgICAgbWFnYXppbmUgPSBwYXNfYWxsX21hZ2F6aW5lc19nZXRfY3VycmVudCgpOwogICAg
IH0KIAogICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coIm9sZF92aWV3ID0gJXAu
XG4iLCBvbGRfdmlldyk7CiAgICAgICAgIGlmIChvbGRfdmlldykgewotICAgICAgICAgICAgcGFz
X2xvZygiICAgIHNob3VsZCByZXN0YXJ0ID0gJWQsIGluZGV4ID0gJXp1LCBmaXJzdF9lbGlnaWJs
ZV9idXRfbm90X3RhYmxlZCA9ICV6dS5cbiIsCi0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfc2hvdWxkX3Jlc3RhcnQob2xkX3ZpZXcsIG1hZ2F6aW5lKSwKKyAgICAgICAg
ICAgIHBhc19sb2coIiAgICBpbmRleCA9ICV6dSwgZmlyc3RfZWxpZ2libGUgPSAlenUuXG4iLAog
ICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9pbmRleChvbGRfdmll
dyksCiAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmly
c3RfZWxpZ2libGUoCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9zaXplX2RpcmVjdG9yeShvbGRfdmlldyksCi0gICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2lu
ZCkudmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X3NpemVfZGlyZWN0b3J5KG9sZF92aWV3KS0+YmFzZSkudmFsdWUpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC05NjksMzggKzk5MywxNCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93
aXRoX2tub3duX2NvCiAgICAgICAgICAgICBuZXdfcGFnZSA9IG9sZF9wYWdlOwogICAgICAgICAg
ICAgCiAgICAgICAgICAgICBleGNsdXNpdmUgPSAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cihuZXdfdmlldyk7Ci0KLSAgICAgICAgICAg
IGdvdG8gcmVzdGFydF9leGNsdXNpdmU7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOiB7Ci0gICAgICAgICAgICBpZiAobWFnYXppbmUp
IHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIGJpYXNpbmc7
Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNp
bmdfZGlyZWN0b3J5OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGJpYXNpbmcg
PSAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9w
dHIob2xkX3ZpZXcpOwotICAgICAgICAgICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKLSAg
ICAgICAgICAgICAgICAgICAgJmJpYXNpbmctPmRpcmVjdG9yeSk7Ci0gICAgICAgICAgICAgICAg
aWYgKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X21hZ2F6aW5lX2luZGV4KGJpYXNp
bmdfZGlyZWN0b3J5KQotICAgICAgICAgICAgICAgICAgICA9PSBtYWdhemluZS0+bWFnYXppbmVf
aW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgZXBvY2g7Ci0gICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBuZXdfdmlldyA9IG9sZF92aWV3OwotICAg
ICAgICAgICAgICAgICAgICBuZXdfcGFnZSA9IG9sZF9wYWdlOwotCi0gICAgICAgICAgICAgICAg
ICAgIGVwb2NoID0gcGFzX2dldF9lcG9jaCgpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgcGFzX2JpYXNpbmdfZGlyZWN0b3J5X2RpZF91c2VfaW5kZXgoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwgYmlh
c2luZy0+aW5kZXgsIGVwb2NoKTsKLQotICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUgPQot
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJmJpYXNpbmctPmV4Y2x1c2l2ZSk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICBnb3RvIHJlc3RhcnRfZXhjbHVzaXZlOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgCisgICAgICAgICAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJSZXN0YXJ0aW5nIG9uIHNh
bWUgcGFnZSBhcyBiZWZvcmUuXG4iKTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
c3dpdGNoX2xvY2tfYW5kX3JlYmlhc193aGlsZV9pbmVsaWdpYmxlKAorICAgICAgICAgICAgICAg
IG5ld19wYWdlLCAmaGVsZF9sb2NrLCBjYWNoZV9ub2RlLCBwYWdlX2NvbmZpZyk7CisgICAgICAg
ICAgICBuZXdfcGFnZS0+b3duZXIgPSBwYXNfc2VncmVnYXRlZF92aWV3X2FzX2luZWxpZ2libGUo
bmV3X3ZpZXcpOworICAgICAgICAgICAgbmV3X3BhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlv
bl9oYXNfYmVlbl9kZWZlcnJlZCA9IGZhbHNlOworICAgICAgICAgICAgZ290byBwcmVwYXJlX2V4
Y2x1c2l2ZTsKICAgICAgICAgfQogCiAgICAgICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3X2tpbmQ6IHsKQEAgLTEwMjQsMjggKzEwMjQsODUgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZWZpbGxfd2l0aF9rbm93bl9jbwogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9n
KCJGaW5kaW5nIGEgZGlmZmVyZW50IHBhZ2UuXG4iKTsKIAorICAgIG5ld192aWV3ID0gTlVMTDsK
KyAgICBuZXdfcGFnZSA9IE5VTEw7CisgICAgCiAgICAgaWYgKGVuYWJsZV9zZWdyZWdhdGVkKSB7
Ci0gICAgICAgIG5ld192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X3Rha2VfZmlyc3RfZWxpZ2libGUoc2l6ZV9kaXJlY3RvcnksIG1hZ2F6aW5lKTsKLSAgICAgICAg
aWYgKHZlcmJvc2UpCi0gICAgICAgICAgICBwYXNfbG9nKCJHb3QgYSBuZXcgdmlldyAlcFxuIiwg
bmV3X3ZpZXcpOwotICAgICAgICBpZiAobmV3X3ZpZXcpCi0gICAgICAgICAgICBuZXdfdmlldyA9
IHBhc19zZWdyZWdhdGVkX3ZpZXdfd2lsbF9zdGFydF9hbGxvY2F0aW5nKG5ld192aWV3LCBwYWdl
X2NvbmZpZyk7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCJB
bmQgYWZ0ZXIgd2lsbF9zdGFydCBnb3QgYSBuZXcgdmlldyAlcCwgcGFnZSA9ICVwLCBib3VuZGFy
eSA9ICVwXG4iLAotICAgICAgICAgICAgICAgICAgICBuZXdfdmlldywKLSAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZShuZXdfdmlldyksCi0gICAgICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfYm91bmRhcnkobmV3X3ZpZXcp
KTsKKyAgICAgICAgYm9vbCBkaWRfZ2V0X3ZpZXc7CisKKyAgICAgICAgZGlkX2dldF92aWV3ID0g
ZmFsc2U7CisKKyAgICAgICAgaWYgKHBhZ2VfY29uZmlnLmVuYWJsZV92aWV3X2NhY2hlICYmIGNh
Y2hlKSB7CisgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCB2aWV3X2NhY2hl
X3Jlc3VsdDsKKworICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpOworCisgICAgICAgICAgICB2aWV3X2NhY2hl
X3Jlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcigKKyAg
ICAgICAgICAgICAgICBjYWNoZSwgc2l6ZV9kaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXgsIHBh
c19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAgICAgICAgIGNhY2hlID0gTlVMTDsgLyogVGhlIGNh
Y2hlIGNvdWxkIGhhdmUgYmVlbiByZXNpemVkLCBzbyB3ZSBkb24ndCB3YW50IHRvIHVzZSB0aGlz
IHBvaW50ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW55bW9yZS4gKi8KKyAgICAg
ICAgICAgIGlmICh2aWV3X2NhY2hlX3Jlc3VsdC5kaWRfc3VjY2VlZCkgeworICAgICAgICAgICAg
ICAgIHBhc19sb2NhbF92aWV3X2NhY2hlKiB2aWV3X2NhY2hlOworICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIHZpZXdfY2FjaGUgPSAocGFzX2xvY2FsX3ZpZXdfY2FjaGUqKXZpZXdf
Y2FjaGVfcmVzdWx0LmFsbG9jYXRvcjsKKworICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FT
U0VSVCghdmlld19jYWNoZS0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICB2aWV3X2NhY2hlLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91
c2UgPSB0cnVlOworICAgICAgICAgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworCisgICAg
ICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9kaWRfdXNlX2Zv
cl9hbGxvY2F0aW9uKCZ2aWV3X2NhY2hlLT5zY2F2ZW5nZXJfZGF0YSk7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eSh2
aWV3X2NhY2hlKSkgeworICAgICAgICAgICAgICAgICAgICBuZXdfdmlldyA9IHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXcocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcG9wKHZpZXdf
Y2FjaGUpKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIFBBU19U
RVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKG5ld192
aWV3KSk7CisgICAgICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVn
YXRlZF92aWV3X2lzX293bmVkKG5ld192aWV3KSk7CisgICAgICAgICAgICAgICAgICAgIFBBU19U
RVNUSU5HX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZShuZXdfdmlldykp
OworICAgICAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfcGFnZShuZXdfdmlldyktPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbik7CisgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19sb2coIiVwLCBhPSVwLCB2Yz0lcDogR290IGZyb20gY2Fj
aGUgKCV1KS5cbiIsIGNhY2hlX25vZGUsIGFsbG9jYXRvciwgdmlld19jYWNoZSwgYWxsb2NhdG9y
LT5vYmplY3Rfc2l6ZSk7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAg
ICBkaWRfZ2V0X3ZpZXcgPSB0cnVlOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworICAgICAgICAgICAgICAgIHZpZXdfY2FjaGUtPnNj
YXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9
CisKKyAgICAgICAgaWYgKCFkaWRfZ2V0X3ZpZXcpIHsKKyAgICAgICAgICAgIG5ld192aWV3ID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZShzaXplX2Rp
cmVjdG9yeSk7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNf
bG9nKCJHb3QgYSBuZXcgdmlldyAlcFxuIiwgbmV3X3ZpZXcpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2li
bGUobmV3X3ZpZXcpKTsKKyAgICAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3Nv
bWVfZXhjbHVzaXZlKG5ld192aWV3KSkgeworICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FT
U0VSVCgKKyAgICAgICAgICAgICAgICAgICAgIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfb3duZWQo
bmV3X3ZpZXcpCisgICAgICAgICAgICAgICAgICAgIHx8ICFwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9wYWdlKG5ld192aWV3KS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaWYgKG5ld192aWV3KSB7CisgICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIiVwLCAlcDogR290IGZyb20gZGly
ZWN0b3J5ICgldSkuXG4iLCBjYWNoZV9ub2RlLCBhbGxvY2F0b3IsIGFsbG9jYXRvci0+b2JqZWN0
X3NpemUpOworICAgICAgICAgICAgICAgIG5ld192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld193
aWxsX3N0YXJ0X2FsbG9jYXRpbmcobmV3X3ZpZXcsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgcGFzX2xvZygi
QW5kIGFmdGVyIHdpbGxfc3RhcnQgZ290IGEgbmV3IHZpZXcgJXAsIHBhZ2UgPSAlcCwgYm91bmRh
cnkgPSAlcFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld192aWV3LAorICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZShuZXdfdmlldyksCisg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlX2JvdW5k
YXJ5KG5ld192aWV3KSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9IGVsc2Ugewot
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2ZpbmlzaF9yZWZpbGxfd2l0aF9iaXRmaXQoYWxs
b2NhdG9yLCBzaXplX2RpcmVjdG9yeSwgbWFnYXppbmUpOworICAgICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX2ZpbmlzaF9yZWZpbGxfd2l0aF9iaXRmaXQoYWxsb2NhdG9yLCBzaXplX2RpcmVjdG9y
eSk7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiaW5pdGlhbGl6
ZWQgYml0Zml0IVxuIik7CiAgICAgICAgIGRpZF9pbml0aWFsaXplX2JpdGZpdCA9IHRydWU7Ci0g
ICAgICAgIG5ld192aWV3ID0gTlVMTDsKICAgICB9CiAKLSAgICBuZXdfcGFnZSA9IE5VTEw7Ci0g
ICAgCiAgICAgLyogQXQgdGhpcyBwb2ludCB3ZSBuZWVkIHRvIGdldCB0aGUgcGFnZS4gV2UgY2Fu
J3QgZG8gdGhhdCBmb3IgcHJpbW9yZGlhbCBwYXJ0aWFsIHZpZXdzLAogICAgICAgIHRob3VnaC4g
Ki8KICAgICAKQEAgLTEwNzAsMTQgKzExMjcsMTQgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZp
bGxfd2l0aF9rbm93bl9jbwogCiAgICAgUEFTX0FTU0VSVChlbmFibGVfc2VncmVnYXRlZCk7CiAK
LSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKG5ld192aWV3KSkg
eworICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKG5ld192aWV3
KSkgewogICAgICAgICBleGNsdXNpdmUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNp
dmUobmV3X3ZpZXcpOwogICAgICAgICBuZXdfcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9y
X2JvdW5kYXJ5KGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpOwogCi0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19tYWdhemlu
ZV93aGlsZV9pbmVsaWdpYmxlKAotICAgICAgICAgICAgbmV3X3BhZ2UsICZoZWxkX2xvY2ssIG1h
Z2F6aW5lLCBwYWdlX2NvbmZpZyk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNo
X2xvY2tfYW5kX3JlYmlhc193aGlsZV9pbmVsaWdpYmxlKAorICAgICAgICAgICAgbmV3X3BhZ2Us
ICZoZWxkX2xvY2ssIGNhY2hlX25vZGUsIHBhZ2VfY29uZmlnKTsKIAotICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfZGlkX3N0YXJ0X2FsbG9jYXRpbmcoCisgICAgICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdGFydF9hbGxvY2F0aW5nKAogICAg
ICAgICAgICAgZXhjbHVzaXZlLCBuZXdfdmlldywgc2l6ZV9kaXJlY3RvcnksIG5ld19wYWdlLCAm
aGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7CiAgICAgICAgIGdvdG8gcHJlcGFyZV9leGNsdXNpdmU7
CiAgICAgfQpAQCAtMTEwNiwxNCArMTE2Myw2IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxs
X3dpdGhfa25vd25fY28KICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfZGlkX3N0YXJ0
X2FsbG9jYXRpbmcocGFydGlhbCwgc2hhcmVkLCBwYWdlX2NvbmZpZyk7CiAgICAgZ290byBwcmVw
YXJlX3BhcnRpYWw7CiAgICAgCi1yZXN0YXJ0X2V4Y2x1c2l2ZToKLSAgICBpZiAodmVyYm9zZSkK
LSAgICAgICAgcGFzX2xvZygiUmVzdGFydGluZyBvbiBzYW1lIHBhZ2UgYXMgYmVmb3JlLlxuIik7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3RvX21hZ2F6
aW5lX3doaWxlX2luZWxpZ2libGUoCi0gICAgICAgIG5ld19wYWdlLCAmaGVsZF9sb2NrLCBtYWdh
emluZSwgcGFnZV9jb25maWcpOwotICAgIG5ld19wYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVk
X3ZpZXdfYXNfaW5lbGlnaWJsZShuZXdfdmlldyk7Ci0gICAgbmV3X3BhZ2UtPmVsaWdpYmlsaXR5
X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJlZCA9IGZhbHNlOwotICAgIAogcHJlcGFyZV9l
eGNsdXNpdmU6CiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9wcmVwYXJlX3RvX2FsbG9jYXRlKAog
ICAgICAgICBhbGxvY2F0b3IsIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQsIGV4
Y2x1c2l2ZSwgbmV3X3BhZ2UsIHNpemVfZGlyZWN0b3J5LApAQCAtMTE3MCw3ICsxMjE5LDggQEAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZwogICAgIG9iamVjdCA9IGRh
dGEtPnBhZ2VfYm91bmRhcnkgKyBwYXNfcGFnZV9iYXNlX29iamVjdF9vZmZzZXRfZnJvbV9wYWdl
X2JvdW5kYXJ5X2F0X2luZGV4KAogICAgICAgICAodW5zaWduZWQpaW5kZXguaW5kZXgsIGRhdGEt
PnBhZ2VfY29uZmlnLmJhc2UpOwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRl
X3dpdGhfcGFnZShkYXRhLT5wYWdlLCBvYmplY3QsIGRhdGEtPnBhZ2VfY29uZmlnKTsKKyAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKAorICAgICAgICBkYXRhLT5w
YWdlLCBvYmplY3QsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZSwgTlVM
TCwgZGF0YS0+cGFnZV9jb25maWcpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMTc5LDcg
KzEyMjksNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZAogcGFzX2xvY2FsX2FsbG9j
YXRvcl9yZXR1cm5fbWVtb3J5X3RvX3BhZ2UocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9y
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlldyB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2Rl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7CkBAIC0xMTk0LDggKzEyNDQsNiBAQCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3JldHVybl9tZW1vcnlfdG9fcGFnCiAKICAgICBQQVNfQVNTRVJUKHBh
Z2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CiAKLSAgICBwYWdlLT5hdm9pZF9saW5lX2FsbG9j
YXRvciA9IHRydWU7Ci0KICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0
aWxpdHkocGFnZV9jb25maWcpKQogICAgICAgICBwYXNfbG9ja19hc3NlcnRfaGVsZChwYWdlLT5s
b2NrX3B0cik7CiAKQEAgLTEyMTgsOCArMTI2NiwxMCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jl
dHVybl9tZW1vcnlfdG9fcGFnCiAgICAgICAgIGJlZ2luID0gYWxsb2NhdG9yLT5wYXlsb2FkX2Vu
ZCAtIGFsbG9jYXRvci0+cmVtYWluaW5nOwogICAgICAgICBlbmQgPSBhbGxvY2F0b3ItPnBheWxv
YWRfZW5kOwogICAgICAgICAKLSAgICAgICAgZm9yIChvYmplY3QgPSBiZWdpbjsgb2JqZWN0IDwg
ZW5kOyBvYmplY3QgKz0gb2JqZWN0X3NpemUpCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKHBhZ2UsIG9iamVjdCwgcGFnZV9jb25maWcpOworICAg
ICAgICBmb3IgKG9iamVjdCA9IGJlZ2luOyBvYmplY3QgPCBlbmQ7IG9iamVjdCArPSBvYmplY3Rf
c2l6ZSkgeworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhf
cGFnZSgKKyAgICAgICAgICAgICAgICBwYWdlLCBvYmplY3QsIHBhc19zZWdyZWdhdGVkX2RlYWxs
b2NhdGlvbl9kaXJlY3RfbW9kZSwgTlVMTCwgcGFnZV9jb25maWcpOworICAgICAgICB9CiAgICAg
fQogICAgIAogICAgIGlmIChhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0ID09IGFsbG9jYXRvci0+
ZW5kX29mZnNldCkKQEAgLTEzMTEsMjEgKzEzNjEsMjcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGVfd2l0aF9mcgogICAgIGlmIChQQVNfVU5MSUtFTFkoIWN1cnJlbnRfd29yZCkp
IHsKICAgICAgICAgdW5zaWduZWQgZW5kX29mZnNldDsKIAorICAgICAgICBlbmRfb2Zmc2V0ID0g
YWxsb2NhdG9yLT5lbmRfb2Zmc2V0OworCiAgICAgICAgIGlmICh1c2VfY3VycmVudF93b3JkKSB7
CiAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yLT5jb25maWdfa2luZAogICAgICAgICAgICAgICAg
ICE9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX25vcm1hbChwYWdlX2Nv
bmZpZy5raW5kKSkKICAgICAgICAgICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2NyZWF0ZV9mYWlsdXJlKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGN1cnJlbnRfb2Zm
c2V0ID0gYWxsb2NhdG9yLT5jdXJyZW50X29mZnNldDsKKyAgICAgICAgICAgIGlmIChjdXJyZW50
X29mZnNldCA+PSBlbmRfb2Zmc2V0KQorICAgICAgICAgICAgICAgIHJldHVybiBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHRfY3JlYXRlX2ZhaWx1cmUoKTsKICAgICAgICAgICAgIAorICAgICAgICAgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKGN1cnJlbnRfb2Zmc2V0IDwgUEFTX0JJVFZFQ1RPUl9OVU1fV09S
RFM2NChwYWdlX2NvbmZpZy5udW1fYWxsb2NfYml0cykpOworCisgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJaZXJvaW5nICVwXG4iLCBhbGxvY2F0b3It
PmJpdHMgKyBjdXJyZW50X29mZnNldCk7CiAgICAgICAgICAgICBhbGxvY2F0b3ItPmJpdHNbY3Vy
cmVudF9vZmZzZXRdID0gMDsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgZW5kX29mZnNl
dCA9IGFsbG9jYXRvci0+ZW5kX29mZnNldDsKLQogICAgICAgICBkbyB7CiAgICAgICAgICAgICAr
K2N1cnJlbnRfb2Zmc2V0OwotICAgICAgICAgICAgcGFnZV9pc2ggKz0gNjQgPDwgcGFnZV9jb25m
aWcuYmFzZS5taW5fYWxpZ25fc2hpZnQ7CisgICAgICAgICAgICBwYWdlX2lzaCArPSA2NHUgPDwg
cGFnZV9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQ7CiAgICAgICAgICAgICBpZiAoY3VycmVu
dF9vZmZzZXQgPj0gZW5kX29mZnNldCkgewogICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FT
U0VSVChjdXJyZW50X29mZnNldCA9PSBlbmRfb2Zmc2V0IHx8IGN1cnJlbnRfb2Zmc2V0ID09IGVu
ZF9vZmZzZXQgKyAxKTsKICAgICAgICAgICAgICAgICBhbGxvY2F0b3ItPmN1cnJlbnRfb2Zmc2V0
ID0gZW5kX29mZnNldDsKQEAgLTEzNDksMTQgKzE0MDUsMTQgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGVfd2l0aF9mcgogICAgIGlmICh1c2VfcmV2ZXJzZWRfY3VycmVudF93b3Jk
KSB7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiY3VycmVudF93
b3JkID0gJWxseFxuIiwgY3VycmVudF93b3JkKTsKLSAgICAgICAgZm91bmRfYml0X2luZGV4ID0g
X19idWlsdGluX2NsemxsKGN1cnJlbnRfd29yZCk7CisgICAgICAgIGZvdW5kX2JpdF9pbmRleCA9
ICh1aW50cHRyX3QpX19idWlsdGluX2NsemxsKGN1cnJlbnRfd29yZCk7CiAgICAgICAgIGlmICh2
ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiZm91bmRfYml0X2luZGV4ID0gJWx1XG4iLCBm
b3VuZF9iaXRfaW5kZXgpOwogICAgICAgICBjdXJyZW50X3dvcmQgJj0gfigweDgwMDAwMDAwMDAw
MDAwMDBsbHUgPj4gZm91bmRfYml0X2luZGV4KTsKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAg
ICAgICAgICBwYXNfbG9nKCJuZXcgY3VycmVudF93b3JkID0gJWxseFxuIiwgY3VycmVudF93b3Jk
KTsKICAgICB9IGVsc2UgewotICAgICAgICBmb3VuZF9iaXRfaW5kZXggPSBfX2J1aWx0aW5fY3R6
bGwoY3VycmVudF93b3JkKTsKKyAgICAgICAgZm91bmRfYml0X2luZGV4ID0gKHVpbnRwdHJfdClf
X2J1aWx0aW5fY3R6bGwoY3VycmVudF93b3JkKTsKICAgICAgICAgY3VycmVudF93b3JkICY9IH5Q
QVNfQklUVkVDVE9SX0JJVF9NQVNLNjQoZm91bmRfYml0X2luZGV4KTsKICAgICB9CiAgICAgaWYg
KHVzZV9jdXJyZW50X3dvcmQpCkBAIC0xMzY5LDcgKzE0MjUsNyBAQCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3RyeV9hbGxvY2F0ZV93aXRoX2ZyCiAgICAgICAgIHBhc19sb2coCiAgICAgICAgICAgICAi
JXAoJXApOiBSZXR1cm5pbmcgcmVzdWx0IHVzaW5nIGZyZWUgYml0czogJXAuXG4iLAogICAgICAg
ICAgICAgYWxsb2NhdG9yLAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyksCisgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpLAogICAgICAg
ICAgICAgKHZvaWQqKXJlc3VsdCk7CiAgICAgfQogICAgIApAQCAtMTM5NCw3ICsxNDUwLDExIEBA
IHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX2lubGluZV8KICAgICAKICAgICBpZiAo
cmVtYWluaW5nKSB7CiAgICAgICAgIHVpbnRwdHJfdCByZXN1bHQ7CisKKyAgICAgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJwYXlsb2FkX2VuZCA9ICVwXG4iLCBhbGxvY2F0
b3ItPnBheWxvYWRfZW5kKTsKICAgICAgICAgCisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChh
bGxvY2F0b3ItPnBheWxvYWRfZW5kKTsKICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHJlbWFp
bmluZyAtIG9iamVjdF9zaXplIDwgYWxsb2NhdG9yLT5yZW1haW5pbmcpOwogICAgICAgICAKICAg
ICAgICAgLyogVGhpcyBpcyB0aGUgZmFzdGVzdCBmYXN0IHBhdGggZm9yIGFsbG9jYXRpb24uIEl0
IHdpbGwgaGFwcGVuIGlmOgpAQCAtMTQ1OCwxNiArMTUxOCwxNyBAQCBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX2FsbG9jYXRpb25fCiBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0
ZV9zbWFsbF9zZWdyZWdhdGVkX3Nsb3coCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2Nh
dG9yLAogICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCi0gICAgcGFzX2FsbG9jYXRvcl9jb3Vu
dHMqIGNvdW50cykKKyAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzLAorICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0X2ZpbHRlcikKIHsKICAgICBwYXNfYWxsb2Nh
dGlvbl9yZXN1bHQgcmVzdWx0OwogCiAgICAgcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9zbG93X2ltcGwoYWxsb2NhdG9yLCBjb25maWcs
IGNvdW50cyk7CiAKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICBhbGxvY2F0b3ItPmlz
X2luX3VzZSA9IGZhbHNlOworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNl
ID0gZmFsc2U7CiAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiByZXN1bHRfZmlsdGVy
KHJlc3VsdCk7CiB9CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfZmFzdF9wYXRoX2Fs
bG9jYXRpb25fcmVzdWx0CkBAIC0xNTk0LDcgKzE2NTUsOCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZV9zbG93KHBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aXplX3QgYWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfaGVhcF9jb25maWcgY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfZmlsdGVy
IHJlc3VsdF9maWx0ZXIpCiB7CiAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKIApA
QCAtMTYwMiw5ICsxNjY0LDQ3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Ns
b3cocGEKICAgICAgICAgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQsIGNvbmZpZywgY291bnRz
KTsKIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAgIGFsbG9jYXRvci0+aXNfaW5fdXNl
ID0gZmFsc2U7CisgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSBmYWxz
ZTsKIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIHJlc3VsdF9maWx0ZXIocmVzdWx0
KTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAor
cGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfaW5saW5lX29ubHkocGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9maWx0ZXIgcmVzdWx0
X2ZpbHRlcikKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAg
cGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKworICAgIGlmICh2ZXJib3NlKSB7CisgICAg
ICAgIHBhc19sb2coIkFsbG9jYXRvciAlcCAoJXMpIGFsbG9jYXRpbmcgaW5saW5lIG9ubHkuXG4i
LAorICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdf
a2luZF9nZXRfc3RyaW5nKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQpKTsKKyAgICB9CisgICAgCisg
ICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOworICAgIHBhc19j
b21waWxlcl9mZW5jZSgpOworCisgICAgcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlf
YWxsb2NhdGVfaW5saW5lX2Nhc2VzKGFsbG9jYXRvciwgY29uZmlnKTsKKyAgICBpZiAocmVzdWx0
LmRpZF9zdWNjZWVkKSB7CisgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworICAgICAgICBh
bGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IGZhbHNlOworICAgICAgICAKKyAg
ICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coIkFsbG9jYXRvciAlcCAo
JXMpIGFsbG9jYXRlZCAlcCAoaW5saW5lIGNhc2VzKS5cbiIsCisgICAgICAgICAgICAgICAgICAg
IGFsbG9jYXRvciwgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9nZXRfc3RyaW5nKGFs
bG9jYXRvci0+Y29uZmlnX2tpbmQpLAorICAgICAgICAgICAgICAgICAgICAodm9pZCopcmVzdWx0
LmJlZ2luKTsKKyAgICAgICAgfQorICAgIAorICAgICAgICByZXR1cm4gcmVzdWx0X2ZpbHRlcigK
KyAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3pl
cm9fbW9kZShyZXN1bHQuYmVnaW4sIHJlc3VsdC56ZXJvX21vZGUpKTsKKyAgICB9CisKKyAgICBw
YXNfY29tcGlsZXJfZmVuY2UoKTsKKyAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2lu
X3VzZSA9IGZhbHNlOworCisgICAgLyogTk9URTogSXQncyBpbnRlbnRpb25hbCB0aGF0IHdlIG9u
bHkgYXBwbHkgdGhlIHJlc3VsdCBmaWx0ZXIgb24gdGhlIHN1Y2Nlc3MgY2FzZS4gKi8KKyAgICBy
ZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiB9CiAKIHN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKQEAgLTE2MTMsMTIgKzE3
MTMsMTMgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2xvYwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogc2l6ZV90aHVua19hcmcsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogY291bnRz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0
X2ZpbHRlciByZXN1bHRfZmlsdGVyKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKICAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OwogCi0gICAgUEFTX1RF
U1RJTkdfQVNTRVJUKCFhbGxvY2F0b3ItPmlzX2luX3VzZSk7CisgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKCFhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7CiAKICAgICBpZiAodmVy
Ym9zZSkgewogICAgICAgICBwYXNfbG9nKCJBbGxvY2F0b3IgJXAgKCVzKSBhbGxvY2F0aW5nIHNp
emUgPSAlenUsIGFsaWdubWVudCA9ICV6dS5cbiIsCkBAIC0xNjI2LDEzICsxNzI3LDEzIEBAIHBh
c19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19sb2MKICAgICAgICAgICAgICAgICBz
aXplX3RodW5rKHNpemVfdGh1bmtfYXJnKSwgYWxpZ25tZW50KTsKICAgICB9CiAgICAgCi0gICAg
YWxsb2NhdG9yLT5pc19pbl91c2UgPSB0cnVlOworICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2Rh
dGEuaXNfaW5fdXNlID0gdHJ1ZTsKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKIAogICAgIHJl
c3VsdCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX2lubGluZV9jYXNlcyhhbGxv
Y2F0b3IsIGNvbmZpZyk7CiAgICAgaWYgKHJlc3VsdC5kaWRfc3VjY2VlZCkgewogICAgICAgICBw
YXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICAgICAgYWxsb2NhdG9yLT5pc19pbl91c2UgPSBmYWxz
ZTsKKyAgICAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSBmYWxzZTsK
ICAgICAgICAgCiAgICAgICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAgICAgICBwYXNfbG9nKCJB
bGxvY2F0b3IgJXAgKCVzKSBhbGxvY2F0ZWQgJXAgKGlubGluZSBjYXNlcykuXG4iLApAQCAtMTY0
MCw3ICsxNzQxLDggQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2xvYwog
ICAgICAgICAgICAgICAgICAgICAodm9pZCopcmVzdWx0LmJlZ2luKTsKICAgICAgICAgfQogICAg
IAotICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9zdWNjZXNzX3dp
dGhfemVyb19tb2RlKHJlc3VsdC5iZWdpbiwgcmVzdWx0Lnplcm9fbW9kZSk7CisgICAgICAgIHJl
dHVybiByZXN1bHRfZmlsdGVyKAorICAgICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2Ny
ZWF0ZV9zdWNjZXNzX3dpdGhfemVyb19tb2RlKHJlc3VsdC5iZWdpbiwgcmVzdWx0Lnplcm9fbW9k
ZSkpOwogICAgIH0KIAogICAgIGlmIChjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFz
ZS5pc19lbmFibGVkICYmCkBAIC0xNjUzLDMyICsxNzU1LDE4IEBAIHBhc19sb2NhbF9hbGxvY2F0
b3JfdHJ5X2FsbG9jYXRlKHBhc19sb2MKICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBw
YXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5jb25m
aWdfa2luZCkpOwogICAgICAgICB9CiAKLSAgICAgICAgcmV0dXJuIGNvbmZpZy5zcGVjaWFsaXpl
ZF9sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfc2xvdygKLSAg
ICAgICAgICAgIGFsbG9jYXRvciwgY291bnRzKTsKKyAgICAgICAgcmVzdWx0ID0gY29uZmlnLnNw
ZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxfc2VncmVnYXRlZF9z
bG93KAorICAgICAgICAgICAgYWxsb2NhdG9yLCBjb3VudHMsIHJlc3VsdF9maWx0ZXIpOworICAg
ICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coImluIHNtYWxsIHNlZ3JlZ2F0
ZWQgc2xvdyByZXR1cm4gLSByZXN1bHQuYmVnaW4gPSAlcFxuIiwgKHZvaWQqKXJlc3VsdC5iZWdp
bik7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCiAgICAgcmVzdWx0ID0gY29uZmln
LnNwZWNpYWxpemVkX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGVfc2xvdygKLSAgICAgICAg
YWxsb2NhdG9yLCBzaXplX3RodW5rKHNpemVfdGh1bmtfYXJnKSwgYWxpZ25tZW50LCBjb3VudHMp
OwotICAgIGlmIChyZXN1bHQuZGlkX3N1Y2NlZWQpIHsKLSAgICAgICAgcGFzX2NvbXBpbGVyX2Zl
bmNlKCk7Ci0KLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coIkFs
bG9jYXRvciAlcCAoJXMpIGFsbG9jYXRlZCAlcCAoc2xvdykuXG4iLAotICAgICAgICAgICAgICAg
ICAgICBhbGxvY2F0b3IsIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0cmlu
ZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSwKLSAgICAgICAgICAgICAgICAgICAgKHZvaWQqKXJl
c3VsdC5iZWdpbik7Ci0gICAgICAgIH0KLSAgICAKLSAgICAgICAgcmV0dXJuIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmVhdGVfc3VjY2Vzc193aXRoX3plcm9fbW9kZShyZXN1bHQuYmVnaW4sIHJl
c3VsdC56ZXJvX21vZGUpOwotICAgIH0KLQotICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAg
IAotICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgIHBhc19sb2coIkFsbG9jYXRvciAlcCAoJXMp
IGZhaWxlZC5cbiIsCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yLCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5jb25maWdfa2luZCkpOwotICAg
IH0KLSAgICAKLSAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJl
KCk7CisgICAgICAgIGFsbG9jYXRvciwgc2l6ZV90aHVuayhzaXplX3RodW5rX2FyZyksIGFsaWdu
bWVudCwgY291bnRzLCByZXN1bHRfZmlsdGVyKTsKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAg
cGFzX2xvZygiaW4gZ2VuZXJpYyByZXR1cm4gLSByZXN1bHQuYmVnaW4gPSAlcFxuIiwgKHZvaWQq
KXJlc3VsdC5iZWdpbik7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogUEFTX0VORF9FWFRFUk5f
QzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxv
Y2F0b3Jfa2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfTE9DQUxfQUxMT0NBVE9SX0tJTkQKKyNkZWZp
bmUgUEFTX0xPQ0FMX0FMTE9DQVRPUl9LSU5ECisKKyNpbmNsdWRlICJwYXNfdXRpbHMuaCIKKwor
UEFTX0JFR0lOX0VYVEVSTl9DOworCitlbnVtIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCB7Cisg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZCwKKyAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX3ZpZXdfY2FjaGVfa2luZAorfTsKKwordHlwZWRlZiBlbnVtIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfa2luZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQ7CisKK3N0YXRpYyBpbmxpbmUgY29u
c3QgY2hhciogcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kX2dldF9zdHJpbmcocGFzX2xvY2FsX2Fs
bG9jYXRvcl9raW5kIGtpbmQpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBwYXNf
bG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOgorICAgICAgICByZXR1cm4gImFsbG9jYXRv
ciI7CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZDoKKyAgICAg
ICAgcmV0dXJuICJ2aWV3X2NhY2hlIjsKKyAgICB9CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBu
b3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBOVUxMOworfQorCitQQVNfRU5EX0VYVEVSTl9D
OworCisjZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRPUl9LSU5EICovCisKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfbGluZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9h
bGxvY2F0b3JfbGluZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUuaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDExNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0KLSNpZm5kZWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9MSU5FX0gKLSNkZWZpbmUgUEFTX0xP
Q0FMX0FMTE9DQVRPUl9MSU5FX0gKLQotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0
b3JfbGluZTsKLXR5cGVkZWYgc3RydWN0IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZSBwYXNfbG9j
YWxfYWxsb2NhdG9yX2xpbmU7Ci0KLXN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUgewot
ICAgIHVpbnQxNl90IGVuY29kZWRfcmVtYWluaW5nOwotICAgIHVpbnQxNl90IGVuY29kZWRfcGF5
bG9hZF9lbmRfZGVsdGE7Ci19OwotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNf
bG9jYWxfYWxsb2NhdG9yX2xpbmVfZml0c193aXRob3V0X3NoaWZ0KAotICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAgIHNpemVfdCBtYXhfcGFnZV9vZmZz
ZXQ7Ci0gICAgc2l6ZV90IHNoaWZ0ZWQ7Ci0KLSAgICBtYXhfcGFnZV9vZmZzZXQgPSBwYWdlX2Nv
bmZpZy5iYXNlLnBhZ2Vfc2l6ZSAtIDE7Ci0KLSAgICBpZiAoKHVpbnQxNl90KW1heF9wYWdlX29m
ZnNldCA9PSBtYXhfcGFnZV9vZmZzZXQpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgc2hp
ZnRlZCA9IG1heF9wYWdlX29mZnNldCA+PiBwYWdlX2NvbmZpZy5iYXNlLm1pbl9hbGlnbl9zaGlm
dDsKLQotICAgIFBBU19BU1NFUlQoKHVpbnQxNl90KXNoaWZ0ZWQgPT0gc2hpZnRlZCk7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgc2l6ZV90IHBhc19s
b2NhbF9hbGxvY2F0b3JfbGluZV9kZWNvZGUodWludDE2X3QgdmFsdWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0gICAgaWYgKHBhc19sb2NhbF9h
bGxvY2F0b3JfbGluZV9maXRzX3dpdGhvdXRfc2hpZnQocGFnZV9jb25maWcpKQotICAgICAgICBy
ZXR1cm4gdmFsdWU7Ci0gICAgcmV0dXJuIChzaXplX3QpdmFsdWUgPDwgcGFnZV9jb25maWcuYmFz
ZS5taW5fYWxpZ25fc2hpZnQ7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1aW50MTZf
dCBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfZW5jb2RlKHNpemVfdCB2YWx1ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAgIHVpbnQxNl90
IGVuY29kZWQ7Ci0gICAgCi0gICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9maXRzX3dp
dGhvdXRfc2hpZnQocGFnZV9jb25maWcpKQotICAgICAgICBlbmNvZGVkID0gKHVpbnQxNl90KXZh
bHVlOwotICAgIGVsc2UKLSAgICAgICAgZW5jb2RlZCA9ICh1aW50MTZfdCkodmFsdWUgPj4gcGFn
ZV9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQpOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJU
KHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9kZWNvZGUoZW5jb2RlZCwgcGFnZV9jb25maWcpID09
IHZhbHVlKTsKLQotICAgIHJldHVybiBlbmNvZGVkOwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgc2l6ZV90IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9yZW1haW5pbmcoCi0gICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9saW5lIGxpbmUsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcgcGFnZV9jb25maWcpCi17Ci0gICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9k
ZWNvZGUobGluZS5lbmNvZGVkX3JlbWFpbmluZywgcGFnZV9jb25maWcpOwotfQotCi1zdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmVfc2V0X3JlbWFp
bmluZygKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2xpbmUqIGxpbmUsCi0gICAgc2l6ZV90IHJl
bWFpbmluZywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsK
LSAgICBsaW5lLT5lbmNvZGVkX3JlbWFpbmluZyA9IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9l
bmNvZGUocmVtYWluaW5nLCBwYWdlX2NvbmZpZyk7Ci19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBzaXplX3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9saW5lX3BheWxvYWRfZW5kX2RlbHRhKAot
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZSBsaW5lLAotICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnIHBhZ2VfY29uZmlnKQotewotICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9y
X2xpbmVfZGVjb2RlKGxpbmUuZW5jb2RlZF9wYXlsb2FkX2VuZF9kZWx0YSwgcGFnZV9jb25maWcp
OwotfQotCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9y
X2xpbmVfc2V0X3BheWxvYWRfZW5kX2RlbHRhKAotICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfbGlu
ZSogbGluZSwKLSAgICBzaXplX3QgcGF5bG9hZF9lbmRfZGVsdGEsCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCi17Ci0gICAgbGluZS0+ZW5jb2RlZF9wYXlsb2Fk
X2VuZF9kZWx0YSA9IHBhc19sb2NhbF9hbGxvY2F0b3JfbGluZV9lbmNvZGUocGF5bG9hZF9lbmRf
ZGVsdGEsIHBhZ2VfY29uZmlnKTsKLX0KLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8q
IFBBU19MT0NBTF9BTExPQ0FUT1JfTElORV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9y
ZXN1bHQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAs
MTUgKzMwLDEzIEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RydWN0IHBhc19sb2NhbF9h
bGxvY2F0b3I7CiBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQ7Ci10eXBlZGVmIHN0
cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yIHBhc19sb2NhbF9hbGxvY2F0b3I7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dDsKIAogLyogVGhpcyBleGlzdHMgdG8gYWxsb3cganVtcC10aHJlYWRpbmcgb2Ygc3VjY2Vzcy4g
Ki8KIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCB7CiAgICAgYm9vbCBkaWRfc3Vj
Y2VlZDsKLSAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CisgICAgdm9pZCogYWxs
b2NhdG9yOyAvKiBDb3VsZCByZWFsbHkgYmUgYSBsb2NhbF9hbGxvY2F0b3Igb3IgYSBsb2NhbF92
aWV3X2NhY2hlLiAqLwogfTsKIAogc3RhdGljIGlubGluZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jl
c3VsdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSh2b2lkKQpAQCAt
NDksNyArNDcsNyBAQCBzdGF0aWMgaW5saW5lIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlubGluZSBwYXNfbG9jYWxfYWxsb2NhdG9y
X3Jlc3VsdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcyhwYXNfbG9j
YWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpCitzdGF0aWMgaW5saW5lIHBhc19sb2NhbF9hbGxvY2F0
b3JfcmVzdWx0IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHZvaWQq
IGFsbG9jYXRvcikKIHsKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCByZXN1bHQ7CiAg
ICAgcmVzdWx0LmRpZF9zdWNjZWVkID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19F
TkFCTEVECisKKyNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgi
CisKKyNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yLmgiCisjaW5jbHVkZSAicGFzX2xvY2Fs
X3ZpZXdfY2FjaGUuaCIKKwordWludDhfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9w
X2NvdW50X2Zvcl9zdXNwZW5kID0gNTsKKworYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhX2lzX2FjdGl2ZShwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBk
YXRhKQoreworICAgIHN3aXRjaCAoZGF0YS0+a2luZCkgeworICAgIGNhc2UgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9hbGxvY2F0b3Jfa2luZDoKKyAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0
b3JfaXNfYWN0aXZlKChwYXNfbG9jYWxfYWxsb2NhdG9yKilkYXRhKTsKKyAgICBjYXNlIHBhc19s
b2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kOgorICAgICAgICByZXR1cm4gIXBhc19sb2Nh
bF92aWV3X2NhY2hlX2lzX2VtcHR5KChwYXNfbG9jYWxfdmlld19jYWNoZSopZGF0YSk7CisgICAg
fQorICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9w
KAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEsCisgICAgcGFz
X2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLAorICAgIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKQoreworICAgIHN3aXRjaCAoZGF0YS0+a2luZCkgeworICAgIGNh
c2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZDoKKyAgICAgICAgcmV0dXJuIHBh
c19sb2NhbF9hbGxvY2F0b3Jfc3RvcCgocGFzX2xvY2FsX2FsbG9jYXRvciopZGF0YSwgcGFnZV9s
b2NrX21vZGUsIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9j
YXRvcl92aWV3X2NhY2hlX2tpbmQ6CisgICAgICAgIHJldHVybiBwYXNfbG9jYWxfdmlld19jYWNo
ZV9zdG9wKChwYXNfbG9jYWxfdmlld19jYWNoZSopZGF0YSwgcGFnZV9sb2NrX21vZGUpOworICAg
IH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCisjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KKworCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJp
Z2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0xPQ0FMX0FMTE9D
QVRPUl9TQ0FWRU5HRVJfREFUQV9ICisjZGVmaW5lIFBBU19MT0NBTF9BTExPQ0FUT1JfU0NBVkVO
R0VSX0RBVEFfSAorCisjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmgiCisjaW5j
bHVkZSAicGFzX2xvY2suaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YTsKK3R5cGVkZWYgc3RydWN0IHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YTsKKworLyogVGhpcyBzaG91bGQganVzdCBiZSAzMi1iaXQuICovCitzdHJ1Y3QgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSB7CisgICAgYm9vbCBpc19pbl91c2U7CisgICAgdWlu
dDhfdCBzaG91bGRfc3RvcF9jb3VudDsKKyAgICBib29sIGRpcnR5OworICAgIHBhc19sb2NhbF9h
bGxvY2F0b3Jfa2luZCBraW5kIDogODsKK307CisKKyNkZWZpbmUgUEFTX0xPQ0FMX0FMTE9DQVRP
Ul9TQ0FWRU5HRVJfREFUQV9JTklUSUFMSVpFUihwYXNzZWRfa2luZCkgXAorICAgICgocGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSl7IFwKKyAgICAgICAgIC5pc19pbl91c2UgPSBm
YWxzZSwgXAorICAgICAgICAgLnNob3VsZF9zdG9wX2NvdW50ID0gMCwgXAorICAgICAgICAgLmRp
cnR5ID0gZmFsc2UsIFwKKyAgICAgICAgIC5raW5kID0gKHBhc3NlZF9raW5kKSBcCisgICAgIH0p
CisKK1BBU19BUEkgZXh0ZXJuIHVpbnQ4X3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3Rv
cF9jb3VudF9mb3Jfc3VzcGVuZDsKKworc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29uc3RydWN0KHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEqIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIGtpbmQpCit7
CisgICAgKmRhdGEgPSBQQVNfTE9DQUxfQUxMT0NBVE9SX1NDQVZFTkdFUl9EQVRBX0lOSVRJQUxJ
WkVSKGtpbmQpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9z
Y2F2ZW5nZXJfZGF0YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9uKAorICAgIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpCit7CisgICAgZGF0YS0+ZGlydHkgPSB0cnVlOwor
ICAgIGRhdGEtPnNob3VsZF9zdG9wX2NvdW50ID0gMDsKK30KKworUEFTX0FQSSBib29sIHBhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZlKHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpOworCitQQVNfQVBJIGJvb2wgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9wKAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEqIGRhdGEsCisgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLAor
ICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKworUEFTX0VORF9F
WFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfU0NBVkVOR0VSX0RBVEFf
SCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxf
dmlld19jYWNoZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgorCisjaWYgTElCUEFTX0VOQUJMRUQK
KworI2luY2x1ZGUgInBhc19sb2NhbF92aWV3X2NhY2hlLmgiCisKKyNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkuaCIKKwordm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9jb25zdHJ1Y3QocGFzX2xvY2FsX3Zp
ZXdfY2FjaGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dDhfdCBjYXBhY2l0eSkKK3sKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
X2NvbnN0cnVjdCgKKyAgICAgICAgJmNhY2hlLT5zY2F2ZW5nZXJfZGF0YSwgcGFzX2xvY2FsX2Fs
bG9jYXRvcl92aWV3X2NhY2hlX2tpbmQpOworICAgIAorICAgIGNhY2hlLT5jYXBhY2l0eSA9IGNh
cGFjaXR5OworICAgIGNhY2hlLT5ib3R0b21faW5kZXggPSAwOworICAgIGNhY2hlLT50b3BfaW5k
ZXggPSAwOworICAgIGNhY2hlLT5pc19mdWxsID0gZmFsc2U7CisKKyAgICBpZiAoUEFTX0VOQUJM
RV9URVNUSU5HKSB7CisgICAgICAgIHVpbnQ4X3QgaW5kZXg7CisKKyAgICAgICAgZm9yIChpbmRl
eCA9IGNhcGFjaXR5OyBpbmRleC0tOykKKyAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKGNhY2hlLT52aWV3cyArIGluZGV4LCBOVUxMKTsK
KyAgICB9Cit9CisKK3ZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbW92ZShwYXNfbG9jYWxfdmll
d19jYWNoZSogZGVzdGluYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2xvY2FsX3ZpZXdfY2FjaGUqIHNvdXJjZSkKK3sKKyAgICBtZW1jcHkoZGVzdGluYXRpb24sIHNv
dXJjZSwgUEFTX0xPQ0FMX1ZJRVdfQ0FDSEVfU0laRShzb3VyY2UtPmNhcGFjaXR5KSk7Cit9CisK
K3N0YXRpYyBib29sIHN0b3BfaW1wbChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUsCisgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlKQorewor
ICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqIGRpcmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZp
ZzsKKyAgICAKKyAgICBkaXJlY3RvcnkgPSBOVUxMOworICAgIHBhZ2VfY29uZmlnID0gKHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnKXsgfTsKKyAgICBoZWxkX2xvY2sgPSBOVUxMOworICAgIAor
ICAgIHdoaWxlICghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkoY2FjaGUpKSB7CisgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBjYWNoZWRfdmlldzsKKyAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZTsKKyAgICAgICAgYm9vbCBzaG91bGRfbm90aWZ5X2Vs
aWdpYmlsaXR5OworICAgICAgICAKKyAgICAgICAgY2FjaGVkX3ZpZXcgPSBwYXNfbG9jYWxfdmll
d19jYWNoZV9wb3AoY2FjaGUpOworICAgICAgICAKKyAgICAgICAgaWYgKGRpcmVjdG9yeSkgewor
ICAgICAgICAgICAgUEFTX0FTU0VSVCgKKyAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZjYWNoZWRfdmlldy0+ZGly
ZWN0b3J5KQorICAgICAgICAgICAgICAgID09IGRpcmVjdG9yeSk7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZjYWNoZWRfdmlldy0+ZGlyZWN0b3J5KTsKKyAgICAg
ICAgICAgIHBhZ2VfY29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0
X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShj
YWNoZWRfdmlldy0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpOworICAgICAgICAKKyAgICAg
ICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX3dpdGhfbW9kZShwYWdlLCAm
aGVsZF9sb2NrLCBwYWdlX2xvY2tfbW9kZSwgcGFnZV9jb25maWcpKSB7CisgICAgICAgICAgICBQ
QVNfQVNTRVJUKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxsKGNhY2hlKSk7CisgICAgICAg
ICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9wdXNoKGNhY2hlLCBjYWNoZWRfdmlldyk7CisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNob3Vs
ZF9ub3RpZnlfZWxpZ2liaWxpdHkgPSB0cnVlOworICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKAorICAgICAgICAgICAgY2FjaGVkX3ZpZXcs
IGRpcmVjdG9yeSwgcGFnZSwgcGFnZV9jb25maWcsIHNob3VsZF9ub3RpZnlfZWxpZ2liaWxpdHkp
OworICAgIH0KKworICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKHBhc19sb2Nh
bF92aWV3X2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
bG9ja19sb2NrX21vZGUgcGFnZV9sb2NrX21vZGUpCit7CisgICAgYm9vbCByZXN1bHQ7CisKKyAg
ICBQQVNfQVNTRVJUKCFjYWNoZS0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKKworICAgIGNh
Y2hlLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOworICAgIHBhc19jb21waWxlcl9m
ZW5jZSgpOworCisgICAgcmVzdWx0ID0gc3RvcF9pbXBsKGNhY2hlLCBwYWdlX2xvY2tfbW9kZSk7
CisKKyAgICBpZiAocmVzdWx0KQorICAgICAgICBjYWNoZS0+c2NhdmVuZ2VyX2RhdGEuc2hvdWxk
X3N0b3BfY291bnQgPSAwOworCisgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgY2FjaGUt
PnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IGZhbHNlOworCisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
YWxfdmlld19jYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTY4IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0xPQ0FM
X1ZJRVdfQ0FDSEVfSAorI2RlZmluZSBQQVNfTE9DQUxfVklFV19DQUNIRV9ICisKKyNpbmNsdWRl
ICJwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ci5oIgorI2luY2x1ZGUg
InBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaCIKKyNpbmNsdWRlICJwYXNfbG9j
ay5oIgorI2luY2x1ZGUgInBhc19sb2cuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdHJ1
Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGU7Cit0eXBlZGVmIHN0cnVjdCBwYXNfbG9jYWxfdmlld19j
YWNoZSBwYXNfbG9jYWxfdmlld19jYWNoZTsKKworc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hl
IHsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhIHNjYXZlbmdlcl9kYXRh
OworICAgIHVpbnQ4X3QgY2FwYWNpdHk7CisgICAgLyogYm90dG9tX2luZGV4IGFuZCB0b3BfaW5k
ZXggbXVzdCBiZSA8IGNhcGFjaXR5LiAqLworICAgIHVpbnQ4X3QgYm90dG9tX2luZGV4OworICAg
IHVpbnQ4X3QgdG9wX2luZGV4OworICAgIGJvb2wgaXNfZnVsbDsKKyAgICBwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ciB2aWV3c1sxXTsKK307CisKKyNkZWZpbmUgUEFT
X0xPQ0FMX1ZJRVdfQ0FDSEVfU0laRShjYXBhY2l0eSkgXAorICAgIFBBU19ST1VORF9VUF9UT19Q
T1dFUl9PRl8yKChQQVNfT0ZGU0VUT0YocGFzX2xvY2FsX3ZpZXdfY2FjaGUsIHZpZXdzKSArIFwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19wdHIpICogKGNhcGFjaXR5KSksIFwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplb2YodWludDY0X3QpKQorCitQQVNfQVBJIHZvaWQgcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfY29uc3RydWN0KHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBjYXBhY2l0
eSk7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eShw
YXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUpCit7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNh
Y2hlLT5ib3R0b21faW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBBU19URVNUSU5HX0FT
U0VSVChjYWNoZS0+dG9wX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKKyAgICBQQVNfVEVTVElO
R19BU1NFUlQoIWNhY2hlLT5pc19mdWxsIHx8IGNhY2hlLT5ib3R0b21faW5kZXggPT0gY2FjaGUt
PnRvcF9pbmRleCk7CisKKyAgICByZXR1cm4gY2FjaGUtPnRvcF9pbmRleCA9PSBjYWNoZS0+Ym90
dG9tX2luZGV4ICYmICFjYWNoZS0+aXNfZnVsbDsKK30KKworc3RhdGljIGlubGluZSBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfcG9wKHBhc19sb2Nh
bF92aWV3X2NhY2hlKiBjYWNoZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdGFrZV9maXJzdCA9IHRydWU7IC8qIElmIHNl
dHRpbmcgdGhpcyB0byBmYWxzZSB3YXMgcHJvZml0YWJsZSwgdGhlbiB0aGlzIHdvdWxkCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHdyaXR0ZW4gYXMgYSBz
dGFjay4gSSBrZWVwIHRoaXMgb3B0aW9uIGhlcmUganVzdCBzbworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBJIGNhbiBvY2Nhc2lvbmFsbHkgdGVzdCBpZiBpdCBt
YXR0ZXJzLiAqLworICAgIAorICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiByZXN1
bHQ7CisgICAgdWludDhfdCBwb3BfaW5kZXg7CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY2Fj
aGUtPmJvdHRvbV9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKGNhY2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBBU19URVNUSU5H
X0FTU0VSVCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkoY2FjaGUpKTsKKworICAgIGlm
ICh0YWtlX2ZpcnN0KSB7CisgICAgICAgIHVpbnQ4X3QgYm90dG9tX2luZGV4OworICAgICAgICB1
aW50OF90IG5leHRfYm90dG9tX2luZGV4OworCisgICAgICAgIGJvdHRvbV9pbmRleCA9IGNhY2hl
LT5ib3R0b21faW5kZXg7CisgICAgICAgIG5leHRfYm90dG9tX2luZGV4ID0gYm90dG9tX2luZGV4
ICsgMTsKKyAgICAgICAgaWYgKG5leHRfYm90dG9tX2luZGV4ID49IGNhY2hlLT5jYXBhY2l0eSkg
eworICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKG5leHRfYm90dG9tX2luZGV4ID09IGNh
Y2hlLT5jYXBhY2l0eSk7CisgICAgICAgICAgICBuZXh0X2JvdHRvbV9pbmRleCA9IDA7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIHBvcF9pbmRleCA9IGJvdHRvbV9pbmRleDsKKworICAg
ICAgICBjYWNoZS0+Ym90dG9tX2luZGV4ID0gbmV4dF9ib3R0b21faW5kZXg7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgdWludDhfdCB0b3BfaW5kZXg7CisgICAgICAgIAorICAgICAgICB0b3BfaW5k
ZXggPSBjYWNoZS0+dG9wX2luZGV4OworICAgICAgICAKKyAgICAgICAgaWYgKCF0b3BfaW5kZXgp
CisgICAgICAgICAgICB0b3BfaW5kZXggPSBjYWNoZS0+Y2FwYWNpdHkgLSAxOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0b3BfaW5kZXgtLTsKKworICAgICAgICBwb3BfaW5kZXggPSB0b3Bf
aW5kZXg7CisgICAgICAgIAorICAgICAgICBjYWNoZS0+dG9wX2luZGV4ID0gdG9wX2luZGV4Owor
ICAgIH0KKyAgICAKKyAgICByZXN1bHQgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X3B0cl9sb2FkX25vbl9udWxsKGNhY2hlLT52aWV3cyArIHBvcF9pbmRleCk7CisgICAg
CisgICAgaWYgKFBBU19FTkFCTEVfVEVTVElORykKKyAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19wdHJfc3RvcmUoY2FjaGUtPnZpZXdzICsgcG9wX2luZGV4LCBO
VUxMKTsKKyAgICAKKyAgICBjYWNoZS0+aXNfZnVsbCA9IGZhbHNlOworICAgIAorICAgIGlmICh2
ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCIlcDogcG9wcGVkICVwLlxuIiwgY2FjaGUsIHJlc3Vs
dCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfaXNfZnVsbChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUpCit7Cisg
ICAgcmV0dXJuIGNhY2hlLT5pc19mdWxsOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfcHVzaCgKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUsCisg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcpCit7CisgICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHVpbnQ4X3QgdG9wX2luZGV4Owor
ICAgIHVpbnQ4X3QgbmV4dF90b3BfaW5kZXg7CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY2Fj
aGUtPmJvdHRvbV9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKGNhY2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOworICAgIFBBU19URVNUSU5H
X0FTU0VSVCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbChjYWNoZSkpOworICAgIFBBU19U
RVNUSU5HX0FTU0VSVCh2aWV3KTsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9n
KCIlcDogcHVzaGluZyAlcC5cbiIsIGNhY2hlLCB2aWV3KTsKKworICAgIHRvcF9pbmRleCA9IGNh
Y2hlLT50b3BfaW5kZXg7CisgICAgbmV4dF90b3BfaW5kZXggPSB0b3BfaW5kZXggKyAxOworICAg
IGlmIChuZXh0X3RvcF9pbmRleCA+PSBjYWNoZS0+Y2FwYWNpdHkpIHsKKyAgICAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKG5leHRfdG9wX2luZGV4ID09IGNhY2hlLT5jYXBhY2l0eSk7CisgICAgICAg
IG5leHRfdG9wX2luZGV4ID0gMDsKKyAgICB9CisKKyAgICBpZiAobmV4dF90b3BfaW5kZXggPT0g
Y2FjaGUtPmJvdHRvbV9pbmRleCkKKyAgICAgICAgY2FjaGUtPmlzX2Z1bGwgPSB0cnVlOworICAg
IAorICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X3B0cl9pc19udWxsKGNhY2hlLT52aWV3cyArIHRvcF9pbmRleCkpOworCisgICAgcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfc3RvcmUoY2FjaGUtPnZpZXdz
ICsgdG9wX2luZGV4LCB2aWV3KTsKKyAgICBjYWNoZS0+dG9wX2luZGV4ID0gbmV4dF90b3BfaW5k
ZXg7Cit9CisKK1BBU19BUEkgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9tb3ZlKHBhc19sb2Nh
bF92aWV3X2NhY2hlKiBkZXN0aW5hdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19sb2NhbF92aWV3X2NhY2hlKiBzb3VyY2UpOworCitQQVNfQVBJIGJvb2wg
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUsIHBh
c19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSk7CisKK1BBU19FTkRfRVhURVJOX0M7CisK
KyNlbmRpZiAvKiBQQVNfTE9DQUxfVklFV19DQUNIRV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19j
YWNoZV9ub2RlLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19FTkFCTEVECisKKyNpbmNsdWRl
ICJwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmgiCisKKyNpbmNsdWRlICJwYXNfaW1tb3J0YWxf
aGVhcC5oIgorCitwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKgorcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZV9jcmVhdGUocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkK
K3sKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKiByZXN1bHQ7CisKKyAgICByZXN1bHQg
PSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKKyAgICAgICAgc2l6ZW9mKHBhc19sb2NhbF92
aWV3X2NhY2hlX25vZGUpLAorICAgICAgICAicGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSIsCisg
ICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisKKyAgICBwYXNfY29tcGFjdF9hdG9taWNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3JlKCZyZXN1bHQtPm5leHQsIE5VTEwp
OworICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZy
ZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
KyNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlX25vZGUu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfdmlld19jYWNoZV9ub2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBB
U19MT0NBTF9WSUVXX0NBQ0hFX05PREVfSAorI2RlZmluZSBQQVNfTE9DQUxfVklFV19DQUNIRV9O
T0RFX0gKKworI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oIgorI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXguaCIKKworUEFTX0JF
R0lOX0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZTsKK3R5cGVk
ZWYgc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUgcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZTsKKworc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUgeworICAgIHBhc19jb21w
YWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbmV4dDsKKyAgICBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7Cit9OworCitQ
QVNfQVBJIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqCitwYXNfbG9jYWxfdmlld19jYWNoZV9u
b2RlX2NyZWF0ZShwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKwor
UEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19MT0NBTF9WSUVXX0NBQ0hFX05PREVf
SCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9ja19m
cmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFibGUu
YwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmMJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgInBhc19oYXNodGFibGUuaCIKICNpbmNsdWRlICJw
YXNfaGVhcF9sb2NrLmgiCiAKKyNpZiBQQVNfTE9DS19GUkVFX1JFQURfUFRSX1BUUl9IQVNIVEFC
TEVfRU5BQkxFX0NPTExJU0lPTl9DT1VOVAordWludDY0X3QgcGFzX2xvY2tfZnJlZV9yZWFkX3B0
cl9wdHJfaGFzaHRhYmxlX2NvbGxpc2lvbl9jb3VudDsKKyNlbmRpZiAvKiBQQVNfTE9DS19GUkVF
X1JFQURfUFRSX1BUUl9IQVNIVEFCTEVfRU5BQkxFX0NPTExJU0lPTl9DT1VOVCAqLworCiB2b2lk
IHBhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZV9zZXQoCiAgICAgcGFzX2xvY2tf
ZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlKiBoYXNodGFibGUsCiAgICAgdW5zaWduZWQgKCpo
YXNoX2tleSkoY29uc3Qgdm9pZCoga2V5LCB2b2lkKiBhcmcpLApJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xv
Y2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrX2ZyZWVfcmVhZF9wdHJfcHRy
X2hhc2h0YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNyArMjYsOSBAQAogI2lmbmRlZiBQ
QVNfTE9DS19GUkVFX1JFQURfUFRSX1BUUl9IQVNIVEFCTEVfSAogI2RlZmluZSBQQVNfTE9DS19G
UkVFX1JFQURfUFRSX1BUUl9IQVNIVEFCTEVfSAogCisjaW5jbHVkZSAicGFzX2xvZy5oIgogI2lu
Y2x1ZGUgInBhc191dGlscy5oIgorI2luY2x1ZGUgPHVuaXN0ZC5oPgogCiBQQVNfQkVHSU5fRVhU
RVJOX0M7CiAKQEAgLTUyLDYgKzU0LDEyIEBAIHN0cnVjdCBQQVNfQUxJR05FRChzaXplb2YocGFz
X3BhaXIpKSBwYXMKICAgICAgICAgIC50YWJsZSA9IE5VTEwgXAogICAgICB9KQogCisjZGVmaW5l
IFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09MTElTSU9OX0NP
VU5UIDAKKworI2lmIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVf
Q09MTElTSU9OX0NPVU5UCitQQVNfQVBJIGV4dGVybiB1aW50NjRfdCBwYXNfbG9ja19mcmVlX3Jl
YWRfcHRyX3B0cl9oYXNodGFibGVfY29sbGlzaW9uX2NvdW50OworI2VuZGlmIC8qIFBBU19MT0NL
X0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09MTElTSU9OX0NPVU5UICovCisK
IHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkKiBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0
cl9oYXNodGFibGVfZmluZCgKICAgICBwYXNfbG9ja19mcmVlX3JlYWRfcHRyX3B0cl9oYXNodGFi
bGUqIGhhc2h0YWJsZSwKICAgICB1bnNpZ25lZCAoKmhhc2hfa2V5KShjb25zdCB2b2lkKiBrZXks
IHZvaWQqIGFyZyksCkBAIC04NSw2ICs5MywyNCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCogcGFzX2xvY2tfCiAKICAgICAgICAgaWYgKGxvYWRlZF9rZXkgPT0gVUlOVFBUUl9NQVgp
CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKworI2lmIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJf
UFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09MTElTSU9OX0NPVU5UCisgICAgICAgIGZvciAoOzspIHsK
KyAgICAgICAgICAgIHVpbnQ2NF90IG9sZF9jb2xsaXNpb25fY291bnQ7CisgICAgICAgICAgICB1
aW50NjRfdCBuZXdfY29sbGlzaW9uX2NvdW50OworCisgICAgICAgICAgICBvbGRfY29sbGlzaW9u
X2NvdW50ID0gcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlX2NvbGxpc2lvbl9j
b3VudDsKKyAgICAgICAgICAgIG5ld19jb2xsaXNpb25fY291bnQgPSBvbGRfY29sbGlzaW9uX2Nv
dW50ICsgMTsKKworICAgICAgICAgICAgaWYgKHBhc19jb21wYXJlX2FuZF9zd2FwX3VpbnQ2NF93
ZWFrKAorICAgICAgICAgICAgICAgICAgICAmcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFz
aHRhYmxlX2NvbGxpc2lvbl9jb3VudCwKKyAgICAgICAgICAgICAgICAgICAgb2xkX2NvbGxpc2lv
bl9jb3VudCwgbmV3X2NvbGxpc2lvbl9jb3VudCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIShu
ZXdfY29sbGlzaW9uX2NvdW50ICUgMTAwMDApKQorICAgICAgICAgICAgICAgICAgICBwYXNfbG9n
KCIlZDogU2F3ICVsbHUgY29sbGlzaW9ucy5cbiIsIGdldHBpZCgpLCBuZXdfY29sbGlzaW9uX2Nv
dW50KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
I2VuZGlmIC8qIFBBU19MT0NLX0ZSRUVfUkVBRF9QVFJfUFRSX0hBU0hUQUJMRV9FTkFCTEVfQ09M
TElTSU9OX0NPVU5UICovCiAgICAgfQogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9nLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvZy5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9nLmMJKHdvcmtpbmcgY29weSkKQEAgLTU0LDggKzU0
LDEwIEBAIHZvaWQgcGFzX3Zsb2dfZmQoaW50IGZkLCBjb25zdCBjaGFyKiBmb3IKIAogICAgIHJl
c3VsdCA9IHBhc192c25wcmludGYoYnVmLCBQQVNfTE9HX01BWF9CWVRFUywgZm9ybWF0LCBsaXN0
KTsKIAorICAgIFBBU19BU1NFUlQocmVzdWx0ID49IDApOworCiAgICAgaWYgKChzaXplX3QpcmVz
dWx0IDwgUEFTX0xPR19NQVhfQllURVMpCi0gICAgICAgIGJ5dGVzX2xlZnRfdG9fd3JpdGUgPSBy
ZXN1bHQ7CisgICAgICAgIGJ5dGVzX2xlZnRfdG9fd3JpdGUgPSAoc2l6ZV90KXJlc3VsdDsKICAg
ICBlbHNlCiAgICAgICAgIGJ5dGVzX2xlZnRfdG9fd3JpdGUgPSBQQVNfTE9HX01BWF9CWVRFUyAt
IDE7CiAKQEAgLTcxLDcgKzczLDcgQEAgdm9pZCBwYXNfdmxvZ19mZChpbnQgZmQsIGNvbnN0IGNo
YXIqIGZvcgogICAgICAgICBQQVNfQVNTRVJUKHJlc3VsdCk7CiAKICAgICAgICAgcHRyICs9IHJl
c3VsdDsKLSAgICAgICAgYnl0ZXNfbGVmdF90b193cml0ZSAtPSByZXN1bHQ7CisgICAgICAgIGJ5
dGVzX2xlZnRfdG9fd3JpdGUgLT0gKHNpemVfdClyZXN1bHQ7CiAgICAgfQogfQogCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbWFnYXppbmUuYwkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21h
Z2F6aW5lLmMJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcu
aCIKLQotI2lmIExJQlBBU19FTkFCTEVECi0KLSNpbmNsdWRlICJwYXNfbWFnYXppbmUuaCIKLQot
I2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCi0KLXBhc19tYWdhemluZSogcGFzX21hZ2F6
aW5lX2NyZWF0ZSh1bnNpZ25lZCBtYWdhemluZV9pbmRleCkKLXsKLSAgICBwYXNfbWFnYXppbmUq
IHJlc3VsdDsKLQotICAgIHJlc3VsdCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAotICAg
ICAgICBzaXplb2YocGFzX21hZ2F6aW5lKSwKLSAgICAgICAgInBhc19tYWdhemluZSIsCi0gICAg
ICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0KLSAgICBwYXNfbG9ja19jb25zdHJ1Y3QoJnJl
c3VsdC0+bG9jayk7Ci0KLSAgICByZXN1bHQtPm1hZ2F6aW5lX2luZGV4ID0gbWFnYXppbmVfaW5k
ZXg7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0jZW5kaWYgLyogTElCUEFTX0VOQUJMRUQg
Ki8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdhemluZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tYWdh
emluZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbWFnYXppbmUuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDU4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBB
U19NQUdBWklORV9ICi0jZGVmaW5lIFBBU19NQUdBWklORV9ICi0KLSNpbmNsdWRlICJwYXNfbG9j
ay5oIgotI2luY2x1ZGUgInBhc191dGlscy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLXN0
cnVjdCBwYXNfbWFnYXppbmU7Ci1zdHJ1Y3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlOwot
dHlwZWRlZiBzdHJ1Y3QgcGFzX21hZ2F6aW5lIHBhc19tYWdhemluZTsKLXR5cGVkZWYgc3RydWN0
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGU7
Ci0KLXN0cnVjdCBwYXNfbWFnYXppbmUgewotICAgIC8qIFRoaXMgaXMgdGhlIGxvY2sgdGhhdCB3
ZSBiaWFzIHBhZ2VzIHRvLgotICAgICAKLSAgICAgICBGb3IgbG9jayBvcmRlcmluZywgd2Ugc2F5
IHRoYXQ6Ci0gICAgCi0gICAgICAgLSBNYWdhemluZSBsb2NrcyBhcmUgYWNxdWlyZWQgYmVmb3Jl
IHBhZ2Ugb3duZXJzaGlwIGxvY2tzLgotICAgIAotICAgICAgIC0gTWFnYXppbmUgbG9ja3MgYXJl
IGFjcXVpcmVkIGluIHBvaW50ZXItYXMtaW50ZWdlciBvcmRlciByZWxhdGl2ZSB0byBvbmUgYW5v
dGhlci4gKi8KLSAgICBwYXNfbG9jayBsb2NrOwotCi0gICAgLyogVGhpcyBnZXRzIHVzZWQgYXMg
YW4gaW5kZXggaW4gYmlhc2luZyBkaXJlY3Rvcmllcy4gKi8KLSAgICB1bnNpZ25lZCBtYWdhemlu
ZV9pbmRleDsKLX07Ci0KLVBBU19BUEkgcGFzX21hZ2F6aW5lKiBwYXNfbWFnYXppbmVfY3JlYXRl
KHVuc2lnbmVkIG1hZ2F6aW5lX2luZGV4KTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlm
IC8qIFBBU19NQUdBWklORV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmMJKHJl
dmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19t
ZWRpdW1fbWVnYXBhZ2VfY2FjaGUuYwkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsOSBAQAog
dm9pZCogcGFzX21lZGl1bV9tZWdhcGFnZV9jYWNoZV90cnlfYWxsb2NhdGUoCiAgICAgcGFzX21l
Z2FwYWdlX2NhY2hlKiBjYWNoZSwKICAgICBwYXNfcGFnZV9iYXNlX2NvbmZpZyogY29uZmlnLAot
ICAgIGJvb2wgc2hvdWxkX3plcm8pCisgICAgYm9vbCBzaG91bGRfemVybywKKyAgICBwYXNfaGVh
cCogaGVhcCwKKyAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlv
bikKIHsKICAgICBwYXNfbWVnYXBhZ2VfY2FjaGVfY29uZmlnIGNhY2hlX2NvbmZpZzsKIApAQCAt
NTAsNyArNTIsNyBAQCB2b2lkKiBwYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlX3RyeV9hbGxvCiAg
ICAgY2FjaGVfY29uZmlnLnRhYmxlX3NldF9ieV9pbmRleF9hcmcgPSBOVUxMOwogICAgIGNhY2hl
X2NvbmZpZy5zaG91bGRfemVybyA9IHNob3VsZF96ZXJvOwogICAgIAotICAgIHJldHVybiBwYXNf
bWVnYXBhZ2VfY2FjaGVfdHJ5X2FsbG9jYXRlKGNhY2hlLCAmY2FjaGVfY29uZmlnKTsKKyAgICBy
ZXR1cm4gcGFzX21lZ2FwYWdlX2NhY2hlX3RyeV9hbGxvY2F0ZShjYWNoZSwgJmNhY2hlX2NvbmZp
ZywgaGVhcCwgdHJhbnNhY3Rpb24pOwogfQogCiAjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8K
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tZWRpdW1fbWVnYXBh
Z2VfY2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbWVkaXVtX21lZ2FwYWdlX2NhY2hlLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tZWRpdW1fbWVnYXBhZ2VfY2FjaGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsMjEgKzI2LDI2IEBACiAjaWZuZGVmIFBBU19NRURJVU1fTUVH
QVBBR0VfQ0FDSEVfSAogI2RlZmluZSBQQVNfTUVESVVNX01FR0FQQUdFX0NBQ0hFX0gKIAorI2lu
Y2x1ZGUgInBhc19oZWFwX3JlZi5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgogCiBQQVNfQkVH
SU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfbWVnYXBhZ2VfY2FjaGU7CiBzdHJ1Y3QgcGFzX3Bh
Z2VfYmFzZV9jb25maWc7CitzdHJ1Y3QgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbjsK
IHR5cGVkZWYgc3RydWN0IHBhc19tZWdhcGFnZV9jYWNoZSBwYXNfbWVnYXBhZ2VfY2FjaGU7CiB0
eXBlZGVmIHN0cnVjdCBwYXNfcGFnZV9iYXNlX2NvbmZpZyBwYXNfcGFnZV9iYXNlX2NvbmZpZzsK
K3R5cGVkZWYgc3RydWN0IHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24gcGFzX3BoeXNp
Y2FsX21lbW9yeV90cmFuc2FjdGlvbjsKIAogLyogQWxsb2NhdGVzIGEgc21hbGwgcGFnZSBhbGln
bmVkIHRoZSB3YXkgdGhhdCB0aGUgdHlwZS1zYWZlIGhlYXAgZGVtYW5kcyBhbmQgcmV0dXJucyB0
aGUKICAgIGJhc2Ugb24gdGhlIGFsbG9jYXRpb24uIFRoaXMgaXMgZ3VhcmFudGVlZCB0byByZXR1
cm5lZCB6ZXJvZWQgbWVtb3J5LiAqLwogUEFTX0FQSSB2b2lkKiBwYXNfbWVkaXVtX21lZ2FwYWdl
X2NhY2hlX3RyeV9hbGxvY2F0ZSgKICAgICBwYXNfbWVnYXBhZ2VfY2FjaGUqIGNhY2hlLAogICAg
IHBhc19wYWdlX2Jhc2VfY29uZmlnKiBjb25maWcsCi0gICAgYm9vbCBzaG91bGRfemVybyk7Cisg
ICAgYm9vbCBzaG91bGRfemVybywKKyAgICBwYXNfaGVhcCogaGVhcCwKKyAgICBwYXNfcGh5c2lj
YWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7CiAKIFBBU19FTkRfRVhURVJOX0M7
CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tZWdhcGFnZV9j
YWNoZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19tZWdhcGFnZV9jYWNoZS5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbWVnYXBhZ2VfY2FjaGUuYwkod29ya2luZyBjb3B5KQpAQCAt
MzgsNiArMzgsOCBAQAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIHBhc19tZWdhcGFnZV9jYWNoZSog
Y2FjaGU7CiAgICAgcGFzX21lZ2FwYWdlX2NhY2hlX2NvbmZpZyogY2FjaGVfY29uZmlnOworICAg
IHBhc19oZWFwKiBoZWFwOworICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uOwogfSBtZWdhcGFnZV9jYWNoZV9hbGxvY2F0ZV9hbGlnbmVkX2RhdGE7CiAKIHN0
YXRpYyBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdCBtZWdhcGFnZV9jYWNoZV9hbGxvY2F0
ZV9hbGlnbmVkKHNpemVfdCBzaXplLApAQCAtOTIsNiArOTQsOCBAQCBzdGF0aWMgcGFzX2FsaWdu
ZWRfYWxsb2NhdGlvbl9yZXN1bHQgbWVnCiAgICAgYm9vdHN0cmFwX3Jlc3VsdCA9IGNhY2hlLT5w
cm92aWRlcigKICAgICAgICAgbmV3X3NpemUsIG5ld19hbGlnbm1lbnQsCiAgICAgICAgICJwYXNf
bWVnYXBhZ2VfY2FjaGUvY2h1bmsiLAorICAgICAgICBkYXRhLT5oZWFwLAorICAgICAgICBkYXRh
LT50cmFuc2FjdGlvbiwKICAgICAgICAgY2FjaGUtPnByb3ZpZGVyX2FyZyk7CiAgICAgaWYgKCFi
b290c3RyYXBfcmVzdWx0LmRpZF9zdWNjZWVkKQogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAt
MTcyLDcgKzE3Niw5IEBAIHZvaWQgcGFzX21lZ2FwYWdlX2NhY2hlX2NvbnN0cnVjdChwYXNfbWUK
IH0KIAogdm9pZCogcGFzX21lZ2FwYWdlX2NhY2hlX3RyeV9hbGxvY2F0ZShwYXNfbWVnYXBhZ2Vf
Y2FjaGUqIGNhY2hlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
bWVnYXBhZ2VfY2FjaGVfY29uZmlnKiBjYWNoZV9jb25maWcpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19tZWdhcGFnZV9jYWNoZV9jb25maWcqIGNhY2hlX2NvbmZp
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXAqIGhlYXAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1v
cnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogewogICAgIG1lZ2FwYWdlX2NhY2hlX2FsbG9j
YXRlX2FsaWduZWRfZGF0YSBkYXRhOwogICAgIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnIGNv
bmZpZzsKQEAgLTE4Miw2ICsxODgsOCBAQCB2b2lkKiBwYXNfbWVnYXBhZ2VfY2FjaGVfdHJ5X2Fs
bG9jYXRlKHBhCiAKICAgICBkYXRhLmNhY2hlID0gY2FjaGU7CiAgICAgZGF0YS5jYWNoZV9jb25m
aWcgPSBjYWNoZV9jb25maWc7CisgICAgZGF0YS5oZWFwID0gaGVhcDsKKyAgICBkYXRhLnRyYW5z
YWN0aW9uID0gdHJhbnNhY3Rpb247CiAgICAgCiAgICAgcGFzX3plcm9fbWVtb3J5KCZjb25maWcs
IHNpemVvZihjb25maWcpKTsKICAgICBjb25maWcudHlwZV9zaXplID0gMTsKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tZWdhcGFnZV9jYWNoZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tZWdhcGFnZV9jYWNo
ZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbWVnYXBhZ2VfY2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsOSBAQCBQ
QVNfQVBJIHZvaWQgcGFzX21lZ2FwYWdlX2NhY2hlX2NvbnN0cnVjCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBwcm92aWRlcl9hcmcpOwogCiBQQVNfQVBJ
IHZvaWQqIHBhc19tZWdhcGFnZV9jYWNoZV90cnlfYWxsb2NhdGUocGFzX21lZ2FwYWdlX2NhY2hl
KiBjYWNoZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbWVnYXBhZ2VfY2FjaGVfY29uZmlnKiBjYWNoZV9jb25maWcpOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19tZWdhcGFnZV9jYWNoZV9jb25maWcq
IGNhY2hlX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7
CiAKIFBBU19FTkRfRVhURVJOX0M7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9jb25maWcuaAkocmV2aXNpb24gMjgy
MjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfYmFzZV9j
b25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQCBzdHJ1Y3QgcGFzX2VudW1l
cmF0b3I7CiBzdHJ1Y3QgcGFzX2hlYXBfY29uZmlnOwogc3RydWN0IHBhc19wYWdlX2Jhc2U7CiBz
dHJ1Y3QgcGFzX3BhZ2VfYmFzZV9jb25maWc7CitzdHJ1Y3QgcGFzX3BoeXNpY2FsX21lbW9yeV90
cmFuc2FjdGlvbjsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwogc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlX2NvbmZp
ZyBwYXNfYml0Zml0X3BhZ2VfY29uZmlnOwpAQCAtNDUsNiArNDYsNyBAQCB0eXBlZGVmIHN0cnVj
dCBwYXNfZW51bWVyYXRvciBwYXNfZW51bWVyCiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9jb25m
aWcgcGFzX2hlYXBfY29uZmlnOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3BhZ2VfYmFzZSBwYXNfcGFn
ZV9iYXNlOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3BhZ2VfYmFzZV9jb25maWcgcGFzX3BhZ2VfYmFz
ZV9jb25maWc7Cit0eXBlZGVmIHN0cnVjdCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9u
IHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb247CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9oZWFwIHBhc19zZWdyZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZzsKIApAQCAtNTIs
NyArNTQsOCBAQCB0eXBlZGVmIHBhc19wYWdlX2Jhc2UqICgqcGFzX3BhZ2VfYmFzZV9jCiB0eXBl
ZGVmIHZvaWQqICgqcGFzX3BhZ2VfYmFzZV9jb25maWdfYm91bmRhcnlfZm9yX3BhZ2VfaGVhZGVy
KShwYXNfcGFnZV9iYXNlKiBwYWdlKTsKIHR5cGVkZWYgcGFzX3BhZ2VfYmFzZSogKCpwYXNfcGFn
ZV9iYXNlX2NvbmZpZ19wYWdlX2hlYWRlcl9mb3JfYm91bmRhcnlfcmVtb3RlKSgKICAgICBwYXNf
ZW51bWVyYXRvciogZW51bWVyYXRvciwgdm9pZCogYm91bmRhcnkpOwotdHlwZWRlZiB2b2lkKiAo
KnBhc19wYWdlX2Jhc2VfY29uZmlnX3BhZ2VfYWxsb2NhdG9yKShwYXNfc2VncmVnYXRlZF9oZWFw
Kik7Cit0eXBlZGVmIHZvaWQqICgqcGFzX3BhZ2VfYmFzZV9jb25maWdfcGFnZV9hbGxvY2F0b3Ip
KAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbik7CiB0eXBlZGVmIHBhc19wYWdlX2Jhc2UqICgqcGFzX3BhZ2VfYmFz
ZV9jb25maWdfY3JlYXRlX3BhZ2VfaGVhZGVyKSgKICAgICB2b2lkKiBib3VuZGFyeSwgcGFzX2xv
Y2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogdHlwZWRlZiB2b2lkICgqcGFzX3Bh
Z2VfYmFzZV9jb25maWdfZGVzdHJveV9wYWdlX2hlYWRlcikoCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9iYXNlX2NvbmZpZ191dGlscy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29u
ZmlnX3V0aWxzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDcgKzM0LDcgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi0jZGVmaW5lIFBBU19CQVNJ
Q19QQUdFX0JBU0VfQ09ORklHX0ZPUldBUkRfREVDTEFSQVRJT05TKG5hbWUpICAgICBcCisjZGVm
aW5lIFBBU19CQVNJQ19QQUdFX0JBU0VfQ09ORklHX0ZPUldBUkRfREVDTEFSQVRJT05TKG5hbWUp
IFwKICAgICBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3BhZ2VfYmFzZSogXAogICAgIG5h
bWUgIyMgX3BhZ2VfaGVhZGVyX2Zvcl9ib3VuZGFyeSh2b2lkKiBib3VuZGFyeSk7IFwKICAgICBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCogXApJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmgJKHJl
dmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19w
YWdlX2hlYWRlcl90YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRp
YyBpbmxpbmUgdW5zaWduZWQgcGFzX3BhZ2VfaGVhZGVyX3QKIAogICAgIHBhZ2Vfc2l6ZSA9IChz
aXplX3QpYXJnOwogCi0gICAgcmV0dXJuICh1bnNpZ25lZCkoKHVpbnRwdHJfdClrZXkgLyBwYWdl
X3NpemUpOworICAgIHJldHVybiBwYXNfaGFzaDMyKCh1bnNpZ25lZCkoKHVpbnRwdHJfdClrZXkg
LyBwYWdlX3NpemUpKTsKIH0KIAogUEFTX0FQSSBwYXNfcGFnZV9iYXNlKiBwYXNfcGFnZV9oZWFk
ZXJfdGFibGVfYWRkKHBhc19wYWdlX2hlYWRlcl90YWJsZSogdGFibGUsCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxsb2MuYwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxsb2MuYwkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Bh
Z2VfbWFsbG9jLmMJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDExIEBAIGJvb2wgcGFzX3Bh
Z2VfbWFsbG9jX21wcm90ZWN0X2RlY29tbWl0dGUKIAogc2l6ZV90IHBhc19wYWdlX21hbGxvY19h
bGlnbm1lbnRfc2xvdyh2b2lkKQogewotICAgIHJldHVybiBzeXNjb25mKF9TQ19QQUdFU0laRSk7
CisgICAgbG9uZyByZXN1bHQgPSBzeXNjb25mKF9TQ19QQUdFU0laRSk7CisgICAgUEFTX0FTU0VS
VChyZXN1bHQgPj0gMCk7CisgICAgUEFTX0FTU0VSVChyZXN1bHQgPiAwKTsKKyAgICBQQVNfQVNT
RVJUKHJlc3VsdCA+PSA0MDk2KTsKKyAgICByZXR1cm4gKHNpemVfdClyZXN1bHQ7CiB9CiAKIHNp
emVfdCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3NoaWZ0X3Nsb3codm9pZCkKQEAgLTE0Myw5
ICsxNDcsOSBAQCBwYXNfcGFnZV9tYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhvdXRfZGVhCiAgICAg
cmVzdWx0LnJlc3VsdCA9IGFsaWduZWQ7CiAgICAgcmVzdWx0LnJlc3VsdF9zaXplID0gc2l6ZTsK
ICAgICByZXN1bHQubGVmdF9wYWRkaW5nID0gbWFwcGVkOwotICAgIHJlc3VsdC5sZWZ0X3BhZGRp
bmdfc2l6ZSA9IGFsaWduZWQgLSBtYXBwZWQ7CisgICAgcmVzdWx0LmxlZnRfcGFkZGluZ19zaXpl
ID0gKHNpemVfdCkoYWxpZ25lZCAtIG1hcHBlZCk7CiAgICAgcmVzdWx0LnJpZ2h0X3BhZGRpbmcg
PSBhbGlnbmVkX2VuZDsKLSAgICByZXN1bHQucmlnaHRfcGFkZGluZ19zaXplID0gbWFwcGVkX2Vu
ZCAtIGFsaWduZWRfZW5kOworICAgIHJlc3VsdC5yaWdodF9wYWRkaW5nX3NpemUgPSAoc2l6ZV90
KShtYXBwZWRfZW5kIC0gYWxpZ25lZF9lbmQpOwogICAgIHJlc3VsdC56ZXJvX21vZGUgPSBwYXNf
emVyb19tb2RlX2lzX2FsbF96ZXJvOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFn
ZV9zaGFyaW5nX3BhcnRpY2lwYW50LmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuYwkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTkt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI5LDEzICsyOSwxMiBAQAogCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudC5oIgogCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5Lmgi
Ci0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFz
X2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJw
YXNfaGVhcF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oIgogI2lu
Y2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKIApAQCAt
NTYsMTkgKzU1LDI2IEBAIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKHZvaWQK
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfcGF5bG9hZCoKIHBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnRfZ2V0X3BheWxvYWQocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudCBwYXJ0
aWNpcGFudCkKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAg
CiAgICAgdm9pZCogcHRyID0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfcHRyKHBh
cnRpY2lwYW50KTsKICAgICBzd2l0Y2ggKHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0
X2tpbmQocGFydGljaXBhbnQpKSB7CiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lw
YW50X251bGw6CiAgICAgICAgIFBBU19BU1NFUlQoISJOdWxsIHBhcnRpY2lwYW50IGhhcyBubyBw
YXlsb2FkLiIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJp
bmdfcGFydGljaXBhbnRfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnk6Ci0gICAgY2Fz
ZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk6
Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV90cnlfZ2V0X3No
YXJpbmdfcGF5bG9hZCgKKyAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeTogeworICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRp
Y2lwYW50X3BheWxvYWQqIHJlc3VsdDsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAg
ICBwYXNfbG9nKCJHZXR0aW5nIHRoZSBwYXlsb2FkIGZvciBkaXJlY3RvcnkuXG4iKTsKKyAgICAg
ICAgcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGFfdHJ5X2dldF9zaGFyaW5n
X3BheWxvYWQoCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZCgmKChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqKXB0ciktPmRhdGEpKTsKKyAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJQYXlsb2FkID0gJXBcbiIsIHJlc3Vs
dCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogICAgIGNhc2UgcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gJigocGFz
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KilwdHIpLT5waHlzaWNhbF9zaGFyaW5nX3BheWxvYWQ7
Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5
OgotICAgICAgICByZXR1cm4gJigocGFzX2JpYXNpbmdfZGlyZWN0b3J5KilwdHIpLT5iaWFzX3No
YXJpbmdfcGF5bG9hZC5iYXNlOworICAgICAgICByZXR1cm4gJigocGFzX2JpdGZpdF9kaXJlY3Rv
cnkqKXB0ciktPnBoeXNpY2FsX3NoYXJpbmdfcGF5bG9hZDsKICAgICBjYXNlIHBhc19wYWdlX3No
YXJpbmdfcGFydGljaXBhbnRfbGFyZ2Vfc2hhcmluZ19wb29sOgogICAgICAgICByZXR1cm4gJnBh
c19sYXJnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3BheWxvYWQuYmFzZTsKICAgICB9CkBAIC05OCw5
ICsxMDQsNyBAQCB1aW50NjRfdCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2dlCiAgICAg
Y2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnk6CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9j
aChwdHIpOwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGly
ZWN0b3J5OgotICAgICAgICByZXR1cm4gcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5X2dldF91
c2VfZXBvY2gocHRyKTsKLSAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlh
c2luZ19kaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAoKHBhc19iaWFzaW5nX2RpcmVjdG9yeSop
cHRyKS0+Ymlhc19zaGFyaW5nX3BheWxvYWQudXNlX2Vwb2NoOworICAgICAgICByZXR1cm4gcGFz
X2JpdGZpdF9kaXJlY3RvcnlfZ2V0X3VzZV9lcG9jaChwdHIpOwogICAgIGNhc2UgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudF9sYXJnZV9zaGFyaW5nX3Bvb2w6CiAgICAgICAgIHJldHVybiBw
YXNfbGFyZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkLnVzZV9lcG9jaDsKICAgICB9CkBA
IC0xMjksOCArMTMzLDYgQEAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9nZXRfcGFyZW50
XwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5OgogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRf
ZGlyZWN0b3J5OgogICAgICAgICByZXR1cm4gJnBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9v
bDsKLSAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3Rv
cnk6Ci0gICAgICAgIHJldHVybiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfZ2V0X3NoYXJpbmdfcG9v
bChwdHIpOwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9sYXJnZV9zaGFy
aW5nX3Bvb2w6CiAgICAgICAgIHJldHVybiAmcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29s
OwogICAgIH0KQEAgLTE1Miw5ICsxNTQsNyBAQCBib29sIHBhc19wYWdlX3NoYXJpbmdfcGFydGlj
aXBhbnRfaXNfZWxpCiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3Rvcnk6CiAgICAgICAgIHJldHVybiAhIXBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9nZXRfbGFzdF9lbXB0eV9wbHVzX29uZShwdHIpLnZhbHVlOwogICAgIGNhc2UgcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaXRmaXRfZGlyZWN0b3J5OgotICAgICAgICByZXR1
cm4gISEoKHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSopcHRyKS0+bGFzdF9lbXB0eV9wbHVz
X29uZS52YWx1ZTsKLSAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2lu
Z19kaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAhIXBhc19iaWFzaW5nX2RpcmVjdG9yeV91bnVz
ZWRfc3Bhbl9zaXplKHB0cik7CisgICAgICAgIHJldHVybiAhISgocGFzX2JpdGZpdF9kaXJlY3Rv
cnkqKXB0ciktPmxhc3RfZW1wdHlfcGx1c19vbmUudmFsdWU7CiAgICAgY2FzZSBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2xhcmdlX3NoYXJpbmdfcG9vbDoKICAgICAgICAgcmV0dXJuICEh
cGFzX2xhcmdlX3NoYXJpbmdfbWluX2hlYXBfaW5zdGFuY2Uuc2l6ZTsKICAgICB9CkBAIC0xNzks
NyArMTc5LDcgQEAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF90YWtlX2xlYXN0XwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgKKyAgICAg
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgK
ICAgICAgICAgICAgIHB0ciwgZGVjb21taXRfbG9nLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAog
ICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeToKQEAgLTE4OSwxMiArMTg5LDcgQEAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0
aWNpcGFudF90YWtlX2xlYXN0XwogCiAgICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lw
YW50X2JpdGZpdF9kaXJlY3Rvcnk6CiAgICAgICAgIFBBU19BU1NFUlQoZGVjb21taXRfbG9nKTsK
LSAgICAgICAgcmV0dXJuIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV90YWtlX2xhc3RfZW1w
dHkocHRyLCBkZWNvbW1pdF9sb2csIGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICAKLSAg
ICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3Rvcnk6Ci0g
ICAgICAgIFBBU19BU1NFUlQoIWRlY29tbWl0X2xvZyk7Ci0gICAgICAgIFBBU19BU1NFUlQoaGVh
cF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0gICAgICAgIHJldHVy
biBwYXNfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZChwdHIpOworICAgICAgICBy
ZXR1cm4gcGFzX2JpdGZpdF9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KHB0ciwgZGVjb21taXRf
bG9nLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICAgICAgCiAgICAgY2FzZSBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50X2xhcmdlX3NoYXJpbmdfcG9vbDoKICAgICAgICAgUEFTX0FTU0VS
VChkZWNvbW1pdF9sb2cpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw5IEBA
IHN0cnVjdCBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3BheWwKICAgICAgICAKICAgICAg
ICBJZiB0aGlzIGlzIHRydWUgdGhlbjoKICAgICAgICAKLSAgICAgICAtIHdlIG11c3QgYmUgdHJh
Y2tlZCBhcyBhIGRlbHRhLiAqLworICAgICAgIC0gd2UgbXVzdCBiZSB0cmFja2VkIGFzIGEgZGVs
dGEuCisgICAgCisgICAgICAgRklYTUU6IFRoZXJlJ3MgYSBwcmV0dHkgb2J2aW91cyBzaXplIHdp
biB0byBiZSBoYWQganVzdCBmcm9tIHJlbW92aW5nIHRoaXMgZmllbGQuICovCiAgICAgYm9vbCBk
ZWx0YV9oYXNfYmVlbl9ub3RlZDsKIH07CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfa2luZC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcGFy
dGljaXBhbnRfa2luZC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2tpbmQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNyArMzYsNiBAQCBlbnVtIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBh
bnRfa2luZCB7CiAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3No
YXJlZF9wYWdlX2RpcmVjdG9yeSwKICAgICBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnksCiAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFu
dF9iaXRmaXRfZGlyZWN0b3J5LAotICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlh
c2luZ19kaXJlY3RvcnksCiAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9sYXJnZV9z
aGFyaW5nX3Bvb2wKIH07CiAKQEAgLTQ5LDE0ICs0OCwxMCBAQCBwYXNfcGFnZV9zaGFyaW5nX3Bh
cnRpY2lwYW50X2tpbmRfc2VsZWN0CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQg
ZGlyZWN0b3J5X2tpbmQpCiB7CiAgICAgc3dpdGNoIChkaXJlY3Rvcnlfa2luZCkgewotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2tpbmQ6CisgICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5kOgogICAgICAgICByZXR1cm4gcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2tpbmQ6CiAgICAgICAgIHJl
dHVybiBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5OwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2lu
ZDoKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgdXNlIHNlZ3JlZ2F0ZWQgYmlhc2lu
ZyBkaXJlY3RvcmllcyBhcyBzaGFyaW5nIHBhcnRpY2lwYW50cyBleGNlcHQgIgotICAgICAgICAg
ICAgICAgICAgICJ2aWEgdGhlIGJpYXNpbmcgZGlyZWN0b3J5IGJhc2UiKTsKLSAgICAgICAgcmV0
dXJuIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfbnVsbDsKICAgICB9CiAgICAgUEFTX0FT
U0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwogICAgIHJldHVybiBwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50X251bGw7CkBAIC03NCw4ICs2OSw2IEBAIHBhc19wYWdlX3NoYXJpbmdf
cGFydGljaXBhbnRfa2luZF9nZXRfc3QKICAgICAgICAgcmV0dXJuICJzZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5IjsKICAgICBjYXNlIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYml0Zml0
X2RpcmVjdG9yeToKICAgICAgICAgcmV0dXJuICJiaXRmaXRfZGlyZWN0b3J5IjsKLSAgICBjYXNl
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfYmlhc2luZ19kaXJlY3Rvcnk6Ci0gICAgICAg
IHJldHVybiAiYmlhc2luZ19kaXJlY3RvcnkiOwogICAgIGNhc2UgcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudF9sYXJnZV9zaGFyaW5nX3Bvb2w6CiAgICAgICAgIHJldHVybiAibGFyZ2Vfc2hh
cmluZ19wb29sIjsKICAgICB9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYwkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vfc2hhcmluZ19w
b29sLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NDcsNyArNjQ3LDcgQEAgc3RhdGljIHZvaWQgYXRv
bWljX2FkZF9iYWxhbmNlKHNpemVfdCBhZAogICAgICAgICBzaXplX3QgYmFsYW5jZTsKICAgICAg
ICAgc2l6ZV90IG5ld19iYWxhbmNlOwogICAgICAgICAKLSAgICAgICAgYmFsYW5jZSA9IHBhc19w
aHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9iYWxhbmNlOworICAgICAgICBiYWxhbmNlID0gKHNp
emVfdClwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfYmFsYW5jZTsKICAgICAgICAgbmV3
X2JhbGFuY2UgPSBiYWxhbmNlICsgYWRkZW5kOwogICAgICAgICAKICAgICAgICAgaWYgKHBhc19j
b21wYXJlX2FuZF9zd2FwX3VpbnRwdHJfd2VhaygKQEAgLTY5MiwxMSArNjkyLDEyIEBAIHZvaWQg
cGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UKICAgICAgICAgICAgIG5ld19iYWxh
bmNlID0gMDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHNpemVfcmVtYWluaW5nID0g
MDsKLSAgICAgICAgICAgIG5ld19iYWxhbmNlID0gKHNpemVfdCliYWxhbmNlIC0gYnl0ZXM7Cisg
ICAgICAgICAgICBuZXdfYmFsYW5jZSA9IChpbnRwdHJfdCkoKHNpemVfdCliYWxhbmNlIC0gYnl0
ZXMpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAocGFzX2NvbXBhcmVfYW5kX3N3
YXBfdWludHB0cl93ZWFrKAotICAgICAgICAgICAgICAgICh1aW50cHRyX3QqKSZwYXNfcGh5c2lj
YWxfcGFnZV9zaGFyaW5nX3Bvb2xfYmFsYW5jZSwgYmFsYW5jZSwgbmV3X2JhbGFuY2UpKQorICAg
ICAgICAgICAgICAgICh1aW50cHRyX3QqKSZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xf
YmFsYW5jZSwKKyAgICAgICAgICAgICAgICAodWludHB0cl90KWJhbGFuY2UsICh1aW50cHRyX3Qp
bmV3X2JhbGFuY2UpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIApAQCAtNzI2LDcg
KzcyNyw3IEBAIHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2UKICAgICAg
ICAgJiYgbGFzdF90YWtlX3Jlc3VsdCAhPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9sb2Nr
c191bmF2YWlsYWJsZSkKICAgICAgICAgYmFsYW5jZV9hZGRlbmQgPSAwOwogICAgIGVsc2UKLSAg
ICAgICAgYmFsYW5jZV9hZGRlbmQgPSBkZWNvbW1pdF9sb2cudG90YWwgLSBzaXplX3JlbWFpbmlu
ZzsKKyAgICAgICAgYmFsYW5jZV9hZGRlbmQgPSAoaW50cHRyX3QpKGRlY29tbWl0X2xvZy50b3Rh
bCAtIHNpemVfcmVtYWluaW5nKTsKICAgICAKICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9n
X2RlY29tbWl0X2FsbCgmZGVjb21taXRfbG9nKTsKICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRf
bG9nX2Rlc3RydWN0KCZkZWNvbW1pdF9sb2csIGhlYXBfbG9ja19ob2xkX21vZGUpOwpAQCAtNzM2
LDE5ICs3MzcsMjIgQEAgdm9pZCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZQog
ICAgICAgICAgICAgICAgIGJhbGFuY2VfYWRkZW5kKTsKICAgICB9CiAKLSAgICBhdG9taWNfYWRk
X2JhbGFuY2UoYmFsYW5jZV9hZGRlbmQpOworICAgIGF0b21pY19hZGRfYmFsYW5jZSgoc2l6ZV90
KWJhbGFuY2VfYWRkZW5kKTsKIH0KIAotcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0
CitwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0CiBwYXNfcGh5c2ljYWxfcGFn
ZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2UodWludDY0X3QgbWF4X2Vwb2NoKQogewogICAgIHN0YXRp
YyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKKwogICAgIHBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX3Jlc3VsdCB0YWtlX3Jlc3VsdDsKICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5
X3RyYW5zYWN0aW9uIHRyYW5zYWN0aW9uOworICAgIHNpemVfdCB0b3RhbF9ieXRlczsKICAgICAK
ICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygiRG9pbmcgc2NhdmVuZ2UgdXAgdG8g
JWxsdVxuIiwgbWF4X2Vwb2NoKTsKKworICAgIHRvdGFsX2J5dGVzID0gMDsKICAgICAKICAgICBw
YXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uX2NvbnN0cnVjdCgmdHJhbnNhY3Rpb24pOwog
ICAgIGRvIHsKQEAgLTc3Miw2ICs3NzYsOCBAQCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bv
b2xfc2NhdmVuZ2UoCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfdGFrZV9yZXN1bHRfZ2V0X3N0cmluZyh0YWtlX3Jlc3VsdCkpOwogICAgICAgICAgICAgfQog
ICAgICAgICB9IHdoaWxlICh0YWtlX3Jlc3VsdCA9PSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZV9zdWNjZXNzKTsKKworICAgICAgICB0b3RhbF9ieXRlcyArPSBkZWNvbW1pdF9sb2cudG90YWw7
CiAgICAgICAgIAogICAgICAgICBmb3IgKDs7KSB7CiAgICAgICAgICAgICBpbnRwdHJfdCBiYWxh
bmNlOwpAQCAtNzg3LDEwICs3OTMsMTEgQEAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29s
X3NjYXZlbmdlKAogICAgICAgICAgICAgICAgbWVtb3J5IHRyYW5zYWN0aW9ucyBjYW4gY2F1c2Ug
dGhlIHRhcmdldCBoZWFwIHNpemUgdG8gaW5jcmVhc2UgYSBiaXQuIEkgdGhpbmsKICAgICAgICAg
ICAgICAgIHRoYXQncyBwcm9iYWJseSBmaW5lIHNpbmNlIHRoZSBzY2F2ZW5nZXIgdGhyZWFkIGV4
ZXJ0cyBkb3dud2FyZCBwcmVzc3VyZSBvbgogICAgICAgICAgICAgICAgdGhlIHRhcmdldCBoZWFw
IHNpemUuICovCi0gICAgICAgICAgICBuZXdfYmFsYW5jZSA9IFBBU19NSU4oMCwgYmFsYW5jZSAr
IGRlY29tbWl0X2xvZy50b3RhbCk7CisgICAgICAgICAgICBuZXdfYmFsYW5jZSA9IFBBU19NSU4o
MCwgKGludHB0cl90KWJhbGFuY2UgKyAoaW50cHRyX3QpZGVjb21taXRfbG9nLnRvdGFsKTsKICAg
ICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHBhc19jb21wYXJlX2FuZF9zd2FwX3VpbnRwdHJf
d2VhaygKLSAgICAgICAgICAgICAgICAgICAgKHVpbnRwdHJfdCopJnBhc19waHlzaWNhbF9wYWdl
X3NoYXJpbmdfcG9vbF9iYWxhbmNlLCBiYWxhbmNlLCBuZXdfYmFsYW5jZSkpCisgICAgICAgICAg
ICAgICAgICAgICh1aW50cHRyX3QqKSZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfYmFs
YW5jZSwKKyAgICAgICAgICAgICAgICAgICAgKHVpbnRwdHJfdCliYWxhbmNlLCAodWludHB0cl90
KW5ld19iYWxhbmNlKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICAKQEAgLTgwMSw3ICs4MDgsNyBAQCBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2Nh
dmVuZ2UoCiAgICAgUEFTX0FTU0VSVCh0YWtlX3Jlc3VsdCAhPSBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfdGFrZV9sb2Nrc191bmF2YWlsYWJsZSk7CiAgICAgUEFTX0FTU0VSVCh0YWtlX3Jlc3VsdCAh
PSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzKTsKICAgICAKLSAgICByZXR1cm4g
dGFrZV9yZXN1bHQ7CisgICAgcmV0dXJuIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9y
ZXN1bHRfY3JlYXRlKHRha2VfcmVzdWx0LCB0b3RhbF9ieXRlcyk7CiB9CiAKIHZvaWQgcGFzX3Bo
eXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbGF0ZXIoc2l6ZV90IGJ5dGVzKQpAQCAtODUx
LDE5ICs4NTgsNiBAQCB2b2lkIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9ja3NfYWxyZWFkeV9oZWxk
LCBudW1fbG9ja3NfYWxyZWFkeV9oZWxkKTsKIH0KIAotYm9vbCBwYXNfYmlhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlKHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcG9vbCkKLXsKLSAgICBzd2l0Y2gg
KHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xlYXN0X3JlY2VudGx5X3VzZWQocG9vbCwgTlVM
TCwgcGFzX2xvY2tfaXNfbm90X2hlbGQsIDApKSB7Ci0gICAgY2FzZSBwYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZToKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNh
c2UgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczoKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVh
Y2hlZCIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfQotCiB2b2lkIHBhc19wYWdl
X3NoYXJpbmdfcG9vbF9kaWRfY3JlYXRlX2RlbHRhKHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcG9v
bCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vf
c2hhcmluZ19wYXJ0aWNpcGFudCBwYXJ0aWNpcGFudCkKIHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbC5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfcGFnZV9zaGFyaW5nX3Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgInBhc19sb2NrLmgiCiAjaW5jbHVkZSAicGFzX21pbl9oZWFwLmgiCiAjaW5jbHVk
ZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5oIgorI2luY2x1ZGUgInBhc19wYWdlX3No
YXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfdGFrZV9yZXN1bHQuaCIKICNpbmNsdWRlICJwYXNfc2VnbWVudGVkX3ZlY3Rvci5oIgog
I2luY2x1ZGUgInBhc191dGlscy5oIgpAQCAtMTIxLDcgKzEyMiw3IEBAIFBBU19BUEkgdm9pZCBw
YXNfcGFnZV9zaGFyaW5nX3Bvb2xfYWRkKHAKIAogLyogVGhpcyBpcyB0aGUgbG93LWxldmVsIGlu
dGVyZmFjZSBmb3IgdGFraW5nIHRoaW5ncyBmcm9tIHRoZSBzaGFyaW5nIHBvb2wuIFVzdWFsbHkg
eW91IHdhbnQgdG8gY2FsbAogICAgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Us
IHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZSwKLSAgIHBhc19waHlzaWNh
bF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2Zvcl9wYWdlX2NvbmZpZywgb3IgcGFzX2JpYXNfcGFn
ZV9zaGFyaW5nX3Bvb2xfdGFrZS4KKyAgIG9yIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9v
bF90YWtlX2Zvcl9wYWdlX2NvbmZpZy4KICAgIAogICAgVGhpcyBqdXN0IHRha2VzIHRoZSBsZWFz
dCByZWNlbnRseSB1c2VkIHBpZWNlIG9mIG1lbW9yeSAoY291bGQgYmUgYSBwYWdlLCBhIHNwYW4g
b2YgbXVsdGlwbGUgcGFnZXMsCiAgICBvciBldmVuIGEgc2V0IG9mIGRpc2pvaW50IHBhZ2VzKS4g
VGhlIGFtb3VudCBvZiBtZW1vcnkgcmV0dXJuZWQgaXMgZ29pbmcgdG8gYmUgd2hhdGV2ZXIgaXMK
QEAgLTE1MCw3ICsxNTEsNyBAQCBQQVNfQVBJIHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19wCiAgICAgc2l6ZV90IG51bV9sb2Nrc19hbHJlYWR5X2hlbGQpOwogCiAvKiBUaGlzIHJldHVy
bnMgdGhlIGV4Y3VzZSBmb3Igd2h5IGl0IHN0b3BwZWQgc2NhdmVuZ2luZy4gKi8KLVBBU19BUEkg
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0CitQQVNfQVBJIHBhc19wYWdlX3NoYXJp
bmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQKIHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF9z
Y2F2ZW5nZSh1aW50NjRfdCBtYXhfZXBvY2gpOwogCiBQQVNfQVBJIHZvaWQgcGFzX3BoeXNpY2Fs
X3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfbGF0ZXIoc2l6ZV90IGJ5dGVzKTsKQEAgLTE2Myw4ICsx
NjQsNiBAQCBQQVNfQVBJIHZvaWQgcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wCiAgICAgcGFz
X2xvY2sqKiBsb2Nrc19hbHJlYWR5X2hlbGQsCiAgICAgc2l6ZV90IG51bV9sb2Nrc19hbHJlYWR5
X2hlbGQpOwogCi1QQVNfQVBJIGJvb2wgcGFzX2JpYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZShw
YXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2wpOwotCiBQQVNfQVBJIHZvaWQgcGFzX3BhZ2Vfc2hh
cmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEocGFzX3BhZ2Vfc2hhcmluZ19wb29sKiBwb29sLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19w
YWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQpOwogCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVz
dWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlX3Jlc3VsdC5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2
ZW5nZV9yZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX1BBR0VfU0hB
UklOR19QT09MX1NDQVZFTkdFX1JFU1VMVF9ICisjZGVmaW5lIFBBU19QQUdFX1NIQVJJTkdfUE9P
TF9TQ0FWRU5HRV9SRVNVTFRfSAorCisjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rh
a2VfcmVzdWx0LmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19wYWdlX3No
YXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQ7Cit0eXBlZGVmIHN0cnVjdCBwYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9y
ZXN1bHQ7CisKK3N0cnVjdCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2VfcmVzdWx0IHsK
KyAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgdGFrZV9yZXN1bHQ7CisgICAg
c2l6ZV90IHRvdGFsX2J5dGVzOworfTsKKworc3RhdGljIGlubGluZSBwYXNfcGFnZV9zaGFyaW5n
X3Bvb2xfc2NhdmVuZ2VfcmVzdWx0IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1
bHRfY3JlYXRlKAorICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCB0YWtlX3Jl
c3VsdCwKKyAgICBzaXplX3QgdG90YWxfYnl0ZXMpCit7CisgICAgcGFzX3BhZ2Vfc2hhcmluZ19w
b29sX3NjYXZlbmdlX3Jlc3VsdCByZXN1bHQ7CisgICAgcmVzdWx0LnRha2VfcmVzdWx0ID0gdGFr
ZV9yZXN1bHQ7CisgICAgcmVzdWx0LnRvdGFsX2J5dGVzID0gdG90YWxfYnl0ZXM7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19QQUdF
X1NIQVJJTkdfUE9PTF9TQ0FWRU5HRV9SRVNVTFRfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkX2JsYWNrX3RyZWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkX2JsYWNrX3RyZWUuaAkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Jl
ZF9ibGFja190cmVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMg
aW5saW5lIHBhc19yZWRfYmxhY2tfdHJlZV9ub2RlKiBwCiAKIHN0YXRpYyBpbmxpbmUgcGFzX3Jl
ZF9ibGFja190cmVlX25vZGUqIHBhc19yZWRfYmxhY2tfdHJlZV9ub2RlX2dldF9wYXJlbnQocGFz
X3JlZF9ibGFja190cmVlX25vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIChwYXNfcmVkX2JsYWNr
X3RyZWVfbm9kZSopKHBhc19yZWRfYmxhY2tfdHJlZV9ub2RlX3RhZ2dlZF9wdHJfbG9hZCgmbm9k
ZS0+cGFyZW50KSAmIH4xKTsKKyAgICByZXR1cm4gKHBhc19yZWRfYmxhY2tfdHJlZV9ub2RlKiko
cGFzX3JlZF9ibGFja190cmVlX25vZGVfdGFnZ2VkX3B0cl9sb2FkKCZub2RlLT5wYXJlbnQpICYg
fjFsdSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3JlZF9ibGFja190cmVlX2NvbG9yIHBhc19y
ZWRfYmxhY2tfdHJlZV9ub2RlX2dldF9jb2xvcihwYXNfcmVkX2JsYWNrX3RyZWVfbm9kZSogbm9k
ZSkKQEAgLTE1Myw3ICsxNTMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGFzX3JlZF9ibGFja190
cmVlX25vCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19yZWRfYmxhY2tfdHJlZV9jb2xvciB2YWx1ZSkKIHsKICAgICB1aW50cHRyX3QgdGFn
Z2VkX3ZhbHVlID0gcGFzX3JlZF9ibGFja190cmVlX25vZGVfdGFnZ2VkX3B0cl9sb2FkKCZub2Rl
LT5wYXJlbnQpOwotICAgIHRhZ2dlZF92YWx1ZSA9ICh0YWdnZWRfdmFsdWUgJiB+MSkgfCAodWlu
dHB0cl90KXZhbHVlOworICAgIHRhZ2dlZF92YWx1ZSA9ICh0YWdnZWRfdmFsdWUgJiB+MWx1KSB8
ICh1aW50cHRyX3QpdmFsdWU7CiAgICAgcGFzX3JlZF9ibGFja190cmVlX3ZhbGlkYXRlX2VudW1l
cmFibGUoKTsKICAgICBwYXNfcmVkX2JsYWNrX3RyZWVfbm9kZV90YWdnZWRfcHRyX3N0b3JlKCZu
b2RlLT5wYXJlbnQsIHRhZ2dlZF92YWx1ZSk7CiAgICAgcGFzX3JlZF9ibGFja190cmVlX3ZhbGlk
YXRlX2VudW1lcmFibGUoKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRv
cl9ub2RlLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuYwkod29ya2luZyBjb3B5
KQpAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgInBhc19pbW1vcnRhbF9oZWFwLmgiCiAKIHBh
c19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUqCi1wYXNfcmVkdW5kYW50X2xvY2FsX2Fs
bG9jYXRvcl9ub2RlX2NyZWF0ZShwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSkKK3Bhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfY3JlYXRlKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgcGFzX3JlZHVu
ZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSogcmVzdWx0OwogCkBAIC00Miw3ICs0Miw3IEBAIHBh
c19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGVfY3JlYXQKICAgICAgICAgcGFzX29iamVj
dF9hbGxvY2F0aW9uKTsKIAogICAgIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfc3RvcmUoJnJlc3VsdC0+bmV4dCwgTlVMTCk7Ci0gICAgcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRp
cmVjdG9yeSwgZGlyZWN0b3J5KTsKKyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRpcmVjdG9yeSk7CiAgICAgcmVz
dWx0LT5hbGxvY2F0b3JfaW5kZXggPSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWDsKIAog
ICAgIHJldHVybiByZXN1bHQ7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0
b3Jfbm9kZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgUEFTX1JFRFVOREFOVF9MT0NBTF9BTExPQ0FU
T1JfTk9ERV9ICiAjZGVmaW5lIFBBU19SRURVTkRBTlRfTE9DQUxfQUxMT0NBVE9SX05PREVfSAog
Ci0jaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyLmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHIuaCIKICNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlLmgiCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgogCkBAIC0zNywx
MiArMzcsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvYwogCiBz
dHJ1Y3QgcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSB7CiAgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0OwotICAgIHBhc19j
b21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJlY3Rvcnk7Cisg
ICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIgZGlyZWN0b3J5Owog
ICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OwogfTsKIAogUEFTX0FQSSBw
YXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKgotcGFzX3JlZHVuZGFudF9sb2NhbF9h
bGxvY2F0b3Jfbm9kZV9jcmVhdGUocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnkpOworcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9jcmVhdGUo
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiAKIFBBU19FTkRfRVhU
RVJOX0M7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19yZXNl
cnZlZF9tZW1vcnlfcHJvdmlkZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3ZpZGVyLmMJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19yZXNlcnZlZF9t
ZW1vcnlfcHJvdmlkZXIuYwkod29ya2luZyBjb3B5KQpAQCAtNjgsMTIgKzY4LDE2IEBAIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCBwYXNfcmVzZXJ2ZWRfbWVtb3IKICAgICBzaXplX3Qgc2l6ZSwKICAg
ICBwYXNfYWxpZ25tZW50IGFsaWdubWVudCwKICAgICBjb25zdCBjaGFyKiBuYW1lLAorICAgIHBh
c19oZWFwKiBoZWFwLAorICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uLAogICAgIHZvaWQqIGFyZykKIHsKICAgICBwYXNfcmVzZXJ2ZWRfbWVtb3J5X3Byb3Zp
ZGVyKiBwcm92aWRlcjsKICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZyBjb25maWc7CiAK
ICAgICBQQVNfVU5VU0VEX1BBUkFNKG5hbWUpOworICAgIFBBU19VTlVTRURfUEFSQU0oaGVhcCk7
CisgICAgUEFTX1VOVVNFRF9QQVJBTSh0cmFuc2FjdGlvbik7CiAKICAgICBwcm92aWRlciA9IGFy
ZzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Jlc2VydmVk
X21lbW9yeV9wcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19yZXNlcnZlZF9tZW1vcnlfcHJvdmlkZXIuaAkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Jlc2VydmVkX21lbW9y
eV9wcm92aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw4IEBAIFBBU19BUEkgcGFz
X2FsbG9jYXRpb25fcmVzdWx0IHBhc19yZXNlcnYKICAgICBzaXplX3Qgc2l6ZSwKICAgICBwYXNf
YWxpZ25tZW50IGFsaWdubWVudCwKICAgICBjb25zdCBjaGFyKiBuYW1lLAorICAgIHBhc19oZWFw
KiBoZWFwLAorICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9u
LAogICAgIHZvaWQqIGFyZyk7CiAKIFBBU19FTkRfRVhURVJOX0M7CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5jCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2Vy
LmMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJwYXNfc2NhdmVu
Z2VyLmgiCiAKICNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5jbHVkZSAicGFzX2FsbF9iaWFzaW5nX2Rp
cmVjdG9yaWVzLmgiCiAjaW5jbHVkZSAicGFzX2FsbF9oZWFwcy5oIgogI2luY2x1ZGUgInBhc19i
YXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIKICNpbmNsdWRlICJwYXNfZGVmZXJyZWRfZGVjb21t
aXRfbG9nLmgiCkBAIC00NSw2ICs0NCw3IEBACiAjaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5o
IgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDx1
bmlzdGQuaD4KIAogc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCkBAIC0xNDks
NyArMTQ5LDcgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAg
IGRhdGEgPSBlbnN1cmVfZGF0YV9pbnN0YW5jZShwYXNfbG9ja19pc19ub3RfaGVsZCk7CiAgICAg
CiAgICAgZm9yICg7OykgewotICAgICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1
bHQgdGFrZV9yZXN1bHQ7CisgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9y
ZXN1bHQgc2NhdmVuZ2VfcmVzdWx0OwogICAgICAgICBib29sIHNob3VsZF9zaHV0X2Rvd247CiAg
ICAgICAgIGRvdWJsZSB0aW1lX2luX21pbGxpc2Vjb25kczsKICAgICAgICAgZG91YmxlIGFic29s
dXRlX3RpbWVvdXRfaW5fbWlsbGlzZWNvbmRzX2Zvcl9wZXJpb2Rfc2xlZXA7CkBAIC0xNjYsNiAr
MTY2LDE0IEBAIHN0YXRpYyB2b2lkKiBzY2F2ZW5nZXJfdGhyZWFkX21haW4odm9pZCoKICAgICAg
ICAgCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcHJpbnRmKCJTY2F2ZW5nZXIg
aXMgcnVubmluZy5cbiIpOworCisjaWYgUEFTX0xPQ0FMX0FMTE9DQVRPUl9NRUFTVVJFX1JFRklM
TF9FRkZJQ0lFTkNZCisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVu
Y3lfbG9ja19sb2NrKCk7CisgICAgICAgIHBhc19sb2coIiVkOiBSZWZpbGwgZWZmaWNpZW5jeTog
JWxmXG4iLAorICAgICAgICAgICAgICAgIGdldHBpZCgpLAorICAgICAgICAgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3JfcmVmaWxsX2VmZmljaWVuY3lfc3VtIC8gcGFzX2xvY2FsX2FsbG9jYXRv
cl9yZWZpbGxfZWZmaWNpZW5jeV9uKTsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZp
bGxfZWZmaWNpZW5jeV9sb2NrX3VubG9jaygpOworI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FU
T1JfTUVBU1VSRV9SRUZJTExfRUZGSUNJRU5DWSAqLwogICAgICAgICAKICAgICAgICAgc2hvdWxk
X2dvX2FnYWluIHw9CiAgICAgICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2Zv
cl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0aW9uKTsKQEAgLTE3
NiwxMSArMTg0LDkgQEAgc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgog
ICAgICAgICAKICAgICAgICAgc2hvdWxkX2dvX2FnYWluIHw9CiAgICAgICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0
b3BfYWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVzaF9sb2dfYWN0aW9uLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9mbHVz
aF9sb2dfaWZfY2xlYW5fYWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKIAotICAgICAgICBzaG91bGRfZ29fYWdh
aW4gfD0gcGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzX3NjYXZlbmdlKCk7Ci0KICAgICAgICAg
LyogRm9yIHRoZSBwdXJwb3NlcyBvZiBwZXJmb3JtYW5jZSB0dW5pbmcsIGFzIHdlbGwgYXMgc29t
ZSBvZiB0aGUgc2NhdmVuZ2VyIHRlc3RzLCB0aGUgZXBvY2gKICAgICAgICAgICAgaXMgdGltZSBp
biBuYW5vc2Vjb25kcy4KICAgICAgICAgICAgCkBAIC0xOTgsOCArMjA0LDkgQEAgc3RhdGljIHZv
aWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAgICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgIHBhc19sb2coImVwb2NoID0gJWxsdSwgZGVsdGEgPSAlbGx1LCBtYXhfZXBvY2gg
PSAlbGx1XG4iLCBlcG9jaCwgZGVsdGEsIG1heF9lcG9jaCk7CiAKLSAgICAgICAgdGFrZV9yZXN1
bHQgPSBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2UobWF4X2Vwb2NoKTsK
LSAgICAgICAgc3dpdGNoICh0YWtlX3Jlc3VsdCkgeworICAgICAgICBzY2F2ZW5nZV9yZXN1bHQg
PSBwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfc2NhdmVuZ2UobWF4X2Vwb2NoKTsKKwor
ICAgICAgICBzd2l0Y2ggKHNjYXZlbmdlX3Jlc3VsdC50YWtlX3Jlc3VsdCkgewogICAgICAgICBj
YXNlIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAKQEAgLTIxNiw2ICsyMjMsMTMgQEAgc3RhdGljIHZvaWQq
IHNjYXZlbmdlcl90aHJlYWRfbWFpbih2b2lkKgogICAgICAgICAgICAgUEFTX0FTU0VSVCghIlNo
b3VsZCBub3Qgc2VlIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxl
LiIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0gfQorCisgICAgICAgIGlmICh2ZXJi
b3NlKSB7CisgICAgICAgICAgICBwYXNfbG9nKCIlZDogJS4wbGY6IHNjYXZlbmdlciBmcmVlZCAl
enUgYnl0ZXMgKCVzLCBzaG91bGRfZ29fYWdhaW4gPSAlcykuXG4iLAorICAgICAgICAgICAgICAg
ICAgICBnZXRwaWQoKSwgZ2V0X3RpbWVfaW5fbWlsbGlzZWNvbmRzKCksIHNjYXZlbmdlX3Jlc3Vs
dC50b3RhbF9ieXRlcywKKyAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29s
X3Rha2VfcmVzdWx0X2dldF9zdHJpbmcoc2NhdmVuZ2VfcmVzdWx0LnRha2VfcmVzdWx0KSwKKyAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkX2dvX2FnYWluID8gInllcyIgOiAibm8iKTsKKyAgICAg
ICAgfQogICAgICAgICAKICAgICAgICAgY29tcGxldGlvbl9jYWxsYmFjayA9IHBhc19zY2F2ZW5n
ZXJfY29tcGxldGlvbl9jYWxsYmFjazsKICAgICAgICAgaWYgKGNvbXBsZXRpb25fY2FsbGJhY2sp
CkBAIC0yNDEsNyArMjU1LDEwIEBAIHN0YXRpYyB2b2lkKiBzY2F2ZW5nZXJfdGhyZWFkX21haW4o
dm9pZCoKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIHByaW50Zigi
V2FpdGluZyBmb3IgYSBwZXJpb2QuXG4iKTsKIAotICAgICAgICAgICAgcGFzX3NjYXZlbmdlcl9j
dXJyZW50X3N0YXRlID0gcGFzX3NjYXZlbmdlcl9zdGF0ZV9wb2xsaW5nOworICAgICAgICAgICAg
LyogVGhpcyBmaWVsZCBpcyBhY2Nlc3NlZCBhIGxvdCBieSBvdGhlciB0aHJlYWRzLCBzbyBkb24n
dCB3cml0ZSB0byBpdCBpZiB3ZSBkb24ndAorICAgICAgICAgICAgICAgaGF2ZSB0by4gKi8KKyAg
ICAgICAgICAgIGlmIChwYXNfc2NhdmVuZ2VyX2N1cnJlbnRfc3RhdGUgIT0gcGFzX3NjYXZlbmdl
cl9zdGF0ZV9wb2xsaW5nKQorICAgICAgICAgICAgICAgIHBhc19zY2F2ZW5nZXJfY3VycmVudF9z
dGF0ZSA9IHBhc19zY2F2ZW5nZXJfc3RhdGVfcG9sbGluZzsKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIGRvdWJsZSBhYnNvbHV0ZV90aW1lb3V0X2luX21pbGxpc2Vjb25kc19mb3JfZGVl
cF9wcmVfc2xlZXA7CiAgICAgICAgICAgICAKQEAgLTQyNSwxMSArNDQyLDExIEBAIHZvaWQgcGFz
X3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzX2V4Y2UKIHsKICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiBjYWNoZTsKICAgICAKLSAgICBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9ub25fdGxj
X2NhY2hlcygpOwotCiAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQo
KTsKICAgICBpZiAoY2FjaGUpCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5r
KGNhY2hlLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisKKyAgICBwYXNfc2NhdmVuZ2VyX2NsZWFy
X2FsbF9ub25fdGxjX2NhY2hlcygpOwogfQogCiB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxs
X2NhY2hlcyh2b2lkKQpAQCAtNDQxLDEzICs0NTgsMTUgQEAgdm9pZCBwYXNfc2NhdmVuZ2VyX2Ns
ZWFyX2FsbF9jYWNoZXModm9pZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9ja19pc19ub3RfaGVsZCk7CiB9CiAKLXZvaWQgcGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9m
cmVlX21lbW9yeSh2b2lkKQorc2l6ZV90IHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZnJlZV9tZW1v
cnkodm9pZCkKIHsKLSAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcmVzdWx0
OworICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbF9zY2F2ZW5nZV9yZXN1bHQgcmVzdWx0OwogCiAg
ICAgcmVzdWx0ID0gcGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3NjYXZlbmdlKFBBU19F
UE9DSF9NQVgpOwogICAgIAotICAgIFBBU19BU1NFUlQocmVzdWx0ID09IHBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlKTsKKyAgICBQQVNfQVNTRVJUKHJlc3VsdC50YWtl
X3Jlc3VsdCA9PSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZSk7CisK
KyAgICByZXR1cm4gcmVzdWx0LnRvdGFsX2J5dGVzOwogfQogCiB2b2lkIHBhc19zY2F2ZW5nZXJf
cnVuX3N5bmNocm9ub3VzbHlfbm93KHZvaWQpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTk4LDcgKzk4LDcgQEAgUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfcmVzdW1l
KHZvaWQpOwogUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX25vbl90bGNfY2Fj
aGVzKHZvaWQpOwogUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJfYWxsX2NhY2hlc19l
eGNlcHRfcmVtb3RlX3RsY3Modm9pZCk7CiBQQVNfQVBJIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVh
cl9hbGxfY2FjaGVzKHZvaWQpOwotUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfZGVjb21taXRf
ZnJlZV9tZW1vcnkodm9pZCk7CitQQVNfQVBJIHNpemVfdCBwYXNfc2NhdmVuZ2VyX2RlY29tbWl0
X2ZyZWVfbWVtb3J5KHZvaWQpOwogCiBQQVNfQVBJIHZvaWQgcGFzX3NjYXZlbmdlcl9ydW5fc3lu
Y2hyb25vdXNseV9ub3codm9pZCk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuYwkobm9uZXhpc3RlbnQp
CkBAIC0xLDI2MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgInBhc19jb25maWcuaCIKLQotI2lmIExJQlBBU19FTkFC
TEVECi0KLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgotCi0j
aW5jbHVkZSAicGFzX2FsbF9iaWFzaW5nX2RpcmVjdG9yaWVzLmgiCi0jaW5jbHVkZSAicGFzX2Vw
b2NoLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0KLXBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9y
eV9jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwYXJl
bnRfZ2xvYmFsLCB1bnNpZ25lZCBtYWdhemluZV9pbmRleCkKLXsKLSAgICBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeSogcmVzdWx0OwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnKiBwYWdlX2NvbmZpZzsKLQotICAgIC8qIFRoaXMgY3JlYXRlcyBhIGJpYXNpbmcgZGlyZWN0
b3J5IHdpdGgganVzdCBpbmRleF9pbl9hbGwgaW5pdGlhbGl6ZWQgYW5kIGV2ZXJ5dGhpbmcgZWxz
ZQotICAgICAgIHplcm9lZC4gKi8KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxv
Y2F0ZV93aXRoX2FsaWdubWVudCgKLSAgICAgICAgc2l6ZW9mKHBhc19zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5KSwKLSAgICAgICAgYWxpZ25vZihwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSksCi0gICAgICAgICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSIsCi0g
ICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7Ci0KLSAgICBwYWdlX2NvbmZpZyA9IHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhwYXJlbnRfZ2xvYmFsLT5iYXNl
LnBhZ2VfY29uZmlnX2tpbmQpOwotICAgIFBBU19BU1NFUlQocGFnZV9jb25maWcpOwotCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29uc3RydWN0KAotICAgICAgICAmcmVzdWx0
LT5iYXNlLCBwYWdlX2NvbmZpZy0+a2luZCwKLSAgICAgICAgcGFzX2RvX25vdF9zaGFyZV9wYWdl
cywKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCk7Ci0KLSAg
ICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUo
JnJlc3VsdC0+cGFyZW50X2dsb2JhbCwgcGFyZW50X2dsb2JhbCk7Ci0KLSAgICBwYXNfYmlhc2lu
Z19kaXJlY3RvcnlfY29uc3RydWN0KAotICAgICAgICAmcmVzdWx0LT5iaWFzaW5nX2Jhc2UsIHBh
c19iaWFzaW5nX2RpcmVjdG9yeV9zZWdyZWdhdGVkX2tpbmQsIG1hZ2F6aW5lX2luZGV4KTsKLQot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyB2b2lkIHRha2VfZmlyc3RfZWxpZ2libGVf
bG9vcF9oZWFkX2NhbGxiYWNrKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQot
ewotICAgIC8qIE5vdGhpbmcgdG8gZG8gZm9yIGJpYXNpbmcgZGlyZWN0b3JpZXMuIFRoaXMgY2Fs
bGJhY2sgaXMgbWVhbmluZ2Z1bCBmb3IgZ2xvYmFsIHNpemUgZGlyZWN0b3JpZXMsCi0gICAgICAg
d2hpY2ggdXNlIGl0IHRvIHRha2UgZnJvbSB0aGUgYmlhc2luZyBwb29sLiAqLwotICAgIFBBU19V
TlVTRURfUEFSQU0oZGlyZWN0b3J5KTsKLX0KLQotc3RhdGljIHBhc19zZWdyZWdhdGVkX3ZpZXcg
dGFrZV9maXJzdF9lbGlnaWJsZV9jcmVhdGVfbmV3X3ZpZXdfY2FsbGJhY2soCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpCi17Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5OwotCi0gICAgUEFT
X1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+ZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kKTsKLSAgICAKLSAgICBiaWFzaW5nX2Rp
cmVjdG9yeSA9IChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSopY29uZmlnLT5kaXJl
Y3Rvcnk7Ci0KLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXdf
bm9uX251bGwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jcmVhdGUoYmlh
c2luZ19kaXJlY3RvcnksIGNvbmZpZy0+aW5kZXgpKTsKLX0KLQotcGFzX3NlZ3JlZ2F0ZWRfdmll
dyBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAot
ICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBiaWFzaW5nX2RpcmVjdG9yeSwK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHBhcmVudF9nbG9iYWwp
Ci17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnX3B0cjsKLSAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnIGNvbmZpZzsKLQot
ICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAgcGFyZW50X2dsb2JhbCA9PQotICAgICAg
ICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgKLSAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+cGFyZW50X2dsb2JhbCkp
OwotCi0gICAgZGlyZWN0b3J5ID0gJmJpYXNpbmdfZGlyZWN0b3J5LT5iYXNlOwotICAgIHBhZ2Vf
Y29uZmlnX3B0ciA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhk
aXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpOwotICAgIHBhZ2VfY29uZmlnID0gKnBhZ2VfY29u
ZmlnX3B0cjsKLQotICAgIFBBU19URVNUSU5HX0FTU0VSVCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykgPT0gcGFzX2xv
Y2tfaXNfbm90X2hlbGQpOwotICAgIAotICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGwoCi0gICAgICAgIGRpcmVjdG9yeSwgJmNv
bmZpZywKLSAgICAgICAgdGFrZV9maXJzdF9lbGlnaWJsZV9sb29wX2hlYWRfY2FsbGJhY2ssCi0g
ICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGVfY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKTsKLQot
ICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9kaWRfdXNlX2luZGV4KAotICAgICAgICAmYmlhc2lu
Z19kaXJlY3RvcnktPmJpYXNpbmdfYmFzZSwgY29uZmlnLmluZGV4LCBwYXNfZ2V0X2Vwb2NoKCkp
OwotICAgIAotICAgIFBBU19URVNUSU5HX0FTU0VSVCghUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X0dFVF9CSVQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHZpZXcpLCBlbGlnaWJsZSkpOwotCi0gICAgcmV0dXJuIHZp
ZXc7Ci19Ci0KLXBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdAotcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9sYXN0X3VudXNlZCgKLSAgICBwYXNfc2VncmVnYXRl
ZF9iaWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3RvcnkpCi17Ci0gICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgb3duZXJzaGlw
X3RocmVzaG9sZDsKLSAgICBib29sIGRpZF9maW5kX2VsaWdpYmxlX3BhZ2U7Ci0gICAgc2l6ZV90
IGluZGV4OwotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZWxpZ2libGVfaGlnaF93YXRlcm1hcms7
Ci0gICAgc2l6ZV90IG5ld19lbGlnaWJsZV93YXRlcm1hcms7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcgcGFnZV9jb25maWc7Ci0KLSAgICBwYWdlX2NvbmZpZyA9ICpwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoYmlhc2luZ19kaXJlY3RvcnktPmJhc2Uu
cGFnZV9jb25maWdfa2luZCk7Ci0KLSAgICBQQVNfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpID09IHBhc19sb2NrX2lzX25v
dF9oZWxkKTsKLSAgICAKLSAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAmYmlh
c2luZ19kaXJlY3RvcnktPnBhcmVudF9nbG9iYWwpOwotCi0gICAgb3duZXJzaGlwX3RocmVzaG9s
ZCA9IHBhc19iaWFzaW5nX2RpcmVjdG9yeV9vd25lcnNoaXBfdGhyZXNob2xkKCZiaWFzaW5nX2Rp
cmVjdG9yeS0+Ymlhc2luZ19iYXNlKTsKLQotICAgIC8qIFJlYWQgdG8gd2F0Y2ggc28gdGhhdCBp
ZiBhbnlvbmUgdXBkYXRlcyB0aGUgZWxpZ2libGVfaGlnaF93YXRlcm1hcmsgZHVyaW5nIG91ciBz
Y2FuLCB3ZSB3b24ndAotICAgICAgIG92ZXJ3cml0ZSBpdC4gKi8KLSAgICBlbGlnaWJsZV9oaWdo
X3dhdGVybWFyayA9IHBhc192ZXJzaW9uZWRfZmllbGRfcmVhZF90b193YXRjaCgKLSAgICAgICAg
JmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93YXRlcm1hcmsp
OwotCi0gICAgUEFTX0FTU0VSVChlbGlnaWJsZV9oaWdoX3dhdGVybWFyay52YWx1ZQotICAgICAg
ICAgICAgICAgPD0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmJpYXNpbmdfZGlyZWN0
b3J5LT5iYXNlKSk7Ci0KLSAgICBpZiAoKHNpemVfdClvd25lcnNoaXBfdGhyZXNob2xkID49IGVs
aWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlKQotICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hh
cmluZ19wb29sX3Rha2Vfbm9uZV9hdmFpbGFibGU7Ci0KLSAgICBkaWRfZmluZF9lbGlnaWJsZV9w
YWdlID0gZmFsc2U7Ci0KLSAgICBuZXdfZWxpZ2libGVfd2F0ZXJtYXJrID0gb3duZXJzaGlwX3Ro
cmVzaG9sZDsKLQotICAgIGZvciAoaW5kZXggPSBvd25lcnNoaXBfdGhyZXNob2xkOyBpbmRleCA8
IGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLnZhbHVlOyArK2luZGV4KSB7Ci0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2luZ192aWV3OwotICAgICAgICBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlX3ZpZXc7Ci0gICAgICAgIHBhc19sb2NrKiBo
ZWxkX2xvY2s7Ci0gICAgICAgIGJvb2wgcmVzdWx0OwotICAgICAgICBib29sIHNob3VsZF9ub3Rp
ZnlfZW1wdGluZXNzOwotICAgICAgICAKLSAgICAgICAgaWYgKCFQQVNfU0VHUkVHQVRFRF9ESVJF
Q1RPUllfU0VUX0JJVCgmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4LCBlbGlnaWJsZSwg
ZmFsc2UpKSB7Ci0gICAgICAgICAgICAvKiBJZiBpdCdzIGluZWxpZ2libGUgdGhlbiB3ZSBqdXN0
IGRvbid0IGRvIGFueXRoaW5nIHRvIGl0IGFuZCBsZWF2ZSBpdCBiZS4gSWYgaXQgYmVjb21lcwot
ICAgICAgICAgICAgICAgZWxpZ2libGUgdGhlbiB0aGF0J2xsIHRyaWdnZXIgdGhpcyBjb2RlIHRv
IHJlcnVuLiAqLwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBk
aWRfZmluZF9lbGlnaWJsZV9wYWdlID0gdHJ1ZTsKLQotICAgICAgICBiaWFzaW5nX3ZpZXcgPSBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2dldCgmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4KSk7Ci0gICAg
ICAgIGV4Y2x1c2l2ZV92aWV3ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfcHRyX2xvYWQoCi0gICAgICAgICAgICAmYmlhc2luZ192aWV3LT5leGNsdXNpdmUp
OwotCi0gICAgICAgIGlmICghZXhjbHVzaXZlX3ZpZXcpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5k
ZXhfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAgICAgICAgICAgICAgICAmYmlhc2luZ19kaXJl
Y3RvcnktPmJhc2UsIGluZGV4KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQocmVzdWx0KTsKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBQQVNfQVNT
RVJUKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNl
ZCgKLSAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5k
KSk7Ci0gICAgICAgIFBBU19BU1NFUlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklU
KAotICAgICAgICAgICAgICAgICAgICAgICAmc2l6ZV9kaXJlY3RvcnktPmJhc2UsIGV4Y2x1c2l2
ZV92aWV3LT5pbmRleCwgZWxpZ2libGUpKTsKLSAgICAgICAgCi0gICAgICAgIC8qIFRoZSBlbXB0
eSBiaXRzIHNob3VsZG4ndCBoYXZlIGV2ZXIgYmVlbiBzZXQuICovCi0gICAgICAgIFBBU19BU1NF
UlQoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAgICAgICAgICAgICAg
ICAgICAmYmlhc2luZ19kaXJlY3RvcnktPmJhc2UsIGluZGV4LCBlbXB0eSkpOwotICAgICAgICAK
LSAgICAgICAgaGVsZF9sb2NrID0gTlVMTDsKLSAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxk
X2xvY2ssICZleGNsdXNpdmVfdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICBQQVNfQVNT
RVJUKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNl
ZCgKLSAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5k
KSk7Ci0gICAgICAgIGV4Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBfa2luZCA9Ci0gICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX2JpYXNl
ZCgKLSAgICAgICAgICAgICAgICBleGNsdXNpdmVfdmlldy0+b3duZXJzaGlwX2tpbmQsIGZhbHNl
KTsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAg
aGFzIG93bmVyc2hpcCBraW5kID0gJXMgZHVlIHRvIHRha2VfbGFzdF91bnVzZWRcbiIsCi0gICAg
ICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZV92aWV3LAotICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRfc3RyaW5nKAotICAg
ICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBzaG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9IGZhbHNlOwotICAg
ICAgICAKLSAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hp
cF9raW5kX2lzX293bmVkKAotICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZV92aWV3LT5vd25lcnNo
aXBfa2luZCkpIHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7Ci0KLSAg
ICAgICAgICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShleGNsdXNp
dmVfdmlldy0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ss
IHBhZ2VfY29uZmlnKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgLyogSWYgdGhpcyBleGNs
dXNpdmUgYWxyZWFkeSBoYWQgYSBwYWdlLCB0aGVuIHRoZSBwYWdlIG11c3QgYmUgc2F5aW5nIHRo
YXQgaXQncwotICAgICAgICAgICAgICAgZWxpZ2libGUuICovCi0gICAgICAgICAgICBQQVNfQVNT
RVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2luZyhwYWdlLT5vd25lcikpOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBwYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwoZXhjbHVzaXZlX3ZpZXcpOwotCi0gICAgICAgICAgICBz
aG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zv
cl9kZWNvbW1pdChwYWdlLCBwYWdlX2NvbmZpZyk7Ci0gICAgICAgIH0KLQotICAgICAgICAvKiBU
aGlzIGp1c3QgbmVlZHMgdG8gaGFwcGVuIGJlZm9yZSB3ZSByZWxlYXNlIGVsaWdpYmlsaXR5LiAq
LwotICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19w
dHJfc3RvcmUoJmJpYXNpbmdfdmlldy0+ZXhjbHVzaXZlLCBOVUxMKTsKLQotICAgICAgICByZXN1
bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0
X2luZGV4KAotICAgICAgICAgICAgJnNpemVfZGlyZWN0b3J5LT5iYXNlLCBleGNsdXNpdmVfdmll
dy0+aW5kZXgpOwotICAgICAgICBQQVNfQVNTRVJUKHJlc3VsdCk7Ci0gICAgICAgIAotICAgICAg
ICByZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdp
YmxlX2F0X2luZGV4X3dpdGhvdXRfYmlhc2luZ191cGRhdGUoCi0gICAgICAgICAgICAmYmlhc2lu
Z19kaXJlY3RvcnktPmJhc2UsIGluZGV4KTsKLSAgICAgICAgUEFTX0FTU0VSVChyZXN1bHQpOwot
Ci0gICAgICAgIGlmIChzaG91bGRfbm90aWZ5X2VtcHRpbmVzcykgewotICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleCgKLSAg
ICAgICAgICAgICAgICAmc2l6ZV9kaXJlY3RvcnktPmJhc2UsIGV4Y2x1c2l2ZV92aWV3LT5pbmRl
eCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9s
b2NrLCBOVUxMKTsKLSAgICB9Ci0KLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX3RyeV93cml0ZSgK
LSAgICAgICAgJmJpYXNpbmdfZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuZWxpZ2libGVfaGlnaF93
YXRlcm1hcmssCi0gICAgICAgIGVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJrLCBuZXdfZWxpZ2libGVf
d2F0ZXJtYXJrKTsKLQotICAgIHJldHVybiBkaWRfZmluZF9lbGlnaWJsZV9wYWdlCi0gICAgICAg
ID8gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzcwotICAgICAgICA6IHBhc19wYWdl
X3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOwotfQotCi0jZW5kaWYgLyogTElCUEFT
X0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaAko
cmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDY0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
Ci0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX0JJQVNJTkdfRElSRUNUT1JZX0gKLSNkZWZpbmUgUEFT
X1NFR1JFR0FURURfQklBU0lOR19ESVJFQ1RPUllfSAotCi0jaW5jbHVkZSAicGFzX2JpYXNpbmdf
ZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2Rp
cmVjdG9yeSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKLQotc3RydWN0IFBBU19B
TElHTkVEKHNpemVvZih1aW50cHRyX3QpICogMikgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnkgewotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSBiYXNlOwotICAgIHBhc19iaWFz
aW5nX2RpcmVjdG9yeSBiaWFzaW5nX2Jhc2U7Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyIHBhcmVudF9nbG9iYWw7Ci19OwotCi1zdGF0aWMgaW5s
aW5lIHVuc2lnbmVkCi1wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9tYWdhemluZV9p
bmRleChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAg
IHJldHVybiBwYXNfYmlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVfaW5kZXgoJmRpcmVjdG9yeS0+
Ymlhc2luZ19iYXNlKTsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeSogcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfY3JlYXRlKAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFyZW50X2dsb2JhbCwgdW5zaWduZWQg
bWFnYXppbmVfaW5kZXgpOwotCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGFyZW50X2dsb2JhbCk7Ci0KLVBBU19BUEkgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0Ci1wYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeV90YWtlX2xhc3RfdW51c2VkKAotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5KiBkaXJlY3RvcnkpOwotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX1NF
R1JFR0FURURfQklBU0lOR19ESVJFQ1RPUllfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9iaWFz
aW5nX3ZpZXcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3LmMJKG5vbmV4aXN0ZW50KQpAQCAt
MSwxNjYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaW5jbHVkZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oIgotCi0jaW5jbHVkZSAicGFzX2Vw
b2NoLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlldy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCi0j
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX3ZpZXdfaW5saW5lcy5oIgotCi1wYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2lu
Z19kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3KiByZXN1bHQ7Ci0KLSAgICByZXN1bHQgPSBwYXNfaW1tb3J0
YWxfaGVhcF9hbGxvY2F0ZShzaXplb2YocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
b2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKCZyZXN1bHQtPmV4Y2x1c2l2ZSwgTlVMTCk7Ci0gICAg
cmVzdWx0LT5pbmRleCA9ICh1bnNpZ25lZClpbmRleDsKLSAgICBQQVNfQVNTRVJUKHJlc3VsdC0+
aW5kZXggPT0gaW5kZXgpOwotICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJl
Y3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0b3J5KTsKLQotICAgIHJl
dHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX293
bmVkKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldykKLXsKLSAgICBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlX3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQgb3duZXJzaGlwX2tpbmQ7Ci0gICAgCi0gICAg
ZXhjbHVzaXZlX3ZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19wdHJfbG9hZCgmdmlldy0+ZXhjbHVzaXZlKTsKLSAgICAKLSAgICBpZiAoIWV4Y2x1c2l2
ZV92aWV3KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBvd25lcnNoaXBfa2luZCA9IGV4
Y2x1c2l2ZV92aWV3LT5vd25lcnNoaXBfa2luZDsKLSAgICAKLSAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQob3duZXJzaGlwX2tp
bmQpCi0gICAgICAgICYmIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9r
aW5kX2lzX2JpYXNlZChvd25lcnNoaXBfa2luZCk7Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3KiB2aWV3KQotewotICAgIGZvciAoOzspIHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZV92aWV3OwotICAgICAgICAKLSAgICAgICAgZXhjbHVzaXZl
X3ZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJf
bG9hZCgmdmlldy0+ZXhjbHVzaXZlKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghZXhjbHVzaXZl
X3ZpZXcpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgcGFzX2xvY2tfbG9j
aygmZXhjbHVzaXZlX3ZpZXctPm93bmVyc2hpcF9sb2NrKTsKLQotICAgICAgICBpZiAoZXhjbHVz
aXZlX3ZpZXcgPT0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
cHRyX2xvYWQoJnZpZXctPmV4Y2x1c2l2ZSkKLSAgICAgICAgICAgICYmIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZChleGNsdXNpdmVfdmlldy0+
b3duZXJzaGlwX2tpbmQpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgcGFz
X2xvY2tfdW5sb2NrKCZleGNsdXNpdmVfdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgIH0KLX0K
LQotYm9vbCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcqIHBhZ2VfY29uZmlnKQotewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBl
eGNsdXNpdmVfdmlldzsKLSAgICAKLSAgICBleGNsdXNpdmVfdmlldyA9IHBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKCZ2aWV3LT5leGNsdXNpdmUp
OwotICAgIAotICAgIGlmICghZXhjbHVzaXZlX3ZpZXcpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3Nob3VsZF90YWJsZShl
eGNsdXNpdmVfdmlldywgcGFnZV9jb25maWcpOwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlld19ub3RlX2VsaWdpYmlsaXR5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyog
dmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgdmlld19pbmRleDsKLSAgICAKLSAgICBiaWFz
aW5nX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlf
cHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSk7Ci0gICAgZGlyZWN0b3J5ID0gJmJp
YXNpbmdfZGlyZWN0b3J5LT5iYXNlOwotICAgIHZpZXdfaW5kZXggPSB2aWV3LT5pbmRleDsKLSAg
ICAKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfbm90ZV9lbGlnaWJpbGl0
eV9pbXBsKAotICAgICAgICBwYWdlLCBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlld19hc192aWV3X25vbl9udWxsKHZpZXcpLCB2aWV3X2luZGV4KTsKLX0KLQotdm9pZCBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ192aWV3KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpCi17
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCi0gICAg
ICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2Fk
X25vbl9udWxsKCZ2aWV3LT5leGNsdXNpdmUpLAotICAgICAgICBwYWdlKTsKLX0KLQotcGFzX2hl
YXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldykKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOwotICAgIHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0Owot
ICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2xvY2tfb3duZXJzaGlw
X2xvY2sodmlldykpCi0gICAgICAgIHJldHVybiBwYXNfaGVhcF9zdW1tYXJ5X2NyZWF0ZV9lbXB0
eSgpOwotICAgIAotICAgIGV4Y2x1c2l2ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5leGNsdXNpdmUpOwotICAg
IFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRf
aXNfYmlhc2VkKGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICByZXN1bHQgPSBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwoZXhjbHVz
aXZlKTsKLQotICAgIHBhc19sb2NrX3VubG9jaygmZXhjbHVzaXZlLT5vd25lcnNoaXBfbG9jayk7
Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1ib29sIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0g
ICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAgICAmcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgm
dmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKLSAgICAgICAgdmlldy0+aW5kZXgsIGVsaWdpYmxlKTsK
LX0KLQotYm9vbCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3Jl
Z2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3KiBleGNsdXNpdmU7Ci0gICAgZXhjbHVzaXZlID0gcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWQoJnZpZXctPmV4Y2x1c2l2ZSk7Ci0gICAg
aWYgKGV4Y2x1c2l2ZSkKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X2lzX2VtcHR5KGV4Y2x1c2l2ZSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0jZW5kaWYg
LyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oCShy
ZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDg4ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQ
QVNfU0VHUkVHQVRFRF9CSUFTSU5HX1ZJRVdfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9CSUFT
SU5HX1ZJRVdfSAotCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF92aWV3LmgiCi0K
LVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dzsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXc7Ci0KLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcg
ewotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ciBl
eGNsdXNpdmU7Ci0gICAgdW5zaWduZWQgaW5kZXg7IC8qIElmIHdlIHdhbnRlZCB0byBiZSBoYXJk
Y29yZSwgd2UgY291bGQgbWFrZSB0aGlzIG9uZSBieXRlLiAqLwotICAgIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKLX07Ci0KLXN0YXRpYyBp
bmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2Fz
X3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3KQotewotICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF92aWV3X2NyZWF0ZSh2aWV3LCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXdfa2luZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3Nl
Z3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX2luZWxpZ2libGVfdmlldyhwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXcqIHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3Jl
YXRlKHZpZXcsIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQpOwot
fQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcKLXBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlld19hc192aWV3X25vbl9udWxsKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyog
dmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19jcmVhdGVfbm9uX251bGwo
dmlldywgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQpOwotfQotCi1zdGF0aWMgaW5s
aW5lIHBhc19zZWdyZWdhdGVkX3ZpZXcKLXBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19hc19p
bmVsaWdpYmxlX3ZpZXdfbm9uX251bGwocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3
KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2NyZWF0ZV9ub25fbnVsbCh2aWV3
LCBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kKTsKLX0KLQotUEFT
X0FQSSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKLSAgICBzaXplX3QgaW5kZXgpOwotCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X2lzX293bmVkKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7
Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X3Nob3VsZF90YWJsZSgK
LSAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqIHZpZXcsIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnKiBwYWdlX2NvbmZpZyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3X2xvY2tfb3duZXJzaGlwX2xvY2socGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
KiB2aWV3KTsKLQotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3Rl
X2VsaWdpYmlsaXR5KHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlKiBwYWdlKTsKLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXdfbm90ZV9lbXB0aW5lc3MocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiB2aWV3LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKLVBBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNf
c2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldyogdmlldyk7Ci1QQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2lzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci1QQVNf
QVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlldyogdmlldyk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAv
KiBQQVNfU0VHUkVHQVRFRF9CSUFTSU5HX1ZJRVdfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX1NFR1JFR0FURURfREVBTExPQ0FUSU9OX01P
REVfSAorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ERUFMTE9DQVRJT05fTU9ERV9ICisKKyNpbmNs
dWRlICJwYXNfdXRpbHMuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitlbnVtIHBhc19zZWdy
ZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlIHsKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRp
b25fZGlyZWN0X21vZGUsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdf
Y2FjaGVfbW9kZQorfTsKKwordHlwZWRlZiBlbnVtIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlv
bl9tb2RlIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlOworCitzdGF0aWMgaW5saW5l
IGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlX2dldF9zdHJpbmco
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUgbW9kZSkKK3sKKyAgICBzd2l0
Y2ggKG1vZGUpIHsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3Rf
bW9kZToKKyAgICAgICAgcmV0dXJuICJkaXJlY3QiOworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
ZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZToKKyAgICAgICAgcmV0dXJuICJ0b192aWV3
X2NhY2hlIjsKKyAgICB9CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIp
OworICAgIHJldHVybiBOVUxMOworfQorCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyog
UEFTX1NFR1JFR0FURURfREVBTExPQ0FUSU9OX01PREVfSCAqLworCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnkuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTYx
LDggKzYxLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9kYXRhX3Nsb3cocAogICAg
ICAgICAgICAgInBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhIiwKICAgICAgICAgICAgIHBh
c19vYmplY3RfYWxsb2NhdGlvbik7CiAKLSAgICAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9jb25z
dHJ1Y3QoJnJlc3VsdC0+Zmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWQsIDApOwotICAgICAg
ICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2NvbnN0cnVjdCgmcmVzdWx0LT5maXJzdF9lbGlnaWJsZV9h
bmRfdGFibGVkLCAwKTsKKyAgICAgICAgcGFzX3ZlcnNpb25lZF9maWVsZF9jb25zdHJ1Y3QoJnJl
c3VsdC0+Zmlyc3RfZWxpZ2libGUsIDApOwogICAgICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX2Nv
bnN0cnVjdCgmcmVzdWx0LT5sYXN0X2VtcHR5X3BsdXNfb25lLCAwKTsKICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3JzX2NvbnN0cnVjdCgmcmVzdWx0
LT5iaXR2ZWN0b3JzKTsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfdmVj
dG9yX2NvbnN0cnVjdCgmcmVzdWx0LT52aWV3cyk7CkBAIC0xMjYsNiArMTI1LDggQEAgcGFzX3Bh
Z2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkKgogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2dldF9zaGFyaW5nX3BheWxvYWQocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19o
b2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CisgICAgCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2RhdGEq
IGRhdGE7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NoYXJpbmdfcGF5bG9hZF9wdHIq
IHBheWxvYWRfcHRyOwogICAgIHVpbnRwdHJfdCBlbmNvZGVkX3BheWxvYWQ7CkBAIC0xNjMsNiAr
MTY0LDkgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3BheQogICAgICAg
ICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9wYXlsb2FkX2NvbnN0cnVjdChwYXls
b2FkKTsKIAogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NoYXJpbmdfcGF5
bG9hZF9wdHJfc3RvcmUocGF5bG9hZF9wdHIsICh1aW50cHRyX3QpcGF5bG9hZCk7CisKKyAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIkFkZGluZyBkaXJl
Y3RvcnkgcGFydGljaXBhbnQgdG8gcG9vbFxuIik7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9hZGQoCiAgICAgICAgICAgICAgICAgJnBhc19waHlzaWNh
bF9wYWdlX3NoYXJpbmdfcG9vbCwKQEAgLTE4Niw3ICsxOTAsNiBAQCBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0X3NoYXJpbmdfcGF5CiAKIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfbWluaW1pemVfZmlyc3RfZWxpZ2libGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2Vs
aWdpYmxlX2tpbmQga2luZCwKICAgICBzaXplX3QgaW5kZXgpCiB7CiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CkBAIC0xOTcsMTIgKzIwMCwxMSBAQCBQQVNfQVBJIHZv
aWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X21pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkX21pbmltaXplKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9kYXRhX2dldF9maXJzdF9lbGlnaWJsZV9wdHIoZGF0YSwga2luZCksIGluZGV4KTsKKyAgICBw
YXNfdmVyc2lvbmVkX2ZpZWxkX21pbmltaXplKCZkYXRhLT5maXJzdF9lbGlnaWJsZSwgaW5kZXgp
OwogfQogCiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3VwZGF0ZV9maXJz
dF9lbGlnaWJsZV9hZnRlcl9zZWFyY2goCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBk
aXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tp
bmQga2luZCwKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2VsaWdpYmxlLAogICAgIHNp
emVfdCBuZXdfdmFsdWUpCiB7CkBAIC0yMTYsNTAgKzIxOCwyMiBAQCBQQVNfQVBJIHZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3VwCiAgICAgfQogCiAgICAgcGFzX3ZlcnNpb25lZF9maWVs
ZF90cnlfd3JpdGVfd2F0Y2hlZCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2Rh
dGFfZ2V0X2ZpcnN0X2VsaWdpYmxlX3B0cihkYXRhLCBraW5kKSwKKyAgICAgICAgJmRhdGEtPmZp
cnN0X2VsaWdpYmxlLAogICAgICAgICBmaXJzdF9lbGlnaWJsZSwKICAgICAgICAgbmV3X3ZhbHVl
KTsKIH0KIAotYm9vbCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2Vs
aWdpYmxlX2F0X2luZGV4X3dpdGhvdXRfYmlhc2luZ191cGRhdGUoCitib29sIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGluZGV4KQogewog
ICAgIGlmIChQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfU0VUX0JJVChkaXJlY3RvcnksIGluZGV4
LCBlbGlnaWJsZSwgdHJ1ZSkpIHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X21p
bmltaXplX2ZpcnN0X2VsaWdpYmxlKAotICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2luZCwgaW5kZXgp
OworICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfbWluaW1pemVfZmlyc3RfZWxpZ2li
bGUoZGlyZWN0b3J5LCBpbmRleCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlk
X2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKLSAgICBzaXplX3QgaW5kZXgpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5OwotICAgIAotICAgIGlmICghcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRo
b3V0X2JpYXNpbmdfdXBkYXRlKAotICAgICAgICAgICAgZGlyZWN0b3J5LCBpbmRleCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kICE9
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQpCi0gICAgICAgIHJldHVybiB0
cnVlOwotCi0gICAgYmlhc2luZ19kaXJlY3RvcnkgPSAocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkqKWRpcmVjdG9yeTsKLQotICAgIHBhc19iaWFzaW5nX2RpcmVjdG9yeV9pbmRleF9k
aWRfYmVjb21lX2VsaWdpYmxlKCZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBpbmRl
eCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlk
X2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleF93aXRob3V0X2JpYXNpbmdfdXBkYXRlKAotICAgICAg
ICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHZpZXcpKTsKLX0KLQog
Ym9vbCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlKAog
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldykKQEAgLTM1Nyw3ICszMzEsNyBAQCBudW1fZW1wdHlfdmlld3Nfc2hvdWxk
X2NvbnNpZGVyX3ZpZXdfcGFyCiAKICAgICBkYXRhID0gY29uZmlnLT5hcmc7CiAKLSAgICBkYXRh
LT5yZXN1bHQgKz0gX19idWlsdGluX3BvcGNvdW50KHNlZ21lbnQuZW1wdHlfYml0cyk7CisgICAg
ZGF0YS0+cmVzdWx0ICs9IChzaXplX3QpX19idWlsdGluX3BvcGNvdW50KHNlZ21lbnQuZW1wdHlf
Yml0cyk7CiAgICAgCiAgICAgcmV0dXJuIDA7CiB9CkBAIC00MTIsMTEgKzM4Niw3IEBAIHZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2FwcGVuZCgKICAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxl
X2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXdfa2luZDoKLSAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIFBB
U19BU1NFUlQoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeV9raW5kKTsKKyAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPmRpcmVj
dG9yeV9raW5kID09IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2tpbmQpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAg
ICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCA9PSBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfcGFnZV9kaXJlY3Rvcnlfa2luZCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnku
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDMwICs3Niwy
MyBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZlY3RvCiAgICAgLyogRW1w
dHkgbWVhbnMgdGhhdCB0aGUgcGFnZSBoYXMgc3R1ZmYgdGhhdCBjYW4gYmUgZGVjb21taXR0ZWQu
IEhvd2V2ZXIsIHRoaXMgYml0IGhhcyBubyBtZWFuaW5nIGlmCiAgICAgICAgdGhlIGVsaWdpYmxl
IGJpdCBpcyBub3Qgc2V0LiAqLwogICAgIHVuc2lnbmVkIGVtcHR5X2JpdHM7Ci0KLSAgICAvKiBU
YWJsZWQgbWVhbnMgdGhhdCB3ZSBoYXZlIHByZXZpb3VzbHkgZm91bmQgdGhpcyBwYWdlIHRvIGJl
IHRvdGFsbHkgZnJlZSBvZiBvYmplY3RzLCBzbyB3ZSdkIGxpa2UKLSAgICAgICB0byBkZWZlciBh
bGxvY2F0aW5nIGluIHRoZSBwYWdlIHVudGlsIHdlIGFsbG9jYXRlIGluIHBhZ2VzIHRoYXQgYXJl
bid0IHRvdGFsbHkgZnJlZS4gKi8KLSAgICB1bnNpZ25lZCB0YWJsZWRfYml0czsKIH07CiAKIC8q
IEZJWE1FOiBBdHRlbXB0IHRvIGludHJvZHVjZSBjb2RlIHRvIHBhY2sgdGhlIGJpdHZlY3RvciBp
ZiB3ZSBkb24ndCBuZWVkIHRoZSBlbXB0eSBiaXRzLiBDdXJyZW50bHkKICAgIHRoaXMgaXMgbm90
IHVzZWQsIGJ1dCBzaG91bGQgYmUuICovCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3NpbXBsZV9iaXR2ZWN0b3Jfc2VnbWVudCB7CiAgICAgdW5zaWduZWQgZWxpZ2libGVfYml0czsK
LSAgICB1bnNpZ25lZCB0YWJsZWRfYml0czsKIH07CiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURf
RElSRUNUT1JZX0JJVFZFQ1RPUl9TRUdNRU5UX0lOSVRJQUxJWkVSIFwKICAgICAoKHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCl7IFwKICAgICAgICAgLmVsaWdpYmxl
X2JpdHMgPSAwLCBcCi0gICAgICAgIC5lbXB0eV9iaXRzID0gMCwgXAotICAgICAgICAudGFibGVk
X2JpdHMgPSAwIFwKKyAgICAgICAgLmVtcHR5X2JpdHMgPSAwIFwKICAgICB9KQogCiAjZGVmaW5l
IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TSU1QTEVfQklUVkVDVE9SX1NFR01FTlRfSU5JVElB
TElaRVIgXAogICAgICgocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpbXBsZV9iaXR2ZWN0b3Jf
c2VnbWVudCl7IFwKLSAgICAgICAgLmVsaWdpYmxlX2JpdHMgPSAwLCBcCi0gICAgICAgIC50YWJs
ZWRfYml0cyA9IDAgXAorICAgICAgICAuZWxpZ2libGVfYml0cyA9IDAgXAogICAgIH0pCiAKIFBB
U19ERUNMQVJFX1NFR01FTlRFRF9WRUNUT1IocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ21l
bnRlZF9iaXR2ZWN0b3JzLApAQCAtMTI3LDIyICsxMjAsMTggQEAgc3RydWN0IHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSB7CiAKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNf
RUxJR0lCTEVfU0hJRlQgICAgICAgMHUKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZ
X0JJVFNfRU1QVFlfU0hJRlQgICAgICAgICAgMXUKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElS
RUNUT1JZX0JJVFNfVEFCTEVEX1NISUZUICAgICAgICAgMnUKIAotI2RlZmluZSBQQVNfU0VHUkVH
QVRFRF9ESVJFQ1RPUllfQklUU19NSVNDX1NISUZUICAgICAgICAgICAzdQotI2RlZmluZSBQQVNf
U0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19PVEhFUl9NSVNDX1NISUZUICAgICA0dQorI2RlZmlu
ZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19NSVNDX1NISUZUICAgICAgICAgICAydQor
I2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19PVEhFUl9NSVNDX1NISUZUICAg
ICAzdQogCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VMSUdJQkxFX01B
U0sgXAogICAgICgxdSA8PCBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9T
SElGVCkKICNkZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRU1QVFlfTUFTSyBc
CiAgICAgKDF1IDw8IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VNUFRZX1NISUZUKQot
I2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19UQUJMRURfTUFTSyBcCi0gICAg
KDF1IDw8IFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX1RBQkxFRF9TSElGVCkKIAogI2Rl
ZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19WSUVXX01BU0sgXAogICAgIChQQVNf
U0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9NQVNLIHwgXAotICAgICBQQVNfU0VH
UkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTVBUWV9NQVNLIHwgXAotICAgICBQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfQklUU19UQUJMRURfTUFTSykKKyAgICAgUEFTX1NFR1JFR0FURURfRElSRUNU
T1JZX0JJVFNfRU1QVFlfTUFTSykKIAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllf
QklUU19NSVNDX01BU0sgXAogICAgICgxdSA8PCBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklU
U19NSVNDX1NISUZUKQpAQCAtMTU0LDE2ICsxNDMsOSBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5IHsKICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9N
QVNLCiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX2VtcHR5X01BU0sgXAog
ICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX0VNUFRZX01BU0sKLSNkZWZpbmUgUEFT
X1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfdGFibGVkX01BU0sgXAotICAgIFBBU19TRUdSRUdB
VEVEX0RJUkVDVE9SWV9CSVRTX1RBQkxFRF9NQVNLCi0KLSNkZWZpbmUgUEFTX1NFR1JFR0FURURf
RElSRUNUT1JZX0JJVFNfZWxpZ2libGVfQVZBSUxBQkxFX0lOX0JJQVNJTkcgICAgIHRydWUKLSNk
ZWZpbmUgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfZW1wdHlfQVZBSUxBQkxFX0lOX0JJ
QVNJTkcgIGZhbHNlCi0jZGVmaW5lIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRTX3RhYmxl
ZF9BVkFJTEFCTEVfSU5fQklBU0lORyAgICAgICB0cnVlCiAKIHN0cnVjdCBQQVNfQUxJR05FRChz
aXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRh
IHsKLSAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2VsaWdpYmxlX2J1dF9ub3RfdGFibGVk
OwotICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZmlyc3RfZWxpZ2libGVfYW5kX3RhYmxlZDsKKyAg
ICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2VsaWdpYmxlOwogICAgIHBhc192ZXJzaW9uZWRf
ZmllbGQgbGFzdF9lbXB0eV9wbHVzX29uZTsgLyogWmVybyBtZWFucyB0aGVyZSBhcmVuJ3QgYW55
LiAqLwogCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NlZ21lbnRlZF9iaXR2ZWN0b3Jz
IGJpdHZlY3RvcnM7CkBAIC0xNzEsNyArMTUzLDcgQEAgc3RydWN0IFBBU19BTElHTkVEKHNpemVv
ZihwYXNfdmVyc2lvbmVkXwogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaGFyaW5nX3Bh
eWxvYWRfcHRyIHNoYXJpbmdfcGF5bG9hZDsKIH07CiAKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURf
RElSRUNUT1JZX1NIQVJJTkdfUEFZTE9BRF9JU19JTklUSUFMSVpFRF9CSVQgMQorI2RlZmluZSBQ
QVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfU0hBUklOR19QQVlMT0FEX0lTX0lOSVRJQUxJWkVEX0JJ
VCAxbHUKIAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfSU5JVElBTElaRVIocGFn
ZV9jb25maWdfa2luZF9hcmd1bWVudCwgc2hhcmluZ19tb2RlX2FyZ3VtZW50LCBkaXJlY3Rvcnlf
a2luZF9hcmd1bWVudCkgXAogICAgICgocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KXsgXApAQCAt
MjYxLDcgKzI0Myw2IEBAIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zcG9vZl9pbmxpbmVfc2UK
ICAgICAKICAgICBzZWdtZW50LmVsaWdpYmxlX2JpdHMgPSAoYml0cyA+PiBQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfQklUU19FTElHSUJMRV9TSElGVCkgJiAxdTsKICAgICBzZWdtZW50LmVtcHR5
X2JpdHMgPSAoYml0cyA+PiBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU19FTVBUWV9TSElG
VCkgJiAxdTsKLSAgICBzZWdtZW50LnRhYmxlZF9iaXRzID0gKGJpdHMgPj4gUEFTX1NFR1JFR0FU
RURfRElSRUNUT1JZX0JJVFNfVEFCTEVEX1NISUZUKSAmIDF1OwogCiAgICAgcmV0dXJuIHNlZ21l
bnQ7CiB9CkBAIC0zMDUsMTAgKzI4Niw2IEBAIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zcG9v
Zl9pbmxpbmVfc2UKICAgICAgICAgX3ZhbHVlID0gKHZhbHVlKTsgXAogICAgICAgICBcCiAgICAg
ICAgIFBBU19URVNUSU5HX0FTU0VSVChfaW5kZXggPCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
c2l6ZShkaXJlY3RvcnkpKTsgXAotICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIFwKLSAgICAg
ICAgICAgICFfdmFsdWUgXAotICAgICAgICAgICAgfHwgX2RpcmVjdG9yeS0+ZGlyZWN0b3J5X2tp
bmQgIT0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCBcCi0gICAgICAgICAg
ICB8fCBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUU18jI2JpdF9uYW1lIyNfQVZBSUxBQkxF
X0lOX0JJQVNJTkcpOyBcCiAgICAgICAgIFwKICAgICAgICAgaWYgKCFfaW5kZXgpIHsgXAogICAg
ICAgICAgICAgX3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXRzX3NldF9ieV9t
YXNrKCBcCkBAIC00MDcsMzcgKzM4NCwxNSBAQCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc3Rh
cnRfc2hhcmluZ19pCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9zaGFyaW5nX3Bh
eWxvYWQoZGlyZWN0b3J5LCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBwYXNfdmVyc2lvbmVkX2ZpZWxkKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZGF0YV9nZXRf
Zmlyc3RfZWxpZ2libGVfcHRyKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhKiBk
YXRhLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtp
bmQpCi17Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfZmlyc3RfZWxpZ2libGVfYnV0X25vdF90YWJsZWRfa2luZDoKLSAgICAgICAgcmV0dXJu
ICZkYXRhLT5maXJzdF9lbGlnaWJsZV9idXRfbm90X3RhYmxlZDsKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9hbmRfdGFibGVkX2tpbmQ6Ci0gICAgICAg
IHJldHVybiAmZGF0YS0+Zmlyc3RfZWxpZ2libGVfYW5kX3RhYmxlZDsKLSAgICB9Ci0gICAgUEFT
X0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBOVUxMOwotfQot
CiBQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X21pbmltaXplX2ZpcnN0X2Vs
aWdpYmxlKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9raW5kIGtpbmQsCiAgICAgc2l6
ZV90IGluZGV4KTsKIAogUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV91cGRh
dGVfZmlyc3RfZWxpZ2libGVfYWZ0ZXJfc2VhcmNoKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGln
aWJsZV9raW5kIGtpbmQsCiAgICAgcGFzX3ZlcnNpb25lZF9maWVsZCBmaXJzdF9lbGlnaWJsZSwK
ICAgICBzaXplX3QgbmV3X3ZhbHVlKTsKIAotUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXhfd2l0aG91dF9iaWFzaW5n
X3VwZGF0ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBz
aXplX3QgaW5kZXgpOwotUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3
X2RpZF9iZWNvbWVfZWxpZ2libGVfd2l0aG91dF9iaWFzaW5nX3VwZGF0ZSgKLSAgICBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcpOwogUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNv
bWVfZWxpZ2libGVfYXRfaW5kZXgoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCiAgICAgc2l6ZV90IGluZGV4KTsKQEAgLTQ2MywxMiArNDE4LDYgQEAgc3RhdGljIGlu
bGluZSBib29sIHBhc19zZWdyZWdhdGVkX2RpcmVjdAogICAgIHJldHVybiBQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfR0VUX0JJVChkaXJlY3RvcnksIGluZGV4LCBlbXB0eSk7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfdGFibGVkKAotICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBzaXplX3QgaW5kZXgpCi17Ci0gICAg
cmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgs
IHRhYmxlZCk7Ci19Ci0KIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNf
Y29tbWl0dGVkKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBzaXpl
X3QgaW5kZXgpOwogCkBAIC00ODMsMzAgKzQzMiwxNSBAQCBQQVNfQVBJIHNpemVfdCBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfCiAKIHN0YXRpYyBpbmxpbmUgcGFzX3ZlcnNpb25lZF9maWVsZCBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlX2ltcGwoCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2luZCwKICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxk
ICgqcmVhZCkocGFzX3ZlcnNpb25lZF9maWVsZCogZmllbGQpKQogewogICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHVuc2lnbmVkIGV4cGVjdGVkOwogCiAgICAg
ZGF0YSA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3Rvcnkt
PmRhdGEpOwogICAgIGlmIChkYXRhKQotICAgICAgICByZXR1cm4gcmVhZChwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfZGF0YV9nZXRfZmlyc3RfZWxpZ2libGVfcHRyKGRhdGEsIGtpbmQpKTsKKyAg
ICAgICAgcmV0dXJuIHJlYWQoJmRhdGEtPmZpcnN0X2VsaWdpYmxlKTsKIAotICAgIHN3aXRjaCAo
a2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxl
X2J1dF9ub3RfdGFibGVkX2tpbmQ6Ci0gICAgICAgIGV4cGVjdGVkID0gUEFTX1NFR1JFR0FURURf
RElSRUNUT1JZX0JJVFNfRUxJR0lCTEVfTUFTSzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfYW5kX3RhYmxlZF9raW5kOgot
ICAgICAgICBleHBlY3RlZCA9Ci0gICAgICAgICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllf
QklUU19FTElHSUJMRV9NQVNLIHwKLSAgICAgICAgICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9S
WV9CSVRTX1RBQkxFRF9NQVNLOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgCi0gICAgaWYg
KChkaXJlY3RvcnktPmJpdHMgJiAoUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRUxJR0lC
TEVfTUFTSyB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFTX1NFR1JFR0FURURfRElS
RUNUT1JZX0JJVFNfVEFCTEVEX01BU0spKQotICAgICAgICA9PSBleHBlY3RlZCkKKyAgICBpZiAo
ZGlyZWN0b3J5LT5iaXRzICYgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfRUxJR0lCTEVf
TUFTSykKICAgICAgICAgcmV0dXJuIHBhc192ZXJzaW9uZWRfZmllbGRfY3JlYXRlX3dpdGhfaW52
YWxpZF92ZXJzaW9uKDApOwogCiAgICAgcmV0dXJuICFwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF92aWV3X2lzX251bGwoJmRpcmVjdG9yeS0+Zmlyc3RfdmlldykKQEAgLTUxNSwyNyArNDQ5
LDI0IEBAIHN0YXRpYyBpbmxpbmUgcGFzX3ZlcnNpb25lZF9maWVsZCBwYXNfc2UKIH0KIAogc3Rh
dGljIGlubGluZSBwYXNfdmVyc2lvbmVkX2ZpZWxkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9n
ZXRfZmlyc3RfZWxpZ2libGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2tpbmQga2lu
ZCkKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKIHsKICAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9lbGlnaWJsZV9pbXBsKAotICAg
ICAgICBkaXJlY3RvcnksIGtpbmQsIHBhc192ZXJzaW9uZWRfZmllbGRfcmVhZCk7CisgICAgICAg
IGRpcmVjdG9yeSwgcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkKTsKIH0KIAogc3RhdGljIGlubGlu
ZSBwYXNfdmVyc2lvbmVkX2ZpZWxkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3Rf
ZWxpZ2libGVfdG9ybigKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwK
LSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZCBraW5kKQor
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlX2ltcGwoCi0gICAgICAg
IGRpcmVjdG9yeSwga2luZCwgcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkX3Rvcm4pOworICAgICAg
ICBkaXJlY3RvcnksIHBhc192ZXJzaW9uZWRfZmllbGRfcmVhZF90b3JuKTsKIH0KIAogc3RhdGlj
IGlubGluZSBwYXNfdmVyc2lvbmVkX2ZpZWxkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV93YXRj
aF9maXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxpZ2libGVfa2luZCBraW5k
KQorICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHJldHVy
biBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2ZpcnN0X2VsaWdpYmxlX2ltcGwoCi0gICAg
ICAgIGRpcmVjdG9yeSwga2luZCwgcGFzX3ZlcnNpb25lZF9maWVsZF9yZWFkX3RvX3dhdGNoKTsK
KyAgICAgICAgZGlyZWN0b3J5LCBwYXNfdmVyc2lvbmVkX2ZpZWxkX3JlYWRfdG9fd2F0Y2gpOwog
fQogCiBzdGF0aWMgaW5saW5lIHBhc192ZXJzaW9uZWRfZmllbGQgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2dldF9sYXN0X2VtcHR5X3BsdXNfb25lX2ltcGwoCkBAIC02MTMsOCArNTQ0LDcgQEAg
UEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9hcAogCiAvKiBUaGlzIGhhcyBh
IG1heGltYWxseSBpbmNsdXNpb24gd2F5IG9mIHRyZWF0aW5nIG1lbW9yeSB0aGF0IG11bHRpcGxl
IHZpZXdzIG1heSBoYXZlIGRpYnMgb24uIEZvcgogICAgZXhhbXBsZSwgc2hhcmVkIHBhZ2UgZGly
ZWN0b3JpZXMgYW5kIHBhcnRpYWwgdmlld3MgaW4gc2l6ZSBkaXJlY3RvcmllcyBtYXkgcmVwb3J0
IG9uIHRoZSBzYW1lCi0gICBieXRlcyBvZiBtZW1vcnkuIEV4Y2x1c2l2ZSB2aWV3cyBpbiBhIGds
b2JhbCBzaXplIGRpcmVjdG9yeSBtYXkgcmVwb3J0IG9uIHRoZSBzYW1lIG1lbW9yeSBhcwotICAg
Ymlhc2luZyB2aWV3cyBpbiBiaWFzaW5nIGRpcmVjdG9yaWVzLiAqLworICAgYnl0ZXMgb2YgbWVt
b3J5LiAqLwogUEFTX0FQSSBwYXNfaGVhcF9zdW1tYXJ5CiBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfY29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsK
IApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5o
CShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjUsMTAgKzEyNSw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9kaXJl
Y3QKICAgICAgICAgX3ZhbHVlID0gKHZhbHVlKTsgXAogICAgICAgICBcCiAgICAgICAgIFBBU19U
RVNUSU5HX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2VfaXNf
bnVsbChfcmVmZXJlbmNlKSk7IFwKLSAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCBcCi0gICAg
ICAgICAgICAhX3ZhbHVlIFwKLSAgICAgICAgICAgIHx8IF9kaXJlY3RvcnktPmRpcmVjdG9yeV9r
aW5kICE9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X2tpbmQgXAotICAgICAgICAg
ICAgfHwgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVFNfIyNiaXRfbmFtZSMjX0FWQUlMQUJM
RV9JTl9CSUFTSU5HKTsgXAogICAgICAgICBcCiAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfYml0X3JlZmVyZW5jZV9pc19pbmxpbmUoX3JlZmVyZW5jZSkpIHsgXAogICAgICAg
ICAgICAgZm9yICg7OykgeyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxp
bmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEwMiw5ICsxMDIsOSBAQCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9pdGVyYXRl
CiAgICAgICAgICAgICBwYXNfbG9nKCIlenU6IG5vdyBjb21iaW5lZF93b3JkID0gJXVcbiIsIHdv
cmRfaW5kZXgsIGNvbWJpbmVkX3dvcmQpOwogICAgIAogICAgICAgICBpZiAoaXNfZm9yd2FyZCkK
LSAgICAgICAgICAgIGluZGV4X29mZnNldCA9IF9fYnVpbHRpbl9jdHooY29tYmluZWRfd29yZCk7
CisgICAgICAgICAgICBpbmRleF9vZmZzZXQgPSAoc2l6ZV90KV9fYnVpbHRpbl9jdHooY29tYmlu
ZWRfd29yZCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGluZGV4X29mZnNldCA9IDMxIC0g
X19idWlsdGluX2Nseihjb21iaW5lZF93b3JkKTsKKyAgICAgICAgICAgIGluZGV4X29mZnNldCA9
IDMxbHUgLSAoc2l6ZV90KV9fYnVpbHRpbl9jbHooY29tYmluZWRfd29yZCk7CiAgICAgICAgIGlu
ZGV4ID0gYmFzZV9pbmRleCArIGluZGV4X29mZnNldDsKIAogICAgICAgICBtYXNrID0gUEFTX0JJ
VFZFQ1RPUl9CSVRfTUFTSyhpbmRleF9vZmZzZXQpOwpAQCAtMjQyLDggKzI0Miw3IEBAIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2JhY2t3YXIKIAogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIGJvb2wKIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2ZvcndhcmRfdG9f
dGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0
ZV9jb25maWcqIGNvbmZpZywKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZmlyc3RfZWxp
Z2libGVfa2luZCBmaXJzdF9lbGlnaWJsZV9raW5kKQorICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBzaW1wbGVfZWxpZ2liaWxpdHkg
PSBmYWxzZTsKQEAgLTI1OSw4ICsyNTgsNyBAQCBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRl
cmF0ZV9mb3J3YXJkCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygi
cHJldmlvdXNfc2l6ZSA9ICV6dVxuIiwgcHJldmlvdXNfc2l6ZSk7CiAKLSAgICAgICAgZmlyc3Rf
ZWxpZ2libGUgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfd2F0Y2hfZmlyc3RfZWxpZ2libGUo
Ci0gICAgICAgICAgICBjb25maWctPmRpcmVjdG9yeSwgZmlyc3RfZWxpZ2libGVfa2luZCk7Cisg
ICAgICAgIGZpcnN0X2VsaWdpYmxlID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3dhdGNoX2Zp
cnN0X2VsaWdpYmxlKGNvbmZpZy0+ZGlyZWN0b3J5KTsKIAogICAgICAgICBpZiAoc2ltcGxlX2Vs
aWdpYmlsaXR5KQogICAgICAgICAgICAgY29uZmlnLT5pbmRleCA9IDA7CkBAIC0zMDUsNyArMzAz
LDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZAogICAgICAgICAK
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3VwZGF0ZV9maXJzdF9lbGlnaWJsZV9h
ZnRlcl9zZWFyY2goCiAgICAgICAgICAgICBjb25maWctPmRpcmVjdG9yeSwKLSAgICAgICAgICAg
IGZpcnN0X2VsaWdpYmxlX2tpbmQsCiAgICAgICAgICAgICBmaXJzdF9lbGlnaWJsZSwKICAgICAg
ICAgICAgIGNvbmZpZy0+Zmlyc3RfY29uc2lkZXJlZCk7CiAgICAgICAgIApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTM0LDE2ICszNCwxMyBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAKICAg
ICAgICAtIGRpcmVjdG9yeQogICAgICAgICAgICAtIHNpemUgZGlyZWN0b3J5Ci0gICAgICAgICAg
ICAgICAtIGdsb2JhbCBzaXplIGRpcmVjdG9yeQotICAgICAgICAgICAgICAgLSBiaWFzaW5nIGRp
cmVjdG9yeQogICAgICAgICAgICAtIHNoYXJlZCBwYWdlIGRpcmVjdG9yeQogICAgCiAgICBPbmx5
IHRoZSB0eXBlcyBhdCB0aGUgbGVhdmVzIGFyZSBpbnN0YW50aWFibGUuIFRoZSBwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfa2luZCBlbnVtIGlzIGZvcgogICAgZGVzY3JpYmluZyB0aGUgaW5zdGFu
dGlhYmxlIGxlYXZlcy4gKi8KIAogZW51bSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfa2luZCB7
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2tpbmQsCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlfa2luZCwKKyAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9raW5kLAogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeV9raW5kCiB9OwogCkBAIC01MywxMCArNTAsOCBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNo
YXIqIHBhc19zZWdyZWdhdGVkCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2tpbmQga2lu
ZCkKIHsKICAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9raW5kOgotICAgICAgICByZXR1cm4gInNlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5IjsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5X2tpbmQ6Ci0gICAgICAgIHJldHVybiAic2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSI7
CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9raW5kOgorICAgICAgICBy
ZXR1cm4gInNlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkiOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2tpbmQ6CiAgICAgICAgIHJldHVybiAic2VncmVnYXRl
ZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkiOwogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwkod29ya2luZyBjb3B5
KQpAQCAtMzYsMTAgKzM2LDEwIEBACiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgi
CiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX3BhZ2VfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Lmgi
CiAKIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKICAgICBzaXplX3QgaW5kZXgpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOwpAQCAtNTYsNjcgKzU2LDE2IEBAIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
KiBwYXNfc2VncmUKIAogICAgIC8qIFdlIGFsbG9jYXRlIHRoaXMgbGF6aWx5LiAqLwogICAgIHJl
c3VsdC0+cGFnZV9ib3VuZGFyeSA9IE5VTEw7Ci0gICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRpcmVjdG9yeSwgZGlyZWN0
b3J5KTsKKyAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9y
ZSgmcmVzdWx0LT5kaXJlY3RvcnksIGRpcmVjdG9yeSk7CiAgICAgcmVzdWx0LT5pbmRleCA9ICh1
bnNpZ25lZClpbmRleDsKICAgICBQQVNfQVNTRVJUKHJlc3VsdC0+aW5kZXggPT0gaW5kZXgpOwot
ICAgIHJlc3VsdC0+b3duZXJzaGlwX2tpbmQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19ub3Rfb3duZWQ7CisgICAgcmVzdWx0LT5pc19vd25lZCA9IGZhbHNlOwogICAgIHBhc19sb2Nr
X2NvbnN0cnVjdCgmcmVzdWx0LT5jb21taXRfbG9jayk7CiAgICAgcGFzX2xvY2tfY29uc3RydWN0
KCZyZXN1bHQtPm93bmVyc2hpcF9sb2NrKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfc2hvdWxkX3RhYmxlKAotICAgIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnKiBwYWdlX2NvbmZpZykKLXsKLSAgICBpZiAoIXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZpZXctPm93bmVyc2hpcF9raW5kKSkKLSAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gIXBhc19zZWdyZWdhdGVkX3BhZ2VfZm9y
X2JvdW5kYXJ5KHZpZXctPnBhZ2VfYm91bmRhcnksICpwYWdlX2NvbmZpZyktPm51bV9ub25fZW1w
dHlfd29yZHM7Ci19Ci0KLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX2lzaF92aWV3X25v
dGVfZWxpZ2liaWxpdHlfaW1wbCgKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVk
X3ZpZXcgZWxpZ2libGVfb3duaW5nX3ZpZXcsCi0gICAgdW5zaWduZWQgdmlld19pbmRleCkKLXsK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0KLSAgICBQQVNfVEVTVElO
R19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9raW5kKGVsaWdpYmxlX293
bmluZ192aWV3KSk7Ci0gICAgCi0gICAgaWYgKHZlcmJvc2UpCi0gICAgICAgIHBhc19sb2coIk5v
dGluZyBlbGlnaWJpbGl0eSBpbiBleGNsdXNpdmUgJXAvJXAuXG4iLCBlbGlnaWJsZV9vd25pbmdf
dmlldywgcGFnZSk7Ci0gICAgICAgIAotICAgIGlmIChwYWdlLT5sb2NrX3B0cikKLSAgICAgICAg
cGFzX2xvY2tfdGVzdGluZ19hc3NlcnRfaGVsZChwYWdlLT5sb2NrX3B0cik7Ci0gICAgCi0gICAg
aWYgKHBhZ2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbikgewotICAgICAgICBpZiAodmVyYm9z
ZSkKLSAgICAgICAgICAgIHBhc19sb2coIkRlZmVycmluZyBlbGlnaWJpbGl0eSBub3RpZmljYXRp
b24uXG4iKTsKLSAgICAgICAgcGFnZS0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19iZWVu
X2RlZmVycmVkID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAg
ICAgICAgICAgIHBhc19sb2coIlRlbGxpbmcgdGhlIGRpcmVjdG9yeSB0aGF0IHdlIGFyZSBlbGln
aWJsZS5cbiIpOwotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVj
b21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgdmlld19pbmRleCk7Ci0gICAgfQotICAg
IAotICAgIC8qIENsZWFyIHRoZSBpbmVsaWdpYmxlIGJpdCBmcm9tIHRoZSBvd25lciBmaWVsZC4g
Ki8KLSAgICBwYWdlLT5vd25lciA9IGVsaWdpYmxlX293bmluZ192aWV3OwotfQotCi12b2lkIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkoCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSog
cGFnZSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfbm90ZV9lbGln
aWJpbGl0eV9pbXBsKAotICAgICAgICBwYWdlLAotICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVj
dG9yeSktPmJhc2UsCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3Zp
ZXdfbm9uX251bGwodmlldyksCi0gICAgICAgIHZpZXctPmluZGV4KTsKLX0KLQogdm9pZCBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VtcHRpbmVzcygKICAgICBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlldyogdmlldywKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
KQpAQCAtMTMwLDE2ICs3OSwxNSBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X25vdGVfCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkaXJlY3RvcnkgPSAmcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
JnZpZXctPmRpcmVjdG9yeSktPmJhc2U7CisgICAgZGlyZWN0b3J5ID0gJnBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9y
eSktPmJhc2U7CiAgICAgdmlld19pbmRleCA9IHZpZXctPmluZGV4OwogICAgIAogICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoZGlyZWN0
b3J5LCB2aWV3X2luZGV4KTsKIH0KIAotcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcpCitzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRl
X3N1bW1hcnlfaW1wbChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldykKIHsKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5Owor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsKICAgICBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyogcGFnZV9jb25maWdfcHRyOwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnIHBhZ2VfY29uZmlnOwpAQCAtMTUwLDEyICs5OCwxMiBAQCBwYXNfaGVhcF9zdW1tYXJ5IHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2CiAgICAgc2l6ZV90IG9mZnNldDsKICAgICBzaXplX3QgYmVn
aW47CiAgICAgc2l6ZV90IGVuZDsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRh
KiBkYXRhOwogCi0gICAgc2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KTsK
KyAgICBzaXplX2RpcmVjdG9yeSA9IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSk7CiAKLSAgICBpZiAoIXBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZpZXctPm93
bmVyc2hpcF9raW5kKSkgewotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeV9mb3JfdW5vd25lZF9leGNsdXNpdmUoCisgICAg
aWYgKCF2aWV3LT5pc19vd25lZCkgeworICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKICAgICAg
ICAgICAgIHNpemVfZGlyZWN0b3J5KTsKICAgICB9CiAKQEAgLTE2NSw3ICsxMTMsNyBAQCBwYXNf
aGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2CiAgICAgCiAgICAgcmVzdWx0ID0g
cGFzX2hlYXBfc3VtbWFyeV9jcmVhdGVfZW1wdHkoKTsKIAotICAgIGRhdGEgPSBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmc2l6ZV9kaXJlY3Rvcnkt
PmRhdGEpOworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0
cl9sb2FkKCZzaXplX2RpcmVjdG9yeS0+ZGF0YSk7CiAgICAgYm91bmRhcnkgPSB2aWV3LT5wYWdl
X2JvdW5kYXJ5OwogICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShi
b3VuZGFyeSwgcGFnZV9jb25maWcpOwogCkBAIC0yMDksNyArMTU3LDcgQEAgcGFzX2hlYXBfc3Vt
bWFyeSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdgogICAgIHBhc19oZWFwX3N1bW1hcnkgcmVzdWx0
OwogICAgIAogICAgIHBhc19sb2NrX2xvY2soJnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICBy
ZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfaXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5
X2ltcGwodmlldyk7CisgICAgcmVzdWx0ID0gY29tcHV0ZV9zdW1tYXJ5X2ltcGwodmlldyk7CiAg
ICAgcGFzX2xvY2tfdW5sb2NrKCZ2aWV3LT5vd25lcnNoaXBfbG9jayk7CiAKICAgICByZXR1cm4g
cmVzdWx0OwpAQCAtMjIwLDEzICsxNjgsMTMgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19pbnN0YQogewogICAgIHZvaWQqIGJvdW5kYXJ5OwogICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2UqIHBhZ2U7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsK
ICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKICAgICBwYXNfcGFn
ZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50czsKICAgICBwYXNfcGFnZV9ncmFudWxlX3Vz
ZV9jb3VudCogZnVsbF91c2VfY291bnRzOwogICAgIHNpemVfdCBudW1fZ3JhbnVsZXM7CiAKLSAg
ICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KTsKKyAgICBkaXJlY3RvcnkgPSBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2
aWV3LT5kaXJlY3RvcnkpOwogICAgIHBhZ2VfY29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7
CiAgICAgYm91bmRhcnkgPSB2aWV3LT5wYWdlX2JvdW5kYXJ5OwogICAgIHBhZ2UgPSBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShib3VuZGFyeSwgcGFnZV9jb25maWcpOwpAQCAtMjM3
LDcgKzE4NSw3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5zdGEKICAg
ICBudW1fZ3JhbnVsZXMgPSAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgLyBwYWdlX2NvbmZp
Zy5iYXNlLmdyYW51bGVfc2l6ZSk7CiAKICAgICBmdWxsX3VzZV9jb3VudHMgPSBwYXNfY29tcGFj
dF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHJfbG9hZF9ub25fbnVsbCgKLSAgICAg
ICAgJnBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0
YShkaXJlY3RvcnkpLT5mdWxsX3VzZV9jb3VudHMpOworICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoZGlyZWN0b3J5KS0+ZnVsbF91c2VfY291
bnRzKTsKICAgICAKICAgICBtZW1jcHkodXNlX2NvdW50cywKICAgICAgICAgICAgZnVsbF91c2Vf
Y291bnRzLApAQCAtMjQ3LDE0ICsxOTUsMTQgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19pbnN0YQogYm9vbCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pc19lbGln
aWJsZShwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldykKIHsKICAgICByZXR1cm4g
UEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICZwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+
ZGlyZWN0b3J5KS0+YmFzZSwKKyAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCiAgICAg
ICAgIHZpZXctPmluZGV4LCBlbGlnaWJsZSk7CiB9CiAKIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfaXNfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcp
CiB7CiAgICAgcmV0dXJuIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9HRVRfQklUKAotICAgICAg
ICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSktPmJhc2UsCisgICAgICAgICZwYXNfY29tcGFjdF9z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3Rv
cnkpLT5iYXNlLAogICAgICAgICB2aWV3LT5pbmRleCwgZW1wdHkpOwogfQogCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI2LDI0ICsyNiwyNiBAQAogI2lmbmRlZiBQQVNfU0VHUkVHQVRF
RF9FWENMVVNJVkVfVklFV19ICiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX0VYQ0xVU0lWRV9WSUVX
X0gKIAotI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2xvY2suaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZC5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX2RlYWxsb2NhdGlvbl9tb2RlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5o
IgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlldzsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlOworc3RydWN0IHBhc190aHJlYWRf
bG9jYWxfY2FjaGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dyBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldzsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKK3R5cGVkZWYgc3RydWN0IHBhc190aHJl
YWRfbG9jYWxfY2FjaGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZTsKIAogc3RydWN0IHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHsKICAgICB2b2lkKiBwYWdlX2JvdW5kYXJ5OwogICAgIAot
ICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciBkaXJl
Y3Rvcnk7CisgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIgZGly
ZWN0b3J5OwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tp
bmQgb3duZXJzaGlwX2tpbmQ7CisgICAgYm9vbCBpc19vd25lZDsKIAogICAgIHVuc2lnbmVkIGlu
ZGV4OwogCkBAIC05MSwyOSArOTMsMTMgQEAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
YXNfaW5lbGlnaQogCiBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KgogcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY3JlYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGluZGV4KTsKIAotUEFTX0FQSSBib29s
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3Nob3VsZF90YWJsZSgKLSAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZyogcGFnZV9jb25maWcpOwotCi1QQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX2lzaF92aWV3X25vdGVfZWxpZ2liaWxpdHlfaW1wbCgKLSAgICBwYXNfc2VncmVnYXRlZF9w
YWdlKiBwYWdlLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXcgZWxpZ2libGVfb3duaW5nX3ZpZXcsCi0gICAgdW5zaWduZWQg
dmlld19pbmRleCk7Ci0KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19ub3RlX2VsaWdpYmlsaXR5KAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2
aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpOwotCiBQQVNfQVBJIHZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFn
ZSk7CiAKLVBBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
aXNoX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5X2ltcGwoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXcqIHZpZXcpOwogUEFTX0FQSSBwYXNfaGVhcF9zdW1tYXJ5IHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X2NvbXB1dGVfc3VtbWFyeSgKICAgICBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldyogdmlldyk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsMTcgKzI2LDIxIEBACiAjaWZuZGVmIFBBU19TRUdSRUdBVEVE
X0VYQ0xVU0lWRV9WSUVXX0lOTElORVNfSAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9FWENMVVNJ
VkVfVklFV19JTkxJTkVTX0gKIAorI2luY2x1ZGUgInBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19o
ZWFwX2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNoZS5oIgogI2luY2x1
ZGUgInBhc19sb2cuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9k
ZS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgiCi0jaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlLmgiCisjaW5jbHVk
ZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV9pc2hf
dmlld19kaWRfc3RhcnRfYWxsb2NhdGluZygKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2RpZF9zdGFydF9hbGxvY2F0aW5nKAogICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3LAogICAgIHBhc19zZWdyZWdhdGVk
X3ZpZXcgb3duZXJfdmlldywgLyogQ291bGQgYmUgdGhlIGJpYXNpbmcgdmlldywgb3IgdGhlIGV4
Y2x1c2l2ZSB2aWV3LiAqLwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZ2xvYmFsX2RpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
Z2xvYmFsX2RpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAgIHBh
c19sb2NrKiogaGVsZF9sb2NrLAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2Vf
Y29uZmlnKQpAQCAtNTQsNyArNTgsOCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBw
YXNfc2VncmVnCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkRpZCBzdGFydCBh
bGxvY2F0aW5nIGluICVwLlxuIiwgcGFnZSk7CiAKLSAgICBQQVNfVEVTVElOR19BU1NFUlQoIXBh
Z2UtPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbik7CisgICAgLyogTk9URTogV2UgY2Fubm90IGFz
c2VydCB0aGF0IHRoZSBwYWdlIGlzIG5vdCBpbiB1c2UgZm9yIGFsbG9jYXRpb24gc2luY2Ugd2Ug
bWF5IGJlIGNvbWluZyBoZXJlCisgICAgICAgdmlhIHRoZSB2aWV3IGNhY2hlLCB3aGljaCBhbHdh
eXMgc2F5cyB0aGF0IHBhZ2VzIGFyZSBpbiB1c2UgZm9yIGFsbG9jYXRpb24uICovCiAKICAgICAv
KiBXZSB3YW50IHRvIGRlZmVyIG5vdGlmeWluZyBhbnlvbmUgYWJvdXQgYW55IG5ld2x5IGZyZWVk
IG9iamVjdHMuIERvIHRoaXMgaGVyZSBzaW5jZQogICAgICAgIHRoZSBjb2RlIGJlbG93IG1heSBy
ZWxlYXNlIChhbmQgdGhlbiByZWFjcXVpcmUpIHRoZSBwYWdlIGxvY2suIFRoYXQgY291bGQgY2F1
c2Ugc29tZQpAQCAtNjgsNiArNzMsMTQ2IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lk
IHBhc19zZWdyZWcKICAgICBwYWdlLT5vd25lciA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfaW5l
bGlnaWJsZShvd25lcl92aWV3KTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfZGlkX3N0b3BfYWxsb2NhdGluZygKKyAgICBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldywKKyAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2Us
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcsCisgICAgYm9vbCBz
aG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5KQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKKworICAgIHVuc2lnbmVkIHZpZXdfaW5kZXg7CisgICAgYm9vbCBzaG91bGRf
bm90aWZ5X2VtcHRpbmVzczsKKworICAgIHZpZXdfaW5kZXggPSB2aWV3LT5pbmRleDsKKyAgICAK
KyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdGlvbiBp
biBleGNsdXNpdmUgJXAvJXAuXG4iLCB2aWV3LCBwYWdlKTsKKyAgICAKKyAgICBpZiAoIXBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKQorICAgICAgICBw
YXNfbG9ja190ZXN0aW5nX2Fzc2VydF9oZWxkKHBhZ2UtPmxvY2tfcHRyKTsKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQocGFnZS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKTsKKyAgICAKKyAgICBz
aG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zv
cl9kZWNvbW1pdChwYWdlLCBwYWdlX2NvbmZpZyk7CisgICAgCisgICAgcGFnZS0+aXNfaW5fdXNl
X2Zvcl9hbGxvY2F0aW9uID0gZmFsc2U7CisgICAgCisgICAgaWYgKHNob3VsZF9ub3RpZnlfZWxp
Z2liaWxpdHkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJU
ZWxsaW5nIGRpcmVjdG9yeSBhYm91dCBkZWZlcnJlZCBlbGlnaWJpbGl0eS5cbiIpOworICAgICAg
ICAKKyAgICAgICAgLyogUGFnZSBtdXN0IGtub3cgdGhhdCB3ZSBhcmUgZWxpZ2libGUgZmlyc3Qu
ICovCisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2tpbmQocGFnZS0+b3duZXIpID09IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2tpbmQpOworICAgICAgICAKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKKyAgICAgICAgICAgICZkaXJlY3Rv
cnktPmJhc2UsCisgICAgICAgICAgICB2aWV3X2luZGV4KTsKKyAgICB9CisgICAgCisgICAgLyog
SXQncyBpbXBvcnRhbnQgdG8gbm90aWZ5IGVtcHRpbmVzcyBsYXN0LCBzbyB0aGF0IHdlIG5ldmVy
IGZpbmQgb3V0c2VsdmVzIGluIGEgY2FzZSB3aGVyZSB0aGUKKyAgICAgICBzY2F2ZW5nZXIgdGFr
ZXMgdGhlIGVtcHR5IGJpdCwgY2Fubm90IHRha2UgdGhlIGVsaWdpYmxlIGJpdCwgYW5kIHRoaXMg
Y29kZSBoYWQgYWxyZWFkeSBzZXQgdGhlCisgICAgICAgZW1wdHkgYml0IGJ1dCBub3QgdGhlIGVs
aWdpYmxlIGJpdC4gKi8KKyAgICBpZiAoc2hvdWxkX25vdGlmeV9lbXB0aW5lc3MpIHsKKyAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRl
eCgKKyAgICAgICAgICAgICZkaXJlY3RvcnktPmJhc2UsCisgICAgICAgICAgICB2aWV3X2luZGV4
KTsKKyAgICB9Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcqIHZpZXcsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKKyAg
ICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9kZSBkZWFsbG9jYXRpb25fbW9kZSwKKyAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZyBwYWdlX2NvbmZpZykKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CisgICAgCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGly
ZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OworCisgICAg
c2l6ZV9kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpOworICAgIGRpcmVjdG9yeSA9ICZzaXpl
X2RpcmVjdG9yeS0+YmFzZTsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xv
ZygiTm90aW5nIGVsaWdpYmlsaXR5IGluIGV4Y2x1c2l2ZSAlcC8lcC5cbiIsIHZpZXcsIHBhZ2Up
OworICAgICAgICAKKyAgICBpZiAocGFnZS0+bG9ja19wdHIpCisgICAgICAgIHBhc19sb2NrX3Rl
c3RpbmdfYXNzZXJ0X2hlbGQocGFnZS0+bG9ja19wdHIpOworICAgIAorICAgIGlmIChwYWdlLT5p
c19pbl91c2VfZm9yX2FsbG9jYXRpb24pIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAg
ICAgICBwYXNfbG9nKCJEZWZlcnJpbmcgZWxpZ2liaWxpdHkgbm90aWZpY2F0aW9uLlxuIik7Cisg
ICAgICAgIHBhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJlZCA9
IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYm9vbCBkaWRfY2FjaGVfdmlldzsKKworICAg
ICAgICBkaWRfY2FjaGVfdmlldyA9IGZhbHNlOworCisgICAgICAgIHN3aXRjaCAoZGVhbGxvY2F0
aW9uX21vZGUpIHsKKyAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fZGly
ZWN0X21vZGU6CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNf
bG9nKCJVc2luZyBkaXJlY3QgZGVhbGxvY2F0aW9uIG1vZGUgKCV1KS5cbiIsIHBhZ2UtPm9iamVj
dF9zaXplKTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZTogeworICAgICAgICAgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9yZXN1bHQgYWxsb2NhdG9yX3Jlc3VsdDsKKyAgICAgICAgICAgIHBhc19s
b2NhbF92aWV3X2NhY2hlKiB2aWV3X2NhY2hlOworCisgICAgICAgICAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgICAgICAgICBwYXNfbG9nKCJVc2luZyB0b192aWV3X2NhY2hlIGRlYWxsb2NhdGlv
biBtb2RlICgldSkuXG4iLCBwYWdlLT5vYmplY3Rfc2l6ZSk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIGlmICghcGFnZV9jb25maWcuZW5hYmxlX3ZpZXdfY2FjaGUpIHsKKyAgICAgICAgICAg
ICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiJXA6IFZpZXcg
Y2FjaGUgZGlzYWJsZWQgaW4gY29uZmlnIiwgY2FjaGUtPm5vZGUpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhbGxvY2F0b3JfcmVzdWx0ID0g
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcigKKyAgICAgICAg
ICAgICAgICBjYWNoZSwgcGFnZS0+dmlld19jYWNoZV9pbmRleCk7CisgICAgICAgICAgICBpZiAo
IWFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkgeworICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcDogVmlldyBjYWNoZSBpcyBk
aXNhYmxlZCBmb3IgdGhpcyBwYWdlIG9yIGl0IGRvZXNuJ3QgZXhpc3QgeWV0IGluIHRoaXMgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUTEMuXG4iLCBjYWNoZS0+bm9kZSk7CisgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgCisgICAgICAgICAgICB2aWV3X2NhY2hlID0gKHBhc19sb2NhbF92aWV3X2NhY2hl
KilhbGxvY2F0b3JfcmVzdWx0LmFsbG9jYXRvcjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiVHJ5aW5nIHRvIHB1c2ggdG8g
dmlldyBjYWNoZS5cbiIpOworCisgICAgICAgICAgICBpZiAocGFzX2xvY2FsX3ZpZXdfY2FjaGVf
aXNfZnVsbCh2aWV3X2NhY2hlKSkgeworICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcCwgJXA6IENhY2hlIGlzIGZ1bGwgKCV1KS5cbiIs
IGNhY2hlLT5ub2RlLCB2aWV3X2NhY2hlLCBwYWdlLT5vYmplY3Rfc2l6ZSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRp
ZF9jYWNoZV92aWV3ID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcGFnZS0+aXNf
aW5fdXNlX2Zvcl9hbGxvY2F0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiJXAsICVwOiBQdXNoaW5nIHRv
IGNhY2hlICgldSkuXG4iLCBjYWNoZS0+bm9kZSwgdmlld19jYWNoZSwgcGFnZS0+b2JqZWN0X3Np
emUpOworCisgICAgICAgICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9wdXNoKHZpZXdfY2FjaGUs
IHZpZXcpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0gfQorCisgICAgICAgIGlmICgh
ZGlkX2NhY2hlX3ZpZXcpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAg
ICAgIHBhc19sb2coIlRlbGxpbmcgdGhlIGRpcmVjdG9yeSB0aGF0IHdlIGFyZSBlbGlnaWJsZSAo
JXUpLlxuIiwgcGFnZS0+b2JqZWN0X3NpemUpOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIHZp
ZXctPmluZGV4KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIENsZWFyIHRoZSBpbmVsaWdp
YmxlIGJpdCBmcm9tIHRoZSBvd25lciBmaWVsZC4gKi8KKyAgICBwYWdlLT5vd25lciA9IHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9uX251bGwodmlldyk7Cit9CisKIFBB
U19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9FWENMVVNJVkVfVklF
V19JTkxJTkVTX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3du
ZXJzaGlwX2tpbmQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDE0NiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmbmRlZiBQQVNfU0VH
UkVHQVRFRF9FWENMVVNJVkVfVklFV19PV05FUlNISVBfS0lORF9ICi0jZGVmaW5lIFBBU19TRUdS
RUdBVEVEX0VYQ0xVU0lWRV9WSUVXX09XTkVSU0hJUF9LSU5EX0gKLQotI2luY2x1ZGUgInBhc191
dGlscy5oIgotCi1QQVNfQkVHSU5fRVhURVJOX0M7Ci0KLS8qIFRoaXMgaXMgcmVhbGx5IHR3byBm
bGFncyAtLSBvd25lZCBhbmQgYmlhc2VkLgotCi0gICBPd25lcnNoaXAgbWVhbnMgdGhhdCB0aGUg
cGFnZSBwb2ludGVyIHBvaW50cyB0byBhIGNvbW1pdHRlZCBhbmQgZnVsbHkgY29uc3RydWN0ZWQK
LSAgIHBhZ2UuIFRoZSBvd25lcnNoaXAgbG9jayBpcyB0YWtlbiB3aGVuIHRoaXMgc3RhdGUgY2hh
bmdlcy4gU28gaWYgeW91IGdyYWIgdGhlIG93bmVyc2hpcAotICAgbG9jayBhbmQgb2JzZXJ2ZSB0
aGUgb3duZXJzaGlwIGJpdCB0byBiZSBzZXQsIHRoZW4geW91IGtub3cgdGhhdCB5b3UgY2FuIGRl
cmVmZXJlbmNlCi0gICB0aGUgcGFnZSBwb2ludGVyIGFuZCBhY2Nlc3MgdGhlIHBhZ2Uga25vd2lu
ZyB0aGF0IGl0J3MgZnVsbHkgaW5pdGlhbGl6ZWQuIEJ1dCB0aGF0Ci0gICByZXF1aXJlcyBjb250
aW51aW5nIHRvIGhvbGQgdGhlIG93bmVyc2hpcCBsb2NrLgotCi0gICBCaWFzaW5nIG1lYW5zIHRo
YXQgdGhlcmUgaXMgYSBiaWFzaW5nX3ZpZXcgdGhhdCBoYXMgdGFrZW4gb3ZlciB0aGUgZXhjbHVz
aXZlIHZpZXcgYW5kCi0gICBzbyB0aGUgZXhjbHVzaXZlIHZpZXcgaXNuJ3QgcmVhbGx5IGFjdGlu
ZyBhcyBhIG1lbWJlciBvZiBpdHMgZGlyZWN0b3J5IChpdCBzaG91bGQgYmUKLSAgIGluZWxpZ2li
bGUgaW4gdGhhdCBkaXJlY3RvcnkgYW5kIGlnbm9yZWQpLiAqLwotZW51bSBfX2F0dHJpYnV0ZV9f
KChfX3BhY2tlZF9fKSkgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tp
bmQgewotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZCwKLSAgICBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZCwKLSAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19ub3Rfb3duZWRfYW5kX2JpYXNlZCwKLSAgICBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19vd25lZF9hbmRfYmlhc2VkLAotfTsKLQotdHlwZWRlZiBlbnVtIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfaXNfb3duZWQoCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmQga2luZCkKLXsKLSAgICBz
d2l0Y2ggKGtpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25v
dF9vd25lZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25l
ZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0K
LSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfb3duZXJzaGlwX2tpbmRfaXNfYmlhc2VkKAotICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X293bmVyc2hpcF9raW5kIGtpbmQpCi17Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ6Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZDoKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9i
aWFzZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lZF9hbmRf
Ymlhc2VkOgotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNo
b3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotc3RhdGljIGlu
bGluZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZAotcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfd2l0aF9vd25lZCgKLSAgICBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZCBraW5kLAotICAgIGJv
b2wgaXNfb3duZWQpCi17Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19ub3Rfb3duZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19vd25lZDoKLSAgICAgICAgcmV0dXJuIGlzX293bmVkCi0gICAgICAgICAg
ICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVkCi0gICAgICAgICAgICA6IHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZDsKLSAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZF9hbmRfYmlhc2VkOgotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWRfYW5kX2JpYXNlZDoKLSAgICAgICAgcmV0
dXJuIGlzX293bmVkCi0gICAgICAgICAgICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X293bmVkX2FuZF9iaWFzZWQKLSAgICAgICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQ7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfbm90X293bmVkOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X293bmVyc2hpcF9raW5kCi1wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19v
d25lcnNoaXBfa2luZF93aXRoX2JpYXNlZCgKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19vd25lcnNoaXBfa2luZCBraW5kLAotICAgIGJvb2wgaXNfYmlhc2VkKQotewotICAgIHN3
aXRjaCAoa2luZCkgewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90
X293bmVkOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVk
X2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiBpc19iaWFzZWQKLSAgICAgICAgICAgID8gcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQKLSAgICAgICAg
ICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOwotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZWQ6Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19vd25lZF9hbmRfYmlhc2VkOgotICAgICAgICByZXR1cm4gaXNf
Ymlhc2VkCi0gICAgICAgICAgICA/IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVk
X2FuZF9iaWFzZWQKLSAgICAgICAgICAgIDogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZWQ7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsK
LSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkOwotfQot
Ci1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3
X293bmVyc2hpcF9raW5kX2dldF9zdHJpbmcoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZXJzaGlwX2tpbmQga2luZCkKLXsKLSAgICBzd2l0Y2ggKGtpbmQpIHsKLSAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdF9vd25lZDoKLSAgICAgICAgcmV0
dXJuICJub3Rfb3duZWQiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZWQ6Ci0gICAgICAgIHJldHVybiAib3duZWQiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfbm90X293bmVkX2FuZF9iaWFzZWQ6Ci0gICAgICAgIHJldHVybiAibm90
X293bmVkX2FuZF9iaWFzZWQiOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfb3duZWRfYW5kX2JpYXNlZDoKLSAgICAgICAgcmV0dXJuICJvd25lZF9hbmRfYmlhc2VkIjsK
LSAgICB9Ci0gICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJl
dHVybiBOVUxMOwotfQotCi1QQVNfRU5EX0VYVEVSTl9DOwotCi0jZW5kaWYgLyogUEFTX1NFR1JF
R0FURURfRVhDTFVTSVZFX1ZJRVdfT1dORVJTSElQX0tJTkRfSCAqLwotCi0KSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODIyMzgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkuYwkobm9uZXhpc3RlbnQpCkBAIC0xLDEyMjEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRl
ICJwYXNfY29uZmlnLmgiCi0KLSNpZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCi0KLSNpbmNsdWRlICJwYXNfYmlhc2lu
Z19kaXJlY3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19iaXRmaXRfaGVhcC5oIgotI2lu
Y2x1ZGUgInBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCIKLSNpbmNsdWRlICJwYXNfZXhjbHVz
aXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZS5oIgotI2luY2x1ZGUgInBhc19tb25vdG9uaWNf
dGltZS5oIgotI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5oIgotI2luY2x1ZGUgInBhc19wYWdl
X3NoYXJpbmdfcG9vbC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxp
bmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2lu
bGluZXMuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaCIKLSNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAi
cGFzX3N0cmVhbS5oIgotI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0Lmgi
Ci0jaW5jbHVkZSAicGFzX3V0aWxpdHlfaGVhcC5oIgotCi1ib29sIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZSA9IGZhbHNlOwotYm9vbCBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yY2VfZXhwbG9kZSA9IGZhbHNlOwotCi1wYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9jcmVhdGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAg
ICB1bnNpZ25lZCBvYmplY3Rfc2l6ZSwKLSAgICB1bnNpZ25lZCBhbGlnbm1lbnQsCi0gICAgcGFz
X2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
ZyogcGFnZV9jb25maWcpCi17Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
OwotICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcmVzdWx0
OwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQgcGFnZV9jb25maWdfa2luZDsK
LQotICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKLQotICAgIGlmIChwYWdlX2NvbmZp
ZykKLSAgICAgICAgcGFnZV9jb25maWdfa2luZCA9IHBhZ2VfY29uZmlnLT5raW5kOwotICAgIGVs
c2UKLSAgICAgICAgcGFnZV9jb25maWdfa2luZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfbnVsbDsKLQotICAgIGlmIChwYWdlX2NvbmZpZykKLSAgICAgICAgUEFTX0FTU0VSVCho
ZWFwX2NvbmZpZyA9PSBwYWdlX2NvbmZpZy0+YmFzZS5oZWFwX2NvbmZpZ19wdHIpOwotCi0gICAg
cGFzX2hlYXBfY29uZmlnX2FjdGl2YXRlKGhlYXBfY29uZmlnKTsKLQotICAgIGlmICh2ZXJib3Nl
ICYmIHBhZ2VfY29uZmlnKSB7Ci0gICAgICAgIHBhc19sb2coImxvY2FsIGFsbG9jYXRvciBzaXpl
IGZvciAlczogJXp1XG4iLAotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZ19raW5kKSwKLSAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVf
Zm9yX2NvbmZpZygqcGFnZV9jb25maWcpKTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBwYXNfaW1t
b3J0YWxfaGVhcF9hbGxvY2F0ZSgKLSAgICAgICAgc2l6ZW9mKHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSksCi0gICAgICAgICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkiLAotICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgaWYgKHZl
cmJvc2UpIHsKLSAgICAgICAgcGFzX2xvZygiQ3JlYXRpbmcgZGlyZWN0cm95ICVwIGZvciAlc1xu
IiwKLSAgICAgICAgICAgICAgICByZXN1bHQsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tp
bmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZ19raW5kKSk7Ci0gICAgfQotCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29uc3RydWN0KAotICAgICAgICAmcmVzdWx0LT5iYXNlLCBw
YWdlX2NvbmZpZ19raW5kLAotICAgICAgICBoZWFwLT5ydW50aW1lX2NvbmZpZy0+c2hhcmluZ19t
b2RlLAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZCk7
Ci0KLSAgICByZXN1bHQtPmhlYXAgPSBoZWFwOwotICAgIHJlc3VsdC0+b2JqZWN0X3NpemUgPSBv
YmplY3Rfc2l6ZTsKLQotICAgIFBBU19BU1NFUlQocGFzX2lzX3Bvd2VyX29mXzIoYWxpZ25tZW50
KSk7Ci0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgYWxpZ25tZW50
KSk7Ci0gICAgcmVzdWx0LT5hbGlnbm1lbnRfc2hpZnQgPSBwYXNfbG9nMihhbGlnbm1lbnQpOwot
ICAgIAotICAgIHJlc3VsdC0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gMiAqIFBBU19OVU1f
QkFTRUxJTkVfQUxMT0NBVE9SUzsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGF0YSwgTlVMTCk7Ci0KLSAgICBpZiAocGFn
ZV9jb25maWcpCi0gICAgICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfZ2xvYmFsX3NpemVf
Y2xhc3NfcHRyX3N0b3JlKCZyZXN1bHQtPmJpdGZpdF9zaXplX2NsYXNzLCBOVUxMKTsKLSAgICBl
bHNlIHsKLSAgICAgICAgcGFzX2JpdGZpdF9oZWFwKiBiaXRmaXRfaGVhcDsKLSAgICAgICAgcGFz
X2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFzcyogYml0Zml0X3NpemVfY2xhc3M7Ci0KLSAgICAgICAg
Yml0Zml0X2hlYXAgPSBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9iaXRmaXQoaGVhcCwgaGVhcF9j
b25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgICAgICBQQVNfQVNTRVJUKGJpdGZpdF9oZWFw
KTsKLSAgICAgICAgCi0gICAgICAgIGJpdGZpdF9zaXplX2NsYXNzID0KLSAgICAgICAgICAgIHBh
c19iaXRmaXRfaGVhcF9lbnN1cmVfZ2xvYmFsX3NpemVfY2xhc3MoCi0gICAgICAgICAgICAgICAg
Yml0Zml0X2hlYXAsIHJlc3VsdCwgaGVhcF9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwotICAg
ICAgICAKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9nbG9iYWxfc2l6ZV9jbGFz
c19wdHJfc3RvcmUoCi0gICAgICAgICAgICAmcmVzdWx0LT5iaXRmaXRfc2l6ZV9jbGFzcywgYml0
Zml0X3NpemVfY2xhc3MpOwotICAgIH0KLSAgICAKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPm5leHRfZm9y
X2hlYXAsIE5VTEwpOwotCi0gICAgaWYgKCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5
X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMpCi0gICAgICAgIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihyZXN1bHQpOwot
ICAgIGlmICghaGVhcC0+cnVudGltZV9jb25maWctPmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9w
YXJ0aWFsX3ZpZXdzKQotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cyhyZXN1bHQpOwotCi0gICAgaWYgKHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JjZV9leHBsb2RlCi0gICAgICAgICYmIHBhZ2Vf
Y29uZmlnCi0gICAgICAgICYmICFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2lzX3V0
aWxpdHkocGFnZV9jb25maWdfa2luZCkpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9leHBsb2RlKHJlc3VsdCwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0KLSAgICBy
ZXR1cm4gcmVzdWx0OwotfQotCi1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAg
IHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQotewotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLQotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsK
LQotICAgIGlmIChkYXRhKQotICAgICAgICByZXR1cm4gZGF0YTsKLQotICAgIHBhZ2VfY29uZmln
ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+
YmFzZS5wYWdlX2NvbmZpZ19raW5kKTsKLQotICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRp
b25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwot
ICAgIGlmIChkYXRhKSB7Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFs
bHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIHJldHVybiBkYXRhOwotICAgIH0KLQot
ICAgIGlmIChwYWdlX2NvbmZpZyAmJiBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgPiBwYWdl
X2NvbmZpZy0+YmFzZS5ncmFudWxlX3NpemUpIHsKLSAgICAgICAgZGF0YSA9IHBhc19pbW1vcnRh
bF9oZWFwX2FsbG9jYXRlKAotICAgICAgICAgICAgc2l6ZW9mKHBhc19leHRlbmRlZF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKSwKLSAgICAgICAgICAgICJwYXNfZXh0ZW5k
ZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSIsCi0gICAgICAgICAgICBw
YXNfb2JqZWN0X2FsbG9jYXRpb24pOwotCi0gICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdl
X2dyYW51bGVfdXNlX2NvdW50X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICYoKHBhc19leHRlbmRl
ZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKilkYXRhKS0+ZnVsbF91c2Vf
Y291bnRzLCBOVUxMKTsKLSAgICB9IGVsc2UgewotICAgICAgICBkYXRhID0gcGFzX2ltbW9ydGFs
X2hlYXBfYWxsb2NhdGUoCi0gICAgICAgICAgICBzaXplb2YocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X2RhdGEpLAotICAgICAgICAgICAgInBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9kYXRhIiwKLSAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlv
bik7Ci0gICAgfQotCi0gICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9zdG9yZSgm
ZGF0YS0+ZnVsbF9hbGxvY19iaXRzLCBOVUxMKTsKLSAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdl
X2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCA9IDA7Ci0gICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFn
ZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSAwOwotICAgIGRhdGEtPmZ1bGxfbnVt
X25vbl9lbXB0eV93b3JkcyA9IDA7Ci0gICAgZGF0YS0+YWxsb2NhdG9yX2luZGV4ID0gKHBhc19h
bGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgmZGF0YS0+bmV4dF9mb3JfbGF5b3V0LCBOVUxM
KTsKLQotICAgIHBhc19mZW5jZSgpOwotCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2RhdGFfcHRyX3N0b3JlKCZkaXJlY3RvcnktPmRhdGEsIGRhdGEpOwotCi0gICAg
cGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsK
LQotICAgIHJldHVybiBkYXRhOwotfQotCi1wYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZGF0YSoKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFn
ZV9jb25maWc7Ci0KLSAgICBwYWdlX2NvbmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmln
X2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7Ci0gICAg
UEFTX0FTU0VSVChwYWdlX2NvbmZpZyk7Ci0gICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy0+YmFz
ZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy0+YmFzZS5ncmFudWxlX3NpemUpOwotCi0gICAgcmV0
dXJuIChwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSop
Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9s
b2FkKCZkaXJlY3RvcnktPmRhdGEpOwotfQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcigKLSAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICAKLSAgICBwYXNfaGVhcF9sb2Nr
X2Fzc2VydF9oZWxkKCk7Ci0KLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKGRpcmVjdG9yeSwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0KLSAg
ICBpZiAoZGF0YS0+YWxsb2NhdG9yX2luZGV4ICE9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRf
TUFYKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfa2luZF9pc191dGlsaXR5KGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkKGRp
cmVjdG9yeSk7Ci0KLSAgICBQQVNfQVNTRVJUKGRhdGEtPmFsbG9jYXRvcl9pbmRleCA8IChwYXNf
YWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKLX0KLQotdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cygKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHRlbXBsYXRlX2RpcmVjdG9yeTsKLSAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kIHBhZ2VfY29uZmlnX2tpbmQ7Ci0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnX3B0cjsKLSAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZTsKLSAgICBz
aXplX3QgYWxsb2NfYml0c19ieXRlczsKLSAgICB1bnNpZ25lZCBvZmZzZXQ7Ci0gICAgdW5zaWdu
ZWQgYmVnaW47Ci0gICAgdW5zaWduZWQgZW5kOwotICAgIHVuc2lnbmVkKiBmdWxsX2FsbG9jX2Jp
dHM7Ci0gICAgdW5zaWduZWQgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOwotICAgIHNpemVfdCBp
bmRleDsKLSAgICBwYXNfYWxsb2NhdGlvbl9jb25maWcgYm9vdHN0cmFwX2FsbG9jYXRpb25fY29u
ZmlnOwotCi0gICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwotCi0gICAgZGF0YSA9IHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9lbnN1cmVfZGF0YShkaXJlY3Rvcnks
IHBhc19sb2NrX2lzX2hlbGQpOwotICAgIGlmIChkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29y
ZHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2VfY29uZmlnX2tpbmQgPSBkaXJlY3Rvcnkt
PmJhc2UucGFnZV9jb25maWdfa2luZDsKLSAgICBpZiAocGFnZV9jb25maWdfa2luZCA9PSBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpCi0gICAgICAgIHJldHVybjsKLSAgICAK
LSAgICBwYWdlX2NvbmZpZ19wdHIgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dl
dF9jb25maWcocGFnZV9jb25maWdfa2luZCk7Ci0gICAgb2JqZWN0X3NpemUgPSBkaXJlY3Rvcnkt
Pm9iamVjdF9zaXplOwotICAgIAotICAgIHRlbXBsYXRlX2RpcmVjdG9yeSA9IHBhc19leGNsdXNp
dmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2dldCgKLSAgICAgICAgJnBhc19leGNsdXNpdmVf
dmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2luc3RhbmNlLAotICAgICAgICBwYXNfZXhjbHVzaXZl
X3ZpZXdfdGVtcGxhdGVfbWVtb19rZXlfY3JlYXRlKG9iamVjdF9zaXplLCBwYWdlX2NvbmZpZ19r
aW5kKSk7Ci0gICAgaWYgKHRlbXBsYXRlX2RpcmVjdG9yeSkgewotICAgICAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogdGVtcGxhdGVfZGF0YTsKLQotICAgICAg
ICB0ZW1wbGF0ZV9kYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Rh
dGFfcHRyX2xvYWQoJnRlbXBsYXRlX2RpcmVjdG9yeS0+ZGF0YSk7Ci0gICAgICAgIAotICAgICAg
ICBkYXRhLT5mdWxsX2FsbG9jX2JpdHMgPSB0ZW1wbGF0ZV9kYXRhLT5mdWxsX2FsbG9jX2JpdHM7
Ci0gICAgICAgIGRhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0
ID0KLSAgICAgICAgICAgIHRlbXBsYXRlX2RhdGEtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlf
dG9fZmlyc3Rfb2JqZWN0OwotICAgICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5
X3RvX2VuZF9vZl9sYXN0X29iamVjdCA9Ci0gICAgICAgICAgICB0ZW1wbGF0ZV9kYXRhLT5vZmZz
ZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2VuZF9vZl9sYXN0X29iamVjdDsKLQotICAgICAgICBp
ZiAocGFnZV9jb25maWdfcHRyLT5iYXNlLnBhZ2Vfc2l6ZSA+IHBhZ2VfY29uZmlnX3B0ci0+YmFz
ZS5ncmFudWxlX3NpemUpIHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YShkaXJlY3RvcnkpLT5mdWxsX3VzZV9jb3VudHMg
PQotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9n
ZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGVfZGlyZWN0b3J5
KS0+ZnVsbF91c2VfY291bnRzOwotICAgICAgICB9Ci0KLSAgICAgICAgcGFzX2ZlbmNlKCk7Ci0g
ICAgICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9Ci0gICAgICAgICAgICB0ZW1w
bGF0ZV9kYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHM7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBwYWdlX2NvbmZpZyA9ICpwYWdlX2NvbmZpZ19wdHI7Ci0gICAgCi0gICAgYWxs
b2NfYml0c19ieXRlcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY19ieXRl
cyhwYWdlX2NvbmZpZyk7Ci0gICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2ltbW9ydGFsX2hlYXBf
YWxsb2NhdGVfd2l0aF9tYW51YWxfYWxpZ25tZW50KAotICAgICAgICBhbGxvY19iaXRzX2J5dGVz
LCBzaXplb2YodW5zaWduZWQpLAotICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2RhdGEvZnVsbF9hbGxvY19iaXRzIiwKLSAgICAgICAgcGFzX29iamVjdF9hbGxv
Y2F0aW9uKTsKLSAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyX3N0b3JlKCZkYXRh
LT5mdWxsX2FsbG9jX2JpdHMsIGZ1bGxfYWxsb2NfYml0cyk7Ci0gICAgcGFzX3plcm9fbWVtb3J5
KGZ1bGxfYWxsb2NfYml0cywgYWxsb2NfYml0c19ieXRlcyk7Ci0KLSAgICBiZWdpbiA9IHBhc19z
ZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3Rf
ZXhjbHVzaXZlKG9iamVjdF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9j
b25maWcpOwotICAgIGVuZCA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vfb2Zmc2V0X2Zyb21fcGFnZV9i
b3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3RfZXhjbHVzaXZlKG9iamVjdF9zaXplLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnKTsKLQotICAgIGRhdGEtPm9m
ZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0ID0gYmVnaW47Ci0gICAgZGF0
YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPSBlbmQ7
Ci0KLSAgICBmb3IgKG9mZnNldCA9IGJlZ2luOyBvZmZzZXQgPCBlbmQ7IG9mZnNldCArPSBvYmpl
Y3Rfc2l6ZSkgewotICAgICAgICBwYXNfYml0dmVjdG9yX3NldCgKLSAgICAgICAgICAgIGZ1bGxf
YWxsb2NfYml0cywKLSAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfaW5kZXhfb2Zfb2JqZWN0X2F0
X29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnkoCi0gICAgICAgICAgICAgICAgb2Zmc2V0LCBwYWdl
X2NvbmZpZy5iYXNlKSwKLSAgICAgICAgICAgIHRydWUpOwotICAgIH0KLSAgICAKLSAgICBmdWxs
X251bV9ub25fZW1wdHlfd29yZHMgPSAwOwotICAgIGZvciAoaW5kZXggPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpOyBpbmRleC0tOykgewot
ICAgICAgICBpZiAoZnVsbF9hbGxvY19iaXRzW2luZGV4XSkKLSAgICAgICAgICAgIGZ1bGxfbnVt
X25vbl9lbXB0eV93b3JkcysrOwotICAgIH0KLSAgICBQQVNfQVNTRVJUKGZ1bGxfbnVtX25vbl9l
bXB0eV93b3Jkcyk7Ci0KLSAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBwYWdl
X2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkgewotICAgICAgICBwYXNfZXh0ZW5kZWRfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZXh0ZW5kZWRfZGF0YTsKLSAgICAgICAg
cGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQqIGZ1bGxfdXNlX2NvdW50czsKLSAgICAgICAgdWlu
dHB0cl90IG51bV9ncmFudWxlczsKLSAgICAgICAgYm9vbCBpbml0aWFsaXplX3Jlc3VsdDsKLQot
ICAgICAgICBleHRlbmRlZF9kYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2dldF9leHRlbmRlZF9kYXRhKGRpcmVjdG9yeSk7Ci0KLSAgICAgICAgbnVtX2dyYW51bGVz
ID0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgLyBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVf
c2l6ZTsKLQotICAgICAgICBmdWxsX3VzZV9jb3VudHMgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxv
Y2F0ZV93aXRoX21hbnVhbF9hbGlnbm1lbnQoCi0gICAgICAgICAgICBudW1fZ3JhbnVsZXMgKiBz
aXplb2YocGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQpLAotICAgICAgICAgICAgc2l6ZW9mKHBh
c19wYWdlX2dyYW51bGVfdXNlX2NvdW50KSwKLSAgICAgICAgICAgICJwYXNfZXh0ZW5kZWRfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YS9mdWxsX3VzZV9jb3VudHMiLAotICAg
ICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQotICAgICAgICBpbml0aWFsaXplX3Jl
c3VsdCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfaW5pdGlhbGl6ZV9mdWxsX3VzZV9jb3VudHMoCi0g
ICAgICAgICAgICBOVUxMLCBkaXJlY3RvcnksIGZ1bGxfdXNlX2NvdW50cywgbnVtX2dyYW51bGVz
LCBwYWdlX2NvbmZpZyk7Ci0KLSAgICAgICAgLyogVGhpcyBzaG91bGQgaGF2ZSBpbml0aWFsaXpl
ZCBhbGwgb2YgdGhlIGJpdHMuICovCi0gICAgICAgIFBBU19BU1NFUlQoaW5pdGlhbGl6ZV9yZXN1
bHQpOwotCi0gICAgICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50
X3B0cl9zdG9yZSgKLSAgICAgICAgICAgICZleHRlbmRlZF9kYXRhLT5mdWxsX3VzZV9jb3VudHMs
Ci0gICAgICAgICAgICBmdWxsX3VzZV9jb3VudHMpOwotICAgIH0KLQotICAgIHBhc19mZW5jZSgp
OwotICAgIGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9IGZ1bGxfbnVtX25vbl9lbXB0
eV93b3JkczsKLSAgICBQQVNfQVNTRVJUKGRhdGEtPmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkcyA9
PSBmdWxsX251bV9ub25fZW1wdHlfd29yZHMpOwotCi0gICAgcGFzX2Jvb3RzdHJhcF9mcmVlX2hl
YXBfYWxsb2NhdGlvbl9jb25maWdfY29uc3RydWN0KCZib290c3RyYXBfYWxsb2NhdGlvbl9jb25m
aWcsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIAotICAgIHBhc19leGNsdXNpdmVfdmlld190ZW1w
bGF0ZV9tZW1vX3RhYmxlX2FkZF9uZXcoCi0gICAgICAgICZwYXNfZXhjbHVzaXZlX3ZpZXdfdGVt
cGxhdGVfbWVtb190YWJsZV9pbnN0YW5jZSwKLSAgICAgICAgZGlyZWN0b3J5LAotICAgICAgICBO
VUxMLAotICAgICAgICAmYm9vdHN0cmFwX2FsbG9jYXRpb25fY29uZmlnKTsKLX0KLQotdm9pZCBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZXhwbG9kZShwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9j
a19ob2xkX21vZGUpCi17Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kX2lzX3V0aWxpdHkoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpKTsKLSAg
ICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kICE9IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7Ci0KLSAgICBpZiAoIXBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9lbnN1cmVfZGF0
YShkaXJlY3RvcnksIGhlYXBfbG9ja19ob2xkX21vZGUpOwotCi0gICAgaWYgKCFwYXNfY29tcGFj
dF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19w
b29sKSkgewotICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xv
Y2tfaG9sZF9tb2RlKTsKLQotICAgICAgICBpZiAoIXBhc19jb21wYWN0X2F0b21pY19wYWdlX3No
YXJpbmdfcG9vbF9wdHJfbG9hZCgmZGF0YS0+Ymlhc19zaGFyaW5nX3Bvb2wpKSB7Ci0gICAgICAg
ICAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wqIHBvb2w7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIHBvb2wgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgKLSAg
ICAgICAgICAgICAgICBzaXplb2YocGFzX3BhZ2Vfc2hhcmluZ19wb29sKSwKLSAgICAgICAgICAg
ICAgICBhbGlnbm9mKHBhc19wYWdlX3NoYXJpbmdfcG9vbCksCi0gICAgICAgICAgICAgICAgInBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS9iaWFzX3NoYXJpbmdfcG9vbCIsCi0g
ICAgICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQotICAgICAgICAgICAgcGFz
X3BhZ2Vfc2hhcmluZ19wb29sX2NvbnN0cnVjdChwb29sKTsKLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmluZ19wb29sX3B0cl9zdG9yZSgmZGF0
YS0+Ymlhc19zaGFyaW5nX3Bvb2wsIHBvb2wpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUp
OwotICAgIH0KLQotICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3BhZ2Vfc2hhcmlu
Z19wb29sX3B0cl9sb2FkKCZkYXRhLT5iaWFzX3NoYXJpbmdfcG9vbCkpOwotfQotCi1wYXNfYmFz
ZWxpbmVfYWxsb2NhdG9yKgotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3Nl
bGVjdF9hbGxvY2F0b3Jfc2xvdygKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2lu
aXRpYWxpemVfaWZfbmVjZXNzYXJ5KCk7Ci0gICAgCi0gICAgZm9yICg7OykgewotICAgICAgICB1
bnNpZ25lZCBhX2luZGV4OwotICAgICAgICB1bnNpZ25lZCBiX2luZGV4OwotICAgICAgICBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yKiBhX2FsbG9jYXRvcjsKLSAgICAgICAgcGFzX2Jhc2VsaW5lX2Fs
bG9jYXRvciogYl9hbGxvY2F0b3I7Ci0gICAgICAgIHVuc2lnbmVkIHNlbGVjdGVkX2luZGV4Owot
ICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBzZWxlY3RlZF9hbGxvY2F0b3I7Ci0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2VsZWN0ZWRfZGlyZWN0
b3J5OwotCi0gICAgICAgIHNlbGVjdGVkX2luZGV4ID0gZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxv
Y2F0b3JfaW5kZXg7Ci0gICAgICAgIGlmIChzZWxlY3RlZF9pbmRleCA8IFBBU19OVU1fQkFTRUxJ
TkVfQUxMT0NBVE9SUykgewotICAgICAgICAgICAgc2VsZWN0ZWRfYWxsb2NhdG9yID0gcGFzX2Jh
c2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIHNlbGVjdGVkX2luZGV4OwotCi0gICAgICAgICAgICBw
YXNfbG9ja19sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOwotCi0gICAgICAgICAgICBp
ZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggIT0gc2VsZWN0ZWRfaW5kZXgp
IHsKLSAgICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJnNlbGVjdGVkX2FsbG9jYXRvci0+
bG9jayk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIHJldHVybiBzZWxlY3RlZF9hbGxvY2F0b3I7Ci0gICAgICAgIH0KLQotICAgICAgICBp
ZiAoc2VsZWN0ZWRfaW5kZXggPCAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTKQotICAg
ICAgICAgICAgc2VsZWN0ZWRfaW5kZXggLT0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOwot
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoc2VsZWN0ZWRfaW5kZXggPT0g
MiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyk7Ci0gICAgICAgICAgICAKLSAgICAgICAg
ICAgIGFfaW5kZXggPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2dldF9yYW5kb21faW5k
ZXgoKTsKLSAgICAgICAgICAgIGJfaW5kZXggPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxl
X2dldF9yYW5kb21faW5kZXgoKTsKLSAgICAKLSAgICAgICAgICAgIGFfYWxsb2NhdG9yID0gcGFz
X2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGFfaW5kZXg7Ci0gICAgICAgICAgICBiX2FsbG9j
YXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBiX2luZGV4OwotCi0gICAgICAg
ICAgICAvKiBJZiBpdCdzIGNoZWFwIHRvIHN0b3Agb25lIG9mIHRoZXNlIHRoZW4ganVzdCBwaWNr
IGVpdGhlciBvbmUuICovCi0gICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3JfaXNf
YWN0aXZlKCZhX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IpKQotICAgICAgICAgICAgICAgIHNlbGVj
dGVkX2luZGV4ID0gYV9pbmRleDsKLSAgICAgICAgICAgIGVsc2UgaWYgKCFwYXNfbG9jYWxfYWxs
b2NhdG9yX2lzX2FjdGl2ZSgmYl9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yKSkKLSAgICAgICAgICAg
ICAgICBzZWxlY3RlZF9pbmRleCA9IGJfaW5kZXg7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IGFfdmlldzsKLSAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF92aWV3IGJfdmlldzsKLQotICAgICAgICAgICAgICAgIGFfdmlldyA9IGFf
YWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3OwotICAgICAgICAgICAgICAgIGJfdmlldyA9IGJf
YWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3OwotCi0gICAgICAgICAgICAgICAgaWYgKCFhX3Zp
ZXcpCi0gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4ID0gYV9pbmRleDsKLSAgICAg
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkX2luZGV4ID0gYl9p
bmRleDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFwYXNfY29tcGFyZV9hbmRf
c3dhcF91aW50MTZfd2VhaygmZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiBQQVNf
TlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUyArIHNlbGVjdGVk
X2luZGV4KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgIAotICAg
ICAgICBzZWxlY3RlZF9hbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlICsg
c2VsZWN0ZWRfaW5kZXg7Ci0gICAgCi0gICAgICAgIHBhc19sb2NrX2xvY2soJnNlbGVjdGVkX2Fs
bG9jYXRvci0+bG9jayk7Ci0KLSAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2Nh
dG9yX2luZGV4ID09IHNlbGVjdGVkX2luZGV4KQotICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVk
X2FsbG9jYXRvcjsKLQotICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3Jf
aW5kZXggIT0gUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTICsgc2VsZWN0ZWRfaW5kZXgpIHsK
LSAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5sb2NrKTsK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFwYXNfbG9j
YWxfYWxsb2NhdG9yX2lzX251bGwoJnNlbGVjdGVkX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IpKSB7
Ci0gICAgICAgICAgICBwYXNfbnVtX2Jhc2VsaW5lX2FsbG9jYXRvcl9ldmljdGlvbnMrKzsKLSAg
ICAgICAgICAgIHNlbGVjdGVkX2RpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2ds
b2JhbF9zaXplX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3ItPnUuYWxsb2NhdG9yLnZpZXcp
OwotICAgICAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9kZXRhY2hfZGlyZWN0b3J5KHNl
bGVjdGVkX2FsbG9jYXRvcik7Ci0gICAgICAgICAgICBwYXNfZmVuY2UoKTsKLSAgICAgICAgICAg
IHNlbGVjdGVkX2RpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gMiAqIFBBU19O
VU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKLSAgICAgICAgfQotCi0gICAgICAgIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3JfYXR0YWNoX2RpcmVjdG9yeShzZWxlY3RlZF9hbGxvY2F0b3IsIGRpcmVjdG9y
eSk7Ci0KLSAgICAgICAgZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPSBzZWxl
Y3RlZF9pbmRleDsKLQotICAgICAgICByZXR1cm4gc2VsZWN0ZWRfYWxsb2NhdG9yOwotICAgIH0K
LX0KLQotc3RhdGljIHZvaWQgdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3RfbG9vcF9oZWFkX2Nh
bGxiYWNrKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZ2xvYmFsX3NpemVfZGlyZWN0b3J5Owot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAg
IHBhc19wYWdlX3NoYXJpbmdfcG9vbCogYmlhc19wb29sOwotCi0gICAgUEFTX1RFU1RJTkdfQVNT
RVJUKGRpcmVjdG9yeS0+ZGlyZWN0b3J5X2tpbmQgPT0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2tpbmQpOwotICAgIAotICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeSA9IChw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLQotICAgIGRh
dGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgm
Z2xvYmFsX3NpemVfZGlyZWN0b3J5LT5kYXRhKTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFy
aW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICAKLSAgICBp
ZiAoIWJpYXNfcG9vbCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIFBBU19URVNUSU5HX0FT
U0VSVCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9oZWFwX2xvY2tf
aG9sZF9tb2RlKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCkKLSAgICAgICAgPT0gcGFzX2xv
Y2tfaXNfbm90X2hlbGQpOwotICAgIAotICAgIHBhc19iaWFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rh
a2UoYmlhc19wb29sKTsKLX0KLQotc3RhdGljIHBhc19zZWdyZWdhdGVkX3ZpZXcgdGFrZV9maXJz
dF9lbGlnaWJsZV9kaXJlY3RfY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKAotICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQotewotICAgIHN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKLSAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2JhbF9zaXplX2RpcmVjdG9yeTsKLSAgICBwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXc7Ci0gICAgcGFzX2hlYXBfcnVudGltZV9jb25maWcqIHJ1bnRpbWVfY29u
ZmlnOwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+ZGlyZWN0b3J5LT5kaXJlY3Rv
cnlfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfa2luZCk7Ci0g
ICAgCi0gICAgZ2xvYmFsX3NpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSopY29uZmlnLT5kaXJlY3Rvcnk7Ci0KLSAgICBydW50aW1lX2NvbmZpZyA9
IGdsb2JhbF9zaXplX2RpcmVjdG9yeS0+aGVhcC0+cnVudGltZV9jb25maWc7Ci0KLSAgICBpZiAo
Y29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91bmRfZm9y
X3BhcnRpYWxfdmlld3MpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9lbmFibGVfZXhjbHVzaXZlX3ZpZXdzKGdsb2JhbF9zaXplX2RpcmVjdG9yeSk7Ci0KLSAg
ICBpZiAoY29uZmlnLT5pbmRleCA+PSBydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91
bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMpCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcihnbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkpOwotICAgIAotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
YXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKGdsb2JhbF9zaXplX2RpcmVjdG9yeSkpIHsKLSAg
ICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXdfbm9uX251
bGwoCi0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19jcmVhdGUoZ2xv
YmFsX3NpemVfZGlyZWN0b3J5LCBjb25maWctPmluZGV4KSk7Ci0gICAgICAgIGlmICh2ZXJib3Nl
KSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCIlcDogY3JlYXRlZCBleGNsdXNpdmUgJXAuXG4iLAot
ICAgICAgICAgICAgICAgICAgICBnbG9iYWxfc2l6ZV9kaXJlY3RvcnksIHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X3B0cih2aWV3KSk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICB2
aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2FzX3ZpZXdfbm9uX251bGwoCi0gICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKGdsb2JhbF9zaXplX2Rp
cmVjdG9yeSwgY29uZmlnLT5pbmRleCkpOwotICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAg
ICAgICAgcGFzX2xvZygiJXA6IGNyZWF0ZWQgcGFydGlhbCAlcC5cbiIsCi0gICAgICAgICAgICAg
ICAgICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRy
KHZpZXcpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiB2aWV3OwotfQotCi1wYXNf
c2VncmVnYXRlZF92aWV3IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtl
X2ZpcnN0X2VsaWdpYmxlX2RpcmVjdCgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIGdsb2JhbF9zaXplX2RpcmVjdG9yeSkKLXsKLSAgICBzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBk
aXJlY3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnIGNv
bmZpZzsKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0KLSAgICBQQVNfVEVTVElOR19B
U1NFUlQoCi0gICAgICAgIGdsb2JhbF9zaXplX2RpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19r
aW5kICE9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbCk7Ci0KLSAgICBkaXJl
Y3RvcnkgPSAmZ2xvYmFsX3NpemVfZGlyZWN0b3J5LT5iYXNlOwotCi0gICAgdmlldyA9IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbCgKLSAgICAg
ICAgZGlyZWN0b3J5LCAmY29uZmlnLAotICAgICAgICB0YWtlX2ZpcnN0X2VsaWdpYmxlX2RpcmVj
dF9sb29wX2hlYWRfY2FsbGJhY2ssCi0gICAgICAgIHRha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0
X2NyZWF0ZV9uZXdfdmlld19jYWxsYmFjayk7Ci0KLSAgICBpZiAodmVyYm9zZSkgewotICAgICAg
ICBwYXNfbG9nKCJUYWtpbmcgZWxpZ2libGUgdmlldyAlcCAoJXMpLlxuIiwKLSAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyksCi0gICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2dldF9zdHJpbmcocGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfa2luZCh2aWV3KSkpOwotICAgIH0KLQotICAgIFBBU19URVNUSU5HX0FTU0VSVCghUEFTX1NF
R1JFR0FURURfRElSRUNUT1JZX0dFVF9CSVQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBk
aXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHZpZXcpLCBlbGlnaWJsZSkp
OwotICAgIAotICAgIHJldHVybiB2aWV3OwotfQotCi1wYXNfc2VncmVnYXRlZF92aWV3IHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBwYXNfbWFn
YXppbmUqIG1hZ2F6aW5lKQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9kYXRhKiBkYXRhOwotICAgIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogYmlhc19wb29sOwot
ICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQgcGFydGljaXBhbnQ7Ci0gICAgdW5zaWdu
ZWQgbWFnYXppbmVfaW5kZXg7Ci0KLSAgICBQQVNfVEVTVElOR19BU1NFUlQoZGlyZWN0b3J5LT5i
YXNlLnBhZ2VfY29uZmlnX2tpbmQgIT0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9u
dWxsKTsKLQotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY29u
dGVudGlvbl9kaWRfdHJpZ2dlcl9leHBsb3Npb24oZGlyZWN0b3J5KSkKLSAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2V4cGxvZGUoZGlyZWN0b3J5LCBwYXNfbG9j
a19pc19ub3RfaGVsZCk7Ci0KLSAgICBkYXRhID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7Ci0KLSAgICBpZiAoIWRh
dGEgfHwgIW1hZ2F6aW5lKQotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0KGRpcmVjdG9yeSk7Ci0KLSAg
ICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xv
YWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKTsKLSAgICBpZiAoIWJpYXNfcG9vbCkKLSAgICAg
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0
X2VsaWdpYmxlX2RpcmVjdChkaXJlY3RvcnkpOwotCi0gICAgbWFnYXppbmVfaW5kZXggPSBtYWdh
emluZS0+bWFnYXppbmVfaW5kZXg7Ci0KLSAgICBwYXJ0aWNpcGFudCA9IHBhc19wYWdlX3NoYXJp
bmdfcG9vbF9nZXRfcGFydGljaXBhbnQoYmlhc19wb29sLCBtYWdhemluZV9pbmRleCk7Ci0gICAg
aWYgKCFwYXJ0aWNpcGFudCkgewotICAgICAgICBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0KLSAgICAgICAgYmlhc2luZ19kaXJlY3RvcnkgPSBO
VUxMOwotICAgICAgICAKLSAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0gICAgICAgIHBh
cnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFzX3Bv
b2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICAgICAgaWYgKCFwYXJ0aWNpcGFudCkKLSAgICAgICAg
ICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3Rvcnlf
Y3JlYXRlKGRpcmVjdG9yeSwgbWFnYXppbmVfaW5kZXgpOwotICAgICAgICBwYXNfaGVhcF9sb2Nr
X3VubG9jaygpOwotCi0gICAgICAgIGlmICghcGFydGljaXBhbnQpIHsKLSAgICAgICAgICAgIHBh
cnRpY2lwYW50ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFzX3Bv
b2wsIG1hZ2F6aW5lX2luZGV4KTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoCi0gICAgICAgICAg
ICAgICAgcGFydGljaXBhbnQgPT0gcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9jcmVhdGUo
Ci0gICAgICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLCBw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KSk7Ci0gICAgICAg
IH0KLSAgICB9Ci0gICAgCi0gICAgUEFTX0FTU0VSVChwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lw
YW50X2dldF9raW5kKHBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAgPT0gcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSk7Ci0gICAgCi0gICAgcmV0dXJuIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAg
ICAgIHBhc191bndyYXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICAgICAgICAg
IHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFudCkpLAotICAg
ICAgICBkaXJlY3RvcnkpOwotfQotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgcGFzX2RlZmVycmVk
X2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nOwotICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFw
X2xvY2tfaG9sZF9tb2RlOwotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBteV9wYWdl
X2NvbmZpZ19wdHI7Ci0gICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0IHJlc3Vs
dDsKLX0gdGFrZV9sYXN0X2VtcHR5X2RhdGE7Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1
bnNpZ25lZAotdGFrZV9sYXN0X2VtcHR5X3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsKAot
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCBzZWdtZW50LAot
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQotewot
ICAgIHRha2VfbGFzdF9lbXB0eV9kYXRhKiBkYXRhOwotCi0gICAgZGF0YSA9IGNvbmZpZy0+YXJn
OwotCi0gICAgcmV0dXJuIHNlZ21lbnQuZW1wdHlfYml0czsKLX0KLQotc3RhdGljIGJvb2wKLXRh
a2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVy
YXRlX2NvbmZpZyogY29uZmlnKQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKLQotICAgIC8qIFdlIHB1dCBvdXIgdGFrZV9sYXN0X2VtcHR5IGxvZ2ljIGluIGNvbnNp
ZGVyX3ZpZXcgYmVjYXVzZSBzaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbAotICAgICAgIGNh
bm5vdCByZWFsbHkgdGVsbCBpZiBhIHBhZ2UgY2FuIGJlIHRha2VuLiAqLwotCi0gICAgdGFrZV9s
YXN0X2VtcHR5X2RhdGEqIGRhdGE7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnk7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2Rp
cmVjdG9yeTsKLSAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2c7Ci0g
ICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGU7Ci0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWcqIG15X3BhZ2VfY29uZmlnX3B0cjsKLSAgICBwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZyBteV9wYWdlX2NvbmZpZzsKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFz
X3NlZ3JlZ2F0ZWRfdmlldyBnZW5lcmljX3ZpZXc7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVz
aXZlX3ZpZXcqIHZpZXc7Ci0gICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKLSAgICBwYXNfc2VncmVn
YXRlZF9wYWdlKiBwYWdlOwotICAgIGJvb2wgZGlkX3Rha2VfYml0OwotICAgIHBhc19sb2NrKiBv
d25lcnNoaXBfbG9jazsKLQotICAgIGRpcmVjdG9yeSA9IGNvbmZpZy0+ZGlyZWN0b3J5OwotICAg
IGluZGV4ID0gY29uZmlnLT5pbmRleDsKLQotICAgIGRpZF90YWtlX2JpdCA9IFBBU19TRUdSRUdB
VEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5LCBmYWxzZSk7Ci0g
ICAgCi0gICAgaWYgKCFkaWRfdGFrZV9iaXQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IHNpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSop
ZGlyZWN0b3J5OwotICAgIGdlbmVyaWNfdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9n
ZXQoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3
X2lzX2V4Y2x1c2l2ZShnZW5lcmljX3ZpZXcpKTsKLSAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfZXhjbHVzaXZlKGdlbmVyaWNfdmlldyk7Ci0gICAgaGVsZF9sb2NrID0gTlVMTDsK
LSAgICBkYXRhID0gY29uZmlnLT5hcmc7Ci0KLSAgICBteV9wYWdlX2NvbmZpZ19wdHIgPSBkYXRh
LT5teV9wYWdlX2NvbmZpZ19wdHI7Ci0gICAgaGVhcF9sb2NrX2hvbGRfbW9kZSA9IGRhdGEtPmhl
YXBfbG9ja19ob2xkX21vZGU7Ci0gICAgZGVjb21taXRfbG9nID0gZGF0YS0+ZGVjb21taXRfbG9n
OwotICAgIG15X3BhZ2VfY29uZmlnID0gKm15X3BhZ2VfY29uZmlnX3B0cjsKLSAgICAKLSAgICBp
ZiAodmVyYm9zZSkKLSAgICAgICAgcGFzX2xvZygiJXA6IGNvbnNpZGVyaW5nIGVtcHR5IGluZGV4
ICV6dSwgdmlldyA9ICVwLlxuIiwgZGlyZWN0b3J5LCBpbmRleCwgdmlldyk7Ci0KLSAgICBpZiAo
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpCi0g
ICAgICAgIG93bmVyc2hpcF9sb2NrID0gcGFzX2xvY2tfZm9yX3N3aXRjaF9jb25kaXRpb25hbGx5
KCZwYXNfaGVhcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICBlbHNlCi0gICAgICAg
IG93bmVyc2hpcF9sb2NrID0gJnZpZXctPm93bmVyc2hpcF9sb2NrOwotCi0gICAgcGFzX2xvY2tf
c3dpdGNoKCZoZWxkX2xvY2ssIG93bmVyc2hpcF9sb2NrKTsKLSAgICAKLSAgICBpZiAocGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpCi0gICAgICAg
IHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKLSAgICAKLSAgICBpZiAoIXBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX293bmVkKHZpZXctPm93bmVyc2hp
cF9raW5kKSkgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2coIm5v
dCBvd25lZC5cbiIpOwotICAgICAgICAKLSAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19h
bmRfcmV0dXJuX2ZhbHNlOwotICAgIH0KLSAgICAKLSAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9mb3JfYm91bmRhcnkodmlldy0+cGFnZV9ib3VuZGFyeSwgbXlfcGFnZV9jb25maWcpOwot
ICAgIAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tp
bmRfaXNfYmlhc2VkKHZpZXctPm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICBpZiAodmVyYm9z
ZSkKLSAgICAgICAgICAgIHBhc19sb2coImV4Y2x1c2l2ZSBtb2RlLlxuIik7Ci0gICAgICAgIAot
ICAgICAgICBpZiAoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVjdG9yeSwg
aW5kZXgsIGVsaWdpYmxlLCBmYWxzZSkpCi0gICAgICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9s
b2NrX2FuZF9yZXR1cm5fZmFsc2U7Ci0gICAgICAgIAotICAgICAgICAvKiBJZiB3ZSBzdG9sZSBl
bGlnaWJpbGl0eSB0aGVuIHRoZSBleGNsdXNpdmUgdmlldyBjYW5ub3QgYmUgZWxpZ2liaWxlLiAq
LwotICAgICAgICBQQVNfQVNTRVJUKCFwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25l
cnNoaXBfa2luZF9pc19iaWFzZWQodmlldy0+b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAgCi0g
ICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRf
aXNfb3duZWQodmlldy0+b3duZXJzaGlwX2tpbmQpKSB7Ci0gICAgICAgICAgICBib29sIHJlc3Vs
dDsKLSAgICAgICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2Rp
ZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAg
ICBQQVNfQVNTRVJUKHJlc3VsdCk7Ci0gICAgICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9sb2Nr
X2FuZF9yZXR1cm5fZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIC8qIEF3a3dh
cmRseSwgdGhpcyBpcyB0aGUgY29ycmVjdCBwbGFjZSB0byBkbyB0aGUgcXVhbGlmaWVzLWZvci1k
ZWNvbW1pdCBjaGVjay4gU2VlIGNvbW1lbnQKLSAgICAgICAgICAgYmVsb3csIGluIHRoZSBiaWFz
aW5nIGNhc2UsIGFib3ZlIHRoZSBzYW1lIGNoZWNrLiBUaGVuIHlvdSdsbCB1bmRlcnN0YW5kIHdo
eSB3ZSBkbyB0aGlzCi0gICAgICAgICAgIGNoZWNrIGhlcmUuICovCi0gICAgICAgIGlmICghcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15X3BhZ2VfY29u
ZmlnKSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xv
Zygid2FzIG5vdCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsK
LSAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tfYW5kX3JldHVybl9mYWxzZTsKLSAg
ICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgb3duaW5n
X3ZpZXc7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2luZ192aWV3
OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIG93bmluZ19kaXJlY3Rvcnk7Ci0g
ICAgICAgIHNpemVfdCBpbmRleF9pbl9vd25pbmc7Ci0gICAgICAgIGJvb2wgcmVzdWx0OwotICAg
ICAgICAKLSAgICAgICAgLyogVGhpcyBpcyB0aGUgb3duZWQrYmlhc2VkIGNhc2UuICovCi0gICAg
ICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25l
cnNoaXBfa2luZF9pc19vd25lZCh2aWV3LT5vd25lcnNoaXBfa2luZCkpOwotICAgICAgICBQQVNf
VEVTVElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tp
bmRfaXNfYmlhc2VkKHZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0KLSAgICAgICAgb3duaW5nX3Zp
ZXcgPSBwYWdlLT5vd25lcjsKLQotICAgICAgICAvKiBUaGlzIGNvZGUgYXNzdW1lcyB0aGF0IGlm
IHdlIGRldGVjdCBjZXJ0YWluIGtpbmRzIG9mIGluY29uc2lzdGVudCBzdGF0ZSB0aGVuIGl0IGNv
dWxkIGJlCi0gICAgICAgICAgIHRoYXQgd2UncmUgcmFjaW5nIHdpdGggc29tZW9uZSB0cnlpbmcg
dG8gdXNlIHRoaXMgdmlldyBmb3IgYWxsb2NhdGlvbiAtIGluIHBhcnRpY3VsYXIsCi0gICAgICAg
ICAgIGJpYXNpbmcgb3IgdW5iaWFzaW5nLiBJbiB0aGF0IGNhc2UsIHdlIGp1c3QgbG9zZSB0aGUg
cmFjZS4KLSAgICAgICAgCi0gICAgICAgICAgIFRoaXMgaXMgZmluZSBiZWNhdXNlIGluIGVhY2gg
b2YgdGhvc2UgcmFjZXMsIHdlIGFyZW4ndCBmb3JnZXR0aW5nIGFib3V0IHRoZSBlbXB0eSBiaXQ6
Ci0gICAgICAgIAotICAgICAgICAgICAtIFdlIGNvdWxkIGJlIHJhY2luZyB3aXRoIGJpYXNpbmc6
IHRoZSBwYWdlLT5vd25lciBoYXNuJ3QgeWV0IGJlZW4gc2V0IHRvIHRoZSBiaWFzaW5nIHZpZXcs
Ci0gICAgICAgICAgICAgYnV0IHRoZSBvd25lcnNoaXAga2luZCBoYXMgYWxyZWFkeSBiZWVuIHNl
dCB0byBiaWFzZWQuIEluIHRoYXQgY2FzZSwgaXQncyBPSyB0byBiYWlsIG91dAotICAgICAgICAg
ICAgIGV2ZW4gdGhvdWdoIHdlJ3ZlIGFscmVhZHkgdGFrZW4gdGhlIGVtcHR5IGJpdCwgc2luY2Ug
Ymlhc2luZyBoYXBwZW5zIG9uIGEgcGF0aC1vZi1uby1yZXR1cm4KLSAgICAgICAgICAgICB0byBh
bGxvY2F0aW5nIHNvbWUgb2JqZWN0IGluIHRoZSBwYWdlLCB3aGljaCB3aWxsIGNhdXNlIGl0IHRv
IGJlY29tZSBub24tZW1wdHkuIEFsc28sCi0gICAgICAgICAgICAgYWxsb2NhdGlvbiBtZWFucyB0
aGF0IHdlIHdpbGwgaGF2ZSB0byBkaWRfc3RvcF9hbGxvY2F0aW5nLCB3aGljaCBzZXRzIHRoZSBl
bXB0eSBiaXQgYWdhaW4KLSAgICAgICAgICAgICBpZiB0aGUgcGFnZSBpcyBlbXB0eSBhdCB0aGF0
IHBvaW50LgotICAgICAgICAKLSAgICAgICAgICAgLSBXZSBjb3VsZCBiZSByYWNpbmcgd2l0aCB1
bmJpYXNpbmc6IGZvciBub3csIHRoaW5ncyBhcmUgZmluZSwgc2luY2UgaWYgd2Ugc2VlIHRoYXQg
dGhlCi0gICAgICAgICAgICAgb3duZXJzaGlwX2tpbmQgaXMgYmlhc2VkIHdoaWxlIGhvbGRpbmcg
dGhlIG93bmVyc2hpcCBsb2NrLCB0aGVuIGl0IG11c3QgbWVhbiB0aGF0IHdlJ3JlCi0gICAgICAg
ICAgICAgcnVubmluZyBiZWZvcmUgYW55IHVuYmlhc2luZyBoYXBwZW5lZCwgb3Igd2UgYXJlIHJp
Z2h0IHBhc3QgdGhlIHBvaW50IHdoZXJlIHVuYmlhc2luZyB3b3VsZAotICAgICAgICAgICAgIGhh
dmUgdGFrZW4gZWxpZ2liaWxpdHkgYnV0IGJlZm9yZSB0aGUgcG9pbnQgd2hlcmUgaXQgd291bGQg
Z3JhYiB0aGUgb3duZXJzaGlwIGxvY2suIFRoaXMKLSAgICAgICAgICAgICBtZWFucyB0aGF0IHdl
IGNvdWxkIGZhaWwgdG8gdGFrZSB0aGUgZWxpZ2libGUgYml0IGhlcmUuIEJ1dCB0aGVuIHVuYmlh
c2luZyB3b3VsZCBzZXQgdGhlCi0gICAgICAgICAgICAgZW1wdHkgYml0IGlmIGl0IG5lZWRzIHRv
IGJlIHNldC4gV2hlbiB3ZSBzd2l0Y2ggbG9ja3MgdG8gdGhlIHBhZ2UgbG9jaywgdGhlbiB3ZSB3
b3VsZCBoYXZlCi0gICAgICAgICAgICAgYWxyZWFkeSBtYXJrZWQgdGhlIGV4Y2x1c2l2ZSB2aWV3
IGFzIG5vdCBiaWFzZWQsIHdoaWNoIHdvdWxkIGNhdXNlIGFueSBvdGhlciB1bmJpYXNpbmcKLSAg
ICAgICAgICAgICBhdHRlbXB0IHRvIGdpdmUgdXAuICovCi0KLSAgICAgICAgaWYgKCFwYXNfc2Vn
cmVnYXRlZF92aWV3X2lzX3NvbWVfYmlhc2luZyhvd25pbmdfdmlldykpIHsKLSAgICAgICAgICAg
IGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIm93bmluZyB2aWV3IGlzIG5v
dCBzb21lIGJpYXNpbmcuXG4iKTsKLSAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9oZWxkX2xvY2tf
YW5kX3JldHVybl9mYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICh2ZXJib3NlKQotICAg
ICAgICAgICAgcGFzX2xvZygib3duaW5nIHZpZXcgaXMgYmlhc2luZy5cbiIpOwotICAgICAgICAK
LSAgICAgICAgYmlhc2luZ192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyhv
d25pbmdfdmlldyk7Ci0KLSAgICAgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaWFzaW5n
IGNvZGUgaGFzIGFscmVhZHkgYXNzb2NpYXRlZCB0aGUgYmlhc2luZyB2aWV3IHdpdGggdGhlIGV4
Y2x1c2l2ZQotICAgICAgICAgICB2aWV3LCBidXQgaGFzbid0IHlldCB0b2xkIHRoZSBwYWdlLiBX
ZSBjb3VsZCBzZWUgdGhhdCBzaW5jZSB0aGUgb3duZXJzaGlwIGxvY2sgd291bGQgYmUKLSAgICAg
ICAgICAgZHJvcHBlZCBieSB0aGVuLiBCdXQgaW4gdGhhdCBjYXNlLCB0aGUgcGFnZSB3b3VsZCB0
aGluayB0aGF0IGl0cyBvd25lciBpcyBleGNsdXNpdmUsIG5vdAotICAgICAgICAgICBiaWFzaW5n
LiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHVuYmlhc2luZyBjb2RlIGhhcyBhbHJlYWR5IGRpc2Fz
c29jaWF0ZWQgdGhlIGJpYXNpbmcgYW5kCi0gICAgICAgICAgIGV4Y2x1c2l2ZSB2aWV3cywgYnV0
IGhhc24ndCB5ZXQgdG9sZCB0aGUgcGFnZS4gV2UgY291bGQgc2VlIHRoYXQgc2luY2UgdGhlIG93
bmVyc2hpcCBsb2NrCi0gICAgICAgICAgIHdvdWxkIGJlIGRyb3BwZWQgYnkgdGhlbi4gQnV0IGlu
IHRoYXQgY2FzZSwgd2Ugd291bGRuJ3QgaGF2ZSBlbmRlZCB1cCBoZXJlLiBBbmQgaXQncyBub3QK
LSAgICAgICAgICAgcG9zc2libGUgZm9yIGJpYXNpbmcgYW5kIHVuYmlhc2luZyB0byBpbnRlcmxl
YXZlLiBCaWFzaW5nIHJ1bnMgYWZ0ZXIgYm90aCB0aGUgYmlhc2luZyBhbmQKLSAgICAgICAgICAg
ZXhjbHVzaXZlIHZpZXcgYXJlIGluZWxpZ2libGUuIFVuYmlhc2luZyBydW5zIHdoaWxlIHRoZSBl
eGNsdXNpdmUgdmlldyBpcyBzdGlsbCBpbmVsaWdpYmxlCi0gICAgICAgICAgIChieSB2aXJ0dWUg
b2YgdGhlIHZpZXcgYmVpbmcgYmlhc2VkIHN0aWxsKSBhbmQgdGhlIGJpYXNpbmcgdmlldyBpcyBt
YWRlIGluZWxpZ2libGUgYWxzby4KLSAgICAgICAgICAgVGhlcmVmb3JlLCB0aGV5IGNhbm5vdCBy
dW4gYXQgdGhlIHNhbWUgdGltZSBmb3IgZWl0aGVyIHRoZSBzYW1lIGV4Y2x1c2l2ZSB2aWV3IChh
bmQgc28gcGFnZSkKLSAgICAgICAgICAgb3IgdGhlIHNhbWUgYmlhc2luZyB2aWV3LiAqLwotICAg
ICAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X3B0cl9sb2FkKCZiaWFzaW5nX3ZpZXctPmV4Y2x1c2l2ZSkKLSAgICAgICAgICAgICAgICAg
ICA9PSB2aWV3KTsKLQotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2co
ImhhdmUgcmlnaHQgZXhjbHVzaXZlLlxuIik7Ci0gICAgICAgIAotICAgICAgICBvd25pbmdfZGly
ZWN0b3J5ID0KLSAgICAgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5X3B0cl9sb2FkKCZiaWFzaW5nX3ZpZXctPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgICAg
IGluZGV4X2luX293bmluZyA9IGJpYXNpbmdfdmlldy0+aW5kZXg7Ci0gICAgICAgIAotICAgICAg
ICBpZiAoIVBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKAotICAgICAgICAgICAgICAg
IG93bmluZ19kaXJlY3RvcnksIGluZGV4X2luX293bmluZywgZWxpZ2libGUsIGZhbHNlKSkgewot
ICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xvZygiZGlkIG5v
dCBnZXQgZWxpZ2liaWxpdHkuXG4iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZ290byBy
ZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICAvKiBCZWZvcmUgd2UgdW5iaWFzLCBpdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5k
IGlmIHRoZSBwYWdlIHdvdWxkIHF1YWxpZnkgZm9yIGRlY29tbWl0Ci0gICAgICAgICAgIGF0IGFs
bC4gTGlrZSwgd2UgY2FuJ3QgdW5iaWFzIGFuZCB0aGVuIGRvIHRoaXMgY2hlY2sgLSBpZiB3ZSBk
aWQsIHRoZW4gYW55IGJpYXNlZCBwYWdlCi0gICAgICAgICAgIHRoYXQgaGFkIGV2ZXIgZ29uZSBl
bXB0eSB3b3VsZCBiZSB1bmJpYXNlZCB0aGUgZmlyc3QgdGltZSB0aGUgc2NhdmVuZ2VyIHJhbi4g
QnV0IGl0J3MKLSAgICAgICAgICAgY29vbCAtLSB3ZSBjYW4gZG8gdGhpcy4gSGVyZSdzIHRoZSBy
ZWFzb25pbmcuCi0gICAgICAgICAgIAotICAgICAgICAgICBBdCB0aGlzIHBvaW50LCB3ZSBjYW4g
bWFrZSBhIGZpbmFsIGp1ZGdlbWVudCBzaW5jZSB3ZToKLSAgICAgICAgICAgCi0gICAgICAgICAg
IC0gSG9sZCB0aGUgb3duZXJzaGlwIGxvY2sgYW5kIGhhdmUgY29uZmlybWVkIHRoYXQgdGhlIHBh
Z2UgaXMgc3RpbGwgb3duZWQuIFNvLCB3ZQotICAgICAgICAgICBjYW4gcmVhZCB0aGUgcGFnZS4K
LSAgICAgICAgICAgCi0gICAgICAgICAgIC0gVGhhdCBwYWdlIGlzIGluZWxpZ2libGUuIFNvLCBp
ZiBpdCBoYWQgYmVlbiBlbXB0eSBhdCB0aGUgbW9tZW50IHdlIG1hZGUgaXQKLSAgICAgICAgICAg
aW5lbGlnaWJsZSB0aGVuIGl0IGNhbid0IHBvc3NpYmx5IGZpbGwgdXAgdW50aWwgd2UgbWFrZSBp
dCBlbGlnaWJsZSBhZ2Fpbi4gT25seQotICAgICAgICAgICBkZWFsbG9jYXRpb25zIGNhbiBoYXBw
ZW4uIFNvLCBpdCBfaXNfIHBvc3NpYmxlIGZvciB1cyB0byBub3cgdGhpbmsgdGhhdCB0aGUgcGFn
ZSBpcwotICAgICAgICAgICBub3QgZW1wdHkgYnV0IHRoZSBwYWdlIGNhbiBiZWNvbWUgZW1wdHkg
cmlnaHQgYWZ0ZXIgdGhhdC4gRm9ydHVuYXRlbHksIGlmIHRoYXQKLSAgICAgICAgICAgaGFwcGVu
cywgdGhlIGVtcHR5IGJpdCB3aWxsIGdldCBzZXQgYWdhaW4uICovCi0gICAgICAgIGlmICghcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15X3BhZ2VfY29u
ZmlnKSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgcGFzX2xv
Zygid2FzIG5vdCBlbXB0eS5cbiIpOwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleCgKLSAgICAgICAgICAgICAgICBv
d25pbmdfZGlyZWN0b3J5LCBpbmRleF9pbl9vd25pbmcpOwotICAgICAgICAgICAgZ290byByZWxl
YXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICAvKiBVbmJpYXMuIFRoaXMgZW5zdXJlcyB0aGF0IHdoZW4gdGhlIGJpYXNpbmcgZGlyZWN0
b3J5IHRyaWVzIHRvIGFsbG9jYXRlIG91dCBvZgotICAgICAgICAgICB0aGlzIGJpYXNpbmcgdmll
dywgaXQgZ2V0cyBhIGNoYW5jZSB0byB0YWtlX2ZpcnN0X2VsaWdpYmxlIGZyb20gdGhpcyBnbG9i
YWwgc2l6ZQotICAgICAgICAgICBkaXJlY3RvcnkgKHdoaWNoIGhvcGVmdWxseSBnaXZlcyBpdCBh
IHZpZXcgdGhhdCBpc24ndCBkZWNvbW1pdHRlZCkuICovCi0gICAgICAgIHZpZXctPm93bmVyc2hp
cF9raW5kID0KLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVy
c2hpcF9raW5kX3dpdGhfYmlhc2VkKAotICAgICAgICAgICAgICAgIHZpZXctPm93bmVyc2hpcF9r
aW5kLCBmYWxzZSk7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwYXNfbG9n
KCJ2aWV3ICVwIGhhcyBvd25lcnNoaXAga2luZCA9ICVzIGR1ZSB0byB1bmJpYXNpbmcgaW4gdGFr
ZV9sYXN0X2VtcHR5XG4iLAotICAgICAgICAgICAgICAgICAgICB2aWV3LAotICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRf
c3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQpKTsK
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hf
bG9jayhwYWdlLCAmaGVsZF9sb2NrLCAqbXlfcGFnZV9jb25maWdfcHRyKTsKLSAgICAgICAgCi0g
ICAgICAgIC8qIElmIHRoaXMgZXhjbHVzaXZlIGFscmVhZHkgaGFkIGEgcGFnZSwgdGhlbiB0aGUg
cGFnZSBtdXN0IGJlIHNheWluZyB0aGF0IGl0J3MKLSAgICAgICAgICAgZWxpZ2libGUuIFNvIGl0
IGlzX2JpYXNpbmcsIG5vdCBtZXJlbHkgaXNfc29tZV9iaWFzaW5nLiAqLwotICAgICAgICBQQVNf
QVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2luZyhwYWdlLT5vd25lcikpOwotICAg
ICAgICAKLSAgICAgICAgcGFnZS0+b3duZXIgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19hc192aWV3X25vbl9udWxsKHZpZXcpOwotICAgICAgICAKLSAgICAgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKCZiaWFzaW5nX3ZpZXct
PmV4Y2x1c2l2ZSwgTlVMTCk7Ci0gICAgICAgIAotICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KAotICAgICAg
ICAgICAgb3duaW5nX2RpcmVjdG9yeSwgaW5kZXhfaW5fb3duaW5nKTsKLSAgICAgICAgUEFTX0FT
U0VSVChyZXN1bHQpOwotICAgIH0KLSAgICAKLSAgICAvKiBUaGlzIGhhcyBhIHZlcnkgc2hvcnQg
cmFjZSB0aGF0IGNhdXNlcyB0aGUgZGlyZWN0b3J5IHRvIHBvc3NpYmx5IHdhc3RlIG1lbW9yeTog
aWYKLSAgICAgICBkdXJpbmcgdGhpcyBicmllZiB3aW5kb3cgd2UgaGF2ZSBzb21lb25lIHRyeWlu
ZyB0byBmaW5kIGFuIGVsaWdpYmxlIHBhZ2UsIHRoZXkgbWF5Ci0gICAgICAgZW5kIHVwIGFsbG9j
YXRpbmcgYSBuZXcgb25lLgotICAgICAgIAotICAgICAgIEJ1dCB3ZSBkZWxpYmVyYXRlbHkga2Vl
cCB0aGUgZHVyYXRpb24gb2YgdGhpcyByYWNlIHdpbmRvdyBzaG9ydC4gV2UgbWFrZSB0aGUgcGFn
ZQotICAgICAgIGluZWxpZ2libGUgb25seSBkdXJpbmcgdGhlIHRpbWUgaXQgdGFrZXMgdXMgdG8g
ZmlndXJlIG91dCBob3cgdG8gZGVjb21taXQgaXQgYW5kIHRvCi0gICAgICAgYWNxdWlyZSB0aGUg
Y29tbWl0IGxvY2suIFRoZSBjb21taXQgbG9jayBzaG91bGQgYmUgdHJpdmlhbGx5IGF2YWlsYWJs
ZSBoZXJlLCBzbwotICAgICAgIHRoYXQncyBqdXN0IGEgQ0FTLiBBZnRlciB0aGF0LCB0aGUgcGFn
ZSBpcyBtYWRlIGVpdGhlciBlbGlnaWJsZSBvciBkZWNvbW1pdHRlZC4KLSAgICAgICBFaXRoZXIg
d2F5LCBpZiBpdCdzIHRoZSBmaXJzdCBlbGlnaWJsZSwgc29tZW9uZSB3aWxsIHRyeSB0byB1c2Ug
aXQuIEF0IHRoYXQgcG9pbnQsCi0gICAgICAgaWYgd2UgYXJlIG5vdCBkb25lLCB0aGV5IHdpbGwg
d2FpdCBmb3IgdXMgc2luY2Ugd2UgaG9sZCB0aGUgY29tbWl0IGxvY2suICovCi0KLSAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ssIG15X3BhZ2VfY29u
ZmlnKTsKLQotICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15
X3BhZ2VfY29uZmlnKSkgewotICAgICAgICAvKiBUaGUgdXRpbGl0eSBoZWFwIHJlcXVpcmVzIHVz
IHRvIGhvbGQgdGhlIGhlYXAgbG9jayBhbnl0aW1lIHdlJ2QgaG9sZCB0aGUgb3duZXJzaGlwLCBj
b21taXQsCi0gICAgICAgICAgIG9yIHBhZ2UgbG9ja3MuIEl0IGp1c3Qgc28gaGFwcGVucyB0aGF0
IHdlIHdlcmUgYWxyZWFkeSBob2xkaW5nIHRoZSBoZWFwIGxvY2ssIGFuZAotICAgICAgICAgICBw
YWdlX3N3aXRjaF9sb2NrIGRvZXMgbm90aGluZyBmb3IgdXRpbGl0eS4gU28gd2Ugc2hvdWxkIHN0
aWxsIGJlIGhvbGRpbmcgdGhlIGhlYXAgbG9jay4gKi8KLSAgICAgICAgUEFTX0FTU0VSVChoZWxk
X2xvY2sgPT0gcGFzX2xvY2tfZm9yX3N3aXRjaF9jb25kaXRpb25hbGx5KCZwYXNfaGVhcF9sb2Nr
LCBoZWFwX2xvY2tfaG9sZF9tb2RlKSk7Ci0gICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hl
bGQoKTsKLSAgICB9Ci0KLSAgICBQQVNfQVNTRVJUKCFQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllf
R0VUX0JJVChkaXJlY3RvcnksIGluZGV4LCBlbGlnaWJsZSkpOwotCi0gICAgLyogSXQncyB0b3Rh
bGx5IHBvc3NpYmxlIHRoYXQgdGhlIGVtcHR5IGJpdCBnb3Qgc2V0IGFnYWluLiBXZSBzaG91bGQg
Y2xlYXIgaXQgZm9yIHN1cmUgbm93LiAqLwotICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9T
RVRfQklUKGRpcmVjdG9yeSwgaW5kZXgsIGVtcHR5LCBmYWxzZSk7Ci0KLSAgICBQQVNfVEVTVElO
R19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2Us
IG15X3BhZ2VfY29uZmlnKSk7Ci0gICAgCi0gICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2lzX3V0aWxpdHkobXlfcGFnZV9jb25maWcpKSB7Ci0gICAgICAgIFBBU19BU1NFUlQobXlf
cGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPT0gbXlfcGFnZV9jb25maWcuYmFzZS5ncmFudWxl
X3NpemUpOwotICAgICAgICAKLSAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwot
Ci0gICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kID0gcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZl
X3ZpZXdfb3duZXJzaGlwX2tpbmRfd2l0aF9vd25lZCgKLSAgICAgICAgICAgIHZpZXctPm93bmVy
c2hpcF9raW5kLCBmYWxzZSk7Ci0gICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBw
YXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25lcnNoaXAga2luZCA9ICVzIGR1ZSB0byB1dGlsaXR5IGRl
Y29tbWl0IGluIHRha2VfbGFzdF9lbXB0eVxuIiwKLSAgICAgICAgICAgICAgICAgICAgdmlldywK
LSAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJz
aGlwX2tpbmRfZ2V0X3N0cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZXctPm93bmVy
c2hpcF9raW5kKSk7Ci0gICAgICAgIH0KLSAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0
KAotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBteV9wYWdl
X2NvbmZpZyksCi0gICAgICAgICAgICBteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7Ci0g
ICAgICAgIGRlY29tbWl0X2xvZy0+dG90YWwgKz0gbXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3Np
emU7Ci0gICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFn
ZS0+YmFzZSwgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7
Ci0gICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICAgICAgZGF0
YS0+cmVzdWx0ID0gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotICAgIAotICAgIGlmIChwYWdlLT5udW1fbm9uX2VtcHR5X3dv
cmRzKSB7Ci0gICAgICAgIGJvb2wgZGVjb21taXRfcmVzdWx0OwotICAgICAgICBzaXplX3QgbnVt
X2NvbW1pdHRlZF9ncmFudWxlczsKLSAgICAgICAgCi0gICAgICAgIC8qIE5vIHBhcnRpYWwgZGVj
b21taXQgaW4gdGhlIHV0aWxpdHkgaGVhcCEgKi8KLSAgICAgICAgUEFTX0FTU0VSVCghcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpOwotICAgICAg
ICAKLSAgICAgICAgLyogV2Uga25vdyB0aGF0IHRoZXJlIG11c3QgYmUgZW1wdHkgZ3JhbnVsZXMg
aW4gdGhpcyBwYWdlLCBzaW5jZSBlaXRoZXIgdGhlIGVtcHR5Ci0gICAgICAgICAgIG9yIHRoZSBw
YXJ0bHlfZW1wdHkgYml0IHdhcyBzZXQuIFRob3NlIGJpdHMgd291bGRuJ3QgZ2V0IHNldCB1bmxl
c3Mgd2Ugbm90aWNlZAotICAgICAgICAgICBhbiBlbXB0eSBncmFudWxlLiBJZiB3ZSBkaWQgdHJ5
IHRvIGFsbG9jYXRlIGZyb20gdGhvc2UgZ3JhbnVsZXMsIHdlIHdvdWxkIGZpcnN0Ci0gICAgICAg
ICAgIGhhdmUgdG8gdGFrZSBhd2F5IGl0cyBlbGlnaWJpbGl0eSBhbmQgdGhlbiBjbGVhciBpdHMg
ZW1wdHkgYml0cy4gQnV0IHdlIGtub3cgdGhhdAotICAgICAgICAgICB0aGlzIGNvdWxkIG5vdCBo
YXZlIGhhcHBlbmVkIHNpbmNlICp3ZSogdG9vayBhd2F5IGl0cyBlbGlnaWJpbGl0eS4gKi8KLSAg
ICAgICAgCi0gICAgICAgIGRlY29tbWl0X3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfdGFr
ZV9lbXB0eV9ncmFudWxlcygKLSAgICAgICAgICAgIHBhZ2UsIGRlY29tbWl0X2xvZywgJmhlbGRf
bG9jaywgcGFzX3JhbmdlX2lzX25vdF9sb2NrZWQsIGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAg
ICAgICAKLSAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwotICAgICAg
ICAKLSAgICAgICAgbnVtX2NvbW1pdHRlZF9ncmFudWxlcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Z2V0X251bV9jb21taXR0ZWRfZ3JhbnVsZXMocGFnZSk7Ci0gICAgICAgIFBBU19BU1NFUlQobnVt
X2NvbW1pdHRlZF9ncmFudWxlcyk7Ci0gICAgICAgIAotICAgICAgICAvKiBUaGUgcGFnZSBjYW4g
YmVjb21lIGVsaWdpYmxlIGFnYWluIG5vdyB0aGF0IHdlJ3ZlIG1hcmtlZCB0aGluZ3MgZm9yIGRl
Y29tbWl0LiAqLwotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVj
b21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICAKLSAgICAg
ICAgaWYgKGRlY29tbWl0X3Jlc3VsdCkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgcGFzX2xvZygiJXA6IGRpZCBwYXJ0bHkgdGFrZSBpbmRleCAlenVcbiIsIGRp
cmVjdG9yeSwgaW5kZXgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleChkaXJlY3Rvcnks
IGluZGV4KTsKLSAgICAgICAgICAgIGRhdGEtPnJlc3VsdCA9IHBhc19wYWdlX3NoYXJpbmdfcG9v
bF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywg
JnZpZXctPm93bmVyc2hpcF9sb2NrKTsKLSAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQgPSBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF93aXRoX293bmVkKAot
ICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQsIGZhbHNlKTsKLSAgICAgICAgaWYgKHZl
cmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIG93bmVyc2hpcCBraW5k
ID0gJXMgZHVlIHRvIG5vcm1hbCBkZWNvbW1pdCBpbiB0YWtlX2xhc3RfZW1wdHlcbiIsCi0gICAg
ICAgICAgICAgICAgICAgIHZpZXcsCi0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2dldF9zdHJpbmcoCi0gICAgICAgICAgICAg
ICAgICAgICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCkpOwotICAgICAgICB9Ci0gICAgICAgIHBh
c19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKLSAgICAgICAgCi0gICAgICAgIGlmICgh
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV90YWtlX3BoeXNpY2FsbHkoCi0gICAgICAgICAgICAgICAgcGFn
ZSwgZGVjb21taXRfbG9nLCBwYXNfcmFuZ2VfaXNfbm90X2xvY2tlZCwgaGVhcF9sb2NrX2hvbGRf
bW9kZSkpIHsKLSAgICAgICAgICAgIFBBU19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfaXNfdXRpbGl0eShkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpKTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssICZ2aWV3LT5v
d25lcnNoaXBfbG9jayk7Ci0gICAgICAgICAgICB2aWV3LT5vd25lcnNoaXBfa2luZCA9IHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX3dpdGhfb3duZWQoCi0gICAg
ICAgICAgICAgICAgdmlldy0+b3duZXJzaGlwX2tpbmQsIHRydWUpOwotICAgICAgICAgICAgaWYg
KHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBvd25lcnNo
aXAga2luZCA9ICVzIGR1ZSB0byB1bmRvIG9mIGRlY29tbWl0IGluIHRha2VfbGFzdF9lbXB0eVxu
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9nZXRfc3RyaW5n
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXctPm93bmVyc2hpcF9raW5kKSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVM
TCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92
aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VtcHR5X2F0
X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBkYXRh
LT5yZXN1bHQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9sb2Nrc191bmF2YWlsYWJsZTsK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBp
ZiAodmVyYm9zZSkgewotICAgICAgICAgICAgcGFzX2xvZygiJXA6IGRpZCBmdWxseSB0YWtlIGlu
ZGV4ICV6dVxuIiwgZGlyZWN0b3J5LCBpbmRleCk7Ci0gICAgICAgICAgICBwYXNfbG9nKCJEZXN0
cm95aW5nIHBhZ2UgaGVhZGVyIGZvciB2aWV3ID0gJXAsIHBhZ2UgPSAlcCwgYm91bmRhcnkgPSAl
cCAoJXApICIKLSAgICAgICAgICAgICAgICAgICAgImFzIHBhcnQgb2YgZGVjb21taXQuXG4iLAot
ICAgICAgICAgICAgICAgICAgICB2aWV3LCBwYWdlLCBwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5k
YXJ5KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSwKLSAgICAgICAgICAgICAgICAgICAgdmlldy0+cGFn
ZV9ib3VuZGFyeSk7Ci0gICAgICAgIH0KLSAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5kZXN0
cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotICAg
ICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxlX2F0
X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgIH0KLSAgICAKLSAgICBkYXRhLT5yZXN1bHQg
PSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9zdWNjZXNzOwotICAgIHJldHVybiB0cnVlOwot
Ci1yZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNlOgotICAgIHBhc19sb2NrX3N3aXRj
aCgmaGVsZF9sb2NrLCBOVUxMKTsKLQotICAgIC8qIFJldHVybmluZyBmYWxzZSBtZWFucyB0aGF0
IHRoZSBiYWNrd2FyZHMgaXRlcmF0aW9uIGtlZXBzIGdvaW5nIGFuZCB0aGlzIHNob3VsZCBnZXQg
Y2FsbGVkCi0gICAgICAgYWdhaW4gaWYgdGhlcmUgYXJlIGFueSBvdGhlciB2aWV3cyBtYXJrZWQg
ZW1wdHkuICovCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1wYXNfcGFnZV9zaGFyaW5nX3Bvb2xf
dGFrZV9yZXN1bHQKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV90YWtlX2xh
c3RfZW1wdHkoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXpl
X2RpcmVjdG9yeSwKLSAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2cs
Ci0gICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAgLyog
QmUgY2FyZWZ1bDogaGVhcF9sb2NrX2hvbGRfbW9kZSBoZXJlIGNhbiBiZSB1bnJlbGF0ZWQgdG8g
d2hhdCBwYWdlX2NvbmZpZyBzYXlzLCBzaW5jZQotICAgICAgIHdlIG1heSBiZSBhc2tlZCBieSB0
aGUgcGh5c2ljYWwgcGFnZSBzaGFyaW5nIHBvb2wgdG8gZGVjb21taXQgb24gYmVoYWxmIG9mIGFu
eSBvdGhlciBoZWFwLAotICAgICAgIGluY2x1ZGluZyBvbmVzIHRoYXQgaG9sZCB0aGUgaGVhcCBs
b2NrIHdoaWxlIGRvaW5nIGJ1c2luZXNzLiAqLwotCi0gICAgdGFrZV9sYXN0X2VtcHR5X2RhdGEg
ZGF0YTsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9jb25maWcgY29uZmln
OwotICAgIGJvb2wgZGlkX2ZpbmRfc29tZXRoaW5nOwotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSogZGlyZWN0b3J5OwotCi0gICAgZGlyZWN0b3J5ID0gJnNpemVfZGlyZWN0b3J5LT5iYXNl
OwotCi0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKGRpcmVjdG9yeS0+cGFnZV9jb25maWdfa2luZCAh
PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpOwotCi0gICAgZGF0YS5kZWNv
bW1pdF9sb2cgPSBkZWNvbW1pdF9sb2c7Ci0gICAgZGF0YS5oZWFwX2xvY2tfaG9sZF9tb2RlID0g
aGVhcF9sb2NrX2hvbGRfbW9kZTsKLSAgICBkYXRhLnJlc3VsdCA9IHBhc19wYWdlX3NoYXJpbmdf
cG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOwotCi0gICAgZGF0YS5teV9wYWdlX2NvbmZpZ19wdHIg
PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcoZGlyZWN0b3J5LT5w
YWdlX2NvbmZpZ19raW5kKTsKLQotICAgIGNvbmZpZy5kaXJlY3RvcnkgPSBkaXJlY3Rvcnk7Ci0g
ICAgY29uZmlnLnNob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsID0gdGFrZV9sYXN0X2VtcHR5
X3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsOwotICAgIGNvbmZpZy5jb25zaWRlcl92aWV3
ID0gdGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXc7Ci0gICAgY29uZmlnLmFyZyA9ICZkYXRh
OwotCi0gICAgZGlkX2ZpbmRfc29tZXRoaW5nID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2l0ZXJhdGVfYmFja3dhcmRfdG9fdGFrZV9sYXN0X2VtcHR5KCZjb25maWcpOwotCi0g
ICAgaWYgKCFkaWRfZmluZF9zb21ldGhpbmcpCi0gICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFy
aW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZTsKLQotICAgIFBBU19BU1NFUlQocGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2RvaW5nX3NoYXJpbmcoZGlyZWN0b3J5KSk7Ci0gICAgcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEoCi0gICAgICAgICZwYXNfcGh5c2ljYWxf
cGFnZV9zaGFyaW5nX3Bvb2wsCi0gICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRf
Y3JlYXRlKAotICAgICAgICAgICAgZGlyZWN0b3J5LAotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hh
cmluZ19wYXJ0aWNpcGFudF9raW5kX3NlbGVjdF9mb3Jfc2VncmVnYXRlZF9kaXJlY3RvcnkoCi0g
ICAgICAgICAgICAgICAgZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkpKTsKLSAgICAKLSAgICBy
ZXR1cm4gZGF0YS5yZXN1bHQ7Ci19Ci0KLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCi0g
ICAgdWludHB0cl90IGJlZ2luLAotICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQotewotICAg
IHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFsKAotICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KGJlZ2luLCBjb25maWcp
KTsKLX0KLQotcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQKLXBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHNpemVfdCBjb3Vu
dCwKLSAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCi0gICAgcGFz
X2hlYXBfY29uZmlnKiBjb25maWcsCi0gICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKLXsKLSAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCB0bGNfcmVzdWx0OwotICAgIHVuc2lnbmVkIGJh
c2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKLQotICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9yKGRpcmVjdG9yeSkpOwotICAg
IFBBU19BU1NFUlQoIXBhc19oZWFwX2NvbmZpZ19pc191dGlsaXR5KGNvbmZpZykpOwotICAgIAot
ICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJl
X2FsbG9jYXRvcl9pbmRleCgKLSAgICAgICAgZGlyZWN0b3J5LT5oZWFwLAotICAgICAgICBkaXJl
Y3RvcnksCi0gICAgICAgIGNvdW50LAotICAgICAgICBjb3VudF9sb29rdXBfbW9kZSwKLSAgICAg
ICAgY29uZmlnLAotICAgICAgICBjYWNoZWRfaW5kZXgpOwotICAgIHBhc19oZWFwX2xvY2tfdW5s
b2NrKCk7Ci0KLSAgICAvKiBDdXJyZW50bHkgYXMgc29vbiBhcyB3ZSBzd2l0Y2ggdG8gVExDIGFs
bG9jYXRvcnMsIHdlIGNhbm5vdCBwb3NzaWJseSBoYXZlIGEgYmFzZWxpbmUKLSAgICAgICBhbGxv
Y2F0b3IuIEJ1dCBpZiB3ZSBkbywgd2Ugc2hvdWxkIHN0b3AgaXQgbm93LiAqLwotICAgIGJhc2Vs
aW5lX2FsbG9jYXRvcl9pbmRleCA9IGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4
OwotICAgIGlmIChiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXggPCBQQVNfTlVNX0JBU0VMSU5FX0FM
TE9DQVRPUlMpIHsKLSAgICAgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvciogYmFzZWxpbmVfYWxs
b2NhdG9yOwotICAgICAgICAKLSAgICAgICAgYmFzZWxpbmVfYWxsb2NhdG9yID0gcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcl90YWJsZSArIGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKLSAgICAgICAg
Ci0gICAgICAgIHBhc19sb2NrX2xvY2soJmJhc2VsaW5lX2FsbG9jYXRvci0+bG9jayk7Ci0KLSAg
ICAgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0IGR1ZSB0byBhIHJhY2UsIHRoZSBkaXJlY3Rvcnkn
cyBpbmRleCBoYXMgYmVlbiByZWFzc2lnbmVkIHRvIHNvbWV0aGluZwotICAgICAgICAgICBlbHNl
LiBBdCB3b3JzdCwgdGhhdCByYWNlIHdpbGwgbWVhbiB0aGF0IHNvbWUgYmFzZWxpbmUgYWxsb2Nh
dG9yIHdpbGwgYmUgdXNlZCBmb3IKLSAgICAgICAgICAgYWxsb2NhdGlvbi4gVGhlcmUncyBub3Qg
YSB3aG9sZSBsb3Qgd2UgY2FuIGRvIGFib3V0IHRoYXQuIEF0IHdvcnN0LCBpdCBtZWFucyBsZXR0
aW5nIHRoZQotICAgICAgICAgICBoaWdoIHdhdGVybWFyayBncm93IGEgYml0IGluIGNhc2Ugb2Yg
YSB3ZWlyZCByYWNlLiAqLwotICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0
b3JfaW5kZXggPT0gYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4KSB7Ci0gICAgICAgICAgICBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX2RldGFjaF9kaXJlY3RvcnkoYmFzZWxpbmVfYWxsb2NhdG9yKTsK
LSAgICAgICAgICAgIHBhc19mZW5jZSgpOwotICAgICAgICAgICAgZGlyZWN0b3J5LT5iYXNlbGlu
ZV9hbGxvY2F0b3JfaW5kZXggPSAyICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOwotICAg
ICAgICB9Ci0gICAgICAgIAotICAgICAgICBwYXNfbG9ja191bmxvY2soJmJhc2VsaW5lX2FsbG9j
YXRvci0+bG9jayk7Ci0gICAgfQotICAgIAotICAgIHRsY19yZXN1bHQgPSBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IoCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfZ2V0KGNvbmZpZyksCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0
b3JfaW5kZXgsCi0gICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLSAgICAKLSAgICBQQVNf
QVNTRVJUKHRsY19yZXN1bHQuZGlkX3N1Y2NlZWQpOwotCi0gICAgcmV0dXJuIHBhc19iYXNlbGlu
ZV9hbGxvY2F0b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKHRsY19yZXN1bHQuYWxsb2NhdG9yLCBO
VUxMKTsKLX0KLQotcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSogZGF0YTsKLSAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZzsKLSAgICBwYXNfaGVhcF9zdW1tYXJ5IHJl
c3VsdDsKLSAgICBzaXplX3QgcGF5bG9hZF9zaXplOwotCi0gICAgUEFTX0FTU0VSVChkaXJlY3Rv
cnktPmJhc2UucGFnZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX251bGwpOwotCi0gICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOwotICAgIHBhZ2VfY29uZmlnID0g
KnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJh
c2UucGFnZV9jb25maWdfa2luZCk7Ci0gICAgCi0gICAgcmVzdWx0ID0gcGFzX2hlYXBfc3VtbWFy
eV9jcmVhdGVfZW1wdHkoKTsKLSAgICAKLSAgICBwYXlsb2FkX3NpemUgPSAoZGF0YS0+b2Zmc2V0
X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgLQotICAgICAgICAgICAg
ICAgICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCk7
Ci0gICAgCi0gICAgcmVzdWx0LmRlY29tbWl0dGVkICs9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9z
aXplOwotICAgIHJlc3VsdC5mcmVlICs9IHBheWxvYWRfc2l6ZTsKLSAgICByZXN1bHQuZnJlZV9k
ZWNvbW1pdHRlZCArPSBwYXlsb2FkX3NpemU7Ci0gICAgCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LQotdHlwZWRlZiBzdHJ1Y3QgewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSogZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjayBjYWxsYmFjazsKLSAg
ICB2b2lkKiBhcmc7Ci19IGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RhdGE7Ci0KLXN0YXRpYyBib29s
IGZvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKLSAgICB1aW50
cHRyX3QgYmVnaW4sCi0gICAgdm9pZCogYXJnKQotewotICAgIGZvcl9lYWNoX2xpdmVfb2JqZWN0
X2RhdGEqIGRhdGE7Ci0KLSAgICBQQVNfVU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7Ci0KLSAgICBk
YXRhID0gYXJnOwotCi0gICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNrKGRhdGEtPmdsb2JhbF9zaXpl
X2RpcmVjdG9yeSwgdmlldywgYmVnaW4sIGRhdGEtPmFyZyk7Ci19Ci0KLWJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVfb2JqZWN0KAotICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxs
YmFjayBjYWxsYmFjaywKLSAgICB2b2lkKiBhcmcpCi17Ci0gICAgZm9yX2VhY2hfbGl2ZV9vYmpl
Y3RfZGF0YSBkYXRhOwotCi0gICAgZGF0YS5nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgPSBkaXJlY3Rv
cnk7Ci0gICAgZGF0YS5jYWxsYmFjayA9IGNhbGxiYWNrOwotICAgIGRhdGEuYXJnID0gYXJnOwot
ICAgIAotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9s
aXZlX29iamVjdCgKLSAgICAgICAgJmRpcmVjdG9yeS0+YmFzZSwgZm9yX2VhY2hfbGl2ZV9vYmpl
Y3RfY2FsbGJhY2ssICZkYXRhKTsKLX0KLQotc2l6ZV90IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kIGtpbmQ7Ci0KLSAgICBraW5kID0gZGlyZWN0b3J5LT5iYXNlLnBhZ2Vf
Y29uZmlnX2tpbmQ7Ci0KLSAgICBpZiAoa2luZCA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kX251bGwpCi0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX251bGxfY29uZmlnKCk7Ci0gICAgCi0g
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxv
Y2F0b3Jfc2l6ZV9mb3JfY29uZmlnKAotICAgICAgICAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfa2luZF9nZXRfY29uZmlnKGtpbmQpKTsKLX0KLQotcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewot
ICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9j
YXRvcl9pbmRpY2VzX2Zvcl9hbGxvY2F0b3Jfc2l6ZSgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9yeSkpOwot
fQotCi12b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVy
ZW5jZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwgcGFzX3N0cmVhbSogc3RyZWFtKQotewotICAgIHBhc19zdHJlYW1fcHJpbnRmKAotICAgICAg
ICBzdHJlYW0sCi0gICAgICAgICIlcChzZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSwg
JXUsICVwLCAlcykiLAotICAgICAgICBkaXJlY3RvcnksCi0gICAgICAgIGRpcmVjdG9yeS0+b2Jq
ZWN0X3NpemUsCi0gICAgICAgIGRpcmVjdG9yeS0+aGVhcCwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZp
Z19raW5kKSk7Ci19Ci0KLXZvaWQgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2R1bXBfZm9yX3NwZWN0cnVtKAotICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGlyZWN0
b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1wX3Jl
ZmVyZW5jZShkaXJlY3RvcnksIHN0cmVhbSk7Ci19Ci0KLSNlbmRpZiAvKiBMSUJQQVNfRU5BQkxF
RCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeS5oCShub25leGlzdGVudCkKQEAgLTEs
MjMxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9ICi0j
ZGVmaW5lIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9ICi0KLSNpbmNsdWRl
ICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF9nbG9iYWxfc2l6ZV9jbGFzc19wdHIuaCIKLSNpbmNsdWRlICJwYXNfY29tcGFjdF9hdG9t
aWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIgotI2luY2x1ZGUgInBhc19j
b21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKLSNpbmNsdWRl
ICJwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHIuaCIKLSNpbmNs
dWRlICJwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2Nv
bmZpZy5oIgotI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19wYWdl
X2dyYW51bGVfdXNlX2NvdW50LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdHJ1Y3QgcGFzX2V4dGVuZGVkX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGE7Ci1zdHJ1Y3QgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Owotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kYXRhOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5X2RhdGE7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YTsKLXR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YTsKLQotUEFTX0RFRklORV9DT01QQUNUX0FU
T01JQ19QVFIocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHIpOwotCi1QQVNfQVBJIGV4dGVybiBib29sIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZTsKLVBBU19BUEkgZXh0ZXJuIGJvb2wgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2ZvcmNlX2V4cGxvZGU7Ci0KLXN0cnVj
dCBQQVNfQUxJR05FRChzaXplb2YocGFzX3ZlcnNpb25lZF9maWVsZCkpIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSB7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5IGJh
c2U7Ci0gICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcDsKLQotICAgIHVuc2lnbmVk
IG9iamVjdF9zaXplIDogMjc7Ci0gICAgdW5zaWduZWQgYWxpZ25tZW50X3NoaWZ0IDogNTsKLQot
ICAgIC8qIFRoaXMgaGFzIGEgZnVubnkgZW5jb2RpbmcgKGxldCBOID0gUEFTX05VTV9CQVNFTElO
RV9BTExPQ0FUT1JTKToKLSAgICAgICAKLSAgICAgICBpbmRleCBpbiBbMCwgTikgICAgID0+IGF0
dGFjaGVkIHRvIGluZGV4Ci0gICAgICAgaW5kZXggaW4gW04sIDJOKSAgICA9PiBhdHRhY2hpbmcg
dG8gaW5kZXggLSBOCi0gICAgICAgMk4gICAgICAgICAgICAgICAgICA9PiBkZXRhY2hlZAotICAg
ICAgIAotICAgICAgIEluIHRoZSBkZXRhY2hlZCBzdGF0ZSwgdGhlIG9ubHkgd2F5IHRvIGNoYW5n
ZSB0aGlzIGlzIHRvIENBUyBpdC4KLSAgICAgICAKLSAgICAgICBJbiB0aGUgYXR0YWNoZWQgYW5k
IGF0dGFjaGluZyBzdGF0ZXMsIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4J3MgbG9jayBwcm90ZWN0
cyB0aGlzIGZpZWxkLiAqLwotICAgIHVpbnQxNl90IGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsK
LSAgICAKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHIg
ZGF0YTsKLSAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2dsb2JhbF9zaXplX2NsYXNzX3B0
ciBiaXRmaXRfc2l6ZV9jbGFzczsKLQotICAgIC8qIFRoZSBvd25pbmcgc2VncmVnYXRlZCBoZWFw
IGhvbGRzIHRoZXNlIGluIGEgc2luZ2x5IGxpbmtlZCBsaXN0LiAqLwotICAgIHBhc19jb21wYWN0
X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIgbmV4dF9mb3JfaGVh
cDsKLX07Ci0KLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0
YSB7Ci0gICAgdW5zaWduZWQgb2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmpl
Y3Q7IC8qIENhY2hlZCB0byBtYWtlIHJlZmlsbCBmYXN0LiAqLwotICAgIHVuc2lnbmVkIG9mZnNl
dF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0OyAvKiBDYWNoZWQgdG8g
bWFrZSByZWZpbGwgZmFzdC4gKi8KLSAgICAKLSAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9j
YXRvcl9pbmRleDsKLSAgICAKLSAgICB1aW50OF90IGZ1bGxfbnVtX25vbl9lbXB0eV93b3JkczsK
LQotICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIgZnVsbF9hbGxvY19iaXRzOyAv
KiBQcmVjb21wdXRlZCBhbGxvYyBiaXRzIGluIHRoZSBjYXNlIHRoYXQgYSBwYWdlIGlzIGVtcHR5
LiAqLwotICAgIHBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIgYmlhc19z
aGFyaW5nX3Bvb2w7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZSBuZXh0X2Zvcl9sYXlvdXQ7Ci19OwotCi1zdHJ1Y3QgcGFzX2V4dGVuZGVkX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEgewotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhIGJhc2U7Ci0gICAgcGFzX2NvbXBhY3RfdGFnZ2Vk
X3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyIGZ1bGxfdXNlX2NvdW50czsKLX07Ci0KLXN0YXRp
YyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X2FzX3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnkpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfY3JlYXRlKGRpcmVj
dG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZCk7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgc2l6ZV90Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfYWxpZ25tZW50KHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5KQotewotICAgIHJldHVybiAoc2l6ZV90KTEgPDwgKHNpemVfdClkaXJlY3RvcnktPmFs
aWdubWVudF9zaGlmdDsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jcmVhdGUoCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZSwK
LSAgICB1bnNpZ25lZCBhbGlnbm1lbnQsCi0gICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZp
ZywKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOwotCi1zdGF0
aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2NvbnRl
bnRpb25fZGlkX3RyaWdnZXJfZXhwbG9zaW9uKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfZ2V0X21pc2NfYml0KCZkaXJlY3RvcnktPmJhc2UpOwotfQotCi1zdGF0aWMgaW5s
aW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3NldF9jb250ZW50
aW9uX2RpZF90cmlnZ2VyX2V4cGxvc2lvbigKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBib29sIHZhbHVlKQotewotICAgIHJldHVybiBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2V0X21pc2NfYml0KCZkaXJlY3RvcnktPmJhc2UsIHZh
bHVlKTsKLX0KLQotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YSogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Vuc3VyZV9kYXRhKAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAg
IHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotUEFTX0FQSSBwYXNf
ZXh0ZW5kZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YSoKLXBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YSgKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLS8qIENhbGwg
d2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19hbGxvY2F0b3IoCi0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotCi1zdGF0aWMgaW5saW5lIGJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2hhc190bGNfYWxsb2NhdG9y
KAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQot
ewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhKiBkYXRhOwot
ICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICByZXR1cm4gZGF0YSAmJiBkYXRhLT5hbGxvY2F0
b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVg7Ci19Ci0KLS8qIENhbGwg
d2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cygKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLXN0YXRpYyBpbmxpbmUg
Ym9vbCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1c2l2ZV92
aWV3c19lbmFibGVkKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhKiBkYXRhOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICByZXR1cm4gZGF0YSAmJiBk
YXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHM7Ci19Ci0KLVBBU19BUEkgdm9pZCBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZXhwbG9kZSgKLSAgICBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfbG9ja19ob2xkX21v
ZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9k
aXJlY3QoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnkpOwotCi1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCi0gICAgcGFzX21hZ2F6aW5lKiBtYWdh
emluZSk7Ci0KLVBBU19BUEkgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfcmVzdWx0Ci1wYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KAotICAgIHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAotICAgIHBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxvZywKLSAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7Ci0KLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgK
LSAgICB1aW50cHRyX3QgYmVnaW4sCi0gICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpOwotCi0v
KiBUaGlzIGFzc3VtZXMgdGhhdCB3ZSBhbHJlYWR5IGhhdmUgYSBkYXRhLiBUaGF0J3MgYSB2YWxp
ZCBhc3N1bXB0aW9uIGlmIHdlIGhhdmUgZXhjbHVzaXZlcy4gKi8KLVBBU19BUEkgcGFzX2hlYXBf
c3VtbWFyeSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1t
YXJ5X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7Ci0KLS8qIFdlIHVzZSBhIHBhZ2Ugc2hhcmluZyBwb29s
IGFzIG91ciBjb2xsZWN0aW9uIG9mIGJpYXNpbmcgZGlyZWN0b3JpZXMuCi0gCi0gICBDb29sIGZh
Y3Q6IHBhZ2Ugc2hhcmluZyBwb29sIGl0ZXJhdGlvbiBmdW5jdGlvbnMgd29yayBmb3IgTlVMTC4g
VGhleSdsbCBiZWhhdmUgYXMgaWYgeW91IGhhZCBhbgotICAgZW1wdHkgcG9vbC4gU28sIG5vIG5l
ZWQgdG8gTlVMTC1jaGVjayBpZiB1c2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoaXMgZnVuY3Rp
b24gdG8gaXRlcmF0ZSB0aGUKLSAgIGJpYXNpbmcgZGlyZWN0b3JpZXMuICovCi1zdGF0aWMgaW5s
aW5lIHBhc19wYWdlX3NoYXJpbmdfcG9vbCogcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5X2JpYXNfc2hhcmluZ19wb29sKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5KQotewotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9kYXRhKiBkYXRhOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICBpZiAo
IWRhdGEpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiBwYXNfY29tcGFjdF9hdG9t
aWNfcGFnZV9zaGFyaW5nX3Bvb2xfcHRyX2xvYWQoJmRhdGEtPmJpYXNfc2hhcmluZ19wb29sKTsK
LX0KLQotdHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
X2Zvcl9lYWNoX2xpdmVfb2JqZWN0X2NhbGxiYWNrKSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcsCi0gICAgdWludHB0cl90IGJlZ2luLAotICAgIHZvaWQqIGFyZyk7Ci0KLVBBU19BUEkgYm9v
bCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmpl
Y3QoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9lYWNoX2xpdmVf
b2JqZWN0X2NhbGxiYWNrIGNhbGxiYWNrLAotICAgIHZvaWQqIGFyZyk7Ci0KLVBBU19BUEkgc2l6
ZV90IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jf
c2l6ZSgKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSk7Ci0KLVBBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKAotICAgIHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotUEFTX0FQSSB2b2lkIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZSgKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSog
c3RyZWFtKTsKLQotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHZvaWQqIGRp
cmVjdG9yeSk7Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRF
RF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5l
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIz
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMzkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0K
LSNpZm5kZWYgUEFTX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX0lOTElORVNfSAot
I2RlZmluZSBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19ICi0K
LSNpbmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5oIgotI2luY2x1ZGUgInBh
c19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIKLSNpbmNsdWRlICJwYXNfY291bnRfbG9va3Vw
X21vZGUuaCIKLSNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yLmgiCi0jaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfaGVhcC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS5oIgotI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCIKLQotUEFT
X0JFR0lOX0VYVEVSTl9DOwotCi1QQVNfQVBJIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0
Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZ2V0X2FsbG9jYXRvcl9mcm9t
X3RsYygKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKLSAgICBzaXplX3QgY291bnQsCi0gICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xv
b2t1cF9tb2RlLAotICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgIHVuc2lnbmVkKiBj
YWNoZWRfaW5kZXgpOwotCi1QQVNfQVBJIHBhc19iYXNlbGluZV9hbGxvY2F0b3IqCi1wYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcl9zbG93KAotICAg
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLQotc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVzdWx0Ci1wYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcigKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBzaXpl
X3QgY291bnQsCi0gICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAot
ICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgp
Ci17Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9oYXNfdGxj
X2FsbG9jYXRvcihkaXJlY3RvcnkpCi0gICAgICAgICYmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X3RyeV9nZXQoKSB8fCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Nhbl9zZXQoKSkpIHsKLSAgICAg
ICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9nZXRfYWxsb2Nh
dG9yX2Zyb21fdGxjKAotICAgICAgICAgICAgZGlyZWN0b3J5LCBjb3VudCwgY291bnRfbG9va3Vw
X21vZGUsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKLSAgICB9Ci0KLSAgICBmb3IgKDs7KSB7Ci0g
ICAgICAgIHVuc2lnbmVkIGluZGV4OwotICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBh
bGxvY2F0b3I7Ci0KLSAgICAgICAgaW5kZXggPSBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRv
cl9pbmRleDsKLSAgICAgICAgaWYgKGluZGV4ID49IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9S
UykKLSAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yX3Nsb3coZGlyZWN0b3J5KTsKLSAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlICsg
aW5kZXg7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19sb2NrX2xvY2soJmFsbG9jYXRv
ci0+bG9jayk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChkaXJlY3RvcnktPmJhc2Vs
aW5lX2FsbG9jYXRvcl9pbmRleCAhPSBpbmRleCkgewotICAgICAgICAgICAgICAgIHBhc19sb2Nr
X3VubG9jaygmYWxsb2NhdG9yLT5sb2NrKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dS5hbGxvY2F0b3Iu
dmlldykgPT0gZGlyZWN0b3J5KTsKLQotICAgICAgICByZXR1cm4gcGFzX2Jhc2VsaW5lX2FsbG9j
YXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nlc3MoCi0gICAgICAgICAgICAmYWxsb2NhdG9yLT51LmFs
bG9jYXRvciwgJmFsbG9jYXRvci0+bG9jayk7Ci0gICAgfQotfQotCi1zdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgc2l6ZV90Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9j
YWxfYWxsb2NhdG9yX3NpemVfZm9yX251bGxfY29uZmlnKHZvaWQpCi17Ci0gICAgcmV0dXJuIFBB
U19MT0NBTF9BTExPQ0FUT1JfU0laRSgwKTsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHNpemVfdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2Nh
dG9yX3NpemVfZm9yX2NvbmZpZygKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBjb25m
aWcpCi17Ci0gICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVkKTsKLSAgICByZXR1
cm4gUEFTX0xPQ0FMX0FMTE9DQVRPUl9TSVpFKGNvbmZpZy5udW1fYWxsb2NfYml0cyk7Ci19Ci0K
LXN0YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRvcl9pbmRleAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxsb2NhdG9yX3NpemUo
c2l6ZV90IHNpemUpCi17Ci0gICAgcGFzX2FsbG9jYXRvcl9pbmRleCByZXN1bHQ7Ci0KLSAgICBy
ZXN1bHQgPSAocGFzX2FsbG9jYXRvcl9pbmRleCkoc2l6ZSAvIDgpOwotICAgIFBBU19URVNUSU5H
X0FTU0VSVCgoc2l6ZV90KXJlc3VsdCAqIDggPT0gc2l6ZSk7Ci0gICAgCi0gICAgcmV0dXJuIHJl
c3VsdDsKLX0KLQotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0b3JfaW5kZXgK
LXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGlj
ZXNfZm9yX2NvbmZpZygKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBjb25maWcpCi17
Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAotICAgIHNpemVf
dCBzaXplOwotCi0gICAgUEFTX0FTU0VSVChjb25maWcuYmFzZS5pc19lbmFibGVkKTsKLSAgICAK
LSAgICBzaXplID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2xvY2FsX2Fs
bG9jYXRvcl9zaXplX2Zvcl9jb25maWcoY29uZmlnKTsKLQotICAgIGlmICh2ZXJib3NlKSB7Ci0g
ICAgICAgIHBhc19sb2coCi0gICAgICAgICAgICAia2luZCA9ICVzLCBzaXplID0gJXp1LlxuIiwK
LSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhj
b25maWcua2luZCksCi0gICAgICAgICAgICBzaXplKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19m
b3JfYWxsb2NhdG9yX3NpemUoc2l6ZSk7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7Ci0KLSNlbmRp
ZiAvKiBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19IICovCi0K
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hl
YXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAt
MzQsNyArMzQsNyBAQAogI2luY2x1ZGUgInBhc19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBf
cmVmLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgiCi0jaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9w
YWdlLmgiCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogI2luY2x1ZGUgInBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgiCkBAIC03MCw3ICs3MCwxNCBAQCBzdGF0aWMg
c2l6ZV90IG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jCiBzdGF0aWMgc2l6ZV90IG1heF9jb3Vu
dF9mb3JfcGFnZV9jb25maWcocGFzX2hlYXAqIHBhcmVudF9oZWFwLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfY29uZmlnKiBwYWdlX2NvbmZp
ZykKIHsKLSAgICBzaXplX3QgcmVzdWx0ID0gcGFzX3JvdW5kX2Rvd25fdG9fcG93ZXJfb2ZfMigK
KyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgc2l6ZV90
IHJlc3VsdDsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJtYXhfb2JqZWN0
X3NpemUgZm9yICVwICglcyk6ICV6dVxuIiwgJnBhcmVudF9oZWFwLT5zZWdyZWdhdGVkX2hlYXAs
IHBhc19wYWdlX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZy0+cGFnZV9raW5kKSwgcGFnZV9j
b25maWctPm1heF9vYmplY3Rfc2l6ZSk7CisgICAgCisgICAgcmVzdWx0ID0gcGFzX3JvdW5kX2Rv
d25fdG9fcG93ZXJfb2ZfMigKICAgICAgICAgcGFnZV9jb25maWctPm1heF9vYmplY3Rfc2l6ZSwK
ICAgICAgICAgcGFzX3BhZ2VfYmFzZV9jb25maWdfbWluX2FsaWduKCpwYWdlX2NvbmZpZykpCiAg
ICAgICAgIC8gcGFzX2hlYXBfZ2V0X3R5cGVfc2l6ZShwYXJlbnRfaGVhcCk7CkBAIC04Myw4ICs5
MCwxMCBAQCBzdGF0aWMgc2l6ZV90IG1heF9jb3VudF9mb3JfcGFnZV9jb25maWcoCiBzdGF0aWMg
c2l6ZV90IG1heF9vYmplY3Rfc2l6ZV9mb3JfcGFnZV9jb25maWcocGFzX2hlYXAqIHBhcmVudF9o
ZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19w
YWdlX2Jhc2VfY29uZmlnKiBwYWdlX2NvbmZpZykKIHsKLSAgICByZXR1cm4gbWF4X2NvdW50X2Zv
cl9wYWdlX2NvbmZpZyhwYXJlbnRfaGVhcCwgcGFnZV9jb25maWcpCi0gICAgICAgICogcGFzX2hl
YXBfZ2V0X3R5cGVfc2l6ZShwYXJlbnRfaGVhcCk7CisgICAgcmV0dXJuIHBhc19yb3VuZF91cF90
b19wb3dlcl9vZl8yKAorICAgICAgICBtYXhfY291bnRfZm9yX3BhZ2VfY29uZmlnKHBhcmVudF9o
ZWFwLCBwYWdlX2NvbmZpZykKKyAgICAgICAgKiBwYXNfaGVhcF9nZXRfdHlwZV9zaXplKHBhcmVu
dF9oZWFwKSwKKyAgICAgICAgcGFzX3BhZ2VfYmFzZV9jb25maWdfbWluX2FsaWduKCpwYWdlX2Nv
bmZpZykpOwogfQogCiBzdGF0aWMgc2l6ZV90IG1heF9zbWFsbF9jb3VudF9mb3JfaGVhcF9jb25m
aWcocGFzX2hlYXAqIHBhcmVudF9oZWFwLApAQCAtOTgsMjYgKzEwNywzNiBAQCBzdGF0aWMgc2l6
ZV90IG1heF9zbWFsbF9jb3VudF9mb3JfaGVhcF9jCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
c3RhdGljIHNpemVfdCBtYXhfc2VncmVnYXRlZF9jb3VudF9mb3JfaGVhcF9jb25maWcocGFzX2hl
YXAqIHBhcmVudF9oZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmln
KQorc3RhdGljIHNpemVfdCBtYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25m
aWcocGFzX2hlYXAqIHBhcmVudF9oZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19oZWFwX2NvbmZpZyogY29uZmlnKQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKKyAgICAKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50IHZh
cmlhbnQ7CiAgICAgZm9yIChQQVNfRUFDSF9TRUdSRUdBVEVEX1BBR0VfQ09ORklHX1ZBUklBTlRf
REVTQ0VORElORyh2YXJpYW50KSkgewogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
ZyogcGFnZV9jb25maWc7CisgICAgICAgIHNpemVfdCBtYXhfc2l6ZV9wZXJfY29uZmlnOworICAg
ICAgICBzaXplX3QgcmVzdWx0OworICAgICAgICAKICAgICAgICAgcGFnZV9jb25maWcgPSBwYXNf
aGVhcF9jb25maWdfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQoY29uZmln
LCB2YXJpYW50KTsKICAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc19l
bmFibGVkKCpwYWdlX2NvbmZpZykpCiAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBt
YXhfc2l6ZV9wZXJfY29uZmlnID0gbWF4X29iamVjdF9zaXplX2Zvcl9wYWdlX2NvbmZpZyhwYXJl
bnRfaGVhcCwgJnBhZ2VfY29uZmlnLT5iYXNlKTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiBQ
QVNfTUlOKChzaXplX3QpaGVhcC0+cnVudGltZV9jb25maWctPm1heF9zZWdyZWdhdGVkX29iamVj
dF9zaXplLAotICAgICAgICAgICAgICAgICAgICAgICBtYXhfY291bnRfZm9yX3BhZ2VfY29uZmln
KHBhcmVudF9oZWFwLCAmcGFnZV9jb25maWctPmJhc2UpKTsKKyAgICAgICAgcmVzdWx0ID0gUEFT
X01JTigoc2l6ZV90KWhlYXAtPnJ1bnRpbWVfY29uZmlnLT5tYXhfc2VncmVnYXRlZF9vYmplY3Rf
c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfc2l6ZV9wZXJfY29uZmlnKTsKKyAg
ICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJyZXR1cm5pbmcgbWF4IGZv
ciBzZWdyZWdhdGVkIGZvciBoZWFwID0gJXA6ICV6dVxuIiwgaGVhcCwgKHNpemVfdClyZXN1bHQp
OworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICByZXR1cm4gMDsKIH0KIAotc3Rh
dGljIHNpemVfdCBtYXhfYml0Zml0X2NvdW50X2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVhcCogcGFy
ZW50X2hlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQorc3RhdGljIHNpemVf
dCBtYXhfYml0Zml0X29iamVjdF9zaXplX2Zvcl9oZWFwX2NvbmZpZyhwYXNfaGVhcCogcGFyZW50
X2hlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQogewog
ICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKQEAgLTEyNSw2ICsx
NDQsOSBAQCBzdGF0aWMgc2l6ZV90IG1heF9iaXRmaXRfY291bnRfZm9yX2hlYXBfCiAgICAgCiAg
ICAgZm9yIChQQVNfRUFDSF9CSVRGSVRfUEFHRV9DT05GSUdfVkFSSUFOVF9ERVNDRU5ESU5HKHZh
cmlhbnQpKSB7CiAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnOwor
ICAgICAgICBzaXplX3QgbWF4X3NpemVfcGVyX2NvbmZpZzsKKyAgICAgICAgc2l6ZV90IHJlc3Vs
dDsKKyAgICAgICAgCiAgICAgICAgIHBhZ2VfY29uZmlnID0gcGFzX2hlYXBfY29uZmlnX2JpdGZp
dF9wYWdlX2NvbmZpZ19wdHJfZm9yX3ZhcmlhbnQoY29uZmlnLCB2YXJpYW50KTsKICAgICAgICAg
CiAgICAgICAgIGlmICh2ZXJib3NlKSB7CkBAIC0xNDUsMzkgKzE2NywzNiBAQCBzdGF0aWMgc2l6
ZV90IG1heF9iaXRmaXRfY291bnRfZm9yX2hlYXBfCiAgICAgICAgICAgICAgICAgICAgIGhlYXAt
PnJ1bnRpbWVfY29uZmlnLT5tYXhfYml0Zml0X29iamVjdF9zaXplLAogICAgICAgICAgICAgICAg
ICAgICBtYXhfY291bnRfZm9yX3BhZ2VfY29uZmlnKHBhcmVudF9oZWFwLCAmcGFnZV9jb25maWct
PmJhc2UpKTsKICAgICAgICAgfQorCisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAg
ICBwYXNfbG9nKCJHb2luZyB0byByZXR1cm4gbWF4IGZvciAlcyBidXQgaGVhcCA9ICVwLCBjb25m
aWcgPSAlcCwgbWF4ID0gJXp1XG4iLAorICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZy0+a2luZCksCisgICAgICAgICAg
ICAgICAgICAgIGhlYXAsIGhlYXAtPnJ1bnRpbWVfY29uZmlnLCAoc2l6ZV90KWhlYXAtPnJ1bnRp
bWVfY29uZmlnLT5tYXhfYml0Zml0X29iamVjdF9zaXplKTsKKyAgICAgICAgfQorCisgICAgICAg
IG1heF9zaXplX3Blcl9jb25maWcgPSBtYXhfb2JqZWN0X3NpemVfZm9yX3BhZ2VfY29uZmlnKHBh
cmVudF9oZWFwLCAmcGFnZV9jb25maWctPmJhc2UpOwogICAgICAgICAKLSAgICAgICAgcmV0dXJu
IFBBU19NSU4oKHNpemVfdCloZWFwLT5ydW50aW1lX2NvbmZpZy0+bWF4X2JpdGZpdF9vYmplY3Rf
c2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgbWF4X2NvdW50X2Zvcl9wYWdlX2NvbmZpZyhw
YXJlbnRfaGVhcCwgJnBhZ2VfY29uZmlnLT5iYXNlKSk7CisgICAgICAgIHJlc3VsdCA9IFBBU19N
SU4oKHNpemVfdCloZWFwLT5ydW50aW1lX2NvbmZpZy0+bWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfc2l6ZV9wZXJfY29uZmlnKTsKKworICAgICAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coInJldHVybmluZyBtYXggZm9yIGJp
dGZpdCBmb3IgaGVhcCA9ICVwOiAlenVcbiIsIGhlYXAsIHJlc3VsdCk7CisKKyAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAKICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgcGFzX2xvZygi
Qml0Zml0IGhhcyBhIG1heCBjb3VudCBvZiB6ZXJvIGJlY2F1c2UgaXQncyBhbGwgZGlzYWJsZWQu
XG4iKTsKKyAgICAgICAgcGFzX2xvZygiQml0Zml0IGhhcyBhIG1heCBvYmplY3Qgc2l6ZSBvZiB6
ZXJvIGJlY2F1c2UgaXQncyBhbGwgZGlzYWJsZWQuXG4iKTsKICAgICAKICAgICByZXR1cm4gMDsK
IH0KIAotc3RhdGljIHNpemVfdCBtYXhfY291bnRfZm9yX2hlYXBfY29uZmlnKHBhc19oZWFwKiBw
YXJlbnRfaGVhcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQotewotICAgIHJldHVybiBQQVNfTUFYKG1h
eF9zZWdyZWdhdGVkX2NvdW50X2Zvcl9oZWFwX2NvbmZpZyhwYXJlbnRfaGVhcCwgaGVhcCwgY29u
ZmlnKSwKLSAgICAgICAgICAgICAgICAgICBtYXhfYml0Zml0X2NvdW50X2Zvcl9oZWFwX2NvbmZp
ZyhwYXJlbnRfaGVhcCwgaGVhcCwgY29uZmlnKSk7Ci19Ci0KLXN0YXRpYyBzaXplX3QgbWF4X2Jp
dGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcocGFzX2hlYXAqIHBhcmVudF9oZWFwLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKLXsKLSAgICByZXR1
cm4gbWF4X2JpdGZpdF9jb3VudF9mb3JfaGVhcF9jb25maWcocGFyZW50X2hlYXAsIGhlYXAsIGNv
bmZpZykKLSAgICAgICAgKiBwYXNfaGVhcF9nZXRfdHlwZV9zaXplKHBhcmVudF9oZWFwKTsKLX0K
LQogc3RhdGljIHNpemVfdCBtYXhfb2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKHBhc19oZWFw
KiBwYXJlbnRfaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQogewotICAgIHJl
dHVybiBtYXhfY291bnRfZm9yX2hlYXBfY29uZmlnKHBhcmVudF9oZWFwLCBoZWFwLCBjb25maWcp
Ci0gICAgICAgICogcGFzX2hlYXBfZ2V0X3R5cGVfc2l6ZShwYXJlbnRfaGVhcCk7CisgICAgcmV0
dXJuIFBBU19NQVgobWF4X3NlZ3JlZ2F0ZWRfb2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKHBh
cmVudF9oZWFwLCBoZWFwLCBjb25maWcpLAorICAgICAgICAgICAgICAgICAgIG1heF9iaXRmaXRf
b2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKHBhcmVudF9oZWFwLCBoZWFwLCBjb25maWcpKTsK
IH0KIAogdm9pZCBwYXNfc2VncmVnYXRlZF9oZWFwX2NvbnN0cnVjdChwYXNfc2VncmVnYXRlZF9o
ZWFwKiBzZWdyZWdhdGVkX2hlYXAsCkBAIC0xOTIsNyArMjExLDcgQEAgdm9pZCBwYXNfc2VncmVn
YXRlZF9oZWFwX2NvbnN0cnVjdChwYXNfcwogCiAgICAgc2VncmVnYXRlZF9oZWFwLT5ydW50aW1l
X2NvbmZpZyA9IHJ1bnRpbWVfY29uZmlnOwogICAgIAotICAgIHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAm
c2VncmVnYXRlZF9oZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCwgTlVMTCk7CiAg
ICAgCiAgICAgc2VncmVnYXRlZF9oZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZCA9IDA7CkBA
IC00MDUsNyArNDI0LDcgQEAgdW5zaWduZWQgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fYWxs
bwogICAgIHJldHVybiBVSU5UX01BWDsKIH0KIAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9mb3Jf
aW5kZXgoCitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9tZWRpdW1fc2l6ZV9kaXJlY3RvcnlfZm9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsCiAgICAgc2l6ZV90IGluZGV4LAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVk
aXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF9tb2RlIHNlYXJjaF9tb2RlLApAQCAtNDE3LDcgKzQz
Niw3IEBAIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogcGEKICAgICAgICAg
aGVhcCwgaW5kZXgsIHNlYXJjaF9tb2RlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICAKICAg
ICBpZiAobWVkaXVtX2RpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21p
Y19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmbWVkaXVtX2RpcmVj
dG9yeS0+ZGlyZWN0b3J5KTsKKyAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZtZWRpdW1fZGlyZWN0b3J5LT5kaXJlY3Rv
cnkpOwogICAgIAogICAgIHJldHVybiBOVUxMOwogfQpAQCAtNDQzLDcgKzQ2Miw3IEBAIHN0YXRp
YyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAocGFzX3NlZ3IKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcpCiB7CiAgICAgc2l6ZV90IGluZGV4
X3VwcGVyX2JvdW5kOwotICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHIqIGluZGV4X3RvX3NpemVfZGlyZWN0b3J5OworICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc2l6ZV9k
aXJlY3Rvcnk7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCogaW5kZXhfdG9fYWxsb2NhdG9yX2lu
ZGV4OwogICAgIHVuc2lnbmVkIGluZGV4OwogICAgIApAQCAtNDU2LDcgKzQ3NSw3IEBAIHN0YXRp
YyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAocGFzX3NlZ3IKICAgICBpbmRleF91cHBlcl9ib3Vu
ZCA9IGNvbXB1dGVfc21hbGxfaW5kZXhfdXBwZXJfYm91bmQoaGVhcCwgY29uZmlnKTsKICAgICAK
ICAgICBpbmRleF90b19zaXplX2RpcmVjdG9yeSA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRl
KAotICAgICAgICBzaXplb2YocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0cikgKiBpbmRleF91cHBlcl9ib3VuZCwKKyAgICAgICAgc2l6ZW9mKHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cikgKiBpbmRleF91
cHBlcl9ib3VuZCwKICAgICAgICAgInBhc19zZWdyZWdhdGVkX2hlYXAvaW5kZXhfdG9fc2l6ZV9k
aXJlY3RvcnkiLAogICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwogICAgIGluZGV4X3Rv
X2FsbG9jYXRvcl9pbmRleCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKApAQCAtNDY1LDcg
KzQ4NCw3IEBAIHN0YXRpYyB2b2lkIGVuc3VyZV9jb3VudF9sb29rdXAocGFzX3NlZ3IKICAgICAg
ICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKICAgICAKICAgICBmb3IgKGluZGV4ID0gMDsgaW5k
ZXggPCBpbmRleF91cHBlcl9ib3VuZDsgKytpbmRleCkgewotICAgICAgICBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAorICAgICAg
ICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUo
CiAgICAgICAgICAgICBpbmRleF90b19zaXplX2RpcmVjdG9yeSArIGluZGV4LCBOVUxMKTsKICAg
ICAgICAgaW5kZXhfdG9fYWxsb2NhdG9yX2luZGV4W2luZGV4XSA9IChwYXNfYWxsb2NhdG9yX2lu
ZGV4KVVJTlRfTUFYOwogICAgIH0KQEAgLTQ4MSw3ICs1MDAsNyBAQCBzdGF0aWMgdm9pZCBlbnN1
cmVfY291bnRfbG9va3VwKHBhc19zZWdyCiB1bnNpZ25lZAogcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9l
bnN1cmVfYWxsb2NhdG9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBzaXplX3QgY291
bnQsCiAgICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1cF9tb2RlLAogICAgIHBh
c19oZWFwX2NvbmZpZyogY29uZmlnLApAQCAtNTE0LDcgKzUzMyw3IEBAIHBhc19zZWdyZWdhdGVk
X2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQKICAgICAgICAgcHJpbnRmKCJpbmRleCA9ICV6dVxu
IiwgaW5kZXgpOwogCiAgICAgYWxsb2NhdG9yX2luZGV4ID0KLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSkt
PmFsbG9jYXRvcl9pbmRleDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2NhdG9yX2luZGV4OwogICAgIFBB
U19BU1NFUlQoKHBhc19hbGxvY2F0b3JfaW5kZXgpYWxsb2NhdG9yX2luZGV4ID09IGFsbG9jYXRv
cl9pbmRleCk7CiAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfaW5kZXggPCAodW5zaWduZWQpKHBh
c19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogICAgIApAQCAtNTU5LDcgKzU3OCw3IEBAIHBh
c19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQKICAgICAgICAgICAgICAgICBw
YXNfbG9ja19pc19oZWxkKTsKICAgICAgICAgUEFTX0FTU0VSVChtZWRpdW1fZGlyZWN0b3J5KTsK
ICAgICAgICAgUEFTX0FTU0VSVCgKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmbWVkaXVtX2RpcmVjdG9yeS0+
ZGlyZWN0b3J5KQorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJm1lZGl1bV9kaXJlY3RvcnktPmRpcmVjdG9yeSkKICAgICAg
ICAgICAgID09IGRpcmVjdG9yeSk7CiAgICAgICAgIAogICAgICAgICBtZWRpdW1fZGlyZWN0b3J5
LT5hbGxvY2F0b3JfaW5kZXggPSAocGFzX2FsbG9jYXRvcl9pbmRleClhbGxvY2F0b3JfaW5kZXg7
CkBAIC02OTcsMTggKzcxNiwyMCBAQCBlbnN1cmVfY291bnRfbG9va3VwX2lmX25lY2Vzc2FyeShw
YXNfc2VnCiAgICAgICAgIGVuc3VyZV9jb3VudF9sb29rdXAoaGVhcCwgY29uZmlnKTsKIH0KIAot
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgotcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KHBhc19zZWdyZWdhdGVkX2hlYXAqIGhl
YXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IGNvdW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvdW50X2xvb2t1cF9tb2RlIGNvdW50X2xvb2t1
cF9tb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCitwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKK3Bhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3J5X2Zvcl9jb3VudCgKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAorICAg
IHNpemVfdCBjb3VudCwKKyAgICBzaXplX3QgYWxpZ25tZW50LAorICAgIHBhc19jb3VudF9sb29r
dXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywK
KyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2NyZWF0aW9uX21vZGUgY3JlYXRpb25fbW9kZSkKIHsKICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CiAKICAgICBwYXNfaGVhcCogcGFyZW50X2hlYXA7Ci0gICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiByZXN1bHQ7CisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKICAgICBzaXplX3QgaW5kZXg7CiAgICAg
c2l6ZV90IG9iamVjdF9zaXplOwogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVj
dG9yeV90dXBsZSogbWVkaXVtX3R1cGxlOwpAQCAtODE2LDExICs4MzcsMTEgQEAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogCiAgICAgUEFTX0FTU0VSVCgKICAgICAg
ICAgIXJlc3VsdCB8fAotICAgICAgICBwYXNfaXNfYWxpZ25lZChyZXN1bHQtPm9iamVjdF9zaXpl
LCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHJlc3VsdCkp
KTsKKyAgICAgICAgcGFzX2lzX2FsaWduZWQocmVzdWx0LT5vYmplY3Rfc2l6ZSwgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHJlc3VsdCkpKTsKIAogICAgIGlzX3V0aWxp
dHkgPSBwYXNfaGVhcF9jb25maWdfaXNfdXRpbGl0eShjb25maWcpOwogICAgIAotICAgIGlmIChy
ZXN1bHQgJiYgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChy
ZXN1bHQpIDwgYWxpZ25tZW50KSB7CisgICAgaWYgKHJlc3VsdCAmJiBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0KSA8IGFsaWdubWVudCkgewogICAgICAgICBz
aXplX3QgdmljdGltX2luZGV4OwogICAgICAgICAKICAgICAgICAgLyogSW4gdGhpcyBjYXNlLCBy
ZXN1bHQgaXMgYSBzaXplIGNsYXNzIGZvciBhdCBsZWFzdCBhcyBiaWcgb2YgYSBzaXplCkBAIC04
MzMsMTYgKzg1NCwxNiBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9y
CiAgICAgICAgICAgIFRoaXMgbG9vcCBzdGFydHMgYXQgaW5kZXggKG5vdCBpbmRleCArIDEgZGVz
cGl0ZSB3aGF0IHRoZSBpbml0aWFsCiAgICAgICAgICAgIGNvbmRpdGlvbiBzZWVtcyB0byBkbykg
YW5kIHRyYXZlbHMgZG93bi4gKi8KICAgICAgICAgaWYgKGhlYXAtPnNtYWxsX2luZGV4X3VwcGVy
X2JvdW5kKSB7Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyKiBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKKyAg
ICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAgICBwYXNfYWxsb2Nh
dG9yX2luZGV4KiBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAKICAgICAgICAgICAg
IGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ID0gaGVhcC0+aW5kZXhfdG9fc21hbGxfc2l6
ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXgg
PSBoZWFwLT5pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGZvciAodmljdGltX2luZGV4ID0gaW5kZXggKyAxOyB2aWN0aW1faW5kZXgtLTsp
IHsKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeTsKKyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5OwogCi0gICAgICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rf
YXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAg
ICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKAogICAgICAgICAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9z
aXplX2RpcmVjdG9yeSArIHZpY3RpbV9pbmRleCk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgaWYgKCFkaXJlY3RvcnkpCkBAIC04NTEsNyArODcyLDcgQEAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIGlmIChkaXJlY3Rv
cnkgIT0gcmVzdWx0KQogICAgICAgICAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAgICAg
ICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9w
dHJfc3RvcmUoCisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICAgICBpbmRleF90b19z
bWFsbF9zaXplX2RpcmVjdG9yeSArIHZpY3RpbV9pbmRleCwgTlVMTCk7CiAgICAgICAgICAgICAg
ICAgaWYgKCFpc191dGlsaXR5KQogICAgICAgICAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9h
bGxvY2F0b3JfaW5kZXhbdmljdGltX2luZGV4XSA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRf
TUFYOwpAQCAtODkyLDcgKzkxMyw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3IKICAgICAgICAgICAgICAgICBtZWRpdW1fZGlyZWN0b3JpZXMgPSBwYXNfc2VncmVn
YXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGVfcHRyX2xvYWQoCiAgICAgICAgICAgICAg
ICAgICAgICZyYXJlX2RhdGEtPm1lZGl1bV9kaXJlY3Rvcmllcyk7CiAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgbWVkaXVtX3R1cGxlX2luZGV4ID0gbWVkaXVtX3R1cGxlIC0gbWVk
aXVtX2RpcmVjdG9yaWVzOworICAgICAgICAgICAgICAgIG1lZGl1bV90dXBsZV9pbmRleCA9IChz
aXplX3QpKG1lZGl1bV90dXBsZSAtIG1lZGl1bV9kaXJlY3Rvcmllcyk7CiAgICAgICAgICAgICAg
ICAgUEFTX0FTU0VSVChtZWRpdW1fdHVwbGVfaW5kZXggPCByYXJlX2RhdGEtPm51bV9tZWRpdW1f
ZGlyZWN0b3JpZXMpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIG1lbW1vdmUo
bWVkaXVtX2RpcmVjdG9yaWVzICsgbWVkaXVtX3R1cGxlX2luZGV4LApAQCAtOTE5LDcgKzk0MCw3
IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAg
CiAgICAgICAgICAgIFNtYWxsZXIgaW5kZXg6IGNsZWFyIGl0IGlmIGl0IG1hdGNoZXMsIHNpbmNl
IHdlICptYXkqIHdhbnQgdGhvc2UKICAgICAgICAgICAgc21hbGxlciBhbGxvY2F0aW9ucyB0byBj
b25zaWRlciBvdXIgbmV3IG9uZS4gKi8KLSAgICAgICAgaWYgKHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgaWYgKHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAogICAg
ICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCkgPT0gcmVz
dWx0CiAgICAgICAgICAgICAmJiByZXN1bHQtPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkK
ICAgICAgICAgICAgICYmIGluZGV4ID49IChjYWNoZWRfaW5kZXggPyAqY2FjaGVkX2luZGV4IDog
MSkpIHsKQEAgLTkzNSwxNCArOTU2LDE0IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3Np
emVfZGlyZWN0b3IKICAgICAKICAgICBpZiAoIXJlc3VsdCkgewogICAgICAgICBzaXplX3QgY2Fu
ZGlkYXRlX2luZGV4OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIGNhbmRpZGF0ZTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGNh
bmRpZGF0ZTsKICAgICAgICAgc2l6ZV90IG1lZGl1bV9pbnN0YWxsX2luZGV4OwogICAgICAgICBz
aXplX3QgbWVkaXVtX2luc3RhbGxfY291bnQ7CiAgICAgICAgIGRvdWJsZSBiZXN0X2J5dGVzX2Rp
cnRpZWRfcGVyX29iamVjdDsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIGJl
c3RfcGFnZV9jb25maWc7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3Zhcmlh
bnQgdmFyaWFudDsKLSAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7Ci0gICAg
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogYmFzaWNfc2l6ZV9kaXJl
Y3RvcnlfYW5kX2hlYWQ7CisgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CisgICAgICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRf
aGVhZDsKIAogICAgICAgICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSA9IGhlYXAtPmlu
ZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5OwogICAgICAgICAKQEAgLTk1NCw3ICs5NzUsNyBA
QCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgIGZvciAo
Y2FuZGlkYXRlX2luZGV4ID0gaW5kZXg7CiAgICAgICAgICAgICAgY2FuZGlkYXRlX2luZGV4IDwg
aGVhcC0+c21hbGxfaW5kZXhfdXBwZXJfYm91bmQ7CiAgICAgICAgICAgICAgKytjYW5kaWRhdGVf
aW5kZXgpIHsKLSAgICAgICAgICAgIGNhbmRpZGF0ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgIGNhbmRp
ZGF0ZSA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkKAogICAgICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ICsgY2Fu
ZGlkYXRlX2luZGV4KTsKICAgICAgICAgICAgIGlmIChjYW5kaWRhdGUpCiAgICAgICAgICAgICAg
ICAgYnJlYWs7CkBAIC05NjMsNyArOTg0LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVf
c2l6ZV9kaXJlY3RvcgogICAgICAgICAvKiBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIGJhc2ljIHNp
emUgY2xhc3MgaXMgYSBjYW5kaWRhdGUuIFRoYXQgY291bGQKICAgICAgICAgICAgaGFwcGVuIGlm
IHdlIGRpZCBub3QgZm9yY2UgY291bnQgbG9va3VwIHdoZW4gY3JlYXRpbmcgdGhhdCBiYXNpYyBz
aXplCiAgICAgICAgICAgIGNsYXNzLiAqLwotICAgICAgICBiYXNpY19zaXplX2RpcmVjdG9yeV9h
bmRfaGVhZCA9IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgKKyAgICAgICAgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQgPSBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAg
ICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCk7CiAgICAgICAg
IGlmICgoIWNhbmRpZGF0ZSB8fCBjYW5kaWRhdGVfaW5kZXggPiAoY2FjaGVkX2luZGV4ID8gKmNh
Y2hlZF9pbmRleCA6IDEpKQogICAgICAgICAgICAgJiYgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5k
X2hlYWQKQEAgLTk4MCw4ICsxMDAxLDggQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6
ZV9kaXJlY3RvcgogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9k
aXJlY3Rvcnlfc2VhcmNoX2xlYXN0X2dyZWF0ZXJfZXF1YWwsCiAgICAgICAgICAgICBwYXNfbG9j
a19pc19oZWxkKTsKICAgICAgICAgaWYgKG1lZGl1bV90dXBsZSkgewotICAgICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7Ci0gICAgICAgICAg
ICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5OworICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAgICAg
Jm1lZGl1bV90dXBsZS0+ZGlyZWN0b3J5KTsKICAgICAgICAgICAgIGlmICghY2FuZGlkYXRlIHx8
IGRpcmVjdG9yeS0+b2JqZWN0X3NpemUgPCBjYW5kaWRhdGUtPm9iamVjdF9zaXplKQogICAgICAg
ICAgICAgICAgIGNhbmRpZGF0ZSA9IGRpcmVjdG9yeTsKQEAgLTEwMDcsNiArMTAyOCw5IEBAIHBh
c19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICBv
YmplY3Rfc2l6ZV9mb3JfY29uZmlnID0gKHVuc2lnbmVkKXBhc19yb3VuZF91cF90b19wb3dlcl9v
Zl8yKAogICAgICAgICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSwKICAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWduKHBhZ2VfY29uZmlnKSk7CisK
KyAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xv
Zygib2JqZWN0IHNpemUgZm9yIGNvbmZpZzogJXVcbiIsIG9iamVjdF9zaXplX2Zvcl9jb25maWcp
OwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChvYmplY3Rfc2l6ZV9mb3Jf
Y29uZmlnID4gbWF4X29iamVjdF9zaXplX2Zvcl9wYWdlX2NvbmZpZyhwYXJlbnRfaGVhcCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJnBhZ2VfY29uZmlnX3B0ci0+YmFzZSkpCkBAIC0xMDMzLDYgKzEw
NTcsMTAgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAg
ICAgICAgUEFTX0FTU0VSVChiZXN0X2J5dGVzX2RpcnRpZWRfcGVyX29iamVjdCA+PSAwLik7CiAg
ICAgICAgICAgICBQQVNfQVNTRVJUKGJlc3RfYnl0ZXNfZGlydGllZF9wZXJfb2JqZWN0IDwgUEFT
X0lORklOSVRZKTsKICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7
CisgICAgICAgICAgICAgICAgcGFzX2xvZygib2JqZWN0X3NpemUgPSAlenVcbiIsIChzaXplX3Qp
b2JqZWN0X3NpemUpOworICAgICAgICAgICAgICAgIHBhc19sb2coIm1heCBiaXRmaXQgc2l6ZSA9
ICV6dSAoaGVhcCAlcCwgY29uZmlnICVwKVxuIiwgKHNpemVfdCloZWFwLT5ydW50aW1lX2NvbmZp
Zy0+bWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSwgaGVhcCwgaGVhcC0+cnVudGltZV9jb25maWcpOwor
ICAgICAgICAgICAgfQogICAgICAgICAgICAgUEFTX0FTU0VSVChvYmplY3Rfc2l6ZSA8PSBoZWFw
LT5ydW50aW1lX2NvbmZpZy0+bWF4X2JpdGZpdF9vYmplY3Rfc2l6ZSk7CiAgICAgICAgICAgICBQ
QVNfVEVTVElOR19BU1NFUlQoCiAgICAgICAgICAgICAgICAgb2JqZWN0X3NpemUgPD0gbWF4X2Jp
dGZpdF9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcocGFyZW50X2hlYXAsIGhlYXAsIGNvbmZp
ZykpOwpAQCAtMTA0MSw3ICsxMDY5LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6
ZV9kaXJlY3RvcgogICAgICAgICAgICAgUEFTX0FTU0VSVCghaXNfdXRpbGl0eSk7CiAgICAgICAg
IH0KIAotICAgICAgICBpZiAoY2FuZGlkYXRlICYmIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9hbGlnbm1lbnQoY2FuZGlkYXRlKSA+PSBhbGlnbm1lbnQpIHsKKyAgICAgICAg
aWYgKGNhbmRpZGF0ZSAmJiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQo
Y2FuZGlkYXRlKSA+PSBhbGlnbm1lbnQpIHsKICAgICAgICAgICAgIGRvdWJsZSBieXRlc19kaXJ0
aWVkX3Blcl9vYmplY3RfYnlfY2FuZGlkYXRlOwogICAgICAgICAKICAgICAgICAgICAgIGlmICh2
ZXJib3NlKSB7CkBAIC0xMDYzLDggKzEwOTEsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3Vy
ZV9zaXplX2RpcmVjdG9yCiAgICAgICAgIH0KICAgICAKICAgICAgICAgaWYgKCFyZXN1bHQpIHsK
LSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHIqIGhlYWQ7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkOworICAgICAgICAgICAg
cGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyKiBoZWFkOwor
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGJhc2ljX3NpemVfZGly
ZWN0b3J5X2FuZF9oZWFkOwogCiAgICAgICAgICAgICBpZiAoYmVzdF9wYWdlX2NvbmZpZykgewog
ICAgICAgICAgICAgICAgIG9iamVjdF9zaXplID0gY29tcHV0ZV9pZGVhbF9vYmplY3Rfc2l6ZSgK
QEAgLTEwNzcsNyArMTEwNSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGly
ZWN0b3IKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAvKiBiZXN0X2J5dGVzX2Rp
cnRpZWRfcGVyX29iamVjdCBoYXMgdGhlIHJpZ2h0IG9iamVjdCBzaXplIGNvbXB1dGVkIGJ5IHRo
ZSBiaXRmaXQgaGVhcCwKICAgICAgICAgICAgICAgICAgICBzbyBqdXN0IHJldXNlIHRoYXQuICov
Ci0gICAgICAgICAgICAgICAgb2JqZWN0X3NpemUgPSBiZXN0X2J5dGVzX2RpcnRpZWRfcGVyX29i
amVjdDsKKyAgICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSA9IChzaXplX3QpYmVzdF9ieXRlc19k
aXJ0aWVkX3Blcl9vYmplY3Q7CiAgICAgICAgICAgICB9CiAgICAgICAgIAogICAgICAgICAgICAg
aWYgKGJlc3RfcGFnZV9jb25maWcpCkBAIC0xMTAxLDE2ICsxMTI5LDE3IEBAIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQog
ICAgICAgICAgICAgICAgIHBhc19sb2coIkJ1bXBlZCBhbGlnbm1lbnQgdXAgdG8gJXp1LlxuIiwg
YWxpZ25tZW50KTsKICAgICAgICAgCi0gICAgICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlKAorICAgICAgICAgICAgcmVzdWx0ID0gcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlKAogICAgICAgICAgICAgICAgIGhlYXAs
CiAgICAgICAgICAgICAgICAgKHVuc2lnbmVkKW9iamVjdF9zaXplLAogICAgICAgICAgICAgICAg
ICh1bnNpZ25lZClhbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgY29uZmlnLAotICAgICAgICAg
ICAgICAgIGJlc3RfcGFnZV9jb25maWcpOworICAgICAgICAgICAgICAgIGJlc3RfcGFnZV9jb25m
aWcsCisgICAgICAgICAgICAgICAgY3JlYXRpb25fbW9kZSk7CiAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKICAgICAgICAgICAgICAgICBwcmludGYoIkNyZWF0ZWQgc2l6ZSBjbGFzcyA9ICVwXG4i
LCByZXN1bHQpOwogCi0gICAgICAgICAgICBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZCA9
IHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJf
bG9hZCgKKyAgICAgICAgICAgIGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkID0gcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAg
ICAgICAgICAgJmhlYXAtPmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkKTsKICAgICAgICAg
ICAgIGlmIChiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZAogICAgICAgICAgICAgICAgICYm
IGJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkLT5iYXNlLmlzX2Jhc2ljX3NpemVfZGlyZWN0
b3J5KQpAQCAtMTExOCwyNCArMTE0NywyNCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9z
aXplX2RpcmVjdG9yCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgaGVhZCA9ICZo
ZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZDsKIAotICAgICAgICAgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgK
KyAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9zdG9yZSgKICAgICAgICAgICAgICAgICAmcmVzdWx0LT5uZXh0X2Zvcl9oZWFwLAotICAg
ICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZChoZWFkKSk7Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKGhlYWQsIHJlc3VsdCk7
CisgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyX2xvYWQoaGVhZCkpOworICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKGhlYWQsIHJlc3VsdCk7CiAgICAgICAg
IH0KICAgICAgICAgCiAgICAgICAgIGlmIChjYWNoZWRfaW5kZXgKICAgICAgICAgICAgID8gKmNh
Y2hlZF9pbmRleCA9PSBVSU5UX01BWCB8fCAqY2FjaGVkX2luZGV4ID09IGluZGV4CiAgICAgICAg
ICAgICA6IGluZGV4ID09IDEpIHsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIqIHByZXZfbmV4dF9wdHI7CisgICAgICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIqIHBy
ZXZfbmV4dF9wdHI7CiAgICAgICAgICAgICBib29sIGRpZF9maW5kX3Jlc3VsdDsKLSAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAgICAgICAgICAgICBwcmlu
dGYoInBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudDog
IgogICAgICAgICAgICAgICAgICAgICAgICAiQ2FjaGluZyBhcyBiYXNpYyBzaXplIGNsYXNzIVxu
Iik7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAg
ICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3Rv
cnlfYW5kX2hlYWQpOwogICAgICAgICAgICAgUEFTX0FTU0VSVCghZGlyZWN0b3J5IHx8ICFkaXJl
Y3RvcnktPmJhc2UuaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkpOyAKICAgICAgICAgICAgIGlmIChj
YWNoZWRfaW5kZXgpIHsKQEAgLTExNDgsMzQgKzExNzcsMzQgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgdG8gZXhwZXJpZW5jZSB0aGUg
TyhuKSBjYXNlIG9mIHRoaXMgbG9vcC4gKi8KICAgICAgICAgICAgIGRpZF9maW5kX3Jlc3VsdCA9
IGZhbHNlOwogICAgICAgICAgICAgZm9yIChwcmV2X25leHRfcHRyID0gJmhlYXAtPmJhc2ljX3Np
emVfZGlyZWN0b3J5X2FuZF9oZWFkOwotICAgICAgICAgICAgICAgICAhcGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKHByZXZfbmV4
dF9wdHIpOworICAgICAgICAgICAgICAgICAhcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfcHRyX2lzX251bGwocHJldl9uZXh0X3B0cik7CiAgICAgICAgICAgICAg
ICAgIHByZXZfbmV4dF9wdHIgPQotICAgICAgICAgICAgICAgICAgICAgJnBhc19jb21wYWN0X2F0
b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAg
ICAgICAgICAgICAgICZwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2X25leHRfcHRyKS0+bmV4
dF9mb3JfaGVhcCkgewotICAgICAgICAgICAgICAgIGlmIChwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQocHJldl9uZXh0X3B0cikKKyAg
ICAgICAgICAgICAgICBpZiAocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfcHRyX2xvYWQocHJldl9uZXh0X3B0cikKICAgICAgICAgICAgICAgICAgICAgPT0gcmVz
dWx0KSB7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAgICAgICAgICAgICAgIHBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKICAg
ICAgICAgICAgICAgICAgICAgICAgIHByZXZfbmV4dF9wdHIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWQoCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmcmVzdWx0LT5uZXh0X2Zvcl9oZWFwKSk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUo
CisgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0cl9zdG9yZSgKICAgICAgICAgICAgICAgICAgICAgICAgICZyZXN1bHQtPm5l
eHRfZm9yX2hlYXAsIE5VTEwpOwogICAgICAgICAgICAgICAgICAgICBkaWRfZmluZF9yZXN1bHQg
PSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgLyogSWYgd2UncmUgZ29pbmcgdG8gZ28gdGhyb3VnaCB0aGUgZWZmb3J0
IG9mIHNjYW5uaW5nIHRoaXMgbGlzdCB3ZSBtaWdodCBhcwogICAgICAgICAgICAgICAgICAgIHdl
bGwgY2hlY2sgc29tZSBiYXNpYyBwcm9wZXJ0aWVzIG9mIGl0LiAqLwotICAgICAgICAgICAgICAg
IFBBU19BU1NFUlQoIXBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKCFwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcmV2X25leHRfcHRyKS0+YmFzZS5pc19iYXNpY19zaXplX2Rp
cmVjdG9yeSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBQQVNfQVNTRVJUKGRpZF9maW5k
X3Jlc3VsdCk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKHBhc19jb21wYWN0X2F0b21pY19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgKKyAgICAgICAgICAgIFBB
U19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRy
X2lzX251bGwoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmVzdWx0LT5uZXh0X2Zvcl9o
ZWFwKSk7Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAorICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAogICAgICAgICAgICAgICAgICZy
ZXN1bHQtPm5leHRfZm9yX2hlYXAsCi0gICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAg
ICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2Fk
KAogICAgICAgICAgICAgICAgICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hl
YWQpKTsKLSAgICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCisgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUoCiAgICAgICAgICAgICAgICAgJmhl
YXAtPmJhc2ljX3NpemVfZGlyZWN0b3J5X2FuZF9oZWFkLCByZXN1bHQpOwogICAgICAgICAgICAg
cmVzdWx0LT5iYXNlLmlzX2Jhc2ljX3NpemVfZGlyZWN0b3J5ID0gdHJ1ZTsKICAgICAgICAgfSBl
bHNlIHsKQEAgLTExOTIsNyArMTIyMSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3Np
emVfZGlyZWN0b3IKICAgICAKICAgICAgICAgaWYgKGluZGV4IDwgaGVhcC0+c21hbGxfaW5kZXhf
dXBwZXJfYm91bmQpIHsKICAgICAgICAgICAgIHNpemVfdCBjYW5kaWRhdGVfaW5kZXg7Ci0gICAg
ICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyKiBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeTsKKyAgICAgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21h
bGxfc2l6ZV9kaXJlY3Rvcnk7CiAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4KiBpbmRl
eF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXg7CiAKICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7
CkBAIC0xMjAzLDcgKzEyMzIsNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2Rp
cmVjdG9yCiAgICAgICAgICAgICBpbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeSA9IGhlYXAt
PmluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5OwogICAgICAgICAgICAgaW5kZXhfdG9fc21h
bGxfYWxsb2NhdG9yX2luZGV4ID0gaGVhcC0+aW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4
OwogICAgICAgICAKLSAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9pc19udWxsKAorICAgICAgICAgICAg
UEFTX0FTU0VSVChwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9w
dHJfaXNfbnVsbCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX3Np
emVfZGlyZWN0b3J5ICsgaW5kZXgpKTsKICAgICAgICAgICAgIGlmICghaXNfdXRpbGl0eSkKICAg
ICAgICAgICAgICAgICBQQVNfQVNTRVJUKGluZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleFtp
bmRleF0gPT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwpAQCAtMTIxNywxMiArMTI0
NiwxMiBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5kaWRh
dGVfaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqY29uZmlnKSA8PSBvYmplY3Rfc2l6ZSk7CiAgICAgICAgICAgICAgICAgICsr
Y2FuZGlkYXRlX2luZGV4KSB7Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBjYW5kaWRhdGU7CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGNhbmRpZGF0ZTsKIAogICAgICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQogICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJJbnN0YWxsaW5nIGF0IGluZGV4IGNh
bmRpZGF0ZV9pbmRleCA9ICV6dS5cbiIsIGNhbmRpZGF0ZV9pbmRleCk7CiAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCisgICAgICAgICAgICAgICAgY2FuZGlk
YXRlID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWQoCiAgICAgICAgICAgICAgICAgICAgIGluZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5ICsg
Y2FuZGlkYXRlX2luZGV4KTsKICAgICAgICAgICAgICAgICBpZiAoY2FuZGlkYXRlKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQpAQCAtMTIzNSw3ICsxMjY0LDcgQEAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9h
dG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAorICAgICAg
ICAgICAgICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0
cl9zdG9yZSgKICAgICAgICAgICAgICAgICAgICAgaGVhcC0+aW5kZXhfdG9fc21hbGxfc2l6ZV9k
aXJlY3RvcnkgKyBjYW5kaWRhdGVfaW5kZXgsIHJlc3VsdCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KQEAgLTEyNzcsNyArMTMwNiw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3Np
emVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKICAgICAgICAg
CiAgICAgICAgICAgICBpZiAobmV4dF90dXBsZSAmJgotICAgICAgICAgICAgICAgIHBhc19jb21w
YWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAg
ICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZCgKICAgICAgICAgICAgICAgICAgICAgJm5leHRfdHVwbGUtPmRpcmVjdG9yeSkg
PT0gcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgc2l6ZV90IGJlZ2luX2luZGV4OwogICAgICAg
ICAgICAgICAgIGJlZ2luX2luZGV4ID0gUEFTX01JTihpbmRleCwgKHNpemVfdCluZXh0X3R1cGxl
LT5iZWdpbl9pbmRleCk7CkBAIC0xMzA4LDEzICsxMzM3LDEzIEBAIHBhc19zZWdyZWdhdGVkX2hl
YXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICAgICAgICAgb25lLiAqLwog
ICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKAogICAgICAgICAgICAgICAgICAgICAgICAg
b2JqZWN0X3NpemUgPAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWlj
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
cHRyX2xvYWQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5leHRfdHVwbGUtPmRpcmVj
dG9yeSktPm9iamVjdF9zaXplKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBQ
QVNfQVNTRVJUKG5leHRfdHVwbGUgLSBtZWRpdW1fZGlyZWN0b3JpZXMKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA8IHJhcmVfZGF0YS0+bnVtX21lZGl1bV9kaXJlY3Rvcmllcyk7CiAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgdHVwbGVfaW5zZXJ0aW9uX2luZGV4ID0g
bmV4dF90dXBsZSAtIG1lZGl1bV9kaXJlY3RvcmllczsKKyAgICAgICAgICAgICAgICAgICAgdHVw
bGVfaW5zZXJ0aW9uX2luZGV4ID0gKHNpemVfdCkobmV4dF90dXBsZSAtIG1lZGl1bV9kaXJlY3Rv
cmllcyk7CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHR1cGxl
X2luc2VydGlvbl9pbmRleCA9IHJhcmVfZGF0YS0+bnVtX21lZGl1bV9kaXJlY3RvcmllczsKICAg
ICAgICAgCkBAIC0xMzY0LDcgKzEzOTMsNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9z
aXplX2RpcmVjdG9yCiAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCgocGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9tZWRpdW1fZGlyZWN0b3J5X2luZGV4KW1lZGl1bV9pbnN0YWxsX2luZGV4CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9PSBtZWRpdW1faW5zdGFsbF9pbmRleCk7CiAgICAgICAgICAg
ICAgICAgbWVkaXVtX2RpcmVjdG9yeSA9IG1lZGl1bV9kaXJlY3RvcmllcyArIHR1cGxlX2luc2Vy
dGlvbl9pbmRleDsKLSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKAorICAgICAgICAgICAgICAgIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgKICAgICAg
ICAgICAgICAgICAgICAgJm1lZGl1bV9kaXJlY3RvcnktPmRpcmVjdG9yeSwgcmVzdWx0KTsKICAg
ICAgICAgICAgICAgICBtZWRpdW1fZGlyZWN0b3J5LT5hbGxvY2F0b3JfaW5kZXggPSAocGFzX2Fs
bG9jYXRvcl9pbmRleClVSU5UX01BWDsKIApAQCAtMTQwMCwxNyArMTQyOSwxNyBAQCBzaXplX3Qg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9nZXRfbnVtX2ZyZWVfCiAgICAgcmV0dXJuIHBhc19zZWdyZWdh
dGVkX2hlYXBfY29tcHV0ZV9zdW1tYXJ5KGhlYXApLmZyZWU7CiB9CiAKLWJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCitib29sIHBhc19zZWdy
ZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9jYWxsYmFjayBjYWxsYmFjaywKKyAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Zv
cl9lYWNoX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrIGNhbGxiYWNrLAogICAgIHZvaWQgKmFyZykK
IHsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogCi0gICAgZm9y
IChkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfcHRyX2xvYWQoCisgICAgZm9yIChkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9hdG9t
aWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICAmaGVh
cC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpOwogICAgICAgICAgZGlyZWN0b3J5Owot
ICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKAorICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAg
ICAgJmRpcmVjdG9yeS0+bmV4dF9mb3JfaGVhcCkpIHsKICAgICAgICAgaWYgKCFjYWxsYmFjayho
ZWFwLCBkaXJlY3RvcnksIGFyZykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNDI3
LDcgKzE0NTYsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAKIHN0YXRpYyBib29sIGZvcl9lYWNoX2Nv
bW1pdHRlZF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVnYXRlZF9oZWFw
KiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9k
aXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0
b3J5LAogICAgIHZvaWQqIGFyZykKIHsKICAgICBmb3JfZWFjaF9jb21taXR0ZWRfcGFnZV9kYXRh
KiBkYXRhOwpAQCAtMTQ1OCw3ICsxNDg3LDcgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2Zv
cl9lYWNoX2NvbW1pdAogICAgIGRhdGEuaGVhcCA9IGhlYXA7CiAgICAgZGF0YS5jYWxsYmFjayA9
IGNhbGxiYWNrOwogICAgIGRhdGEuYXJnID0gYXJnOwotICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICByZXR1cm4gcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICAgICAgaGVhcCwKICAg
ICAgICAgZm9yX2VhY2hfY29tbWl0dGVkX3NpemVfZGlyZWN0b3J5X2NhbGxiYWNrLAogICAgICAg
ICAmZGF0YSk7CkBAIC0xNDcxLDcgKzE1MDAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiB9IGZvcl9l
YWNoX3ZpZXdfaW5kZXhfZGF0YTsKIAogc3RhdGljIGJvb2wgZm9yX2VhY2hfdmlld19pbmRleF9k
aXJlY3RvcnlfY2FsbGJhY2socGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogc2l6ZV9kaXJlY3RvcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB2b2lkKiBhcmcpCiB7CiAgICAgZm9yX2VhY2hfdmlld19pbmRleF9k
YXRhKiBkYXRhOwpAQCAtMTUwMSw3ICsxNTMwLDcgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFw
X2Zvcl9lYWNoX3ZpZXdfaQogICAgIGRhdGEuaGVhcCA9IGhlYXA7CiAgICAgZGF0YS5jYWxsYmFj
ayA9IGNhbGxiYWNrOwogICAgIGRhdGEuYXJnID0gYXJnOwotICAgIHJldHVybiBwYXNfc2VncmVn
YXRlZF9oZWFwX2Zvcl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKKyAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICAgICAgaGVhcCwK
ICAgICAgICAgZm9yX2VhY2hfdmlld19pbmRleF9kaXJlY3RvcnlfY2FsbGJhY2ssCiAgICAgICAg
ICZkYXRhKTsKQEAgLTE1MTMsNyArMTU0Miw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICB2b2lk
KiBhcmc7CiB9IGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RhdGE7CiAKLXN0YXRpYyBib29sIGZvcl9l
YWNoX2xpdmVfb2JqZWN0X29iamVjdF9jYWxsYmFjayhwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKK3N0YXRpYyBib29sIGZvcl9lYWNoX2xpdmVfb2JqZWN0
X29iamVjdF9jYWxsYmFjayhwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXJnKQpAQCAtMTUyNSwxMSArMTU1NCwxMSBA
QCBzdGF0aWMgYm9vbCBmb3JfZWFjaF9saXZlX29iamVjdF9vYmplY3RfCiAKIHN0YXRpYyBib29s
IGZvcl9lYWNoX2xpdmVfb2JqZWN0X2RpcmVjdG9yeV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVn
YXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnksCiAgICAgdm9pZCogYXJnKQogewogICAgIFBBU19VTlVTRURfUEFSQU0oaGVhcCk7Ci0gICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZl
X29iamVjdCgKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX2Vh
Y2hfbGl2ZV9vYmplY3QoCiAgICAgICAgIGRpcmVjdG9yeSwKICAgICAgICAgZm9yX2VhY2hfbGl2
ZV9vYmplY3Rfb2JqZWN0X2NhbGxiYWNrLAogICAgICAgICBhcmcpOwpAQCAtMTU2Myw3ICsxNTky
LDcgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2xpdmVfbwogICAgIGRhdGEu
Y2FsbGJhY2sgPSBjYWxsYmFjazsKICAgICBkYXRhLmFyZyA9IGFyZzsKICAgICAKLSAgICBpZiAo
IXBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorICAg
IGlmICghcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICAg
ICAgICAgIGhlYXAsCiAgICAgICAgICAgICBmb3JfZWFjaF9saXZlX29iamVjdF9kaXJlY3Rvcnlf
Y2FsbGJhY2ssCiAgICAgICAgICAgICAmZGF0YSkpCkBAIC0xNTg1LDcgKzE2MTQsNyBAQCB0eXBl
ZGVmIHN0cnVjdCB7CiAKIHN0YXRpYyBib29sIG51bV9jb21taXR0ZWRfdmlld3NfZGlyZWN0b3J5
X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgbnVt
X2NvbW1pdHRlZF92aWV3c19kYXRhKiBkYXRhOwpAQCAtMTYwNSw3ICsxNjM0LDcgQEAgc2l6ZV90
IHBhc19zZWdyZWdhdGVkX2hlYXBfbnVtX2NvbW1pdHRlZAogCiAgICAgZGF0YS5yZXN1bHQgPSAw
OwogICAgIAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KAorICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3Rvcnko
CiAgICAgICAgIGhlYXAsIG51bV9jb21taXR0ZWRfdmlld3NfZGlyZWN0b3J5X2NhbGxiYWNrLCAm
ZGF0YSk7CiAgICAgCiAgICAgcmV0dXJuIGRhdGEucmVzdWx0OwpAQCAtMTYxNyw3ICsxNjQ2LDcg
QEAgdHlwZWRlZiBzdHJ1Y3QgewogCiBzdGF0aWMgYm9vbCBudW1fZW1wdHlfdmlld3NfZGlyZWN0
b3J5X2NhbGxiYWNrKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAg
bnVtX2VtcHR5X3ZpZXdzX2RhdGEqIGRhdGE7CkBAIC0xNjM3LDcgKzE2NjYsNyBAQCBzaXplX3Qg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fZW1wdHlfdmllCiAKICAgICBkYXRhLnJlc3VsdCA9IDA7
CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgK
ICAgICAgICAgaGVhcCwgbnVtX2VtcHR5X3ZpZXdzX2RpcmVjdG9yeV9jYWxsYmFjaywgJmRhdGEp
OwogICAgIAogICAgIHJldHVybiBkYXRhLnJlc3VsdDsKQEAgLTE2NDksNyArMTY3OCw3IEBAIHR5
cGVkZWYgc3RydWN0IHsKIAogc3RhdGljIGJvb2wgbnVtX2VtcHR5X2dyYW51bGVzX2RpcmVjdG9y
eV9jYWxsYmFjaygKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgdm9pZCogYXJnKQogewogICAgIG51
bV9lbXB0eV9ncmFudWxlc19kYXRhKiBkYXRhOwpAQCAtMTY2OSw3ICsxNjk4LDcgQEAgc2l6ZV90
IHBhc19zZWdyZWdhdGVkX2hlYXBfbnVtX2VtcHR5X2dyYQogCiAgICAgZGF0YS5yZXN1bHQgPSAw
OwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAg
ICAgICAgaGVhcCwgbnVtX2VtcHR5X2dyYW51bGVzX2RpcmVjdG9yeV9jYWxsYmFjaywgJmRhdGEp
OwogCiAgICAgcmV0dXJuIGRhdGEucmVzdWx0OwpAQCAtMTY4MSw3ICsxNzEwLDcgQEAgdHlwZWRl
ZiBzdHJ1Y3QgewogCiBzdGF0aWMgYm9vbCBudW1fdmlld3NfZGlyZWN0b3J5X2NhbGxiYWNrKAog
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKICAgICB2b2lkKiBhcmcpCiB7CiAgICAgbnVtX3ZpZXdzX2RhdGEq
IGRhdGE7CkBAIC0xNzAxLDcgKzE3MzAsNyBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9u
dW1fdmlld3MocGFzCiAgICAgCiAgICAgZGF0YS5yZXN1bHQgPSAwOwogICAgIAotICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCiAgICAgICAgIGhlYXAsIG51
bV92aWV3c19kaXJlY3RvcnlfY2FsbGJhY2ssICZkYXRhKTsKICAgICAKICAgICByZXR1cm4gZGF0
YS5yZXN1bHQ7CkBAIC0xNzA5LDcgKzE3MzgsNyBAQCBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9udW1fdmlld3MocGFzCiAKIHN0YXRpYyBib29sIGNvbXB1dGVfc3VtbWFyeV9kaXJlY3Rvcnlf
Y2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFyZykKIHsKICAgICBwYXNf
aGVhcF9zdW1tYXJ5KiBzdW1tYXJ5OwpAQCAtMTczMiw3ICsxNzYxLDcgQEAgcGFzX2hlYXBfc3Vt
bWFyeSBwYXNfc2VncmVnYXRlZF9oZWFwX2NvbQogICAgIAogICAgIHJlc3VsdCA9IHBhc19oZWFw
X3N1bW1hcnlfY3JlYXRlX2VtcHR5KCk7CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9m
b3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9m
b3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKICAgICAgICAgaGVhcCwgY29tcHV0ZV9zdW1tYXJ5X2Rp
cmVjdG9yeV9jYWxsYmFjaywgJnJlc3VsdCk7CiAKICAgICBiaXRmaXRfaGVhcCA9IHBhc19jb21w
YWN0X2F0b21pY19iaXRmaXRfaGVhcF9wdHJfbG9hZCgmaGVhcC0+Yml0Zml0X2hlYXApOwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2hlYXAuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjks
NyArMjksNyBAQAogI2luY2x1ZGUgInBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgiCiAj
aW5jbHVkZSAicGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCIKICNpbmNs
dWRlICJwYXNfY29tcGFjdF9hdG9taWNfcHRyLmgiCi0jaW5jbHVkZSAicGFzX2NvbXBhY3RfYXRv
bWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBh
c19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIgogI2luY2x1
ZGUgInBhc19jb21wYWN0X2hlYXBfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgogI2lu
Y2x1ZGUgInBhc19jb3VudF9sb29rdXBfbW9kZS5oIgpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1
ZGUgInBhc19sb2NhbF9hbGxvY2F0b3IuaCIKICNpbmNsdWRlICJwYXNfbXV0YXRpb25fY291bnQu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9raW5kLmgiCisjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oIgogI2luY2x1
ZGUgInBhc19wYWdlX3NoYXJpbmdfbW9kZS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3Bh
Z2UuaCIKIApAQCAtNTgsMTIgKzU5LDEyIEBAIGVudW0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRp
dW1fc2l6ZV9kaXIKIHR5cGVkZWYgZW51bSBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXpl
X2RpcmVjdG9yeV9zZWFyY2hfbW9kZSBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9zaXplX2Rp
cmVjdG9yeV9zZWFyY2hfbW9kZTsKIAogc3RydWN0IHBhc19oZWFwOwotc3RydWN0IHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwOwogc3RydWN0IHBhc19zZWdy
ZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZTsKIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9oZWFwX3JhcmVfZGF0YTsKIHR5cGVkZWYgc3RydWN0IHBhc19oZWFwIHBhc19oZWFwOwotdHlw
ZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCBwYXNfc2VncmVnYXRlZF9oZWFwOwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlIHBhc19z
ZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZTsKIHR5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX2hlYXBfcmFyZV9kYXRhIHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9kYXRh
OwpAQCAtNzYsMTIgKzc3LDEyIEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHsKICAgICBw
YXNfaGVhcF9ydW50aW1lX2NvbmZpZyogcnVudGltZV9jb25maWc7CiAgICAgCiAgICAgcGFzX2Fs
bG9jYXRvcl9pbmRleCogaW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4OwotICAgIHBhc19j
b21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHIqIGluZGV4
X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9fc21hbGxfc2l6ZV9kaXJlY3Rvcnk7CiAK
ICAgICAvKiBUaGlzIGlzIHRoZSBoZWFkIG9mIHRoZSBsaW5rZWQgbGlzdCBvZiBzZWdyZWdhdGVk
IHNpemUgZGlyZWN0b3JpZXMuIEFsc28sIGlmIHRoZXJlIGlzCiAgICAgICAgYSBiYXNpYyBzaXpl
IGRpcmVjdG9yeSAodGhlIG9uZSBmb3IgaW5kZXggPT0gMSBvciBpbmRleCA9PSAqY2FjaGVkX2lu
ZGV4KSwgdGhlbiBpdCB3aWxsCiAgICAgICAgYmUgYXQgdGhlIGhlYWQgb2YgdGhlIGxpc3Qgd2l0
aCB0aGUgaXNfYmFzaWNfc2l6ZV9kaXJlY3RvcnkgYml0IHNldC4gKi8KLSAgICBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyIGJhc2ljX3NpemVf
ZGlyZWN0b3J5X2FuZF9oZWFkOworICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3B0ciBiYXNpY19zaXplX2RpcmVjdG9yeV9hbmRfaGVhZDsKICAgICAKICAg
ICBwYXNfc2VncmVnYXRlZF9oZWFwX3JhcmVfZGF0YV9wdHIgcmFyZV9kYXRhOwogCkBAIC0xMDYs
NyArMTA3LDcgQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdAogICAg
IC8qIE5PVEU6IFRoaXMgZGlyZWN0b3J5IGlzIGFsd2F5cyBnb2luZyB0byBiZSBtZWRpdW0gc2l6
ZWQgYmVjYXVzZSB0aGlzIGRhdGEgc3RydWN0dXJlIGlzIG9ubHkKICAgICAgICB1c2VkIGZvciBz
aXplcyB0aGF0IGFyZSBiZXlvbmQgdGhlIG1heCBvYmplY3Qgc2l6ZSBmb3Igc21hbGwgcGFnZXMu
IEJ1dCBub2JvZHkgc3Ryb25nbHkKICAgICAgICByZWxpZXMgb24gdGhhdCBwcm9wZXJ0eS4gKi8K
LSAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlf
cHRyIGRpcmVjdG9yeTsKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHIgZGlyZWN0b3J5OwogCiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0
b3JfaW5kZXg7CiAgICAgCkBAIC0xODksNyArMTkwLDcgQEAgUEFTX0FQSSB1bnNpZ25lZCBwYXNf
c2VncmVnYXRlZF9oZWFwX21lZAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVf
ZGlyZWN0b3J5X3NlYXJjaF9tb2RlIHNlYXJjaF9tb2RlLAogICAgIHBhc19sb2NrX2hvbGRfbW9k
ZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5
X2Zvcl9pbmRleCgKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHBhc19z
ZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X2Zvcl9pbmRleCgKICAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwLAogICAgIHNpemVfdCBpbmRleCwKICAgICBwYXNfc2VncmVn
YXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfbW9kZSBzZWFyY2hfbW9kZSwK
QEAgLTIzMSw3ICsyMzIsNyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2FsbG9jYXRvcl9pbmRleF9m
b3JfCiBQQVNfQVBJIHVuc2lnbmVkCiBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0
b3JfaW5kZXgoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBjb3VudCwKICAgICBwYXNf
Y291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCiAgICAgcGFzX2hlYXBfY29uZmln
KiBjb25maWcsCkBAIC0yNTcsMjkgKzI1OCwzMCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3Vy
ZV9hbGxvY2F0b3JfaW5kCiAgICBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3Jf
aW5kZXhfZm9yX2NvdW50LiBOZWVkIHRvIGhvbGQgaGVhcCBsb2NrIHRvCiAgICBjYWxsIHRoaXMu
IE9LIHRvIHBhc3MgTlVMTCBmb3IgY2FjaGVkX2luZGV4OyBvbmx5IHByaW1pdGl2ZV9oZWFwX3Jl
ZidzIHVzZQogICAgdGhhdC4gKi8KLVBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KgorUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudCgKICAgICBwYXNf
c2VncmVnYXRlZF9oZWFwKiBoZWFwLAogICAgIHNpemVfdCBjb3VudCwgc2l6ZV90IGFsaWdubWVu
dCwKICAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCiAgICAgcGFz
X2hlYXBfY29uZmlnKiBjb25maWcsCi0gICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCk7CisgICAg
dW5zaWduZWQqIGNhY2hlZF9pbmRleCwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9jcmVhdGlvbl9tb2RlIGNyZWF0aW9uX21vZGUpOwogCiBQQVNfQVBJIHNpemVfdCBwYXNfc2Vn
cmVnYXRlZF9oZWFwX2dldF9udW1fZnJlZV9ieXRlcyhwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFw
KTsKIAotdHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2spKAordHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaykoCiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAogICAgIHZvaWQqIGFyZyk7CiAKLVBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9oZWFwX2Zv
cl9lYWNoX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKK1BBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRl
ZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAq
IGhlYXAsCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfY2FsbGJhY2sgY2FsbGJhY2ssCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFj
aF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjayBjYWxsYmFjaywKICAgICB2b2lkKiBhcmcpOwogCiB0
eXBlZGVmIGJvb2wgKCpwYXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX2NvbW1pdHRlZF92aWV3
X2NhbGxiYWNrKSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2
aWV3LAogICAgIHZvaWQqIGFyZyk7CiAKQEAgLTI5MCw3ICsyOTIsNyBAQCBQQVNfQVBJIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjCiAKIHR5cGVkZWYgYm9vbCAoKnBhc19zZWdyZWdh
dGVkX2hlYXBfZm9yX2VhY2hfdmlld19pbmRleF9jYWxsYmFjaykoCiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
IGRpcmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAogICAgIHNpemVfdCBpbmRleCwKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXdwLAogICAg
IHZvaWQqIGFyZyk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9oZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDIxICsyNywyMSBAQAogI2Rl
ZmluZSBQQVNfU0VHUkVHQVRFRF9IRUFQX0lOTElORVNfSAogCiAjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfaGVhcC5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAKIFBB
U19CRUdJTl9FWFRFUk5fQzsKIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9kaXJl
Y3RvcnlfZm9yX2luZGV4KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgc2l6
ZV90IGluZGV4LAogICAgIHVuc2lnbmVkKiBjYWNoZWRfaW5kZXgpCiB7Ci0gICAgcGFzX2NvbXBh
Y3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ciogaW5kZXhfdG9f
c2l6ZV9kaXJlY3Rvcnk7CisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyKiBpbmRleF90b19zaXplX2RpcmVjdG9yeTsKICAgICAKICAgICBpZiAoaW5k
ZXggPT0gKGNhY2hlZF9pbmRleCA/ICpjYWNoZWRfaW5kZXggOiAxKSkgewotICAgICAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHJlc3VsdDsKLSAgICAgICAgcmVzdWx0
ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0
cl9sb2FkKAorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogcmVzdWx0Owor
ICAgICAgICByZXN1bHQgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfbG9hZCgKICAgICAgICAgICAgICZoZWFwLT5iYXNpY19zaXplX2RpcmVjdG9yeV9h
bmRfaGVhZCk7CiAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LT5iYXNlLmlzX2Jhc2ljX3Np
emVfZGlyZWN0b3J5KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTYxLDEwICs2MSwx
MCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZGlyZWN0b3J5X2Zvcl9pCiAgICAgICAgIHJl
dHVybiBOVUxMOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gcGFzX2NvbXBhY3RfYXRvbWljX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKGluZGV4X3RvX3NpemVfZGly
ZWN0b3J5ICsgaW5kZXgpOworICAgIHJldHVybiBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZChpbmRleF90b19zaXplX2RpcmVjdG9yeSArIGluZGV4
KTsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSoKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSoKIHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9kaXJlY3RvcnlfZm9yX2Nv
dW50KAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXAsCiAgICAgc2l6ZV90IGNvdW50LApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3BhZ2UuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jCSh3b3JraW5nIGNvcHkpCkBAIC00
Miw3ICs0Miw3IEBACiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCiAjaW5jbHVk
ZSAicGFzX3JhbmdlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgi
Ci0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5LmgiCisjaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfdXRp
bGl0eV9oZWFwX2NvbmZpZy5oIgogCiBkb3VibGUgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leHRyYV93
YXN0ZWFnZV9oYW5kaWNhcF9mb3JfY29uZmlnX3ZhcmlhbnRbCkBAIC01NSwxNSArNTUsMTMgQEAg
UEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3BhZ2VfbG9ja193aQogICAgIHBhc19sb2NrKiog
aGVsZF9sb2NrLAogICAgIHBhc19sb2NrKiBsb2NrX3B0cikKIHsKLSAgICBzdGF0aWMgY29uc3Qg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCiAgICAgcGFzX2xvY2tfbG9jayhsb2NrX3B0cik7
CiAgICAgCiAgICAgaWYgKGxvY2tfcHRyID09IHBhZ2UtPmxvY2tfcHRyKSB7CiAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXcgb3duZXI7CiAKICAgICAgICAgb3duZXIgPSBwYWdlLT5vd25lcjsK
LSAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaChvd25lcikp
IHsKKyAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUob3du
ZXIpKSB7CiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVz
aXZlOwogICAgICAgICAgICAgcGFzX2xvY2sqIGZhbGxiYWNrX2xvY2s7CiAgICAgICAgICAgICAK
QEAgLTc0LDEzICs3Miw2IEBAIFBBU19BUEkgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX2xvY2tf
d2kKICAgICAgICAgICAgIGZhbGxiYWNrX2xvY2sgPSAmZXhjbHVzaXZlLT5vd25lcnNoaXBfbG9j
azsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKGxvY2tfcHRyICE9IGZhbGxiYWNrX2xv
Y2spIHsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAg
cGFzX2xvZygiVHJpZ2dlcmluZyBleHBsb3Npb24uXG4iKTsKLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2V0X2Nv
bnRlbnRpb25fZGlkX3RyaWdnZXJfZXhwbG9zaW9uKAotICAgICAgICAgICAgICAgICAgICBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmZXhjbHVz
aXZlLT5kaXJlY3RvcnkpLAotICAgICAgICAgICAgICAgICAgICB0cnVlKTsKLSAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrKGZhbGxiYWNrX2xvY2spOwogICAg
ICAgICAgICAgICAgIHBhZ2UtPmxvY2tfcHRyID0gZmFsbGJhY2tfbG9jazsKICAgICAgICAgICAg
ICAgICBwYXNfbG9ja191bmxvY2sobG9ja19wdHIpOwpAQCAtMTIwLDEwICsxMTEsMTAgQEAgcGFz
X2xvY2sqIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvYwogICAgIFBBU19BU1NFUlQoISJT
aG91bGQgbm90IGJlIHJlYWNoZWQiKTsKIH0KIAotdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3
aXRjaF9sb2NrX2FuZF9yZWJpYXNfdG9fbWFnYXppbmVfd2hpbGVfaW5lbGlnaWJsZV9pbXBsKAor
dm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfd2hpbGVfaW5l
bGlnaWJsZV9pbXBsKAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCiAgICAgcGFzX2xv
Y2sqKiBoZWxkX2xvY2ssCi0gICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSkKKyAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX25vZGUqIGNhY2hlX25vZGUpCiB7CiAgICAgZm9yICg7OykgewogICAg
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3IG93bmVyOwpAQCAtMTM0LDE0ICsxMjUsMTQgQEAgdm9p
ZCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZAogICAgIAogICAgICAgICBwYWdl
X2xvY2sgPSBwYWdlLT5sb2NrX3B0cjsKIAotICAgICAgICBpZiAoKmhlbGRfbG9jayA9PSBwYWdl
X2xvY2sgJiYgKmhlbGRfbG9jayA9PSAmbWFnYXppbmUtPmxvY2spIHsKKyAgICAgICAgaWYgKCpo
ZWxkX2xvY2sgPT0gcGFnZV9sb2NrICYmICpoZWxkX2xvY2sgPT0gJmNhY2hlX25vZGUtPnBhZ2Vf
bG9jaykgewogICAgICAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAogICAgICAgICBvd25lciA9IHBhZ2UtPm93bmVyOwogCi0gICAg
ICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKG93bmVyKSB8fCAh
bWFnYXppbmUpIHsKKyAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhj
bHVzaXZlKG93bmVyKSB8fCAhY2FjaGVfbm9kZSkgewogICAgICAgICAgICAgcGFzX2xvY2tfc3dp
dGNoKGhlbGRfbG9jaywgcGFnZV9sb2NrKTsKICAgICAgICAgICAgIGlmIChwYWdlLT5sb2NrX3B0
ciAhPSBwYWdlX2xvY2spCiAgICAgICAgICAgICAgICAgY29udGludWU7CkBAIC0xNDksMTQgKzE0
MCwxNCBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kCiAgICAgICAg
IH0KIAogICAgICAgICBkaWRfbG9ja19xdWlja2x5ID0KLSAgICAgICAgICAgICgqaGVsZF9sb2Nr
ID09ICZtYWdhemluZS0+bG9jayAmJiBwYXNfbG9ja190cnlfbG9jayhwYWdlX2xvY2spKSB8fAot
ICAgICAgICAgICAgKCpoZWxkX2xvY2sgPT0gcGFnZV9sb2NrICYmIHBhc19sb2NrX3RyeV9sb2Nr
KCZtYWdhemluZS0+bG9jaykpOworICAgICAgICAgICAgKCpoZWxkX2xvY2sgPT0gJmNhY2hlX25v
ZGUtPnBhZ2VfbG9jayAmJiBwYXNfbG9ja190cnlfbG9jayhwYWdlX2xvY2spKSB8fAorICAgICAg
ICAgICAgKCpoZWxkX2xvY2sgPT0gcGFnZV9sb2NrICYmIHBhc19sb2NrX3RyeV9sb2NrKCZjYWNo
ZV9ub2RlLT5wYWdlX2xvY2spKTsKIAogICAgICAgICBpZiAoIWRpZF9sb2NrX3F1aWNrbHkpIHsK
ICAgICAgICAgICAgIGlmICgqaGVsZF9sb2NrKQogICAgICAgICAgICAgICAgIHBhc19sb2NrX3Vu
bG9jaygqaGVsZF9sb2NrKTsKIAotICAgICAgICAgICAgaWYgKCZtYWdhemluZS0+bG9jayA9PSBw
YWdlX2xvY2spIHsKKyAgICAgICAgICAgIGlmICgmY2FjaGVfbm9kZS0+cGFnZV9sb2NrID09IHBh
Z2VfbG9jaykgewogICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2socGFnZV9sb2NrKTsKICAg
ICAgICAgICAgICAgICAqaGVsZF9sb2NrID0gcGFnZV9sb2NrOwogICAgICAgICAgICAgICAgIGlm
IChwYWdlLT5sb2NrX3B0ciAhPSBwYWdlX2xvY2spCkBAIC0xNjgsMjYgKzE1OSwyNyBAQCB2b2lk
IHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kCiAKICAgICAgICAgICAgIC8qIFRo
aXMgZW5mb3JjZXMgdGhhdDoKICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgLSBNYWdh
emluZSBsb2NrcyBtdXN0IGJlIGFjcXVpcmVkIGJlZm9yZSBwYWdlIGxvY2tzLgorICAgICAgICAg
ICAgICAgLSBDYWNoZSBub2RlIHBhZ2UgbG9ja3MgbXVzdCBiZSBhY3F1aXJlZCBiZWZvcmUgcGFn
ZSBsb2Nrcy4KICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgLSBNYWdhemluZSBsb2Nr
cyBhcmUgYWNxdWlyZWQgaW4gcG9pbnRlci1hcy1pbnRlZ2VyIG9yZGVyIHJlbGF0aXZlIHRvIG9u
ZSBhbm90aGVyLiAqLwotICAgICAgICAgICAgaWYgKCZleGNsdXNpdmUtPm93bmVyc2hpcF9sb2Nr
ID09IHBhZ2VfbG9jayB8fCAmbWFnYXppbmUtPmxvY2sgPCBwYWdlX2xvY2spIHsKLSAgICAgICAg
ICAgICAgICBwYXNfbG9ja19sb2NrKCZtYWdhemluZS0+bG9jayk7CisgICAgICAgICAgICAgICAt
IENhY2hlIG5vZGUgcGFnZSBsb2NrcyBhcmUgYWNxdWlyZWQgaW4gcG9pbnRlci1hcy1pbnRlZ2Vy
IG9yZGVyIHJlbGF0aXZlIHRvIG9uZQorICAgICAgICAgICAgICAgICBhbm90aGVyLiAqLworICAg
ICAgICAgICAgaWYgKCZleGNsdXNpdmUtPm93bmVyc2hpcF9sb2NrID09IHBhZ2VfbG9jayB8fCAm
Y2FjaGVfbm9kZS0+cGFnZV9sb2NrIDwgcGFnZV9sb2NrKSB7CisgICAgICAgICAgICAgICAgcGFz
X2xvY2tfbG9jaygmY2FjaGVfbm9kZS0+cGFnZV9sb2NrKTsKICAgICAgICAgICAgICAgICBwYXNf
bG9ja19sb2NrKHBhZ2VfbG9jayk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgIHBhc19sb2NrX2xvY2socGFnZV9sb2NrKTsKLSAgICAgICAgICAgICAgICBwYXNfbG9ja19s
b2NrKCZtYWdhemluZS0+bG9jayk7CisgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmY2Fj
aGVfbm9kZS0+cGFnZV9sb2NrKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAg
IFBBU19BU1NFUlQocGFnZV9sb2NrICE9ICZtYWdhemluZS0+bG9jayk7CisgICAgICAgIFBBU19B
U1NFUlQocGFnZV9sb2NrICE9ICZjYWNoZV9ub2RlLT5wYWdlX2xvY2spOwogCiAgICAgICAgIGdv
dF9yaWdodF9sb2NrID0gKHBhZ2UtPmxvY2tfcHRyID09IHBhZ2VfbG9jayk7CiAgICAgICAgIGlm
IChnb3RfcmlnaHRfbG9jaykKLSAgICAgICAgICAgIHBhZ2UtPmxvY2tfcHRyID0gJm1hZ2F6aW5l
LT5sb2NrOworICAgICAgICAgICAgcGFnZS0+bG9ja19wdHIgPSAmY2FjaGVfbm9kZS0+cGFnZV9s
b2NrOwogICAgICAgICAKICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKHBhZ2VfbG9jayk7Ci0gICAg
ICAgICpoZWxkX2xvY2sgPSAmbWFnYXppbmUtPmxvY2s7CisgICAgICAgICpoZWxkX2xvY2sgPSAm
Y2FjaGVfbm9kZS0+cGFnZV9sb2NrOwogCiAgICAgICAgIGlmIChnb3RfcmlnaHRfbG9jaykKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTIxNCw4ICsyMDYsOSBAQCB2b2lkIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uc3RydWN0KHBhc19zCiAgICAgcGFnZS0+dXNlX2Vwb2NoID0gUEFTX0VQT0NIX0lO
VkFMSUQ7CiAKICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICBwYXNfbG9nKCJDb25zdHJ1Y3Rp
bmcgcGFnZSAlcCBmb3IgdmlldyAlcCBhbmQgY29uZmlnICVzLlxuIiwKLSAgICAgICAgICAgICAg
ICBwYWdlLCBvd25lciwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfc3RyaW5n
KHBhZ2VfY29uZmlnLmtpbmQpKTsKKyAgICAgICAgcGFzX2xvZygiQ29uc3RydWN0aW5nIHBhZ2Ug
JXAgd2l0aCBib3VuZGFyeSAlcCBmb3IgdmlldyAlcCBhbmQgY29uZmlnICVzLlxuIiwKKyAgICAg
ICAgICAgICAgICBwYWdlLCBwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIHBhZ2Vf
Y29uZmlnKSwKKyAgICAgICAgICAgICAgICBvd25lciwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfa2luZF9nZXRfc3RyaW5nKHBhZ2VfY29uZmlnLmtpbmQpKTsKICAgICB9CiAKICAgICBpZiAo
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpCkBAIC0y
MjgsMjIgKzIyMSwyOSBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uc3RydWN0KHBhc19z
CiAKICAgICBwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzID0gMDsKICAgICAKLSAgICBpZiAocGFz
X3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKG93bmVyKSkgewotICAgICAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgcGFnZS0+
dmlld19jYWNoZV9pbmRleCA9IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOworCisgICAg
aWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUob3duZXIpKSB7CisgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CiAKLSAgICAgICAgZGlyZWN0
b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG93bmVy
KTsKLSAgICAgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9k
YXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpOworICAgICAgICBkaXJlY3Rv
cnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShvd25lcik7CisgICAg
ICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25v
bl9udWxsKCZkaXJlY3RvcnktPmRhdGEpOwogCiAgICAgICAgIFBBU19BU1NFUlQoZGlyZWN0b3J5
LT5vYmplY3Rfc2l6ZSk7CiAgICAgICAgIHBhZ2UtPm9iamVjdF9zaXplID0gZGlyZWN0b3J5LT5v
YmplY3Rfc2l6ZTsKICAgICAgICAgUEFTX0FTU0VSVChwYWdlLT5vYmplY3Rfc2l6ZSA9PSBkaXJl
Y3RvcnktPm9iamVjdF9zaXplKTsgLyogQ2hlY2sgZm9yIG92ZXJmbG93cy4gKi8KKworICAgICAg
ICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0eShk
aXJlY3RvcnkpKSB7CisgICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeS0+dmlld19jYWNo
ZV9pbmRleCA8IChwYXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKKyAgICAgICAgICAgIHBh
Z2UtPnZpZXdfY2FjaGVfaW5kZXggPSBkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXg7CisgICAg
ICAgIH0gZWxzZQorICAgICAgICAgICAgUEFTX0FTU0VSVChkaXJlY3RvcnktPnZpZXdfY2FjaGVf
aW5kZXggPT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogICAgIH0gZWxzZQogICAg
ICAgICBwYWdlLT5vYmplY3Rfc2l6ZSA9IDA7CiAKICAgICBwYWdlLT5pc19pbl91c2VfZm9yX2Fs
bG9jYXRpb24gPSBmYWxzZTsKICAgICBwYWdlLT5pc19jb21taXR0aW5nX2Z1bGx5ID0gZmFsc2U7
Ci0gICAgcGFnZS0+YXZvaWRfbGluZV9hbGxvY2F0b3IgPSBmYWxzZTsKIAogICAgIGlmIChwYWdl
X2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAhPSBwYWdlX2NvbmZpZy5iYXNlLmdyYW51bGVfc2l6ZSkg
ewogICAgICAgICBwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudCogdXNlX2NvdW50czsKQEAgLTUw
Niw4ICs1MDYsOCBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29tbWl0X2Z1bGx5KAogICAg
ICAgICAgICAgICAgICAgICBjb21taXRfc3Bhbi50b3RhbF9ieXRlcyk7CiAgICAgICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoCi0gICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9y
eShvd25lciksCi0gICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSwKKyAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkob3duZXIpLAorICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSwKICAg
ICAgICAgICAgICAgICAgICAgY29tbWl0X3NwYW4udG90YWxfYnl0ZXMpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgUEFTX1NFR1JFR0FURURfUEFHRV9ICiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1BBR0Vf
SAogCisjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgogI2luY2x1ZGUgInBhc19iaXR2
ZWN0b3IuaCIKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2ZyZWVfcmFu
Z2Vfa2luZC5oIgpAQCAtNjcsOSArNjgsNyBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSB7
CiAgICAgYm9vbCBlbGlnaWJpbGl0eV9ub3RpZmljYXRpb25faGFzX2JlZW5fZGVmZXJyZWQ7CiAK
ICAgICAvKiBUaGlzIGlzIGhhbmR5IGZvciBkZWJ1Z2dpbmcuICovCi0gICAgYm9vbCBpc19jb21t
aXR0aW5nX2Z1bGx5IDogMTsKLQotICAgIGJvb2wgYXZvaWRfbGluZV9hbGxvY2F0b3IgOiAxOwor
ICAgIGJvb2wgaXNfY29tbWl0dGluZ19mdWxseTsKIAogICAgIHVuc2lnbmVkIG9iamVjdF9zaXpl
OyAvKiBDYWNoaW5nIHRoaXMgaGVyZSBpcyBncmVhdCBmb3IgcGVyZm9ybWFuY2UuICovCiAKQEAg
LTEwNSw2ICsxMDQsNyBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSB7CiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlldyBvd25lcjsKICAgICAKICAgICB1aW50MTZfdCBudW1fbm9uX2VtcHR5X3dv
cmRzOworICAgIHBhc19hbGxvY2F0b3JfaW5kZXggdmlld19jYWNoZV9pbmRleDsKIAogICAgIHVu
c2lnbmVkIGFsbG9jX2JpdHNbMV07CiB9OwpAQCAtMjkwLDYgKzI5MCwzNCBAQCBwYXNfc2VncmVn
YXRlZF9wYWdlX2dldF9ncmFudWxlX3VzZV9jb3VuCiAgICAgICAgIHBhZ2UtPmFsbG9jX2JpdHMg
KyBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcp
KTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wKK3Bhc19zZWdyZWdhdGVkX3Bh
Z2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdCgKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdl
LAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQoreworICAgIHBh
c19wYWdlX2dyYW51bGVfdXNlX2NvdW50KiB1c2VfY291bnRzOworICAgIHVpbnRwdHJfdCBudW1f
Z3JhbnVsZXM7CisgICAgdWludHB0cl90IGdyYW51bGVfaW5kZXg7CisgICAgCisgICAgUEFTX0FT
U0VSVChwYWdlX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOworCisgICAgaWYgKCFwYWdlLT5udW1f
bm9uX2VtcHR5X3dvcmRzKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAKKyAgICBpZiAocGFn
ZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPT0gcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemUp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICB1c2VfY291bnRzID0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9nZXRfZ3JhbnVsZV91c2VfY291bnRzKHBhZ2UsIHBhZ2VfY29uZmlnKTsKKyAg
ICBudW1fZ3JhbnVsZXMgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAvIHBhZ2VfY29uZmln
LmJhc2UuZ3JhbnVsZV9zaXplOworICAgIAorICAgIGZvciAoZ3JhbnVsZV9pbmRleCA9IG51bV9n
cmFudWxlczsgZ3JhbnVsZV9pbmRleC0tOykgeworICAgICAgICBpZiAoIXVzZV9jb3VudHNbZ3Jh
bnVsZV9pbmRleF0pCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9w
YWdlKgogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnkodm9pZCogYm91bmRhcnksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
ZyBwYWdlX2NvbmZpZykKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaAkocmV2aXNpb24g
MjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBzdHJ1Y3Qg
cGFzX2xvY2FsX2FsbG9jYXRvcjsKIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKIHN0
cnVjdCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2w7CiBzdHJ1Y3QgcGFzX3BoeXNpY2FsX21lbW9yeV90
cmFuc2FjdGlvbjsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnk7
CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcDsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlOwogc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnOwpAQCAtNjYsNyArNjYsNyBAQCB0eXBlZGVmIHN0cnVjdCBwYXNf
bG9jYWxfYWxsb2NhdG9yIHBhc19sCiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZyBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKIHR5cGVkZWYgc3RydWN0IHBhc19wYWdlX3No
YXJpbmdfcG9vbCBwYXNfcGFnZV9zaGFyaW5nX3Bvb2w7CiB0eXBlZGVmIHN0cnVjdCBwYXNfcGh5
c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb247
Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiB0
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdyZWdhdGVkX2hlYXA7CiB0
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlIHBhc19zZWdyZWdhdGVkX3BhZ2U7CiB0
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZzsKQEAgLTc2LDcgKzc2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZSBwYQogCiB0eXBlZGVmIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeSoKICgqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
X3NlbGVjdG9yKSgKLSAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcCogaGVhcCwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CiB0
eXBlZGVmIHZvaWQgKCpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19kZWFsbG9jX2Z1bmMpKHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGJlZ2lu
KTsKIApAQCAtODYsNyArODYsNyBAQCB0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogdHlw
ZWRlZiBib29sCiAoKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3NwZWNpYWxpemVkX2xvY2Fs
X2FsbG9jYXRvcl9zdGFydF9hbGxvY2F0aW5nX2luX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3KSgK
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlldyogcGFydGlhbCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnkqIHNpemVfZGlyZWN0b3J5KTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSog
c2l6ZV9kaXJlY3RvcnkpOwogdHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbCkoCiAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvciogYWxsb2NhdG9yLAogICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBjb3VudHMpOwpA
QCAtOTQsNyArOTQsNyBAQCB0eXBlZGVmIHZvaWQgKCpwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
CiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgIHBhc19zZWdyZWdhdGVk
X3ZpZXcgdmlldywKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAgIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhl
YXBfbG9ja19ob2xkX21vZGUpOwogCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcg
ewpAQCAtMTUzLDYgKzE1Myw5IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyB7
CiAgICAgICAgb2YgYml0cyBnb2VzIGNsZWFyLiAqLwogICAgIGJvb2wgZW5hYmxlX2VtcHR5X3dv
cmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uOwogCisgICAgLyogVGVsbHMgaWYgd2UgdXNlIHRo
ZSB2aWV3IGNhY2hlIGZvciB0aGlzIHNpemUgY2xhc3MuICovCisgICAgYm9vbCBlbmFibGVfdmll
d19jYWNoZTsKKwogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3NoYXJlZF9wYWdlX2Rp
cmVjdG9yeV9zZWxlY3RvciBzaGFyZWRfcGFnZV9kaXJlY3Rvcnlfc2VsZWN0b3I7CiAKICAgICAv
KiBUaGVzZSB0d28gZ2V0IGZpbGxlZCBpbiB3aXRoIHRoZSBQQVNfU0VHUkVHQVRFRF9QQUdFX0NP
TkZJR19TUEVDSUFMSVpBVElPTlMoKSBtYWNyby4gKi8KQEAgLTE4Myw3ICsxODYsNyBAQCBQQVNf
QVBJIGV4dGVybiBib29sIHBhc19tZWRpdW1fc2VncmVnYXRlCiAgICAgUEFTX0FQSSBib29sIGxv
d2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9y
X3N0YXJ0X2FsbG9jYXRpbmdfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcoIFwKICAgICAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBcCiAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlldyogcGFydGlhbCwgXAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KTsgXAorICAgICAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpOyBcCiAgICAgUEFTX0FQSSBib29sIGxv
d2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2NhdG9y
X3JlZmlsbCggXAogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIFwKICAg
ICAgICAgcGFzX2FsbG9jYXRvcl9jb3VudHMqIGNvdW50cyk7IFwKQEAgLTE5Miw3ICsxOTUsNyBA
QCBQQVNfQVBJIGV4dGVybiBib29sIHBhc19tZWRpdW1fc2VncmVnYXRlCiAgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgXAogICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3
IHZpZXcsIFwKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwgXAotICAgICAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwgXAorICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LCBcCiAgICAgICAgIHBh
c19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQogCiAjZGVmaW5lIFBBU19TRUdS
RUdBVEVEX1BBR0VfQ09ORklHX1NQRUNJQUxJWkFUSU9OUyhsb3dlcl9jYXNlX3BhZ2VfY29uZmln
X25hbWUpIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pbmxpbmVzLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDQs
NyArNDQsNyBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgUEFTX05FVkVSX0lOTElORSBib29s
IGxvd2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfbG9jYWxfYWxsb2Nh
dG9yX3N0YXJ0X2FsbG9jYXRpbmdfaW5fcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXcoIFwKICAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLCBcCiAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlldyogcGFydGlhbCwgXAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5KSBcCisgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSkgXAogICAgIHsgXAogICAgICAgICBy
ZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9zdGFydF9hbGxvY2F0aW5nX2luX3ByaW1vcmRpYWxf
cGFydGlhbF92aWV3KCBcCiAgICAgICAgICAgICBhbGxvY2F0b3IsIHBhcnRpYWwsIHNpemVfZGly
ZWN0b3J5LCAocGFnZV9jb25maWdfdmFsdWUpKTsgXApAQCAtNjQsNyArNjQsNyBAQCBQQVNfQkVH
SU5fRVhURVJOX0M7CiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgXAog
ICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsIFwKICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZSogcGFnZSwgXAotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwgXAorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5LCBcCiAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9s
ZF9tb2RlKSBcCiAgICAgeyBcCiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmV0dXJuX21l
bW9yeV90b19wYWdlKCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlscy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxz
LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0
LDcgKzY0LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmVyaWZ5X2RlYWxsbwogICAg
IFwKICAgICBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogXAog
ICAgIG5hbWUgIyMgX3BhZ2VfY29uZmlnX3NlbGVjdF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkoIFwK
LSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOyBcCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2hl
YXAqIGhlYXAsIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOyBcCiAg
ICAgXAogICAgIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIFwKICAgICBuYW1lICMjIF9k
ZWFsbG9jX2Z1bmMocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsIHVpbnRwdHJfdCBiZWdp
bikKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ191dGlsc19pbmxp
bmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3V0aWxzX2lubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtNTIsNyArNTIsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgXAogICAgIHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSogXAogICAgIG5hbWUgIyMgX3BhZ2VfY29u
ZmlnX3NlbGVjdF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkoIFwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcCogaGVhcCwgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXpl
X2RpcmVjdG9yeSkgXAorICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnkpIFwKICAgICB7IFwKICAgICAg
ICAgUEFTX1VOVVNFRF9QQVJBTShzaXplX2RpcmVjdG9yeSk7IFwKICAgICAgICAgXApJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxp
bmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCwxNSArMjgsMTUgQEAKIAogI2luY2x1ZGUgInBhc19jb25maWcu
aCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCi0jaW5jbHVkZSAicGFzX21hZ2F6aW5lLmgiCiAjaW5j
bHVkZSAicGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25f
bW9kZS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMu
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfcGFydGlhbF92aWV3LmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnku
aCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmgiCiAjaW5jbHVkZSAi
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9ub2RlLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIApAQCAtNDQsMjIgKzQ0LDIyIEBAIFBB
U19CRUdJTl9FWFRFUk5fQzsKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1bnNpZ25lZAogcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVj
dCgKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFn
ZV9jb25maWcpCiB7CiAgICAgdWludHB0cl90IHJlc3VsdDsKIAogICAgIFBBU19BU1NFUlQocGFn
ZV9jb25maWcuYmFzZS5pc19lbmFibGVkKTsKICAgICAKLSAgICBpZiAoIXBhZ2UgfHwgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKHBhZ2UtPm93bmVyKSkgeworICAgIGlmICgh
cGFnZSB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKHBhZ2UtPm93bmVy
KSkgewogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9y
eSk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAg
ICAgICAgICBkaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9leGNsdXNpdmUocGFnZS0+b3duZXIpLT5kaXJlY3RvcnkpOwogICAgICAgICB9CiAKLSAg
ICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0
cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpCisgICAgICAgIHJldHVybiBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3Rvcnkt
PmRhdGEpCiAgICAgICAgICAgICAtPm9mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rf
b2JqZWN0OwogICAgIH0KIApAQCAtNzYsNyArNzYsNyBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX29m
ZnNldF9mcm9tX3BhZ2VfYm91CiAgICBicmluZ2luZyB1cCBzaGFyZWQgdmlld3MuICovCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX2luaXRpYWxpemVf
ZnVsbF91c2VfY291bnRzKAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UsCi0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfcGFnZV9ncmFudWxl
X3VzZV9jb3VudCogdXNlX2NvdW50cywKICAgICB1aW50cHRyX3QgZW5kX2dyYW51bGVfaW5kZXgs
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCkBAIC04OSw3ICs4
OSw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19zZWdyZWcKICAgICB1aW50
cHRyX3QgZW5kX29mX2xhc3Rfb2JqZWN0OwogICAgIHVpbnRwdHJfdCBvYmplY3Rfc2l6ZTsKICAg
ICB1aW50cHRyX3Qgb2Zmc2V0OwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeV9kYXRhKiBkYXRhOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEq
IGRhdGE7CiAKICAgICBQQVNfQVNTRVJUKHBhZ2VfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CiAg
ICAgCkBAIC0xMjIsNyArMTIyLDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFz
X3NlZ3JlZwogICAgIGlmICghZGlyZWN0b3J5KQogICAgICAgICByZXR1cm4gZW5kX2dyYW51bGVf
b2Zmc2V0ID09IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplOwogCi0gICAgZGF0YSA9IHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZk
aXJlY3RvcnktPmRhdGEpOworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cl9sb2FkX25vbl9udWxsKCZkaXJlY3RvcnktPmRhdGEpOwogCiAgICAgc3RhcnRf
b2ZfZmlyc3Rfb2JqZWN0ID0KICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9vZmZzZXRfZnJv
bV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVjdCgKQEAgLTIzNSwxNCArMjM1LDMzIEBAIFBB
U19BUEkgcGFzX2xvY2sqIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3cKICAgICBwYXNfbG9jayogaGVs
ZF9sb2NrLAogICAgIHBhc19sb2NrKiBwYWdlX2xvY2spOwogCitzdGF0aWMgUEFTX0FMV0FZU19J
TkxJTkUgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2ltcGwoCisgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKKyAgICBwYXNfbG9jayoqIGhlbGRfbG9jaykKK3sKKyAg
ICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgcGFzX2xvY2sq
IGhlbGRfbG9ja192YWx1ZTsKKyAgICBwYXNfbG9jayogcGFnZV9sb2NrOworICAgIAorICAgIGhl
bGRfbG9ja192YWx1ZSA9ICpoZWxkX2xvY2s7CisgICAgcGFnZV9sb2NrID0gcGFnZS0+bG9ja19w
dHI7CisgICAgCisgICAgaWYgKFBBU19MSUtFTFkoaGVsZF9sb2NrX3ZhbHVlID09IHBhZ2VfbG9j
aykpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJHZXR0aW5n
IHRoZSBzYW1lIGxvY2sgYXMgYmVmb3JlICglcCkuXG4iLCBwYWdlX2xvY2spOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIAorICAgICpoZWxkX2xvY2sgPSBwYXNfc2VncmVnYXRlZF9wYWdl
X3N3aXRjaF9sb2NrX3Nsb3cocGFnZSwgaGVsZF9sb2NrX3ZhbHVlLCBwYWdlX2xvY2spOworfQor
CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRj
aF9sb2NrX3dpdGhfbW9kZSgKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAgIHBh
c19sb2NrKiogaGVsZF9sb2NrLAogICAgIHBhc19sb2NrX2xvY2tfbW9kZSBsb2NrX21vZGUsCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7Ci0gICAgc3RhdGlj
IGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAogICAgIFBBU19BU1NFUlQocGFnZV9j
b25maWcuYmFzZS5pc19lbmFibGVkKTsKICAgICAKICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaXNfdXRpbGl0eShwYWdlX2NvbmZpZykpIHsKQEAgLTI1NSwxOSArMjc0LDcgQEAg
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgcGFzX3NlZ3JlZwogICAgICAgICByZXR1cm4g
cGFzX2xvY2tfc3dpdGNoX3dpdGhfbW9kZShoZWxkX2xvY2ssIHBhZ2UtPmxvY2tfcHRyLCBwYXNf
bG9ja19sb2NrX21vZGVfdHJ5X2xvY2spOwogCiAgICAgY2FzZSBwYXNfbG9ja19sb2NrX21vZGVf
bG9jazogewotICAgICAgICBwYXNfbG9jayogaGVsZF9sb2NrX3ZhbHVlOwotICAgICAgICBwYXNf
bG9jayogcGFnZV9sb2NrOwotCi0gICAgICAgIGhlbGRfbG9ja192YWx1ZSA9ICpoZWxkX2xvY2s7
Ci0gICAgICAgIHBhZ2VfbG9jayA9IHBhZ2UtPmxvY2tfcHRyOwotICAgICAgICAKLSAgICAgICAg
aWYgKFBBU19MSUtFTFkoaGVsZF9sb2NrX3ZhbHVlID09IHBhZ2VfbG9jaykpIHsKLSAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgIHBhc19sb2coIkdldHRpbmcgdGhlIHNh
bWUgbG9jayBhcyBiZWZvcmUgKCVwKS5cbiIsIHBhZ2VfbG9jayk7Ci0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgICpoZWxkX2xvY2sgPSBwYXNfc2VncmVnYXRl
ZF9wYWdlX3N3aXRjaF9sb2NrX3Nsb3cocGFnZSwgaGVsZF9sb2NrX3ZhbHVlLCBwYWdlX2xvY2sp
OworICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2ltcGwocGFnZSwgaGVs
ZF9sb2NrKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSB9CiAgICAgUEFTX0FTU0VSVCgh
IlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwpAQCAtMjg3LDE2ICsyOTQsMTYgQEAgc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZwogICAgIFBBU19BU1NFUlQocmVzdWx0KTsK
IH0KIAotUEFTX0FQSSB2b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3Jl
Ymlhc190b19tYWdhemluZV93aGlsZV9pbmVsaWdpYmxlX2ltcGwoCitQQVNfQVBJIHZvaWQgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9ja19hbmRfcmViaWFzX3doaWxlX2luZWxpZ2libGVf
aW1wbCgKICAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAgIHBhc19sb2NrKiogaGVs
ZF9sb2NrLAotICAgIHBhc19tYWdhemluZSogbWFnYXppbmUpOworICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbm9kZSogY2FjaGVfbm9kZSk7CiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkCi1wYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrX2FuZF9yZWJpYXNfdG9fbWFnYXpp
bmVfd2hpbGVfaW5lbGlnaWJsZSgKK3Bhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5k
X3JlYmlhc193aGlsZV9pbmVsaWdpYmxlKAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2Us
CiAgICAgcGFzX2xvY2sqKiBoZWxkX2xvY2ssCi0gICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSwK
KyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUqIGNhY2hlX25vZGUsCiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCiB7CiAgICAgUEFTX0FTU0VSVChwYWdl
X2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOwpAQCAtMzA2LDggKzMxMyw4IEBAIHBhc19zZWdyZWdh
dGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc190b19tYWdhemlu
ZV93aGlsZV9pbmVsaWdpYmxlX2ltcGwoCi0gICAgICAgIHBhZ2UsIGhlbGRfbG9jaywgbWFnYXpp
bmUpOworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2tfYW5kX3JlYmlhc193aGls
ZV9pbmVsaWdpYmxlX2ltcGwoCisgICAgICAgIHBhZ2UsIGhlbGRfbG9jaywgY2FjaGVfbm9kZSk7
CiB9CiAKIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX3ZlcmlmeV9ncmFudWxlcyhw
YXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKTsKQEAgLTMxNyw2ICszMjQsOCBAQCBQQVNfQVBJIFBB
U19OT19SRVRVUk4gUEFTX1VTRUQgdm9pZCBwYXNfCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZAogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZShwYXNfc2VncmVn
YXRlZF9wYWdlKiBwYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50cHRyX3QgYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlIGRlYWxsb2NhdGlvbl9tb2RlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnKQogewog
ICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKQEAgLTM5MywxMSArNDAyLDE1
IEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UKICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfdmlldyBvd25lcjsKICAgICAgICAgb3duZXIgPSBwYWdlLT5vd25lcjsKICAg
ICAgICAgCi0gICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZV9raW5k
KG93bmVyKSkgewotICAgICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVz
aXZlX2lzaChvd25lcikpIHsKKyAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tp
bmQob3duZXIpICE9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQpIHsKKyAgICAg
ICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKG93bmVyKSkg
ewogICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICBwYXNf
bG9nKCJOb3RpZnlpbmcgZXhjbHVzaXZlLWlzaCBlbGlnaWJpbGl0eSBvbiB2aWV3ICVwLlxuIiwg
b3duZXIpOwotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfbm90ZV9lbGlnaWJp
bGl0eShvd25lciwgcGFnZSk7CisgICAgICAgICAgICAgICAgLyogTk9URTogSWYgdGhpcyBkZWNp
ZGVzIHRvIGNhY2hlIHRoZSB2aWV3IHRoZW4gaXQncyBwb3NzaWJsZSB0aGF0IHdlIHdpbGwgcmVs
ZWFzZSBhbmQKKyAgICAgICAgICAgICAgICAgICB0aGVuIHJlYWNxdWlyZSB0aGlzIHBhZ2UncyBs
b2NrLiAqLworICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25v
dGVfZWxpZ2liaWxpdHkoCisgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X2V4Y2x1c2l2ZShvd25lciksCisgICAgICAgICAgICAgICAgICAgIHBhZ2UsIGRlYWxsb2Nh
dGlvbl9tb2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUsIHBhZ2VfY29uZmlnKTsKICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZSog
c2hhcmVkX2hhbmRsZTsKICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXcqIHBhcnRpYWxfdmlldzsKQEAgLTQzNiwxMCArNDQ5LDEwIEBAIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UKICAgICAgICAgYml0X2luZGV4ID0gb2Zmc2V0X2luX3Bh
Z2UgPj4gcGFnZV9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQ7CiAgICAgICAgIG93bmVyID0g
cGFnZS0+b3duZXI7CiAKLSAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVz
aXZlX2lzaChvd25lcikpCisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVf
ZXhjbHVzaXZlKG93bmVyKSkKICAgICAgICAgICAgIG9iamVjdF9zaXplID0gcGFnZS0+b2JqZWN0
X3NpemU7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgb2JqZWN0X3NpemUgPSBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgK
KyAgICAgICAgICAgIG9iamVjdF9zaXplID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKICAgICAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX2hhbmRsZV9wYXJ0aWFsX3ZpZXdfZm9yX2luZGV4KAogICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaGFyZWRfaGFuZGxlKG93bmVyKSwKICAgICAg
ICAgICAgICAgICAgICAgYml0X2luZGV4LApAQCAtNDczLDYgKzQ4Niw4IEBAIHBhc19zZWdyZWdh
dGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZSgKICAgICB1aW50cHRyX3QgYmVnaW4s
CiAgICAgcGFzX2xvY2sqKiBoZWxkX2xvY2ssCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0
aW9uX21vZGUgZGVhbGxvY2F0aW9uX21vZGUsCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSog
dGhyZWFkX2xvY2FsX2NhY2hlLAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2Vf
Y29uZmlnKQogewogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7CkBAIC00ODEsMzggKzQ5
NiwxMSBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2VncmVnCiAgICAgCiAg
ICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2FkZHJlc3NfYW5kX3BhZ2VfY29uZmln
KGJlZ2luLCBwYWdlX2NvbmZpZyk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9zd2l0Y2hfbG9j
ayhwYWdlLCBoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2RlYWxsb2NhdGVfd2l0aF9wYWdlKHBhZ2UsIGJlZ2luLCBwYWdlX2NvbmZpZyk7Ci19Ci0KLXN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sCi1wYXNfc2VncmVnYXRlZF9wYWdlX3F1YWxpZmll
c19mb3JfZGVjb21taXQoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSwKLSAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyBwYWdlX2NvbmZpZykKLXsKLSAgICBwYXNfcGFnZV9ncmFu
dWxlX3VzZV9jb3VudCogdXNlX2NvdW50czsKLSAgICB1aW50cHRyX3QgbnVtX2dyYW51bGVzOwot
ICAgIHVpbnRwdHJfdCBncmFudWxlX2luZGV4OwotICAgIAotICAgIFBBU19BU1NFUlQocGFnZV9j
b25maWcuYmFzZS5pc19lbmFibGVkKTsKLQotICAgIGlmICghcGFnZS0+bnVtX25vbl9lbXB0eV93
b3JkcykKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgaWYgKHBhZ2VfY29uZmlnLmJh
c2UucGFnZV9zaXplID09IHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgdXNlX2NvdW50cyA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Z2V0X2dyYW51bGVfdXNlX2NvdW50cyhwYWdlLCBwYWdlX2NvbmZpZyk7Ci0gICAgbnVtX2dyYW51
bGVzID0gcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgLyBwYWdlX2NvbmZpZy5iYXNlLmdyYW51
bGVfc2l6ZTsKLSAgICAKLSAgICBmb3IgKGdyYW51bGVfaW5kZXggPSBudW1fZ3JhbnVsZXM7IGdy
YW51bGVfaW5kZXgtLTspIHsKLSAgICAgICAgaWYgKCF1c2VfY291bnRzW2dyYW51bGVfaW5kZXhd
KQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UoCisgICAgICAgIHBh
Z2UsIGJlZ2luLCBkZWFsbG9jYXRpb25fbW9kZSwgdGhyZWFkX2xvY2FsX2NhY2hlLCBwYWdlX2Nv
bmZpZyk7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnkqCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfc2VncmVnYXRlZF9wYWdlX2dldF9kaXJlY3RvcnlfZm9y
X2FkZHJlc3NfaW5fcGFnZShwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGJlZ2lu
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWcpCkBAIC01MjYsMTMgKzUxNCwx
MSBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2dldF9kaXJlY3RvcnlfZm9yX2FkCiAgICAgc3dpdGNo
IChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKG93bmluZ192aWV3KSkgewogICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJs
ZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICByZXR1
cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgKICAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUob3duaW5n
X3ZpZXcpLT5kaXJlY3RvcnkpOwogCiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFu
ZGxlX2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX2hhbmRsZV9wYXJ0aWFsX3ZpZXdfZm9yX29iamVjdCgKICAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaGFyZWRfaGFuZGxlKG93bmluZ192aWV3KSwgYmVn
aW4sIHBhZ2VfY29uZmlnKS0+ZGlyZWN0b3J5KTsKIApAQCAtNTQyLDcgKzUyOCw3IEBAIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfZ2V0X2RpcmVjdG9yeV9mb3JfYWQKICAgICB9CiB9CiAKLXN0YXRpYyBQ
QVNfQUxXQVlTX0lOTElORSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBw
YXNfc2VncmVnYXRlZF9wYWdlX2dldF9kaXJlY3RvcnlfZm9yX2FkZHJlc3NfYW5kX3BhZ2VfY29u
ZmlnKHVpbnRwdHJfdCBiZWdpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFn
ZV9jb25maWcpCiB7CkBAIC01NjcsMTIgKzU1MywxMCBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2dl
dF9vYmplY3Rfc2l6ZV9mb3JfCiAgICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9r
aW5kKG93bmluZ192aWV3KSkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3Zp
ZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKICAgICAg
ICAgcmV0dXJuIHBhZ2UtPm9iamVjdF9zaXplOwogCiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9z
aGFyZWRfaGFuZGxlX2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKKyAgICAgICAgcmV0dXJuIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCiAgICAgICAgICAgICAmcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9wYXJ0aWFsX3ZpZXdfZm9yX29iamVjdCgKICAgICAg
ICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaGFyZWRfaGFuZGxlKG93bmluZ192
aWV3KSwKICAgICAgICAgICAgICAgICBiZWdpbiwgcGFnZV9jb25maWcpLT5kaXJlY3RvcnkpLT5v
YmplY3Rfc2l6ZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQAogCiBwYXNf
c2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqCiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3Jl
YXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6
ZV90IGluZGV4KQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKQEAg
LTU3LDcgKzU3LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NyZWF0ZSgKICAgICAv
KiBXZSBhdHRhY2ggdG8gYSBzaGFyZWQgdmlldyBsYXppbHkgLSBvbmNlIHdlIGtub3cgd2hhdCB3
ZSdyZSBhbGxvY2F0aW5nLiAqLwogICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3Zp
ZXdfcHRyX3N0b3JlKCZyZXN1bHQtPnNoYXJlZF92aWV3LCBOVUxMKTsKIAotICAgIHBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5k
aXJlY3RvcnksIGRpcmVjdG9yeSk7CisgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOwogCiAgICAg
UEFTX0FTU0VSVCgodWludDhfdClpbmRleCA9PSBpbmRleCk7CiAgICAgcmVzdWx0LT5pbmRleCA9
ICh1aW50OF90KWluZGV4OwpAQCAtOTQsNyArOTQsNyBAQCB2b2lkIHBhc19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlld19ub3RlX2VsCiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFz
X2xvZygiJXA6IEFjdHVhbGx5IHRlbGxpbmcgdGhlIGRpcmVjdG9yeSB0aGF0IHdlJ3JlIGVsaWdp
YmxlLlxuIiwgdmlldyk7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2Rp
ZF9iZWNvbWVfZWxpZ2libGUoCi0gICAgICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSkt
PmJhc2UsCisgICAgICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZF9ub25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19hc192aWV3X25vbl9udWxsKHZpZXcpKTsKICAg
ICB9CiAgICAgdmlldy0+ZWxpZ2liaWxpdHlfaGFzX2JlZW5fbm90ZWQgPSB0cnVlOwpAQCAtMTYz
LDcgKzE2Myw3IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X3Nob3VsZF8KIAog
c3RhdGljIHBhc19oZWFwX3N1bW1hcnkgY29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX3Bh
cnRpYWxfdmlldyogdmlldykKIHsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnkqIHNpemVfZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBzaXplX2RpcmVjdG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9y
eTsKICAgICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyogc2hhcmVkX3ZpZXc7CiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIHBhZ2VfY29uZmlnX3B0cjsKQEAgLTE3OCw3ICsxNzgs
NyBAQCBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnkoCiAgICAgc2l6ZV90
IGVuZF9pbmRleDsKICAgICBwYXNfaGVhcF9zdW1tYXJ5IHJlc3VsdDsKIAotICAgIHNpemVfZGly
ZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRy
X2xvYWRfbm9uX251bGwoJnZpZXctPmRpcmVjdG9yeSk7CisgICAgc2l6ZV9kaXJlY3RvcnkgPSBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2
aWV3LT5kaXJlY3RvcnkpOwogICAgIGRpcmVjdG9yeSA9ICZzaXplX2RpcmVjdG9yeS0+YmFzZTsK
ICAgICBwYWdlX2NvbmZpZ19wdHIgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dl
dF9jb25maWcoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKTsKICAgICBwYWdlX2NvbmZpZyA9
ICpwYWdlX2NvbmZpZ19wdHI7CkBAIC0yMDcsOCArMjA3LDkgQEAgc3RhdGljIHBhc19oZWFwX3N1
bW1hcnkgY29tcHV0ZV9zdW1tYXJ5KAogICAgIC8qIFRoaXMgZG9lc24ndCBoYXZlIHRvIGJlIG9w
dGltaXplZCBzaW5jZSB0aGlzIGlzIGp1c3QgZm9yIGludGVybmFsIGludHJvc3BlY3Rpb24uCiAg
ICAgIAogICAgICAgIE5vdGUgdGhhdCB0aGlzIGxvZ2ljIG1hZ2ljYWxseSB3b3JrcyBldmVuIGZv
ciAqLwotICAgIGJlZ2luX2luZGV4ID0gUEFTX0JJVFZFQ1RPUl9CSVRfSU5ERVgodmlldy0+YWxs
b2NfYml0c19vZmZzZXQpOwotICAgIGVuZF9pbmRleCA9IFBBU19CSVRWRUNUT1JfQklUX0lOREVY
KHZpZXctPmFsbG9jX2JpdHNfb2Zmc2V0ICsgdmlldy0+YWxsb2NfYml0c19zaXplKTsKKyAgICBi
ZWdpbl9pbmRleCA9IFBBU19CSVRWRUNUT1JfQklUX0lOREVYKCh1bnNpZ25lZCl2aWV3LT5hbGxv
Y19iaXRzX29mZnNldCk7CisgICAgZW5kX2luZGV4ID0gUEFTX0JJVFZFQ1RPUl9CSVRfSU5ERVgo
KHVuc2lnbmVkKXZpZXctPmFsbG9jX2JpdHNfb2Zmc2V0ICsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQpdmlldy0+YWxsb2NfYml0c19zaXplKTsKIAog
ICAgIHJlc3VsdCA9IHBhc19oZWFwX3N1bW1hcnlfY3JlYXRlX2VtcHR5KCk7CiAgICAgCkBAIC0y
NjIsNyArMjYzLDcgQEAgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsXwog
Ym9vbCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfaXNfZWxpZ2libGUocGFzX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3KiB2aWV3KQogewogICAgIHJldHVybiBQQVNfU0VHUkVHQVRFRF9ESVJF
Q1RPUllfR0VUX0JJVCgKLSAgICAgICAgJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZ2aWV3LT5kaXJlY3RvcnkpLT5iYXNlLAor
ICAgICAgICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9u
b25fbnVsbCgmdmlldy0+ZGlyZWN0b3J5KS0+YmFzZSwKICAgICAgICAgdmlldy0+aW5kZXgsIGVs
aWdpYmxlKTsKIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBACiAjZGVm
aW5lIFBBU19TRUdSRUdBVEVEX1BBUlRJQUxfVklFV19ICiAKICNpbmNsdWRlICJwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5oIgotI2luY2x1ZGUgInBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0ci5oIgorI2luY2x1ZGUgInBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyLmgiCiAjaW5jbHVkZSAicGFzX2NvbXBh
Y3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ci5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCIKQEAgLTM4
LDE2ICszOCwxNiBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXc7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7Ci1zdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Oworc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFy
dGlhbF92aWV3IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldzsKIHR5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX3NoYXJlZF92aWV3IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3OwotdHlw
ZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogCiBzdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3IHsKICAgICB1bnNpZ25lZCBpbmxpbmVfYWxs
b2NfYml0czsKICAgICAKICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0
ciBzaGFyZWRfdmlldzsKLSAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeV9wdHIgZGlyZWN0b3J5OworICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfcHRyIGRpcmVjdG9yeTsKICAgICBwYXNfY29tcGFjdF90YWdnZWRfdW5zaWduZWRf
cHRyIGFsbG9jX2JpdHM7CiAKICAgICAvKiBUaGUgaW5kZXggY2FuIGJlIHNtYWxsIHNpbmNlIHdl
IHdvdWxkIG5ldmVyIGNyZWF0ZSBhIGhpZ2gtaW5kZXhlZCBwYXJ0aWFsIHZpZXcuIFRoYXQgd291
bGQgbm90CkBAIC05NCw3ICs5NCw3IEBAIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19hc192
aWV3X25vbl8KIAogUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqCiBwYXNfc2Vn
cmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKAotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCiAgICAgc2l6ZV90IGluZGV4KTsKIAogUEFTX0FQSSB2b2lkIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlld19ub3RlX2VsaWdpYmlsaXR5KApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0
b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4MjIzOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9w
YWdlX2RpcmVjdG9yeS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsOCArMTQ0LDcgQEAgcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHBhc19zZWdyZWdhdAogICAgICAgICBjb25maWcuYXJnID0g
JmRhdGE7CiAgICAgICAgIGRhdGEudmlldyA9IE5VTEw7CiAKLSAgICAgICAgZGlkX2ZpbmRfc29t
ZXRoaW5nID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfZm9yd2FyZF90b190YWtl
X2ZpcnN0X2VsaWdpYmxlKAotICAgICAgICAgICAgJmNvbmZpZywgUEFTX1NFR1JFR0FURURfU0hB
UkVEX1BBR0VfRElSRUNUT1JZX0ZJUlNUX0VMSUdJQkxFX0tJTkQpOworICAgICAgICBkaWRfZmlu
ZF9zb21ldGhpbmcgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkX3Rv
X3Rha2VfZmlyc3RfZWxpZ2libGUoJmNvbmZpZyk7CiAKICAgICAgICAgaWYgKGRpZF9maW5kX3Nv
bWV0aGluZykgewogICAgICAgICAgICAgaWYgKCFkYXRhLnZpZXcpIHsKQEAgLTM1MCw3ICszNDks
NyBAQCB0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldygKIAogICAgIGZvciAocGFydGlhbF9p
bmRleCA9IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfbnVtX3ZpZXdzKHBhZ2VfY29uZmln
KTsgcGFydGlhbF9pbmRleC0tOykgewogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXcqIHBhcnRpYWxfdmlldzsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGly
ZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsOworICAgICAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbDsKICAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnlfb2ZfcGFydGlhbDsKIAogICAgICAgICBw
YXJ0aWFsX3ZpZXcgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdf
cHRyX2xvYWQoCkBAIC0zNTksNyArMzU4LDcgQEAgdGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3Zp
ZXcoCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBzaXplX2RpcmVjdG9yeV9vZl9w
YXJ0aWFsID0KLSAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X3B0cl9sb2FkKCZwYXJ0aWFsX3ZpZXctPmRpcmVjdG9yeSk7CisgICAgICAgICAg
ICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkKCZwYXJ0aWFs
X3ZpZXctPmRpcmVjdG9yeSk7CiAgICAgICAgIGRpcmVjdG9yeV9vZl9wYXJ0aWFsID0gJnNpemVf
ZGlyZWN0b3J5X29mX3BhcnRpYWwtPmJhc2U7CiAgICAgICAgIAogICAgICAgICBpZiAoIVBBU19T
RUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKApAQCAtNDUxLDcgKzQ1MCw3IEBAIHJldHVybl90
YWtlbl9wYXJ0aWFsX3ZpZXdzX2FmdGVyX2RlY29tbWkKICAgICBzd2l0Y2hfdG9fb3duZXJzaGlw
KHNoYXJlZF92aWV3LCAmaGVsZF9sb2NrLCBwYWdlX2NvbmZpZyk7CiAgICAgZm9yIChwYXJ0aWFs
X2luZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9udW1fdmlld3MocGFnZV9jb25m
aWcpOyBwYXJ0aWFsX2luZGV4LS07KSB7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlldyogcGFydGlhbF92aWV3OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWw7CisgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsOwogICAgICAgICBw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeV9vZl9wYXJ0aWFsOwogICAgICAgICBi
b29sIHNldF9yZXN1bHQ7CiAKQEAgLTQ2Myw3ICs0NjIsNyBAQCByZXR1cm5fdGFrZW5fcGFydGlh
bF92aWV3c19hZnRlcl9kZWNvbW1pCiAgICAgICAgIHBhcnRpYWxfdmlldy0+bm90ZWRfaW5fc2Nh
biA9IGZhbHNlOwogCiAgICAgICAgIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWwgPQotICAgICAg
ICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xv
YWQoJnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5
KTsKICAgICAgICAgZGlyZWN0b3J5X29mX3BhcnRpYWwgPSAmc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFy
dGlhbC0+YmFzZTsKIAogICAgICAgICBQQVNfQVNTRVJUKHBhcnRpYWxfdmlldy0+aXNfYXR0YWNo
ZWRfdG9fc2hhcmVkX2hhbmRsZSk7CkBAIC00OTIsNyArNDkxLDcgQEAgcmV0dXJuX3Rha2VuX3Bh
cnRpYWxfdmlld3NfdW5sb2NrX3RoaXNfdgogICAgIHN3aXRjaF90b19vd25lcnNoaXAoc2hhcmVk
X3ZpZXcsICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKICAgICBmb3IgKHBhcnRpYWxfaW5kZXgg
PSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX251bV92aWV3cyhwYWdlX2NvbmZpZyk7IHBh
cnRpYWxfaW5kZXgtLTspIHsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBw
YXJ0aWFsX3ZpZXc7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogc2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbDsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5X29mX3BhcnRpYWw7CiAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5X29mX3BhcnRpYWw7CiAgICAgICAgIGJvb2wgc2V0
X3Jlc3VsdDsKIApAQCAtNTAyLDcgKzUwMSw3IEBAIHJldHVybl90YWtlbl9wYXJ0aWFsX3ZpZXdz
X3VubG9ja190aGlzX3YKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKICAgICAgICAg
c2l6ZV9kaXJlY3Rvcnlfb2ZfcGFydGlhbCA9Ci0gICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmcGFydGlhbF92aWV3LT5kaXJl
Y3RvcnkpOworICAgICAgICAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9wdHJfbG9hZCgmcGFydGlhbF92aWV3LT5kaXJlY3RvcnkpOwogICAgICAgICBkaXJlY3Rvcnlf
b2ZfcGFydGlhbCA9ICZzaXplX2RpcmVjdG9yeV9vZl9wYXJ0aWFsLT5iYXNlOwogCiAgICAgICAg
IHNldF9yZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2Vs
aWdpYmxlX2F0X2luZGV4KApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2Vf
ZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5oCSh3b3JraW5n
IGNvcHkpCkBAIC00NiwxMCArNDYsNiBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3Bh
Z2VfZGlyZWN0CiAgICAgICAgICAubmV4dCA9IE5VTEwgXAogICAgICB9KQogCi0vKiBOT1RFOiBJ
dCBkb2Vzbid0IG1hdHRlciB3aGljaCBraW5kIG9mIGZpcnN0X2VsaWdpYmxlIHdlIHVzZS4gV2Ug
anVzdCBwaWNrIG9uZS4gKi8KLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfU0hBUkVEX1BBR0VfRElS
RUNUT1JZX0ZJUlNUX0VMSUdJQkxFX0tJTkQgXAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9maXJzdF9lbGlnaWJsZV9idXRfbm90X3RhYmxlZF9raW5kCi0KIGV4dGVybiBQQVNfQVBJIHVu
c2lnbmVkIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9wcm9iYWJpbGl0eV9v
Zl9pbmVsaWdpYmlsaXR5OwogCiBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnlfZmluZF9maXJzdF9lbGlnaWJsZSgK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3No
YXJlZF92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcu
Ywkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgInBhc19pbW1vcnRh
bF9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCiAjaW5jbHVkZSAicGFzX3Bh
Z2Vfc2hhcmluZ19wb29sLmgiCisjaW5jbHVkZSAicGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2Fj
dGlvbi5oIgogI2luY2x1ZGUgInBhc19yYW5nZTE2LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRs
ZS5oIgpAQCAtODEsNiArODIsNyBAQCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlKiBwYXNf
c2VncmVnCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZSogaGFuZGxlOwogICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnIHBhZ2VfY29uZmlnOworICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rp
b24gdHJhbnNhY3Rpb247CiAKICAgICBQQVNfVU5VU0VEX1BBUkFNKHBhcnRpYWxfdmlldyk7CiAK
QEAgLTExMSwxOCArMTEzLDM4IEBAIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUqIHBhc19z
ZWdyZWcKIAogICAgIGlmICghaGFuZGxlLT5wYWdlX2JvdW5kYXJ5KSB7CiAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7CisgICAgICAgIHZvaWQqIHBhZ2VfYm91bmRhcnk7CiAKLSAg
ICAgICAgcGFnZSA9IChwYXNfc2VncmVnYXRlZF9wYWdlKikKLSAgICAgICAgICAgIHBhZ2VfY29u
ZmlnLmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9hbGxvY2F0
b3IoaGVhcCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgcGFnZV9ib3VuZGFyeSA9IE5VTEw7CisKKyAg
ICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgKKyAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcp
KTsKICAgICAgICAgCi0gICAgICAgIGlmICghcGFnZSkgeworICAgICAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X3RyYW5zYWN0aW9uX2NvbnN0cnVjdCgmdHJhbnNhY3Rpb24pOworICAgICAgICBkbyB7
CisgICAgICAgICAgICBQQVNfQVNTRVJUKCFwYWdlX2JvdW5kYXJ5KTsKKyAgICAgICAgICAgIHBh
c19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb25fYmVnaW4oJnRyYW5zYWN0aW9uKTsKKyAgICAg
ICAgICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KAorICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25m
aWcpKTsKKyAgICAgICAgICAgIHBhZ2VfYm91bmRhcnkgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vf
YWxsb2NhdG9yKAorICAgICAgICAgICAgICAgIGhlYXAsCisgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykgPyBO
VUxMIDogJnRyYW5zYWN0aW9uKTsKKyAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2Nv
bmRpdGlvbmFsbHkoCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
aGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykpOworICAgICAgICB9IHdoaWxlICghcGFz
X3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbl9lbmQoJnRyYW5zYWN0aW9uKSk7CisgICAgICAg
IAorICAgICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseSgKKyAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25m
aWcpKTsKKyAgICAgICAgaWYgKCFwYWdlX2JvdW5kYXJ5KSB7CiAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfaGFuZGxlX2Rlc3Ryb3koaGFuZGxlKTsKICAgICAgICAgICAgIHBhc19o
ZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoCiAgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykpOwogICAg
ICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KLQorICAgICAgICAKKyAgICAgICAgcGFn
ZSA9IChwYXNfc2VncmVnYXRlZF9wYWdlKikKKyAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2Uu
Y3JlYXRlX3BhZ2VfaGVhZGVyKHBhZ2VfYm91bmRhcnksIHBhc19sb2NrX2lzX2hlbGQpOworICAg
ICAgICAKICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgKICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFn
ZV9jb25maWcpKTsKIApAQCAtMzAwLDggKzMyMiw4IEBAIHN0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5
IGNvbXB1dGVfc3VtbWFyeSgKICAgICAgICAgdW5zaWduZWQgb2Zmc2V0X2VuZDsKIAogICAgICAg
ICByYW5nZSA9IGRhdGEubGl2ZV9vYmplY3RzW2luZGV4XTsKLSAgICAgICAgb2Zmc2V0ID0gcmFu
Z2UuYmVnaW4gPDwgcGFnZV9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQ7Ci0gICAgICAgIG9m
ZnNldF9lbmQgPSByYW5nZS5lbmQgPDwgcGFnZV9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQ7
CisgICAgICAgIG9mZnNldCA9ICh1bnNpZ25lZClyYW5nZS5iZWdpbiA8PCBwYWdlX2NvbmZpZy5i
YXNlLm1pbl9hbGlnbl9zaGlmdDsKKyAgICAgICAgb2Zmc2V0X2VuZCA9ICh1bnNpZ25lZClyYW5n
ZS5lbmQgPDwgcGFnZV9jb25maWcuYmFzZS5taW5fYWxpZ25fc2hpZnQ7CiAKICAgICAgICAgUEFT
X0FTU0VSVChvZmZzZXQgPj0gc3RhcnRfb2ZfbGFzdF9mcmVlKTsKICAgICAgICAgcGFzX3BhZ2Vf
YmFzZV9hZGRfZnJlZV9yYW5nZSgKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnku
YwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5KQpAQCAtMjksMzIg
KzI5LDkzNiBAQAogCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIK
IAorI2luY2x1ZGUgInBhc19iaXRmaXRfaGVhcC5oIgogI2luY2x1ZGUgInBhc19kZWZlcnJlZF9k
ZWNvbW1pdF9sb2cuaCIKICNpbmNsdWRlICJwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVt
b190YWJsZS5oIgogI2luY2x1ZGUgInBhc19tb25vdG9uaWNfdGltZS5oIgogI2luY2x1ZGUgInBh
c19wYWdlX21hbGxvYy5oIgorI2luY2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2lubGluZXMuaCIKKyNpbmNsdWRlICJwYXNfc3RyZWFtLmgiCiAjaW5jbHVkZSAicGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCIKKyNpbmNsdWRlICJwYXNfdXRpbGl0eV9oZWFw
LmgiCisjaW5jbHVkZSA8dW5pc3RkLmg+CisKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGUoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcCogaGVhcCwKKyAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZSwKKyAgICB1bnNpZ25lZCBh
bGlnbm1lbnQsCisgICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZywKKyAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZSBjcmVhdGlvbl9tb2RlKQoreworICAgIHN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogcmVzdWx0OworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQg
cGFnZV9jb25maWdfa2luZDsKKworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKwor
ICAgIGlmIChwYWdlX2NvbmZpZykKKyAgICAgICAgcGFnZV9jb25maWdfa2luZCA9IHBhZ2VfY29u
ZmlnLT5raW5kOworICAgIGVsc2UKKyAgICAgICAgcGFnZV9jb25maWdfa2luZCA9IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfbnVsbDsKKworICAgIGlmIChwYWdlX2NvbmZpZykKKyAg
ICAgICAgUEFTX0FTU0VSVChoZWFwX2NvbmZpZyA9PSBwYWdlX2NvbmZpZy0+YmFzZS5oZWFwX2Nv
bmZpZ19wdHIpOworCisgICAgcGFzX2hlYXBfY29uZmlnX2FjdGl2YXRlKGhlYXBfY29uZmlnKTsK
KworICAgIGlmICh2ZXJib3NlICYmIHBhZ2VfY29uZmlnKSB7CisgICAgICAgIHBhc19sb2coImxv
Y2FsIGFsbG9jYXRvciBzaXplIGZvciAlczogJXp1XG4iLAorICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhwYWdlX2NvbmZpZ19raW5kKSwK
KyAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxv
Y2F0b3Jfc2l6ZV9mb3JfY29uZmlnKCpwYWdlX2NvbmZpZykpOworICAgIH0KKworICAgIHJlc3Vs
dCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAorICAgICAgICBzaXplb2YocGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkpLAorICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkiLAorICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOworCisgICAgaWYgKHZlcmJv
c2UpIHsKKyAgICAgICAgcGFzX2xvZygiJWQ6IENyZWF0aW5nIGRpcmVjdG9yeSAlcCBmb3IgJXMg
d2l0aCBvYmplY3Rfc2l6ZSA9ICV1LCBhbGlnbm1lbnQgPSAldVxuIiwKKyAgICAgICAgICAgICAg
ICBnZXRwaWQoKSwgcmVzdWx0LCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9z
dHJpbmcocGFnZV9jb25maWdfa2luZCksCisgICAgICAgICAgICAgICAgb2JqZWN0X3NpemUsIGFs
aWdubWVudCk7CisgICAgfQorCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2NvbnN0cnVj
dCgKKyAgICAgICAgJnJlc3VsdC0+YmFzZSwgcGFnZV9jb25maWdfa2luZCwKKyAgICAgICAgaGVh
cC0+cnVudGltZV9jb25maWctPnNoYXJpbmdfbW9kZSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3Rvcnlfa2luZCk7CisKKyAgICByZXN1bHQtPmhlYXAgPSBoZWFwOworICAgIHJl
c3VsdC0+b2JqZWN0X3NpemUgPSBvYmplY3Rfc2l6ZTsKKworICAgIFBBU19BU1NFUlQocGFzX2lz
X3Bvd2VyX29mXzIoYWxpZ25tZW50KSk7CisgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChv
YmplY3Rfc2l6ZSwgYWxpZ25tZW50KSk7CisgICAgcmVzdWx0LT5hbGlnbm1lbnRfc2hpZnQgPSBw
YXNfbG9nMihhbGlnbm1lbnQpOworICAgIAorICAgIHJlc3VsdC0+YmFzZWxpbmVfYWxsb2NhdG9y
X2luZGV4ID0gMiAqIFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsKKyAgICByZXN1bHQtPnZp
ZXdfY2FjaGVfaW5kZXggPSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWDsKKyAgICAKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9zdG9yZSgmcmVzdWx0LT5k
YXRhLCBOVUxMKTsKIAotI2lmZGVmIFBBU19MSUJNQUxMT0MKLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfdXNlX3RhYmxpbmcgPSB0cnVlOwotI2Vsc2UKLWJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3RhYmxpbmcgPSBmYWxzZTsKLSNlbmRpZgotCi12b2lk
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NvbnN0cnVjdCgKLSAgICBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKLSAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kIHBhZ2VfY29uZmlnX2tpbmQsCi0gICAgcGFzX3BhZ2Vfc2hhcmluZ19tb2RlIHBhZ2Vf
c2hhcmluZ19tb2RlLAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9raW5kIGtpbmQpCisg
ICAgaWYgKHBhZ2VfY29uZmlnKQorICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X3Np
emVfY2xhc3NfcHRyX3N0b3JlKCZyZXN1bHQtPmJpdGZpdF9zaXplX2NsYXNzLCBOVUxMKTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgcGFzX2JpdGZpdF9oZWFwKiBiaXRmaXRfaGVhcDsKKyAgICAgICAg
cGFzX2JpdGZpdF9zaXplX2NsYXNzKiBiaXRmaXRfc2l6ZV9jbGFzczsKKworICAgICAgICBiaXRm
aXRfaGVhcCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfZ2V0X2JpdGZpdChoZWFwLCBoZWFwX2NvbmZp
ZywgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgICAgIFBBU19BU1NFUlQoYml0Zml0X2hlYXApOwor
ICAgICAgICAKKyAgICAgICAgYml0Zml0X3NpemVfY2xhc3MgPQorICAgICAgICAgICAgcGFzX2Jp
dGZpdF9oZWFwX2Vuc3VyZV9zaXplX2NsYXNzKAorICAgICAgICAgICAgICAgIGJpdGZpdF9oZWFw
LCByZXN1bHQsIGhlYXBfY29uZmlnLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAgICAgCisgICAg
ICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfc2l6ZV9jbGFzc19wdHJfc3RvcmUoCisgICAg
ICAgICAgICAmcmVzdWx0LT5iaXRmaXRfc2l6ZV9jbGFzcywgYml0Zml0X3NpemVfY2xhc3MpOwor
ICAgIH0KKyAgICAKKyAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+bmV4dF9mb3JfaGVhcCwgTlVMTCk7CisKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZXRfZGlkX3RyeV90b19jcmVhdGVfdmlld19jYWNo
ZShyZXN1bHQsIGZhbHNlKTsKKworICAgIHN3aXRjaCAoY3JlYXRpb25fbW9kZSkgeworICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5pdGlhbF9jcmVhdGlvbl9tb2RlOgor
ICAgICAgICBicmVhazsKKworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZnVsbF9jcmVhdGlvbl9tb2RlOgorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9maW5pc2hfY3JlYXRpb24ocmVzdWx0KTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9m
aW5pc2hfY3JlYXRpb24ocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkK
IHsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfY29uc3RydWN0KGRpcmVjdG9yeSwgcGFn
ZV9jb25maWdfa2luZCwgcGFnZV9zaGFyaW5nX21vZGUsIGtpbmQpOworICAgIHBhc19zZWdyZWdh
dGVkX2hlYXAqIGhlYXA7CisKKyAgICBoZWFwID0gZGlyZWN0b3J5LT5oZWFwOworICAgIAorICAg
IGlmICghaGVhcC0+cnVudGltZV9jb25maWctPmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNl
bGluZV9hbGxvY2F0b3JzKQorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9j
cmVhdGVfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpOworICAgIGlmICghaGVhcC0+cnVudGltZV9j
b25maWctPmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9wYXJ0aWFsX3ZpZXdzKQorICAgICAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbmFibGVfZXhjbHVzaXZlX3ZpZXdzKGRpcmVj
dG9yeSk7CisgICAgaWYgKCFoZWFwLT5ydW50aW1lX2NvbmZpZy0+ZGlyZWN0b3J5X3NpemVfYm91
bmRfZm9yX25vX3ZpZXdfY2FjaGUpCisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2NyZWF0ZV90bGNfdmlld19jYWNoZShkaXJlY3RvcnkpOworfQorCitwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kYXRhKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbnN1
cmVfZGF0YSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAor
ICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQoreworICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9jb25maWcqIHBhZ2VfY29uZmlnOworCisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7CisKKyAgICBpZiAo
ZGF0YSkKKyAgICAgICAgcmV0dXJuIGRhdGE7CisKKyAgICBwYWdlX2NvbmZpZyA9IHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3RvcnktPmJhc2UucGFnZV9j
b25maWdfa2luZCk7CisKKyAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKKworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOworICAgIGlmIChkYXRhKSB7Cisg
ICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRf
bW9kZSk7CisgICAgICAgIHJldHVybiBkYXRhOworICAgIH0KKworICAgIGlmIChwYWdlX2NvbmZp
ZyAmJiBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZy0+YmFzZS5ncmFu
dWxlX3NpemUpIHsKKyAgICAgICAgZGF0YSA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlKAor
ICAgICAgICAgICAgc2l6ZW9mKHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2RhdGEpLAorICAgICAgICAgICAgInBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2RhdGEiLAorICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKKworICAgICAg
ICBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxlX3VzZV9jb3VudF9wdHJfc3RvcmUoCisg
ICAgICAgICAgICAmKChwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRh
KilkYXRhKS0+ZnVsbF91c2VfY291bnRzLCBOVUxMKTsKKyAgICB9IGVsc2UgeworICAgICAgICBk
YXRhID0gcGFzX2ltbW9ydGFsX2hlYXBfYWxsb2NhdGUoCisgICAgICAgICAgICBzaXplb2YocGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSksCisgICAgICAgICAgICAicGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSIsCisgICAgICAgICAgICBwYXNfb2JqZWN0X2FsbG9j
YXRpb24pOworICAgIH0KKworICAgIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfc3Rv
cmUoJmRhdGEtPmZ1bGxfYWxsb2NfYml0cywgTlVMTCk7CisgICAgZGF0YS0+b2Zmc2V0X2Zyb21f
cGFnZV9ib3VuZGFyeV90b19maXJzdF9vYmplY3QgPSAwOworICAgIGRhdGEtPm9mZnNldF9mcm9t
X3BhZ2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0ID0gMDsKKyAgICBkYXRhLT5mdWxs
X251bV9ub25fZW1wdHlfd29yZHMgPSAwOworICAgIGRhdGEtPmFsbG9jYXRvcl9pbmRleCA9IChw
YXNfYWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYOworICAgIHBhc19jb21wYWN0X2F0b21pY190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcmUoJmRhdGEtPm5leHRfZm9yX2xheW91dCwg
TlVMTCk7CisKKyAgICBwYXNfZmVuY2UoKTsKKworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2RhdGFfcHRyX3N0b3JlKCZkaXJlY3RvcnktPmRhdGEsIGRhdGEpOworCisgICAgcGFz
X2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKwor
ICAgIHJldHVybiBkYXRhOworfQorCitwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9kYXRhKgorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2Rh
dGEoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAg
ICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWc7CisKKyAgICBwYWdlX2Nv
bmZpZyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhkaXJlY3Rv
cnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CisgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZyk7
CisgICAgUEFTX0FTU0VSVChwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZp
Zy0+YmFzZS5ncmFudWxlX3NpemUpOworCisgICAgcmV0dXJuIChwYXNfZXh0ZW5kZWRfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKikKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKK30KKwordm9pZCBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX2FsbG9jYXRvcigKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgCisgICAgcGFzX2hlYXBfbG9ja19h
c3NlcnRfaGVsZCgpOworCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRf
aXNfdXRpbGl0eShkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbnN1cmVf
ZGF0YShkaXJlY3RvcnksIHBhc19sb2NrX2lzX2hlbGQpOworCisgICAgaWYgKGRhdGEtPmFsbG9j
YXRvcl9pbmRleCAhPSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCkKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZChkaXJlY3Rv
cnkpOworICAgIAorICAgIFBBU19BU1NFUlQoZGF0YS0+YWxsb2NhdG9yX2luZGV4IDwgKHBhc19h
bGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOworfQorCit2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2NyZWF0ZV90bGNfdmlld19jYWNoZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHNpemVfdCBpbmRleDsKKyAgICAKKyAgICBw
YXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfa2luZF9pc191dGlsaXR5KGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5k
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9zZXRfZGlkX3RyeV90b19jcmVhdGVfdmlld19jYWNoZShkaXJlY3RvcnksIHRydWUpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3ZpZXdfY2FjaGVfY2FwYWNpdHkoZGlyZWN0b3J5KSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
UEFTX0FTU0VSVChkaXJlY3RvcnktPnZpZXdfY2FjaGVfaW5kZXggPT0gKHBhc19hbGxvY2F0b3Jf
aW5kZXgpVUlOVF9NQVgpOworICAgIAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X2FkZF92aWV3X2NhY2hlKGRpcmVjdG9yeSk7CisgICAgCisgICAgUEFTX0FTU0VSVChkaXJlY3Rv
cnktPnZpZXdfY2FjaGVfaW5kZXggPCAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CisK
KyAgICBmb3IgKGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9y
eS0+YmFzZSk7IGluZGV4LS07KSB7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsK
KworICAgICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5
LT5iYXNlLCBpbmRleCk7CisKKyAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRlZF92aWV3X2lzX3Nv
bWVfZXhjbHVzaXZlKHZpZXcpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYg
KCFwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfaWZfb3duZWQodmlldykp
CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9wYWdlKHZpZXcpLT52aWV3X2NhY2hlX2luZGV4ID0gZGlyZWN0b3J5LT52aWV3X2NhY2hlX2lu
ZGV4OworICAgICAgICAKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld191bmxvY2tfb3duZXJz
aGlwX2xvY2sodmlldyk7CisgICAgfQorfQorCit2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2VuYWJsZV9leGNsdXNpdmVfdmlld3MoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhKiBkYXRhOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiB0ZW1wbGF0
ZV9kaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZCBwYWdlX2Nv
bmZpZ19raW5kOworICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZ19w
dHI7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWc7CisgICAgdW5z
aWduZWQgb2JqZWN0X3NpemU7CisgICAgc2l6ZV90IGFsbG9jX2JpdHNfYnl0ZXM7CisgICAgdW5z
aWduZWQgb2Zmc2V0OworICAgIHVuc2lnbmVkIGJlZ2luOworICAgIHVuc2lnbmVkIGVuZDsKKyAg
ICB1bnNpZ25lZCogZnVsbF9hbGxvY19iaXRzOworICAgIHVuc2lnbmVkIGZ1bGxfbnVtX25vbl9l
bXB0eV93b3JkczsKKyAgICBzaXplX3QgaW5kZXg7CisgICAgcGFzX2FsbG9jYXRpb25fY29uZmln
IGJvb3RzdHJhcF9hbGxvY2F0aW9uX2NvbmZpZzsKKworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0
X2hlbGQoKTsKKworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbnN1
cmVfZGF0YShkaXJlY3RvcnksIHBhc19sb2NrX2lzX2hlbGQpOworICAgIGlmIChkYXRhLT5mdWxs
X251bV9ub25fZW1wdHlfd29yZHMpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2VfY29uZmln
X2tpbmQgPSBkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZDsKKyAgICBpZiAocGFnZV9j
b25maWdfa2luZCA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwpCisgICAg
ICAgIHJldHVybjsKKyAgICAKKyAgICBwYWdlX2NvbmZpZ19wdHIgPSBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX2dldF9jb25maWcocGFnZV9jb25maWdfa2luZCk7CisgICAgb2JqZWN0
X3NpemUgPSBkaXJlY3RvcnktPm9iamVjdF9zaXplOworICAgIAorICAgIHRlbXBsYXRlX2RpcmVj
dG9yeSA9IHBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2dldCgKKyAgICAg
ICAgJnBhc19leGNsdXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlX2luc3RhbmNlLAorICAg
ICAgICBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb19rZXlfY3JlYXRlKG9iamVjdF9z
aXplLCBwYWdlX2NvbmZpZ19raW5kKSk7CisgICAgaWYgKHRlbXBsYXRlX2RpcmVjdG9yeSkgewor
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhKiB0ZW1wbGF0ZV9kYXRh
OworCisgICAgICAgIHRlbXBsYXRlX2RhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9kYXRhX3B0cl9sb2FkKCZ0ZW1wbGF0ZV9kaXJlY3RvcnktPmRhdGEpOworICAgICAgICAKKyAg
ICAgICAgZGF0YS0+ZnVsbF9hbGxvY19iaXRzID0gdGVtcGxhdGVfZGF0YS0+ZnVsbF9hbGxvY19i
aXRzOworICAgICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29i
amVjdCA9CisgICAgICAgICAgICB0ZW1wbGF0ZV9kYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5k
YXJ5X3RvX2ZpcnN0X29iamVjdDsKKyAgICAgICAgZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3Vu
ZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgPQorICAgICAgICAgICAgdGVtcGxhdGVfZGF0YS0+
b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3Q7CisKKyAgICAg
ICAgaWYgKHBhZ2VfY29uZmlnX3B0ci0+YmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZpZ19wdHIt
PmJhc2UuZ3JhbnVsZV9zaXplKSB7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9nZXRfZXh0ZW5kZWRfZGF0YShkaXJlY3RvcnkpLT5mdWxsX3VzZV9jb3VudHMgPQor
ICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9leHRlbmRl
ZF9kYXRhKAorICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9kaXJlY3RvcnkpLT5mdWxsX3Vz
ZV9jb3VudHM7CisgICAgICAgIH0KKworICAgICAgICBwYXNfZmVuY2UoKTsKKyAgICAgICAgZGF0
YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzID0KKyAgICAgICAgICAgIHRlbXBsYXRlX2RhdGEt
PmZ1bGxfbnVtX25vbl9lbXB0eV93b3JkczsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHBhZ2VfY29uZmlnID0gKnBhZ2VfY29uZmlnX3B0cjsKKyAgICAKKyAgICBhbGxvY19iaXRzX2J5
dGVzID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX2J5dGVzKHBhZ2VfY29u
ZmlnKTsKKyAgICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZV93
aXRoX21hbnVhbF9hbGlnbm1lbnQoCisgICAgICAgIGFsbG9jX2JpdHNfYnl0ZXMsIHNpemVvZih1
bnNpZ25lZCksCisgICAgICAgICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhL2Z1
bGxfYWxsb2NfYml0cyIsCisgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisgICAgcGFz
X2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9zdG9yZSgmZGF0YS0+ZnVsbF9hbGxvY19iaXRz
LCBmdWxsX2FsbG9jX2JpdHMpOworICAgIHBhc196ZXJvX21lbW9yeShmdWxsX2FsbG9jX2JpdHMs
IGFsbG9jX2JpdHNfYnl0ZXMpOworCisgICAgYmVnaW4gPSBwYXNfc2VncmVnYXRlZF9wYWdlX29m
ZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZmlyc3Rfb2JqZWN0X2V4Y2x1c2l2ZShvYmplY3Rf
c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnKTsKKyAgICBlbmQg
PSBwYXNfc2VncmVnYXRlZF9wYWdlX29mZnNldF9mcm9tX3BhZ2VfYm91bmRhcnlfdG9fZW5kX29m
X2xhc3Rfb2JqZWN0X2V4Y2x1c2l2ZShvYmplY3Rfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYWdlX2NvbmZpZyk7CisKKyAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2Jv
dW5kYXJ5X3RvX2ZpcnN0X29iamVjdCA9IGJlZ2luOworICAgIGRhdGEtPm9mZnNldF9mcm9tX3Bh
Z2VfYm91bmRhcnlfdG9fZW5kX29mX2xhc3Rfb2JqZWN0ID0gZW5kOworCisgICAgZm9yIChvZmZz
ZXQgPSBiZWdpbjsgb2Zmc2V0IDwgZW5kOyBvZmZzZXQgKz0gb2JqZWN0X3NpemUpIHsKKyAgICAg
ICAgcGFzX2JpdHZlY3Rvcl9zZXQoCisgICAgICAgICAgICBmdWxsX2FsbG9jX2JpdHMsCisgICAg
ICAgICAgICBwYXNfcGFnZV9iYXNlX2luZGV4X29mX29iamVjdF9hdF9vZmZzZXRfZnJvbV9wYWdl
X2JvdW5kYXJ5KAorICAgICAgICAgICAgICAgIG9mZnNldCwgcGFnZV9jb25maWcuYmFzZSksCisg
ICAgICAgICAgICB0cnVlKTsKKyAgICB9CisgICAgCisgICAgZnVsbF9udW1fbm9uX2VtcHR5X3dv
cmRzID0gMDsKKyAgICBmb3IgKGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVt
X2FsbG9jX3dvcmRzKHBhZ2VfY29uZmlnKTsgaW5kZXgtLTspIHsKKyAgICAgICAgaWYgKGZ1bGxf
YWxsb2NfYml0c1tpbmRleF0pCisgICAgICAgICAgICBmdWxsX251bV9ub25fZW1wdHlfd29yZHMr
KzsKKyAgICB9CisgICAgUEFTX0FTU0VSVChmdWxsX251bV9ub25fZW1wdHlfd29yZHMpOworCisg
ICAgaWYgKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplID4gcGFnZV9jb25maWcuYmFzZS5ncmFu
dWxlX3NpemUpIHsKKyAgICAgICAgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZGF0YSogZXh0ZW5kZWRfZGF0YTsKKyAgICAgICAgcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291
bnQqIGZ1bGxfdXNlX2NvdW50czsKKyAgICAgICAgdWludHB0cl90IG51bV9ncmFudWxlczsKKyAg
ICAgICAgYm9vbCBpbml0aWFsaXplX3Jlc3VsdDsKKworICAgICAgICBleHRlbmRlZF9kYXRhID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2V4dGVuZGVkX2RhdGEoZGlyZWN0b3J5
KTsKKworICAgICAgICBudW1fZ3JhbnVsZXMgPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSAv
IHBhZ2VfY29uZmlnLmJhc2UuZ3JhbnVsZV9zaXplOworCisgICAgICAgIGZ1bGxfdXNlX2NvdW50
cyA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfbWFudWFsX2FsaWdubWVudCgKKyAg
ICAgICAgICAgIG51bV9ncmFudWxlcyAqIHNpemVvZihwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3Vu
dCksCisgICAgICAgICAgICBzaXplb2YocGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQpLAorICAg
ICAgICAgICAgInBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEvZnVs
bF91c2VfY291bnRzIiwKKyAgICAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CisKKyAg
ICAgICAgaW5pdGlhbGl6ZV9yZXN1bHQgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2luaXRpYWxpemVf
ZnVsbF91c2VfY291bnRzKAorICAgICAgICAgICAgTlVMTCwgZGlyZWN0b3J5LCBmdWxsX3VzZV9j
b3VudHMsIG51bV9ncmFudWxlcywgcGFnZV9jb25maWcpOworCisgICAgICAgIC8qIFRoaXMgc2hv
dWxkIGhhdmUgaW5pdGlhbGl6ZWQgYWxsIG9mIHRoZSBiaXRzLiAqLworICAgICAgICBQQVNfQVNT
RVJUKGluaXRpYWxpemVfcmVzdWx0KTsKKworICAgICAgICBwYXNfY29tcGFjdF90YWdnZWRfcGFn
ZV9ncmFudWxlX3VzZV9jb3VudF9wdHJfc3RvcmUoCisgICAgICAgICAgICAmZXh0ZW5kZWRfZGF0
YS0+ZnVsbF91c2VfY291bnRzLAorICAgICAgICAgICAgZnVsbF91c2VfY291bnRzKTsKKyAgICB9
CisKKyAgICBwYXNfZmVuY2UoKTsKKyAgICBkYXRhLT5mdWxsX251bV9ub25fZW1wdHlfd29yZHMg
PSBmdWxsX251bV9ub25fZW1wdHlfd29yZHM7CisgICAgUEFTX0FTU0VSVChkYXRhLT5mdWxsX251
bV9ub25fZW1wdHlfd29yZHMgPT0gZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzKTsKKworICAgIHBh
c19ib290c3RyYXBfZnJlZV9oZWFwX2FsbG9jYXRpb25fY29uZmlnX2NvbnN0cnVjdCgmYm9vdHN0
cmFwX2FsbG9jYXRpb25fY29uZmlnLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICAKKyAgICBwYXNf
ZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJsZV9hZGRfbmV3KAorICAgICAgICAmcGFz
X2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGVfaW5zdGFuY2UsCisgICAgICAgIGRp
cmVjdG9yeSwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgJmJvb3RzdHJhcF9hbGxvY2F0aW9uX2Nv
bmZpZyk7Cit9CisKK3Bhc19iYXNlbGluZV9hbGxvY2F0b3IqCitwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yX3Nsb3coCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Rh
YmxlX2luaXRpYWxpemVfaWZfbmVjZXNzYXJ5KCk7CisgICAgCisgICAgZm9yICg7OykgeworICAg
ICAgICB1bnNpZ25lZCBhX2luZGV4OworICAgICAgICB1bnNpZ25lZCBiX2luZGV4OworICAgICAg
ICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBhX2FsbG9jYXRvcjsKKyAgICAgICAgcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvciogYl9hbGxvY2F0b3I7CisgICAgICAgIHVuc2lnbmVkIHNlbGVjdGVkX2lu
ZGV4OworICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBzZWxlY3RlZF9hbGxvY2F0b3I7
CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzZWxlY3RlZF9kaXJlY3Rv
cnk7CisKKyAgICAgICAgc2VsZWN0ZWRfaW5kZXggPSBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9j
YXRvcl9pbmRleDsKKyAgICAgICAgaWYgKHNlbGVjdGVkX2luZGV4IDwgUEFTX05VTV9CQVNFTElO
RV9BTExPQ0FUT1JTKSB7CisgICAgICAgICAgICBzZWxlY3RlZF9hbGxvY2F0b3IgPSBwYXNfYmFz
ZWxpbmVfYWxsb2NhdG9yX3RhYmxlICsgc2VsZWN0ZWRfaW5kZXg7CisKKyAgICAgICAgICAgIHBh
c19sb2NrX2xvY2soJnNlbGVjdGVkX2FsbG9jYXRvci0+bG9jayk7CisKKyAgICAgICAgICAgIGlm
IChkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCAhPSBzZWxlY3RlZF9pbmRleCkg
eworICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmc2VsZWN0ZWRfYWxsb2NhdG9yLT5s
b2NrKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgcmV0dXJuIHNlbGVjdGVkX2FsbG9jYXRvcjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChzZWxlY3RlZF9pbmRleCA8IDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMpCisgICAg
ICAgICAgICBzZWxlY3RlZF9pbmRleCAtPSBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlM7Cisg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgUEFTX0FTU0VSVChzZWxlY3RlZF9pbmRleCA9PSAy
ICogUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTKTsKKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgYV9pbmRleCA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVfZ2V0X3JhbmRvbV9pbmRl
eCgpOworICAgICAgICAgICAgYl9pbmRleCA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVf
Z2V0X3JhbmRvbV9pbmRleCgpOworICAgIAorICAgICAgICAgICAgYV9hbGxvY2F0b3IgPSBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlICsgYV9pbmRleDsKKyAgICAgICAgICAgIGJfYWxsb2Nh
dG9yID0gcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZSArIGJfaW5kZXg7CisKKyAgICAgICAg
ICAgIC8qIElmIGl0J3MgY2hlYXAgdG8gc3RvcCBvbmUgb2YgdGhlc2UgdGhlbiBqdXN0IHBpY2sg
ZWl0aGVyIG9uZS4gKi8KKyAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19h
Y3RpdmUoJmFfYWxsb2NhdG9yLT51LmFsbG9jYXRvcikpCisgICAgICAgICAgICAgICAgc2VsZWN0
ZWRfaW5kZXggPSBhX2luZGV4OworICAgICAgICAgICAgZWxzZSBpZiAoIXBhc19sb2NhbF9hbGxv
Y2F0b3JfaXNfYWN0aXZlKCZiX2FsbG9jYXRvci0+dS5hbGxvY2F0b3IpKQorICAgICAgICAgICAg
ICAgIHNlbGVjdGVkX2luZGV4ID0gYl9pbmRleDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgYV92aWV3OworICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXcgYl92aWV3OworCisgICAgICAgICAgICAgICAgYV92aWV3ID0gYV9h
bGxvY2F0b3ItPnUuYWxsb2NhdG9yLnZpZXc7CisgICAgICAgICAgICAgICAgYl92aWV3ID0gYl9h
bGxvY2F0b3ItPnUuYWxsb2NhdG9yLnZpZXc7CisKKyAgICAgICAgICAgICAgICBpZiAoIWFfdmll
dykKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggPSBhX2luZGV4OworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRfaW5kZXggPSBiX2lu
ZGV4OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIXBhc19jb21wYXJlX2FuZF9z
d2FwX3VpbnQxNl93ZWFrKCZkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqIFBBU19O
VU1fQkFTRUxJTkVfQUxMT0NBVE9SUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTICsgc2VsZWN0ZWRf
aW5kZXgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgCisgICAg
ICAgIHNlbGVjdGVkX2FsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBz
ZWxlY3RlZF9pbmRleDsKKyAgICAKKyAgICAgICAgcGFzX2xvY2tfbG9jaygmc2VsZWN0ZWRfYWxs
b2NhdG9yLT5sb2NrKTsKKworICAgICAgICBpZiAoZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0
b3JfaW5kZXggPT0gc2VsZWN0ZWRfaW5kZXgpCisgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRf
YWxsb2NhdG9yOworCisgICAgICAgIGlmIChkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9p
bmRleCAhPSBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlMgKyBzZWxlY3RlZF9pbmRleCkgewor
ICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZzZWxlY3RlZF9hbGxvY2F0b3ItPmxvY2spOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIXBhc19sb2Nh
bF9hbGxvY2F0b3JfaXNfbnVsbCgmc2VsZWN0ZWRfYWxsb2NhdG9yLT51LmFsbG9jYXRvcikpIHsK
KyAgICAgICAgICAgIHBhc19udW1fYmFzZWxpbmVfYWxsb2NhdG9yX2V2aWN0aW9ucysrOworICAg
ICAgICAgICAgc2VsZWN0ZWRfZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6
ZV9kaXJlY3Rvcnkoc2VsZWN0ZWRfYWxsb2NhdG9yLT51LmFsbG9jYXRvci52aWV3KTsKKyAgICAg
ICAgICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfZGV0YWNoX2RpcmVjdG9yeShzZWxlY3RlZF9h
bGxvY2F0b3IpOworICAgICAgICAgICAgcGFzX2ZlbmNlKCk7CisgICAgICAgICAgICBzZWxlY3Rl
ZF9kaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9IDIgKiBQQVNfTlVNX0JBU0VM
SU5FX0FMTE9DQVRPUlM7CisgICAgICAgIH0KKworICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX2F0dGFjaF9kaXJlY3Rvcnkoc2VsZWN0ZWRfYWxsb2NhdG9yLCBkaXJlY3RvcnkpOworCisg
ICAgICAgIGRpcmVjdG9yeS0+YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ID0gc2VsZWN0ZWRfaW5k
ZXg7CisKKyAgICAgICAgcmV0dXJuIHNlbGVjdGVkX2FsbG9jYXRvcjsKKyAgICB9Cit9CisKK3N0
YXRpYyBwYXNfc2VncmVnYXRlZF92aWV3IHRha2VfZmlyc3RfZWxpZ2libGVfZGlyZWN0X2NyZWF0
ZV9uZXdfdmlld19jYWxsYmFjaygKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRlcmF0
ZV9jb25maWcqIGNvbmZpZykKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CisgICAgCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0
b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsKKyAgICBwYXNfaGVhcF9ydW50aW1l
X2NvbmZpZyogcnVudGltZV9jb25maWc7CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY29uZmln
LT5kaXJlY3RvcnktPmRpcmVjdG9yeV9raW5kID09IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2tpbmQpOworICAgIAorICAgIHNpemVfZGlyZWN0b3J5ID0gKHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5Kiljb25maWctPmRpcmVjdG9yeTsKKworICAgIHJ1bnRpbWVfY29uZmlnID0g
c2l6ZV9kaXJlY3RvcnktPmhlYXAtPnJ1bnRpbWVfY29uZmlnOworCisgICAgaWYgKGNvbmZpZy0+
aW5kZXggPj0gcnVudGltZV9jb25maWctPmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9wYXJ0aWFs
X3ZpZXdzKQorICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9lbmFibGVfZXhj
bHVzaXZlX3ZpZXdzKHNpemVfZGlyZWN0b3J5KTsKKworICAgIGlmIChjb25maWctPmluZGV4ID49
IHJ1bnRpbWVfY29uZmlnLT5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfYmFzZWxpbmVfYWxsb2Nh
dG9ycykKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19h
bGxvY2F0b3Ioc2l6ZV9kaXJlY3RvcnkpOworCisgICAgaWYgKGNvbmZpZy0+aW5kZXggPj0gcnVu
dGltZV9jb25maWctPmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9ub192aWV3X2NhY2hlKQorICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGVfdGxjX3ZpZXdfY2FjaGUo
c2l6ZV9kaXJlY3RvcnkpOworICAgIAorICAgIGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9hcmVfZXhjbHVzaXZlX3ZpZXdzX2VuYWJsZWQoc2l6ZV9kaXJlY3RvcnkpKSB7CisgICAg
ICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19hc192aWV3X25vbl9udWxs
KAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY3JlYXRlKHNpemVf
ZGlyZWN0b3J5LCBjb25maWctPmluZGV4KSk7CisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAg
ICAgICAgICBwYXNfbG9nKCIlcDogY3JlYXRlZCBleGNsdXNpdmUgJXAuXG4iLAorICAgICAgICAg
ICAgICAgICAgICBzaXplX2RpcmVjdG9yeSwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZp
ZXcpKTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHZpZXcgPSBwYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXdfYXNfdmlld19ub25fbnVsbCgKKyAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlld19jcmVhdGUoc2l6ZV9kaXJlY3RvcnksIGNvbmZpZy0+aW5kZXgp
KTsKKyAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coIiVwOiBjcmVh
dGVkIHBhcnRpYWwgJXAuXG4iLAorICAgICAgICAgICAgICAgICAgICBzaXplX2RpcmVjdG9yeSwg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIHBhc19sb2coIiVkOiAlcCAoJXMsICV1KTogbm93
IGhhdmUgJXp1IHZpZXdzLlxuIiwKKyAgICAgICAgICAgICAgICBnZXRwaWQoKSwgc2l6ZV9kaXJl
Y3RvcnksCisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9n
ZXRfc3RyaW5nKHNpemVfZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpLAorICAgICAg
ICAgICAgICAgIHNpemVfZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSwKKyAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmc2l6ZV9kaXJlY3RvcnktPmJhc2UpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gdmlldzsKK30KKworcGFzX3NlZ3JlZ2F0ZWRfdmlldyBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlKAorICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSkKK3sKKyAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29u
ZmlnIGNvbmZpZzsKKyAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7CisKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQoCisgICAgICAgIHNpemVfZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tp
bmQgIT0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9udWxsKTsKKworICAgIGRpcmVj
dG9yeSA9ICZzaXplX2RpcmVjdG9yeS0+YmFzZTsKKworICAgIHZpZXcgPSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV90YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGwoCisgICAgICAgIGRpcmVj
dG9yeSwgJmNvbmZpZywKKyAgICAgICAgdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJlY3RfY3JlYXRl
X25ld192aWV3X2NhbGxiYWNrKTsKKworICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIHBhc19s
b2coIlRha2luZyBlbGlnaWJsZSB2aWV3ICVwICglcykuXG4iLAorICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSwKKyAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF92aWV3X2tpbmRfZ2V0X3N0cmluZyhwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5k
KHZpZXcpKSk7CisgICAgfQorCisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFQQVNfU0VHUkVHQVRF
RF9ESVJFQ1RPUllfR0VUX0JJVCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9y
eSwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfaW5kZXgodmlldyksIGVsaWdpYmxlKSk7CisgICAg
CisgICAgcmV0dXJuIHZpZXc7CiB9CiAKIHR5cGVkZWYgc3RydWN0IHsKKyAgICBwYXNfZGVmZXJy
ZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2c7CisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhl
YXBfbG9ja19ob2xkX21vZGU7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqIG15X3Bh
Z2VfY29uZmlnX3B0cjsKKyAgICBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcmVz
dWx0OworfSB0YWtlX2xhc3RfZW1wdHlfZGF0YTsKKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IHVuc2lnbmVkCit0YWtlX2xhc3RfZW1wdHlfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwo
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2JpdHZlY3Rvcl9zZWdtZW50IHNlZ21lbnQs
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpCit7
CisgICAgdGFrZV9sYXN0X2VtcHR5X2RhdGEqIGRhdGE7CisKKyAgICBkYXRhID0gY29uZmlnLT5h
cmc7CisKKyAgICByZXR1cm4gc2VnbWVudC5lbXB0eV9iaXRzOworfQorCitzdGF0aWMgYm9vbAor
dGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0
ZXJhdGVfY29uZmlnKiBjb25maWcpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOworCisgICAgLyogV2UgcHV0IG91ciB0YWtlX2xhc3RfZW1wdHkgbG9naWMgaW4gY29u
c2lkZXJfdmlldyBiZWNhdXNlIHNob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsCisgICAgICAg
Y2Fubm90IHJlYWxseSB0ZWxsIGlmIGEgcGFnZSBjYW4gYmUgdGFrZW4uICovCisKKyAgICB0YWtl
X2xhc3RfZW1wdHlfZGF0YSogZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIGRp
cmVjdG9yeTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rv
cnk7CisgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nOworICAgIHBh
c19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlOworICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnKiBteV9wYWdlX2NvbmZpZ19wdHI7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWcgbXlfcGFnZV9jb25maWc7CisgICAgc2l6ZV90IGluZGV4OworICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXcgZ2VuZXJpY192aWV3OworICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3KiB2aWV3OworICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7CisgICAgcGFzX3NlZ3JlZ2F0ZWRf
cGFnZSogcGFnZTsKKyAgICBib29sIGRpZF90YWtlX2JpdDsKKyAgICBwYXNfbG9jayogb3duZXJz
aGlwX2xvY2s7CisKKyAgICBkaXJlY3RvcnkgPSBjb25maWctPmRpcmVjdG9yeTsKKyAgICBpbmRl
eCA9IGNvbmZpZy0+aW5kZXg7CisKKyAgICBkaWRfdGFrZV9iaXQgPSBQQVNfU0VHUkVHQVRFRF9E
SVJFQ1RPUllfU0VUX0JJVChkaXJlY3RvcnksIGluZGV4LCBlbXB0eSwgZmFsc2UpOworICAgIAor
ICAgIGlmICghZGlkX3Rha2VfYml0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzaXpl
X2RpcmVjdG9yeSA9IChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSopZGlyZWN0b3J5Owor
ICAgIGdlbmVyaWNfdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5
LCBpbmRleCk7CisgICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2
ZShnZW5lcmljX3ZpZXcpKTsKKyAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhj
bHVzaXZlKGdlbmVyaWNfdmlldyk7CisgICAgaGVsZF9sb2NrID0gTlVMTDsKKyAgICBkYXRhID0g
Y29uZmlnLT5hcmc7CisKKyAgICBteV9wYWdlX2NvbmZpZ19wdHIgPSBkYXRhLT5teV9wYWdlX2Nv
bmZpZ19wdHI7CisgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSA9IGRhdGEtPmhlYXBfbG9ja19ob2xk
X21vZGU7CisgICAgZGVjb21taXRfbG9nID0gZGF0YS0+ZGVjb21taXRfbG9nOworICAgIG15X3Bh
Z2VfY29uZmlnID0gKm15X3BhZ2VfY29uZmlnX3B0cjsKKyAgICAKKyAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgcGFzX2xvZygiJXA6IGNvbnNpZGVyaW5nIGVtcHR5IGluZGV4ICV6dSwgdmlldyA9
ICVwLlxuIiwgZGlyZWN0b3J5LCBpbmRleCwgdmlldyk7CisKKyAgICBpZiAocGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpCisgICAgICAgIG93bmVy
c2hpcF9sb2NrID0gcGFzX2xvY2tfZm9yX3N3aXRjaF9jb25kaXRpb25hbGx5KCZwYXNfaGVhcF9s
b2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICBlbHNlCisgICAgICAgIG93bmVyc2hpcF9s
b2NrID0gJnZpZXctPm93bmVyc2hpcF9sb2NrOworCisgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxk
X2xvY2ssIG93bmVyc2hpcF9sb2NrKTsKKyAgICAKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpCisgICAgICAgIHBhc19oZWFwX2xv
Y2tfYXNzZXJ0X2hlbGQoKTsKKyAgICAKKyAgICBpZiAoIXZpZXctPmlzX293bmVkKSB7CisgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygibm90IG93bmVkLlxuIik7Cisg
ICAgICAgIAorICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9sb2NrX2FuZF9yZXR1cm5fZmFsc2U7
CisgICAgfQorICAgIAorICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFy
eSh2aWV3LT5wYWdlX2JvdW5kYXJ5LCBteV9wYWdlX2NvbmZpZyk7CisgICAgCisgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgIHBhc19sb2coImV4Y2x1c2l2ZSBtb2RlLlxuIik7CisgICAgCisgICAg
aWYgKCFQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfU0VUX0JJVChkaXJlY3RvcnksIGluZGV4LCBl
bGlnaWJsZSwgZmFsc2UpKQorICAgICAgICBnb3RvIHJlbGVhc2VfaGVsZF9sb2NrX2FuZF9yZXR1
cm5fZmFsc2U7CisgICAgICAgIAorICAgIGlmICghdmlldy0+aXNfb3duZWQpIHsKKyAgICAgICAg
Ym9vbCByZXN1bHQ7CisgICAgICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92
aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7CisgICAg
ICAgIFBBU19BU1NFUlQocmVzdWx0KTsKKyAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19h
bmRfcmV0dXJuX2ZhbHNlOworICAgIH0KKyAgICAKKyAgICAvKiBUaGUgZW1wdHkgYml0IGp1c3Qg
bWVhbnMgdGhhdCB0aGUgcGFnZSAqY291bGQqIGJlIGVtcHR5LiBJdCdzIHBvc3NpYmxlIHRvIGNv
bWUgaGVyZSBhbmQgZmluZAorICAgICAgIGEgbm9uLWVtcHR5IHBhZ2UuIEluIHRoYXQgY2FzZSB3
ZSBtYWtlIHRoZSBwYWdlIGVsaWdpYmxlIGFnYWluIGJ1dCBsZWF2ZSB0aGUgZW1wdHkgYml0IGNs
ZWFyLiAqLworICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29t
bWl0KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSkgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgIHBhc19sb2coIndhcyBub3QgZW1wdHkuXG4iKTsKKyAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9pbmRleChkaXJlY3Rvcnks
IGluZGV4KTsKKyAgICAgICAgZ290byByZWxlYXNlX2hlbGRfbG9ja19hbmRfcmV0dXJuX2ZhbHNl
OworICAgIH0KKyAgICAKKyAgICAvKiBUaGlzIGhhcyBhIHZlcnkgc2hvcnQgcmFjZSB0aGF0IGNh
dXNlcyB0aGUgZGlyZWN0b3J5IHRvIHBvc3NpYmx5IHdhc3RlIG1lbW9yeTogaWYKKyAgICAgICBk
dXJpbmcgdGhpcyBicmllZiB3aW5kb3cgd2UgaGF2ZSBzb21lb25lIHRyeWluZyB0byBmaW5kIGFu
IGVsaWdpYmxlIHBhZ2UsIHRoZXkgbWF5CisgICAgICAgZW5kIHVwIGFsbG9jYXRpbmcgYSBuZXcg
b25lLgorICAgICAgIAorICAgICAgIEJ1dCB3ZSBkZWxpYmVyYXRlbHkga2VlcCB0aGUgZHVyYXRp
b24gb2YgdGhpcyByYWNlIHdpbmRvdyBzaG9ydC4gV2UgbWFrZSB0aGUgcGFnZQorICAgICAgIGlu
ZWxpZ2libGUgb25seSBkdXJpbmcgdGhlIHRpbWUgaXQgdGFrZXMgdXMgdG8gZmlndXJlIG91dCBo
b3cgdG8gZGVjb21taXQgaXQgYW5kIHRvCisgICAgICAgYWNxdWlyZSB0aGUgY29tbWl0IGxvY2su
IFRoZSBjb21taXQgbG9jayBzaG91bGQgYmUgdHJpdmlhbGx5IGF2YWlsYWJsZSBoZXJlLCBzbwor
ICAgICAgIHRoYXQncyBqdXN0IGEgQ0FTLiBBZnRlciB0aGF0LCB0aGUgcGFnZSBpcyBtYWRlIGVp
dGhlciBlbGlnaWJsZSBvciBkZWNvbW1pdHRlZC4KKyAgICAgICBFaXRoZXIgd2F5LCBpZiBpdCdz
IHRoZSBmaXJzdCBlbGlnaWJsZSwgc29tZW9uZSB3aWxsIHRyeSB0byB1c2UgaXQuIEF0IHRoYXQg
cG9pbnQsCisgICAgICAgaWYgd2UgYXJlIG5vdCBkb25lLCB0aGV5IHdpbGwgd2FpdCBmb3IgdXMg
c2luY2Ugd2UgaG9sZCB0aGUgY29tbWl0IGxvY2suICovCisKKyAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX3N3aXRjaF9sb2NrKHBhZ2UsICZoZWxkX2xvY2ssIG15X3BhZ2VfY29uZmlnKTsKKworICAg
IGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19pc191dGlsaXR5KG15X3BhZ2VfY29uZmln
KSkgeworICAgICAgICAvKiBUaGUgdXRpbGl0eSBoZWFwIHJlcXVpcmVzIHVzIHRvIGhvbGQgdGhl
IGhlYXAgbG9jayBhbnl0aW1lIHdlJ2QgaG9sZCB0aGUgb3duZXJzaGlwLCBjb21taXQsCisgICAg
ICAgICAgIG9yIHBhZ2UgbG9ja3MuIEl0IGp1c3Qgc28gaGFwcGVucyB0aGF0IHdlIHdlcmUgYWxy
ZWFkeSBob2xkaW5nIHRoZSBoZWFwIGxvY2ssIGFuZAorICAgICAgICAgICBwYWdlX3N3aXRjaF9s
b2NrIGRvZXMgbm90aGluZyBmb3IgdXRpbGl0eS4gU28gd2Ugc2hvdWxkIHN0aWxsIGJlIGhvbGRp
bmcgdGhlIGhlYXAgbG9jay4gKi8KKyAgICAgICAgUEFTX0FTU0VSVChoZWxkX2xvY2sgPT0gcGFz
X2xvY2tfZm9yX3N3aXRjaF9jb25kaXRpb25hbGx5KCZwYXNfaGVhcF9sb2NrLCBoZWFwX2xvY2tf
aG9sZF9tb2RlKSk7CisgICAgICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKyAgICB9
CisKKyAgICBQQVNfQVNTRVJUKCFQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfR0VUX0JJVChkaXJl
Y3RvcnksIGluZGV4LCBlbGlnaWJsZSkpOworCisgICAgLyogSXQncyB0b3RhbGx5IHBvc3NpYmxl
IHRoYXQgdGhlIGVtcHR5IGJpdCBnb3Qgc2V0IGFnYWluLiBXZSBzaG91bGQgY2xlYXIgaXQgZm9y
IHN1cmUgbm93LiAqLworICAgIFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9TRVRfQklUKGRpcmVj
dG9yeSwgaW5kZXgsIGVtcHR5LCBmYWxzZSk7CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFz
X3NlZ3JlZ2F0ZWRfcGFnZV9xdWFsaWZpZXNfZm9yX2RlY29tbWl0KHBhZ2UsIG15X3BhZ2VfY29u
ZmlnKSk7CisgICAgCisgICAgaWYgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxp
dHkobXlfcGFnZV9jb25maWcpKSB7CisgICAgICAgIFBBU19BU1NFUlQobXlfcGFnZV9jb25maWcu
YmFzZS5wYWdlX3NpemUgPT0gbXlfcGFnZV9jb25maWcuYmFzZS5ncmFudWxlX3NpemUpOworICAg
ICAgICAKKyAgICAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgICAgIHZp
ZXctPmlzX293bmVkID0gZmFsc2U7CisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAg
ICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBpc19vd25lZCA9IGZhbHNlIGR1ZSB0byB1dGlsaXR5IGRl
Y29tbWl0IGluIHRha2VfbGFzdF9lbXB0eVxuIiwKKyAgICAgICAgICAgICAgICAgICAgdmlldyk7
CisgICAgICAgIH0KKyAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KAorICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBteV9wYWdlX2NvbmZpZyksCisg
ICAgICAgICAgICBteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgIGRlY29t
bWl0X2xvZy0+dG90YWwgKz0gbXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemU7CisgICAgICAg
IG15X3BhZ2VfY29uZmlnLmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFnZS0+YmFzZSwgcGFz
X2xvY2tfaXNfaGVsZCk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2Rp
ZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7CisgICAgICAgIHBh
c19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKKyAgICAgICAgZGF0YS0+cmVzdWx0ID0g
cGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIAorICAgIGlmIChwYWdlLT5udW1fbm9uX2VtcHR5X3dvcmRzKSB7CisgICAg
ICAgIGJvb2wgZGVjb21taXRfcmVzdWx0OworICAgICAgICBzaXplX3QgbnVtX2NvbW1pdHRlZF9n
cmFudWxlczsKKyAgICAgICAgCisgICAgICAgIC8qIE5vIHBhcnRpYWwgZGVjb21taXQgaW4gdGhl
IHV0aWxpdHkgaGVhcCEgKi8KKyAgICAgICAgUEFTX0FTU0VSVCghcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9jb25maWdfaXNfdXRpbGl0eShteV9wYWdlX2NvbmZpZykpOworICAgICAgICAKKyAgICAgICAg
LyogV2Uga25vdyB0aGF0IHRoZXJlIG11c3QgYmUgZW1wdHkgZ3JhbnVsZXMgaW4gdGhpcyBwYWdl
LCBzaW5jZSBlaXRoZXIgdGhlIGVtcHR5CisgICAgICAgICAgIG9yIHRoZSBwYXJ0bHlfZW1wdHkg
Yml0IHdhcyBzZXQuIFRob3NlIGJpdHMgd291bGRuJ3QgZ2V0IHNldCB1bmxlc3Mgd2Ugbm90aWNl
ZAorICAgICAgICAgICBhbiBlbXB0eSBncmFudWxlLiBJZiB3ZSBkaWQgdHJ5IHRvIGFsbG9jYXRl
IGZyb20gdGhvc2UgZ3JhbnVsZXMsIHdlIHdvdWxkIGZpcnN0CisgICAgICAgICAgIGhhdmUgdG8g
dGFrZSBhd2F5IGl0cyBlbGlnaWJpbGl0eSBhbmQgdGhlbiBjbGVhciBpdHMgZW1wdHkgYml0cy4g
QnV0IHdlIGtub3cgdGhhdAorICAgICAgICAgICB0aGlzIGNvdWxkIG5vdCBoYXZlIGhhcHBlbmVk
IHNpbmNlICp3ZSogdG9vayBhd2F5IGl0cyBlbGlnaWJpbGl0eS4gKi8KKyAgICAgICAgCisgICAg
ICAgIGRlY29tbWl0X3Jlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfdGFrZV9lbXB0eV9ncmFu
dWxlcygKKyAgICAgICAgICAgIHBhZ2UsIGRlY29tbWl0X2xvZywgJmhlbGRfbG9jaywgcGFzX3Jh
bmdlX2lzX25vdF9sb2NrZWQsIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICAKKyAgICAg
ICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworICAgICAgICAKKyAgICAgICAg
bnVtX2NvbW1pdHRlZF9ncmFudWxlcyA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfZ2V0X251bV9jb21t
aXR0ZWRfZ3JhbnVsZXMocGFnZSk7CisgICAgICAgIFBBU19BU1NFUlQobnVtX2NvbW1pdHRlZF9n
cmFudWxlcyk7CisgICAgICAgIAorICAgICAgICAvKiBUaGUgcGFnZSBjYW4gYmVjb21lIGVsaWdp
YmxlIGFnYWluIG5vdyB0aGF0IHdlJ3ZlIG1hcmtlZCB0aGluZ3MgZm9yIGRlY29tbWl0LiAqLwor
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRfYmVjb21lX2VsaWdpYmxl
X2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOworICAgICAgICAKKyAgICAgICAgaWYgKGRlY29t
bWl0X3Jlc3VsdCkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAg
cGFzX2xvZygiJXA6IGRpZCBwYXJ0bHkgdGFrZSBpbmRleCAlenVcbiIsIGRpcmVjdG9yeSwgaW5k
ZXgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X3ZpZXdfZGlkX2JlY29tZV9lbXB0eV9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKKyAg
ICAgICAgICAgIGRhdGEtPnJlc3VsdCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2xvY2tz
X3VuYXZhaWxhYmxlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9
IGVsc2UgeworICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgJnZpZXctPm93bmVy
c2hpcF9sb2NrKTsKKyAgICAgICAgdmlldy0+aXNfb3duZWQgPSBmYWxzZTsKKyAgICAgICAgaWYg
KHZlcmJvc2UpIHsKKyAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIGlzX293bmVkID0g
ZmFsc2UgZHVlIHRvIG5vcm1hbCBkZWNvbW1pdCBpbiB0YWtlX2xhc3RfZW1wdHlcbiIsCisgICAg
ICAgICAgICAgICAgICAgIHZpZXcpOworICAgICAgICB9CisgICAgICAgIHBhc19sb2NrX3N3aXRj
aCgmaGVsZF9sb2NrLCBOVUxMKTsKKyAgICAgICAgCisgICAgICAgIGlmICghcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV90YWtlX3BoeXNpY2FsbHkoCisgICAgICAgICAgICAgICAgcGFnZSwgZGVjb21taXRf
bG9nLCBwYXNfcmFuZ2VfaXNfbm90X2xvY2tlZCwgaGVhcF9sb2NrX2hvbGRfbW9kZSkpIHsKKyAg
ICAgICAgICAgIFBBU19BU1NFUlQoIXBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfaXNf
dXRpbGl0eShkaXJlY3RvcnktPnBhZ2VfY29uZmlnX2tpbmQpKTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssICZ2aWV3LT5vd25lcnNoaXBfbG9j
ayk7CisgICAgICAgICAgICB2aWV3LT5pc19vd25lZCA9IHRydWU7CisgICAgICAgICAgICBpZiAo
dmVyYm9zZSkgeworICAgICAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAgaGFzIGlzX293bmVk
ID0gdHJ1ZSBkdWUgdG8gdW5kbyBvZiBkZWNvbW1pdCBpbiB0YWtlX2xhc3RfZW1wdHlcbiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICB2aWV3KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9h
dF9pbmRleChkaXJlY3RvcnksIGluZGV4KTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZW1wdHlfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRhdGEtPnJlc3VsdCA9IHBhc19wYWdlX3NoYXJp
bmdfcG9vbF90YWtlX2xvY2tzX3VuYXZhaWxhYmxlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgICAg
ICBwYXNfbG9nKCIlcDogZGlkIGZ1bGx5IHRha2UgaW5kZXggJXp1XG4iLCBkaXJlY3RvcnksIGlu
ZGV4KTsKKyAgICAgICAgICAgIHBhc19sb2coIkRlc3Ryb3lpbmcgcGFnZSBoZWFkZXIgZm9yIHZp
ZXcgPSAlcCwgcGFnZSA9ICVwLCBib3VuZGFyeSA9ICVwICglcCkgIgorICAgICAgICAgICAgICAg
ICAgICAiYXMgcGFydCBvZiBkZWNvbW1pdC5cbiIsCisgICAgICAgICAgICAgICAgICAgIHZpZXcs
IHBhZ2UsIHBhc19zZWdyZWdhdGVkX3BhZ2VfYm91bmRhcnkocGFnZSwgbXlfcGFnZV9jb25maWcp
LAorICAgICAgICAgICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5KTsKKyAgICAgICAgfQor
ICAgICAgICBteV9wYWdlX2NvbmZpZy5iYXNlLmRlc3Ryb3lfcGFnZV9oZWFkZXIoJnBhZ2UtPmJh
c2UsIGhlYXBfbG9ja19ob2xkX21vZGUpOworCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7
CisgICAgfQorICAgIAorICAgIGRhdGEtPnJlc3VsdCA9IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90
YWtlX3N1Y2Nlc3M7CisgICAgcmV0dXJuIHRydWU7CisKK3JlbGVhc2VfaGVsZF9sb2NrX2FuZF9y
ZXR1cm5fZmFsc2U6CisgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOworCisg
ICAgLyogUmV0dXJuaW5nIGZhbHNlIG1lYW5zIHRoYXQgdGhlIGJhY2t3YXJkcyBpdGVyYXRpb24g
a2VlcHMgZ29pbmcgYW5kIHRoaXMgc2hvdWxkIGdldCBjYWxsZWQKKyAgICAgICBhZ2FpbiBpZiB0
aGVyZSBhcmUgYW55IG90aGVyIHZpZXdzIG1hcmtlZCBlbXB0eS4gKi8KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3Bhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdAorcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KAorICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeSwKKyAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRf
bG9nKiBkZWNvbW1pdF9sb2csCisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xk
X21vZGUpCit7CisgICAgLyogQmUgY2FyZWZ1bDogaGVhcF9sb2NrX2hvbGRfbW9kZSBoZXJlIGNh
biBiZSB1bnJlbGF0ZWQgdG8gd2hhdCBwYWdlX2NvbmZpZyBzYXlzLCBzaW5jZQorICAgICAgIHdl
IG1heSBiZSBhc2tlZCBieSB0aGUgcGh5c2ljYWwgcGFnZSBzaGFyaW5nIHBvb2wgdG8gZGVjb21t
aXQgb24gYmVoYWxmIG9mIGFueSBvdGhlciBoZWFwLAorICAgICAgIGluY2x1ZGluZyBvbmVzIHRo
YXQgaG9sZCB0aGUgaGVhcCBsb2NrIHdoaWxlIGRvaW5nIGJ1c2luZXNzLiAqLworCisgICAgdGFr
ZV9sYXN0X2VtcHR5X2RhdGEgZGF0YTsKKyAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXRl
cmF0ZV9jb25maWcgY29uZmlnOworICAgIGJvb2wgZGlkX2ZpbmRfc29tZXRoaW5nOwogICAgIHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OworCisgICAgZGlyZWN0b3J5ID0gJnNp
emVfZGlyZWN0b3J5LT5iYXNlOworCisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGRpcmVjdG9yeS0+
cGFnZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX251bGwp
OworCisgICAgZGF0YS5kZWNvbW1pdF9sb2cgPSBkZWNvbW1pdF9sb2c7CisgICAgZGF0YS5oZWFw
X2xvY2tfaG9sZF9tb2RlID0gaGVhcF9sb2NrX2hvbGRfbW9kZTsKKyAgICBkYXRhLnJlc3VsdCA9
IHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX25vbmVfYXZhaWxhYmxlOworCisgICAgZGF0YS5t
eV9wYWdlX2NvbmZpZ19wdHIgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2dldF9j
b25maWcoZGlyZWN0b3J5LT5wYWdlX2NvbmZpZ19raW5kKTsKKworICAgIGNvbmZpZy5kaXJlY3Rv
cnkgPSBkaXJlY3Rvcnk7CisgICAgY29uZmlnLnNob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVs
ID0gdGFrZV9sYXN0X2VtcHR5X3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsOworICAgIGNv
bmZpZy5jb25zaWRlcl92aWV3ID0gdGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXc7CisgICAg
Y29uZmlnLmFyZyA9ICZkYXRhOworCisgICAgZGlkX2ZpbmRfc29tZXRoaW5nID0KKyAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVfYmFja3dhcmRfdG9fdGFrZV9sYXN0X2Vt
cHR5KCZjb25maWcpOworCisgICAgaWYgKCFkaWRfZmluZF9zb21ldGhpbmcpCisgICAgICAgIHJl
dHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9ub25lX2F2YWlsYWJsZTsKKworICAgIFBB
U19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2RvaW5nX3NoYXJpbmcoZGlyZWN0
b3J5KSk7CisgICAgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX2RpZF9jcmVhdGVfZGVsdGEoCisgICAg
ICAgICZwYXNfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2wsCisgICAgICAgIHBhc19wYWdlX3No
YXJpbmdfcGFydGljaXBhbnRfY3JlYXRlKAorICAgICAgICAgICAgZGlyZWN0b3J5LAorICAgICAg
ICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9raW5kX3NlbGVjdF9mb3Jfc2VncmVn
YXRlZF9kaXJlY3RvcnkoCisgICAgICAgICAgICAgICAgZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2lu
ZCkpKTsKKyAgICAKKyAgICByZXR1cm4gZGF0YS5yZXN1bHQ7Cit9CisKK3Bhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0
KAorICAgIHVpbnRwdHJfdCBiZWdpbiwKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykKK3sK
KyAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7CisgICAgdmlldyA9IHBhc19zZWdyZWdhdGVk
X3ZpZXdfZm9yX29iamVjdChiZWdpbiwgY29uZmlnKTsKKyAgICBpZiAodmlldykKKyAgICAgICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpOworICAg
IHJldHVybiBOVUxMOworfQorCitwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdAorcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2FsbG9jYXRvcl9mcm9tX3RsYygKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHNpemVfdCBjb3VudCwK
KyAgICBwYXNfY291bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCisgICAgcGFzX2hl
YXBfY29uZmlnKiBjb25maWcsCisgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCkKK3sKKyAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCB0bGNfcmVzdWx0OworICAgIHVuc2lnbmVkIGJhc2Vs
aW5lX2FsbG9jYXRvcl9pbmRleDsKKworICAgIFBBU19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KSk7CisgICAgUEFTX0FTU0VS
VCghcGFzX2hlYXBfY29uZmlnX2lzX3V0aWxpdHkoY29uZmlnKSk7CisgICAgCisgICAgcGFzX2hl
YXBfbG9ja19sb2NrKCk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfYWxsb2NhdG9y
X2luZGV4KAorICAgICAgICBkaXJlY3RvcnktPmhlYXAsCisgICAgICAgIGRpcmVjdG9yeSwKKyAg
ICAgICAgY291bnQsCisgICAgICAgIGNvdW50X2xvb2t1cF9tb2RlLAorICAgICAgICBjb25maWcs
CisgICAgICAgIGNhY2hlZF9pbmRleCk7CisgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKKwor
ICAgIC8qIEN1cnJlbnRseSBhcyBzb29uIGFzIHdlIHN3aXRjaCB0byBUTEMgYWxsb2NhdG9ycywg
d2UgY2Fubm90IHBvc3NpYmx5IGhhdmUgYSBiYXNlbGluZQorICAgICAgIGFsbG9jYXRvci4gQnV0
IGlmIHdlIGRvLCB3ZSBzaG91bGQgc3RvcCBpdCBub3cuICovCisgICAgYmFzZWxpbmVfYWxsb2Nh
dG9yX2luZGV4ID0gZGlyZWN0b3J5LT5iYXNlbGluZV9hbGxvY2F0b3JfaW5kZXg7CisgICAgaWYg
KGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA8IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUykg
eworICAgICAgICBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yKiBiYXNlbGluZV9hbGxvY2F0b3I7Cisg
ICAgICAgIAorICAgICAgICBiYXNlbGluZV9hbGxvY2F0b3IgPSBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3RhYmxlICsgYmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4OworICAgICAgICAKKyAgICAgICAg
cGFzX2xvY2tfbG9jaygmYmFzZWxpbmVfYWxsb2NhdG9yLT5sb2NrKTsKKworICAgICAgICAvKiBJ
dCdzIHBvc3NpYmxlIHRoYXQgZHVlIHRvIGEgcmFjZSwgdGhlIGRpcmVjdG9yeSdzIGluZGV4IGhh
cyBiZWVuIHJlYXNzaWduZWQgdG8gc29tZXRoaW5nCisgICAgICAgICAgIGVsc2UuIEF0IHdvcnN0
LCB0aGF0IHJhY2Ugd2lsbCBtZWFuIHRoYXQgc29tZSBiYXNlbGluZSBhbGxvY2F0b3Igd2lsbCBi
ZSB1c2VkIGZvcgorICAgICAgICAgICBhbGxvY2F0aW9uLiBUaGVyZSdzIG5vdCBhIHdob2xlIGxv
dCB3ZSBjYW4gZG8gYWJvdXQgdGhhdC4gQXQgd29yc3QsIGl0IG1lYW5zIGxldHRpbmcgdGhlCisg
ICAgICAgICAgIGhpZ2ggd2F0ZXJtYXJrIGdyb3cgYSBiaXQgaW4gY2FzZSBvZiBhIHdlaXJkIHJh
Y2UuICovCisgICAgICAgIGlmIChkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleCA9
PSBiYXNlbGluZV9hbGxvY2F0b3JfaW5kZXgpIHsKKyAgICAgICAgICAgIHBhc19iYXNlbGluZV9h
bGxvY2F0b3JfZGV0YWNoX2RpcmVjdG9yeShiYXNlbGluZV9hbGxvY2F0b3IpOworICAgICAgICAg
ICAgcGFzX2ZlbmNlKCk7CisgICAgICAgICAgICBkaXJlY3RvcnktPmJhc2VsaW5lX2FsbG9jYXRv
cl9pbmRleCA9IDIgKiBQQVNfTlVNX0JBU0VMSU5FX0FMTE9DQVRPUlM7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIHBhc19sb2NrX3VubG9jaygmYmFzZWxpbmVfYWxsb2NhdG9yLT5sb2Nr
KTsKKyAgICB9CisgICAgCisgICAgdGxjX3Jlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
Z2V0X2xvY2FsX2FsbG9jYXRvcigKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXQo
Y29uZmlnKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJf
bG9hZF9ub25fbnVsbCgmZGlyZWN0b3J5LT5kYXRhKS0+YWxsb2NhdG9yX2luZGV4LAorICAgICAg
ICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisgICAgCisgICAgUEFTX0FTU0VSVCh0bGNfcmVzdWx0
LmRpZF9zdWNjZWVkKTsKKworICAgIHJldHVybiBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3Vs
dF9jcmVhdGVfc3VjY2Vzcyh0bGNfcmVzdWx0LmFsbG9jYXRvciwgTlVMTCk7Cit9CisKK3Bhc19o
ZWFwX3N1bW1hcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5
X2Zvcl91bm93bmVkX2V4Y2x1c2l2ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5KQoreworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEq
IGRhdGE7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcgcGFnZV9jb25maWc7CisgICAg
cGFzX2hlYXBfc3VtbWFyeSByZXN1bHQ7CisgICAgc2l6ZV90IHBheWxvYWRfc2l6ZTsKKworICAg
IFBBU19BU1NFUlQoZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQgIT0gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZF9udWxsKTsKKworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpOworICAgIHBh
Z2VfY29uZmlnID0gKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhk
aXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CisgICAgCisgICAgcmVzdWx0ID0gcGFz
X2hlYXBfc3VtbWFyeV9jcmVhdGVfZW1wdHkoKTsKKyAgICAKKyAgICBwYXlsb2FkX3NpemUgPSAo
ZGF0YS0+b2Zmc2V0X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3QgLQor
ICAgICAgICAgICAgICAgICAgICBkYXRhLT5vZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2Zp
cnN0X29iamVjdCk7CisgICAgCisgICAgcmVzdWx0LmRlY29tbWl0dGVkICs9IHBhZ2VfY29uZmln
LmJhc2UucGFnZV9zaXplOworICAgIHJlc3VsdC5mcmVlICs9IHBheWxvYWRfc2l6ZTsKKyAgICBy
ZXN1bHQuZnJlZV9kZWNvbW1pdHRlZCArPSBwYXlsb2FkX3NpemU7CisgICAgCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX2VhY2hfbGl2ZV9vYmplY3RfY2FsbGJhY2sgY2FsbGJhY2s7CiAgICAgdm9pZCogYXJnOwog
fSBmb3JfZWFjaF9saXZlX29iamVjdF9kYXRhOwpAQCAtNjgsMTQgKzk3MiwxMyBAQCBzdGF0aWMg
Ym9vbCBmb3JfZWFjaF9saXZlX29iamVjdF9vYmplY3RfCiAKICAgICBkYXRhID0gYXJnOwogCi0g
ICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFsKGRh
dGEtPmRpcmVjdG9yeSktPm9iamVjdF9zaXplCi0gICAgICAgICAgICAgICA9PSBwYXNfcmFuZ2Vf
c2l6ZShyYW5nZSkpOworICAgIFBBU19BU1NFUlQoZGF0YS0+ZGlyZWN0b3J5LT5vYmplY3Rfc2l6
ZSA9PSBwYXNfcmFuZ2Vfc2l6ZShyYW5nZSkpOwogCiAgICAgcmV0dXJuIGRhdGEtPmNhbGxiYWNr
KGRhdGEtPmRpcmVjdG9yeSwgdmlldywgcmFuZ2UuYmVnaW4sIGRhdGEtPmFyZyk7CiB9CiAKIGJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3QoCi0g
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9mb3JfZWFjaF9saXZlX29iamVjdF9jYWxsYmFjayBjYWxsYmFjaywKICAgICB2b2lk
KiBhcmcpCiB7CkBAIC04OCwxMCArOTkxLDEwIEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZm9yX2UKIAogICAgIC8qIFRoZSBjb29sIHRoaW5nIGFib3V0IHRoaXMgbG9vcCBp
cyB0aGF0IGluIGNhc2Ugb2YgcmFjZXMgaXQnbGwgdGVuZCB0byBnbyBjaGVjayBvdXQKICAgICAg
ICBtb3JlIHZpZXcuICovCi0gICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsgKytpbmRleCkgeworICAgIGZvciAoaW5kZXgg
PSAwOyBpbmRleCA8IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnktPmJh
c2UpOyArK2luZGV4KSB7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsKIAotICAg
ICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnksIGluZGV4
KTsKKyAgICAgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVjdG9y
eS0+YmFzZSwgaW5kZXgpOwogICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfZm9yX2Vh
Y2hfbGl2ZV9vYmplY3QoCiAgICAgICAgICAgICAgICAgdmlldywgZm9yX2VhY2hfbGl2ZV9vYmpl
Y3Rfb2JqZWN0X2NhbGxiYWNrLCAmZGF0YSwgcGFzX2xvY2tfaXNfbm90X2hlbGQpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTAwLDE1ICsxMDAzLDYxIEBAIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5KiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2Jq
ZWN0KAotICAgIHVpbnRwdHJfdCBiZWdpbiwKLSAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZykK
K3VpbnQ4X3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19jYWNoZV9jYXBhY2l0
eShwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewotICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXcgdmlldzsKLSAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jf
b2JqZWN0KGJlZ2luLCBjb25maWcpOwotICAgIGlmICh2aWV3KQotICAgICAgICByZXR1cm4gcGFz
X3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkodmlldyk7Ci0gICAgcmV0dXJuIE5V
TEw7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZCBraW5kOworICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBjb25maWc7CisKKyAgICBraW5kID0gZGlyZWN0b3J5LT5i
YXNlLnBhZ2VfY29uZmlnX2tpbmQ7CisKKyAgICBpZiAoa2luZCA9PSBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19raW5kX251bGwpCisgICAgICAgIHJldHVybiAwOworCisgICAgY29uZmlnID0g
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGtpbmQpOworICAgIGlm
ICghY29uZmlnLT5lbmFibGVfdmlld19jYWNoZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgCisg
ICAgcmV0dXJuIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnX3ZpZXdfY2FjaGVfY2FwYWNpdHlfZm9y
X29iamVjdF9zaXplKAorICAgICAgICBkaXJlY3RvcnktPmhlYXAtPnJ1bnRpbWVfY29uZmlnLCBk
aXJlY3RvcnktPm9iamVjdF9zaXplLCBjb25maWcpOworfQorCitzaXplX3QgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemUoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kIGtpbmQ7CisKKyAgICBraW5kID0gZGlyZWN0b3J5LT5iYXNlLnBhZ2VfY29u
ZmlnX2tpbmQ7CisKKyAgICBpZiAoa2luZCA9PSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX251bGwpCisgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9s
b2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfbnVsbF9jb25maWcoKTsKKyAgICAKKyAgICByZXR1cm4g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2NhdG9yX3NpemVfZm9yX2Nv
bmZpZygKKyAgICAgICAgKnBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfZ2V0X2NvbmZp
ZyhraW5kKSk7Cit9CisKK3Bhc19hbGxvY2F0b3JfaW5kZXggcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit7CisgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlc19mb3JfYWxsb2NhdG9yX3NpemUoCisgICAg
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRp
cmVjdG9yeSkpOworfQorCit2b2lkIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBf
cmVmZXJlbmNlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
IHBhc19zdHJlYW0qIHN0cmVhbSkKK3sKKyAgICBwYXNfc3RyZWFtX3ByaW50ZigKKyAgICAgICAg
c3RyZWFtLAorICAgICAgICAiJXAoc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSwgJXUsICVwLCAl
cykiLAorICAgICAgICBkaXJlY3RvcnksCisgICAgICAgIGRpcmVjdG9yeS0+b2JqZWN0X3NpemUs
CisgICAgICAgIGRpcmVjdG9yeS0+aGVhcCwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZF9nZXRfc3RyaW5nKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5kKSk7
Cit9CisKK3ZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9mb3Jfc3BlY3Ry
dW0oCisgICAgcGFzX3N0cmVhbSogc3RyZWFtLCB2b2lkKiBkaXJlY3RvcnkpCit7CisgICAgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoZGlyZWN0b3J5LCBzdHJl
YW0pOwogfQogCiAjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcsMzQgKzI3LDE5MCBAQAogI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9TSVpF
X0RJUkVDVE9SWV9ICiAKICNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCisjaW5jbHVk
ZSAicGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9zaXplX2NsYXNzX3B0ci5oIgorI2luY2x1ZGUg
InBhc19jb21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHIuaCIKKyNpbmNsdWRlICJw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCIKKyNpbmNs
dWRlICJwYXNfY29tcGFjdF9hdG9taWNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgi
CisjaW5jbHVkZSAicGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRy
LmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ci5oIgogI2luY2x1
ZGUgInBhc19jb25maWcuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9jb25maWcuaCIKKyNpbmNsdWRl
ICJwYXNfcGFnZV9ncmFudWxlX3VzZV9jb3VudC5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Ny
ZWF0aW9uX21vZGUuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1QQVNfQVBJIGV4dGVybiBi
b29sIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5nOworc3RydWN0IHBh
c19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGE7CitzdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnlfZGF0YTsKK3R5cGVkZWYgc3RydWN0IHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2RhdGEgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0
YTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwordHlw
ZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhOworCitQQVNfREVGSU5FX0NPTVBBQ1RfQVRPTUlDX1BU
UihwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHIpOworCitz
dHJ1Y3QgUEFTX0FMSUdORUQoc2l6ZW9mKHBhc192ZXJzaW9uZWRfZmllbGQpKSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSB7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5IGJhc2U7
CisgICAgCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcDsKKworICAgIHVuc2lnbmVkIG9i
amVjdF9zaXplIDogMjc7CisgICAgdW5zaWduZWQgYWxpZ25tZW50X3NoaWZ0IDogNTsKKworICAg
IC8qIFRoaXMgaGFzIGEgZnVubnkgZW5jb2RpbmcgKGxldCBOID0gUEFTX05VTV9CQVNFTElORV9B
TExPQ0FUT1JTKToKKyAgICAgICAKKyAgICAgICBpbmRleCBpbiBbMCwgTikgICAgID0+IGF0dGFj
aGVkIHRvIGluZGV4CisgICAgICAgaW5kZXggaW4gW04sIDJOKSAgICA9PiBhdHRhY2hpbmcgdG8g
aW5kZXggLSBOCisgICAgICAgMk4gICAgICAgICAgICAgICAgICA9PiBkZXRhY2hlZAorICAgICAg
IAorICAgICAgIEluIHRoZSBkZXRhY2hlZCBzdGF0ZSwgdGhlIG9ubHkgd2F5IHRvIGNoYW5nZSB0
aGlzIGlzIHRvIENBUyBpdC4KKyAgICAgICAKKyAgICAgICBJbiB0aGUgYXR0YWNoZWQgYW5kIGF0
dGFjaGluZyBzdGF0ZXMsIHRoZSBjb3JyZXNwb25kaW5nIGluZGV4J3MgbG9jayBwcm90ZWN0cyB0
aGlzIGZpZWxkLiAqLworICAgIHVpbnQxNl90IGJhc2VsaW5lX2FsbG9jYXRvcl9pbmRleDsKKwor
ICAgIHBhc19hbGxvY2F0b3JfaW5kZXggdmlld19jYWNoZV9pbmRleDsgLyogVGhpcyBjb3VsZCBi
ZSBpbiB0aGUgc2l6ZV9kaXJlY3RvcnlfZGF0YSBidXQgd2UgcHV0IGl0IGhlcmUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlY2F1c2UgaXQgdGFrZXMgbGVz
cyBzcGFjZSB0byBwdXQgaXQgaGVyZS4gKi8KKyAgICAKKyAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9kYXRhX3B0ciBkYXRhOworICAgIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRf
c2l6ZV9jbGFzc19wdHIgYml0Zml0X3NpemVfY2xhc3M7CisKKyAgICAvKiBUaGUgb3duaW5nIHNl
Z3JlZ2F0ZWQgaGVhcCBob2xkcyB0aGVzZSBpbiBhIHNpbmdseSBsaW5rZWQgbGlzdC4gKi8KKyAg
ICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIgbmV4dF9m
b3JfaGVhcDsKK307CisKK3N0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRh
IHsKKyAgICB1bnNpZ25lZCBvZmZzZXRfZnJvbV9wYWdlX2JvdW5kYXJ5X3RvX2ZpcnN0X29iamVj
dDsgLyogQ2FjaGVkIHRvIG1ha2UgcmVmaWxsIGZhc3QuICovCisgICAgdW5zaWduZWQgb2Zmc2V0
X2Zyb21fcGFnZV9ib3VuZGFyeV90b19lbmRfb2ZfbGFzdF9vYmplY3Q7IC8qIENhY2hlZCB0byBt
YWtlIHJlZmlsbCBmYXN0LiAqLworICAgIAorICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2Nh
dG9yX2luZGV4OworICAgIAorICAgIHVpbnQ4X3QgZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRzOwor
CisgICAgcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ciBmdWxsX2FsbG9jX2JpdHM7IC8q
IFByZWNvbXB1dGVkIGFsbG9jIGJpdHMgaW4gdGhlIGNhc2UgdGhhdCBhIHBhZ2UgaXMgZW1wdHku
ICovCisgICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSBuZXh0X2Zvcl9sYXlvdXQ7Cit9OworCitzdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZGF0YSB7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZGF0YSBiYXNlOworICAgIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50
X3B0ciBmdWxsX3VzZV9jb3VudHM7Cit9OworCitzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVk
X3ZpZXcKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FzX3ZpZXcocGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0
ZWRfdmlld19jcmVhdGUoZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92
aWV3X2tpbmQpOworfQorCitzdGF0aWMgaW5saW5lIHNpemVfdAorcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfYWxpZ25tZW50KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpCit7CisgICAgcmV0dXJuIChzaXplX3QpMSA8PCAoc2l6ZV90KWRpcmVjdG9yeS0+YWxp
Z25tZW50X3NoaWZ0OworfQorCitQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
KiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGUoCisgICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcCogaGVhcCwKKyAgICB1bnNpZ25lZCBvYmplY3Rfc2l6ZSwKKyAgICB1bnNpZ25lZCBh
bGlnbm1lbnQsCisgICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZpZywKKyAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZSBjcmVhdGlvbl9tb2RlKTsKKworUEFTX0FQSSB2b2lk
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2ZpbmlzaF9jcmVhdGlvbihwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworc3RhdGljIGlubGluZSBib29sIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RpZF90cnlfdG9fY3JlYXRlX3ZpZXdfY2FjaGUo
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKK3sKKyAgICBy
ZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9taXNjX2JpdCgmZGlyZWN0b3J5LT5i
YXNlKTsKK30KKworc3RhdGljIGlubGluZSBib29sIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3NldF9kaWRfdHJ5X3RvX2NyZWF0ZV92aWV3X2NhY2hlKAorICAgIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgYm9vbCB2YWx1ZSkKK3sKKyAgICByZXR1
cm4gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NldF9taXNjX2JpdCgmZGlyZWN0b3J5LT5iYXNl
LCB2YWx1ZSk7Cit9CisKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0
YSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5zdXJlX2RhdGEoCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBwYXNfbG9ja19ob2xkX21v
ZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisKK1BBU19BUEkgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YSoKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dl
dF9leHRlbmRlZF9kYXRhKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpOworCisvKiBDYWxsIHdpdGggaGVhcCBsb2NrIGhlbGQuICovCitQQVNfQVBJIHZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY19hbGxvY2F0b3IoCisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CisKK3N0YXRpYyBpbmxp
bmUgYm9vbCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcigK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgZGF0YSA9IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7
CisgICAgcmV0dXJuIGRhdGEgJiYgZGF0YS0+YWxsb2NhdG9yX2luZGV4ICE9IChwYXNfYWxsb2Nh
dG9yX2luZGV4KVVJTlRfTUFYOworfQorCisvKiBDYWxsIHdpdGggaGVhcCBsb2NrIGhlbGQuICov
CitQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRlX3RsY192
aWV3X2NhY2hlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnkp
OworCisvKiBDYWxsIHdpdGggaGVhcCBsb2NrIGhlbGQuICovCitQQVNfQVBJIHZvaWQgcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZW5hYmxlX2V4Y2x1c2l2ZV92aWV3cygKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworc3RhdGljIGlubGluZSBi
b29sIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FyZV9leGNsdXNpdmVfdmlld3NfZW5h
YmxlZCgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQorewor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7CisgICAgZGF0YSA9
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+
ZGF0YSk7CisgICAgcmV0dXJuIGRhdGEgJiYgZGF0YS0+ZnVsbF9udW1fbm9uX2VtcHR5X3dvcmRz
OworfQorCitQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KTsKKworUEFTX0FQSSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfdGFr
ZV9yZXN1bHQKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSgK
KyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxvZywKKyAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CiAKLVBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9jb25zdHJ1Y3QoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3Rvcnks
Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZCBwYWdlX2NvbmZpZ19raW5kLAot
ICAgIHBhc19wYWdlX3NoYXJpbmdfbW9kZSBwYWdlX3NoYXJpbmdfbW9kZSwKLSAgICBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3Rvcnlfa2luZCBraW5kKTsKK1BBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCisg
ICAgdWludHB0cl90IGJlZ2luLAorICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnKTsKKworLyog
VGhpcyBhc3N1bWVzIHRoYXQgd2UgYWxyZWFkeSBoYXZlIGEgZGF0YS4gVGhhdCdzIGEgdmFsaWQg
YXNzdW1wdGlvbiBpZiB3ZSBoYXZlIGV4Y2x1c2l2ZXMuICovCitQQVNfQVBJIHBhc19oZWFwX3N1
bW1hcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5X2Zvcl91
bm93bmVkX2V4Y2x1c2l2ZSgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGly
ZWN0b3J5KTsKIAogdHlwZWRlZiBib29sICgqcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Zm9yX2VhY2hfbGl2ZV9vYmplY3RfY2FsbGJhY2spKAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnksCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgIHVpbnRwdHJfdCBiZWdp
biwKICAgICB2b2lkKiBhcmcpOwogCiBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfZm9yX2VhY2hfbGl2ZV9vYmplY3QoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3RvcnksCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3JfZWFjaF9saXZlX29i
amVjdF9jYWxsYmFjayBjYWxsYmFjaywKICAgICB2b2lkKiBhcmcpOwogCi1QQVNfQVBJIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeSogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29i
amVjdCgKLSAgICB1aW50cHRyX3QgYmVnaW4sCi0gICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcp
OworUEFTX0FQSSB1aW50OF90IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfY2Fj
aGVfY2FwYWNpdHkoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSk7CisKK1BBU19BUEkgc2l6ZV90IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2Fs
X2FsbG9jYXRvcl9zaXplKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpOworCitQQVNfQVBJIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKAorICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworCitQQVNfQVBJIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfZHVtcF9yZWZlcmVuY2UoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkqIGRpcmVjdG9yeSwgcGFzX3N0cmVhbSogc3RyZWFtKTsKKworUEFTX0FQSSB2b2lk
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtKAorICAgIHBh
c19zdHJlYW0qIHN0cmVhbSwgdm9pZCogZGlyZWN0b3J5KTsKIAogUEFTX0VORF9FWFRFUk5fQzsK
IApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0
aW9uX21vZGUuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0NS
RUFUSU9OX01PREVfSAorI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9DUkVB
VElPTl9NT0RFX0gKKworI2luY2x1ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJO
X0M7CisKK2VudW0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZSB7
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5pdGlhbF9jcmVhdGlvbl9tb2Rl
LAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Z1bGxfY3JlYXRpb25fbW9kZQor
fTsKKwordHlwZWRlZiBlbnVtIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2NyZWF0aW9u
X21vZGUgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZTsKKworc3Rh
dGljIGlubGluZSBjb25zdCBjaGFyKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVh
dGlvbl9tb2RlX2dldF9zdHJpbmcoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
Y3JlYXRpb25fbW9kZSBtb2RlKQoreworICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5pdGlhbF9jcmVhdGlvbl9tb2RlOgorICAgICAg
ICByZXR1cm4gImluaXRpYWwiOworICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfZnVsbF9jcmVhdGlvbl9tb2RlOgorICAgICAgICByZXR1cm4gImZ1bGwiOworICAgIH0KKyAg
ICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJuIE5VTEw7
Cit9CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9TSVpF
X0RJUkVDVE9SWV9DUkVBVElPTl9NT0RFX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
aW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw0NiArMjMsMTMxIEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKICAqLwogCi0jaWZuZGVmIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0lOTElO
RVNfSAotI2RlZmluZSBQQVNfU0VHUkVHQVRFRF9TSVpFX0RJUkVDVE9SWV9JTkxJTkVTX0gKKyNp
Zm5kZWYgUEFTX1NFR1JFR0FURURfR0xPQkFMX1NJWkVfRElSRUNUT1JZX0lOTElORVNfSAorI2Rl
ZmluZSBQQVNfU0VHUkVHQVRFRF9HTE9CQUxfU0laRV9ESVJFQ1RPUllfSU5MSU5FU19ICiAKICNp
bmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdC5oIgogI2luY2x1ZGUgInBhc19i
YXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIKICNpbmNsdWRlICJwYXNfY291bnRfbG9va3VwX21v
ZGUuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeS5oIgorI2lu
Y2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3IuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaW5saW5lcy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXAuaCIKICNpbmNsdWRl
ICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc190aHJlYWRf
bG9jYWxfY2FjaGUuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCi1zdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgdW5zaWduZWQKLXBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmly
c3RfZWxpZ2libGVfaW1wbF9zaG91bGRfY29uc2lkZXJfdmlld19ub3RfdGFibGVkX3BhcmFsbGVs
KAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCBzZWdtZW50
LAotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQor
UEFTX0FQSSBwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3Jlc3VsdAorcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZ2V0X2FsbG9jYXRvcl9mcm9tX3RsYygKKyAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAorICAgIHNpemVfdCBjb3VudCwKKyAgICBwYXNfY291
bnRfbG9va3VwX21vZGUgY291bnRfbG9va3VwX21vZGUsCisgICAgcGFzX2hlYXBfY29uZmlnKiBj
b25maWcsCisgICAgdW5zaWduZWQqIGNhY2hlZF9pbmRleCk7CisKK1BBU19BUEkgcGFzX2Jhc2Vs
aW5lX2FsbG9jYXRvcioKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3NlbGVjdF9hbGxv
Y2F0b3Jfc2xvdygKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5
KTsKKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfcmVz
dWx0CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9zZWxlY3RfYWxsb2NhdG9yKAorICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCisgICAgc2l6ZV90IGNv
dW50LAorICAgIHBhc19jb3VudF9sb29rdXBfbW9kZSBjb3VudF9sb29rdXBfbW9kZSwKKyAgICBw
YXNfaGVhcF9jb25maWcqIGNvbmZpZywKKyAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4KQogewot
ICAgIFBBU19VTlVTRURfUEFSQU0oY29uZmlnKTsKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KQorICAgICAgICAmJiAocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkgfHwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9j
YW5fc2V0KCkpKSB7CisgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eV9nZXRfYWxsb2NhdG9yX2Zyb21fdGxjKAorICAgICAgICAgICAgZGlyZWN0b3J5LCBjb3VudCwg
Y291bnRfbG9va3VwX21vZGUsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKKyAgICB9CisKKyAgICBm
b3IgKDs7KSB7CisgICAgICAgIHVuc2lnbmVkIGluZGV4OworICAgICAgICBwYXNfYmFzZWxpbmVf
YWxsb2NhdG9yKiBhbGxvY2F0b3I7CisKKyAgICAgICAgaW5kZXggPSBkaXJlY3RvcnktPmJhc2Vs
aW5lX2FsbG9jYXRvcl9pbmRleDsKKyAgICAgICAgaWYgKGluZGV4ID49IFBBU19OVU1fQkFTRUxJ
TkVfQUxMT0NBVE9SUykKKyAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X3NlbGVjdF9hbGxvY2F0b3Jfc2xvdyhkaXJlY3RvcnkpOworICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFi
bGUgKyBpbmRleDsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcGFzX2xvY2tfbG9jaygmYWxs
b2NhdG9yLT5sb2NrKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRpcmVjdG9yeS0+
YmFzZWxpbmVfYWxsb2NhdG9yX2luZGV4ICE9IGluZGV4KSB7CisgICAgICAgICAgICAgICAgcGFz
X2xvY2tfdW5sb2NrKCZhbGxvY2F0b3ItPmxvY2spOworICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgUEFTX0FTU0VSVChwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnUuYWxsb2NhdG9yLnZp
ZXcpID09IGRpcmVjdG9yeSk7CisKKyAgICAgICAgcmV0dXJuIHBhc19iYXNlbGluZV9hbGxvY2F0
b3JfcmVzdWx0X2NyZWF0ZV9zdWNjZXNzKAorICAgICAgICAgICAgJmFsbG9jYXRvci0+dS5hbGxv
Y2F0b3IsICZhbGxvY2F0b3ItPmxvY2spOworICAgIH0KK30KKworc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHNpemVfdAorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxsb2Nh
dG9yX3NpemVfZm9yX251bGxfY29uZmlnKHZvaWQpCit7CisgICAgcmV0dXJuIFBBU19MT0NBTF9B
TExPQ0FUT1JfU0laRSgwKTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHNpemVfdCBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZV9mb3JfY29u
ZmlnKAorICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIGNvbmZpZykKK3sKKyAgICBQQVNf
QVNTRVJUKGNvbmZpZy5iYXNlLmlzX2VuYWJsZWQpOworICAgIHJldHVybiBQQVNfTE9DQUxfQUxM
T0NBVE9SX1NJWkUoY29uZmlnLm51bV9hbGxvY19iaXRzKTsKK30KKworc3RhdGljIGlubGluZSBw
YXNfYWxsb2NhdG9yX2luZGV4CitwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9udW1fYWxs
b2NhdG9yX2luZGljZXNfZm9yX2FsbG9jYXRvcl9zaXplKHNpemVfdCBzaXplKQoreworICAgIHBh
c19hbGxvY2F0b3JfaW5kZXggcmVzdWx0OworCisgICAgcmVzdWx0ID0gKHBhc19hbGxvY2F0b3Jf
aW5kZXgpKHNpemUgLyA4KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoKHNpemVfdClyZXN1bHQg
KiA4ID09IHNpemUpOwogICAgIAotICAgIHJldHVybiBzZWdtZW50LmVsaWdpYmxlX2JpdHMgJiB+
c2VnbWVudC50YWJsZWRfYml0czsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgUEFT
X0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRvcl9pbmRleAorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzX2Zvcl9jb25maWcoCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWcgY29uZmlnKQoreworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKKyAgICAKKyAgICBzaXplX3Qgc2l6ZTsKKworICAgIFBBU19BU1NFUlQoY29u
ZmlnLmJhc2UuaXNfZW5hYmxlZCk7CisgICAgCisgICAgc2l6ZSA9IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplX2Zvcl9jb25maWcoY29uZmlnKTsKKwor
ICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIHBhc19sb2coCisgICAgICAgICAgICAia2luZCA9
ICVzLCBzaXplID0gJXp1LlxuIiwKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfZ2V0X3N0cmluZyhjb25maWcua2luZCksCisgICAgICAgICAgICBzaXplKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9j
YXRvcl9pbmRpY2VzX2Zvcl9hbGxvY2F0b3Jfc2l6ZShzaXplKTsKIH0KIAogc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHVuc2lnbmVkCi1wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90YWtl
X2ZpcnN0X2VsaWdpYmxlX2ltcGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfdGFibGVkX3BhcmFsbGVs
KAorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBs
X3Nob3VsZF9jb25zaWRlcl92aWV3X3BhcmFsbGVsKAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9iaXR2ZWN0b3Jfc2VnbWVudCBzZWdtZW50LAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pdGVyYXRlX2NvbmZpZyogY29uZmlnKQogewogICAgIFBBU19VTlVTRURfUEFSQU0oY29u
ZmlnKTsKICAgICAKLSAgICByZXR1cm4gc2VnbWVudC5lbGlnaWJsZV9iaXRzICYgc2VnbWVudC50
YWJsZWRfYml0czsKKyAgICByZXR1cm4gc2VnbWVudC5lbGlnaWJsZV9iaXRzOwogfQogCiBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3NlZ3JlZ2F0ZWRfdmlldwogcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9pbXBsKAogICAgIHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
dGVyYXRlX2NvbmZpZyogY29uZmlnLAotICAgIHZvaWQgKCpsb29wX2hlYWRfY2FsbGJhY2spKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5KSwKICAgICBwYXNfc2VncmVnYXRlZF92
aWV3ICgqY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKSgKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2l0ZXJhdGVfY29uZmlnKiBjb25maWcpKQogewpAQCAtODUsMTExICsxNzAsNTAg
QEAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdAogICAgICAgICBpZiAo
dmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIiVwOiBBdCB0b3Agb2YgdGFrZV9maXJzdF9l
bGlnaWJsZV9pbXBsIGxvb3AuXG4iLCBkaXJlY3RvcnkpOwogICAgICAgICAKLSAgICAgICAgbG9v
cF9oZWFkX2NhbGxiYWNrKGRpcmVjdG9yeSk7Ci0gICAgICAgIAogICAgICAgICBjb25maWctPmRp
cmVjdG9yeSA9IGRpcmVjdG9yeTsKICAgICAgICAgY29uZmlnLT5zaG91bGRfY29uc2lkZXJfdmll
d19wYXJhbGxlbCA9Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV90
YWtlX2ZpcnN0X2VsaWdpYmxlX2ltcGxfc2hvdWxkX2NvbnNpZGVyX3ZpZXdfbm90X3RhYmxlZF9w
YXJhbGxlbDsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2Vf
Zmlyc3RfZWxpZ2libGVfaW1wbF9zaG91bGRfY29uc2lkZXJfdmlld19wYXJhbGxlbDsKICAgICAg
ICAgY29uZmlnLT5jb25zaWRlcl92aWV3ID0gTlVMTDsKICAgICAgICAgY29uZmlnLT5hcmcgPSBO
VUxMOwogCi0gICAgICAgIGRpZF9maW5kX3NvbWV0aGluZyA9IHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9pdGVyYXRlX2ZvcndhcmRfdG9fdGFrZV9maXJzdF9lbGlnaWJsZSgKLSAgICAgICAgICAg
IGNvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2J1dF9ub3Rf
dGFibGVkX2tpbmQpOworICAgICAgICBkaWRfZmluZF9zb21ldGhpbmcgPSBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnlfaXRlcmF0ZV9mb3J3YXJkX3RvX3Rha2VfZmlyc3RfZWxpZ2libGUoY29uZmln
KTsKIAogICAgICAgICBpZiAoZGlkX2ZpbmRfc29tZXRoaW5nKSB7CiAgICAgICAgICAgICB2aWV3
ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnksIGNvbmZpZy0+aW5kZXgp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewotICAgICAgICAgICAg
ICAgIHBhc19sb2coIkF0IGluZGV4ICV6dTogVGFraW5nIGV4aXN0aW5nIHZpZXcgJXAgKG5vdCB0
YWJsZWQpLlxuIiwKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJBdCBpbmRleCAlenU6IFRha2lu
ZyBleGlzdGluZyB2aWV3ICVwLlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIChzaXplX3Qp
Y29uZmlnLT5pbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3B0cih2aWV3KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIFBBU19URVNUSU5HX0FTU0VSVChjb25maWctPnNlZ21lbnQuZWxpZ2libGVfYml0cyAmIGNv
bmZpZy0+Yml0X3JlZmVyZW5jZS5tYXNrKTsKLSAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VCghKGNvbmZpZy0+c2VnbWVudC50YWJsZWRfYml0cyAmIGNvbmZpZy0+Yml0X3JlZmVyZW5jZS5t
YXNrKSk7CiAKICAgICAgICAgICAgIGlmIChQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklUX1JF
RkVSRU5DRV9TRVQoCiAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgY29uZmlnLT5iaXRf
cmVmZXJlbmNlLCBlbGlnaWJsZSwgZmFsc2UpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHZlcmJv
c2UpCiAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkRpZCB0YWtlIGZpcnN0IGVsaWdpYmxl
LlxuIik7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCFwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV91c2VfdGFibGluZykKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCFwYXNfc2VncmVnYXRl
ZF92aWV3X3Nob3VsZF90YWJsZSh2aWV3LCBwYWdlX2NvbmZpZ19wdHIpKQotICAgICAgICAgICAg
ICAgICAgICBicmVhazsKIAotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAg
ICAgICAgICAgICBwYXNfbG9nKCJUYWJsaW5nLlxuIik7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgUEFTX1NFR1JFR0FURURfRElSRUNUT1JZX0JJVF9SRUZFUkVOQ0VfU0VUKAot
ICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIGNvbmZpZy0+Yml0X3JlZmVyZW5jZSwgdGFi
bGVkLCB0cnVlKTsKLSAgICAgICAgICAgICAgICBQQVNfU0VHUkVHQVRFRF9ESVJFQ1RPUllfQklU
X1JFRkVSRU5DRV9TRVQoCi0gICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgY29uZmlnLT5i
aXRfcmVmZXJlbmNlLCBlbGlnaWJsZSwgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X21pbmltaXplX2ZpcnN0X2VsaWdpYmxlKAotICAgICAgICAgICAgICAg
ICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9maXJzdF9lbGlnaWJsZV9h
bmRfdGFibGVkX2tpbmQsIGNvbmZpZy0+aW5kZXgpOworICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc2l6ZV90IG5vdF90
YWJsZWRfaW5kZXg7Ci0KLSAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAg
IHBhc19sb2coIkRpZG4ndCBmaW5kIGFueXRoaW5nLCBzZWFyY2hpbmcgdGFibGVkLlxuIik7Ci0K
LSAgICAgICAgICAgIG5vdF90YWJsZWRfaW5kZXggPSBjb25maWctPmluZGV4OwotCi0gICAgICAg
ICAgICBjb25maWctPmRpcmVjdG9yeSA9IGRpcmVjdG9yeTsKLSAgICAgICAgICAgIGNvbmZpZy0+
c2hvdWxkX2NvbnNpZGVyX3ZpZXdfcGFyYWxsZWwgPQotICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3RfZWxpZ2libGVfaW1wbF9zaG91bGRfY29u
c2lkZXJfdmlld190YWJsZWRfcGFyYWxsZWw7Ci0gICAgICAgICAgICBjb25maWctPmNvbnNpZGVy
X3ZpZXcgPSBOVUxMOwotICAgICAgICAgICAgY29uZmlnLT5hcmcgPSBOVUxMOwotICAgICAgICAg
ICAgZGlkX2ZpbmRfc29tZXRoaW5nID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2l0ZXJhdGVf
Zm9yd2FyZF90b190YWtlX2ZpcnN0X2VsaWdpYmxlKAotICAgICAgICAgICAgICAgIGNvbmZpZywg
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2ZpcnN0X2VsaWdpYmxlX2FuZF90YWJsZWRfa2luZCk7
Ci0KLSAgICAgICAgICAgIGlmIChkaWRfZmluZF9zb21ldGhpbmcpIHsKLSAgICAgICAgICAgICAg
ICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnksIGNvbmZpZy0+
aW5kZXgpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkF0IGluZGV4ICV6dTogVGFraW5nIGV4aXN0
aW5nIHZpZXcgJXAgKHRhYmxlZCkuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bmZpZy0+aW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfcHRyKHZpZXcpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNvbmZpZy0+c2VnbWVudC5lbGln
aWJsZV9iaXRzICYgY29uZmlnLT5iaXRfcmVmZXJlbmNlLm1hc2spOwotICAgICAgICAgICAgICAg
IFBBU19URVNUSU5HX0FTU0VSVChjb25maWctPnNlZ21lbnQudGFibGVkX2JpdHMgJiBjb25maWct
PmJpdF9yZWZlcmVuY2UubWFzayk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
aWYgKFBBU19TRUdSRUdBVEVEX0RJUkVDVE9SWV9CSVRfUkVGRVJFTkNFX1NFVCgKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGRpcmVjdG9yeSwgY29uZmlnLT5iaXRfcmVmZXJlbmNlLCBlbGlnaWJs
ZSwgZmFsc2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvZygiRGlkIHRha2UgZmlyc3QgZWxpZ2libGUuXG4iKTsKLQot
ICAgICAgICAgICAgICAgICAgICAvKiBGSVhNRTogVGhpcyBpcyB3ZWlyZCBmb3IgcGFydGlhbHMu
IElkZWFsbHksIHdlJ2Qgd2FudCB0byB1bnRhYmxlIGFsbCBvZiB0aGUgcGFydGlhbHMKLSAgICAg
ICAgICAgICAgICAgICAgICAgdGhhdCBzaGFyZSB0aGUgc2FtZSBzaGFyZWQgdmlldyBhcyB0aGlz
IG9uZS4gQnV0IHRhYmxpbmcgaXMgbW9zdCBsaWtlbHkgdG8gaGFwcGVuCi0gICAgICAgICAgICAg
ICAgICAgICAgIGZvciBkZWNvbW1pdHRlZCBwYWdlcywgaW4gd2hpY2ggY2FzZSB3ZSBjYW5ub3Qg
ZmluZCB0aGUgb3RoZXIgcGFydGlhbHMgLSB3ZSB3b3VsZAotICAgICAgICAgICAgICAgICAgICAg
ICBoYXZlIGZvcmdvdHRlbiBhYm91dCB0aGVtLiBTbywgd2UgbGV0IHRoZSBvdGhlciBwYXJ0aWFs
cyBzdGF5IHRhYmxlZC4gKi8KLSAgICAgICAgICAgICAgICAgICAgUEFTX1NFR1JFR0FURURfRElS
RUNUT1JZX0JJVF9SRUZFUkVOQ0VfU0VUKAotICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0
b3J5LCBjb25maWctPmJpdF9yZWZlcmVuY2UsIHRhYmxlZCwgZmFsc2UpOwotICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZTsKLQotICAgICAgICAgICAgICAgIHBhc19o
ZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KAotICAgICAgICAgICAgICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKSk7Ci0K
LSAgICAgICAgICAgICAgICBuZXdfc2l6ZSA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXpl
KGRpcmVjdG9yeSk7Ci0gICAgICAgICAgICAgICAgUEFTX0FTU0VSVChuZXdfc2l6ZSA+PSBub3Rf
dGFibGVkX2luZGV4KTsKLSAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKG5ld19zaXplID49IGNv
bmZpZy0+aW5kZXgpOwotICAgICAgICAgICAgICAgIGlmIChuZXdfc2l6ZSA9PSBub3RfdGFibGVk
X2luZGV4ICYmIG5ld19zaXplID09IGNvbmZpZy0+aW5kZXgpIHsKLSAgICAgICAgICAgICAgICAg
ICAgdmlldyA9IGNyZWF0ZV9uZXdfdmlld19jYWxsYmFjayhjb25maWcpOwotICAgICAgICAgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYXBwZW5kKGRpcmVjdG9yeSwgY29uZmln
LT5pbmRleCwgdmlldyk7Ci0gICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfdW5sb2Nr
X2NvbmRpdGlvbmFsbHkoCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgIHNpemVfdCBuZXdfc2l6ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcGFz
X2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoCisgICAgICAgICAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9kZShwYWdlX2NvbmZpZykpOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBuZXdfc2l6ZSA9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9zaXplKGRpcmVjdG9yeSk7CisgICAgICAgICAgICBQQVNfQVNTRVJUKG5ld19zaXplID49IGNv
bmZpZy0+aW5kZXgpOworICAgICAgICAgICAgaWYgKG5ld19zaXplID09IGNvbmZpZy0+aW5kZXgp
IHsKKyAgICAgICAgICAgICAgICB2aWV3ID0gY3JlYXRlX25ld192aWV3X2NhbGxiYWNrKGNvbmZp
Zyk7CisgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2FwcGVuZChkaXJl
Y3RvcnksIGNvbmZpZy0+aW5kZXgsIHZpZXcpOwogICAgICAgICAgICAgICAgIHBhc19oZWFwX2xv
Y2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoCiAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAg
ICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgKKyAgICAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmln
KSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgCkBAIC0yMDUsMjUgKzIyOSw3IEBAIHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X3Rha2VfZmlyc3QKICAgICByZXR1cm4gdmlldzsKIH0KIAot
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVj
dG9yeSoKLXBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9nbG9iYWwocGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgaWYgKCFkaXJlY3RvcnkpCi0gICAg
ICAgIHJldHVybiBOVUxMOwotICAgIHN3aXRjaCAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkg
ewotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2tpbmQ6Ci0g
ICAgICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KilkaXJl
Y3Rvcnk7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kOgot
ICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAmKChwYXNfc2VncmVnYXRlZF9iaWFz
aW5nX2RpcmVjdG9yeSopZGlyZWN0b3J5KS0+cGFyZW50X2dsb2JhbCk7Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJl
YWNoZWQiKTsKLSAgICByZXR1cm4gTlVMTDsKLX0KLQogUEFTX0VORF9FWFRFUk5fQzsKIAotI2Vu
ZGlmIC8qIFBBU19TRUdSRUdBVEVEX1NJWkVfRElSRUNUT1JZX0lOTElORVNfSCAqLworI2VuZGlm
IC8qIFBBU19TRUdSRUdBVEVEX0dMT0JBTF9TSVpFX0RJUkVDVE9SWV9JTkxJTkVTX0ggKi8KIApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmll
dy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3ZpZXcuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw4ICszMCw2IEBACiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlldy5oIgogCiAjaW5jbHVk
ZSAicGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXcuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIgogI2lu
Y2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlldy5oIgpAQCAtNDEsNDEgKzM5LDE2IEBACiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2hhcmVkX2hhbmRs
ZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCIKIAotcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
KiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeV9zbG93KHBhc19zZWdyZWdh
dGVkX3ZpZXcgdmlldykKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgorcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnlfc2xvdyhwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcpCiB7CiAgICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKSB7
CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgICAgICBy
ZXR1cm4gJnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9s
b2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1
c2l2ZSh2aWV3KS0+ZGlyZWN0b3J5KS0+YmFzZTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFz
aW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldyktPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuICZwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVs
bCgKLSAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYXJ0aWFsKHZpZXcpLT5k
aXJlY3RvcnkpLT5iYXNlOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotfQotCi1w
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqCi1wYXNfc2VncmVnYXRlZF92aWV3
X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2xvdyhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcp
Ci17Ci0gICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKSB7Ci0g
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgotICAgICAgICByZXR1
cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoCisgICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KS0+ZGlyZWN0b3J5KTsKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJs
ZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAg
JnBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251
bGwoCi0gICAgICAgICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmll
dyktPmRpcmVjdG9yeSktPnBhcmVudF9nbG9iYWwpOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
cGFydGlhbF92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgcmV0dXJu
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
CiAgICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KS0+ZGly
ZWN0b3J5KTsKICAgICBkZWZhdWx0OgogICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBi
ZSByZWFjaGVkIik7CkBAIC04OCwxMiArNjEsOCBAQCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kIHBhc19zZWdyCiAgICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5k
KHZpZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgog
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgot
ICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgIHJldHVybiBwYXNfY29tcGFjdF9zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAgICAgICAgICAgJnBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KS0+ZGlyZWN0b3J5KS0+YmFzZS5wYWdl
X2NvbmZpZ19raW5kOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6
Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgot
ICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9w
dHJfbG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9i
aWFzaW5nKHZpZXcpLT5kaXJlY3RvcnkpLT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7CiAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9zaGFyZWRfaGFuZGxlKHZpZXcpLT5kaXJlY3RvcnktPmJhc2Uu
cGFnZV9jb25maWdfa2luZDsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tp
bmQ6CkBAIC0xMDEsMTAgKzcwLDEwIEBAIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQg
cGFzX3NlZ3IKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZCh2aWV3
KS0+c2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5KQogICAgICAgICAgICAgLT5kaXJlY3Rv
cnktPmJhc2UucGFnZV9jb25maWdfa2luZDsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgIHJldHVybiBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAogICAg
ICAgICAgICAgJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwodmlldyktPmRpcmVjdG9y
eSktPmJhc2UucGFnZV9jb25maWdfa2luZDsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkodmlldyktPmJhc2UucGFnZV9jb25maWdf
a2luZDsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDoK
KyAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZp
ZXcpLT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQ7CiAgICAgZGVmYXVsdDoKICAgICAgICAgUEFTX0FT
U0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwogICAgICAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfa2luZF9udWxsOwpAQCAtMTIzLDkgKzkyLDYgQEAgc2l6ZV90IHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2luZGV4KHBhcwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVf
ZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICgocGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSktPmluZGV4Owot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4g
KChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0
cih2aWV3KSktPmluZGV4OwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2lu
ZDoKICAgICAgICAgcmV0dXJuICgocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqKXBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSktPmluZGV4OwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX2hhbmRsZV9raW5kOgpAQCAtMTQ1LDEzICsxMTEsNiBAQCB2b2lkKiBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9wYWdlX2JvdW5kCiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNs
dXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gKChwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+cGFnZV9ib3VuZGFy
eTsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2Ug
cGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDogewotICAgICAgICBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOwotICAgICAgICBleGNsdXNp
dmUgPSBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9h
ZCgKLSAgICAgICAgICAgICYoKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpKS0+ZXhjbHVzaXZlKTsKLSAgICAgICAgcmV0dXJuIGV4
Y2x1c2l2ZSA/IGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSA6IE5VTEw7Ci0gICAgfQogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19z
aGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfZ2V0X3BhZ2VfYm91bmRhcnlfbm9fbGl2ZW5l
c3NfY2hlY2tzKAogICAgICAgICAgICAgKChwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyopCkBA
IC0xNjgsNyArMTI3LDcgQEAgdm9pZCogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFnZV9ib3Vu
ZAogICAgICAgICByZXR1cm4gcGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9nZXRf
cGFnZV9ib3VuZGFyeSgKICAgICAgICAgICAgIHNoYXJlZF92aWV3LT5zaGFyZWRfaGFuZGxlX29y
X3BhZ2VfYm91bmRhcnksCiAgICAgICAgICAgICAqcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
a2luZF9nZXRfY29uZmlnKAotICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAorICAgICAgICAgICAgICAg
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
CiAgICAgICAgICAgICAgICAgICAgICZwYXJ0aWFsX3ZpZXctPmRpcmVjdG9yeSktPmJhc2UucGFn
ZV9jb25maWdfa2luZCkpOwogICAgIH0KICAgICBkZWZhdWx0OgpAQCAtMTg0LDExMiArMTQzLDEy
IEBAIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhc19zZWdyZWdhdGVkX3ZpZXcKICAgICAgICAgKnBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfY29uZmlnKHZpZXcpKTsKIH0KIAotYm9vbCBwYXNf
c2VncmVnYXRlZF92aWV3X3Nob3VsZF9yZXN0YXJ0KHBhc19zZWdyZWdhdGVkX3ZpZXcgb3duZXJf
dmlldywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbWFnYXpp
bmUqIG1hZ2F6aW5lKQotewotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCBraW5kOwotICAg
IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5OwotICAgIHVuc2lnbmVkIGluZGV4
OwotCi0gICAga2luZCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQob3duZXJfdmlldyk7
Ci0gICAgc3dpdGNoIChraW5kKSB7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19raW5kOiB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNs
dXNpdmU7Ci0gICAgICAgIGV4Y2x1c2l2ZSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1
c2l2ZShvd25lcl92aWV3KTsKLSAgICAgICAgZGlyZWN0b3J5ID0gJnBhc19jb21wYWN0X3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAg
ICAgJmV4Y2x1c2l2ZS0+ZGlyZWN0b3J5KS0+YmFzZTsKLSAgICAgICAgaW5kZXggPSBleGNsdXNp
dmUtPmluZGV4OwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOiB7Ci0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyogYmlhc2luZzsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfYmlhc2luZ19kaXJlY3RvcnkqIGJpYXNpbmdfZGlyZWN0b3J5OwotICAgICAgICBiaWFzaW5n
ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyhvd25lcl92aWV3KTsKLSAgICAgICAg
Ymlhc2luZ19kaXJlY3RvcnkgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0
b3J5X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJmJpYXNpbmctPmRpcmVjdG9yeSk7
Ci0gICAgICAgIGlmICghbWFnYXppbmUgfHwKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5X21hZ2F6aW5lX2luZGV4KAotICAgICAgICAgICAgICAgIGJpYXNpbmdf
ZGlyZWN0b3J5KSAhPSBtYWdhemluZS0+bWFnYXppbmVfaW5kZXgpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIGRpcmVjdG9yeSA9ICZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZTsK
LSAgICAgICAgaW5kZXggPSBiaWFzaW5nLT5pbmRleDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
X2tpbmQ6IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3KiBwYXJ0aWFsOwot
ICAgICAgICBwYXJ0aWFsID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbChvd25lcl92
aWV3KTsKLSAgICAgICAgaWYgKCFwYXJ0aWFsLT5lbGlnaWJpbGl0eV9oYXNfYmVlbl9ub3RlZCkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZGlyZWN0b3J5ID0gJnBhc19jb21w
YWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKAot
ICAgICAgICAgICAgJnBhcnRpYWwtPmRpcmVjdG9yeSktPmJhc2U7Ci0gICAgICAgIGluZGV4ID0g
cGFydGlhbC0+aW5kZXg7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBkZWZhdWx0OgotICAg
ICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0KLSAgICAvKiBUaGVyZSdzIHNvbWV0aGluZyBpbnRlcmVzdGluZyBo
ZXJlOiB0aGUgPD0gY29tcGFyaXNvbiBvZiB2aWV3IGluZGljZXMuIEl0IHJlYWxseSBvdWdodCB0
bwotICAgICAgIGJlIDwsIHNpbmNlIHRoZSBvd25lcl92aWV3IGlzbid0IGFjdHVhbGx5IGVsaWdp
YmxlLgotICAgICAgIAotICAgICAgIEJ1dCB0aGUgZmlyc3RfZWxpZ2libGUgcHJvcGVydHkgaGFz
IGFuIG9mZi1ieS1vbmUgc3RpY2tpbmVzcyB0byBpdC4gVGhhdCBqdXN0IHNvcnQgb2YgZmFsbHMK
LSAgICAgICBvdXQgb2YgdGhlIGdlbmVyaWMgdGFrZV9maXJzdF9lbGlnaWJsZSBhbGdvcml0aG0u
IFRoYXQgbmVjZXNzaXRhdGVzIHRoZSA8PS4KLSAgICAgICAKLSAgICAgICBUaGlzIGRvZXNuJ3Qg
aGF2ZSB0byBiZSBzdXBlciBjb3JyZWN0LiBJdCdzIGltcG9ydGFudCBmb3IgdGhlIGFsZ29yaXRo
bSB0byB0ZW5kIHRvd2FyZHMgdXNpbmcKLSAgICAgICB0aGUgbG93ZXN0LWluZGV4ZWQgdmlldy4g
QnV0IGlmIGl0IHNvbWV0aW1lcyBmYWlscyB0byBkbyB0aGF0LCB0aGVuIGl0J3Mgbm90IHRoZSBl
bmQgb2YgdGhlCi0gICAgICAgd29ybGQuCi0gICAgCi0gICAgICAgSG93ZXZlciwgaXQgbWlnaHQg
YmUgbmljZSB0byByZXZpc2l0IHdoZXRoZXIgdGhpcyBpcyByZWFsbHkgdGhlIGJlc3QgdGhhdCB3
ZSBjYW4gZG8uIEkgdGhpbmsKLSAgICAgICB0aGF0IHVuZGVyIGNvbXBsZXggcmFjZXMsIHdlIG1p
Z2h0IGhhdmUgZmlyc3RfZWxpZ2libGUgcG9pbnRpbmcgdG9vIGxvdywgbWFraW5nIGl0IHNlZW0g
bGlrZQotICAgICAgIG93bmVyX3ZpZXcgaXNuJ3QgdGhlIGZpcnN0X2VsaWdpYmxlIG9uZS4gT25l
IHdheSB0byBmaXggdGhpcyBpcyB0byBqdXN0IGhhdmUKLSAgICAgICB0YWtlX2ZpcnN0X2VsaWdp
YmxlIHRha2Ugb3VyIGluZGV4IGFuZCBoYXZlIGl0IG5vdCByZXR1cm4gYW55dGhpbmcgdW5sZXNz
IHRoYXQgc29tZXRoaW5nIGhhcwotICAgICAgIGEgbG93ZXIgaW5kZXggdGhhbiB1cy4gVGhhdCBz
ZWVtcyBiZXR0ZXIgYW5kIG1vcmUgZWZmaWNpZW50IGluIGxvdHMgb2Ygd2F5cy4gKi8KLSAgICBy
ZXR1cm4gKGluZGV4IDw9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2li
bGVfdG9ybigKLSAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9maXJzdF9lbGlnaWJsZV9idXRfbm90X3RhYmxlZF9raW5kKS52YWx1ZSkKLSAgICAgICAg
JiYgKGluZGV4IDw9IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2libGVf
dG9ybigKLSAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9maXJzdF9lbGlnaWJsZV9hbmRfdGFibGVkX2tpbmQpLnZhbHVlKTsKLX0KLQotYm9vbCBwYXNf
c2VncmVnYXRlZF92aWV3X2NvdWxkX2J1bXAocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewot
ICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZzsKLSAgICBwYWdlX2Nv
bmZpZyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfY29uZmlnKHZpZXcpOwotICAgIHN3
aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkgewotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuICFwYXNfc2Vn
cmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeSgKLSAgICAgICAgICAgICgocGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXcqKXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KSktPnBhZ2Vf
Ym91bmRhcnksCi0gICAgICAgICAgICAqcGFnZV9jb25maWcpLT5udW1fbm9uX2VtcHR5X3dvcmRz
OwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1
cm4gIXBhc19zZWdyZWdhdGVkX3BhZ2VfZm9yX2JvdW5kYXJ5KAotICAgICAgICAgICAgcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwo
Ci0gICAgICAgICAgICAgICAgJigocGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KilwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9wdHIoCi0gICAgICAgICAgICAgICAgICAgICAgdmlldykpLT5leGNs
dXNpdmUpLT5wYWdlX2JvdW5kYXJ5LAotICAgICAgICAgICAgKnBhZ2VfY29uZmlnKS0+bnVtX25v
bl9lbXB0eV93b3JkczsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5k
OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgUEFTX0FTU0VS
VCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
fQotfQotCiBwYXNfbG9jayogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfY29tbWl0X2xvY2socGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQogewogICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19nZXRfa2luZCh2aWV3KSkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3Zp
ZXdfa2luZDoKICAgICAgICAgcmV0dXJuICZwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNp
dmUodmlldyktPmNvbW1pdF9sb2NrOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192
aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmll
d19raW5kOgotICAgICAgICByZXR1cm4gJnBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3X3B0cl9sb2FkX25vbl9udWxsKAotICAgICAgICAgICAgJnBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldyktPmV4Y2x1c2l2ZSktPmNvbW1pdF9sb2NrOwogICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICZw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9zaGFyZWQodmlldyktPmNvbW1pdF9sb2NrOwogICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9raW5kOgpAQCAtMzEwLDEwICsxNjksNiBA
QCBwYXNfbG9jayogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfb3duZXJzCiAgICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
aW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gJnBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KS0+b3duZXJzaGlwX2xvY2s7Ci0gICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdh
dGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiAmcGFzX2Nv
bXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2xvYWRfbm9uX251bGwo
Ci0gICAgICAgICAgICAmcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyh2aWV3KS0+ZXhj
bHVzaXZlKS0+b3duZXJzaGlwX2xvY2s7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
dmlld19raW5kOgogICAgICAgICByZXR1cm4gJnBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJl
ZCh2aWV3KS0+b3duZXJzaGlwX2xvY2s7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
aGFuZGxlX2tpbmQ6CkBAIC0zMzMsMTEgKzE4OCw3IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19vd25lZChwYXNfc2UKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tp
bmQodmlldykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6
CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6
Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBf
a2luZF9pc19vd25lZCgKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1
c2l2ZSh2aWV3KS0+b3duZXJzaGlwX2tpbmQpOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNp
bmdfdmlld19raW5kOgotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3
X2lzX293bmVkKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldykpOworICAgICAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLT5pc19vd25l
ZDsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2tpbmQ6CiAgICAgICAgIHJl
dHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaGFyZWQodmlldyktPmlzX293bmVkOwogICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZV9raW5kOgpAQCAtMzU1LDU5ICsyMDYs
MTggQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX293bmVkKHBhc19zZQogICAgIH0KIH0K
IAotYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZF90YWJsZSgKLSAgICBwYXNfc2VncmVn
YXRlZF92aWV3IHZpZXcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnKiBwYWdlX2NvbmZpZykK
LXsKLSAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsKLSAg
ICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNf
c2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVy
biBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19zaG91bGRfdGFibGUoCi0gICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldyksIHBhZ2VfY29uZmlnKTsK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFz
X3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19zaG91bGRfdGFibGUoCi0gICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKHZpZXcpLCBwYWdlX2NvbmZpZyk7Ci0gICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBh
c19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19zaG91bGRfdGFibGUoCi0gICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9wYXJ0aWFsKHZpZXcpLCBwYWdlX2NvbmZpZyk7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAg
ICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci19Ci0KLWJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19p
c19iaWFzZWRfZXhjbHVzaXZlKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKK3ZvaWQgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmll
dykKIHsKLSAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogZXhjbHVzaXZlOwotICAg
IAotICAgIGlmICghcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmUodmlldykpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBleGNsdXNpdmUgPSBwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9leGNsdXNpdmUodmlldyk7Ci0gICAgCi0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZChleGNsdXNpdmUtPm93bmVy
c2hpcF9raW5kKTsKLX0KLQotYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlw
X2xvY2socGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIGlmIChwYXNfc2VncmVnYXRl
ZF92aWV3X2lzX3NvbWVfYmlhc2luZyh2aWV3KSkKLSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHBhc19zZWdyZWdhdGVkX3ZpZXdf
Z2V0X2JpYXNpbmcodmlldykpOwotCiAgICAgcGFzX2xvY2tfbG9jayhwYXNfc2VncmVnYXRlZF92
aWV3X2dldF9vd25lcnNoaXBfbG9jayh2aWV3KSk7Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAKLWJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHko
cGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAordm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tf
b3duZXJzaGlwX2xvY2tfY29uZGl0aW9uYWxseShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19sb2NrX2hvbGRfbW9kZSBsb2NrX2hvbGRfbW9kZSkKIHsKLSAgICBib29sIHJlc3VsdDsK
ICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKLSAgICBpZiAobG9ja19ob2xkX21vZGUpCi0gICAg
ICAgIHJlc3VsdCA9IHRydWU7Ci0gICAgZWxzZQotICAgICAgICByZXN1bHQgPSBwYXNfc2VncmVn
YXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2sodmlldyk7CisgICAgaWYgKCFsb2NrX2hvbGRf
bW9kZSkKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHZp
ZXcpOwogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwotICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
IGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2lmX293bmVkKHBh
c19zZWdyZWdhdGVkX3ZpZXcgdmlldykKQEAgLTQxOCwxMiArMjI4LDcgQEAgYm9vbCBwYXNfc2Vn
cmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwXwogYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2xv
Y2tfb3duZXJzaGlwX2xvY2tfaWZfb3duZWRfY29uZGl0aW9uYWxseShwYXNfc2VncmVnYXRlZF92
aWV3IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBsb2NrX2hvbGRfbW9kZSkK
IHsKLSAgICBib29sIHJlc3VsdDsKLQotICAgIHJlc3VsdCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdf
bG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25hbGx5KHZpZXcsIGxvY2tfaG9sZF9tb2RlKTsK
LQotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkodmlldywgbG9ja19o
b2xkX21vZGUpOwogCiAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfb3duZWQodmlldykp
CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDU3LDMzICsyNjIsNiBAQCBib29sIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfcHJpbW9yZGlhbF9wCiAgICAgICAgICZwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9wYXJ0aWFsKHZpZXcpLT5zaGFyZWRfdmlldyk7CiB9CiAKLXZvaWQgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19ub3RlX2VsaWdpYmlsaXR5KAotICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywK
LSAgICBwYXNfc2VncmVnYXRlZF9wYWdlKiBwYWdlKQotewotICAgIHN0YXRpYyBjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsKLQotICAgIGlmICh2ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJO
b3RpbmcgZWxpZ2liaWxpdHkgZm9yIHZpZXcgJXAsIHBhZ2UgJXAuXG4iLCB2aWV3LCBwYWdlKTsK
LSAgICAKLSAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpIHsK
LSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgICAgIHBh
c19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkocGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfZXhjbHVzaXZlKHZpZXcpLCBwYWdlKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICBwYXNfc2VncmVn
YXRlZF9iaWFzaW5nX3ZpZXdfbm90ZV9lbGlnaWJpbGl0eShwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9iaWFzaW5nKHZpZXcpLCBwYWdlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgcGFzX3Nl
Z3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlld19ub3RlX2VsaWdpYmlsaXR5KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhcnRpYWwo
dmlldyksIHBhZ2UpOwotICAgICAgICByZXR1cm47Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgUEFT
X0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotfQotCiB2b2lkIHBhc19zZWdyZWdhdGVkX3ZpZXdfbm90ZV9lbXB0aW5lc3MoCiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpCkBA
IC00OTQsMTEgKzI3Miw2IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfdmlld19ub3RlX2VtcHRpbmVz
cygKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfbm90ZV9lbXB0aW5lc3Mo
CiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldyksIHBh
Z2UpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3Zp
ZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3
X2tpbmQ6Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19ub3RlX2VtcHRpbmVz
cygKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNpbmcodmlldyksIHBh
Z2UpOwotICAgICAgICByZXR1cm47CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFu
ZGxlX2tpbmQ6CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfbm90ZV9lbXB0
aW5lc3MoCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaGFyZWRfaGFuZGxl
KHZpZXcpKTsKQEAgLTU5NCw3ICszNjcsNyBAQCBzdGF0aWMgYm9vbCBmb3JfZWFjaF9saXZlX29i
amVjdCgKICAgICBmdWxsX2FsbG9jX2JpdHMgPSBwYXNfZnVsbF9hbGxvY19iaXRzX2NyZWF0ZV9m
b3Jfdmlldyh2aWV3LCBwYWdlX2NvbmZpZyk7CiAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZ2V0X3BhZ2Uodmlldyk7CiAgICAgcGFnZV9ib3VuZGFyeSA9ICh1aW50cHRyX3QpcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBwYWdlX2NvbmZpZyk7Ci0gICAgb2JqZWN0X3Np
emUgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkodmlldykt
Pm9iamVjdF9zaXplOworICAgIG9iamVjdF9zaXplID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRf
c2l6ZV9kaXJlY3RvcnkodmlldyktPm9iamVjdF9zaXplOwogCiAgICAgaWYgKHZlcmJvc2UpIHsK
ICAgICAgICAgcGFzX2xvZygicGFnZSA9ICVwLCBnb3QgYWxsb2MgYml0cyByYW5nZSAlenUuLi4l
enUuXG4iLApAQCAtNjU0LDExICs0MjcsOSBAQCBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfZm9y
X2VhY2hfbGl2ZV9vCiAgICAgLyogRm9yIHBhcnRpYWwgYW5kIHNoYXJlZCB2aWV3cywgdGhlIHBh
Z2UgbG9jayBpcyB0aGUgb3duZXJzaGlwIGxvY2suIEZvciBleGNsdXNpdmUgdmlld3MsCiAgICAg
ICAgaG9sZGluZyB0aGUgb3duZXJzaGlwIGxvY2sgaXMgYWRlcXVhdGUgYW55d2F5LiAqLwogCi0g
ICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9ja19jb25kaXRpb25h
bGx5KHZpZXcsIG93bmVyc2hpcF9sb2NrX2hvbGRfbW9kZSkpIHsKLSAgICAgICAgcmVzdWx0ID0g
Zm9yX2VhY2hfbGl2ZV9vYmplY3QodmlldywgY2FsbGJhY2ssIGFyZyk7Ci0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfdW5sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkodmlldywg
b3duZXJzaGlwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICB9IGVsc2UKLSAgICAgICAgcmVzdWx0ID0g
dHJ1ZTsKKyAgICBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfY29uZGl0
aW9uYWxseSh2aWV3LCBvd25lcnNoaXBfbG9ja19ob2xkX21vZGUpOworICAgIHJlc3VsdCA9IGZv
cl9lYWNoX2xpdmVfb2JqZWN0KHZpZXcsIGNhbGxiYWNrLCBhcmcpOworICAgIHBhc19zZWdyZWdh
dGVkX3ZpZXdfdW5sb2NrX293bmVyc2hpcF9sb2NrX2NvbmRpdGlvbmFsbHkodmlldywgb3duZXJz
aGlwX2xvY2tfaG9sZF9tb2RlKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC03MDQsOSAr
NDc1LDYgQEAgc3RhdGljIHBhc190cmlfc3RhdGUgc2hvdWxkX2JlX2VsaWdpYmxlKAogICAgICAg
ICByZXR1cm4gcGFzX3RyaV9zdGF0ZV9tYXliZTsKICAgICB9CiAgICAgCi0gICAgaWYgKHBhc19z
ZWdyZWdhdGVkX3ZpZXdfaXNfYmlhc2VkX2V4Y2x1c2l2ZSh2aWV3KSkKLSAgICAgICAgcmV0dXJu
IHBhc190cmlfc3RhdGVfbm87Ci0KICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfb3du
ZWQodmlldykpCiAgICAgICAgIHJldHVybiBwYXNfdHJpX3N0YXRlX3llczsKICAgICAKQEAgLTc3
MSwxMyArNTM5LDkgQEAgcGFzX3RyaV9zdGF0ZSBwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZAog
ICAgICAgICAgICAgICAgIHZpZXcsIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9nZXRfc3RyaW5n
KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykpKTsKICAgICB9CiAKLSAgICBpZiAo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2NrKHZpZXcpKSB7Ci0gICAgICAg
IHJlc3VsdCA9IHNob3VsZF9iZV9lbGlnaWJsZSh2aWV3LCBwYWdlX2NvbmZpZyk7Ci0gICAgICAg
IHBhc19zZWdyZWdhdGVkX3ZpZXdfdW5sb2NrX293bmVyc2hpcF9sb2NrKHZpZXcpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIC8qIFRoaXMgaGFwcGVucyB3aGVuIGEgYmlhc2luZyB2aWV3IGlzIHVu
b3duZWQuIFNvIGl0IHNob3VsZCBiZSBlbGlnaWJsZSEgKi8KLSAgICAgICAgcmVzdWx0ID0gcGFz
X3RyaV9zdGF0ZV95ZXM7Ci0gICAgfQorICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25l
cnNoaXBfbG9jayh2aWV3KTsKKyAgICByZXN1bHQgPSBzaG91bGRfYmVfZWxpZ2libGUodmlldywg
cGFnZV9jb25maWcpOworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfdW5sb2NrX293bmVyc2hpcF9s
b2NrKHZpZXcpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTgwNywxMSArNTcxLDYgQEAg
cGFzX3NlZ3JlZ2F0ZWRfdmlldyBwYXNfc2VncmVnYXRlZF92aWV3XwogICAgICAgICAgICBUaGlz
IG1ha2VzIGVxdWFsaXR5IGFzc2VydGlvbnMgaW4gdGhlIHRlc3RzIGVhc2llciB0byB3cml0ZS4g
Ki8KICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2FzX3ZpZXco
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZXhjbHVzaXZlKG93bmluZ192aWV3KSk7CiAKLSAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgLyogU2VlIGFib3Zl
LiAqLwotICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2FzX3ZpZXco
cGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyhvd25pbmdfdmlldykpOwotCiAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlX2tpbmQ6CiAgICAgICAgIHJldHVybiBwYXNf
c2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfYXNfdmlldygKICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NoYXJlZF9oYW5kbGVfcGFydGlhbF92aWV3X2Zvcl9vYmplY3QoCkBAIC04MzEsMTAgKzU5
MCw2IEBAIHBhc19oZWFwX3N1bW1hcnkgcGFzX3NlZ3JlZ2F0ZWRfdmlld19jb20KICAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAg
cmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NvbXB1dGVfc3VtbWFyeShwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUodmlldykpOwogCi0gICAgY2FzZSBwYXNfc2Vn
cmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxp
Z2libGVfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2JpYXNp
bmcodmlldykpOwotCiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgog
ICAgICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY29tcHV0ZV9zdW1tYXJ5
KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZCh2aWV3KSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZyk7CkBA
IC04NTUsMTAgKzYxMCw2IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZShw
YXMKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2lu
ZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lzX2VsaWdp
YmxlKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZSh2aWV3KSk7CiAKLSAgICBjYXNl
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0
ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX2JpYXNpbmdfdmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3X2dldF9i
aWFzaW5nKHZpZXcpKTsKLQogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tp
bmQ6CiAgICAgICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfaXNfZWxpZ2li
bGUocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFydGlhbCh2aWV3KSk7CiAKQEAgLTg2OCwxMiAr
NjE5LDYgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlKHBhcwogICAgIH0K
IH0KIAotYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlX29yX2JpYXNlZChwYXNf
c2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdf
aXNfZWxpZ2libGUodmlldykKLSAgICAgICAgfHwgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFz
ZWRfZXhjbHVzaXZlKHZpZXcpOwotfQotCiBzdGF0aWMgYm9vbCBpc19wYXlsb2FkX2VtcHR5X2Nh
bGxiYWNrKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3JhbmdlIHJhbmdlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2b2lkICphcmcpCkBAIC04OTcsMTAgKzY0Miw2IEBAIGJvb2wgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19lbXB0eShwYXNfc2UKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2lu
ZWxpZ2libGVfZXhjbHVzaXZlX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1
c2l2ZSh2aWV3KSk7CiAKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5k
OgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoK
LSAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19pc19lbXB0eShwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9iaWFzaW5nKHZpZXcpKTsKLQogICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3No
YXJlZF92aWV3X2lzX2VtcHR5KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NoYXJlZCh2aWV3KSk7
CiAKQEAgLTkxOCwxMCArNjU5LDQgQEAgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5
KHBhc19zZQogICAgIH0KIH0KIAotYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5X29y
X2JpYXNlZChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfZW1wdHkodmlldykKLSAgICAgICAgfHwgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19iaWFzZWRfZXhjbHVzaXZlKHZpZXcpOwotfQotCiAjZW5kaWYgLyogTElCUEFTX0VOQUJM
RUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3ZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF92aWV3LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuaAkod29ya2luZyBjb3B5
KQpAQCAtNDUsNyArNDUsNiBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIHN0cnVjdCBwYXNfaGVh
cF9jb25maWc7CiBzdHJ1Y3QgcGFzX21hZ2F6aW5lOwotc3RydWN0IHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfdmlldzsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnk7CiBzdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXc7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsK
QEAgLTU0LDExICs1MywxMCBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3Owog
c3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGU7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5Owogc3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92
aWV3Owotc3RydWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3N0cnVj
dCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF92
aWV3X29wYXF1ZTsKIHR5cGVkZWYgc3RydWN0IHBhc19oZWFwX2NvbmZpZyBwYXNfaGVhcF9jb25m
aWc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfbWFnYXppbmUgcGFzX21hZ2F6aW5lOwotdHlwZWRlZiBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdf
dmlldzsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSBwYXNfc2VncmVn
YXRlZF9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldyBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldzsKIHR5cGVkZWYgc3RydWN0IHBhc19z
ZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZTsKQEAgLTY3LDcgKzY1LDcgQEAgdHlw
ZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aQogdHlwZWRlZiBzdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlOwog
dHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5IHBhc19z
ZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3OwotdHlwZWRlZiBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1
Y3QgcGFzX3NlZ3JlZ2F0ZWRfdmlld19vcGFxdWUqIHBhc19zZWdyZWdhdGVkX3ZpZXc7CiAKIC8q
IE5PVEU6IGl0J3MgYW4gYW50aXBhdHRlcm4gdG8gdXNlIHRoaXMgZnVuY3Rpb24gZGlyZWN0bHkg
d2hlbiB5b3UgY291bGQgaGF2ZSB1c2VkIHRoZSBtdWNoIG1vcmUKQEAgLTExNSw3MiArMTEzLDM3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2kKIAogc3RhdGljIGlu
bGluZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUocGFzX3NlZ3Jl
Z2F0ZWRfdmlldyB2aWV3KQogewotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4
Y2x1c2l2ZSh2aWV3KQotICAgICAgICB8fCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2luZWxpZ2li
bGVfZXhjbHVzaXZlKHZpZXcpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2V4Y2x1c2l2ZV9pc2gocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBw
YXNfc2VncmVnYXRlZF92aWV3X2lzX2JpYXNpbmcocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQot
ewotICAgIHJldHVybiAhcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19udWxsKHZpZXcpCi0gICAgICAg
ICYmIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykgPT0gcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ192aWV3X2tpbmQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRl
ZF92aWV3X2lzX2luZWxpZ2libGVfYmlhc2luZyhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCi17
Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmlldykgPT0gcGFzX3Nl
Z3JlZ2F0ZWRfaW5lbGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDsKLX0KLQotc3RhdGljIGlubGlu
ZSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9iaWFzaW5nKHBhc19zZWdyZWdhdGVk
X3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzaW5n
KHZpZXcpCi0gICAgICAgIHx8IHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfaW5lbGlnaWJsZV9iaWFz
aW5nKHZpZXcpOwotfQotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmll
dyogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfYmlhc2luZyhwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcpCi17Ci0gICAgUEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfYmlhc2lu
Zyh2aWV3KSk7Ci0gICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqKXBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIHBh
c19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGVfa2luZChwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19lbGlnaWJsZShw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKTsKLX0KLQotc3RhdGljIGlubGluZSBi
b29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfaW5lbGlnaWJsZV9raW5kKHBhc19zZWdyZWdhdGVk
X3ZpZXcgdmlldykKLXsKLSAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2lu
ZWxpZ2libGUocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSk7CisgICAgcmV0dXJu
IHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9pc19zb21lX2V4Y2x1c2l2ZShwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9raW5kKHZpZXcpKTsKIH0KIAogc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRl
ZF92aWV3IHBhc19zZWdyZWdhdGVkX3ZpZXdfYXNfaW5lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92
aWV3IHZpZXcpCiB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyByZXN1bHQ7Ci0gICAgUEFTX1RF
U1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZXhjbHVzaXZlX2lzaCh2aWV3KSk7
CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNs
dXNpdmUodmlldykpOwogICAgIHJlc3VsdCA9IChwYXNfc2VncmVnYXRlZF92aWV3KSgKICAgICAg
ICAgKHVpbnRwdHJfdCl2aWV3IHwgKHVpbnRwdHJfdClwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxl
X2V4Y2x1c2l2ZV92aWV3X2tpbmQpOwogICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9wdHIodmlldykgPT0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHJl
c3VsdCkpOwotICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3Nv
bWVfZXhjbHVzaXZlKHZpZXcpCi0gICAgICAgICAgICAgICAgICAgICAgID09IHBhc19zZWdyZWdh
dGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUocmVzdWx0KSk7CisgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykpOwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBwYXNf
c2VncmVnYXRlZF92aWV3X2FzX2VsaWdpYmxlKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsK
ICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHJlc3VsdDsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQo
cGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19leGNsdXNpdmVfaXNoKHZpZXcpKTsKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZSh2aWV3KSk7
CiAgICAgcmVzdWx0ID0gKHBhc19zZWdyZWdhdGVkX3ZpZXcpKAogICAgICAgICAodWludHB0cl90
KXZpZXcgJiB+KHVpbnRwdHJfdClwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92
aWV3X2tpbmQpOwogICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9wdHIodmlldykgPT0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHJlc3VsdCkpOwotICAg
IFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZl
KHZpZXcpCi0gICAgICAgICAgICAgICAgICAgICAgID09IHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNf
c29tZV9leGNsdXNpdmUocmVzdWx0KSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdy
ZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNpdmUodmlldykpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCit7
CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNs
dXNpdmUodmlldykpOworICAgIHJldHVybiAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcq
KXBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKK30KKwogc3RhdGljIGlubGluZSBi
b29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc2hhcmVkKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmll
dykKIHsKICAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSA9PSBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOwpAQCAtMjE1LDMzICsxNzgsMjIgQEAgc3Rh
dGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZQogICAgIHJldHVybiAocGFzX3Nl
Z3JlZ2F0ZWRfcGFydGlhbF92aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2lzX2dsb2JhbF9z
aXplX2RpcmVjdG9yeShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCitzdGF0aWMgaW5saW5lIGJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19zaXplX2RpcmVjdG9yeShwYXNfc2VncmVnYXRlZF92
aWV3IHZpZXcpCiB7Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmll
dykgPT0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDsKKyAg
ICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSA9PSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQ7CiB9CiAKLVBBU19BUEkgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5KgorUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBh
c19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5X3Nsb3cocGFzX3NlZ3JlZ2F0ZWRf
dmlldyB2aWV3KTsKIAotc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqCitz
dGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQogewot
ICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3
KSkKLSAgICAgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqKXBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X3B0cih2aWV3KTsKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19z
aXplX2RpcmVjdG9yeSh2aWV3KSkKKyAgICAgICAgcmV0dXJuIChwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeSopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOwogICAgIHJldHVy
biBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeV9zbG93KHZpZXcpOwogfQog
Ci1QQVNfQVBJIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSoKLXBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9zbG93KHBhc19zZWdyZWdhdGVk
X3ZpZXcgdmlldyk7Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KgotcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKLXsKLSAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19nbG9iYWxfc2l6ZV9kaXJlY3RvcnkodmlldykpCi0gICAgICAgIHJldHVybiAocGFzX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9w
dHIodmlldyk7Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9zbG93KHZpZXcpOwotfQotCiBQQVNfQVBJIHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2tpbmQKIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfY29uZmlnX2tpbmQocGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWcqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2VfY29uZmlnKHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldyk7CkBAIC0yNTEsMjMgKzIwMyw5IEBAIFBBU19BUEkgc2l6ZV90IHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X2kKIFBBU19BUEkgdm9pZCogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcGFn
ZV9ib3VuZGFyeShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogUEFTX0FQSSBwYXNfc2VncmVn
YXRlZF9wYWdlKiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlKHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldyk7CiAKLS8qIFRoaXMgYXNzdW1lcyB0aGF0IG93bmVyX3ZpZXcgaXMgZWl0aGVyOgot
ICAgCi0gICA9PiBBbiBleGNsdXNpdmUtaXNoIHZpZXcgKGV4Y2x1c2l2ZSBvciBiaWFzaW5nKSB0
aGF0IHdhcyBsb2FkZWQgZnJvbSBwYWdlLT5vd25lciwgc28gaXRzIGtpbmQKLSAgICAgIGNhbiB0
ZWxsIHVzIGFib3V0IGVsaWdpYmlsaXR5LgotCi0gICA9PiBBIHBhcnRpYWwgdmlldyBpZiB0aGUg
cGFnZSBvd25lciB3YXMgYSBzaGFyZWQgaGFuZGxlLgotCi0gICBUaGlzIHNldCBvZiBhc3N1bXB0
aW9ucyBoYXBwZW5zIHRvIG1hdGNoIGxvY2FsX2FsbG9jYXRvcidzIHZpZXcgb2YgdGhlIHdvcmxk
LiAqLwotUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX3Jlc3RhcnQocGFz
X3NlZ3JlZ2F0ZWRfdmlldyBvd25lcl92aWV3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX21hZ2F6aW5lKiBtYWdhemluZSk7Ci0KLVBBU19BUEkg
Ym9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2NvdWxkX2J1bXAocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2
aWV3KTsKLQogLyogSXQncyBvbmx5IE9LIHRvIGNhbGwgdGhpcyB3aGVuIHlvdSBoYXZlIG93bmVy
c2hpcCBvZiB0aGUgcGFnZSwgbGlrZSBpZiB5b3UgbWFkZSBpdCBpbmVsaWdpYmxlIG9yCiAgICBn
cmFiYmVkIHRoZSBvd25lcnNoaXAgbG9jay4gT2YgY291cnNlLCBpZiB5b3UgZ3JhYmJlZCB0aGUg
b3duZXJzaGlwIGxvY2sgdGhlbiB5b3UgY2Fubm90IGdyYWIgdGhlCi0gICBjb21taXQgbG9jaywg
c28gaG9wZWZ1bGx5IHlvdSBnb3QgaGVyZSBieSBtYWtpbmcgdGhlIHBhZ2UgaW5lbGlnaWJsZS4g
QWxzbywgZm9yIGJpYXNpbmcgdmlld3MsIGl0J3MKLSAgIG9ubHkgT0sgaWYgdGhlIGJpYXNpbmcg
dmlldyBpcyBhdHRhY2hlZCB0byBhbiBleGNsdXNpdmUuICovCisgICBjb21taXQgbG9jaywgc28g
aG9wZWZ1bGx5IHlvdSBnb3QgaGVyZSBieSBtYWtpbmcgdGhlIHBhZ2UgaW5lbGlnaWJsZS4gKi8K
IFBBU19BUEkgcGFzX2xvY2sqIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2NvbW1pdF9sb2NrKHBh
c19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiAKIC8qIEl0J3Mgb25seSBPSyB0byBjYWxsIHRoaXMg
aWYgeW91IGFscmVhZHkgaG9sZCB0aGUgb3duZXJzaGlwIGxvY2sgb3IgdGhlIHZpZXcgaXMgaW5l
bGlnaWJsZS4gKi8KQEAgLTI3NSwxNSArMjEzLDkgQEAgUEFTX0FQSSBwYXNfbG9jayogcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZQogCiBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19v
d25lZChwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwogCi1QQVNfQVBJIGJvb2wgcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19zaG91bGRfdGFibGUoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3LCBw
YXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOwotCi0vKiBUcnVlIGlmIHRo
aXMgaXMgYW4gZXhjbHVzaXZlIHZpZXcgdGhhdCBpcyBiaWFzZWQuICovCi1QQVNfQVBJIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzZWRfZXhjbHVzaXZlKHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldyk7Ci0KLS8qIExvY2tzIHRoZSBvd25lcnNoaXAgbG9jayBhbmQgdGVsbHMgeW91IGlm
IGFueSBsb2NrIHdhcyBzdWNjZXNzZnVsbHkgbG9ja2VkLiAqLwotUEFTX0FQSSBib29sIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9jayhwYXNfc2VncmVnYXRlZF92aWV3IHZp
ZXcpOwotUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfbG9ja19vd25lcnNoaXBfbG9j
a19jb25kaXRpb25hbGx5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldywKKy8qIExvY2tzIHRoZSBv
d25lcnNoaXAgbG9jay4gKi8KK1BBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X2xvY2tf
b3duZXJzaGlwX2xvY2socGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KTsKK1BBU19BUEkgdm9pZCBw
YXNfc2VncmVnYXRlZF92aWV3X2xvY2tfb3duZXJzaGlwX2xvY2tfY29uZGl0aW9uYWxseShwYXNf
c2VncmVnYXRlZF92aWV3IHZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGxvY2tf
aG9sZF9tb2RlKTsKIC8qIExvY2tzIHRoZSBvd25lcnNoaXAgbG9jayBhbmQgdGVsbHMgeW91IGlm
IHRoZSB2aWV3IGlzIG93bmVkLiBJZiBpdCBpc24ndCBvd25lZCBpdCBhbHNvIHVubG9ja3MgaXQu
ICovCiBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19sb2NrX293bmVyc2hpcF9sb2Nr
X2lmX293bmVkKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CkBAIC0yOTgsMTAgKzIzMCw2IEBA
IFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF92aWV3X3VubG9ja18KIC8qIFRoaXMgaXMgb25s
eSB2YWxpZCB0byBjYWxsIG9uIGEgcGFydGlhbCB2aWV3IHRoYXQgd2FzIGp1c3QgbWFkZSBpbmVs
aWdpYmxlLiAqLwogUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfcHJpbW9yZGlh
bF9wYXJ0aWFsKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiAKLVBBU19BUEkgdm9pZCBwYXNf
c2VncmVnYXRlZF92aWV3X25vdGVfZWxpZ2liaWxpdHkoCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfdmll
dyB2aWV3LAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2UpOwotCiBQQVNfQVBJIHZvaWQg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19ub3RlX2VtcHRpbmVzcygKICAgICBwYXNfc2VncmVnYXRlZF92
aWV3IHZpZXcsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZSogcGFnZSk7CkBAIC0zMzcsMTAgKzI2
NSw4IEBAIFBBU19BUEkgcGFzX2hlYXBfc3VtbWFyeSBwYXNfc2VncmVnYXRlZF8KICAgICBwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyogcGFnZV9jb25maWcpOwogCiBQQVNfQVBJIGJvb2wgcGFz
X3NlZ3JlZ2F0ZWRfdmlld19pc19lbGlnaWJsZShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpOwot
UEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZWxpZ2libGVfb3JfYmlhc2VkKHBh
c19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiBQQVNfQVBJIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmll
d19pc19wYXlsb2FkX2VtcHR5KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiBQQVNfQVBJIGJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19lbXB0eShwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcp
OwotUEFTX0FQSSBib29sIHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1wdHlfb3JfYmlhc2VkKHBh
c19zZWdyZWdhdGVkX3ZpZXcgdmlldyk7CiAKIFBBU19FTkRfRVhURVJOX0M7CiAKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2Nh
dG9yX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4
MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTIgKzI3LDEx
IEBACiAjZGVmaW5lIFBBU19TRUdSRUdBVEVEX1ZJRVdfQUxMT0NBVE9SX0lOTElORVNfSAogCiAj
aW5jbHVkZSAicGFzX2Vwb2NoLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ19k
aXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcuaCIKLSNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oIgorI2luY2x1ZGUgInBhc19w
aHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9p
bmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgiCi0jaW5j
bHVkZSAicGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3NlZ3Jl
Z2F0ZWRfdmlldy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKQEAgLTU3LDcgKzU2LDcgQEAg
cGFzX3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9jYXRpbgogICAgIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3KiBwYXJ0aWFsOwogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgaW5lbGlnaWJsZV9vd25p
bmdfdmlldzsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVf
ZGlyZWN0b3J5OworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVj
dG9yeTsKICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5X2Jhc2U7
CiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGU7CiAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBzaGFyZWRfcGFnZV9kaXJlY3Rvcnk7CkBA
IC02NywzMjQgKzY2LDI1OCBAQCBwYXNfc2VncmVnYXRlZF92aWV3X3dpbGxfc3RhcnRfYWxsb2Nh
dGluCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZSogc2hhcmVkX2hhbmRsZTsKIAog
ICAgIHN3aXRjaCAocGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkgewotICAgIGNh
c2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOiB7Ci0gICAgICAgIHBhc19zZWdyZWdh
dGVkX2JpYXNpbmdfdmlldyogYmlhc2luZ192aWV3OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX2RpcmVjdG9yeSogYmlhc2luZ19kaXJlY3Rvcnk7Ci0KLSAgICAgICAgYmlhc2luZ192
aWV3ID0gKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfcHRyKHZpZXcpOwotCi0gICAgICAgIGV4Y2x1c2l2ZSA9IHBhc19jb21wYWN0X2F0b21pY19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2FkKCZiaWFzaW5nX3ZpZXctPmV4Y2x1c2l2
ZSk7Ci0gICAgICAgIGJpYXNpbmdfZGlyZWN0b3J5ID0KLSAgICAgICAgICAgIHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJmJpYXNpbmdf
dmlldy0+ZGlyZWN0b3J5KTsKLQotICAgICAgICBpZiAoIWV4Y2x1c2l2ZSkgewotICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplX2RpcmVjdG9yeTsK
LSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgcmVzdWx0aW5nX3ZpZXc7Ci0gICAgICAg
ICAgICBwYXNfbG9jayogaGVsZF9sb2NrOwotCi0gICAgICAgICAgICBzaXplX2RpcmVjdG9yeSA9
IHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25v
bl9udWxsKAotICAgICAgICAgICAgICAgICZiaWFzaW5nX2RpcmVjdG9yeS0+cGFyZW50X2dsb2Jh
bCk7Ci0KLSAgICAgICAgICAgIHJlc3VsdGluZ192aWV3ID0KLSAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfdGFrZV9maXJzdF9lbGlnaWJsZV9kaXJl
Y3Qoc2l6ZV9kaXJlY3RvcnkpOwotCi0gICAgICAgICAgICBpZiAoIXBhc19zZWdyZWdhdGVkX3Zp
ZXdfaXNfZXhjbHVzaXZlKHJlc3VsdGluZ192aWV3KSkgewotICAgICAgICAgICAgICAgIFBBU19B
U1NFUlQoIXJlc3VsdGluZ192aWV3IHx8IHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfcGFydGlhbChy
ZXN1bHRpbmdfdmlldykpOwotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoCi0gICAgICAgICAgICAgICAgICAg
ICZiaWFzaW5nX2RpcmVjdG9yeS0+YmFzZSwgYmlhc2luZ192aWV3LT5pbmRleCk7Ci0gICAgICAg
ICAgICAgICAgdmlldyA9IHJlc3VsdGluZ192aWV3OwotICAgICAgICAgICAgICAgIGdvdG8gcGFy
dGlhbF92aWV3X2Nhc2U7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGV4Y2x1c2l2ZSA9
IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2V4Y2x1c2l2ZShyZXN1bHRpbmdfdmlldyk7Ci0KLSAg
ICAgICAgICAgIGhlbGRfbG9jayA9IE5VTEw7Ci0gICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2go
JmhlbGRfbG9jaywgJmV4Y2x1c2l2ZS0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKCZiaWFz
aW5nX3ZpZXctPmV4Y2x1c2l2ZSwgZXhjbHVzaXZlKTsKLSAgICAgICAgICAgIFBBU19BU1NFUlQo
IXBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX2lzX2JpYXNlZCgK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQpKTsK
LSAgICAgICAgICAgIGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQgPQotICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X293bmVyc2hpcF9raW5kX3dpdGhfYmlhc2Vk
KAotICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kLCB0cnVlKTsK
LSAgICAgICAgICAgIGlmICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcGFzX2xvZygidmll
dyAlcCBoYXMgb3duZXJzaGlwIGtpbmQgPSAlcyBkdWUgdG8gYmlhc2luZyB3aWxsX3N0YXJ0X2Fs
bG9jYXRpbmdcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBf
a2luZF9nZXRfc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+
b3duZXJzaGlwX2tpbmQpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19vd25lZChleGNsdXNpdmUt
Pm93bmVyc2hpcF9raW5kKSkgewotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Uq
IHBhZ2U7Ci0KLSAgICAgICAgICAgICAgICBwYWdlID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3Jf
Ym91bmRhcnkoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyk7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX3N3aXRjaF9sb2NrKHBh
Z2UsICZoZWxkX2xvY2ssIHBhZ2VfY29uZmlnKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIC8qIElmIHRoaXMgZXhjbHVzaXZlIGFscmVhZHkgaGFkIGEgcGFnZSwgdGhlbiB0aGUgcGFn
ZSBtdXN0IGJlIHNheWluZyB0aGF0IGl0J3MgZWxpZ2libGUuICovCi0gICAgICAgICAgICAgICAg
UEFTX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2V4Y2x1c2l2ZShwYWdlLT5vd25lcikp
OwotCi0gICAgICAgICAgICAgICAgcGFnZS0+b3duZXIgPSBwYXNfc2VncmVnYXRlZF9iaWFzaW5n
X3ZpZXdfYXNfdmlld19ub25fbnVsbChiaWFzaW5nX3ZpZXcpOwotICAgICAgICAgICAgfQotCi0g
ICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7Ci0KLSAgICAgICAg
ICAgIC8qIFRoZSBleGNsdXNpdmUgaXMgaW5lbGlnaWJsZSBpbiB0aGUgc2l6ZSBkaXJlY3Rvcnkg
bm93LCBzbyBpdCdzIG5vdyBvdXJzIHRvIGRvIHdpdGggYXMKLSAgICAgICAgICAgICAgIHdlIHBs
ZWFzZS4gKi8KLSAgICAgICAgfQotCi0gICAgICAgIGluZWxpZ2libGVfb3duaW5nX3ZpZXcgPSBw
YXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfYXNfaW5lbGlnaWJsZV92aWV3X25vbl9udWxsKGJp
YXNpbmdfdmlldyk7Ci0KLSAgICAgICAgZ290byBleGNsdXNpdmVfdmlld19jYXNlOwotICAgIH0K
ICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6IHsKICAgICAgICAg
ZXhjbHVzaXZlID0gKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KilwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9wdHIodmlldyk7CiAgICAgICAgIGluZWxpZ2libGVfb3duaW5nX3ZpZXcgPSBw
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19hc19pbmVsaWdpYmxlX3ZpZXdfbm9uX251bGwo
ZXhjbHVzaXZlKTsKIAotICAgICAgICBnb3RvIGV4Y2x1c2l2ZV92aWV3X2Nhc2U7Ci0gICAgfQot
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2tpbmQ6IHsKLSAgICAgICAgZ290
byBwYXJ0aWFsX3ZpZXdfY2FzZTsKLSAgICB9Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgUEFTX0FT
U0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAg
ICB9CisgICAgICAgIC8qIFRoaXMgaXMgY2FsbGVkIHdpdGggdGhlIHBhZ2UgbG9jayBOT1QgaGVs
ZC4gKi8KIAotICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGRyb3AgZG93biB0byBoZXJlLiIp
OworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoCisgICAgICAgICAgICBwYXNfc2VncmVnYXRl
ZF92aWV3X2dldF9raW5kKGluZWxpZ2libGVfb3duaW5nX3ZpZXcpCisgICAgICAgICAgICA9PSBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQpOworICAgIAorICAg
ICAgICBzaXplX2RpcmVjdG9yeSA9CisgICAgICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZleGNsdXNpdmUtPmRpcmVjdG9yeSk7
CisgICAgICAgIHNpemVfZGlyZWN0b3J5X2Jhc2UgPSAmc2l6ZV9kaXJlY3RvcnktPmJhc2U7Cisg
ICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19o
ZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKTsKIAotZXhjbHVzaXZlX3ZpZXdfY2FzZToK
LSAgICAvKiBUaGlzIGlzIGNhbGxlZCB3aXRoIHRoZSBwYWdlIGxvY2sgTk9UIGhlbGQuICovCisg
ICAgICAgIC8qIENvb2wgZmFjdDogdGhpcyB3b24ndCBjYXVzZSB0aGUgc2l6ZSBkaXJlY3Rvcnkg
dG8gaGF2ZSBzaGFyaW5nIHBheWxvYWRzIHVudGlsIHRoYXQKKyAgICAgICAgICAgc2l6ZSBkaXJl
Y3RvcnkgYWxsb2NhdGVzIGV4Y2x1c2l2ZSB2aWV3cy4gKi8KIAotICAgIFBBU19URVNUSU5HX0FT
U0VSVChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2luZWxpZ2libGVfa2luZChpbmVsaWdpYmxlX293
bmluZ192aWV3KSk7Ci0gICAgCi0gICAgc2l6ZV9kaXJlY3RvcnkgPQotICAgICAgICBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgm
ZXhjbHVzaXZlLT5kaXJlY3RvcnkpOwotICAgIHNpemVfZGlyZWN0b3J5X2Jhc2UgPSAmc2l6ZV9k
aXJlY3RvcnktPmJhc2U7Ci0gICAgaGVhcF9sb2NrX2hvbGRfbW9kZSA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpOwotCi0gICAgLyog
Q29vbCBmYWN0OiB0aGlzIHdvbid0IGNhdXNlIHRoZSBzaXplIGRpcmVjdG9yeSB0byBoYXZlIHNo
YXJpbmcgcGF5bG9hZHMgdW50aWwgdGhhdAotICAgICAgIHNpemUgZGlyZWN0b3J5IGFsbG9jYXRl
cyBleGNsdXNpdmUgdmlld3MuICovCi0KLSAgICAvKiBFdmVuIHRob3VnaCB3ZSBob2xkIG5vIGxv
Y2tzLCB3ZSBjYW4gdG90YWxseSBjaGVjayB0aGlzIGJpdC4gVGhlIGVsaWdpYmxlIGJpdCBpcyBh
IHNlY29uZGFyeQotICAgICAgIHByb3RlY3Rpb24gaGVyZSBzaW5jZSBpdCBpcyBvbmx5IGxlZ2Fs
IHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgdGhpcyBiaXQgaWYgeW91J3ZlIHN0b2xlbgotICAgICAg
IGVsaWdpYmlsaXR5IGFuZCBsb2NrZWQgdGhlIHBhZ2UuICovCi0gICAgaWYgKCFwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19vd25lcnNoaXBfa2luZF9pc19vd25lZChleGNsdXNpdmUtPm93
bmVyc2hpcF9raW5kKSkgewotICAgICAgICBib29sIHdhc19zdG9sZW47CisgICAgICAgIC8qIEV2
ZW4gdGhvdWdoIHdlIGhvbGQgbm8gbG9ja3MsIHdlIGNhbiB0b3RhbGx5IGNoZWNrIHRoaXMgYml0
LiBUaGUgZWxpZ2libGUgYml0IGlzIGEgc2Vjb25kYXJ5CisgICAgICAgICAgIHByb3RlY3Rpb24g
aGVyZSBzaW5jZSBpdCBpcyBvbmx5IGxlZ2FsIHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgdGhpcyBi
aXQgaWYgeW91J3ZlIHN0b2xlbgorICAgICAgICAgICBlbGlnaWJpbGl0eSBhbmQgbG9ja2VkIHRo
ZSBwYWdlLiAqLworICAgICAgICBpZiAoIWV4Y2x1c2l2ZS0+aXNfb3duZWQpIHsKKyAgICAgICAg
ICAgIGJvb2wgd2FzX3N0b2xlbjsKIAotICAgICAgICB3YXNfc3RvbGVuID0gZmFsc2U7CisgICAg
ICAgICAgICB3YXNfc3RvbGVuID0gZmFsc2U7CiAgICAgICAgIAotICAgICAgICBpZiAoIWV4Y2x1
c2l2ZS0+cGFnZV9ib3VuZGFyeSkgewotICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAg
ICAgICAgICAgcGFzX2xvZygiTm8gcGFnZSwgdHJ5aW5nIHRvIGdldCBvbmUgc29tZWhvdy5cbiIp
OwotICAgICAgICAgICAgaWYgKCFleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkKLSAgICAgICAgICAg
ICAgICAmJiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfY2FuX2RvX3NoYXJpbmcoc2l6ZV9kaXJl
Y3RvcnlfYmFzZSkpIHsKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
ICAgICAgICAgcGFzX2xvZygiVHJ5aW5nIHBoeXNpY2FsLlxuIik7Ci0gICAgICAgICAgICAgICAg
cGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9yX3BhZ2VfY29uZmlnKAotICAg
ICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSwgcGFnZV9jb25maWcu
YmFzZS5wYWdlX2NvbmZpZ19wdHIsCi0gICAgICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xk
X21vZGUsIE5VTEwsIDApOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgICAg
ICBpZiAoIWV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSkgewogICAgICAgICAgICAgICAgIGlmICh2
ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJBbGxvY2F0aW5nIGEgcGFnZS5c
biIpOwotICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhl
YXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+cGFnZV9ib3Vu
ZGFyeSA9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9hbGxvY2F0b3Ioc2l6ZV9kaXJlY3RvcnktPmhl
YXApOwotICAgICAgICAgICAgICAgIGlmIChleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19sb2coIkNyZWF0aW5nIHBhZ2UgaGVhZGVyIGZvciBuZXcgZXhjbHVzaXZlIHBhZ2UsIGJv
dW5kYXJ5ID0gJXAuXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNp
dmUtPnBhZ2VfYm91bmRhcnkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKAotICAgICAgICAgICAg
ICAgICAgICAgICAgZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LAotICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIk5v
IHBhZ2UsIHRyeWluZyB0byBnZXQgb25lIHNvbWVob3cuXG4iKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIWV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeQorICAgICAgICAgICAgICAgICAgICAmJiBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfY2FuX2RvX3NoYXJpbmcoc2l6ZV9kaXJlY3RvcnlfYmFzZSkp
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9nKCJUcnlpbmcgcGh5c2ljYWwuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
cGFzX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2VfZm9yX3BhZ2VfY29uZmlnKAorICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUsIHBhZ2VfY29u
ZmlnLmJhc2UucGFnZV9jb25maWdfcHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVhcF9s
b2NrX2hvbGRfbW9kZSwgTlVMTCwgMCk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBh
c19sb2coIkdvdCBwYWdlID0gJXAuXG4iLCBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpOwotICAg
ICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIWV4Y2x1c2l2ZS0+cGFn
ZV9ib3VuZGFyeSkgewotICAgICAgICAgICAgICAgIC8qIE91dCBvZiBtZW1vcnkuICovCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90IG1heF9udW1fbG9ja3NfaGVsZCA9IDE7
Ci0gICAgICAgICAgICBwYXNfbG9jayogbG9ja3NfaGVsZFttYXhfbnVtX2xvY2tzX2hlbGRdOwot
ICAgICAgICAgICAgc2l6ZV90IG51bV9sb2Nrc19oZWxkOwotICAgICAgICAgICAgYm9vbCBkaWRf
bG9ja19sb2NrOworICAgICAgICAgICAgICAgIGlmICghZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5
KSB7CisgICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24g
dHJhbnNhY3Rpb247CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBp
ZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkFsbG9jYXRpbmcg
YSBwYWdlLlxuIik7CisKKyAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90
cmFuc2FjdGlvbl9jb25zdHJ1Y3QoJnRyYW5zYWN0aW9uKTsKKyAgICAgICAgICAgICAgICAgICAg
ZG8geworICAgICAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghZXhjbHVzaXZlLT5wYWdl
X2JvdW5kYXJ5KTsKKworICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV90cmFuc2FjdGlvbl9iZWdpbigmdHJhbnNhY3Rpb24pOworICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkgPSBwYWdl
X2NvbmZpZy5iYXNlLnBhZ2VfYWxsb2NhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNpemVfZGlyZWN0b3J5LT5oZWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYXBf
bG9ja19ob2xkX21vZGUgPyBOVUxMIDogJnRyYW5zYWN0aW9uKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJDcmVhdGluZyBwYWdlIGhlYWRlciBmb3IgbmV3IGV4Y2x1c2l2ZSBwYWdlLCBi
b3VuZGFyeSA9ICVwLlxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9w
YWdlX2hlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLT5w
YWdlX2JvdW5kYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19p
c19oZWxkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9k
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfbG9nKCJHb3QgcGFnZSA9ICVwLlxuIiwgZXhjbHVzaXZlLT5wYWdl
X2JvdW5kYXJ5KTsKKyAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoIXBhc19waHlzaWNhbF9t
ZW1vcnlfdHJhbnNhY3Rpb25fZW5kKCZ0cmFuc2FjdGlvbikpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmICghZXhjbHVzaXZlLT5wYWdlX2JvdW5k
YXJ5KSB7CisgICAgICAgICAgICAgICAgICAgIC8qIE91dCBvZiBtZW1vcnkuICovCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhfbnVtX2xv
Y2tzX2hlbGQgPSAxOworICAgICAgICAgICAgICAgIHBhc19sb2NrKiBsb2Nrc19oZWxkW21heF9u
dW1fbG9ja3NfaGVsZF07CisgICAgICAgICAgICAgICAgc2l6ZV90IG51bV9sb2Nrc19oZWxkOwor
ICAgICAgICAgICAgICAgIGJvb2wgZGlkX2xvY2tfbG9jazsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgLyogQXQgdGhpcyBwb2ludCBub2JvZHkgYnV0IHVzIGNhbiAqaW5pdGlhdGUqIGFueXRo
aW5nIG9uIHRoaXMgcGFnZS4gQnV0IGl0J3MKLSAgICAgICAgICAgICAgIHBvc3NpYmxlIHRoYXQg
d2hvZXZlciBkZWNvbW1pdHRlZCB0aGlzIHBhZ2UgaXNuJ3QgYWN0dWFsbHkgZG9uZSBkZWNvbW1p
dHRpbmcKLSAgICAgICAgICAgICAgIHlldC4gU28gd2UgZ3JhYiB0aGUgY29tbWl0IGxvY2sgZm9y
IHRoaXMgcGFnZSB0byBlbnN1cmUgdGhhdCB3ZSBhcmUgdGhlIG9uZXMKLSAgICAgICAgICAgICAg
IHdobyBnZXQgdG8gZG8gaXQuIE5vdGUgdGhhdCBpZiB0aGUgaGVhcCBsb2NrIGlzIGhlbGQgdGhl
biB3ZSBoYXZlIHRvIGRvIHRoaXMKLSAgICAgICAgICAgICAgIHZpYSB0aGUgcGh5c2ljYWwgbWVt
b3J5IHRyYW5zYWN0aW9uLiBBbHNvIG5vdGUgdGhhdCBpdCdzIHZlcnkgdW5saWtlbHkgdGhhdAot
ICAgICAgICAgICAgICAgdGhlIGNvbW1pdCBsb2NrIGlzIGhlbGQgaGVyZSwgc2luY2Ugd2UgdHJ5
IHRvIG9ubHkgZGVjb21taXQgcGFnZXMgdGhhdCBhcmUKLSAgICAgICAgICAgICAgIHVubGlrZWx5
IHRvIGJlIHVzZWQgYW55dGltZSBzb29uLiAqLworICAgICAgICAgICAgICAgIC8qIEF0IHRoaXMg
cG9pbnQgbm9ib2R5IGJ1dCB1cyBjYW4gKmluaXRpYXRlKiBhbnl0aGluZyBvbiB0aGlzIHBhZ2Uu
IEJ1dCBpdCdzCisgICAgICAgICAgICAgICAgICAgcG9zc2libGUgdGhhdCB3aG9ldmVyIGRlY29t
bWl0dGVkIHRoaXMgcGFnZSBpc24ndCBhY3R1YWxseSBkb25lIGRlY29tbWl0dGluZworICAgICAg
ICAgICAgICAgICAgIHlldC4gU28gd2UgZ3JhYiB0aGUgY29tbWl0IGxvY2sgZm9yIHRoaXMgcGFn
ZSB0byBlbnN1cmUgdGhhdCB3ZSBhcmUgdGhlIG9uZXMKKyAgICAgICAgICAgICAgICAgICB3aG8g
Z2V0IHRvIGRvIGl0LiBOb3RlIHRoYXQgaWYgdGhlIGhlYXAgbG9jayBpcyBoZWxkIHRoZW4gd2Ug
aGF2ZSB0byBkbyB0aGlzCisgICAgICAgICAgICAgICAgICAgdmlhIHRoZSBwaHlzaWNhbCBtZW1v
cnkgdHJhbnNhY3Rpb24uIEFsc28gbm90ZSB0aGF0IGl0J3MgdmVyeSB1bmxpa2VseSB0aGF0Cisg
ICAgICAgICAgICAgICAgICAgdGhlIGNvbW1pdCBsb2NrIGlzIGhlbGQgaGVyZSwgc2luY2Ugd2Ug
dHJ5IHRvIG9ubHkgZGVjb21taXQgcGFnZXMgdGhhdCBhcmUKKyAgICAgICAgICAgICAgICAgICB1
bmxpa2VseSB0byBiZSB1c2VkIGFueXRpbWUgc29vbi4gKi8KICAgICAgICAgICAgIAotICAgICAg
ICAgICAgbnVtX2xvY2tzX2hlbGQgPSAwOwotICAgICAgICAgICAgZGlkX2xvY2tfbG9jayA9IGZh
bHNlOworICAgICAgICAgICAgICAgIG51bV9sb2Nrc19oZWxkID0gMDsKKyAgICAgICAgICAgICAg
ICBkaWRfbG9ja19sb2NrID0gZmFsc2U7CiAKLSAgICAgICAgICAgIC8qIFRoZSB1dGlsaXR5IGhl
YXAgZG9lcyBhbGwgY29tbWl0L2RlY29tbWl0IHVuZGVyIHRoZSBoZWFwIGxvY2ssIHNvIHdlIGRv
bid0IG5lZWQgdG8KLSAgICAgICAgICAgICAgIHBsYXkgYW55IGdhbWVzIHdpdGggdGhlIGNvbW1p
dCBsb2NrLiAgKi8KLSAgICAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19p
c191dGlsaXR5KHBhZ2VfY29uZmlnKSkKLSAgICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2Fz
c2VydF9oZWxkKCk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBQQVNfQVNT
RVJUKGhlYXBfbG9ja19ob2xkX21vZGUgPT0gcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2xvY2soJmV4Y2x1c2l2ZS0+Y29tbWl0X2xvY2spOwotICAgICAg
ICAgICAgICAgIGxvY2tzX2hlbGRbbnVtX2xvY2tzX2hlbGQrK10gPSAmZXhjbHVzaXZlLT5jb21t
aXRfbG9jazsKLSAgICAgICAgICAgICAgICBkaWRfbG9ja19sb2NrID0gdHJ1ZTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworICAgICAgICAgICAgICAg
IC8qIFRoZSB1dGlsaXR5IGhlYXAgZG9lcyBhbGwgY29tbWl0L2RlY29tbWl0IHVuZGVyIHRoZSBo
ZWFwIGxvY2ssIHNvIHdlIGRvbid0IG5lZWQgdG8KKyAgICAgICAgICAgICAgICAgICBwbGF5IGFu
eSBnYW1lcyB3aXRoIHRoZSBjb21taXQgbG9jay4gICovCisgICAgICAgICAgICAgICAgaWYgKHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKQorICAgICAg
ICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisgICAgICAgICAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoaGVhcF9sb2NrX2hvbGRf
bW9kZSA9PSBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisgICAgICAgICAgICAgICAgICAgIHBhc19s
b2NrX2xvY2soJmV4Y2x1c2l2ZS0+Y29tbWl0X2xvY2spOworICAgICAgICAgICAgICAgICAgICBs
b2Nrc19oZWxkW251bV9sb2Nrc19oZWxkKytdID0gJmV4Y2x1c2l2ZS0+Y29tbWl0X2xvY2s7Cisg
ICAgICAgICAgICAgICAgICAgIGRpZF9sb2NrX2xvY2sgPSB0cnVlOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKICAgICAgICAgICAgIAot
ICAgICAgICAgICAgUEFTX0FTU0VSVChudW1fbG9ja3NfaGVsZCA8PSBtYXhfbnVtX2xvY2tzX2hl
bGQpOworICAgICAgICAgICAgICAgIFBBU19BU1NFUlQobnVtX2xvY2tzX2hlbGQgPD0gbWF4X251
bV9sb2Nrc19oZWxkKTsKIAotICAgICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9jYW5fZG9fc2hhcmluZyhzaXplX2RpcmVjdG9yeV9iYXNlKSkgewotICAgICAgICAgICAgICAg
IHBhc19waHlzaWNhbF9wYWdlX3NoYXJpbmdfcG9vbF90YWtlX2Zvcl9wYWdlX2NvbmZpZygKLSAg
ICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUsCi0gICAgICAgICAg
ICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyLAotICAgICAgICAgICAg
ICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlLAotICAgICAgICAgICAgICAgICAgICBsb2Nrc19o
ZWxkLAotICAgICAgICAgICAgICAgICAgICBudW1fbG9ja3NfaGVsZCk7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9jYW5fZG9fc2hh
cmluZyhzaXplX2RpcmVjdG9yeV9iYXNlKSkgeworICAgICAgICAgICAgICAgICAgICBwYXNfcGh5
c2ljYWxfcGFnZV9zaGFyaW5nX3Bvb2xfdGFrZV9mb3JfcGFnZV9jb25maWcoCisgICAgICAgICAg
ICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxvY2tzX2hlbGQsCisgICAgICAgICAgICAgICAgICAgICAgICBudW1fbG9ja3NfaGVsZCk7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfcGFnZV9tYWxs
b2NfY29tbWl0KGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcuYmFzZS5wYWdl
X3NpemUpOwotICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAgICBwYXNf
bG9nKCJDcmVhdGluZyBwYWdlIGhlYWRlciB3aGVuIGNvbW1pdHRpbmcgZXhjbHVzaXZlIHBhZ2Us
IHZpZXcgPSAlcCwgIgotICAgICAgICAgICAgICAgICAgICAgICAgImJvdW5kYXJ5ID0gJXAuXG4i
LAotICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLCBleGNsdXNpdmUtPnBhZ2VfYm91
bmRhcnkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5jcmVh
dGVfcGFnZV9oZWFkZXIoCi0gICAgICAgICAgICAgICAgZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5
LAotICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICAgICAgICAg
IHBhc19wYWdlX21hbGxvY19jb21taXQoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2Nv
bmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvZygiQ3JlYXRpbmcgcGFnZSBoZWFkZXIgd2hlbiBjb21t
aXR0aW5nIGV4Y2x1c2l2ZSBwYWdlLCB2aWV3ID0gJXAsICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiYm91bmRhcnkgPSAlcC5cbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhjbHVzaXZlLCBleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcigKKyAg
ICAgICAgICAgICAgICAgICAgZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LAorICAgICAgICAgICAg
ICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAg
cGFzX2NvbXBpbGVyX2ZlbmNlKCk7Ci0gICAgICAgICAgICBpZiAoZGlkX2xvY2tfbG9jaykKLSAg
ICAgICAgICAgICAgICBwYXNfbG9ja191bmxvY2soJmV4Y2x1c2l2ZS0+Y29tbWl0X2xvY2spOwot
Ci0gICAgICAgICAgICBpZiAoUEFTX0RFQlVHX1NQRUNUUlVNX1VTRV9GT1JfQ09NTUlUKSB7Ci0g
ICAgICAgICAgICAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2Nr
X2hvbGRfbW9kZSk7Ci0gICAgICAgICAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVtX2FkZCgKLSAg
ICAgICAgICAgICAgICAgICAgc2l6ZV9kaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9kdW1wX2Zvcl9zcGVjdHJ1bSwKLSAgICAgICAgICAgICAgICAgICAgcGFn
ZV9jb25maWcuYmFzZS5wYWdlX3NpemUpOwotICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tf
dW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICAg
ICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgICAgICAgICAgICAgaWYgKGRpZF9sb2NrX2xv
Y2spCisgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX3VubG9jaygmZXhjbHVzaXZlLT5jb21t
aXRfbG9jayk7CisKKyAgICAgICAgICAgICAgICBpZiAoUEFTX0RFQlVHX1NQRUNUUlVNX1VTRV9G
T1JfQ09NTUlUKSB7CisgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25k
aXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgICAgICAgICAgICAgICAgICBwYXNf
ZGVidWdfc3BlY3RydW1fYWRkKAorICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV9kaXJlY3Rv
cnksIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2R1bXBfZm9yX3NwZWN0cnVtLAorICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUpOworICAgICAg
ICAgICAgICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9j
a19ob2xkX21vZGUpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAg
fQogICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QoCi0gICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeV91bmNoZWNrZWQoZXhjbHVz
aXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyksCi0gICAgICAgICAgICBpbmVsaWdpYmxl
X293bmluZ192aWV3LAotICAgICAgICAgICAgd2FzX3N0b2xlbiwKLSAgICAgICAgICAgIChwYXNf
c2VncmVnYXRlZF9wYWdlX2NvbmZpZyopcGFnZV9jb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIp
OwotCi0gICAgICAgIHBhc19sb2NrX2xvY2tfY29uZGl0aW9uYWxseSgmZXhjbHVzaXZlLT5vd25l
cnNoaXBfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgICAgIGV4Y2x1c2l2ZS0+b3du
ZXJzaGlwX2tpbmQgPQotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
b3duZXJzaGlwX2tpbmRfd2l0aF9vd25lZChleGNsdXNpdmUtPm93bmVyc2hpcF9raW5kLCB0cnVl
KTsKLSAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgIHBhc19sb2coInZpZXcgJXAg
aGFzIG93bmVyc2hpcCBraW5kID0gJXMgZHVlIHRvIGV4Y2x1c2l2ZSB3aWxsX3N0YXJ0X2FsbG9j
YXRpbmdcbiIsCi0gICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZSwKLSAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfb3duZXJzaGlwX2tpbmRfZ2V0X3N0
cmluZygKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1c2l2ZS0+b3duZXJzaGlwX2tpbmQp
KTsKLSAgICAgICAgfQotICAgICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgmZXhj
bHVzaXZlLT5vd25lcnNoaXBfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgfQorICAg
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25zdHJ1Y3QoCisgICAgICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9mb3JfYm91bmRhcnlfdW5jaGVja2VkKGV4Y2x1c2l2ZS0+cGFn
ZV9ib3VuZGFyeSwgcGFnZV9jb25maWcpLAorICAgICAgICAgICAgICAgIGluZWxpZ2libGVfb3du
aW5nX3ZpZXcsCisgICAgICAgICAgICAgICAgd2FzX3N0b2xlbiwKKyAgICAgICAgICAgICAgICAo
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcqKXBhZ2VfY29uZmlnLmJhc2UucGFnZV9jb25maWdf
cHRyKTsKIAotICAgIFBBU19URVNUSU5HX0FTU0VSVChleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnkp
OworICAgICAgICAgICAgcGFzX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KCZleGNsdXNpdmUtPm93
bmVyc2hpcF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgICAgIGV4Y2x1c2l2
ZS0+aXNfb3duZWQgPSB0cnVlOworICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJ2aWV3ICVwIGhhcyBpcyBvd25lZCA9IHRydWUgZHVlIHRvIGV4Y2x1
c2l2ZSB3aWxsX3N0YXJ0X2FsbG9jYXRpbmdcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBl
eGNsdXNpdmUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrX2Nv
bmRpdGlvbmFsbHkoJmV4Y2x1c2l2ZS0+b3duZXJzaGlwX2xvY2ssIGhlYXBfbG9ja19ob2xkX21v
ZGUpOworICAgICAgICB9CiAKLSAgICByZXR1cm4gdmlldzsKKyAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSk7CiAKLXBhcnRpYWxfdmlld19jYXNlOgot
ICAgIHBhcnRpYWwgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYXJ0aWFsKHZpZXcpOwotICAg
IAotICAgIHNpemVfZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnBhcnRpYWwtPmRpcmVjdG9yeSk7Ci0gICAg
c2l6ZV9kaXJlY3RvcnlfYmFzZSA9ICZzaXplX2RpcmVjdG9yeS0+YmFzZTsKLSAgICBoZWFwID0g
c2l6ZV9kaXJlY3RvcnktPmhlYXA7Ci0gICAgc2hhcmVkX3BhZ2VfZGlyZWN0b3J5ID0gcGFnZV9j
b25maWcuc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yKGhlYXAsIHNpemVfZGlyZWN0b3J5
KTsKLSAgICBzaGFyZWRfcGFnZV9kaXJlY3RvcnlfYmFzZSA9ICZzaGFyZWRfcGFnZV9kaXJlY3Rv
cnktPmJhc2U7Ci0gICAgaGVhcF9sb2NrX2hvbGRfbW9kZSA9IHBhc19zZWdyZWdhdGVkX3BhZ2Vf
Y29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpOwotCi0gICAgc2hhcmVkX3Zp
ZXcgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0cl9sb2FkKCZwYXJ0aWFs
LT5zaGFyZWRfdmlldyk7Ci0gICAgaWYgKCFzaGFyZWRfdmlldykgewotICAgICAgICAvKiBXZSBo
YXZlIGEgcHJpbW9yZGlhbCBwYXJ0aWFsIHZpZXchIExldCB0aGUgbG9jYWwgYWxsb2NhdG9yIHdv
cnJ5IGFib3V0IGl0LiBUaGVyZSdzCi0gICAgICAgICAgIG5vdGhpbmcgd2UgY2FuIGRvIHNpbmNl
IHdlIGRvbid0IHJlYWxseSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbi4gVGhpcyBwYXRoIGhhcyB0
byBkbwotICAgICAgICAgICB0aGlzIGNhcmVmdWwgZGFuY2Ugd2hlcmUgaXQgYXRvbWljYWxseSBw
aWNrcyBhIHNoYXJlZCB2aWV3IGFuZCBhbGxvY2F0ZXMgc29tZXRoaW5nCi0gICAgICAgICAgIGZy
b20gaXQsIGFuZCB0aGVuIHRoYXQgc29tZXRoaW5nIGhhcyB0byBiZSBpbW1lZGlhdGVseSBzaG92
ZWQgaW50byB0aGUgbG9jYWwKLSAgICAgICAgICAgYWxsb2NhdG9yLiAqLwogICAgICAgICByZXR1
cm4gdmlldzsKICAgICB9CisgICAgICAgIAorICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3X2tpbmQ6IHsKKyAgICAgICAgcGFydGlhbCA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0
X3BhcnRpYWwodmlldyk7CisgICAgCisgICAgICAgIHNpemVfZGlyZWN0b3J5ID0gcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmcGFydGlhbC0+
ZGlyZWN0b3J5KTsKKyAgICAgICAgc2l6ZV9kaXJlY3RvcnlfYmFzZSA9ICZzaXplX2RpcmVjdG9y
eS0+YmFzZTsKKyAgICAgICAgaGVhcCA9IHNpemVfZGlyZWN0b3J5LT5oZWFwOworICAgICAgICBz
aGFyZWRfcGFnZV9kaXJlY3RvcnkgPSBwYWdlX2NvbmZpZy5zaGFyZWRfcGFnZV9kaXJlY3Rvcnlf
c2VsZWN0b3IoaGVhcCwgc2l6ZV9kaXJlY3RvcnkpOworICAgICAgICBzaGFyZWRfcGFnZV9kaXJl
Y3RvcnlfYmFzZSA9ICZzaGFyZWRfcGFnZV9kaXJlY3RvcnktPmJhc2U7CisgICAgICAgIGhlYXBf
bG9ja19ob2xkX21vZGUgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19oZWFwX2xvY2tfaG9s
ZF9tb2RlKHBhZ2VfY29uZmlnKTsKIAotICAgIHBhc19sb2NrX2xvY2tfY29uZGl0aW9uYWxseSgm
c2hhcmVkX3ZpZXctPmNvbW1pdF9sb2NrLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAg
c2hhcmVkX3ZpZXcgPSBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0cl9sb2Fk
KCZwYXJ0aWFsLT5zaGFyZWRfdmlldyk7CisgICAgICAgIGlmICghc2hhcmVkX3ZpZXcpIHsKKyAg
ICAgICAgICAgIC8qIFdlIGhhdmUgYSBwcmltb3JkaWFsIHBhcnRpYWwgdmlldyEgTGV0IHRoZSBs
b2NhbCBhbGxvY2F0b3Igd29ycnkgYWJvdXQgaXQuIFRoZXJlJ3MKKyAgICAgICAgICAgICAgIG5v
dGhpbmcgd2UgY2FuIGRvIHNpbmNlIHdlIGRvbid0IHJlYWxseSBoYXZlIGVub3VnaCBpbmZvcm1h
dGlvbi4gVGhpcyBwYXRoIGhhcyB0byBkbworICAgICAgICAgICAgICAgdGhpcyBjYXJlZnVsIGRh
bmNlIHdoZXJlIGl0IGF0b21pY2FsbHkgcGlja3MgYSBzaGFyZWQgdmlldyBhbmQgYWxsb2NhdGVz
IHNvbWV0aGluZworICAgICAgICAgICAgICAgZnJvbSBpdCwgYW5kIHRoZW4gdGhhdCBzb21ldGhp
bmcgaGFzIHRvIGJlIGltbWVkaWF0ZWx5IHNob3ZlZCBpbnRvIHRoZSBsb2NhbAorICAgICAgICAg
ICAgICAgYWxsb2NhdG9yLiAqLworICAgICAgICAgICAgcmV0dXJuIHZpZXc7CisgICAgICAgIH0K
IAotICAgIHNoYXJlZF9oYW5kbGUgPSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19jb21taXRf
cGFnZV9pZl9uZWNlc3NhcnkoCi0gICAgICAgIHNoYXJlZF92aWV3LCBoZWFwLCBzaGFyZWRfcGFn
ZV9kaXJlY3RvcnksIHBhcnRpYWwsIHBhZ2VfY29uZmlnKTsKKyAgICAgICAgcGFzX2xvY2tfbG9j
a19jb25kaXRpb25hbGx5KCZzaGFyZWRfdmlldy0+Y29tbWl0X2xvY2ssIGhlYXBfbG9ja19ob2xk
X21vZGUpOwogCi0gICAgaWYgKCFzaGFyZWRfaGFuZGxlKSB7Ci0gICAgICAgIC8qIFRoaXMgbWVh
bnMgT09NICovCi0gICAgICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZzaGFyZWRf
dmlldy0+Y29tbWl0X2xvY2ssIGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgICAgICByZXR1cm4g
TlVMTDsKLSAgICB9CisgICAgICAgIHNoYXJlZF9oYW5kbGUgPSBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfdmlld19jb21taXRfcGFnZV9pZl9uZWNlc3NhcnkoCisgICAgICAgICAgICBzaGFyZWRfdmll
dywgaGVhcCwgc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LCBwYXJ0aWFsLCBwYWdlX2NvbmZpZyk7CisK
KyAgICAgICAgaWYgKCFzaGFyZWRfaGFuZGxlKSB7CisgICAgICAgICAgICAvKiBUaGlzIG1lYW5z
IE9PTSAqLworICAgICAgICAgICAgcGFzX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoJnNoYXJl
ZF92aWV3LT5jb21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgICAgICBy
ZXR1cm4gTlVMTDsKKyAgICAgICAgfQogCi0gICAgaWYgKCFwYXJ0aWFsLT5pc19hdHRhY2hlZF90
b19zaGFyZWRfaGFuZGxlKSB7Ci0gICAgICAgIHVuc2lnbmVkKiBmdWxsX2FsbG9jX2JpdHM7Ci0g
ICAgICAgIHVuc2lnbmVkIGJlZ2luX3dvcmRfaW5kZXg7Ci0gICAgICAgIHVuc2lnbmVkIGVuZF93
b3JkX2luZGV4OwotICAgICAgICB1bnNpZ25lZCB3b3JkX2luZGV4OwotICAgICAgICAKLSAgICAg
ICAgZnVsbF9hbGxvY19iaXRzID0gcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0cl9sb2Fk
X25vbl9udWxsKCZwYXJ0aWFsLT5hbGxvY19iaXRzKTsKLSAgICAgICAgCi0gICAgICAgIGJlZ2lu
X3dvcmRfaW5kZXggPSBwYXJ0aWFsLT5hbGxvY19iaXRzX29mZnNldDsKLSAgICAgICAgZW5kX3dv
cmRfaW5kZXggPSBiZWdpbl93b3JkX2luZGV4ICsgcGFydGlhbC0+YWxsb2NfYml0c19zaXplOwot
ICAgICAgICAKLSAgICAgICAgaWYgKHBhZ2VfY29uZmlnLnNoYXJpbmdfc2hpZnQgPT0gUEFTX0JJ
VFZFQ1RPUl9XT1JEX1NISUZUKSB7Ci0gICAgICAgICAgICBmb3IgKHdvcmRfaW5kZXggPSBiZWdp
bl93b3JkX2luZGV4OyB3b3JkX2luZGV4IDwgZW5kX3dvcmRfaW5kZXg7ICsrd29yZF9pbmRleCkg
ewotICAgICAgICAgICAgICAgIGlmIChmdWxsX2FsbG9jX2JpdHNbd29yZF9pbmRleF0pIHsKLSAg
ICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3X3B0cl9sb2FkKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaGFyZWRfaGFuZGxlLT5wYXJ0aWFsX3ZpZXdzICsgd29yZF9pbmRleCkpOwotICAgICAg
ICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdf
cHRyX3N0b3JlKAotICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVkX2hhbmRsZS0+cGFydGlh
bF92aWV3cyArIHdvcmRfaW5kZXgsIHBhcnRpYWwpOworICAgICAgICBpZiAoIXBhcnRpYWwtPmlz
X2F0dGFjaGVkX3RvX3NoYXJlZF9oYW5kbGUpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkKiBmdWxs
X2FsbG9jX2JpdHM7CisgICAgICAgICAgICB1bnNpZ25lZCBiZWdpbl93b3JkX2luZGV4OworICAg
ICAgICAgICAgdW5zaWduZWQgZW5kX3dvcmRfaW5kZXg7CisgICAgICAgICAgICB1bnNpZ25lZCB3
b3JkX2luZGV4OworICAgICAgICAKKyAgICAgICAgICAgIGZ1bGxfYWxsb2NfYml0cyA9IHBhc19j
b21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHJfbG9hZF9ub25fbnVsbCgmcGFydGlhbC0+YWxsb2Nf
Yml0cyk7CisgICAgICAgIAorICAgICAgICAgICAgYmVnaW5fd29yZF9pbmRleCA9IHBhcnRpYWwt
PmFsbG9jX2JpdHNfb2Zmc2V0OworICAgICAgICAgICAgZW5kX3dvcmRfaW5kZXggPSBiZWdpbl93
b3JkX2luZGV4ICsgcGFydGlhbC0+YWxsb2NfYml0c19zaXplOworICAgICAgICAKKyAgICAgICAg
ICAgIGlmIChwYWdlX2NvbmZpZy5zaGFyaW5nX3NoaWZ0ID09IFBBU19CSVRWRUNUT1JfV09SRF9T
SElGVCkgeworICAgICAgICAgICAgICAgIGZvciAod29yZF9pbmRleCA9IGJlZ2luX3dvcmRfaW5k
ZXg7IHdvcmRfaW5kZXggPCBlbmRfd29yZF9pbmRleDsgKyt3b3JkX2luZGV4KSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmIChmdWxsX2FsbG9jX2JpdHNbd29yZF9pbmRleF0pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoIXBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlld19wdHJfbG9hZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNoYXJlZF9oYW5kbGUtPnBhcnRpYWxfdmlld3MgKyB3b3JkX2luZGV4KSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXdfcHRyX3N0b3JlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZF9oYW5k
bGUtPnBhcnRpYWxfdmlld3MgKyB3b3JkX2luZGV4LCBwYXJ0aWFsKTsKKyAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGZvciAod29yZF9pbmRleCA9IGJlZ2luX3dvcmRfaW5kZXg7IHdvcmRf
aW5kZXggPCBlbmRfd29yZF9pbmRleDsgKyt3b3JkX2luZGV4KSB7Ci0gICAgICAgICAgICAgICAg
dW5zaWduZWQgZnVsbF9hbGxvY193b3JkOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBmb3IgKHdvcmRfaW5kZXggPSBiZWdpbl93b3JkX2luZGV4OyB3b3JkX2luZGV4IDwg
ZW5kX3dvcmRfaW5kZXg7ICsrd29yZF9pbmRleCkgeworICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBmdWxsX2FsbG9jX3dvcmQ7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ZnVsbF9hbGxvY193b3JkID0gZnVsbF9hbGxvY19iaXRzW3dvcmRfaW5kZXhdOwotICAgICAgICAg
ICAgICAgIGlmICghZnVsbF9hbGxvY193b3JkKQotICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgICAgICAgICAgZnVsbF9hbGxvY193b3JkID0gZnVsbF9hbGxvY19iaXRz
W3dvcmRfaW5kZXhdOworICAgICAgICAgICAgICAgICAgICBpZiAoIWZ1bGxfYWxsb2Nfd29yZCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld190ZWxsX3NoYXJlZF9oYW5k
bGVfZm9yX3dvcmRfZ2VuZXJhbF9jYXNlKAotICAgICAgICAgICAgICAgICAgICBwYXJ0aWFsLCBz
aGFyZWRfaGFuZGxlLCB3b3JkX2luZGV4LCBmdWxsX2FsbG9jX3dvcmQsIHBhZ2VfY29uZmlnLnNo
YXJpbmdfc2hpZnQpOworICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFs
X3ZpZXdfdGVsbF9zaGFyZWRfaGFuZGxlX2Zvcl93b3JkX2dlbmVyYWxfY2FzZSgKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHBhcnRpYWwsIHNoYXJlZF9oYW5kbGUsIHdvcmRfaW5kZXgsIGZ1bGxf
YWxsb2Nfd29yZCwgcGFnZV9jb25maWcuc2hhcmluZ19zaGlmdCk7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQotICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBwYXNfbG9ja19s
b2NrKCZzaGFyZWRfdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgICAgICBwYXJ0aWFsLT5pc19h
dHRhY2hlZF90b19zaGFyZWRfaGFuZGxlID0gdHJ1ZTsKLSAgICAgICAgcGFzX2xvY2tfdW5sb2Nr
KCZzaGFyZWRfdmlldy0+b3duZXJzaGlwX2xvY2spOwotICAgIH0KKyAgICAgICAgICAgIHBhc19s
b2NrX2xvY2soJnNoYXJlZF92aWV3LT5vd25lcnNoaXBfbG9jayk7CisgICAgICAgICAgICBwYXJ0
aWFsLT5pc19hdHRhY2hlZF90b19zaGFyZWRfaGFuZGxlID0gdHJ1ZTsKKyAgICAgICAgICAgIHBh
c19sb2NrX3VubG9jaygmc2hhcmVkX3ZpZXctPm93bmVyc2hpcF9sb2NrKTsKKyAgICAgICAgfQog
Ci0gICAgaWYgKHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplID4gcGFnZV9jb25maWcuYmFzZS5n
cmFudWxlX3NpemUpIHsKLSAgICAgICAgLyogV2UgYWx3YXlzIG1hbmFnZSBwYXJ0aWFsIGNvbW1p
dCBvZiBtZWRpdW0gcGFnZXMgdW5kZXIgdGhlIGNvbW1pdCBsb2NrLiBPdGhlcndpc2UsCi0gICAg
ICAgICAgIG11bHRpcGxlIHJ1bnMgb2YgdGhpcyBmdW5jdGlvbiBjb3VsZCBpbnRlcmxlYXZlIGlu
IHdlaXJkIHdheXMuICovCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2UqIHBhZ2U7Ci0gICAg
ICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7Ci0KLSAgICAgICAgcGFnZSA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfZm9yX2JvdW5kYXJ5KHNoYXJlZF9oYW5kbGUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29u
ZmlnKTsKLSAgICAgICAgaGVsZF9sb2NrID0gTlVMTDsKLSAgICAgICAgCi0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX3BhZ2Vfc3dpdGNoX2xvY2socGFnZSwgJmhlbGRfbG9jaywgcGFnZV9jb25maWcp
OwotICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbW1pdF9mdWxseSgKLSAgICAgICAgICAg
IHBhZ2UsICZoZWxkX2xvY2ssIHBhc19jb21taXRfZnVsbHlfaG9sZGluZ19wYWdlX2FuZF9jb21t
aXRfbG9ja3MpOwotICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7Ci0g
ICAgfQorICAgICAgICBpZiAocGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUgPiBwYWdlX2NvbmZp
Zy5iYXNlLmdyYW51bGVfc2l6ZSkgeworICAgICAgICAgICAgLyogV2UgYWx3YXlzIG1hbmFnZSBw
YXJ0aWFsIGNvbW1pdCBvZiBtZWRpdW0gcGFnZXMgdW5kZXIgdGhlIGNvbW1pdCBsb2NrLiBPdGhl
cndpc2UsCisgICAgICAgICAgICAgICBtdWx0aXBsZSBydW5zIG9mIHRoaXMgZnVuY3Rpb24gY291
bGQgaW50ZXJsZWF2ZSBpbiB3ZWlyZCB3YXlzLiAqLworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfcGFnZSogcGFnZTsKKyAgICAgICAgICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7CisKKyAgICAg
ICAgICAgIHBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Zvcl9ib3VuZGFyeShzaGFyZWRfaGFu
ZGxlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZyk7CisgICAgICAgICAgICBoZWxkX2xvY2sg
PSBOVUxMOworICAgICAgICAKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2Vfc3dpdGNo
X2xvY2socGFnZSwgJmhlbGRfbG9jaywgcGFnZV9jb25maWcpOworICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb21taXRfZnVsbHkoCisgICAgICAgICAgICAgICAgcGFnZSwgJmhlbGRf
bG9jaywgcGFzX2NvbW1pdF9mdWxseV9ob2xkaW5nX3BhZ2VfYW5kX2NvbW1pdF9sb2Nrcyk7Cisg
ICAgICAgICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVMTCk7CisgICAgICAgIH0K
IAotICAgIC8qIEF0IHRoaXMgcG9pbnQgdGhlIHNoYXJlZCBoYW5kbGUga25vd3MgYWJvdXQgdGhp
cyBwYXJ0aWFsIHZpZXcgYW5kIHRoaXMgcGFydGlhbCB2aWV3Ci0gICAgICAgaXMgaW5lbGlnaWJs
ZS4gVGhpcyBhY3RzIGFzIGEgaG9sZCBvbiB0aGUgc2hhcmVkIHZpZXc6IGV2ZW4gaWYgd2UgcmVs
ZWFzZSB0aGUgY29tbWl0Ci0gICAgICAgbG9jaywgdGhhdCBzaGFyZWQgdmlldyBjYW5ub3QgYmUg
ZGVjb21taXR0ZWQsIGV2ZW4gdGhvdWdoIGl0IG1heSBiZSBlbXB0eS4gKi8KKyAgICAgICAgLyog
QXQgdGhpcyBwb2ludCB0aGUgc2hhcmVkIGhhbmRsZSBrbm93cyBhYm91dCB0aGlzIHBhcnRpYWwg
dmlldyBhbmQgdGhpcyBwYXJ0aWFsIHZpZXcKKyAgICAgICAgICAgaXMgaW5lbGlnaWJsZS4gVGhp
cyBhY3RzIGFzIGEgaG9sZCBvbiB0aGUgc2hhcmVkIHZpZXc6IGV2ZW4gaWYgd2UgcmVsZWFzZSB0
aGUgY29tbWl0CisgICAgICAgICAgIGxvY2ssIHRoYXQgc2hhcmVkIHZpZXcgY2Fubm90IGJlIGRl
Y29tbWl0dGVkLCBldmVuIHRob3VnaCBpdCBtYXkgYmUgZW1wdHkuICovCiAKLSAgICBwYXNfbG9j
a191bmxvY2tfY29uZGl0aW9uYWxseSgmc2hhcmVkX3ZpZXctPmNvbW1pdF9sb2NrLCBoZWFwX2xv
Y2tfaG9sZF9tb2RlKTsKKyAgICAgICAgcGFzX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoJnNo
YXJlZF92aWV3LT5jb21taXRfbG9jaywgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKLSAgICByZXR1
cm4gdmlldzsKKyAgICAgICAgcmV0dXJuIHZpZXc7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAg
ICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICAgICAgcmV0dXJu
IE5VTEw7CisgICAgfQogfQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZApAQCAtMzk0
LDEzICszMjcsOCBAQCBwYXNfc2VncmVnYXRlZF92aWV3X2RpZF9zdG9wX2FsbG9jYXRpbmcoCiB7
CiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCi0gICAgcGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIGV4Y2x1c2l2ZTsKLSAgICBwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnkqIG93bmluZ19kaXJlY3Rvcnk7Ci0gICAgdW5zaWduZWQgaW5kZXhfaW5fb3duaW5nOwog
ICAgIGJvb2wgc2hvdWxkX25vdGlmeV9lbGlnaWJpbGl0eTsKICAgICBib29sIHNob3VsZF9ub3Rp
ZnlfZW1wdGluZXNzOwotICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5Owot
ICAgIHVuc2lnbmVkIHZpZXdfaW5kZXg7CiAKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFz
X2xvZygiRGlkIHN0b3AgYWxsb2NhdGluZyBpbiB2aWV3ICVwLCBwYWdlICVwLlxuIiwgdmlldywg
cGFnZSk7CkBAIC00MDgsMzEgKzMzNiwzNCBAQCBwYXNfc2VncmVnYXRlZF92aWV3X2RpZF9zdG9w
X2FsbG9jYXRpbmcoCiAgICAgc3dpdGNoIChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZp
ZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOiB7Cisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBleGNsdXNpdmU7CisgICAgICAg
IAogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIkl0J3MgZXhjbHVz
aXZlLlxuIik7CiAgICAgICAgIGV4Y2x1c2l2ZSA9IChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldyopcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOwotICAgICAgICBvd25pbmdf
ZGlyZWN0b3J5ID0KLSAgICAgICAgICAgICZwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2dsb2JhbF9z
aXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmZXhjbHVzaXZlLT5kaXJlY3RvcnkpLT5i
YXNlOwotICAgICAgICBpbmRleF9pbl9vd25pbmcgPSBleGNsdXNpdmUtPmluZGV4OwotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2lu
ZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlhc2luZ192aWV3X2tpbmQ6
IHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3KiBiaWFzaW5nOwotICAgICAg
ICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHBhc19sb2coIkl0J3MgYmlhc2luZy5cbiIpOwot
ICAgICAgICBiaWFzaW5nID0gKHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldyopcGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfcHRyKHZpZXcpOwotICAgICAgICBleGNsdXNpdmUgPSBwYXNfY29tcGFj
dF9hdG9taWNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfbG9hZF9ub25fbnVsbCgmYmlh
c2luZy0+ZXhjbHVzaXZlKTsKLSAgICAgICAgb3duaW5nX2RpcmVjdG9yeSA9Ci0gICAgICAgICAg
ICAmcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25f
bnVsbCgmYmlhc2luZy0+ZGlyZWN0b3J5KS0+YmFzZTsKLSAgICAgICAgaW5kZXhfaW5fb3duaW5n
ID0gYmlhc2luZy0+aW5kZXg7Ci0gICAgICAgIGJyZWFrOworCisgICAgICAgIHNob3VsZF9ub3Rp
ZnlfZWxpZ2liaWxpdHkgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmIChwYWdlLT5lbGln
aWJpbGl0eV9ub3RpZmljYXRpb25faGFzX2JlZW5fZGVmZXJyZWQpIHsKKyAgICAgICAgICAgIGlm
ICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIkVsaWdpYmlsaXR5IG5vdGlmaWNh
dGlvbiBoYXMgYmVlbiBkZWZlcnJlZC5cbiIpOworICAgICAgICAgICAgcGFnZS0+ZWxpZ2liaWxp
dHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2RlZmVycmVkID0gZmFsc2U7CisgICAgICAgICAgICBz
aG91bGRfbm90aWZ5X2VsaWdpYmlsaXR5ID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIk5vIGRlZmVycmVk
IGVsaWdpYmlsaXR5IG5vdGlmaWNhdGlvbi5cbiIpOworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19kaWRfc3RvcF9hbGxvY2F0aW5nKAor
ICAgICAgICAgICAgZXhjbHVzaXZlLCBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X3B0cl9sb2FkX25vbl9udWxsKCZleGNsdXNpdmUtPmRpcmVjdG9yeSksCisgICAgICAgICAg
ICBwYWdlLCBwYWdlX2NvbmZpZywgc2hvdWxkX25vdGlmeV9lbGlnaWJpbGl0eSk7CisgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2lu
ZDogewogICAgICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqIHBhcnRpYWxfdmlldzsK
ICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHNoYXJlZF92aWV3OwogICAgICAg
ICBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlKiBzaGFyZWRfaGFuZGxlOwotICAgICAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVfZGlyZWN0b3J5OworICAg
ICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3Rvcnk7CiAgICAg
ICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogc2l6ZV9kaXJlY3RvcnlfYmFzZTsKICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBzaGFyZWRfcGFnZV9kaXJl
Y3Rvcnk7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeSogc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5X2Jhc2U7CkBAIC00NDUsNyArMzc2LDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19kaWRf
c3RvcF9hbGxvY2F0aW5nKAogICAgICAgICAKICAgICAgICAgc2hhcmVkX3ZpZXcgPSBwYXNfY29t
cGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0cl9sb2FkX25vbl9udWxsKCZwYXJ0aWFsX3Zp
ZXctPnNoYXJlZF92aWV3KTsKICAgICAgICAgc2l6ZV9kaXJlY3RvcnkgPQotICAgICAgICAgICAg
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoJnBhcnRpYWxfdmlldy0+ZGlyZWN0b3J5KTsKKyAgICAgICAgICAgIHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoJnBhcnRpYWxfdmll
dy0+ZGlyZWN0b3J5KTsKICAgICAgICAgc2l6ZV9kaXJlY3RvcnlfYmFzZSA9ICZzaXplX2RpcmVj
dG9yeS0+YmFzZTsKICAgICAgICAgc2hhcmVkX2hhbmRsZSA9IHBhc191bndyYXBfc2hhcmVkX2hh
bmRsZShzaGFyZWRfdmlldy0+c2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnKTsK
QEAgLTUxMiw1NCArNDQzLDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19kaWRfc3RvcF9hbGxvY2F0
aW5nKAogICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBkaXJlY3RvcnkgPSAmcGFzX2NvbXBhY3Rfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoJmV4Y2x1c2l2ZS0+ZGlyZWN0b3J5
KS0+YmFzZTsKLSAgICB2aWV3X2luZGV4ID0gZXhjbHVzaXZlLT5pbmRleDsKLQotICAgIGlmICh2
ZXJib3NlKQotICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0aW9uIGluIGV4Y2x1c2l2
ZSAlcC8lcC5cbiIsIGV4Y2x1c2l2ZSwgcGFnZSk7Ci0KLSAgICBpZiAoIXBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2lzX3V0aWxpdHkocGFnZV9jb25maWcpKQotICAgICAgICBwYXNfbG9ja190
ZXN0aW5nX2Fzc2VydF9oZWxkKHBhZ2UtPmxvY2tfcHRyKTsKLSAgICBQQVNfVEVTVElOR19BU1NF
UlQocGFnZS0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKTsKLSAgICAKLSAgICBzaG91bGRfbm90
aWZ5X2VsaWdpYmlsaXR5ID0gZmFsc2U7Ci0KLSAgICBzaG91bGRfbm90aWZ5X2VtcHRpbmVzcyA9
IHBhc19zZWdyZWdhdGVkX3BhZ2VfcXVhbGlmaWVzX2Zvcl9kZWNvbW1pdCgKLSAgICAgICAgcGFn
ZSwgcGFnZV9jb25maWcpOwotCi0gICAgaWYgKHBhZ2UtPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlv
bl9oYXNfYmVlbl9kZWZlcnJlZCkgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
IHBhc19sb2coIkVsaWdpYmlsaXR5IG5vdGlmaWNhdGlvbiBoYXMgYmVlbiBkZWZlcnJlZC5cbiIp
OwotICAgICAgICBwYWdlLT5lbGlnaWJpbGl0eV9ub3RpZmljYXRpb25faGFzX2JlZW5fZGVmZXJy
ZWQgPSBmYWxzZTsKLSAgICAgICAgc2hvdWxkX25vdGlmeV9lbGlnaWJpbGl0eSA9IHRydWU7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICBwYXNfbG9nKCJO
byBkZWZlcnJlZCBlbGlnaWJpbGl0eSBub3RpZmljYXRpb24uXG4iKTsKLSAgICB9Ci0KLSAgICBw
YWdlLT5pc19pbl91c2VfZm9yX2FsbG9jYXRpb24gPSBmYWxzZTsKLSAgICAKLSAgICBpZiAoc2hv
dWxkX25vdGlmeV9lbGlnaWJpbGl0eSkgewotICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAg
ICAgIHBhc19sb2coIlRlbGxpbmcgZGlyZWN0b3J5IGFib3V0IGRlZmVycmVkIGVsaWdpYmlsaXR5
LlxuIik7Ci0KLSAgICAgICAgLyogUGFnZSBtdXN0IGtub3cgdGhhdCB3ZSBhcmUgZWxpZ2libGUg
Zmlyc3QuICovCi0gICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfc2VncmVnYXRlZF92aWV3
X2lzX2VsaWdpYmxlX2tpbmQocGFnZS0+b3duZXIpKTsKLSAgICAgICAgCi0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoCi0g
ICAgICAgICAgICBvd25pbmdfZGlyZWN0b3J5LAotICAgICAgICAgICAgaW5kZXhfaW5fb3duaW5n
KTsKLSAgICB9Ci0KLSAgICAvKiBJdCdzIGltcG9ydGFudCB0byBub3RpZnkgZW1wdGluZXNzIGxh
c3QsIHNvIHRoYXQgd2UgbmV2ZXIgZmluZCBvdXRzZWx2ZXMgaW4gYSBjYXNlIHdoZXJlIHRoZQot
ICAgICAgIHNjYXZlbmdlciB0YWtlcyB0aGUgZW1wdHkgYml0LCBjYW5ub3QgdGFrZSB0aGUgZWxp
Z2libGUgYml0LCBhbmQgdGhpcyBjb2RlIGhhZCBhbHJlYWR5IHNldCB0aGUKLSAgICAgICBlbXB0
eSBiaXQgYnV0IG5vdCB0aGUgZWxpZ2libGUgYml0LiAqLwotICAgIGlmIChzaG91bGRfbm90aWZ5
X2VtcHRpbmVzcykgewotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19kaWRf
YmVjb21lX2VtcHR5X2F0X2luZGV4KAotICAgICAgICAgICAgZGlyZWN0b3J5LAotICAgICAgICAg
ICAgdmlld19pbmRleCk7Ci0gICAgfQogfQogCiBQQVNfRU5EX0VYVEVSTl9DOwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19pbmxpbmVz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pbmxpbmVzLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfaW5saW5lcy5oCShub25l
eGlzdGVudCkKQEAgLTEsNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMC0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX1NFR1JFR0FURURfVklFV19JTkxJTkVT
X0gKLSNkZWZpbmUgUEFTX1NFR1JFR0FURURfVklFV19JTkxJTkVTX0gKLQotI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX2JpYXNpbmdfdmlldy5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3Zp
ZXcuaCIKLQotUEFTX0JFR0lOX0VYVEVSTl9DOwotCi1zdGF0aWMgaW5saW5lIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3KiBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9leGNsdXNpdmUocGFz
X3NlZ3JlZ2F0ZWRfdmlldyB2aWV3KQotewotICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lz
X3NvbWVfZXhjbHVzaXZlKHZpZXcpKQotICAgICAgICByZXR1cm4gKHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92aWV3KilwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wdHIodmlldyk7Ci0gICAgcmV0
dXJuIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9sb2Fk
KAotICAgICAgICAmKChwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXcqKXBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X3B0cih2aWV3KSktPmV4Y2x1c2l2ZSk7Ci19Ci0KLVBBU19FTkRfRVhURVJOX0M7
Ci0KLSNlbmRpZiAvKiBQQVNfU0VHUkVHQVRFRF9WSUVXX0lOTElORVNfSCAqLwotCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2tpbmQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF92aWV3X2tpbmQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDE5ICszMiwxMyBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAKIGVudW0gcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19raW5kIHsKICAgICBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19r
aW5kLAotICAgIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kLCAvKiBJdCdzIHNwZWNp
YWwgdGhhdCBleGNsdXNpdmUgYW5kIGJpYXNpbmcgY29tZSBmaXJzdCwgc2VlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9p
c19lbGlnaWJpbGUoKSwgYmVsb3cuICovCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGlnaWJsZV9l
eGNsdXNpdmVfdmlld19raW5kLCAvKiBSZWFsbHkgdGhlIHNhbWUgdHlwZSBhcyBleGNsdXNpdmVf
dmlldywgYnV0IHRoaXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxldHMgdXMgdXNlIHRoZSBraW5kIGJpdHMgb2YgYSB2aWV3IHRvIHNheSBp
ZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZWxpZ2liaWxpdHkgaGFzIGJlZW4gbm90ZWQuICovCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGln
aWJsZV9iaWFzaW5nX3ZpZXdfa2luZCwgLyogTGlrZSBpbmVsaWdpYmxlX2V4Y2x1c2l2ZSwgYnV0
IGZvciBiaWFzaW5nLiBJdCdzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3BlY2lhbCB0aGF0IHRoaXMgaXMgd2hlcmUgdGhpcyBpcywgc2VlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19raW5kX2lzX2V4Y2x1c2l2ZV9pc2goKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWxvdy4gKi8KICAgICBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfdmlld19raW5kLAogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5k
bGVfa2luZCwKICAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfa2luZCwKLSAgICBwYXNf
c2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kCisgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfdmlld19raW5kCiB9OwogCiB0eXBlZGVmIGVudW0gcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19raW5kIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZDsKQEAgLTU3LDE2ICs1
MSwxMyBAQCBzdGF0aWMgaW5saW5lIGNoYXIgcGFzX3NlZ3JlZ2F0ZWRfdmlld19rCiAgICAgY2Fz
ZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3Jl
Z2F0ZWRfaW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOgogICAgICAgICByZXR1cm4gJ0Un
OwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfYmlhc2luZ192aWV3X2tpbmQ6Ci0gICAgY2FzZSBw
YXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOgotICAgICAgICByZXR1
cm4gJ0InOwogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfa2luZDoKICAgICAg
ICAgcmV0dXJuICdTJzsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGVfa2lu
ZDoKICAgICAgICAgcmV0dXJuICdIJzsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlld19raW5kOgogICAgICAgICByZXR1cm4gJ1AnOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDoKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X3ZpZXdfa2luZDoKICAgICAgICAgcmV0dXJuICdTJzsKICAgICB9CiAg
ICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwpAQCAtODAsMzggKzcxLDIy
IEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFzX3NlZ3JlZ2F0ZWQKICAgICAgICAgcmV0
dXJuICJleGNsdXNpdmVfdmlldyI7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxl
X2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgICAgIHJldHVybiAiaW5lbGlnaWJsZV9leGNsdXNp
dmVfdmlldyI7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX3ZpZXdfa2luZDoKLSAg
ICAgICAgcmV0dXJuICJiaWFzaW5nX3ZpZXciOwotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5l
bGlnaWJsZV9iaWFzaW5nX3ZpZXdfa2luZDoKLSAgICAgICAgcmV0dXJuICJpbmVsaWdpYmxlX2Jp
YXNpbmdfdmlldyI7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5kOgog
ICAgICAgICByZXR1cm4gInNoYXJlZF92aWV3IjsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3No
YXJlZF9oYW5kbGVfa2luZDoKICAgICAgICAgcmV0dXJuICJzaGFyZWRfaGFuZGxlIjsKICAgICBj
YXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19raW5kOgogICAgICAgICByZXR1cm4gInBh
cnRpYWxfdmlldyI7Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfdmlld19raW5kOgotICAgICAgICByZXR1cm4gImdsb2JhbF9zaXplX2RpcmVjdG9yeSI7Cisg
ICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2tpbmQ6CisgICAgICAg
IHJldHVybiAic2l6ZV9kaXJlY3RvcnkiOwogICAgIH0KICAgICBQQVNfQVNTRVJUKCEiU2hvdWxk
IG5vdCBiZSByZWFjaGVkIik7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
Ym9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfZWxpZ2libGUocGFzX3NlZ3JlZ2F0ZWRf
dmlld19raW5kIGtpbmQpCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19r
aW5kX2lzX3NvbWVfZXhjbHVzaXZlKHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZCBraW5kKQogewot
ICAgIHJldHVybiBraW5kIDw9IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfdmlld19raW5kOwotfQot
Ci0vKiBJcyB0aGlzIGVpdGhlciBleGNsdXNpdmUgb3IgYmlhc2luZz8gKi8KLXN0YXRpYyBpbmxp
bmUgYm9vbCBwYXNfc2VncmVnYXRlZF92aWV3X2tpbmRfaXNfZXhjbHVzaXZlX2lzaChwYXNfc2Vn
cmVnYXRlZF92aWV3X2tpbmQga2luZCkKLXsKLSAgICByZXR1cm4ga2luZCA8PSBwYXNfc2VncmVn
YXRlZF9pbmVsaWdpYmxlX2JpYXNpbmdfdmlld19raW5kOwotfQotCi1zdGF0aWMgaW5saW5lIGJv
b2wgcGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2lzX2luZWxpZ2libGUocGFzX3NlZ3JlZ2F0ZWRf
dmlld19raW5kIGtpbmQpCi17Ci0gICAgcmV0dXJuIHBhc19zZWdyZWdhdGVkX3ZpZXdfa2luZF9p
c19leGNsdXNpdmVfaXNoKGtpbmQpCi0gICAgICAgICYmICFwYXNfc2VncmVnYXRlZF92aWV3X2tp
bmRfaXNfZWxpZ2libGUoa2luZCk7CisgICAgcmV0dXJuIGtpbmQgPD0gcGFzX3NlZ3JlZ2F0ZWRf
aW5lbGlnaWJsZV9leGNsdXNpdmVfdmlld19raW5kOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
cGFzX3NlZ3JlZ2F0ZWRfdmlld19raW5kX2Nhbl9iZWNvbWVfZW1wdHkocGFzX3NlZ3JlZ2F0ZWRf
dmlld19raW5kIGtpbmQpCkBAIC0xMTksMTQgKzk0LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBw
YXNfc2VncmVnYXRlZF92aWV3X2sKICAgICBzd2l0Y2ggKGtpbmQpIHsKICAgICBjYXNlIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9p
bmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9i
aWFzaW5nX3ZpZXdfa2luZDoKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfYmlh
c2luZ192aWV3X2tpbmQ6CiAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19raW5k
OgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlld19raW5kOgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgY2FzZSBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfaGFuZGxlX2tpbmQ6Ci0gICAgY2FzZSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3Rvcnlfdmlld19raW5kOgorICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3Rvcnlfdmlld19raW5kOgogICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFj
aGVkIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2tpcF9saXN0LmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NraXBfbGlzdC5jCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2tpcF9saXN0LmMJ
KHdvcmtpbmcgY29weSkKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCogcGFzX3NraXBfbGlzdF9ub2Rl
X2FsbG9jYXRlKHNpemVfdAogICAgIGlmICghcmFuZG9tKQogICAgICAgICBoZWlnaHQgPSAzMzsK
ICAgICBlbHNlCi0gICAgICAgIGhlaWdodCA9IF9fYnVpbHRpbl9jbHoocmFuZG9tKSArIDE7Cisg
ICAgICAgIGhlaWdodCA9ICh1bnNpZ25lZClfX2J1aWx0aW5fY2x6KHJhbmRvbSkgKyAxdTsKIAog
ICAgIHJldHVybiBwYXNfc2tpcF9saXN0X25vZGVfYWxsb2NhdGVfd2l0aF9oZWlnaHQob2Zmc2V0
X29mX3NraXBfbGlzdF9ub2RlLCBoZWlnaHQpOwogfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1
c19yZXBvcnRlci5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw5ICszMiw3IEBACiAjaW5jbHVkZSAi
cGFzX2FsbF9oZWFwcy5oIgogI2luY2x1ZGUgInBhc19hbGxfc2hhcmVkX3BhZ2VfZGlyZWN0b3Jp
ZXMuaCIKICNpbmNsdWRlICJwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmgiCi0jaW5jbHVk
ZSAicGFzX2JpYXNpbmdfZGlyZWN0b3J5X2lubGluZXMuaCIKLSNpbmNsdWRlICJwYXNfYml0Zml0
X2JpYXNpbmdfZGlyZWN0b3J5LmgiCi0jaW5jbHVkZSAicGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0
b3J5LmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNf
Yml0Zml0X2hlYXAuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3NpemVfY2xhc3MuaCIKICNpbmNs
dWRlICJwYXNfYml0Zml0X3ZpZXcuaCIKQEAgLTUwLDggKzQ4LDcgQEAKICNpbmNsdWRlICJwYXNf
bGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCiAjaW5jbHVk
ZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfYmlh
c2luZ19kaXJlY3RvcnkuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9k
aXJlY3RvcnlfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwLmgiCiAjaW5jbHVk
ZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKQEAgLTEzOCwyNCArMTM1LDYgQEAgc3RhdGlj
IHZvaWQgcmVwb3J0X2JpdGZpdF9kaXJlY3RvcnlfY29udAogCiAgICAgICAgIG1heF9mcmVlID0g
cGFzX2JpdGZpdF9kaXJlY3RvcnlfZ2V0X21heF9mcmVlKGRpcmVjdG9yeSwgaW5kZXgpOwogCi0g
ICAgICAgIHN3aXRjaCAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICBjYXNl
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9raW5kOiB7Ci0gICAgICAgICAgICBwYXNfYml0
Zml0X3ZpZXcqIHZpZXc7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0
Zml0X2RpcmVjdG9yeV9nZXRfdmlldyhkaXJlY3RvcnksIGluZGV4KTsKLSAgICAgICAgICAgIFBB
U19BU1NFUlQodmlldyk7Ci0KLSAgICAgICAgICAgIGlmICghcGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHJfaXNfbnVsbCgmdmlldy0+Ymlhc2luZ19kaXJlY3Rv
cnkpKSB7Ci0gICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiYiIpOwot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIH0KLQotICAgICAgICBjYXNlIHBhc19iaXRmaXRfYmlhc2luZ19kaXJlY3Rv
cnlfa2luZDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAg
ICBpZiAobWF4X2ZyZWUgPT0gUEFTX0JJVEZJVF9NQVhfRlJFRV9FTVBUWSkKICAgICAgICAgICAg
IHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIkUiKTsKICAgICAgICAgZWxzZQpAQCAtMTY1LDU2
ICsxNDQsMTYgQEAgc3RhdGljIHZvaWQgcmVwb3J0X2JpdGZpdF9kaXJlY3RvcnlfY29udAogICAg
IAogICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICBFbXB0eSAoYml0KTogIiwgcHJl
Zml4KTsKICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfYml0Zml0X2RpcmVjdG9yeV9z
aXplKGRpcmVjdG9yeSk7ICsraW5kZXgpIHsKLSAgICAgICAgc3dpdGNoIChkaXJlY3RvcnktPmRp
cmVjdG9yeV9raW5kKSB7Ci0gICAgICAgIGNhc2UgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5
X2tpbmQ6IHsKLSAgICAgICAgICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFs
X2RpcmVjdG9yeTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9
IChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIGlmIChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X2VtcHR5
X2JpdF9hdF9pbmRleChnbG9iYWxfZGlyZWN0b3J5LCBpbmRleCkpCi0gICAgICAgICAgICAgICAg
cGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAieCIpOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAiKTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5X2tpbmQ6IHsKLSAgICAgICAgICAgIHBhc19iaXRmaXRfdmlldyogdmlldzsKLSAgICAgICAg
ICAgIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZ2xvYmFsX2RpcmVjdG9yeTsKLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfZGlyZWN0b3J5X2dldF92aWV3
KGRpcmVjdG9yeSwgaW5kZXgpOwotICAgICAgICAgICAgaWYgKCF2aWV3KSB7Ci0gICAgICAgICAg
ICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBnbG9iYWxfZGlyZWN0b3J5ID0K
LSAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeV9wdHJf
bG9hZF9ub25fbnVsbCgmdmlldy0+Z2xvYmFsX2RpcmVjdG9yeSk7Ci0KLSAgICAgICAgICAgIGlm
IChwYXNfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleCgKLSAg
ICAgICAgICAgICAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSwgdmlldy0+aW5kZXhfaW5fZ2xvYmFs
KSkKLSAgICAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAi
ICIpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gfQorICAgICAgICBpZiAocGFzX2Jp
dGZpdF9kaXJlY3RvcnlfZ2V0X2VtcHR5X2JpdF9hdF9pbmRleChkaXJlY3RvcnksIGluZGV4KSkK
KyAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIngiKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwogICAgIH0KICAg
ICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogICAgIAotICAgIHN3aXRjaCAoZGly
ZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAgIGNhc2UgcGFzX2JpdGZpdF9nbG9iYWxfZGly
ZWN0b3J5X2tpbmQ6IHsKLSAgICAgICAgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KiBnbG9i
YWxfZGlyZWN0b3J5OwotICAgICAgICAKLSAgICAgICAgZ2xvYmFsX2RpcmVjdG9yeSA9IChwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqKWRpcmVjdG9yeTsKLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiJXMgTGFzdCBFbXB0eSsxOiAiLCBwcmVm
aXgpOwotICAgICAgICBkdW1wX2Fycm93KHN0cmVhbSwgKHVpbnRwdHJfdClnbG9iYWxfZGlyZWN0
b3J5LT5sYXN0X2VtcHR5X3BsdXNfb25lLnZhbHVlKTsKLSAgICAgICAgcGFzX3N0cmVhbV9wcmlu
dGYoc3RyZWFtLCAiXG4iKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgcGFzX2Jp
dGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBicmVhazsKLSAgICB9CisgICAg
cGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiJXMgTGFzdCBFbXB0eSsxOiAiLCBwcmVmaXgpOwor
ICAgIGR1bXBfYXJyb3coc3RyZWFtLCAodWludHB0cl90KWRpcmVjdG9yeS0+bGFzdF9lbXB0eV9w
bHVzX29uZS52YWx1ZSk7CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIAog
ICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgIENvbW1pdHRlZDogIiwgcHJlZml4
KTsKICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfYml0Zml0X2RpcmVjdG9yeV9zaXpl
KGRpcmVjdG9yeSk7ICsraW5kZXgpIHsKQEAgLTI1NCw2OCArMTkzLDE3IEBAIHN0YXRpYyB2b2lk
IHJlcG9ydF9iaXRmaXRfZGlyZWN0b3J5X2NvbnQKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJl
YW0sICJcbiIpOwogfQogCi12b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2JpYXNp
bmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCit2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9i
aXRmaXRfZGlyZWN0b3J5KAorICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX2JpdGZpdF9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSkKIHsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAg
ICAgICAgICAgICAgJXMgQmlhc2luZyBEaXIgJXAoJXUpOiAiLAotICAgICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudF9nZXRfY2FwaXRhbGl6ZWRfc3RyaW5n
KAotICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnX2tpbmRf
Z2V0X2NvbmZpZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeS0+YmFz
ZS5jb25maWdfa2luZCktPnZhcmlhbnQpLAotICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9y
eSwKLSAgICAgICAgICAgICAgICAgICAgICBwYXNfYmlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVf
aW5kZXgoJmRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlKSk7Ci0gICAgcGFzX2hlYXBfc3VtbWFyeV9k
dW1wKHBhc19iaXRmaXRfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeSgmZGlyZWN0b3J5LT5iYXNl
KSwgc3RyZWFtKTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwotCi0gICAg
cmVwb3J0X2JpdGZpdF9kaXJlY3RvcnlfY29udGVudHMoc3RyZWFtLCAmZGlyZWN0b3J5LT5iYXNl
LCAiICAgICAgICAgICAgICAgICAgICAiKTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVh
bSwgIiAgICAgICAgICAgICAgICAgICAgIEVsaWdpYmxlIEhXTTogIik7Ci0gICAgZHVtcF9hcnJv
dyhzdHJlYW0sICh1aW50cHRyX3QpZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuZWxpZ2libGVfaGln
aF93YXRlcm1hcmsudmFsdWUpOwotICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7
Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAgICAgICAgICAgIEN1
cnJlbnQgSFdNOiAiKTsKLSAgICBkdW1wX2Fycm93KHN0cmVhbSwgZGlyZWN0b3J5LT5iaWFzaW5n
X2Jhc2UuY3VycmVudF9oaWdoX3dhdGVybWFyayk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiXG4iKTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICAgICAg
ICAgICAgICBQcmV2aW91cyBIV006ICIpOwotICAgIGR1bXBfYXJyb3coc3RyZWFtLCBkaXJlY3Rv
cnktPmJpYXNpbmdfYmFzZS5wcmV2aW91c19oaWdoX3dhdGVybWFyayk7Ci0gICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLX0KLQotdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1
bXBfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNf
Yml0Zml0X2dsb2JhbF9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKLXsKLSAgICBwYXNfcGFnZV9zaGFy
aW5nX3Bvb2wqIGJpYXNfcG9vbDsKLSAgICAKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0s
ICIgICAgICAgICAgICAlcyBHbG9iYWwgRGlyICglcCk6ICIsCiAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ192YXJpYW50X2dldF9jYXBpdGFsaXplZF9zdHJpbmco
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfa2luZF9n
ZXRfY29uZmlnKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LT5iYXNl
LmNvbmZpZ19raW5kKS0+dmFyaWFudCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19i
aXRmaXRfcGFnZV9jb25maWdfa2luZF9nZXRfY29uZmlnKGRpcmVjdG9yeS0+Y29uZmlnX2tpbmQp
LT52YXJpYW50KSwKICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkpOwotICAgIHBhc19o
ZWFwX3N1bW1hcnlfZHVtcChwYXNfYml0Zml0X2RpcmVjdG9yeV9jb21wdXRlX3N1bW1hcnkoJmRp
cmVjdG9yeS0+YmFzZSksIHN0cmVhbSk7CisgICAgcGFzX2hlYXBfc3VtbWFyeV9kdW1wKHBhc19i
aXRmaXRfZGlyZWN0b3J5X2NvbXB1dGVfc3VtbWFyeShkaXJlY3RvcnkpLCBzdHJlYW0pOwogICAg
IHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CiAKLSAgICByZXBvcnRfYml0Zml0X2Rp
cmVjdG9yeV9jb250ZW50cyhzdHJlYW0sICZkaXJlY3RvcnktPmJhc2UsICIgICAgICAgICAgICAg
ICAgIik7Ci0KLSAgICBiaWFzX3Bvb2wgPSBwYXNfY29tcGFjdF9hdG9taWNfcGFnZV9zaGFyaW5n
X3Bvb2xfcHRyX2xvYWQoJmRpcmVjdG9yeS0+Ymlhc19zaGFyaW5nX3Bvb2wpOwotICAgIGlmIChi
aWFzX3Bvb2wpIHsKLSAgICAgICAgc2l6ZV90IGluZGV4OwotICAgICAgICAKLSAgICAgICAgZm9y
IChpbmRleCA9IDA7IGluZGV4IDwgcGFzX3BhZ2Vfc2hhcmluZ19wb29sX251bV9wYXJ0aWNpcGFu
dHMoYmlhc19wb29sKTsgKytpbmRleCkgewotICAgICAgICAgICAgcGFzX3BhZ2Vfc2hhcmluZ19w
YXJ0aWNpcGFudCBwYXJ0aWNpcGFudDsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX2Zl
bmNlX2FmdGVyX2xvYWQoKTsgLyogTWFrZSBzdXJlIHRoYXQgdGhlIHNpemUgaXMgd2hhdCB0aGUg
dGhpbmcgc2F5cyBpdCBpcy4gKi8KLSAgICAgICAgICAgIAotICAgICAgICAgICAgcGFydGljaXBh
bnQgPSBwYXNfcGFnZV9zaGFyaW5nX3Bvb2xfZ2V0X3BhcnRpY2lwYW50KGJpYXNfcG9vbCwgaW5k
ZXgpOwotICAgICAgICAgICAgaWYgKCFwYXJ0aWNpcGFudCkKLSAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfcGFnZV9zaGFy
aW5nX3BhcnRpY2lwYW50X2dldF9raW5kKHBhcnRpY2lwYW50KQotICAgICAgICAgICAgICAgICAg
ICAgICA9PSBwYXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50X2JpYXNpbmdfZGlyZWN0b3J5KTsK
LSAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2JpdGZp
dF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICAgICAgICAgICAgICBzdHJlYW0sCi0gICAgICAgICAg
ICAgICAgcGFzX3Vud3JhcF9iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAgICAg
ICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFudCkp
KTsKLSAgICAgICAgfQotICAgIH0KKyAgICByZXBvcnRfYml0Zml0X2RpcmVjdG9yeV9jb250ZW50
cyhzdHJlYW0sIGRpcmVjdG9yeSwgIiAgICAgICAgICAgICAgICAiKTsKIH0KIAogc3RhdGljIHZv
aWQgcmVwb3J0X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2NvbnRlbnRzKApAQCAtMzMyLDExICsyMjAs
NiBAQCBzdGF0aWMgdm9pZCByZXBvcnRfc2VncmVnYXRlZF9kaXJlY3RvcnlfCiAgICAgICAgIAog
ICAgICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnksIGlu
ZGV4KTsKIAotICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19iaWFzZWRfZXhjbHVz
aXZlKHZpZXcpKSB7Ci0gICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJiIik7
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgcGFz
X3N0cmVhbV9wcmludGYoCiAgICAgICAgICAgICBzdHJlYW0sICIlYyIsCiAgICAgICAgICAgICBw
YXNfc2VncmVnYXRlZF92aWV3X2tpbmRfZ2V0X2NoYXJhY3Rlcl9jb2RlKApAQCAtNDAzLDYwICsy
ODYsMjMgQEAgc3RhdGljIHZvaWQgcmVwb3J0X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5XwogICAgIH0K
ICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCi0gICAgcGFzX3N0cmVhbV9w
cmludGYoc3RyZWFtLCAiJXMgICAgICBUYWJsZWQ6ICIsIHByZWZpeCk7CisgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiJXMgRmlyc3QgRWxnYmw6ICIsIHByZWZpeCk7CisgICAgZHVtcF9h
cnJvdyhzdHJlYW0sICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJz
dF9lbGlnaWJsZShkaXJlY3RvcnkpLnZhbHVlKTsKKyAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJl
YW0sICJcbiIpOworCisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiJXMgICAgICAgRW1w
dHk6ICIsIHByZWZpeCk7CiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5KTsgKytpbmRleCkgewotICAgICAgICBpZiAocGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX3RhYmxlZChkaXJlY3RvcnksIGluZGV4KSkKKyAgICAg
ICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eShkaXJlY3RvcnksIGluZGV4
KSkKICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIngiKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwogICAgIH0K
ICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCi0gICAgcGFzX3N0cmVhbV9w
cmludGYoc3RyZWFtLCAiJXMgIEZpcnN0IEUmflQ6ICIsIHByZWZpeCk7Ci0gICAgZHVtcF9hcnJv
dyhzdHJlYW0sICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9maXJzdF9l
bGlnaWJsZSgKLSAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnksIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9maXJzdF9lbGlnaWJsZV9idXRfbm90X3RhYmxlZF9raW5kKS52YWx1ZSk7Ci0gICAg
cGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLQotICAgIHBhc19zdHJlYW1fcHJpbnRm
KHN0cmVhbSwgIiVzICAgRmlyc3QgRSZUOiAiLCBwcmVmaXgpOwotICAgIGR1bXBfYXJyb3coc3Ry
ZWFtLCAodWludHB0cl90KXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXRfZmlyc3RfZWxpZ2li
bGUoCi0gICAgICAgICAgICAgICAgICAgZGlyZWN0b3J5LCBwYXNfc2VncmVnYXRlZF9kaXJlY3Rv
cnlfZmlyc3RfZWxpZ2libGVfYW5kX3RhYmxlZF9raW5kKS52YWx1ZSk7CisgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiJXMgTGFzdCBFbXB0KzE6ICIsIHByZWZpeCk7CisgICAgZHVtcF9h
cnJvdyhzdHJlYW0sICh1aW50cHRyX3QpcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldF9sYXN0
X2VtcHR5X3BsdXNfb25lKGRpcmVjdG9yeSkudmFsdWUpOwogICAgIHBhc19zdHJlYW1fcHJpbnRm
KHN0cmVhbSwgIlxuIik7CiAKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyAgICAg
ICBFbXB0eTogIiwgcHJlZml4KTsKLSAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkpOyArK2luZGV4KSB7Ci0gICAgICAgIHN3
aXRjaCAoZGlyZWN0b3J5LT5kaXJlY3Rvcnlfa2luZCkgewotICAgICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9raW5kOgotICAgICAgICBjYXNlIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9raW5kOgotICAgICAgICAgICAgaWYgKHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eShkaXJlY3RvcnksIGluZGV4KSkKLSAgICAgICAg
ICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJ4Iik7Ci0gICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICIpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeV9raW5kOiB7Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7Ci0gICAg
ICAgICAgICB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnksIGlu
ZGV4KTsKLSAgICAgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VtcHR5KHZpZXcp
KQotICAgICAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIngiKTsKLSAgICAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIg
Iik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfSB9Ci0gICAgfQotICAgIHBhc19zdHJl
YW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7Ci0KLSAgICBzd2l0Y2ggKGRpcmVjdG9yeS0+ZGlyZWN0
b3J5X2tpbmQpIHsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9raW5kOgotICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2tp
bmQ6Ci0gICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgIExhc3QgRSsxOiAi
LCBwcmVmaXgpOwotICAgICAgICBkdW1wX2Fycm93KHN0cmVhbSwgKHVpbnRwdHJfdClwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfZ2V0X2xhc3RfZW1wdHlfcGx1c19vbmUoCi0gICAgICAgICAgICAg
ICAgICAgICAgIGRpcmVjdG9yeSkudmFsdWUpOwotICAgICAgICBwYXNfc3RyZWFtX3ByaW50Zihz
dHJlYW0sICJcbiIpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2Jp
YXNpbmdfZGlyZWN0b3J5X2tpbmQ6Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQogICAgIHBhc19z
dHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzICAgQ29tbWl0dGVkOiAiLCBwcmVmaXgpOwogICAgIGZv
ciAoaW5kZXggPSAwOyBpbmRleCA8IHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVj
dG9yeSk7ICsraW5kZXgpIHsKICAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9p
c19jb21taXR0ZWQoZGlyZWN0b3J5LCBpbmRleCkpCkBAIC00NjcsNDkgKzMxMywxMyBAQCBzdGF0
aWMgdm9pZCByZXBvcnRfc2VncmVnYXRlZF9kaXJlY3RvcnlfCiAgICAgcGFzX3N0cmVhbV9wcmlu
dGYoc3RyZWFtLCAiXG4iKTsKIH0KIAotdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2Vn
cmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19z
ZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCi17Ci0gICAgcGFzX2hlYXBf
c3VtbWFyeSBzdW1tYXJ5OwotICAgIAotICAgIHBhc19zdHJlYW1fcHJpbnRmKAotICAgICAgICBz
dHJlYW0sCi0gICAgICAgICIgICAgICAgICAgICAgICAgQmlhc2luZyBEaXIgJXAoJXUpOiBOdW0g
Vmlld3M6ICV6dSIsCi0gICAgICAgIGRpcmVjdG9yeSwKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
Ymlhc2luZ19kaXJlY3RvcnlfbWFnYXppbmVfaW5kZXgoZGlyZWN0b3J5KSwKLSAgICAgICAgcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeS0+YmFzZSkpOwotCi0gICAgaWYg
KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmJhc2Uu
ZGF0YSkpCi0gICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiwgSGFzIEJhc2UgRGF0
YSIpOwotCi0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiLCAiKTsKLQotICAgIHN1bW1h
cnkgPSBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfY29tcHV0ZV9zdW1tYXJ5KCZkaXJlY3Rvcnkt
PmJhc2UpOwotICAgIHBhc19oZWFwX3N1bW1hcnlfZHVtcChzdW1tYXJ5LCBzdHJlYW0pOwotCi0g
ICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKLQotICAgIHJlcG9ydF9zZWdyZWdh
dGVkX2RpcmVjdG9yeV9jb250ZW50cyhzdHJlYW0sICZkaXJlY3RvcnktPmJhc2UsICIgICAgICAg
ICAgICAgICAgICAgICIpOwotCi0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAg
ICAgICAgICAgICAgICBFbGlnaWJsZSBIV006ICIpOwotICAgIGR1bXBfYXJyb3coc3RyZWFtLCAo
dWludHB0cl90KWRpcmVjdG9yeS0+Ymlhc2luZ19iYXNlLmVsaWdpYmxlX2hpZ2hfd2F0ZXJtYXJr
LnZhbHVlKTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwotICAgIHBhc19z
dHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgSFdNOiAi
KTsKLSAgICBkdW1wX2Fycm93KHN0cmVhbSwgZGlyZWN0b3J5LT5iaWFzaW5nX2Jhc2UuY3VycmVu
dF9oaWdoX3dhdGVybWFyayk7Ci0gICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsK
LSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICAgICAgICAgICAgIFByZXZp
b3VzIEhXTTogIik7Ci0gICAgZHVtcF9hcnJvdyhzdHJlYW0sIGRpcmVjdG9yeS0+Ymlhc2luZ19i
YXNlLnByZXZpb3VzX2hpZ2hfd2F0ZXJtYXJrKTsKLSAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJl
YW0sICJcbiIpOwotfQotCi12b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdy
ZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQordm9pZCBwYXNfc3RhdHVz
X3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSgKKyAgICBwYXNfc3RyZWFt
KiBzdHJlYW0sIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAg
ICAgcGFzX2hlYXBfc3VtbWFyeSBwYXJ0aWFsX3N1bW1hcnk7CiAgICAgcGFzX2hlYXBfc3VtbWFy
eSBleGNsdXNpdmVfc3VtbWFyeTsKICAgICBzaXplX3QgaW5kZXg7Ci0gICAgcGFzX3NlZ3JlZ2F0
ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2RhdGEqIGRhdGE7Ci0gICAgcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sKiBiaWFzX3Bvb2w7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0
YSogZGF0YTsKICAgICAKICAgICBwYXNfc3RyZWFtX3ByaW50ZigKICAgICAgICAgc3RyZWFtLApA
QCAtNTIxLDE3ICszMzEsMTIgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVn
YXRlZAogCiAgICAgaWYgKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZk
aXJlY3RvcnktPmJhc2UuZGF0YSkpCiAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IiwgSGFzIEJhc2UgRGF0YSIpOwotICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5kYXRhKTsKLSAgICBpZiAoZGF0
YSkgeworICAgIGRhdGEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0cl9s
b2FkKCZkaXJlY3RvcnktPmRhdGEpOworICAgIGlmIChkYXRhKQogICAgICAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICIsIEhhcyBEYXRhIik7Ci0gICAgICAgIGJpYXNfcG9vbCA9IHBhc19j
b21wYWN0X2F0b21pY19wYWdlX3NoYXJpbmdfcG9vbF9wdHJfbG9hZCgmZGF0YS0+Ymlhc19zaGFy
aW5nX3Bvb2wpOwotICAgICAgICBpZiAoYmlhc19wb29sKQotICAgICAgICAgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiLCBFeHBsb2RlZCIpOwotICAgIH0gZWxzZQotICAgICAgICBiaWFz
X3Bvb2wgPSBOVUxMOwotICAgIGlmIChwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KSkKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnlfaGFzX3RsY19hbGxvY2F0b3IoZGlyZWN0b3J5KSkKICAgICAgICAgcGFz
X3N0cmVhbV9wcmludGYoc3RyZWFtLCAiLCBIYXMgVExBIik7Ci0gICAgaWYgKHBhc19zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hcmVfZXhjbHVzaXZlX3ZpZXdzX2VuYWJsZWQoZGly
ZWN0b3J5KSkKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfYXJlX2V4Y2x1
c2l2ZV92aWV3c19lbmFibGVkKGRpcmVjdG9yeSkpCiAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRm
KHN0cmVhbSwgIiwgRW5hYmxlZCBFeGNsdXNpdmVzIik7CiAgICAgcGFzX3N0cmVhbV9wcmludGYo
c3RyZWFtLCAiXG4iKTsKIApAQCAtNTY4LDI2ICszNzMsNiBAQCB2b2lkIHBhc19zdGF0dXNfcmVw
b3J0ZXJfZHVtcF9zZWdyZWdhdGVkCiAgICAgfQogICAgIAogICAgIHJlcG9ydF9zZWdyZWdhdGVk
X2RpcmVjdG9yeV9jb250ZW50cyhzdHJlYW0sICZkaXJlY3RvcnktPmJhc2UsICIgICAgICAgICAg
ICAgICAgIik7Ci0KLSAgICBpZiAoYmlhc19wb29sKSB7Ci0gICAgICAgIGZvciAoaW5kZXggPSAw
OyBpbmRleCA8IHBhc19wYWdlX3NoYXJpbmdfcG9vbF9udW1fcGFydGljaXBhbnRzKGJpYXNfcG9v
bCk7ICsraW5kZXgpIHsKLSAgICAgICAgICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQg
cGFydGljaXBhbnQ7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19mZW5jZV9hZnRlcl9s
b2FkKCk7IC8qIE1ha2Ugc3VyZSB0aGF0IHRoZSBzaXplIGlzIHdoYXQgdGhlIHRoaW5nIHNheXMg
aXQgaXMuICovCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIHBhcnRpY2lwYW50ID0gcGFzX3Bh
Z2Vfc2hhcmluZ19wb29sX2dldF9wYXJ0aWNpcGFudChiaWFzX3Bvb2wsIGluZGV4KTsKLSAgICAg
ICAgICAgIGlmICghcGFydGljaXBhbnQpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIFBBU19BU1NFUlQocGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudF9nZXRfa2luZChwYXJ0aWNpcGFudCkKLSAgICAgICAgICAgICAgICAgICAgICAgPT0gcGFz
X3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudF9iaWFzaW5nX2RpcmVjdG9yeSk7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX2JpYXNp
bmdfZGlyZWN0b3J5KAotICAgICAgICAgICAgICAgIHN0cmVhbSwKLSAgICAgICAgICAgICAgICBw
YXNfdW53cmFwX3NlZ3JlZ2F0ZWRfYmlhc2luZ19kaXJlY3RvcnkoCi0gICAgICAgICAgICAgICAg
ICAgIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnRfZ2V0X3B0cihwYXJ0aWNpcGFudCkpKTsK
LSAgICAgICAgfQotICAgIH0KIH0KIAogdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2Vn
cmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkoCkBAIC03MDIsNyArNDg3LDcgQEAgdm9pZCBw
YXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYm9vdHN0cmFwXwogCiBzdGF0aWMgYm9vbCBkdW1wX3Nl
Z3JlZ2F0ZWRfaGVhcF9kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAg
IHZvaWQqIGFyZykKIHsKICAgICBwYXNfc3RyZWFtKiBzdHJlYW07CkBAIC03MTEsNyArNDk2LDcg
QEAgc3RhdGljIGJvb2wgZHVtcF9zZWdyZWdhdGVkX2hlYXBfZGlyZWN0bwogCiAgICAgc3RyZWFt
ID0gYXJnOwogCi0gICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3NlZ3JlZ2F0ZWRfZ2xvYmFs
X3NpemVfZGlyZWN0b3J5KHN0cmVhbSwgZGlyZWN0b3J5KTsKKyAgICBwYXNfc3RhdHVzX3JlcG9y
dGVyX2R1bXBfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeShzdHJlYW0sIGRpcmVjdG9yeSk7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTcyNSw3ICs1MTAsNyBAQCB2b2lkIHBhc19zdGF0dXNf
cmVwb3J0ZXJfZHVtcF9iaXRmaXRfaGVhCiAgICAgaWYgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZW5h
YmxlZCA+PSAzKSB7CiAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWdfdmFyaWFudCB2YXJp
YW50OwogICAgICAgICBmb3IgKFBBU19FQUNIX0JJVEZJVF9QQUdFX0NPTkZJR19WQVJJQU5UX0FT
Q0VORElORyh2YXJpYW50KSkgewotICAgICAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1w
X2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5KAorICAgICAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX2JpdGZpdF9kaXJlY3RvcnkoCiAgICAgICAgICAgICAgICAgc3RyZWFtLAogICAgICAg
ICAgICAgICAgIHBhc19iaXRmaXRfaGVhcF9nZXRfZGlyZWN0b3J5KGhlYXAsIHZhcmlhbnQpKTsK
ICAgICAgICAgfQpAQCAtNzU1LDcgKzU0MCw3IEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX3NlZ3JlZ2F0ZWQKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCiAg
ICAgaWYgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZW5hYmxlZCA+PSAzKSB7Ci0gICAgICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KAorICAgICAgICBw
YXNfc2VncmVnYXRlZF9oZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KAogICAgICAgICAgICAg
aGVhcCwgZHVtcF9zZWdyZWdhdGVkX2hlYXBfZGlyZWN0b3J5X2NhbGxiYWNrLCBzdHJlYW0pOwog
ICAgIH0KICAgICAKQEAgLTkwMSw5ICs2ODYsOSBAQCBzdGF0aWMgdm9pZCBkdW1wX2hpc3RvZ3Jh
bShwYXNfc3RyZWFtKiBzCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCB0b3RhbF9mcmFnbWVudGF0
aW9uX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaygKK3N0YXRpYyBib29sIHRvdGFsX2Zy
YWdtZW50YXRpb25fc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcCogaGVhcCwKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeSwKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAog
ICAgIHZvaWQqIGFyZykKIHsKICAgICB0b3RhbF9mcmFnbWVudGF0aW9uX2RhdGEqIGRhdGE7CkBA
IC05NDMsOCArNzI4LDggQEAgc3RhdGljIGJvb2wgdG90YWxfZnJhZ21lbnRhdGlvbl9oZWFwX2Nh
bAogCiAgICAgZGF0YSA9IGFyZzsKIAotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KAotICAgICAgICAmaGVhcC0+c2VncmVnYXRlZF9oZWFwLCB0
b3RhbF9mcmFnbWVudGF0aW9uX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaywgZGF0YSk7
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9mb3JfZWFjaF9zaXplX2RpcmVjdG9yeSgKKyAgICAg
ICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwgdG90YWxfZnJhZ21lbnRhdGlvbl9zaXplX2RpcmVj
dG9yeV9jYWxsYmFjaywgZGF0YSk7CiAKICAgICBkYXRhLT5sYXJnZV9mcmFnbWVudGF0aW9uICs9
IHBhc19oZWFwX3N1bW1hcnlfZnJhZ21lbnRhdGlvbigKICAgICAgICAgcGFzX2xhcmdlX2hlYXBf
Y29tcHV0ZV9zdW1tYXJ5KCZoZWFwLT5sYXJnZV9oZWFwKSk7CkBAIC05NzMsOCArNzU4LDggQEAg
dm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdG90YWxfZnJhZwogICAgIHBhc19hbGxfaGVh
cHNfZm9yX2VhY2hfaGVhcCh0b3RhbF9mcmFnbWVudGF0aW9uX2hlYXBfY2FsbGJhY2ssICZkYXRh
KTsKICAgICBwYXNfYWxsX3NoYXJlZF9wYWdlX2RpcmVjdG9yaWVzX2Zvcl9lYWNoKAogICAgICAg
ICB0b3RhbF9mcmFnbWVudGF0aW9uX3NoYXJlZF9wYWdlX2RpcmVjdG9yeV9jYWxsYmFjaywgJmRh
dGEpOwotICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5KAotICAgICAgICAmcGFzX3V0aWxpdHlfc2VncmVnYXRlZF9oZWFwLCB0b3RhbF9mcmFnbWVu
dGF0aW9uX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYWxsYmFjaywgJmRhdGEpOworICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCisgICAgICAgICZwYXNfdXRp
bGl0eV9zZWdyZWdhdGVkX2hlYXAsIHRvdGFsX2ZyYWdtZW50YXRpb25fc2l6ZV9kaXJlY3Rvcnlf
Y2FsbGJhY2ssICZkYXRhKTsKICAgICBkYXRhLmxhcmdlX2ZyYWdtZW50YXRpb24gKz0gcGFzX2hl
YXBfc3VtbWFyeV9mcmFnbWVudGF0aW9uKAogICAgICAgICBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVl
X2hlYXBfY29tcHV0ZV9zdW1tYXJ5KCkpOwogICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwg
IiAgICBTZWdyZWdhdGVkIEV4Y2x1c2l2ZSBGcmFnbWVudGF0aW9uIEhpc3RvZ3JhbTpcbiIpOwpA
QCAtMTAwMyw5ICs3ODgsOSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAgICAgc2l6ZV90IG51bV9oZWFw
czsKIH0gdGllcl91cF9yYXRlX2RhdGE7CiAKLXN0YXRpYyBib29sIHRpZXJfdXBfcmF0ZV9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2soCitzdGF0aWMgYm9vbCB0aWVyX3VwX3JhdGVfc2l6
ZV9kaXJlY3RvcnlfY2FsbGJhY2soCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKLSAg
ICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKKyAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHZvaWQqIGFyZykK
IHsKICAgICB0aWVyX3VwX3JhdGVfZGF0YSogZGF0YTsKQEAgLTEwMTQsMTEgKzc5OSwxMSBAQCBz
dGF0aWMgYm9vbCB0aWVyX3VwX3JhdGVfZ2xvYmFsX3NpemVfZGlyCiAKICAgICBkYXRhID0gYXJn
OwogCi0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9kYXRhX3B0
cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpKQorICAgIGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpKQogICAgICAgICBkYXRhLT5u
dW1fZGlyZWN0b3JpZXNfd2l0aF9kYXRhKys7Ci0gICAgaWYgKHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3RvcnkpKQorICAgIGlmIChw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9oYXNfdGxjX2FsbG9jYXRvcihkaXJlY3Rvcnkp
KQogICAgICAgICBkYXRhLT5udW1fZGlyZWN0b3JpZXNfd2l0aF90bGFzKys7Ci0gICAgaWYgKHBh
c19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9hcmVfZXhjbHVzaXZlX3ZpZXdzX2Vu
YWJsZWQoZGlyZWN0b3J5KSkKKyAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
YXJlX2V4Y2x1c2l2ZV92aWV3c19lbmFibGVkKGRpcmVjdG9yeSkpCiAgICAgICAgIGRhdGEtPm51
bV9kaXJlY3Rvcmllc193aXRoX2V4Y2x1c2l2ZXMrKzsKICAgICBkYXRhLT5udW1fZGlyZWN0b3Jp
ZXMrKzsKIApAQCAtMTAzMSw4ICs4MTYsOCBAQCBzdGF0aWMgYm9vbCB0aWVyX3VwX3JhdGVfaGVh
cF9jYWxsYmFjayhwCiAKICAgICBkYXRhID0gYXJnOwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9mb3JfZWFjaF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkoCi0gICAgICAgICZoZWFwLT5zZWdyZWdh
dGVkX2hlYXAsIHRpZXJfdXBfcmF0ZV9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfY2FsbGJhY2ssIGRh
dGEpOworICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfZm9yX2VhY2hfc2l6ZV9kaXJlY3RvcnkoCisg
ICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsIHRpZXJfdXBfcmF0ZV9zaXplX2RpcmVjdG9y
eV9jYWxsYmFjaywgZGF0YSk7CiAKICAgICBkYXRhLT5udW1faGVhcHMrKzsKIApAQCAtMTA5Niw3
ICs4ODEsNyBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iYXNlbGluZV9hCiAgICAg
ICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IiAgICAgICAgICV6dTogZGlyZWN0b3J5ID0gJXAsICVzXG4iLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA/IHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeSh2aWV3KSA6IE5VTEwsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIHZpZXcgPyBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXpl
X2RpcmVjdG9yeSh2aWV3KSA6IE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9j
YXRvcl9zdGF0ZShhbGxvY2F0b3IpKTsKICAgICB9CiB9CkBAIC0xMTA5LDggKzg5NCwxMCBAQCB2
b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90aHJlYWRfbG9jCiAKICAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICIgICAgVGhyZWFkIExvY2FsIENhY2hlIExheW91dDpcbiIpOwogICAg
IGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0
X25vZGUpKSB7Ci0gICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAgICAgJXU6
IGRpcmVjdG9yeSA9ICVwXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5b3V0X25vZGUp
LAorICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICV1OiAlcywgZGly
ZWN0b3J5ID0gJXBcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKGxheW91dF9u
b2RlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9raW5kX2dldF9zdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9raW5kKGxheW91dF9ub2Rl
KSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShsYXlvdXRfbm9kZSkpOwogICAgIH0KIApAQCAtMTE0MCw3
ICs5MjcsMTEgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvYwogICAg
ICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CiAgICAgICAgICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CiAKLSAgICAgICAgICAgIGFsbG9jYXRv
cl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRv
cl9pbmRleChsYXlvdXRfbm9kZSk7CisgICAgICAgICAgICBpZiAoIXBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3IobGF5b3V0X25vZGUpKQorICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPQor
ICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2Fs
bG9jYXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKGxheW91dF9ub2RlKTsKIAogICAgICAgICAgICAg
aWYgKGFsbG9jYXRvcl9pbmRleCA+PSBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5k
KQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTE0OSw3ICs5NDAsNyBAQCB2b2lkIHBhc19z
dGF0dXNfcmVwb3J0ZXJfZHVtcF90aHJlYWRfbG9jCiAgICAgICAgICAgICBwYXNfc3RyZWFtX3By
aW50ZihzdHJlYW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAg
JXU6IGRpcmVjdG9yeSA9ICVwLCAlc1xuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFsbG9jYXRvcl9pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZ2V0X2dsb2JhbF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6
ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFsbG9jYXRvcl9zdGF0ZShhbGxvY2F0b3IpKTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVz
X3JlcG9ydGVyLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMzYg
KzMxLDI2IEBACiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIAotc3RydWN0IHBhc19iaXRmaXRfYmlh
c2luZ19kaXJlY3Rvcnk7Ci1zdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5Oworc3Ry
dWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5Owogc3RydWN0IHBhc19sYXJnZV9oZWFwOwotc3RydWN0
IHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGlyZWN0b3J5Owogc3RydWN0IHBhc19zZWdyZWdhdGVk
X2hlYXA7CiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5Owotc3Ry
dWN0IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIHN0cnVjdCBwYXNfc3RyZWFtOwotdHlwZWRlZiBzdHJ1
Y3QgcGFzX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeSBwYXNfYml0Zml0X2JpYXNpbmdfZGlyZWN0
b3J5OwotdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9nbG9iYWxfZGlyZWN0b3J5IHBhc19iaXRm
aXRfZ2xvYmFsX2RpcmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfZGlyZWN0b3J5
IHBhc19iaXRmaXRfZGlyZWN0b3J5OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2xhcmdlX2hlYXAgcGFz
X2xhcmdlX2hlYXA7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeSBwYXNfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVjdG9yeTsKIHR5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX2hlYXAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcDsKIHR5cGVkZWYgc3RydWN0IHBh
c19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
cGFnZV9kaXJlY3Rvcnk7Ci10eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRl
ZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc3RyZWFtIHBhc19zdHJlYW07CiAKIFBB
U19BUEkgZXh0ZXJuIHVuc2lnbmVkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZW5hYmxlZDsKIFBBU19B
UEkgZXh0ZXJuIHVuc2lnbmVkIHBhc19zdGF0dXNfcmVwb3J0ZXJfcGVyaW9kX2luX21pY3Jvc2Vj
b25kczsKIAotUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iaXRmaXRfYmlh
c2luZ19kaXJlY3RvcnkoCi0gICAgcGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfYml0Zml0X2JpYXNp
bmdfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwotUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0
ZXJfZHVtcF9iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0s
IHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIFBBU19BUEkgdm9pZCBw
YXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYml0Zml0X2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFt
KiBzdHJlYW0sIHBhc19iaXRmaXRfZ2xvYmFsX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKLVBBU19B
UEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfc2VncmVnYXRlZF9iaWFzaW5nX2RpcmVj
dG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19zZWdyZWdhdGVkX2JpYXNpbmdfZGly
ZWN0b3J5KiBkaXJlY3RvcnkpOwotUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVt
cF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSgKLSAgICBwYXNfc3RyZWFtKiBzdHJl
YW0sIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKyAg
ICBwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19iaXRmaXRfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwor
UEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KAorICAgIHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSk7CiBQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1w
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KAogICAgIHBhc19zdHJlYW0qIHN0cmVh
bSwgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogUEFT
X0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9sYXJnZV9oZWFwKHBhc19zdHJlYW0q
IHN0cmVhbSwgcGFzX2xhcmdlX2hlYXAqIGhlYXApOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3N0cmluZ19zdHJlYW0uYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RyaW5nX3N0cmVhbS5jCShyZXZpc2lvbiAy
ODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RyaW5nX3N0
cmVhbS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
YykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODgsMTggKzg4LDIyIEBAIHZvaWQgcGFzX3N0cmlu
Z19zdHJlYW1fdnByaW50ZihwYXNfc3RyaW4KICAgICBudW1iZXJfb2ZfYnl0ZXNfbm90X2luY2x1
ZGluZ190ZXJtaW5hdG9yX3RoYXRfd291bGRfaGF2ZV9iZWVuX3dyaXR0ZW4gPQogICAgICAgICBw
YXNfdnNucHJpbnRmKHN0cmVhbS0+YnVmZmVyICsgc3RyZWFtLT5uZXh0LCBzdHJlYW0tPnNpemUg
LSBzdHJlYW0tPm5leHQsCiAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCBmaXJzdF9wYXNz
X2FyZ19saXN0KTsKKworICAgIFBBU19BU1NFUlQobnVtYmVyX29mX2J5dGVzX25vdF9pbmNsdWRp
bmdfdGVybWluYXRvcl90aGF0X3dvdWxkX2hhdmVfYmVlbl93cml0dGVuID49IDApOwogICAgIAog
ICAgIHZhX2VuZChmaXJzdF9wYXNzX2FyZ19saXN0KTsKICAgICAKICAgICBudW1iZXJfb2ZfYnl0
ZXNfdGhhdF93b3VsZF9oYXZlX2JlZW5fd3JpdHRlbiA9CiAgICAgICAgIG51bWJlcl9vZl9ieXRl
c19ub3RfaW5jbHVkaW5nX3Rlcm1pbmF0b3JfdGhhdF93b3VsZF9oYXZlX2JlZW5fd3JpdHRlbiAr
IDE7CisKKyAgICBQQVNfQVNTRVJUKG51bWJlcl9vZl9ieXRlc190aGF0X3dvdWxkX2hhdmVfYmVl
bl93cml0dGVuID49IDApOwogICAgIAotICAgIGlmIChzdHJlYW0tPm5leHQgKyBudW1iZXJfb2Zf
Ynl0ZXNfdGhhdF93b3VsZF9oYXZlX2JlZW5fd3JpdHRlbiA8PSBzdHJlYW0tPnNpemUpIHsKLSAg
ICAgICAgc3RyZWFtLT5uZXh0ICs9IG51bWJlcl9vZl9ieXRlc19ub3RfaW5jbHVkaW5nX3Rlcm1p
bmF0b3JfdGhhdF93b3VsZF9oYXZlX2JlZW5fd3JpdHRlbjsKKyAgICBpZiAoc3RyZWFtLT5uZXh0
ICsgKHNpemVfdCludW1iZXJfb2ZfYnl0ZXNfdGhhdF93b3VsZF9oYXZlX2JlZW5fd3JpdHRlbiA8
PSBzdHJlYW0tPnNpemUpIHsKKyAgICAgICAgc3RyZWFtLT5uZXh0ICs9IChzaXplX3QpbnVtYmVy
X29mX2J5dGVzX25vdF9pbmNsdWRpbmdfdGVybWluYXRvcl90aGF0X3dvdWxkX2hhdmVfYmVlbl93
cml0dGVuOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIG5ld19zaXplID0gKHN0
cmVhbS0+bmV4dCArIG51bWJlcl9vZl9ieXRlc190aGF0X3dvdWxkX2hhdmVfYmVlbl93cml0dGVu
KSA8PCAxOworICAgIG5ld19zaXplID0gKHN0cmVhbS0+bmV4dCArIChzaXplX3QpbnVtYmVyX29m
X2J5dGVzX3RoYXRfd291bGRfaGF2ZV9iZWVuX3dyaXR0ZW4pIDw8IDE7CiAgICAgCiAgICAgbmV3
X2J1ZmZlciA9IHN0cmVhbS0+YWxsb2NhdGlvbl9jb25maWcuYWxsb2NhdGUoCiAgICAgICAgIG5l
d19zaXplLCAicGFzX3N0cmVhbS9idWZmZXIiLCBwYXNfb2JqZWN0X2FsbG9jYXRpb24sIHN0cmVh
bS0+YWxsb2NhdGlvbl9jb25maWcuYXJnKTsKQEAgLTExNCwxMyArMTE4LDE3IEBAIHZvaWQgcGFz
X3N0cmluZ19zdHJlYW1fdnByaW50ZihwYXNfc3RyaW4KICAgICBudW1iZXJfb2ZfYnl0ZXNfbm90
X2luY2x1ZGluZ190ZXJtaW5hdG9yX3RoYXRfd2VyZV93cml0dGVuID0KICAgICAgICAgcGFzX3Zz
bnByaW50ZihzdHJlYW0tPmJ1ZmZlciArIHN0cmVhbS0+bmV4dCwgc3RyZWFtLT5zaXplIC0gc3Ry
ZWFtLT5uZXh0LAogICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgYXJnX2xpc3QpOworCisg
ICAgUEFTX0FTU0VSVChudW1iZXJfb2ZfYnl0ZXNfbm90X2luY2x1ZGluZ190ZXJtaW5hdG9yX3Ro
YXRfd2VyZV93cml0dGVuID49IDApOwogICAgIAogICAgIG51bWJlcl9vZl9ieXRlc190aGF0X3dl
cmVfd3JpdHRlbiA9CiAgICAgICAgIG51bWJlcl9vZl9ieXRlc19ub3RfaW5jbHVkaW5nX3Rlcm1p
bmF0b3JfdGhhdF93ZXJlX3dyaXR0ZW4gKyAxOworCisgICAgUEFTX0FTU0VSVChudW1iZXJfb2Zf
Ynl0ZXNfdGhhdF93ZXJlX3dyaXR0ZW4gPj0gMCk7CiAgICAgCi0gICAgUEFTX0FTU0VSVChzdHJl
YW0tPm5leHQgKyBudW1iZXJfb2ZfYnl0ZXNfdGhhdF93ZXJlX3dyaXR0ZW4gPD0gc3RyZWFtLT5z
aXplKTsKKyAgICBQQVNfQVNTRVJUKHN0cmVhbS0+bmV4dCArIChzaXplX3QpbnVtYmVyX29mX2J5
dGVzX3RoYXRfd2VyZV93cml0dGVuIDw9IHN0cmVhbS0+c2l6ZSk7CiAgICAgCi0gICAgc3RyZWFt
LT5uZXh0ICs9IG51bWJlcl9vZl9ieXRlc19ub3RfaW5jbHVkaW5nX3Rlcm1pbmF0b3JfdGhhdF93
ZXJlX3dyaXR0ZW47CisgICAgc3RyZWFtLT5uZXh0ICs9IChzaXplX3QpbnVtYmVyX29mX2J5dGVz
X25vdF9pbmNsdWRpbmdfdGVybWluYXRvcl90aGF0X3dlcmVfd3JpdHRlbjsKICAgICAKICAgICBQ
QVNfQVNTRVJUKHN0cmVhbS0+bmV4dCA8IHN0cmVhbS0+c2l6ZSk7CiAgICAgUEFTX0FTU0VSVCgh
c3RyZWFtLT5idWZmZXJbc3RyZWFtLT5uZXh0XSk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuYwkocmV2aXNpb24gMjgyMjM4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFwLmMJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwxMDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAy
MC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJwYXNfY29uZmlnLmgiCi0KLSNp
ZiBMSUJQQVNfRU5BQkxFRAotCi0jaW5jbHVkZSAicGFzX3N1YnBhZ2VfbWFwLmgiCi0KLSNpbmNs
dWRlICJwYXNfaGVhcF9sb2NrLmgiCi0jaW5jbHVkZSAicGFzX2ludGVybmFsX2NvbmZpZy5oIgot
I2luY2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oIgotCi1wYXNfc3VicGFnZV9t
YXBfaGFzaHRhYmxlIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfaW5zdGFuY2U7Ci0KLXBhc19z
dWJwYWdlX21hcF9lbnRyeSogcGFzX3N1YnBhZ2VfbWFwX2FkZCh2b2lkKiBiYXNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBieXRlcywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tbWl0X21vZGUgY29t
bWl0X21vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCi17Ci0gICAgdm9pZCogZnVsbF9i
YXNlOwotICAgIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfYWRkX3Jlc3VsdCBhZGRfcmVzdWx0
OwotICAgIHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnk7Ci0KLSAgICBQQVNfQVNTRVJUKGJh
c2UpOwotICAgIGZ1bGxfYmFzZSA9IHBhc19zdWJwYWdlX21hcF9nZXRfZnVsbF9iYXNlKGJhc2Us
IGJ5dGVzKTsKLSAgICAKLSAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFw
X2xvY2tfaG9sZF9tb2RlKTsKLQotICAgIGFkZF9yZXN1bHQgPSBwYXNfc3VicGFnZV9tYXBfaGFz
aHRhYmxlX2FkZCgKLSAgICAgICAgJnBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfaW5zdGFuY2Us
IGZ1bGxfYmFzZSwgTlVMTCwKLSAgICAgICAgJnBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9h
bGxvY2F0aW9uX2NvbmZpZyk7Ci0gICAgaWYgKGFkZF9yZXN1bHQuaXNfbmV3X2VudHJ5KSB7Ci0g
ICAgICAgIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0cl9zdG9yZSgKLSAgICAgICAg
ICAgIGFkZF9yZXN1bHQuZW50cnksIHBhc19zdWJwYWdlX21hcF9lbnRyeV9jcmVhdGUoZnVsbF9i
YXNlLCBjb21taXRfbW9kZSkpOwotICAgIH0KLQotICAgIGVudHJ5ID0gcGFzX2NvbXBhY3Rfc3Vi
cGFnZV9tYXBfZW50cnlfcHRyX2xvYWRfbm9uX251bGwoYWRkX3Jlc3VsdC5lbnRyeSk7Ci0gICAg
cGFzX3N1YnBhZ2VfbWFwX2Fzc2VydF9jb21taXRfc3RhdGUoZW50cnksIGJhc2UsIGJ5dGVzLCBj
b21taXRfbW9kZSk7Ci0gICAgCi0gICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxs
eShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotICAgIHJldHVybiBlbnRyeTsKLX0KLQotcGFzX3N1
YnBhZ2VfbWFwX2VudHJ5KiBwYXNfc3VicGFnZV9tYXBfZ2V0KHZvaWQqIGJhc2UsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGJ5dGVzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKQotewotICAgIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5
X3B0ciogZW50cnk7Ci0gICAgdm9pZCogZnVsbF9iYXNlOwotCi0gICAgUEFTX0FTU0VSVChiYXNl
KTsKLQotICAgIGZ1bGxfYmFzZSA9IHBhc19zdWJwYWdlX21hcF9nZXRfZnVsbF9iYXNlKGJhc2Us
IGJ5dGVzKTsKLQotICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9j
a19ob2xkX21vZGUpOwotCi0gICAgZW50cnkgPSBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2Zp
bmQoJnBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfaW5zdGFuY2UsIGZ1bGxfYmFzZSk7Ci0KLSAg
ICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUp
OwotCi0gICAgUEFTX0FTU0VSVChlbnRyeSk7Ci0gICAgcmV0dXJuIHBhc19jb21wYWN0X3N1YnBh
Z2VfbWFwX2VudHJ5X3B0cl9sb2FkX25vbl9udWxsKGVudHJ5KTsKLX0KLQotdm9pZCogcGFzX3N1
YnBhZ2VfbWFwX2dldF9mdWxsX2Jhc2Uodm9pZCogYmFzZSwgc2l6ZV90IGJ5dGVzKQotewotICAg
IHZvaWQqIGZ1bGxfYmFzZTsKLSAgICAKLSAgICBQQVNfQVNTRVJUKCEoKHVpbnRwdHJfdCliYXNl
ICYgKFBBU19TVUJQQUdFX1NJWkUgLSAxKSkpOwotICAgIFBBU19BU1NFUlQoISgodWludHB0cl90
KWJ5dGVzICYgKFBBU19TVUJQQUdFX1NJWkUgLSAxKSkpOwotCi0gICAgZnVsbF9iYXNlID0gKHZv
aWQqKSgodWludHB0cl90KWJhc2UgJiAtcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpKTsKLQot
ICAgIFBBU19BU1NFUlQoKHVpbnRwdHJfdCliYXNlICsgYnl0ZXMgPD0gKHVpbnRwdHJfdClmdWxs
X2Jhc2UgKyBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpOwotCi0gICAgcmV0dXJuIGZ1bGxf
YmFzZTsKLX0KLQotI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXAuaAkocmV2aXNp
b24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBh
Z2VfbWFwLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIFBBU19TVUJQQUdFX01BUF9I
Ci0jZGVmaW5lIFBBU19TVUJQQUdFX01BUF9ICi0KLSNpbmNsdWRlICJwYXNfY29tcGFjdF9zdWJw
YWdlX21hcF9lbnRyeV9wdHIuaCIKLSNpbmNsdWRlICJwYXNfaGFzaHRhYmxlLmgiCi0jaW5jbHVk
ZSAicGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotdHlw
ZWRlZiBwYXNfY29tcGFjdF9zdWJwYWdlX21hcF9lbnRyeV9wdHIgcGFzX3N1YnBhZ2VfbWFwX2hh
c2h0YWJsZV9lbnRyeTsKLXR5cGVkZWYgdm9pZCogcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9r
ZXk7Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSBwYXNf
c3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5X2NyZWF0ZV9lbXB0eSh2b2lkKQotewotICAgIHBh
c19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnkgcmVzdWx0ID0gUEFTX0NPTVBBQ1RfUFRSX0lO
SVRJQUxJWkVSOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgcGFzX3N1
YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSBwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5
X2NyZWF0ZV9kZWxldGVkKHZvaWQpCi17Ci0gICAgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9l
bnRyeSByZXN1bHQgPSBQQVNfQ09NUEFDVF9QVFJfSU5JVElBTElaRVI7Ci0gICAgUEFTX0FTU0VS
VCghIlNob3VsZCBuZXZlciBjcmVhdGVkIGEgZGVsZXRlZCBzdWJwYWdlIG1hcCBoYXNodGFibGUg
ZW50cnkgKGFuZCBpdCdzIGltcG9zc2libGUpIik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQot
c3RhdGljIGlubGluZSBib29sCi1wYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5X2lzX2Vt
cHR5X29yX2RlbGV0ZWQocGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSBlbnRyeSkKLXsK
LSAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc3VicGFnZV9tYXBfZW50cnlfcHRyX2lzX251bGwoJmVu
dHJ5KTsKLX0KLQotc3RhdGljIGlubGluZSBib29sCi1wYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxl
X2VudHJ5X2lzX2VtcHR5KHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnkgZW50cnkpCi17
Ci0gICAgcmV0dXJuIHBhc19jb21wYWN0X3N1YnBhZ2VfbWFwX2VudHJ5X3B0cl9pc19udWxsKCZl
bnRyeSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbAotcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJs
ZV9lbnRyeV9pc19kZWxldGVkKHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnkgZW50cnkp
Ci17Ci0gICAgUEFTX1VOVVNFRF9QQVJBTShlbnRyeSk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci1zdGF0aWMgaW5saW5lIHZvaWQqIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfZW50cnlfZ2V0
X2tleShwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlX2VudHJ5IGVudHJ5KQotewotICAgIHJldHVy
biBwYXNfc3VicGFnZV9tYXBfZW50cnlfZnVsbF9iYXNlKHBhc19jb21wYWN0X3N1YnBhZ2VfbWFw
X2VudHJ5X3B0cl9sb2FkKCZlbnRyeSkpOwotfQotCi1zdGF0aWMgdW5zaWduZWQgcGFzX3N1YnBh
Z2VfbWFwX2hhc2h0YWJsZV9rZXlfZ2V0X2hhc2godm9pZCoga2V5KQotewotICAgIHJldHVybiBw
YXNfaGFzaF9wdHIoa2V5KTsKLX0KLQotc3RhdGljIGJvb2wgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0
YWJsZV9rZXlfaXNfZXF1YWwodm9pZCogYSwgdm9pZCogYikKLXsKLSAgICByZXR1cm4gYSA9PSBi
OwotfQotCi1QQVNfQ1JFQVRFX0hBU0hUQUJMRShwYXNfc3VicGFnZV9tYXBfaGFzaHRhYmxlLAot
ICAgICAgICAgICAgICAgICAgICAgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZV9lbnRyeSwKLSAg
ICAgICAgICAgICAgICAgICAgIHBhc19zdWJwYWdlX21hcF9oYXNodGFibGVfa2V5KTsKLQotZXh0
ZXJuIFBBU19BUEkgcGFzX3N1YnBhZ2VfbWFwX2hhc2h0YWJsZSBwYXNfc3VicGFnZV9tYXBfaGFz
aHRhYmxlX2luc3RhbmNlOwotCi0vKiBUaGlzIGluaXRpYWxpemVzIGFuIGVudHJ5IGZvciBhIHN5
c3RlbSAoYWthIGZ1bGwpIHBhZ2UgaW4gdGhlIG1hcCBiYXNlZCBvbiBhbiBhbGxvY2F0aW9uIG9m
Ci0gICB6ZXJvIG9yIG1vcmUgc3VicGFnZXMuIFRoaXMgaGFzIHNvbWUgaW1wbGljYXRpb25zOgot
Ci0gICAtIElmIHlvdSBhbGxvY2F0ZSBtZW1vcnkgZm9yIGEgc3VicGFnZSBzb21laG93LCB0aGVu
IHlvdSBtdXN0IGFsc28gYWxsb2NhdGUgdGhlIHJlc3Qgb2YgdGhlCi0gICAgIG1lbW9yeSBpbiB0
aGUgZnVsbCBwYWdlIGFzIHN1YnBhZ2VzLgotCi0gICAtIFRoZSBjb21taXQgc3RhdGUgb2YgYWxs
IHN1YnBhZ2VzIHdpdGhpbiB0aGUgZnVsbCBwYWdlIG11c3Qgc3RhcnQgdGhlIHNhbWUgd2F5LiBT
bywgaWYgeW91Ci0gICAgIGFsbG9jYXRlIHRoZSBmaXJzdCBzdWJwYWdlIGluIGEgZnVsbCBwYWdl
IGFuZCB0ZWxsIHRoZSBtYXAgdGhhdCBpdCdzIGNvbW1pdHRlZCwgdGhlbiB3aGVuZXZlcgotICAg
ICB5b3UgZG8gZ2V0IGFyb3VuZCB0byBhbGxvY2F0aW5nIHRoZSBvdGhlciBzdWJwYWdlcywgdGhv
c2UgbXVzdCBhbHNvIHN0YXJ0IGNvbW1pdHRlZC4gSXQncyBPSwotICAgICBpZiBpbiB0aGUgbWVh
bnRpbWUgdGhlIGZpcnN0IHN1YnBhZ2UgZ290IGRlY29tbWl0dGVkOyB0aGUgcG9pbnQgaXMgdGhh
dCB3aGF0ZXZlciB0aGUgc3RhcnQKLSAgICAgc3RhdGUgd2FzIChjb21taXR0ZWQgaW4gdGhlIGV4
YW1wbGUpIG11c3QgYWxzbyBiZSB0aGUgc3RhcnQgc3RhdGUgZm9yIGFsbCBvdGhlciBwYWdlcy4g
VGhhdCdzCi0gICAgIGJlY2F1c2UgaWYgdGhlIHN1YnBhZ2UgbWFwIGlzIHRvbGQgYWJvdXQgYSBm
dWxsIHBhZ2UgZm9yIHRoZSBmaXJzdCB0aW1lIGluIHRoZSBmb3JtIG9mIGEKLSAgICAgY2FsbCB0
byB0aGlzIHRoYXQgaW5pdGlhbGl6ZXMgc29tZSBzdWJwYWdlIHRoZW4gdGhlIG1hcCB3aWxsIGlu
aXRpYWxpemUgdGhlIGNvbW1pdCBzdGF0ZSBvZgotICAgICB0aGUgZW50aXJlIGZ1bGwgcGFnZSB0
byB3aGF0ZXZlciB5b3UgdG9sZCB0aGlzLgotCi0gICAtIFRoZSBieXRlcyBjYW5ub3QgYmUgc28g
YmlnIHRoYXQgdGhpcyByZXF1aXJlcyBtb3JlIHRoYW4gb25lIGZ1bGwgcGFnZS4gKi8KLVBBU19B
UEkgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBwYXNfc3VicGFnZV9tYXBfYWRkKHZvaWQqIGJhc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXpl
X3QgYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfY29tbWl0X21vZGUgY29tbWl0X21vZGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2Nr
X2hvbGRfbW9kZSk7Ci0KLVBBU19BUEkgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBwYXNfc3VicGFn
ZV9tYXBfZ2V0KHZvaWQqIGJhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3QgYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7Ci0KLS8qIFRoaXMgaXMgYSBoZWxwZXIgdGhhdCBzdWJwYWdlX21hcCBhbmQgc3Vi
cGFnZV9tYXBfZW50cnkgc2hhcmUuICovCi1QQVNfQVBJIHZvaWQqIHBhc19zdWJwYWdlX21hcF9n
ZXRfZnVsbF9iYXNlKHZvaWQqIGJhc2UsIHNpemVfdCBieXRlcyk7Ci0KLVBBU19FTkRfRVhURVJO
X0M7Ci0KLSNlbmRpZiAvKiBQQVNfU1VCUEFHRV9NQVBfSCAqLwotCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnkuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXBfZW50
cnkuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3N1YnBhZ2VfbWFwX2VudHJ5LmMJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNzkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVk
ZSAicGFzX2NvbmZpZy5oIgotCi0jaWYgTElCUEFTX0VOQUJMRUQKLQotI2luY2x1ZGUgInBhc19z
dWJwYWdlX21hcF9lbnRyeS5oIgotCi0jaW5jbHVkZSAicGFzX2JpdHZlY3Rvci5oIgotI2luY2x1
ZGUgInBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCIKLSNpbmNsdWRlICJwYXNfaW1tb3J0YWxf
aGVhcC5oIgotI2luY2x1ZGUgInBhc19pbnRlcm5hbF9jb25maWcuaCIKLSNpbmNsdWRlIDxzdGRh
bGlnbi5oPgotCi1zdGF0aWMgdm9pZCBzZXRfcGFja2VkX3ZhbHVlKHBhc19zdWJwYWdlX21hcF9l
bnRyeSogZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGZ1bGxfYmFz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYml0cykKLXsKLSAgICBl
bnRyeS0+cGFja2VkX3ZhbHVlID0gKHVpbnRwdHJfdClmdWxsX2Jhc2UgfCBiaXRzOwotICAgIFBB
U19BU1NFUlQocGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2Z1bGxfYmFzZShlbnRyeSkgPT0gZnVsbF9i
YXNlKTsKLSAgICBQQVNfQVNTRVJUKHBhc19zdWJwYWdlX21hcF9lbnRyeV9iaXRzKGVudHJ5KSA9
PSBiaXRzKTsKLX0KLQotcGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBwYXNfc3VicGFnZV9tYXBfZW50
cnlfY3JlYXRlKHZvaWQqIGZ1bGxfYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tbWl0X21vZGUgY29tbWl0X21vZGUpCi17Ci0g
ICAgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeTsKLSAgICB1bnNpZ25lZCBiaXRzOwotCi0g
ICAgUEFTX0FTU0VSVCghKCh1aW50cHRyX3QpZnVsbF9iYXNlICYgKHBhc19wYWdlX21hbGxvY19h
bGlnbm1lbnQoKSAtIDEpKSk7Ci0gICAgUEFTX0FTU0VSVChwYXNfcGFnZV9tYWxsb2NfYWxpZ25t
ZW50KCkgLyBQQVNfU1VCUEFHRV9TSVpFIDw9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hp
ZnQoKSk7Ci0KLSAgICBlbnRyeSA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfbWFu
dWFsX2FsaWdubWVudCgKLSAgICAgICAgc2l6ZW9mKHBhc19zdWJwYWdlX21hcF9lbnRyeSksCi0g
ICAgICAgIGFsaWdub2YocGFzX2xvY2spLAotICAgICAgICAicGFzX3N1YnBhZ2VfbWFwX2VudHJ5
IiwKLSAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKLQotICAgIHBhc19sb2NrX2NvbnN0
cnVjdCgmZW50cnktPmNvbW1pdF9sb2NrKTsKLQotICAgIGJpdHMgPSAwOwotICAgIGlmIChjb21t
aXRfbW9kZSkgewotICAgICAgICB1aW50cHRyX3QgaW5kZXg7Ci0gICAgICAgIGZvciAoaW5kZXgg
PSBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkgLyBQQVNfU1VCUEFHRV9TSVpFOyBpbmRleC0t
OykKLSAgICAgICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0X2luX29uZV93b3JkKCZiaXRzLCBpbmRl
eCwgdHJ1ZSk7Ci0gICAgfQotCi0gICAgc2V0X3BhY2tlZF92YWx1ZShlbnRyeSwgZnVsbF9iYXNl
LCBiaXRzKTsKLQotICAgIHBhc19mZW5jZSgpOwotCi0gICAgcmV0dXJuIGVudHJ5OwotfQotCi1z
dGF0aWMgdm9pZCBwcmVwYXJlX2luZGljZXMocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBlbnRyeSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCoqIGZ1bGxfYmFzZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1aW50cHRyX3QqIGJlZ2luLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnRwdHJfdCogZW5kKQotewotICAgICpmdWxsX2Jhc2UgPSBwYXNfc3VicGFnZV9t
YXBfZW50cnlfZnVsbF9iYXNlKGVudHJ5KTsKLQotICAgICpiZWdpbiA9ICgodWludHB0cl90KWJh
c2UgLSAodWludHB0cl90KSpmdWxsX2Jhc2UpIC8gUEFTX1NVQlBBR0VfU0laRTsKLSAgICAqZW5k
ID0gKmJlZ2luICsgYnl0ZXMgLyBQQVNfU1VCUEFHRV9TSVpFOwotfQotCi12b2lkIHBhc19zdWJw
YWdlX21hcF9hc3NlcnRfY29tbWl0X3N0YXRlKHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGJhc2UsIHNp
emVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2NvbW1pdF9tb2RlIGNvbW1pdF9tb2RlKQotewotICAgIC8qIFRoaXMgZG9lc24ndCBib3RoZXIg
d2l0aCBsb2NraW5nIG9uIHRoZSBncm91bmRzIHRoYXQgd2UgZG9uJ3QgaGF2ZSBvdXQtb2YtdGhp
bi1haXIgdmFsdWVzLgotICAgICAgIFdlJ3JlIG9ubHkgYXNzZXJ0aW5nIGNvbW1pdCBzdGF0ZSB3
aGVuIGFkZGluZyBhbm90aGVyIHN1YnBhZ2UgdG8gYSBmdWxsIHBhZ2UgdGhhdCB3ZQotICAgICAg
IHByZXZpb3VzbHkgY3JlYXRlZCwgYW5kIHdlIHdhbnQgdG8gYXNzZXJ0IHRoYXQgbm9ib2R5IGNo
YW5nZWQgdGhlIGNvbW1pdCBzdGF0ZSBvZiB0aG9zZQotICAgICAgIHBhZ2VzIGluIHRoZSBtZWFu
dGltZS4gRXZlbiBpZiB0aGUgY29tbWl0IHN0YXRlIG9mIG90aGVyIHN1YnBhZ2VzIGlzIGNoYW5n
aW5nIGNvbmN1cnJlbnRseSwKLSAgICAgICB0aGUgbGFjayBvZiBvdXQtb2YtdGhpbi1haXIgdmFs
dWVzIG1lYW5zIHRoYXQgdGhlIGJpdHMgd2UncmUgYXNzZXJ0aW5nIGFib3V0IHdpbGwgc3RpbGwg
YmUKLSAgICAgICBzdHVjayBpbiB0aGUgc3RhdGUgdGhhdCB3ZSBleHBlY3RlZCB0aGVtIHRvIGJl
IGluLiAqLwotCi0gICAgdm9pZCogZnVsbF9iYXNlOwotICAgIHVpbnRwdHJfdCBiZWdpbjsKLSAg
ICB1aW50cHRyX3QgZW5kOwotICAgIHVpbnRwdHJfdCBpbmRleDsKLSAgICB1bnNpZ25lZCBiaXRz
OwotCi0gICAgcHJlcGFyZV9pbmRpY2VzKGVudHJ5LCBiYXNlLCBieXRlcywgJmZ1bGxfYmFzZSwg
JmJlZ2luLCAmZW5kKTsKLQotICAgIGJpdHMgPSBwYXNfc3VicGFnZV9tYXBfZW50cnlfYml0cyhl
bnRyeSk7Ci0KLSAgICBmb3IgKGluZGV4ID0gZW5kOyBpbmRleC0tID4gYmVnaW47KQotICAgICAg
ICBQQVNfQVNTRVJUKHBhc19iaXR2ZWN0b3JfZ2V0X2Zyb21fb25lX3dvcmQoJmJpdHMsIGluZGV4
KSA9PSAhIWNvbW1pdF9tb2RlKTsKLX0KLQotc3RhdGljIHZvaWQgc2V0X2JpdHMocGFzX3N1YnBh
Z2VfbWFwX2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGJhc2UsIHNp
emVfdCBieXRlcywKLSAgICAgICAgICAgICAgICAgICAgIHBhc19jb21taXRfbW9kZSBjb21taXRf
bW9kZSwKLSAgICAgICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGxv
ZywKLSAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9s
ZF9tb2RlKQotewotICAgIHZvaWQqIGZ1bGxfYmFzZTsKLSAgICB1aW50cHRyX3QgYmVnaW47Ci0g
ICAgdWludHB0cl90IGVuZDsKLSAgICB1aW50cHRyX3QgaW5kZXg7Ci0gICAgdW5zaWduZWQgb2xk
X2JpdHM7Ci0gICAgdW5zaWduZWQgYml0czsKLQotICAgIHBhc19sb2NrX2Fzc2VydF9oZWxkKCZl
bnRyeS0+Y29tbWl0X2xvY2spOwotCi0gICAgcHJlcGFyZV9pbmRpY2VzKGVudHJ5LCBiYXNlLCBi
eXRlcywgJmZ1bGxfYmFzZSwgJmJlZ2luLCAmZW5kKTsKLQotICAgIG9sZF9iaXRzID0gcGFzX3N1
YnBhZ2VfbWFwX2VudHJ5X2JpdHMoZW50cnkpOwotICAgIGJpdHMgPSBvbGRfYml0czsKLQotICAg
IGZvciAoaW5kZXggPSBlbmQ7IGluZGV4LS0gPiBiZWdpbjspCi0gICAgICAgIHBhc19iaXR2ZWN0
b3Jfc2V0X2luX29uZV93b3JkKCZiaXRzLCBpbmRleCwgY29tbWl0X21vZGUpOwotCi0gICAgc2V0
X3BhY2tlZF92YWx1ZShlbnRyeSwgZnVsbF9iYXNlLCBiaXRzKTsKLQotICAgIGlmICghb2xkX2Jp
dHMgJiYgYml0cykgewotICAgICAgICBQQVNfQVNTRVJUKGNvbW1pdF9tb2RlKTsKLSAgICAgICAg
cGFzX3BhZ2VfbWFsbG9jX2NvbW1pdChmdWxsX2Jhc2UsIHBhc19wYWdlX21hbGxvY19hbGlnbm1l
bnQoKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAob2xkX2JpdHMgJiYgIWJp
dHMpIHsKLSAgICAgICAgUEFTX0FTU0VSVCghY29tbWl0X21vZGUpOwotICAgICAgICBwYXNfZGVm
ZXJyZWRfZGVjb21taXRfbG9nX2FkZF9tYXliZV9sb2NrZWQoCi0gICAgICAgICAgICBsb2csCi0g
ICAgICAgICAgICBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUoCi0gICAgICAgICAgICAgICAgKHVp
bnRwdHJfdClmdWxsX2Jhc2UsICh1aW50cHRyX3QpZnVsbF9iYXNlICsgcGFzX3BhZ2VfbWFsbG9j
X2FsaWdubWVudCgpLAotICAgICAgICAgICAgICAgICZlbnRyeS0+Y29tbWl0X2xvY2spLAotICAg
ICAgICAgICAgcGFzX3JhbmdlX2lzX2xvY2tlZCwKLSAgICAgICAgICAgIGhlYXBfbG9ja19ob2xk
X21vZGUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFjb21taXRfbW9kZSkK
LSAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ191bmxvY2tfYWZ0ZXJfYWJvcnRlZF9h
ZGQobG9nLCAmZW50cnktPmNvbW1pdF9sb2NrKTsKLX0KLQotdm9pZCBwYXNfc3VicGFnZV9tYXBf
ZW50cnlfY29tbWl0KHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdm9pZCogYmFzZSwgc2l6ZV90IGJ5dGVzKQotewotICAgIC8q
IE5PVEU6IHBhc19sb2NrX2lzX25vdF9oZWxkIGNhbiBiZSBhIGxpZSBzaW5jZSBzZXRfYml0cyBk
b2VzIG5vdCB1c2UgdGhhdCB2YWx1ZSB1bmxlc3MKLSAgICAgICB3ZSBhcmUgZGVjb21taXR0aW5n
LiAqLwotICAgIHNldF9iaXRzKGVudHJ5LCBiYXNlLCBieXRlcywgcGFzX2NvbW1pdHRlZCwgTlVM
TCwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwotfQotCi0vKiBIYXZlIHRvIGFscmVhZHkgaG9sZCB0
aGUgY29tbWl0IGxvY2sgdG8gZG8gdGhpcy4gKi8KLXZvaWQgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5
X2RlY29tbWl0KHBhc19zdWJwYWdlX21hcF9lbnRyeSogZW50cnksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBsb2cs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUg
aGVhcF9sb2NrX2hvbGRfbW9kZSkKLXsKLSAgICBzZXRfYml0cyhlbnRyeSwgYmFzZSwgYnl0ZXMs
IHBhc19kZWNvbW1pdHRlZCwgbG9nLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLX0KLQotI2VuZGlm
IC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3VicGFnZV9tYXBfZW50cnkuaAkocmV2aXNpb24gMjgy
MjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N1YnBhZ2VfbWFw
X2VudHJ5LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpZm5kZWYgUEFTX1NVQlBBR0VfTUFQX0VO
VFJZX0gKLSNkZWZpbmUgUEFTX1NVQlBBR0VfTUFQX0VOVFJZX0gKLQotI2luY2x1ZGUgInBhc19j
b21taXRfbW9kZS5oIgotI2luY2x1ZGUgInBhc19sb2NrLmgiCi0jaW5jbHVkZSAicGFzX3BhZ2Vf
bWFsbG9jLmgiCi0KLVBBU19CRUdJTl9FWFRFUk5fQzsKLQotc3RydWN0IHBhc19kZWZlcnJlZF9k
ZWNvbW1pdF9sb2c7Ci1zdHJ1Y3QgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5OwotdHlwZWRlZiBzdHJ1
Y3QgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nOwot
dHlwZWRlZiBzdHJ1Y3QgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5IHBhc19zdWJwYWdlX21hcF9lbnRy
eTsKLQotLyogTk9URTogVGhpcyBpcyA0LWJ5dGUgYWxpZ25lZCEgKi8KLXN0cnVjdCBwYXNfc3Vi
cGFnZV9tYXBfZW50cnkgewotICAgIHBhc19sb2NrIGNvbW1pdF9sb2NrOwotCi0gICAgLyogVGhp
cyBpcyBsaWtlIGEgcGFnZSBwb2ludGVyLCBleGNlcHQgdGhhdCB0aGUgbG93IGJpdHMgdGhhdCB3
b3VsZCBub3JtYWxseSBiZSB6ZXJvIGZvciBhIHBhZ2UKLSAgICAgICBwb2ludGVyIChpLmUuIHRo
ZSBwYWdlIG9mZnNldCBiaXRzKSBhcmUgdXNlZCBhcyBhIGJpdG1hcC4gVGhpcyBjb25zdHJhaW5z
IHRoZSBwb3NzaWJsZSBzeXN0ZW0KLSAgICAgICBwYWdlIHNpemUgYXMgZm9sbG93czoKLSAgICAg
ICAKLSAgICAgICAgICAgU1lTVEVNX1BBR0VfU0laRS9sb2coU1lTVEVNX1BBR0VfU0laRSkgPD0g
UEFTX1NVQlBBR0VfU0laRQotCi0gICAgICAgV2hpY2ggY2FuIGJlIGFsc28gd3JpdHRlbiBhcyAo
aWYgd2Ugd2FudCB0byB1c2UgaW50ZWdlcnMpOgotICAgIAotICAgICAgICAgICBTWVNURU1fUEFH
RV9TSVpFL1BBU19TVUJQQUdFX1NJWkUgPD0gbG9nKFNZU1RFTV9QQUdFX1NJWkUpCi0KLSAgICAg
ICBOT1RFOiBUaGlzIGlzIG5vdCB1aW50cHRyX3QtYWxpZ25lZCEgV2UgbGV2ZXJhZ2UgdGhlIGZh
Y3QgdGhhdCB0aGlzIGlzIGFsd2F5cyBhY2Nlc3NlZCB1bmRlcgotICAgICAgIHRoZSBjb21taXQg
bG9jayBhbmQgc2F2ZSBzb21lIHNwYWNlLiBXZSBhbHNvIGxldmVyYWdlIHRoZSBmYWN0IHRoYXQg
dGhlIHBhZ2UgZnVsbCBiYXNlIGJpdHMKLSAgICAgICBhcmUgaW1tdXRhYmxlLCBzbyByZWFkaW5n
IHRob3NlIGNhbiBiZSBkb25lIGF0IGFueSB0aW1lLCB3aXRob3V0IGxvY2tpbmcuICovCi0gICAg
dWludHB0cl90IHBhY2tlZF92YWx1ZTsKLX07Ci0KLVBBU19BUEkgcGFzX3N1YnBhZ2VfbWFwX2Vu
dHJ5KiBwYXNfc3VicGFnZV9tYXBfZW50cnlfY3JlYXRlKHZvaWQqIGZ1bGxfYmFzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19jb21taXRfbW9kZSBjb21taXRfbW9kZSk7Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCogcGFzX3N1
YnBhZ2VfbWFwX2VudHJ5X2Z1bGxfYmFzZShwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5KQot
ewotICAgIHJldHVybiAodm9pZCopKGVudHJ5LT5wYWNrZWRfdmFsdWUgJiAtcGFzX3BhZ2VfbWFs
bG9jX2FsaWdubWVudCgpKTsKLX0KLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBwYXNfc3VicGFn
ZV9tYXBfZW50cnlfYml0cyhwYXNfc3VicGFnZV9tYXBfZW50cnkqIGVudHJ5KQotewotICAgIHVp
bnRwdHJfdCByZXN1bHQgPSBlbnRyeS0+cGFja2VkX3ZhbHVlICYgKHBhc19wYWdlX21hbGxvY19h
bGlnbm1lbnQoKSAtIDEpOwotICAgIFBBU19BU1NFUlQoKHVuc2lnbmVkKXJlc3VsdCA9PSByZXN1
bHQpOwotICAgIHJldHVybiAodW5zaWduZWQpcmVzdWx0OwotfQotCi1QQVNfQVBJIHZvaWQgcGFz
X3N1YnBhZ2VfbWFwX2Fzc2VydF9jb21taXRfc3RhdGUocGFzX3N1YnBhZ2VfbWFwX2VudHJ5KiBl
bnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2
b2lkKiBiYXNlLCBzaXplX3QgYnl0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2NvbW1pdF9tb2RlIGNvbW1pdF9tb2RlKTsKLQotLyogSGF2
ZSB0byBhbHJlYWR5IGhvbGQgdGhlIGNvbW1pdCBsb2NrIHRvIGRvIHRoaXMuICovCi1QQVNfQVBJ
IHZvaWQgcGFzX3N1YnBhZ2VfbWFwX2VudHJ5X2NvbW1pdChwYXNfc3VicGFnZV9tYXBfZW50cnkq
IGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCog
YmFzZSwgc2l6ZV90IGJ5dGVzKTsKLQotLyogSGF2ZSB0byBhbHJlYWR5IGhvbGQgdGhlIGNvbW1p
dCBsb2NrIHRvIGRvIHRoaXMuIFRoaXMgd2lsbCByZWxlYXNlIHRoZSBjb21taXQgbG9jay4gKi8K
LVBBU19BUEkgdm9pZCBwYXNfc3VicGFnZV9tYXBfZW50cnlfZGVjb21taXQocGFzX3N1YnBhZ2Vf
bWFwX2VudHJ5KiBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCogYmFzZSwgc2l6ZV90IGJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBsb2csCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9k
ZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLQotUEFTX0VORF9FWFRFUk5fQzsKLQotI2VuZGlmIC8q
IFBBU19TVUJQQUdFX01BUF9FTlRSWV9IICovCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMJKHJl
dmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190
aHJlYWRfbG9jYWxfY2FjaGUuYwkod29ya2luZyBjb3B5KQpAQCAtMzEsMTQgKzMxLDEzIEBACiAK
ICNpbmNsdWRlIDxtYWNoL3RocmVhZF9hY3QuaD4KICNpbmNsdWRlICJwYXNfYWxsX2hlYXBfY29u
Zmlncy5oIgotI2luY2x1ZGUgInBhc19hbGxfbWFnYXppbmVzLmgiCiAjaW5jbHVkZSAicGFzX2Nv
bXBhY3RfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfZGVidWdfaGVh
cC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCiAj
aW5jbHVkZSAicGFzX21vbm90b25pY190aW1lLmgiCiAjaW5jbHVkZSAicGFzX3NjYXZlbmdlci5o
IgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9pbmxpbmVz
LmgiCisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgog
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2UuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dC5oIgogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9k
ZS5oIgpAQCAtNTksMTggKzU4LDYgQEAgc2l6ZV90IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6
ZV9mb3JfYQogc3RhdGljIHZvaWQgZGVhbGxvY2F0ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0
aHJlYWRfbG9jYWxfY2FjaGUpCiB7CiAgICAgY2hhciogYmVnaW47Ci0gICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBsYXlvdXRfbm9kZTsKLQotICAgIGZvciAoUEFTX1RIUkVB
RF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7Ci0gICAg
ICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OwotCi0gICAgICAgIGFsbG9j
YXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9j
YXRvcl9pbmRleChsYXlvdXRfbm9kZSk7Ci0gICAgICAgIAotICAgICAgICBpZiAoYWxsb2NhdG9y
X2luZGV4ID49IHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5k
KQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVzdHJ1
Y3QoCi0gICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0
b3JfaW1wbCh0aHJlYWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9pbmRleCkpOwotICAgIH0KIAog
ICAgIHBhc19jb21wYWN0X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2RlYWxsb2NhdGUoCiAgICAg
ICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+c2hvdWxkX3N0b3BfYml0dmVjdG9yLApAQCAtMTczLDEz
ICsxNjAsOCBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBwYXNfdGhyZWFkX2xvY2FsCiAgICAg
CiAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQgPSBh
bGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQ7CiAKLSAgICBmb3IgKFBBU19USFJFQURfTE9DQUxf
Q0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkgewotICAgICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX2NvbnN0cnVjdCgKLSAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAotICAgICAgICAgICAgICAgIHRocmVhZF9s
b2NhbF9jYWNoZSwKLSAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5b3V0X25vZGUpKSwKLSAgICAgICAgICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShsYXlvdXRfbm9k
ZSkpOwotICAgIH0KKyAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hf
QUxMT0NBVE9SKGxheW91dF9ub2RlKSkKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9jb25zdHJ1Y3QobGF5b3V0X25vZGUsIHRocmVhZF9sb2NhbF9jYWNoZSk7CiAK
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NldF9pbXBsKHRocmVhZF9sb2NhbF9jYWNoZSk7
CiAgICAgCkBAIC0yNDIsMTAgKzIyNCw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBh
c190aHJlYWRfbG8KICAgICBvbGRfaW5kZXhfdXBwZXJfYm91bmQgPSB0aHJlYWRfbG9jYWxfY2Fj
aGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZDsKICAgICAKICAgICBQQVNfQVNTRVJUKGRl
c2lyZWRfYWxsb2NhdG9yX2luZGV4ID49IG9sZF9pbmRleF91cHBlcl9ib3VuZCk7Ci0gICAgCi0g
ICAgLyogSXQgY291bGQgYmUgdGhhdCB3ZSBqdXN0IGRvbid0IGhhdmUgYW4gYWxsb2NhdG9yIGlu
ZGV4IHlldC4gKi8KLSAgICBpZiAoZGVzaXJlZF9hbGxvY2F0b3JfaW5kZXggPj0gKHBhc19hbGxv
Y2F0b3JfaW5kZXgpVUlOVF9NQVgpCi0gICAgICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9y
X3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworICAgIFBBU19BU1NFUlQoZGVzaXJlZF9hbGxvY2F0
b3JfaW5kZXggPCAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CiAgICAgCiAgICAgLyog
UmF0aGVyIHRoYW4gY29weSB0aGUgZGVhbGxvY2F0aW9uIGxvZyBsZXQncyBqdXN0IGZsdXNoIGl0
LiAqLwogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyh0
aHJlYWRfbG9jYWxfY2FjaGUsIGhlYXBfbG9ja19ob2xkX21vZGUpOwpAQCAtMjc4LDE1ICsyNTcs
MTMgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX3RocmVhZF9sbwogICAgICAgICBm
b3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9u
b2RlKSkgewogICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7
CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChsYXlvdXRfbm9kZSk7
CisgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhsYXlvdXRfbm9kZSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gb2xkX2luZGV4X3Vw
cGVyX2JvdW5kKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9tb3ZlKAotICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
Z2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAotICAgICAgICAgICAgICAgICAgICBuZXdfdGhyZWFk
X2xvY2FsX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpLAotICAgICAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAotICAgICAgICAgICAgICAg
ICAgICB0aHJlYWRfbG9jYWxfY2FjaGUsIGFsbG9jYXRvcl9pbmRleCkpOworCisgICAgICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX21vdmUoCisgICAgICAgICAgICAg
ICAgbGF5b3V0X25vZGUsIG5ld190aHJlYWRfbG9jYWxfY2FjaGUsIHRocmVhZF9sb2NhbF9jYWNo
ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBtZW1jcHkobmV3X3RocmVhZF9sb2NhbF9jYWNoZS0+
c2hvdWxkX3N0b3BfYml0dmVjdG9yLApAQCAtMzAwLDE2ICsyNzcsMTQgQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZXN1bHQgcGFzX3RocmVhZF9sbwogICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9D
QUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7CiAgICAgICAgIHBhc19h
bGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OwogCi0gICAgICAgIGFsbG9jYXRvcl9pbmRl
eCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRl
eChsYXlvdXRfbm9kZSk7CisgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKGxheW91dF9u
b2RlKTsKICAgICAgICAgCiAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPCBvbGRfaW5kZXhf
dXBwZXJfYm91bmQpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKGFsbG9jYXRv
cl9pbmRleCA+PSBkZXNpcmVkX2luZGV4X3VwcGVyX2JvdW5kKQogICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KAotICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoCi0gICAgICAgICAg
ICAgICAgbmV3X3RocmVhZF9sb2NhbF9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSwKLSAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShsYXlv
dXRfbm9kZSkpOworCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
Y29uc3RydWN0KGxheW91dF9ub2RlLCBuZXdfdGhyZWFkX2xvY2FsX2NhY2hlKTsKICAgICB9CiAK
ICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKQEAgLTM0NSwzMCArMzIwLDI2IEBAIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXQKIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnMocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFk
X2xvY2FsX2NhY2hlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIHsKLSAgICBz
dGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Ci0gICAgCiAgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBsYXlvdXRfbm9kZTsKIAogICAgIC8qIFdlIGhhdmUgdG8g
aG9sZCB0aGUgaGVhcCBsb2NrIHRvIGRvIHRoaW5ncyB0byBvdXIgbG9jYWwgYWxsb2NhdG9ycyB1
bmxlc3Mgd2UgYWxzbyBzZXQgdGhlCiAgICAgICAgaXNfaW5fdXNlIGJpdC4gKi8KICAgICBwYXNf
aGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICAK
KyAgICBwYXNfbG9ja19sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9s
b2NrKTsKKwogICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExP
Q0FUT1IobGF5b3V0X25vZGUpKSB7CiAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2Nh
dG9yX2luZGV4OwotICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yICphbGxvY2F0b3I7CiAKLSAg
ICAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9nZXRfYWxsb2NhdG9yX2luZGV4KGxheW91dF9ub2RlKTsKKyAgICAgICAgYWxsb2NhdG9yX2lu
ZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2lu
ZGV4X2dlbmVyaWMobGF5b3V0X25vZGUpOwogICAgICAgICAKICAgICAgICAgaWYgKGFsbG9jYXRv
cl9pbmRleCA+PSB0aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3Vu
ZCkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAotICAgICAgICAgICAgdGhyZWFk
X2xvY2FsX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOwotICAgICAgICBpZiAodmVyYm9zZSkKLSAg
ICAgICAgICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9jYXRvciAlcCBiZWNhdXNlIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxvY2F0b3JzXG4iLCBhbGxvY2F0b3IpOwotICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3AoYWxsb2NhdG9yLCBwYXNfbG9ja19sb2NrX21v
ZGVfbG9jaywgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfc3RvcCgKKyAgICAgICAgICAgIGxheW91dF9ub2RlLCB0aHJlYWRfbG9j
YWxfY2FjaGUsIHBhc19sb2NrX2xvY2tfbW9kZV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKTsKICAg
ICB9CiAKKyAgICBwYXNfbG9ja191bmxvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9n
X2ZsdXNoX2xvY2spOwogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVh
cF9sb2NrX2hvbGRfbW9kZSk7CiB9CiAKQEAgLTM5OCw3ICszNjksNyBAQCBzdGF0aWMgYm9vbCBz
dG9wX2xvY2FsX2FsbG9jYXRvcnNfaWZfbmVjCiAgICAgCiAgICAgc3RvcF9sb2NhbF9hbGxvY2F0
b3JzX2lmX25lY2Vzc2FyeV9kYXRhKiBkYXRhOwogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxs
b2NhdG9yX2luZGV4OwotICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKKyAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBzY2F2ZW5nZXJfZGF0YTsKIAogICAg
IGRhdGEgPSBhcmc7CiAKQEAgLTQwOCwxOCArMzc5LDE5IEBAIHN0YXRpYyBib29sIHN0b3BfbG9j
YWxfYWxsb2NhdG9yc19pZl9uZWMKICAgICAKICAgICBwYXNfYml0dmVjdG9yX3NldChkYXRhLT5z
aG91bGRfc3RvcF9iaXR2ZWN0b3IsIGFsbG9jYXRvcl9pbmRleCwgZmFsc2UpOwogICAgIAotICAg
IGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9p
bXBsKAorICAgIHNjYXZlbmdlcl9kYXRhID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9j
YWxfYWxsb2NhdG9yX2ltcGwoCiAgICAgICAgIGRhdGEtPnRocmVhZF9sb2NhbF9jYWNoZSwgYWxs
b2NhdG9yX2luZGV4KTsKLSAgICAKLSAgICBpZiAoYWxsb2NhdG9yID09IGRhdGEtPnJlcXVlc3Rp
bmdfYWxsb2NhdG9yKQorCisgICAgaWYgKChwYXNfbG9jYWxfYWxsb2NhdG9yKilzY2F2ZW5nZXJf
ZGF0YSA9PSBkYXRhLT5yZXF1ZXN0aW5nX2FsbG9jYXRvcikKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgCi0gICAgaWYgKCFhbGxvY2F0b3ItPnNob3VsZF9zdG9wX2NvdW50KQorICAgIGlmICgh
c2NhdmVuZ2VyX2RhdGEtPnNob3VsZF9zdG9wX2NvdW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAKICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2Nh
dG9yICVwIGJlY2F1c2UgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRv
cnNfaWZfbmVjZXNzYXJ5XG4iLCBhbGxvY2F0b3IpOwotICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c3RvcChhbGxvY2F0b3IsIHBhc19sb2NrX2xvY2tfbW9kZV9sb2NrLCBkYXRhLT5oZWFwX2xvY2tf
aG9sZF9tb2RlKTsKKyAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdG9yICVwIGJlY2F1
c2UgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnNfaWZfbmVjZXNz
YXJ5XG4iLCBzY2F2ZW5nZXJfZGF0YSk7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5n
ZXJfZGF0YV9zdG9wKAorICAgICAgICBzY2F2ZW5nZXJfZGF0YSwgcGFzX2xvY2tfbG9ja19tb2Rl
X2xvY2ssIGRhdGEtPmhlYXBfbG9ja19ob2xkX21vZGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC00NTEsNiArNDIzLDcgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9j
YWxfYQogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZAogcHJvY2Vzc19kZWFsbG9jYXRp
b25fbG9nX3dpdGhfY29uZmlnKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlv
bl9tb2RlIGRlYWxsb2NhdGlvbl9tb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnIHBhZ2VfY29uZmlnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCogaW5kZXgsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGVuY29kZWRfYmVnaW4sCkBAIC00Nzcs
NyArNDUwLDggQEAgcHJvY2Vzc19kZWFsbG9jYXRpb25fbG9nX3dpdGhfY29uZmlnKHBhcwogCiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBsYXN0X2hlbGRfbG9jayA9ICpoZWxkX2xvY2s7
Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUoYmVnaW4sIGhlbGRf
bG9jaywgcGFnZV9jb25maWcpOworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFs
bG9jYXRlKAorICAgICAgICAgICAgICAgIGJlZ2luLCBoZWxkX2xvY2ssIGRlYWxsb2NhdGlvbl9t
b2RlLCBjYWNoZSwgcGFnZV9jb25maWcpOwogICAgICAgICAgICAgaWYgKHZlcmJvc2UgJiYgKmhl
bGRfbG9jayAhPSBsYXN0X2hlbGRfbG9jayAmJiBsYXN0X2hlbGRfbG9jaykKICAgICAgICAgICAg
ICAgICBwYXNfbG9nKCJTd2l0Y2hlZCBsb2NrIGZyb20gJXAgdG8gJXAuXG4iLCBsYXN0X2hlbGRf
bG9jaywgKmhlbGRfbG9jayk7CiAgICAgICAgICAgICAKQEAgLTQ5NywxOSArNDcxLDE1IEBAIHBy
b2Nlc3NfZGVhbGxvY2F0aW9uX2xvZ193aXRoX2NvbmZpZyhwYXMKICAgICB9CiB9CiAKLXN0YXRp
YyB2b2lkIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhy
ZWFkX2xvY2FsX2NhY2hlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
bG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBpc19sb2NhbCkKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2coCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSog
dGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2Rl
IGRlYWxsb2NhdGlvbl9tb2RlKQogewogICAgIHNpemVfdCBpbmRleDsKICAgICBwYXNfbG9jayog
aGVsZF9sb2NrOwotICAgIAotICAgIGlmICghdGhyZWFkX2xvY2FsX2NhY2hlKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBwYXNfbG9ja19sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxv
Z19mbHVzaF9sb2NrKTsKLSAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKIAorICAgIHBhc19sb2Nr
X3Rlc3RpbmdfYXNzZXJ0X2hlbGQoJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNo
X2xvY2spOworICAgIAogICAgIGluZGV4ID0gdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRp
b25fbG9nX2luZGV4OwogICAgIGhlbGRfbG9jayA9IE5VTEw7CiAKQEAgLTUyMyw3ICs0OTMsNyBA
QCBzdGF0aWMgdm9pZCBmbHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190CiAjZGVmaW5lIFBBU19E
RUZJTkVfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19LSU5EKG5hbWUsIHZhbHVlKSBcCiAgICAgICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF8gIyMgbmFtZTogXAogICAgICAg
ICAgICAgcHJvY2Vzc19kZWFsbG9jYXRpb25fbG9nX3dpdGhfY29uZmlnKCBcCi0gICAgICAgICAg
ICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCB2YWx1ZSwgJmluZGV4LCBlbmNvZGVkX2JlZ2luLCAm
aGVsZF9sb2NrKTsgXAorICAgICAgICAgICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZSwgZGVhbGxv
Y2F0aW9uX21vZGUsIHZhbHVlLCAmaW5kZXgsIGVuY29kZWRfYmVnaW4sICZoZWxkX2xvY2spOyBc
CiAgICAgICAgICAgICBicmVhazsKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kLmRlZiIKICN1bmRlZiBQQVNfREVGSU5FX1NFR1JFR0FURURfUEFHRV9DT05GSUdfS0lO
RApAQCAtNTMxLDI0ICs1MDEsMzcgQEAgc3RhdGljIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xv
ZyhwYXNfdAogICAgIH0KICAgICAKICAgICBwYXNfbG9ja19zd2l0Y2goJmhlbGRfbG9jaywgTlVM
TCk7Ci0gICAgCi0gICAgaWYgKGlzX2xvY2FsKSB7Ci0gICAgICAgIHRocmVhZF9sb2NhbF9jYWNo
ZS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleCA9IDA7Ci0gICAgICAgIHRocmVhZF9sb2NhbF9jYWNo
ZS0+bnVtX2xvZ2dlZF9ieXRlcyA9IDA7Ci0gICAgfQorfQogCi0gICAgcGFzX2NvbXBpbGVyX2Zl
bmNlKCk7Ci0gICAgcGFzX2xvY2tfdW5sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxv
Z19mbHVzaF9sb2NrKTsKK3N0YXRpYyB2b2lkIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZm9yX3Nj
YXZlbmdlcihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUpCit7Cisg
ICAgaWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfaW5kZXgpCisgICAg
ICAgIHJldHVybjsKICAgICAKLSAgICBpZiAoaGVhcF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNfbG9j
a19pc19ub3RfaGVsZCkKLSAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlfZWxpZ2liaWxpdHlf
aWZfbmVlZGVkKCk7CisgICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyh0aHJlYWRfbG9jYWxfY2Fj
aGUsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZSk7CiB9CiAKIHZvaWQg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190aHJlYWRf
bG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tf
aG9sZF9tb2RlKQogewotICAgIGJvb2wgaXNfbG9jYWwgPSB0cnVlOwotICAgIGZsdXNoX2RlYWxs
b2NhdGlvbl9sb2codGhyZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlLCBpc19s
b2NhbCk7CisgICAgaWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNoX2xv
Y2spOworCisgICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyh0aHJlYWRfbG9jYWxfY2FjaGUsIHBh
c19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl90b192aWV3X2NhY2hlX21vZGUpOworICAgIAorICAg
IHRocmVhZF9sb2NhbF9jYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleCA9IDA7CisgICAgdGhy
ZWFkX2xvY2FsX2NhY2hlLT5udW1fbG9nZ2VkX2J5dGVzID0gMDsKKworICAgIC8qIERpcnR5aW5n
IHRoZSBkZWFsbG9jYXRpb24gbG9nIGlzIGEgc2lnbmFsIHRvIHRoZSBzY2F2ZW5nZXIgdGhhdCB3
ZSBhcmUgYWN0aXZlbHkgb3BlcmF0aW5nIG9uCisgICAgICAgdGhpcyBsb2cuICovCisgICAgdGhy
ZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2RpcnR5ID0gdHJ1ZTsKKworICAgIHBh
c19sb2NrX3VubG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hfbG9jayk7
CisgICAgCisgICAgaWYgKGhlYXBfbG9ja19ob2xkX21vZGUgPT0gcGFzX2xvY2tfaXNfbm90X2hl
bGQpCisgICAgICAgIHBhc19zY2F2ZW5nZXJfbm90aWZ5X2VsaWdpYmlsaXR5X2lmX25lZWRlZCgp
OwogfQogCiBzdGF0aWMgdm9pZCBzdXNwZW5kKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hl
KQpAQCAtNTg3LDcgKzU3MCw3IEBAIHN0YXRpYyB2b2lkIHJlc3VtZShwYXNfdGhyZWFkX2xvY2Fs
X2NhY2gKICAgICAKICAgICBpZiAoY2FjaGUtPnRocmVhZCA9PSBwdGhyZWFkX3NlbGYoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgcmVzdWx0ID0gdGhyZWFkX3Jlc3VtZShwdGhyZWFk
X21hY2hfdGhyZWFkX25wKGNhY2hlLT50aHJlYWQpKTsKICAgICAKICAgICBQQVNfQVNTRVJUKHJl
c3VsdCA9PSBLRVJOX1NVQ0NFU1MpOwpAQCAtNjI3LDcgKzYxMCwyNiBAQCBib29sIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfCiAgICAgICAgIGNhY2hlID0gbm9kZS0+Y2FjaGU7
CiAgICAgICAgIGlmICghY2FjaGUpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgCisK
KyAgICAgICAgcGFzX2xvY2tfbG9jaygmbm9kZS0+bG9nX2ZsdXNoX2xvY2spOworCisgICAgICAg
IHN3aXRjaCAoZGVhbGxvY2F0b3JfYWN0aW9uKSB7CisgICAgICAgIGNhc2UgcGFzX2RlYWxsb2Nh
dG9yX3NjYXZlbmdlX25vX2FjdGlvbjoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
CisgICAgICAgIGNhc2UgcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2ZsdXNoX2xvZ19pZl9jbGVh
bl9hY3Rpb246CisgICAgICAgICAgICBpZiAoY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfZGlydHkp
IHsKKyAgICAgICAgICAgICAgICBjYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19kaXJ0eSA9IGZhbHNl
OworICAgICAgICAgICAgICAgIHJlc3VsdCA9ICEhY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfaW5k
ZXg7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBmbHVzaF9kZWFsbG9jYXRp
b25fbG9nX2Zvcl9zY2F2ZW5nZXIoY2FjaGUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAKKyAgICAgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfZmx1c2hfbG9nX2Fj
dGlvbjoKKyAgICAgICAgICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZm9yX3NjYXZlbmdlcihj
YWNoZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChhbGxv
Y2F0b3JfYWN0aW9uICE9IHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uKSB7CiAgICAg
ICAgICAgICBib29sIGRpZF9zdXNwZW5kOwogICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSBsYXlvdXRfbm9kZTsKQEAgLTYzNiwzOSArNjM4LDQwIEBAIGJvb2wg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc18KIAogICAgICAgICAgICAgZm9yIChQ
QVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkp
IHsKICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsK
LSAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7CisgICAgICAg
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogc2NhdmVuZ2VyX2Rh
dGE7CiAKLSAgICAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgobGF5b3V0X25vZGUpOworICAg
ICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9CisgICAgICAgICAgICAgICAgICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmlj
KGxheW91dF9ub2RlKTsKIAogICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0g
Y2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCkKICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yID0gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2ltcGwoY2FjaGUsIGFsbG9j
YXRvcl9pbmRleCk7Ci0gICAgICAgICAgICAgICAgCisKKyAgICAgICAgICAgICAgICBzY2F2ZW5n
ZXJfZGF0YSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBs
KGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworCiAgICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRv
cl9hY3Rpb24gPT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0aW9uKSB7
CiAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc2hvdWxkX3N0b3BfY291bnQ7CiAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19sb2coIkRvaW5nIHRoZSByZXF1ZXN0IHRoaW5neS5cbiIpOwog
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRvci0+
ZGlydHkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNjYXZlbmdlcl9kYXRhLT5kaXJ0eSkg
ewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvZygiSXQgd2FzIGRpcnR5LlxuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhbGxvY2F0b3ItPmRpcnR5ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgICAg
ICBzY2F2ZW5nZXJfZGF0YS0+ZGlydHkgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3VsdCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgICAgIC8qIEJhaWwgb3V0IGlmIGl0
J3Mgbm8gbG9uZ2VyIGFjdGl2ZS4gKi8KLSAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXNfbG9j
YWxfYWxsb2NhdG9yX2lzX2FjdGl2ZShhbGxvY2F0b3IpKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19hY3RpdmUoc2NhdmVu
Z2VyX2RhdGEpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZW1wdHkuXG4iKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkX3N0b3BfY291bnQgPSBhbGxvY2F0b3ItPnNob3VsZF9z
dG9wX2NvdW50OworICAgICAgICAgICAgICAgICAgICBzaG91bGRfc3RvcF9jb3VudCA9IHNjYXZl
bmdlcl9kYXRhLT5zaG91bGRfc3RvcF9jb3VudDsKICAgICAgICAgICAgICAgICAgICAgaWYgKHNo
b3VsZF9zdG9wX2NvdW50IDwgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9m
b3Jfc3VzcGVuZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLT5zaG91bGRf
c3RvcF9jb3VudCA9ICsrc2hvdWxkX3N0b3BfY291bnQ7CisgICAgICAgICAgICAgICAgICAgICAg
ICBzY2F2ZW5nZXJfZGF0YS0+c2hvdWxkX3N0b3BfY291bnQgPSArK3Nob3VsZF9zdG9wX2NvdW50
OwogICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICBQQVNf
QVNTRVJUKHNob3VsZF9zdG9wX2NvdW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDw9IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hvdWxkX3N0b3BfY291bnRfZm9yX3N1c3BlbmQp
OwpAQCAtNjkzLDcgKzY5Niw3IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxs
KHBhc18KICAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfYWN0aW9uID09
IHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfZm9yY2Vfc3RvcF9hY3Rpb24pOwogICAgICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19hY3Rp
dmUoYWxsb2NhdG9yKSkgeworICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRv
cl9zY2F2ZW5nZXJfZGF0YV9pc19hY3RpdmUoc2NhdmVuZ2VyX2RhdGEpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygi
SXQgd2FzIGVtcHR5LlxuIik7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNzA3
LDIzICs3MTAsMjIgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzXwog
ICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAg
ICAgICAgICAgICAgICBwYXNfbG9nKCJOZWVkIHRvIHN1c3BlbmQgZm9yIGFsbG9jYXRvciAlcFxu
IiwgYWxsb2NhdG9yKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiTmVlZCB0byBzdXNw
ZW5kIGZvciBhbGxvY2F0b3IgJXBcbiIsIHNjYXZlbmdlcl9kYXRhKTsKICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICBpZiAoIWRpZF9zdXNwZW5kKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHN1c3BlbmQoY2FjaGUpOwotICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgZGlkX3N1c3BlbmQgPSB0cnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yLT5pc19pbl91c2UpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoc2NhdmVuZ2VyX2RhdGEtPmlzX2luX3VzZSkgewogICAgICAgICAgICAg
ICAgICAgICByZXN1bHQgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdG9yICVwIHdoaWxlIHN1c3BlbmRl
ZFxuIiwgYWxsb2NhdG9yKTsKLSAgICAgICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0
b3Jfc3RvcCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvciwgcGFzX2xvY2tfbG9j
a19tb2RlX3RyeV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKSkKKyAgICAgICAgICAgICAgICAgICAg
cGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdG9yICVwIHdoaWxlIHN1c3BlbmRlZFxuIiwgc2NhdmVu
Z2VyX2RhdGEpOworICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YV9zdG9wKAorICAgICAgICAgICAgICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEs
IHBhc19sb2NrX2xvY2tfbW9kZV90cnlfbG9jaywgcGFzX2xvY2tfaXNfaGVsZCkpCiAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
QEAgLTczMSwxMiArNzMzLDcgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwo
cGFzXwogICAgICAgICAgICAgICAgIHJlc3VtZShjYWNoZSk7CiAgICAgICAgIH0KICAgICAgICAg
Ci0gICAgICAgIGlmIChkZWFsbG9jYXRvcl9hY3Rpb24gPT0gcGFzX2RlYWxsb2NhdG9yX3NjYXZl
bmdlX2ZsdXNoX2xvZ19hY3Rpb24pIHsKLSAgICAgICAgICAgIGJvb2wgaXNfbG9jYWw7Ci0gICAg
ICAgICAgICAKLSAgICAgICAgICAgIGlzX2xvY2FsID0gZmFsc2U7Ci0gICAgICAgICAgICBmbHVz
aF9kZWFsbG9jYXRpb25fbG9nKGNhY2hlLCBwYXNfbG9ja19pc19oZWxkLCBpc19sb2NhbCk7Ci0g
ICAgICAgIH0KKyAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZub2RlLT5sb2dfZmx1c2hfbG9jayk7
CiAgICAgfQogICAgIAogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVh
cF9sb2NrX2hvbGRfbW9kZSk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oCShyZXZpc2lvbiAyODIy
MzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgUEFTX1RI
UkVBRF9MT0NBTF9DQUNIRV9ICiAjZGVmaW5lIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfSAogCisj
aW5jbHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgogI2luY2x1ZGUgInBhc19hbGxvY2F0b3Jf
c2NhdmVuZ2VfYWN0aW9uLmgiCiAjaW5jbHVkZSAicGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2Fj
dGlvbi5oIgogI2luY2x1ZGUgInBhc19mYXN0X3Rscy5oIgpAQCAtNTYsNiArNTcsMTAgQEAgc3Ry
dWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGUgewogCiAgICAgdW5zaWduZWQgZGVhbGxvY2F0aW9u
X2xvZ19pbmRleDsKIAorICAgIC8qIEEgZGlydHkgYWxsb2NhdGlvbiBsb2cgaXMgb25lIHRoYXQg
aGFzIGJlZW4gZmx1c2hlZCBieSB0aGUgdGhyZWFkIHJlY2VudGx5LiBBIGNsZWFuIG9uZSBpcwor
ICAgICAgIG9uZSB0aGF0IGhhc24ndCBiZWVuIHRvdWNoZWQgYnkgdGhlIHRocmVhZCAoZXhjZXB0
IG1heWJlIGJ5IGFwcGVuZGluZyBtb3JlIHRoaW5ncyB0byBpdCkuICovCisgICAgYm9vbCBkZWFs
bG9jYXRpb25fbG9nX2RpcnR5OworCiAgICAgc2l6ZV90IG51bV9sb2dnZWRfYnl0ZXM7IC8qIFRo
aXMgdW5kZXJjb3VudHMgc2luY2Ugd2hlbiB3ZSBhcHBlbmQgc21hbGwgb2JqZWN0cyB3ZSBkb24n
dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3VjaCB0aGlzLiAqLwogCkBAIC0x
NjgsMTIgKzE3MywxMiBAQCBQQVNfQVBJIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBhc190
CiAgICAgdW5zaWduZWQgYWxsb2NhdG9yX2luZGV4LAogICAgIHBhc19sb2NrX2hvbGRfbW9kZSBo
ZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19sb2Nh
bF9hbGxvY2F0b3IqCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pbXBsKAogICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKICAgICB1aW50cHRyX3QgYWxsb2NhdG9yX2lu
ZGV4KQogewotICAgIHJldHVybiAocGFzX2xvY2FsX2FsbG9jYXRvciopKHRocmVhZF9sb2NhbF9j
YWNoZS0+bG9jYWxfYWxsb2NhdG9ycyArIGFsbG9jYXRvcl9pbmRleCk7CisgICAgcmV0dXJuICh2
b2lkKikodGhyZWFkX2xvY2FsX2NhY2hlLT5sb2NhbF9hbGxvY2F0b3JzICsgYWxsb2NhdG9yX2lu
ZGV4KTsKIH0KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVzdWx0CkBAIC0xODMsNiArMTg4LDEwIEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xv
Y2FsX2FsbG9jYXQKICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkK
IHsKICAgICBpZiAoUEFTX1VOTElLRUxZKGFsbG9jYXRvcl9pbmRleCA+PSB0aHJlYWRfbG9jYWxf
Y2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCkpIHsKKyAgICAgICAgLyogSXQgY291
bGQgYmUgdGhhdCB3ZSBqdXN0IGRvbid0IGhhdmUgYW4gYWxsb2NhdG9yIGluZGV4IHlldC4gKi8K
KyAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5U
X01BWCkKKyAgICAgICAgICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVh
dGVfZmFpbHVyZSgpOworICAgIAogICAgICAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9nZXRfbG9jYWxfYWxsb2NhdG9yX3Nsb3coCiAgICAgICAgICAgICB0aHJlYWRfbG9jYWxfY2Fj
aGUsIGFsbG9jYXRvcl9pbmRleCwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAgfQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dC5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw4ICszMSw5IEBACiAKICNpbmNsdWRlICJwYXNfaGVh
cF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmgiCisjaW5j
bHVkZSAicGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZS5oIgogI2luY2x1ZGUgInBhc19yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGUuaCIKLSNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIAogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9maXJzdF9ub2RlID0gTlVMTDsKQEAgLTQ1LDE3ICs0NiwxMyBAQCBwYXNfYWxsb2NhdG9yX2lu
ZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjCiAKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IHJlc3Vs
dDsKICAgICBib29sIGRpZF9vdmVyZmxvdzsKLSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKIAogICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQo
KTsKIAogICAgIFBBU19BU1NFUlQoCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleChub2RlKQorICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhub2RlKQog
ICAgICAgICA9PSAocGFzX2FsbG9jYXRvcl9pbmRleClVSU5UX01BWCk7CiAKLSAgICBkaXJlY3Rv
cnkgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3Rvcnkobm9k
ZSk7Ci0gICAgUEFTX0FTU0VSVChkaXJlY3RvcnkpOwotCiAgICAgUEFTX0FTU0VSVCghcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfbmV4dChub2RlKSk7CiAgICAgCiAgICAg
cmVzdWx0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbmV4dF9hbGxvY2F0b3JfaW5k
ZXg7CkBAIC02NiwxMiArNjMsMTIgQEAgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xv
Y2FsX2NhYwogICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coInBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2FkZF9ub2RlOiBub2RlID0gJXAsIGFsbG9jYXRvcl9pbmRleCA9
ICV1LCAiCiAgICAgICAgICAgICAgICAgIm51bV9hbGxvY2F0b3JfaW5kaWNlcyA9ICV1XG4iLAot
ICAgICAgICAgICAgICAgIG5vZGUsIHJlc3VsdCwgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5X251bV9hbGxvY2F0b3JfaW5kaWNlcyhkaXJlY3RvcnkpKTsKKyAgICAgICAgICAg
ICAgICBub2RlLCByZXN1bHQsIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxv
Y2F0b3JfaW5kaWNlcyhub2RlKSk7CiAgICAgfQogCiAgICAgZGlkX292ZXJmbG93ID0gX19idWls
dGluX2FkZF9vdmVyZmxvdygKICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bmV4dF9hbGxvY2F0b3JfaW5kZXgsCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXpl
X2RpcmVjdG9yeV9udW1fYWxsb2NhdG9yX2luZGljZXMoZGlyZWN0b3J5KSwKKyAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKG5vZGUpLAog
ICAgICAgICAmcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbmV4dF9hbGxvY2F0b3JfaW5k
ZXgpOwogICAgIFBBU19BU1NFUlQoIWRpZF9vdmVyZmxvdyk7CiAKQEAgLTkzLDcgKzkwLDcgQEAg
cGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhYwogfQogCiBwYXNfYWxsb2Nh
dG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZCgKLSAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKKyAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHN0YXRpYyBjb25zdCBib29s
IHZlcmJvc2UgPSBmYWxzZTsKIApAQCAtMTA0LDExICsxMDEsMTEgQEAgcGFzX2FsbG9jYXRvcl9p
bmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhYwogICAgIH0KICAgICAKICAgICByZXR1cm4gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX25vZGUoCi0gICAgICAgIHBhc193cmFwX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KGRpcmVjdG9yeSkpOworICAgICAgICBwYXNfd3Jh
cF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KGRpcmVjdG9yeSkpOwogfQogCiBwYXNfYWxsb2Nh
dG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2R1cGxpY2F0ZSgKLSAgICBw
YXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKKyAgICBwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KQogewogICAgIHBhc19yZWR1bmRh
bnRfbG9jYWxfYWxsb2NhdG9yX25vZGUqIHJlZHVuZGFudF9ub2RlOwogCkBAIC0xMTgsNCArMTE1
LDE0IEBAIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMKICAgICAgICAg
cGFzX3dyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKHJlZHVuZGFudF9ub2RlKSk7
CiB9CiAKK3Bhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
YWRkX3ZpZXdfY2FjaGUoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSkKK3sKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlKiBjYWNoZV9ub2RlOworCisg
ICAgY2FjaGVfbm9kZSA9IHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGVfY3JlYXRlKGRpcmVjdG9y
eSk7CisKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX25vZGUo
cGFzX3dyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKGNhY2hlX25vZGUpKTsKK30KKwogI2VuZGlm
IC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
LmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Mywx
MCArNDMsMTMgQEAgUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbAogICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7CiAKIFBBU19BUEkgcGFz
X2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGQoCi0gICAg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOworICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCiBQQVNfQVBJIHBhc19h
bGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZHVwbGljYXRlKAot
ICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKyAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKKworUEFTX0FQSSBw
YXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZF92aWV3
X2NhY2hlKAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwog
CiAjZGVmaW5lIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKG5v
ZGUpIFwKICAgICBub2RlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZmlyc3Rfbm9k
ZTsgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwkocmV2
aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDM2ICsyOSw3
NSBAQAogCiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIgog
CisjaW5jbHVkZSAicGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCIKKyNpbmNsdWRlICJwYXNfbG9jYWxf
dmlld19jYWNoZV9ub2RlLmgiCiAjaW5jbHVkZSAicGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0
b3Jfbm9kZS5oIgotI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eS5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2lubGluZXMuaCIK
IAotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgorcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9k
aXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewotICAg
IGlmIChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShub2Rl
KSkKLSAgICAgICAgcmV0dXJuIHBhc191bndyYXBfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3Rvcnkobm9kZSk7CisgICAgaWYgKHBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3Rvcnkobm9kZSkpCisgICAgICAgIHJldHVybiBwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3Rvcnkobm9kZSk7CiAKLSAgICByZXR1cm4gcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9nbG9i
YWxfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWQoCi0gICAgICAgICZwYXNfdW53cmFwX3JlZHVuZGFu
dF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKS0+ZGlyZWN0b3J5KTsKKyAgICBpZiAocGFzX2lz
X3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5vZGUpKXsKKyAgICAgICAg
cmV0dXJuIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9u
X251bGwoCisgICAgICAgICAgICAmcGFzX3Vud3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9y
X25vZGUobm9kZSktPmRpcmVjdG9yeSk7CisgICAgfQorCisgICAgcmV0dXJuIHBhc19jb21wYWN0
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAgICZw
YXNfdW53cmFwX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShub2RlKS0+ZGlyZWN0b3J5KTsKK30KKwor
cGFzX2FsbG9jYXRvcl9pbmRleAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2Fs
bG9jYXRvcl9pbmRpY2VzKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkK
K3sKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworCisgICAg
ZGlyZWN0b3J5ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfZGlyZWN0
b3J5KG5vZGUpOworICAgIAorICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX3JlcHJlc2VudHNfYWxsb2NhdG9yKG5vZGUpKQorICAgICAgICByZXR1cm4gcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGRpcmVjdG9yeSk7CisK
KyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbnVtX2FsbG9jYXRvcl9p
bmRpY2VzX2Zvcl9hbGxvY2F0b3Jfc2l6ZSgKKyAgICAgICAgUEFTX0xPQ0FMX1ZJRVdfQ0FDSEVf
U0laRShwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV92aWV3X2NhY2hlX2NhcGFjaXR5KGRp
cmVjdG9yeSkpKTsKIH0KIAogc3RhdGljIHBhc19hbGxvY2F0b3JfaW5kZXgqCiBhbGxvY2F0b3Jf
aW5kZXhfcHRyKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKIHsKLSAg
ICBpZiAocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkobm9k
ZSkpIHsKLSAgICAgICAgcmV0dXJuICZwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rv
cnlfZGF0YV9wdHJfbG9hZCgKLSAgICAgICAgICAgICZwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfZ2xv
YmFsX3NpemVfZGlyZWN0b3J5KG5vZGUpLT5kYXRhKS0+YWxsb2NhdG9yX2luZGV4OworICAgIGlm
IChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5vZGUpKSB7CisgICAg
ICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgK
KyAgICAgICAgICAgICZwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkobm9kZSkt
PmRhdGEpLT5hbGxvY2F0b3JfaW5kZXg7CiAgICAgfQogCi0gICAgcmV0dXJuICZwYXNfdW53cmFw
X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZShub2RlKS0+YWxsb2NhdG9yX2luZGV4Owor
ICAgIGlmIChwYXNfaXNfd3JhcHBlZF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobm9k
ZSkpCisgICAgICAgIHJldHVybiAmcGFzX3Vud3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9y
X25vZGUobm9kZSktPmFsbG9jYXRvcl9pbmRleDsKKworICAgIHJldHVybiAmcGFzX2NvbXBhY3Rf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgKKyAgICAgICAgJnBh
c191bndyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKG5vZGUpLT5kaXJlY3RvcnkpLT52aWV3X2Nh
Y2hlX2luZGV4OwogfQogCiBwYXNfYWxsb2NhdG9yX2luZGV4Ci1wYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXgocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZSBub2RlKQorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9n
ZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZSBub2RlKQogewogICAgIHJldHVybiAqYWxsb2NhdG9yX2luZGV4X3B0cihub2RlKTsKIH0K
IAorcGFzX2FsbG9jYXRvcl9pbmRleAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZSBub2RlKQoreworICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihub2RlKSk7CisgICAgcmV0dXJu
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9n
ZW5lcmljKG5vZGUpOworfQorCitwYXNfYWxsb2NhdG9yX2luZGV4CitwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX3ZpZXdfY2FjaGUocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQoreworICAgIFBBU19BU1NFUlQo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX3ZpZXdfY2FjaGUo
bm9kZSkpOworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dl
dF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhub2RlKTsKK30KKwogdm9pZAogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zZXRfYWxsb2NhdG9yX2luZGV4KHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGluZGV4KQpAQCAt
NjksMTIgKzEwOCwxNSBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9h
CiBzdGF0aWMgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSoKIG5leHRfcHRyKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKIHsK
LSAgICBpZiAocGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnko
bm9kZSkpIHsKLSAgICAgICAgcmV0dXJuICZwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3RvcnlfZGF0YV9wdHJfbG9hZCgKLSAgICAgICAgICAgICZwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5KG5vZGUpLT5kYXRhKS0+bmV4dF9mb3JfbGF5b3V0OworICAg
IGlmIChwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KG5vZGUpKSB7Cisg
ICAgICAgIHJldHVybiAmcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9h
ZCgKKyAgICAgICAgICAgICZwYXNfdW53cmFwX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkobm9k
ZSktPmRhdGEpLT5uZXh0X2Zvcl9sYXlvdXQ7CiAgICAgfQotICAgIAotICAgIHJldHVybiAmcGFz
X3Vud3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25vZGUobm9kZSktPm5leHQ7CisKKyAg
ICBpZiAocGFzX2lzX3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKG5vZGUp
KQorICAgICAgICByZXR1cm4gJnBhc191bndyYXBfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9u
b2RlKG5vZGUpLT5uZXh0OworCisgICAgcmV0dXJuICZwYXNfdW53cmFwX2xvY2FsX3ZpZXdfY2Fj
aGVfbm9kZShub2RlKS0+bmV4dDsKIH0KIAogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZQpAQCAtODMsMTEgKzEyNSw3MiBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9uCiAgICAgcmV0dXJuIHBhc19jb21wYWN0X2F0b21pY190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfbG9hZChuZXh0X3B0cihub2RlKSk7CiB9CiAKLXZvaWQKLXBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc2V0X25leHQocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZSBub2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5leHRfbm9kZSkKK3Zv
aWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zZXRfbmV4dChwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSBuZXh0X25vZGUpCiB7CiAgICAgcGFzX2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9zdG9yZShuZXh0X3B0cihub2RlKSwgbmV4dF9ub2RlKTsKIH0KIAordm9p
ZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbnN0cnVjdChwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKQor
eworICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNf
YWxsb2NhdG9yKG5vZGUpKSB7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0
KAorICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9y
X2ltcGwoCisgICAgICAgICAgICAgICAgY2FjaGUsIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKG5vZGUpKSwKKyAgICAg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShu
b2RlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYXNfbG9jYWxfdmlld19jYWNo
ZV9jb25zdHJ1Y3QoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2Fs
bG9jYXRvcl9pbXBsKAorICAgICAgICAgICAgY2FjaGUsIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9mb3Jfdmlld19jYWNoZShub2RlKSksCisg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3ZpZXdfY2FjaGVfY2FwYWNpdHko
CisgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJl
Y3Rvcnkobm9kZSkpKTsKK30KKwordm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX21vdmUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZSogdG9fY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBmcm9tX2NhY2hlKQoreworICAgIHBhc19hbGxv
Y2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OworCisgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVy
aWMobm9kZSk7CisgICAgCisgICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfcmVwcmVzZW50c19hbGxvY2F0b3Iobm9kZSkpIHsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9tb3ZlKAorICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxf
YWxsb2NhdG9yX2ltcGwodG9fY2FjaGUsIGFsbG9jYXRvcl9pbmRleCksCisgICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbChmcm9tX2NhY2hl
LCBhbGxvY2F0b3JfaW5kZXgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBhc19s
b2NhbF92aWV3X2NhY2hlX21vdmUoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0
X2xvY2FsX2FsbG9jYXRvcl9pbXBsKHRvX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpLAorICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbChmcm9tX2Nh
Y2hlLCBhbGxvY2F0b3JfaW5kZXgpKTsKK30KKwordm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX3N0b3AocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2Rl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfbG9ja19sb2NrX21vZGUgcGFnZV9sb2NrX21vZGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVh
cF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFs
c2U7CisgICAgCisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CisgICAg
dm9pZCogYWxsb2NhdG9yOworCisgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSk7Cisg
ICAgYWxsb2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9y
X2ltcGwoY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7CisgICAgCisgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9jYXRvciAlcCBiZWNhdXNlIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxvY2F0b3JzXG4iLCBhbGxvY2F0b3IpOworICAgIAor
ICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNfYWxs
b2NhdG9yKG5vZGUpKSB7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcChhbGxvY2F0
b3IsIHBhZ2VfbG9ja19tb2RlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3AoYWxsb2NhdG9yLCBwYWdl
X2xvY2tfbW9kZSk7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaAkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDY2ICsyNywxNDMgQEAKICNkZWZpbmUg
UEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9ICiAKICNpbmNsdWRlICJwYXNfYWxs
b2NhdG9yX2luZGV4LmgiCisjaW5jbHVkZSAicGFzX2xvY2suaCIKKyNpbmNsdWRlICJwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMu
aCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCitzdHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bm9kZTsKIHN0cnVjdCBwYXNfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlOwotc3RydWN0
IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeTsKK3N0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlOwogc3Ry
dWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfb3BhcXVlOwordHlwZWRlZiBz
dHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2Rl
OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSBwYXNf
cmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlOwotdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2Rp
cmVjdG9yeTsKK3R5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9vcGFxdWUqIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGU7CiAKLSNkZWZpbmUgUEFTX0lTX1JFRFVOREFOVF9MT0NBTF9BTExPQ0FU
T1JfTk9ERV9CSVQgKCh1aW50cHRyX3QpMSkKKyNkZWZpbmUgUEFTX1RIUkVBRF9MT0NBTF9DQUNI
RV9MQVlPVVRfTk9ERV9LSU5EX01BU0sgM2x1CisKK3N0YXRpYyBpbmxpbmUgdm9pZCogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfcHRyKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUgbm9kZSkKK3sKKyAgICByZXR1cm4gKHZvaWQqKSgodWludHB0cl90KW5v
ZGUgJiB+UEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9LSU5EX01BU0spOworfQor
CitzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZAor
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfa2luZChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCit7CisgICAgcmV0dXJuIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQpKAorICAgICAgICAodWludHB0cl90KW5vZGUgJiBQ
QVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0tJTkRfTUFTSyk7Cit9CisKK3N0YXRp
YyBpbmxpbmUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZQorcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jcmVhdGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9raW5kIGtpbmQsIHZvaWQqIHB0cikKK3sKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlIHJlc3VsdDsKKyAgICAKKyAgICBQQVNfQVNTRVJUKHB0cik7CisKKyAg
ICByZXN1bHQgPSAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSkoKHVpbnRwdHJf
dClwdHIgfCAodWludHB0cl90KWtpbmQpOworICAgIFBBU19BU1NFUlQocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfcHRyKHJlc3VsdCkgPT0gcHRyKTsKKyAgICBQQVNfQVNT
RVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2tpbmQocmVzdWx0KSA9
PSBraW5kKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZQotcGFzX3dyYXBfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnkocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3RvcnkpCitwYXNfd3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7Ci0gICAgUEFTX0FTU0VSVChkaXJlY3Rvcnkp
OwotICAgIHJldHVybiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSlkaXJlY3Rv
cnk7CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY3JlYXRl
KAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X25vZGVfa2luZCwgZGlyZWN0b3J5KTsKIH0KIAogc3RhdGljIGlubGluZSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlCiBwYXNfd3JhcF9yZWR1bmRhbnRfbG9jYWxf
YWxsb2NhdG9yX25vZGUocGFzX3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZSogbm9kZSkK
IHsKLSAgICBQQVNfQVNTRVJUKG5vZGUpOwotICAgIHJldHVybiAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSkoCi0gICAgICAgICh1aW50cHRyX3Qpbm9kZSB8IFBBU19JU19SRURV
TkRBTlRfTE9DQUxfQUxMT0NBVE9SX05PREVfQklUKTsKKyAgICByZXR1cm4gcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jcmVhdGUoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X3JlZHVuZGFudF9sb2NhbF9hbGxvY2F0b3Jfbm9kZV9raW5kLCBub2RlKTsK
K30KKworc3RhdGljIGlubGluZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlCitw
YXNfd3JhcF9sb2NhbF92aWV3X2NhY2hlX25vZGUocGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSog
bm9kZSkKK3sKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9j
cmVhdGUoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2xvY2FsX3ZpZXdf
Y2FjaGVfbm9kZV9raW5kLCBub2RlKTsKIH0KIAogc3RhdGljIGlubGluZSBib29sCi1wYXNfaXNf
d3JhcHBlZF9zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCitwYXNfaXNfd3JhcHBlZF9zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKIHsKLSAg
ICByZXR1cm4gISgodWludHB0cl90KW5vZGUgJiBQQVNfSVNfUkVEVU5EQU5UX0xPQ0FMX0FMTE9D
QVRPUl9OT0RFX0JJVCk7CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfZ2V0X2tpbmQobm9kZSkKKyAgICAgICAgPT0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9ub2RlX2tpbmQ7CiB9CiAKIHN0YXRpYyBp
bmxpbmUgYm9vbAogcGFzX2lzX3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2Rl
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKIHsKLSAgICByZXR1cm4g
IXBhc19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG5vZGUpOwor
ICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9raW5kKG5v
ZGUpCisgICAgICAgID09IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X3JlZHVuZGFudF9s
b2NhbF9hbGxvY2F0b3Jfbm9kZV9raW5kOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wKK3Bhc19p
c193cmFwcGVkX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlIG5vZGUpCit7CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfZ2V0X2tpbmQobm9kZSkKKyAgICAgICAgPT0gcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbG9jYWxfdmlld19jYWNoZV9ub2RlX2tpbmQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
cGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KgotcGFzX3Vud3JhcF9zZWdyZWdh
dGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlIG5vZGUpCitzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Kgor
cGFzX3Vud3JhcF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUgbm9kZSkKIHsKLSAgICBQQVNfQVNTRVJUKHBhc19pc193cmFwcGVkX3Nl
Z3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KG5vZGUpKTsKLSAgICByZXR1cm4gKHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSopbm9kZTsKKyAgICBQQVNfQVNTRVJUKHBh
c19pc193cmFwcGVkX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnkobm9kZSkpOworICAgIHJldHVy
biAocGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqKXBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZ2V0X3B0cihub2RlKTsKIH0KIAogc3RhdGljIGlubGluZSBwYXNfcmVkdW5k
YW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlKgogcGFzX3Vud3JhcF9yZWR1bmRhbnRfbG9jYWxfYWxs
b2NhdG9yX25vZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewog
ICAgIFBBU19BU1NFUlQocGFzX2lzX3dyYXBwZWRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9u
b2RlKG5vZGUpKTsKLSAgICByZXR1cm4gKHBhc19yZWR1bmRhbnRfbG9jYWxfYWxsb2NhdG9yX25v
ZGUqKSgKLSAgICAgICAgKHVpbnRwdHJfdClub2RlICYgflBBU19JU19SRURVTkRBTlRfTE9DQUxf
QUxMT0NBVE9SX05PREVfQklUKTsKKyAgICByZXR1cm4gKHBhc19yZWR1bmRhbnRfbG9jYWxfYWxs
b2NhdG9yX25vZGUqKXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X3B0cihu
b2RlKTsKIH0KIAotUEFTX0FQSSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkq
CitzdGF0aWMgaW5saW5lIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUqCitwYXNfdW53cmFwX2xv
Y2FsX3ZpZXdfY2FjaGVfbm9kZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5v
ZGUpCit7CisgICAgUEFTX0FTU0VSVChwYXNfaXNfd3JhcHBlZF9sb2NhbF92aWV3X2NhY2hlX25v
ZGUobm9kZSkpOworICAgIHJldHVybiAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm9kZSopcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfcHRyKG5vZGUpOworfQorCitQQVNfQVBJ
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfZGlyZWN0b3J5KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGUgbm9kZSk7CiAKIFBBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleAotcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4KHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7CitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
dW1fYWxsb2NhdG9yX2luZGljZXMocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBu
b2RlKTsKKworc3RhdGljIGlubGluZSBib29sCitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX3JlcHJlc2VudHNfYWxsb2NhdG9yKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUgbm9kZSkKK3sKKyAgICByZXR1cm4gcGFzX2lzX3dyYXBwZWRfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeShub2RlKQorICAgICAgICB8fCBwYXNfaXNfd3JhcHBlZF9yZWR1bmRhbnRfbG9j
YWxfYWxsb2NhdG9yX25vZGUobm9kZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbAorcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX3ZpZXdfY2FjaGUocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQoreworICAgIHJldHVybiBwYXNfaXNf
d3JhcHBlZF9sb2NhbF92aWV3X2NhY2hlX25vZGUobm9kZSk7Cit9CisKK1BBU19BUEkgcGFzX2Fs
bG9jYXRvcl9pbmRleAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxs
b2NhdG9yX2luZGV4X2dlbmVyaWMocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBu
b2RlKTsKKworUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4CitwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcigKKyAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpOworCitQQVNfQVBJIHBhc19h
bGxvY2F0b3JfaW5kZXgKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2Fs
bG9jYXRvcl9pbmRleF9mb3Jfdmlld19jYWNoZSgKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlIG5vZGUpOwogCiBQQVNfQVBJIHZvaWQKIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfc2V0X2FsbG9jYXRvcl9pbmRleChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlIG5vZGUsCkBAIC05OSw2ICsxNzYsMTggQEAgUEFTX0FQSSB2b2lkCiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9uZXh0KHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0X25vZGUp
OwogCitQQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb25z
dHJ1Y3QocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGUqIGNhY2hlKTsKKworUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfbW92ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
IG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRvX2NhY2hlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiBmcm9tX2NhY2hlKTsKKworUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfc3RvcChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19sb2NrX21vZGUgcGFnZV9sb2NrX21vZGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKwogUEFTX0VORF9FWFRFUk5f
QzsKIAogI2VuZGlmIC8qIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfSCAqLwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9raW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaWZuZGVmIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfS0lORF9ICisjZGVm
aW5lIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfS0lORF9ICisKKyNpbmNsdWRl
ICJwYXNfdXRpbHMuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitlbnVtIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZCB7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9ub2RlX2tpbmQsCisgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2RlX2tp
bmQsCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbG9jYWxfdmlld19jYWNoZV9u
b2RlX2tpbmQKK307CisKK3R5cGVkZWYgZW51bSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2tpbmQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kOworc3Rh
dGljIGlubGluZSBjb25zdCBjaGFyKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2tpbmRfZ2V0X3N0cmluZygKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2tpbmQga2luZCkKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfbm9kZV9raW5kOgor
ICAgICAgICByZXR1cm4gInNlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkiOworICAgIGNhc2UgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfcmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvcl9ub2Rl
X2tpbmQ6CisgICAgICAgIHJldHVybiAicmVkdW5kYW50X2xvY2FsX2FsbG9jYXRvciI7CisgICAg
Y2FzZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sb2NhbF92aWV3X2NhY2hlX25vZGVf
a2luZDoKKyAgICAgICAgcmV0dXJuICJsb2NhbF92aWV3X2NhY2hlIjsKKyAgICB9CisgICAgUEFT
X0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBOVUxMOworfQor
CitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9M
QVlPVVRfTk9ERV9LSU5EX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmMJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jCSh3b3JraW5nIGNvcHkpCkBAIC00OCw4ICs0OCwx
OSBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUqIHBhc190aHJlYWRfCiAKICAgICByZXN1
bHQgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGVfZmlyc3RfZnJlZTsKICAgICBpZiAoIXJl
c3VsdCkgewotICAgICAgICByZXN1bHQgPSBwYXNfaW1tb3J0YWxfaGVhcF9hbGxvY2F0ZSgKLSAg
ICAgICAgICAgIHNpemVvZihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUpLAorICAgICAgICBj
b25zdCBzaXplX3QgaW50ZXJmZXJlbmNlX3BhZGRpbmcgPSA2NDsKKyAgICAgICAgCisgICAgICAg
IHNpemVfdCBzaXplOworCisgICAgICAgIHNpemUgPSBQQVNfTUFYKAorICAgICAgICAgICAgaW50
ZXJmZXJlbmNlX3BhZGRpbmcsCisgICAgICAgICAgICBwYXNfcm91bmRfdXBfdG9fbmV4dF9wb3dl
cl9vZl8yKHNpemVvZihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUpKSk7CisKKyAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJBbGxvY2F0aW5nIFRMQyBub2RlIHdp
dGggc2l6ZS9hbGlnbm1lbnQgPSAlenUuXG4iLCBzaXplKTsKKyAgICAgICAgCisgICAgICAgIHJl
c3VsdCA9IHBhc19pbW1vcnRhbF9oZWFwX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAorICAgICAg
ICAgICAgc2l6ZSwgc2l6ZSwKICAgICAgICAgICAgICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25v
ZGUiLAogICAgICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKICAgICAgICAgCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X25vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgUEFTX1RIUkVBRF9MT0NB
TF9DQUNIRV9OT0RFX0gKIAogI2luY2x1ZGUgInBhc19jb25maWcuaCIKLSNpbmNsdWRlICJwYXNf
bWFnYXppbmUuaCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgogI2luY2x1ZGUgInBhc191dGlscy5o
IgogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9j
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RyeV9hbGxvY2F0ZS5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDcg
KzczLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbXBsKHBhc19oZWFwX3JlZiogaGVhcAogICAgICAg
ICAgICAgY2FjaGUsCiAgICAgICAgICAgICBhbGxvY2F0b3JfaW5kZXgpOwogICAgICAgICBpZiAo
UEFTX0xJS0VMWShhbGxvY2F0b3IuZGlkX3N1Y2NlZWQpKSB7Ci0gICAgICAgICAgICBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICAgICAgICAgIHBhc19hbGxvY2F0
aW9uX3Jlc3VsdCByZXN1bHQ7CiAgICAgICAgICAgICBwYXNfdHJ5X2FsbG9jYXRlX2ltcGxfc2l6
ZV90aHVua19kYXRhIHNpemVfdGh1bmtfZGF0YTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
LyogVGhpcyB0aGluZyB3aXRoIHRoZSBzaXplIHRodW5rIG1lYW5zIHRoYXQgaXNvaGVhcHMgdXN1
YWxseSBkb24ndCBoYXZlIHRvIGdldCB0aGUKQEAgLTgzLDcgKzgzLDggQEAgcGFzX3RyeV9hbGxv
Y2F0ZV9pbXBsKHBhc19oZWFwX3JlZiogaGVhcAogICAgICAgICAgICAgc2l6ZV90aHVua19kYXRh
LmhlYXBfcmVmID0gaGVhcF9yZWY7CiAKICAgICAgICAgICAgIHJlc3VsdCA9IHRyeV9hbGxvY2F0
ZV9jb21tb25fZmFzdCgKLSAgICAgICAgICAgICAgICBhbGxvY2F0b3IuYWxsb2NhdG9yLCBwYXNf
dHJ5X2FsbG9jYXRlX2ltcGxfc2l6ZV90aHVuaywgJnNpemVfdGh1bmtfZGF0YSwgMSk7CisgICAg
ICAgICAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvci5hbGxvY2F0b3IsIHBh
c190cnlfYWxsb2NhdGVfaW1wbF9zaXplX3RodW5rLAorICAgICAgICAgICAgICAgICZzaXplX3Ro
dW5rX2RhdGEsIDEpOwogCiAgICAgICAgICAgICB0eXBlID0gaGVhcF9yZWYtPnR5cGU7CiAgICAg
ICAgICAgICByZXR1cm4gcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93aXRoX2lu
dHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfYXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2FycmF5LmgJKHJldmlz
aW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlf
YWxsb2NhdGVfYXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBwYXNfdHJ5
X2FsbG9jYXRlX2FycmF5X2ltcGwocGFzX2hlYXBfcmVmCiAgICAgICAgIGFsbG9jYXRvcl9pbmRl
eCwgY29uZmlnLmNvbmZpZ19wdHIpOwogCiAgICAgaWYgKGFsaWdubWVudCAhPSAxICYmIGFsbG9j
YXRvci5kaWRfc3VjY2VlZAotICAgICAgICAmJiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2FsaWdubWVudChhbGxvY2F0b3IuYWxsb2NhdG9yKSkKKyAgICAgICAgJiYgYWxpZ25tZW50
ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGlnbm1lbnQoKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFs
bG9jYXRvci5hbGxvY2F0b3IpKQogICAgICAgICBhbGxvY2F0b3IuZGlkX3N1Y2NlZWQgPSBmYWxz
ZTsKICAgICAKICAgICByZXR1cm4gcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV93
aXRoX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCgKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfY29tbW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9jb21tb24u
aAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9hbGxvY2F0ZV9jb21tb24uaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBA
QAogCiAjaW5jbHVkZSAicGFzX2RlYnVnX2hlYXAuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9pbmxp
bmVzLmgiCi0jaW5jbHVkZSAicGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oIgorI2lu
Y2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxv
Y2F0b3JfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19wcmltaXRpdmVfaGVhcF9yZWYuaCIKICNp
bmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaCIKQEAgLTQyLDI2ICs0Miw0MyBA
QCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9jYW5fZ29fZmFzdChwYXNfCiAgICAgcmV0dXJuIGFs
bG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQ7CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX2Zh
c3RfaW5saW5lX29ubHkoCisgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZywKKyAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHRfZmlsdGVyIHJlc3VsdF9maWx0ZXIsCisgICAgcGFzX2xvY2FsX2FsbG9j
YXRvciogYWxsb2NhdG9yKQoreworICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9h
bGxvY2F0ZV9pbmxpbmVfb25seShhbGxvY2F0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0X2ZpbHRlcik7Cit9
CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190
cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfZmFzdCgKICAgICBwYXNfaGVhcF9jb25maWcgY29uZmln
LAogICAgIHBhc19hbGxvY2F0b3JfY291bnRzKiBhbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19p
bnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpyZXN1bHRfZmlsdGVyKShwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCksCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2Zp
bHRlciByZXN1bHRfZmlsdGVyLAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwK
ICAgICBwYXNfc2l6ZV90aHVuayBzaXplX3RodW5rLAogICAgIHZvaWQqIHNpemVfdGh1bmtfYXJn
LAogICAgIHNpemVfdCBhbGlnbm1lbnQpCiB7Ci0gICAgcmV0dXJuIHJlc3VsdF9maWx0ZXIocGFz
X2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGUoCi0gICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3JfdHJ5X2FsbG9jYXRlKGFsbG9jYXRvciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90aHVuaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90aHVua19hcmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFsaWdubWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhbGxvY2F0b3JfY291bnRzKSkpOworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKKyAgICAKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0OworICAgIHJl
c3VsdCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKGFsbG9jYXRvciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3RodW5rLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdGh1bmtfYXJn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWdubWVu
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9y
X2NvdW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHRfZmlsdGVyKTsKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiaW4gY29t
bW9uIC0gcmVzdWx0LmJlZ2luID0gJXBcbiIsIHJlc3VsdC5iZWdpbik7CisgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2Nh
dGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfYWxsb2NhdGlvbl9yZXN1
bHQKIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdygKICAgICBwYXNfaGVhcF9yZWYq
IGhlYXBfcmVmLAogICAgIHBhc19oZWFwX3JlZl9raW5kIGhlYXBfcmVmX2tpbmQsCkBAIC03OSw3
ICs5Niw3IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxfc2xvdygKICAgICBwYXNfYWxs
b2NhdGlvbl9yZXN1bHQgcmVzdWx0OwogICAgIHBhc19oZWFwKiBoZWFwOwogICAgIHBhc19oZWFw
X3R5cGUqIHR5cGU7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3Rvcnk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsK
ICAgICB1bnNpZ25lZCogY2FjaGVkX2luZGV4OwogCiAgICAgaWYgKHZlcmJvc2UpCkBAIC0xMDQs
NyArMTIxLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9zbG93KAogICAgICAgICAg
ICAgcmVzdWx0LmJlZ2luID0gKHVpbnRwdHJfdClyYXdfcmVzdWx0OwogICAgICAgICB9CiAKLSAg
ICAgICAgcmV0dXJuIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlKHJlc3Vs
dCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCiAgICAgaGVhcCA9IHBhc19lbnN1
cmVfaGVhcChoZWFwX3JlZiwgaGVhcF9yZWZfa2luZCwgY29uZmlnLmNvbmZpZ19wdHIsIHJ1bnRp
bWVfY29uZmlnKTsKQEAgLTE1Niw3ICsxNzMsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9p
bXBsX3Nsb3coCiAgICAgICAgIAogICAgICAgICBwYXNfc2NhdmVuZ2VyX25vdGlmeV9lbGlnaWJp
bGl0eV9pZl9uZWVkZWQoKTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiBwYXNfaW50cmluc2lj
X2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZShyZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgIH0KICAgICAKICAgICBpZiAodmVyYm9zZSkKQEAgLTE2NCw3ICsxODEsNyBAQCBwYXNf
dHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsX3Nsb3coCiAgICAgCiAgICAgUEFTX0FTU0VSVChkaXJl
Y3RvcnkpOwogICAgIAotICAgIGJhc2VsaW5lX2FsbG9jYXRvcl9yZXN1bHQgPSBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcigKKyAgICBiYXNlbGlu
ZV9hbGxvY2F0b3JfcmVzdWx0ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0
X2FsbG9jYXRvcigKICAgICAgICAgZGlyZWN0b3J5LCBhbGlnbmVkX2NvdW50LCBjb3VudF9sb29r
dXBfbW9kZSwgY29uZmlnLmNvbmZpZ19wdHIsIGNhY2hlZF9pbmRleCk7CiAgICAgCiAgICAgcmVz
dWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUoYmFzZWxpbmVfYWxsb2NhdG9y
X3Jlc3VsdC5hbGxvY2F0b3IsCkBAIC0xNzIsMTYgKzE4OSwxNyBAQCBwYXNfdHJ5X2FsbG9jYXRl
X2NvbW1vbl9pbXBsX3Nsb3coCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHZvaWQqKXNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhbGxvY2F0b3JfY291bnRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfY291bnRzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0
eSk7CiAgICAgCiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAgICAgaWYgKGJhc2VsaW5lX2Fs
bG9jYXRvcl9yZXN1bHQubG9jaykKICAgICAgICAgcGFzX2xvY2tfdW5sb2NrKGJhc2VsaW5lX2Fs
bG9jYXRvcl9yZXN1bHQubG9jayk7CiAKLSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0
aW9uX3Jlc3VsdF9jcmVhdGUocmVzdWx0KTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3RyeV9hbGxv
Y2F0ZV9jb21tb25faW1wbCgKICAgICBwYXNfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgIHNpemVf
dCBhbGlnbmVkX2NvdW50LCAvKiBNdXN0IGJlID0gcm91bmRfdXAoY291bnQgKiB0eXBlX3NpemUs
IGFsaWdubWVudCkgLyB0eXBlX3NpemUgKi8KQEAgLTE4OSw4ICsyMDcsOCBAQCBwYXNfdHJ5X2Fs
bG9jYXRlX2NvbW1vbl9pbXBsKAogICAgIHNpemVfdCBhbGlnbm1lbnQsCiAgICAgcGFzX2hlYXBf
Y29uZmlnIGNvbmZpZywKICAgICBwYXNfYWxsb2NhdG9yX2NvdW50cyogYWxsb2NhdG9yX2NvdW50
cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcmVzdWx0X2ZpbHRlciko
cGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpLAotICAgIHBhc19pbnRyaW5z
aWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpzbG93KSgKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQg
KCpyZXN1bHRfZmlsdGVyKShwYXNfYWxsb2NhdGlvbl9yZXN1bHQgcmVzdWx0KSwKKyAgICBwYXNf
YWxsb2NhdGlvbl9yZXN1bHQgKCpzbG93KSgKICAgICAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3Jl
Ziwgc2l6ZV90IGFsaWduZWRfY291bnQsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSwK
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxvY2F0b3JfcmVzdWx0KQogewpAQCAt
MjAzLDcgKzIyMSw3IEBAIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGwoCiAKICAgICBpZiAo
UEFTX0xJS0VMWShwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9jYW5fZ29fZmFzdChhbGxvY2F0b3Jf
cmVzdWx0KSkpIHsKICAgICAgICAgcmV0dXJuIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2ltcGxf
ZmFzdCgKLSAgICAgICAgICAgIGNvbmZpZywgYWxsb2NhdG9yX2NvdW50cywgcmVzdWx0X2ZpbHRl
ciwgYWxsb2NhdG9yX3Jlc3VsdC5hbGxvY2F0b3IsCisgICAgICAgICAgICBjb25maWcsIGFsbG9j
YXRvcl9jb3VudHMsIHJlc3VsdF9maWx0ZXIsIChwYXNfbG9jYWxfYWxsb2NhdG9yKilhbGxvY2F0
b3JfcmVzdWx0LmFsbG9jYXRvciwKICAgICAgICAgICAgIHBhc190cml2aWFsX3NpemVfdGh1bmss
ICh2b2lkKilzaXplLCBhbGlnbm1lbnQpOwogICAgIH0KIApAQCAtMjExLDcgKzIyOSwxNCBAQCBw
YXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsKAogfQogCiAjZGVmaW5lIFBBU19DUkVBVEVfVFJZ
X0FMTE9DQVRFX0NPTU1PTihuYW1lLCBoZWFwX3JlZl9raW5kLCBoZWFwX2NvbmZpZywgcnVudGlt
ZV9jb25maWcsIGFsbG9jYXRvcl9jb3VudHMsIGNvdW50X2xvb2t1cF9tb2RlLCByZXN1bHRfZmls
dGVyKSBcCi0gICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdCBcCisgICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKKyAgICBuYW1lICMjIF9mYXN0X2lubGlu
ZV9vbmx5KHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcikgXAorICAgIHsgXAorICAgICAg
ICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbF9mYXN0X2lubGluZV9vbmx5KCBc
CisgICAgICAgICAgICAoaGVhcF9jb25maWcpLCAocmVzdWx0X2ZpbHRlciksIGFsbG9jYXRvcik7
IFwKKyAgICB9IFwKKyAgICBcCisgICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBuYW1lICMjIF9mYXN0KHBhc19sb2NhbF9h
bGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX3NpemVfdGh1bmsgc2l6ZV90aHVuaywgdm9pZCogc2l6
ZV90aHVua19hcmcsIFwKICAgICAgICAgICAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpIFwKICAg
ICB7IFwKQEAgLTIyMCw3ICsyNDUsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9pbXBsKAog
ICAgICAgICAgICAgc2l6ZV90aHVuaywgc2l6ZV90aHVua19hcmcsIGFsaWdubWVudCk7IFwKICAg
ICB9IFwKICAgICBcCi0gICAgc3RhdGljIFBBU19ORVZFUl9JTkxJTkUgcGFzX2ludHJpbnNpY19h
bGxvY2F0aW9uX3Jlc3VsdCBcCisgICAgc3RhdGljIFBBU19ORVZFUl9JTkxJTkUgcGFzX2FsbG9j
YXRpb25fcmVzdWx0IFwKICAgICBuYW1lICMjIF9zbG93KHBhc19oZWFwX3JlZiogaGVhcF9yZWYs
IHNpemVfdCBhbGlnbmVkX2NvdW50LCBzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkgXAog
ICAgIHsgXAogICAgICAgICByZXR1cm4gKHJlc3VsdF9maWx0ZXIpKCBcCkBAIC0yMjksNyArMjU0
LDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9jb21tb25faW1wbCgKICAgICAgICAgICAgICAgICAoYWxs
b2NhdG9yX2NvdW50cyksIChjb3VudF9sb29rdXBfbW9kZSkpKTsgXAogICAgIH0gXAogICAgIFwK
LSAgICBzdGF0aWMgUEFTX1VOVVNFRCBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2Fs
bG9jYXRpb25fcmVzdWx0IFwKKyAgICBzdGF0aWMgUEFTX1VOVVNFRCBQQVNfQUxXQVlTX0lOTElO
RSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIG5hbWUocGFzX2hlYXBfcmVmKiBoZWFwX3Jl
Ziwgc2l6ZV90IGFsaWduZWRfY291bnQsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50LCBc
CiAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxvY2F0b3JfcmVzdWx0KSBc
CiAgICAgeyBcCkBAIC0yNDAsMTMgKzI2NSwxNiBAQCBwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9p
bXBsKAogICAgIFwKICAgICBzdHJ1Y3QgcGFzX2R1bW15CiAKLXR5cGVkZWYgcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3QpKAordHlw
ZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0
X2lubGluZV9vbmx5KSgKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpOworCit0
eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Zh
c3QpKAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgcGFzX3NpemVfdGh1bmsg
c2l6ZV90aHVuaywgdm9pZCogc2l6ZV90aHVua19hcmcsIHNpemVfdCBhbGlnbm1lbnQpOwogCi10
eXBlZGVmIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRl
X2NvbW1vbl9zbG93KSgKK3R5cGVkZWYgcGFzX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9h
bGxvY2F0ZV9jb21tb25fc2xvdykoCiAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90
IGFsaWduZWRfY291bnQsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50KTsKIAotdHlwZWRl
ZiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9jb21t
b24pKAordHlwZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX2Nv
bW1vbikoCiAgICAgcGFzX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IGFsaWduZWRfY291bnQs
IHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50LAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVzdWx0IGFsbG9jYXRvcl9yZXN1bHQpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2FsbG9jYXRl
X2ludHJpbnNpY19wcmltaXRpdmUuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDY1ICs1OSw4IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsK
ICAgICAgICAgLmNvbmZpZ19raW5kID0gKHBhc3NlZF9jb25maWcpLmtpbmQsIFwKICAgICB9CiAK
LXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5
X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1wbF9tZWRpdW1fc2xvd19jYXNlKAotICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLAotICAgIHBhc19oZWFwKiBoZWFwLAotICAg
IHNpemVfdCBhbGlnbmVkX3NpemUsCi0gICAgc2l6ZV90IGFsaWdubWVudCwKLSAgICBwYXNfaGVh
cF9jb25maWcgY29uZmlnLAotICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3QgdHJ5X2Fs
bG9jYXRlX2NvbW1vbl9mYXN0LAotICAgIHBhc190cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3cgdHJ5
X2FsbG9jYXRlX2NvbW1vbl9zbG93KQotewotICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2Ug
PSBmYWxzZTsKLSAgICAKLSAgICBzaXplX3QgaW5kZXg7Ci0gICAgdW5zaWduZWQgYWxsb2NhdG9y
X2luZGV4OwotICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFsbG9jYXRvcjsKLSAgICBw
YXNfaGVhcF9yZWYgZmFrZV9oZWFwX3JlZjsKLQotICAgIGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9pbmRleF9mb3JfcHJpbWl0aXZlX2NvdW50KGFsaWduZWRfc2l6ZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcpOwot
ICAgIAotICAgIGFsbG9jYXRvcl9pbmRleCA9Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXBf
bWVkaXVtX2FsbG9jYXRvcl9pbmRleF9mb3JfaW5kZXgoCi0gICAgICAgICAgICAmaGVhcC0+c2Vn
cmVnYXRlZF9oZWFwLAotICAgICAgICAgICAgaW5kZXgsCi0gICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9oZWFwX21lZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfd2l0aGluX3NpemVfY2xhc3Nf
cHJvZ3Jlc3Npb24sCi0gICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7Ci0KLSAgICBh
bGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3IoCi0g
ICAgICAgIGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKLSAg
ICAKLSAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci5kaWRfc3VjY2VlZCB8fCBhbGxv
Y2F0b3IuYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSA+PSBhbGlnbmVkX3NpemUpOwotICAgIAotICAg
IC8qIFRoaXMgc2hvdWxkIGJlIHNwZWNpYWxpemVkIG91dCBpbiB0aGUgbm9uLWFsaWdubWVudCBj
YXNlIGJlY2F1c2Ugb2YgQUxXQVlTX0lOTElORSBhbmQKLSAgICAgICBhbGlnbm1lbnQgYmVpbmcg
dGhlIGNvbnN0YW50IDEuICovCi0gICAgaWYgKGFsaWdubWVudCAhPSAxICYmIGFsbG9jYXRvci5k
aWRfc3VjY2VlZAotICAgICAgICAmJiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2Fs
aWdubWVudChhbGxvY2F0b3IuYWxsb2NhdG9yKSkgewotICAgICAgICBpZiAodmVyYm9zZSkgewot
ICAgICAgICAgICAgcGFzX2xvZygiRGlzY2FyZGluZyBnb29kIGFsbG9jYXRvciByZXN1bHQgYmVj
YXVzZSBhbGlnbm1lbnQgaXMgaW5hZGVxdWF0ZSAiCi0gICAgICAgICAgICAgICAgICAgICIoJXp1
LCBuZWVkZWQgJXp1KS5cbiIsCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0
b3JfYWxpZ25tZW50KGFsbG9jYXRvci5hbGxvY2F0b3IpLCBhbGlnbm1lbnQpOwotICAgICAgICB9
Ci0gICAgICAgIGFsbG9jYXRvci5kaWRfc3VjY2VlZCA9IGZhbHNlOwotICAgIH0KLSAgICAKLSAg
ICBpZiAoUEFTX0xJS0VMWShhbGxvY2F0b3IuZGlkX3N1Y2NlZWQpKSB7Ci0gICAgICAgIHJldHVy
biB0cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3QoCi0gICAgICAgICAgICBhbGxvY2F0b3IuYWxsb2Nh
dG9yLCBwYXNfdHJpdmlhbF9zaXplX3RodW5rLCAodm9pZCopYWxpZ25lZF9zaXplLCBhbGlnbm1l
bnQpOwotICAgIH0KLQotICAgIGZha2VfaGVhcF9yZWYudHlwZSA9IGhlYXAtPnR5cGU7Ci0gICAg
ZmFrZV9oZWFwX3JlZi5oZWFwID0gaGVhcDsKLSAgICBmYWtlX2hlYXBfcmVmLmFsbG9jYXRvcl9p
bmRleCA9IFVJTlRfTUFYOwotCi0gICAgcmV0dXJuIHRyeV9hbGxvY2F0ZV9jb21tb25fc2xvdygm
ZmFrZV9oZWFwX3JlZiwgYWxpZ25lZF9zaXplLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCk7Ci0g
ICAgCi19Ci0KLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0Ci1wYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1wbCgKICAg
ICBwYXNfaGVhcCogaGVhcCwKICAgICBzaXplX3Qgc2l6ZSwKICAgICBzaXplX3QgYWxpZ25tZW50
LApAQCAtMTI1LDkgKzY4LDYgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZl
X2ltcAogICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcsCiAgICAgcGFzX3RyeV9hbGxvY2F0ZV9j
b21tb25fZmFzdCB0cnlfYWxsb2NhdGVfY29tbW9uX2Zhc3QsCiAgICAgcGFzX3RyeV9hbGxvY2F0
ZV9jb21tb25fc2xvdyB0cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3csCi0gICAgcGFzX2ludHJpbnNp
Y19hbGxvY2F0aW9uX3Jlc3VsdCAoKm1lZGl1bV9zbG93X2Nhc2UpKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWduZWRfc2l6ZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFs
aWdubWVudCksCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2Rlc2lnbmF0aW9uX21vZGUgZGVzaWdu
YXRpb25fbW9kZSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CkBA
IC0xNDEsNyArODEsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1w
CiAgICAgUEFTX0FTU0VSVChhbGlnbm1lbnQgPT0gMSB8fCAhZGVzaWduYXRpb25fbW9kZSk7CiAK
ICAgICBpZiAoIXBhc19pc19wb3dlcl9vZl8yKGFsaWdubWVudCkpCi0gICAgICAgIHJldHVybiBw
YXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9lbXB0eSgpOworICAgICAgICBy
ZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAKICAgICAvKiBJ
biB0aGUgbm9uLW1lbWFsaWduIGNhc2UsIHdlIGNhbiBoYXBwaWx5IGhhbmRsZSB6ZXJvLXNpemVk
IGFsbG9jYXRpb25zIHdpdGggYWxpZ25lZF9zaXplCiAgICAgICAgYmVpbmcgMC4gVGhpcyB3b3Jr
cyBiZWNhdXNlIHRoZSBoZWFwJ3MgMCBzaXplIGNsYXNzIGlzIGp1c3QgYSBjb3B5IG9mIHRoZSBt
aW5hbGlnbiBzaXplCkBAIC0xNjYsNDQgKzEwNiw1MyBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ludHJp
bnNpY19wcmltaXRpdmVfaW1wCiAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3Ry
eV9nZXQoKTsKICAgICBpZiAoUEFTX0xJS0VMWShjYWNoZSkpIHsKICAgICAgICAgdW5zaWduZWQg
YWxsb2NhdG9yX2luZGV4OwotICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxv
Y2F0b3I7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IGFsbG9jYXRvcl9yZXN1
bHQ7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKICAgICAgICAgCiAg
ICAgICAgIGRlc2lnbmF0ZWRfaW5kZXggPSBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9k
ZXNpZ25hdGVkX2luZGV4KAogICAgICAgICAgICAgaW5kZXgsIGRlc2lnbmF0aW9uX21vZGUsIGNv
bmZpZyk7CiAgICAgICAgIGlmIChQQVNfTElLRUxZKGRlc2lnbmF0ZWRfaW5kZXguZGlkX3N1Y2Nl
ZWQpKSB7Ci0gICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dF9jcmVhdGVfc3VjY2VzcygKKyAgICAgICAgICAgIGFsbG9jYXRvcl9yZXN1bHQgPSBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Jlc3VsdF9jcmVhdGVfc3VjY2VzcygKICAgICAgICAgICAgICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaW1wbCgKICAgICAgICAgICAg
ICAgICAgICAgY2FjaGUsCiAgICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWRfaW5kZXguaW5k
ZXggKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9udW1fYWxsb2NhdG9yX2luZGljZXMo
Y29uZmlnKSkpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKFBBU19VTkxJS0VM
WShpbmRleCA+PSBQQVNfTlVNX0lOVFJJTlNJQ19TSVpFX0NMQVNTRVMpKQotICAgICAgICAgICAg
ICAgIHJldHVybiBtZWRpdW1fc2xvd19jYXNlKGNhY2hlLCBhbGlnbmVkX3NpemUsIGFsaWdubWVu
dCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9IGludHJpbnNp
Y19zdXBwb3J0LT5pbmRleF90b19hbGxvY2F0b3JfaW5kZXhbaW5kZXhdOworICAgICAgICAgICAg
aWYgKFBBU19VTkxJS0VMWShpbmRleCA+PSBQQVNfTlVNX0lOVFJJTlNJQ19TSVpFX0NMQVNTRVMp
KSB7CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0KKyAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fYWxsb2NhdG9yX2luZGV4X2Zvcl9pbmRleCgK
KyAgICAgICAgICAgICAgICAgICAgICAgICZoZWFwLT5zZWdyZWdhdGVkX2hlYXAsCisgICAgICAg
ICAgICAgICAgICAgICAgICBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF93aXRoaW5fc2l6ZV9jbGFz
c19wcm9ncmVzc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX25vdF9o
ZWxkKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRl
eCA9IGludHJpbnNpY19zdXBwb3J0LT5pbmRleF90b19hbGxvY2F0b3JfaW5kZXhbaW5kZXhdOwog
ICAgICAgICAKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgICAgIHBhc19s
b2coImFsbG9jYXRvcl9pbmRleCA9ICV1LlxuIiwgYWxsb2NhdG9yX2luZGV4KTsKICAgICAgICAg
Ci0gICAgICAgICAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRf
bG9jYWxfYWxsb2NhdG9yKGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAgICAgYWxs
b2NhdG9yX3Jlc3VsdCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cigKKyAgICAgICAgICAgICAgICBjYWNoZSwgYWxsb2NhdG9yX2luZGV4LCBwYXNfbG9ja19pc19u
b3RfaGVsZCk7CiAgICAgICAgIH0KIAotICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9j
YXRvci5kaWRfc3VjY2VlZCB8fCBhbGxvY2F0b3IuYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSA+PSBz
aXplKTsKKyAgICAgICAgYWxsb2NhdG9yID0gKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRv
cl9yZXN1bHQuYWxsb2NhdG9yOworCisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2Nh
dG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8fCBhbGxvY2F0b3ItPm9iamVjdF9zaXplID49IGFsaWdu
ZWRfc2l6ZSk7CiAgICAgCiAgICAgICAgIC8qIFRoaXMgc2hvdWxkIGJlIHNwZWNpYWxpemVkIG91
dCBpbiB0aGUgbm9uLWFsaWdubWVudCBjYXNlIGJlY2F1c2Ugb2YgQUxXQVlTX0lOTElORSBhbmQK
ICAgICAgICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25zdGFudCAxLiAqLwotICAgICAgICBp
ZiAoYWxpZ25tZW50ICE9IDEgJiYgYWxsb2NhdG9yLmRpZF9zdWNjZWVkCi0gICAgICAgICAgICAm
JiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0b3IuYWxs
b2NhdG9yKSkgeworICAgICAgICBpZiAoYWxpZ25tZW50ICE9IDEgJiYgYWxsb2NhdG9yX3Jlc3Vs
dC5kaWRfc3VjY2VlZAorICAgICAgICAgICAgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9j
YXRvcl9hbGlnbm1lbnQoYWxsb2NhdG9yKSkgewogICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsK
ICAgICAgICAgICAgICAgICBwYXNfbG9nKCJEaXNjYXJkaW5nIGdvb2QgYWxsb2NhdG9yIHJlc3Vs
dCBiZWNhdXNlIGFsaWdubWVudCBpcyBpbmFkZXF1YXRlICIKICAgICAgICAgICAgICAgICAgICAg
ICAgICIoJXp1LCBuZWVkZWQgJXp1KS5cbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX2FsaWdubWVudChhbGxvY2F0b3IuYWxsb2NhdG9yKSwgYWxpZ25tZW50
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50
KGFsbG9jYXRvciksIGFsaWdubWVudCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhbGxv
Y2F0b3IuZGlkX3N1Y2NlZWQgPSBmYWxzZTsKKyAgICAgICAgICAgIGFsbG9jYXRvcl9yZXN1bHQu
ZGlkX3N1Y2NlZWQgPSBmYWxzZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChQQVNfTElLRUxZ
KGFsbG9jYXRvci5kaWRfc3VjY2VlZCkpIHsKKyAgICAgICAgaWYgKFBBU19MSUtFTFkoYWxsb2Nh
dG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCkpIHsKICAgICAgICAgICAgIHJldHVybiB0cnlfYWxsb2Nh
dGVfY29tbW9uX2Zhc3QoCi0gICAgICAgICAgICAgICAgYWxsb2NhdG9yLmFsbG9jYXRvciwgcGFz
X3RyaXZpYWxfc2l6ZV90aHVuaywgKHZvaWQqKWFsaWduZWRfc2l6ZSwgYWxpZ25tZW50KTsKKyAg
ICAgICAgICAgICAgICBhbGxvY2F0b3IsIHBhc190cml2aWFsX3NpemVfdGh1bmssICh2b2lkKilh
bGlnbmVkX3NpemUsIGFsaWdubWVudCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTIxNCw2ICsx
NjMsOTQgQEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2ltcAogICAgIHJl
dHVybiB0cnlfYWxsb2NhdGVfY29tbW9uX3Nsb3coJmZha2VfaGVhcF9yZWYsIGFsaWduZWRfc2l6
ZSwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQpOwogfQogCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJ
TkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CitwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmlt
aXRpdmVfaW1wbF9pbmxpbmVfb25seSgKKyAgICBzaXplX3Qgc2l6ZSwKKyAgICBzaXplX3QgYWxp
Z25tZW50LAorICAgIHBhc19pbnRyaW5zaWNfaGVhcF9zdXBwb3J0KiBpbnRyaW5zaWNfc3VwcG9y
dCwKKyAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnLAorICAgIHBhc190cnlfYWxsb2NhdGVfY29t
bW9uX2Zhc3RfaW5saW5lX29ubHkgdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0X2lubGluZV9vbmx5
LAorICAgIHBhc19pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGlvbl9tb2RlIGRlc2lnbmF0aW9uX21v
ZGUpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAg
IHNpemVfdCBhbGlnbmVkX3NpemU7CisgICAgc2l6ZV90IGluZGV4OworICAgIHBhc19kZXNpZ25h
dGVkX2luZGV4X3Jlc3VsdCBkZXNpZ25hdGVkX2luZGV4OworICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIGNhY2hlOworICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleDsKKyAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Jlc3VsdCBhbGxvY2F0b3JfcmVzdWx0OworICAgIHBhc19sb2NhbF9hbGxv
Y2F0b3IqIGFsbG9jYXRvcjsKKworICAgIFBBU19BU1NFUlQoYWxpZ25tZW50ID09IDEgfHwgIWRl
c2lnbmF0aW9uX21vZGUpOworCisgICAgaWYgKCFwYXNfaXNfcG93ZXJfb2ZfMihhbGlnbm1lbnQp
KQorICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7
CisKKyAgICAvKiBJbiB0aGUgbm9uLW1lbWFsaWduIGNhc2UsIHdlIGNhbiBoYXBwaWx5IGhhbmRs
ZSB6ZXJvLXNpemVkIGFsbG9jYXRpb25zIHdpdGggYWxpZ25lZF9zaXplCisgICAgICAgYmVpbmcg
MC4gVGhpcyB3b3JrcyBiZWNhdXNlIHRoZSBoZWFwJ3MgMCBzaXplIGNsYXNzIGlzIGp1c3QgYSBj
b3B5IG9mIHRoZSBtaW5hbGlnbiBzaXplCisgICAgICAgY2xhc3MuIEJ1dCB3ZSBjYW5ub3QgZG8g
dGhpcyBwcm9wZXJseSBpZiB0aGUgMCBzaXplIGNsYXNzIGhhcyB0byBoYXZlIHNvbWUgYWxpZ25t
ZW50LiBUaGF0J3MKKyAgICAgICBiZWNhdXNlIHdlIGV4cGVjdCB0aGF0IGZvciBhIHNpemUgY2xh
c3MgdG8gc2F0aXNmeSBzb21lIGFsaWdubWVudCwgdGhhdCBzaXplIG11c3QgaXRzZWxmCisgICAg
ICAgYmUgYWxpZ25lZCB0byB0aGF0IGFsaWdubWVudC4gKi8KKyAgICBpZiAoYWxpZ25tZW50ID09
IDEpCisgICAgICAgIGFsaWduZWRfc2l6ZSA9IHNpemU7CisgICAgZWxzZSBpZiAoc2l6ZSA8IGFs
aWdubWVudCkKKyAgICAgICAgYWxpZ25lZF9zaXplID0gYWxpZ25tZW50OworICAgIGVsc2UKKyAg
ICAgICAgYWxpZ25lZF9zaXplID0gcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29mXzIoc2l6ZSwgYWxp
Z25tZW50KTsKKyAgICAKKyAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9y
X3ByaW1pdGl2ZV9jb3VudChhbGlnbmVkX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnKTsKKworICAgIGlmICh2ZXJi
b3NlKSB7CisgICAgICAgIHBhc19sb2coImFsaWduZWRfc2l6ZSA9ICV6dSwgaW5kZXggPSAlenUs
IGFsaWdubWVudCA9ICV6dS5cbiIsCisgICAgICAgICAgICAgICAgYWxpZ25lZF9zaXplLCBpbmRl
eCwgYWxpZ25tZW50KTsKKyAgICB9CisKKyAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfdHJ5X2dldCgpOworICAgIGlmIChQQVNfVU5MSUtFTFkoIWNhY2hlKSkKKyAgICAgICAgcmV0
dXJuIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworICAgIAorICAgIGRl
c2lnbmF0ZWRfaW5kZXggPSBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9kZXNpZ25hdGVk
X2luZGV4KAorICAgICAgICBpbmRleCwgZGVzaWduYXRpb25fbW9kZSwgY29uZmlnKTsKKyAgICBp
ZiAoUEFTX0xJS0VMWShkZXNpZ25hdGVkX2luZGV4LmRpZF9zdWNjZWVkKSkgeworICAgICAgICBh
bGxvY2F0b3JfcmVzdWx0ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHRfY3JlYXRlX3N1Y2Nl
c3MoCisgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0
b3JfaW1wbCgKKyAgICAgICAgICAgICAgICBjYWNoZSwKKyAgICAgICAgICAgICAgICBkZXNpZ25h
dGVkX2luZGV4LmluZGV4ICogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfbnVtX2FsbG9j
YXRvcl9pbmRpY2VzKGNvbmZpZykpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoUEFTX1VO
TElLRUxZKGluZGV4ID49IFBBU19OVU1fSU5UUklOU0lDX1NJWkVfQ0xBU1NFUykpCisgICAgICAg
ICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CisgICAg
ICAgIAorICAgICAgICBhbGxvY2F0b3JfaW5kZXggPSBpbnRyaW5zaWNfc3VwcG9ydC0+aW5kZXhf
dG9fYWxsb2NhdG9yX2luZGV4W2luZGV4XTsKKyAgICAgICAgCisgICAgICAgIGlmICh2ZXJib3Nl
KQorICAgICAgICAgICAgcGFzX2xvZygiYWxsb2NhdG9yX2luZGV4ID0gJXUuXG4iLCBhbGxvY2F0
b3JfaW5kZXgpOworICAgICAgICAKKyAgICAgICAgYWxsb2NhdG9yX3Jlc3VsdCA9IHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfdHJ5X2dldF9sb2NhbF9hbGxvY2F0b3IoY2FjaGUsIGFsbG9jYXRvcl9p
bmRleCk7CisgICAgfQorICAgIAorICAgIGlmIChQQVNfVU5MSUtFTFkoIWFsbG9jYXRvcl9yZXN1
bHQuZGlkX3N1Y2NlZWQpKQorICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25fcmVzdWx0X2Ny
ZWF0ZV9mYWlsdXJlKCk7CisgICAgCisgICAgYWxsb2NhdG9yID0gKHBhc19sb2NhbF9hbGxvY2F0
b3IqKWFsbG9jYXRvcl9yZXN1bHQuYWxsb2NhdG9yOworICAgIAorICAgIFBBU19URVNUSU5HX0FT
U0VSVCghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8fCBhbGxvY2F0b3ItPm9iamVjdF9z
aXplID49IGFsaWduZWRfc2l6ZSk7CisgICAgCisgICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lh
bGl6ZWQgb3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5M
SU5FIGFuZAorICAgICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KKyAgICBp
ZiAoYWxpZ25tZW50ICE9IDEgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGln
bm1lbnQoYWxsb2NhdG9yKSkgeworICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAg
cGFzX2xvZygiRGlzY2FyZGluZyBnb29kIGFsbG9jYXRvciByZXN1bHQgYmVjYXVzZSBhbGlnbm1l
bnQgaXMgaW5hZGVxdWF0ZSAiCisgICAgICAgICAgICAgICAgICAgICIoJXp1LCBuZWVkZWQgJXp1
KS5cbiIsCisgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50
KGFsbG9jYXRvciksIGFsaWdubWVudCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfZmFpbHVyZSgpOworICAgIH0KKyAgICAKKyAgICByZXR1
cm4gdHJ5X2FsbG9jYXRlX2NvbW1vbl9mYXN0X2lubGluZV9vbmx5KGFsbG9jYXRvcik7Cit9CisK
ICNkZWZpbmUgUEFTX0NSRUFURV9UUllfQUxMT0NBVEVfSU5UUklOU0lDX1BSSU1JVElWRShuYW1l
LCBoZWFwX2NvbmZpZywgcnVudGltZV9jb25maWcsIGFsbG9jYXRvcl9jb3VudHMsIHJlc3VsdF9m
aWx0ZXIsIGhlYXAsIGhlYXBfc3VwcG9ydCwgZGVzaWduYXRpb25fbW9kZSkgXAogICAgIFBBU19D
UkVBVEVfVFJZX0FMTE9DQVRFX0NPTU1PTiggXAogICAgICAgICBuYW1lICMjIF9pbXBsLCBcCkBA
IC0yMjQsMzUgKzI2MSw1MCBAQCBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVf
aW1wCiAgICAgICAgIHBhc19mb3JjZV9jb3VudF9sb29rdXAsIFwKICAgICAgICAgKHJlc3VsdF9m
aWx0ZXIpKTsgXAogICAgIFwKLSAgICBzdGF0aWMgUEFTX05FVkVSX0lOTElORSBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0IFwKLSAgICBuYW1lICMjIF9tZWRpdW1fc2xvd19jYXNlKHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLCBzaXplX3QgYWxpZ25lZF9zaXplLCBzaXplX3Qg
YWxpZ25tZW50KSBcCisgICAgc3RhdGljIFBBU19ORVZFUl9JTkxJTkUgcGFzX2FsbG9jYXRpb25f
cmVzdWx0IFwKKyAgICBuYW1lICMjIF9tZWRpdW1fc2xvd19jYXNlKHNpemVfdCBzaXplLCBzaXpl
X3QgYWxpZ25tZW50KSBcCiAgICAgeyBcCiAgICAgICAgIHJldHVybiBwYXNfdHJ5X2FsbG9jYXRl
X2ludHJpbnNpY19wcmltaXRpdmVfaW1wbF9tZWRpdW1fc2xvd19jYXNlKCBcCi0gICAgICAgICAg
ICBjYWNoZSwgKGhlYXApLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCwgKGhlYXBfY29uZmlnKSwg
XAotICAgICAgICAgICAgbmFtZSAjIyBfaW1wbF9mYXN0LCBuYW1lICMjIF9pbXBsX3Nsb3cpOyBc
CisgICAgICAgICAgICAoaGVhcCksIHNpemUsIGFsaWdubWVudCwgKGhlYXBfc3VwcG9ydCksICho
ZWFwX2NvbmZpZyksIFwKKyAgICAgICAgICAgIG5hbWUgIyMgX2ltcGxfZmFzdCwgbmFtZSAjIyBf
aW1wbF9zbG93LCAoZGVzaWduYXRpb25fbW9kZSkpOyBcCiAgICAgfSBcCiAgICAgXAotICAgIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IG5h
bWUoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKKyAgICBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IG5hbWUgIyMgX2lubGluZV9vbmx5KHNpemVf
dCBzaXplLCBzaXplX3QgYWxpZ25tZW50KSBcCiAgICAgeyBcCi0gICAgICAgIHJldHVybiBwYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfaW1wbCggXAotICAgICAgICAgICAgKGhl
YXApLCBzaXplLCBhbGlnbm1lbnQsIChoZWFwX3N1cHBvcnQpLCAoaGVhcF9jb25maWcpLCBcCi0g
ICAgICAgICAgICBuYW1lICMjIF9pbXBsX2Zhc3QsIG5hbWUgIyMgX2ltcGxfc2xvdywgbmFtZSAj
IyBfbWVkaXVtX3Nsb3dfY2FzZSwgXAotICAgICAgICAgICAgKGRlc2lnbmF0aW9uX21vZGUpKTsg
XAorICAgICAgICByZXR1cm4gcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0aXZlX2lt
cGxfaW5saW5lX29ubHkoIFwKKyAgICAgICAgICAgIHNpemUsIGFsaWdubWVudCwgKGhlYXBfc3Vw
cG9ydCksIChoZWFwX2NvbmZpZyksIFwKKyAgICAgICAgICAgIG5hbWUgIyMgX2ltcGxfZmFzdF9p
bmxpbmVfb25seSwgKGRlc2lnbmF0aW9uX21vZGUpKTsgXAorICAgIH0gXAorICAgIFwKKyAgICBz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0IG5hbWUoc2l6ZV90
IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpIFwKKyAgICB7IFwKKyAgICAgICAgc3RhdGljIGNvbnN0
IGJvb2wgdmVyYm9zZSA9IGZhbHNlOyBcCisgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBy
ZXN1bHQ7IFwKKyAgICAgICAgcmVzdWx0ID0gbmFtZSAjIyBfaW5saW5lX29ubHkoc2l6ZSwgYWxp
Z25tZW50KTsgXAorICAgICAgICBpZiAoUEFTX0xJS0VMWShyZXN1bHQuZGlkX3N1Y2NlZWQpKSB7
IFwKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKSBcCisgICAgICAgICAgICAgICAgcGFzX2xvZygi
UmV0dXJuaW5nIHN1Y2Nlc3NmdWwgcmVzdWx0IChiZWdpbiA9ICVwKVxuIiwgKHZvaWQqKXJlc3Vs
dC5iZWdpbik7IFwKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7IFwKKyAgICAgICAgfSBcCisg
ICAgICAgIHJldHVybiBuYW1lICMjIF9tZWRpdW1fc2xvd19jYXNlKHNpemUsIGFsaWdubWVudCk7
IFwKICAgICB9IFwKICAgICBcCi0gICAgc3RhdGljIFBBU19VTlVTRUQgUEFTX05FVkVSX0lOTElO
RSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0IFwKKyAgICBzdGF0aWMgUEFTX1VOVVNF
RCBQQVNfTkVWRVJfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbmFtZSAjIyBf
Zm9yX3JlYWxsb2Moc2l6ZV90IHNpemUpIFwKICAgICB7IFwKLSAgICAgICAgcmV0dXJuIG5hbWUo
c2l6ZSwgMSk7IFwKKyAgICAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOyBc
CisgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQgPSBuYW1lKHNpemUsIDEpOyBc
CisgICAgICAgIGlmICh2ZXJib3NlKSBcCisgICAgICAgICAgICBwYXNfbG9nKCJyZXN1bHQuYmVn
aW4gPSAlcFxuIiwgcmVzdWx0LmJlZ2luKTsgXAorICAgICAgICByZXR1cm4gcmVzdWx0OyBcCiAg
ICAgfSBcCiAgICAgXAogICAgIHN0cnVjdCBwYXNfZHVtbXkKIAotdHlwZWRlZiBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfcHJpbWl0
aXZlKShzaXplX3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdubWVu
dCk7Cit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljX3ByaW1pdGl2ZSkoc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFsaWdu
bWVudCk7CiAKLXR5cGVkZWYgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAotKCpwYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpY19wcmltaXRpdmVfZm9yX3JlYWxsb2MpKHNpemVfdCBzaXpl
KTsgICAgICAgCit0eXBlZGVmIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc190cnlfYWxsb2Nh
dGVfaW50cmluc2ljX3ByaW1pdGl2ZV9mb3JfcmVhbGxvYykoc2l6ZV90IHNpemUpOwogCiBQQVNf
RU5EX0VYVEVSTl9DOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmgJKHJldmlzaW9u
IDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxs
b2NhdGVfcHJpbWl0aXZlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE0ICszMCwxNCBAQAogI2lu
Y2x1ZGUgInBhc19oZWFwLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVk
ZSAicGFzX2hlYXBfbG9jay5oIgotI2luY2x1ZGUgInBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9y
ZXN1bHQuaCIKKyNpbmNsdWRlICJwYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKICNpbmNsdWRlICJw
YXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfcGh5c2ljYWxfbWVt
b3J5X3RyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAicGFzX3ByaW1pdGl2ZV9oZWFwX3JlZi5oIgog
CiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50
cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0CitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Fs
bG9jYXRpb25fcmVzdWx0CiBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKHBhc19wcmlt
aXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzaXplX3Qgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IGFs
aWdubWVudCwKQEAgLTUzLDcgKzUzLDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1w
bChwYXNfcHJpbQogICAgIHNpemVfdCBpbmRleDsKICAgICAKICAgICBpZiAoIXBhc19pc19wb3dl
cl9vZl8yKGFsaWdubWVudCkpCi0gICAgICAgIHJldHVybiBwYXNfaW50cmluc2ljX2FsbG9jYXRp
b25fcmVzdWx0X2NyZWF0ZV9lbXB0eSgpOworICAgICAgICByZXR1cm4gcGFzX2FsbG9jYXRpb25f
cmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7CiAgICAgCiAgICAgYWxpZ25lZF9zaXplID0gcGFzX3Jv
dW5kX3VwX3RvX3Bvd2VyX29mXzIoc2l6ZSwgYWxpZ25tZW50KTsKICAgICAKQEAgLTkyLDcgKzky
LDcgQEAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbChwYXNfcHJpbQogICAgIC8qIFRo
aXMgc2hvdWxkIGJlIHNwZWNpYWxpemVkIG91dCBpbiB0aGUgbm9uLWFsaWdubWVudCBjYXNlIGJl
Y2F1c2Ugb2YgQUxXQVlTX0lOTElORSBhbmQKICAgICAgICBhbGlnbm1lbnQgYmVpbmcgdGhlIGNv
bnN0YW50IDEuICovCiAgICAgaWYgKGFsaWdubWVudCAhPSAxICYmIGFsbG9jYXRvci5kaWRfc3Vj
Y2VlZAotICAgICAgICAmJiBhbGlnbm1lbnQgPiBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsaWdubWVu
dChhbGxvY2F0b3IuYWxsb2NhdG9yKSkKKyAgICAgICAgJiYgYWxpZ25tZW50ID4gcGFzX2xvY2Fs
X2FsbG9jYXRvcl9hbGlnbm1lbnQoKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvci5hbGxv
Y2F0b3IpKQogICAgICAgICBhbGxvY2F0b3IuZGlkX3N1Y2NlZWQgPSBmYWxzZTsKIAogICAgIHJl
dHVybiB0cnlfYWxsb2NhdGVfY29tbW9uKCZoZWFwX3JlZi0+YmFzZSwgYWxpZ25lZF9zaXplLCBh
bGlnbmVkX3NpemUsIGFsaWdubWVudCwgYWxsb2NhdG9yKTsKQEAgLTEwOCw3ICsxMDgsNyBAQCBw
YXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKHBhc19wcmltCiAgICAgICAgIHBhc19hdm9p
ZF9jb3VudF9sb29rdXAsIFwKICAgICAgICAgKHJlc3VsdF9maWx0ZXIpKTsgXAogICAgIFwKLSAg
ICBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3Vs
dCBuYW1lKCBcCisgICAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdCBuYW1lKCBcCiAgICAgICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYqIGhlYXBfcmVmLCBc
CiAgICAgICAgIHNpemVfdCBzaXplLCBcCiAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpIFwKQEAg
LTExNyw3ICsxMTcsNyBAQCBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKHBhc19wcmlt
CiAgICAgICAgICAgICBoZWFwX3JlZiwgc2l6ZSwgYWxpZ25tZW50LCAoaGVhcF9jb25maWcpLCAo
cnVudGltZV9jb25maWcpLCBuYW1lICMjIF9pbXBsKTsgXAogICAgIH0gXAogICAgIFwKLSAgICBz
dGF0aWMgUEFTX1VOVVNFRCBQQVNfTkVWRVJfSU5MSU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHQgbmFtZSAjIyBfZm9yX3JlYWxsb2MoIFwKKyAgICBzdGF0aWMgUEFTX1VOVVNFRCBQ
QVNfTkVWRVJfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdCBuYW1lICMjIF9mb3JfcmVhbGxv
YyggXAogICAgICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgc2l6ZV90IHNp
emUpIFwKICAgICB7IFwKICAgICAgICAgcmV0dXJuIG5hbWUoaGVhcF9yZWYsIHNpemUsIDEpOyBc
CkBAIC0xMjUsMTAgKzEyNSwxMCBAQCBwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsKHBh
c19wcmltCiAgICAgXAogICAgIHN0cnVjdCBwYXNfZHVtbXkKIAotdHlwZWRlZiBwYXNfaW50cmlu
c2ljX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUpKAordHlw
ZWRlZiBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZSko
CiAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplLCBzaXpl
X3QgYWxpZ25tZW50KTsKIAotdHlwZWRlZiBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0
ICgqcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfZm9yX3JlYWxsb2MpKAordHlwZWRlZiBwYXNf
YWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9mb3JfcmVhbGxv
YykoCiAgICAgcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplKTsK
IAogUEFTX0VORF9FWFRFUk5fQzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190cnlfcmVhbGxvY2F0ZS5oCShyZXZpc2lvbiAyODIyMzgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X3JlYWxsb2NhdGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBQQVNfVFJZX1JFQUxMT0NB
VEVfSAogI2RlZmluZSBQQVNfVFJZX1JFQUxMT0NBVEVfSAogCi0jaW5jbHVkZSAicGFzX2JpdGZp
dF9nbG9iYWxfZGlyZWN0b3J5LmgiCisjaW5jbHVkZSAicGFzX2JpdGZpdF9kaXJlY3RvcnkuaCIK
ICNpbmNsdWRlICJwYXNfZGVhbGxvY2F0ZS5oIgogI2luY2x1ZGUgInBhc19sYXJnZV9tYXAuaCIK
ICNpbmNsdWRlICJwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUuaCIKQEAgLTU0LDYgKzU0LDggQEAg
cGFzX3RyeV9hbGxvY2F0ZV9mb3JfcmVhbGxvY2F0ZV9hbmRfY29weQogICAgIHBhc190cnlfcmVh
bGxvY2F0ZV9hbGxvY2F0ZV9jYWxsYmFjayBhbGxvY2F0ZV9jYWxsYmFjaywKICAgICB2b2lkKiBh
bGxvY2F0ZV9jYWxsYmFja19hcmcpCiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOworICAgIAogICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAK
ICAgICAvKiBJZiBoZWFwcyBhcmUgYmFzZWQgb24gc29tZSByaWdvcm91cyBub3Rpb24gb2YgdHlw
ZSwgdGhlbiB3ZSBzaG91bGQgZGlzYWxsb3cgaGVhcApAQCAtOTEsNiArOTMsOCBAQCBwYXNfdHJ5
X2FsbG9jYXRlX2Zvcl9yZWFsbG9jYXRlX2FuZF9jb3B5CiAgICAgcmVzdWx0ID0gYWxsb2NhdGVf
Y2FsbGJhY2sodGFyZ2V0X2hlYXAsIG5ld19jb3VudCwgYWxsb2NhdGVfY2FsbGJhY2tfYXJnKTsK
ICAgICAKICAgICBpZiAocmVzdWx0LnB0cikgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgIHBhc19sb2coInJlc3VsdC5wdHIgPSAlcFxuIiwgcmVzdWx0LnB0cik7CiAgICAgICAg
IC8qIEZJWE1FOiBXZSBuZWVkIHRvIGFjdHVhbGx5IGJlIHJvdW5kaW5nIGRvd24gdGhlIG9sZCBz
aXplIHRvIG91cgogICAgICAgICAgICB0eXBlIHNpemUuIFRvIGRvIHRoYXQgd2UnZCB3YW50IHRo
ZSB0eXBlZCBhbGxvY2F0aW9uIHJlc3VsdCB0bwogICAgICAgICAgICBnaXZlIHVzIHRoZSB0eXBl
IHNpemUuIEZvciBwcmltaXRpdmUgYWxsb2NhdGlvbnMsIGl0IHdvdWxkCkBAIC0xMzMsNyArMTM3
LDcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX3RhYmxlX3NlZ3JlZ2F0ZWRfY2FzZQogICAgICAgICBi
cmVhazsKICAgICAgICAgCiAgICAgY2FzZSBwYXNfcmVhbGxvY2F0ZV9kaXNhbGxvd19oZWFwX3Rl
bGVwb3J0OiB7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSog
ZGlyZWN0b3J5OworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0
b3J5OwogICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9wYWdlX2dldF9kaXJlY3Rv
cnlfZm9yX2FkZHJlc3NfaW5fcGFnZSgKICAgICAgICAgICAgIHBhZ2UsIGJlZ2luLCBzZWdyZWdh
dGVkX2NvbmZpZyk7CiAgICAgICAgIG9sZF9zaXplID0gZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZTsK
QEAgLTE3NSw5ICsxNzksOSBAQCBwYXNfdHJ5X3JlYWxsb2NhdGVfdGFibGVfYml0Zml0X2Nhc2Uo
cGFzCiAgICAgICAgIAogICAgIGNhc2UgcGFzX3JlYWxsb2NhdGVfZGlzYWxsb3dfaGVhcF90ZWxl
cG9ydDoKICAgICAgICAgb2xkX2hlYXAgPSBwYXNfaGVhcF9mb3Jfc2VncmVnYXRlZF9oZWFwKAot
ICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRf
bm9uX251bGwoCisgICAgICAgICAgICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9s
b2FkX25vbl9udWxsKAogICAgICAgICAgICAgICAgICZwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0
X3ZpZXdfcHRyX2xvYWRfbm9uX251bGwoCi0gICAgICAgICAgICAgICAgICAgICZwYWdlLT5vd25l
ciktPmdsb2JhbF9kaXJlY3RvcnkpLT5oZWFwKTsKKyAgICAgICAgICAgICAgICAgICAgJnBhZ2Ut
Pm93bmVyKS0+ZGlyZWN0b3J5KS0+aGVhcCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICAK
QEAgLTIxNyw3ICsyMjEsNyBAQCBwYXNfdHJ5X3JlYWxsb2NhdGUodm9pZCogb2xkX3B0ciwKICAg
ICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgcGFzX3JlYWxsb2NhdGVfZGlzYWxsb3df
aGVhcF90ZWxlcG9ydDogewotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVf
ZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5OwogICAgICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0
ZWRfcGFnZV9nZXRfZGlyZWN0b3J5X2Zvcl9hZGRyZXNzX2FuZF9wYWdlX2NvbmZpZygKICAgICAg
ICAgICAgICAgICBiZWdpbiwgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKTsKICAgICAg
ICAgICAgIG9sZF9zaXplID0gZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZTsKQEAgLTI0OSw5ICsyNTMs
OSBAQCBwYXNfdHJ5X3JlYWxsb2NhdGUodm9pZCogb2xkX3B0ciwKIAogICAgICAgICBjYXNlIHBh
c19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBvcnQ6CiAgICAgICAgICAgICBvbGRfaGVh
cCA9IHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoCi0gICAgICAgICAgICAgICAgcGFzX2Nv
bXBhY3RfYml0Zml0X2dsb2JhbF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwoCisgICAgICAg
ICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgK
ICAgICAgICAgICAgICAgICAgICAgJnBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfdmlld19wdHJf
bG9hZF9ub25fbnVsbCgKLSAgICAgICAgICAgICAgICAgICAgICAgICZwYWdlLT5vd25lciktPmds
b2JhbF9kaXJlY3RvcnkpLT5oZWFwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICZwYWdlLT5v
d25lciktPmRpcmVjdG9yeSktPmhlYXApOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgCkBAIC0zODQsNyArMzg4LDcgQEAgcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJpbnNp
Y19wcmltaXRpdmVfYQogICAgICAgICBuZXdfY291bnQpOwogfQogCi1zdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdAorc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHBhc19hbGxvY2F0aW9uX3Jlc3VsdAogcGFzX3RyeV9yZWFsbG9jYXRlX2ludHJp
bnNpY19wcmltaXRpdmUoCiAgICAgdm9pZCogb2xkX3B0ciwKICAgICBwYXNfaGVhcCogaGVhcCwK
QEAgLTUyMywxOSArNTI3LDI3IEBAIHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmVfYWxsb2Nh
dGVfY2EKICAgICBzaXplX3QgbmV3X2NvdW50LAogICAgIHZvaWQqIGFyZykKIHsKKyAgICBzdGF0
aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCiAgICAgcGFzX3RyeV9yZWFsbG9j
YXRlX3ByaW1pdGl2ZV9hbGxvY2F0ZV9kYXRhKiBkYXRhOworICAgIHBhc19hbGxvY2F0aW9uX3Jl
c3VsdCByZXN1bHQ7CiAKICAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOwogICAgIAogICAgIGRh
dGEgPSAocGFzX3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZV9hbGxvY2F0ZV9kYXRhKilhcmc7CisK
KyAgICByZXN1bHQgPSBkYXRhLT50cnlfYWxsb2NhdGVfcHJpbWl0aXZlKGRhdGEtPmhlYXBfcmVm
LCBuZXdfY291bnQpOworCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coImluIHJl
YWxsb2MgLSByZXN1bHQuYmVnaW4gPSAlcFxuIiwgKHZvaWQqKXJlc3VsdC5iZWdpbik7CiAgICAg
CiAgICAgcmV0dXJuIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF9pbnRy
aW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQoCi0gICAgICAgIGRhdGEtPnRyeV9hbGxvY2F0ZV9wcmlt
aXRpdmUoZGF0YS0+aGVhcF9yZWYsIG5ld19jb3VudCksCisgICAgICAgIHJlc3VsdCwKICAgICAg
ICAgTlVMTCwKICAgICAgICAgbmV3X2NvdW50KTsKIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQKK3N0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSBwYXNfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190cnlfcmVhbGxvY2F0ZV9wcmltaXRpdmUo
CiAgICAgdm9pZCogb2xkX3B0ciwKICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3Jl
ZiwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190eXBlZF9hbGxv
Y2F0aW9uX3Jlc3VsdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdC5oCShyZXZpc2lvbiAyODIyMzgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHlwZWRfYWxsb2NhdGlvbl9y
ZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBQQVNfVFlQ
RURfQUxMT0NBVElPTl9SRVNVTFRfSAogI2RlZmluZSBQQVNfVFlQRURfQUxMT0NBVElPTl9SRVNV
TFRfSAogCi0jaW5jbHVkZSAicGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdC5oIgorI2lu
Y2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgog
CiBQQVNfQkVHSU5fRVhURVJOX0M7CkBAIC03MSwxMiArNzEsMTIgQEAgcGFzX3R5cGVkX2FsbG9j
YXRpb25fcmVzdWx0X2NyZWF0ZShwYXNfaAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRp
YyBQQVNfQUxXQVlTX0lOTElORSBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0CitzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2FsbG9jYXRpb25fcmVzdWx0CiBwYXNfdHlwZWRfYWxs
b2NhdGlvbl9yZXN1bHRfYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KAogICAgIHBhc190
eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCBpbnRlcm5hbF9yZXN1bHQpCiB7Ci0gICAgcGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7Ci0gICAgcmVzdWx0LnB0ciA9IGludGVybmFs
X3Jlc3VsdC5wdHI7CisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKKyAgICByZXN1
bHQuYmVnaW4gPSAodWludHB0cl90KWludGVybmFsX3Jlc3VsdC5wdHI7CiAgICAgcmVzdWx0LmRp
ZF9zdWNjZWVkID0gaW50ZXJuYWxfcmVzdWx0LmRpZF9zdWNjZWVkOwogICAgIHJlc3VsdC56ZXJv
X21vZGUgPSBpbnRlcm5hbF9yZXN1bHQuemVyb19tb2RlOwogICAgIHJldHVybiByZXN1bHQ7CkBA
IC04NCwxMyArODQsMTMgQEAgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2FzX2ludHJpbnNp
YwogCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0
CiBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX3dpdGhfaW50cmluc2ljX2FsbG9j
YXRpb25fcmVzdWx0KAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQgaW50cmlu
c2ljX3Jlc3VsdCwKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgaW50cmluc2ljX3Jlc3VsdCwK
ICAgICBwYXNfaGVhcF90eXBlKiB0eXBlLAogICAgIHNpemVfdCBzaXplKQogewogICAgIHBhc190
eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAgICAgcmVzdWx0LnR5cGUgPSB0eXBlOwot
ICAgIHJlc3VsdC5wdHIgPSBpbnRyaW5zaWNfcmVzdWx0LnB0cjsKKyAgICByZXN1bHQucHRyID0g
KHZvaWQqKWludHJpbnNpY19yZXN1bHQuYmVnaW47CiAgICAgcmVzdWx0LnNpemUgPSBzaXplOwog
ICAgIHJlc3VsdC5kaWRfc3VjY2VlZCA9IGludHJpbnNpY19yZXN1bHQuZGlkX3N1Y2NlZWQ7CiAg
ICAgcmVzdWx0Lnplcm9fbW9kZSA9IGludHJpbnNpY19yZXN1bHQuemVyb19tb2RlOwpAQCAtMTAw
LDcgKzEwMCw3IEBAIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfd2l0aF8KIHN0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190
eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCBy
ZXN1bHQpCiB7Ci0gICAgcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAorICAg
IHBhc19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKAogICAgICAgICBwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHRfYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KHJlc3VsdCksCiAgICAgICAg
IHJlc3VsdC5zaXplKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTA5LDcgKzEwOSw3IEBAIHBh
c190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHBhc190eXAKIHN0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSBwYXNfdHlwZWRfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc190eXBlZF9hbGxvY2F0aW9u
X3Jlc3VsdF9zZXRfZXJybm8ocGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdCkKIHsK
LSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0X3NldF9lcnJubygKKyAgICBwYXNf
YWxsb2NhdGlvbl9yZXN1bHRfc2V0X2Vycm5vKAogICAgICAgICBwYXNfdHlwZWRfYWxsb2NhdGlv
bl9yZXN1bHRfYXNfaW50cmluc2ljX2FsbG9jYXRpb25fcmVzdWx0KHJlc3VsdCkpOwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CkBAIC0xMTcsNyArMTE3LDcgQEAgcGFzX3R5cGVkX2FsbG9jYXRpb25f
cmVzdWx0X3NldF9lcnJubyhwYQogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc190eXBlZF9h
bGxvY2F0aW9uX3Jlc3VsdAogcGFzX3R5cGVkX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNoX29uX2Vy
cm9yKHBhc190eXBlZF9hbGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQpCiB7Ci0gICAgcGFzX2ludHJp
bnNpY19hbGxvY2F0aW9uX3Jlc3VsdF9jcmFzaF9vbl9lcnJvcigKKyAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IoCiAgICAgICAgIHBhc190eXBlZF9hbGxvY2F0aW9uX3Jl
c3VsdF9hc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHQocmVzdWx0KSk7CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191
dGlsaXR5X2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdXRpbGl0eV9oZWFwLmMJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXAuYwkod29ya2luZyBjb3B5KQpA
QCAtNDIsMTQgKzQyLDEyIEBAIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnIHBhc191dGlsaXR5X2hl
YXAKICAgICAuc2hhcmluZ19tb2RlID0gcGFzX3NoYXJlX3BhZ2VzLAogICAgIC5zdGF0aWNhbGx5
X2FsbG9jYXRlZCA9IHRydWUsCiAgICAgLmlzX3BhcnRfb2ZfaGVhcCA9IGZhbHNlLAotICAgIC5k
aXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfcGFydGlhbF92aWV3cyA9Ci0gICAgICAgIFBBU19VVElM
SVRZX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTLAotICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9m
b3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9Ci0gICAgICAgIFBBU19VVElMSVRZX0JPVU5EX0ZPUl9C
QVNFTElORV9BTExPQ0FUT1JTLAotICAgIC5tYXhfc2VncmVnYXRlZF9vYmplY3Rfc2l6ZSA9Ci0g
ICAgICAgIFBBU19VVElMSVRZX01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFLAotICAgIC5tYXhf
Yml0Zml0X29iamVjdF9zaXplID0KLSAgICAgICAgUEFTX1VUSUxJVFlfTUFYX0JJVEZJVF9PQkpF
Q1RfU0laRQorICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3JfcGFydGlhbF92aWV3cyA9IFBB
U19VVElMSVRZX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTLAorICAgIC5kaXJlY3Rvcnlfc2l6ZV9i
b3VuZF9mb3JfYmFzZWxpbmVfYWxsb2NhdG9ycyA9IFBBU19VVElMSVRZX0JPVU5EX0ZPUl9CQVNF
TElORV9BTExPQ0FUT1JTLAorICAgIC5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19j
YWNoZSA9IFBBU19VVElMSVRZX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFLAorICAgIC5tYXhfc2Vn
cmVnYXRlZF9vYmplY3Rfc2l6ZSA9IFBBU19VVElMSVRZX01BWF9TRUdSRUdBVEVEX09CSkVDVF9T
SVpFLAorICAgIC5tYXhfYml0Zml0X29iamVjdF9zaXplID0gUEFTX1VUSUxJVFlfTUFYX0JJVEZJ
VF9PQkpFQ1RfU0laRSwKKyAgICAudmlld19jYWNoZV9jYXBhY2l0eV9mb3Jfb2JqZWN0X3NpemUg
PSBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZ196ZXJvX3ZpZXdfY2FjaGVfY2FwYWNpdHkKIH07CiAK
IHBhc19zZWdyZWdhdGVkX2hlYXAgcGFzX3V0aWxpdHlfc2VncmVnYXRlZF9oZWFwID0gewpAQCAt
MTA1LDEzICsxMDMsMTQgQEAgdm9pZCogcGFzX3V0aWxpdHlfaGVhcF90cnlfYWxsb2NhdGVfd2l0
aAogCiAgICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3JfaXNfbnVsbChhbGxvY2F0b3IpCiAgICAg
ICAgIHx8IGFsaWdubWVudCA+IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxpZ25tZW50KGFsbG9jYXRv
cikpIHsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJl
Y3Rvcnk7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7
CiAgICAgICAgIAogICAgICAgICBwYXNfdXRpbGl0eV9oZWFwX3N1cHBvcnRfaW5zdGFuY2Uuc2xv
d19wYXRoX2NvdW50Kys7CiAKICAgICAgICAgZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX2NvdW50KAogICAgICAgICAgICAgJnBhc191dGls
aXR5X3NlZ3JlZ2F0ZWRfaGVhcCwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQsCi0gICAgICAgICAg
ICBwYXNfZm9yY2VfY291bnRfbG9va3VwLCAmcGFzX3V0aWxpdHlfaGVhcF9jb25maWcsIE5VTEwp
OworICAgICAgICAgICAgcGFzX2ZvcmNlX2NvdW50X2xvb2t1cCwgJnBhc191dGlsaXR5X2hlYXBf
Y29uZmlnLCBOVUxMLAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlf
ZnVsbF9jcmVhdGlvbl9tb2RlKTsKIAogICAgICAgICBQQVNfQVNTRVJUKGRpcmVjdG9yeSk7CiAK
QEAgLTEyNCw3ICsxMjMsOCBAQCB2b2lkKiBwYXNfdXRpbGl0eV9oZWFwX3RyeV9hbGxvY2F0ZV93
aXRoCiAgICAgICAgICh2b2lkKilhbGlnbmVkX3NpemUsCiAgICAgICAgIGFsaWdubWVudCwKICAg
ICAgICAgUEFTX1VUSUxJVFlfSEVBUF9DT05GSUcsCi0gICAgICAgICZwYXNfdXRpbGl0eV9hbGxv
Y2F0b3JfY291bnRzKS5iZWdpbjsKKyAgICAgICAgJnBhc191dGlsaXR5X2FsbG9jYXRvcl9jb3Vu
dHMsCisgICAgICAgIHBhc19hbGxvY2F0aW9uX3Jlc3VsdF9pZGVudGl0eSkuYmVnaW47CiAKICAg
ICBwYXNfZGlkX2FsbG9jYXRlKHJlc3VsdCwgc2l6ZSwgcGFzX3V0aWxpdHlfaGVhcF9raW5kLCBu
YW1lLCBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwogCkBAIC0xNjYsNyArMTY2LDkgQEAgdm9pZCBw
YXNfdXRpbGl0eV9oZWFwX2RlYWxsb2NhdGUodm9pZCogcAogCiAgICAgYmVnaW4gPSAodWludHB0
cl90KXB0cjsKIAotICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZShiZWdpbiwgTlVM
TCwgUEFTX1VUSUxJVFlfSEVBUF9DT05GSUcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpOworICAg
IHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZSgKKyAgICAgICAgYmVnaW4sIE5VTEwsIHBh
c19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZSwgTlVMTCwKKyAgICAgICAgUEFT
X1VUSUxJVFlfSEVBUF9DT05GSUcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpOwogfQogCiBzaXpl
X3QgcGFzX3V0aWxpdHlfaGVhcF9nZXRfbnVtX2ZyZWVfYnl0ZXModm9pZCkKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXAuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwLmgJ
KHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c191dGlsaXR5X2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTAgKzM4LDEwIEBAIFBBU19C
RUdJTl9FWFRFUk5fQzsKIAogc3RydWN0IHBhc19zZWdyZWdhdGVkX2hlYXA7CiBzdHJ1Y3QgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZTsKLXN0cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJl
Y3Rvcnk7CitzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9oZWFwIHBhc19zZWdyZWdhdGVkX2hlYXA7CiB0eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlIHBhc19zZWdyZWdhdGVkX3BhZ2U7Ci10eXBlZGVmIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRf
Z2xvYmFsX3NpemVfZGlyZWN0b3J5OwordHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiAKIC8qIFRoZSB1dGls
aXR5IGhlYXAgaXMgZm9yIGFsbG9jYXRpbmcgaGlnaCB2b2x1bWVzIG9mIHNtYWxsIG9iamVjdHMg
YXMgcGFydCBvZiBib29ra2VlcGluZyBmb3IKICAgIHRoZSBoZWFwcyB0aGF0IGxpYnBhcyBhY3R1
YWxseSBwcm92aWRlcy4gSXQgY2FuIG9ubHkgaGFuZGxlIG9iamVjdHMgdXAgdG8gc29tZSBzaXpl
IChyb3VnaGx5CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRp
bGl0eV9oZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4MjIzOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmln
LmMJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDkgKzQ1LDExIEBAIFBBU19TRUdSRUdBVEVEX1BBR0Vf
Q09ORklHX1NQRUNJQUxJWkFUSU8KIFBBU19IRUFQX0NPTkZJR19TUEVDSUFMSVpBVElPTl9ERUZJ
TklUSU9OUygKICAgICBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZywgUEFTX1VUSUxJVFlfSEVBUF9D
T05GSUcpOwogCi12b2lkKiBwYXNfdXRpbGl0eV9oZWFwX2FsbG9jYXRlX3BhZ2UocGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcCkKK3ZvaWQqIHBhc191dGlsaXR5X2hlYXBfYWxsb2NhdGVfcGFnZSgK
KyAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5z
YWN0aW9uKiB0cmFuc2FjdGlvbikKIHsKICAgICBQQVNfVU5VU0VEX1BBUkFNKGhlYXApOworICAg
IFBBU19BU1NFUlQoIXRyYW5zYWN0aW9uKTsKICAgICByZXR1cm4gKHZvaWQqKXBhc19jb21wYWN0
X2Jvb3RzdHJhcF9mcmVlX2hlYXBfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAogICAgICAg
ICBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUsCiAgICAgICAgIHBhc19hbGlnbm1lbnRfY3Jl
YXRlX3RyYWRpdGlvbmFsKFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSksCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5
X2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDExICs1OCwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQqIHBhc191dGlsaXR5X2hlYXBfYm91
CiAgICAgcmV0dXJuIHBhZ2U7CiB9CiAKLVBBU19BUEkgdm9pZCogcGFzX3V0aWxpdHlfaGVhcF9h
bGxvY2F0ZV9wYWdlKHBhc19zZWdyZWdhdGVkX2hlYXAqIGhlYXApOworUEFTX0FQSSB2b2lkKiBw
YXNfdXRpbGl0eV9oZWFwX2FsbG9jYXRlX3BhZ2UoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCog
aGVhcCwgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pOwogCiBz
dGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSoKIHBhc191
dGlsaXR5X2hlYXBfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3NlbGVjdG9yKHBhc19zZWdyZWdhdGVk
X2hlYXAqIGhlYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpCiB7CiAgICAgUEFTX1VOVVNFRF9QQVJBTSho
ZWFwKTsKICAgICBQQVNfVU5VU0VEX1BBUkFNKGRpcmVjdG9yeSk7CkBAIC0xMjYsNiArMTI3LDcg
QEAgUEFTX0FQSSBib29sIHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2ZvcgogICAgICAgICAgICAg
LnVzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSBQQVNfQVJNNjQsIFwKICAgICAgICAgICAgIC5j
aGVja19kZWFsbG9jYXRpb24gPSBmYWxzZSwgXAogICAgICAgICAgICAgLmVuYWJsZV9lbXB0eV93
b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IGZhbHNlLCBcCisgICAgICAgICAgICAuZW5h
YmxlX3ZpZXdfY2FjaGUgPSBmYWxzZSwgXAogICAgICAgICAgICAgLnNoYXJlZF9wYWdlX2RpcmVj
dG9yeV9zZWxlY3RvciA9IHBhc191dGlsaXR5X2hlYXBfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X3Nl
bGVjdG9yLCBcCiAgICAgICAgICAgICBQQVNfU0VHUkVHQVRFRF9QQUdFX0NPTkZJR19TUEVDSUFM
SVpBVElPTlMocGFzX3V0aWxpdHlfaGVhcF9wYWdlX2NvbmZpZykgXAogICAgICAgICB9LCBcCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX3N1
cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdXRpbGl0eV9oZWFwX3N1cHBvcnQuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9zdXBwb3J0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX3V0aWxpdHlfaGVh
cF9zdXBwb3J0IAogdHlwZWRlZiB1bmlvbiBwYXNfdXRpbGl0eV9oZWFwX2FsbG9jYXRvciBwYXNf
dXRpbGl0eV9oZWFwX2FsbG9jYXRvcjsKIAogc3RydWN0IHBhc191dGlsaXR5X2hlYXBfc3VwcG9y
dCB7Ci0gICAgcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X3B0cgorICAgIHBhc19jb21wYWN0X2F0b21pY19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X3B0cgogICAgICAgICBpbmRleF90b19zaXplX2RpcmVjdG9yeVtQQVNfTlVNX1VUSUxJVFlfU0la
RV9DTEFTU0VTXTsKICAgICBwYXNfdXRpbGl0eV9oZWFwX2FsbG9jYXRvciogYWxsb2NhdG9yczsK
ICAgICB1aW50NjRfdCBzbG93X3BhdGhfY291bnQ7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3MiwxMyArMzcyLDEzIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgcGFzX2hhc2hfcHRyKGNv
bnMKIC8qIFVuZGVmaW5lZCBmb3IgdmFsdWUgPT0gMC4gKi8KIHN0YXRpYyBpbmxpbmUgdW5zaWdu
ZWQgcGFzX2xvZzIodWludHB0cl90IHZhbHVlKQogewotICAgIHJldHVybiAoc2l6ZW9mKHVpbnRw
dHJfdCkgKiA4IC0gMSkgLSBfX2J1aWx0aW5fY2x6bCh2YWx1ZSk7CisgICAgcmV0dXJuIChzaXpl
b2YodWludHB0cl90KSAqIDggLSAxKSAtICh1bnNpZ25lZClfX2J1aWx0aW5fY2x6bCh2YWx1ZSk7
CiB9CiAKIC8qIFVuZGVmaW5lZCBmb3IgdmFsdWUgPD0gMS4gKi8KIHN0YXRpYyBpbmxpbmUgdW5z
aWduZWQgcGFzX2xvZzJfcm91bmRlZF91cCh1aW50cHRyX3QgdmFsdWUpCiB7Ci0gICAgcmV0dXJu
IChzaXplb2YodWludHB0cl90KSAqIDggLSAxKSAtIChfX2J1aWx0aW5fY2x6bCh2YWx1ZSAtIDEp
IC0gMSk7CisgICAgcmV0dXJuIChzaXplb2YodWludHB0cl90KSAqIDggLSAxKSAtICgodW5zaWdu
ZWQpX19idWlsdGluX2NsemwodmFsdWUgLSAxKSAtIDEpOwogfQogCiBzdGF0aWMgaW5saW5lIHVu
c2lnbmVkIHBhc19sb2cyX3JvdW5kZWRfdXBfc2FmZSh1aW50cHRyX3QgdmFsdWUpCkBAIC0zODgs
NiArMzg4LDExIEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgcGFzX2xvZzJfcm91bmRlZF8KICAg
ICByZXR1cm4gcGFzX2xvZzJfcm91bmRlZF91cCh2YWx1ZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUg
dWludHB0cl90IHBhc19yb3VuZF91cF90b19uZXh0X3Bvd2VyX29mXzIodWludHB0cl90IHZhbHVl
KQoreworICAgIHJldHVybiAodWludHB0cl90KTEgPDwgcGFzX2xvZzJfcm91bmRlZF91cF9zYWZl
KHZhbHVlKTsKK30KKwogI2RlZmluZSBQQVNfU1dBUChsZWZ0LCByaWdodCkgZG8geyBcCiAgICAg
ICAgIHR5cGVvZiAobGVmdCkgX3N3YXBfdG1wID0gbGVmdDsgXAogICAgICAgICBsZWZ0ID0gcmln
aHQ7IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9oZWFw
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5
X2hlYXAuYwkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvdGhpbmd5X2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtNjgsMzYgKzY4LDM2IEBAIFBB
U19DUkVBVEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBUSElOR1lfSEVBUF9D
T05GSUcsCiAgICAgJnRoaW5neV9pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJh
c2UsCiAgICAgJnRoaW5neV9hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxs
b2NhdGlvbl9yZXN1bHRfaWRlbnRpdHksCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2lkZW50
aXR5LAogICAgICZ0aGluZ3lfcHJpbWl0aXZlX2hlYXAsCiAgICAgJnRoaW5neV9wcmltaXRpdmVf
aGVhcF9zdXBwb3J0LAogICAgIHBhc19pbnRyaW5zaWNfaGVhcF9pc19ub3RfZGVzaWduYXRlZCk7
CiAKIHZvaWQqIHRoaW5neV90cnlfYWxsb2NhdGVfcHJpbWl0aXZlKHNpemVfdCBzaXplKQogewot
ICAgIHJldHVybiB0cnlfYWxsb2NhdGVfcHJpbWl0aXZlKHNpemUsIDEpLnB0cjsKKyAgICByZXR1
cm4gKHZvaWQqKXRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoc2l6ZSwgMSkuYmVnaW47CiB9CiAKIHZv
aWQqIHRoaW5neV90cnlfYWxsb2NhdGVfcHJpbWl0aXZlX3plcm9lZChzaXplX3Qgc2l6ZSkKIHsK
LSAgICByZXR1cm4gcGFzX2ludHJpbnNpY19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHRyeV9hbGxv
Y2F0ZV9wcmltaXRpdmUoc2l6ZSwgMSksIHNpemUpLnB0cjsKKyAgICByZXR1cm4gKHZvaWQqKXBh
c19hbGxvY2F0aW9uX3Jlc3VsdF96ZXJvKHRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoc2l6ZSwgMSks
IHNpemUpLmJlZ2luOwogfQogCiB2b2lkKiB0aGluZ3lfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV93
aXRoX2FsaWdubWVudChzaXplX3Qgc2l6ZSwgc2l6ZV90IGFsaWdubWVudCkKIHsKLSAgICByZXR1
cm4gdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZShzaXplLCBhbGlnbm1lbnQpLnB0cjsKKyAgICByZXR1
cm4gKHZvaWQqKXRyeV9hbGxvY2F0ZV9wcmltaXRpdmUoc2l6ZSwgYWxpZ25tZW50KS5iZWdpbjsK
IH0KIAogdm9pZCogdGhpbmd5X3RyeV9yZWFsbG9jYXRlX3ByaW1pdGl2ZSh2b2lkKiBvbGRfcHRy
LCBzaXplX3QgbmV3X3NpemUpCiB7Ci0gICAgcmV0dXJuIHBhc190cnlfcmVhbGxvY2F0ZV9pbnRy
aW5zaWNfcHJpbWl0aXZlKAorICAgIHJldHVybiAodm9pZCopcGFzX3RyeV9yZWFsbG9jYXRlX2lu
dHJpbnNpY19wcmltaXRpdmUoCiAgICAgICAgIG9sZF9wdHIsCiAgICAgICAgICZ0aGluZ3lfcHJp
bWl0aXZlX2hlYXAsCiAgICAgICAgIG5ld19zaXplLAogICAgICAgICBUSElOR1lfSEVBUF9DT05G
SUcsCiAgICAgICAgIHRyeV9hbGxvY2F0ZV9wcmltaXRpdmVfZm9yX3JlYWxsb2MsCiAgICAgICAg
IHBhc19yZWFsbG9jYXRlX2Rpc2FsbG93X2hlYXBfdGVsZXBvcnQsCi0gICAgICAgIHBhc19yZWFs
bG9jYXRlX2ZyZWVfaWZfc3VjY2Vzc2Z1bCkucHRyOworICAgICAgICBwYXNfcmVhbGxvY2F0ZV9m
cmVlX2lmX3N1Y2Nlc3NmdWwpLmJlZ2luOwogfQogCiBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgK
QEAgLTEwNSw3ICsxMDUsNyBAQCBQQVNfQ1JFQVRFX1RSWV9BTExPQ0FURSgKICAgICBUSElOR1lf
SEVBUF9DT05GSUcsCiAgICAgJnRoaW5neV90eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLAogICAg
ICZ0aGluZ3lfYWxsb2NhdG9yX2NvdW50cywKLSAgICBwYXNfaW50cmluc2ljX2FsbG9jYXRpb25f
cmVzdWx0X2lkZW50aXR5KTsKKyAgICBwYXNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOwog
CiBfX2F0dHJpYnV0ZV9fKChtYWxsb2MpKQogdm9pZCogdGhpbmd5X3RyeV9hbGxvY2F0ZShwYXNf
aGVhcF9yZWYqIGhlYXBfcmVmKQpAQCAtMTIzLDcgKzEyMyw3IEBAIFBBU19DUkVBVEVfVFJZX0FM
TE9DQVRFX0FSUkFZKAogICAgIFRISU5HWV9IRUFQX0NPTkZJRywKICAgICAmdGhpbmd5X3R5cGVk
X3J1bnRpbWVfY29uZmlnLmJhc2UsCiAgICAgJnRoaW5neV9hbGxvY2F0b3JfY291bnRzLAotICAg
IHBhc19pbnRyaW5zaWNfYWxsb2NhdGlvbl9yZXN1bHRfaWRlbnRpdHkpOworICAgIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdF9pZGVudGl0eSk7CiAKIF9fYXR0cmlidXRlX18oKG1hbGxvYykpCiB2b2lk
KiB0aGluZ3lfdHJ5X2FsbG9jYXRlX2FycmF5KHBhc19oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVf
dCBjb3VudCwgc2l6ZV90IGFsaWdubWVudCkKQEAgLTE3MCwxNCArMTcwLDE0IEBAIFBBU19DUkVB
VEVfVFJZX0FMTE9DQVRFX0lOVFJJTlNJQ19QUklNSVQKICAgICBUSElOR1lfSEVBUF9DT05GSUcs
CiAgICAgJnRoaW5neV9pbnRyaW5zaWNfcHJpbWl0aXZlX3J1bnRpbWVfY29uZmlnLmJhc2UsCiAg
ICAgJnRoaW5neV9hbGxvY2F0b3JfY291bnRzLAotICAgIHBhc19pbnRyaW5zaWNfYWxsb2NhdGlv
bl9yZXN1bHRfY3Jhc2hfb25fZXJyb3IsCisgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyYXNo
X29uX2Vycm9yLAogICAgICZ0aGluZ3lfdXRpbGl0eV9oZWFwLAogICAgICZ0aGluZ3lfdXRpbGl0
eV9oZWFwX3N1cHBvcnQsCiAgICAgcGFzX2ludHJpbnNpY19oZWFwX2lzX25vdF9kZXNpZ25hdGVk
KTsKIAogdm9pZCogdGhpbmd5X3V0aWxpdHlfaGVhcF9hbGxvY2F0ZShzaXplX3Qgc2l6ZSkKIHsK
LSAgICByZXR1cm4gdXRpbGl0eV9oZWFwX2FsbG9jYXRlKHNpemUsIDEpLnB0cjsKKyAgICByZXR1
cm4gKHZvaWQqKXV0aWxpdHlfaGVhcF9hbGxvY2F0ZShzaXplLCAxKS5iZWdpbjsKIH0KIAogI2Vu
ZGlmIC8qIFBBU19FTkFCTEVfVEhJTkdZICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuYwkocmV2aXNpb24gMjgy
MjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvdGhpbmd5X2hlYXBfY29u
ZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykg
MjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzcsNyArMzcsOCBAQCBwYXNfaGVhcF9jb25maWcgdGhpbmd5
X2hlYXBfY29uZmlnID0gVEhJCiAKIFBBU19CQVNJQ19IRUFQX0NPTkZJR19ERUZJTklUSU9OUygK
ICAgICB0aGluZ3ksIFRISU5HWSwKLSAgICAuYWxsb2NhdGVfcGFnZV9zaG91bGRfemVybyA9IHRy
dWUpOworICAgIC5hbGxvY2F0ZV9wYWdlX3Nob3VsZF96ZXJvID0gdHJ1ZSwKKyAgICAuaW50cmlu
c2ljX3ByaW1pdGl2ZV92aWV3X2NhY2hlX2NhcGFjaXR5ID0gcGFzX2hlYXBfcnVudGltZV9jb25m
aWdfemVyb192aWV3X2NhY2hlX2NhcGFjaXR5KTsKIAogI2VuZGlmIC8qIFBBU19FTkFCTEVfVEhJ
TkdZICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3RoaW5neV9o
ZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3RoaW5neV9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy90aGluZ3lfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5
KQpAQCAtNTMsNyArNTMsOCBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgLnNtYWxsX3NlZ3Jl
Z2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLnNt
YWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNB
UCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5
X29wdGltaXphdGlvbiA9IGZhbHNlLCBcCi0gICAgLnNtYWxsX3VzZV9yZXZlcnNlZF9jdXJyZW50
X3dvcmQgPSBQQVNfQVJNNjQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF91c2VfcmV2ZXJzZWRf
Y3VycmVudF93b3JkID0gUEFTX0FSTTY0LCBcCisgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gZmFs
c2UsIFwKICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKICAgICAuc21hbGxfYml0Zml0
X21pbl9hbGlnbl9zaGlmdCA9IFRISU5HWV9NSU5fQUxJR05fU0hJRlQsIFwKICAgICAuc21hbGxf
Yml0Zml0X3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9CSVRGSVRfUEFHRV9ERUZBVUxUX1NJWkUsIFwK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwQ2hhb3NUZXN0cy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBD
aGFvc1Rlc3RzLmNwcAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy90ZXN0L0lzb0hlYXBDaGFvc1Rlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzYsNiAr
NzYsMTUgQEAgdm9pZCAoKnNlbGVjdGVkRGVhbGxvY2F0ZSkodm9pZCogcHRyKTsKIHBhc19oZWFw
KiBzZWxlY3RlZENvbW1vblByaW1pdGl2ZUhlYXA7CiBwYXNfaGVhcCogKCpzZWxlY3RlZEhlYXBS
ZWZHZXRIZWFwKShwYXNfaGVhcF9yZWYqIGhlYXBSZWYpOwogCisjaWYgUEFTX0VOQUJMRV9CTUFM
TE9DCitwYXNfcHJpbWl0aXZlX2hlYXBfcmVmIGdpZ2FjYWdlSGVhcFJlZjsKKwordm9pZCogZ2ln
YWNhZ2VBbGxvY2F0ZShzaXplX3Qgc2l6ZSkKK3sKKyAgICByZXR1cm4gYm1hbGxvY19hbGxvY2F0
ZV9hdXhpbGlhcnkoJmdpZ2FjYWdlSGVhcFJlZiwgc2l6ZSk7Cit9CisjZW5kaWYgLy8gUEFTX0VO
QUJMRV9CTUFMTE9DCisKIHZvaWQgZmx1c2hEZWFsbG9jYXRpb25Mb2dBbmRTdG9wQWxsb2NhdG9y
cygpCiB7CiAjaWYgVExDCkBAIC0zMzcsOSArMzQ2LDIzIEBAIHZvaWQgZW51bWVyYXRvclJlY29y
ZGVyKHBhc19lbnVtZXJhdG9yKiAKICAgICByZWNvcmRlZFJhbmdlc1traW5kXS5pbnNlcnQocmFu
Z2UpOwogfQogCit1bnNpZ25lZCB1bmlmb3JtbHlSYW5kb21VcFRvNTAwMCgpCit7CisgICAgcmV0
dXJuIGRldGVybWluaXN0aWNSYW5kb21OdW1iZXIoNTAwMCk7Cit9CisKK3Vuc2lnbmVkIHNvbWV0
aW1lc1NtYWxsU29tZXRpbWVzQmlnKCkKK3sKKyAgICBpZiAoZGV0ZXJtaW5pc3RpY1JhbmRvbU51
bWJlcigzMDApKQorICAgICAgICByZXR1cm4gZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcig1MDAw
KTsKKyAgICB1bnNpZ25lZCByZXN1bHQgPSBkZXRlcm1pbmlzdGljUmFuZG9tTnVtYmVyKDEwMDAw
MDApOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgdGVzdEFsbG9jYXRpb25DaGFvcyh1
bnNpZ25lZCBudW1UaHJlYWRzLCB1bnNpZ25lZCBudW1Jc29sYXRlZEhlYXBzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIG51bUluaXRpYWxBbGxvY2F0aW9ucywgdW5zaWduZWQg
bnVtQWN0aW9ucywgdW5zaWduZWQgbWF4VG90YWxTaXplLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgdGVzdEVudW1lcmF0b3IpCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgbnVtSW5pdGlhbEFsbG9jYXRpb25zLCB1bnNpZ25lZCBudW1BY3Rpb25zLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkICgqY2hvb3NlU2l6ZSkoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnNpZ25lZCBtYXhUb3RhbFNpemUsIGJvb2wgdGVzdEVudW1lcmF0b3IpCiB7
CiAgICAgUEFTX0FTU0VSVCghcGFzX2Vwb2NoX2lzX2NvdW50ZXIpOyAvLyBXZSBkb24ndCB3YW50
IHRvIHJ1biB0aGVzZSB0ZXN0cyBpbiB0aGUgZmFrZSBzY2F2ZW5nZXIgbW9kZS4KICAgICAKQEAg
LTM4OSw4ICs0MTIsMTAgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVuc2lnbmVkIG51bVRo
cgogICAgICAgICAgICAgb3B0aW9uYWxPYmplY3RzLnB1c2hfYmFjayhPcHRpb25hbE9iamVjdCgp
KTsKICAgICB9CiAKLSAgICBpZiAoIXNlbGVjdGVkQWxsb2NhdGUpCi0gICAgICAgIG51bUlzb2xh
dGVkSGVhcHMgPSAwOworICAgIGlmICghc2VsZWN0ZWRBbGxvY2F0ZSAmJiBudW1Jc29sYXRlZEhl
YXBzKSB7CisgICAgICAgIGNvdXQgPDwgIlNraXBwaW5nIGJlY2F1c2UgdGVzdCByZXF1aXJlcyBp
c29sYXRlZCBoZWFwcyBhbmQgd2UgZG9uJ3Qgc3VwcG9ydCB0aGVtIGluIHRoaXMgY29uZmlndXJh
dGlvbi5cbiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAgICAgCiAgICAgdmVjdG9yPHBhc19o
ZWFwX3JlZio+IGlzb2xhdGVkSGVhcHM7CiAgICAgZm9yICh1bnNpZ25lZCBpc29sYXRlZEhlYXBJ
bmRleCA9IG51bUlzb2xhdGVkSGVhcHM7IGlzb2xhdGVkSGVhcEluZGV4LS07KSB7CkBAIC00Mjcs
NyArNDUyLDcgQEAgdm9pZCB0ZXN0QWxsb2NhdGlvbkNoYW9zKHVuc2lnbmVkIG51bVRocgogICAg
IAogICAgIGF1dG8gYWxsb2NhdGVTb21ldGhpbmcgPSBbJl0gKHVuc2lnbmVkIHRocmVhZEluZGV4
KSB7CiAgICAgICAgIHVuc2lnbmVkIGhlYXBJbmRleCA9IGRldGVybWluaXN0aWNSYW5kb21OdW1i
ZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGlzb2xhdGVkSGVhcHMuc2l6ZSgpICsgMSkpOwotICAg
ICAgICB1bnNpZ25lZCBzaXplID0gZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcig1MDAwKTsKKyAg
ICAgICAgdW5zaWduZWQgc2l6ZSA9IGNob29zZVNpemUoKTsKIAogICAgICAgICBpZiAoaGVhcElu
ZGV4ID09IGlzb2xhdGVkSGVhcHMuc2l6ZSgpKSB7CiAgICAgICAgICAgICBsb2dPcHRpb25hbE9i
amVjdCh0aHJlYWRJbmRleCwgc2l6ZSk7CkBAIC01ODIsNiArNjA3LDE1IEBAIHZvaWQgdGVzdEFs
bG9jYXRpb25DaGFvcyh1bnNpZ25lZCBudW1UaHIKICAgICAgICAgICAgIAogICAgICAgICAgICAg
cGFzX2VudW1lcmF0b3JfZW51bWVyYXRlX2FsbChlbnVtZXJhdG9yKTsKIAorICAgICAgICAgICAg
aWYgKHZlcmJvc2UpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIGVudHJ5IDogcmVjb3Jk
ZWRSYW5nZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgcGFzX2VudW1lcmF0b3JfcmVjb3JkX2tp
bmQga2luZCA9IGVudHJ5LmZpcnN0OworICAgICAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHJh
bmdlIDogZW50cnkuc2Vjb25kKQorICAgICAgICAgICAgICAgICAgICAgICAgY291dCA8PCBwYXNf
ZW51bWVyYXRvcl9yZWNvcmRfa2luZF9nZXRfc3RyaW5nKGtpbmQpIDw8ICI6ICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPDwgcmFuZ2UuYmFzZSA8PCAiLi4uIiA8PCByYW5nZS5lbmQo
KSA8PCAiXG4iOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKwogICAgICAgICAg
ICAgYXV0byBjaGVja05vbk92ZXJsYXBwaW5nID0KICAgICAgICAgICAgICAgICBbJl0gKGNvbnN0
IGNoYXIqIGFTZXROYW1lLCBzZXQ8UmVjb3JkZWRSYW5nZT4mIGFTZXQsCiAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyKiBiU2V0TmFtZSwgc2V0PFJlY29yZGVkUmFuZ2U+JiBiU2V0LApA
QCAtNzgxLDYgKzgxNSw3IEBAIHZvaWQgdGVzdEFsbG9jYXRpb25DaGFvcyh1bnNpZ25lZCBudW1U
aHIKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg
ICAgICAgICAgUEFTX0FTU0VSVCghImJhZCByYW5kb20gbnVtYmVyIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKHZlcmJvc2Up
CkBAIC04NTIsMzUgKzg4NywzOSBAQCB2b2lkIHRlc3RBbGxvY2F0aW9uQ2hhb3ModW5zaWduZWQg
bnVtVGhyCiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKIH0KIAotdm9pZCBhZGRUaGVUZXN0
cyhib29sIHRlc3RFbnVtZXJhdG9yKQordm9pZCBhZGRUaGVUZXN0cyh1bnNpZ25lZCBtdWx0aXBs
aWVyLCBib29sIHRlc3RFbnVtZXJhdG9yKQogewotICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9u
Q2hhb3MoMSwgMTAsIDEwMDAsIDEwMDAwMDAsIDEwMDAwMDAwLCBmYWxzZSkpOwotICAgIEFERF9U
RVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDEwLCAxMDAwLCAyMDAwMDAsIDEwMDAwMDAwLCBm
YWxzZSkpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMCwgMTAwMCAqIG11
bHRpcGxpZXIsIDEwMDAwMDAgKiBtdWx0aXBsaWVyLCB1bmlmb3JtbHlSYW5kb21VcFRvNTAwMCwg
MTAwMDAwMDAgKiBtdWx0aXBsaWVyLCBmYWxzZSkpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0
aW9uQ2hhb3MoMSwgMTAsIDEwMDAgKiBtdWx0aXBsaWVyLCA1MDAwMDAgKiBtdWx0aXBsaWVyLCBz
b21ldGltZXNTbWFsbFNvbWV0aW1lc0JpZywgMTAwMDAwMDAgKiBtdWx0aXBsaWVyLCBmYWxzZSkp
OworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMTAsIDAsIDEwMDAgKiBtdWx0aXBs
aWVyLCAyMDAwMDAgKiBtdWx0aXBsaWVyLCBzb21ldGltZXNTbWFsbFNvbWV0aW1lc0JpZywgMTAw
MDAwMDAgKiBtdWx0aXBsaWVyLCBmYWxzZSkpOworICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9u
Q2hhb3MoMTAsIDEwLCAxMDAwICogbXVsdGlwbGllciwgMjAwMDAwICogbXVsdGlwbGllciwgdW5p
Zm9ybWx5UmFuZG9tVXBUbzUwMDAsIDEwMDAwMDAwICogbXVsdGlwbGllciwgZmFsc2UpKTsKICAg
ICBpZiAodGVzdEVudW1lcmF0b3IpIHsKLSAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25D
aGFvcygxLCAxMCwgMTAwMCwgNzAwMCwgMTAwMDAwMDAsIHRydWUpKTsKLSAgICAgICAgQUREX1RF
U1QodGVzdEFsbG9jYXRpb25DaGFvcygxMCwgMTAsIDEwMDAsIDQwMDAsIDEwMDAwMDAwLCB0cnVl
KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMCwgMTAwMCwgNzAw
MCwgc29tZXRpbWVzU21hbGxTb21ldGltZXNCaWcsIDEwMDAwMDAwLCB0cnVlKSk7CisgICAgICAg
IEFERF9URVNUKHRlc3RBbGxvY2F0aW9uQ2hhb3MoMSwgMTAsIDEwMDAsIDcwMDAsIHVuaWZvcm1s
eVJhbmRvbVVwVG81MDAwLCAxMDAwMDAwMCwgdHJ1ZSkpOworICAgICAgICBBRERfVEVTVCh0ZXN0
QWxsb2NhdGlvbkNoYW9zKDEwLCAwLCAxMDAwLCA0MDAwLCB1bmlmb3JtbHlSYW5kb21VcFRvNTAw
MCwgMTAwMDAwMDAsIHRydWUpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRpb25DaGFv
cygxMCwgMTAsIDEwMDAsIDQwMDAsIHNvbWV0aW1lc1NtYWxsU29tZXRpbWVzQmlnLCAxMDAwMDAw
MCwgdHJ1ZSkpOwogICAgIH0KIH0KIAogdm9pZCBhZGRTcG90VGVzdHMoYm9vbCB0ZXN0RW51bWVy
YXRvcikKIHsKLSAgICBhZGRUaGVUZXN0cyh0ZXN0RW51bWVyYXRvcik7CisgICAgQUREX0dST1VQ
KGFkZFRoZVRlc3RzKDEwLCB0ZXN0RW51bWVyYXRvcikpOwogICAgIAogICAgIHsKICAgICAgICAg
Rm9yY2VFeGNsdXNpdmVzIGZvcmNlRXhjbHVzaXZlczsKICAgICAgICAgRGlzYWJsZUJpdGZpdCBk
aXNhYmxlQml0Zml0OwotICAgICAgICBhZGRUaGVUZXN0cyh0ZXN0RW51bWVyYXRvcik7CisgICAg
ICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0ZXN0RW51bWVyYXRvcikpOwogICAgIH0KICAg
ICAKICAgICB7CiAgICAgICAgIEZvcmNlVExBcyBmb3JjZVRMQXM7CiAgICAgICAgIEZvcmNlUGFy
dGlhbHMgZm9yY2VQYXJ0aWFsczsKLSAgICAgICAgYWRkVGhlVGVzdHMoZmFsc2UpOworICAgICAg
ICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICB9CiAgICAgCiAgICAgewog
ICAgICAgICBGb3JjZUJpdGZpdCBmb3JjZUJpdGZpdDsKLSAgICAgICAgYWRkVGhlVGVzdHMoZmFs
c2UpOworICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICB9CiB9
CiAKQEAgLTkwNCw1NSArOTQzLDU1IEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogICAg
ICAgICAgICAgICAgIHNlbGVjdGVkSGVhcFJlZkdldEhlYXAgPSBpc29faGVhcF9yZWZfZ2V0X2hl
YXA7CiAgICAgICAgICAgICB9KTsKICAgICAKLSAgICAgICAgYWRkVGhlVGVzdHModHJ1ZSk7Cisg
ICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxMCwgdHJ1ZSkpOwogCiAgICAgICAgIHsKICAg
ICAgICAgICAgIERpc2FibGVCaXRmaXQgZGlzYWJsZUJpdGZpdDsKLSAgICAgICAgICAgIGFkZFRo
ZVRlc3RzKGZhbHNlKTsKKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxz
ZSkpOwogICAgICAgICB9CiAgICAgCiAgICAgICAgIHsKICAgICAgICAgICAgIEZvcmNlRXhjbHVz
aXZlcyBmb3JjZUV4Y2x1c2l2ZXM7Ci0gICAgICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7Cisg
ICAgICAgICAgICBBRERfR1JPVVAoYWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICAgICAgfQog
ICAgIAogICAgICAgICB7CiAgICAgICAgICAgICBGb3JjZUV4Y2x1c2l2ZXMgZm9yY2VFeGNsdXNp
dmVzOwogICAgICAgICAgICAgRGlzYWJsZUJpdGZpdCBkaXNhYmxlQml0Zml0OwotICAgICAgICAg
ICAgYWRkVGhlVGVzdHModHJ1ZSk7IC8vIFRoaXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBleGNs
dXNpdmVzIG9uIGZvciBzdXJlLgorICAgICAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEs
IHRydWUpKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGV4Y2x1c2l2ZXMgb24gZm9y
IHN1cmUuCiAgICAgICAgIH0KICAgICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VUTEFz
IGZvcmNlVExBczsKICAgICAgICAgICAgIEZvcmNlUGFydGlhbHMgZm9yY2VQYXJ0aWFsczsKLSAg
ICAgICAgICAgIGFkZFRoZVRlc3RzKHRydWUpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdp
dGggcGFydGlhbHMgYW5kIFRMQXMgb24gZm9yIHN1cmUuCisgICAgICAgICAgICBBRERfR1JPVVAo
YWRkVGhlVGVzdHMoMSwgdHJ1ZSkpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggcGFy
dGlhbHMgYW5kIFRMQXMgb24gZm9yIHN1cmUuCiAgICAgICAgIH0KICAgICAKICAgICAgICAgewog
ICAgICAgICAgICAgRm9yY2VCaXRmaXQgZm9yY2VCaXRmaXQ7Ci0gICAgICAgICAgICBhZGRUaGVU
ZXN0cyh0cnVlKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGJpdGZpdCBvbiBmb3Ig
c3VyZS4KKyAgICAgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCB0cnVlKSk7IC8vIFRo
aXMgdGVzdHMgZW51bWVyYXRpb24gd2l0aCBiaXRmaXQgb24gZm9yIHN1cmUuCiAgICAgICAgIH0K
ICAgICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VCYXNlbGluZXMgZm9yY2VCYXNlbGlu
ZXM7CiAgICAgICAgICAgICBEaXNhYmxlQml0Zml0IGRpc2FibGVCaXRmaXQ7Ci0gICAgICAgICAg
ICBhZGRUaGVUZXN0cyh0cnVlKTsgLy8gVGhpcyB0ZXN0cyBlbnVtZXJhdGlvbiB3aXRoIGJhc2Vs
aW5lcyBhbmQgc2VnaGVhcHMgb24gZm9yIHN1cmUuCisgICAgICAgICAgICBBRERfR1JPVVAoYWRk
VGhlVGVzdHMoMSwgdHJ1ZSkpOyAvLyBUaGlzIHRlc3RzIGVudW1lcmF0aW9uIHdpdGggYmFzZWxp
bmVzIGFuZCBzZWdoZWFwcyBvbiBmb3Igc3VyZS4KICAgICAgICAgfQogICAgIAogICAgICAgICB7
CiAgICAgICAgICAgICBGb3JjZVRMQXMgZm9yY2VUTEFzOwotICAgICAgICAgICAgYWRkVGhlVGVz
dHMoZmFsc2UpOworICAgICAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIGZhbHNlKSk7
CiAgICAgICAgIH0KICAgICAKICAgICAgICAgewogICAgICAgICAgICAgRm9yY2VCYXNlbGluZXMg
Zm9yY2VCYXNlbGluZXM7CiAgICAgICAgICAgICBGb3JjZVBhcnRpYWxzIGZvcmNlUGFydGlhbHM7
Ci0gICAgICAgICAgICBhZGRUaGVUZXN0cyhmYWxzZSk7CisgICAgICAgICAgICBBRERfR1JPVVAo
YWRkVGhlVGVzdHMoMSwgZmFsc2UpKTsKICAgICAgICAgfQogCiAgICAgICAgIHsKICAgICAgICAg
ICAgIFRlc3RTY29wZSBmcmVxdWVudFNjYXZlbmdpbmcoCi0gICAgICAgICAgICAgICAgImZyZXF1
ZW5jdC1zY2F2ZW5naW5nIiwKKyAgICAgICAgICAgICAgICAiZnJlcXVlbnQtc2NhdmVuZ2luZyIs
CiAgICAgICAgICAgICAgICAgW10gKCkgewogICAgICAgICAgICAgICAgICAgICBwYXNfc2NhdmVu
Z2VyX3BlcmlvZF9pbl9taWxsaXNlY29uZHMgPSAxLjsKICAgICAgICAgICAgICAgICAgICAgcGFz
X3NjYXZlbmdlcl9tYXhfZXBvY2hfZGVsdGEgPSAtMWxsICogMTAwMGxsICogMTAwMGxsOwpAQCAt
MTAzMCw3ICsxMDY5LDQ1IEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKQogICAgICAgICAg
ICAgICAgIHNlbGVjdGVkSGVhcFJlZkdldEhlYXAgPSBibWFsbG9jX2hlYXBfcmVmX2dldF9oZWFw
OwogICAgICAgICAgICAgfSk7CiAgICAgCisgICAgICAgIGFkZFNwb3RUZXN0cyh0cnVlKTsKKyAg
ICB9CisKKyAgICB7CisgICAgICAgIFRlc3RTY29wZSBpc28oCisgICAgICAgICAgICAiYm1hbGxv
Yy1naWdhY2FnZSIsCisgICAgICAgICAgICBbXSAoKSB7CisgICAgICAgICAgICAgICAgZ2lnYWNh
Z2VIZWFwUmVmID0gQk1BTExPQ19BVVhJTElBUllfSEVBUF9SRUZfSU5JVElBTElaRVI7CisKKyAg
ICAgICAgICAgICAgICBzaXplX3QgcmVzZXJ2YXRpb25TaXplID0gMTAwMDAwMDAwMDsKKyAgICAg
ICAgICAgICAgICB2b2lkKiByZXNlcnZhdGlvbiA9IG1hbGxvYyhyZXNlcnZhdGlvblNpemUpOwor
ICAgICAgICAgICAgICAgIFBBU19BU1NFUlQocmVzZXJ2YXRpb24pOworCisgICAgICAgICAgICAg
ICAgcGFzX2hlYXAqIGhlYXAgPSBibWFsbG9jX2ZvcmNlX2F1eGlsaWFyeV9oZWFwX2ludG9fcmVz
ZXJ2ZWRfbWVtb3J5KAorICAgICAgICAgICAgICAgICAgICAmZ2lnYWNhZ2VIZWFwUmVmLAorICAg
ICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocmVzZXJ2YXRpb24p
LAorICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocmVzZXJ2
YXRpb24pICsgcmVzZXJ2YXRpb25TaXplKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAg
ICAgICBzZWxlY3RlZEhlYXBDb25maWcgPSAmYm1hbGxvY19oZWFwX2NvbmZpZzsKKyAgICAgICAg
ICAgICAgICBzZWxlY3RlZEFsbG9jYXRlQ29tbW9uUHJpbWl0aXZlID0gZ2lnYWNhZ2VBbGxvY2F0
ZTsKKyAgICAgICAgICAgICAgICBzZWxlY3RlZEFsbG9jYXRlID0gbnVsbHB0cjsKKyAgICAgICAg
ICAgICAgICBzZWxlY3RlZEFsbG9jYXRlQXJyYXkgPSBudWxscHRyOworICAgICAgICAgICAgICAg
IHNlbGVjdGVkRGVhbGxvY2F0ZSA9IGJtYWxsb2NfZGVhbGxvY2F0ZTsKKyAgICAgICAgICAgICAg
ICBzZWxlY3RlZENvbW1vblByaW1pdGl2ZUhlYXAgPSBoZWFwOworICAgICAgICAgICAgICAgIHNl
bGVjdGVkSGVhcFJlZkdldEhlYXAgPSBudWxscHRyOworICAgICAgICAgICAgfSk7CisgICAgCiAg
ICAgICAgIGFkZFNwb3RUZXN0cyhmYWxzZSk7CisKKyAgICAgICAgeworICAgICAgICAgICAgVGVz
dFNjb3BlIGZyZXF1ZW50U2NhdmVuZ2luZygKKyAgICAgICAgICAgICAgICAiZnJlcXVlbnQtc2Nh
dmVuZ2luZyIsCisgICAgICAgICAgICAgICAgW10gKCkgeworICAgICAgICAgICAgICAgICAgICBw
YXNfc2NhdmVuZ2VyX3BlcmlvZF9pbl9taWxsaXNlY29uZHMgPSAxLjsKKyAgICAgICAgICAgICAg
ICAgICAgcGFzX3NjYXZlbmdlcl9tYXhfZXBvY2hfZGVsdGEgPSAtMWxsICogMTAwMGxsICogMTAw
MGxsOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBhZGRTcG90VGVzdHMoZmFs
c2UpOworICAgICAgICB9CiAgICAgfQogI2VuZGlmIC8vIFBBU19FTkFCTEVfQk1BTExPQwogCkBA
IC0xMDY4LDcgKzExNDUsNyBAQCB2b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3RzKCkKIAogICAgICAg
ICBCb290SklUSGVhcCBib290SklUSGVhcDsKIAotICAgICAgICBhZGRUaGVUZXN0cyh0cnVlKTsK
KyAgICAgICAgQUREX0dST1VQKGFkZFRoZVRlc3RzKDEsIHRydWUpKTsKICAgICB9CiAKICAgICB7
CkBAIC0xMDg3LDcgKzExNjQsNyBAQCB2b2lkIGFkZElzb0hlYXBDaGFvc1Rlc3RzKCkKIAogICAg
ICAgICBCb290SklUSGVhcCBib290SklUSGVhcDsKIAotICAgICAgICBhZGRUaGVUZXN0cyhmYWxz
ZSk7CisgICAgICAgIEFERF9HUk9VUChhZGRUaGVUZXN0cygxLCBmYWxzZSkpOwogICAgIH0KICNl
bmRpZiAvLyBQQVNfRU5BQkxFX0hPVEJJVAogI2VuZGlmIC8vIFBBU19FTkFCTEVfSVNPCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFw
UGFnZVNoYXJpbmdUZXN0cy5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFnZVNoYXJpbmdUZXN0cy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQyLDcgKzQyLDcgQEAKICNpbmNsdWRlICJwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hl
YXAuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9tYWxsb2MuaCIKICNpbmNsdWRlICJwYXNfc2NhdmVu
Z2VyLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Lmgi
CisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgiCiAjaW5jbHVkZSA8c2V0PgogI2luY2x1ZGUgPHZlY3Rv
cj4KQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCB0ZXN0VGFrZVBhZ2VzKHVuc2lnbmVkIGZpcnN0T2Jq
ZWN0UwogICAgICAgICBDSEVDSyghb2JqZWN0cy5jb3VudChvYmplY3QpKTsKICAgICAgICAgb2Jq
ZWN0cy5pbnNlcnQob2JqZWN0KTsKICAgICAgICAgb2JqZWN0TGlzdC5wdXNoX2JhY2sob2JqZWN0
KTsKLSAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0
b3J5X2Zvcl9vYmplY3QoCisgICAgICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICZpc29f
aGVhcF9jb25maWcpLT5vYmplY3Rfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0aW5n
Rmlyc3RPYmplY3RTaXplKTsKQEAgLTE2NSw3ICsxNjUsNyBAQCB2b2lkIHRlc3RUYWtlUGFnZXMo
dW5zaWduZWQgZmlyc3RPYmplY3RTCiAgICAgICAgIENIRUNLKCFvYmplY3RzLmNvdW50KG9iamVj
dCkpOwogICAgICAgICBvYmplY3RzLmluc2VydChvYmplY3QpOwogICAgICAgICBvYmplY3RMaXN0
LnB1c2hfYmFjayhvYmplY3QpOwotICAgICAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9n
bG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICAgICAgQ0hFQ0tfRVFVQUwocGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgJmlzb19oZWFwX2NvbmZpZyktPm9iamVjdF9zaXplLAogICAgICAgICAgICAg
ICAgICAgICByZXN1bHRpbmdTZWNvbmRPYmplY3RTaXplKTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCB2
b2lkIHRlc3RUYWtlUGFnZXModW5zaWduZWQgZmlyc3RPYmplY3RTCiAgICAgICAgIENIRUNLKG9i
amVjdCk7CiAgICAgICAgIENIRUNLKCFvYmplY3RzLmNvdW50KG9iamVjdCkpOwogICAgICAgICBv
YmplY3RzLmluc2VydChvYmplY3QpOwotICAgICAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRl
ZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICAgICAgQ0hFQ0tfRVFVQUwo
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgJmlzb19oZWFwX2NvbmZpZyktPm9iamVjdF9zaXplLAogICAgICAgICAg
ICAgICAgICAgICByZXN1bHRpbmdGaXJzdE9iamVjdFNpemUpOwpAQCAtMjI5LDcgKzIyOSw3IEBA
IHZvaWQgdGVzdFRha2VQYWdlc0Zyb21Db3JyZWN0SGVhcCh1bnNpZ24KICAgICAKICAgICBwYXNf
aGVhcF9yZWYqIGhlYXBSZWZzID0gbmV3IHBhc19oZWFwX3JlZltudW1IZWFwc107CiAgICAgdm9p
ZCoqIG9iamVjdHMgPSBuZXcgdm9pZCpbbnVtSGVhcHNdOwotICAgIHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSoqIGRpcmVjdG9yaWVzID0gbmV3IHBhc19zZWdyZWdhdGVkX2ds
b2JhbF9zaXplX2RpcmVjdG9yeSpbbnVtSGVhcHNdOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiogZGlyZWN0b3JpZXMgPSBuZXcgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnkqW251bUhlYXBzXTsKICAgICAKICAgICB1bnNpZ25lZCBudW1IZWFwc0luU2Vjb25kUGhhc2Ug
PSBudW1IZWFwcyAtIG51bUhlYXBzSW5GaXJzdFBoYXNlOwogICAgIApAQCAtMjQyLDcgKzI0Miw3
IEBAIHZvaWQgdGVzdFRha2VQYWdlc0Zyb21Db3JyZWN0SGVhcCh1bnNpZ24KICAgICAgICAgb2Jq
ZWN0c1tpXSA9IGlzb190cnlfYWxsb2NhdGUoaGVhcFJlZnMgKyBpKTsKICAgICAgICAgaWYgKHZl
cmJvc2UpCiAgICAgICAgICAgICBjb3V0IDw8ICIgICAgQWxsb2NhdGVkIG9iamVjdCBhdCAiIDw8
IG9iamVjdHNbaV0gPDwgIlxuIjsKLSAgICAgICAgZGlyZWN0b3JpZXNbaV0gPSBwYXNfc2VncmVn
YXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICAgICAgZGlyZWN0b3Jp
ZXNbaV0gPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAogICAgICAg
ICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdHNbaV0pLCAmaXNvX2hlYXBf
Y29uZmlnKTsKICAgICAgICAgaWYgKGRpcmVjdG9yaWVzW2ldKQogICAgICAgICAgICAgQ0hFQ0tf
RVFVQUwoZGlyZWN0b3JpZXNbaV0tPm9iamVjdF9zaXplLCBzaXplRnVuYyhpKSk7CkBAIC0xOTgw
LDkgKzE5ODAsOSBAQCBwYXNfaGVhcCogc21hbGxIZWFwVHdvOwogcGFzX2hlYXAqIHNtYWxsSGVh
cFRocmVlOwogcGFzX2hlYXAqIGxhcmdlSGVhcE9uZTsKIHBhc19oZWFwKiBsYXJnZUhlYXBUd287
Ci1wYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHByaW1pdGl2ZVNtYWxsT25l
RGlyZWN0b3J5OwotcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBwcmltaXRp
dmVTbWFsbFR3b0RpcmVjdG9yeTsKLXBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eSogcHJpbWl0aXZlU21hbGxUaHJlZURpcmVjdG9yeTsKK3Bhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBwcmltaXRpdmVTbWFsbE9uZURpcmVjdG9yeTsKK3Bhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5KiBwcmltaXRpdmVTbWFsbFR3b0RpcmVjdG9yeTsKK3Bhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBwcmltaXRpdmVTbWFsbFRocmVlRGlyZWN0b3J5OwogCiB2b2lkIHNldHVw
VGhpbmd5KCkKIHsKQEAgLTIwODYsOSArMjA4Niw5IEBAIHZvaWQgYWxsb2NhdGVUaGluZ2llc0lt
cGwoVGhpbmd5S2luZCBraW4KICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gYWxsb2NhdGVNYW55
ID8gMTU2MjUwIDogMTsgaS0tOykgewogICAgICAgICAgICAgdm9pZCogb2JqZWN0ID0gYWRkT2Jq
ZWN0KGlzb190cnlfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZSgzMikpOwogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeTsKKyAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rv
cnk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVk
X2dsb2JhbF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAorICAgICAgICAgICAgZGlyZWN0b3J5
ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgICAg
ICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0KSwKICAgICAgICAgICAgICAg
ICAmaXNvX2hlYXBfY29uZmlnKTsKICAgICAgICAgICAgIApAQCAtMjEwMiw5ICsyMTAyLDkgQEAg
dm9pZCBhbGxvY2F0ZVRoaW5naWVzSW1wbChUaGluZ3lLaW5kIGtpbgogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSBhbGxvY2F0ZU1hbnkgPyAzOTA2MiA6IDE7IGktLTspIHsKICAgICAgICAgICAg
IHZvaWQqIG9iamVjdCA9IGFkZE9iamVjdChpc29fdHJ5X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRp
dmUoMTI4KSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2Jh
bF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgZGly
ZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3Qo
CisgICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9m
b3Jfb2JqZWN0KAogICAgICAgICAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihv
YmplY3QpLAogICAgICAgICAgICAgICAgICZpc29faGVhcF9jb25maWcpOwogICAgICAgICAgICAg
CkBAIC0yMTE4LDkgKzIxMTgsOSBAQCB2b2lkIGFsbG9jYXRlVGhpbmdpZXNJbXBsKFRoaW5neUtp
bmQga2luCiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGFsbG9jYXRlTWFueSA/IDEwNDE2NiA6
IDE7IGktLTspIHsKICAgICAgICAgICAgIHZvaWQqIG9iamVjdCA9IGFkZE9iamVjdChpc29fdHJ5
X2FsbG9jYXRlX2NvbW1vbl9wcmltaXRpdmUoNDgpKTsKICAgICAgICAgICAgIAotICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogICAgICAg
ICAgICAgCi0gICAgICAgICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6
ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICAgICAgICAgIGRpcmVjdG9yeSA9IHBhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgICAgICAgICAgcmVpbnRl
cnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdCksCiAgICAgICAgICAgICAgICAgJmlzb19oZWFw
X2NvbmZpZyk7CiAgICAgICAgICAgICAKQEAgLTQ1NDIsNyArNDU0Miw2IEBAIHZvaWQgYWRkSXNv
SGVhcFBhZ2VTaGFyaW5nVGVzdHMoKQogICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2
ZXM7CiAgICAgRm9yY2VUTEFzIGZvcmNlVExBczsKICAgICBEaXNhYmxlQml0Zml0IGRpc2FibGVC
aXRmaXQ7Ci0gICAgRm9yY2VPbmVNYWdhemluZSBmb3JjZU9uZU1hZ2F6aW5lOwogICAgIAogICAg
IHsKICAgICAgICAgVGVzdFNjb3BlIHRlc3RTY29wZSgKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9Jc29IZWFwUGFydGlhbEFuZEJh
c2VsaW5lVGVzdHMuY3BwCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgdGVzdFNpbXBsZVBhcnRpYWxBbGxvY2F0aW9u
cyhzaXplX3QKICAgICBzZXQ8dm9pZCo+IG9iamVjdFNldDsKICAgICBzZXQ8cGFzX3NlZ3JlZ2F0
ZWRfdmlldz4gdmlld1NldDsKICAgICBzZXQ8cGFzX3NlZ3JlZ2F0ZWRfcGFnZSo+IHBhZ2VTZXQ7
Ci0gICAgc2V0PHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSo+IHNpemVEaXJl
Y3RvcnlTZXQ7CisgICAgc2V0PHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Kj4gc2l6ZURp
cmVjdG9yeVNldDsKICAgICAKICAgICBwYXNfaGVhcF9yZWYgaGVhcCA9IElTT19IRUFQX1JFRl9J
TklUSUFMSVpFUl9XSVRIX0FMSUdOTUVOVChzaXplLCBhbGlnbm1lbnQpOwogCkBAIC0yMDksOSAr
MjA5LDkgQEAgdm9pZCB0ZXN0U2ltcGxlUGFydGlhbEFsbG9jYXRpb25zKHNpemVfdAogICAgICAg
ICBvYmplY3RTZXQuaW5zZXJ0KHB0cik7CiAgICAgICAgIHZpZXdTZXQuaW5zZXJ0KHZpZXcpOwog
ICAgICAgICBwYWdlU2V0Lmluc2VydChwYXNfc2VncmVnYXRlZF92aWV3X2dldF9wYWdlKHZpZXcp
KTsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplRGly
ZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KHZp
ZXcpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogc2l6ZURpcmVjdG9y
eSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpOwogICAgICAg
ICBDSEVDS19FUVVBTChzaXplRGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSwgc2l6ZSk7Ci0gICAgICAg
IENIRUNLKHBhc19pc19hbGlnbmVkKHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9y
eV9hbGlnbm1lbnQoc2l6ZURpcmVjdG9yeSksIGFsaWdubWVudCkpOworICAgICAgICBDSEVDSyhw
YXNfaXNfYWxpZ25lZChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9hbGlnbm1lbnQoc2l6
ZURpcmVjdG9yeSksIGFsaWdubWVudCkpOwogICAgICAgICBzaXplRGlyZWN0b3J5U2V0Lmluc2Vy
dChzaXplRGlyZWN0b3J5KTsKICAgICB9CiAKQEAgLTI4Nyw5ICsyODcsOSBAQCB2b2lkIHRlc3RT
aW1wbGVQYXJ0aWFsQWxsb2NhdGlvbnMoc2l6ZV90CiAgICAgICAgIG9iamVjdFNldC5pbnNlcnQo
cHRyKTsKICAgICAgICAgdmlld1NldC5pbnNlcnQodmlldyk7CiAgICAgICAgIHBhZ2VTZXQuaW5z
ZXJ0KHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3BhZ2UodmlldykpOwotICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIHNpemVEaXJlY3RvcnkgPSBwYXNfc2VncmVn
YXRlZF92aWV3X2dldF9nbG9iYWxfc2l6ZV9kaXJlY3Rvcnkodmlldyk7CisgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBzaXplRGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRf
dmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkodmlldyk7CiAgICAgICAgIENIRUNLX0VRVUFMKHNpemVE
aXJlY3RvcnktPm9iamVjdF9zaXplLCBzaXplKTsKLSAgICAgICAgQ0hFQ0socGFzX2lzX2FsaWdu
ZWQocGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChzaXplRGly
ZWN0b3J5KSwgYWxpZ25tZW50KSk7CisgICAgICAgIENIRUNLKHBhc19pc19hbGlnbmVkKHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2FsaWdubWVudChzaXplRGlyZWN0b3J5KSwgYWxpZ25t
ZW50KSk7CiAgICAgICAgIHNpemVEaXJlY3RvcnlTZXQuaW5zZXJ0KHNpemVEaXJlY3RvcnkpOwog
ICAgIH0KIApAQCAtNjAzLDggKzYwMyw2IEBAIHZvaWQgdGVzdE11bHRpcGxlUGFydGlhbHNGcm9t
RGlmZmVyZW50VGgKIHsKICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNl
OwogCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3RhYmxpbmcgPSBmYWxz
ZTsKLSAgICAKICAgICBwYXNfaGVhcF9yZWYgaGVhcCA9IElTT19IRUFQX1JFRl9JTklUSUFMSVpF
Ul9XSVRIX0FMSUdOTUVOVChzaXplLCBhbGlnbm1lbnQpOwogCiAgICAgdmVjdG9yPHRocmVhZD4g
dGhyZWFkczsKQEAgLTc5Miw3ICs3OTAsNiBAQCB2b2lkIHRlc3RUd29CYXNlbGluZXNFdmljdGlv
bnMoc2l6ZV90IHNpCiB2b2lkIGFkZFNjYXZlbmdlckRlcGVuZGVudFRlc3RzKCkKIHsKICAgICBE
aXNhYmxlQml0Zml0IGRpc2FibGVCaXRmaXQ7Ci0gICAgRGlzYWJsZUV4cGxvc2lvbiBkaXNhYmxl
RXhwbG9zaW9uOwogICAgIAogICAgIHsKICAgICAgICAgRm9yY2VQYXJ0aWFscyBmb3JjZVBhcnRp
YWxzOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBUYWJsaW5n
VGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9J
c29IZWFwVGFibGluZ1Rlc3RzLmNwcAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy90ZXN0L0lzb0hlYXBUYWJsaW5nVGVzdHMuY3BwCShub25leGlzdGVudCkK
QEAgLTEsMjI3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLQotI2luY2x1ZGUgIlRlc3RIYXJuZXNzLmgiCi0KLSNpZiBQQVNfRU5BQkxFX0lTTwot
Ci0jaW5jbHVkZSAiaXNvX3Rlc3RfaGVhcC5oIgotI2luY2x1ZGUgImlzb190ZXN0X2hlYXBfY29u
ZmlnLmgiCi0jaW5jbHVkZSA8bWFwPgotI2luY2x1ZGUgPHZlY3Rvcj4KLQotdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKLQotbmFtZXNwYWNlIHsKLQotdm9pZCB0ZXN0VGFibGluZyh1bnNpZ25lZCBzaXpl
LAotICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50IHZh
cmlhbnQsCi0gICAgICAgICAgICAgICAgIHVuc2lnbmVkIG51bVBhZ2VzVG9FbXB0eSwKLSAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgbnVtUGFnZXNOb3RUb0VtcHR5LAotICAgICAgICAgICAgICAg
ICBib29sIHVzZVRhYmxpbmcsCi0gICAgICAgICAgICAgICAgIGJvb2wgcmFnZVNjYXZlbmdlRHVy
aW5nUmVmaWxsKQotewotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7
Ci0gICAgCi0gICAgbWFwPHBhc19zZWdyZWdhdGVkX3ZpZXcsIHZlY3Rvcjx2b2lkKj4+IHBhZ2Vz
VG9FbXB0eTsKLSAgICBtYXA8cGFzX3NlZ3JlZ2F0ZWRfdmlldywgdmVjdG9yPHZvaWQqPj4gcGFn
ZXNOb3RUb0VtcHR5OwotICAgIHVuc2lnbmVkIG51bWJlck9mT2JqZWN0c1BlclBhZ2UgPSBwYXNf
c2VncmVnYXRlZF9wYWdlX251bWJlcl9vZl9vYmplY3RzKAotICAgICAgICBzaXplLCAqcGFzX2hl
YXBfY29uZmlnX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfcHRyX2Zvcl92YXJpYW50KCZpc29fdGVz
dF9oZWFwX2NvbmZpZywgdmFyaWFudCkpOwotCi0gICAgYXV0byBmaWxsID0KLSAgICAgICAgWyZd
IChhdXRvJiBtYXAsIHVuc2lnbmVkIGxpbWl0KSB7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IHBhZ2VJbmRleCA9IDA7IHBhZ2VJbmRleCA8IGxpbWl0OyArK3BhZ2VJbmRleCkgewotICAgICAg
ICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyA9IG51bGxwdHI7Ci0gICAgICAgICAg
ICAgICAgdmVjdG9yPHZvaWQqPiBvYmplY3RzOwotICAgICAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgb2JqZWN0SW5kZXggPSAwOyBvYmplY3RJbmRleCA8IG51bWJlck9mT2JqZWN0c1BlclBhZ2U7
ICsrb2JqZWN0SW5kZXgpIHsKLSAgICAgICAgICAgICAgICAgICAgdm9pZCogb2JqZWN0ID0gaXNv
X3Rlc3RfYWxsb2NhdGVfY29tbW9uX3ByaW1pdGl2ZShzaXplKTsKLSAgICAgICAgICAgICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyBteVZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9v
YmplY3QoCi0gICAgICAgICAgICAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJf
dD4ob2JqZWN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICZpc29fdGVzdF9oZWFwX2NvbmZp
Zyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAg
ICAgICAgY291dCA8PCAiQWxsb2NhdGVkIG9iamVjdCAiIDw8IG9iamVjdCA8PCAiIGluIHZpZXcg
IiA8PCBteVZpZXcgPDwgIlxuIjsKLSAgICAgICAgICAgICAgICAgICAgQ0hFQ0sobXlWaWV3KTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmplY3RJbmRleCkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgUEFTX0FTU0VSVCghdmlldyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB2aWV3
ID0gbXlWaWV3OwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAg
ICAgICAgIENIRUNLX0VRVUFMKG15Vmlldywgdmlldyk7Ci0gICAgICAgICAgICAgICAgICAgIG9i
amVjdHMucHVzaF9iYWNrKG9iamVjdCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIENIRUNLKHZpZXcpOwotICAgICAgICAgICAgICAgIENIRUNLKCFtYXAuY291bnQodmlldykp
OwotICAgICAgICAgICAgICAgIG1hcFt2aWV3XSA9IG9iamVjdHM7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH07Ci0KLSAgICBmaWxsKHBhZ2VzVG9FbXB0eSwgbnVtUGFnZXNUb0VtcHR5KTsKLSAg
ICBmaWxsKHBhZ2VzTm90VG9FbXB0eSwgbnVtUGFnZXNOb3RUb0VtcHR5KTsKLQotICAgIGZvciAo
YXV0byYgZW50cnkgOiBwYWdlc1RvRW1wdHkpIHsKLSAgICAgICAgd2hpbGUgKGVudHJ5LnNlY29u
ZC5zaXplKCkpIHsKLSAgICAgICAgICAgIGlzb190ZXN0X2RlYWxsb2NhdGUoZW50cnkuc2Vjb25k
LmJhY2soKSk7Ci0gICAgICAgICAgICBlbnRyeS5zZWNvbmQucG9wX2JhY2soKTsKLSAgICAgICAg
fQotICAgIH0KLSAgICBmb3IgKGF1dG8mIGVudHJ5IDogcGFnZXNOb3RUb0VtcHR5KSB7Ci0gICAg
ICAgIHdoaWxlIChlbnRyeS5zZWNvbmQuc2l6ZSgpID49IDIpIHsKLSAgICAgICAgICAgIGlzb190
ZXN0X2RlYWxsb2NhdGUoZW50cnkuc2Vjb25kLmJhY2soKSk7Ci0gICAgICAgICAgICBlbnRyeS5z
ZWNvbmQucG9wX2JhY2soKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHNjYXZlbmdlKCk7Ci0K
LSAgICBhdXRvIHJlZmlsbCA9Ci0gICAgICAgIFsmXSAoYXV0byYgbWFwLCB1bnNpZ25lZCBsaW1p
dCwgdW5zaWduZWQgZXhjbHVkZSkgewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBwYWdlSW5k
ZXggPSAwOyBwYWdlSW5kZXggPCBsaW1pdDsgKytwYWdlSW5kZXgpIHsKLSAgICAgICAgICAgICAg
ICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcgPSBudWxscHRyOwotICAgICAgICAgICAgICAgIHZl
Y3Rvcjx2b2lkKj4gb2JqZWN0czsKLSAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIG9iamVj
dEluZGV4ID0gMDsKLSAgICAgICAgICAgICAgICAgICAgIG9iamVjdEluZGV4IDwgbnVtYmVyT2ZP
YmplY3RzUGVyUGFnZSAtIGV4Y2x1ZGU7Ci0gICAgICAgICAgICAgICAgICAgICArK29iamVjdElu
ZGV4KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyYWdlU2NhdmVuZ2VEdXJpbmdSZWZpbGwp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzY2F2ZW5nZSgpOwotICAgICAgICAgICAgICAgICAg
ICB2b2lkKiBvYmplY3QgPSBpc29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKHNpemUp
OwotICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IG15VmlldyA9IHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZm9yX29iamVjdCgKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihvYmplY3QpLAotICAgICAgICAgICAgICAgICAgICAgICAg
Jmlzb190ZXN0X2hlYXBfY29uZmlnKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFvYmplY3RJ
bmRleCkgewotICAgICAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVCghdmlldyk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB2aWV3ID0gbXlWaWV3OwotICAgICAgICAgICAgICAgICAgICB9
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIENIRUNLX0VRVUFMKG15Vmlldywgdmlldyk7
Ci0gICAgICAgICAgICAgICAgICAgIG9iamVjdHMucHVzaF9iYWNrKG9iamVjdCk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIFBBU19BU1NFUlQodmlldyk7Ci0gICAgICAgICAg
ICAgICAgQ0hFQ0sobWFwLmNvdW50KHZpZXcpKTsKLSAgICAgICAgICAgICAgICBDSEVDS19FUVVB
TChtYXBbdmlld10uc2l6ZSgpICsgb2JqZWN0cy5zaXplKCksIG51bWJlck9mT2JqZWN0c1BlclBh
Z2UpOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotCi0gICAgaWYgKHVzZVRhYmxpbmcpIHsK
LSAgICAgICAgcmVmaWxsKHBhZ2VzTm90VG9FbXB0eSwgbnVtUGFnZXNOb3RUb0VtcHR5LCAxKTsK
LSAgICAgICAgcmVmaWxsKHBhZ2VzVG9FbXB0eSwgbnVtUGFnZXNUb0VtcHR5LCAwKTsKLSAgICB9
IGVsc2UgewotICAgICAgICByZWZpbGwocGFnZXNUb0VtcHR5LCBudW1QYWdlc1RvRW1wdHksIDAp
OwotICAgICAgICByZWZpbGwocGFnZXNOb3RUb0VtcHR5LCBudW1QYWdlc05vdFRvRW1wdHksIDEp
OwotICAgIH0KLX0KLQotdm9pZCB0ZXN0VW50YWJsaW5nKCkKLXsKLSAgICB2ZWN0b3I8dmVjdG9y
PHZvaWQqPj4gb2JqZWN0c0luUGFnZTsKLQotICAgIHVuc2lnbmVkIG51bWJlck9mT2JqZWN0c1Bl
clBhZ2UgPSBwYXNfc2VncmVnYXRlZF9wYWdlX251bWJlcl9vZl9vYmplY3RzKAotICAgICAgICAx
NiwgSVNPX1RFU1RfSEVBUF9DT05GSUcuc21hbGxfc2VncmVnYXRlZF9jb25maWcpOwotCi0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDI7ICsraSkgewotICAgICAgICB2ZWN0b3I8dm9pZCo+
IG9iamVjdHM7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCBudW1iZXJPZk9iamVj
dHNQZXJQYWdlOyArK2opCi0gICAgICAgICAgICBvYmplY3RzLnB1c2hfYmFjayhpc29fdGVzdF9h
bGxvY2F0ZV9jb21tb25fcHJpbWl0aXZlKDE2KSk7Ci0gICAgICAgIG9iamVjdHNJblBhZ2UucHVz
aF9iYWNrKG9iamVjdHMpOwotICAgIH0KLQotICAgIGZvciAodm9pZCogb2JqZWN0IDogb2JqZWN0
c0luUGFnZVswXSkKLSAgICAgICAgaXNvX3Rlc3RfZGVhbGxvY2F0ZShvYmplY3QpOwotCi0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IG9iamVjdHNJblBhZ2VbMV0uc2l6ZSgpOyArK2kpCi0g
ICAgICAgIGlzb190ZXN0X2RlYWxsb2NhdGUob2JqZWN0c0luUGFnZVsxXVtpXSk7Ci0KLSAgICBz
Y2F2ZW5nZSgpOwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IG9iamVjdHNJblBhZ2Vb
MV0uc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ0hFQ0tfRVFVQUwoaXNvX3Rlc3RfYWxsb2NhdGVf
Y29tbW9uX3ByaW1pdGl2ZSgxNiksCi0gICAgICAgICAgICAgICAgICAgIG9iamVjdHNJblBhZ2Vb
MV1baV0pOwotICAgIH0KLQotICAgIENIRUNLX0VRVUFMKGlzb190ZXN0X2FsbG9jYXRlX2NvbW1v
bl9wcmltaXRpdmUoMTYpLAotICAgICAgICAgICAgICAgIG9iamVjdHNJblBhZ2VbMF1bMF0pOwot
Ci0gICAgaXNvX3Rlc3RfZGVhbGxvY2F0ZShvYmplY3RzSW5QYWdlWzFdWzBdKTsKLQotICAgIHNj
YXZlbmdlKCk7Ci0KLSAgICBDSEVDS19FUVVBTChpc29fdGVzdF9hbGxvY2F0ZV9jb21tb25fcHJp
bWl0aXZlKDE2KSwKLSAgICAgICAgICAgICAgICBvYmplY3RzSW5QYWdlWzBdWzFdKTsKLX0KLQot
dm9pZCBhZGRUYWJsaW5nVGVzdHMoYm9vbCB1c2VUYWJsaW5nKQotewotICAgIEFERF9URVNUKHRl
c3RUYWJsaW5nKDE2LCBwYXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAx
LCAxLCB1c2VUYWJsaW5nLCBmYWxzZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE2LCBw
YXNfc21hbGxfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxLCAxMCwgdXNlVGFibGlu
ZywgZmFsc2UpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxNiwgcGFzX3NtYWxsX3NlZ3Jl
Z2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMTAsIDEsIHVzZVRhYmxpbmcsIGZhbHNlKSk7Ci0g
ICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX3ZhcmlhbnQsIDEwLCAxMCwgdXNlVGFibGluZywgZmFsc2UpKTsKLSAgICBBRERfVEVTVCh0
ZXN0VGFibGluZygxOTk2OCwgcGFzX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3Zhcmlh
bnQsIDEsIDEsIHVzZVRhYmxpbmcsIGZhbHNlKSk7Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmco
MTk5NjgsIHBhc19tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50LCAxLCAxMCwg
dXNlVGFibGluZywgZmFsc2UpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxOTk2OCwgcGFz
X21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxLCB1c2VUYWJsaW5n
LCBmYWxzZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJsaW5nKDE5OTY4LCBwYXNfbWVkaXVtX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMTAsIDEwLCB1c2VUYWJsaW5nLCBmYWxzZSkp
OwotCi0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTYsIHBhc19zbWFsbF9zZWdyZWdhdGVkX3Bh
Z2VfY29uZmlnX3ZhcmlhbnQsIDEsIDEsIHVzZVRhYmxpbmcsIHRydWUpKTsKLSAgICBBRERfVEVT
VCh0ZXN0VGFibGluZygxNiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFu
dCwgMSwgMTAsIHVzZVRhYmxpbmcsIHRydWUpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygx
NiwgcGFzX3NtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMTAsIDEsIHVzZVRh
YmxpbmcsIHRydWUpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxNiwgcGFzX3NtYWxsX3Nl
Z3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMTAsIDEwLCB1c2VUYWJsaW5nLCB0cnVlKSk7
Ci0gICAgQUREX1RFU1QodGVzdFRhYmxpbmcoMTk5NjgsIHBhc19tZWRpdW1fc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ192YXJpYW50LCAxLCAxLCB1c2VUYWJsaW5nLCB0cnVlKSk7Ci0gICAgQUREX1RF
U1QodGVzdFRhYmxpbmcoMTk5NjgsIHBhc19tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192
YXJpYW50LCAxLCAxMCwgdXNlVGFibGluZywgdHJ1ZSkpOwotICAgIEFERF9URVNUKHRlc3RUYWJs
aW5nKDE5OTY4LCBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudCwgMTAs
IDEsIHVzZVRhYmxpbmcsIHRydWUpKTsKLSAgICBBRERfVEVTVCh0ZXN0VGFibGluZygxOTk2OCwg
cGFzX21lZGl1bV9zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQsIDEwLCAxMCwgdXNlVGFi
bGluZywgdHJ1ZSkpOwotfQotCi19IC8vIGFub255bW91cyBuYW1lc3BhY2UKLQotI2VuZGlmIC8v
IFBBU19FTkFCTEVfSVNPCi0KLXZvaWQgYWRkSXNvSGVhcFRhYmxpbmdUZXN0cygpCi17Ci0gICAg
UnVuU2NhdmVuZ2VyRnVsbHkgcnVuU2NhdmVuZ2VyRnVsbHk7Ci0gICAgRm9yY2VFeGNsdXNpdmVz
IGZvcmNlRXhjbHVzaXZlczsKLSAgICBGb3JjZVRMQXMgZm9yY2VUTEFzOwotICAgIERpc2FibGVC
aXRmaXQgZGlzYWJsZUJpdGZpdDsKLQotICAgIHsKLSAgICAgICAgVGVzdFNjb3BlIGVuYWJsZVRh
YmxpbmcoCi0gICAgICAgICAgICAiZW5hYmxlLXRhYmxpbmciLAotICAgICAgICAgICAgW10gKCkg
ewotICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJs
aW5nID0gdHJ1ZTsKLSAgICAgICAgICAgIH0pOwotCi0gICAgICAgIGFkZFRhYmxpbmdUZXN0cyh0
cnVlKTsKLSAgICAgICAgCi0gICAgICAgIEFERF9URVNUKHRlc3RVbnRhYmxpbmcoKSk7Ci0gICAg
fQotCi0gICAgewotICAgICAgICBUZXN0U2NvcGUgZW5hYmxlVGFibGluZygKLSAgICAgICAgICAg
ICJkaXNhYmxlLXRhYmxpbmciLAotICAgICAgICAgICAgW10gKCkgewotICAgICAgICAgICAgICAg
IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3VzZV90YWJsaW5nID0gZmFsc2U7Ci0gICAg
ICAgICAgICB9KTsKLQotICAgICAgICBhZGRUYWJsaW5nVGVzdHMoZmFsc2UpOwotICAgIH0KLX0K
LQotCi0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9SYWNlVGVzdHMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9SYWNlVGVzdHMu
Y3BwCShyZXZpc2lvbiAyODIyMzgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3Qv
UmFjZVRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgdGVz
dExvY2FsQWxsb2NhdG9yU3RvcFJhY2UocGFzX3JhY2UKICAgICAgICAgICAgIGlmIChraW5kICE9
IGtpbmRUb1N0b3BPbikKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIENI
RUNLX0VRVUFMKGxvY2tzSGVsZEZvclRocmVhZFt0aGlzX3RocmVhZDo6Z2V0X2lkKCldLnNpemUo
KSwgMik7CisgICAgICAgICAgICBDSEVDS19FUVVBTChsb2Nrc0hlbGRGb3JUaHJlYWRbdGhpc190
aHJlYWQ6OmdldF9pZCgpXS5zaXplKCksIDMpOwogICAgICAgICAgICAgQ0hFQ0sob2tUb0dldFRv
SG9vayk7CiAKICAgICAgICAgICAgIHVuaXF1ZV9sb2NrPG11dGV4PiBsb2NrZXIoZ2xvYmFsTG9j
ayk7CkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCB0ZXN0TG9jYWxBbGxvY2F0b3JTdG9wUmFjZUFn
YWluc3RTYwogICAgICAgICAgICAgaWYgKGtpbmQgIT0ga2luZFRvU3RvcE9uKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobG9ja3NIZWxkRm9yVGhy
ZWFkW3RoaXNfdGhyZWFkOjpnZXRfaWQoKV0uc2l6ZSgpLCAyKTsKKyAgICAgICAgICAgIENIRUNL
X0VRVUFMKGxvY2tzSGVsZEZvclRocmVhZFt0aGlzX3RocmVhZDo6Z2V0X2lkKCldLnNpemUoKSwg
Myk7CiAgICAgICAgICAgICBDSEVDSyhva1RvR2V0VG9Ib29rKTsKIAogICAgICAgICAgICAgdW5p
cXVlX2xvY2s8bXV0ZXg+IGxvY2tlcihnbG9iYWxMb2NrKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAkocmV2aXNpb24gMjgyMjM4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgImppdF9oZWFwX2NvbmZpZy5oIgog
I2luY2x1ZGUgIm1pbmFsaWduMzJfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYWdlc2l6ZTY0
a19oZWFwX2NvbmZpZy5oIgotI2luY2x1ZGUgInBhc19hbGxfbWFnYXppbmVzLmgiCiAjaW5jbHVk
ZSAicGFzX2Vwb2NoLmgiCiAjaW5jbHVkZSAicGFzX2ZkX3N0cmVhbS5oIgogI2luY2x1ZGUgInBh
c19oZWFwLmgiCkBAIC0yMDksMzUgKzIwOCw2IEBAIEluc3RhbGxWZXJpZmllcjo6SW5zdGFsbFZl
cmlmaWVyKCkKIHsKIH0KIAotRGlzYWJsZUV4cGxvc2lvbjo6RGlzYWJsZUV4cGxvc2lvbigpCi0g
ICAgOiBUZXN0U2NvcGUoCi0gICAgICAgICJkaXNhYmxlLWV4cGxvc2lvbiIsCi0gICAgICAgIFtd
ICgpIHsKLSAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9j
YW5fZXhwbG9kZSA9IGZhbHNlOwotICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3Np
emVfZGlyZWN0b3J5X2ZvcmNlX2V4cGxvZGUgPSBmYWxzZTsKLSAgICAgICAgfSkKLXsKLX0KLQot
Rm9yY2VFeHBsb3Npb246OkZvcmNlRXhwbG9zaW9uKCkKLSAgICA6IFRlc3RTY29wZSgKLSAgICAg
ICAgImZvcmNlLWV4cGxvc2lvbiIsCi0gICAgICAgIFtdICgpIHsKLSAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeV9jYW5fZXhwbG9kZSA9IHRydWU7Ci0gICAg
ICAgICAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnlfZm9yY2VfZXhwbG9k
ZSA9IHRydWU7Ci0gICAgICAgIH0pCi17Ci19Ci0KLUZvcmNlT25lTWFnYXppbmU6OkZvcmNlT25l
TWFnYXppbmUoKQotICAgIDogVGVzdFNjb3BlKAotICAgICAgICAiZm9yY2Utb25lLW1hZ2F6aW5l
IiwKLSAgICAgICAgW10gKCkgewotICAgICAgICAgICAgcGFzX2FsbF9tYWdhemluZXNfZm9yY2Vk
X2NwdV9udW1iZXIgPSAwOwotICAgICAgICB9KQotewotfQotCiBFcG9jaElzQ291bnRlcjo6RXBv
Y2hJc0NvdW50ZXIoKQogICAgIDogVGVzdFNjb3BlKAogICAgICAgICAiZXBvY2gtaXMtY291bnRl
ciIsCkBAIC0yNTYsOSArMjI2LDEwIEBAIEJvb3RKSVRIZWFwOjpCb290SklUSGVhcCgpCiAgICAg
ICAgICAgICBjb25zdGV4cHIgdW5zaWduZWQgbnVtUmVnaW9ucyA9IDEwOwogICAgICAgICAgICAg
CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBudW1SZWdpb25zOyBpLS07KSB7Ci0gICAg
ICAgICAgICAgICAgY29uc3RleHByIHNpemVfdCBzaXplID0gNTAwMDAwMDsKKyAgICAgICAgICAg
ICAgICBzaXplX3Qgc2l6ZSA9CisgICAgICAgICAgICAgICAgICAgIHBhc19yb3VuZF91cF90b19w
b3dlcl9vZl8yKDUwMDAwMDAsIHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSk7CiAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgdm9pZCogYmFzZSA9IG1hbGxvYyhzaXplKTsKKyAg
ICAgICAgICAgICAgICB2b2lkKiBiYXNlID0gdmFsbG9jKHNpemUpOwogICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgIGppdF9oZWFwX2FkZF9mcmVzaF9tZW1vcnkoCiAgICAgICAgICAg
ICAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGJh
c2UpLApAQCAtMzU2LDcgKzMyNyw2IEBAIHZvaWQgYWRkSXNvSGVhcENoYW9zVGVzdHMoKTsKIHZv
aWQgYWRkSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMoKTsKIHZvaWQgYWRkSXNvSGVhcFBhcnRpYWxB
bmRCYXNlbGluZVRlc3RzKCk7CiB2b2lkIGFkZElzb0hlYXBSZXNlcnZlZE1lbW9yeVRlc3RzKCk7
Ci12b2lkIGFkZElzb0hlYXBUYWJsaW5nVGVzdHMoKTsKIHZvaWQgYWRkSklUSGVhcFRlc3RzKCk7
CiB2b2lkIGFkZExhcmdlRnJlZUhlYXBUZXN0cygpOwogdm9pZCBhZGRMYXJnZVNoYXJpbmdQb29s
VGVzdHMoKTsKQEAgLTcxNCw3ICs2ODQsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCiAgICAgQUREX1NVSVRFKElzb0hlYXBQYWdlU2hhcmluZyk7CiAgICAgQUREX1NVSVRFKElz
b0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmUpOwogICAgIEFERF9TVUlURShJc29IZWFwUmVzZXJ2ZWRN
ZW1vcnkpOwotICAgIEFERF9TVUlURShJc29IZWFwVGFibGluZyk7CiAgICAgQUREX1NVSVRFKEpJ
VEhlYXApOwogICAgIEFERF9TVUlURShMYXJnZUZyZWVIZWFwKTsKICAgICBBRERfU1VJVEUoTGFy
Z2VTaGFyaW5nUG9vbCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVz
dEhhcm5lc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3Qv
VGVzdEhhcm5lc3MuaAkocmV2aXNpb24gMjgyMjM4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSwyMSArMjc1LDYg
QEAgcHVibGljOgogICAgIEluc3RhbGxWZXJpZmllcigpOwogfTsKIAotY2xhc3MgRGlzYWJsZUV4
cGxvc2lvbiA6IHB1YmxpYyBUZXN0U2NvcGUgewotcHVibGljOgotICAgIERpc2FibGVFeHBsb3Np
b24oKTsKLX07Ci0KLWNsYXNzIEZvcmNlRXhwbG9zaW9uIDogcHVibGljIFRlc3RTY29wZSB7Ci1w
dWJsaWM6Ci0gICAgRm9yY2VFeHBsb3Npb24oKTsKLX07Ci0KLWNsYXNzIEZvcmNlT25lTWFnYXpp
bmUgOiBwdWJsaWMgVGVzdFNjb3BlIHsKLXB1YmxpYzoKLSAgICBGb3JjZU9uZU1hZ2F6aW5lKCk7
Ci19OwotCiBjbGFzcyBFcG9jaElzQ291bnRlciA6IHB1YmxpYyBUZXN0U2NvcGUgewogcHVibGlj
OgogICAgIEVwb2NoSXNDb3VudGVyKCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFs
bG9jYXRpb25UZXN0cy5jcHAJKHJldmlzaW9uIDI4MjIzOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAKICNpbmNsdWRlICJwYXNfbWVnYXBhZ2VfY2Fj
aGUuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9tYWxsb2MuaCIKICNpbmNsdWRlICJwYXNfc2NhdmVu
Z2VyLmgiCi0jaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5Lmgi
CisjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZS5oIgogI2luY2x1ZGUgInBhc191dGlsaXR5X2hlYXAuaCIKQEAgLTgx
LDEwICs4MSwxMCBAQCB2b2lkIGZsdXNoRGVhbGxvY2F0aW9uTG9nQW5kU3RvcEFsbG9jYXRvCiAv
LyBGSVhNRTogT25jZSB3ZSBhZGQgcmVhbCBzY2F2ZW5naW5nLCB3ZSB3aWxsIHdhbnQgdG8gYWRk
IGEgc2hyaW5rSGVhcHMoKSBmdW5jdGlvbiB0aGF0IGRvZXMKIC8vIGZsdXNoRGVhbGxvY2F0aW9u
TG9nQW5kU3RvcEFsbG9jYXRvcnMoKSBwbHVzIHRoZSBhY3R1YWwgc2NhdmVuZ2luZy4KIAotcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplQ2xhc3NGb3Iodm9pZCogb2Jq
ZWN0KQorcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIHNpemVDbGFzc0Zvcih2b2lkKiBv
YmplY3QpCiB7CiAjaWYgU0VHSEVBUAotICAgIHJldHVybiBwYXNfc2VncmVnYXRlZF9nbG9iYWxf
c2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKKyAgICByZXR1cm4gcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRy
X3Q+KG9iamVjdCksICZ0aGluZ3lfaGVhcF9jb25maWcpOwogI2Vsc2UKICAgICByZXR1cm4gbnVs
bHB0cjsKQEAgLTExMyw3ICsxMTMsNyBAQCB2b2lkIGZvckVhY2hMaXZlVXRpbGl0eU9iamVjdChm
dW5jdGlvbjxiCiAKICNpZiBTRUdIRUFQCiBib29sIGZvckVhY2hDb21taXR0ZWRWaWV3QWRhcHRl
cihwYXNfc2VncmVnYXRlZF9oZWFwKiBoZWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBzaXplQ2xhc3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogc2l6ZUNsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfdmlldyB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9p
ZCogYXJnKQogewpAQCAtMjYyLDkgKzI2Miw5IEBAIHZvaWQgdmVyaWZ5SGVhcEVtcHR5KHBhc19o
ZWFwKiBoZWFwKQogICAgIGZvckVhY2hDb21taXR0ZWRWaWV3KAogICAgICAgICBoZWFwLAogICAg
ICAgICBbJl0gKHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykgLT4gYm9vbCB7Ci0gICAgICAgICAg
ICBDSEVDSyhwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlX29yX2JpYXNlZCh2aWV3KSk7
CisgICAgICAgICAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF92aWV3X2lzX2VsaWdpYmxlKHZpZXcp
KTsKICNpZiBUTEMKLSAgICAgICAgICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfZW1w
dHlfb3JfYmlhc2VkKHZpZXcpKTsKKyAgICAgICAgICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX3Zp
ZXdfaXNfZW1wdHkodmlldykpOwogI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgfSk7CkBAIC05NjYsMjggKzk2NiwyNiBAQCB2b2lkIHRlc3RJbnRlcm5hbFNjYXZlbmdl
RnJvbUNvcnJlY3REaXJlCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3MSA9IHBhc19zZWdy
ZWdhdGVkX3ZpZXdfZm9yX29iamVjdChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0
MSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmdGhpbmd5X2hlYXBfY29uZmlnKTsKICAgICAKLSAgICBwYXNfc2VncmVnYXRl
ZF9kaXJlY3RvcnkqIGRpcmVjdG9yeTEgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9m
b3Jfb2JqZWN0KAorICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnkx
ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVjdCgKICAgICAgICAgcmVp
bnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdDEpLCAmdGhpbmd5X2hlYXBfY29uZmlnKTsK
LSAgICBwYXNfc2VncmVnYXRlZF9nbG9iYWxfc2l6ZV9kaXJlY3RvcnkqIGdsb2JhbERpcmVjdG9y
eTEgPQotICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfZ2xvYmFsKGRp
cmVjdG9yeTEpOwogICAgIAotICAgIENIRUNLX0VRVUFMKGdsb2JhbERpcmVjdG9yeTEtPm9iamVj
dF9zaXplLCBmaXJzdFNpemUpOwotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9zaXplKGRpcmVjdG9yeTEpLCAxKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVDSyghcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0g
ICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3Rvcnkx
LCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwoZGlyZWN0b3J5MS0+b2JqZWN0X3NpemUsIGZpcnN0U2l6
ZSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVj
dG9yeTEtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VsaWdpYmxlKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOworICAgIENIRUNL
KHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTEtPmJhc2Us
IDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2dldChkaXJlY3RvcnkxLCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dl
dCgmZGlyZWN0b3J5MS0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcxKTsKICAgICAKICAgICBmbHVz
aERlYWxsb2NhdGlvbkxvZ0FuZFN0b3BBbGxvY2F0b3JzKCk7CiAKLSAgICBDSEVDS19FUVVBTChw
YXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkxKSwgMSk7Ci0gICAgQ0hFQ0so
cGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTEsIDApKTsKLSAg
ICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3Rv
cnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2Nv
bW1pdHRlZChkaXJlY3RvcnkxLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyhwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAg
ICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZkaXJlY3RvcnkxLT5i
YXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRl
ZCgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOwogICAgIENIRUNLX0VRVUFMKAotICAgICAgICBwYXNf
c2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTEsIDApLAorICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSwKICAgICAgICAgdmll
dzEpOwogICAgIAogICAgIHZvaWQqIG9iamVjdDIgPSB0aGluZ3lfdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZShzZWNvbmRTaXplKTsKQEAgLTk5Niw0NSArOTk0LDQzIEBAIHZvaWQgdGVzdEludGVybmFs
U2NhdmVuZ2VGcm9tQ29ycmVjdERpcmUKICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcyID0g
cGFzX3NlZ3JlZ2F0ZWRfdmlld19mb3Jfb2JqZWN0KHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90
PihvYmplY3QyKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZ0aGluZ3lfaGVhcF9jb25maWcpOwogICAgIAotICAgIHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeSogZGlyZWN0b3J5MiA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2Zvcl9vYmplY3QoCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRp
cmVjdG9yeTIgPSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9mb3Jfb2JqZWN0KAogICAg
ICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ob2JqZWN0MiksICZ0aGluZ3lfaGVhcF9j
b25maWcpOwotICAgIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSogZ2xvYmFs
RGlyZWN0b3J5MiA9Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF9n
bG9iYWwoZGlyZWN0b3J5Mik7CiAgICAgCi0gICAgQ0hFQ0tfRVFVQUwoZ2xvYmFsRGlyZWN0b3J5
Mi0+b2JqZWN0X3NpemUsIHNlY29uZFNpemUpOworICAgIENIRUNLX0VRVUFMKGRpcmVjdG9yeTIt
Pm9iamVjdF9zaXplLCBzZWNvbmRTaXplKTsKIAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdh
dGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTEpLCAxKTsKLSAgICBDSEVDSyhwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5MSwgMCkpOwotICAgIENIRUNLKCFw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERpcmVjdG9yeTEtPmJhc2Us
IDApKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRp
cmVjdG9yeTEsIDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlf
c2l6ZSgmZGlyZWN0b3J5MS0+YmFzZSksIDEpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOworICAgIENIRUNLKCFw
YXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsK
KyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3Rv
cnkxLT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5MSwgMCksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9nZXQoJmRpcmVjdG9yeTEtPmJhc2UsIDApLAogICAgICAgICB2aWV3MSk7CiAgICAg
Ci0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5
MiksIDEpOwotICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUo
ZGlyZWN0b3J5MiwgMCkpOwotICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNf
ZW1wdHkoJmdsb2JhbERpcmVjdG9yeTItPmJhc2UsIDApKTsKLSAgICBDSEVDSyhwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9yeTIsIDApKTsKKyAgICBDSEVDS19F
UVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgmZGlyZWN0b3J5Mi0+YmFzZSksIDEp
OworICAgIENIRUNLKCFwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVj
dG9yeTItPmJhc2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VtcHR5KCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOwogICAgIENIRUNL
X0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9yeTIs
IDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3RvcnkyLT5i
YXNlLCAwKSwKICAgICAgICAgdmlldzIpOwogICAgIAogICAgIGZsdXNoRGVhbGxvY2F0aW9uTG9n
QW5kU3RvcEFsbG9jYXRvcnMoKTsKIAotICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9zaXplKGRpcmVjdG9yeTEpLCAxKTsKLSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9k
aXJlY3RvcnlfaXNfZWxpZ2libGUoZGlyZWN0b3J5MSwgMCkpOwotICAgIENIRUNLKCFwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERpcmVjdG9yeTEtPmJhc2UsIDApKTsK
LSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9y
eTEsIDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgm
ZGlyZWN0b3J5MS0+YmFzZSksIDEpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5MS0+YmFzZSwgMCkpOworICAgIENIRUNLKCFwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBD
SEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkxLT5i
YXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFVQUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVj
dG9yeV9nZXQoZGlyZWN0b3J5MSwgMCksCisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9nZXQoJmRpcmVjdG9yeTEtPmJhc2UsIDApLAogICAgICAgICB2aWV3MSk7CiAgICAgCi0gICAg
Q0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5MiksIDEp
OwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShkaXJlY3Rv
cnkyLCAwKSk7Ci0gICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgm
Z2xvYmFsRGlyZWN0b3J5Mi0+YmFzZSwgMCkpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2Rp
cmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5MiwgMCkpOworICAgIENIRUNLX0VRVUFMKHBh
c19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnkyLT5iYXNlKSwgMSk7CisgICAg
Q0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkyLT5i
YXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgm
ZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTItPmJhc2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgK
LSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnkyLCAwKSwKKyAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCks
CiAgICAgICAgIHZpZXcyKTsKICAgICAKICAgICB0aGluZ3lfZGVhbGxvY2F0ZShvYmplY3QxKTsK
QEAgLTEwNDIsMjAgKzEwMzgsMjAgQEAgdm9pZCB0ZXN0SW50ZXJuYWxTY2F2ZW5nZUZyb21Db3Jy
ZWN0RGlyZQogCiAgICAgZmx1c2hEZWFsbG9jYXRpb25Mb2dBbmRTdG9wQWxsb2NhdG9ycygpOwog
Ci0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5
MSksIDEpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShk
aXJlY3RvcnkxLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2Vt
cHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkxLCAwKSk7CisgICAgQ0hFQ0tfRVFV
QUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAxKTsK
KyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVjdG9y
eTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1w
dHkoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJl
Y3RvcnlfaXNfY29tbWl0dGVkKCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CiAgICAgQ0hFQ0tfRVFV
QUwoCi0gICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoZGlyZWN0b3J5MSwgMCks
CisgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9nZXQoJmRpcmVjdG9yeTEtPmJhc2Us
IDApLAogICAgICAgICB2aWV3MSk7CiAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9k
aXJlY3Rvcnlfc2l6ZShkaXJlY3RvcnkyKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRf
ZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTIsIDApKTsKLSAgICBDSEVDSyhwYXNfc2Vn
cmVnYXRlZF9kaXJlY3RvcnlfaXNfZW1wdHkoJmdsb2JhbERpcmVjdG9yeTItPmJhc2UsIDApKTsK
LSAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfY29tbWl0dGVkKGRpcmVjdG9y
eTIsIDApKTsKKyAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6ZSgm
ZGlyZWN0b3J5Mi0+YmFzZSksIDEpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9pc19lbGlnaWJsZSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdy
ZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOworICAgIENI
RUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTItPmJh
c2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5X2dldChkaXJlY3RvcnkyLCAwKSwKKyAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2dldCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcyKTsKICAgICAKICAgICB2
b2lkKiBvYmplY3QzID0gdGhpbmd5X3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUodGhpcmRTaXplKTsK
QEAgLTEwNjQsMzEgKzEwNjAsMjkgQEAgdm9pZCB0ZXN0SW50ZXJuYWxTY2F2ZW5nZUZyb21Db3Jy
ZWN0RGlyZQogICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzMgPSBwYXNfc2VncmVnYXRlZF92
aWV3X2Zvcl9vYmplY3QocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KG9iamVjdDMpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJnRoaW5neV9oZWFwX2NvbmZpZyk7CiAgICAgCi0gICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0
b3J5KiBkaXJlY3RvcnkzID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZm9yX29iamVj
dCgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5MyA9IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Zvcl9vYmplY3QoCiAgICAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8dWludHB0cl90PihvYmplY3QzKSwgJnRoaW5neV9oZWFwX2NvbmZpZyk7Ci0gICAgcGFz
X3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5KiBnbG9iYWxEaXJlY3RvcnkzID0KLSAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZ2V0X2dsb2JhbChkaXJlY3Rvcnkz
KTsKLSAgICBDSEVDS19FUVVBTChnbG9iYWxEaXJlY3RvcnkzLT5vYmplY3Rfc2l6ZSwgdGhpcmRT
aXplKTsKLSAgICAKLSAgICBDSEVDS19FUVVBTChwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfc2l6
ZShkaXJlY3RvcnkxKSwgMSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VsaWdpYmxlKGRpcmVjdG9yeTEsIDApKTsKLSAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3RvcnkxLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0so
IXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQoZGlyZWN0b3J5MSwgMCkpOwot
Ci0gICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoZGlyZWN0b3J5
MiksIDEpOwotICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbGlnaWJsZShk
aXJlY3RvcnkyLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2Vt
cHR5KCZnbG9iYWxEaXJlY3RvcnkyLT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZChkaXJlY3RvcnkyLCAwKSk7CisgICAgQ0hFQ0tfRVFV
QUwoZGlyZWN0b3J5My0+b2JqZWN0X3NpemUsIHRoaXJkU2l6ZSk7CisgICAgCisgICAgQ0hFQ0tf
RVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3NpemUoJmRpcmVjdG9yeTEtPmJhc2UpLCAx
KTsKKyAgICBDSEVDSyhwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfaXNfZWxpZ2libGUoJmRpcmVj
dG9yeTEtPmJhc2UsIDApKTsKKyAgICBDSEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lz
X2VtcHR5KCZkaXJlY3RvcnkxLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0soIXBhc19zZWdyZWdhdGVk
X2RpcmVjdG9yeV9pc19jb21taXR0ZWQoJmRpcmVjdG9yeTEtPmJhc2UsIDApKTsKKworICAgIENI
RUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKCZkaXJlY3RvcnkyLT5iYXNl
KSwgMSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZk
aXJlY3RvcnkyLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5
X2lzX2VtcHR5KCZkaXJlY3RvcnkyLT5iYXNlLCAwKSk7CisgICAgQ0hFQ0socGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2lzX2NvbW1pdHRlZCgmZGlyZWN0b3J5Mi0+YmFzZSwgMCkpOwogICAgIENI
RUNLX0VRVUFMKAotICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KGRpcmVjdG9y
eTIsIDApLAorICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfZ2V0KCZkaXJlY3Rvcnky
LT5iYXNlLCAwKSwKICAgICAgICAgdmlldzIpOwogICAgIAotICAgIENIRUNLX0VRVUFMKHBhc19z
ZWdyZWdhdGVkX2RpcmVjdG9yeV9zaXplKGRpcmVjdG9yeTMpLCAxKTsKLSAgICBDSEVDSyghcGFz
X3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKGRpcmVjdG9yeTMsIDApKTsKLSAgICBD
SEVDSyghcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2VtcHR5KCZnbG9iYWxEaXJlY3Rvcnkz
LT5iYXNlLCAwKSk7Ci0gICAgQ0hFQ0socGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X2lzX2NvbW1p
dHRlZChkaXJlY3RvcnkzLCAwKSk7CisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfZGly
ZWN0b3J5X3NpemUoJmRpcmVjdG9yeTMtPmJhc2UpLCAxKTsKKyAgICBDSEVDSyghcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2lzX2VsaWdpYmxlKCZkaXJlY3RvcnkzLT5iYXNlLCAwKSk7CisgICAg
Q0hFQ0soIXBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19lbXB0eSgmZGlyZWN0b3J5My0+YmFz
ZSwgMCkpOworICAgIENIRUNLKHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV9pc19jb21taXR0ZWQo
JmRpcmVjdG9yeTMtPmJhc2UsIDApKTsKICAgICBDSEVDS19FUVVBTCgKLSAgICAgICAgcGFzX3Nl
Z3JlZ2F0ZWRfZGlyZWN0b3J5X2dldChkaXJlY3RvcnkzLCAwKSwKKyAgICAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfZGlyZWN0b3J5X2dldCgmZGlyZWN0b3J5My0+YmFzZSwgMCksCiAgICAgICAgIHZpZXcz
KTsKIAogICAgIENIRUNLX0VRVUFMKHBhc19zY2F2ZW5nZXJfY3VycmVudF9zdGF0ZSwgcGFzX3Nj
YXZlbmdlcl9zdGF0ZV9ub190aHJlYWQpOwpAQCAtMTEzMCwxMSArMTEyNCwxMSBAQCB2b2lkIHRl
c3RTaXplQ2xhc3NDcmVhdGlvbkltcGwoY29uc3QgdmVjCiAjaWYgVExDCiAgICAgcGFzX2xhcmdl
X3NoYXJpbmdfcG9vbF92YWxpZGF0ZV9lYWNoX3NwbGF0ID0gdHJ1ZTsKICNlbmRpZgotICAgIG1h
cDxzaXplX3QsIHBhc19zZWdyZWdhdGVkX2dsb2JhbF9zaXplX2RpcmVjdG9yeSo+IHNpemVNYXA7
CisgICAgbWFwPHNpemVfdCwgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqPiBzaXplTWFw
OwogICAgIGZvciAoY29uc3QgU2l6ZUNsYXNzUHJvZ3JhbSYgcHJvZ3JhbSA6IHByb2dyYW1zKSB7
CiAgICAgICAgIGNvdXQgPDwgIiAgICBQcm9ncmFtOiAiIDw8IHByb2dyYW0ubmFtZSA8PCBlbmRs
OwogICAgICAgICAKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfZ2xvYmFsX3NpemVfZGlyZWN0b3J5
KiByZXN1bHRpbmdTaXplQ2xhc3MgPSBudWxscHRyOworICAgICAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogcmVzdWx0aW5nU2l6ZUNsYXNzID0gbnVsbHB0cjsKICAgICAgICAgCiAg
ICAgICAgIHsKICNpZiBQQVNfRU5BQkxFX1RFU1RJTkcKQEAgLTExNzcsNyArMTE3MSw2IEBAIHZv
aWQgdGVzdFNwdXJpb3VzRWxpZ2liaWxpdHkoKQogI2lmIFRMQwogICAgIHBhc19zY2F2ZW5nZXJf
c3VzcGVuZCgpOwogICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfdmFsaWRhdGVfZWFjaF9zcGxh
dCA9IHRydWU7Ci0gICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfdXNlX3RhYmxpbmcg
PSBmYWxzZTsKICNlbmRpZgogICAgIAogICAgIHVuc2lnbmVkIG9iamVjdFNpemUgPSAxNjsKQEAg
LTE1MzgsNiArMTUzMSw4IEBAIHZvaWQgdGVzdENvbXBsZXhMYXJnZUFsbG9jYXRpb25JbXBsKGNv
bnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cGVjdGVkQnl0ZXMgZXhw
ZWN0ZWROdW1NYXBwZWRCeXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IHZlY3RvcjxBbGxvY2F0aW9uUHJvZ3JhbT4mIHByb2dyYW1zKQogeworICAgIHN0YXRp
YyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCiAjaWYgVExDCiAgICAgcGFz
X2xhcmdlX3NoYXJpbmdfcG9vbF92YWxpZGF0ZV9lYWNoX3NwbGF0ID0gdHJ1ZTsKICNlbmRpZgpA
QCAtMTU1MCw2ICsxNTQ1LDEwIEBAIHZvaWQgdGVzdENvbXBsZXhMYXJnZUFsbG9jYXRpb25JbXBs
KGNvbnMKICAgICAgICAgICAgIGNvdXQgPDwgIiAgICBQcm9ncmFtOiBhbGxvY2F0ZSgiIDw8IHBy
b2dyYW0ua2V5KCkgPDwgIiwgIiA8PCBwcm9ncmFtLmNvdW50KCkgPDwgIiwgIgogICAgICAgICAg
ICAgICAgICA8PCBwcm9ncmFtLmFsaWdubWVudCgpIDw8ICIpIiA8PCBlbmRsOwogICAgICAgICAg
ICAgdm9pZCogcHRyID0gYWxsb2NhdG9yLmFsbG9jYXRlKHByb2dyYW0uY291bnQoKSwgcHJvZ3Jh
bS5hbGlnbm1lbnQoKSk7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkgeworICAgICAgICAgICAg
ICAgIGNvdXQgPDwgIkFsbG9jYXRlZCBwdHIgPSAiIDw8IHB0ciA8PCAiIHdpdGgga2luZCAiCisg
ICAgICAgICAgICAgICAgICAgICA8PCBwYXNfZ2V0X29iamVjdF9raW5kKHB0ciwgVEhJTkdZX0hF
QVBfQ09ORklHKSA8PCBlbmRsOworICAgICAgICAgICAgfQogICAgICAgICAgICAgQ0hFQ0socGFz
X2lzX2FsaWduZWQocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0ciksIHByb2dyYW0uYWxp
Z25tZW50KCkpKTsKICAgICAgICAgICAgIENIRUNLKCFvYmplY3RCeUtleS5jb3VudChwcm9ncmFt
LmtleSgpKSk7CiAgICAgICAgICAgICBvYmplY3RCeUtleVtwcm9ncmFtLmtleSgpXSA9IHB0cjsK
QEAgLTMyMTgsMTUgKzMyMTcsNyBAQCB2b2lkIGFkZEFsbFRlc3RzKCkKICAgICAgICAgICAgIH0p
OwogICAgICAgICAKICAgICAgICAgYWRkQWxsVGVzdHNJbXBsKCk7Ci0KLSAgICAgICAgewotICAg
ICAgICAgICAgRGlzYWJsZUV4cGxvc2lvbiBEaXNhYmxlRXhwbG9zaW9uOwotICAgICAgICAgICAg
YWRkU21hbGxIZWFwVGVzdHMoKTsKLSAgICAgICAgfQotICAgICAgICB7Ci0gICAgICAgICAgICBG
b3JjZUV4cGxvc2lvbiBmb3JjZUV4cGxvc2lvbjsKLSAgICAgICAgICAgIGFkZFNtYWxsSGVhcFRl
c3RzKCk7Ci0gICAgICAgIH0KKyAgICAgICAgYWRkU21hbGxIZWFwVGVzdHMoKTsKICAgICB9CiB9
CiAKQEAgLTMyNDQsNyArMzIzNSw2IEBAIHZvaWQgYWRkVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxv
Y2F0aW9uVGUKIAogICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7CiAgICAgRm9y
Y2VUTEFzIGZvcmNlVExBczsKLSAgICBGb3JjZU9uZU1hZ2F6aW5lIGZvcmNlT25lTWFnYXppbmU7
CiAgICAgRXBvY2hJc0NvdW50ZXIgZXBvY2hJc0NvdW50ZXI7CiAKICAgICB7CkluZGV4OiBMYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9JREJLZXktY3JlYXRlLWFycmF5LWJ1ZmZlci12aWV3
LW9vbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lE
QktleS1jcmVhdGUtYXJyYXktYnVmZmVyLXZpZXctb29tLmh0bWwJKHJldmlzaW9uIDI4MjIzOCkK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL0lEQktleS1jcmVhdGUtYXJyYXktYnVm
ZmVyLXZpZXctb29tLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTIgKzYsMTggQEAKIDwvaGVh
ZD4KIDxib2R5PgogPHNjcmlwdD4KK29uZXJyb3IgPSBtZXNzYWdlID0+IGludGVybmFscy5sb2co
IkdvdCBhbiBlcnJvcjogIiArIG1lc3NhZ2UpCisKK2ludGVybmFscy5sb2coImhlcmVfIik7CisK
IGRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBJREJLZXlSYW5nZSB3aGVuIHdlIGFyZSBPdXQg
b2YgTWVtb3J5LiIpOwogCitpbnRlcm5hbHMubG9nKCJoZXJlMCIpOworCiAvLyBTaW5jZSB3ZSBh
cmUgbG93IG9uIG1lbW9yeSwgaXQgaXMgZGlmZmljdWx0IHRvIHVzZSB0aGUgZXhjZXB0aW9uIHRl
c3QgaGVscGVycy4KIGxldCBleGNlcHRpb25TdHJpbmcgPSB1bmRlZmluZWQ7CiAKLWNvbnN0IGEg
PSBbXTsKK2xldCBhID0gW107CiBhLmxlbmd0aCA9IDIqKjMwOwogYS5fX3Byb3RvX18gPSB7fTsK
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCAwLCB7IGdldDogZm9vIH0pOwpAQCAtMTksMzAgKzI1
LDQ2IEBAIGZ1bmN0aW9uIGZvbygpIHsKICAgICBuZXcgVWludDhBcnJheShhKTsKIH0KIAoraW50
ZXJuYWxzLmxvZygiaGVyZTEiKTsKKwogdHJ5IHsKICAgICBmb28oKTsKIH0gY2F0Y2ggeyB9CiAK
K2ludGVybmFscy5sb2coImhlcmUyIik7CisKIHRyeSB7CiAgICAgZm9yIChsZXQgdGltZW91dENv
dW50ID0gMTAwMDsgdGltZW91dENvdW50LS07KQogICAgICAgICBuZXcgQXJyYXlCdWZmZXIoMioq
MjApOwogfSBjYXRjaCB7IH0KIAoraW50ZXJuYWxzLmxvZygiaGVyZTMiKTsKKwogbGV0IHU4ID0g
bmV3IFVpbnQ4QXJyYXkoKTsKIAoraW50ZXJuYWxzLmxvZygiaGVyZTQiKTsKKwogdHJ5IHsKICAg
ICBJREJLZXlSYW5nZS5vbmx5KHU4KTsKIH0gY2F0Y2goZSkgewogICAgIGV4Y2VwdGlvblN0cmlu
ZyA9IGUudG9TdHJpbmcoKTsKIH0KIAoraW50ZXJuYWxzLmxvZygiaGVyZTUiKTsKKwogLy8gVHJ5
IHRvIGZyZWUgdXAgc29tZSBtZW1vcnkgdG8gY2hlY2sgb3VyIGV4Y2VwdGlvbgogdTggPSB1bmRl
ZmluZWQ7CithID0gbnVsbDsKIGdjKCk7CiAKK2ludGVybmFscy5sb2coImhlcmU2Iik7CitpbnRl
cm5hbHMubG9nKCJleGNlcHRpb25TdHJpbmcgPSAiICsgZXhjZXB0aW9uU3RyaW5nKTsKKwogLy8g
U2luY2Ugd2UgY2FuJ3QgcmVsaWFibHkgcHJvZHVjZSBhbiBvdXQgb2YgbWVtb3J5IGV2ZXJ5dGlt
ZSwgbm8gZXhjZXB0aW9uIGlzIGFsc28gYSBwYXNzLgogc2hvdWxkQmVUcnVlKCJleGNlcHRpb25T
dHJpbmcgPT0gdW5kZWZpbmVkIHx8IGV4Y2VwdGlvblN0cmluZyA9PT0gJ0RhdGFFcnJvcjogUHJv
dmlkZWQgZGF0YSBpcyBpbmFkZXF1YXRlLiciKTsKIAoraW50ZXJuYWxzLmxvZygiaGVyZTciKTsK
KwogdGVzdFBhc3NlZCgiSURCS2V5UmFuZ2Uub25seSBkaWRuJ3QgY3Jhc2giKTsKIDwvc2NyaXB0
PgogPC9ib2R5Pgo=
</data>
<flag name="commit-queue"
          id="461673"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>