<?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>208978</bug_id>
          
          <creation_ts>2020-03-12 00:23:09 -0700</creation_ts>
          <short_desc>[JSC] Use CacheableIdentifier in ByValInfo</short_desc>
          <delta_ts>2020-03-12 11:34:14 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1629076</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 00:23:09 -0700</bug_when>
    <thetext>ByValInfo is also destroyed in CodeBlock::finalizeUnconditionally. And this function does not have AtomStringTable.
We must not destroy String here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629077</commentid>
    <comment_count>1</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 00:24:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/60289819&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629080</commentid>
    <comment_count>2</comment_count>
      <attachid>393346</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 00:41:48 -0700</bug_when>
    <thetext>Created attachment 393346
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629081</commentid>
    <comment_count>3</comment_count>
      <attachid>393346</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 00:42:12 -0700</bug_when>
    <thetext>Comment on attachment 393346
Patch

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

&gt; Source/JavaScriptCore/heap/Heap.cpp:1508
&gt; +        auto* previous = Thread::current().setCurrentAtomStringTable(nullptr);
&gt; +        auto scopeExit = makeScopeExit([&amp;] {
&gt; +            Thread::current().setCurrentAtomStringTable(previous);
&gt; +        });

Should we do that only for debug builds?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629099</commentid>
    <comment_count>4</comment_count>
      <attachid>393349</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 01:35:55 -0700</bug_when>
    <thetext>Created attachment 393349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629103</commentid>
    <comment_count>5</comment_count>
      <attachid>393350</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 02:28:46 -0700</bug_when>
    <thetext>Created attachment 393350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629124</commentid>
    <comment_count>6</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 03:38:35 -0700</bug_when>
    <thetext>jsc-i386 seems requiring clean build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629130</commentid>
    <comment_count>7</comment_count>
      <attachid>393357</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 03:58:51 -0700</bug_when>
    <thetext>Created attachment 393357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629248</commentid>
    <comment_count>8</comment_count>
      <attachid>393357</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-12 10:44:59 -0700</bug_when>
    <thetext>Comment on attachment 393357
Patch

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

&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:7580
&gt; +                identifierNumber = m_graph.identifiers().ensure(byValInfo-&gt;cachedId.uid());

you need to freeze this cell regardless, no? Otherwise, potential UAF if the byValInfo gets cleared

&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1295
&gt; +        slowCases.append(branchPtr(NotEqual, scratch, TrustedImmPtr(byValInfo-&gt;cachedId.uid())));

why is this not a possible UAF? Is it because we only ever set cacheable identifier once?

&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:99
&gt; +    uintptr_t m_bits { 0 };

why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629255</commentid>
    <comment_count>9</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-12 10:57:46 -0700</bug_when>
    <thetext>I was under the impression that finalizeUnconditionally happened on the mutator thread? Why is the atomic string table not initialized there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629258</commentid>
    <comment_count>10</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-03-12 10:58:52 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #9)
&gt; I was under the impression that finalizeUnconditionally happened on the
&gt; mutator thread? Why is the atomic string table not initialized there?

