<?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>218885</bug_id>
          
          <creation_ts>2020-11-12 21:16:17 -0800</creation_ts>
          <short_desc>[WASM-References] Remove subtyping rule for externref and funcref</short_desc>
          <delta_ts>2020-11-18 20:12:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Dmitry">dbezhetskov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1707114</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2020-11-12 21:16:17 -0800</bug_when>
    <thetext>[WASM-References] Remove subtyping rule for externref and funcref</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707115</commentid>
    <comment_count>1</comment_count>
      <attachid>414003</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2020-11-12 21:21:13 -0800</bug_when>
    <thetext>Created attachment 414003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707487</commentid>
    <comment_count>2</comment_count>
      <attachid>414003</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-14 02:03:00 -0800</bug_when>
    <thetext>Comment on attachment 414003
Patch

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

The design looks good. Can you check JSC test failure?

&gt; Source/JavaScriptCore/wasm/WasmFormat.h:81
&gt; +inline bool isSubtype(Type sub, Type parent) { return sub == parent; }

Let&apos;s remove this function since `sub == parent` is the same type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707738</commentid>
    <comment_count>3</comment_count>
      <attachid>414206</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2020-11-16 02:09:13 -0800</bug_when>
    <thetext>Created attachment 414206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707742</commentid>
    <comment_count>4</comment_count>
      <attachid>414003</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2020-11-16 02:10:42 -0800</bug_when>
    <thetext>Comment on attachment 414003
Patch

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

&gt;&gt; Source/JavaScriptCore/wasm/WasmFormat.h:81
&gt;&gt; +inline bool isSubtype(Type sub, Type parent) { return sub == parent; }
&gt; 
&gt; Let&apos;s remove this function since `sub == parent` is the same type.

Thanks! Removed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708131</commentid>
    <comment_count>5</comment_count>
      <attachid>414308</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2020-11-16 22:29:38 -0800</bug_when>
    <thetext>Created attachment 414308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708138</commentid>
    <comment_count>6</comment_count>
      <attachid>414312</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2020-11-16 23:30:02 -0800</bug_when>
    <thetext>Created attachment 414312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708161</commentid>
    <comment_count>7</comment_count>
      <attachid>414319</attachid>
    <who name="Dmitry">dbezhetskov</who>
    <bug_when>2020-11-17 01:41:14 -0800</bug_when>
    <thetext>Created attachment 414319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708964</commentid>
    <comment_count>8</comment_count>
      <attachid>414319</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-11-18 20:07:03 -0800</bug_when>
    <thetext>Comment on attachment 414319
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708966</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-18 20:11:40 -0800</bug_when>
    <thetext>Committed r270015: &lt;https://trac.webkit.org/changeset/270015&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414319.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1708967</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-18 20:12:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/71569391&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414003</attachid>
            <date>2020-11-12 21:21:13 -0800</date>
            <delta_ts>2020-11-16 02:09:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218885-20201113122111.patch</filename>
            <type>text/plain</type>
            <size>10601</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MjYxOTQ3NzEzOTJlZWZiMDM2ZmRkNTgzNDg5MDdlOTc3OTRhODliLi41YjRjOTRhNjQxMTc2NzA0
ZWQ2ZWFmYTY2YzA3YTMyOTVhYzcxODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMS0xMiAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLVJlZmVyZW5jZXNdIFJlbW92ZSBzdWJ0eXBpbmcg
cnVsZSBmb3IgZXh0ZXJucmVmIGFuZCBmdW5jcmVmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGZ1bmNyZWYgaXMgbm90IGEgc3VidHlwZSBvZiBl
eHRlcm5yZWYuCisgICAgICAgIFRoZSBzcGVjOiBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5p
by9yZWZlcmVuY2UtdHlwZXMvY29yZS8KKyAgICAgICAgVGhlIFBSIGZvciByZW1vdmluZyBzdWJ0
eXBlIGZyb20gdGhlIHNwZWM6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJs
eS9yZWZlcmVuY2UtdHlwZXMvcHVsbC84Ny4KKworICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5o
OgorICAgICAgICAoSlNDOjpXYXNtOjppc1N1YnR5cGUpOgorICAgICAgICAqIHdhc20vV2FzbUZ1
bmN0aW9uUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRl
eHQ+OjpwYXJzZUV4cHJlc3Npb24pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGlu
ayk6CisKIDIwMjAtMTEtMTIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGVuc3VyZSB0aGF0IGBKU09OOjpBcnJheU9mPFQ+YCBkb2Vz
bid0IGFsbG93IGBhZGRJdGVtYCB0byBiZSBjYWxsZWQgd2l0aCBhIHR5cGUgb3RoZXIgdGhhbiBg
VGAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaAppbmRleCBiZDUzNjE4MmMw
OWUxNWRkZTU2MjI0OGE3MTM5ZmFmYzRlYjY5Yjk5Li5mYTRjNGIxNWI0MzI4ZjI0NTA1ZWY4NTgw
N2ViZDBkYTc1YmM4NTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9X
YXNtRm9ybWF0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5o
CkBAIC03OCwxMiArNzgsNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbHVlVHlwZShUeXBlIHR5cGUpCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1pbmxpbmUgYm9vbCBpc1N1YnR5cGUoVHlwZSBzdWIsIFR5
cGUgcGFyZW50KQotewotICAgIGlmIChzdWIgPT0gcGFyZW50KQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICByZXR1cm4gc3ViID09IEZ1bmNyZWYgJiYgcGFyZW50ID09IEV4dGVybnJlZjsKLX0K
K2lubGluZSBib29sIGlzU3VidHlwZShUeXBlIHN1YiwgVHlwZSBwYXJlbnQpIHsgcmV0dXJuIHN1
YiA9PSBwYXJlbnQ7IH0KIAogaW5saW5lIGJvb2wgaXNSZWZUeXBlKFR5cGUgdHlwZSkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21GdW5jdGlvblBhcnNlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKaW5kZXgg
NDM5YjVmOTE5NDU4NzU3OGJiZDM3ZTdkOTJmZDIzZDljZTY3OWU1Yy4uMGNlNjRhNWJkN2U1ZTBm
ZDYwMjg1NTRiMmY3NTc4YjYxOGQ5ZmY4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTUwMyw3ICs1MDMsNyBAQCBGT1JfRUFDSF9X
QVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfQ0FTRSkKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJ
TF9JRighT3B0aW9uczo6dXNlV2ViQXNzZW1ibHlSZWZlcmVuY2VzKCksICJyZWZlcmVuY2VzIGFy
ZSBub3QgZW5hYmxlZCIpOwogICAgICAgICBUeXBlZEV4cHJlc3Npb24gdmFsdWU7CiAgICAgICAg
IFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8odmFsdWUsICJyZWYuaXNfbnVsbCIp
OwotICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5cGUodmFsdWUudHlwZSgp
LCBFeHRlcm5yZWYpLCAicmVmLmlzX251bGwgdG8gdHlwZSAiLCB2YWx1ZS50eXBlKCksICIgZXhw
ZWN0ZWQgIiwgRXh0ZXJucmVmKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighaXNS
ZWZUeXBlKHZhbHVlLnR5cGUoKSksICJyZWYuaXNfbnVsbCB0byB0eXBlICIsIHZhbHVlLnR5cGUo
KSwgIiBleHBlY3RlZCBhIHJlZmVyZW5jZSB0eXBlIik7CiAgICAgICAgIEV4cHJlc3Npb25UeXBl
IHJlc3VsdDsKICAgICAgICAgV0FTTV9UUllfQUREX1RPX0NPTlRFWFQoYWRkUmVmSXNOdWxsKHZh
bHVlLCByZXN1bHQpKTsKICAgICAgICAgbV9leHByZXNzaW9uU3RhY2suY29uc3RydWN0QW5kQXBw
ZW5kKEkzMiwgcmVzdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAppbmRleCAzMWMyMWUzYzQzNzAyYzk5
ZmI2ZjgwOTU0ZDBjNWU0NzdkNzBkZjdkLi5lOTg0YjliMGVlNDczYjU3OTBlYjU3ODg1NDM5OTJh
OTIwMmI4NzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJB
c3NlbWJseU1vZHVsZVJlY29yZC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQuY3BwCkBAIC0yNTYsMTAgKzI1NiwxMSBAQCB2b2lk
IFdlYkFzc2VtYmx5TW9kdWxlUmVjb3JkOjpsaW5rKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIEpTVmFsdWUsIEpTT2JqZQogICAgICAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8gZ2xvYmFsVHlwZSA9IG1v
ZHVsZUluZm9ybWF0aW9uLmdsb2JhbHNbaW1wb3J0LmtpbmRJbmRleF0udHlwZTsKICAgICAgICAg
ICAgICAgICAgICAgLy8gaWkuIElmIHRoZSBnbG9iYWxfdHlwZSBvZiBpIGlzIGk2NCBvciBUeXBl
KHYpIGlzIG5vdCBOdW1iZXIsIHRocm93IGEgV2ViQXNzZW1ibHkuTGlua0Vycm9yLgotICAgICAg
ICAgICAgICAgICAgICBpZiAobW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFsc1tpbXBvcnQua2luZElu
ZGV4XS50eXBlID09IFdhc206Okk2NCkKKyAgICAgICAgICAgICAgICAgICAgaWYgKGdsb2JhbFR5
cGUgPT0gV2FzbTo6STY0KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlv
bihjcmVhdGVKU1dlYkFzc2VtYmx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZh
aWxNZXNzYWdlKGltcG9ydCwgImltcG9ydGVkIGdsb2JhbCIsICJjYW5ub3QgYmUgYW4gaTY0Iikp
KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1N1YnR5cGUobW9kdWxlSW5mb3JtYXRpb24u
Z2xvYmFsc1tpbXBvcnQua2luZEluZGV4XS50eXBlLCBXYXNtOjpFeHRlcm5yZWYpICYmICF2YWx1
ZS5pc051bWJlcigpKQorICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUmVmVHlwZShnbG9iYWxU
eXBlKSAmJiAhdmFsdWUuaXNOdW1iZXIoKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBleGNlcHRpb24oY3JlYXRlSlNXZWJBc3NlbWJseUxpbmtFcnJvcihnbG9iYWxPYmplY3QsIHZt
LCBpbXBvcnRGYWlsTWVzc2FnZShpbXBvcnQsICJpbXBvcnRlZCBnbG9iYWwiLCAibXVzdCBiZSBh
IG51bWJlciIpKSk7CiAKICAgICAgICAgICAgICAgICAgICAgLy8gaWlpLiBBcHBlbmQgVG9XZWJB
c3NlbWJseVZhbHVlKHYpIHRvIGltcG9ydHMuCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxv
ZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVmZWFjMzZiYTUzYTEzYzg0Y2RjMjIxZTA3ZDBh
NzgxNWI4YTQ1N2YuLmU5OWQ5OWZlZjc1MTRjMjI0NTJiYTQ2ODBlYzQyZGMwNWRjZWQ1MzcgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjAtMTEtMTIgIERtaXRyeSBCZXpoZXRza292ICA8ZGJlemhldHNrb3ZA
aWdhbGlhLmNvbT4KKworICAgICAgICBbV0FTTS1SZWZlcmVuY2VzXSBSZW1vdmUgc3VidHlwaW5n
IHJ1bGUgZm9yIGV4dGVybnJlZiBhbmQgZnVuY3JlZgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBmdW5jcmVmIGlzIG5vdCBhIHN1YnR5cGUgb2Yg
ZXh0ZXJucmVmLgorICAgICAgICBUaGUgc3BlYzogaHR0cHM6Ly93ZWJhc3NlbWJseS5naXRodWIu
aW8vcmVmZXJlbmNlLXR5cGVzL2NvcmUvCisgICAgICAgIFRoZSBQUiBmb3IgcmVtb3Zpbmcgc3Vi
dHlwZSBmcm9tIHRoZSBzcGVjOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vV2ViQXNzZW1i
bHkvcmVmZXJlbmNlLXR5cGVzL3B1bGwvODcuCisKKyAgICAgICAgKiB3YXNtL3JlZmVyZW5jZXMv
ZnVuY19yZWYuanM6CisgICAgICAgIChhc3NlcnQuZXEuaW5zdGFuY2UuZXhwb3J0cy5maXguZnVu
KToKKyAgICAgICAgKGFzc2VydC5lcS5pbnN0YW5jZS5leHBvcnRzLmZpeCk6CisgICAgICAgICog
d2FzbS9yZWZlcmVuY2VzL3ZhbGlkYXRpb24uanM6CisKIDIwMjAtMTEtMTIgIENhaW8gTGltYSAg
PHRpY2Fpb2xpbWFAZ21haWwuY29tPgogCiAgICAgICAgIFtJbnRsXVtBUk12N11bTUlQU10gU2tp
cCBzdHJlc3MvaW50bC1kYXRldGltZWZvcm1hdC1mb3JtYXRyYW5nZS5qcwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy93YXNtL3JlZmVyZW5jZXMvZnVuY19yZWYuanMgYi9KU1Rlc3RzL3dhc20vcmVmZXJl
bmNlcy9mdW5jX3JlZi5qcwppbmRleCA4NGMxM2Y4NjI2MGRiMjFjNTE4ZGIyYjA3YjRkOTFmN2Zi
ZDYwNWJhLi43YjAzOTJiYzdlMDQ2YzY5ZTc2OTJlNzhmZTNjNTIyYmE2OWI2OWM4IDEwMDY0NAot
LS0gYS9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9mdW5jX3JlZi5qcworKysgYi9KU1Rlc3RzL3dh
c20vcmVmZXJlbmNlcy9mdW5jX3JlZi5qcwpAQCAtNzUsMjcgKzc1LDIwIEBAIGZ1bmN0aW9uIG1h
a2VGdW5jcmVmSWRlbnQoKSB7CiAgICAgICAgICAgLlR5cGUoKS5FbmQoKQogICAgICAgICAgIC5G
dW5jdGlvbigpLkVuZCgpCiAgICAgICAgICAgLkV4cG9ydCgpCi0gICAgICAgICAgICAgIC5GdW5j
dGlvbigiaCIpCiAgICAgICAgICAgICAgIC5GdW5jdGlvbigiaSIpCi0gICAgICAgICAgICAgIC5G
dW5jdGlvbigiZ2V0X2giKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oImdldF9pIikKICAgICAg
ICAgICAgICAgLkZ1bmN0aW9uKCJmaXgiKQogICAgICAgICAgICAgICAuRnVuY3Rpb24oImdldF9u
b3RfZXhwb3J0ZWQiKQogICAgICAgICAgICAgICAuRnVuY3Rpb24oImxvY2FsX3JlYWQiKQogICAg
ICAgICAgIC5FbmQoKQogICAgICAgICAgIC5Db2RlKCkKLSAgICAgICAgICAgIC5GdW5jdGlvbigi
aCIsIHsgcGFyYW1zOiBbImZ1bmNyZWYiXSwgcmV0OiAiZXh0ZXJucmVmIiB9LCBbImV4dGVybnJl
ZiJdKQotICAgICAgICAgICAgICAuR2V0TG9jYWwoMCkKLSAgICAgICAgICAgICAgLlNldExvY2Fs
KDEpCi0gICAgICAgICAgICAgIC5HZXRMb2NhbCgxKQotICAgICAgICAgICAgLkVuZCgpCi0KICAg
ICAgICAgICAgIC5GdW5jdGlvbigiaSIsIHsgcGFyYW1zOiBbImZ1bmNyZWYiXSwgcmV0OiAiZnVu
Y3JlZiIgfSwgWyJmdW5jcmVmIl0pCiAgICAgICAgICAgICAgIC5HZXRMb2NhbCgwKQogICAgICAg
ICAgICAgICAuU2V0TG9jYWwoMSkKICAgICAgICAgICAgICAgLkdldExvY2FsKDEpCiAgICAgICAg
ICAgICAuRW5kKCkKIAotICAgICAgICAgICAgLkZ1bmN0aW9uKCJnZXRfaCIsIHsgcGFyYW1zOiBb
XSwgcmV0OiAiZnVuY3JlZiIgfSwgWyJmdW5jcmVmIl0pCisgICAgICAgICAgICAuRnVuY3Rpb24o
ImdldF9pIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJmdW5jcmVmIiB9LCBbImZ1bmNyZWYiXSkKICAg
ICAgICAgICAgICAgLkkzMkNvbnN0KDApCiAgICAgICAgICAgICAgIC5SZWZGdW5jKDApCiAgICAg
ICAgICAgICAgIC5TZXRMb2NhbCgwKQpAQCAtMTExLDExICsxMDQsMTEgQEAgZnVuY3Rpb24gbWFr
ZUZ1bmNyZWZJZGVudCgpIHsKICAgICAgICAgICAgIC5FbmQoKQogCiAgICAgICAgICAgICAuRnVu
Y3Rpb24oImZpeCIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiZnVuY3JlZiIgfSwgW10pCi0gICAgICAg
ICAgICAgIC5SZWZGdW5jKDMpCisgICAgICAgICAgICAgIC5SZWZGdW5jKDIpCiAgICAgICAgICAg
ICAuRW5kKCkKIAogICAgICAgICAgICAgLkZ1bmN0aW9uKCJnZXRfbm90X2V4cG9ydGVkIiwgeyBw
YXJhbXM6IFtdLCByZXQ6ICJmdW5jcmVmIiB9LCBbXSkKLSAgICAgICAgICAgICAgLlJlZkZ1bmMo
NSkKKyAgICAgICAgICAgICAgLlJlZkZ1bmMoNCkKICAgICAgICAgICAgIC5FbmQoKQogCiAgICAg
ICAgICAgICAuRnVuY3Rpb24oInJldF80MiIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9LCBb
XSkKQEAgLTEzNCwyMiArMTI3LDE2IEBAIGZ1bmN0aW9uIG1ha2VGdW5jcmVmSWRlbnQoKSB7CiAg
ICAgZnVsbEdDKCk7CiAKICAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5sb2NhbF9yZWFk
KCksIDEpCi0gICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaChudWxsKSwgbnVsbCkKLQot
ICAgIGFzc2VydC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5oKGZ1biksIEVycm9yLCAi
RnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ2Z1
bmMoLi4uYXJncyknKSIpCi0gICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaChteWZ1biks
IG15ZnVuKQotICAgIGFzc2VydC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5oKDUpLCBF
cnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0
aW5nICdmdW5jKC4uLmFyZ3MpJykiKQotICAgIGFzc2VydC50aHJvd3MoKCkgPT4gaW5zdGFuY2Uu
ZXhwb3J0cy5oKHVuZGVmaW5lZCksIEVycm9yLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVk
IHdhc20gZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCiAKICAgICBhc3Nl
cnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5pKG51bGwpLCBudWxsKQogICAgIGFzc2VydC5lcShpbnN0
YW5jZS5leHBvcnRzLmkobXlmdW4pLCBteWZ1bikKICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGlu
c3RhbmNlLmV4cG9ydHMuaShmdW4pLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRl
ZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQogICAgIGFzc2Vy
dC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5pKDUpLCBFcnJvciwgIkZ1bmNyZWYgbXVz
dCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3Mp
JykiKQogCi0gICAgYXNzZXJ0LnRocm93cygoKSA9PiBpbnN0YW5jZS5leHBvcnRzLmdldF9oKCko
ZnVuKSwgRXJyb3IsICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAo
ZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKLSAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhw
b3J0cy5nZXRfaCgpKG51bGwpLCBudWxsKQotICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRz
LmdldF9oKCkobXlmdW4pLCBteWZ1bikKLSAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNl
LmV4cG9ydHMuZ2V0X2goKSg1KSwgRXJyb3IsICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQg
d2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKKyAgICBhc3NlcnQu
dGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMuZ2V0X2koKShmdW4pLCBFcnJvciwgIkZ1bmNy
ZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4u
LmFyZ3MpJykiKQorICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmdldF9pKCkobnVsbCks
IG51bGwpCisgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuZ2V0X2koKShteWZ1biksIG15
ZnVuKQorICAgIGFzc2VydC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5nZXRfaSgpKDUp
LCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFs
dWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQogCiAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9y
dHMuZ2V0X25vdF9leHBvcnRlZCgpKCksIDQyKQogCkBAIC0xNTcsNiArMTQ0LDI5IEBAIGZ1bmN0
aW9uIG1ha2VGdW5jcmVmSWRlbnQoKSB7CiAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMu
Zml4KCksIGluc3RhbmNlLmV4cG9ydHMuZml4KTsKIH0KIAorLy8gQ2FzdGluZyB0aGUgRnVuY3Jl
ZiB0byBFeHRlcm5yZWYgaXMgZm9yYmlkZGVuLgorCit7CisgICAgZnVuY3Rpb24gZnVuKCkgeyBy
ZXR1cm4gNDE7IH0KKworICAgIGNvbnN0IGJ1aWxkZXIgPSAobmV3IEJ1aWxkZXIoKSkKKyAgICAg
ICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgICAg
ICAuRXhwb3J0KCkKKyAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJoIikKKyAgICAgICAgICAuRW5k
KCkKKyAgICAgICAgICAuQ29kZSgpCisgICAgICAgICAgICAuRnVuY3Rpb24oImgiLCB7IHBhcmFt
czogWyJmdW5jcmVmIl0sIHJldDogImV4dGVybnJlZiIgfSwgWyJleHRlcm5yZWYiXSkKKyAgICAg
ICAgICAgICAgLkdldExvY2FsKDApCisgICAgICAgICAgICAgIC5TZXRMb2NhbCgxKQorICAgICAg
ICAgICAgICAuR2V0TG9jYWwoMSkKKyAgICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FbmQo
KTsKKworICAgIGNvbnN0IGJpbiA9IGJ1aWxkZXIuV2ViQXNzZW1ibHkoKS5nZXQoKTsKKyAgICBh
c3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluKSwgV2ViQXNzZW1i
bHkuQ29tcGlsZUVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IHNl
dF9sb2NhbCB0byB0eXBlIEZ1bmNyZWYgZXhwZWN0ZWQgRXh0ZXJucmVmLCBpbiBmdW5jdGlvbiBh
dCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbiknKSIpOwor
fQorCiAvLyBHbG9iYWxzCiAKIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2Vz
L3ZhbGlkYXRpb24uanMgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy92YWxpZGF0aW9uLmpzCmlu
ZGV4IGM5NjAxMjg2NjM1NzE3ODExOWRjN2FjNjFhYjFmYTUxNjdkMmE5NWYuLjFlY2YxMmIwZjQ3
MTc4NzEwMGVlNmFiOTllOTQxYWFkNjQ4ODRiZDAgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9y
ZWZlcmVuY2VzL3ZhbGlkYXRpb24uanMKKysrIGIvSlNUZXN0cy93YXNtL3JlZmVyZW5jZXMvdmFs
aWRhdGlvbi5qcwpAQCAtMTksNyArMTksNyBAQCBpbXBvcnQgQnVpbGRlciBmcm9tICcuLi9CdWls
ZGVyLmpzJzsKICAgICBjb25zdCBiaW4gPSBidWlsZGVyLldlYkFzc2VtYmx5KCk7CiAgICAgYmlu
LnRyaW0oKTsKIAotICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVs
ZShiaW4uZ2V0KCkpLCBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1
bGUgZG9lc24ndCB2YWxpZGF0ZTogcmVmLmlzX251bGwgdG8gdHlwZSBJMzIgZXhwZWN0ZWQgRXh0
ZXJucmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1i
bHkuTW9kdWxlKGJpbi5nZXQoKSknKSIpOworICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdl
YkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpLCBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsICJX
ZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogcmVmLmlzX251bGwgdG8gdHlwZSBJ
MzIgZXhwZWN0ZWQgYSByZWZlcmVuY2UgdHlwZSwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZh
bHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpJykiKTsKIH0KIAogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414206</attachid>
            <date>2020-11-16 02:09:13 -0800</date>
            <delta_ts>2020-11-16 22:29:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218885-20201116170911.patch</filename>
            <type>text/plain</type>
            <size>31977</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MjYxOTQ3NzEzOTJlZWZiMDM2ZmRkNTgzNDg5MDdlOTc3OTRhODliLi41YjRjOTRhNjQxMTc2NzA0
ZWQ2ZWFmYTY2YzA3YTMyOTVhYzcxODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMS0xMiAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLVJlZmVyZW5jZXNdIFJlbW92ZSBzdWJ0eXBpbmcg
cnVsZSBmb3IgZXh0ZXJucmVmIGFuZCBmdW5jcmVmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGZ1bmNyZWYgaXMgbm90IGEgc3VidHlwZSBvZiBl
eHRlcm5yZWYuCisgICAgICAgIFRoZSBzcGVjOiBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5p
by9yZWZlcmVuY2UtdHlwZXMvY29yZS8KKyAgICAgICAgVGhlIFBSIGZvciByZW1vdmluZyBzdWJ0
eXBlIGZyb20gdGhlIHNwZWM6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJs
eS9yZWZlcmVuY2UtdHlwZXMvcHVsbC84Ny4KKworICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5o
OgorICAgICAgICAoSlNDOjpXYXNtOjppc1N1YnR5cGUpOgorICAgICAgICAqIHdhc20vV2FzbUZ1
bmN0aW9uUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRl
eHQ+OjpwYXJzZUV4cHJlc3Npb24pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGlu
ayk6CisKIDIwMjAtMTEtMTIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGVuc3VyZSB0aGF0IGBKU09OOjpBcnJheU9mPFQ+YCBkb2Vz
bid0IGFsbG93IGBhZGRJdGVtYCB0byBiZSBjYWxsZWQgd2l0aCBhIHR5cGUgb3RoZXIgdGhhbiBg
VGAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwCmluZGV4IDQzZDBjODcyZWU0YzYzYjRkNTZiNmYwZTM0NjIzNTMzM2U4NGI3OTMuLmQ1MThm
Nzc4Zjc0Y2ZjYmY1YTJjN2U0YzgyMDM5NGQwZDU0YmU5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcApAQCAtMTEwMiw3ICsxMTAy
LDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkVGFibGVTaXplKHVuc2lnbmVkIHRhYmxlSW5k
ZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0KIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZFRh
YmxlR3Jvdyh1bnNpZ25lZCB0YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSBmaWxsLCBFeHByZXNz
aW9uVHlwZSBkZWx0YSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAog
ewogICAgIEFTU0VSVChmaWxsLnRtcCgpKTsKLSAgICBBU1NFUlQoaXNTdWJ0eXBlKGZpbGwudHlw
ZSgpLCBtX2luZm8udGFibGVzW3RhYmxlSW5kZXhdLndhc21UeXBlKCkpKTsKKyAgICBBU1NFUlQo
ZmlsbC50eXBlKCkgPT0gbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpKTsKICAg
ICBBU1NFUlQoZGVsdGEudG1wKCkpOwogICAgIEFTU0VSVChkZWx0YS50eXBlKCkgPT0gVHlwZTo6
STMyKTsKICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGU6OkkzMik7CkBAIC0xMTE1LDcgKzEx
MTUsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRUYWJsZUdyb3codW5zaWduZWQgdGFibGVJ
bmRleCwgRXhwcmVzc2lvblR5cGUgZmlsbCwgRXhwcgogYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRk
VGFibGVGaWxsKHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlIG9mZnNldCwgRXhw
cmVzc2lvblR5cGUgZmlsbCwgRXhwcmVzc2lvblR5cGUgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQK
IHsKICAgICBBU1NFUlQoZmlsbC50bXAoKSk7Ci0gICAgQVNTRVJUKGlzU3VidHlwZShmaWxsLnR5
cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpKSk7CisgICAgQVNTRVJU
KGZpbGwudHlwZSgpID09IG1faW5mby50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSk7CiAg
ICAgQVNTRVJUKG9mZnNldC50bXAoKSk7CiAgICAgQVNTRVJUKG9mZnNldC50eXBlKCkgPT0gVHlw
ZTo6STMyKTsKICAgICBBU1NFUlQoY291bnQudG1wKCkpOwpAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAg
YXV0byBBaXJJUkdlbmVyYXRvcjo6c2V0R2xvYmFsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9u
VHlwZSB2YWx1ZSkgLT4gUGFydGlhbFIKICAgICAgICAgICAgIGFwcGVuZChBZGQ2NCwgdGVtcDIs
IHRlbXAsIHRlbXApOwogICAgICAgICAgICAgYXBwZW5kKG1vdmVPcEZvclZhbHVlVHlwZSh0eXBl
KSwgdmFsdWUsIEFyZzo6YWRkcih0ZW1wKSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGlzU3Vi
dHlwZSh0eXBlLCBFeHRlcm5yZWYpKQorICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUpKQogICAg
ICAgICAgICAgZW1pdFdyaXRlQmFycmllckZvckpTV3JhcHBlcigpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFdhc206Okdsb2JhbEluZm9ybWF0aW9uOjpCaW5kaW5nTW9kZTo6UG9ydGFibGU6
CkBAIC0xMjYyLDcgKzEyNjIsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjpzZXRHbG9iYWwodWlu
dDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUgogICAgICAgICB9
CiAgICAgICAgIGFwcGVuZChtb3ZlT3BGb3JWYWx1ZVR5cGUodHlwZSksIHZhbHVlLCBBcmc6OmFk
ZHIodGVtcCkpOwogICAgICAgICAvLyBXZSBlbWl0IGEgd3JpdGUtYmFycmllciBvbnRvIEpTV2Vi
QXNzZW1ibHlHbG9iYWwsIG5vdCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UuCi0gICAgICAgIGlmIChp
c1N1YnR5cGUodHlwZSwgRXh0ZXJucmVmKSkgeworICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUp
KSB7CiAgICAgICAgICAgICBhdXRvIGNlbGwgPSBnNjQoKTsKICAgICAgICAgICAgIGF1dG8gdm0g
PSBnNjQoKTsKICAgICAgICAgICAgIGF1dG8gY2VsbFN0YXRlID0gZzMyKCk7CkBAIC0yMzI1LDcg
KzIzMjUsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QodW5zaWduZWQg
dGFibGVJbmRleCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYQogCiB2b2lkIEFpcklSR2VuZXJhdG9y
Ojp1bmlmeShjb25zdCBFeHByZXNzaW9uVHlwZSBkc3QsIGNvbnN0IEV4cHJlc3Npb25UeXBlIHNv
dXJjZSkKIHsKLSAgICBBU1NFUlQoaXNTdWJ0eXBlKHNvdXJjZS50eXBlKCksIGRzdC50eXBlKCkp
KTsKKyAgICBBU1NFUlQoc291cmNlLnR5cGUoKSA9PSBkc3QudHlwZSgpKTsKICAgICBhcHBlbmQo
bW92ZU9wRm9yVmFsdWVUeXBlKGRzdC50eXBlKCkpLCBzb3VyY2UsIGRzdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCAz
MGIzYzc3MjMyZjJkZWU1ZjQ1OTNhNGJjODk5NTY1N2YxMzk4ZGZiLi5kOGJiMjQ0ZDNiMzMyM2Mx
YWQ4ZmNlZDFiYjY0MzFjZGYwMzQyMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBAIC02MzMsNyArNjMzLDcgQEAgYXV0byBCM0lS
R2VuZXJhdG9yOjphZGRMb2NhbChUeXBlIHR5cGUsIHVpbnQzMl90IGNvdW50KSAtPiBQYXJ0aWFs
UmVzdWx0CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAg
ICAgVmFyaWFibGUqIGxvY2FsID0gbV9wcm9jLmFkZFZhcmlhYmxlKHRvQjNUeXBlKHR5cGUpKTsK
ICAgICAgICAgbV9sb2NhbHMudW5jaGVja2VkQXBwZW5kKGxvY2FsKTsKLSAgICAgICAgYXV0byB2
YWwgPSBpc1N1YnR5cGUodHlwZSwgRXh0ZXJucmVmKSA/IEpTVmFsdWU6OmVuY29kZShqc051bGwo
KSkgOiAwOworICAgICAgICBhdXRvIHZhbCA9IGlzUmVmVHlwZSh0eXBlKSA/IEpTVmFsdWU6OmVu
Y29kZShqc051bGwoKSkgOiAwOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KG1fcHJvYywgU2V0LCBPcmlnaW4oKSwgbG9jYWwsIGNvbnN0YW50KHRvQjNU
eXBlKHR5cGUpLCB2YWwsIE9yaWdpbigpKSk7CiAgICAgfQogICAgIHJldHVybiB7IH07CkBAIC04
MzgsNyArODM4LDcgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjpzZXRHbG9iYWwodWludDMyX3QgaW5k
ZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUmUKICAgICBzd2l0Y2ggKGdsb2Jh
bC5iaW5kaW5nTW9kZSkgewogICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkJpbmRp
bmdNb2RlOjpFbWJlZGRlZEluSW5zdGFuY2U6CiAgICAgICAgIG1fY3VycmVudEJsb2NrLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KG1fcHJvYywgU3RvcmUsIG9yaWdpbigpLCB2YWx1ZSwgZ2xvYmFs
c0FycmF5LCBzYWZlQ2FzdDxpbnQzMl90PihpbmRleCAqIHNpemVvZihSZWdpc3RlcikpKTsKLSAg
ICAgICAgaWYgKGlzU3VidHlwZShnbG9iYWwudHlwZSwgRXh0ZXJucmVmKSkKKyAgICAgICAgaWYg
KGlzUmVmVHlwZShnbG9iYWwudHlwZSkpCiAgICAgICAgICAgICBlbWl0V3JpdGVCYXJyaWVyRm9y
SlNXcmFwcGVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3Jt
YXRpb246OkJpbmRpbmdNb2RlOjpQb3J0YWJsZTogewpAQCAtODQ2LDcgKzg0Niw3IEBAIGF1dG8g
QjNJUkdlbmVyYXRvcjo6c2V0R2xvYmFsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSB2
YWx1ZSkgLT4gUGFydGlhbFJlCiAgICAgICAgIFZhbHVlKiBwb2ludGVyID0gbV9jdXJyZW50Qmxv
Y2stPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4obV9wcm9jLCBMb2FkLCBCMzo6SW50NjQsIG9yaWdp
bigpLCBnbG9iYWxzQXJyYXksIHNhZmVDYXN0PGludDMyX3Q+KGluZGV4ICogc2l6ZW9mKFJlZ2lz
dGVyKSkpOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPiht
X3Byb2MsIFN0b3JlLCBvcmlnaW4oKSwgdmFsdWUsIHBvaW50ZXIpOwogICAgICAgICAvLyBXZSBl
bWl0IGEgd3JpdGUtYmFycmllciBvbnRvIEpTV2ViQXNzZW1ibHlHbG9iYWwsIG5vdCBKU1dlYkFz
c2VtYmx5SW5zdGFuY2UuCi0gICAgICAgIGlmIChpc1N1YnR5cGUoZ2xvYmFsLnR5cGUsIEV4dGVy
bnJlZikpIHsKKyAgICAgICAgaWYgKGlzUmVmVHlwZShnbG9iYWwudHlwZSkpIHsKICAgICAgICAg
ICAgIFZhbHVlKiBpbnN0YW5jZSA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KG1fcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgb3JpZ2luKCksIGluc3RhbmNlVmFsdWUo
KSwgc2FmZUNhc3Q8aW50MzJfdD4oSW5zdGFuY2U6Om9mZnNldE9mT3duZXIoKSkpOwogICAgICAg
ICAgICAgVmFsdWUqIGNlbGwgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PihtX3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG9yaWdpbigpLCBwb2ludGVyLCBXYXNtOjpH
bG9iYWw6Om9mZnNldE9mT3duZXIoKSAtIFdhc206Okdsb2JhbDo6b2Zmc2V0T2ZWYWx1ZSgpKTsK
ICAgICAgICAgICAgIFZhbHVlKiBjZWxsU3RhdGUgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQ4WiwgSW50MzIsIG9yaWdpbigpLCBjZWxsLCBzYWZl
Q2FzdDxpbnQzMl90PihKU0NlbGw6OmNlbGxTdGF0ZU9mZnNldCgpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggYmQ1MzYxODJjMDllMTVkZGU1NjIyNDhhNzEz
OWZhZmM0ZWI2OWI5OS4uMWZjZmRmMmJhMjAwYzQ1MmI1ZmEzNjMxM2RhNGE0NzUzNGM0NzVjNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNzgsMTMgKzc4LDYg
QEAgaW5saW5lIGJvb2wgaXNWYWx1ZVR5cGUoVHlwZSB0eXBlKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotaW5saW5lIGJvb2wgaXNTdWJ0eXBlKFR5cGUgc3ViLCBUeXBlIHBhcmVudCkKLXsKLSAg
ICBpZiAoc3ViID09IHBhcmVudCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIHN1
YiA9PSBGdW5jcmVmICYmIHBhcmVudCA9PSBFeHRlcm5yZWY7Ci19Ci0KIGlubGluZSBib29sIGlz
UmVmVHlwZShUeXBlIHR5cGUpCiB7CiAgICAgcmV0dXJuIHR5cGUgPT0gRXh0ZXJucmVmIHx8IHR5
cGUgPT0gRnVuY3JlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0
aW9uUGFyc2VyLmgKaW5kZXggNDM5YjVmOTE5NDU4NzU3OGJiZDM3ZTdkOTJmZDIzZDljZTY3OWU1
Yy4uYmExMWQ3ODI5OWVmMzQ3YTk3MmE3MDJlZjliYWY3MTY3ZTE5MTM0YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTMyNyw3ICsz
MjcsNyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpjaGVja0JyYW5jaFRhcmdldChj
b25zdCBDb250cm9sVHlwZSYgdGFyZ2V0KSAtPiBQYQogCiAgICAgdW5zaWduZWQgb2Zmc2V0ID0g
bV9leHByZXNzaW9uU3RhY2suc2l6ZSgpIC0gdGFyZ2V0LmJyYW5jaFRhcmdldEFyaXR5KCk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhcmdldC5icmFuY2hUYXJnZXRBcml0eSgpOyAr
K2kpCi0gICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh0YXJnZXQuYnJh
bmNoVGFyZ2V0VHlwZShpKSwgbV9leHByZXNzaW9uU3RhY2tbb2Zmc2V0ICsgaV0udHlwZSgpKSwg
ImJyYW5jaCdzIHN0YWNrIHR5cGUgaXMgbm90IGEgc3VidHlwZSBvZiBibG9jaydzIHR5cGUgYnJh
bmNoIHRhcmdldCB0eXBlLiBTdGFjayB2YWx1ZSBoYXMgdHlwZSIsIG1fZXhwcmVzc2lvblN0YWNr
W29mZnNldCArIGldLnR5cGUoKSwgIiBidXQgYnJhbmNoIHRhcmdldCBleHBlY3RzIGEgdmFsdWUg
d2l0aCBzdWJ0eXBlIG9mICIsIHRhcmdldC5icmFuY2hUYXJnZXRUeXBlKGkpLCAiIGF0IGluZGV4
ICIsIGkpOworICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKHRhcmdldC5icmFuY2hUYXJn
ZXRUeXBlKGkpICE9IG1fZXhwcmVzc2lvblN0YWNrW29mZnNldCArIGldLnR5cGUoKSwgImJyYW5j
aCdzIHN0YWNrIHR5cGUgaXMgbm90IGEgYmxvY2sncyB0eXBlIGJyYW5jaCB0YXJnZXQgdHlwZS4g
U3RhY2sgdmFsdWUgaGFzIHR5cGUiLCBtX2V4cHJlc3Npb25TdGFja1tvZmZzZXQgKyBpXS50eXBl
KCksICIgYnV0IGJyYW5jaCB0YXJnZXQgZXhwZWN0cyBhIHZhbHVlIG9mICIsIHRhcmdldC5icmFu
Y2hUYXJnZXRUeXBlKGkpLCAiIGF0IGluZGV4ICIsIGkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0K
QEAgLTMzNyw3ICszMzcsNyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+Ojp1bmlmeShj
b25zdCBDb250cm9sVHlwZSYgY29udHJvbERhdGEpIC0+IFBhcnRpYWxSZQogewogICAgIFdBU01f
VkFMSURBVE9SX0ZBSUxfSUYoY29udHJvbERhdGEuc2lnbmF0dXJlKCktPnJldHVybkNvdW50KCkg
IT0gbV9leHByZXNzaW9uU3RhY2suc2l6ZSgpLCAiIGJsb2NrIHdpdGggdHlwZTogIiwgY29udHJv
bERhdGEuc2lnbmF0dXJlKCktPnRvU3RyaW5nKCksICIgcmV0dXJuczogIiwgY29udHJvbERhdGEu
c2lnbmF0dXJlKCktPnJldHVybkNvdW50KCksICIgYnV0IHN0YWNrIGhhczogIiwgbV9leHByZXNz
aW9uU3RhY2suc2l6ZSgpLCAiIHZhbHVlcyIpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuQ291bnQoKTsgKytpKQotICAgICAgICBX
QVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5cGUobV9leHByZXNzaW9uU3RhY2tbaV0udHlw
ZSgpLCBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuVHlwZShpKSksICJjb250cm9sIGZs
b3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gIiwgbV9leHByZXNzaW9uU3RhY2tbaV0u
dHlwZSgpLCAiIGlzIG5vdCBhIHN1YnR5cGUgb2YgIiwgY29udHJvbERhdGEuc2lnbmF0dXJlKCkt
PnJldHVyblR5cGUoaSkpOworICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKG1fZXhwcmVz
c2lvblN0YWNrW2ldLnR5cGUoKSAhPSBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuVHlw
ZShpKSwgImNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiAiLCBtX2V4
cHJlc3Npb25TdGFja1tpXS50eXBlKCksICIgaXMgbm90IGEgIiwgY29udHJvbERhdGEuc2lnbmF0
dXJlKCktPnJldHVyblR5cGUoaSkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTQzNiw3ICs0
MzYsNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfQ0FTRSkKICAgICAg
ICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhpbmRleCwgInRhYmxlLnNldCIp
OwogICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKEkzMiAhPSBpbmRleC50eXBlKCksICJ0
YWJsZS5zZXQgaW5kZXggdG8gdHlwZSAiLCBpbmRleC50eXBlKCksICIgZXhwZWN0ZWQgIiwgSTMy
KTsKICAgICAgICAgVHlwZSB0eXBlID0gbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlw
ZSgpOwotICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5cGUodmFsdWUudHlw
ZSgpLCB0eXBlKSwgInRhYmxlLnNldCB2YWx1ZSB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwgIiBl
eHBlY3RlZCAiLCB0eXBlKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih2YWx1ZS50
eXBlKCkgIT0gdHlwZSwgInRhYmxlLnNldCB2YWx1ZSB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwg
IiBleHBlY3RlZCAiLCB0eXBlKTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pbmZvLnRhYmxl
c1t0YWJsZUluZGV4XS50eXBlKCkgPT0gVGFibGVFbGVtZW50VHlwZTo6RXh0ZXJucmVmIHx8IG1f
aW5mby50YWJsZXNbdGFibGVJbmRleF0udHlwZSgpID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1bmNy
ZWYpOwogICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChhZGRUYWJsZVNldCh0YWJsZUlu
ZGV4LCBpbmRleCwgdmFsdWUpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTQ2Myw3ICs0NjMs
NyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfQ0FTRSkKICAgICAgICAg
ICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8oZGVsdGEsICJ0YWJsZS5ncm93
Iik7CiAgICAgICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKGZpbGws
ICJ0YWJsZS5ncm93Iik7CiAKLSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlz
U3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgp
KSwgInRhYmxlLmdyb3cgZXhwZWN0cyBmaWxsIHZhbHVlIG9mIHR5cGUgIiwgbV9pbmZvLnRhYmxl
c1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBmaWxsLnR5cGUoKSk7CisgICAgICAg
ICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwudHlwZSgpICE9IG1faW5mby50YWJsZXNb
dGFibGVJbmRleF0ud2FzbVR5cGUoKSwgInRhYmxlLmdyb3cgZXhwZWN0cyBmaWxsIHZhbHVlIG9m
IHR5cGUgIiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBm
aWxsLnR5cGUoKSk7CiAgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKEkzMiAhPSBk
ZWx0YS50eXBlKCksICJ0YWJsZS5ncm93IGV4cGVjdHMgYW4gaTMyIGRlbHRhIHZhbHVlLCBnb3Qg
IiwgZGVsdGEudHlwZSgpKTsKIAogICAgICAgICAgICAgRXhwcmVzc2lvblR5cGUgcmVzdWx0OwpA
QCAtNDc3LDcgKzQ3Nyw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9D
QVNFKQogICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhmaWxs
LCAidGFibGUuZmlsbCIpOwogICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RB
Q0tfSU5UTyhvZmZzZXQsICJ0YWJsZS5maWxsIik7CiAKLSAgICAgICAgICAgIFdBU01fVkFMSURB
VE9SX0ZBSUxfSUYoIWlzU3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUlu
ZGV4XS53YXNtVHlwZSgpKSwgInRhYmxlLmZpbGwgZXhwZWN0cyBmaWxsIHZhbHVlIG9mIHR5cGUg
IiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBmaWxsLnR5
cGUoKSk7CisgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwudHlwZSgpICE9
IG1faW5mby50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSwgInRhYmxlLmZpbGwgZXhwZWN0
cyBmaWxsIHZhbHVlIG9mIHR5cGUgIiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlw
ZSgpLCAiIGdvdCAiLCBmaWxsLnR5cGUoKSk7CiAgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9G
QUlMX0lGKEkzMiAhPSBvZmZzZXQudHlwZSgpLCAidGFibGUuZmlsbCBleHBlY3RzIGFuIGkzMiBv
ZmZzZXQgdmFsdWUsIGdvdCAiLCBvZmZzZXQudHlwZSgpKTsKICAgICAgICAgICAgIFdBU01fVkFM
SURBVE9SX0ZBSUxfSUYoSTMyICE9IGNvdW50LnR5cGUoKSwgInRhYmxlLmZpbGwgZXhwZWN0cyBh
biBpMzIgY291bnQgdmFsdWUsIGdvdCAiLCBjb3VudC50eXBlKCkpOwogCkBAIC01MDMsNyArNTAz
LDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAg
IFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5UmVmZXJlbmNlcygp
LCAicmVmZXJlbmNlcyBhcmUgbm90IGVuYWJsZWQiKTsKICAgICAgICAgVHlwZWRFeHByZXNzaW9u
IHZhbHVlOwogICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHZhbHVl
LCAicmVmLmlzX251bGwiKTsKLSAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighaXNTdWJ0
eXBlKHZhbHVlLnR5cGUoKSwgRXh0ZXJucmVmKSwgInJlZi5pc19udWxsIHRvIHR5cGUgIiwgdmFs
dWUudHlwZSgpLCAiIGV4cGVjdGVkICIsIEV4dGVybnJlZik7CisgICAgICAgIFdBU01fVkFMSURB
VE9SX0ZBSUxfSUYoIWlzUmVmVHlwZSh2YWx1ZS50eXBlKCkpLCAicmVmLmlzX251bGwgdG8gdHlw
ZSAiLCB2YWx1ZS50eXBlKCksICIgZXhwZWN0ZWQgYSByZWZlcmVuY2UgdHlwZSIpOwogICAgICAg
ICBFeHByZXNzaW9uVHlwZSByZXN1bHQ7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19DT05URVhU
KGFkZFJlZklzTnVsbCh2YWx1ZSwgcmVzdWx0KSk7CiAgICAgICAgIG1fZXhwcmVzc2lvblN0YWNr
LmNvbnN0cnVjdEFuZEFwcGVuZChJMzIsIHJlc3VsdCk7CkBAIC01MzksNyArNTM5LDcgQEAgRk9S
X0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGluZGV4KSwgImNhbid0IGdldCBpbmRleCBmb3Ig
c2V0X2xvY2FsIik7CiAgICAgICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8o
dmFsdWUsICJzZXRfbG9jYWwiKTsKICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRihpbmRl
eCA+PSBtX2xvY2Fscy5zaXplKCksICJhdHRlbXB0IHRvIHNldCB1bmtub3duIGxvY2FsICIsIGlu
ZGV4LCAiIGxhc3Qgb25lIGlzICIsIG1fbG9jYWxzLnNpemUoKSk7Ci0gICAgICAgIFdBU01fVkFM
SURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh2YWx1ZS50eXBlKCksIG1fbG9jYWxzW2luZGV4XSks
ICJzZXRfbG9jYWwgdG8gdHlwZSAiLCB2YWx1ZS50eXBlKCksICIgZXhwZWN0ZWQgIiwgbV9sb2Nh
bHNbaW5kZXhdKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih2YWx1ZS50eXBlKCkg
IT0gbV9sb2NhbHNbaW5kZXhdLCAic2V0X2xvY2FsIHRvIHR5cGUgIiwgdmFsdWUudHlwZSgpLCAi
IGV4cGVjdGVkICIsIG1fbG9jYWxzW2luZGV4XSk7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19D
T05URVhUKHNldExvY2FsKGluZGV4LCB2YWx1ZSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KQEAgLTU1MCw3ICs1NTAsNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVB
VEVfQ0FTRSkKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihtX2V4cHJlc3Npb25TdGFjay5p
c0VtcHR5KCksICJjYW4ndCB0ZWVfbG9jYWwgb24gZW1wdHkgZXhwcmVzc2lvbiBzdGFjayIpOwog
ICAgICAgICBUeXBlZEV4cHJlc3Npb24gdmFsdWUgPSBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCk7
CiAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoaW5kZXggPj0gbV9sb2NhbHMuc2l6ZSgp
LCAiYXR0ZW1wdCB0byB0ZWUgdW5rbm93biBsb2NhbCAiLCBpbmRleCwgIiBsYXN0IG9uZSBpcyAi
LCBtX2xvY2Fscy5zaXplKCkpOwotICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1
YnR5cGUodmFsdWUudHlwZSgpLCBtX2xvY2Fsc1tpbmRleF0pLCAic2V0X2xvY2FsIHRvIHR5cGUg
IiwgdmFsdWUudHlwZSgpLCAiIGV4cGVjdGVkICIsIG1fbG9jYWxzW2luZGV4XSk7CisgICAgICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYodmFsdWUudHlwZSgpICE9IG1fbG9jYWxzW2luZGV4XSwg
InNldF9sb2NhbCB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwgIiBleHBlY3RlZCAiLCBtX2xvY2Fs
c1tpbmRleF0pOwogICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChzZXRMb2NhbChpbmRl
eCwgdmFsdWUpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC01OTgsNyArNTk4LDcg
QEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdB
U01fUEFSU0VSX0ZBSUxfSUYoIWFyZ3MudHJ5UmVzZXJ2ZUNhcGFjaXR5KGNhbGxlZVNpZ25hdHVy
ZS5hcmd1bWVudENvdW50KCkpLCAiY2FuJ3QgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgY2Fs
bCdzICIsIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudENvdW50KCksICIgYXJndW1lbnRzIik7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEFyZ3VtZW50SW5kZXg7IGkgPCBtX2V4cHJlc3Np
b25TdGFjay5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgVHlwZWRFeHByZXNzaW9uIGFyZyA9
IG1fZXhwcmVzc2lvblN0YWNrLmF0KGkpOwotICAgICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJ
TF9JRighaXNTdWJ0eXBlKGFyZy50eXBlKCksIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0g
Zmlyc3RBcmd1bWVudEluZGV4KSksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGluIGNhbGwsIGdv
dCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVTaWduYXR1cmUuYXJndW1lbnQo
aSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOworICAgICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJ
TF9JRihhcmcudHlwZSgpICE9IGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0gZmlyc3RBcmd1
bWVudEluZGV4KSwgImFyZ3VtZW50IHR5cGUgbWlzbWF0Y2ggaW4gY2FsbCwgZ290ICIsIGFyZy50
eXBlKCksICIsIGV4cGVjdGVkICIsIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0gZmlyc3RB
cmd1bWVudEluZGV4KSk7CiAgICAgICAgICAgICBhcmdzLnVuY2hlY2tlZEFwcGVuZChhcmcpOwog
ICAgICAgICAgICAgbV9jb250ZXh0LmRpZFBvcFZhbHVlRnJvbVN0YWNrKCk7CiAgICAgICAgIH0K
QEAgLTYzOSw3ICs2MzksNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVf
Q0FTRSkKICAgICAgICAgZm9yIChzaXplX3QgaSA9IGZpcnN0QXJndW1lbnRJbmRleDsgaSA8IG1f
ZXhwcmVzc2lvblN0YWNrLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBUeXBlZEV4cHJlc3Np
b24gYXJnID0gbV9leHByZXNzaW9uU3RhY2suYXQoaSk7CiAgICAgICAgICAgICBpZiAoaSA8IG1f
ZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIDEpCi0gICAgICAgICAgICAgICAgV0FTTV9WQUxJREFU
T1JfRkFJTF9JRighaXNTdWJ0eXBlKGFyZy50eXBlKCksIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVu
dChpIC0gZmlyc3RBcmd1bWVudEluZGV4KSksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGluIGNh
bGxfaW5kaXJlY3QsIGdvdCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVTaWdu
YXR1cmUuYXJndW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOworICAgICAgICAgICAgICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoYXJnLnR5cGUoKSAhPSBjYWxsZWVTaWduYXR1cmUuYXJn
dW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGlu
IGNhbGxfaW5kaXJlY3QsIGdvdCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVT
aWduYXR1cmUuYXJndW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOwogICAgICAgICAgICAg
YXJncy51bmNoZWNrZWRBcHBlbmQoYXJnKTsKICAgICAgICAgICAgIG1fY29udGV4dC5kaWRQb3BW
YWx1ZUZyb21TdGFjaygpOwogICAgICAgICB9CkBAIC02NjIsNyArNjYyLDcgQEAgRk9SX0VBQ0hf
V0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIHVuc2lnbmVkIG9mZnNl
dCA9IG1fZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRD
b3VudCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5saW5lU2lnbmF0dXJl
LT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAgICAgICAgVHlwZSB0eXBlID0gbV9leHBy
ZXNzaW9uU3RhY2suYXQob2Zmc2V0ICsgaSkudHlwZSgpOwotICAgICAgICAgICAgV0FTTV9WQUxJ
REFUT1JfRkFJTF9JRighaXNTdWJ0eXBlKHR5cGUsIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnQo
aSkpLCAiQmxvY2sgZXhwZWN0cyB0aGUgYXJndW1lbnQgYXQgaW5kZXgiLCBpLCAiIHRvIGJlIGEg
c3VidHlwZSBvZiAiLCBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiIGJ1dCBhcmd1bWVu
dCBoYXMgdHlwZSAiLCB0eXBlKTsKKyAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYo
dHlwZSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiQmxvY2sgZXhwZWN0cyB0aGUg
YXJndW1lbnQgYXQgaW5kZXgiLCBpLCAiIHRvIGJlICIsIGlubGluZVNpZ25hdHVyZS0+YXJndW1l
bnQoaSksICIgYnV0IGFyZ3VtZW50IGhhcyB0eXBlICIsIHR5cGUpOwogICAgICAgICB9CiAKICAg
ICAgICAgaW50NjRfdCBvbGRTaXplID0gbV9leHByZXNzaW9uU3RhY2suc2l6ZSgpOwpAQCAtNjg1
LDcgKzY4NSw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQog
ICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSBtX2V4cHJlc3Npb25TdGFjay5zaXplKCkgLSBpbmxp
bmVTaWduYXR1cmUtPmFyZ3VtZW50Q291bnQoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAg
ICAgIFR5cGUgdHlwZSA9IG1fZXhwcmVzc2lvblN0YWNrLmF0KG9mZnNldCArIGkpLnR5cGUoKTsK
LSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh0eXBlLCBpbmxp
bmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpKSwgIkxvb3AgZXhwZWN0cyB0aGUgYXJndW1lbnQgYXQg
aW5kZXgiLCBpLCAiIHRvIGJlIGEgc3VidHlwZSBvZiAiLCBpbmxpbmVTaWduYXR1cmUtPmFyZ3Vt
ZW50KGkpLCAiIGJ1dCBhcmd1bWVudCBoYXMgdHlwZSAiLCB0eXBlKTsKKyAgICAgICAgICAgIFdB
U01fVkFMSURBVE9SX0ZBSUxfSUYodHlwZSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkp
LCAiTG9vcCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRleCIsIGksICIgdG8gYmUgIiwgaW5s
aW5lU2lnbmF0dXJlLT5hcmd1bWVudChpKSwgIiBidXQgYXJndW1lbnQgaGFzIHR5cGUgIiwgdHlw
ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBpbnQ2NF90IG9sZFNpemUgPSBtX2V4cHJlc3Npb25T
dGFjay5zaXplKCk7CkBAIC03MTAsNyArNzEwLDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RP
UkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYobV9leHBy
ZXNzaW9uU3RhY2suc2l6ZSgpIDwgaW5saW5lU2lnbmF0dXJlLT5hcmd1bWVudENvdW50KCksICJU
b28gZmV3IGFyZ3VtZW50cyBvbiBzdGFjayBmb3IgaWYgYmxvY2suIElmIGV4cGVjdHMgIiwgaW5s
aW5lU2lnbmF0dXJlLT5hcmd1bWVudENvdW50KCksICIsIGJ1dCBvbmx5ICIsIG1fZXhwcmVzc2lv
blN0YWNrLnNpemUoKSwgIiB3ZXJlIHByZXNlbnQuIElmIGJsb2NrIGhhcyBzaWduYXR1cmU6ICIs
IGlubGluZVNpZ25hdHVyZS0+dG9TdHJpbmcoKSk7CiAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9
IG1fZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRDb3Vu
dCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5saW5lU2lnbmF0dXJlLT5h
cmd1bWVudENvdW50KCk7ICsraSkKLSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYo
IWlzU3VidHlwZShtX2V4cHJlc3Npb25TdGFja1tvZmZzZXQgKyBpXS50eXBlKCksIGlubGluZVNp
Z25hdHVyZS0+YXJndW1lbnQoaSkpLCAiTG9vcCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRl
eCIsIGksICIgdG8gYmUgYSBzdWJ0eXBlIG9mICIsIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnQo
aSksICIgYnV0IGFyZ3VtZW50IGhhcyB0eXBlICIsIG1fZXhwcmVzc2lvblN0YWNrW2ldLnR5cGUo
KSk7CisgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKG1fZXhwcmVzc2lvblN0YWNr
W29mZnNldCArIGldLnR5cGUoKSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiTG9v
cCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRleCIsIGksICIgdG8gYmUgIiwgaW5saW5lU2ln
bmF0dXJlLT5hcmd1bWVudChpKSwgIiBidXQgYXJndW1lbnQgaGFzIHR5cGUgIiwgbV9leHByZXNz
aW9uU3RhY2tbaV0udHlwZSgpKTsKIAogICAgICAgICBpbnQ2NF90IG9sZFNpemUgPSBtX2V4cHJl
c3Npb25TdGFjay5zaXplKCk7CiAgICAgICAgIFN0YWNrIG5ld1N0YWNrOwpAQCAtNzg0LDcgKzc4
NCw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQogICAgICAg
ICAgICAgQ29udHJvbFR5cGUqIHRhcmdldCA9IHRhcmdldHNbaV07CiAgICAgICAgICAgICBXQVNN
X1ZBTElEQVRPUl9GQUlMX0lGKGRlZmF1bHRUYXJnZXQuYnJhbmNoVGFyZ2V0QXJpdHkoKSAhPSB0
YXJnZXQtPmJyYW5jaFRhcmdldEFyaXR5KCksICJicl90YWJsZSB0YXJnZXQgdHlwZSBzaXplIG1p
c21hdGNoLiBEZWZhdWx0IGhhcyBzaXplOiAiLCBkZWZhdWx0VGFyZ2V0LmJyYW5jaFRhcmdldEFy
aXR5KCksICJidXQgdGFyZ2V0OiAiLCBpLCAiIGhhcyBzaXplOiAiLCB0YXJnZXQtPmJyYW5jaFRh
cmdldEFyaXR5KCkpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCB0eXBlID0gMDsgdHlwZSA8
IGRlZmF1bHRUYXJnZXQuYnJhbmNoVGFyZ2V0QXJpdHkoKTsgKyt0eXBlKQotICAgICAgICAgICAg
ICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZShkZWZhdWx0VGFyZ2V0LmJyYW5j
aFRhcmdldFR5cGUodHlwZSksIHRhcmdldC0+YnJhbmNoVGFyZ2V0VHlwZSh0eXBlKSksICJicl90
YWJsZSB0YXJnZXQgdHlwZSBtaXNtYXRjaCBhdCBvZmZzZXQgIiwgdHlwZSwgIiBleHBlY3RlZDog
IiwgZGVmYXVsdFRhcmdldC5icmFuY2hUYXJnZXRUeXBlKHR5cGUpLCAiIGJ1dCBzYXc6ICIsIHRh
cmdldC0+YnJhbmNoVGFyZ2V0VHlwZSh0eXBlKSwgIiB3aGVuIHRhcmdldGluZyBibG9jazogIiwg
dGFyZ2V0LT5zaWduYXR1cmUoKS0+dG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgV0FTTV9W
QUxJREFUT1JfRkFJTF9JRihkZWZhdWx0VGFyZ2V0LmJyYW5jaFRhcmdldFR5cGUodHlwZSkgIT0g
dGFyZ2V0LT5icmFuY2hUYXJnZXRUeXBlKHR5cGUpLCAiYnJfdGFibGUgdGFyZ2V0IHR5cGUgbWlz
bWF0Y2ggYXQgb2Zmc2V0ICIsIHR5cGUsICIgZXhwZWN0ZWQ6ICIsIGRlZmF1bHRUYXJnZXQuYnJh
bmNoVGFyZ2V0VHlwZSh0eXBlKSwgIiBidXQgc2F3OiAiLCB0YXJnZXQtPmJyYW5jaFRhcmdldFR5
cGUodHlwZSksICIgd2hlbiB0YXJnZXRpbmcgYmxvY2s6ICIsIHRhcmdldC0+c2lnbmF0dXJlKCkt
PnRvU3RyaW5nKCkpOwogICAgICAgICB9CiAKICAgICAgICAgV0FTTV9GQUlMX0lGX0hFTFBFUl9G
QUlMUyhjaGVja0JyYW5jaFRhcmdldChkZWZhdWx0VGFyZ2V0KSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcAppbmRleCAzOWVjY2QyM2YzYmNiNDIyNjVlODM5
MmFmNDFkNTZkZjJmZWVlMzQ1Li4yZDY3NTgwYjg3ZThiOWE2MDM0YjQ1ZmU5ZWVlYmM0NzNkMDVi
OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAKQEAg
LTYyLDcgKzYyLDcgQEAgSW5zdGFuY2U6Okluc3RhbmNlKENvbnRleHQqIGNvbnRleHQsIFJlZjxN
b2R1bGU+JiYgbW9kdWxlLCBFbnRyeUZyYW1lKiogcG9pbnRlclQKICAgICAgICAgaWYgKGdsb2Jh
bC5iaW5kaW5nTW9kZSA9PSBXYXNtOjpHbG9iYWxJbmZvcm1hdGlvbjo6QmluZGluZ01vZGU6OlBv
cnRhYmxlKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGtlcHQgYWxpdmUgYnkgSlNXZWJBc3Nl
bWJseUluc3RhbmNlIC0+IEpTV2ViQXNzZW1ibHlHbG9iYWwgLT4gYmluZGluZy4KICAgICAgICAg
ICAgIG1fZ2xvYmFsc1RvQmluZGluZy5zZXQoaSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXNTdWJ0
eXBlKGdsb2JhbC50eXBlLCBFeHRlcm5yZWYpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoaXNSZWZU
eXBlKGdsb2JhbC50eXBlKSkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBrZXB0IGFsaXZlIGJ5
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSAtPiBiaW5kaW5nLgogICAgICAgICAgICAgbV9nbG9iYWxz
VG9NYXJrLnNldChpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggZDNhMDU5YTk5MDQ3YTczMTc0MDZkOGJi
YWM3NDU3MjZmY2QyNDJmZC4uZGZjOTE5ZWYzMTAxZDA4MTBlYmM2OGZhYjA5MmU0ZmE5Yzk2ZTBh
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0
b3IuY3BwCkBAIC04MjYsMTMgKzgyNiwxMyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpzZXRHbG9i
YWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUgogICAg
IFR5cGUgdHlwZSA9IGdsb2JhbC50eXBlOwogICAgIHN3aXRjaCAoZ2xvYmFsLmJpbmRpbmdNb2Rl
KSB7CiAgICAgY2FzZSBXYXNtOjpHbG9iYWxJbmZvcm1hdGlvbjo6QmluZGluZ01vZGU6OkVtYmVk
ZGVkSW5JbnN0YW5jZToKLSAgICAgICAgaWYgKGlzU3VidHlwZSh0eXBlLCBFeHRlcm5yZWYpKQor
ICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUpKQogICAgICAgICAgICAgV2FzbVNldEdsb2JhbFJl
Zjo6ZW1pdCh0aGlzLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBX
YXNtU2V0R2xvYmFsOjplbWl0KHRoaXMsIGluZGV4LCB2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkJpbmRpbmdNb2RlOjpQb3J0YWJsZToK
LSAgICAgICAgaWYgKGlzU3VidHlwZSh0eXBlLCBFeHRlcm5yZWYpKQorICAgICAgICBpZiAoaXNS
ZWZUeXBlKHR5cGUpKQogICAgICAgICAgICAgV2FzbVNldEdsb2JhbFJlZlBvcnRhYmxlQmluZGlu
Zzo6ZW1pdCh0aGlzLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBX
YXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nOjplbWl0KHRoaXMsIGluZGV4LCB2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAKaW5k
ZXggZDczNGM2MGRjOTlkZTZhZmVkMjM1ZmE2OGFmYTgyZjI2NGIwYzhiNy4uMGY1MzMzOTQ3MjBi
ZjczYjBlOTc0OGY3ZTZkNDljODEyYzUyOGEyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVNlY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcApAQCAtMjk2LDcgKzI5Niw3IEBAIGF1dG8g
U2VjdGlvblBhcnNlcjo6cGFyc2VHbG9iYWwoKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgICAg
ICBnbG9iYWwuaW5pdGlhbGl6YXRpb25UeXBlID0gR2xvYmFsSW5mb3JtYXRpb246OkZyb21SZWZG
dW5jOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBnbG9iYWwuaW5pdGlhbGl6YXRpb25UeXBl
ID0gR2xvYmFsSW5mb3JtYXRpb246OkZyb21FeHByZXNzaW9uOwotICAgICAgICBXQVNNX1BBUlNF
Ul9GQUlMX0lGKCFpc1N1YnR5cGUodHlwZUZvckluaXRPcGNvZGUsIGdsb2JhbC50eXBlKSwgIkds
b2JhbCBpbml0X2V4cHIgb3Bjb2RlIG9mIHR5cGUgIiwgdHlwZUZvckluaXRPcGNvZGUsICIgZG9l
c24ndCBtYXRjaCBnbG9iYWwncyB0eXBlICIsIGdsb2JhbC50eXBlKTsKKyAgICAgICAgV0FTTV9Q
QVJTRVJfRkFJTF9JRih0eXBlRm9ySW5pdE9wY29kZSAhPSBnbG9iYWwudHlwZSwgIkdsb2JhbCBp
bml0X2V4cHIgb3Bjb2RlIG9mIHR5cGUgIiwgdHlwZUZvckluaXRPcGNvZGUsICIgZG9lc24ndCBt
YXRjaCBnbG9iYWwncyB0eXBlICIsIGdsb2JhbC50eXBlKTsKIAogICAgICAgICBtX2luZm8tPmds
b2JhbHMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoZ2xvYmFsKSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmQuY3BwCmluZGV4IDMxYzIxZTNjNDM3MDJjOTlmYjZmODA5NTRkMGM1ZTQ3N2Q3MGRmN2QuLmU5
ODRiOWIwZWU0NzNiNTc5MGViNTc4ODU0Mzk5MmE5MjAyYjg3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5j
cHAKQEAgLTI1NiwxMCArMjU2LDExIEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6Omxp
bmsoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSwgSlNPYmplCiAgICAgICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgYXV0byBnbG9iYWxUeXBlID0gbW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFsc1tpbXBv
cnQua2luZEluZGV4XS50eXBlOwogICAgICAgICAgICAgICAgICAgICAvLyBpaS4gSWYgdGhlIGds
b2JhbF90eXBlIG9mIGkgaXMgaTY0IG9yIFR5cGUodikgaXMgbm90IE51bWJlciwgdGhyb3cgYSBX
ZWJBc3NlbWJseS5MaW5rRXJyb3IuCi0gICAgICAgICAgICAgICAgICAgIGlmIChtb2R1bGVJbmZv
cm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5cGUgPT0gV2FzbTo6STY0KQorICAg
ICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsVHlwZSA9PSBXYXNtOjpJNjQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQg
Z2xvYmFsIiwgImNhbm5vdCBiZSBhbiBpNjQiKSkpOwotICAgICAgICAgICAgICAgICAgICBpZiAo
IWlzU3VidHlwZShtb2R1bGVJbmZvcm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5
cGUsIFdhc206OkV4dGVybnJlZikgJiYgIXZhbHVlLmlzTnVtYmVyKCkpCisgICAgICAgICAgICAg
ICAgICAgIGlmICghaXNSZWZUeXBlKGdsb2JhbFR5cGUpICYmICF2YWx1ZS5pc051bWJlcigpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwg
ImltcG9ydGVkIGdsb2JhbCIsICJtdXN0IGJlIGEgbnVtYmVyIikpKTsKIAogICAgICAgICAgICAg
ICAgICAgICAvLyBpaWkuIEFwcGVuZCBUb1dlYkFzc2VtYmx5VmFsdWUodikgdG8gaW1wb3J0cy4K
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZWZlYWMzNmJhNTNhMTNjODRjZGMyMjFlMDdkMGE3ODE1YjhhNDU3Zi4uZTk5ZDk5ZmVmNzUxNGMy
MjQ1MmJhNDY4MGVjNDJkYzA1ZGNlZDUzNyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0xMS0xMiAgRG1p
dHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXQVNN
LVJlZmVyZW5jZXNdIFJlbW92ZSBzdWJ0eXBpbmcgcnVsZSBmb3IgZXh0ZXJucmVmIGFuZCBmdW5j
cmVmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4
ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtl
IGZ1bmNyZWYgaXMgbm90IGEgc3VidHlwZSBvZiBleHRlcm5yZWYuCisgICAgICAgIFRoZSBzcGVj
OiBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5pby9yZWZlcmVuY2UtdHlwZXMvY29yZS8KKyAg
ICAgICAgVGhlIFBSIGZvciByZW1vdmluZyBzdWJ0eXBlIGZyb20gdGhlIHNwZWM6CisgICAgICAg
IGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJseS9yZWZlcmVuY2UtdHlwZXMvcHVsbC84Ny4K
KworICAgICAgICAqIHdhc20vcmVmZXJlbmNlcy9mdW5jX3JlZi5qczoKKyAgICAgICAgKGFzc2Vy
dC5lcS5pbnN0YW5jZS5leHBvcnRzLmZpeC5mdW4pOgorICAgICAgICAoYXNzZXJ0LmVxLmluc3Rh
bmNlLmV4cG9ydHMuZml4KToKKyAgICAgICAgKiB3YXNtL3JlZmVyZW5jZXMvdmFsaWRhdGlvbi5q
czoKKwogMjAyMC0xMS0xMiAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+CiAKICAg
ICAgICAgW0ludGxdW0FSTXY3XVtNSVBTXSBTa2lwIHN0cmVzcy9pbnRsLWRhdGV0aW1lZm9ybWF0
LWZvcm1hdHJhbmdlLmpzCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vanMtYXBpL3dlYi1hc3Nl
bWJseS1pbnN0YW50aWF0ZS5qcyBiL0pTVGVzdHMvd2FzbS9qcy1hcGkvd2ViLWFzc2VtYmx5LWlu
c3RhbnRpYXRlLmpzCmluZGV4IDk0MDk4ODk5ZGM4Yjc4NzY2MzQ5MDA4MzZkYzlkYWNhNTFiNzM2
NTIuLjIzN2IzYTg5YWNjMDU5ZmE5MTkwYTg5NjUzYzg4MjdlZTc0MGVmYTIgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvd2FzbS9qcy1hcGkvd2ViLWFzc2VtYmx5LWluc3RhbnRpYXRlLmpzCisrKyBiL0pT
VGVzdHMvd2FzbS9qcy1hcGkvd2ViLWFzc2VtYmx5LWluc3RhbnRpYXRlLmpzCkBAIC03Niw3ICs3
Niw3IEBAIGFzc2VydC5lcShXZWJBc3NlbWJseS5pbnN0YW50aWF0ZS5sZW5ndGgsIDEpOwogICAg
ICAgICAgICAgbGV0IHttb2R1bGUsIGluc3RhbmNlfSA9IGF3YWl0IFdlYkFzc2VtYmx5Lmluc3Rh
bnRpYXRlKGJpbik7CiAgICAgICAgIH0gY2F0Y2goZSkgewogICAgICAgICAgICAgYXNzZXJ0LnRy
dXRoeShlIGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yKTsKLSAgICAgICAgICAg
IGFzc2VydC5lcShlLm1lc3NhZ2UsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0
ZTogY29udHJvbCBmbG93IHJldHVybnMgd2l0aCB1bmV4cGVjdGVkIHR5cGUuIEYzMiBpcyBub3Qg
YSBzdWJ0eXBlIG9mIEkzMiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCIpOworICAgICAgICAgICAg
YXNzZXJ0LmVxKGUubWVzc2FnZSwgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRl
OiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gRjMyIGlzIG5vdCBh
IEkzMiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCIpOwogICAgICAgICB9CiAgICAgfQogCmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9mdW5jX3JlZi5qcyBiL0pTVGVzdHMvd2Fz
bS9yZWZlcmVuY2VzL2Z1bmNfcmVmLmpzCmluZGV4IDg0YzEzZjg2MjYwZGIyMWM1MThkYjJiMDdi
NGQ5MWY3ZmJkNjA1YmEuLjMxNzE1YTU1MWIxOTY3NDliZWI0MTA1MjE2MmUwYjM0ODY0ZTMyZDMg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL2Z1bmNfcmVmLmpzCisrKyBiL0pT
VGVzdHMvd2FzbS9yZWZlcmVuY2VzL2Z1bmNfcmVmLmpzCkBAIC03NSwyNyArNzUsMjAgQEAgZnVu
Y3Rpb24gbWFrZUZ1bmNyZWZJZGVudCgpIHsKICAgICAgICAgICAuVHlwZSgpLkVuZCgpCiAgICAg
ICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKICAgICAgICAgICAuRXhwb3J0KCkKLSAgICAgICAgICAg
ICAgLkZ1bmN0aW9uKCJoIikKICAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJpIikKLSAgICAgICAg
ICAgICAgLkZ1bmN0aW9uKCJnZXRfaCIpCisgICAgICAgICAgICAgIC5GdW5jdGlvbigiZ2V0X2ki
KQogICAgICAgICAgICAgICAuRnVuY3Rpb24oImZpeCIpCiAgICAgICAgICAgICAgIC5GdW5jdGlv
bigiZ2V0X25vdF9leHBvcnRlZCIpCiAgICAgICAgICAgICAgIC5GdW5jdGlvbigibG9jYWxfcmVh
ZCIpCiAgICAgICAgICAgLkVuZCgpCiAgICAgICAgICAgLkNvZGUoKQotICAgICAgICAgICAgLkZ1
bmN0aW9uKCJoIiwgeyBwYXJhbXM6IFsiZnVuY3JlZiJdLCByZXQ6ICJleHRlcm5yZWYiIH0sIFsi
ZXh0ZXJucmVmIl0pCi0gICAgICAgICAgICAgIC5HZXRMb2NhbCgwKQotICAgICAgICAgICAgICAu
U2V0TG9jYWwoMSkKLSAgICAgICAgICAgICAgLkdldExvY2FsKDEpCi0gICAgICAgICAgICAuRW5k
KCkKLQogICAgICAgICAgICAgLkZ1bmN0aW9uKCJpIiwgeyBwYXJhbXM6IFsiZnVuY3JlZiJdLCBy
ZXQ6ICJmdW5jcmVmIiB9LCBbImZ1bmNyZWYiXSkKICAgICAgICAgICAgICAgLkdldExvY2FsKDAp
CiAgICAgICAgICAgICAgIC5TZXRMb2NhbCgxKQogICAgICAgICAgICAgICAuR2V0TG9jYWwoMSkK
ICAgICAgICAgICAgIC5FbmQoKQogCi0gICAgICAgICAgICAuRnVuY3Rpb24oImdldF9oIiwgeyBw
YXJhbXM6IFtdLCByZXQ6ICJmdW5jcmVmIiB9LCBbImZ1bmNyZWYiXSkKKyAgICAgICAgICAgIC5G
dW5jdGlvbigiZ2V0X2kiLCB7IHBhcmFtczogW10sIHJldDogImZ1bmNyZWYiIH0sIFsiZnVuY3Jl
ZiJdKQogICAgICAgICAgICAgICAuSTMyQ29uc3QoMCkKICAgICAgICAgICAgICAgLlJlZkZ1bmMo
MCkKICAgICAgICAgICAgICAgLlNldExvY2FsKDApCkBAIC0xMTEsMTEgKzEwNCwxMSBAQCBmdW5j
dGlvbiBtYWtlRnVuY3JlZklkZW50KCkgewogICAgICAgICAgICAgLkVuZCgpCiAKICAgICAgICAg
ICAgIC5GdW5jdGlvbigiZml4IiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJmdW5jcmVmIiB9LCBbXSkK
LSAgICAgICAgICAgICAgLlJlZkZ1bmMoMykKKyAgICAgICAgICAgICAgLlJlZkZ1bmMoMikKICAg
ICAgICAgICAgIC5FbmQoKQogCiAgICAgICAgICAgICAuRnVuY3Rpb24oImdldF9ub3RfZXhwb3J0
ZWQiLCB7IHBhcmFtczogW10sIHJldDogImZ1bmNyZWYiIH0sIFtdKQotICAgICAgICAgICAgICAu
UmVmRnVuYyg1KQorICAgICAgICAgICAgICAuUmVmRnVuYyg0KQogICAgICAgICAgICAgLkVuZCgp
CiAKICAgICAgICAgICAgIC5GdW5jdGlvbigicmV0XzQyIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJp
MzIiIH0sIFtdKQpAQCAtMTM0LDIyICsxMjcsMTYgQEAgZnVuY3Rpb24gbWFrZUZ1bmNyZWZJZGVu
dCgpIHsKICAgICBmdWxsR0MoKTsKIAogICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmxv
Y2FsX3JlYWQoKSwgMSkKLSAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5oKG51bGwpLCBu
dWxsKQotCi0gICAgYXNzZXJ0LnRocm93cygoKSA9PiBpbnN0YW5jZS5leHBvcnRzLmgoZnVuKSwg
RXJyb3IsICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVh
dGluZyAnZnVuYyguLi5hcmdzKScpIikKLSAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5o
KG15ZnVuKSwgbXlmdW4pCi0gICAgYXNzZXJ0LnRocm93cygoKSA9PiBpbnN0YW5jZS5leHBvcnRz
LmgoNSksIEVycm9yLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24g
KGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCi0gICAgYXNzZXJ0LnRocm93cygoKSA9PiBp
bnN0YW5jZS5leHBvcnRzLmgodW5kZWZpbmVkKSwgRXJyb3IsICJGdW5jcmVmIG11c3QgYmUgYW4g
ZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKIAog
ICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmkobnVsbCksIG51bGwpCiAgICAgYXNzZXJ0
LmVxKGluc3RhbmNlLmV4cG9ydHMuaShteWZ1biksIG15ZnVuKQogICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5pKGZ1biksIEVycm9yLCAiRnVuY3JlZiBtdXN0IGJlIGFu
IGV4cG9ydGVkIHdhc20gZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCiAg
ICAgYXNzZXJ0LnRocm93cygoKSA9PiBpbnN0YW5jZS5leHBvcnRzLmkoNSksIEVycm9yLCAiRnVu
Y3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ2Z1bmMo
Li4uYXJncyknKSIpCiAKLSAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMu
Z2V0X2goKShmdW4pLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1
bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQotICAgIGFzc2VydC5lcShpbnN0
YW5jZS5leHBvcnRzLmdldF9oKCkobnVsbCksIG51bGwpCi0gICAgYXNzZXJ0LmVxKGluc3RhbmNl
LmV4cG9ydHMuZ2V0X2goKShteWZ1biksIG15ZnVuKQotICAgIGFzc2VydC50aHJvd3MoKCkgPT4g
aW5zdGFuY2UuZXhwb3J0cy5nZXRfaCgpKDUpLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBl
eHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQorICAg
IGFzc2VydC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5nZXRfaSgpKGZ1biksIEVycm9y
LCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24gKGV2YWx1YXRpbmcg
J2Z1bmMoLi4uYXJncyknKSIpCisgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuZ2V0X2ko
KShudWxsKSwgbnVsbCkKKyAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5nZXRfaSgpKG15
ZnVuKSwgbXlmdW4pCisgICAgYXNzZXJ0LnRocm93cygoKSA9PiBpbnN0YW5jZS5leHBvcnRzLmdl
dF9pKCkoNSksIEVycm9yLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rp
b24gKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCiAKICAgICBhc3NlcnQuZXEoaW5zdGFu
Y2UuZXhwb3J0cy5nZXRfbm90X2V4cG9ydGVkKCkoKSwgNDIpCiAKQEAgLTE1Nyw2ICsxNDQsMjkg
QEAgZnVuY3Rpb24gbWFrZUZ1bmNyZWZJZGVudCgpIHsKICAgICBhc3NlcnQuZXEoaW5zdGFuY2Uu
ZXhwb3J0cy5maXgoKSwgaW5zdGFuY2UuZXhwb3J0cy5maXgpOwogfQogCisvLyBDYXN0aW5nIHRo
ZSBGdW5jcmVmIHRvIEV4dGVybnJlZiBpcyBmb3JiaWRkZW4uCisKK3sKKyAgICBmdW5jdGlvbiBm
dW4oKSB7IHJldHVybiA0MTsgfQorCisgICAgY29uc3QgYnVpbGRlciA9IChuZXcgQnVpbGRlcigp
KQorICAgICAgICAgIC5UeXBlKCkuRW5kKCkKKyAgICAgICAgICAuRnVuY3Rpb24oKS5FbmQoKQor
ICAgICAgICAgIC5FeHBvcnQoKQorICAgICAgICAgICAgICAuRnVuY3Rpb24oImgiKQorICAgICAg
ICAgIC5FbmQoKQorICAgICAgICAgIC5Db2RlKCkKKyAgICAgICAgICAgIC5GdW5jdGlvbigiaCIs
IHsgcGFyYW1zOiBbImZ1bmNyZWYiXSwgcmV0OiAiZXh0ZXJucmVmIiB9LCBbImV4dGVybnJlZiJd
KQorICAgICAgICAgICAgICAuR2V0TG9jYWwoMCkKKyAgICAgICAgICAgICAgLlNldExvY2FsKDEp
CisgICAgICAgICAgICAgIC5HZXRMb2NhbCgxKQorICAgICAgICAgICAgLkVuZCgpCisgICAgICAg
ICAgLkVuZCgpOworCisgICAgY29uc3QgYmluID0gYnVpbGRlci5XZWJBc3NlbWJseSgpLmdldCgp
OworICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4pLCBX
ZWJBc3NlbWJseS5Db21waWxlRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxp
ZGF0ZTogc2V0X2xvY2FsIHRvIHR5cGUgRnVuY3JlZiBleHBlY3RlZCBFeHRlcm5yZWYsIGluIGZ1
bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmlu
KScpIik7Cit9CisKIC8vIEdsb2JhbHMKIAogewpAQCAtMjQ2LDcgKzI1Niw3IEBAIGFzc2VydC50
aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgobmV3IEJ1aWxkZXIoKSkKICAgICAu
RnVuY3Rpb24oImgiLCB7IHBhcmFtczogWyJleHRlcm5yZWYiXSwgcmV0OiAiZnVuY3JlZiIgfSkK
ICAgICAgIC5HZXRMb2NhbCgwKQogICAgIC5FbmQoKQotICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5n
ZXQoKSksIEVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IGNvbnRy
b2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBFeHRlcm5yZWYgaXMgbm90IGEg
c3VidHlwZSBvZiBGdW5jcmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICdu
ZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKTsKKyAgLkVuZCgpLldlYkFzc2VtYmx5KCkuZ2V0KCkp
LCBFcnJvciwgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiBjb250cm9sIGZs
b3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gRXh0ZXJucmVmIGlzIG5vdCBhIEZ1bmNy
ZWYsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5N
b2R1bGUnKSIpOwogCiBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUo
KG5ldyBCdWlsZGVyKCkpCiAgIC5UeXBlKCkuRW5kKCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2Fz
bS9yZWZlcmVuY2VzL3ZhbGlkYXRpb24uanMgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy92YWxp
ZGF0aW9uLmpzCmluZGV4IGM5NjAxMjg2NjM1NzE3ODExOWRjN2FjNjFhYjFmYTUxNjdkMmE5NWYu
LmQxNDdiMWQwYjRmOWY1Nzg5MDFlMDgyY2MxZGZiNjllODNkMTgwNzUgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvd2FzbS9yZWZlcmVuY2VzL3ZhbGlkYXRpb24uanMKKysrIGIvSlNUZXN0cy93YXNtL3Jl
ZmVyZW5jZXMvdmFsaWRhdGlvbi5qcwpAQCAtMTksNyArMTksNyBAQCBpbXBvcnQgQnVpbGRlciBm
cm9tICcuLi9CdWlsZGVyLmpzJzsKICAgICBjb25zdCBiaW4gPSBidWlsZGVyLldlYkFzc2VtYmx5
KCk7CiAgICAgYmluLnRyaW0oKTsKIAotICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFz
c2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpLCBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsICJXZWJB
c3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogcmVmLmlzX251bGwgdG8gdHlwZSBJMzIg
ZXhwZWN0ZWQgRXh0ZXJucmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICdu
ZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbi5nZXQoKSknKSIpOworICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpLCBXZWJBc3NlbWJseS5Db21w
aWxlRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogcmVmLmlzX251
bGwgdG8gdHlwZSBJMzIgZXhwZWN0ZWQgYSByZWZlcmVuY2UgdHlwZSwgaW4gZnVuY3Rpb24gYXQg
aW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpJyki
KTsKIH0KIAogewpAQCAtOTAsNyArOTAsNyBAQCBpbXBvcnQgQnVpbGRlciBmcm9tICcuLi9CdWls
ZGVyLmpzJzsKICAgICBjb25zdCBiaW4gPSBidWlsZGVyLldlYkFzc2VtYmx5KCk7CiAgICAgYmlu
LnRyaW0oKTsKIAotICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVs
ZShiaW4uZ2V0KCkpLCBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1
bGUgZG9lc24ndCB2YWxpZGF0ZTogY29udHJvbCBmbG93IHJldHVybnMgd2l0aCB1bmV4cGVjdGVk
IHR5cGUuIEV4dGVybnJlZiBpcyBub3QgYSBzdWJ0eXBlIG9mIEZ1bmNyZWYsIGluIGZ1bmN0aW9u
IGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdldCgp
KScpIik7CisgICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJp
bi5nZXQoKSksIFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvciwgIldlYkFzc2VtYmx5Lk1vZHVsZSBk
b2Vzbid0IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlw
ZS4gRXh0ZXJucmVmIGlzIG5vdCBhIEZ1bmNyZWYsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2
YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdldCgpKScpIik7CiB9CiAKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414308</attachid>
            <date>2020-11-16 22:29:38 -0800</date>
            <delta_ts>2020-11-16 23:29:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218885-20201117132935.patch</filename>
            <type>text/plain</type>
            <size>32740</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MjYxOTQ3NzEzOTJlZWZiMDM2ZmRkNTgzNDg5MDdlOTc3OTRhODliLi41YjRjOTRhNjQxMTc2NzA0