Oh nvm, should have read the updated ChangeLog...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629259</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-12 10:58:59 -0700</bug_when>
    <thetext>(In reply to Keith Miller from comment #9)
&gt; I was under the impression that finalizeUnconditionally happened on the
&gt; mutator thread? Why is the atomic string table not initialized there?

finalizeUnconditionally happens with the mutator stopped. Not necessarily on the mutator.

I suppose a different implementation could be to swap in the mutator&apos;s atomic string table?

But I kinda like cacheable identifier more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629272</commentid>
    <comment_count>12</comment_count>
      <attachid>393357</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 11:18:57 -0700</bug_when>
    <thetext>Comment on attachment 393357
Patch

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

&gt;&gt; Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:7580
&gt;&gt; +                identifierNumber = m_graph.identifiers().ensure(byValInfo-&gt;cachedId.uid());
&gt; 
&gt; you need to freeze this cell regardless, no? Otherwise, potential UAF if the byValInfo gets cleared

Oops, right.

&gt;&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1295
&gt;&gt; +        slowCases.append(branchPtr(NotEqual, scratch, TrustedImmPtr(byValInfo-&gt;cachedId.uid())));
&gt; 
&gt; why is this not a possible UAF? Is it because we only ever set cacheable identifier once?

Yes.

&gt;&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:99
&gt;&gt; +    uintptr_t m_bits { 0 };
&gt; 
&gt; why?

Otherwise, `CacheableIdentifier value;`&apos;s m_bits is undefined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629274</commentid>
    <comment_count>13</comment_count>
      <attachid>393393</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 11:23:33 -0700</bug_when>
    <thetext>Created attachment 393393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629275</commentid>
    <comment_count>14</comment_count>
      <attachid>393357</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-12 11:23:36 -0700</bug_when>
    <thetext>Comment on attachment 393357
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1295
&gt;&gt;&gt; +        slowCases.append(branchPtr(NotEqual, scratch, TrustedImmPtr(byValInfo-&gt;cachedId.uid())));
&gt;&gt; 
&gt;&gt; why is this not a possible UAF? Is it because we only ever set cacheable identifier once?
&gt; 
&gt; Yes.

Can we document this inside ByValInfo&apos;s header as a requirement?

&gt;&gt;&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:99
&gt;&gt;&gt; +    uintptr_t m_bits { 0 };
&gt;&gt; 
&gt;&gt; why?
&gt; 
&gt; Otherwise, `CacheableIdentifier value;`&apos;s m_bits is undefined.

why not delete the default constructor? Do we use it? (Sorry, I wrote this assuming it was deleted, but maybe it isn&apos;t)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629276</commentid>
    <comment_count>15</comment_count>
      <attachid>393393</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-03-12 11:23:56 -0700</bug_when>
    <thetext>Comment on attachment 393393
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629278</commentid>
    <comment_count>16</comment_count>
      <attachid>393357</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 11:26:01 -0700</bug_when>
    <thetext>Comment on attachment 393357
Patch

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

Thanks!

&gt;&gt;&gt;&gt; Source/JavaScriptCore/jit/JITPropertyAccess.cpp:1295
&gt;&gt;&gt;&gt; +        slowCases.append(branchPtr(NotEqual, scratch, TrustedImmPtr(byValInfo-&gt;cachedId.uid())));
&gt;&gt;&gt; 
&gt;&gt;&gt; why is this not a possible UAF? Is it because we only ever set cacheable identifier once?
&gt;&gt; 
&gt;&gt; Yes.
&gt; 
&gt; Can we document this inside ByValInfo&apos;s header as a requirement?

Yeah, I&apos;ve just documented.

&gt;&gt;&gt;&gt; Source/JavaScriptCore/runtime/CacheableIdentifier.h:99
&gt;&gt;&gt;&gt; +    uintptr_t m_bits { 0 };
&gt;&gt;&gt; 
&gt;&gt;&gt; why?
&gt;&gt; 
&gt;&gt; Otherwise, `CacheableIdentifier value;`&apos;s m_bits is undefined.
&gt; 
&gt; why not delete the default constructor? Do we use it? (Sorry, I wrote this assuming it was deleted, but maybe it isn&apos;t)

ByValInfo is using this right now to make the initial one `nullptr`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629285</commentid>
    <comment_count>17</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-03-12 11:34:14 -0700</bug_when>
    <thetext>Committed r258344: &lt;https://trac.webkit.org/changeset/258344&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393346</attachid>
            <date>2020-03-12 00:41:48 -0700</date>
            <delta_ts>2020-03-12 01:35:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208978-20200312004147.patch</filename>
            <type>text/plain</type>
            <size>19856</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTIxZjk2N2JjZTdjNWNiNzc5ZjU1ODlmZDY5MzhiNWRlYmJjYTViLi41NWQyNTk2NGM0NjQwYTBh
ZTdhZjU5ODA1MzVkMjEzNzI4NGJjY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAyMC0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBDYWNoZWFibGVJZGVudGlmaWVyIGluIEJ5VmFsSW5mbwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4OTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29kZUJsb2Nr
OjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseSBkaXNjYXJkcyBKSVREYXRhLiBBbmQgdGhpcyBpbmNs
dWRlcyBCeVZhbEluZm8sIHdoaWNoIGhvbGRzIElkZW50aWZpZXIuCisgICAgICAgIEhvd2V2ZXIs
IGZpbmFsaXplVW5jb25kaXRpb25hbGx5IGlzIG9ubHkgZ3VhcmFudGVlaW5nIHRoYXQgdGhlIG1h
aW4gdGhyZWFkIGlzIG5vdCB3b3JraW5nLiBJdCBjYW4gYmUgaW52b2tlZAorICAgICAgICBpbiB0
aGUgaGVhcCB0aHJlYWQsIGFuZCBpdCBpcyBub3Qgbm90IHNldHRpbmcgdGhlIEF0b21TdHJpbmdU
YWJsZSBmb3IgdGhpcyBoZWFwIHRocmVhZC4gSWYgSWRlbnRpZmllciBkZXN0cm95cworICAgICAg
ICBBdG9tU3RyaW5nSW1wbCwgd2hpY2ggZmFpbHMgdG8gdW5yZWdpc3RlciBpdHNlbGYgZnJvbSB0
aGUgdGFibGUuCisgICAgICAgIEluIHRoaXMgcGF0Y2gsCisKKyAgICAgICAgICAgIDEuIFdlIGV4
cGxpY2l0bHkgc2V0IG51bGxwdHIgZm9yIHRoZSBjdXJyZW50IEF0b21TdHJpbmdUYWJsZSB0byBj
YXRjaCB0aGUgYnVnIGFzIHNvb24gYXMgcG9zc2libGUgaW4gR0MgZW5kIHBoYXNlLgorICAgICAg
ICAgICAgMi4gV2UgdXNlIENhY2hlYWJsZUlkZW50aWZpZXIgaW4gQnlWYWxJbmZvIHRvIGF2b2lk
IGRlc3Ryb3lpbmcgSWRlbnRpZmllciBpbiBDb2RlQmxvY2s6OmZpbmFsaXplVW5jb25kaXRpb25h
bGx5LgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QnlWYWxJbmZvOjp2aXNpdEFnZ3JlZ2F0ZSk6Cisg
ICAgICAgICogYnl0ZWNvZGUvQnlWYWxJbmZvLmg6CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpzdHJvbmdseVZpc2l0U3Ryb25nUmVm
ZXJlbmNlcyk6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlUHV0QnlWYWwpOgorICAgICAgICAqIGhl
YXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OnJ1bkVuZFBoYXNlKToKKyAgICAgICAg
KiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNz
LmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0QnlWYWxJZGVudGlmaWVyQ2hlY2spOgorICAg
ICAgICAqIHJ1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmllci5oOgorCiAyMDIwLTAzLTExICBLZWl0
aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3QyNjItcnVu
bmVyIHNob3VsZCBhbHdheXMgY29uc2lkZXIgY3Jhc2hlcyBhcyBuZXcgZmFpbHVyZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmI3NDU2NTE3ZjhmNzRjNjlmMWM5ZDViZGMyMDJj
NGY2ZTQ0MTg1ZC4uNDFmNDhiZDA4NTJmMjIzMmE4MjllYjQxODQ3MTk0NmM3MzY3YjcxZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ5NTEsNiArNDk1MSw3IEBACiAJCUUzNTVE
MzhFMjI0NDY4NkMwMDhGMUFENiAvKiBHbG9iYWxFeGVjdXRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEdsb2JhbEV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzU2OTg3MTIyODQxMTgzMDA4Q0RDQ0IgLyogUGFja2VkQ2VsbFB0ci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYWNrZWRDZWxsUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUEw
QjlDMjIwQUQ4N0EwMEFDNDQ3NCAvKiBFeGVjdXRhYmxlQmFzZUlubGluZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhlY3V0YWJsZUJhc2VJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNUJBMkMwMjQxQTBFOEMwMEI2NzA4NiAvKiBCeVZhbElu
Zm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnlWYWxJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTM1Q0ExNEYxREJDM0E1NjAwRjgzNTE2IC8qIERPTUpJVEFic3RyYWN0
SGVhcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01KSVRBYnN0
cmFjdEhlYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVDQTE1MDFEQkMz
QTU2MDBGODM1MTYgLyogRE9NSklUQWJzdHJhY3RIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTUpJVEFic3RyYWN0SGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMzVDQTE1MTFEQkMzQTU2MDBGODM1MTYgLyogRE9NSklUSGVhcFJhbmdlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUpJVEhlYXBSYW5nZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MjA4LDYgKzgyMDksNyBAQAogCQkJCUUz
RDI2NDI5MUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZVJld3JpdGVyLmNwcCAqLywKIAkJCQlF
M0QyNjQyQTFEMzhDMDQyMDAwQkUxNzQgLyogQnl0ZWNvZGVSZXdyaXRlci5oICovLAogCQkJCTBG
ODg1RTEwMTg0OUEzQkUwMEYxRTNGQSAvKiBCeXRlY29kZVVzZURlZi5oICovLAorCQkJCUUzNUJB
MkMwMjQxQTBFOEMwMEI2NzA4NiAvKiBCeVZhbEluZm8uY3BwICovLAogCQkJCTBGODAyM0U5MTYx
MzgzMjMwMEEwQkE0NSAvKiBCeVZhbEluZm8uaCAqLywKIAkJCQkwRjY0QjI3NzFBNzk1N0IyMDA2
RTRFNjYgLyogQ2FsbEVkZ2UuY3BwICovLAogCQkJCTBGNjRCMjc4MUE3OTU3QjIwMDZFNEU2NiAv
KiBDYWxsRWRnZS5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CmluZGV4IDc2ZjFjNjk0
ODVjNmZjYmVlNDg3ZTVhYzk4NmNhNDYzNjM1M2FlYmUuLmUwMDk2NjY4MmI1MjIxNDRiYzQ4OTEw
NTlmMzllMWJjMjg2NmNmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAgLTE5NSw2
ICsxOTUsNyBAQCBieXRlY29kZS9BZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9p
bnRCYXNlLmNwcAogYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAogYnl0ZWNvZGUvQXJyYXlBbGxv
Y2F0aW9uUHJvZmlsZS5jcHAKIGJ5dGVjb2RlL0FycmF5UHJvZmlsZS5jcHAKK2J5dGVjb2RlL0J5
VmFsSW5mby5jcHAKIGJ5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKIGJ5dGVjb2RlL0J5
dGVjb2RlRHVtcGVyLmNwcAogYnl0ZWNvZGUvQnl0ZWNvZGVHZW5lcmF0b3JpZmljYXRpb24uY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc2MmJlMGIyODI3YWRiZWMwYjNiZWE4YzVjNGVmYTJhYzIxYzFhYzkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmNwcApAQCAt
MCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJ5VmFsSW5mby5oIgorCisjaW5jbHVk
ZSAiQ2FjaGVhYmxlSWRlbnRpZmllcklubGluZXMuaCIKKyNpbmNsdWRlICJKU0NJbmxpbmVzLmgi
CisKK25hbWVzcGFjZSBKU0MgeworCit2b2lkIEJ5VmFsSW5mbzo6dmlzaXRBZ2dyZWdhdGUoU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgY2FjaGVkSWQudmlzaXRBZ2dyZWdhdGUodmlzaXRv
cik7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5VmFsSW5mby5oCmluZGV4IGI3ZTkzNzk0NWE5MDk0NmUyYzA1NTIyNzZjYjEzMDUzMGY0
Mzg5YWYuLjA3ZGIzYmZmODU2OGI4OTQ4NWIxYjhmYTI5NDY0MmQyNDY2ZjMyZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTI1LDYgKzI1LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYWNoZWFibGVJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiQ2xhc3NJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0aW9uLmgiCiAjaW5jbHVkZSAi
SW5kZXhpbmdUeXBlLmgiCkBAIC0yNDIsNiArMjQzLDggQEAgc3RydWN0IEJ5VmFsSW5mbyB7CiAg
ICAgewogICAgIH0KIAorICAgIHZvaWQgdmlzaXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3ImKTsKKwog
ICAgIENvZGVMb2NhdGlvbkp1bXA8SlNJbnRlcm5hbFB0clRhZz4gbm90SW5kZXhKdW1wOwogICAg
IENvZGVMb2NhdGlvbkp1bXA8SlNJbnRlcm5hbFB0clRhZz4gYmFkVHlwZUp1bXA7CiAgICAgQ29k
ZUxvY2F0aW9uTGFiZWw8RXhjZXB0aW9uSGFuZGxlclB0clRhZz4gZXhjZXB0aW9uSGFuZGxlcjsK
QEAgLTI1Miw4ICsyNTUsNyBAQCBzdHJ1Y3QgQnlWYWxJbmZvIHsKICAgICBCeXRlY29kZUluZGV4
IGJ5dGVjb2RlSW5kZXg7CiAgICAgdW5zaWduZWQgc2xvd1BhdGhDb3VudDsKICAgICBSZWZQdHI8
SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOwotICAgIElkZW50aWZpZXIgY2FjaGVkSWQ7Ci0g
ICAgV3JpdGVCYXJyaWVyPFN5bWJvbD4gY2FjaGVkU3ltYm9sOworICAgIENhY2hlYWJsZUlkZW50
aWZpZXIgY2FjaGVkSWQ7CiAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvOwogICAgIEpJ
VEFycmF5TW9kZSBhcnJheU1vZGU7IC8vIFRoZSBhcnJheSBtb2RlIHRoYXQgd2FzIGJha2VkIGlu
dG8gdGhlIGlubGluZSBKSVQgY29kZS4KICAgICBib29sIHRvb2tTbG93UGF0aCA6IDE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDkxZWVmYTAw
OThlNjM1YTcxZTZiNzIxZmJlOGMwYTFmMjllMTllOTYuLjlhNDA3ZTczNzc0MDk4NTQ3YzU5ODQ5
MDZlNjcwYjhjMmNmNmEwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCkBAIC0xNjg4LDcgKzE2ODgsNyBAQCB2b2lkIENvZGVCbG9jazo6c3Ryb25n
bHlWaXNpdFN0cm9uZ1JlZmVyZW5jZXMoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiBsb2NrZXIs
CiAjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAoYXV0byogaml0RGF0YSA9IG1faml0RGF0YS5nZXQo
KSkgewogICAgICAgICBmb3IgKEJ5VmFsSW5mbyogYnlWYWxJbmZvIDogaml0RGF0YS0+bV9ieVZh
bEluZm9zKQotICAgICAgICAgICAgdmlzaXRvci5hcHBlbmQoYnlWYWxJbmZvLT5jYWNoZWRTeW1i
b2wpOworICAgICAgICAgICAgYnlWYWxJbmZvLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKICAg
ICAgICAgZm9yIChTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gOiBqaXREYXRhLT5tX3N0dWJJ
bmZvcykKICAgICAgICAgICAgIHN0dWJJbmZvLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFy
c2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
CmluZGV4IGQxZmEwYjMxNzg3NzJlZmY5ZGY0NGJjNThkZWY4MWJjOWQyZjFiMWQuLjBmZjJkNWU3
MzhhNDllOGI3YzQ1NDA4MjhmMGI3ZThlN2ZiZDcxM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC03NTc2LDExICs3NTc2LDExIEBA
IHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVB1dEJ5VmFsKEJ5dGVjb2RlIGJ5dGVjb2RlLCB1
bnNpZ25lZCBpbnN0cnVjdGlvblNpemUpCiAgICAgICAgICAgICAgICAgJiYgIW1faW5saW5lU3Rh
Y2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFR5cGUp
CiAgICAgICAgICAgICAgICAgJiYgIW1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFz
RXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZENlbGwpKSB7CiAgICAgICAgICAgICAgICAgY29t
cGlsZWRBc1B1dEJ5SWQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGlkZW50aWZpZXJOdW1iZXIg
PSBtX2dyYXBoLmlkZW50aWZpZXJzKCkuZW5zdXJlKGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgp
KTsKKyAgICAgICAgICAgICAgICBpZGVudGlmaWVyTnVtYmVyID0gbV9ncmFwaC5pZGVudGlmaWVy
cygpLmVuc3VyZShieVZhbEluZm8tPmNhY2hlZElkLnVpZCgpKTsKICAgICAgICAgICAgICAgICBV
bmlxdWVkU3RyaW5nSW1wbCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJO
dW1iZXJdOwogCi0gICAgICAgICAgICAgICAgaWYgKFN5bWJvbCogc3ltYm9sID0gYnlWYWxJbmZv
LT5jYWNoZWRTeW1ib2wuZ2V0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgRnJvemVuVmFsdWUq
IGZyb3plbiA9IG1fZ3JhcGguZnJlZXplU3Ryb25nKHN5bWJvbCk7CisgICAgICAgICAgICAgICAg
aWYgKGJ5VmFsSW5mby0+Y2FjaGVkSWQuaXNTeW1ib2xDZWxsKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgRnJvemVuVmFsdWUqIGZyb3plbiA9IG1fZ3JhcGguZnJlZXplU3Ryb25nKGJ5VmFsSW5m
by0+Y2FjaGVkSWQuY2VsbCgpKTsKICAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVj
a0NlbGwsIE9wSW5mbyhmcm96ZW4pLCBwcm9wZXJ0eSk7CiAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKCF1aWQtPmlzU3ltYm9sKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCBjYjk3NmExOTQ1YTM2MDQ2YWQxNGYwMTRlNmEx
N2NkMzQyOWZmNjg3Li4wMDdlOGI1ODBkZjA3MTk1MmJiMGEzNTYxYzVmY2I2NDE1MzBjYTVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtODYsNiArODYsNyBAQAogI2luY2x1
ZGUgPHd0Zi9QYXJhbGxlbFZlY3Rvckl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJ
RC5oPgogI2luY2x1ZGUgPHd0Zi9SQU1TaXplLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAj
aW5jbHVkZSA8d3RmL1NpbXBsZVN0YXRzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgog
CkBAIC0xNDk0LDIzICsxNDk1LDMxIEBAIE5FVkVSX0lOTElORSBib29sIEhlYXA6OnJ1bkVuZFBo
YXNlKEdDQ29uZHVjdG9yIGNvbm4pCiAgICAgICAgIAogICAgIHVwZGF0ZU9iamVjdENvdW50cygp
OwogICAgIGVuZE1hcmtpbmcoKTsKLSAgICAgICAgCisKICAgICBpZiAoVU5MSUtFTFkobV92ZXJp
ZmllcikpIHsKICAgICAgICAgbV92ZXJpZmllci0+Z2F0aGVyTGl2ZUNlbGxzKEhlYXBWZXJpZmll
cjo6UGhhc2U6OkFmdGVyTWFya2luZyk7CiAgICAgICAgIG1fdmVyaWZpZXItPnZlcmlmeShIZWFw
VmVyaWZpZXI6OlBoYXNlOjpBZnRlck1hcmtpbmcpOwogICAgIH0KICAgICAgICAgCi0gICAgaWYg
KHZtKCkudHlwZVByb2ZpbGVyKCkpCi0gICAgICAgIHZtKCkudHlwZVByb2ZpbGVyKCktPmludmFs
aWRhdGVUeXBlU2V0Q2FjaGUodm0oKSk7CisgICAgeworICAgICAgICBhdXRvKiBwcmV2aW91cyA9
IFRocmVhZDo6Y3VycmVudCgpLnNldEN1cnJlbnRBdG9tU3RyaW5nVGFibGUobnVsbHB0cik7Cisg
ICAgICAgIGF1dG8gc2NvcGVFeGl0ID0gbWFrZVNjb3BlRXhpdChbJl0geworICAgICAgICAgICAg
VGhyZWFkOjpjdXJyZW50KCkuc2V0Q3VycmVudEF0b21TdHJpbmdUYWJsZShwcmV2aW91cyk7Cisg
ICAgICAgIH0pOwogCi0gICAgbV9zdHJ1Y3R1cmVJRFRhYmxlLmZsdXNoT2xkVGFibGVzKCk7Cisg
ICAgICAgIGlmICh2bSgpLnR5cGVQcm9maWxlcigpKQorICAgICAgICAgICAgdm0oKS50eXBlUHJv
ZmlsZXIoKS0+aW52YWxpZGF0ZVR5cGVTZXRDYWNoZSh2bSgpKTsKKworICAgICAgICBtX3N0cnVj
dHVyZUlEVGFibGUuZmx1c2hPbGRUYWJsZXMoKTsKKworICAgICAgICByZWFwV2Vha0hhbmRsZXMo
KTsKKyAgICAgICAgcHJ1bmVTdGFsZUVudHJpZXNGcm9tV2Vha0dDTWFwcygpOworICAgICAgICBz
d2VlcEFycmF5QnVmZmVycygpOworICAgICAgICBzbmFwc2hvdFVuc3dlcHQoKTsKKyAgICAgICAg
ZmluYWxpemVVbmNvbmRpdGlvbmFsRmluYWxpemVycygpOyAvLyBXZSByZWx5IG9uIHRoZXNlIHVu
Y29uZGl0aW9uYWwgZmluYWxpemVycyBydW5uaW5nIGJlZm9yZSBjbGVhckN1cnJlbnRseUV4ZWN1
dGluZyBzaW5jZSBDb2RlQmxvY2sncyBmaW5hbGl6ZXIgcmVsaWVzIG9uIHF1ZXJ5aW5nIGN1cnJl
bnRseSBleGVjdXRpbmcuCisgICAgICAgIHJlbW92ZURlYWRDb21waWxlcldvcmtsaXN0RW50cmll
cygpOworICAgIH0KIAotICAgIHJlYXBXZWFrSGFuZGxlcygpOwotICAgIHBydW5lU3RhbGVFbnRy
aWVzRnJvbVdlYWtHQ01hcHMoKTsKLSAgICBzd2VlcEFycmF5QnVmZmVycygpOwotICAgIHNuYXBz
aG90VW5zd2VwdCgpOwotICAgIGZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMoKTsgLy8g
V2UgcmVseSBvbiB0aGVzZSB1bmNvbmRpdGlvbmFsIGZpbmFsaXplcnMgcnVubmluZyBiZWZvcmUg
Y2xlYXJDdXJyZW50bHlFeGVjdXRpbmcgc2luY2UgQ29kZUJsb2NrJ3MgZmluYWxpemVyIHJlbGll
cyBvbiBxdWVyeWluZyBjdXJyZW50bHkgZXhlY3V0aW5nLgotICAgIHJlbW92ZURlYWRDb21waWxl
cldvcmtsaXN0RW50cmllcygpOwogICAgIG5vdGlmeUluY3JlbWVudGFsU3dlZXBlcigpOwogICAg
IAogICAgIG1fY29kZUJsb2Nrcy0+aXRlcmF0ZUN1cnJlbnRseUV4ZWN1dGluZygKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDIyYjlhMWQxZTljMzJk
OWNkOTk2OTFiMTk3MzIwOTVjZTkyMzQ2NWIuLjQxZTgzYzYxOGVhYTU2MTBjZTdlMDU2NTNiMzIw
MTc4NTZhZTU3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmNwcApAQCAtNjc4LDExICs2NzgsNiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUHV0
QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAgICAg
ICByZXBhdGNoUHV0QnlJRChnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZU9iamVjdCwgc3Ry
dWN0dXJlLCBpZGVudCwgc2xvdCwgKnN0dWJJbmZvLCBEaXJlY3QpOwogfQogCi1BTFdBWVNfSU5M
SU5FIHN0YXRpYyBib29sIGlzU3RyaW5nT3JTeW1ib2woSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBy
ZXR1cm4gdmFsdWUuaXNTdHJpbmcoKSB8fCB2YWx1ZS5pc1N5bWJvbCgpOwotfQotCiBzdGF0aWMg
dm9pZCBwdXRCeVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNv
ZGVCbG9jaywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBKU1ZhbHVlIHZh
bHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CkBAIC03MTYsNyArNzExLDcgQEAgc3RhdGljIHZvaWQgcHV0QnlWYWwoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpTVmFsdWUKICAgICAv
LyBEb24ndCBwdXQgdG8gYW4gb2JqZWN0IGlmIHRvU3RyaW5nIHRocmV3IGFuIGV4Y2VwdGlvbi4K
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0gICAgaWYgKGJ5VmFs
SW5mby0+c3R1YkluZm8gJiYgKCFpc1N0cmluZ09yU3ltYm9sKHN1YnNjcmlwdCkgfHwgYnlWYWxJ
bmZvLT5jYWNoZWRJZCAhPSBwcm9wZXJ0eSkpCisgICAgaWYgKGJ5VmFsSW5mby0+c3R1YkluZm8g
JiYgKCFDYWNoZWFibGVJZGVudGlmaWVyOjppc0NhY2hlYWJsZUlkZW50aWZpZXJDZWxsKHN1YnNj
cmlwdCkgfHwgYnlWYWxJbmZvLT5jYWNoZWRJZC51aWQoKSAhPSBwcm9wZXJ0eSkpCiAgICAgICAg
IGJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsK
QEAgLTc3Niw3ICs3NzEsNyBAQCBzdGF0aWMgdm9pZCBkaXJlY3RQdXRCeVZhbChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSgogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgaWYgKGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgKCFpc1N0cmluZ09y
U3ltYm9sKHN1YnNjcmlwdCkgfHwgYnlWYWxJbmZvLT5jYWNoZWRJZCAhPSBwcm9wZXJ0eSkpCisg
ICAgaWYgKGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgKCFDYWNoZWFibGVJZGVudGlmaWVyOjppc0Nh
Y2hlYWJsZUlkZW50aWZpZXJDZWxsKHN1YnNjcmlwdCkgfHwgYnlWYWxJbmZvLT5jYWNoZWRJZC51
aWQoKSAhPSBwcm9wZXJ0eSkpCiAgICAgICAgIGJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1
ZTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKQEAgLTgyNywxNCArODIyLDE0IEBAIHN0YXRpYyBP
cHRpbWl6YXRpb25SZXN1bHQgdHJ5UHV0QnlWYWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBDYWxsCiAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRpbWl6
YXRpb25SZXN1bHQ6OkdpdmVVcDsKICAgICB9CiAKLSAgICBpZiAoYmFzZVZhbHVlLmlzT2JqZWN0
KCkgJiYgaXNTdHJpbmdPclN5bWJvbChzdWJzY3JpcHQpKSB7CisgICAgaWYgKGJhc2VWYWx1ZS5p
c09iamVjdCgpICYmIENhY2hlYWJsZUlkZW50aWZpZXI6OmlzQ2FjaGVhYmxlSWRlbnRpZmllckNl
bGwoc3Vic2NyaXB0KSkgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9
IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIE9wdGltaXphdGlvblJlc3VsdDo6R2l2ZVVwKTsKICAgICAgICAg
aWYgKHN1YnNjcmlwdC5pc1N5bWJvbCgpIHx8ICFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsK
ICAgICAgICAgICAgIEFTU0VSVChjYWxsRnJhbWUtPmJ5dGVjb2RlSW5kZXgoKSAhPSBCeXRlY29k
ZUluZGV4KDApKTsKICAgICAgICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGluZSk7
CiAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvLT5zZWVuKSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGJ5VmFsSW5mby0+Y2FjaGVkSWQgPT0gcHJvcGVydHlOYW1lKSB7CisgICAgICAgICAgICAgICAg
aWYgKGJ5VmFsSW5mby0+Y2FjaGVkSWQudWlkKCkgPT0gcHJvcGVydHlOYW1lKSB7CiAgICAgICAg
ICAgICAgICAgICAgIEpJVDo6Y29tcGlsZVB1dEJ5VmFsV2l0aENhY2hlZElkPE9wUHV0QnlWYWw+
KHZtLCBjb2RlQmxvY2ssIGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywgTm90RGlyZWN0LCBwcm9w
ZXJ0eU5hbWUpOwogICAgICAgICAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRp
bWl6YXRpb25SZXN1bHQ6Ok9wdGltaXplZDsKICAgICAgICAgICAgICAgICB9IGVsc2UgewpAQCAt
ODQyLDEyICs4MzcsMTMgQEAgc3RhdGljIE9wdGltaXphdGlvblJlc3VsdCB0cnlQdXRCeVZhbE9w
dGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICAgICAgICAgICAg
ICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0OjpHaXZlVXA7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBD
b25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAgICAg
ICAgICBieVZhbEluZm8tPnNlZW4gPSB0cnVlOwotICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+
Y2FjaGVkSWQgPSBwcm9wZXJ0eU5hbWU7Ci0gICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlwdC5p
c1N5bWJvbCgpKQotICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPmNhY2hlZFN5bWJvbC5z
ZXQodm0sIGNvZGVCbG9jaywgYXNTeW1ib2woc3Vic2NyaXB0KSk7Ci0gICAgICAgICAgICAgICAg
b3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0OjpTZWVuT25jZTsKKyAgICAg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2Nr
ZXIoY29kZUJsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPnNl
ZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPmNhY2hlZElkID0gQ2Fj
aGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUNlbGwoc3Vic2NyaXB0LmFzQ2VsbCgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0
OjpTZWVuT25jZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdm0uaGVhcC53
cml0ZUJhcnJpZXIoY29kZUJsb2NrLCBzdWJzY3JpcHQuYXNDZWxsKCkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgfQpAQCAtOTE2LDE0ICs5MTIsMTQgQEAgc3RhdGljIE9wdGltaXph
dGlvblJlc3VsdCB0cnlEaXJlY3RQdXRCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QKICAgICAgICAgLy8gSWYgd2UgZmFpbGVkIHRvIHBhdGNoIGFuZCB3ZSBoYXZlIHNv
bWUgb2JqZWN0IHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBkb24ndCBldmVuIHdh
aXQgdW50aWwgMTAgdGltZXMuCiAgICAgICAgIGlmIChvcHRpbWl6YXRpb25SZXN1bHQgIT0gT3B0
aW1pemF0aW9uUmVzdWx0OjpPcHRpbWl6ZWQgJiYgb2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT50eXBl
SW5mbygpLmludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8oKSkKICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlv
blJlc3VsdDo6R2l2ZVVwOwotICAgIH0gZWxzZSBpZiAoaXNTdHJpbmdPclN5bWJvbChzdWJzY3Jp
cHQpKSB7CisgICAgfSBlbHNlIGlmIChDYWNoZWFibGVJZGVudGlmaWVyOjppc0NhY2hlYWJsZUlk
ZW50aWZpZXJDZWxsKHN1YnNjcmlwdCkpIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwogICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBPcHRpbWl6YXRpb25SZXN1bHQ6OkdpdmVVcCk7
CiAgICAgICAgIGlmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCAhcGFyc2VJbmRleChwcm9wZXJ0
eU5hbWUpKSB7CiAgICAgICAgICAgICBBU1NFUlQoY2FsbEZyYW1lLT5ieXRlY29kZUluZGV4KCkg
IT0gQnl0ZWNvZGVJbmRleCgwKSk7CiAgICAgICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1
YlJvdXRpbmUpOwogICAgICAgICAgICAgaWYgKGJ5VmFsSW5mby0+c2VlbikgewotICAgICAgICAg
ICAgICAgIGlmIChieVZhbEluZm8tPmNhY2hlZElkID09IHByb3BlcnR5TmFtZSkgeworICAgICAg
ICAgICAgICAgIGlmIChieVZhbEluZm8tPmNhY2hlZElkLnVpZCgpID09IHByb3BlcnR5TmFtZSkg
ewogICAgICAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbFdpdGhDYWNoZWRJZDxP
cFB1dEJ5VmFsRGlyZWN0Pih2bSwgY29kZUJsb2NrLCBieVZhbEluZm8sIHJldHVybkFkZHJlc3Ms
IERpcmVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemF0aW9u
UmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0OjpPcHRpbWl6ZWQ7CiAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKQEAgLTkzMSwxMiArOTI3LDEzIEBAIHN0YXRpYyBPcHRpbWl6YXRpb25SZXN1bHQg
dHJ5RGlyZWN0UHV0QnlWYWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAg
ICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJlc3Vs
dDo6R2l2ZVVwOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7
Ci0gICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5zZWVuID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICBieVZhbEluZm8tPmNhY2hlZElkID0gcHJvcGVydHlOYW1lOwotICAgICAgICAgICAgICAgIGlm
IChzdWJzY3JpcHQuaXNTeW1ib2woKSkKLSAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5j
YWNoZWRTeW1ib2wuc2V0KHZtLCBjb2RlQmxvY2ssIGFzU3ltYm9sKHN1YnNjcmlwdCkpOwotICAg
ICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJlc3VsdDo6U2Vl
bk9uY2U7CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBDb25jdXJyZW50
SlNMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICAgICAg
YnlWYWxJbmZvLT5zZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5j
YWNoZWRJZCA9IENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21DZWxsKHN1YnNjcmlwdC5h
c0NlbGwoKSk7CisgICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGlt
aXphdGlvblJlc3VsdDo6U2Vlbk9uY2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNvZGVCbG9jaywgc3Vic2NyaXB0LmFzQ2VsbCgpKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggMmJhMGZhNjg0OGJjZTgyOWFjZDY0
MTkwNWYwNWY0YmQ1NGRjYmUzNS4uYjUzYTQ5MGY1ZGZiMDlmZjcyYjNlN2FlMDc0N2M0MTI5NTVl
NWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
cy5jcHAKQEAgLTEyODUsMTQgKzEyODUsMTQgQEAgdm9pZCBKSVQ6OmVtaXRXcml0ZUJhcnJpZXIo
SlNDZWxsKiBvd25lcikKICAgICBvd25lcklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmsodGhpcyk7
CiB9CiAKLXZvaWQgSklUOjplbWl0QnlWYWxJZGVudGlmaWVyQ2hlY2soQnlWYWxJbmZvKiBieVZh
bEluZm8sIFJlZ2lzdGVySUQgY2VsbCwgUmVnaXN0ZXJJRCBzY3JhdGNoLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit2b2lkIEpJVDo6ZW1pdEJ5
VmFsSWRlbnRpZmllckNoZWNrKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZWdpc3RlcklEIGNlbGws
IFJlZ2lzdGVySUQgc2NyYXRjaCwgY29uc3QgSWRlbnRpZmllciYsIEp1bXBMaXN0JiBzbG93Q2Fz
ZXMpCiB7Ci0gICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKQotICAgICAgICBzbG93Q2Fz
ZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgY2VsbCwgVHJ1c3RlZEltbVB0cihieVZhbElu
Zm8tPmNhY2hlZFN5bWJvbC5nZXQoKSkpKTsKKyAgICBpZiAoYnlWYWxJbmZvLT5jYWNoZWRJZC5p
c1N5bWJvbENlbGwoKSkKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1
YWwsIGNlbGwsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvLT5jYWNoZWRJZC5jZWxsKCkpKSk7CiAg
ICAgZWxzZSB7CiAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoSWZOb3RTdHJpbmcoY2Vs
bCkpOwogICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2VsbCwgSlNTdHJpbmc6Om9mZnNldE9mVmFs
dWUoKSksIHNjcmF0Y2gpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RF
cXVhbCwgc2NyYXRjaCwgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkpOworICAg
ICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgc2NyYXRjaCwgVHJ1c3Rl
ZEltbVB0cihieVZhbEluZm8tPmNhY2hlZElkLnVpZCgpKSkpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmllci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmllci5oCmlu
ZGV4IGI0N2I4NmViM2NhZGE0ZTFjYzMyMWMxNDFkMzUxOTExNmE0NTI4NmMuLjc4MzFjMTk2YWI1
N2I3ODc3YjdhNzYyNjIwODE4MmZlMGUyMGNhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9DYWNoZWFibGVJZGVudGlmaWVyLmgKQEAgLTk2LDcgKzk2LDcgQEAg
Y2xhc3MgQ2FjaGVhYmxlSWRlbnRpZmllciB7CiAgICAgLy8gdW5wb2xsdXRlZCwgYW5kIHRoZXJl
Zm9yZSwgaXQgY2FuIGJlIHNjYW5uZWQgYnkgb3VyIGNvbnNlcnZhdGl2ZSBHQyB0byBrZWVwIHRo
ZQogICAgIC8vIGNlbGwgYWxpdmUgd2hlbiB0aGUgQ2FjaGVhYmxlSWRlbnRpZmllciBpcyBvbiB0
aGUgc3RhY2suCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3Qgc191aWRUYWcgPSAxOwot
ICAgIHVpbnRwdHJfdCBtX2JpdHM7CisgICAgdWludHB0cl90IG1fYml0cyB7IDAgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393349</attachid>
            <date>2020-03-12 01:35:55 -0700</date>
            <delta_ts>2020-03-12 02:28:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208978-20200312013554.patch</filename>
            <type>text/plain</type>
            <size>23735</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTIxZjk2N2JjZTdjNWNiNzc5ZjU1ODlmZDY5MzhiNWRlYmJjYTViLi41Njk4MjdjNzI1NzBmYjYx
NzNiODc3YWI4OTU4MzRlNWMxYTA1MmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOCBAQAorMjAyMC0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBDYWNoZWFibGVJZGVudGlmaWVyIGluIEJ5VmFsSW5mbwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4OTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29kZUJsb2Nr
OjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseSBkaXNjYXJkcyBKSVREYXRhLiBBbmQgdGhpcyBpbmNs
dWRlcyBCeVZhbEluZm8sIHdoaWNoIGhvbGRzIElkZW50aWZpZXIuCisgICAgICAgIEhvd2V2ZXIs
IGZpbmFsaXplVW5jb25kaXRpb25hbGx5IGlzIG9ubHkgZ3VhcmFudGVlaW5nIHRoYXQgdGhlIG1h
aW4gdGhyZWFkIGlzIG5vdCB3b3JraW5nLiBJdCBjYW4gYmUgaW52b2tlZAorICAgICAgICBpbiB0
aGUgaGVhcCB0aHJlYWQsIGFuZCBpdCBpcyBub3Qgbm90IHNldHRpbmcgdGhlIEF0b21TdHJpbmdU
YWJsZSBmb3IgdGhpcyBoZWFwIHRocmVhZC4gSWYgSWRlbnRpZmllciBkZXN0cm95cworICAgICAg
ICBBdG9tU3RyaW5nSW1wbCwgd2hpY2ggZmFpbHMgdG8gdW5yZWdpc3RlciBpdHNlbGYgZnJvbSB0
aGUgdGFibGUuCisgICAgICAgIEluIHRoaXMgcGF0Y2gsCisKKyAgICAgICAgICAgIDEuIFdlIGV4
cGxpY2l0bHkgc2V0IG51bGxwdHIgZm9yIHRoZSBjdXJyZW50IEF0b21TdHJpbmdUYWJsZSB0byBj
YXRjaCB0aGUgYnVnIGFzIHNvb24gYXMgcG9zc2libGUgaW4gR0MgZW5kIHBoYXNlLgorICAgICAg
ICAgICAgMi4gV2UgdXNlIENhY2hlYWJsZUlkZW50aWZpZXIgaW4gQnlWYWxJbmZvIHRvIGF2b2lk
IGRlc3Ryb3lpbmcgSWRlbnRpZmllciBpbiBDb2RlQmxvY2s6OmZpbmFsaXplVW5jb25kaXRpb25h
bGx5LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8uY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6QnlW
YWxJbmZvOjp2aXNpdEFnZ3JlZ2F0ZSk6CisgICAgICAgICogYnl0ZWNvZGUvQnlWYWxJbmZvLmg6
CisgICAgICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJs
b2NrOjpzdHJvbmdseVZpc2l0U3Ryb25nUmVmZXJlbmNlcyk6CisgICAgICAgICogYnl0ZWNvZGUv
Q29kZUJsb2NrLmg6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6aGFuZGxlUHV0QnlWYWwpOgorICAgICAgICAq
IGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OnJ1bkVuZFBoYXNlKToKKyAgICAg
ICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuY3BwOgorICAgICAg
ICAqIGppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdEJ5
VmFsSWRlbnRpZmllckNoZWNrKToKKyAgICAgICAgKiBydW50aW1lL0NhY2hlYWJsZUlkZW50aWZp
ZXIuaDoKKwogMjAyMC0wMy0xMSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBUZXN0MjYyLXJ1bm5lciBzaG91bGQgYWx3YXlzIGNvbnNpZGVyIGNyYXNo
ZXMgYXMgbmV3IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
ZjdjNjY2MmY3ZmU1NjcwOWY0NTA5NGMwNzNmNTVjNTA4MWNhODg3ZS4uM2ZmMjI1ZTA3MWQ5ZWI0
Y2M0NGVkZThlYTZlODVmNDFiNWJlMjdlOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtNDg4LDcgKzQ4OCw2IEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1F
V09SS19IRUFERVJTCiAKICAgICBieXRlY29kZS9BcnJheUFsbG9jYXRpb25Qcm9maWxlLmgKICAg
ICBieXRlY29kZS9BcnJheVByb2ZpbGUuaAotICAgIGJ5dGVjb2RlL0J5VmFsSW5mby5oCiAgICAg
Ynl0ZWNvZGUvQnl0ZWNvZGVDb252ZW50aW9ucy5oCiAgICAgYnl0ZWNvZGUvQnl0ZWNvZGVJbmRl
eC5oCiAgICAgYnl0ZWNvZGUvQnl0ZWNvZGVJbnRyaW5zaWNSZWdpc3RyeS5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGZiNzQ1NjUxN2Y4Zjc0YzY5ZjFjOWQ1YmRjMjAyYzRmNmU0
NDE4NWQuLjRhZmNlMDE1ZjkwYmIyNTEwNGM4YjYxZTFiNzI5NWM2N2NjMDFjYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NTYsNyArNDU2LDcgQEAKIAkJMEY3REYxM0MxRTI5
NzExMzAwOTU5NTFCIC8qIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0SGVhcENlbGxUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdERjEzQTFFMjk3MTBF
MDA5NTk1MUIgLyogSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjdERjE0NjFFMkJFRjZB
MDA5NTk1MUIgLyogQmxvY2tEaXJlY3RvcnlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjdERjE0NTFFMkJFRjY4MDA5NTk1MUIgLyogQmxv
Y2tEaXJlY3RvcnlJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEY3Rjk4OEMxRDk1OTZDODAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmll
ckNsdXN0ZXJpbmdQaGFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY3Rjk4OEExRDk1OTZDMzAwRjRGMTJFIC8qIERGR1N0b3JlQmFycmllckNsdXN0
ZXJpbmdQaGFzZS5oICovOyB9OwotCQkwRjgwMjNFQTE2MTM4MzJCMDBBMEJBNDUgLyogQnlWYWxJ
bmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjgw
MjNFOTE2MTM4MzIzMDBBMEJBNDUgLyogQnlWYWxJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEY4MDIzRUExNjEzODMyQjAwQTBCQTQ1IC8q
IEJ5VmFsSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY4MDIzRTkxNjEzODMyMzAwQTBCQTQ1IC8qIEJ5VmFsSW5mby5oICovOyB9OwogCQkwRjgz
MzVCODE2MzlDMUVBMDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4MzM1QjUxNjM5QzFFMzAw
MTQ0M0I1IC8qIEFycmF5QWxsb2NhdGlvblByb2ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjgzNjRCNzE2NEIwQzExMDA1MzMyOUEgLyog
REZHQnJhbmNoRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjgzNjRCNTE2NEIwQzBFMDA1MzMyOUEgLyogREZHQnJhbmNoRGlyZWN0aW9u
LmggKi87IH07CiAJCTBGODZBMjZGMUQ2RjdCMzMwMENCMEM5MiAvKiBHQ1R5cGVNYXAuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGODZBMjZFMUQ2RjdC
MzEwMENCMEM5MiAvKiBHQ1R5cGVNYXAuaCAqLzsgfTsKQEAgLTQ5NTEsNiArNDk1MSw3IEBACiAJ
CUUzNTVEMzhFMjI0NDY4NkMwMDhGMUFENiAvKiBHbG9iYWxFeGVjdXRhYmxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEdsb2JhbEV4ZWN1dGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMzU2OTg3MTIyODQxMTgzMDA4Q0RDQ0IgLyogUGFja2VkQ2VsbFB0ci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYWNrZWRDZWxsUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUzNUEwQjlDMjIwQUQ4N0EwMEFDNDQ3NCAvKiBFeGVjdXRhYmxlQmFzZUlubGluZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhlY3V0YWJsZUJhc2VJbmxpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzNUJBMkMwMjQxQTBFOEMwMEI2NzA4NiAvKiBC
eVZhbEluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQnlWYWxJbmZvLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1Q0ExNEYxREJDM0E1NjAwRjgzNTE2IC8qIERPTUpJVEFi
c3RyYWN0SGVhcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBET01K
SVRBYnN0cmFjdEhlYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVDQTE1
MDFEQkMzQTU2MDBGODM1MTYgLyogRE9NSklUQWJzdHJhY3RIZWFwLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERPTUpJVEFic3RyYWN0SGVhcC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMzVDQTE1MTFEQkMzQTU2MDBGODM1MTYgLyogRE9NSklUSGVhcFJhbmdl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTUpJVEhlYXBSYW5n
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MjA4LDYgKzgyMDksNyBAQAog
CQkJCUUzRDI2NDI5MUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZVJld3JpdGVyLmNwcCAqLywK
IAkJCQlFM0QyNjQyQTFEMzhDMDQyMDAwQkUxNzQgLyogQnl0ZWNvZGVSZXdyaXRlci5oICovLAog
CQkJCTBGODg1RTEwMTg0OUEzQkUwMEYxRTNGQSAvKiBCeXRlY29kZVVzZURlZi5oICovLAorCQkJ
CUUzNUJBMkMwMjQxQTBFOEMwMEI2NzA4NiAvKiBCeVZhbEluZm8uY3BwICovLAogCQkJCTBGODAy
M0U5MTYxMzgzMjMwMEEwQkE0NSAvKiBCeVZhbEluZm8uaCAqLywKIAkJCQkwRjY0QjI3NzFBNzk1
N0IyMDA2RTRFNjYgLyogQ2FsbEVkZ2UuY3BwICovLAogCQkJCTBGNjRCMjc4MUE3OTU3QjIwMDZF
NEU2NiAvKiBDYWxsRWRnZS5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CmluZGV4IDc2
ZjFjNjk0ODVjNmZjYmVlNDg3ZTVhYzk4NmNhNDYzNjM1M2FlYmUuLmUwMDk2NjY4MmI1MjIxNDRi
YzQ4OTEwNTlmMzllMWJjMjg2NmNmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAg
LTE5NSw2ICsxOTUsNyBAQCBieXRlY29kZS9BZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdh
dGNocG9pbnRCYXNlLmNwcAogYnl0ZWNvZGUvQXJpdGhQcm9maWxlLmNwcAogYnl0ZWNvZGUvQXJy
YXlBbGxvY2F0aW9uUHJvZmlsZS5jcHAKIGJ5dGVjb2RlL0FycmF5UHJvZmlsZS5jcHAKK2J5dGVj
b2RlL0J5VmFsSW5mby5jcHAKIGJ5dGVjb2RlL0J5dGVjb2RlQmFzaWNCbG9jay5jcHAKIGJ5dGVj
b2RlL0J5dGVjb2RlRHVtcGVyLmNwcAogYnl0ZWNvZGUvQnl0ZWNvZGVHZW5lcmF0b3JpZmljYXRp
b24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJ
bmZvLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc2MmJlMGIyODI3YWRiZWMwYjNiZWE4YzVjNGVmYTJhYzIxYzFhYzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmNw
cApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJ5VmFsSW5mby5oIgorCisj
aW5jbHVkZSAiQ2FjaGVhYmxlSWRlbnRpZmllcklubGluZXMuaCIKKyNpbmNsdWRlICJKU0NJbmxp
bmVzLmgiCisKK25hbWVzcGFjZSBKU0MgeworCit2b2lkIEJ5VmFsSW5mbzo6dmlzaXRBZ2dyZWdh
dGUoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgY2FjaGVkSWQudmlzaXRBZ2dyZWdhdGUo
dmlzaXRvcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb2RlL0J5VmFsSW5mby5oCmluZGV4IGI3ZTkzNzk0NWE5MDk0NmUyYzA1NTIyNzZjYjEz
MDUzMGY0Mzg5YWYuLjljYzU2MDRlOWY4NDJlNDUxMzI4OTc3MjU1OGMwMjcwZGE3NDYwZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKQEAgLTI1LDYgKzI1
LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYWNoZWFibGVJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiQ2xhc3NJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUxvY2F0aW9uLmgiCiAjaW5j
bHVkZSAiSW5kZXhpbmdUeXBlLmgiCkBAIC0zNyw2ICszOCw3IEBAIGNsYXNzIFN5bWJvbDsKIAog
I2lmIEVOQUJMRShKSVQpCiAKK2NsYXNzIEFycmF5UHJvZmlsZTsKIGNsYXNzIFN0cnVjdHVyZVN0
dWJJbmZvOwogCiBlbnVtIEpJVEFycmF5TW9kZSA6IHVpbnQ4X3QgewpAQCAtMjQyLDYgKzI0NCw4
IEBAIHN0cnVjdCBCeVZhbEluZm8gewogICAgIHsKICAgICB9CiAKKyAgICB2b2lkIHZpc2l0QWdn
cmVnYXRlKFNsb3RWaXNpdG9yJik7CisKICAgICBDb2RlTG9jYXRpb25KdW1wPEpTSW50ZXJuYWxQ
dHJUYWc+IG5vdEluZGV4SnVtcDsKICAgICBDb2RlTG9jYXRpb25KdW1wPEpTSW50ZXJuYWxQdHJU
YWc+IGJhZFR5cGVKdW1wOwogICAgIENvZGVMb2NhdGlvbkxhYmVsPEV4Y2VwdGlvbkhhbmRsZXJQ
dHJUYWc+IGV4Y2VwdGlvbkhhbmRsZXI7CkBAIC0yNTIsOCArMjU2LDcgQEAgc3RydWN0IEJ5VmFs
SW5mbyB7CiAgICAgQnl0ZWNvZGVJbmRleCBieXRlY29kZUluZGV4OwogICAgIHVuc2lnbmVkIHNs
b3dQYXRoQ291bnQ7CiAgICAgUmVmUHRyPEpJVFN0dWJSb3V0aW5lPiBzdHViUm91dGluZTsKLSAg
ICBJZGVudGlmaWVyIGNhY2hlZElkOwotICAgIFdyaXRlQmFycmllcjxTeW1ib2w+IGNhY2hlZFN5
bWJvbDsKKyAgICBDYWNoZWFibGVJZGVudGlmaWVyIGNhY2hlZElkOwogICAgIFN0cnVjdHVyZVN0
dWJJbmZvKiBzdHViSW5mbzsKICAgICBKSVRBcnJheU1vZGUgYXJyYXlNb2RlOyAvLyBUaGUgYXJy
YXkgbW9kZSB0aGF0IHdhcyBiYWtlZCBpbnRvIHRoZSBpbmxpbmUgSklUIGNvZGUuCiAgICAgYm9v
bCB0b29rU2xvd1BhdGggOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZUJsb2NrLmNwcAppbmRleCA5MWVlZmEwMDk4ZTYzNWE3MWU2YjcyMWZiZThjMGExZjI5ZTE5ZTk2
Li43NDM2OTUzNGU5MGVjNzdhMzE1ZDVlOWMyMDA4ZjJmYzllYzEyNGZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
CiAjaW5jbHVkZSAiQXJpdGhQcm9maWxlLmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xvY2F0aW9u
LmgiCisjaW5jbHVkZSAiQnlWYWxJbmZvLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVEdW1wZXIuaCIK
ICNpbmNsdWRlICJCeXRlY29kZUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlTGl2ZW5l
c3NBbmFseXNpcy5oIgpAQCAtMTY4OCw3ICsxNjg5LDcgQEAgdm9pZCBDb2RlQmxvY2s6OnN0cm9u
Z2x5VmlzaXRTdHJvbmdSZWZlcmVuY2VzKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlciYgbG9ja2Vy
LAogI2lmIEVOQUJMRShKSVQpCiAgICAgaWYgKGF1dG8qIGppdERhdGEgPSBtX2ppdERhdGEuZ2V0
KCkpIHsKICAgICAgICAgZm9yIChCeVZhbEluZm8qIGJ5VmFsSW5mbyA6IGppdERhdGEtPm1fYnlW
YWxJbmZvcykKLSAgICAgICAgICAgIHZpc2l0b3IuYXBwZW5kKGJ5VmFsSW5mby0+Y2FjaGVkU3lt
Ym9sKTsKKyAgICAgICAgICAgIGJ5VmFsSW5mby0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CiAg
ICAgICAgIGZvciAoU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvIDogaml0RGF0YS0+bV9zdHVi
SW5mb3MpCiAgICAgICAgICAgICBzdHViSW5mby0+dmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCmluZGV4IDQ2
OGFhNzI3OWY3Yjg2NmExZmE0MTNjMjdlZWRmNGQ2MmNiZjk1ZTEuLmYwMjBiZTQ4NmIwZmM0OTZi
ODMyODdiNDcwOGIxMWRkNGY4ZWFhYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVk
ZSAiQXJyYXlQcm9maWxlLmgiCi0jaW5jbHVkZSAiQnlWYWxJbmZvLmgiCiAjaW5jbHVkZSAiQnl0
ZWNvZGVDb252ZW50aW9ucy5oIgogI2luY2x1ZGUgIkNhbGxMaW5rSW5mby5oIgogI2luY2x1ZGUg
IkNvZGVCbG9ja0hhc2guaCIKQEAgLTk1LDYgKzk0LDcgQEAgY2xhc3MgTWV0YWRhdGFUYWJsZTsK
IGNsYXNzIFBDVG9Db2RlT3JpZ2luTWFwOwogY2xhc3MgUmVnaXN0ZXJBdE9mZnNldExpc3Q7CiBj
bGFzcyBTdHJ1Y3R1cmVTdHViSW5mbzsKK3N0cnVjdCBCeVZhbEluZm87CiAKIERFQ0xBUkVfQUxM
T0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKENvZGVCbG9ja1JhcmVEYXRhKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAppbmRleCBkMWZh
MGIzMTc4NzcyZWZmOWRmNDRiYzU4ZGVmODFiYzlkMmYxYjFkLi5iZDM4NjMwMjg4NGIxNzRlMGVk
NGMyNDZkNTAxZjljYWQyY2QzZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0J5dGVDb2RlUGFyc2VyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFycmF5
Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRpb24uaCIKICNpbmNsdWRl
ICJCdWlsdGluTmFtZXMuaCIKKyNpbmNsdWRlICJCeVZhbEluZm8uaCIKICNpbmNsdWRlICJCeXRl
Y29kZUdlbmVyYXRvci5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlVXNlRGVmLmgiCiAjaW5jbHVkZSAi
Q2FjaGVhYmxlSWRlbnRpZmllcklubGluZXMuaCIKQEAgLTc1NzYsMTEgKzc1NzcsMTEgQEAgdm9p
ZCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlUHV0QnlWYWwoQnl0ZWNvZGUgYnl0ZWNvZGUsIHVuc2ln
bmVkIGluc3RydWN0aW9uU2l6ZSkKICAgICAgICAgICAgICAgICAmJiAhbV9pbmxpbmVTdGFja1Rv
cC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkVHlwZSkKICAg
ICAgICAgICAgICAgICAmJiAhbV9pbmxpbmVTdGFja1RvcC0+bV9leGl0UHJvZmlsZS5oYXNFeGl0
U2l0ZShtX2N1cnJlbnRJbmRleCwgQmFkQ2VsbCkpIHsKICAgICAgICAgICAgICAgICBjb21waWxl
ZEFzUHV0QnlJZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaWRlbnRpZmllck51bWJlciA9IG1f
Z3JhcGguaWRlbnRpZmllcnMoKS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNoZWRJZC5pbXBsKCkpOwor
ICAgICAgICAgICAgICAgIGlkZW50aWZpZXJOdW1iZXIgPSBtX2dyYXBoLmlkZW50aWZpZXJzKCku
ZW5zdXJlKGJ5VmFsSW5mby0+Y2FjaGVkSWQudWlkKCkpOwogICAgICAgICAgICAgICAgIFVuaXF1
ZWRTdHJpbmdJbXBsKiB1aWQgPSBtX2dyYXBoLmlkZW50aWZpZXJzKClbaWRlbnRpZmllck51bWJl
cl07CiAKLSAgICAgICAgICAgICAgICBpZiAoU3ltYm9sKiBzeW1ib2wgPSBieVZhbEluZm8tPmNh
Y2hlZFN5bWJvbC5nZXQoKSkgewotICAgICAgICAgICAgICAgICAgICBGcm96ZW5WYWx1ZSogZnJv
emVuID0gbV9ncmFwaC5mcmVlemVTdHJvbmcoc3ltYm9sKTsKKyAgICAgICAgICAgICAgICBpZiAo
YnlWYWxJbmZvLT5jYWNoZWRJZC5pc1N5bWJvbENlbGwoKSkgeworICAgICAgICAgICAgICAgICAg
ICBGcm96ZW5WYWx1ZSogZnJvemVuID0gbV9ncmFwaC5mcmVlemVTdHJvbmcoYnlWYWxJbmZvLT5j
YWNoZWRJZC5jZWxsKCkpOwogICAgICAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrQ2Vs
bCwgT3BJbmZvKGZyb3plbiksIHByb3BlcnR5KTsKICAgICAgICAgICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIXVpZC0+aXNTeW1ib2woKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IGNiOTc2YTE5NDVhMzYwNDZhZDE0ZjAxNGU2YTE3Y2Qz
NDI5ZmY2ODcuLjAwN2U4YjU4MGRmMDcxOTUyYmIwYTM1NjFjNWZjYjY0MTUzMGNhNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC04Niw2ICs4Niw3IEBACiAjaW5jbHVkZSA8
d3RmL1BhcmFsbGVsVmVjdG9ySXRlcmF0b3IuaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+
CiAjaW5jbHVkZSA8d3RmL1JBTVNpemUuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNs
dWRlIDx3dGYvU2ltcGxlU3RhdHMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKQEAg
LTE0OTQsMjMgKzE0OTUsMzEgQEAgTkVWRVJfSU5MSU5FIGJvb2wgSGVhcDo6cnVuRW5kUGhhc2Uo
R0NDb25kdWN0b3IgY29ubikKICAgICAgICAgCiAgICAgdXBkYXRlT2JqZWN0Q291bnRzKCk7CiAg
ICAgZW5kTWFya2luZygpOwotICAgICAgICAKKwogICAgIGlmIChVTkxJS0VMWShtX3ZlcmlmaWVy
KSkgewogICAgICAgICBtX3ZlcmlmaWVyLT5nYXRoZXJMaXZlQ2VsbHMoSGVhcFZlcmlmaWVyOjpQ
aGFzZTo6QWZ0ZXJNYXJraW5nKTsKICAgICAgICAgbV92ZXJpZmllci0+dmVyaWZ5KEhlYXBWZXJp
Zmllcjo6UGhhc2U6OkFmdGVyTWFya2luZyk7CiAgICAgfQogICAgICAgICAKLSAgICBpZiAodm0o
KS50eXBlUHJvZmlsZXIoKSkKLSAgICAgICAgdm0oKS50eXBlUHJvZmlsZXIoKS0+aW52YWxpZGF0
ZVR5cGVTZXRDYWNoZSh2bSgpKTsKKyAgICB7CisgICAgICAgIGF1dG8qIHByZXZpb3VzID0gVGhy
ZWFkOjpjdXJyZW50KCkuc2V0Q3VycmVudEF0b21TdHJpbmdUYWJsZShudWxscHRyKTsKKyAgICAg
ICAgYXV0byBzY29wZUV4aXQgPSBtYWtlU2NvcGVFeGl0KFsmXSB7CisgICAgICAgICAgICBUaHJl
YWQ6OmN1cnJlbnQoKS5zZXRDdXJyZW50QXRvbVN0cmluZ1RhYmxlKHByZXZpb3VzKTsKKyAgICAg
ICAgfSk7CiAKLSAgICBtX3N0cnVjdHVyZUlEVGFibGUuZmx1c2hPbGRUYWJsZXMoKTsKKyAgICAg
ICAgaWYgKHZtKCkudHlwZVByb2ZpbGVyKCkpCisgICAgICAgICAgICB2bSgpLnR5cGVQcm9maWxl
cigpLT5pbnZhbGlkYXRlVHlwZVNldENhY2hlKHZtKCkpOworCisgICAgICAgIG1fc3RydWN0dXJl
SURUYWJsZS5mbHVzaE9sZFRhYmxlcygpOworCisgICAgICAgIHJlYXBXZWFrSGFuZGxlcygpOwor
ICAgICAgICBwcnVuZVN0YWxlRW50cmllc0Zyb21XZWFrR0NNYXBzKCk7CisgICAgICAgIHN3ZWVw
QXJyYXlCdWZmZXJzKCk7CisgICAgICAgIHNuYXBzaG90VW5zd2VwdCgpOworICAgICAgICBmaW5h
bGl6ZVVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzKCk7IC8vIFdlIHJlbHkgb24gdGhlc2UgdW5jb25k
aXRpb25hbCBmaW5hbGl6ZXJzIHJ1bm5pbmcgYmVmb3JlIGNsZWFyQ3VycmVudGx5RXhlY3V0aW5n
IHNpbmNlIENvZGVCbG9jaydzIGZpbmFsaXplciByZWxpZXMgb24gcXVlcnlpbmcgY3VycmVudGx5
IGV4ZWN1dGluZy4KKyAgICAgICAgcmVtb3ZlRGVhZENvbXBpbGVyV29ya2xpc3RFbnRyaWVzKCk7
CisgICAgfQogCi0gICAgcmVhcFdlYWtIYW5kbGVzKCk7Ci0gICAgcHJ1bmVTdGFsZUVudHJpZXNG
cm9tV2Vha0dDTWFwcygpOwotICAgIHN3ZWVwQXJyYXlCdWZmZXJzKCk7Ci0gICAgc25hcHNob3RV
bnN3ZXB0KCk7Ci0gICAgZmluYWxpemVVbmNvbmRpdGlvbmFsRmluYWxpemVycygpOyAvLyBXZSBy
ZWx5IG9uIHRoZXNlIHVuY29uZGl0aW9uYWwgZmluYWxpemVycyBydW5uaW5nIGJlZm9yZSBjbGVh
ckN1cnJlbnRseUV4ZWN1dGluZyBzaW5jZSBDb2RlQmxvY2sncyBmaW5hbGl6ZXIgcmVsaWVzIG9u
IHF1ZXJ5aW5nIGN1cnJlbnRseSBleGVjdXRpbmcuCi0gICAgcmVtb3ZlRGVhZENvbXBpbGVyV29y
a2xpc3RFbnRyaWVzKCk7CiAgICAgbm90aWZ5SW5jcmVtZW50YWxTd2VlcGVyKCk7CiAgICAgCiAg
ICAgbV9jb2RlQmxvY2tzLT5pdGVyYXRlQ3VycmVudGx5RXhlY3V0aW5nKApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmgKaW5kZXggNjcxNjY2MWRmNGZhY2VhNWVmZWQ1ZjUxMDgxZjA1OWI2ZDI1M2Q0OS4u
ZGI3MmFhNzRhOTU4Y2ViZDA5NjhlNWY0ZmE1ZDc1MzZlZWI4NzhiZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5oCkBAIC0zNyw2ICszNyw3IEBACiAKICNkZWZpbmUgQVNTRVJUX0pJVF9PRkZTRVQo
YWN0dWFsLCBleHBlY3RlZCkgQVNTRVJUX1dJVEhfTUVTU0FHRShhY3R1YWwgPT0gZXhwZWN0ZWQs
ICJKSVQgT2Zmc2V0IFwiJXNcIiBzaG91bGQgYmUgJWQsIG5vdCAlZC5cbiIsICNleHBlY3RlZCwg
c3RhdGljX2Nhc3Q8aW50PihleHBlY3RlZCksIHN0YXRpY19jYXN0PGludD4oYWN0dWFsKSk7CiAK
KyNpbmNsdWRlICJCeVZhbEluZm8uaCIKICNpbmNsdWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRl
ICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJKSVREaXNhc3NlbWJsZXIuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IDIyYjlhMWQxZTlj
MzJkOWNkOTk2OTFiMTk3MzIwOTVjZTkyMzQ2NWIuLjQxZTgzYzYxOGVhYTU2MTBjZTdlMDU2NTNi
MzIwMTc4NTZhZTU3OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRp
b25zLmNwcApAQCAtNjc4LDExICs2NzgsNiBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
UHV0QnlJZERpcmVjdE5vblN0cmljdE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYQogICAg
ICAgICByZXBhdGNoUHV0QnlJRChnbG9iYWxPYmplY3QsIGNvZGVCbG9jaywgYmFzZU9iamVjdCwg
c3RydWN0dXJlLCBpZGVudCwgc2xvdCwgKnN0dWJJbmZvLCBEaXJlY3QpOwogfQogCi1BTFdBWVNf
SU5MSU5FIHN0YXRpYyBib29sIGlzU3RyaW5nT3JTeW1ib2woSlNWYWx1ZSB2YWx1ZSkKLXsKLSAg
ICByZXR1cm4gdmFsdWUuaXNTdHJpbmcoKSB8fCB2YWx1ZS5pc1N5bWJvbCgpOwotfQotCiBzdGF0
aWMgdm9pZCBwdXRCeVZhbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sq
IGNvZGVCbG9jaywgSlNWYWx1ZSBiYXNlVmFsdWUsIEpTVmFsdWUgc3Vic2NyaXB0LCBKU1ZhbHVl
IHZhbHVlLCBCeVZhbEluZm8qIGJ5VmFsSW5mbykKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CkBAIC03MTYsNyArNzExLDcgQEAgc3RhdGljIHZvaWQgcHV0QnlWYWwoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpTVmFsdWUKICAg
ICAvLyBEb24ndCBwdXQgdG8gYW4gb2JqZWN0IGlmIHRvU3RyaW5nIHRocmV3IGFuIGV4Y2VwdGlv
bi4KICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0gICAgaWYgKGJ5
VmFsSW5mby0+c3R1YkluZm8gJiYgKCFpc1N0cmluZ09yU3ltYm9sKHN1YnNjcmlwdCkgfHwgYnlW
YWxJbmZvLT5jYWNoZWRJZCAhPSBwcm9wZXJ0eSkpCisgICAgaWYgKGJ5VmFsSW5mby0+c3R1Yklu
Zm8gJiYgKCFDYWNoZWFibGVJZGVudGlmaWVyOjppc0NhY2hlYWJsZUlkZW50aWZpZXJDZWxsKHN1
YnNjcmlwdCkgfHwgYnlWYWxJbmZvLT5jYWNoZWRJZC51aWQoKSAhPSBwcm9wZXJ0eSkpCiAgICAg
ICAgIGJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKIAogICAgIHNjb3BlLnJlbGVhc2Uo
KTsKQEAgLTc3Niw3ICs3NzEsNyBAQCBzdGF0aWMgdm9pZCBkaXJlY3RQdXRCeVZhbChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSgogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgKCFpc1N0cmlu
Z09yU3ltYm9sKHN1YnNjcmlwdCkgfHwgYnlWYWxJbmZvLT5jYWNoZWRJZCAhPSBwcm9wZXJ0eSkp
CisgICAgaWYgKGJ5VmFsSW5mby0+c3R1YkluZm8gJiYgKCFDYWNoZWFibGVJZGVudGlmaWVyOjpp
c0NhY2hlYWJsZUlkZW50aWZpZXJDZWxsKHN1YnNjcmlwdCkgfHwgYnlWYWxJbmZvLT5jYWNoZWRJ
ZC51aWQoKSAhPSBwcm9wZXJ0eSkpCiAgICAgICAgIGJ5VmFsSW5mby0+dG9va1Nsb3dQYXRoID0g
dHJ1ZTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKQEAgLTgyNywxNCArODIyLDE0IEBAIHN0YXRp
YyBPcHRpbWl6YXRpb25SZXN1bHQgdHJ5UHV0QnlWYWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRp
bWl6YXRpb25SZXN1bHQ6OkdpdmVVcDsKICAgICB9CiAKLSAgICBpZiAoYmFzZVZhbHVlLmlzT2Jq
ZWN0KCkgJiYgaXNTdHJpbmdPclN5bWJvbChzdWJzY3JpcHQpKSB7CisgICAgaWYgKGJhc2VWYWx1
ZS5pc09iamVjdCgpICYmIENhY2hlYWJsZUlkZW50aWZpZXI6OmlzQ2FjaGVhYmxlSWRlbnRpZmll
ckNlbGwoc3Vic2NyaXB0KSkgewogICAgICAgICBjb25zdCBJZGVudGlmaWVyIHByb3BlcnR5TmFt
ZSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIE9wdGltaXphdGlvblJlc3VsdDo6R2l2ZVVwKTsKICAgICAg
ICAgaWYgKHN1YnNjcmlwdC5pc1N5bWJvbCgpIHx8ICFwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkp
IHsKICAgICAgICAgICAgIEFTU0VSVChjYWxsRnJhbWUtPmJ5dGVjb2RlSW5kZXgoKSAhPSBCeXRl
Y29kZUluZGV4KDApKTsKICAgICAgICAgICAgIEFTU0VSVCghYnlWYWxJbmZvLT5zdHViUm91dGlu
ZSk7CiAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvLT5zZWVuKSB7Ci0gICAgICAgICAgICAgICAg
aWYgKGJ5VmFsSW5mby0+Y2FjaGVkSWQgPT0gcHJvcGVydHlOYW1lKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGJ5VmFsSW5mby0+Y2FjaGVkSWQudWlkKCkgPT0gcHJvcGVydHlOYW1lKSB7CiAgICAg
ICAgICAgICAgICAgICAgIEpJVDo6Y29tcGlsZVB1dEJ5VmFsV2l0aENhY2hlZElkPE9wUHV0QnlW
YWw+KHZtLCBjb2RlQmxvY2ssIGJ5VmFsSW5mbywgcmV0dXJuQWRkcmVzcywgTm90RGlyZWN0LCBw
cm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBP
cHRpbWl6YXRpb25SZXN1bHQ6Ok9wdGltaXplZDsKICAgICAgICAgICAgICAgICB9IGVsc2UgewpA
QCAtODQyLDEyICs4MzcsMTMgQEAgc3RhdGljIE9wdGltaXphdGlvblJlc3VsdCB0cnlQdXRCeVZh
bE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICAgICAgICAg
ICAgICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0OjpHaXZlVXA7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAg
ICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKLSAgICAgICAg
ICAgICAgICBieVZhbEluZm8tPnNlZW4gPSB0cnVlOwotICAgICAgICAgICAgICAgIGJ5VmFsSW5m
by0+Y2FjaGVkSWQgPSBwcm9wZXJ0eU5hbWU7Ci0gICAgICAgICAgICAgICAgaWYgKHN1YnNjcmlw
dC5pc1N5bWJvbCgpKQotICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPmNhY2hlZFN5bWJv
bC5zZXQodm0sIGNvZGVCbG9jaywgYXNTeW1ib2woc3Vic2NyaXB0KSk7Ci0gICAgICAgICAgICAg
ICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0OjpTZWVuT25jZTsKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKU0xvY2tlciBs
b2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8t
PnNlZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBieVZhbEluZm8tPmNhY2hlZElkID0g
Q2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUNlbGwoc3Vic2NyaXB0LmFzQ2VsbCgpKTsK
KyAgICAgICAgICAgICAgICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVz
dWx0OjpTZWVuT25jZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdm0uaGVh
cC53cml0ZUJhcnJpZXIoY29kZUJsb2NrLCBzdWJzY3JpcHQuYXNDZWxsKCkpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtOTE2LDE0ICs5MTIsMTQgQEAgc3RhdGljIE9wdGlt
aXphdGlvblJlc3VsdCB0cnlEaXJlY3RQdXRCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QKICAgICAgICAgLy8gSWYgd2UgZmFpbGVkIHRvIHBhdGNoIGFuZCB3ZSBoYXZl
IHNvbWUgb2JqZWN0IHRoYXQgaW50ZXJjZXB0cyBpbmRleGVkIGdldCwgdGhlbiBkb24ndCBldmVu
IHdhaXQgdW50aWwgMTAgdGltZXMuCiAgICAgICAgIGlmIChvcHRpbWl6YXRpb25SZXN1bHQgIT0g
T3B0aW1pemF0aW9uUmVzdWx0OjpPcHRpbWl6ZWQgJiYgb2JqZWN0LT5zdHJ1Y3R1cmUodm0pLT50
eXBlSW5mbygpLmludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5n
dGhJc05vdFplcm8oKSkKICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXph
dGlvblJlc3VsdDo6R2l2ZVVwOwotICAgIH0gZWxzZSBpZiAoaXNTdHJpbmdPclN5bWJvbChzdWJz
Y3JpcHQpKSB7CisgICAgfSBlbHNlIGlmIChDYWNoZWFibGVJZGVudGlmaWVyOjppc0NhY2hlYWJs
ZUlkZW50aWZpZXJDZWxsKHN1YnNjcmlwdCkpIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciBw
cm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwogICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBPcHRpbWl6YXRpb25SZXN1bHQ6OkdpdmVV
cCk7CiAgICAgICAgIGlmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCAhcGFyc2VJbmRleChwcm9w
ZXJ0eU5hbWUpKSB7CiAgICAgICAgICAgICBBU1NFUlQoY2FsbEZyYW1lLT5ieXRlY29kZUluZGV4
KCkgIT0gQnl0ZWNvZGVJbmRleCgwKSk7CiAgICAgICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+
c3R1YlJvdXRpbmUpOwogICAgICAgICAgICAgaWYgKGJ5VmFsSW5mby0+c2VlbikgewotICAgICAg
ICAgICAgICAgIGlmIChieVZhbEluZm8tPmNhY2hlZElkID09IHByb3BlcnR5TmFtZSkgeworICAg
ICAgICAgICAgICAgIGlmIChieVZhbEluZm8tPmNhY2hlZElkLnVpZCgpID09IHByb3BlcnR5TmFt
ZSkgewogICAgICAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbFdpdGhDYWNoZWRJ
ZDxPcFB1dEJ5VmFsRGlyZWN0Pih2bSwgY29kZUJsb2NrLCBieVZhbEluZm8sIHJldHVybkFkZHJl
c3MsIERpcmVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemF0
aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0OjpPcHRpbWl6ZWQ7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKQEAgLTkzMSwxMiArOTI3LDEzIEBAIHN0YXRpYyBPcHRpbWl6YXRpb25SZXN1
bHQgdHJ5RGlyZWN0UHV0QnlWYWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
CiAgICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJl
c3VsdDo6R2l2ZVVwOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9j
ayk7Ci0gICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5zZWVuID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICBieVZhbEluZm8tPmNhY2hlZElkID0gcHJvcGVydHlOYW1lOwotICAgICAgICAgICAgICAg
IGlmIChzdWJzY3JpcHQuaXNTeW1ib2woKSkKLSAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZv
LT5jYWNoZWRTeW1ib2wuc2V0KHZtLCBjb2RlQmxvY2ssIGFzU3ltYm9sKHN1YnNjcmlwdCkpOwot
ICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJlc3VsdDo6
U2Vlbk9uY2U7CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBDb25jdXJy
ZW50SlNMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnlWYWxJbmZvLT5zZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZv
LT5jYWNoZWRJZCA9IENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21DZWxsKHN1YnNjcmlw
dC5hc0NlbGwoKSk7CisgICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9w
dGltaXphdGlvblJlc3VsdDo6U2Vlbk9uY2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNvZGVCbG9jaywgc3Vic2NyaXB0LmFzQ2VsbCgp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggMmJhMGZhNjg0OGJjZTgyOWFj
ZDY0MTkwNWYwNWY0YmQ1NGRjYmUzNS4uYjUzYTQ5MGY1ZGZiMDlmZjcyYjNlN2FlMDc0N2M0MTI5
NTVlNWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHAKQEAgLTEyODUsMTQgKzEyODUsMTQgQEAgdm9pZCBKSVQ6OmVtaXRXcml0ZUJhcnJp
ZXIoSlNDZWxsKiBvd25lcikKICAgICBvd25lcklzUmVtZW1iZXJlZE9ySW5FZGVuLmxpbmsodGhp
cyk7CiB9CiAKLXZvaWQgSklUOjplbWl0QnlWYWxJZGVudGlmaWVyQ2hlY2soQnlWYWxJbmZvKiBi
eVZhbEluZm8sIFJlZ2lzdGVySUQgY2VsbCwgUmVnaXN0ZXJJRCBzY3JhdGNoLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEp1bXBMaXN0JiBzbG93Q2FzZXMpCit2b2lkIEpJVDo6ZW1p
dEJ5VmFsSWRlbnRpZmllckNoZWNrKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZWdpc3RlcklEIGNl
bGwsIFJlZ2lzdGVySUQgc2NyYXRjaCwgY29uc3QgSWRlbnRpZmllciYsIEp1bXBMaXN0JiBzbG93
Q2FzZXMpCiB7Ci0gICAgaWYgKHByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKQotICAgICAgICBzbG93
Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgY2VsbCwgVHJ1c3RlZEltbVB0cihieVZh
bEluZm8tPmNhY2hlZFN5bWJvbC5nZXQoKSkpKTsKKyAgICBpZiAoYnlWYWxJbmZvLT5jYWNoZWRJ
ZC5pc1N5bWJvbENlbGwoKSkKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90
RXF1YWwsIGNlbGwsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvLT5jYWNoZWRJZC5jZWxsKCkpKSk7
CiAgICAgZWxzZSB7CiAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoSWZOb3RTdHJpbmco
Y2VsbCkpOwogICAgICAgICBsb2FkUHRyKEFkZHJlc3MoY2VsbCwgSlNTdHJpbmc6Om9mZnNldE9m
VmFsdWUoKSksIHNjcmF0Y2gpOwotICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihO
b3RFcXVhbCwgc2NyYXRjaCwgVHJ1c3RlZEltbVB0cihwcm9wZXJ0eU5hbWUuaW1wbCgpKSkpOwor
ICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihOb3RFcXVhbCwgc2NyYXRjaCwgVHJ1
c3RlZEltbVB0cihieVZhbEluZm8tPmNhY2hlZElkLnVpZCgpKSkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmll
ci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmllci5o
CmluZGV4IGI0N2I4NmViM2NhZGE0ZTFjYzMyMWMxNDFkMzUxOTExNmE0NTI4NmMuLjc4MzFjMTk2
YWI1N2I3ODc3YjdhNzYyNjIwODE4MmZlMGUyMGNhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWFibGVJZGVudGlmaWVyLmgKQEAgLTk2LDcgKzk2LDcg
QEAgY2xhc3MgQ2FjaGVhYmxlSWRlbnRpZmllciB7CiAgICAgLy8gdW5wb2xsdXRlZCwgYW5kIHRo
ZXJlZm9yZSwgaXQgY2FuIGJlIHNjYW5uZWQgYnkgb3VyIGNvbnNlcnZhdGl2ZSBHQyB0byBrZWVw
IHRoZQogICAgIC8vIGNlbGwgYWxpdmUgd2hlbiB0aGUgQ2FjaGVhYmxlSWRlbnRpZmllciBpcyBv
biB0aGUgc3RhY2suCiAgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50cHRyX3Qgc191aWRUYWcgPSAx
OwotICAgIHVpbnRwdHJfdCBtX2JpdHM7CisgICAgdWludHB0cl90IG1fYml0cyB7IDAgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393350</attachid>
            <date>2020-03-12 02:28:46 -0700</date>
            <delta_ts>2020-03-12 03:58:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208978-20200312022845.patch</filename>
            <type>text/plain</type>
            <size>23737</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTIxZjk2N2JjZTdjNWNiNzc5ZjU1ODlmZDY5MzhiNWRlYmJjYTViLi4xM2M4NDM0YjI5MmQ5Y2Vh
ZDNhMjA1ZWUyMmJlNDhjMmMwNzliNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMC0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBDYWNoZWFibGVJZGVudGlmaWVyIGluIEJ5VmFsSW5mbwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4OTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29kZUJsb2Nr
OjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseSBkaXNjYXJkcyBKSVREYXRhLiBBbmQgdGhpcyBpbmNs
dWRlcyBCeVZhbEluZm8sIHdoaWNoIGhvbGRzIElkZW50aWZpZXIuCisgICAgICAgIEhvd2V2ZXIs
IGZpbmFsaXplVW5jb25kaXRpb25hbGx5IGlzIG9ubHkgZ3VhcmFudGVlaW5nIHRoYXQgdGhlIG1h
aW4gdGhyZWFkIGlzIG5vdCB3b3JraW5nLiBJdCBjYW4gYmUgaW52b2tlZAorICAgICAgICBpbiB0
aGUgaGVhcCB0aHJlYWQsIGFuZCBpdCBpcyBub3Qgbm90IHNldHRpbmcgdGhlIEF0b21TdHJpbmdU
YWJsZSBmb3IgdGhpcyBoZWFwIHRocmVhZC4gSWYgSWRlbnRpZmllciBkZXN0cm95cworICAgICAg
ICBBdG9tU3RyaW5nSW1wbCwgd2hpY2ggZmFpbHMgdG8gdW5yZWdpc3RlciBpdHNlbGYgZnJvbSB0
aGUgdGFibGUuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwKKworICAgICAgICAgICAgMS4gV2Ug
ZXhwbGljaXRseSBzZXQgbnVsbHB0ciBmb3IgdGhlIGN1cnJlbnQgQXRvbVN0cmluZ1RhYmxlIHRv
IGNhdGNoIHRoZSBidWcgYXMgc29vbiBhcyBwb3NzaWJsZSBpbiBHQyBlbmQgcGhhc2UuCisgICAg
ICAgICAgICAyLiBXZSB1c2UgQ2FjaGVhYmxlSWRlbnRpZmllciBpbiBCeVZhbEluZm8gdG8gYXZv
aWQgZGVzdHJveWluZyBJZGVudGlmaWVyIGluIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlv
bmFsbHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIGJ5dGVjb2RlL0J5VmFsSW5mby5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpC
eVZhbEluZm86OnZpc2l0QWdncmVnYXRlKToKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2Rl
QmxvY2s6OnN0cm9uZ2x5VmlzaXRTdHJvbmdSZWZlcmVuY2VzKToKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVQdXRCeVZhbCk6CisgICAgICAg
ICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6cnVuRW5kUGhhc2UpOgorICAg
ICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
QnlWYWxJZGVudGlmaWVyQ2hlY2spOgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVhYmxlSWRlbnRp
Zmllci5oOgorCiAyMDIwLTAzLTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFRlc3QyNjItcnVubmVyIHNob3VsZCBhbHdheXMgY29uc2lkZXIgY3Jh
c2hlcyBhcyBuZXcgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBmN2M2NjYyZjdmZTU2NzA5ZjQ1MDk0YzA3M2Y1NWM1MDgxY2E4ODdlLi4zZmYyMjVlMDcxZDll
YjRjYzQ0ZWRlOGVhNmU4NWY0MWI1YmUyN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC00ODgsNyArNDg4LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKIAogICAgIGJ5dGVjb2RlL0FycmF5QWxsb2NhdGlvblByb2ZpbGUuaAog
ICAgIGJ5dGVjb2RlL0FycmF5UHJvZmlsZS5oCi0gICAgYnl0ZWNvZGUvQnlWYWxJbmZvLmgKICAg
ICBieXRlY29kZS9CeXRlY29kZUNvbnZlbnRpb25zLmgKICAgICBieXRlY29kZS9CeXRlY29kZUlu
ZGV4LmgKICAgICBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmI3NDU2NTE3ZjhmNzRjNjlmMWM5ZDViZGMyMDJjNGY2
ZTQ0MTg1ZC4uNGFmY2UwMTVmOTBiYjI1MTA0YzhiNjFlMWI3Mjk1YzY3Y2MwMWNiMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ1Niw3ICs0NTYsNyBAQAogCQkwRjdERjEzQzFF
Mjk3MTEzMDA5NTk1MUIgLyogSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0RGMTNBMUUyOTcx
MEUwMDk1OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGN0RGMTQ2MUUyQkVG
NkEwMDk1OTUxQiAvKiBCbG9ja0RpcmVjdG9yeUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0RGMTQ1MUUyQkVGNjgwMDk1OTUxQiAvKiBC
bG9ja0RpcmVjdG9yeUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjdGOTg4QzFEOTU5NkM4MDBGNEYxMkUgLyogREZHU3RvcmVCYXJy
aWVyQ2x1c3RlcmluZ1BoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjdGOTg4QTFEOTU5NkMzMDBGNEYxMkUgLyogREZHU3RvcmVCYXJyaWVyQ2x1
c3RlcmluZ1BoYXNlLmggKi87IH07Ci0JCTBGODAyM0VBMTYxMzgzMkIwMEEwQkE0NSAvKiBCeVZh
bEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
ODAyM0U5MTYxMzgzMjMwMEEwQkE0NSAvKiBCeVZhbEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjgwMjNFQTE2MTM4MzJCMDBBMEJBNDUg
LyogQnlWYWxJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjgwMjNFOTE2MTM4MzIzMDBBMEJBNDUgLyogQnlWYWxJbmZvLmggKi87IH07CiAJCTBG
ODMzNUI4MTYzOUMxRUEwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjgzMzVCNTE2MzlDMUUz
MDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODM2NEI3MTY0QjBDMTEwMDUzMzI5QSAv
KiBERkdCcmFuY2hEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGODM2NEI1MTY0QjBDMEUwMDUzMzI5QSAvKiBERkdCcmFuY2hEaXJlY3Rp
b24uaCAqLzsgfTsKIAkJMEY4NkEyNkYxRDZGN0IzMzAwQ0IwQzkyIC8qIEdDVHlwZU1hcC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NkEyNkUxRDZG
N0IzMTAwQ0IwQzkyIC8qIEdDVHlwZU1hcC5oICovOyB9OwpAQCAtNDk1MSw2ICs0OTUxLDcgQEAK
IAkJRTM1NUQzOEUyMjQ0Njg2QzAwOEYxQUQ2IC8qIEdsb2JhbEV4ZWN1dGFibGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR2xvYmFsRXhlY3V0YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzNTY5ODcxMjI4NDExODMwMDhDRENDQiAvKiBQYWNrZWRDZWxsUHRyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhY2tlZENlbGxQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTM1QTBCOUMyMjBBRDg3QTAwQUM0NDc0IC8qIEV4ZWN1dGFibGVCYXNlSW5saW5lcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGVjdXRhYmxlQmFzZUlubGluZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1QkEyQzAyNDFBMEU4QzAwQjY3MDg2IC8q
IEJ5VmFsSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCeVZhbEluZm8uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVDQTE0RjFEQkMzQTU2MDBGODM1MTYgLyogRE9NSklU
QWJzdHJhY3RIZWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERP
TUpJVEFic3RyYWN0SGVhcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUNB
MTUwMURCQzNBNTYwMEY4MzUxNiAvKiBET01KSVRBYnN0cmFjdEhlYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUQWJzdHJhY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzNUNBMTUxMURCQzNBNTYwMEY4MzUxNiAvKiBET01KSVRIZWFwUmFu
Z2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NSklUSGVhcFJh
bmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyMDgsNiArODIwOSw3IEBA
CiAJCQkJRTNEMjY0MjkxRDM4QzA0MjAwMEJFMTc0IC8qIEJ5dGVjb2RlUmV3cml0ZXIuY3BwICov
LAogCQkJCUUzRDI2NDJBMUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZVJld3JpdGVyLmggKi8s
CiAJCQkJMEY4ODVFMTAxODQ5QTNCRTAwRjFFM0ZBIC8qIEJ5dGVjb2RlVXNlRGVmLmggKi8sCisJ
CQkJRTM1QkEyQzAyNDFBMEU4QzAwQjY3MDg2IC8qIEJ5VmFsSW5mby5jcHAgKi8sCiAJCQkJMEY4
MDIzRTkxNjEzODMyMzAwQTBCQTQ1IC8qIEJ5VmFsSW5mby5oICovLAogCQkJCTBGNjRCMjc3MUE3
OTU3QjIwMDZFNEU2NiAvKiBDYWxsRWRnZS5jcHAgKi8sCiAJCQkJMEY2NEIyNzgxQTc5NTdCMjAw
NkU0RTY2IC8qIENhbGxFZGdlLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXgg
NzZmMWM2OTQ4NWM2ZmNiZWU0ODdlNWFjOTg2Y2E0NjM2MzUzYWViZS4uZTAwOTY2NjgyYjUyMjE0
NGJjNDg5MTA1OWYzOWUxYmMyODY2Y2Y5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApA
QCAtMTk1LDYgKzE5NSw3IEBAIGJ5dGVjb2RlL0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVl
V2F0Y2hwb2ludEJhc2UuY3BwCiBieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCiBieXRlY29kZS9B
cnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAogYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAorYnl0
ZWNvZGUvQnlWYWxJbmZvLmNwcAogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAogYnl0
ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCiBieXRlY29kZS9CeXRlY29kZUdlbmVyYXRvcmlmaWNh
dGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZh
bEluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzYyYmUwYjI4MjdhZGJlYzBiM2JlYThjNWM0ZWZhMmFjMjFjMWFjOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8u
Y3BwCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQnlWYWxJbmZvLmgiCisK
KyNpbmNsdWRlICJDYWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ0lu
bGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK3ZvaWQgQnlWYWxJbmZvOjp2aXNpdEFnZ3Jl
Z2F0ZShTbG90VmlzaXRvciYgdmlzaXRvcikKK3sKKyAgICBjYWNoZWRJZC52aXNpdEFnZ3JlZ2F0
ZSh2aXNpdG9yKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKaW5kZXggYjdlOTM3OTQ1YTkwOTQ2ZTJjMDU1MjI3NmNi
MTMwNTMwZjQzODlhZi4uOWNjNTYwNGU5Zjg0MmU0NTEzMjg5NzcyNTU4YzAyNzBkYTc0NjBkOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8uaApAQCAtMjUsNiAr
MjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkNhY2hlYWJsZUlkZW50aWZpZXIu
aCIKICNpbmNsdWRlICJDbGFzc0luZm8uaCIKICNpbmNsdWRlICJDb2RlTG9jYXRpb24uaCIKICNp
bmNsdWRlICJJbmRleGluZ1R5cGUuaCIKQEAgLTM3LDYgKzM4LDcgQEAgY2xhc3MgU3ltYm9sOwog
CiAjaWYgRU5BQkxFKEpJVCkKIAorY2xhc3MgQXJyYXlQcm9maWxlOwogY2xhc3MgU3RydWN0dXJl
U3R1YkluZm87CiAKIGVudW0gSklUQXJyYXlNb2RlIDogdWludDhfdCB7CkBAIC0yNDIsNiArMjQ0
LDggQEAgc3RydWN0IEJ5VmFsSW5mbyB7CiAgICAgewogICAgIH0KIAorICAgIHZvaWQgdmlzaXRB
Z2dyZWdhdGUoU2xvdFZpc2l0b3ImKTsKKwogICAgIENvZGVMb2NhdGlvbkp1bXA8SlNJbnRlcm5h
bFB0clRhZz4gbm90SW5kZXhKdW1wOwogICAgIENvZGVMb2NhdGlvbkp1bXA8SlNJbnRlcm5hbFB0
clRhZz4gYmFkVHlwZUp1bXA7CiAgICAgQ29kZUxvY2F0aW9uTGFiZWw8RXhjZXB0aW9uSGFuZGxl
clB0clRhZz4gZXhjZXB0aW9uSGFuZGxlcjsKQEAgLTI1Miw4ICsyNTYsNyBAQCBzdHJ1Y3QgQnlW
YWxJbmZvIHsKICAgICBCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXg7CiAgICAgdW5zaWduZWQg
c2xvd1BhdGhDb3VudDsKICAgICBSZWZQdHI8SklUU3R1YlJvdXRpbmU+IHN0dWJSb3V0aW5lOwot
ICAgIElkZW50aWZpZXIgY2FjaGVkSWQ7Ci0gICAgV3JpdGVCYXJyaWVyPFN5bWJvbD4gY2FjaGVk
U3ltYm9sOworICAgIENhY2hlYWJsZUlkZW50aWZpZXIgY2FjaGVkSWQ7CiAgICAgU3RydWN0dXJl
U3R1YkluZm8qIHN0dWJJbmZvOwogICAgIEpJVEFycmF5TW9kZSBhcnJheU1vZGU7IC8vIFRoZSBh
cnJheSBtb2RlIHRoYXQgd2FzIGJha2VkIGludG8gdGhlIGlubGluZSBKSVQgY29kZS4KICAgICBi
b29sIHRvb2tTbG93UGF0aCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCmluZGV4IDkxZWVmYTAwOThlNjM1YTcxZTZiNzIxZmJlOGMwYTFmMjllMTll
OTYuLjc0MzY5NTM0ZTkwZWM3N2EzMTVkNWU5YzIwMDhmMmZjOWVjMTI0ZmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAKICNpbmNsdWRlICJBcml0aFByb2ZpbGUuaCIKICNpbmNsdWRlICJCYXNpY0Jsb2NrTG9jYXRp
b24uaCIKKyNpbmNsdWRlICJCeVZhbEluZm8uaCIKICNpbmNsdWRlICJCeXRlY29kZUR1bXBlci5o
IgogI2luY2x1ZGUgIkJ5dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVMaXZl
bmVzc0FuYWx5c2lzLmgiCkBAIC0xNjg4LDcgKzE2ODksNyBAQCB2b2lkIENvZGVCbG9jazo6c3Ry
b25nbHlWaXNpdFN0cm9uZ1JlZmVyZW5jZXMoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiBsb2Nr
ZXIsCiAjaWYgRU5BQkxFKEpJVCkKICAgICBpZiAoYXV0byogaml0RGF0YSA9IG1faml0RGF0YS5n
ZXQoKSkgewogICAgICAgICBmb3IgKEJ5VmFsSW5mbyogYnlWYWxJbmZvIDogaml0RGF0YS0+bV9i
eVZhbEluZm9zKQotICAgICAgICAgICAgdmlzaXRvci5hcHBlbmQoYnlWYWxJbmZvLT5jYWNoZWRT
eW1ib2wpOworICAgICAgICAgICAgYnlWYWxJbmZvLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsK
ICAgICAgICAgZm9yIChTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gOiBqaXREYXRhLT5tX3N0
dWJJbmZvcykKICAgICAgICAgICAgIHN0dWJJbmZvLT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKaW5kZXgg
NDY4YWE3Mjc5ZjdiODY2YTFmYTQxM2MyN2VlZGY0ZDYyY2JmOTVlMS4uZjAyMGJlNDg2YjBmYzQ5
NmI4MzI4N2I0NzA4YjExZGQ0ZjhlYWFjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlQmxvY2suaApAQCAtMzAsNyArMzAsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJBcnJheVByb2ZpbGUuaCIKLSNpbmNsdWRlICJCeVZhbEluZm8uaCIKICNpbmNsdWRlICJC
eXRlY29kZUNvbnZlbnRpb25zLmgiCiAjaW5jbHVkZSAiQ2FsbExpbmtJbmZvLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrSGFzaC5oIgpAQCAtOTUsNiArOTQsNyBAQCBjbGFzcyBNZXRhZGF0YVRhYmxl
OwogY2xhc3MgUENUb0NvZGVPcmlnaW5NYXA7CiBjbGFzcyBSZWdpc3RlckF0T2Zmc2V0TGlzdDsK
IGNsYXNzIFN0cnVjdHVyZVN0dWJJbmZvOworc3RydWN0IEJ5VmFsSW5mbzsKIAogREVDTEFSRV9B
TExPQ0FUT1JfV0lUSF9IRUFQX0lERU5USUZJRVIoQ29kZUJsb2NrUmFyZURhdGEpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IGQx
ZmEwYjMxNzg3NzJlZmY5ZGY0NGJjNThkZWY4MWJjOWQyZjFiMWQuLmJkMzg2MzAyODg0YjE3NGUw
ZWQ0YzI0NmQ1MDFmOWNhZDJjZDNmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQXJy
YXlDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5oIgogI2luY2x1
ZGUgIkJ1aWx0aW5OYW1lcy5oIgorI2luY2x1ZGUgIkJ5VmFsSW5mby5oIgogI2luY2x1ZGUgIkJ5
dGVjb2RlR2VuZXJhdG9yLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVVc2VEZWYuaCIKICNpbmNsdWRl
ICJDYWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oIgpAQCAtNzU3NiwxMSArNzU3NywxMSBAQCB2
b2lkIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVQdXRCeVZhbChCeXRlY29kZSBieXRlY29kZSwgdW5z
aWduZWQgaW5zdHJ1Y3Rpb25TaXplKQogICAgICAgICAgICAgICAgICYmICFtX2lubGluZVN0YWNr
VG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRUeXBlKQog
ICAgICAgICAgICAgICAgICYmICFtX2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4
aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRDZWxsKSkgewogICAgICAgICAgICAgICAgIGNvbXBp
bGVkQXNQdXRCeUlkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBpZGVudGlmaWVyTnVtYmVyID0g
bV9ncmFwaC5pZGVudGlmaWVycygpLmVuc3VyZShieVZhbEluZm8tPmNhY2hlZElkLmltcGwoKSk7
CisgICAgICAgICAgICAgICAgaWRlbnRpZmllck51bWJlciA9IG1fZ3JhcGguaWRlbnRpZmllcnMo
KS5lbnN1cmUoYnlWYWxJbmZvLT5jYWNoZWRJZC51aWQoKSk7CiAgICAgICAgICAgICAgICAgVW5p
cXVlZFN0cmluZ0ltcGwqIHVpZCA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKVtpZGVudGlmaWVyTnVt
YmVyXTsKIAotICAgICAgICAgICAgICAgIGlmIChTeW1ib2wqIHN5bWJvbCA9IGJ5VmFsSW5mby0+
Y2FjaGVkU3ltYm9sLmdldCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIEZyb3plblZhbHVlKiBm
cm96ZW4gPSBtX2dyYXBoLmZyZWV6ZVN0cm9uZyhzeW1ib2wpOworICAgICAgICAgICAgICAgIGlm
IChieVZhbEluZm8tPmNhY2hlZElkLmlzU3ltYm9sQ2VsbCgpKSB7CisgICAgICAgICAgICAgICAg
ICAgIEZyb3plblZhbHVlKiBmcm96ZW4gPSBtX2dyYXBoLmZyZWV6ZVN0cm9uZyhieVZhbEluZm8t
PmNhY2hlZElkLmNlbGwoKSk7CiAgICAgICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tD
ZWxsLCBPcEluZm8oZnJvemVuKSwgcHJvcGVydHkpOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghdWlkLT5pc1N5bWJvbCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvSGVhcC5jcHAKaW5kZXggY2I5NzZhMTk0NWEzNjA0NmFkMTRmMDE0ZTZhMTdj
ZDM0MjlmZjY4Ny4uMDA3ZThiNTgwZGYwNzE5NTJiYjBhMzU2MWM1ZmNiNjQxNTMwY2E1YSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKQEAgLTg2LDYgKzg2LDcgQEAKICNpbmNsdWRl
IDx3dGYvUGFyYWxsZWxWZWN0b3JJdGVyYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQu
aD4KICNpbmNsdWRlIDx3dGYvUkFNU2l6ZS5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9TaW1wbGVTdGF0cy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIApA
QCAtMTQ5NCwyMyArMTQ5NSwzMSBAQCBORVZFUl9JTkxJTkUgYm9vbCBIZWFwOjpydW5FbmRQaGFz
ZShHQ0NvbmR1Y3RvciBjb25uKQogICAgICAgICAKICAgICB1cGRhdGVPYmplY3RDb3VudHMoKTsK
ICAgICBlbmRNYXJraW5nKCk7Ci0gICAgICAgIAorCiAgICAgaWYgKFVOTElLRUxZKG1fdmVyaWZp
ZXIpKSB7CiAgICAgICAgIG1fdmVyaWZpZXItPmdhdGhlckxpdmVDZWxscyhIZWFwVmVyaWZpZXI6
OlBoYXNlOjpBZnRlck1hcmtpbmcpOwogICAgICAgICBtX3ZlcmlmaWVyLT52ZXJpZnkoSGVhcFZl
cmlmaWVyOjpQaGFzZTo6QWZ0ZXJNYXJraW5nKTsKICAgICB9CiAgICAgICAgIAotICAgIGlmICh2
bSgpLnR5cGVQcm9maWxlcigpKQotICAgICAgICB2bSgpLnR5cGVQcm9maWxlcigpLT5pbnZhbGlk
YXRlVHlwZVNldENhY2hlKHZtKCkpOworICAgIHsKKyAgICAgICAgYXV0byogcHJldmlvdXMgPSBU
aHJlYWQ6OmN1cnJlbnQoKS5zZXRDdXJyZW50QXRvbVN0cmluZ1RhYmxlKG51bGxwdHIpOworICAg
ICAgICBhdXRvIHNjb3BlRXhpdCA9IG1ha2VTY29wZUV4aXQoWyZdIHsKKyAgICAgICAgICAgIFRo
cmVhZDo6Y3VycmVudCgpLnNldEN1cnJlbnRBdG9tU3RyaW5nVGFibGUocHJldmlvdXMpOworICAg
ICAgICB9KTsKIAotICAgIG1fc3RydWN0dXJlSURUYWJsZS5mbHVzaE9sZFRhYmxlcygpOworICAg
ICAgICBpZiAodm0oKS50eXBlUHJvZmlsZXIoKSkKKyAgICAgICAgICAgIHZtKCkudHlwZVByb2Zp
bGVyKCktPmludmFsaWRhdGVUeXBlU2V0Q2FjaGUodm0oKSk7CisKKyAgICAgICAgbV9zdHJ1Y3R1
cmVJRFRhYmxlLmZsdXNoT2xkVGFibGVzKCk7CisKKyAgICAgICAgcmVhcFdlYWtIYW5kbGVzKCk7
CisgICAgICAgIHBydW5lU3RhbGVFbnRyaWVzRnJvbVdlYWtHQ01hcHMoKTsKKyAgICAgICAgc3dl
ZXBBcnJheUJ1ZmZlcnMoKTsKKyAgICAgICAgc25hcHNob3RVbnN3ZXB0KCk7CisgICAgICAgIGZp
bmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMoKTsgLy8gV2UgcmVseSBvbiB0aGVzZSB1bmNv
bmRpdGlvbmFsIGZpbmFsaXplcnMgcnVubmluZyBiZWZvcmUgY2xlYXJDdXJyZW50bHlFeGVjdXRp
bmcgc2luY2UgQ29kZUJsb2NrJ3MgZmluYWxpemVyIHJlbGllcyBvbiBxdWVyeWluZyBjdXJyZW50
bHkgZXhlY3V0aW5nLgorICAgICAgICByZW1vdmVEZWFkQ29tcGlsZXJXb3JrbGlzdEVudHJpZXMo
KTsKKyAgICB9CiAKLSAgICByZWFwV2Vha0hhbmRsZXMoKTsKLSAgICBwcnVuZVN0YWxlRW50cmll
c0Zyb21XZWFrR0NNYXBzKCk7Ci0gICAgc3dlZXBBcnJheUJ1ZmZlcnMoKTsKLSAgICBzbmFwc2hv
dFVuc3dlcHQoKTsKLSAgICBmaW5hbGl6ZVVuY29uZGl0aW9uYWxGaW5hbGl6ZXJzKCk7IC8vIFdl
IHJlbHkgb24gdGhlc2UgdW5jb25kaXRpb25hbCBmaW5hbGl6ZXJzIHJ1bm5pbmcgYmVmb3JlIGNs
ZWFyQ3VycmVudGx5RXhlY3V0aW5nIHNpbmNlIENvZGVCbG9jaydzIGZpbmFsaXplciByZWxpZXMg
b24gcXVlcnlpbmcgY3VycmVudGx5IGV4ZWN1dGluZy4KLSAgICByZW1vdmVEZWFkQ29tcGlsZXJX
b3JrbGlzdEVudHJpZXMoKTsKICAgICBub3RpZnlJbmNyZW1lbnRhbFN3ZWVwZXIoKTsKICAgICAK
ICAgICBtX2NvZGVCbG9ja3MtPml0ZXJhdGVDdXJyZW50bHlFeGVjdXRpbmcoCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVQuaAppbmRleCA2NzE2NjYxZGY0ZmFjZWE1ZWZlZDVmNTEwODFmMDU5YjZkMjUzZDQ5
Li5kYjcyYWE3NGE5NThjZWJkMDk2OGU1ZjRmYTVkNzUzNmVlYjg3OGJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmgKQEAgLTM3LDYgKzM3LDcgQEAKIAogI2RlZmluZSBBU1NFUlRfSklUX09GRlNF
VChhY3R1YWwsIGV4cGVjdGVkKSBBU1NFUlRfV0lUSF9NRVNTQUdFKGFjdHVhbCA9PSBleHBlY3Rl
ZCwgIkpJVCBPZmZzZXQgXCIlc1wiIHNob3VsZCBiZSAlZCwgbm90ICVkLlxuIiwgI2V4cGVjdGVk
LCBzdGF0aWNfY2FzdDxpbnQ+KGV4cGVjdGVkKSwgc3RhdGljX2Nhc3Q8aW50PihhY3R1YWwpKTsK
IAorI2luY2x1ZGUgIkJ5VmFsSW5mby5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1
ZGUgIkNvbW1vblNsb3dQYXRocy5oIgogI2luY2x1ZGUgIkpJVERpc2Fzc2VtYmxlci5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKaW5kZXggMjJiOWExZDFl
OWMzMmQ5Y2Q5OTY5MWIxOTczMjA5NWNlOTIzNDY1Yi4uNDFlODNjNjE4ZWFhNTYxMGNlN2UwNTY1
M2IzMjAxNzg1NmFlNTc5NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJh
dGlvbnMuY3BwCkBAIC02NzgsMTEgKzY3OCw2IEBAIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUlkRGlyZWN0Tm9uU3RyaWN0T3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhCiAg
ICAgICAgIHJlcGF0Y2hQdXRCeUlEKGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlT2JqZWN0
LCBzdHJ1Y3R1cmUsIGlkZW50LCBzbG90LCAqc3R1YkluZm8sIERpcmVjdCk7CiB9CiAKLUFMV0FZ
U19JTkxJTkUgc3RhdGljIGJvb2wgaXNTdHJpbmdPclN5bWJvbChKU1ZhbHVlIHZhbHVlKQotewot
ICAgIHJldHVybiB2YWx1ZS5pc1N0cmluZygpIHx8IHZhbHVlLmlzU3ltYm9sKCk7Ci19Ci0KIHN0
YXRpYyB2b2lkIHB1dEJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9j
ayogY29kZUJsb2NrLCBKU1ZhbHVlIGJhc2VWYWx1ZSwgSlNWYWx1ZSBzdWJzY3JpcHQsIEpTVmFs
dWUgdmFsdWUsIEJ5VmFsSW5mbyogYnlWYWxJbmZvKQogewogICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKQEAgLTcxNiw3ICs3MTEsNyBAQCBzdGF0aWMgdm9pZCBwdXRCeVZhbChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSlNWYWx1ZQog
ICAgIC8vIERvbid0IHB1dCB0byBhbiBvYmplY3QgaWYgdG9TdHJpbmcgdGhyZXcgYW4gZXhjZXB0
aW9uLgogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKLSAgICBpZiAo
YnlWYWxJbmZvLT5zdHViSW5mbyAmJiAoIWlzU3RyaW5nT3JTeW1ib2woc3Vic2NyaXB0KSB8fCBi
eVZhbEluZm8tPmNhY2hlZElkICE9IHByb3BlcnR5KSkKKyAgICBpZiAoYnlWYWxJbmZvLT5zdHVi
SW5mbyAmJiAoIUNhY2hlYWJsZUlkZW50aWZpZXI6OmlzQ2FjaGVhYmxlSWRlbnRpZmllckNlbGwo
c3Vic2NyaXB0KSB8fCBieVZhbEluZm8tPmNhY2hlZElkLnVpZCgpICE9IHByb3BlcnR5KSkKICAg
ICAgICAgYnlWYWxJbmZvLT50b29rU2xvd1BhdGggPSB0cnVlOwogCiAgICAgc2NvcGUucmVsZWFz
ZSgpOwpAQCAtNzc2LDcgKzc3MSw3IEBAIHN0YXRpYyB2b2lkIGRpcmVjdFB1dEJ5VmFsKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jayogY29kZUJsb2NrLCBKCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoYnlWYWxJbmZvLT5zdHViSW5mbyAmJiAoIWlzU3Ry
aW5nT3JTeW1ib2woc3Vic2NyaXB0KSB8fCBieVZhbEluZm8tPmNhY2hlZElkICE9IHByb3BlcnR5
KSkKKyAgICBpZiAoYnlWYWxJbmZvLT5zdHViSW5mbyAmJiAoIUNhY2hlYWJsZUlkZW50aWZpZXI6
OmlzQ2FjaGVhYmxlSWRlbnRpZmllckNlbGwoc3Vic2NyaXB0KSB8fCBieVZhbEluZm8tPmNhY2hl
ZElkLnVpZCgpICE9IHByb3BlcnR5KSkKICAgICAgICAgYnlWYWxJbmZvLT50b29rU2xvd1BhdGgg
PSB0cnVlOwogCiAgICAgc2NvcGUucmVsZWFzZSgpOwpAQCAtODI3LDE0ICs4MjIsMTQgQEAgc3Rh
dGljIE9wdGltaXphdGlvblJlc3VsdCB0cnlQdXRCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIENhbGwKICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9w
dGltaXphdGlvblJlc3VsdDo6R2l2ZVVwOwogICAgIH0KIAotICAgIGlmIChiYXNlVmFsdWUuaXNP
YmplY3QoKSAmJiBpc1N0cmluZ09yU3ltYm9sKHN1YnNjcmlwdCkpIHsKKyAgICBpZiAoYmFzZVZh
bHVlLmlzT2JqZWN0KCkgJiYgQ2FjaGVhYmxlSWRlbnRpZmllcjo6aXNDYWNoZWFibGVJZGVudGlm
aWVyQ2VsbChzdWJzY3JpcHQpKSB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIgcHJvcGVydHlO
YW1lID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgT3B0aW1pemF0aW9uUmVzdWx0OjpHaXZlVXApOwogICAg
ICAgICBpZiAoc3Vic2NyaXB0LmlzU3ltYm9sKCkgfHwgIXBhcnNlSW5kZXgocHJvcGVydHlOYW1l
KSkgewogICAgICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZS0+Ynl0ZWNvZGVJbmRleCgpICE9IEJ5
dGVjb2RlSW5kZXgoMCkpOwogICAgICAgICAgICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0
aW5lKTsKICAgICAgICAgICAgIGlmIChieVZhbEluZm8tPnNlZW4pIHsKLSAgICAgICAgICAgICAg
ICBpZiAoYnlWYWxJbmZvLT5jYWNoZWRJZCA9PSBwcm9wZXJ0eU5hbWUpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYnlWYWxJbmZvLT5jYWNoZWRJZC51aWQoKSA9PSBwcm9wZXJ0eU5hbWUpIHsKICAg
ICAgICAgICAgICAgICAgICAgSklUOjpjb21waWxlUHV0QnlWYWxXaXRoQ2FjaGVkSWQ8T3BQdXRC
eVZhbD4odm0sIGNvZGVCbG9jaywgYnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBOb3REaXJlY3Qs
IHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9
IE9wdGltaXphdGlvblJlc3VsdDo6T3B0aW1pemVkOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7
CkBAIC04NDIsMTIgKzgzNywxMyBAQCBzdGF0aWMgT3B0aW1pemF0aW9uUmVzdWx0IHRyeVB1dEJ5
VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgICAgICAg
ICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRpbWl6YXRpb25SZXN1bHQ6OkdpdmVV
cDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAg
ICAgICAgICAgIGJ5VmFsSW5mby0+c2VlbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnlWYWxJ
bmZvLT5jYWNoZWRJZCA9IHByb3BlcnR5TmFtZTsKLSAgICAgICAgICAgICAgICBpZiAoc3Vic2Ny
aXB0LmlzU3ltYm9sKCkpCi0gICAgICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+Y2FjaGVkU3lt
Ym9sLnNldCh2bSwgY29kZUJsb2NrLCBhc1N5bWJvbChzdWJzY3JpcHQpKTsKLSAgICAgICAgICAg
ICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRpbWl6YXRpb25SZXN1bHQ6OlNlZW5PbmNlOwor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpTTG9ja2Vy
IGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICAgICAgICAgIGJ5VmFsSW5m
by0+c2VlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQg
PSBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tQ2VsbChzdWJzY3JpcHQuYXNDZWxsKCkp
OworICAgICAgICAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRpbWl6YXRpb25S
ZXN1bHQ6OlNlZW5PbmNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2bS5o
ZWFwLndyaXRlQmFycmllcihjb2RlQmxvY2ssIHN1YnNjcmlwdC5hc0NlbGwoKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC05MTYsMTQgKzkxMiwxNCBAQCBzdGF0aWMgT3B0
aW1pemF0aW9uUmVzdWx0IHRyeURpcmVjdFB1dEJ5VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdAogICAgICAgICAvLyBJZiB3ZSBmYWlsZWQgdG8gcGF0Y2ggYW5kIHdlIGhh
dmUgc29tZSBvYmplY3QgdGhhdCBpbnRlcmNlcHRzIGluZGV4ZWQgZ2V0LCB0aGVuIGRvbid0IGV2
ZW4gd2FpdCB1bnRpbCAxMCB0aW1lcy4KICAgICAgICAgaWYgKG9wdGltaXphdGlvblJlc3VsdCAh
PSBPcHRpbWl6YXRpb25SZXN1bHQ6Ok9wdGltaXplZCAmJiBvYmplY3QtPnN0cnVjdHVyZSh2bSkt
PnR5cGVJbmZvKCkuaW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxl
bmd0aElzTm90WmVybygpKQogICAgICAgICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1p
emF0aW9uUmVzdWx0OjpHaXZlVXA7Ci0gICAgfSBlbHNlIGlmIChpc1N0cmluZ09yU3ltYm9sKHN1
YnNjcmlwdCkpIHsKKyAgICB9IGVsc2UgaWYgKENhY2hlYWJsZUlkZW50aWZpZXI6OmlzQ2FjaGVh
YmxlSWRlbnRpZmllckNlbGwoc3Vic2NyaXB0KSkgewogICAgICAgICBjb25zdCBJZGVudGlmaWVy
IHByb3BlcnR5TmFtZSA9IHN1YnNjcmlwdC50b1Byb3BlcnR5S2V5KGdsb2JhbE9iamVjdCk7CiAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIE9wdGltaXphdGlvblJlc3VsdDo6R2l2
ZVVwKTsKICAgICAgICAgaWYgKHN1YnNjcmlwdC5pc1N5bWJvbCgpIHx8ICFwYXJzZUluZGV4KHBy
b3BlcnR5TmFtZSkpIHsKICAgICAgICAgICAgIEFTU0VSVChjYWxsRnJhbWUtPmJ5dGVjb2RlSW5k
ZXgoKSAhPSBCeXRlY29kZUluZGV4KDApKTsKICAgICAgICAgICAgIEFTU0VSVCghYnlWYWxJbmZv
LT5zdHViUm91dGluZSk7CiAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvLT5zZWVuKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKGJ5VmFsSW5mby0+Y2FjaGVkSWQgPT0gcHJvcGVydHlOYW1lKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGJ5VmFsSW5mby0+Y2FjaGVkSWQudWlkKCkgPT0gcHJvcGVydHlO
YW1lKSB7CiAgICAgICAgICAgICAgICAgICAgIEpJVDo6Y29tcGlsZVB1dEJ5VmFsV2l0aENhY2hl
ZElkPE9wUHV0QnlWYWxEaXJlY3Q+KHZtLCBjb2RlQmxvY2ssIGJ5VmFsSW5mbywgcmV0dXJuQWRk
cmVzcywgRGlyZWN0LCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgICAgICAgICBvcHRpbWl6
YXRpb25SZXN1bHQgPSBPcHRpbWl6YXRpb25SZXN1bHQ6Ok9wdGltaXplZDsKICAgICAgICAgICAg
ICAgICB9IGVsc2UgewpAQCAtOTMxLDEyICs5MjcsMTMgQEAgc3RhdGljIE9wdGltaXphdGlvblJl
c3VsdCB0cnlEaXJlY3RQdXRCeVZhbE9wdGltaXplKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QKICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9u
UmVzdWx0OjpHaXZlVXA7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9s
b2NrKTsKLSAgICAgICAgICAgICAgICBieVZhbEluZm8tPnNlZW4gPSB0cnVlOwotICAgICAgICAg
ICAgICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQgPSBwcm9wZXJ0eU5hbWU7Ci0gICAgICAgICAgICAg
ICAgaWYgKHN1YnNjcmlwdC5pc1N5bWJvbCgpKQotICAgICAgICAgICAgICAgICAgICBieVZhbElu
Zm8tPmNhY2hlZFN5bWJvbC5zZXQodm0sIGNvZGVCbG9jaywgYXNTeW1ib2woc3Vic2NyaXB0KSk7
Ci0gICAgICAgICAgICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0
OjpTZWVuT25jZTsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIENvbmN1
cnJlbnRKU0xvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOworICAgICAgICAgICAgICAg
ICAgICBieVZhbEluZm8tPnNlZW4gPSB0cnVlOworICAgICAgICAgICAgICAgICAgICBieVZhbElu
Zm8tPmNhY2hlZElkID0gQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUNlbGwoc3Vic2Ny
aXB0LmFzQ2VsbCgpKTsKKyAgICAgICAgICAgICAgICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0g
T3B0aW1pemF0aW9uUmVzdWx0OjpTZWVuT25jZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgdm0uaGVhcC53cml0ZUJhcnJpZXIoY29kZUJsb2NrLCBzdWJzY3JpcHQuYXNDZWxs
KCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAppbmRleCAyYmEwZmE2ODQ4YmNlODI5
YWNkNjQxOTA1ZjA1ZjRiZDU0ZGNiZTM1Li5iNTNhNDkwZjVkZmIwOWZmNzJiM2U3YWUwNzQ3YzQx
Mjk1NWU1ZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3Bl
cnR5QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5
QWNjZXNzLmNwcApAQCAtMTI4NSwxNCArMTI4NSwxNCBAQCB2b2lkIEpJVDo6ZW1pdFdyaXRlQmFy
cmllcihKU0NlbGwqIG93bmVyKQogICAgIG93bmVySXNSZW1lbWJlcmVkT3JJbkVkZW4ubGluayh0
aGlzKTsKIH0KIAotdm9pZCBKSVQ6OmVtaXRCeVZhbElkZW50aWZpZXJDaGVjayhCeVZhbEluZm8q
IGJ5VmFsSW5mbywgUmVnaXN0ZXJJRCBjZWxsLCBSZWdpc3RlcklEIHNjcmF0Y2gsIGNvbnN0IElk
ZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSnVtcExpc3QmIHNsb3dDYXNlcykKK3ZvaWQgSklUOjpl
bWl0QnlWYWxJZGVudGlmaWVyQ2hlY2soQnlWYWxJbmZvKiBieVZhbEluZm8sIFJlZ2lzdGVySUQg
Y2VsbCwgUmVnaXN0ZXJJRCBzY3JhdGNoLCBjb25zdCBJZGVudGlmaWVyJiwgSnVtcExpc3QmIHNs
b3dDYXNlcykKIHsKLSAgICBpZiAocHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpCi0gICAgICAgIHNs
b3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBjZWxsLCBUcnVzdGVkSW1tUHRyKGJ5
VmFsSW5mby0+Y2FjaGVkU3ltYm9sLmdldCgpKSkpOworICAgIGlmIChieVZhbEluZm8tPmNhY2hl
ZElkLmlzU3ltYm9sQ2VsbCgpKQorICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaFB0cihO
b3RFcXVhbCwgY2VsbCwgVHJ1c3RlZEltbVB0cihieVZhbEluZm8tPmNhY2hlZElkLmNlbGwoKSkp
KTsKICAgICBlbHNlIHsKICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hJZk5vdFN0cmlu
ZyhjZWxsKSk7CiAgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhjZWxsLCBKU1N0cmluZzo6b2Zmc2V0
T2ZWYWx1ZSgpKSwgc2NyYXRjaCk7Ci0gICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRy
KE5vdEVxdWFsLCBzY3JhdGNoLCBUcnVzdGVkSW1tUHRyKHByb3BlcnR5TmFtZS5pbXBsKCkpKSk7
CisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBzY3JhdGNoLCBU
cnVzdGVkSW1tUHRyKGJ5VmFsSW5mby0+Y2FjaGVkSWQudWlkKCkpKSk7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWFibGVJZGVudGlm
aWVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWFibGVJZGVudGlmaWVy
LmgKaW5kZXggYjQ3Yjg2ZWIzY2FkYTRlMWNjMzIxYzE0MWQzNTE5MTE2YTQ1Mjg2Yy4uNzgzMWMx
OTZhYjU3Yjc4NzdiN2E3NjI2MjA4MTgyZmUwZTIwY2EyYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXIuaApAQCAtOTYsNyArOTYs
NyBAQCBjbGFzcyBDYWNoZWFibGVJZGVudGlmaWVyIHsKICAgICAvLyB1bnBvbGx1dGVkLCBhbmQg
dGhlcmVmb3JlLCBpdCBjYW4gYmUgc2Nhbm5lZCBieSBvdXIgY29uc2VydmF0aXZlIEdDIHRvIGtl
ZXAgdGhlCiAgICAgLy8gY2VsbCBhbGl2ZSB3aGVuIHRoZSBDYWNoZWFibGVJZGVudGlmaWVyIGlz
IG9uIHRoZSBzdGFjay4KICAgICBzdGF0aWMgY29uc3RleHByIHVpbnRwdHJfdCBzX3VpZFRhZyA9
IDE7Ci0gICAgdWludHB0cl90IG1fYml0czsKKyAgICB1aW50cHRyX3QgbV9iaXRzIHsgMCB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393357</attachid>
            <date>2020-03-12 03:58:51 -0700</date>
            <delta_ts>2020-03-12 11:24:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208978-20200312035850.patch</filename>
            <type>text/plain</type>
            <size>23781</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTIxZjk2N2JjZTdjNWNiNzc5ZjU1ODlmZDY5MzhiNWRlYmJjYTViLi4xM2M4NDM0YjI5MmQ5Y2Vh
ZDNhMjA1ZWUyMmJlNDhjMmMwNzliNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMC0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBDYWNoZWFibGVJZGVudGlmaWVyIGluIEJ5VmFsSW5mbwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4OTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29kZUJsb2Nr
OjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseSBkaXNjYXJkcyBKSVREYXRhLiBBbmQgdGhpcyBpbmNs
dWRlcyBCeVZhbEluZm8sIHdoaWNoIGhvbGRzIElkZW50aWZpZXIuCisgICAgICAgIEhvd2V2ZXIs
IGZpbmFsaXplVW5jb25kaXRpb25hbGx5IGlzIG9ubHkgZ3VhcmFudGVlaW5nIHRoYXQgdGhlIG1h
aW4gdGhyZWFkIGlzIG5vdCB3b3JraW5nLiBJdCBjYW4gYmUgaW52b2tlZAorICAgICAgICBpbiB0
aGUgaGVhcCB0aHJlYWQsIGFuZCBpdCBpcyBub3Qgbm90IHNldHRpbmcgdGhlIEF0b21TdHJpbmdU
YWJsZSBmb3IgdGhpcyBoZWFwIHRocmVhZC4gSWYgSWRlbnRpZmllciBkZXN0cm95cworICAgICAg
ICBBdG9tU3RyaW5nSW1wbCwgd2hpY2ggZmFpbHMgdG8gdW5yZWdpc3RlciBpdHNlbGYgZnJvbSB0
aGUgdGFibGUuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwKKworICAgICAgICAgICAgMS4gV2Ug
ZXhwbGljaXRseSBzZXQgbnVsbHB0ciBmb3IgdGhlIGN1cnJlbnQgQXRvbVN0cmluZ1RhYmxlIHRv
IGNhdGNoIHRoZSBidWcgYXMgc29vbiBhcyBwb3NzaWJsZSBpbiBHQyBlbmQgcGhhc2UuCisgICAg
ICAgICAgICAyLiBXZSB1c2UgQ2FjaGVhYmxlSWRlbnRpZmllciBpbiBCeVZhbEluZm8gdG8gYXZv
aWQgZGVzdHJveWluZyBJZGVudGlmaWVyIGluIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlv
bmFsbHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIGJ5dGVjb2RlL0J5VmFsSW5mby5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpC
eVZhbEluZm86OnZpc2l0QWdncmVnYXRlKToKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2Rl
QmxvY2s6OnN0cm9uZ2x5VmlzaXRTdHJvbmdSZWZlcmVuY2VzKToKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVQdXRCeVZhbCk6CisgICAgICAg
ICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6cnVuRW5kUGhhc2UpOgorICAg
ICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
QnlWYWxJZGVudGlmaWVyQ2hlY2spOgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVhYmxlSWRlbnRp
Zmllci5oOgorCiAyMDIwLTAzLTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFRlc3QyNjItcnVubmVyIHNob3VsZCBhbHdheXMgY29uc2lkZXIgY3Jh
c2hlcyBhcyBuZXcgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBmN2M2NjYyZjdmZTU2NzA5ZjQ1MDk0YzA3M2Y1NWM1MDgxY2E4ODdlLi4zZmYyMjVlMDcxZDll
YjRjYzQ0ZWRlOGVhNmU4NWY0MWI1YmUyN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC00ODgsNyArNDg4LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKIAogICAgIGJ5dGVjb2RlL0FycmF5QWxsb2NhdGlvblByb2ZpbGUuaAog
ICAgIGJ5dGVjb2RlL0FycmF5UHJvZmlsZS5oCi0gICAgYnl0ZWNvZGUvQnlWYWxJbmZvLmgKICAg
ICBieXRlY29kZS9CeXRlY29kZUNvbnZlbnRpb25zLmgKICAgICBieXRlY29kZS9CeXRlY29kZUlu
ZGV4LmgKICAgICBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmI3NDU2NTE3ZjhmNzRjNjlmMWM5ZDViZGMyMDJjNGY2
ZTQ0MTg1ZC4uNGFmY2UwMTVmOTBiYjI1MTA0YzhiNjFlMWI3Mjk1YzY3Y2MwMWNiMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ1Niw3ICs0NTYsNyBAQAogCQkwRjdERjEzQzFF
Mjk3MTEzMDA5NTk1MUIgLyogSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0RGMTNBMUUyOTcx
MEUwMDk1OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGN0RGMTQ2MUUyQkVG
NkEwMDk1OTUxQiAvKiBCbG9ja0RpcmVjdG9yeUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0RGMTQ1MUUyQkVGNjgwMDk1OTUxQiAvKiBC
bG9ja0RpcmVjdG9yeUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjdGOTg4QzFEOTU5NkM4MDBGNEYxMkUgLyogREZHU3RvcmVCYXJy
aWVyQ2x1c3RlcmluZ1BoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjdGOTg4QTFEOTU5NkMzMDBGNEYxMkUgLyogREZHU3RvcmVCYXJyaWVyQ2x1
c3RlcmluZ1BoYXNlLmggKi87IH07Ci0JCTBGODAyM0VBMTYxMzgzMkIwMEEwQkE0NSAvKiBCeVZh
bEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
ODAyM0U5MTYxMzgzMjMwMEEwQkE0NSAvKiBCeVZhbEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjgwMjNFQTE2MTM4MzJCMDBBMEJBNDUg
LyogQnlWYWxJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjgwMjNFOTE2MTM4MzIzMDBBMEJBNDUgLyogQnlWYWxJbmZvLmggKi87IH07CiAJCTBG
ODMzNUI4MTYzOUMxRUEwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjgzMzVCNTE2MzlDMUUz
MDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODM2NEI3MTY0QjBDMTEwMDUzMzI5QSAv
KiBERkdCcmFuY2hEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGODM2NEI1MTY0QjBDMEUwMDUzMzI5QSAvKiBERkdCcmFuY2hEaXJlY3Rp
b24uaCAqLzsgfTsKIAkJMEY4NkEyNkYxRDZGN0IzMzAwQ0IwQzkyIC8qIEdDVHlwZU1hcC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NkEyNkUxRDZG
N0IzMTAwQ0IwQzkyIC8qIEdDVHlwZU1hcC5oICovOyB9OwpAQCAtNDk1MSw2ICs0OTUxLDcgQEAK
IAkJRTM1NUQzOEUyMjQ0Njg2QzAwOEYxQUQ2IC8qIEdsb2JhbEV4ZWN1dGFibGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR2xvYmFsRXhlY3V0YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzNTY5ODcxMjI4NDExODMwMDhDRENDQiAvKiBQYWNrZWRDZWxsUHRyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhY2tlZENlbGxQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTM1QTBCOUMyMjBBRDg3QTAwQUM0NDc0IC8qIEV4ZWN1dGFibGVCYXNlSW5saW5lcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGVjdXRhYmxlQmFzZUlubGluZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1QkEyQzAyNDFBMEU4QzAwQjY3MDg2IC8q
IEJ5VmFsSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCeVZhbEluZm8uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVDQTE0RjFEQkMzQTU2MDBGODM1MTYgLyogRE9NSklU
QWJzdHJhY3RIZWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERP
TUpJVEFic3RyYWN0SGVhcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUNB
MTUwMURCQzNBNTYwMEY4MzUxNiAvKiBET01KSVRBYnN0cmFjdEhlYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUQWJzdHJhY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzNUNBMTUxMURCQzNBNTYwMEY4MzUxNiAvKiBET01KSVRIZWFwUmFu
Z2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NSklUSGVhcFJh
bmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyMDgsNiArODIwOSw3IEBA
CiAJCQkJRTNEMjY0MjkxRDM4QzA0MjAwMEJFMTc0IC8qIEJ5dGVjb2RlUmV3cml0ZXIuY3BwICov
LAogCQkJCUUzRDI2NDJBMUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZVJld3JpdGVyLmggKi8s
CiAJCQkJMEY4ODVFMTAxODQ5QTNCRTAwRjFFM0ZBIC8qIEJ5dGVjb2RlVXNlRGVmLmggKi8sCisJ
CQkJRTM1QkEyQzAyNDFBMEU4QzAwQjY3MDg2IC8qIEJ5VmFsSW5mby5jcHAgKi8sCiAJCQkJMEY4
MDIzRTkxNjEzODMyMzAwQTBCQTQ1IC8qIEJ5VmFsSW5mby5oICovLAogCQkJCTBGNjRCMjc3MUE3
OTU3QjIwMDZFNEU2NiAvKiBDYWxsRWRnZS5jcHAgKi8sCiAJCQkJMEY2NEIyNzgxQTc5NTdCMjAw
NkU0RTY2IC8qIENhbGxFZGdlLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXgg
NzZmMWM2OTQ4NWM2ZmNiZWU0ODdlNWFjOTg2Y2E0NjM2MzUzYWViZS4uZTAwOTY2NjgyYjUyMjE0
NGJjNDg5MTA1OWYzOWUxYmMyODY2Y2Y5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApA
QCAtMTk1LDYgKzE5NSw3IEBAIGJ5dGVjb2RlL0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVl
V2F0Y2hwb2ludEJhc2UuY3BwCiBieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCiBieXRlY29kZS9B
cnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAogYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAorYnl0
ZWNvZGUvQnlWYWxJbmZvLmNwcAogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAogYnl0
ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCiBieXRlY29kZS9CeXRlY29kZUdlbmVyYXRvcmlmaWNh
dGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZh
bEluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODVhY2JhMjlmOGNkMDc2MDU4MjUwZGZhMTI4M2Y1YTMyYTk0MWZlZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8u
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQnlWYWxJbmZvLmgiCisK
KyNpbmNsdWRlICJDYWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ0lu
bGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKKyNpZiBFTkFCTEUoSklUKQorCit2b2lkIEJ5
VmFsSW5mbzo6dmlzaXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgY2Fj
aGVkSWQudmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSklU
KQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eVZhbEluZm8uaAppbmRleCBiN2U5Mzc5NDVhOTA5NDZlMmMwNTUyMjc2Y2IxMzA1MzBmNDM4OWFm
Li45Y2M1NjA0ZTlmODQyZTQ1MTMyODk3NzI1NThjMDI3MGRhNzQ2MGQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FjaGVhYmxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkluZGV4
aW5nVHlwZS5oIgpAQCAtMzcsNiArMzgsNyBAQCBjbGFzcyBTeW1ib2w7CiAKICNpZiBFTkFCTEUo
SklUKQogCitjbGFzcyBBcnJheVByb2ZpbGU7CiBjbGFzcyBTdHJ1Y3R1cmVTdHViSW5mbzsKIAog
ZW51bSBKSVRBcnJheU1vZGUgOiB1aW50OF90IHsKQEAgLTI0Miw2ICsyNDQsOCBAQCBzdHJ1Y3Qg
QnlWYWxJbmZvIHsKICAgICB7CiAgICAgfQogCisgICAgdm9pZCB2aXNpdEFnZ3JlZ2F0ZShTbG90
VmlzaXRvciYpOworCiAgICAgQ29kZUxvY2F0aW9uSnVtcDxKU0ludGVybmFsUHRyVGFnPiBub3RJ
bmRleEp1bXA7CiAgICAgQ29kZUxvY2F0aW9uSnVtcDxKU0ludGVybmFsUHRyVGFnPiBiYWRUeXBl
SnVtcDsKICAgICBDb2RlTG9jYXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPiBleGNl
cHRpb25IYW5kbGVyOwpAQCAtMjUyLDggKzI1Niw3IEBAIHN0cnVjdCBCeVZhbEluZm8gewogICAg
IEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50
OwogICAgIFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmU7Ci0gICAgSWRlbnRpZmll
ciBjYWNoZWRJZDsKLSAgICBXcml0ZUJhcnJpZXI8U3ltYm9sPiBjYWNoZWRTeW1ib2w7CisgICAg
Q2FjaGVhYmxlSWRlbnRpZmllciBjYWNoZWRJZDsKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm87CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsgLy8gVGhlIGFycmF5IG1vZGUgdGhh
dCB3YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBjb2RlLgogICAgIGJvb2wgdG9va1Nsb3dQ
YXRoIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
aW5kZXggOTFlZWZhMDA5OGU2MzVhNzFlNmI3MjFmYmU4YzBhMWYyOWUxOWU5Ni4uNzQzNjk1MzRl
OTBlYzc3YTMxNWQ1ZTljMjAwOGYyZmM5ZWMxMjRmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUg
IkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5oIgorI2luY2x1
ZGUgIkJ5VmFsSW5mby5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlRHVtcGVyLmgiCiAjaW5jbHVkZSAi
Qnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMu
aCIKQEAgLTE2ODgsNyArMTY4OSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpzdHJvbmdseVZpc2l0U3Ry
b25nUmVmZXJlbmNlcyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwKICNpZiBFTkFC
TEUoSklUKQogICAgIGlmIChhdXRvKiBqaXREYXRhID0gbV9qaXREYXRhLmdldCgpKSB7CiAgICAg
ICAgIGZvciAoQnlWYWxJbmZvKiBieVZhbEluZm8gOiBqaXREYXRhLT5tX2J5VmFsSW5mb3MpCi0g
ICAgICAgICAgICB2aXNpdG9yLmFwcGVuZChieVZhbEluZm8tPmNhY2hlZFN5bWJvbCk7CisgICAg
ICAgICAgICBieVZhbEluZm8tPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogICAgICAgICBmb3Ig
KFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA6IGppdERhdGEtPm1fc3R1YkluZm9zKQogICAg
ICAgICAgICAgc3R1YkluZm8tPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA0NjhhYTcyNzlmN2I4
NjZhMWZhNDEzYzI3ZWVkZjRkNjJjYmY5NWUxLi5mMDIwYmU0ODZiMGZjNDk2YjgzMjg3YjQ3MDhi
MTFkZDRmOGVhYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCkBAIC0zMCw3ICszMCw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFycmF5UHJv
ZmlsZS5oIgotI2luY2x1ZGUgIkJ5VmFsSW5mby5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlQ29udmVu
dGlvbnMuaCIKICNpbmNsdWRlICJDYWxsTGlua0luZm8uaCIKICNpbmNsdWRlICJDb2RlQmxvY2tI
YXNoLmgiCkBAIC05NSw2ICs5NCw3IEBAIGNsYXNzIE1ldGFkYXRhVGFibGU7CiBjbGFzcyBQQ1Rv
Q29kZU9yaWdpbk1hcDsKIGNsYXNzIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OwogY2xhc3MgU3RydWN0
dXJlU3R1YkluZm87CitzdHJ1Y3QgQnlWYWxJbmZvOwogCiBERUNMQVJFX0FMTE9DQVRPUl9XSVRI
X0hFQVBfSURFTlRJRklFUihDb2RlQmxvY2tSYXJlRGF0YSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggZDFmYTBiMzE3ODc3MmVm
ZjlkZjQ0YmM1OGRlZjgxYmM5ZDJmMWIxZC4uYmQzODYzMDI4ODRiMTc0ZTBlZDRjMjQ2ZDUwMWY5
Y2FkMmNkM2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9y
LmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQnVpbHRpbk5h
bWVzLmgiCisjaW5jbHVkZSAiQnlWYWxJbmZvLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0
b3IuaCIKICNpbmNsdWRlICJCeXRlY29kZVVzZURlZi5oIgogI2luY2x1ZGUgIkNhY2hlYWJsZUlk
ZW50aWZpZXJJbmxpbmVzLmgiCkBAIC03NTc2LDExICs3NTc3LDExIEBAIHZvaWQgQnl0ZUNvZGVQ
YXJzZXI6OmhhbmRsZVB1dEJ5VmFsKEJ5dGVjb2RlIGJ5dGVjb2RlLCB1bnNpZ25lZCBpbnN0cnVj
dGlvblNpemUpCiAgICAgICAgICAgICAgICAgJiYgIW1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFBy
b2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFR5cGUpCiAgICAgICAgICAgICAg
ICAgJiYgIW1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIEJhZENlbGwpKSB7CiAgICAgICAgICAgICAgICAgY29tcGlsZWRBc1B1dEJ5SWQg
PSB0cnVlOwotICAgICAgICAgICAgICAgIGlkZW50aWZpZXJOdW1iZXIgPSBtX2dyYXBoLmlkZW50
aWZpZXJzKCkuZW5zdXJlKGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgpKTsKKyAgICAgICAgICAg
ICAgICBpZGVudGlmaWVyTnVtYmVyID0gbV9ncmFwaC5pZGVudGlmaWVycygpLmVuc3VyZShieVZh
bEluZm8tPmNhY2hlZElkLnVpZCgpKTsKICAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1w
bCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOwogCi0gICAg
ICAgICAgICAgICAgaWYgKFN5bWJvbCogc3ltYm9sID0gYnlWYWxJbmZvLT5jYWNoZWRTeW1ib2wu
Z2V0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgRnJvemVuVmFsdWUqIGZyb3plbiA9IG1fZ3Jh
cGguZnJlZXplU3Ryb25nKHN5bWJvbCk7CisgICAgICAgICAgICAgICAgaWYgKGJ5VmFsSW5mby0+
Y2FjaGVkSWQuaXNTeW1ib2xDZWxsKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgRnJvemVuVmFs
dWUqIGZyb3plbiA9IG1fZ3JhcGguZnJlZXplU3Ryb25nKGJ5VmFsSW5mby0+Y2FjaGVkSWQuY2Vs
bCgpKTsKICAgICAgICAgICAgICAgICAgICAgYWRkVG9HcmFwaChDaGVja0NlbGwsIE9wSW5mbyhm
cm96ZW4pLCBwcm9wZXJ0eSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKCF1aWQtPmlzU3ltYm9sKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmNwcAppbmRleCBjYjk3NmExOTQ1YTM2MDQ2YWQxNGYwMTRlNmExN2NkMzQyOWZmNjg3Li4w
MDdlOGI1ODBkZjA3MTk1MmJiMGEzNTYxYzVmY2I2NDE1MzBjYTVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcApAQCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgPHd0Zi9QYXJhbGxl
bFZlY3Rvckl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUg
PHd0Zi9SQU1TaXplLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1Np
bXBsZVN0YXRzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCkBAIC0xNDk0LDIzICsx
NDk1LDMxIEBAIE5FVkVSX0lOTElORSBib29sIEhlYXA6OnJ1bkVuZFBoYXNlKEdDQ29uZHVjdG9y
IGNvbm4pCiAgICAgICAgIAogICAgIHVwZGF0ZU9iamVjdENvdW50cygpOwogICAgIGVuZE1hcmtp
bmcoKTsKLSAgICAgICAgCisKICAgICBpZiAoVU5MSUtFTFkobV92ZXJpZmllcikpIHsKICAgICAg
ICAgbV92ZXJpZmllci0+Z2F0aGVyTGl2ZUNlbGxzKEhlYXBWZXJpZmllcjo6UGhhc2U6OkFmdGVy
TWFya2luZyk7CiAgICAgICAgIG1fdmVyaWZpZXItPnZlcmlmeShIZWFwVmVyaWZpZXI6OlBoYXNl
OjpBZnRlck1hcmtpbmcpOwogICAgIH0KICAgICAgICAgCi0gICAgaWYgKHZtKCkudHlwZVByb2Zp
bGVyKCkpCi0gICAgICAgIHZtKCkudHlwZVByb2ZpbGVyKCktPmludmFsaWRhdGVUeXBlU2V0Q2Fj
aGUodm0oKSk7CisgICAgeworICAgICAgICBhdXRvKiBwcmV2aW91cyA9IFRocmVhZDo6Y3VycmVu
dCgpLnNldEN1cnJlbnRBdG9tU3RyaW5nVGFibGUobnVsbHB0cik7CisgICAgICAgIGF1dG8gc2Nv
cGVFeGl0ID0gbWFrZVNjb3BlRXhpdChbJl0geworICAgICAgICAgICAgVGhyZWFkOjpjdXJyZW50
KCkuc2V0Q3VycmVudEF0b21TdHJpbmdUYWJsZShwcmV2aW91cyk7CisgICAgICAgIH0pOwogCi0g
ICAgbV9zdHJ1Y3R1cmVJRFRhYmxlLmZsdXNoT2xkVGFibGVzKCk7CisgICAgICAgIGlmICh2bSgp
LnR5cGVQcm9maWxlcigpKQorICAgICAgICAgICAgdm0oKS50eXBlUHJvZmlsZXIoKS0+aW52YWxp
ZGF0ZVR5cGVTZXRDYWNoZSh2bSgpKTsKKworICAgICAgICBtX3N0cnVjdHVyZUlEVGFibGUuZmx1
c2hPbGRUYWJsZXMoKTsKKworICAgICAgICByZWFwV2Vha0hhbmRsZXMoKTsKKyAgICAgICAgcHJ1
bmVTdGFsZUVudHJpZXNGcm9tV2Vha0dDTWFwcygpOworICAgICAgICBzd2VlcEFycmF5QnVmZmVy
cygpOworICAgICAgICBzbmFwc2hvdFVuc3dlcHQoKTsKKyAgICAgICAgZmluYWxpemVVbmNvbmRp
dGlvbmFsRmluYWxpemVycygpOyAvLyBXZSByZWx5IG9uIHRoZXNlIHVuY29uZGl0aW9uYWwgZmlu
YWxpemVycyBydW5uaW5nIGJlZm9yZSBjbGVhckN1cnJlbnRseUV4ZWN1dGluZyBzaW5jZSBDb2Rl
QmxvY2sncyBmaW5hbGl6ZXIgcmVsaWVzIG9uIHF1ZXJ5aW5nIGN1cnJlbnRseSBleGVjdXRpbmcu
CisgICAgICAgIHJlbW92ZURlYWRDb21waWxlcldvcmtsaXN0RW50cmllcygpOworICAgIH0KIAot
ICAgIHJlYXBXZWFrSGFuZGxlcygpOwotICAgIHBydW5lU3RhbGVFbnRyaWVzRnJvbVdlYWtHQ01h
cHMoKTsKLSAgICBzd2VlcEFycmF5QnVmZmVycygpOwotICAgIHNuYXBzaG90VW5zd2VwdCgpOwot
ICAgIGZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXplcnMoKTsgLy8gV2UgcmVseSBvbiB0aGVz
ZSB1bmNvbmRpdGlvbmFsIGZpbmFsaXplcnMgcnVubmluZyBiZWZvcmUgY2xlYXJDdXJyZW50bHlF
eGVjdXRpbmcgc2luY2UgQ29kZUJsb2NrJ3MgZmluYWxpemVyIHJlbGllcyBvbiBxdWVyeWluZyBj
dXJyZW50bHkgZXhlY3V0aW5nLgotICAgIHJlbW92ZURlYWRDb21waWxlcldvcmtsaXN0RW50cmll
cygpOwogICAgIG5vdGlmeUluY3JlbWVudGFsU3dlZXBlcigpOwogICAgIAogICAgIG1fY29kZUJs
b2Nrcy0+aXRlcmF0ZUN1cnJlbnRseUV4ZWN1dGluZygKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCmlu
ZGV4IDY3MTY2NjFkZjRmYWNlYTVlZmVkNWY1MTA4MWYwNTliNmQyNTNkNDkuLmRiNzJhYTc0YTk1
OGNlYmQwOTY4ZTVmNGZhNWQ3NTM2ZWViODc4YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaApA
QCAtMzcsNiArMzcsNyBAQAogCiAjZGVmaW5lIEFTU0VSVF9KSVRfT0ZGU0VUKGFjdHVhbCwgZXhw
ZWN0ZWQpIEFTU0VSVF9XSVRIX01FU1NBR0UoYWN0dWFsID09IGV4cGVjdGVkLCAiSklUIE9mZnNl
dCBcIiVzXCIgc2hvdWxkIGJlICVkLCBub3QgJWQuXG4iLCAjZXhwZWN0ZWQsIHN0YXRpY19jYXN0
PGludD4oZXhwZWN0ZWQpLCBzdGF0aWNfY2FzdDxpbnQ+KGFjdHVhbCkpOwogCisjaW5jbHVkZSAi
QnlWYWxJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xv
d1BhdGhzLmgiCiAjaW5jbHVkZSAiSklURGlzYXNzZW1ibGVyLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRleCAyMmI5YTFkMWU5YzMyZDljZDk5Njkx
YjE5NzMyMDk1Y2U5MjM0NjViLi40MWU4M2M2MThlYWE1NjEwY2U3ZTA1NjUzYjMyMDE3ODU2YWU1
Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKQEAg
LTY3OCwxMSArNjc4LDYgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWREaXJl
Y3ROb25TdHJpY3RPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICAgICAgcmVwYXRj
aFB1dEJ5SUQoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VPYmplY3QsIHN0cnVjdHVyZSwg
aWRlbnQsIHNsb3QsICpzdHViSW5mbywgRGlyZWN0KTsKIH0KIAotQUxXQVlTX0lOTElORSBzdGF0
aWMgYm9vbCBpc1N0cmluZ09yU3ltYm9sKEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgcmV0dXJuIHZh
bHVlLmlzU3RyaW5nKCkgfHwgdmFsdWUuaXNTeW1ib2woKTsKLX0KLQogc3RhdGljIHZvaWQgcHV0
QnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNjcmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQnlW
YWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpA
QCAtNzE2LDcgKzcxMSw3IEBAIHN0YXRpYyB2b2lkIHB1dEJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIENvZGVCbG9jayogY29kZUJsb2NrLCBKU1ZhbHVlCiAgICAgLy8gRG9uJ3Qg
cHV0IHRvIGFuIG9iamVjdCBpZiB0b1N0cmluZyB0aHJldyBhbiBleGNlcHRpb24uCiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIGlmIChieVZhbEluZm8tPnN0
dWJJbmZvICYmICghaXNTdHJpbmdPclN5bWJvbChzdWJzY3JpcHQpIHx8IGJ5VmFsSW5mby0+Y2Fj
aGVkSWQgIT0gcHJvcGVydHkpKQorICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmICghQ2Fj
aGVhYmxlSWRlbnRpZmllcjo6aXNDYWNoZWFibGVJZGVudGlmaWVyQ2VsbChzdWJzY3JpcHQpIHx8
IGJ5VmFsSW5mby0+Y2FjaGVkSWQudWlkKCkgIT0gcHJvcGVydHkpKQogICAgICAgICBieVZhbElu
Zm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CiAKICAgICBzY29wZS5yZWxlYXNlKCk7CkBAIC03NzYs
NyArNzcxLDcgQEAgc3RhdGljIHZvaWQgZGlyZWN0UHV0QnlWYWwoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEoKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmICghaXNTdHJpbmdPclN5bWJvbChz
dWJzY3JpcHQpIHx8IGJ5VmFsSW5mby0+Y2FjaGVkSWQgIT0gcHJvcGVydHkpKQorICAgIGlmIChi
eVZhbEluZm8tPnN0dWJJbmZvICYmICghQ2FjaGVhYmxlSWRlbnRpZmllcjo6aXNDYWNoZWFibGVJ
ZGVudGlmaWVyQ2VsbChzdWJzY3JpcHQpIHx8IGJ5VmFsSW5mby0+Y2FjaGVkSWQudWlkKCkgIT0g
cHJvcGVydHkpKQogICAgICAgICBieVZhbEluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CiAKICAg
ICBzY29wZS5yZWxlYXNlKCk7CkBAIC04MjcsMTQgKzgyMiwxNCBAQCBzdGF0aWMgT3B0aW1pemF0
aW9uUmVzdWx0IHRyeVB1dEJ5VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ2FsbAogICAgICAgICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVz
dWx0OjpHaXZlVXA7CiAgICAgfQogCi0gICAgaWYgKGJhc2VWYWx1ZS5pc09iamVjdCgpICYmIGlz
U3RyaW5nT3JTeW1ib2woc3Vic2NyaXB0KSkgeworICAgIGlmIChiYXNlVmFsdWUuaXNPYmplY3Qo
KSAmJiBDYWNoZWFibGVJZGVudGlmaWVyOjppc0NhY2hlYWJsZUlkZW50aWZpZXJDZWxsKHN1YnNj
cmlwdCkpIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3Jp
cHQudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBPcHRpbWl6YXRpb25SZXN1bHQ6OkdpdmVVcCk7CiAgICAgICAgIGlmIChzdWJz
Y3JpcHQuaXNTeW1ib2woKSB8fCAhcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAg
ICAgICBBU1NFUlQoY2FsbEZyYW1lLT5ieXRlY29kZUluZGV4KCkgIT0gQnl0ZWNvZGVJbmRleCgw
KSk7CiAgICAgICAgICAgICBBU1NFUlQoIWJ5VmFsSW5mby0+c3R1YlJvdXRpbmUpOwogICAgICAg
ICAgICAgaWYgKGJ5VmFsSW5mby0+c2VlbikgewotICAgICAgICAgICAgICAgIGlmIChieVZhbElu
Zm8tPmNhY2hlZElkID09IHByb3BlcnR5TmFtZSkgeworICAgICAgICAgICAgICAgIGlmIChieVZh
bEluZm8tPmNhY2hlZElkLnVpZCgpID09IHByb3BlcnR5TmFtZSkgewogICAgICAgICAgICAgICAg
ICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbFdpdGhDYWNoZWRJZDxPcFB1dEJ5VmFsPih2bSwgY29k
ZUJsb2NrLCBieVZhbEluZm8sIHJldHVybkFkZHJlc3MsIE5vdERpcmVjdCwgcHJvcGVydHlOYW1l
KTsKICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemF0aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9u
UmVzdWx0OjpPcHRpbWl6ZWQ7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTg0MiwxMiAr
ODM3LDEzIEBAIHN0YXRpYyBPcHRpbWl6YXRpb25SZXN1bHQgdHJ5UHV0QnlWYWxPcHRpbWl6ZShK
U0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsCiAgICAgICAgICAgICAgICAgICAgIG9w
dGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJlc3VsdDo6R2l2ZVVwOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQ29uY3VycmVu
dEpTTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7Ci0gICAgICAgICAgICAgICAgYnlW
YWxJbmZvLT5zZWVuID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBieVZhbEluZm8tPmNhY2hlZElk
ID0gcHJvcGVydHlOYW1lOwotICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHQuaXNTeW1ib2wo
KSkKLSAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5jYWNoZWRTeW1ib2wuc2V0KHZtLCBj
b2RlQmxvY2ssIGFzU3ltYm9sKHN1YnNjcmlwdCkpOwotICAgICAgICAgICAgICAgIG9wdGltaXph
dGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJlc3VsdDo6U2Vlbk9uY2U7CisgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9ja2VyKGNvZGVC
bG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5zZWVuID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5jYWNoZWRJZCA9IENhY2hlYWJsZUlk
ZW50aWZpZXI6OmNyZWF0ZUZyb21DZWxsKHN1YnNjcmlwdC5hc0NlbGwoKSk7CisgICAgICAgICAg
ICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJlc3VsdDo6U2Vlbk9u
Y2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZtLmhlYXAud3JpdGVCYXJy
aWVyKGNvZGVCbG9jaywgc3Vic2NyaXB0LmFzQ2VsbCgpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KQEAgLTkxNiwxNCArOTEyLDE0IEBAIHN0YXRpYyBPcHRpbWl6YXRpb25SZXN1
bHQgdHJ5RGlyZWN0UHV0QnlWYWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
CiAgICAgICAgIC8vIElmIHdlIGZhaWxlZCB0byBwYXRjaCBhbmQgd2UgaGF2ZSBzb21lIG9iamVj
dCB0aGF0IGludGVyY2VwdHMgaW5kZXhlZCBnZXQsIHRoZW4gZG9uJ3QgZXZlbiB3YWl0IHVudGls
IDEwIHRpbWVzLgogICAgICAgICBpZiAob3B0aW1pemF0aW9uUmVzdWx0ICE9IE9wdGltaXphdGlv
blJlc3VsdDo6T3B0aW1pemVkICYmIG9iamVjdC0+c3RydWN0dXJlKHZtKS0+dHlwZUluZm8oKS5p
bnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJv
KCkpCiAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRpbWl6YXRpb25SZXN1bHQ6
OkdpdmVVcDsKLSAgICB9IGVsc2UgaWYgKGlzU3RyaW5nT3JTeW1ib2woc3Vic2NyaXB0KSkgewor
ICAgIH0gZWxzZSBpZiAoQ2FjaGVhYmxlSWRlbnRpZmllcjo6aXNDYWNoZWFibGVJZGVudGlmaWVy
Q2VsbChzdWJzY3JpcHQpKSB7CiAgICAgICAgIGNvbnN0IElkZW50aWZpZXIgcHJvcGVydHlOYW1l
ID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgT3B0aW1pemF0aW9uUmVzdWx0OjpHaXZlVXApOwogICAgICAg
ICBpZiAoc3Vic2NyaXB0LmlzU3ltYm9sKCkgfHwgIXBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkg
ewogICAgICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZS0+Ynl0ZWNvZGVJbmRleCgpICE9IEJ5dGVj
b2RlSW5kZXgoMCkpOwogICAgICAgICAgICAgQVNTRVJUKCFieVZhbEluZm8tPnN0dWJSb3V0aW5l
KTsKICAgICAgICAgICAgIGlmIChieVZhbEluZm8tPnNlZW4pIHsKLSAgICAgICAgICAgICAgICBp
ZiAoYnlWYWxJbmZvLT5jYWNoZWRJZCA9PSBwcm9wZXJ0eU5hbWUpIHsKKyAgICAgICAgICAgICAg
ICBpZiAoYnlWYWxJbmZvLT5jYWNoZWRJZC51aWQoKSA9PSBwcm9wZXJ0eU5hbWUpIHsKICAgICAg
ICAgICAgICAgICAgICAgSklUOjpjb21waWxlUHV0QnlWYWxXaXRoQ2FjaGVkSWQ8T3BQdXRCeVZh
bERpcmVjdD4odm0sIGNvZGVCbG9jaywgYnlWYWxJbmZvLCByZXR1cm5BZGRyZXNzLCBEaXJlY3Qs
IHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9
IE9wdGltaXphdGlvblJlc3VsdDo6T3B0aW1pemVkOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7
CkBAIC05MzEsMTIgKzkyNywxMyBAQCBzdGF0aWMgT3B0aW1pemF0aW9uUmVzdWx0IHRyeURpcmVj
dFB1dEJ5VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdAogICAgICAgICAg
ICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRpbWl6YXRpb25SZXN1bHQ6OkdpdmVV
cDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIoY29kZUJsb2NrLT5tX2xvY2spOwotICAgICAg
ICAgICAgICAgIGJ5VmFsSW5mby0+c2VlbiA9IHRydWU7Ci0gICAgICAgICAgICAgICAgYnlWYWxJ
bmZvLT5jYWNoZWRJZCA9IHByb3BlcnR5TmFtZTsKLSAgICAgICAgICAgICAgICBpZiAoc3Vic2Ny
aXB0LmlzU3ltYm9sKCkpCi0gICAgICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+Y2FjaGVkU3lt
Ym9sLnNldCh2bSwgY29kZUJsb2NrLCBhc1N5bWJvbChzdWJzY3JpcHQpKTsKLSAgICAgICAgICAg
ICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRpbWl6YXRpb25SZXN1bHQ6OlNlZW5PbmNlOwor
ICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgQ29uY3VycmVudEpTTG9ja2Vy
IGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CisgICAgICAgICAgICAgICAgICAgIGJ5VmFsSW5m
by0+c2VlbiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQg
PSBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tQ2VsbChzdWJzY3JpcHQuYXNDZWxsKCkp
OworICAgICAgICAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRpbWl6YXRpb25S
ZXN1bHQ6OlNlZW5PbmNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2bS5o
ZWFwLndyaXRlQmFycmllcihjb2RlQmxvY2ssIHN1YnNjcmlwdC5hc0NlbGwoKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDJiYTBmYTY4NDhiY2U4MjlhY2Q2NDE5MDVmMDVm
NGJkNTRkY2JlMzUuLmI1M2E0OTBmNWRmYjA5ZmY3MmIzZTdhZTA3NDdjNDEyOTU1ZTVmZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCkBA
IC0xMjg1LDE0ICsxMjg1LDE0IEBAIHZvaWQgSklUOjplbWl0V3JpdGVCYXJyaWVyKEpTQ2VsbCog
b3duZXIpCiAgICAgb3duZXJJc1JlbWVtYmVyZWRPckluRWRlbi5saW5rKHRoaXMpOwogfQogCi12
b2lkIEpJVDo6ZW1pdEJ5VmFsSWRlbnRpZmllckNoZWNrKEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBS
ZWdpc3RlcklEIGNlbGwsIFJlZ2lzdGVySUQgc2NyYXRjaCwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQordm9pZCBKSVQ6OmVtaXRCeVZhbElkZW50
aWZpZXJDaGVjayhCeVZhbEluZm8qIGJ5VmFsSW5mbywgUmVnaXN0ZXJJRCBjZWxsLCBSZWdpc3Rl
cklEIHNjcmF0Y2gsIGNvbnN0IElkZW50aWZpZXImLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQogewot
ICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVu
ZChicmFuY2hQdHIoTm90RXF1YWwsIGNlbGwsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvLT5jYWNo
ZWRTeW1ib2wuZ2V0KCkpKSk7CisgICAgaWYgKGJ5VmFsSW5mby0+Y2FjaGVkSWQuaXNTeW1ib2xD
ZWxsKCkpCisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQoYnJhbmNoUHRyKE5vdEVxdWFsLCBjZWxs
LCBUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mby0+Y2FjaGVkSWQuY2VsbCgpKSkpOwogICAgIGVsc2Ug
ewogICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5jaElmTm90U3RyaW5nKGNlbGwpKTsKICAg
ICAgICAgbG9hZFB0cihBZGRyZXNzKGNlbGwsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCBz
Y3JhdGNoKTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHNj
cmF0Y2gsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1lLmltcGwoKSkpKTsKKyAgICAgICAgc2xv
d0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIHNjcmF0Y2gsIFRydXN0ZWRJbW1QdHIo
YnlWYWxJbmZvLT5jYWNoZWRJZC51aWQoKSkpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXIuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlYWJsZUlkZW50aWZpZXIuaAppbmRleCBiNDdi
ODZlYjNjYWRhNGUxY2MzMjFjMTQxZDM1MTkxMTZhNDUyODZjLi43ODMxYzE5NmFiNTdiNzg3N2I3
YTc2MjYyMDgxODJmZTBlMjBjYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9DYWNoZWFibGVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmllci5oCkBAIC05Niw3ICs5Niw3IEBAIGNsYXNzIENh
Y2hlYWJsZUlkZW50aWZpZXIgewogICAgIC8vIHVucG9sbHV0ZWQsIGFuZCB0aGVyZWZvcmUsIGl0
IGNhbiBiZSBzY2FubmVkIGJ5IG91ciBjb25zZXJ2YXRpdmUgR0MgdG8ga2VlcCB0aGUKICAgICAv
LyBjZWxsIGFsaXZlIHdoZW4gdGhlIENhY2hlYWJsZUlkZW50aWZpZXIgaXMgb24gdGhlIHN0YWNr
LgogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90IHNfdWlkVGFnID0gMTsKLSAgICB1aW50
cHRyX3QgbV9iaXRzOworICAgIHVpbnRwdHJfdCBtX2JpdHMgeyAwIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBKU0MK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393393</attachid>
            <date>2020-03-12 11:23:33 -0700</date>
            <delta_ts>2020-03-12 11:23:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208978-20200312112332.patch</filename>
            <type>text/plain</type>
            <size>23976</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4Mjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
MTIxZjk2N2JjZTdjNWNiNzc5ZjU1ODlmZDY5MzhiNWRlYmJjYTViLi4xM2M4NDM0YjI5MmQ5Y2Vh
ZDNhMjA1ZWUyMmJlNDhjMmMwNzliNzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzOSBAQAorMjAyMC0wMy0xMiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFtKU0NdIFVzZSBDYWNoZWFibGVJZGVudGlmaWVyIGluIEJ5VmFsSW5mbwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4OTc4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29kZUJsb2Nr
OjpmaW5hbGl6ZVVuY29uZGl0aW9uYWxseSBkaXNjYXJkcyBKSVREYXRhLiBBbmQgdGhpcyBpbmNs
dWRlcyBCeVZhbEluZm8sIHdoaWNoIGhvbGRzIElkZW50aWZpZXIuCisgICAgICAgIEhvd2V2ZXIs
IGZpbmFsaXplVW5jb25kaXRpb25hbGx5IGlzIG9ubHkgZ3VhcmFudGVlaW5nIHRoYXQgdGhlIG1h
aW4gdGhyZWFkIGlzIG5vdCB3b3JraW5nLiBJdCBjYW4gYmUgaW52b2tlZAorICAgICAgICBpbiB0
aGUgaGVhcCB0aHJlYWQsIGFuZCBpdCBpcyBub3Qgbm90IHNldHRpbmcgdGhlIEF0b21TdHJpbmdU
YWJsZSBmb3IgdGhpcyBoZWFwIHRocmVhZC4gSWYgSWRlbnRpZmllciBkZXN0cm95cworICAgICAg
ICBBdG9tU3RyaW5nSW1wbCwgd2hpY2ggZmFpbHMgdG8gdW5yZWdpc3RlciBpdHNlbGYgZnJvbSB0
aGUgdGFibGUuCisKKyAgICAgICAgSW4gdGhpcyBwYXRjaCwKKworICAgICAgICAgICAgMS4gV2Ug
ZXhwbGljaXRseSBzZXQgbnVsbHB0ciBmb3IgdGhlIGN1cnJlbnQgQXRvbVN0cmluZ1RhYmxlIHRv
IGNhdGNoIHRoZSBidWcgYXMgc29vbiBhcyBwb3NzaWJsZSBpbiBHQyBlbmQgcGhhc2UuCisgICAg
ICAgICAgICAyLiBXZSB1c2UgQ2FjaGVhYmxlSWRlbnRpZmllciBpbiBCeVZhbEluZm8gdG8gYXZv
aWQgZGVzdHJveWluZyBJZGVudGlmaWVyIGluIENvZGVCbG9jazo6ZmluYWxpemVVbmNvbmRpdGlv
bmFsbHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0Ogor
ICAgICAgICAqIGJ5dGVjb2RlL0J5VmFsSW5mby5jcHA6IEFkZGVkLgorICAgICAgICAoSlNDOjpC
eVZhbEluZm86OnZpc2l0QWdncmVnYXRlKToKKyAgICAgICAgKiBieXRlY29kZS9CeVZhbEluZm8u
aDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2Rl
QmxvY2s6OnN0cm9uZ2x5VmlzaXRTdHJvbmdSZWZlcmVuY2VzKToKKyAgICAgICAgKiBieXRlY29k
ZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVQdXRCeVZhbCk6CisgICAgICAg
ICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6cnVuRW5kUGhhc2UpOgorICAg
ICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
QnlWYWxJZGVudGlmaWVyQ2hlY2spOgorICAgICAgICAqIHJ1bnRpbWUvQ2FjaGVhYmxlSWRlbnRp
Zmllci5oOgorCiAyMDIwLTAzLTExICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFRlc3QyNjItcnVubmVyIHNob3VsZCBhbHdheXMgY29uc2lkZXIgY3Jh
c2hlcyBhcyBuZXcgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBmN2M2NjYyZjdmZTU2NzA5ZjQ1MDk0YzA3M2Y1NWM1MDgxY2E4ODdlLi4zZmYyMjVlMDcxZDll
YjRjYzQ0ZWRlOGVhNmU4NWY0MWI1YmUyN2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC00ODgsNyArNDg4LDYgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKIAogICAgIGJ5dGVjb2RlL0FycmF5QWxsb2NhdGlvblByb2ZpbGUuaAog
ICAgIGJ5dGVjb2RlL0FycmF5UHJvZmlsZS5oCi0gICAgYnl0ZWNvZGUvQnlWYWxJbmZvLmgKICAg
ICBieXRlY29kZS9CeXRlY29kZUNvbnZlbnRpb25zLmgKICAgICBieXRlY29kZS9CeXRlY29kZUlu
ZGV4LmgKICAgICBieXRlY29kZS9CeXRlY29kZUludHJpbnNpY1JlZ2lzdHJ5LmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmI3NDU2NTE3ZjhmNzRjNjlmMWM5ZDViZGMyMDJjNGY2
ZTQ0MTg1ZC4uNGFmY2UwMTVmOTBiYjI1MTA0YzhiNjFlMWI3Mjk1YzY3Y2MwMWNiMSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ1Niw3ICs0NTYsNyBAQAogCQkwRjdERjEzQzFF
Mjk3MTEzMDA5NTk1MUIgLyogSlNEZXN0cnVjdGlibGVPYmplY3RIZWFwQ2VsbFR5cGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0RGMTNBMUUyOTcx
MEUwMDk1OTUxQiAvKiBKU0Rlc3RydWN0aWJsZU9iamVjdEhlYXBDZWxsVHlwZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGN0RGMTQ2MUUyQkVG
NkEwMDk1OTUxQiAvKiBCbG9ja0RpcmVjdG9yeUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGN0RGMTQ1MUUyQkVGNjgwMDk1OTUxQiAvKiBC
bG9ja0RpcmVjdG9yeUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkwRjdGOTg4QzFEOTU5NkM4MDBGNEYxMkUgLyogREZHU3RvcmVCYXJy
aWVyQ2x1c3RlcmluZ1BoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjdGOTg4QTFEOTU5NkMzMDBGNEYxMkUgLyogREZHU3RvcmVCYXJyaWVyQ2x1
c3RlcmluZ1BoYXNlLmggKi87IH07Ci0JCTBGODAyM0VBMTYxMzgzMkIwMEEwQkE0NSAvKiBCeVZh
bEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBG
ODAyM0U5MTYxMzgzMjMwMEEwQkE0NSAvKiBCeVZhbEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRjgwMjNFQTE2MTM4MzJCMDBBMEJBNDUg
LyogQnlWYWxJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjgwMjNFOTE2MTM4MzIzMDBBMEJBNDUgLyogQnlWYWxJbmZvLmggKi87IH07CiAJCTBG
ODMzNUI4MTYzOUMxRUEwMDE0NDNCNSAvKiBBcnJheUFsbG9jYXRpb25Qcm9maWxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjgzMzVCNTE2MzlDMUUz
MDAxNDQzQjUgLyogQXJyYXlBbGxvY2F0aW9uUHJvZmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGODM2NEI3MTY0QjBDMTEwMDUzMzI5QSAv
KiBERkdCcmFuY2hEaXJlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGODM2NEI1MTY0QjBDMEUwMDUzMzI5QSAvKiBERkdCcmFuY2hEaXJlY3Rp
b24uaCAqLzsgfTsKIAkJMEY4NkEyNkYxRDZGN0IzMzAwQ0IwQzkyIC8qIEdDVHlwZU1hcC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NkEyNkUxRDZG
N0IzMTAwQ0IwQzkyIC8qIEdDVHlwZU1hcC5oICovOyB9OwpAQCAtNDk1MSw2ICs0OTUxLDcgQEAK
IAkJRTM1NUQzOEUyMjQ0Njg2QzAwOEYxQUQ2IC8qIEdsb2JhbEV4ZWN1dGFibGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR2xvYmFsRXhlY3V0YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzNTY5ODcxMjI4NDExODMwMDhDRENDQiAvKiBQYWNrZWRDZWxsUHRyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBhY2tlZENlbGxQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTM1QTBCOUMyMjBBRDg3QTAwQUM0NDc0IC8qIEV4ZWN1dGFibGVCYXNlSW5saW5lcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGVjdXRhYmxlQmFzZUlubGluZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM1QkEyQzAyNDFBMEU4QzAwQjY3MDg2IC8q
IEJ5VmFsSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCeVZhbEluZm8uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzVDQTE0RjFEQkMzQTU2MDBGODM1MTYgLyogRE9NSklU
QWJzdHJhY3RIZWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERP
TUpJVEFic3RyYWN0SGVhcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNUNB
MTUwMURCQzNBNTYwMEY4MzUxNiAvKiBET01KSVRBYnN0cmFjdEhlYXAuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUQWJzdHJhY3RIZWFwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUzNUNBMTUxMURCQzNBNTYwMEY4MzUxNiAvKiBET01KSVRIZWFwUmFu
Z2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NSklUSGVhcFJh
bmdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgyMDgsNiArODIwOSw3IEBA
CiAJCQkJRTNEMjY0MjkxRDM4QzA0MjAwMEJFMTc0IC8qIEJ5dGVjb2RlUmV3cml0ZXIuY3BwICov
LAogCQkJCUUzRDI2NDJBMUQzOEMwNDIwMDBCRTE3NCAvKiBCeXRlY29kZVJld3JpdGVyLmggKi8s
CiAJCQkJMEY4ODVFMTAxODQ5QTNCRTAwRjFFM0ZBIC8qIEJ5dGVjb2RlVXNlRGVmLmggKi8sCisJ
CQkJRTM1QkEyQzAyNDFBMEU4QzAwQjY3MDg2IC8qIEJ5VmFsSW5mby5jcHAgKi8sCiAJCQkJMEY4
MDIzRTkxNjEzODMyMzAwQTBCQTQ1IC8qIEJ5VmFsSW5mby5oICovLAogCQkJCTBGNjRCMjc3MUE3
OTU3QjIwMDZFNEU2NiAvKiBDYWxsRWRnZS5jcHAgKi8sCiAJCQkJMEY2NEIyNzgxQTc5NTdCMjAw
NkU0RTY2IC8qIENhbGxFZGdlLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5kZXgg
NzZmMWM2OTQ4NWM2ZmNiZWU0ODdlNWFjOTg2Y2E0NjM2MzUzYWViZS4uZTAwOTY2NjgyYjUyMjE0
NGJjNDg5MTA1OWYzOWUxYmMyODY2Y2Y5YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dApA
QCAtMTk1LDYgKzE5NSw3IEBAIGJ5dGVjb2RlL0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVl
V2F0Y2hwb2ludEJhc2UuY3BwCiBieXRlY29kZS9Bcml0aFByb2ZpbGUuY3BwCiBieXRlY29kZS9B
cnJheUFsbG9jYXRpb25Qcm9maWxlLmNwcAogYnl0ZWNvZGUvQXJyYXlQcm9maWxlLmNwcAorYnl0
ZWNvZGUvQnlWYWxJbmZvLmNwcAogYnl0ZWNvZGUvQnl0ZWNvZGVCYXNpY0Jsb2NrLmNwcAogYnl0
ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCiBieXRlY29kZS9CeXRlY29kZUdlbmVyYXRvcmlmaWNh
dGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZh
bEluZm8uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODVhY2JhMjlmOGNkMDc2MDU4MjUwZGZhMTI4M2Y1YTMyYTk0MWZlZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeVZhbEluZm8u
Y3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQnlWYWxJbmZvLmgiCisK
KyNpbmNsdWRlICJDYWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oIgorI2luY2x1ZGUgIkpTQ0lu
bGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKKyNpZiBFTkFCTEUoSklUKQorCit2b2lkIEJ5
VmFsSW5mbzo6dmlzaXRBZ2dyZWdhdGUoU2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgY2Fj
aGVkSWQudmlzaXRBZ2dyZWdhdGUodmlzaXRvcik7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoSklU
KQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeVZhbEluZm8uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eVZhbEluZm8uaAppbmRleCBiN2U5Mzc5NDVhOTA5NDZlMmMwNTUyMjc2Y2IxMzA1MzBmNDM4OWFm
Li45Y2M1NjA0ZTlmODQyZTQ1MTMyODk3NzI1NThjMDI3MGRhNzQ2MGQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnlWYWxJbmZvLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5VmFsSW5mby5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FjaGVhYmxlSWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IkNsYXNzSW5mby5oIgogI2luY2x1ZGUgIkNvZGVMb2NhdGlvbi5oIgogI2luY2x1ZGUgIkluZGV4
aW5nVHlwZS5oIgpAQCAtMzcsNiArMzgsNyBAQCBjbGFzcyBTeW1ib2w7CiAKICNpZiBFTkFCTEUo
SklUKQogCitjbGFzcyBBcnJheVByb2ZpbGU7CiBjbGFzcyBTdHJ1Y3R1cmVTdHViSW5mbzsKIAog
ZW51bSBKSVRBcnJheU1vZGUgOiB1aW50OF90IHsKQEAgLTI0Miw2ICsyNDQsOCBAQCBzdHJ1Y3Qg
QnlWYWxJbmZvIHsKICAgICB7CiAgICAgfQogCisgICAgdm9pZCB2aXNpdEFnZ3JlZ2F0ZShTbG90
VmlzaXRvciYpOworCiAgICAgQ29kZUxvY2F0aW9uSnVtcDxKU0ludGVybmFsUHRyVGFnPiBub3RJ
bmRleEp1bXA7CiAgICAgQ29kZUxvY2F0aW9uSnVtcDxKU0ludGVybmFsUHRyVGFnPiBiYWRUeXBl
SnVtcDsKICAgICBDb2RlTG9jYXRpb25MYWJlbDxFeGNlcHRpb25IYW5kbGVyUHRyVGFnPiBleGNl
cHRpb25IYW5kbGVyOwpAQCAtMjUyLDggKzI1Niw3IEBAIHN0cnVjdCBCeVZhbEluZm8gewogICAg
IEJ5dGVjb2RlSW5kZXggYnl0ZWNvZGVJbmRleDsKICAgICB1bnNpZ25lZCBzbG93UGF0aENvdW50
OwogICAgIFJlZlB0cjxKSVRTdHViUm91dGluZT4gc3R1YlJvdXRpbmU7Ci0gICAgSWRlbnRpZmll
ciBjYWNoZWRJZDsKLSAgICBXcml0ZUJhcnJpZXI8U3ltYm9sPiBjYWNoZWRTeW1ib2w7CisgICAg
Q2FjaGVhYmxlSWRlbnRpZmllciBjYWNoZWRJZDsKICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1
YkluZm87CiAgICAgSklUQXJyYXlNb2RlIGFycmF5TW9kZTsgLy8gVGhlIGFycmF5IG1vZGUgdGhh
dCB3YXMgYmFrZWQgaW50byB0aGUgaW5saW5lIEpJVCBjb2RlLgogICAgIGJvb2wgdG9va1Nsb3dQ
YXRoIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAK
aW5kZXggOTFlZWZhMDA5OGU2MzVhNzFlNmI3MjFmYmU4YzBhMWYyOWUxOWU5Ni4uNzQzNjk1MzRl
OTBlYzc3YTMxNWQ1ZTljMjAwOGYyZmM5ZWMxMjRmZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUg
IkFyaXRoUHJvZmlsZS5oIgogI2luY2x1ZGUgIkJhc2ljQmxvY2tMb2NhdGlvbi5oIgorI2luY2x1
ZGUgIkJ5VmFsSW5mby5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlRHVtcGVyLmgiCiAjaW5jbHVkZSAi
Qnl0ZWNvZGVHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJCeXRlY29kZUxpdmVuZXNzQW5hbHlzaXMu
aCIKQEAgLTE2ODgsNyArMTY4OSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpzdHJvbmdseVZpc2l0U3Ry
b25nUmVmZXJlbmNlcyhjb25zdCBDb25jdXJyZW50SlNMb2NrZXImIGxvY2tlciwKICNpZiBFTkFC
TEUoSklUKQogICAgIGlmIChhdXRvKiBqaXREYXRhID0gbV9qaXREYXRhLmdldCgpKSB7CiAgICAg
ICAgIGZvciAoQnlWYWxJbmZvKiBieVZhbEluZm8gOiBqaXREYXRhLT5tX2J5VmFsSW5mb3MpCi0g
ICAgICAgICAgICB2aXNpdG9yLmFwcGVuZChieVZhbEluZm8tPmNhY2hlZFN5bWJvbCk7CisgICAg
ICAgICAgICBieVZhbEluZm8tPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogICAgICAgICBmb3Ig
KFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA6IGppdERhdGEtPm1fc3R1YkluZm9zKQogICAg
ICAgICAgICAgc3R1YkluZm8tPnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCA0NjhhYTcyNzlmN2I4
NjZhMWZhNDEzYzI3ZWVkZjRkNjJjYmY5NWUxLi5mMDIwYmU0ODZiMGZjNDk2YjgzMjg3YjQ3MDhi
MTFkZDRmOGVhYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCkBAIC0zMCw3ICszMCw2IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFycmF5UHJv
ZmlsZS5oIgotI2luY2x1ZGUgIkJ5VmFsSW5mby5oIgogI2luY2x1ZGUgIkJ5dGVjb2RlQ29udmVu
dGlvbnMuaCIKICNpbmNsdWRlICJDYWxsTGlua0luZm8uaCIKICNpbmNsdWRlICJDb2RlQmxvY2tI
YXNoLmgiCkBAIC05NSw2ICs5NCw3IEBAIGNsYXNzIE1ldGFkYXRhVGFibGU7CiBjbGFzcyBQQ1Rv
Q29kZU9yaWdpbk1hcDsKIGNsYXNzIFJlZ2lzdGVyQXRPZmZzZXRMaXN0OwogY2xhc3MgU3RydWN0
dXJlU3R1YkluZm87CitzdHJ1Y3QgQnlWYWxJbmZvOwogCiBERUNMQVJFX0FMTE9DQVRPUl9XSVRI
X0hFQVBfSURFTlRJRklFUihDb2RlQmxvY2tSYXJlRGF0YSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggZDFmYTBiMzE3ODc3MmVm
ZjlkZjQ0YmM1OGRlZjgxYmM5ZDJmMWIxZC4uZTZkNWI2NWE0ZDAxMTZjNjg2YWUwNmUxMThjZDdm
Y2E5Mzc2NzFjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJBcnJheUNvbnN0cnVjdG9y
LmgiCiAjaW5jbHVkZSAiQmFzaWNCbG9ja0xvY2F0aW9uLmgiCiAjaW5jbHVkZSAiQnVpbHRpbk5h
bWVzLmgiCisjaW5jbHVkZSAiQnlWYWxJbmZvLmgiCiAjaW5jbHVkZSAiQnl0ZWNvZGVHZW5lcmF0
b3IuaCIKICNpbmNsdWRlICJCeXRlY29kZVVzZURlZi5oIgogI2luY2x1ZGUgIkNhY2hlYWJsZUlk
ZW50aWZpZXJJbmxpbmVzLmgiCkBAIC03NTc2LDEzICs3NTc3LDE1IEBAIHZvaWQgQnl0ZUNvZGVQ
YXJzZXI6OmhhbmRsZVB1dEJ5VmFsKEJ5dGVjb2RlIGJ5dGVjb2RlLCB1bnNpZ25lZCBpbnN0cnVj
dGlvblNpemUpCiAgICAgICAgICAgICAgICAgJiYgIW1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFBy
b2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJyZW50SW5kZXgsIEJhZFR5cGUpCiAgICAgICAgICAgICAg
ICAgJiYgIW1faW5saW5lU3RhY2tUb3AtPm1fZXhpdFByb2ZpbGUuaGFzRXhpdFNpdGUobV9jdXJy
ZW50SW5kZXgsIEJhZENlbGwpKSB7CiAgICAgICAgICAgICAgICAgY29tcGlsZWRBc1B1dEJ5SWQg
PSB0cnVlOwotICAgICAgICAgICAgICAgIGlkZW50aWZpZXJOdW1iZXIgPSBtX2dyYXBoLmlkZW50
aWZpZXJzKCkuZW5zdXJlKGJ5VmFsSW5mby0+Y2FjaGVkSWQuaW1wbCgpKTsKKyAgICAgICAgICAg
ICAgICBpZGVudGlmaWVyTnVtYmVyID0gbV9ncmFwaC5pZGVudGlmaWVycygpLmVuc3VyZShieVZh
bEluZm8tPmNhY2hlZElkLnVpZCgpKTsKICAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1w
bCogdWlkID0gbV9ncmFwaC5pZGVudGlmaWVycygpW2lkZW50aWZpZXJOdW1iZXJdOworICAgICAg
ICAgICAgICAgIEZyb3plblZhbHVlKiBmcm96ZW4gPSBudWxscHRyOworICAgICAgICAgICAgICAg
IGlmIChieVZhbEluZm8tPmNhY2hlZElkLmlzQ2VsbCgpKQorICAgICAgICAgICAgICAgICAgICBm
cm96ZW4gPSBtX2dyYXBoLmZyZWV6ZVN0cm9uZyhieVZhbEluZm8tPmNhY2hlZElkLmNlbGwoKSk7
CiAKLSAgICAgICAgICAgICAgICBpZiAoU3ltYm9sKiBzeW1ib2wgPSBieVZhbEluZm8tPmNhY2hl
ZFN5bWJvbC5nZXQoKSkgewotICAgICAgICAgICAgICAgICAgICBGcm96ZW5WYWx1ZSogZnJvemVu
ID0gbV9ncmFwaC5mcmVlemVTdHJvbmcoc3ltYm9sKTsKKyAgICAgICAgICAgICAgICBpZiAoYnlW
YWxJbmZvLT5jYWNoZWRJZC5pc1N5bWJvbENlbGwoKSkKICAgICAgICAgICAgICAgICAgICAgYWRk
VG9HcmFwaChDaGVja0NlbGwsIE9wSW5mbyhmcm96ZW4pLCBwcm9wZXJ0eSk7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKCF1aWQtPmlzU3ltYm9sKCkpOwogICAgICAgICAgICAgICAgICAgICBhZGRUb0dy
YXBoKENoZWNrSWRlbnQsIE9wSW5mbyh1aWQpLCBwcm9wZXJ0eSk7CiAgICAgICAgICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAppbmRleCBjYjk3NmExOTQ1YTM2MDQ2YWQx
NGYwMTRlNmExN2NkMzQyOWZmNjg3Li4wMDdlOGI1ODBkZjA3MTk1MmJiMGEzNTYxYzVmY2I2NDE1
MzBjYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcApAQCAtODYsNiArODYsNyBA
QAogI2luY2x1ZGUgPHd0Zi9QYXJhbGxlbFZlY3Rvckl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi9SQU1TaXplLmg+CisjaW5jbHVkZSA8d3RmL1Nj
b3BlLmg+CiAjaW5jbHVkZSA8d3RmL1NpbXBsZVN0YXRzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgogCkBAIC0xNDk0LDIzICsxNDk1LDMxIEBAIE5FVkVSX0lOTElORSBib29sIEhlYXA6
OnJ1bkVuZFBoYXNlKEdDQ29uZHVjdG9yIGNvbm4pCiAgICAgICAgIAogICAgIHVwZGF0ZU9iamVj
dENvdW50cygpOwogICAgIGVuZE1hcmtpbmcoKTsKLSAgICAgICAgCisKICAgICBpZiAoVU5MSUtF
TFkobV92ZXJpZmllcikpIHsKICAgICAgICAgbV92ZXJpZmllci0+Z2F0aGVyTGl2ZUNlbGxzKEhl
YXBWZXJpZmllcjo6UGhhc2U6OkFmdGVyTWFya2luZyk7CiAgICAgICAgIG1fdmVyaWZpZXItPnZl
cmlmeShIZWFwVmVyaWZpZXI6OlBoYXNlOjpBZnRlck1hcmtpbmcpOwogICAgIH0KICAgICAgICAg
Ci0gICAgaWYgKHZtKCkudHlwZVByb2ZpbGVyKCkpCi0gICAgICAgIHZtKCkudHlwZVByb2ZpbGVy
KCktPmludmFsaWRhdGVUeXBlU2V0Q2FjaGUodm0oKSk7CisgICAgeworICAgICAgICBhdXRvKiBw
cmV2aW91cyA9IFRocmVhZDo6Y3VycmVudCgpLnNldEN1cnJlbnRBdG9tU3RyaW5nVGFibGUobnVs
bHB0cik7CisgICAgICAgIGF1dG8gc2NvcGVFeGl0ID0gbWFrZVNjb3BlRXhpdChbJl0geworICAg
ICAgICAgICAgVGhyZWFkOjpjdXJyZW50KCkuc2V0Q3VycmVudEF0b21TdHJpbmdUYWJsZShwcmV2
aW91cyk7CisgICAgICAgIH0pOwogCi0gICAgbV9zdHJ1Y3R1cmVJRFRhYmxlLmZsdXNoT2xkVGFi
bGVzKCk7CisgICAgICAgIGlmICh2bSgpLnR5cGVQcm9maWxlcigpKQorICAgICAgICAgICAgdm0o
KS50eXBlUHJvZmlsZXIoKS0+aW52YWxpZGF0ZVR5cGVTZXRDYWNoZSh2bSgpKTsKKworICAgICAg
ICBtX3N0cnVjdHVyZUlEVGFibGUuZmx1c2hPbGRUYWJsZXMoKTsKKworICAgICAgICByZWFwV2Vh
a0hhbmRsZXMoKTsKKyAgICAgICAgcHJ1bmVTdGFsZUVudHJpZXNGcm9tV2Vha0dDTWFwcygpOwor
ICAgICAgICBzd2VlcEFycmF5QnVmZmVycygpOworICAgICAgICBzbmFwc2hvdFVuc3dlcHQoKTsK
KyAgICAgICAgZmluYWxpemVVbmNvbmRpdGlvbmFsRmluYWxpemVycygpOyAvLyBXZSByZWx5IG9u
IHRoZXNlIHVuY29uZGl0aW9uYWwgZmluYWxpemVycyBydW5uaW5nIGJlZm9yZSBjbGVhckN1cnJl
bnRseUV4ZWN1dGluZyBzaW5jZSBDb2RlQmxvY2sncyBmaW5hbGl6ZXIgcmVsaWVzIG9uIHF1ZXJ5
aW5nIGN1cnJlbnRseSBleGVjdXRpbmcuCisgICAgICAgIHJlbW92ZURlYWRDb21waWxlcldvcmts
aXN0RW50cmllcygpOworICAgIH0KIAotICAgIHJlYXBXZWFrSGFuZGxlcygpOwotICAgIHBydW5l
U3RhbGVFbnRyaWVzRnJvbVdlYWtHQ01hcHMoKTsKLSAgICBzd2VlcEFycmF5QnVmZmVycygpOwot
ICAgIHNuYXBzaG90VW5zd2VwdCgpOwotICAgIGZpbmFsaXplVW5jb25kaXRpb25hbEZpbmFsaXpl
cnMoKTsgLy8gV2UgcmVseSBvbiB0aGVzZSB1bmNvbmRpdGlvbmFsIGZpbmFsaXplcnMgcnVubmlu
ZyBiZWZvcmUgY2xlYXJDdXJyZW50bHlFeGVjdXRpbmcgc2luY2UgQ29kZUJsb2NrJ3MgZmluYWxp
emVyIHJlbGllcyBvbiBxdWVyeWluZyBjdXJyZW50bHkgZXhlY3V0aW5nLgotICAgIHJlbW92ZURl
YWRDb21waWxlcldvcmtsaXN0RW50cmllcygpOwogICAgIG5vdGlmeUluY3JlbWVudGFsU3dlZXBl
cigpOwogICAgIAogICAgIG1fY29kZUJsb2Nrcy0+aXRlcmF0ZUN1cnJlbnRseUV4ZWN1dGluZygK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDY3MTY2NjFkZjRmYWNlYTVlZmVkNWY1MTA4MWYw
NTliNmQyNTNkNDkuLmRiNzJhYTc0YTk1OGNlYmQwOTY4ZTVmNGZhNWQ3NTM2ZWViODc4YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVQuaApAQCAtMzcsNiArMzcsNyBAQAogCiAjZGVmaW5lIEFTU0VS
VF9KSVRfT0ZGU0VUKGFjdHVhbCwgZXhwZWN0ZWQpIEFTU0VSVF9XSVRIX01FU1NBR0UoYWN0dWFs
ID09IGV4cGVjdGVkLCAiSklUIE9mZnNldCBcIiVzXCIgc2hvdWxkIGJlICVkLCBub3QgJWQuXG4i
LCAjZXhwZWN0ZWQsIHN0YXRpY19jYXN0PGludD4oZXhwZWN0ZWQpLCBzdGF0aWNfY2FzdDxpbnQ+
KGFjdHVhbCkpOwogCisjaW5jbHVkZSAiQnlWYWxJbmZvLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2Nr
LmgiCiAjaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCiAjaW5jbHVkZSAiSklURGlzYXNzZW1i
bGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmNwcAppbmRl
eCAyMmI5YTFkMWU5YzMyZDljZDk5NjkxYjE5NzMyMDk1Y2U5MjM0NjViLi40MWU4M2M2MThlYWE1
NjEwY2U3ZTA1NjUzYjMyMDE3ODU2YWU1Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5jcHAKQEAgLTY3OCwxMSArNjc4LDYgQEAgdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZShKU0dsb2JhbE9iamVj
dCogZ2xvYmEKICAgICAgICAgcmVwYXRjaFB1dEJ5SUQoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ss
IGJhc2VPYmplY3QsIHN0cnVjdHVyZSwgaWRlbnQsIHNsb3QsICpzdHViSW5mbywgRGlyZWN0KTsK
IH0KIAotQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBpc1N0cmluZ09yU3ltYm9sKEpTVmFsdWUg
dmFsdWUpCi17Ci0gICAgcmV0dXJuIHZhbHVlLmlzU3RyaW5nKCkgfHwgdmFsdWUuaXNTeW1ib2wo
KTsKLX0KLQogc3RhdGljIHZvaWQgcHV0QnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpTVmFsdWUgYmFzZVZhbHVlLCBKU1ZhbHVlIHN1YnNj
cmlwdCwgSlNWYWx1ZSB2YWx1ZSwgQnlWYWxJbmZvKiBieVZhbEluZm8pCiB7CiAgICAgVk0mIHZt
ID0gZ2xvYmFsT2JqZWN0LT52bSgpOwpAQCAtNzE2LDcgKzcxMSw3IEBAIHN0YXRpYyB2b2lkIHB1
dEJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jayogY29kZUJsb2Nr
LCBKU1ZhbHVlCiAgICAgLy8gRG9uJ3QgcHV0IHRvIGFuIG9iamVjdCBpZiB0b1N0cmluZyB0aHJl
dyBhbiBleGNlcHRpb24uCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsK
IAotICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmICghaXNTdHJpbmdPclN5bWJvbChzdWJz
Y3JpcHQpIHx8IGJ5VmFsSW5mby0+Y2FjaGVkSWQgIT0gcHJvcGVydHkpKQorICAgIGlmIChieVZh
bEluZm8tPnN0dWJJbmZvICYmICghQ2FjaGVhYmxlSWRlbnRpZmllcjo6aXNDYWNoZWFibGVJZGVu
dGlmaWVyQ2VsbChzdWJzY3JpcHQpIHx8IGJ5VmFsSW5mby0+Y2FjaGVkSWQudWlkKCkgIT0gcHJv
cGVydHkpKQogICAgICAgICBieVZhbEluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CiAKICAgICBz
Y29wZS5yZWxlYXNlKCk7CkBAIC03NzYsNyArNzcxLDcgQEAgc3RhdGljIHZvaWQgZGlyZWN0UHV0
QnlWYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IEoKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZv
ICYmICghaXNTdHJpbmdPclN5bWJvbChzdWJzY3JpcHQpIHx8IGJ5VmFsSW5mby0+Y2FjaGVkSWQg
IT0gcHJvcGVydHkpKQorICAgIGlmIChieVZhbEluZm8tPnN0dWJJbmZvICYmICghQ2FjaGVhYmxl
SWRlbnRpZmllcjo6aXNDYWNoZWFibGVJZGVudGlmaWVyQ2VsbChzdWJzY3JpcHQpIHx8IGJ5VmFs
SW5mby0+Y2FjaGVkSWQudWlkKCkgIT0gcHJvcGVydHkpKQogICAgICAgICBieVZhbEluZm8tPnRv
b2tTbG93UGF0aCA9IHRydWU7CiAKICAgICBzY29wZS5yZWxlYXNlKCk7CkBAIC04MjcsMTQgKzgy
MiwxNCBAQCBzdGF0aWMgT3B0aW1pemF0aW9uUmVzdWx0IHRyeVB1dEJ5VmFsT3B0aW1pemUoSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbAogICAgICAgICAgICAgb3B0aW1pemF0aW9u
UmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0OjpHaXZlVXA7CiAgICAgfQogCi0gICAgaWYgKGJh
c2VWYWx1ZS5pc09iamVjdCgpICYmIGlzU3RyaW5nT3JTeW1ib2woc3Vic2NyaXB0KSkgeworICAg
IGlmIChiYXNlVmFsdWUuaXNPYmplY3QoKSAmJiBDYWNoZWFibGVJZGVudGlmaWVyOjppc0NhY2hl
YWJsZUlkZW50aWZpZXJDZWxsKHN1YnNjcmlwdCkpIHsKICAgICAgICAgY29uc3QgSWRlbnRpZmll
ciBwcm9wZXJ0eU5hbWUgPSBzdWJzY3JpcHQudG9Qcm9wZXJ0eUtleShnbG9iYWxPYmplY3QpOwog
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBPcHRpbWl6YXRpb25SZXN1bHQ6Okdp
dmVVcCk7CiAgICAgICAgIGlmIChzdWJzY3JpcHQuaXNTeW1ib2woKSB8fCAhcGFyc2VJbmRleChw
cm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgICAgICBBU1NFUlQoY2FsbEZyYW1lLT5ieXRlY29kZUlu
ZGV4KCkgIT0gQnl0ZWNvZGVJbmRleCgwKSk7CiAgICAgICAgICAgICBBU1NFUlQoIWJ5VmFsSW5m
by0+c3R1YlJvdXRpbmUpOwogICAgICAgICAgICAgaWYgKGJ5VmFsSW5mby0+c2VlbikgewotICAg
ICAgICAgICAgICAgIGlmIChieVZhbEluZm8tPmNhY2hlZElkID09IHByb3BlcnR5TmFtZSkgewor
ICAgICAgICAgICAgICAgIGlmIChieVZhbEluZm8tPmNhY2hlZElkLnVpZCgpID09IHByb3BlcnR5
TmFtZSkgewogICAgICAgICAgICAgICAgICAgICBKSVQ6OmNvbXBpbGVQdXRCeVZhbFdpdGhDYWNo
ZWRJZDxPcFB1dEJ5VmFsPih2bSwgY29kZUJsb2NrLCBieVZhbEluZm8sIHJldHVybkFkZHJlc3Ms
IE5vdERpcmVjdCwgcHJvcGVydHlOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgb3B0aW1pemF0
aW9uUmVzdWx0ID0gT3B0aW1pemF0aW9uUmVzdWx0OjpPcHRpbWl6ZWQ7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKQEAgLTg0MiwxMiArODM3LDEzIEBAIHN0YXRpYyBPcHRpbWl6YXRpb25SZXN1
bHQgdHJ5UHV0QnlWYWxPcHRpbWl6ZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxs
CiAgICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJl
c3VsdDo6R2l2ZVVwOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9j
ayk7Ci0gICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5zZWVuID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICBieVZhbEluZm8tPmNhY2hlZElkID0gcHJvcGVydHlOYW1lOwotICAgICAgICAgICAgICAg
IGlmIChzdWJzY3JpcHQuaXNTeW1ib2woKSkKLSAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZv
LT5jYWNoZWRTeW1ib2wuc2V0KHZtLCBjb2RlQmxvY2ssIGFzU3ltYm9sKHN1YnNjcmlwdCkpOwot
ICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJlc3VsdDo6
U2Vlbk9uY2U7CisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBDb25jdXJy
ZW50SlNMb2NrZXIgbG9ja2VyKGNvZGVCbG9jay0+bV9sb2NrKTsKKyAgICAgICAgICAgICAgICAg
ICAgYnlWYWxJbmZvLT5zZWVuID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgYnlWYWxJbmZv
LT5jYWNoZWRJZCA9IENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21DZWxsKHN1YnNjcmlw
dC5hc0NlbGwoKSk7CisgICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9w
dGltaXphdGlvblJlc3VsdDo6U2Vlbk9uY2U7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKGNvZGVCbG9jaywgc3Vic2NyaXB0LmFzQ2VsbCgp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTkxNiwxNCArOTEyLDE0IEBA
IHN0YXRpYyBPcHRpbWl6YXRpb25SZXN1bHQgdHJ5RGlyZWN0UHV0QnlWYWxPcHRpbWl6ZShKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0CiAgICAgICAgIC8vIElmIHdlIGZhaWxlZCB0byBwYXRj
aCBhbmQgd2UgaGF2ZSBzb21lIG9iamVjdCB0aGF0IGludGVyY2VwdHMgaW5kZXhlZCBnZXQsIHRo
ZW4gZG9uJ3QgZXZlbiB3YWl0IHVudGlsIDEwIHRpbWVzLgogICAgICAgICBpZiAob3B0aW1pemF0
aW9uUmVzdWx0ICE9IE9wdGltaXphdGlvblJlc3VsdDo6T3B0aW1pemVkICYmIG9iamVjdC0+c3Ry
dWN0dXJlKHZtKS0+dHlwZUluZm8oKS5pbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvKCkpCiAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1
bHQgPSBPcHRpbWl6YXRpb25SZXN1bHQ6OkdpdmVVcDsKLSAgICB9IGVsc2UgaWYgKGlzU3RyaW5n
T3JTeW1ib2woc3Vic2NyaXB0KSkgeworICAgIH0gZWxzZSBpZiAoQ2FjaGVhYmxlSWRlbnRpZmll
cjo6aXNDYWNoZWFibGVJZGVudGlmaWVyQ2VsbChzdWJzY3JpcHQpKSB7CiAgICAgICAgIGNvbnN0
IElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gc3Vic2NyaXB0LnRvUHJvcGVydHlLZXkoZ2xvYmFs
T2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgT3B0aW1pemF0aW9u
UmVzdWx0OjpHaXZlVXApOwogICAgICAgICBpZiAoc3Vic2NyaXB0LmlzU3ltYm9sKCkgfHwgIXBh
cnNlSW5kZXgocHJvcGVydHlOYW1lKSkgewogICAgICAgICAgICAgQVNTRVJUKGNhbGxGcmFtZS0+
Ynl0ZWNvZGVJbmRleCgpICE9IEJ5dGVjb2RlSW5kZXgoMCkpOwogICAgICAgICAgICAgQVNTRVJU
KCFieVZhbEluZm8tPnN0dWJSb3V0aW5lKTsKICAgICAgICAgICAgIGlmIChieVZhbEluZm8tPnNl
ZW4pIHsKLSAgICAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvLT5jYWNoZWRJZCA9PSBwcm9wZXJ0
eU5hbWUpIHsKKyAgICAgICAgICAgICAgICBpZiAoYnlWYWxJbmZvLT5jYWNoZWRJZC51aWQoKSA9
PSBwcm9wZXJ0eU5hbWUpIHsKICAgICAgICAgICAgICAgICAgICAgSklUOjpjb21waWxlUHV0QnlW
YWxXaXRoQ2FjaGVkSWQ8T3BQdXRCeVZhbERpcmVjdD4odm0sIGNvZGVCbG9jaywgYnlWYWxJbmZv
LCByZXR1cm5BZGRyZXNzLCBEaXJlY3QsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgICAgICAgICAg
ICAgIG9wdGltaXphdGlvblJlc3VsdCA9IE9wdGltaXphdGlvblJlc3VsdDo6T3B0aW1pemVkOwog
ICAgICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC05MzEsMTIgKzkyNywxMyBAQCBzdGF0aWMgT3B0
aW1pemF0aW9uUmVzdWx0IHRyeURpcmVjdFB1dEJ5VmFsT3B0aW1pemUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdAogICAgICAgICAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBP
cHRpbWl6YXRpb25SZXN1bHQ6OkdpdmVVcDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIoY29k
ZUJsb2NrLT5tX2xvY2spOwotICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+c2VlbiA9IHRydWU7
Ci0gICAgICAgICAgICAgICAgYnlWYWxJbmZvLT5jYWNoZWRJZCA9IHByb3BlcnR5TmFtZTsKLSAg
ICAgICAgICAgICAgICBpZiAoc3Vic2NyaXB0LmlzU3ltYm9sKCkpCi0gICAgICAgICAgICAgICAg
ICAgIGJ5VmFsSW5mby0+Y2FjaGVkU3ltYm9sLnNldCh2bSwgY29kZUJsb2NrLCBhc1N5bWJvbChz
dWJzY3JpcHQpKTsKLSAgICAgICAgICAgICAgICBvcHRpbWl6YXRpb25SZXN1bHQgPSBPcHRpbWl6
YXRpb25SZXN1bHQ6OlNlZW5PbmNlOworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihjb2RlQmxvY2stPm1fbG9jayk7CisgICAg
ICAgICAgICAgICAgICAgIGJ5VmFsSW5mby0+c2VlbiA9IHRydWU7CisgICAgICAgICAgICAgICAg
ICAgIGJ5VmFsSW5mby0+Y2FjaGVkSWQgPSBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9t
Q2VsbChzdWJzY3JpcHQuYXNDZWxsKCkpOworICAgICAgICAgICAgICAgICAgICBvcHRpbWl6YXRp
b25SZXN1bHQgPSBPcHRpbWl6YXRpb25SZXN1bHQ6OlNlZW5PbmNlOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICB2bS5oZWFwLndyaXRlQmFycmllcihjb2RlQmxvY2ssIHN1YnNj
cmlwdC5hc0NlbGwoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCmluZGV4IDJiYTBm
YTY4NDhiY2U4MjlhY2Q2NDE5MDVmMDVmNGJkNTRkY2JlMzUuLmI1M2E0OTBmNWRmYjA5ZmY3MmIz
ZTdhZTA3NDdjNDEyOTU1ZTVmZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUUHJvcGVydHlBY2Nlc3MuY3BwCkBAIC0xMjg1LDE0ICsxMjg1LDE0IEBAIHZvaWQgSklUOjpl
bWl0V3JpdGVCYXJyaWVyKEpTQ2VsbCogb3duZXIpCiAgICAgb3duZXJJc1JlbWVtYmVyZWRPcklu
RWRlbi5saW5rKHRoaXMpOwogfQogCi12b2lkIEpJVDo6ZW1pdEJ5VmFsSWRlbnRpZmllckNoZWNr
KEJ5VmFsSW5mbyogYnlWYWxJbmZvLCBSZWdpc3RlcklEIGNlbGwsIFJlZ2lzdGVySUQgc2NyYXRj
aCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKdW1wTGlzdCYgc2xvd0Nhc2VzKQor
dm9pZCBKSVQ6OmVtaXRCeVZhbElkZW50aWZpZXJDaGVjayhCeVZhbEluZm8qIGJ5VmFsSW5mbywg
UmVnaXN0ZXJJRCBjZWxsLCBSZWdpc3RlcklEIHNjcmF0Y2gsIGNvbnN0IElkZW50aWZpZXImLCBK
dW1wTGlzdCYgc2xvd0Nhc2VzKQogewotICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkK
LSAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIGNlbGwsIFRydXN0
ZWRJbW1QdHIoYnlWYWxJbmZvLT5jYWNoZWRTeW1ib2wuZ2V0KCkpKSk7CisgICAgaWYgKGJ5VmFs
SW5mby0+Y2FjaGVkSWQuaXNTeW1ib2xDZWxsKCkpCisgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQo
YnJhbmNoUHRyKE5vdEVxdWFsLCBjZWxsLCBUcnVzdGVkSW1tUHRyKGJ5VmFsSW5mby0+Y2FjaGVk
SWQuY2VsbCgpKSkpOwogICAgIGVsc2UgewogICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGJyYW5j
aElmTm90U3RyaW5nKGNlbGwpKTsKICAgICAgICAgbG9hZFB0cihBZGRyZXNzKGNlbGwsIEpTU3Ry
aW5nOjpvZmZzZXRPZlZhbHVlKCkpLCBzY3JhdGNoKTsKLSAgICAgICAgc2xvd0Nhc2VzLmFwcGVu
ZChicmFuY2hQdHIoTm90RXF1YWwsIHNjcmF0Y2gsIFRydXN0ZWRJbW1QdHIocHJvcGVydHlOYW1l
LmltcGwoKSkpKTsKKyAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWws
IHNjcmF0Y2gsIFRydXN0ZWRJbW1QdHIoYnlWYWxJbmZvLT5jYWNoZWRJZC51aWQoKSkpKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hl
YWJsZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NhY2hlYWJs
ZUlkZW50aWZpZXIuaAppbmRleCBiNDdiODZlYjNjYWRhNGUxY2MzMjFjMTQxZDM1MTkxMTZhNDUy
ODZjLi43ODMxYzE5NmFiNTdiNzg3N2I3YTc2MjYyMDgxODJmZTBlMjBjYTJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9DYWNoZWFibGVJZGVudGlmaWVyLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ2FjaGVhYmxlSWRlbnRpZmllci5oCkBA
IC05Niw3ICs5Niw3IEBAIGNsYXNzIENhY2hlYWJsZUlkZW50aWZpZXIgewogICAgIC8vIHVucG9s
bHV0ZWQsIGFuZCB0aGVyZWZvcmUsIGl0IGNhbiBiZSBzY2FubmVkIGJ5IG91ciBjb25zZXJ2YXRp
dmUgR0MgdG8ga2VlcCB0aGUKICAgICAvLyBjZWxsIGFsaXZlIHdoZW4gdGhlIENhY2hlYWJsZUlk
ZW50aWZpZXIgaXMgb24gdGhlIHN0YWNrLgogICAgIHN0YXRpYyBjb25zdGV4cHIgdWludHB0cl90
IHNfdWlkVGFnID0gMTsKLSAgICB1aW50cHRyX3QgbV9iaXRzOworICAgIHVpbnRwdHJfdCBtX2Jp
dHMgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>
<flag name="review"
          id="408774"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>