ZWQ2ZWFmYTY2YzA3YTMyOTVhYzcxODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMS0xMiAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLVJlZmVyZW5jZXNdIFJlbW92ZSBzdWJ0eXBpbmcg
cnVsZSBmb3IgZXh0ZXJucmVmIGFuZCBmdW5jcmVmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGZ1bmNyZWYgaXMgbm90IGEgc3VidHlwZSBvZiBl
eHRlcm5yZWYuCisgICAgICAgIFRoZSBzcGVjOiBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5p
by9yZWZlcmVuY2UtdHlwZXMvY29yZS8KKyAgICAgICAgVGhlIFBSIGZvciByZW1vdmluZyBzdWJ0
eXBlIGZyb20gdGhlIHNwZWM6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJs
eS9yZWZlcmVuY2UtdHlwZXMvcHVsbC84Ny4KKworICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5o
OgorICAgICAgICAoSlNDOjpXYXNtOjppc1N1YnR5cGUpOgorICAgICAgICAqIHdhc20vV2FzbUZ1
bmN0aW9uUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRl
eHQ+OjpwYXJzZUV4cHJlc3Npb24pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGlu
ayk6CisKIDIwMjAtMTEtMTIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGVuc3VyZSB0aGF0IGBKU09OOjpBcnJheU9mPFQ+YCBkb2Vz
bid0IGFsbG93IGBhZGRJdGVtYCB0byBiZSBjYWxsZWQgd2l0aCBhIHR5cGUgb3RoZXIgdGhhbiBg
VGAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwCmluZGV4IDQzZDBjODcyZWU0YzYzYjRkNTZiNmYwZTM0NjIzNTMzM2U4NGI3OTMuLmQ1MThm
Nzc4Zjc0Y2ZjYmY1YTJjN2U0YzgyMDM5NGQwZDU0YmU5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcApAQCAtMTEwMiw3ICsxMTAy
LDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkVGFibGVTaXplKHVuc2lnbmVkIHRhYmxlSW5k
ZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0KIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZFRh
YmxlR3Jvdyh1bnNpZ25lZCB0YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSBmaWxsLCBFeHByZXNz
aW9uVHlwZSBkZWx0YSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAog
ewogICAgIEFTU0VSVChmaWxsLnRtcCgpKTsKLSAgICBBU1NFUlQoaXNTdWJ0eXBlKGZpbGwudHlw
ZSgpLCBtX2luZm8udGFibGVzW3RhYmxlSW5kZXhdLndhc21UeXBlKCkpKTsKKyAgICBBU1NFUlQo
ZmlsbC50eXBlKCkgPT0gbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpKTsKICAg
ICBBU1NFUlQoZGVsdGEudG1wKCkpOwogICAgIEFTU0VSVChkZWx0YS50eXBlKCkgPT0gVHlwZTo6
STMyKTsKICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGU6OkkzMik7CkBAIC0xMTE1LDcgKzEx
MTUsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRUYWJsZUdyb3codW5zaWduZWQgdGFibGVJ
bmRleCwgRXhwcmVzc2lvblR5cGUgZmlsbCwgRXhwcgogYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRk
VGFibGVGaWxsKHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlIG9mZnNldCwgRXhw
cmVzc2lvblR5cGUgZmlsbCwgRXhwcmVzc2lvblR5cGUgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQK
IHsKICAgICBBU1NFUlQoZmlsbC50bXAoKSk7Ci0gICAgQVNTRVJUKGlzU3VidHlwZShmaWxsLnR5
cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpKSk7CisgICAgQVNTRVJU
KGZpbGwudHlwZSgpID09IG1faW5mby50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSk7CiAg
ICAgQVNTRVJUKG9mZnNldC50bXAoKSk7CiAgICAgQVNTRVJUKG9mZnNldC50eXBlKCkgPT0gVHlw
ZTo6STMyKTsKICAgICBBU1NFUlQoY291bnQudG1wKCkpOwpAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAg
YXV0byBBaXJJUkdlbmVyYXRvcjo6c2V0R2xvYmFsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9u
VHlwZSB2YWx1ZSkgLT4gUGFydGlhbFIKICAgICAgICAgICAgIGFwcGVuZChBZGQ2NCwgdGVtcDIs
IHRlbXAsIHRlbXApOwogICAgICAgICAgICAgYXBwZW5kKG1vdmVPcEZvclZhbHVlVHlwZSh0eXBl
KSwgdmFsdWUsIEFyZzo6YWRkcih0ZW1wKSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGlzU3Vi
dHlwZSh0eXBlLCBFeHRlcm5yZWYpKQorICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUpKQogICAg
ICAgICAgICAgZW1pdFdyaXRlQmFycmllckZvckpTV3JhcHBlcigpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFdhc206Okdsb2JhbEluZm9ybWF0aW9uOjpCaW5kaW5nTW9kZTo6UG9ydGFibGU6
CkBAIC0xMjYyLDcgKzEyNjIsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjpzZXRHbG9iYWwodWlu
dDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUgogICAgICAgICB9
CiAgICAgICAgIGFwcGVuZChtb3ZlT3BGb3JWYWx1ZVR5cGUodHlwZSksIHZhbHVlLCBBcmc6OmFk
ZHIodGVtcCkpOwogICAgICAgICAvLyBXZSBlbWl0IGEgd3JpdGUtYmFycmllciBvbnRvIEpTV2Vi
QXNzZW1ibHlHbG9iYWwsIG5vdCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UuCi0gICAgICAgIGlmIChp
c1N1YnR5cGUodHlwZSwgRXh0ZXJucmVmKSkgeworICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUp
KSB7CiAgICAgICAgICAgICBhdXRvIGNlbGwgPSBnNjQoKTsKICAgICAgICAgICAgIGF1dG8gdm0g
PSBnNjQoKTsKICAgICAgICAgICAgIGF1dG8gY2VsbFN0YXRlID0gZzMyKCk7CkBAIC0yMzI1LDcg
KzIzMjUsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QodW5zaWduZWQg
dGFibGVJbmRleCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYQogCiB2b2lkIEFpcklSR2VuZXJhdG9y
Ojp1bmlmeShjb25zdCBFeHByZXNzaW9uVHlwZSBkc3QsIGNvbnN0IEV4cHJlc3Npb25UeXBlIHNv
dXJjZSkKIHsKLSAgICBBU1NFUlQoaXNTdWJ0eXBlKHNvdXJjZS50eXBlKCksIGRzdC50eXBlKCkp
KTsKKyAgICBBU1NFUlQoc291cmNlLnR5cGUoKSA9PSBkc3QudHlwZSgpKTsKICAgICBhcHBlbmQo
bW92ZU9wRm9yVmFsdWVUeXBlKGRzdC50eXBlKCkpLCBzb3VyY2UsIGRzdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCAz
MGIzYzc3MjMyZjJkZWU1ZjQ1OTNhNGJjODk5NTY1N2YxMzk4ZGZiLi5kOGJiMjQ0ZDNiMzMyM2Mx
YWQ4ZmNlZDFiYjY0MzFjZGYwMzQyMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBAIC02MzMsNyArNjMzLDcgQEAgYXV0byBCM0lS
R2VuZXJhdG9yOjphZGRMb2NhbChUeXBlIHR5cGUsIHVpbnQzMl90IGNvdW50KSAtPiBQYXJ0aWFs
UmVzdWx0CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAg
ICAgVmFyaWFibGUqIGxvY2FsID0gbV9wcm9jLmFkZFZhcmlhYmxlKHRvQjNUeXBlKHR5cGUpKTsK
ICAgICAgICAgbV9sb2NhbHMudW5jaGVja2VkQXBwZW5kKGxvY2FsKTsKLSAgICAgICAgYXV0byB2
YWwgPSBpc1N1YnR5cGUodHlwZSwgRXh0ZXJucmVmKSA/IEpTVmFsdWU6OmVuY29kZShqc051bGwo
KSkgOiAwOworICAgICAgICBhdXRvIHZhbCA9IGlzUmVmVHlwZSh0eXBlKSA/IEpTVmFsdWU6OmVu
Y29kZShqc051bGwoKSkgOiAwOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KG1fcHJvYywgU2V0LCBPcmlnaW4oKSwgbG9jYWwsIGNvbnN0YW50KHRvQjNU
eXBlKHR5cGUpLCB2YWwsIE9yaWdpbigpKSk7CiAgICAgfQogICAgIHJldHVybiB7IH07CkBAIC04
MzgsNyArODM4LDcgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjpzZXRHbG9iYWwodWludDMyX3QgaW5k
ZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUmUKICAgICBzd2l0Y2ggKGdsb2Jh
bC5iaW5kaW5nTW9kZSkgewogICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkJpbmRp
bmdNb2RlOjpFbWJlZGRlZEluSW5zdGFuY2U6CiAgICAgICAgIG1fY3VycmVudEJsb2NrLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KG1fcHJvYywgU3RvcmUsIG9yaWdpbigpLCB2YWx1ZSwgZ2xvYmFs
c0FycmF5LCBzYWZlQ2FzdDxpbnQzMl90PihpbmRleCAqIHNpemVvZihSZWdpc3RlcikpKTsKLSAg
ICAgICAgaWYgKGlzU3VidHlwZShnbG9iYWwudHlwZSwgRXh0ZXJucmVmKSkKKyAgICAgICAgaWYg
KGlzUmVmVHlwZShnbG9iYWwudHlwZSkpCiAgICAgICAgICAgICBlbWl0V3JpdGVCYXJyaWVyRm9y
SlNXcmFwcGVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3Jt
YXRpb246OkJpbmRpbmdNb2RlOjpQb3J0YWJsZTogewpAQCAtODQ2LDcgKzg0Niw3IEBAIGF1dG8g
QjNJUkdlbmVyYXRvcjo6c2V0R2xvYmFsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSB2
YWx1ZSkgLT4gUGFydGlhbFJlCiAgICAgICAgIFZhbHVlKiBwb2ludGVyID0gbV9jdXJyZW50Qmxv
Y2stPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4obV9wcm9jLCBMb2FkLCBCMzo6SW50NjQsIG9yaWdp
bigpLCBnbG9iYWxzQXJyYXksIHNhZmVDYXN0PGludDMyX3Q+KGluZGV4ICogc2l6ZW9mKFJlZ2lz
dGVyKSkpOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPiht
X3Byb2MsIFN0b3JlLCBvcmlnaW4oKSwgdmFsdWUsIHBvaW50ZXIpOwogICAgICAgICAvLyBXZSBl
bWl0IGEgd3JpdGUtYmFycmllciBvbnRvIEpTV2ViQXNzZW1ibHlHbG9iYWwsIG5vdCBKU1dlYkFz
c2VtYmx5SW5zdGFuY2UuCi0gICAgICAgIGlmIChpc1N1YnR5cGUoZ2xvYmFsLnR5cGUsIEV4dGVy
bnJlZikpIHsKKyAgICAgICAgaWYgKGlzUmVmVHlwZShnbG9iYWwudHlwZSkpIHsKICAgICAgICAg
ICAgIFZhbHVlKiBpbnN0YW5jZSA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KG1fcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgb3JpZ2luKCksIGluc3RhbmNlVmFsdWUo
KSwgc2FmZUNhc3Q8aW50MzJfdD4oSW5zdGFuY2U6Om9mZnNldE9mT3duZXIoKSkpOwogICAgICAg
ICAgICAgVmFsdWUqIGNlbGwgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PihtX3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG9yaWdpbigpLCBwb2ludGVyLCBXYXNtOjpH
bG9iYWw6Om9mZnNldE9mT3duZXIoKSAtIFdhc206Okdsb2JhbDo6b2Zmc2V0T2ZWYWx1ZSgpKTsK
ICAgICAgICAgICAgIFZhbHVlKiBjZWxsU3RhdGUgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQ4WiwgSW50MzIsIG9yaWdpbigpLCBjZWxsLCBzYWZl
Q2FzdDxpbnQzMl90PihKU0NlbGw6OmNlbGxTdGF0ZU9mZnNldCgpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggYmQ1MzYxODJjMDllMTVkZGU1NjIyNDhhNzEz
OWZhZmM0ZWI2OWI5OS4uMWZjZmRmMmJhMjAwYzQ1MmI1ZmEzNjMxM2RhNGE0NzUzNGM0NzVjNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNzgsMTMgKzc4LDYg
QEAgaW5saW5lIGJvb2wgaXNWYWx1ZVR5cGUoVHlwZSB0eXBlKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotaW5saW5lIGJvb2wgaXNTdWJ0eXBlKFR5cGUgc3ViLCBUeXBlIHBhcmVudCkKLXsKLSAg
ICBpZiAoc3ViID09IHBhcmVudCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIHN1
YiA9PSBGdW5jcmVmICYmIHBhcmVudCA9PSBFeHRlcm5yZWY7Ci19Ci0KIGlubGluZSBib29sIGlz
UmVmVHlwZShUeXBlIHR5cGUpCiB7CiAgICAgcmV0dXJuIHR5cGUgPT0gRXh0ZXJucmVmIHx8IHR5
cGUgPT0gRnVuY3JlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0
aW9uUGFyc2VyLmgKaW5kZXggNDM5YjVmOTE5NDU4NzU3OGJiZDM3ZTdkOTJmZDIzZDljZTY3OWU1
Yy4uYmExMWQ3ODI5OWVmMzQ3YTk3MmE3MDJlZjliYWY3MTY3ZTE5MTM0YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTMyNyw3ICsz
MjcsNyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpjaGVja0JyYW5jaFRhcmdldChj
b25zdCBDb250cm9sVHlwZSYgdGFyZ2V0KSAtPiBQYQogCiAgICAgdW5zaWduZWQgb2Zmc2V0ID0g
bV9leHByZXNzaW9uU3RhY2suc2l6ZSgpIC0gdGFyZ2V0LmJyYW5jaFRhcmdldEFyaXR5KCk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhcmdldC5icmFuY2hUYXJnZXRBcml0eSgpOyAr
K2kpCi0gICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh0YXJnZXQuYnJh
bmNoVGFyZ2V0VHlwZShpKSwgbV9leHByZXNzaW9uU3RhY2tbb2Zmc2V0ICsgaV0udHlwZSgpKSwg
ImJyYW5jaCdzIHN0YWNrIHR5cGUgaXMgbm90IGEgc3VidHlwZSBvZiBibG9jaydzIHR5cGUgYnJh
bmNoIHRhcmdldCB0eXBlLiBTdGFjayB2YWx1ZSBoYXMgdHlwZSIsIG1fZXhwcmVzc2lvblN0YWNr
W29mZnNldCArIGldLnR5cGUoKSwgIiBidXQgYnJhbmNoIHRhcmdldCBleHBlY3RzIGEgdmFsdWUg
d2l0aCBzdWJ0eXBlIG9mICIsIHRhcmdldC5icmFuY2hUYXJnZXRUeXBlKGkpLCAiIGF0IGluZGV4
ICIsIGkpOworICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKHRhcmdldC5icmFuY2hUYXJn
ZXRUeXBlKGkpICE9IG1fZXhwcmVzc2lvblN0YWNrW29mZnNldCArIGldLnR5cGUoKSwgImJyYW5j
aCdzIHN0YWNrIHR5cGUgaXMgbm90IGEgYmxvY2sncyB0eXBlIGJyYW5jaCB0YXJnZXQgdHlwZS4g
U3RhY2sgdmFsdWUgaGFzIHR5cGUiLCBtX2V4cHJlc3Npb25TdGFja1tvZmZzZXQgKyBpXS50eXBl
KCksICIgYnV0IGJyYW5jaCB0YXJnZXQgZXhwZWN0cyBhIHZhbHVlIG9mICIsIHRhcmdldC5icmFu
Y2hUYXJnZXRUeXBlKGkpLCAiIGF0IGluZGV4ICIsIGkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0K
QEAgLTMzNyw3ICszMzcsNyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+Ojp1bmlmeShj
b25zdCBDb250cm9sVHlwZSYgY29udHJvbERhdGEpIC0+IFBhcnRpYWxSZQogewogICAgIFdBU01f
VkFMSURBVE9SX0ZBSUxfSUYoY29udHJvbERhdGEuc2lnbmF0dXJlKCktPnJldHVybkNvdW50KCkg
IT0gbV9leHByZXNzaW9uU3RhY2suc2l6ZSgpLCAiIGJsb2NrIHdpdGggdHlwZTogIiwgY29udHJv
bERhdGEuc2lnbmF0dXJlKCktPnRvU3RyaW5nKCksICIgcmV0dXJuczogIiwgY29udHJvbERhdGEu
c2lnbmF0dXJlKCktPnJldHVybkNvdW50KCksICIgYnV0IHN0YWNrIGhhczogIiwgbV9leHByZXNz
aW9uU3RhY2suc2l6ZSgpLCAiIHZhbHVlcyIpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuQ291bnQoKTsgKytpKQotICAgICAgICBX
QVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5cGUobV9leHByZXNzaW9uU3RhY2tbaV0udHlw
ZSgpLCBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuVHlwZShpKSksICJjb250cm9sIGZs
b3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gIiwgbV9leHByZXNzaW9uU3RhY2tbaV0u
dHlwZSgpLCAiIGlzIG5vdCBhIHN1YnR5cGUgb2YgIiwgY29udHJvbERhdGEuc2lnbmF0dXJlKCkt
PnJldHVyblR5cGUoaSkpOworICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKG1fZXhwcmVz
c2lvblN0YWNrW2ldLnR5cGUoKSAhPSBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuVHlw
ZShpKSwgImNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiAiLCBtX2V4
cHJlc3Npb25TdGFja1tpXS50eXBlKCksICIgaXMgbm90IGEgIiwgY29udHJvbERhdGEuc2lnbmF0
dXJlKCktPnJldHVyblR5cGUoaSkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTQzNiw3ICs0
MzYsNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfQ0FTRSkKICAgICAg
ICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhpbmRleCwgInRhYmxlLnNldCIp
OwogICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKEkzMiAhPSBpbmRleC50eXBlKCksICJ0
YWJsZS5zZXQgaW5kZXggdG8gdHlwZSAiLCBpbmRleC50eXBlKCksICIgZXhwZWN0ZWQgIiwgSTMy
KTsKICAgICAgICAgVHlwZSB0eXBlID0gbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlw
ZSgpOwotICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5cGUodmFsdWUudHlw
ZSgpLCB0eXBlKSwgInRhYmxlLnNldCB2YWx1ZSB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwgIiBl
eHBlY3RlZCAiLCB0eXBlKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih2YWx1ZS50
eXBlKCkgIT0gdHlwZSwgInRhYmxlLnNldCB2YWx1ZSB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwg
IiBleHBlY3RlZCAiLCB0eXBlKTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pbmZvLnRhYmxl
c1t0YWJsZUluZGV4XS50eXBlKCkgPT0gVGFibGVFbGVtZW50VHlwZTo6RXh0ZXJucmVmIHx8IG1f
aW5mby50YWJsZXNbdGFibGVJbmRleF0udHlwZSgpID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1bmNy
ZWYpOwogICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChhZGRUYWJsZVNldCh0YWJsZUlu
ZGV4LCBpbmRleCwgdmFsdWUpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTQ2Myw3ICs0NjMs
NyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfQ0FTRSkKICAgICAgICAg
ICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8oZGVsdGEsICJ0YWJsZS5ncm93
Iik7CiAgICAgICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKGZpbGws
ICJ0YWJsZS5ncm93Iik7CiAKLSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlz
U3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgp
KSwgInRhYmxlLmdyb3cgZXhwZWN0cyBmaWxsIHZhbHVlIG9mIHR5cGUgIiwgbV9pbmZvLnRhYmxl
c1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBmaWxsLnR5cGUoKSk7CisgICAgICAg
ICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwudHlwZSgpICE9IG1faW5mby50YWJsZXNb
dGFibGVJbmRleF0ud2FzbVR5cGUoKSwgInRhYmxlLmdyb3cgZXhwZWN0cyBmaWxsIHZhbHVlIG9m
IHR5cGUgIiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBm
aWxsLnR5cGUoKSk7CiAgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKEkzMiAhPSBk
ZWx0YS50eXBlKCksICJ0YWJsZS5ncm93IGV4cGVjdHMgYW4gaTMyIGRlbHRhIHZhbHVlLCBnb3Qg
IiwgZGVsdGEudHlwZSgpKTsKIAogICAgICAgICAgICAgRXhwcmVzc2lvblR5cGUgcmVzdWx0OwpA
QCAtNDc3LDcgKzQ3Nyw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9D
QVNFKQogICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhmaWxs
LCAidGFibGUuZmlsbCIpOwogICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RB
Q0tfSU5UTyhvZmZzZXQsICJ0YWJsZS5maWxsIik7CiAKLSAgICAgICAgICAgIFdBU01fVkFMSURB
VE9SX0ZBSUxfSUYoIWlzU3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUlu
ZGV4XS53YXNtVHlwZSgpKSwgInRhYmxlLmZpbGwgZXhwZWN0cyBmaWxsIHZhbHVlIG9mIHR5cGUg
IiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBmaWxsLnR5
cGUoKSk7CisgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwudHlwZSgpICE9
IG1faW5mby50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSwgInRhYmxlLmZpbGwgZXhwZWN0
cyBmaWxsIHZhbHVlIG9mIHR5cGUgIiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlw
ZSgpLCAiIGdvdCAiLCBmaWxsLnR5cGUoKSk7CiAgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9G
QUlMX0lGKEkzMiAhPSBvZmZzZXQudHlwZSgpLCAidGFibGUuZmlsbCBleHBlY3RzIGFuIGkzMiBv
ZmZzZXQgdmFsdWUsIGdvdCAiLCBvZmZzZXQudHlwZSgpKTsKICAgICAgICAgICAgIFdBU01fVkFM
SURBVE9SX0ZBSUxfSUYoSTMyICE9IGNvdW50LnR5cGUoKSwgInRhYmxlLmZpbGwgZXhwZWN0cyBh
biBpMzIgY291bnQgdmFsdWUsIGdvdCAiLCBjb3VudC50eXBlKCkpOwogCkBAIC01MDMsNyArNTAz
LDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAg
IFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5UmVmZXJlbmNlcygp
LCAicmVmZXJlbmNlcyBhcmUgbm90IGVuYWJsZWQiKTsKICAgICAgICAgVHlwZWRFeHByZXNzaW9u
IHZhbHVlOwogICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHZhbHVl
LCAicmVmLmlzX251bGwiKTsKLSAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighaXNTdWJ0
eXBlKHZhbHVlLnR5cGUoKSwgRXh0ZXJucmVmKSwgInJlZi5pc19udWxsIHRvIHR5cGUgIiwgdmFs
dWUudHlwZSgpLCAiIGV4cGVjdGVkICIsIEV4dGVybnJlZik7CisgICAgICAgIFdBU01fVkFMSURB
VE9SX0ZBSUxfSUYoIWlzUmVmVHlwZSh2YWx1ZS50eXBlKCkpLCAicmVmLmlzX251bGwgdG8gdHlw
ZSAiLCB2YWx1ZS50eXBlKCksICIgZXhwZWN0ZWQgYSByZWZlcmVuY2UgdHlwZSIpOwogICAgICAg
ICBFeHByZXNzaW9uVHlwZSByZXN1bHQ7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19DT05URVhU
KGFkZFJlZklzTnVsbCh2YWx1ZSwgcmVzdWx0KSk7CiAgICAgICAgIG1fZXhwcmVzc2lvblN0YWNr
LmNvbnN0cnVjdEFuZEFwcGVuZChJMzIsIHJlc3VsdCk7CkBAIC01MzksNyArNTM5LDcgQEAgRk9S
X0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGluZGV4KSwgImNhbid0IGdldCBpbmRleCBmb3Ig
c2V0X2xvY2FsIik7CiAgICAgICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8o
dmFsdWUsICJzZXRfbG9jYWwiKTsKICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRihpbmRl
eCA+PSBtX2xvY2Fscy5zaXplKCksICJhdHRlbXB0IHRvIHNldCB1bmtub3duIGxvY2FsICIsIGlu
ZGV4LCAiIGxhc3Qgb25lIGlzICIsIG1fbG9jYWxzLnNpemUoKSk7Ci0gICAgICAgIFdBU01fVkFM
SURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh2YWx1ZS50eXBlKCksIG1fbG9jYWxzW2luZGV4XSks
ICJzZXRfbG9jYWwgdG8gdHlwZSAiLCB2YWx1ZS50eXBlKCksICIgZXhwZWN0ZWQgIiwgbV9sb2Nh
bHNbaW5kZXhdKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih2YWx1ZS50eXBlKCkg
IT0gbV9sb2NhbHNbaW5kZXhdLCAic2V0X2xvY2FsIHRvIHR5cGUgIiwgdmFsdWUudHlwZSgpLCAi
IGV4cGVjdGVkICIsIG1fbG9jYWxzW2luZGV4XSk7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19D
T05URVhUKHNldExvY2FsKGluZGV4LCB2YWx1ZSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KQEAgLTU1MCw3ICs1NTAsNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVB
VEVfQ0FTRSkKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihtX2V4cHJlc3Npb25TdGFjay5p
c0VtcHR5KCksICJjYW4ndCB0ZWVfbG9jYWwgb24gZW1wdHkgZXhwcmVzc2lvbiBzdGFjayIpOwog
ICAgICAgICBUeXBlZEV4cHJlc3Npb24gdmFsdWUgPSBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCk7
CiAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoaW5kZXggPj0gbV9sb2NhbHMuc2l6ZSgp
LCAiYXR0ZW1wdCB0byB0ZWUgdW5rbm93biBsb2NhbCAiLCBpbmRleCwgIiBsYXN0IG9uZSBpcyAi
LCBtX2xvY2Fscy5zaXplKCkpOwotICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1
YnR5cGUodmFsdWUudHlwZSgpLCBtX2xvY2Fsc1tpbmRleF0pLCAic2V0X2xvY2FsIHRvIHR5cGUg
IiwgdmFsdWUudHlwZSgpLCAiIGV4cGVjdGVkICIsIG1fbG9jYWxzW2luZGV4XSk7CisgICAgICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYodmFsdWUudHlwZSgpICE9IG1fbG9jYWxzW2luZGV4XSwg
InNldF9sb2NhbCB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwgIiBleHBlY3RlZCAiLCBtX2xvY2Fs
c1tpbmRleF0pOwogICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChzZXRMb2NhbChpbmRl
eCwgdmFsdWUpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC01OTgsNyArNTk4LDcg
QEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdB
U01fUEFSU0VSX0ZBSUxfSUYoIWFyZ3MudHJ5UmVzZXJ2ZUNhcGFjaXR5KGNhbGxlZVNpZ25hdHVy
ZS5hcmd1bWVudENvdW50KCkpLCAiY2FuJ3QgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgY2Fs
bCdzICIsIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudENvdW50KCksICIgYXJndW1lbnRzIik7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEFyZ3VtZW50SW5kZXg7IGkgPCBtX2V4cHJlc3Np
b25TdGFjay5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgVHlwZWRFeHByZXNzaW9uIGFyZyA9
IG1fZXhwcmVzc2lvblN0YWNrLmF0KGkpOwotICAgICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJ
TF9JRighaXNTdWJ0eXBlKGFyZy50eXBlKCksIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0g
Zmlyc3RBcmd1bWVudEluZGV4KSksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGluIGNhbGwsIGdv
dCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVTaWduYXR1cmUuYXJndW1lbnQo
aSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOworICAgICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJ
TF9JRihhcmcudHlwZSgpICE9IGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0gZmlyc3RBcmd1
bWVudEluZGV4KSwgImFyZ3VtZW50IHR5cGUgbWlzbWF0Y2ggaW4gY2FsbCwgZ290ICIsIGFyZy50
eXBlKCksICIsIGV4cGVjdGVkICIsIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0gZmlyc3RB
cmd1bWVudEluZGV4KSk7CiAgICAgICAgICAgICBhcmdzLnVuY2hlY2tlZEFwcGVuZChhcmcpOwog
ICAgICAgICAgICAgbV9jb250ZXh0LmRpZFBvcFZhbHVlRnJvbVN0YWNrKCk7CiAgICAgICAgIH0K
QEAgLTYzOSw3ICs2MzksNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVf
Q0FTRSkKICAgICAgICAgZm9yIChzaXplX3QgaSA9IGZpcnN0QXJndW1lbnRJbmRleDsgaSA8IG1f
ZXhwcmVzc2lvblN0YWNrLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBUeXBlZEV4cHJlc3Np
b24gYXJnID0gbV9leHByZXNzaW9uU3RhY2suYXQoaSk7CiAgICAgICAgICAgICBpZiAoaSA8IG1f
ZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIDEpCi0gICAgICAgICAgICAgICAgV0FTTV9WQUxJREFU
T1JfRkFJTF9JRighaXNTdWJ0eXBlKGFyZy50eXBlKCksIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVu
dChpIC0gZmlyc3RBcmd1bWVudEluZGV4KSksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGluIGNh
bGxfaW5kaXJlY3QsIGdvdCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVTaWdu
YXR1cmUuYXJndW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOworICAgICAgICAgICAgICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoYXJnLnR5cGUoKSAhPSBjYWxsZWVTaWduYXR1cmUuYXJn
dW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGlu
IGNhbGxfaW5kaXJlY3QsIGdvdCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVT
aWduYXR1cmUuYXJndW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOwogICAgICAgICAgICAg
YXJncy51bmNoZWNrZWRBcHBlbmQoYXJnKTsKICAgICAgICAgICAgIG1fY29udGV4dC5kaWRQb3BW
YWx1ZUZyb21TdGFjaygpOwogICAgICAgICB9CkBAIC02NjIsNyArNjYyLDcgQEAgRk9SX0VBQ0hf
V0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIHVuc2lnbmVkIG9mZnNl
dCA9IG1fZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRD
b3VudCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5saW5lU2lnbmF0dXJl
LT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAgICAgICAgVHlwZSB0eXBlID0gbV9leHBy
ZXNzaW9uU3RhY2suYXQob2Zmc2V0ICsgaSkudHlwZSgpOwotICAgICAgICAgICAgV0FTTV9WQUxJ
REFUT1JfRkFJTF9JRighaXNTdWJ0eXBlKHR5cGUsIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnQo
aSkpLCAiQmxvY2sgZXhwZWN0cyB0aGUgYXJndW1lbnQgYXQgaW5kZXgiLCBpLCAiIHRvIGJlIGEg
c3VidHlwZSBvZiAiLCBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiIGJ1dCBhcmd1bWVu
dCBoYXMgdHlwZSAiLCB0eXBlKTsKKyAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYo
dHlwZSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiQmxvY2sgZXhwZWN0cyB0aGUg
YXJndW1lbnQgYXQgaW5kZXgiLCBpLCAiIHRvIGJlICIsIGlubGluZVNpZ25hdHVyZS0+YXJndW1l
bnQoaSksICIgYnV0IGFyZ3VtZW50IGhhcyB0eXBlICIsIHR5cGUpOwogICAgICAgICB9CiAKICAg
ICAgICAgaW50NjRfdCBvbGRTaXplID0gbV9leHByZXNzaW9uU3RhY2suc2l6ZSgpOwpAQCAtNjg1
LDcgKzY4NSw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQog
ICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSBtX2V4cHJlc3Npb25TdGFjay5zaXplKCkgLSBpbmxp
bmVTaWduYXR1cmUtPmFyZ3VtZW50Q291bnQoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAg
ICAgIFR5cGUgdHlwZSA9IG1fZXhwcmVzc2lvblN0YWNrLmF0KG9mZnNldCArIGkpLnR5cGUoKTsK
LSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh0eXBlLCBpbmxp
bmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpKSwgIkxvb3AgZXhwZWN0cyB0aGUgYXJndW1lbnQgYXQg
aW5kZXgiLCBpLCAiIHRvIGJlIGEgc3VidHlwZSBvZiAiLCBpbmxpbmVTaWduYXR1cmUtPmFyZ3Vt
ZW50KGkpLCAiIGJ1dCBhcmd1bWVudCBoYXMgdHlwZSAiLCB0eXBlKTsKKyAgICAgICAgICAgIFdB
U01fVkFMSURBVE9SX0ZBSUxfSUYodHlwZSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkp
LCAiTG9vcCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRleCIsIGksICIgdG8gYmUgIiwgaW5s
aW5lU2lnbmF0dXJlLT5hcmd1bWVudChpKSwgIiBidXQgYXJndW1lbnQgaGFzIHR5cGUgIiwgdHlw
ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBpbnQ2NF90IG9sZFNpemUgPSBtX2V4cHJlc3Npb25T
dGFjay5zaXplKCk7CkBAIC03MTAsNyArNzEwLDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RP
UkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYobV9leHBy
ZXNzaW9uU3RhY2suc2l6ZSgpIDwgaW5saW5lU2lnbmF0dXJlLT5hcmd1bWVudENvdW50KCksICJU
b28gZmV3IGFyZ3VtZW50cyBvbiBzdGFjayBmb3IgaWYgYmxvY2suIElmIGV4cGVjdHMgIiwgaW5s
aW5lU2lnbmF0dXJlLT5hcmd1bWVudENvdW50KCksICIsIGJ1dCBvbmx5ICIsIG1fZXhwcmVzc2lv
blN0YWNrLnNpemUoKSwgIiB3ZXJlIHByZXNlbnQuIElmIGJsb2NrIGhhcyBzaWduYXR1cmU6ICIs
IGlubGluZVNpZ25hdHVyZS0+dG9TdHJpbmcoKSk7CiAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9
IG1fZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRDb3Vu
dCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5saW5lU2lnbmF0dXJlLT5h
cmd1bWVudENvdW50KCk7ICsraSkKLSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYo
IWlzU3VidHlwZShtX2V4cHJlc3Npb25TdGFja1tvZmZzZXQgKyBpXS50eXBlKCksIGlubGluZVNp
Z25hdHVyZS0+YXJndW1lbnQoaSkpLCAiTG9vcCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRl
eCIsIGksICIgdG8gYmUgYSBzdWJ0eXBlIG9mICIsIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnQo
aSksICIgYnV0IGFyZ3VtZW50IGhhcyB0eXBlICIsIG1fZXhwcmVzc2lvblN0YWNrW2ldLnR5cGUo
KSk7CisgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKG1fZXhwcmVzc2lvblN0YWNr
W29mZnNldCArIGldLnR5cGUoKSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiTG9v
cCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRleCIsIGksICIgdG8gYmUgIiwgaW5saW5lU2ln
bmF0dXJlLT5hcmd1bWVudChpKSwgIiBidXQgYXJndW1lbnQgaGFzIHR5cGUgIiwgbV9leHByZXNz
aW9uU3RhY2tbaV0udHlwZSgpKTsKIAogICAgICAgICBpbnQ2NF90IG9sZFNpemUgPSBtX2V4cHJl
c3Npb25TdGFjay5zaXplKCk7CiAgICAgICAgIFN0YWNrIG5ld1N0YWNrOwpAQCAtNzg0LDcgKzc4
NCw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQogICAgICAg
ICAgICAgQ29udHJvbFR5cGUqIHRhcmdldCA9IHRhcmdldHNbaV07CiAgICAgICAgICAgICBXQVNN
X1ZBTElEQVRPUl9GQUlMX0lGKGRlZmF1bHRUYXJnZXQuYnJhbmNoVGFyZ2V0QXJpdHkoKSAhPSB0
YXJnZXQtPmJyYW5jaFRhcmdldEFyaXR5KCksICJicl90YWJsZSB0YXJnZXQgdHlwZSBzaXplIG1p
c21hdGNoLiBEZWZhdWx0IGhhcyBzaXplOiAiLCBkZWZhdWx0VGFyZ2V0LmJyYW5jaFRhcmdldEFy
aXR5KCksICJidXQgdGFyZ2V0OiAiLCBpLCAiIGhhcyBzaXplOiAiLCB0YXJnZXQtPmJyYW5jaFRh
cmdldEFyaXR5KCkpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCB0eXBlID0gMDsgdHlwZSA8
IGRlZmF1bHRUYXJnZXQuYnJhbmNoVGFyZ2V0QXJpdHkoKTsgKyt0eXBlKQotICAgICAgICAgICAg
ICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZShkZWZhdWx0VGFyZ2V0LmJyYW5j
aFRhcmdldFR5cGUodHlwZSksIHRhcmdldC0+YnJhbmNoVGFyZ2V0VHlwZSh0eXBlKSksICJicl90
YWJsZSB0YXJnZXQgdHlwZSBtaXNtYXRjaCBhdCBvZmZzZXQgIiwgdHlwZSwgIiBleHBlY3RlZDog
IiwgZGVmYXVsdFRhcmdldC5icmFuY2hUYXJnZXRUeXBlKHR5cGUpLCAiIGJ1dCBzYXc6ICIsIHRh
cmdldC0+YnJhbmNoVGFyZ2V0VHlwZSh0eXBlKSwgIiB3aGVuIHRhcmdldGluZyBibG9jazogIiwg
dGFyZ2V0LT5zaWduYXR1cmUoKS0+dG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgV0FTTV9W
QUxJREFUT1JfRkFJTF9JRihkZWZhdWx0VGFyZ2V0LmJyYW5jaFRhcmdldFR5cGUodHlwZSkgIT0g
dGFyZ2V0LT5icmFuY2hUYXJnZXRUeXBlKHR5cGUpLCAiYnJfdGFibGUgdGFyZ2V0IHR5cGUgbWlz
bWF0Y2ggYXQgb2Zmc2V0ICIsIHR5cGUsICIgZXhwZWN0ZWQ6ICIsIGRlZmF1bHRUYXJnZXQuYnJh
bmNoVGFyZ2V0VHlwZSh0eXBlKSwgIiBidXQgc2F3OiAiLCB0YXJnZXQtPmJyYW5jaFRhcmdldFR5
cGUodHlwZSksICIgd2hlbiB0YXJnZXRpbmcgYmxvY2s6ICIsIHRhcmdldC0+c2lnbmF0dXJlKCkt
PnRvU3RyaW5nKCkpOwogICAgICAgICB9CiAKICAgICAgICAgV0FTTV9GQUlMX0lGX0hFTFBFUl9G
QUlMUyhjaGVja0JyYW5jaFRhcmdldChkZWZhdWx0VGFyZ2V0KSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcAppbmRleCAzOWVjY2QyM2YzYmNiNDIyNjVlODM5
MmFmNDFkNTZkZjJmZWVlMzQ1Li4yZDY3NTgwYjg3ZThiOWE2MDM0YjQ1ZmU5ZWVlYmM0NzNkMDVi
OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAKQEAg
LTYyLDcgKzYyLDcgQEAgSW5zdGFuY2U6Okluc3RhbmNlKENvbnRleHQqIGNvbnRleHQsIFJlZjxN
b2R1bGU+JiYgbW9kdWxlLCBFbnRyeUZyYW1lKiogcG9pbnRlclQKICAgICAgICAgaWYgKGdsb2Jh
bC5iaW5kaW5nTW9kZSA9PSBXYXNtOjpHbG9iYWxJbmZvcm1hdGlvbjo6QmluZGluZ01vZGU6OlBv
cnRhYmxlKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGtlcHQgYWxpdmUgYnkgSlNXZWJBc3Nl
bWJseUluc3RhbmNlIC0+IEpTV2ViQXNzZW1ibHlHbG9iYWwgLT4gYmluZGluZy4KICAgICAgICAg
ICAgIG1fZ2xvYmFsc1RvQmluZGluZy5zZXQoaSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXNTdWJ0
eXBlKGdsb2JhbC50eXBlLCBFeHRlcm5yZWYpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoaXNSZWZU
eXBlKGdsb2JhbC50eXBlKSkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBrZXB0IGFsaXZlIGJ5
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSAtPiBiaW5kaW5nLgogICAgICAgICAgICAgbV9nbG9iYWxz
VG9NYXJrLnNldChpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggZDNhMDU5YTk5MDQ3YTczMTc0MDZkOGJi
YWM3NDU3MjZmY2QyNDJmZC4uZGZjOTE5ZWYzMTAxZDA4MTBlYmM2OGZhYjA5MmU0ZmE5Yzk2ZTBh
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0
b3IuY3BwCkBAIC04MjYsMTMgKzgyNiwxMyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpzZXRHbG9i
YWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUgogICAg
IFR5cGUgdHlwZSA9IGdsb2JhbC50eXBlOwogICAgIHN3aXRjaCAoZ2xvYmFsLmJpbmRpbmdNb2Rl
KSB7CiAgICAgY2FzZSBXYXNtOjpHbG9iYWxJbmZvcm1hdGlvbjo6QmluZGluZ01vZGU6OkVtYmVk
ZGVkSW5JbnN0YW5jZToKLSAgICAgICAgaWYgKGlzU3VidHlwZSh0eXBlLCBFeHRlcm5yZWYpKQor
ICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUpKQogICAgICAgICAgICAgV2FzbVNldEdsb2JhbFJl
Zjo6ZW1pdCh0aGlzLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBX
YXNtU2V0R2xvYmFsOjplbWl0KHRoaXMsIGluZGV4LCB2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkJpbmRpbmdNb2RlOjpQb3J0YWJsZToK
LSAgICAgICAgaWYgKGlzU3VidHlwZSh0eXBlLCBFeHRlcm5yZWYpKQorICAgICAgICBpZiAoaXNS
ZWZUeXBlKHR5cGUpKQogICAgICAgICAgICAgV2FzbVNldEdsb2JhbFJlZlBvcnRhYmxlQmluZGlu
Zzo6ZW1pdCh0aGlzLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBX
YXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nOjplbWl0KHRoaXMsIGluZGV4LCB2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAKaW5k
ZXggZDczNGM2MGRjOTlkZTZhZmVkMjM1ZmE2OGFmYTgyZjI2NGIwYzhiNy4uMGY1MzMzOTQ3MjBi
ZjczYjBlOTc0OGY3ZTZkNDljODEyYzUyOGEyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVNlY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcApAQCAtMjk2LDcgKzI5Niw3IEBAIGF1dG8g
U2VjdGlvblBhcnNlcjo6cGFyc2VHbG9iYWwoKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgICAg
ICBnbG9iYWwuaW5pdGlhbGl6YXRpb25UeXBlID0gR2xvYmFsSW5mb3JtYXRpb246OkZyb21SZWZG
dW5jOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBnbG9iYWwuaW5pdGlhbGl6YXRpb25UeXBl
ID0gR2xvYmFsSW5mb3JtYXRpb246OkZyb21FeHByZXNzaW9uOwotICAgICAgICBXQVNNX1BBUlNF
Ul9GQUlMX0lGKCFpc1N1YnR5cGUodHlwZUZvckluaXRPcGNvZGUsIGdsb2JhbC50eXBlKSwgIkds
b2JhbCBpbml0X2V4cHIgb3Bjb2RlIG9mIHR5cGUgIiwgdHlwZUZvckluaXRPcGNvZGUsICIgZG9l
c24ndCBtYXRjaCBnbG9iYWwncyB0eXBlICIsIGdsb2JhbC50eXBlKTsKKyAgICAgICAgV0FTTV9Q
QVJTRVJfRkFJTF9JRih0eXBlRm9ySW5pdE9wY29kZSAhPSBnbG9iYWwudHlwZSwgIkdsb2JhbCBp
bml0X2V4cHIgb3Bjb2RlIG9mIHR5cGUgIiwgdHlwZUZvckluaXRPcGNvZGUsICIgZG9lc24ndCBt
YXRjaCBnbG9iYWwncyB0eXBlICIsIGdsb2JhbC50eXBlKTsKIAogICAgICAgICBtX2luZm8tPmds
b2JhbHMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoZ2xvYmFsKSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmQuY3BwCmluZGV4IDMxYzIxZTNjNDM3MDJjOTlmYjZmODA5NTRkMGM1ZTQ3N2Q3MGRmN2QuLmU5
ODRiOWIwZWU0NzNiNTc5MGViNTc4ODU0Mzk5MmE5MjAyYjg3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5j
cHAKQEAgLTI1NiwxMCArMjU2LDExIEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6Omxp
bmsoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSwgSlNPYmplCiAgICAgICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgYXV0byBnbG9iYWxUeXBlID0gbW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFsc1tpbXBv
cnQua2luZEluZGV4XS50eXBlOwogICAgICAgICAgICAgICAgICAgICAvLyBpaS4gSWYgdGhlIGds
b2JhbF90eXBlIG9mIGkgaXMgaTY0IG9yIFR5cGUodikgaXMgbm90IE51bWJlciwgdGhyb3cgYSBX
ZWJBc3NlbWJseS5MaW5rRXJyb3IuCi0gICAgICAgICAgICAgICAgICAgIGlmIChtb2R1bGVJbmZv
cm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5cGUgPT0gV2FzbTo6STY0KQorICAg
ICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsVHlwZSA9PSBXYXNtOjpJNjQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQg
Z2xvYmFsIiwgImNhbm5vdCBiZSBhbiBpNjQiKSkpOwotICAgICAgICAgICAgICAgICAgICBpZiAo
IWlzU3VidHlwZShtb2R1bGVJbmZvcm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5
cGUsIFdhc206OkV4dGVybnJlZikgJiYgIXZhbHVlLmlzTnVtYmVyKCkpCisgICAgICAgICAgICAg
ICAgICAgIGlmICghaXNSZWZUeXBlKGdsb2JhbFR5cGUpICYmICF2YWx1ZS5pc051bWJlcigpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwg
ImltcG9ydGVkIGdsb2JhbCIsICJtdXN0IGJlIGEgbnVtYmVyIikpKTsKIAogICAgICAgICAgICAg
ICAgICAgICAvLyBpaWkuIEFwcGVuZCBUb1dlYkFzc2VtYmx5VmFsdWUodikgdG8gaW1wb3J0cy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvd2FzbS1yZWZlcmVuY2VzL3dvcmtlci5q
cyBiL0xheW91dFRlc3RzL3dvcmtlcnMvd2FzbS1yZWZlcmVuY2VzL3dvcmtlci5qcwppbmRleCA5
NmQxZjYwZDUxOGIyNzgyNmExOTlmMWI4YzBiNWJkYzY2MGE3OTY5Li43YmVkZDY3MWZkNjBkNjZj
NTIxM2JiZDg0MmZmMTgxNTM2MWY4MTZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93b3JrZXJz
L3dhc20tcmVmZXJlbmNlcy93b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvd29ya2Vycy93YXNt
LXJlZmVyZW5jZXMvd29ya2VyLmpzCkBAIC0xNzMsNyArMTczLDcgQEAgb25tZXNzYWdlID0gZnVu
Y3Rpb24oeyBkYXRhOiBtb2R1bGUgfSkgewogICAgIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKG1v
ZHVsZSkudGhlbigoJDEpID0+IHsKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGFzc2VydC5l
cSgkMS5leHBvcnRzLnRibF9zaXplKCksIDIwKQotICAgICAgICAgICAgYXNzZXJ0LmVxKCQxLmV4
cG9ydHMudGJsX2dyb3coNSksIDIwKQorICAgICAgICAgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMu
dGJsX2dyb3coImhpIiwgNSksIDIwKQogICAgICAgICAgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMu
dGJsX3NpemUoKSwgMjUpCiAgICAgICAgICAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0
KDApLCBudWxsKQogICAgICAgICAgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgyNCks
ICQxLmV4cG9ydHMudGJsX3NpemUpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pT
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVmZWFjMzZiYTUzYTEzYzg0Y2RjMjIxZTA3ZDBhNzgxNWI4
YTQ1N2YuLmU5OWQ5OWZlZjc1MTRjMjI0NTJiYTQ2ODBlYzQyZGMwNWRjZWQ1MzcgMTAwNjQ0Ci0t
LSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjAgQEAKKzIwMjAtMTEtMTIgIERtaXRyeSBCZXpoZXRza292ICA8ZGJlemhldHNrb3ZAaWdhbGlh
LmNvbT4KKworICAgICAgICBbV0FTTS1SZWZlcmVuY2VzXSBSZW1vdmUgc3VidHlwaW5nIHJ1bGUg
Zm9yIGV4dGVybnJlZiBhbmQgZnVuY3JlZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBmdW5jcmVmIGlzIG5vdCBhIHN1YnR5cGUgb2YgZXh0ZXJu
cmVmLgorICAgICAgICBUaGUgc3BlYzogaHR0cHM6Ly93ZWJhc3NlbWJseS5naXRodWIuaW8vcmVm
ZXJlbmNlLXR5cGVzL2NvcmUvCisgICAgICAgIFRoZSBQUiBmb3IgcmVtb3Zpbmcgc3VidHlwZSBm
cm9tIHRoZSBzcGVjOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vV2ViQXNzZW1ibHkvcmVm
ZXJlbmNlLXR5cGVzL3B1bGwvODcuCisKKyAgICAgICAgKiB3YXNtL3JlZmVyZW5jZXMvZnVuY19y
ZWYuanM6CisgICAgICAgIChhc3NlcnQuZXEuaW5zdGFuY2UuZXhwb3J0cy5maXguZnVuKToKKyAg
ICAgICAgKGFzc2VydC5lcS5pbnN0YW5jZS5leHBvcnRzLmZpeCk6CisgICAgICAgICogd2FzbS9y
ZWZlcmVuY2VzL3ZhbGlkYXRpb24uanM6CisKIDIwMjAtMTEtMTIgIENhaW8gTGltYSAgPHRpY2Fp
b2xpbWFAZ21haWwuY29tPgogCiAgICAgICAgIFtJbnRsXVtBUk12N11bTUlQU10gU2tpcCBzdHJl
c3MvaW50bC1kYXRldGltZWZvcm1hdC1mb3JtYXRyYW5nZS5qcwpkaWZmIC0tZ2l0IGEvSlNUZXN0
cy93YXNtL2pzLWFwaS93ZWItYXNzZW1ibHktaW5zdGFudGlhdGUuanMgYi9KU1Rlc3RzL3dhc20v
anMtYXBpL3dlYi1hc3NlbWJseS1pbnN0YW50aWF0ZS5qcwppbmRleCA5NDA5ODg5OWRjOGI3ODc2
NjM0OTAwODM2ZGM5ZGFjYTUxYjczNjUyLi4yMzdiM2E4OWFjYzA1OWZhOTE5MGE4OTY1M2M4ODI3
ZWU3NDBlZmEyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMtYXBpL3dlYi1hc3NlbWJseS1p
bnN0YW50aWF0ZS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3dlYi1hc3NlbWJseS1pbnN0
YW50aWF0ZS5qcwpAQCAtNzYsNyArNzYsNyBAQCBhc3NlcnQuZXEoV2ViQXNzZW1ibHkuaW5zdGFu
dGlhdGUubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGxldCB7bW9kdWxlLCBpbnN0YW5jZX0gPSBh
d2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShiaW4pOwogICAgICAgICB9IGNhdGNoKGUpIHsK
ICAgICAgICAgICAgIGFzc2VydC50cnV0aHkoZSBpbnN0YW5jZW9mIFdlYkFzc2VtYmx5LkNvbXBp
bGVFcnJvcik7Ci0gICAgICAgICAgICBhc3NlcnQuZXEoZS5tZXNzYWdlLCAiV2ViQXNzZW1ibHku
TW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IGNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBl
Y3RlZCB0eXBlLiBGMzIgaXMgbm90IGEgc3VidHlwZSBvZiBJMzIsIGluIGZ1bmN0aW9uIGF0IGlu
ZGV4IDAiKTsKKyAgICAgICAgICAgIGFzc2VydC5lcShlLm1lc3NhZ2UsICJXZWJBc3NlbWJseS5N
b2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogY29udHJvbCBmbG93IHJldHVybnMgd2l0aCB1bmV4cGVj
dGVkIHR5cGUuIEYzMiBpcyBub3QgYSBJMzIsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAiKTsKICAg
ICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3JlZmVyZW5jZXMvZnVu
Y19yZWYuanMgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9mdW5jX3JlZi5qcwppbmRleCA4NGMx
M2Y4NjI2MGRiMjFjNTE4ZGIyYjA3YjRkOTFmN2ZiZDYwNWJhLi4zMTcxNWE1NTFiMTk2NzQ5YmVi
NDEwNTIxNjJlMGIzNDg2NGUzMmQzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vcmVmZXJlbmNl
cy9mdW5jX3JlZi5qcworKysgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9mdW5jX3JlZi5qcwpA
QCAtNzUsMjcgKzc1LDIwIEBAIGZ1bmN0aW9uIG1ha2VGdW5jcmVmSWRlbnQoKSB7CiAgICAgICAg
ICAgLlR5cGUoKS5FbmQoKQogICAgICAgICAgIC5GdW5jdGlvbigpLkVuZCgpCiAgICAgICAgICAg
LkV4cG9ydCgpCi0gICAgICAgICAgICAgIC5GdW5jdGlvbigiaCIpCiAgICAgICAgICAgICAgIC5G
dW5jdGlvbigiaSIpCi0gICAgICAgICAgICAgIC5GdW5jdGlvbigiZ2V0X2giKQorICAgICAgICAg
ICAgICAuRnVuY3Rpb24oImdldF9pIikKICAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJmaXgiKQog
ICAgICAgICAgICAgICAuRnVuY3Rpb24oImdldF9ub3RfZXhwb3J0ZWQiKQogICAgICAgICAgICAg
ICAuRnVuY3Rpb24oImxvY2FsX3JlYWQiKQogICAgICAgICAgIC5FbmQoKQogICAgICAgICAgIC5D
b2RlKCkKLSAgICAgICAgICAgIC5GdW5jdGlvbigiaCIsIHsgcGFyYW1zOiBbImZ1bmNyZWYiXSwg
cmV0OiAiZXh0ZXJucmVmIiB9LCBbImV4dGVybnJlZiJdKQotICAgICAgICAgICAgICAuR2V0TG9j
YWwoMCkKLSAgICAgICAgICAgICAgLlNldExvY2FsKDEpCi0gICAgICAgICAgICAgIC5HZXRMb2Nh
bCgxKQotICAgICAgICAgICAgLkVuZCgpCi0KICAgICAgICAgICAgIC5GdW5jdGlvbigiaSIsIHsg
cGFyYW1zOiBbImZ1bmNyZWYiXSwgcmV0OiAiZnVuY3JlZiIgfSwgWyJmdW5jcmVmIl0pCiAgICAg
ICAgICAgICAgIC5HZXRMb2NhbCgwKQogICAgICAgICAgICAgICAuU2V0TG9jYWwoMSkKICAgICAg
ICAgICAgICAgLkdldExvY2FsKDEpCiAgICAgICAgICAgICAuRW5kKCkKIAotICAgICAgICAgICAg
LkZ1bmN0aW9uKCJnZXRfaCIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiZnVuY3JlZiIgfSwgWyJmdW5j
cmVmIl0pCisgICAgICAgICAgICAuRnVuY3Rpb24oImdldF9pIiwgeyBwYXJhbXM6IFtdLCByZXQ6
ICJmdW5jcmVmIiB9LCBbImZ1bmNyZWYiXSkKICAgICAgICAgICAgICAgLkkzMkNvbnN0KDApCiAg
ICAgICAgICAgICAgIC5SZWZGdW5jKDApCiAgICAgICAgICAgICAgIC5TZXRMb2NhbCgwKQpAQCAt
MTExLDExICsxMDQsMTEgQEAgZnVuY3Rpb24gbWFrZUZ1bmNyZWZJZGVudCgpIHsKICAgICAgICAg
ICAgIC5FbmQoKQogCiAgICAgICAgICAgICAuRnVuY3Rpb24oImZpeCIsIHsgcGFyYW1zOiBbXSwg
cmV0OiAiZnVuY3JlZiIgfSwgW10pCi0gICAgICAgICAgICAgIC5SZWZGdW5jKDMpCisgICAgICAg
ICAgICAgIC5SZWZGdW5jKDIpCiAgICAgICAgICAgICAuRW5kKCkKIAogICAgICAgICAgICAgLkZ1
bmN0aW9uKCJnZXRfbm90X2V4cG9ydGVkIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJmdW5jcmVmIiB9
LCBbXSkKLSAgICAgICAgICAgICAgLlJlZkZ1bmMoNSkKKyAgICAgICAgICAgICAgLlJlZkZ1bmMo
NCkKICAgICAgICAgICAgIC5FbmQoKQogCiAgICAgICAgICAgICAuRnVuY3Rpb24oInJldF80MiIs
IHsgcGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9LCBbXSkKQEAgLTEzNCwyMiArMTI3LDE2IEBAIGZ1
bmN0aW9uIG1ha2VGdW5jcmVmSWRlbnQoKSB7CiAgICAgZnVsbEdDKCk7CiAKICAgICBhc3NlcnQu
ZXEoaW5zdGFuY2UuZXhwb3J0cy5sb2NhbF9yZWFkKCksIDEpCi0gICAgYXNzZXJ0LmVxKGluc3Rh
bmNlLmV4cG9ydHMuaChudWxsKSwgbnVsbCkKLQotICAgIGFzc2VydC50aHJvd3MoKCkgPT4gaW5z
dGFuY2UuZXhwb3J0cy5oKGZ1biksIEVycm9yLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVk
IHdhc20gZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCi0gICAgYXNzZXJ0
LmVxKGluc3RhbmNlLmV4cG9ydHMuaChteWZ1biksIG15ZnVuKQotICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5oKDUpLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBl
eHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQotICAg
IGFzc2VydC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5oKHVuZGVmaW5lZCksIEVycm9y
LCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24gKGV2YWx1YXRpbmcg
J2Z1bmMoLi4uYXJncyknKSIpCiAKICAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5pKG51
bGwpLCBudWxsKQogICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmkobXlmdW4pLCBteWZ1
bikKICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMuaShmdW4pLCBFcnJv
ciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5n
ICdmdW5jKC4uLmFyZ3MpJykiKQogICAgIGFzc2VydC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhw
b3J0cy5pKDUpLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0
aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQogCi0gICAgYXNzZXJ0LnRocm93cygo
KSA9PiBpbnN0YW5jZS5leHBvcnRzLmdldF9oKCkoZnVuKSwgRXJyb3IsICJGdW5jcmVmIG11c3Qg
YmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScp
IikKLSAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5nZXRfaCgpKG51bGwpLCBudWxsKQot
ICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmdldF9oKCkobXlmdW4pLCBteWZ1bikKLSAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMuZ2V0X2goKSg1KSwgRXJyb3Is
ICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAn
ZnVuYyguLi5hcmdzKScpIikKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9y
dHMuZ2V0X2koKShmdW4pLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNt
IGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQorICAgIGFzc2VydC5lcShp
bnN0YW5jZS5leHBvcnRzLmdldF9pKCkobnVsbCksIG51bGwpCisgICAgYXNzZXJ0LmVxKGluc3Rh
bmNlLmV4cG9ydHMuZ2V0X2koKShteWZ1biksIG15ZnVuKQorICAgIGFzc2VydC50aHJvd3MoKCkg
PT4gaW5zdGFuY2UuZXhwb3J0cy5nZXRfaSgpKDUpLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBh
biBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQog
CiAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuZ2V0X25vdF9leHBvcnRlZCgpKCksIDQy
KQogCkBAIC0xNTcsNiArMTQ0LDI5IEBAIGZ1bmN0aW9uIG1ha2VGdW5jcmVmSWRlbnQoKSB7CiAg
ICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuZml4KCksIGluc3RhbmNlLmV4cG9ydHMuZml4
KTsKIH0KIAorLy8gQ2FzdGluZyB0aGUgRnVuY3JlZiB0byBFeHRlcm5yZWYgaXMgZm9yYmlkZGVu
LgorCit7CisgICAgZnVuY3Rpb24gZnVuKCkgeyByZXR1cm4gNDE7IH0KKworICAgIGNvbnN0IGJ1
aWxkZXIgPSAobmV3IEJ1aWxkZXIoKSkKKyAgICAgICAgICAuVHlwZSgpLkVuZCgpCisgICAgICAg
ICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgICAgICAuRXhwb3J0KCkKKyAgICAgICAgICAgICAg
LkZ1bmN0aW9uKCJoIikKKyAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuQ29kZSgpCisgICAg
ICAgICAgICAuRnVuY3Rpb24oImgiLCB7IHBhcmFtczogWyJmdW5jcmVmIl0sIHJldDogImV4dGVy
bnJlZiIgfSwgWyJleHRlcm5yZWYiXSkKKyAgICAgICAgICAgICAgLkdldExvY2FsKDApCisgICAg
ICAgICAgICAgIC5TZXRMb2NhbCgxKQorICAgICAgICAgICAgICAuR2V0TG9jYWwoMSkKKyAgICAg
ICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FbmQoKTsKKworICAgIGNvbnN0IGJpbiA9IGJ1aWxk
ZXIuV2ViQXNzZW1ibHkoKS5nZXQoKTsKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJB
c3NlbWJseS5Nb2R1bGUoYmluKSwgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLCAiV2ViQXNzZW1i
bHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IHNldF9sb2NhbCB0byB0eXBlIEZ1bmNyZWYgZXhw
ZWN0ZWQgRXh0ZXJucmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcg
V2ViQXNzZW1ibHkuTW9kdWxlKGJpbiknKSIpOworfQorCiAvLyBHbG9iYWxzCiAKIHsKQEAgLTI0
Niw3ICsyNTYsNyBAQCBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUo
KG5ldyBCdWlsZGVyKCkpCiAgICAgLkZ1bmN0aW9uKCJoIiwgeyBwYXJhbXM6IFsiZXh0ZXJucmVm
Il0sIHJldDogImZ1bmNyZWYiIH0pCiAgICAgICAuR2V0TG9jYWwoMCkKICAgICAuRW5kKCkKLSAg
LkVuZCgpLldlYkFzc2VtYmx5KCkuZ2V0KCkpLCBFcnJvciwgIldlYkFzc2VtYmx5Lk1vZHVsZSBk
b2Vzbid0IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlw
ZS4gRXh0ZXJucmVmIGlzIG5vdCBhIHN1YnR5cGUgb2YgRnVuY3JlZiwgaW4gZnVuY3Rpb24gYXQg
aW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZScpIik7CisgIC5FbmQo
KS5XZWJBc3NlbWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24n
dCB2YWxpZGF0ZTogY29udHJvbCBmbG93IHJldHVybnMgd2l0aCB1bmV4cGVjdGVkIHR5cGUuIEV4
dGVybnJlZiBpcyBub3QgYSBGdW5jcmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0
aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKTsKIAogYXNzZXJ0LnRocm93cygoKSA9PiBu
ZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQogICAuVHlwZSgpLkVuZCgpCmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy92YWxpZGF0aW9uLmpzIGIvSlNUZXN0
cy93YXNtL3JlZmVyZW5jZXMvdmFsaWRhdGlvbi5qcwppbmRleCBjOTYwMTI4NjYzNTcxNzgxMTlk
YzdhYzYxYWIxZmE1MTY3ZDJhOTVmLi5kMTQ3YjFkMGI0ZjlmNTc4OTAxZTA4MmNjMWRmYjY5ZTgz
ZDE4MDc1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy92YWxpZGF0aW9uLmpz
CisrKyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL3ZhbGlkYXRpb24uanMKQEAgLTE5LDcgKzE5
LDcgQEAgaW1wb3J0IEJ1aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CiAgICAgY29uc3QgYmlu
ID0gYnVpbGRlci5XZWJBc3NlbWJseSgpOwogICAgIGJpbi50cmltKCk7CiAKLSAgICBhc3NlcnQu
dGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdldCgpKSwgV2ViQXNzZW1i
bHkuQ29tcGlsZUVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IHJl
Zi5pc19udWxsIHRvIHR5cGUgSTMyIGV4cGVjdGVkIEV4dGVybnJlZiwgaW4gZnVuY3Rpb24gYXQg
aW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpJyki
KTsKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdl
dCgpKSwgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNu
J3QgdmFsaWRhdGU6IHJlZi5pc19udWxsIHRvIHR5cGUgSTMyIGV4cGVjdGVkIGEgcmVmZXJlbmNl
IHR5cGUsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBXZWJBc3NlbWJs
eS5Nb2R1bGUoYmluLmdldCgpKScpIik7CiB9CiAKIHsKQEAgLTkwLDcgKzkwLDcgQEAgaW1wb3J0
IEJ1aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CiAgICAgY29uc3QgYmluID0gYnVpbGRlci5X
ZWJBc3NlbWJseSgpOwogICAgIGJpbi50cmltKCk7CiAKLSAgICBhc3NlcnQudGhyb3dzKCgpID0+
IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdldCgpKSwgV2ViQXNzZW1ibHkuQ29tcGlsZUVy
cm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IGNvbnRyb2wgZmxvdyBy
ZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBFeHRlcm5yZWYgaXMgbm90IGEgc3VidHlwZSBv
ZiBGdW5jcmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNz
ZW1ibHkuTW9kdWxlKGJpbi5nZXQoKSknKSIpOworICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3
IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpLCBXZWJBc3NlbWJseS5Db21waWxlRXJyb3Is
ICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogY29udHJvbCBmbG93IHJldHVy
bnMgd2l0aCB1bmV4cGVjdGVkIHR5cGUuIEV4dGVybnJlZiBpcyBub3QgYSBGdW5jcmVmLCBpbiBm
dW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJp
bi5nZXQoKSknKSIpOwogfQogCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414312</attachid>
            <date>2020-11-16 23:30:02 -0800</date>
            <delta_ts>2020-11-17 02:17:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218885-20201117143000.patch</filename>
            <type>text/plain</type>
            <size>33572</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MjYxOTQ3NzEzOTJlZWZiMDM2ZmRkNTgzNDg5MDdlOTc3OTRhODliLi41YjRjOTRhNjQxMTc2NzA0
ZWQ2ZWFmYTY2YzA3YTMyOTVhYzcxODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMS0xMiAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLVJlZmVyZW5jZXNdIFJlbW92ZSBzdWJ0eXBpbmcg
cnVsZSBmb3IgZXh0ZXJucmVmIGFuZCBmdW5jcmVmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGZ1bmNyZWYgaXMgbm90IGEgc3VidHlwZSBvZiBl
eHRlcm5yZWYuCisgICAgICAgIFRoZSBzcGVjOiBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5p
by9yZWZlcmVuY2UtdHlwZXMvY29yZS8KKyAgICAgICAgVGhlIFBSIGZvciByZW1vdmluZyBzdWJ0
eXBlIGZyb20gdGhlIHNwZWM6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJs
eS9yZWZlcmVuY2UtdHlwZXMvcHVsbC84Ny4KKworICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5o
OgorICAgICAgICAoSlNDOjpXYXNtOjppc1N1YnR5cGUpOgorICAgICAgICAqIHdhc20vV2FzbUZ1
bmN0aW9uUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRl
eHQ+OjpwYXJzZUV4cHJlc3Npb24pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGlu
ayk6CisKIDIwMjAtMTEtMTIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGVuc3VyZSB0aGF0IGBKU09OOjpBcnJheU9mPFQ+YCBkb2Vz
bid0IGFsbG93IGBhZGRJdGVtYCB0byBiZSBjYWxsZWQgd2l0aCBhIHR5cGUgb3RoZXIgdGhhbiBg
VGAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwCmluZGV4IDQzZDBjODcyZWU0YzYzYjRkNTZiNmYwZTM0NjIzNTMzM2U4NGI3OTMuLmQ1MThm
Nzc4Zjc0Y2ZjYmY1YTJjN2U0YzgyMDM5NGQwZDU0YmU5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcApAQCAtMTEwMiw3ICsxMTAy
LDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkVGFibGVTaXplKHVuc2lnbmVkIHRhYmxlSW5k
ZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0KIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZFRh
YmxlR3Jvdyh1bnNpZ25lZCB0YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSBmaWxsLCBFeHByZXNz
aW9uVHlwZSBkZWx0YSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAog
ewogICAgIEFTU0VSVChmaWxsLnRtcCgpKTsKLSAgICBBU1NFUlQoaXNTdWJ0eXBlKGZpbGwudHlw
ZSgpLCBtX2luZm8udGFibGVzW3RhYmxlSW5kZXhdLndhc21UeXBlKCkpKTsKKyAgICBBU1NFUlQo
ZmlsbC50eXBlKCkgPT0gbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpKTsKICAg
ICBBU1NFUlQoZGVsdGEudG1wKCkpOwogICAgIEFTU0VSVChkZWx0YS50eXBlKCkgPT0gVHlwZTo6
STMyKTsKICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGU6OkkzMik7CkBAIC0xMTE1LDcgKzEx
MTUsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRUYWJsZUdyb3codW5zaWduZWQgdGFibGVJ
bmRleCwgRXhwcmVzc2lvblR5cGUgZmlsbCwgRXhwcgogYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRk
VGFibGVGaWxsKHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlIG9mZnNldCwgRXhw
cmVzc2lvblR5cGUgZmlsbCwgRXhwcmVzc2lvblR5cGUgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQK
IHsKICAgICBBU1NFUlQoZmlsbC50bXAoKSk7Ci0gICAgQVNTRVJUKGlzU3VidHlwZShmaWxsLnR5
cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpKSk7CisgICAgQVNTRVJU
KGZpbGwudHlwZSgpID09IG1faW5mby50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSk7CiAg
ICAgQVNTRVJUKG9mZnNldC50bXAoKSk7CiAgICAgQVNTRVJUKG9mZnNldC50eXBlKCkgPT0gVHlw
ZTo6STMyKTsKICAgICBBU1NFUlQoY291bnQudG1wKCkpOwpAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAg
YXV0byBBaXJJUkdlbmVyYXRvcjo6c2V0R2xvYmFsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9u
VHlwZSB2YWx1ZSkgLT4gUGFydGlhbFIKICAgICAgICAgICAgIGFwcGVuZChBZGQ2NCwgdGVtcDIs
IHRlbXAsIHRlbXApOwogICAgICAgICAgICAgYXBwZW5kKG1vdmVPcEZvclZhbHVlVHlwZSh0eXBl
KSwgdmFsdWUsIEFyZzo6YWRkcih0ZW1wKSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGlzU3Vi
dHlwZSh0eXBlLCBFeHRlcm5yZWYpKQorICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUpKQogICAg
ICAgICAgICAgZW1pdFdyaXRlQmFycmllckZvckpTV3JhcHBlcigpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFdhc206Okdsb2JhbEluZm9ybWF0aW9uOjpCaW5kaW5nTW9kZTo6UG9ydGFibGU6
CkBAIC0xMjYyLDcgKzEyNjIsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjpzZXRHbG9iYWwodWlu
dDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUgogICAgICAgICB9
CiAgICAgICAgIGFwcGVuZChtb3ZlT3BGb3JWYWx1ZVR5cGUodHlwZSksIHZhbHVlLCBBcmc6OmFk
ZHIodGVtcCkpOwogICAgICAgICAvLyBXZSBlbWl0IGEgd3JpdGUtYmFycmllciBvbnRvIEpTV2Vi
QXNzZW1ibHlHbG9iYWwsIG5vdCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UuCi0gICAgICAgIGlmIChp
c1N1YnR5cGUodHlwZSwgRXh0ZXJucmVmKSkgeworICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUp
KSB7CiAgICAgICAgICAgICBhdXRvIGNlbGwgPSBnNjQoKTsKICAgICAgICAgICAgIGF1dG8gdm0g
PSBnNjQoKTsKICAgICAgICAgICAgIGF1dG8gY2VsbFN0YXRlID0gZzMyKCk7CkBAIC0yMzI1LDcg
KzIzMjUsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QodW5zaWduZWQg
dGFibGVJbmRleCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYQogCiB2b2lkIEFpcklSR2VuZXJhdG9y
Ojp1bmlmeShjb25zdCBFeHByZXNzaW9uVHlwZSBkc3QsIGNvbnN0IEV4cHJlc3Npb25UeXBlIHNv
dXJjZSkKIHsKLSAgICBBU1NFUlQoaXNTdWJ0eXBlKHNvdXJjZS50eXBlKCksIGRzdC50eXBlKCkp
KTsKKyAgICBBU1NFUlQoc291cmNlLnR5cGUoKSA9PSBkc3QudHlwZSgpKTsKICAgICBhcHBlbmQo
bW92ZU9wRm9yVmFsdWVUeXBlKGRzdC50eXBlKCkpLCBzb3VyY2UsIGRzdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCAz
MGIzYzc3MjMyZjJkZWU1ZjQ1OTNhNGJjODk5NTY1N2YxMzk4ZGZiLi5kOGJiMjQ0ZDNiMzMyM2Mx
YWQ4ZmNlZDFiYjY0MzFjZGYwMzQyMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBAIC02MzMsNyArNjMzLDcgQEAgYXV0byBCM0lS
R2VuZXJhdG9yOjphZGRMb2NhbChUeXBlIHR5cGUsIHVpbnQzMl90IGNvdW50KSAtPiBQYXJ0aWFs
UmVzdWx0CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAg
ICAgVmFyaWFibGUqIGxvY2FsID0gbV9wcm9jLmFkZFZhcmlhYmxlKHRvQjNUeXBlKHR5cGUpKTsK
ICAgICAgICAgbV9sb2NhbHMudW5jaGVja2VkQXBwZW5kKGxvY2FsKTsKLSAgICAgICAgYXV0byB2
YWwgPSBpc1N1YnR5cGUodHlwZSwgRXh0ZXJucmVmKSA/IEpTVmFsdWU6OmVuY29kZShqc051bGwo
KSkgOiAwOworICAgICAgICBhdXRvIHZhbCA9IGlzUmVmVHlwZSh0eXBlKSA/IEpTVmFsdWU6OmVu
Y29kZShqc051bGwoKSkgOiAwOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KG1fcHJvYywgU2V0LCBPcmlnaW4oKSwgbG9jYWwsIGNvbnN0YW50KHRvQjNU
eXBlKHR5cGUpLCB2YWwsIE9yaWdpbigpKSk7CiAgICAgfQogICAgIHJldHVybiB7IH07CkBAIC04
MzgsNyArODM4LDcgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjpzZXRHbG9iYWwodWludDMyX3QgaW5k
ZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUmUKICAgICBzd2l0Y2ggKGdsb2Jh
bC5iaW5kaW5nTW9kZSkgewogICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkJpbmRp
bmdNb2RlOjpFbWJlZGRlZEluSW5zdGFuY2U6CiAgICAgICAgIG1fY3VycmVudEJsb2NrLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KG1fcHJvYywgU3RvcmUsIG9yaWdpbigpLCB2YWx1ZSwgZ2xvYmFs
c0FycmF5LCBzYWZlQ2FzdDxpbnQzMl90PihpbmRleCAqIHNpemVvZihSZWdpc3RlcikpKTsKLSAg
ICAgICAgaWYgKGlzU3VidHlwZShnbG9iYWwudHlwZSwgRXh0ZXJucmVmKSkKKyAgICAgICAgaWYg
KGlzUmVmVHlwZShnbG9iYWwudHlwZSkpCiAgICAgICAgICAgICBlbWl0V3JpdGVCYXJyaWVyRm9y
SlNXcmFwcGVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3Jt
YXRpb246OkJpbmRpbmdNb2RlOjpQb3J0YWJsZTogewpAQCAtODQ2LDcgKzg0Niw3IEBAIGF1dG8g
QjNJUkdlbmVyYXRvcjo6c2V0R2xvYmFsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSB2
YWx1ZSkgLT4gUGFydGlhbFJlCiAgICAgICAgIFZhbHVlKiBwb2ludGVyID0gbV9jdXJyZW50Qmxv
Y2stPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4obV9wcm9jLCBMb2FkLCBCMzo6SW50NjQsIG9yaWdp
bigpLCBnbG9iYWxzQXJyYXksIHNhZmVDYXN0PGludDMyX3Q+KGluZGV4ICogc2l6ZW9mKFJlZ2lz
dGVyKSkpOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPiht
X3Byb2MsIFN0b3JlLCBvcmlnaW4oKSwgdmFsdWUsIHBvaW50ZXIpOwogICAgICAgICAvLyBXZSBl
bWl0IGEgd3JpdGUtYmFycmllciBvbnRvIEpTV2ViQXNzZW1ibHlHbG9iYWwsIG5vdCBKU1dlYkFz
c2VtYmx5SW5zdGFuY2UuCi0gICAgICAgIGlmIChpc1N1YnR5cGUoZ2xvYmFsLnR5cGUsIEV4dGVy
bnJlZikpIHsKKyAgICAgICAgaWYgKGlzUmVmVHlwZShnbG9iYWwudHlwZSkpIHsKICAgICAgICAg
ICAgIFZhbHVlKiBpbnN0YW5jZSA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KG1fcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgb3JpZ2luKCksIGluc3RhbmNlVmFsdWUo
KSwgc2FmZUNhc3Q8aW50MzJfdD4oSW5zdGFuY2U6Om9mZnNldE9mT3duZXIoKSkpOwogICAgICAg
ICAgICAgVmFsdWUqIGNlbGwgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PihtX3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG9yaWdpbigpLCBwb2ludGVyLCBXYXNtOjpH
bG9iYWw6Om9mZnNldE9mT3duZXIoKSAtIFdhc206Okdsb2JhbDo6b2Zmc2V0T2ZWYWx1ZSgpKTsK
ICAgICAgICAgICAgIFZhbHVlKiBjZWxsU3RhdGUgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQ4WiwgSW50MzIsIG9yaWdpbigpLCBjZWxsLCBzYWZl
Q2FzdDxpbnQzMl90PihKU0NlbGw6OmNlbGxTdGF0ZU9mZnNldCgpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggYmQ1MzYxODJjMDllMTVkZGU1NjIyNDhhNzEz
OWZhZmM0ZWI2OWI5OS4uMWZjZmRmMmJhMjAwYzQ1MmI1ZmEzNjMxM2RhNGE0NzUzNGM0NzVjNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNzgsMTMgKzc4LDYg
QEAgaW5saW5lIGJvb2wgaXNWYWx1ZVR5cGUoVHlwZSB0eXBlKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotaW5saW5lIGJvb2wgaXNTdWJ0eXBlKFR5cGUgc3ViLCBUeXBlIHBhcmVudCkKLXsKLSAg
ICBpZiAoc3ViID09IHBhcmVudCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIHN1
YiA9PSBGdW5jcmVmICYmIHBhcmVudCA9PSBFeHRlcm5yZWY7Ci19Ci0KIGlubGluZSBib29sIGlz
UmVmVHlwZShUeXBlIHR5cGUpCiB7CiAgICAgcmV0dXJuIHR5cGUgPT0gRXh0ZXJucmVmIHx8IHR5
cGUgPT0gRnVuY3JlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0
aW9uUGFyc2VyLmgKaW5kZXggNDM5YjVmOTE5NDU4NzU3OGJiZDM3ZTdkOTJmZDIzZDljZTY3OWU1
Yy4uYmExMWQ3ODI5OWVmMzQ3YTk3MmE3MDJlZjliYWY3MTY3ZTE5MTM0YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTMyNyw3ICsz
MjcsNyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpjaGVja0JyYW5jaFRhcmdldChj
b25zdCBDb250cm9sVHlwZSYgdGFyZ2V0KSAtPiBQYQogCiAgICAgdW5zaWduZWQgb2Zmc2V0ID0g
bV9leHByZXNzaW9uU3RhY2suc2l6ZSgpIC0gdGFyZ2V0LmJyYW5jaFRhcmdldEFyaXR5KCk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhcmdldC5icmFuY2hUYXJnZXRBcml0eSgpOyAr
K2kpCi0gICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh0YXJnZXQuYnJh
bmNoVGFyZ2V0VHlwZShpKSwgbV9leHByZXNzaW9uU3RhY2tbb2Zmc2V0ICsgaV0udHlwZSgpKSwg
ImJyYW5jaCdzIHN0YWNrIHR5cGUgaXMgbm90IGEgc3VidHlwZSBvZiBibG9jaydzIHR5cGUgYnJh
bmNoIHRhcmdldCB0eXBlLiBTdGFjayB2YWx1ZSBoYXMgdHlwZSIsIG1fZXhwcmVzc2lvblN0YWNr
W29mZnNldCArIGldLnR5cGUoKSwgIiBidXQgYnJhbmNoIHRhcmdldCBleHBlY3RzIGEgdmFsdWUg
d2l0aCBzdWJ0eXBlIG9mICIsIHRhcmdldC5icmFuY2hUYXJnZXRUeXBlKGkpLCAiIGF0IGluZGV4
ICIsIGkpOworICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKHRhcmdldC5icmFuY2hUYXJn
ZXRUeXBlKGkpICE9IG1fZXhwcmVzc2lvblN0YWNrW29mZnNldCArIGldLnR5cGUoKSwgImJyYW5j
aCdzIHN0YWNrIHR5cGUgaXMgbm90IGEgYmxvY2sncyB0eXBlIGJyYW5jaCB0YXJnZXQgdHlwZS4g
U3RhY2sgdmFsdWUgaGFzIHR5cGUiLCBtX2V4cHJlc3Npb25TdGFja1tvZmZzZXQgKyBpXS50eXBl
KCksICIgYnV0IGJyYW5jaCB0YXJnZXQgZXhwZWN0cyBhIHZhbHVlIG9mICIsIHRhcmdldC5icmFu
Y2hUYXJnZXRUeXBlKGkpLCAiIGF0IGluZGV4ICIsIGkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0K
QEAgLTMzNyw3ICszMzcsNyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+Ojp1bmlmeShj
b25zdCBDb250cm9sVHlwZSYgY29udHJvbERhdGEpIC0+IFBhcnRpYWxSZQogewogICAgIFdBU01f
VkFMSURBVE9SX0ZBSUxfSUYoY29udHJvbERhdGEuc2lnbmF0dXJlKCktPnJldHVybkNvdW50KCkg
IT0gbV9leHByZXNzaW9uU3RhY2suc2l6ZSgpLCAiIGJsb2NrIHdpdGggdHlwZTogIiwgY29udHJv
bERhdGEuc2lnbmF0dXJlKCktPnRvU3RyaW5nKCksICIgcmV0dXJuczogIiwgY29udHJvbERhdGEu
c2lnbmF0dXJlKCktPnJldHVybkNvdW50KCksICIgYnV0IHN0YWNrIGhhczogIiwgbV9leHByZXNz
aW9uU3RhY2suc2l6ZSgpLCAiIHZhbHVlcyIpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuQ291bnQoKTsgKytpKQotICAgICAgICBX
QVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5cGUobV9leHByZXNzaW9uU3RhY2tbaV0udHlw
ZSgpLCBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuVHlwZShpKSksICJjb250cm9sIGZs
b3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gIiwgbV9leHByZXNzaW9uU3RhY2tbaV0u
dHlwZSgpLCAiIGlzIG5vdCBhIHN1YnR5cGUgb2YgIiwgY29udHJvbERhdGEuc2lnbmF0dXJlKCkt
PnJldHVyblR5cGUoaSkpOworICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKG1fZXhwcmVz
c2lvblN0YWNrW2ldLnR5cGUoKSAhPSBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuVHlw
ZShpKSwgImNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiAiLCBtX2V4
cHJlc3Npb25TdGFja1tpXS50eXBlKCksICIgaXMgbm90IGEgIiwgY29udHJvbERhdGEuc2lnbmF0
dXJlKCktPnJldHVyblR5cGUoaSkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTQzNiw3ICs0
MzYsNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfQ0FTRSkKICAgICAg
ICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhpbmRleCwgInRhYmxlLnNldCIp
OwogICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKEkzMiAhPSBpbmRleC50eXBlKCksICJ0
YWJsZS5zZXQgaW5kZXggdG8gdHlwZSAiLCBpbmRleC50eXBlKCksICIgZXhwZWN0ZWQgIiwgSTMy
KTsKICAgICAgICAgVHlwZSB0eXBlID0gbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlw
ZSgpOwotICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5cGUodmFsdWUudHlw
ZSgpLCB0eXBlKSwgInRhYmxlLnNldCB2YWx1ZSB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwgIiBl
eHBlY3RlZCAiLCB0eXBlKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih2YWx1ZS50
eXBlKCkgIT0gdHlwZSwgInRhYmxlLnNldCB2YWx1ZSB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwg
IiBleHBlY3RlZCAiLCB0eXBlKTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pbmZvLnRhYmxl
c1t0YWJsZUluZGV4XS50eXBlKCkgPT0gVGFibGVFbGVtZW50VHlwZTo6RXh0ZXJucmVmIHx8IG1f
aW5mby50YWJsZXNbdGFibGVJbmRleF0udHlwZSgpID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1bmNy
ZWYpOwogICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChhZGRUYWJsZVNldCh0YWJsZUlu
ZGV4LCBpbmRleCwgdmFsdWUpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTQ2Myw3ICs0NjMs
NyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfQ0FTRSkKICAgICAgICAg
ICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8oZGVsdGEsICJ0YWJsZS5ncm93
Iik7CiAgICAgICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKGZpbGws
ICJ0YWJsZS5ncm93Iik7CiAKLSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlz
U3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgp
KSwgInRhYmxlLmdyb3cgZXhwZWN0cyBmaWxsIHZhbHVlIG9mIHR5cGUgIiwgbV9pbmZvLnRhYmxl
c1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBmaWxsLnR5cGUoKSk7CisgICAgICAg
ICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwudHlwZSgpICE9IG1faW5mby50YWJsZXNb
dGFibGVJbmRleF0ud2FzbVR5cGUoKSwgInRhYmxlLmdyb3cgZXhwZWN0cyBmaWxsIHZhbHVlIG9m
IHR5cGUgIiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBm
aWxsLnR5cGUoKSk7CiAgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKEkzMiAhPSBk
ZWx0YS50eXBlKCksICJ0YWJsZS5ncm93IGV4cGVjdHMgYW4gaTMyIGRlbHRhIHZhbHVlLCBnb3Qg
IiwgZGVsdGEudHlwZSgpKTsKIAogICAgICAgICAgICAgRXhwcmVzc2lvblR5cGUgcmVzdWx0OwpA
QCAtNDc3LDcgKzQ3Nyw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9D
QVNFKQogICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhmaWxs
LCAidGFibGUuZmlsbCIpOwogICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RB
Q0tfSU5UTyhvZmZzZXQsICJ0YWJsZS5maWxsIik7CiAKLSAgICAgICAgICAgIFdBU01fVkFMSURB
VE9SX0ZBSUxfSUYoIWlzU3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUlu
ZGV4XS53YXNtVHlwZSgpKSwgInRhYmxlLmZpbGwgZXhwZWN0cyBmaWxsIHZhbHVlIG9mIHR5cGUg
IiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBmaWxsLnR5
cGUoKSk7CisgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwudHlwZSgpICE9
IG1faW5mby50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSwgInRhYmxlLmZpbGwgZXhwZWN0
cyBmaWxsIHZhbHVlIG9mIHR5cGUgIiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlw
ZSgpLCAiIGdvdCAiLCBmaWxsLnR5cGUoKSk7CiAgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9G
QUlMX0lGKEkzMiAhPSBvZmZzZXQudHlwZSgpLCAidGFibGUuZmlsbCBleHBlY3RzIGFuIGkzMiBv
ZmZzZXQgdmFsdWUsIGdvdCAiLCBvZmZzZXQudHlwZSgpKTsKICAgICAgICAgICAgIFdBU01fVkFM
SURBVE9SX0ZBSUxfSUYoSTMyICE9IGNvdW50LnR5cGUoKSwgInRhYmxlLmZpbGwgZXhwZWN0cyBh
biBpMzIgY291bnQgdmFsdWUsIGdvdCAiLCBjb3VudC50eXBlKCkpOwogCkBAIC01MDMsNyArNTAz
LDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAg
IFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5UmVmZXJlbmNlcygp
LCAicmVmZXJlbmNlcyBhcmUgbm90IGVuYWJsZWQiKTsKICAgICAgICAgVHlwZWRFeHByZXNzaW9u
IHZhbHVlOwogICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHZhbHVl
LCAicmVmLmlzX251bGwiKTsKLSAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighaXNTdWJ0
eXBlKHZhbHVlLnR5cGUoKSwgRXh0ZXJucmVmKSwgInJlZi5pc19udWxsIHRvIHR5cGUgIiwgdmFs
dWUudHlwZSgpLCAiIGV4cGVjdGVkICIsIEV4dGVybnJlZik7CisgICAgICAgIFdBU01fVkFMSURB
VE9SX0ZBSUxfSUYoIWlzUmVmVHlwZSh2YWx1ZS50eXBlKCkpLCAicmVmLmlzX251bGwgdG8gdHlw
ZSAiLCB2YWx1ZS50eXBlKCksICIgZXhwZWN0ZWQgYSByZWZlcmVuY2UgdHlwZSIpOwogICAgICAg
ICBFeHByZXNzaW9uVHlwZSByZXN1bHQ7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19DT05URVhU
KGFkZFJlZklzTnVsbCh2YWx1ZSwgcmVzdWx0KSk7CiAgICAgICAgIG1fZXhwcmVzc2lvblN0YWNr
LmNvbnN0cnVjdEFuZEFwcGVuZChJMzIsIHJlc3VsdCk7CkBAIC01MzksNyArNTM5LDcgQEAgRk9S
X0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGluZGV4KSwgImNhbid0IGdldCBpbmRleCBmb3Ig
c2V0X2xvY2FsIik7CiAgICAgICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8o
dmFsdWUsICJzZXRfbG9jYWwiKTsKICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRihpbmRl
eCA+PSBtX2xvY2Fscy5zaXplKCksICJhdHRlbXB0IHRvIHNldCB1bmtub3duIGxvY2FsICIsIGlu
ZGV4LCAiIGxhc3Qgb25lIGlzICIsIG1fbG9jYWxzLnNpemUoKSk7Ci0gICAgICAgIFdBU01fVkFM
SURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh2YWx1ZS50eXBlKCksIG1fbG9jYWxzW2luZGV4XSks
ICJzZXRfbG9jYWwgdG8gdHlwZSAiLCB2YWx1ZS50eXBlKCksICIgZXhwZWN0ZWQgIiwgbV9sb2Nh
bHNbaW5kZXhdKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih2YWx1ZS50eXBlKCkg
IT0gbV9sb2NhbHNbaW5kZXhdLCAic2V0X2xvY2FsIHRvIHR5cGUgIiwgdmFsdWUudHlwZSgpLCAi
IGV4cGVjdGVkICIsIG1fbG9jYWxzW2luZGV4XSk7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19D
T05URVhUKHNldExvY2FsKGluZGV4LCB2YWx1ZSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KQEAgLTU1MCw3ICs1NTAsNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVB
VEVfQ0FTRSkKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihtX2V4cHJlc3Npb25TdGFjay5p
c0VtcHR5KCksICJjYW4ndCB0ZWVfbG9jYWwgb24gZW1wdHkgZXhwcmVzc2lvbiBzdGFjayIpOwog
ICAgICAgICBUeXBlZEV4cHJlc3Npb24gdmFsdWUgPSBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCk7
CiAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoaW5kZXggPj0gbV9sb2NhbHMuc2l6ZSgp
LCAiYXR0ZW1wdCB0byB0ZWUgdW5rbm93biBsb2NhbCAiLCBpbmRleCwgIiBsYXN0IG9uZSBpcyAi
LCBtX2xvY2Fscy5zaXplKCkpOwotICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1
YnR5cGUodmFsdWUudHlwZSgpLCBtX2xvY2Fsc1tpbmRleF0pLCAic2V0X2xvY2FsIHRvIHR5cGUg
IiwgdmFsdWUudHlwZSgpLCAiIGV4cGVjdGVkICIsIG1fbG9jYWxzW2luZGV4XSk7CisgICAgICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYodmFsdWUudHlwZSgpICE9IG1fbG9jYWxzW2luZGV4XSwg
InNldF9sb2NhbCB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwgIiBleHBlY3RlZCAiLCBtX2xvY2Fs
c1tpbmRleF0pOwogICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChzZXRMb2NhbChpbmRl
eCwgdmFsdWUpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC01OTgsNyArNTk4LDcg
QEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdB
U01fUEFSU0VSX0ZBSUxfSUYoIWFyZ3MudHJ5UmVzZXJ2ZUNhcGFjaXR5KGNhbGxlZVNpZ25hdHVy
ZS5hcmd1bWVudENvdW50KCkpLCAiY2FuJ3QgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgY2Fs
bCdzICIsIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudENvdW50KCksICIgYXJndW1lbnRzIik7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEFyZ3VtZW50SW5kZXg7IGkgPCBtX2V4cHJlc3Np
b25TdGFjay5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgVHlwZWRFeHByZXNzaW9uIGFyZyA9
IG1fZXhwcmVzc2lvblN0YWNrLmF0KGkpOwotICAgICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJ
TF9JRighaXNTdWJ0eXBlKGFyZy50eXBlKCksIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0g
Zmlyc3RBcmd1bWVudEluZGV4KSksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGluIGNhbGwsIGdv
dCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVTaWduYXR1cmUuYXJndW1lbnQo
aSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOworICAgICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJ
TF9JRihhcmcudHlwZSgpICE9IGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0gZmlyc3RBcmd1
bWVudEluZGV4KSwgImFyZ3VtZW50IHR5cGUgbWlzbWF0Y2ggaW4gY2FsbCwgZ290ICIsIGFyZy50
eXBlKCksICIsIGV4cGVjdGVkICIsIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0gZmlyc3RB
cmd1bWVudEluZGV4KSk7CiAgICAgICAgICAgICBhcmdzLnVuY2hlY2tlZEFwcGVuZChhcmcpOwog
ICAgICAgICAgICAgbV9jb250ZXh0LmRpZFBvcFZhbHVlRnJvbVN0YWNrKCk7CiAgICAgICAgIH0K
QEAgLTYzOSw3ICs2MzksNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVf
Q0FTRSkKICAgICAgICAgZm9yIChzaXplX3QgaSA9IGZpcnN0QXJndW1lbnRJbmRleDsgaSA8IG1f
ZXhwcmVzc2lvblN0YWNrLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBUeXBlZEV4cHJlc3Np
b24gYXJnID0gbV9leHByZXNzaW9uU3RhY2suYXQoaSk7CiAgICAgICAgICAgICBpZiAoaSA8IG1f
ZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIDEpCi0gICAgICAgICAgICAgICAgV0FTTV9WQUxJREFU
T1JfRkFJTF9JRighaXNTdWJ0eXBlKGFyZy50eXBlKCksIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVu
dChpIC0gZmlyc3RBcmd1bWVudEluZGV4KSksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGluIGNh
bGxfaW5kaXJlY3QsIGdvdCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVTaWdu
YXR1cmUuYXJndW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOworICAgICAgICAgICAgICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoYXJnLnR5cGUoKSAhPSBjYWxsZWVTaWduYXR1cmUuYXJn
dW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGlu
IGNhbGxfaW5kaXJlY3QsIGdvdCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVT
aWduYXR1cmUuYXJndW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOwogICAgICAgICAgICAg
YXJncy51bmNoZWNrZWRBcHBlbmQoYXJnKTsKICAgICAgICAgICAgIG1fY29udGV4dC5kaWRQb3BW
YWx1ZUZyb21TdGFjaygpOwogICAgICAgICB9CkBAIC02NjIsNyArNjYyLDcgQEAgRk9SX0VBQ0hf
V0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIHVuc2lnbmVkIG9mZnNl
dCA9IG1fZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRD
b3VudCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5saW5lU2lnbmF0dXJl
LT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAgICAgICAgVHlwZSB0eXBlID0gbV9leHBy
ZXNzaW9uU3RhY2suYXQob2Zmc2V0ICsgaSkudHlwZSgpOwotICAgICAgICAgICAgV0FTTV9WQUxJ
REFUT1JfRkFJTF9JRighaXNTdWJ0eXBlKHR5cGUsIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnQo
aSkpLCAiQmxvY2sgZXhwZWN0cyB0aGUgYXJndW1lbnQgYXQgaW5kZXgiLCBpLCAiIHRvIGJlIGEg
c3VidHlwZSBvZiAiLCBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiIGJ1dCBhcmd1bWVu
dCBoYXMgdHlwZSAiLCB0eXBlKTsKKyAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYo
dHlwZSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiQmxvY2sgZXhwZWN0cyB0aGUg
YXJndW1lbnQgYXQgaW5kZXgiLCBpLCAiIHRvIGJlICIsIGlubGluZVNpZ25hdHVyZS0+YXJndW1l
bnQoaSksICIgYnV0IGFyZ3VtZW50IGhhcyB0eXBlICIsIHR5cGUpOwogICAgICAgICB9CiAKICAg
ICAgICAgaW50NjRfdCBvbGRTaXplID0gbV9leHByZXNzaW9uU3RhY2suc2l6ZSgpOwpAQCAtNjg1
LDcgKzY4NSw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQog
ICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSBtX2V4cHJlc3Npb25TdGFjay5zaXplKCkgLSBpbmxp
bmVTaWduYXR1cmUtPmFyZ3VtZW50Q291bnQoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAg
ICAgIFR5cGUgdHlwZSA9IG1fZXhwcmVzc2lvblN0YWNrLmF0KG9mZnNldCArIGkpLnR5cGUoKTsK
LSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh0eXBlLCBpbmxp
bmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpKSwgIkxvb3AgZXhwZWN0cyB0aGUgYXJndW1lbnQgYXQg
aW5kZXgiLCBpLCAiIHRvIGJlIGEgc3VidHlwZSBvZiAiLCBpbmxpbmVTaWduYXR1cmUtPmFyZ3Vt
ZW50KGkpLCAiIGJ1dCBhcmd1bWVudCBoYXMgdHlwZSAiLCB0eXBlKTsKKyAgICAgICAgICAgIFdB
U01fVkFMSURBVE9SX0ZBSUxfSUYodHlwZSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkp
LCAiTG9vcCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRleCIsIGksICIgdG8gYmUgIiwgaW5s
aW5lU2lnbmF0dXJlLT5hcmd1bWVudChpKSwgIiBidXQgYXJndW1lbnQgaGFzIHR5cGUgIiwgdHlw
ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBpbnQ2NF90IG9sZFNpemUgPSBtX2V4cHJlc3Npb25T
dGFjay5zaXplKCk7CkBAIC03MTAsNyArNzEwLDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RP
UkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYobV9leHBy
ZXNzaW9uU3RhY2suc2l6ZSgpIDwgaW5saW5lU2lnbmF0dXJlLT5hcmd1bWVudENvdW50KCksICJU
b28gZmV3IGFyZ3VtZW50cyBvbiBzdGFjayBmb3IgaWYgYmxvY2suIElmIGV4cGVjdHMgIiwgaW5s
aW5lU2lnbmF0dXJlLT5hcmd1bWVudENvdW50KCksICIsIGJ1dCBvbmx5ICIsIG1fZXhwcmVzc2lv
blN0YWNrLnNpemUoKSwgIiB3ZXJlIHByZXNlbnQuIElmIGJsb2NrIGhhcyBzaWduYXR1cmU6ICIs
IGlubGluZVNpZ25hdHVyZS0+dG9TdHJpbmcoKSk7CiAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9
IG1fZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRDb3Vu
dCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5saW5lU2lnbmF0dXJlLT5h
cmd1bWVudENvdW50KCk7ICsraSkKLSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYo
IWlzU3VidHlwZShtX2V4cHJlc3Npb25TdGFja1tvZmZzZXQgKyBpXS50eXBlKCksIGlubGluZVNp
Z25hdHVyZS0+YXJndW1lbnQoaSkpLCAiTG9vcCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRl
eCIsIGksICIgdG8gYmUgYSBzdWJ0eXBlIG9mICIsIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnQo
aSksICIgYnV0IGFyZ3VtZW50IGhhcyB0eXBlICIsIG1fZXhwcmVzc2lvblN0YWNrW2ldLnR5cGUo
KSk7CisgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKG1fZXhwcmVzc2lvblN0YWNr
W29mZnNldCArIGldLnR5cGUoKSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiTG9v
cCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRleCIsIGksICIgdG8gYmUgIiwgaW5saW5lU2ln
bmF0dXJlLT5hcmd1bWVudChpKSwgIiBidXQgYXJndW1lbnQgaGFzIHR5cGUgIiwgbV9leHByZXNz
aW9uU3RhY2tbaV0udHlwZSgpKTsKIAogICAgICAgICBpbnQ2NF90IG9sZFNpemUgPSBtX2V4cHJl
c3Npb25TdGFjay5zaXplKCk7CiAgICAgICAgIFN0YWNrIG5ld1N0YWNrOwpAQCAtNzg0LDcgKzc4
NCw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQogICAgICAg
ICAgICAgQ29udHJvbFR5cGUqIHRhcmdldCA9IHRhcmdldHNbaV07CiAgICAgICAgICAgICBXQVNN
X1ZBTElEQVRPUl9GQUlMX0lGKGRlZmF1bHRUYXJnZXQuYnJhbmNoVGFyZ2V0QXJpdHkoKSAhPSB0
YXJnZXQtPmJyYW5jaFRhcmdldEFyaXR5KCksICJicl90YWJsZSB0YXJnZXQgdHlwZSBzaXplIG1p
c21hdGNoLiBEZWZhdWx0IGhhcyBzaXplOiAiLCBkZWZhdWx0VGFyZ2V0LmJyYW5jaFRhcmdldEFy
aXR5KCksICJidXQgdGFyZ2V0OiAiLCBpLCAiIGhhcyBzaXplOiAiLCB0YXJnZXQtPmJyYW5jaFRh
cmdldEFyaXR5KCkpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCB0eXBlID0gMDsgdHlwZSA8
IGRlZmF1bHRUYXJnZXQuYnJhbmNoVGFyZ2V0QXJpdHkoKTsgKyt0eXBlKQotICAgICAgICAgICAg
ICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZShkZWZhdWx0VGFyZ2V0LmJyYW5j
aFRhcmdldFR5cGUodHlwZSksIHRhcmdldC0+YnJhbmNoVGFyZ2V0VHlwZSh0eXBlKSksICJicl90
YWJsZSB0YXJnZXQgdHlwZSBtaXNtYXRjaCBhdCBvZmZzZXQgIiwgdHlwZSwgIiBleHBlY3RlZDog
IiwgZGVmYXVsdFRhcmdldC5icmFuY2hUYXJnZXRUeXBlKHR5cGUpLCAiIGJ1dCBzYXc6ICIsIHRh
cmdldC0+YnJhbmNoVGFyZ2V0VHlwZSh0eXBlKSwgIiB3aGVuIHRhcmdldGluZyBibG9jazogIiwg
dGFyZ2V0LT5zaWduYXR1cmUoKS0+dG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgV0FTTV9W
QUxJREFUT1JfRkFJTF9JRihkZWZhdWx0VGFyZ2V0LmJyYW5jaFRhcmdldFR5cGUodHlwZSkgIT0g
dGFyZ2V0LT5icmFuY2hUYXJnZXRUeXBlKHR5cGUpLCAiYnJfdGFibGUgdGFyZ2V0IHR5cGUgbWlz
bWF0Y2ggYXQgb2Zmc2V0ICIsIHR5cGUsICIgZXhwZWN0ZWQ6ICIsIGRlZmF1bHRUYXJnZXQuYnJh
bmNoVGFyZ2V0VHlwZSh0eXBlKSwgIiBidXQgc2F3OiAiLCB0YXJnZXQtPmJyYW5jaFRhcmdldFR5
cGUodHlwZSksICIgd2hlbiB0YXJnZXRpbmcgYmxvY2s6ICIsIHRhcmdldC0+c2lnbmF0dXJlKCkt
PnRvU3RyaW5nKCkpOwogICAgICAgICB9CiAKICAgICAgICAgV0FTTV9GQUlMX0lGX0hFTFBFUl9G
QUlMUyhjaGVja0JyYW5jaFRhcmdldChkZWZhdWx0VGFyZ2V0KSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcAppbmRleCAzOWVjY2QyM2YzYmNiNDIyNjVlODM5
MmFmNDFkNTZkZjJmZWVlMzQ1Li4yZDY3NTgwYjg3ZThiOWE2MDM0YjQ1ZmU5ZWVlYmM0NzNkMDVi
OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAKQEAg
LTYyLDcgKzYyLDcgQEAgSW5zdGFuY2U6Okluc3RhbmNlKENvbnRleHQqIGNvbnRleHQsIFJlZjxN
b2R1bGU+JiYgbW9kdWxlLCBFbnRyeUZyYW1lKiogcG9pbnRlclQKICAgICAgICAgaWYgKGdsb2Jh
bC5iaW5kaW5nTW9kZSA9PSBXYXNtOjpHbG9iYWxJbmZvcm1hdGlvbjo6QmluZGluZ01vZGU6OlBv
cnRhYmxlKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGtlcHQgYWxpdmUgYnkgSlNXZWJBc3Nl
bWJseUluc3RhbmNlIC0+IEpTV2ViQXNzZW1ibHlHbG9iYWwgLT4gYmluZGluZy4KICAgICAgICAg
ICAgIG1fZ2xvYmFsc1RvQmluZGluZy5zZXQoaSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXNTdWJ0
eXBlKGdsb2JhbC50eXBlLCBFeHRlcm5yZWYpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoaXNSZWZU
eXBlKGdsb2JhbC50eXBlKSkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBrZXB0IGFsaXZlIGJ5
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSAtPiBiaW5kaW5nLgogICAgICAgICAgICAgbV9nbG9iYWxz
VG9NYXJrLnNldChpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggZDNhMDU5YTk5MDQ3YTczMTc0MDZkOGJi
YWM3NDU3MjZmY2QyNDJmZC4uZGZjOTE5ZWYzMTAxZDA4MTBlYmM2OGZhYjA5MmU0ZmE5Yzk2ZTBh
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0
b3IuY3BwCkBAIC04MjYsMTMgKzgyNiwxMyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpzZXRHbG9i
YWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUgogICAg
IFR5cGUgdHlwZSA9IGdsb2JhbC50eXBlOwogICAgIHN3aXRjaCAoZ2xvYmFsLmJpbmRpbmdNb2Rl
KSB7CiAgICAgY2FzZSBXYXNtOjpHbG9iYWxJbmZvcm1hdGlvbjo6QmluZGluZ01vZGU6OkVtYmVk
ZGVkSW5JbnN0YW5jZToKLSAgICAgICAgaWYgKGlzU3VidHlwZSh0eXBlLCBFeHRlcm5yZWYpKQor
ICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUpKQogICAgICAgICAgICAgV2FzbVNldEdsb2JhbFJl
Zjo6ZW1pdCh0aGlzLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBX
YXNtU2V0R2xvYmFsOjplbWl0KHRoaXMsIGluZGV4LCB2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkJpbmRpbmdNb2RlOjpQb3J0YWJsZToK
LSAgICAgICAgaWYgKGlzU3VidHlwZSh0eXBlLCBFeHRlcm5yZWYpKQorICAgICAgICBpZiAoaXNS
ZWZUeXBlKHR5cGUpKQogICAgICAgICAgICAgV2FzbVNldEdsb2JhbFJlZlBvcnRhYmxlQmluZGlu
Zzo6ZW1pdCh0aGlzLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBX
YXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nOjplbWl0KHRoaXMsIGluZGV4LCB2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAKaW5k
ZXggZDczNGM2MGRjOTlkZTZhZmVkMjM1ZmE2OGFmYTgyZjI2NGIwYzhiNy4uMGY1MzMzOTQ3MjBi
ZjczYjBlOTc0OGY3ZTZkNDljODEyYzUyOGEyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVNlY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcApAQCAtMjk2LDcgKzI5Niw3IEBAIGF1dG8g
U2VjdGlvblBhcnNlcjo6cGFyc2VHbG9iYWwoKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgICAg
ICBnbG9iYWwuaW5pdGlhbGl6YXRpb25UeXBlID0gR2xvYmFsSW5mb3JtYXRpb246OkZyb21SZWZG
dW5jOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBnbG9iYWwuaW5pdGlhbGl6YXRpb25UeXBl
ID0gR2xvYmFsSW5mb3JtYXRpb246OkZyb21FeHByZXNzaW9uOwotICAgICAgICBXQVNNX1BBUlNF
Ul9GQUlMX0lGKCFpc1N1YnR5cGUodHlwZUZvckluaXRPcGNvZGUsIGdsb2JhbC50eXBlKSwgIkds
b2JhbCBpbml0X2V4cHIgb3Bjb2RlIG9mIHR5cGUgIiwgdHlwZUZvckluaXRPcGNvZGUsICIgZG9l
c24ndCBtYXRjaCBnbG9iYWwncyB0eXBlICIsIGdsb2JhbC50eXBlKTsKKyAgICAgICAgV0FTTV9Q
QVJTRVJfRkFJTF9JRih0eXBlRm9ySW5pdE9wY29kZSAhPSBnbG9iYWwudHlwZSwgIkdsb2JhbCBp
bml0X2V4cHIgb3Bjb2RlIG9mIHR5cGUgIiwgdHlwZUZvckluaXRPcGNvZGUsICIgZG9lc24ndCBt
YXRjaCBnbG9iYWwncyB0eXBlICIsIGdsb2JhbC50eXBlKTsKIAogICAgICAgICBtX2luZm8tPmds
b2JhbHMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoZ2xvYmFsKSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmQuY3BwCmluZGV4IDMxYzIxZTNjNDM3MDJjOTlmYjZmODA5NTRkMGM1ZTQ3N2Q3MGRmN2QuLmU5
ODRiOWIwZWU0NzNiNTc5MGViNTc4ODU0Mzk5MmE5MjAyYjg3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5j
cHAKQEAgLTI1NiwxMCArMjU2LDExIEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6Omxp
bmsoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSwgSlNPYmplCiAgICAgICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgYXV0byBnbG9iYWxUeXBlID0gbW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFsc1tpbXBv
cnQua2luZEluZGV4XS50eXBlOwogICAgICAgICAgICAgICAgICAgICAvLyBpaS4gSWYgdGhlIGds
b2JhbF90eXBlIG9mIGkgaXMgaTY0IG9yIFR5cGUodikgaXMgbm90IE51bWJlciwgdGhyb3cgYSBX
ZWJBc3NlbWJseS5MaW5rRXJyb3IuCi0gICAgICAgICAgICAgICAgICAgIGlmIChtb2R1bGVJbmZv
cm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5cGUgPT0gV2FzbTo6STY0KQorICAg
ICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsVHlwZSA9PSBXYXNtOjpJNjQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQg
Z2xvYmFsIiwgImNhbm5vdCBiZSBhbiBpNjQiKSkpOwotICAgICAgICAgICAgICAgICAgICBpZiAo
IWlzU3VidHlwZShtb2R1bGVJbmZvcm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5
cGUsIFdhc206OkV4dGVybnJlZikgJiYgIXZhbHVlLmlzTnVtYmVyKCkpCisgICAgICAgICAgICAg
ICAgICAgIGlmICghaXNSZWZUeXBlKGdsb2JhbFR5cGUpICYmICF2YWx1ZS5pc051bWJlcigpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwg
ImltcG9ydGVkIGdsb2JhbCIsICJtdXN0IGJlIGEgbnVtYmVyIikpKTsKIAogICAgICAgICAgICAg
ICAgICAgICAvLyBpaWkuIEFwcGVuZCBUb1dlYkFzc2VtYmx5VmFsdWUodikgdG8gaW1wb3J0cy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvd2FzbS1yZWZlcmVuY2VzL3Rlc3QuanMg
Yi9MYXlvdXRUZXN0cy93b3JrZXJzL3dhc20tcmVmZXJlbmNlcy90ZXN0LmpzCmluZGV4IGQ0Yjhj
NTQ5NjMzZGE1MTg1NjYyNGZiZmYxY2I1MTRkYzkwNWY2YjkuLjk1NGFhYTA5MzBiYjIzN2NkMTNh
MzNiMTUzNmYxZmNlNzg4Zjk3ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dvcmtlcnMvd2Fz
bS1yZWZlcmVuY2VzL3Rlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvd29ya2Vycy93YXNtLXJlZmVy
ZW5jZXMvdGVzdC5qcwpAQCAtMTg1OCw5ICsxODU4LDkgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
ICAgICAgICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkz
MiIgfSkKICAgICAgICAgICAgICAgLlRhYmxlU2l6ZSgxKQogICAgICAgICAgICAgLkVuZCgpCi0g
ICAgICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93IiwgeyBwYXJhbXM6IFsiaTMyIl0sIHJldDog
ImkzMiIgfSkKLSAgICAgICAgICAgICAgICAuUmVmRnVuYygwKQorICAgICAgICAgICAgLkZ1bmN0
aW9uKCJ0YmxfZ3JvdyIsIHsgcGFyYW1zOiBbImV4dGVybnJlZiIsICJpMzIiXSwgcmV0OiAiaTMy
IiB9KQogICAgICAgICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgICAgICAgIC5HZXRM
b2NhbCgxKQogICAgICAgICAgICAgICAgIC5UYWJsZUdyb3coMSkKICAgICAgICAgICAgIC5FbmQo
KQogICAgICAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZmlsbCIsIHsgcGFyYW1zOiBbImkzMiIsICJl
eHRlcm5yZWYiLCAiaTMyIl0sIHJldDogInZvaWQiIH0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93b3JrZXJzL3dhc20tcmVmZXJlbmNlcy93b3JrZXIuanMgYi9MYXlvdXRUZXN0cy93b3JrZXJz
L3dhc20tcmVmZXJlbmNlcy93b3JrZXIuanMKaW5kZXggOTZkMWY2MGQ1MThiMjc4MjZhMTk5ZjFi
OGMwYjViZGM2NjBhNzk2OS4uN2JlZGQ2NzFmZDYwZDY2YzUyMTNiYmQ4NDJmZjE4MTUzNjFmODE2
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd29ya2Vycy93YXNtLXJlZmVyZW5jZXMvd29ya2Vy
LmpzCisrKyBiL0xheW91dFRlc3RzL3dvcmtlcnMvd2FzbS1yZWZlcmVuY2VzL3dvcmtlci5qcwpA
QCAtMTczLDcgKzE3Myw3IEBAIG9ubWVzc2FnZSA9IGZ1bmN0aW9uKHsgZGF0YTogbW9kdWxlIH0p
IHsKICAgICBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShtb2R1bGUpLnRoZW4oKCQxKSA9PiB7CiAg
ICAgICAgIHRyeSB7CiAgICAgICAgICAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50Ymxfc2l6ZSgp
LCAyMCkKLSAgICAgICAgICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9ncm93KDUpLCAyMCkK
KyAgICAgICAgICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9ncm93KCJoaSIsIDUpLCAyMCkK
ICAgICAgICAgICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9zaXplKCksIDI1KQogICAgICAg
ICAgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgwKSwgbnVsbCkKICAgICAgICAgICAg
IGFzc2VydC5lcSgkMS5leHBvcnRzLnRibC5nZXQoMjQpLCAkMS5leHBvcnRzLnRibF9zaXplKQpk
aWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBl
ZmVhYzM2YmE1M2ExM2M4NGNkYzIyMWUwN2QwYTc4MTViOGE0NTdmLi5lOTlkOTlmZWY3NTE0YzIy
NDUyYmE0NjgwZWM0MmRjMDVkY2VkNTM3IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTExLTEyICBEbWl0
cnkgQmV6aGV0c2tvdiAgPGRiZXpoZXRza292QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dBU00t
UmVmZXJlbmNlc10gUmVtb3ZlIHN1YnR5cGluZyBydWxlIGZvciBleHRlcm5yZWYgYW5kIGZ1bmNy
ZWYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg4
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ug
ZnVuY3JlZiBpcyBub3QgYSBzdWJ0eXBlIG9mIGV4dGVybnJlZi4KKyAgICAgICAgVGhlIHNwZWM6
IGh0dHBzOi8vd2ViYXNzZW1ibHkuZ2l0aHViLmlvL3JlZmVyZW5jZS10eXBlcy9jb3JlLworICAg
ICAgICBUaGUgUFIgZm9yIHJlbW92aW5nIHN1YnR5cGUgZnJvbSB0aGUgc3BlYzoKKyAgICAgICAg
aHR0cHM6Ly9naXRodWIuY29tL1dlYkFzc2VtYmx5L3JlZmVyZW5jZS10eXBlcy9wdWxsLzg3Lgor
CisgICAgICAgICogd2FzbS9yZWZlcmVuY2VzL2Z1bmNfcmVmLmpzOgorICAgICAgICAoYXNzZXJ0
LmVxLmluc3RhbmNlLmV4cG9ydHMuZml4LmZ1bik6CisgICAgICAgIChhc3NlcnQuZXEuaW5zdGFu
Y2UuZXhwb3J0cy5maXgpOgorICAgICAgICAqIHdhc20vcmVmZXJlbmNlcy92YWxpZGF0aW9uLmpz
OgorCiAyMDIwLTExLTEyICBDYWlvIExpbWEgIDx0aWNhaW9saW1hQGdtYWlsLmNvbT4KIAogICAg
ICAgICBbSW50bF1bQVJNdjddW01JUFNdIFNraXAgc3RyZXNzL2ludGwtZGF0ZXRpbWVmb3JtYXQt
Zm9ybWF0cmFuZ2UuanMKZGlmZiAtLWdpdCBhL0pTVGVzdHMvd2FzbS9qcy1hcGkvd2ViLWFzc2Vt
Ymx5LWluc3RhbnRpYXRlLmpzIGIvSlNUZXN0cy93YXNtL2pzLWFwaS93ZWItYXNzZW1ibHktaW5z
dGFudGlhdGUuanMKaW5kZXggOTQwOTg4OTlkYzhiNzg3NjYzNDkwMDgzNmRjOWRhY2E1MWI3MzY1
Mi4uMjM3YjNhODlhY2MwNTlmYTkxOTBhODk2NTNjODgyN2VlNzQwZWZhMiAxMDA2NDQKLS0tIGEv
SlNUZXN0cy93YXNtL2pzLWFwaS93ZWItYXNzZW1ibHktaW5zdGFudGlhdGUuanMKKysrIGIvSlNU
ZXN0cy93YXNtL2pzLWFwaS93ZWItYXNzZW1ibHktaW5zdGFudGlhdGUuanMKQEAgLTc2LDcgKzc2
LDcgQEAgYXNzZXJ0LmVxKFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlLmxlbmd0aCwgMSk7CiAgICAg
ICAgICAgICBsZXQge21vZHVsZSwgaW5zdGFuY2V9ID0gYXdhaXQgV2ViQXNzZW1ibHkuaW5zdGFu
dGlhdGUoYmluKTsKICAgICAgICAgfSBjYXRjaChlKSB7CiAgICAgICAgICAgICBhc3NlcnQudHJ1
dGh5KGUgaW5zdGFuY2VvZiBXZWJBc3NlbWJseS5Db21waWxlRXJyb3IpOwotICAgICAgICAgICAg
YXNzZXJ0LmVxKGUubWVzc2FnZSwgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRl
OiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gRjMyIGlzIG5vdCBh
IHN1YnR5cGUgb2YgSTMyLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIik7CisgICAgICAgICAgICBh
c3NlcnQuZXEoZS5tZXNzYWdlLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6
IGNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBGMzIgaXMgbm90IGEg
STMyLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIik7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAt
LWdpdCBhL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL2Z1bmNfcmVmLmpzIGIvSlNUZXN0cy93YXNt
L3JlZmVyZW5jZXMvZnVuY19yZWYuanMKaW5kZXggODRjMTNmODYyNjBkYjIxYzUxOGRiMmIwN2I0
ZDkxZjdmYmQ2MDViYS4uMzE3MTVhNTUxYjE5Njc0OWJlYjQxMDUyMTYyZTBiMzQ4NjRlMzJkMyAx
MDA2NDQKLS0tIGEvSlNUZXN0cy93YXNtL3JlZmVyZW5jZXMvZnVuY19yZWYuanMKKysrIGIvSlNU
ZXN0cy93YXNtL3JlZmVyZW5jZXMvZnVuY19yZWYuanMKQEAgLTc1LDI3ICs3NSwyMCBAQCBmdW5j
dGlvbiBtYWtlRnVuY3JlZklkZW50KCkgewogICAgICAgICAgIC5UeXBlKCkuRW5kKCkKICAgICAg
ICAgICAuRnVuY3Rpb24oKS5FbmQoKQogICAgICAgICAgIC5FeHBvcnQoKQotICAgICAgICAgICAg
ICAuRnVuY3Rpb24oImgiKQogICAgICAgICAgICAgICAuRnVuY3Rpb24oImkiKQotICAgICAgICAg
ICAgICAuRnVuY3Rpb24oImdldF9oIikKKyAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJnZXRfaSIp
CiAgICAgICAgICAgICAgIC5GdW5jdGlvbigiZml4IikKICAgICAgICAgICAgICAgLkZ1bmN0aW9u
KCJnZXRfbm90X2V4cG9ydGVkIikKICAgICAgICAgICAgICAgLkZ1bmN0aW9uKCJsb2NhbF9yZWFk
IikKICAgICAgICAgICAuRW5kKCkKICAgICAgICAgICAuQ29kZSgpCi0gICAgICAgICAgICAuRnVu
Y3Rpb24oImgiLCB7IHBhcmFtczogWyJmdW5jcmVmIl0sIHJldDogImV4dGVybnJlZiIgfSwgWyJl
eHRlcm5yZWYiXSkKLSAgICAgICAgICAgICAgLkdldExvY2FsKDApCi0gICAgICAgICAgICAgIC5T
ZXRMb2NhbCgxKQotICAgICAgICAgICAgICAuR2V0TG9jYWwoMSkKLSAgICAgICAgICAgIC5FbmQo
KQotCiAgICAgICAgICAgICAuRnVuY3Rpb24oImkiLCB7IHBhcmFtczogWyJmdW5jcmVmIl0sIHJl
dDogImZ1bmNyZWYiIH0sIFsiZnVuY3JlZiJdKQogICAgICAgICAgICAgICAuR2V0TG9jYWwoMCkK
ICAgICAgICAgICAgICAgLlNldExvY2FsKDEpCiAgICAgICAgICAgICAgIC5HZXRMb2NhbCgxKQog
ICAgICAgICAgICAgLkVuZCgpCiAKLSAgICAgICAgICAgIC5GdW5jdGlvbigiZ2V0X2giLCB7IHBh
cmFtczogW10sIHJldDogImZ1bmNyZWYiIH0sIFsiZnVuY3JlZiJdKQorICAgICAgICAgICAgLkZ1
bmN0aW9uKCJnZXRfaSIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiZnVuY3JlZiIgfSwgWyJmdW5jcmVm
Il0pCiAgICAgICAgICAgICAgIC5JMzJDb25zdCgwKQogICAgICAgICAgICAgICAuUmVmRnVuYygw
KQogICAgICAgICAgICAgICAuU2V0TG9jYWwoMCkKQEAgLTExMSwxMSArMTA0LDExIEBAIGZ1bmN0
aW9uIG1ha2VGdW5jcmVmSWRlbnQoKSB7CiAgICAgICAgICAgICAuRW5kKCkKIAogICAgICAgICAg
ICAgLkZ1bmN0aW9uKCJmaXgiLCB7IHBhcmFtczogW10sIHJldDogImZ1bmNyZWYiIH0sIFtdKQot
ICAgICAgICAgICAgICAuUmVmRnVuYygzKQorICAgICAgICAgICAgICAuUmVmRnVuYygyKQogICAg
ICAgICAgICAgLkVuZCgpCiAKICAgICAgICAgICAgIC5GdW5jdGlvbigiZ2V0X25vdF9leHBvcnRl
ZCIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiZnVuY3JlZiIgfSwgW10pCi0gICAgICAgICAgICAgIC5S
ZWZGdW5jKDUpCisgICAgICAgICAgICAgIC5SZWZGdW5jKDQpCiAgICAgICAgICAgICAuRW5kKCkK
IAogICAgICAgICAgICAgLkZ1bmN0aW9uKCJyZXRfNDIiLCB7IHBhcmFtczogW10sIHJldDogImkz
MiIgfSwgW10pCkBAIC0xMzQsMjIgKzEyNywxNiBAQCBmdW5jdGlvbiBtYWtlRnVuY3JlZklkZW50
KCkgewogICAgIGZ1bGxHQygpOwogCiAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMubG9j
YWxfcmVhZCgpLCAxKQotICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmgobnVsbCksIG51
bGwpCi0KLSAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMuaChmdW4pLCBF
cnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0
aW5nICdmdW5jKC4uLmFyZ3MpJykiKQotICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmgo
bXlmdW4pLCBteWZ1bikKLSAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMu
aCg1KSwgRXJyb3IsICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAo
ZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKLSAgICBhc3NlcnQudGhyb3dzKCgpID0+IGlu
c3RhbmNlLmV4cG9ydHMuaCh1bmRlZmluZWQpLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBl
eHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQogCiAg
ICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaShudWxsKSwgbnVsbCkKICAgICBhc3NlcnQu
ZXEoaW5zdGFuY2UuZXhwb3J0cy5pKG15ZnVuKSwgbXlmdW4pCiAgICAgYXNzZXJ0LnRocm93cygo
KSA9PiBpbnN0YW5jZS5leHBvcnRzLmkoZnVuKSwgRXJyb3IsICJGdW5jcmVmIG11c3QgYmUgYW4g
ZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKICAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMuaSg1KSwgRXJyb3IsICJGdW5j
cmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnZnVuYygu
Li5hcmdzKScpIikKIAotICAgIGFzc2VydC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5n
ZXRfaCgpKGZ1biksIEVycm9yLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVu
Y3Rpb24gKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCi0gICAgYXNzZXJ0LmVxKGluc3Rh
bmNlLmV4cG9ydHMuZ2V0X2goKShudWxsKSwgbnVsbCkKLSAgICBhc3NlcnQuZXEoaW5zdGFuY2Uu
ZXhwb3J0cy5nZXRfaCgpKG15ZnVuKSwgbXlmdW4pCi0gICAgYXNzZXJ0LnRocm93cygoKSA9PiBp
bnN0YW5jZS5leHBvcnRzLmdldF9oKCkoNSksIEVycm9yLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4
cG9ydGVkIHdhc20gZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCisgICAg
YXNzZXJ0LnRocm93cygoKSA9PiBpbnN0YW5jZS5leHBvcnRzLmdldF9pKCkoZnVuKSwgRXJyb3Is
ICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAn
ZnVuYyguLi5hcmdzKScpIikKKyAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5nZXRfaSgp
KG51bGwpLCBudWxsKQorICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmdldF9pKCkobXlm
dW4pLCBteWZ1bikKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMuZ2V0
X2koKSg1KSwgRXJyb3IsICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlv
biAoZXZhbHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKIAogICAgIGFzc2VydC5lcShpbnN0YW5j
ZS5leHBvcnRzLmdldF9ub3RfZXhwb3J0ZWQoKSgpLCA0MikKIApAQCAtMTU3LDYgKzE0NCwyOSBA
QCBmdW5jdGlvbiBtYWtlRnVuY3JlZklkZW50KCkgewogICAgIGFzc2VydC5lcShpbnN0YW5jZS5l
eHBvcnRzLmZpeCgpLCBpbnN0YW5jZS5leHBvcnRzLmZpeCk7CiB9CiAKKy8vIENhc3RpbmcgdGhl
IEZ1bmNyZWYgdG8gRXh0ZXJucmVmIGlzIGZvcmJpZGRlbi4KKworeworICAgIGZ1bmN0aW9uIGZ1
bigpIHsgcmV0dXJuIDQxOyB9CisKKyAgICBjb25zdCBidWlsZGVyID0gKG5ldyBCdWlsZGVyKCkp
CisgICAgICAgICAgLlR5cGUoKS5FbmQoKQorICAgICAgICAgIC5GdW5jdGlvbigpLkVuZCgpCisg
ICAgICAgICAgLkV4cG9ydCgpCisgICAgICAgICAgICAgIC5GdW5jdGlvbigiaCIpCisgICAgICAg
ICAgLkVuZCgpCisgICAgICAgICAgLkNvZGUoKQorICAgICAgICAgICAgLkZ1bmN0aW9uKCJoIiwg
eyBwYXJhbXM6IFsiZnVuY3JlZiJdLCByZXQ6ICJleHRlcm5yZWYiIH0sIFsiZXh0ZXJucmVmIl0p
CisgICAgICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgICAgICAuU2V0TG9jYWwoMSkK
KyAgICAgICAgICAgICAgLkdldExvY2FsKDEpCisgICAgICAgICAgICAuRW5kKCkKKyAgICAgICAg
ICAuRW5kKCk7CisKKyAgICBjb25zdCBiaW4gPSBidWlsZGVyLldlYkFzc2VtYmx5KCkuZ2V0KCk7
CisgICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbiksIFdl
YkFzc2VtYmx5LkNvbXBpbGVFcnJvciwgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlk
YXRlOiBzZXRfbG9jYWwgdG8gdHlwZSBGdW5jcmVmIGV4cGVjdGVkIEV4dGVybnJlZiwgaW4gZnVu
Y3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4p
JykiKTsKK30KKwogLy8gR2xvYmFscwogCiB7CkBAIC0yNDYsNyArMjU2LDcgQEAgYXNzZXJ0LnRo
cm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQogICAgIC5G
dW5jdGlvbigiaCIsIHsgcGFyYW1zOiBbImV4dGVybnJlZiJdLCByZXQ6ICJmdW5jcmVmIiB9KQog
ICAgICAgLkdldExvY2FsKDApCiAgICAgLkVuZCgpCi0gIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdl
dCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogY29udHJv
bCBmbG93IHJldHVybnMgd2l0aCB1bmV4cGVjdGVkIHR5cGUuIEV4dGVybnJlZiBpcyBub3QgYSBz
dWJ0eXBlIG9mIEZ1bmNyZWYsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25l
dyBXZWJBc3NlbWJseS5Nb2R1bGUnKSIpOworICAuRW5kKCkuV2ViQXNzZW1ibHkoKS5nZXQoKSks
IEVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IGNvbnRyb2wgZmxv
dyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBFeHRlcm5yZWYgaXMgbm90IGEgRnVuY3Jl
ZiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1v
ZHVsZScpIik7CiAKIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZSgo
bmV3IEJ1aWxkZXIoKSkKICAgLlR5cGUoKS5FbmQoKQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNt
L3JlZmVyZW5jZXMvdmFsaWRhdGlvbi5qcyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL3ZhbGlk
YXRpb24uanMKaW5kZXggYzk2MDEyODY2MzU3MTc4MTE5ZGM3YWM2MWFiMWZhNTE2N2QyYTk1Zi4u
ZDE0N2IxZDBiNGY5ZjU3ODkwMWUwODJjYzFkZmI2OWU4M2QxODA3NSAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy93YXNtL3JlZmVyZW5jZXMvdmFsaWRhdGlvbi5qcworKysgYi9KU1Rlc3RzL3dhc20vcmVm
ZXJlbmNlcy92YWxpZGF0aW9uLmpzCkBAIC0xOSw3ICsxOSw3IEBAIGltcG9ydCBCdWlsZGVyIGZy
b20gJy4uL0J1aWxkZXIuanMnOwogICAgIGNvbnN0IGJpbiA9IGJ1aWxkZXIuV2ViQXNzZW1ibHko
KTsKICAgICBiaW4udHJpbSgpOwogCi0gICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNz
ZW1ibHkuTW9kdWxlKGJpbi5nZXQoKSksIFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvciwgIldlYkFz
c2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiByZWYuaXNfbnVsbCB0byB0eXBlIEkzMiBl
eHBlY3RlZCBFeHRlcm5yZWYsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25l
dyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdldCgpKScpIik7CisgICAgYXNzZXJ0LnRocm93cygo
KSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbi5nZXQoKSksIFdlYkFzc2VtYmx5LkNvbXBp
bGVFcnJvciwgIldlYkFzc2VtYmx5Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiByZWYuaXNfbnVs
bCB0byB0eXBlIEkzMiBleHBlY3RlZCBhIHJlZmVyZW5jZSB0eXBlLCBpbiBmdW5jdGlvbiBhdCBp
bmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbi5nZXQoKSknKSIp
OwogfQogCiB7CkBAIC05MCw3ICs5MCw3IEBAIGltcG9ydCBCdWlsZGVyIGZyb20gJy4uL0J1aWxk
ZXIuanMnOwogICAgIGNvbnN0IGJpbiA9IGJ1aWxkZXIuV2ViQXNzZW1ibHkoKTsKICAgICBiaW4u
dHJpbSgpOwogCi0gICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxl
KGJpbi5nZXQoKSksIFdlYkFzc2VtYmx5LkNvbXBpbGVFcnJvciwgIldlYkFzc2VtYmx5Lk1vZHVs
ZSBkb2Vzbid0IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQg
dHlwZS4gRXh0ZXJucmVmIGlzIG5vdCBhIHN1YnR5cGUgb2YgRnVuY3JlZiwgaW4gZnVuY3Rpb24g
YXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkp
JykiKTsKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmlu
LmdldCgpKSwgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRv
ZXNuJ3QgdmFsaWRhdGU6IGNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBl
LiBFeHRlcm5yZWYgaXMgbm90IGEgRnVuY3JlZiwgaW4gZnVuY3Rpb24gYXQgaW5kZXggMCAoZXZh
bHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpJykiKTsKIH0KIAogewo=
</data>
<flag name="commit-queue"
          id="431173"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414319</attachid>
            <date>2020-11-17 01:41:14 -0800</date>
            <delta_ts>2020-11-18 20:11:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218885-20201117164112.patch</filename>
            <type>text/plain</type>
            <size>33718</size>
            <attacher name="Dmitry">dbezhetskov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NzYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MjYxOTQ3NzEzOTJlZWZiMDM2ZmRkNTgzNDg5MDdlOTc3OTRhODliLi41YjRjOTRhNjQxMTc2NzA0
ZWQ2ZWFmYTY2YzA3YTMyOTVhYzcxODAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMS0xMiAgRG1pdHJ5IEJlemhldHNrb3YgIDxkYmV6aGV0c2tvdkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXQVNNLVJlZmVyZW5jZXNdIFJlbW92ZSBzdWJ0eXBpbmcg
cnVsZSBmb3IgZXh0ZXJucmVmIGFuZCBmdW5jcmVmCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIGZ1bmNyZWYgaXMgbm90IGEgc3VidHlwZSBvZiBl
eHRlcm5yZWYuCisgICAgICAgIFRoZSBzcGVjOiBodHRwczovL3dlYmFzc2VtYmx5LmdpdGh1Yi5p
by9yZWZlcmVuY2UtdHlwZXMvY29yZS8KKyAgICAgICAgVGhlIFBSIGZvciByZW1vdmluZyBzdWJ0
eXBlIGZyb20gdGhlIHNwZWM6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJBc3NlbWJs
eS9yZWZlcmVuY2UtdHlwZXMvcHVsbC84Ny4KKworICAgICAgICAqIHdhc20vV2FzbUZvcm1hdC5o
OgorICAgICAgICAoSlNDOjpXYXNtOjppc1N1YnR5cGUpOgorICAgICAgICAqIHdhc20vV2FzbUZ1
bmN0aW9uUGFyc2VyLmg6CisgICAgICAgIChKU0M6Oldhc206OkZ1bmN0aW9uUGFyc2VyPENvbnRl
eHQ+OjpwYXJzZUV4cHJlc3Npb24pOgorICAgICAgICAqIHdhc20vanMvV2ViQXNzZW1ibHlNb2R1
bGVSZWNvcmQuY3BwOgorICAgICAgICAoSlNDOjpXZWJBc3NlbWJseU1vZHVsZVJlY29yZDo6bGlu
ayk6CisKIDIwMjAtMTEtMTIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGVuc3VyZSB0aGF0IGBKU09OOjpBcnJheU9mPFQ+YCBkb2Vz
bid0IGFsbG93IGBhZGRJdGVtYCB0byBiZSBjYWxsZWQgd2l0aCBhIHR5cGUgb3RoZXIgdGhhbiBg
VGAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVy
YXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwCmluZGV4IDQzZDBjODcyZWU0YzYzYjRkNTZiNmYwZTM0NjIzNTMzM2U4NGI3OTMuLmQ1MThm
Nzc4Zjc0Y2ZjYmY1YTJjN2U0YzgyMDM5NGQwZDU0YmU5ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcApAQCAtMTEwMiw3ICsxMTAy
LDcgQEAgYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRkVGFibGVTaXplKHVuc2lnbmVkIHRhYmxlSW5k
ZXgsIEV4cHJlc3Npb25UeXBlJiByZXN1bHQpIC0KIGF1dG8gQWlySVJHZW5lcmF0b3I6OmFkZFRh
YmxlR3Jvdyh1bnNpZ25lZCB0YWJsZUluZGV4LCBFeHByZXNzaW9uVHlwZSBmaWxsLCBFeHByZXNz
aW9uVHlwZSBkZWx0YSwgRXhwcmVzc2lvblR5cGUmIHJlc3VsdCkgLT4gUGFydGlhbFJlc3VsdAog
ewogICAgIEFTU0VSVChmaWxsLnRtcCgpKTsKLSAgICBBU1NFUlQoaXNTdWJ0eXBlKGZpbGwudHlw
ZSgpLCBtX2luZm8udGFibGVzW3RhYmxlSW5kZXhdLndhc21UeXBlKCkpKTsKKyAgICBBU1NFUlQo
ZmlsbC50eXBlKCkgPT0gbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpKTsKICAg
ICBBU1NFUlQoZGVsdGEudG1wKCkpOwogICAgIEFTU0VSVChkZWx0YS50eXBlKCkgPT0gVHlwZTo6
STMyKTsKICAgICByZXN1bHQgPSB0bXBGb3JUeXBlKFR5cGU6OkkzMik7CkBAIC0xMTE1LDcgKzEx
MTUsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRUYWJsZUdyb3codW5zaWduZWQgdGFibGVJ
bmRleCwgRXhwcmVzc2lvblR5cGUgZmlsbCwgRXhwcgogYXV0byBBaXJJUkdlbmVyYXRvcjo6YWRk
VGFibGVGaWxsKHVuc2lnbmVkIHRhYmxlSW5kZXgsIEV4cHJlc3Npb25UeXBlIG9mZnNldCwgRXhw
cmVzc2lvblR5cGUgZmlsbCwgRXhwcmVzc2lvblR5cGUgY291bnQpIC0+IFBhcnRpYWxSZXN1bHQK
IHsKICAgICBBU1NFUlQoZmlsbC50bXAoKSk7Ci0gICAgQVNTRVJUKGlzU3VidHlwZShmaWxsLnR5
cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpKSk7CisgICAgQVNTRVJU
KGZpbGwudHlwZSgpID09IG1faW5mby50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSk7CiAg
ICAgQVNTRVJUKG9mZnNldC50bXAoKSk7CiAgICAgQVNTRVJUKG9mZnNldC50eXBlKCkgPT0gVHlw
ZTo6STMyKTsKICAgICBBU1NFUlQoY291bnQudG1wKCkpOwpAQCAtMTI0Nyw3ICsxMjQ3LDcgQEAg
YXV0byBBaXJJUkdlbmVyYXRvcjo6c2V0R2xvYmFsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9u
VHlwZSB2YWx1ZSkgLT4gUGFydGlhbFIKICAgICAgICAgICAgIGFwcGVuZChBZGQ2NCwgdGVtcDIs
IHRlbXAsIHRlbXApOwogICAgICAgICAgICAgYXBwZW5kKG1vdmVPcEZvclZhbHVlVHlwZSh0eXBl
KSwgdmFsdWUsIEFyZzo6YWRkcih0ZW1wKSk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGlzU3Vi
dHlwZSh0eXBlLCBFeHRlcm5yZWYpKQorICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUpKQogICAg
ICAgICAgICAgZW1pdFdyaXRlQmFycmllckZvckpTV3JhcHBlcigpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFdhc206Okdsb2JhbEluZm9ybWF0aW9uOjpCaW5kaW5nTW9kZTo6UG9ydGFibGU6
CkBAIC0xMjYyLDcgKzEyNjIsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjpzZXRHbG9iYWwodWlu
dDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUgogICAgICAgICB9
CiAgICAgICAgIGFwcGVuZChtb3ZlT3BGb3JWYWx1ZVR5cGUodHlwZSksIHZhbHVlLCBBcmc6OmFk
ZHIodGVtcCkpOwogICAgICAgICAvLyBXZSBlbWl0IGEgd3JpdGUtYmFycmllciBvbnRvIEpTV2Vi
QXNzZW1ibHlHbG9iYWwsIG5vdCBKU1dlYkFzc2VtYmx5SW5zdGFuY2UuCi0gICAgICAgIGlmIChp
c1N1YnR5cGUodHlwZSwgRXh0ZXJucmVmKSkgeworICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUp
KSB7CiAgICAgICAgICAgICBhdXRvIGNlbGwgPSBnNjQoKTsKICAgICAgICAgICAgIGF1dG8gdm0g
PSBnNjQoKTsKICAgICAgICAgICAgIGF1dG8gY2VsbFN0YXRlID0gZzMyKCk7CkBAIC0yMzI1LDcg
KzIzMjUsNyBAQCBhdXRvIEFpcklSR2VuZXJhdG9yOjphZGRDYWxsSW5kaXJlY3QodW5zaWduZWQg
dGFibGVJbmRleCwgY29uc3QgU2lnbmF0dXJlJiBzaWduYQogCiB2b2lkIEFpcklSR2VuZXJhdG9y
Ojp1bmlmeShjb25zdCBFeHByZXNzaW9uVHlwZSBkc3QsIGNvbnN0IEV4cHJlc3Npb25UeXBlIHNv
dXJjZSkKIHsKLSAgICBBU1NFUlQoaXNTdWJ0eXBlKHNvdXJjZS50eXBlKCksIGRzdC50eXBlKCkp
KTsKKyAgICBBU1NFUlQoc291cmNlLnR5cGUoKSA9PSBkc3QudHlwZSgpKTsKICAgICBhcHBlbmQo
bW92ZU9wRm9yVmFsdWVUeXBlKGRzdC50eXBlKCkpLCBzb3VyY2UsIGRzdCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAppbmRleCAz
MGIzYzc3MjMyZjJkZWU1ZjQ1OTNhNGJjODk5NTY1N2YxMzk4ZGZiLi5kOGJiMjQ0ZDNiMzMyM2Mx
YWQ4ZmNlZDFiYjY0MzFjZGYwMzQyMzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd2FzbS9XYXNtQjNJUkdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3dhc20vV2FzbUIzSVJHZW5lcmF0b3IuY3BwCkBAIC02MzMsNyArNjMzLDcgQEAgYXV0byBCM0lS
R2VuZXJhdG9yOjphZGRMb2NhbChUeXBlIHR5cGUsIHVpbnQzMl90IGNvdW50KSAtPiBQYXJ0aWFs
UmVzdWx0CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAg
ICAgVmFyaWFibGUqIGxvY2FsID0gbV9wcm9jLmFkZFZhcmlhYmxlKHRvQjNUeXBlKHR5cGUpKTsK
ICAgICAgICAgbV9sb2NhbHMudW5jaGVja2VkQXBwZW5kKGxvY2FsKTsKLSAgICAgICAgYXV0byB2
YWwgPSBpc1N1YnR5cGUodHlwZSwgRXh0ZXJucmVmKSA/IEpTVmFsdWU6OmVuY29kZShqc051bGwo
KSkgOiAwOworICAgICAgICBhdXRvIHZhbCA9IGlzUmVmVHlwZSh0eXBlKSA/IEpTVmFsdWU6OmVu
Y29kZShqc051bGwoKSkgOiAwOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PFZh
cmlhYmxlVmFsdWU+KG1fcHJvYywgU2V0LCBPcmlnaW4oKSwgbG9jYWwsIGNvbnN0YW50KHRvQjNU
eXBlKHR5cGUpLCB2YWwsIE9yaWdpbigpKSk7CiAgICAgfQogICAgIHJldHVybiB7IH07CkBAIC04
MzgsNyArODM4LDcgQEAgYXV0byBCM0lSR2VuZXJhdG9yOjpzZXRHbG9iYWwodWludDMyX3QgaW5k
ZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUmUKICAgICBzd2l0Y2ggKGdsb2Jh
bC5iaW5kaW5nTW9kZSkgewogICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkJpbmRp
bmdNb2RlOjpFbWJlZGRlZEluSW5zdGFuY2U6CiAgICAgICAgIG1fY3VycmVudEJsb2NrLT5hcHBl
bmROZXc8TWVtb3J5VmFsdWU+KG1fcHJvYywgU3RvcmUsIG9yaWdpbigpLCB2YWx1ZSwgZ2xvYmFs
c0FycmF5LCBzYWZlQ2FzdDxpbnQzMl90PihpbmRleCAqIHNpemVvZihSZWdpc3RlcikpKTsKLSAg
ICAgICAgaWYgKGlzU3VidHlwZShnbG9iYWwudHlwZSwgRXh0ZXJucmVmKSkKKyAgICAgICAgaWYg
KGlzUmVmVHlwZShnbG9iYWwudHlwZSkpCiAgICAgICAgICAgICBlbWl0V3JpdGVCYXJyaWVyRm9y
SlNXcmFwcGVyKCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3Jt
YXRpb246OkJpbmRpbmdNb2RlOjpQb3J0YWJsZTogewpAQCAtODQ2LDcgKzg0Niw3IEBAIGF1dG8g
QjNJUkdlbmVyYXRvcjo6c2V0R2xvYmFsKHVpbnQzMl90IGluZGV4LCBFeHByZXNzaW9uVHlwZSB2
YWx1ZSkgLT4gUGFydGlhbFJlCiAgICAgICAgIFZhbHVlKiBwb2ludGVyID0gbV9jdXJyZW50Qmxv
Y2stPmFwcGVuZE5ldzxNZW1vcnlWYWx1ZT4obV9wcm9jLCBMb2FkLCBCMzo6SW50NjQsIG9yaWdp
bigpLCBnbG9iYWxzQXJyYXksIHNhZmVDYXN0PGludDMyX3Q+KGluZGV4ICogc2l6ZW9mKFJlZ2lz
dGVyKSkpOwogICAgICAgICBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVlPiht
X3Byb2MsIFN0b3JlLCBvcmlnaW4oKSwgdmFsdWUsIHBvaW50ZXIpOwogICAgICAgICAvLyBXZSBl
bWl0IGEgd3JpdGUtYmFycmllciBvbnRvIEpTV2ViQXNzZW1ibHlHbG9iYWwsIG5vdCBKU1dlYkFz
c2VtYmx5SW5zdGFuY2UuCi0gICAgICAgIGlmIChpc1N1YnR5cGUoZ2xvYmFsLnR5cGUsIEV4dGVy
bnJlZikpIHsKKyAgICAgICAgaWYgKGlzUmVmVHlwZShnbG9iYWwudHlwZSkpIHsKICAgICAgICAg
ICAgIFZhbHVlKiBpbnN0YW5jZSA9IG1fY3VycmVudEJsb2NrLT5hcHBlbmROZXc8TWVtb3J5VmFs
dWU+KG1fcHJvYywgTG9hZCwgcG9pbnRlclR5cGUoKSwgb3JpZ2luKCksIGluc3RhbmNlVmFsdWUo
KSwgc2FmZUNhc3Q8aW50MzJfdD4oSW5zdGFuY2U6Om9mZnNldE9mT3duZXIoKSkpOwogICAgICAg
ICAgICAgVmFsdWUqIGNlbGwgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3PE1lbW9yeVZhbHVl
PihtX3Byb2MsIExvYWQsIHBvaW50ZXJUeXBlKCksIG9yaWdpbigpLCBwb2ludGVyLCBXYXNtOjpH
bG9iYWw6Om9mZnNldE9mT3duZXIoKSAtIFdhc206Okdsb2JhbDo6b2Zmc2V0T2ZWYWx1ZSgpKTsK
ICAgICAgICAgICAgIFZhbHVlKiBjZWxsU3RhdGUgPSBtX2N1cnJlbnRCbG9jay0+YXBwZW5kTmV3
PE1lbW9yeVZhbHVlPihtX3Byb2MsIExvYWQ4WiwgSW50MzIsIG9yaWdpbigpLCBjZWxsLCBzYWZl
Q2FzdDxpbnQzMl90PihKU0NlbGw6OmNlbGxTdGF0ZU9mZnNldCgpKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtRm9ybWF0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvd2FzbS9XYXNtRm9ybWF0LmgKaW5kZXggYmQ1MzYxODJjMDllMTVkZGU1NjIyNDhhNzEz
OWZhZmM0ZWI2OWI5OS4uMWZjZmRmMmJhMjAwYzQ1MmI1ZmEzNjMxM2RhNGE0NzUzNGM0NzVjNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZvcm1hdC5oCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21Gb3JtYXQuaApAQCAtNzgsMTMgKzc4LDYg
QEAgaW5saW5lIGJvb2wgaXNWYWx1ZVR5cGUoVHlwZSB0eXBlKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotaW5saW5lIGJvb2wgaXNTdWJ0eXBlKFR5cGUgc3ViLCBUeXBlIHBhcmVudCkKLXsKLSAg
ICBpZiAoc3ViID09IHBhcmVudCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIHN1
YiA9PSBGdW5jcmVmICYmIHBhcmVudCA9PSBFeHRlcm5yZWY7Ci19Ci0KIGlubGluZSBib29sIGlz
UmVmVHlwZShUeXBlIHR5cGUpCiB7CiAgICAgcmV0dXJuIHR5cGUgPT0gRXh0ZXJucmVmIHx8IHR5
cGUgPT0gRnVuY3JlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dh
c21GdW5jdGlvblBhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0
aW9uUGFyc2VyLmgKaW5kZXggNDM5YjVmOTE5NDU4NzU3OGJiZDM3ZTdkOTJmZDIzZDljZTY3OWU1
Yy4uYmExMWQ3ODI5OWVmMzQ3YTk3MmE3MDJlZjliYWY3MTY3ZTE5MTM0YyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUZ1bmN0aW9uUGFyc2VyLmgKQEAgLTMyNyw3ICsz
MjcsNyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+OjpjaGVja0JyYW5jaFRhcmdldChj
b25zdCBDb250cm9sVHlwZSYgdGFyZ2V0KSAtPiBQYQogCiAgICAgdW5zaWduZWQgb2Zmc2V0ID0g
bV9leHByZXNzaW9uU3RhY2suc2l6ZSgpIC0gdGFyZ2V0LmJyYW5jaFRhcmdldEFyaXR5KCk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRhcmdldC5icmFuY2hUYXJnZXRBcml0eSgpOyAr
K2kpCi0gICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh0YXJnZXQuYnJh
bmNoVGFyZ2V0VHlwZShpKSwgbV9leHByZXNzaW9uU3RhY2tbb2Zmc2V0ICsgaV0udHlwZSgpKSwg
ImJyYW5jaCdzIHN0YWNrIHR5cGUgaXMgbm90IGEgc3VidHlwZSBvZiBibG9jaydzIHR5cGUgYnJh
bmNoIHRhcmdldCB0eXBlLiBTdGFjayB2YWx1ZSBoYXMgdHlwZSIsIG1fZXhwcmVzc2lvblN0YWNr
W29mZnNldCArIGldLnR5cGUoKSwgIiBidXQgYnJhbmNoIHRhcmdldCBleHBlY3RzIGEgdmFsdWUg
d2l0aCBzdWJ0eXBlIG9mICIsIHRhcmdldC5icmFuY2hUYXJnZXRUeXBlKGkpLCAiIGF0IGluZGV4
ICIsIGkpOworICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKHRhcmdldC5icmFuY2hUYXJn
ZXRUeXBlKGkpICE9IG1fZXhwcmVzc2lvblN0YWNrW29mZnNldCArIGldLnR5cGUoKSwgImJyYW5j
aCdzIHN0YWNrIHR5cGUgaXMgbm90IGEgYmxvY2sncyB0eXBlIGJyYW5jaCB0YXJnZXQgdHlwZS4g
U3RhY2sgdmFsdWUgaGFzIHR5cGUiLCBtX2V4cHJlc3Npb25TdGFja1tvZmZzZXQgKyBpXS50eXBl
KCksICIgYnV0IGJyYW5jaCB0YXJnZXQgZXhwZWN0cyBhIHZhbHVlIG9mICIsIHRhcmdldC5icmFu
Y2hUYXJnZXRUeXBlKGkpLCAiIGF0IGluZGV4ICIsIGkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0K
QEAgLTMzNyw3ICszMzcsNyBAQCBhdXRvIEZ1bmN0aW9uUGFyc2VyPENvbnRleHQ+Ojp1bmlmeShj
b25zdCBDb250cm9sVHlwZSYgY29udHJvbERhdGEpIC0+IFBhcnRpYWxSZQogewogICAgIFdBU01f
VkFMSURBVE9SX0ZBSUxfSUYoY29udHJvbERhdGEuc2lnbmF0dXJlKCktPnJldHVybkNvdW50KCkg
IT0gbV9leHByZXNzaW9uU3RhY2suc2l6ZSgpLCAiIGJsb2NrIHdpdGggdHlwZTogIiwgY29udHJv
bERhdGEuc2lnbmF0dXJlKCktPnRvU3RyaW5nKCksICIgcmV0dXJuczogIiwgY29udHJvbERhdGEu
c2lnbmF0dXJlKCktPnJldHVybkNvdW50KCksICIgYnV0IHN0YWNrIGhhczogIiwgbV9leHByZXNz
aW9uU3RhY2suc2l6ZSgpLCAiIHZhbHVlcyIpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuQ291bnQoKTsgKytpKQotICAgICAgICBX
QVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5cGUobV9leHByZXNzaW9uU3RhY2tbaV0udHlw
ZSgpLCBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuVHlwZShpKSksICJjb250cm9sIGZs
b3cgcmV0dXJucyB3aXRoIHVuZXhwZWN0ZWQgdHlwZS4gIiwgbV9leHByZXNzaW9uU3RhY2tbaV0u
dHlwZSgpLCAiIGlzIG5vdCBhIHN1YnR5cGUgb2YgIiwgY29udHJvbERhdGEuc2lnbmF0dXJlKCkt
PnJldHVyblR5cGUoaSkpOworICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKG1fZXhwcmVz
c2lvblN0YWNrW2ldLnR5cGUoKSAhPSBjb250cm9sRGF0YS5zaWduYXR1cmUoKS0+cmV0dXJuVHlw
ZShpKSwgImNvbnRyb2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiAiLCBtX2V4
cHJlc3Npb25TdGFja1tpXS50eXBlKCksICIgaXMgbm90IGEgIiwgY29udHJvbERhdGEuc2lnbmF0
dXJlKCktPnJldHVyblR5cGUoaSkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTQzNiw3ICs0
MzYsNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfQ0FTRSkKICAgICAg
ICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhpbmRleCwgInRhYmxlLnNldCIp
OwogICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKEkzMiAhPSBpbmRleC50eXBlKCksICJ0
YWJsZS5zZXQgaW5kZXggdG8gdHlwZSAiLCBpbmRleC50eXBlKCksICIgZXhwZWN0ZWQgIiwgSTMy
KTsKICAgICAgICAgVHlwZSB0eXBlID0gbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlw
ZSgpOwotICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1YnR5cGUodmFsdWUudHlw
ZSgpLCB0eXBlKSwgInRhYmxlLnNldCB2YWx1ZSB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwgIiBl
eHBlY3RlZCAiLCB0eXBlKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih2YWx1ZS50
eXBlKCkgIT0gdHlwZSwgInRhYmxlLnNldCB2YWx1ZSB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwg
IiBleHBlY3RlZCAiLCB0eXBlKTsKICAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9pbmZvLnRhYmxl
c1t0YWJsZUluZGV4XS50eXBlKCkgPT0gVGFibGVFbGVtZW50VHlwZTo6RXh0ZXJucmVmIHx8IG1f
aW5mby50YWJsZXNbdGFibGVJbmRleF0udHlwZSgpID09IFRhYmxlRWxlbWVudFR5cGU6OkZ1bmNy
ZWYpOwogICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChhZGRUYWJsZVNldCh0YWJsZUlu
ZGV4LCBpbmRleCwgdmFsdWUpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTQ2Myw3ICs0NjMs
NyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVfQ0FTRSkKICAgICAgICAg
ICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8oZGVsdGEsICJ0YWJsZS5ncm93
Iik7CiAgICAgICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKGZpbGws
ICJ0YWJsZS5ncm93Iik7CiAKLSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlz
U3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgp
KSwgInRhYmxlLmdyb3cgZXhwZWN0cyBmaWxsIHZhbHVlIG9mIHR5cGUgIiwgbV9pbmZvLnRhYmxl
c1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBmaWxsLnR5cGUoKSk7CisgICAgICAg
ICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwudHlwZSgpICE9IG1faW5mby50YWJsZXNb
dGFibGVJbmRleF0ud2FzbVR5cGUoKSwgInRhYmxlLmdyb3cgZXhwZWN0cyBmaWxsIHZhbHVlIG9m
IHR5cGUgIiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBm
aWxsLnR5cGUoKSk7CiAgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKEkzMiAhPSBk
ZWx0YS50eXBlKCksICJ0YWJsZS5ncm93IGV4cGVjdHMgYW4gaTMyIGRlbHRhIHZhbHVlLCBnb3Qg
IiwgZGVsdGEudHlwZSgpKTsKIAogICAgICAgICAgICAgRXhwcmVzc2lvblR5cGUgcmVzdWx0OwpA
QCAtNDc3LDcgKzQ3Nyw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9D
QVNFKQogICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RBQ0tfSU5UTyhmaWxs
LCAidGFibGUuZmlsbCIpOwogICAgICAgICAgICAgV0FTTV9UUllfUE9QX0VYUFJFU1NJT05fU1RB
Q0tfSU5UTyhvZmZzZXQsICJ0YWJsZS5maWxsIik7CiAKLSAgICAgICAgICAgIFdBU01fVkFMSURB
VE9SX0ZBSUxfSUYoIWlzU3VidHlwZShmaWxsLnR5cGUoKSwgbV9pbmZvLnRhYmxlc1t0YWJsZUlu
ZGV4XS53YXNtVHlwZSgpKSwgInRhYmxlLmZpbGwgZXhwZWN0cyBmaWxsIHZhbHVlIG9mIHR5cGUg
IiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlwZSgpLCAiIGdvdCAiLCBmaWxsLnR5
cGUoKSk7CisgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKGZpbGwudHlwZSgpICE9
IG1faW5mby50YWJsZXNbdGFibGVJbmRleF0ud2FzbVR5cGUoKSwgInRhYmxlLmZpbGwgZXhwZWN0
cyBmaWxsIHZhbHVlIG9mIHR5cGUgIiwgbV9pbmZvLnRhYmxlc1t0YWJsZUluZGV4XS53YXNtVHlw
ZSgpLCAiIGdvdCAiLCBmaWxsLnR5cGUoKSk7CiAgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9G
QUlMX0lGKEkzMiAhPSBvZmZzZXQudHlwZSgpLCAidGFibGUuZmlsbCBleHBlY3RzIGFuIGkzMiBv
ZmZzZXQgdmFsdWUsIGdvdCAiLCBvZmZzZXQudHlwZSgpKTsKICAgICAgICAgICAgIFdBU01fVkFM
SURBVE9SX0ZBSUxfSUYoSTMyICE9IGNvdW50LnR5cGUoKSwgInRhYmxlLmZpbGwgZXhwZWN0cyBh
biBpMzIgY291bnQgdmFsdWUsIGdvdCAiLCBjb3VudC50eXBlKCkpOwogCkBAIC01MDMsNyArNTAz
LDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAg
IFdBU01fUEFSU0VSX0ZBSUxfSUYoIU9wdGlvbnM6OnVzZVdlYkFzc2VtYmx5UmVmZXJlbmNlcygp
LCAicmVmZXJlbmNlcyBhcmUgbm90IGVuYWJsZWQiKTsKICAgICAgICAgVHlwZWRFeHByZXNzaW9u
IHZhbHVlOwogICAgICAgICBXQVNNX1RSWV9QT1BfRVhQUkVTU0lPTl9TVEFDS19JTlRPKHZhbHVl
LCAicmVmLmlzX251bGwiKTsKLSAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRighaXNTdWJ0
eXBlKHZhbHVlLnR5cGUoKSwgRXh0ZXJucmVmKSwgInJlZi5pc19udWxsIHRvIHR5cGUgIiwgdmFs
dWUudHlwZSgpLCAiIGV4cGVjdGVkICIsIEV4dGVybnJlZik7CisgICAgICAgIFdBU01fVkFMSURB
VE9SX0ZBSUxfSUYoIWlzUmVmVHlwZSh2YWx1ZS50eXBlKCkpLCAicmVmLmlzX251bGwgdG8gdHlw
ZSAiLCB2YWx1ZS50eXBlKCksICIgZXhwZWN0ZWQgYSByZWZlcmVuY2UgdHlwZSIpOwogICAgICAg
ICBFeHByZXNzaW9uVHlwZSByZXN1bHQ7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19DT05URVhU
KGFkZFJlZklzTnVsbCh2YWx1ZSwgcmVzdWx0KSk7CiAgICAgICAgIG1fZXhwcmVzc2lvblN0YWNr
LmNvbnN0cnVjdEFuZEFwcGVuZChJMzIsIHJlc3VsdCk7CkBAIC01MzksNyArNTM5LDcgQEAgRk9S
X0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdBU01fUEFS
U0VSX0ZBSUxfSUYoIXBhcnNlVmFyVUludDMyKGluZGV4KSwgImNhbid0IGdldCBpbmRleCBmb3Ig
c2V0X2xvY2FsIik7CiAgICAgICAgIFdBU01fVFJZX1BPUF9FWFBSRVNTSU9OX1NUQUNLX0lOVE8o
dmFsdWUsICJzZXRfbG9jYWwiKTsKICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRihpbmRl
eCA+PSBtX2xvY2Fscy5zaXplKCksICJhdHRlbXB0IHRvIHNldCB1bmtub3duIGxvY2FsICIsIGlu
ZGV4LCAiIGxhc3Qgb25lIGlzICIsIG1fbG9jYWxzLnNpemUoKSk7Ci0gICAgICAgIFdBU01fVkFM
SURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh2YWx1ZS50eXBlKCksIG1fbG9jYWxzW2luZGV4XSks
ICJzZXRfbG9jYWwgdG8gdHlwZSAiLCB2YWx1ZS50eXBlKCksICIgZXhwZWN0ZWQgIiwgbV9sb2Nh
bHNbaW5kZXhdKTsKKyAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJTF9JRih2YWx1ZS50eXBlKCkg
IT0gbV9sb2NhbHNbaW5kZXhdLCAic2V0X2xvY2FsIHRvIHR5cGUgIiwgdmFsdWUudHlwZSgpLCAi
IGV4cGVjdGVkICIsIG1fbG9jYWxzW2luZGV4XSk7CiAgICAgICAgIFdBU01fVFJZX0FERF9UT19D
T05URVhUKHNldExvY2FsKGluZGV4LCB2YWx1ZSkpOwogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KQEAgLTU1MCw3ICs1NTAsNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVB
VEVfQ0FTRSkKICAgICAgICAgV0FTTV9QQVJTRVJfRkFJTF9JRihtX2V4cHJlc3Npb25TdGFjay5p
c0VtcHR5KCksICJjYW4ndCB0ZWVfbG9jYWwgb24gZW1wdHkgZXhwcmVzc2lvbiBzdGFjayIpOwog
ICAgICAgICBUeXBlZEV4cHJlc3Npb24gdmFsdWUgPSBtX2V4cHJlc3Npb25TdGFjay5sYXN0KCk7
CiAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoaW5kZXggPj0gbV9sb2NhbHMuc2l6ZSgp
LCAiYXR0ZW1wdCB0byB0ZWUgdW5rbm93biBsb2NhbCAiLCBpbmRleCwgIiBsYXN0IG9uZSBpcyAi
LCBtX2xvY2Fscy5zaXplKCkpOwotICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKCFpc1N1
YnR5cGUodmFsdWUudHlwZSgpLCBtX2xvY2Fsc1tpbmRleF0pLCAic2V0X2xvY2FsIHRvIHR5cGUg
IiwgdmFsdWUudHlwZSgpLCAiIGV4cGVjdGVkICIsIG1fbG9jYWxzW2luZGV4XSk7CisgICAgICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYodmFsdWUudHlwZSgpICE9IG1fbG9jYWxzW2luZGV4XSwg
InNldF9sb2NhbCB0byB0eXBlICIsIHZhbHVlLnR5cGUoKSwgIiBleHBlY3RlZCAiLCBtX2xvY2Fs
c1tpbmRleF0pOwogICAgICAgICBXQVNNX1RSWV9BRERfVE9fQ09OVEVYVChzZXRMb2NhbChpbmRl
eCwgdmFsdWUpKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CkBAIC01OTgsNyArNTk4LDcg
QEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdB
U01fUEFSU0VSX0ZBSUxfSUYoIWFyZ3MudHJ5UmVzZXJ2ZUNhcGFjaXR5KGNhbGxlZVNpZ25hdHVy
ZS5hcmd1bWVudENvdW50KCkpLCAiY2FuJ3QgYWxsb2NhdGUgZW5vdWdoIG1lbW9yeSBmb3IgY2Fs
bCdzICIsIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudENvdW50KCksICIgYXJndW1lbnRzIik7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSBmaXJzdEFyZ3VtZW50SW5kZXg7IGkgPCBtX2V4cHJlc3Np
b25TdGFjay5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgVHlwZWRFeHByZXNzaW9uIGFyZyA9
IG1fZXhwcmVzc2lvblN0YWNrLmF0KGkpOwotICAgICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJ
TF9JRighaXNTdWJ0eXBlKGFyZy50eXBlKCksIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0g
Zmlyc3RBcmd1bWVudEluZGV4KSksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGluIGNhbGwsIGdv
dCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVTaWduYXR1cmUuYXJndW1lbnQo
aSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOworICAgICAgICAgICAgV0FTTV9WQUxJREFUT1JfRkFJ
TF9JRihhcmcudHlwZSgpICE9IGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0gZmlyc3RBcmd1
bWVudEluZGV4KSwgImFyZ3VtZW50IHR5cGUgbWlzbWF0Y2ggaW4gY2FsbCwgZ290ICIsIGFyZy50
eXBlKCksICIsIGV4cGVjdGVkICIsIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVudChpIC0gZmlyc3RB
cmd1bWVudEluZGV4KSk7CiAgICAgICAgICAgICBhcmdzLnVuY2hlY2tlZEFwcGVuZChhcmcpOwog
ICAgICAgICAgICAgbV9jb250ZXh0LmRpZFBvcFZhbHVlRnJvbVN0YWNrKCk7CiAgICAgICAgIH0K
QEAgLTYzOSw3ICs2MzksNyBAQCBGT1JfRUFDSF9XQVNNX01FTU9SWV9TVE9SRV9PUChDUkVBVEVf
Q0FTRSkKICAgICAgICAgZm9yIChzaXplX3QgaSA9IGZpcnN0QXJndW1lbnRJbmRleDsgaSA8IG1f
ZXhwcmVzc2lvblN0YWNrLnNpemUoKTsgKytpKSB7CiAgICAgICAgICAgICBUeXBlZEV4cHJlc3Np
b24gYXJnID0gbV9leHByZXNzaW9uU3RhY2suYXQoaSk7CiAgICAgICAgICAgICBpZiAoaSA8IG1f
ZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIDEpCi0gICAgICAgICAgICAgICAgV0FTTV9WQUxJREFU
T1JfRkFJTF9JRighaXNTdWJ0eXBlKGFyZy50eXBlKCksIGNhbGxlZVNpZ25hdHVyZS5hcmd1bWVu
dChpIC0gZmlyc3RBcmd1bWVudEluZGV4KSksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGluIGNh
bGxfaW5kaXJlY3QsIGdvdCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVTaWdu
YXR1cmUuYXJndW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOworICAgICAgICAgICAgICAg
IFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoYXJnLnR5cGUoKSAhPSBjYWxsZWVTaWduYXR1cmUuYXJn
dW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCksICJhcmd1bWVudCB0eXBlIG1pc21hdGNoIGlu
IGNhbGxfaW5kaXJlY3QsIGdvdCAiLCBhcmcudHlwZSgpLCAiLCBleHBlY3RlZCAiLCBjYWxsZWVT
aWduYXR1cmUuYXJndW1lbnQoaSAtIGZpcnN0QXJndW1lbnRJbmRleCkpOwogICAgICAgICAgICAg
YXJncy51bmNoZWNrZWRBcHBlbmQoYXJnKTsKICAgICAgICAgICAgIG1fY29udGV4dC5kaWRQb3BW
YWx1ZUZyb21TdGFjaygpOwogICAgICAgICB9CkBAIC02NjIsNyArNjYyLDcgQEAgRk9SX0VBQ0hf
V0FTTV9NRU1PUllfU1RPUkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIHVuc2lnbmVkIG9mZnNl
dCA9IG1fZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRD
b3VudCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5saW5lU2lnbmF0dXJl
LT5hcmd1bWVudENvdW50KCk7ICsraSkgewogICAgICAgICAgICAgVHlwZSB0eXBlID0gbV9leHBy
ZXNzaW9uU3RhY2suYXQob2Zmc2V0ICsgaSkudHlwZSgpOwotICAgICAgICAgICAgV0FTTV9WQUxJ
REFUT1JfRkFJTF9JRighaXNTdWJ0eXBlKHR5cGUsIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnQo
aSkpLCAiQmxvY2sgZXhwZWN0cyB0aGUgYXJndW1lbnQgYXQgaW5kZXgiLCBpLCAiIHRvIGJlIGEg
c3VidHlwZSBvZiAiLCBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiIGJ1dCBhcmd1bWVu
dCBoYXMgdHlwZSAiLCB0eXBlKTsKKyAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYo
dHlwZSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiQmxvY2sgZXhwZWN0cyB0aGUg
YXJndW1lbnQgYXQgaW5kZXgiLCBpLCAiIHRvIGJlICIsIGlubGluZVNpZ25hdHVyZS0+YXJndW1l
bnQoaSksICIgYnV0IGFyZ3VtZW50IGhhcyB0eXBlICIsIHR5cGUpOwogICAgICAgICB9CiAKICAg
ICAgICAgaW50NjRfdCBvbGRTaXplID0gbV9leHByZXNzaW9uU3RhY2suc2l6ZSgpOwpAQCAtNjg1
LDcgKzY4NSw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQog
ICAgICAgICB1bnNpZ25lZCBvZmZzZXQgPSBtX2V4cHJlc3Npb25TdGFjay5zaXplKCkgLSBpbmxp
bmVTaWduYXR1cmUtPmFyZ3VtZW50Q291bnQoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRDb3VudCgpOyArK2kpIHsKICAgICAgICAg
ICAgIFR5cGUgdHlwZSA9IG1fZXhwcmVzc2lvblN0YWNrLmF0KG9mZnNldCArIGkpLnR5cGUoKTsK
LSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZSh0eXBlLCBpbmxp
bmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpKSwgIkxvb3AgZXhwZWN0cyB0aGUgYXJndW1lbnQgYXQg
aW5kZXgiLCBpLCAiIHRvIGJlIGEgc3VidHlwZSBvZiAiLCBpbmxpbmVTaWduYXR1cmUtPmFyZ3Vt
ZW50KGkpLCAiIGJ1dCBhcmd1bWVudCBoYXMgdHlwZSAiLCB0eXBlKTsKKyAgICAgICAgICAgIFdB
U01fVkFMSURBVE9SX0ZBSUxfSUYodHlwZSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkp
LCAiTG9vcCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRleCIsIGksICIgdG8gYmUgIiwgaW5s
aW5lU2lnbmF0dXJlLT5hcmd1bWVudChpKSwgIiBidXQgYXJndW1lbnQgaGFzIHR5cGUgIiwgdHlw
ZSk7CiAgICAgICAgIH0KIAogICAgICAgICBpbnQ2NF90IG9sZFNpemUgPSBtX2V4cHJlc3Npb25T
dGFjay5zaXplKCk7CkBAIC03MTAsNyArNzEwLDcgQEAgRk9SX0VBQ0hfV0FTTV9NRU1PUllfU1RP
UkVfT1AoQ1JFQVRFX0NBU0UpCiAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYobV9leHBy
ZXNzaW9uU3RhY2suc2l6ZSgpIDwgaW5saW5lU2lnbmF0dXJlLT5hcmd1bWVudENvdW50KCksICJU
b28gZmV3IGFyZ3VtZW50cyBvbiBzdGFjayBmb3IgaWYgYmxvY2suIElmIGV4cGVjdHMgIiwgaW5s
aW5lU2lnbmF0dXJlLT5hcmd1bWVudENvdW50KCksICIsIGJ1dCBvbmx5ICIsIG1fZXhwcmVzc2lv
blN0YWNrLnNpemUoKSwgIiB3ZXJlIHByZXNlbnQuIElmIGJsb2NrIGhhcyBzaWduYXR1cmU6ICIs
IGlubGluZVNpZ25hdHVyZS0+dG9TdHJpbmcoKSk7CiAgICAgICAgIHVuc2lnbmVkIG9mZnNldCA9
IG1fZXhwcmVzc2lvblN0YWNrLnNpemUoKSAtIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnRDb3Vu
dCgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5saW5lU2lnbmF0dXJlLT5h
cmd1bWVudENvdW50KCk7ICsraSkKLSAgICAgICAgICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYo
IWlzU3VidHlwZShtX2V4cHJlc3Npb25TdGFja1tvZmZzZXQgKyBpXS50eXBlKCksIGlubGluZVNp
Z25hdHVyZS0+YXJndW1lbnQoaSkpLCAiTG9vcCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRl
eCIsIGksICIgdG8gYmUgYSBzdWJ0eXBlIG9mICIsIGlubGluZVNpZ25hdHVyZS0+YXJndW1lbnQo
aSksICIgYnV0IGFyZ3VtZW50IGhhcyB0eXBlICIsIG1fZXhwcmVzc2lvblN0YWNrW2ldLnR5cGUo
KSk7CisgICAgICAgICAgICBXQVNNX1ZBTElEQVRPUl9GQUlMX0lGKG1fZXhwcmVzc2lvblN0YWNr
W29mZnNldCArIGldLnR5cGUoKSAhPSBpbmxpbmVTaWduYXR1cmUtPmFyZ3VtZW50KGkpLCAiTG9v
cCBleHBlY3RzIHRoZSBhcmd1bWVudCBhdCBpbmRleCIsIGksICIgdG8gYmUgIiwgaW5saW5lU2ln
bmF0dXJlLT5hcmd1bWVudChpKSwgIiBidXQgYXJndW1lbnQgaGFzIHR5cGUgIiwgbV9leHByZXNz
aW9uU3RhY2tbaV0udHlwZSgpKTsKIAogICAgICAgICBpbnQ2NF90IG9sZFNpemUgPSBtX2V4cHJl
c3Npb25TdGFjay5zaXplKCk7CiAgICAgICAgIFN0YWNrIG5ld1N0YWNrOwpAQCAtNzg0LDcgKzc4
NCw3IEBAIEZPUl9FQUNIX1dBU01fTUVNT1JZX1NUT1JFX09QKENSRUFURV9DQVNFKQogICAgICAg
ICAgICAgQ29udHJvbFR5cGUqIHRhcmdldCA9IHRhcmdldHNbaV07CiAgICAgICAgICAgICBXQVNN
X1ZBTElEQVRPUl9GQUlMX0lGKGRlZmF1bHRUYXJnZXQuYnJhbmNoVGFyZ2V0QXJpdHkoKSAhPSB0
YXJnZXQtPmJyYW5jaFRhcmdldEFyaXR5KCksICJicl90YWJsZSB0YXJnZXQgdHlwZSBzaXplIG1p
c21hdGNoLiBEZWZhdWx0IGhhcyBzaXplOiAiLCBkZWZhdWx0VGFyZ2V0LmJyYW5jaFRhcmdldEFy
aXR5KCksICJidXQgdGFyZ2V0OiAiLCBpLCAiIGhhcyBzaXplOiAiLCB0YXJnZXQtPmJyYW5jaFRh
cmdldEFyaXR5KCkpOwogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCB0eXBlID0gMDsgdHlwZSA8
IGRlZmF1bHRUYXJnZXQuYnJhbmNoVGFyZ2V0QXJpdHkoKTsgKyt0eXBlKQotICAgICAgICAgICAg
ICAgIFdBU01fVkFMSURBVE9SX0ZBSUxfSUYoIWlzU3VidHlwZShkZWZhdWx0VGFyZ2V0LmJyYW5j
aFRhcmdldFR5cGUodHlwZSksIHRhcmdldC0+YnJhbmNoVGFyZ2V0VHlwZSh0eXBlKSksICJicl90
YWJsZSB0YXJnZXQgdHlwZSBtaXNtYXRjaCBhdCBvZmZzZXQgIiwgdHlwZSwgIiBleHBlY3RlZDog
IiwgZGVmYXVsdFRhcmdldC5icmFuY2hUYXJnZXRUeXBlKHR5cGUpLCAiIGJ1dCBzYXc6ICIsIHRh
cmdldC0+YnJhbmNoVGFyZ2V0VHlwZSh0eXBlKSwgIiB3aGVuIHRhcmdldGluZyBibG9jazogIiwg
dGFyZ2V0LT5zaWduYXR1cmUoKS0+dG9TdHJpbmcoKSk7CisgICAgICAgICAgICAgICAgV0FTTV9W
QUxJREFUT1JfRkFJTF9JRihkZWZhdWx0VGFyZ2V0LmJyYW5jaFRhcmdldFR5cGUodHlwZSkgIT0g
dGFyZ2V0LT5icmFuY2hUYXJnZXRUeXBlKHR5cGUpLCAiYnJfdGFibGUgdGFyZ2V0IHR5cGUgbWlz
bWF0Y2ggYXQgb2Zmc2V0ICIsIHR5cGUsICIgZXhwZWN0ZWQ6ICIsIGRlZmF1bHRUYXJnZXQuYnJh
bmNoVGFyZ2V0VHlwZSh0eXBlKSwgIiBidXQgc2F3OiAiLCB0YXJnZXQtPmJyYW5jaFRhcmdldFR5
cGUodHlwZSksICIgd2hlbiB0YXJnZXRpbmcgYmxvY2s6ICIsIHRhcmdldC0+c2lnbmF0dXJlKCkt
PnRvU3RyaW5nKCkpOwogICAgICAgICB9CiAKICAgICAgICAgV0FTTV9GQUlMX0lGX0hFTFBFUl9G
QUlMUyhjaGVja0JyYW5jaFRhcmdldChkZWZhdWx0VGFyZ2V0KSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbUluc3RhbmNlLmNwcAppbmRleCAzOWVjY2QyM2YzYmNiNDIyNjVlODM5
MmFmNDFkNTZkZjJmZWVlMzQ1Li4yZDY3NTgwYjg3ZThiOWE2MDM0YjQ1ZmU5ZWVlYmM0NzNkMDVi
OWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtSW5zdGFuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21JbnN0YW5jZS5jcHAKQEAg
LTYyLDcgKzYyLDcgQEAgSW5zdGFuY2U6Okluc3RhbmNlKENvbnRleHQqIGNvbnRleHQsIFJlZjxN
b2R1bGU+JiYgbW9kdWxlLCBFbnRyeUZyYW1lKiogcG9pbnRlclQKICAgICAgICAgaWYgKGdsb2Jh
bC5iaW5kaW5nTW9kZSA9PSBXYXNtOjpHbG9iYWxJbmZvcm1hdGlvbjo6QmluZGluZ01vZGU6OlBv
cnRhYmxlKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGtlcHQgYWxpdmUgYnkgSlNXZWJBc3Nl
bWJseUluc3RhbmNlIC0+IEpTV2ViQXNzZW1ibHlHbG9iYWwgLT4gYmluZGluZy4KICAgICAgICAg
ICAgIG1fZ2xvYmFsc1RvQmluZGluZy5zZXQoaSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoaXNTdWJ0
eXBlKGdsb2JhbC50eXBlLCBFeHRlcm5yZWYpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoaXNSZWZU
eXBlKGdsb2JhbC50eXBlKSkgewogICAgICAgICAgICAgLy8gVGhpcyBpcyBrZXB0IGFsaXZlIGJ5
IEpTV2ViQXNzZW1ibHlJbnN0YW5jZSAtPiBiaW5kaW5nLgogICAgICAgICAgICAgbV9nbG9iYWxz
VG9NYXJrLnNldChpKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUxMSW50R2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21MTEludEdlbmVyYXRvci5jcHAKaW5kZXggZDNhMDU5YTk5MDQ3YTczMTc0MDZkOGJi
YWM3NDU3MjZmY2QyNDJmZC4uZGZjOTE5ZWYzMTAxZDA4MTBlYmM2OGZhYjA5MmU0ZmE5Yzk2ZTBh
OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbUxMSW50R2VuZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtTExJbnRHZW5lcmF0
b3IuY3BwCkBAIC04MjYsMTMgKzgyNiwxMyBAQCBhdXRvIExMSW50R2VuZXJhdG9yOjpzZXRHbG9i
YWwodWludDMyX3QgaW5kZXgsIEV4cHJlc3Npb25UeXBlIHZhbHVlKSAtPiBQYXJ0aWFsUgogICAg
IFR5cGUgdHlwZSA9IGdsb2JhbC50eXBlOwogICAgIHN3aXRjaCAoZ2xvYmFsLmJpbmRpbmdNb2Rl
KSB7CiAgICAgY2FzZSBXYXNtOjpHbG9iYWxJbmZvcm1hdGlvbjo6QmluZGluZ01vZGU6OkVtYmVk
ZGVkSW5JbnN0YW5jZToKLSAgICAgICAgaWYgKGlzU3VidHlwZSh0eXBlLCBFeHRlcm5yZWYpKQor
ICAgICAgICBpZiAoaXNSZWZUeXBlKHR5cGUpKQogICAgICAgICAgICAgV2FzbVNldEdsb2JhbFJl
Zjo6ZW1pdCh0aGlzLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBX
YXNtU2V0R2xvYmFsOjplbWl0KHRoaXMsIGluZGV4LCB2YWx1ZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgV2FzbTo6R2xvYmFsSW5mb3JtYXRpb246OkJpbmRpbmdNb2RlOjpQb3J0YWJsZToK
LSAgICAgICAgaWYgKGlzU3VidHlwZSh0eXBlLCBFeHRlcm5yZWYpKQorICAgICAgICBpZiAoaXNS
ZWZUeXBlKHR5cGUpKQogICAgICAgICAgICAgV2FzbVNldEdsb2JhbFJlZlBvcnRhYmxlQmluZGlu
Zzo6ZW1pdCh0aGlzLCBpbmRleCwgdmFsdWUpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBX
YXNtU2V0R2xvYmFsUG9ydGFibGVCaW5kaW5nOjplbWl0KHRoaXMsIGluZGV4LCB2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtU2VjdGlvblBhcnNlci5jcHAKaW5k
ZXggZDczNGM2MGRjOTlkZTZhZmVkMjM1ZmE2OGFmYTgyZjI2NGIwYzhiNy4uMGY1MzMzOTQ3MjBi
ZjczYjBlOTc0OGY3ZTZkNDljODEyYzUyOGEyNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3dhc20vV2FzbVNlY3Rpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21TZWN0aW9uUGFyc2VyLmNwcApAQCAtMjk2LDcgKzI5Niw3IEBAIGF1dG8g
U2VjdGlvblBhcnNlcjo6cGFyc2VHbG9iYWwoKSAtPiBQYXJ0aWFsUmVzdWx0CiAgICAgICAgICAg
ICBnbG9iYWwuaW5pdGlhbGl6YXRpb25UeXBlID0gR2xvYmFsSW5mb3JtYXRpb246OkZyb21SZWZG
dW5jOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBnbG9iYWwuaW5pdGlhbGl6YXRpb25UeXBl
ID0gR2xvYmFsSW5mb3JtYXRpb246OkZyb21FeHByZXNzaW9uOwotICAgICAgICBXQVNNX1BBUlNF
Ul9GQUlMX0lGKCFpc1N1YnR5cGUodHlwZUZvckluaXRPcGNvZGUsIGdsb2JhbC50eXBlKSwgIkds
b2JhbCBpbml0X2V4cHIgb3Bjb2RlIG9mIHR5cGUgIiwgdHlwZUZvckluaXRPcGNvZGUsICIgZG9l
c24ndCBtYXRjaCBnbG9iYWwncyB0eXBlICIsIGdsb2JhbC50eXBlKTsKKyAgICAgICAgV0FTTV9Q
QVJTRVJfRkFJTF9JRih0eXBlRm9ySW5pdE9wY29kZSAhPSBnbG9iYWwudHlwZSwgIkdsb2JhbCBp
bml0X2V4cHIgb3Bjb2RlIG9mIHR5cGUgIiwgdHlwZUZvckluaXRPcGNvZGUsICIgZG9lc24ndCBt
YXRjaCBnbG9iYWwncyB0eXBlICIsIGdsb2JhbC50eXBlKTsKIAogICAgICAgICBtX2luZm8tPmds
b2JhbHMudW5jaGVja2VkQXBwZW5kKFdURk1vdmUoZ2xvYmFsKSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvV2ViQXNzZW1ibHlNb2R1bGVSZWNv
cmQuY3BwCmluZGV4IDMxYzIxZTNjNDM3MDJjOTlmYjZmODA5NTRkMGM1ZTQ3N2Q3MGRmN2QuLmU5
ODRiOWIwZWU0NzNiNTc5MGViNTc4ODU0Mzk5MmE5MjAyYjg3NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5TW9kdWxlUmVjb3JkLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9XZWJBc3NlbWJseU1vZHVsZVJlY29yZC5j
cHAKQEAgLTI1NiwxMCArMjU2LDExIEBAIHZvaWQgV2ViQXNzZW1ibHlNb2R1bGVSZWNvcmQ6Omxp
bmsoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSwgSlNPYmplCiAgICAgICAg
ICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgY29uc3QgYXV0byBnbG9iYWxUeXBlID0gbW9kdWxlSW5mb3JtYXRpb24uZ2xvYmFsc1tpbXBv
cnQua2luZEluZGV4XS50eXBlOwogICAgICAgICAgICAgICAgICAgICAvLyBpaS4gSWYgdGhlIGds
b2JhbF90eXBlIG9mIGkgaXMgaTY0IG9yIFR5cGUodikgaXMgbm90IE51bWJlciwgdGhyb3cgYSBX
ZWJBc3NlbWJseS5MaW5rRXJyb3IuCi0gICAgICAgICAgICAgICAgICAgIGlmIChtb2R1bGVJbmZv
cm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5cGUgPT0gV2FzbTo6STY0KQorICAg
ICAgICAgICAgICAgICAgICBpZiAoZ2xvYmFsVHlwZSA9PSBXYXNtOjpJNjQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZXhjZXB0aW9uKGNyZWF0ZUpTV2ViQXNzZW1ibHlMaW5rRXJy
b3IoZ2xvYmFsT2JqZWN0LCB2bSwgaW1wb3J0RmFpbE1lc3NhZ2UoaW1wb3J0LCAiaW1wb3J0ZWQg
Z2xvYmFsIiwgImNhbm5vdCBiZSBhbiBpNjQiKSkpOwotICAgICAgICAgICAgICAgICAgICBpZiAo
IWlzU3VidHlwZShtb2R1bGVJbmZvcm1hdGlvbi5nbG9iYWxzW2ltcG9ydC5raW5kSW5kZXhdLnR5
cGUsIFdhc206OkV4dGVybnJlZikgJiYgIXZhbHVlLmlzTnVtYmVyKCkpCisgICAgICAgICAgICAg
ICAgICAgIGlmICghaXNSZWZUeXBlKGdsb2JhbFR5cGUpICYmICF2YWx1ZS5pc051bWJlcigpKQog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbihjcmVhdGVKU1dlYkFzc2Vt
Ymx5TGlua0Vycm9yKGdsb2JhbE9iamVjdCwgdm0sIGltcG9ydEZhaWxNZXNzYWdlKGltcG9ydCwg
ImltcG9ydGVkIGdsb2JhbCIsICJtdXN0IGJlIGEgbnVtYmVyIikpKTsKIAogICAgICAgICAgICAg
ICAgICAgICAvLyBpaWkuIEFwcGVuZCBUb1dlYkFzc2VtYmx5VmFsdWUodikgdG8gaW1wb3J0cy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dvcmtlcnMvd2FzbS1yZWZlcmVuY2VzL3Rlc3QuanMg
Yi9MYXlvdXRUZXN0cy93b3JrZXJzL3dhc20tcmVmZXJlbmNlcy90ZXN0LmpzCmluZGV4IGQ0Yjhj
NTQ5NjMzZGE1MTg1NjYyNGZiZmYxY2I1MTRkYzkwNWY2YjkuLjk1NGFhYTA5MzBiYjIzN2NkMTNh
MzNiMTUzNmYxZmNlNzg4Zjk3ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dvcmtlcnMvd2Fz
bS1yZWZlcmVuY2VzL3Rlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvd29ya2Vycy93YXNtLXJlZmVy
ZW5jZXMvdGVzdC5qcwpAQCAtMTg1OCw5ICsxODU4LDkgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
ICAgICAgICAgICAgIC5GdW5jdGlvbigidGJsX3NpemUiLCB7IHBhcmFtczogW10sIHJldDogImkz
MiIgfSkKICAgICAgICAgICAgICAgLlRhYmxlU2l6ZSgxKQogICAgICAgICAgICAgLkVuZCgpCi0g
ICAgICAgICAgICAuRnVuY3Rpb24oInRibF9ncm93IiwgeyBwYXJhbXM6IFsiaTMyIl0sIHJldDog
ImkzMiIgfSkKLSAgICAgICAgICAgICAgICAuUmVmRnVuYygwKQorICAgICAgICAgICAgLkZ1bmN0
aW9uKCJ0YmxfZ3JvdyIsIHsgcGFyYW1zOiBbImV4dGVybnJlZiIsICJpMzIiXSwgcmV0OiAiaTMy
IiB9KQogICAgICAgICAgICAgICAgIC5HZXRMb2NhbCgwKQorICAgICAgICAgICAgICAgIC5HZXRM
b2NhbCgxKQogICAgICAgICAgICAgICAgIC5UYWJsZUdyb3coMSkKICAgICAgICAgICAgIC5FbmQo
KQogICAgICAgICAgICAgLkZ1bmN0aW9uKCJ0YmxfZmlsbCIsIHsgcGFyYW1zOiBbImkzMiIsICJl
eHRlcm5yZWYiLCAiaTMyIl0sIHJldDogInZvaWQiIH0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93b3JrZXJzL3dhc20tcmVmZXJlbmNlcy93b3JrZXIuanMgYi9MYXlvdXRUZXN0cy93b3JrZXJz
L3dhc20tcmVmZXJlbmNlcy93b3JrZXIuanMKaW5kZXggOTZkMWY2MGQ1MThiMjc4MjZhMTk5ZjFi
OGMwYjViZGM2NjBhNzk2OS4uY2UxNDViMWU0Y2ViZTBkYjY0ZTUxNjcyOWU2NTEyNWFjMzc4MDM0
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd29ya2Vycy93YXNtLXJlZmVyZW5jZXMvd29ya2Vy
LmpzCisrKyBiL0xheW91dFRlc3RzL3dvcmtlcnMvd2FzbS1yZWZlcmVuY2VzL3dvcmtlci5qcwpA
QCAtMTczLDEwICsxNzMsMTAgQEAgb25tZXNzYWdlID0gZnVuY3Rpb24oeyBkYXRhOiBtb2R1bGUg
fSkgewogICAgIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKG1vZHVsZSkudGhlbigoJDEpID0+IHsK
ICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGFzc2VydC5lcSgkMS5leHBvcnRzLnRibF9zaXpl
KCksIDIwKQotICAgICAgICAgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX2dyb3coNSksIDIw
KQorICAgICAgICAgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX2dyb3coImhpIiwgNSksIDIw
KQogICAgICAgICAgICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsX3NpemUoKSwgMjUpCiAgICAg
ICAgICAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDApLCBudWxsKQotICAgICAgICAg
ICAgYXNzZXJ0LmVxKCQxLmV4cG9ydHMudGJsLmdldCgyNCksICQxLmV4cG9ydHMudGJsX3NpemUp
CisgICAgICAgICAgICBhc3NlcnQuZXEoJDEuZXhwb3J0cy50YmwuZ2V0KDI0KSwgImhpIikKIAog
ICAgICAgICAgICAgZm9yIChsZXQgaT0wOyBpPDEwMDA7ICsraSkgewogICAgICAgICAgICAgICAg
ICQxLmV4cG9ydHMudGJsX2ZpbGwoMSwiaGkiLDMpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5n
ZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVmZWFjMzZiYTUzYTEzYzg0Y2RjMjIxZTA3
ZDBhNzgxNWI4YTQ1N2YuLmU5OWQ5OWZlZjc1MTRjMjI0NTJiYTQ2ODBlYzQyZGMwNWRjZWQ1Mzcg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMjAtMTEtMTIgIERtaXRyeSBCZXpoZXRza292ICA8ZGJlemhldHNr
b3ZAaWdhbGlhLmNvbT4KKworICAgICAgICBbV0FTTS1SZWZlcmVuY2VzXSBSZW1vdmUgc3VidHlw
aW5nIHJ1bGUgZm9yIGV4dGVybnJlZiBhbmQgZnVuY3JlZgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBmdW5jcmVmIGlzIG5vdCBhIHN1YnR5cGUg
b2YgZXh0ZXJucmVmLgorICAgICAgICBUaGUgc3BlYzogaHR0cHM6Ly93ZWJhc3NlbWJseS5naXRo
dWIuaW8vcmVmZXJlbmNlLXR5cGVzL2NvcmUvCisgICAgICAgIFRoZSBQUiBmb3IgcmVtb3Zpbmcg
c3VidHlwZSBmcm9tIHRoZSBzcGVjOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vV2ViQXNz
ZW1ibHkvcmVmZXJlbmNlLXR5cGVzL3B1bGwvODcuCisKKyAgICAgICAgKiB3YXNtL3JlZmVyZW5j
ZXMvZnVuY19yZWYuanM6CisgICAgICAgIChhc3NlcnQuZXEuaW5zdGFuY2UuZXhwb3J0cy5maXgu
ZnVuKToKKyAgICAgICAgKGFzc2VydC5lcS5pbnN0YW5jZS5leHBvcnRzLmZpeCk6CisgICAgICAg
ICogd2FzbS9yZWZlcmVuY2VzL3ZhbGlkYXRpb24uanM6CisKIDIwMjAtMTEtMTIgIENhaW8gTGlt
YSAgPHRpY2Fpb2xpbWFAZ21haWwuY29tPgogCiAgICAgICAgIFtJbnRsXVtBUk12N11bTUlQU10g
U2tpcCBzdHJlc3MvaW50bC1kYXRldGltZWZvcm1hdC1mb3JtYXRyYW5nZS5qcwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy93YXNtL2pzLWFwaS93ZWItYXNzZW1ibHktaW5zdGFudGlhdGUuanMgYi9KU1Rl
c3RzL3dhc20vanMtYXBpL3dlYi1hc3NlbWJseS1pbnN0YW50aWF0ZS5qcwppbmRleCA5NDA5ODg5
OWRjOGI3ODc2NjM0OTAwODM2ZGM5ZGFjYTUxYjczNjUyLi4yMzdiM2E4OWFjYzA1OWZhOTE5MGE4
OTY1M2M4ODI3ZWU3NDBlZmEyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vanMtYXBpL3dlYi1h
c3NlbWJseS1pbnN0YW50aWF0ZS5qcworKysgYi9KU1Rlc3RzL3dhc20vanMtYXBpL3dlYi1hc3Nl
bWJseS1pbnN0YW50aWF0ZS5qcwpAQCAtNzYsNyArNzYsNyBAQCBhc3NlcnQuZXEoV2ViQXNzZW1i
bHkuaW5zdGFudGlhdGUubGVuZ3RoLCAxKTsKICAgICAgICAgICAgIGxldCB7bW9kdWxlLCBpbnN0
YW5jZX0gPSBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShiaW4pOwogICAgICAgICB9IGNh
dGNoKGUpIHsKICAgICAgICAgICAgIGFzc2VydC50cnV0aHkoZSBpbnN0YW5jZW9mIFdlYkFzc2Vt
Ymx5LkNvbXBpbGVFcnJvcik7Ci0gICAgICAgICAgICBhc3NlcnQuZXEoZS5tZXNzYWdlLCAiV2Vi
QXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IGNvbnRyb2wgZmxvdyByZXR1cm5zIHdp
dGggdW5leHBlY3RlZCB0eXBlLiBGMzIgaXMgbm90IGEgc3VidHlwZSBvZiBJMzIsIGluIGZ1bmN0
aW9uIGF0IGluZGV4IDAiKTsKKyAgICAgICAgICAgIGFzc2VydC5lcShlLm1lc3NhZ2UsICJXZWJB
c3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogY29udHJvbCBmbG93IHJldHVybnMgd2l0
aCB1bmV4cGVjdGVkIHR5cGUuIEYzMiBpcyBub3QgYSBJMzIsIGluIGZ1bmN0aW9uIGF0IGluZGV4
IDAiKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvSlNUZXN0cy93YXNtL3JlZmVy
ZW5jZXMvZnVuY19yZWYuanMgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9mdW5jX3JlZi5qcwpp
bmRleCA4NGMxM2Y4NjI2MGRiMjFjNTE4ZGIyYjA3YjRkOTFmN2ZiZDYwNWJhLi4zMTcxNWE1NTFi
MTk2NzQ5YmViNDEwNTIxNjJlMGIzNDg2NGUzMmQzIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20v
cmVmZXJlbmNlcy9mdW5jX3JlZi5qcworKysgYi9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy9mdW5j
X3JlZi5qcwpAQCAtNzUsMjcgKzc1LDIwIEBAIGZ1bmN0aW9uIG1ha2VGdW5jcmVmSWRlbnQoKSB7
CiAgICAgICAgICAgLlR5cGUoKS5FbmQoKQogICAgICAgICAgIC5GdW5jdGlvbigpLkVuZCgpCiAg
ICAgICAgICAgLkV4cG9ydCgpCi0gICAgICAgICAgICAgIC5GdW5jdGlvbigiaCIpCiAgICAgICAg
ICAgICAgIC5GdW5jdGlvbigiaSIpCi0gICAgICAgICAgICAgIC5GdW5jdGlvbigiZ2V0X2giKQor
ICAgICAgICAgICAgICAuRnVuY3Rpb24oImdldF9pIikKICAgICAgICAgICAgICAgLkZ1bmN0aW9u
KCJmaXgiKQogICAgICAgICAgICAgICAuRnVuY3Rpb24oImdldF9ub3RfZXhwb3J0ZWQiKQogICAg
ICAgICAgICAgICAuRnVuY3Rpb24oImxvY2FsX3JlYWQiKQogICAgICAgICAgIC5FbmQoKQogICAg
ICAgICAgIC5Db2RlKCkKLSAgICAgICAgICAgIC5GdW5jdGlvbigiaCIsIHsgcGFyYW1zOiBbImZ1
bmNyZWYiXSwgcmV0OiAiZXh0ZXJucmVmIiB9LCBbImV4dGVybnJlZiJdKQotICAgICAgICAgICAg
ICAuR2V0TG9jYWwoMCkKLSAgICAgICAgICAgICAgLlNldExvY2FsKDEpCi0gICAgICAgICAgICAg
IC5HZXRMb2NhbCgxKQotICAgICAgICAgICAgLkVuZCgpCi0KICAgICAgICAgICAgIC5GdW5jdGlv
bigiaSIsIHsgcGFyYW1zOiBbImZ1bmNyZWYiXSwgcmV0OiAiZnVuY3JlZiIgfSwgWyJmdW5jcmVm
Il0pCiAgICAgICAgICAgICAgIC5HZXRMb2NhbCgwKQogICAgICAgICAgICAgICAuU2V0TG9jYWwo
MSkKICAgICAgICAgICAgICAgLkdldExvY2FsKDEpCiAgICAgICAgICAgICAuRW5kKCkKIAotICAg
ICAgICAgICAgLkZ1bmN0aW9uKCJnZXRfaCIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiZnVuY3JlZiIg
fSwgWyJmdW5jcmVmIl0pCisgICAgICAgICAgICAuRnVuY3Rpb24oImdldF9pIiwgeyBwYXJhbXM6
IFtdLCByZXQ6ICJmdW5jcmVmIiB9LCBbImZ1bmNyZWYiXSkKICAgICAgICAgICAgICAgLkkzMkNv
bnN0KDApCiAgICAgICAgICAgICAgIC5SZWZGdW5jKDApCiAgICAgICAgICAgICAgIC5TZXRMb2Nh
bCgwKQpAQCAtMTExLDExICsxMDQsMTEgQEAgZnVuY3Rpb24gbWFrZUZ1bmNyZWZJZGVudCgpIHsK
ICAgICAgICAgICAgIC5FbmQoKQogCiAgICAgICAgICAgICAuRnVuY3Rpb24oImZpeCIsIHsgcGFy
YW1zOiBbXSwgcmV0OiAiZnVuY3JlZiIgfSwgW10pCi0gICAgICAgICAgICAgIC5SZWZGdW5jKDMp
CisgICAgICAgICAgICAgIC5SZWZGdW5jKDIpCiAgICAgICAgICAgICAuRW5kKCkKIAogICAgICAg
ICAgICAgLkZ1bmN0aW9uKCJnZXRfbm90X2V4cG9ydGVkIiwgeyBwYXJhbXM6IFtdLCByZXQ6ICJm
dW5jcmVmIiB9LCBbXSkKLSAgICAgICAgICAgICAgLlJlZkZ1bmMoNSkKKyAgICAgICAgICAgICAg
LlJlZkZ1bmMoNCkKICAgICAgICAgICAgIC5FbmQoKQogCiAgICAgICAgICAgICAuRnVuY3Rpb24o
InJldF80MiIsIHsgcGFyYW1zOiBbXSwgcmV0OiAiaTMyIiB9LCBbXSkKQEAgLTEzNCwyMiArMTI3
LDE2IEBAIGZ1bmN0aW9uIG1ha2VGdW5jcmVmSWRlbnQoKSB7CiAgICAgZnVsbEdDKCk7CiAKICAg
ICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5sb2NhbF9yZWFkKCksIDEpCi0gICAgYXNzZXJ0
LmVxKGluc3RhbmNlLmV4cG9ydHMuaChudWxsKSwgbnVsbCkKLQotICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5oKGZ1biksIEVycm9yLCAiRnVuY3JlZiBtdXN0IGJlIGFu
IGV4cG9ydGVkIHdhc20gZnVuY3Rpb24gKGV2YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCi0g
ICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuaChteWZ1biksIG15ZnVuKQotICAgIGFzc2Vy
dC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5oKDUpLCBFcnJvciwgIkZ1bmNyZWYgbXVz
dCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3Mp
JykiKQotICAgIGFzc2VydC50aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5oKHVuZGVmaW5l
ZCksIEVycm9yLCAiRnVuY3JlZiBtdXN0IGJlIGFuIGV4cG9ydGVkIHdhc20gZnVuY3Rpb24gKGV2
YWx1YXRpbmcgJ2Z1bmMoLi4uYXJncyknKSIpCiAKICAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhw
b3J0cy5pKG51bGwpLCBudWxsKQogICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmkobXlm
dW4pLCBteWZ1bikKICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMuaShm
dW4pLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChl
dmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQogICAgIGFzc2VydC50aHJvd3MoKCkgPT4gaW5z
dGFuY2UuZXhwb3J0cy5pKDUpLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBvcnRlZCB3
YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQogCi0gICAgYXNzZXJ0
LnRocm93cygoKSA9PiBpbnN0YW5jZS5leHBvcnRzLmdldF9oKCkoZnVuKSwgRXJyb3IsICJGdW5j
cmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZhbHVhdGluZyAnZnVuYygu
Li5hcmdzKScpIikKLSAgICBhc3NlcnQuZXEoaW5zdGFuY2UuZXhwb3J0cy5nZXRfaCgpKG51bGwp
LCBudWxsKQotICAgIGFzc2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmdldF9oKCkobXlmdW4pLCBt
eWZ1bikKLSAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3RhbmNlLmV4cG9ydHMuZ2V0X2goKSg1
KSwgRXJyb3IsICJGdW5jcmVmIG11c3QgYmUgYW4gZXhwb3J0ZWQgd2FzbSBmdW5jdGlvbiAoZXZh
bHVhdGluZyAnZnVuYyguLi5hcmdzKScpIikKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IGluc3Rh
bmNlLmV4cG9ydHMuZ2V0X2koKShmdW4pLCBFcnJvciwgIkZ1bmNyZWYgbXVzdCBiZSBhbiBleHBv
cnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFyZ3MpJykiKQorICAgIGFz
c2VydC5lcShpbnN0YW5jZS5leHBvcnRzLmdldF9pKCkobnVsbCksIG51bGwpCisgICAgYXNzZXJ0
LmVxKGluc3RhbmNlLmV4cG9ydHMuZ2V0X2koKShteWZ1biksIG15ZnVuKQorICAgIGFzc2VydC50
aHJvd3MoKCkgPT4gaW5zdGFuY2UuZXhwb3J0cy5nZXRfaSgpKDUpLCBFcnJvciwgIkZ1bmNyZWYg
bXVzdCBiZSBhbiBleHBvcnRlZCB3YXNtIGZ1bmN0aW9uIChldmFsdWF0aW5nICdmdW5jKC4uLmFy
Z3MpJykiKQogCiAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuZ2V0X25vdF9leHBvcnRl
ZCgpKCksIDQyKQogCkBAIC0xNTcsNiArMTQ0LDI5IEBAIGZ1bmN0aW9uIG1ha2VGdW5jcmVmSWRl
bnQoKSB7CiAgICAgYXNzZXJ0LmVxKGluc3RhbmNlLmV4cG9ydHMuZml4KCksIGluc3RhbmNlLmV4
cG9ydHMuZml4KTsKIH0KIAorLy8gQ2FzdGluZyB0aGUgRnVuY3JlZiB0byBFeHRlcm5yZWYgaXMg
Zm9yYmlkZGVuLgorCit7CisgICAgZnVuY3Rpb24gZnVuKCkgeyByZXR1cm4gNDE7IH0KKworICAg
IGNvbnN0IGJ1aWxkZXIgPSAobmV3IEJ1aWxkZXIoKSkKKyAgICAgICAgICAuVHlwZSgpLkVuZCgp
CisgICAgICAgICAgLkZ1bmN0aW9uKCkuRW5kKCkKKyAgICAgICAgICAuRXhwb3J0KCkKKyAgICAg
ICAgICAgICAgLkZ1bmN0aW9uKCJoIikKKyAgICAgICAgICAuRW5kKCkKKyAgICAgICAgICAuQ29k
ZSgpCisgICAgICAgICAgICAuRnVuY3Rpb24oImgiLCB7IHBhcmFtczogWyJmdW5jcmVmIl0sIHJl
dDogImV4dGVybnJlZiIgfSwgWyJleHRlcm5yZWYiXSkKKyAgICAgICAgICAgICAgLkdldExvY2Fs
KDApCisgICAgICAgICAgICAgIC5TZXRMb2NhbCgxKQorICAgICAgICAgICAgICAuR2V0TG9jYWwo
MSkKKyAgICAgICAgICAgIC5FbmQoKQorICAgICAgICAgIC5FbmQoKTsKKworICAgIGNvbnN0IGJp
biA9IGJ1aWxkZXIuV2ViQXNzZW1ibHkoKS5nZXQoKTsKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+
IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluKSwgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLCAi
V2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IHNldF9sb2NhbCB0byB0eXBlIEZ1
bmNyZWYgZXhwZWN0ZWQgRXh0ZXJucmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0
aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbiknKSIpOworfQorCiAvLyBHbG9iYWxzCiAK
IHsKQEAgLTI0Niw3ICsyNTYsNyBAQCBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJs
eS5Nb2R1bGUoKG5ldyBCdWlsZGVyKCkpCiAgICAgLkZ1bmN0aW9uKCJoIiwgeyBwYXJhbXM6IFsi
ZXh0ZXJucmVmIl0sIHJldDogImZ1bmNyZWYiIH0pCiAgICAgICAuR2V0TG9jYWwoMCkKICAgICAu
RW5kKCkKLSAgLkVuZCgpLldlYkFzc2VtYmx5KCkuZ2V0KCkpLCBFcnJvciwgIldlYkFzc2VtYmx5
Lk1vZHVsZSBkb2Vzbid0IHZhbGlkYXRlOiBjb250cm9sIGZsb3cgcmV0dXJucyB3aXRoIHVuZXhw
ZWN0ZWQgdHlwZS4gRXh0ZXJucmVmIGlzIG5vdCBhIHN1YnR5cGUgb2YgRnVuY3JlZiwgaW4gZnVu
Y3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZScpIik7
CisgIC5FbmQoKS5XZWJBc3NlbWJseSgpLmdldCgpKSwgRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1
bGUgZG9lc24ndCB2YWxpZGF0ZTogY29udHJvbCBmbG93IHJldHVybnMgd2l0aCB1bmV4cGVjdGVk
IHR5cGUuIEV4dGVybnJlZiBpcyBub3QgYSBGdW5jcmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAw
IChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHkuTW9kdWxlJykiKTsKIAogYXNzZXJ0LnRocm93
cygoKSA9PiBuZXcgV2ViQXNzZW1ibHkuTW9kdWxlKChuZXcgQnVpbGRlcigpKQogICAuVHlwZSgp
LkVuZCgpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy92YWxpZGF0aW9uLmpz
IGIvSlNUZXN0cy93YXNtL3JlZmVyZW5jZXMvdmFsaWRhdGlvbi5qcwppbmRleCBjOTYwMTI4NjYz
NTcxNzgxMTlkYzdhYzYxYWIxZmE1MTY3ZDJhOTVmLi5kMTQ3YjFkMGI0ZjlmNTc4OTAxZTA4MmNj
MWRmYjY5ZTgzZDE4MDc1IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3dhc20vcmVmZXJlbmNlcy92YWxp
ZGF0aW9uLmpzCisrKyBiL0pTVGVzdHMvd2FzbS9yZWZlcmVuY2VzL3ZhbGlkYXRpb24uanMKQEAg
LTE5LDcgKzE5LDcgQEAgaW1wb3J0IEJ1aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CiAgICAg
Y29uc3QgYmluID0gYnVpbGRlci5XZWJBc3NlbWJseSgpOwogICAgIGJpbi50cmltKCk7CiAKLSAg
ICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdldCgpKSwg
V2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFs
aWRhdGU6IHJlZi5pc19udWxsIHRvIHR5cGUgSTMyIGV4cGVjdGVkIEV4dGVybnJlZiwgaW4gZnVu
Y3Rpb24gYXQgaW5kZXggMCAoZXZhbHVhdGluZyAnbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4u
Z2V0KCkpJykiKTsKKyAgICBhc3NlcnQudGhyb3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1
bGUoYmluLmdldCgpKSwgV2ViQXNzZW1ibHkuQ29tcGlsZUVycm9yLCAiV2ViQXNzZW1ibHkuTW9k
dWxlIGRvZXNuJ3QgdmFsaWRhdGU6IHJlZi5pc19udWxsIHRvIHR5cGUgSTMyIGV4cGVjdGVkIGEg
cmVmZXJlbmNlIHR5cGUsIGluIGZ1bmN0aW9uIGF0IGluZGV4IDAgKGV2YWx1YXRpbmcgJ25ldyBX
ZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdldCgpKScpIik7CiB9CiAKIHsKQEAgLTkwLDcgKzkwLDcg
QEAgaW1wb3J0IEJ1aWxkZXIgZnJvbSAnLi4vQnVpbGRlci5qcyc7CiAgICAgY29uc3QgYmluID0g
YnVpbGRlci5XZWJBc3NlbWJseSgpOwogICAgIGJpbi50cmltKCk7CiAKLSAgICBhc3NlcnQudGhy
b3dzKCgpID0+IG5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoYmluLmdldCgpKSwgV2ViQXNzZW1ibHku
Q29tcGlsZUVycm9yLCAiV2ViQXNzZW1ibHkuTW9kdWxlIGRvZXNuJ3QgdmFsaWRhdGU6IGNvbnRy
b2wgZmxvdyByZXR1cm5zIHdpdGggdW5leHBlY3RlZCB0eXBlLiBFeHRlcm5yZWYgaXMgbm90IGEg
c3VidHlwZSBvZiBGdW5jcmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICdu
ZXcgV2ViQXNzZW1ibHkuTW9kdWxlKGJpbi5nZXQoKSknKSIpOworICAgIGFzc2VydC50aHJvd3Mo
KCkgPT4gbmV3IFdlYkFzc2VtYmx5Lk1vZHVsZShiaW4uZ2V0KCkpLCBXZWJBc3NlbWJseS5Db21w
aWxlRXJyb3IsICJXZWJBc3NlbWJseS5Nb2R1bGUgZG9lc24ndCB2YWxpZGF0ZTogY29udHJvbCBm
bG93IHJldHVybnMgd2l0aCB1bmV4cGVjdGVkIHR5cGUuIEV4dGVybnJlZiBpcyBub3QgYSBGdW5j
cmVmLCBpbiBmdW5jdGlvbiBhdCBpbmRleCAwIChldmFsdWF0aW5nICduZXcgV2ViQXNzZW1ibHku
TW9kdWxlKGJpbi5nZXQoKSknKSIpOwogfQogCiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>