<?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>227662</bug_id>
          
          <creation_ts>2021-07-03 09:44:03 -0700</creation_ts>
          <short_desc>[WebIDL] Properly validate and merge descriptors in [Replaceable] setter</short_desc>
          <delta_ts>2021-07-23 18:56:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774678</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-07-03 09:44:03 -0700</bug_when>
    <thetext>[WebIDL] Properly validate and merge descriptors in [Replaceable] setter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774681</commentid>
    <comment_count>1</comment_count>
      <attachid>432852</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-07-03 10:05:02 -0700</bug_when>
    <thetext>Created attachment 432852
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774724</commentid>
    <comment_count>2</comment_count>
      <attachid>432852</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-07-04 10:37:18 -0700</bug_when>
    <thetext>Comment on attachment 432852
Patch

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

&gt; Source/JavaScriptCore/runtime/JSObject.h:808
&gt; +    JS_EXPORT_PRIVATE bool createDataProperty(JSGlobalObject*, PropertyName, JSValue, bool shouldThrow);

JS_EXPORT_PRIVATE is not needed when the function is inlined (as this one is).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774799</commentid>
    <comment_count>3</comment_count>
      <attachid>432881</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-07-05 06:48:29 -0700</bug_when>
    <thetext>Created attachment 432881
Patch

Remove JS_EXPORT_PRIVATE to fix weak external symbol build error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776137</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-10 09:45:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/80419243&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779282</commentid>
    <comment_count>5</comment_count>
      <attachid>432881</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-07-23 18:19:28 -0700</bug_when>
    <thetext>Comment on attachment 432881
Patch

Thank you for review and helping out with the linker error, Sam!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1779283</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-23 18:56:41 -0700</bug_when>
    <thetext>Committed r280280 (239938@main): &lt;https://commits.webkit.org/239938@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432881.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432852</attachid>
            <date>2021-07-03 10:05:02 -0700</date>
            <delta_ts>2021-07-05 06:48:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227662-20210703200500.patch</filename>
            <type>text/plain</type>
            <size>23252</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc5NTQzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDIxLTA3LTAzICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbV2ViSURMXSBQcm9wZXJseSB2YWxpZGF0ZSBhbmQgbWVyZ2UgZGVzY3JpcHRvcnMg
aW4gW1JlcGxhY2VhYmxlXSBzZXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNzY2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEV4dHJhY3RzIGNyZWF0ZURhdGFQcm9wZXJ0eSgpIG1ldGhvZCB0byBr
ZWVwIFdlYklETCBjb2RlIGdlbmVyYXRvciBhcyBzaW1wbGUgYXMgcG9zc2libGUsCisgICAgICAg
IGFuZCBhbHNvIHRvIGVtcGhhc2l6ZSBhIHN1YnRsZSBkaWZmZXJlbmNlIGJldHdlZW4KKyAgICAg
ICAgeyBbW1ZhbHVlXV06IFggfSBhbmQKKyAgICAgICAgeyBbW1ZhbHVlXV06IFgsIFtbV3JpdGFi
bGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWUg
fS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Oldh
bGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChK
U0M6OmRlZmluZVByb3BlcnR5T25SZWNlaXZlclNsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpKU09iamVjdDo6Y3JlYXRlRGF0YVByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL0xv
b2t1cC5oOgorICAgICAgICAoSlNDOjpyZXBsYWNlU3RhdGljUHJvcGVydHlTbG90KTogRGVsZXRl
ZC4KKwogMjAyMS0wNy0wMiAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgMTAgbW9yZSB1bmlmaWVkIHNvdXJjZSBjcHAgZmlsZXMgZm9yIEpTQwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHJl
dmlzaW9uIDI3OTUwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmpl
Y3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTMsOSArNzUzLDggQEAgTkVWRVJfSU5MSU5FIEpT
VmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQogICAgICAgICAgICAgICAgICAgICBpZiAoTElLRUxZ
KG9mZnNldCAhPSBpbnZhbGlkT2Zmc2V0ICYmIGF0dHJpYnV0ZXMgPT0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSkpCiAgICAgICAgICAgICAgICAgICAgICAg
ICBvYmplY3QtPnB1dERpcmVjdCh2bSwgb2Zmc2V0LCBmaWx0ZXJlZFZhbHVlKTsKICAgICAgICAg
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQcm9wZXJ0eURlc2Ny
aXB0b3IgZGVzY3JpcHRvcihmaWx0ZXJlZFZhbHVlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJv
cGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hv
dWxkVGhyb3cgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdC0+bWV0aG9k
VGFibGUodm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIG1fZ2xvYmFsT2JqZWN0LCBwcm9w
LCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgICAgICAgICAgICAgICAgICAgICBvYmpl
Y3QtPmNyZWF0ZURhdGFQcm9wZXJ0eShtX2dsb2JhbE9iamVjdCwgcHJvcCwgZmlsdGVyZWRWYWx1
ZSwgc2hvdWxkVGhyb3cpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCShyZXZpc2lvbiAy
Nzk1MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg3MywxNiArODczLDE3IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUgYm9v
bCBkZWZpbmVQcm9wZXJ0eU8KICAgICBib29sIGhhc1Byb3BlcnR5ID0gcmVjZWl2ZXItPm1ldGhv
ZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlTbG90KHJlY2VpdmVyLCBnbG9iYWxPYmplY3QsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2Up
OwogCi0gICAgUHJvcGVydHlEZXNjcmlwdG9yIGRlc2NyaXB0b3I7CiAgICAgaWYgKGhhc1Byb3Bl
cnR5KSB7CiAgICAgICAgIC8vIEZJWE1FOiBGb3IgYW4gYWNjZXNzb3Igd2l0aCBzZXR0ZXIsIHRo
ZSBlcnJvciBtZXNzYWdlIGlzIG1pc2xlYWRpbmcuCiAgICAgICAgIGlmIChzbG90LmF0dHJpYnV0
ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpSZWFkT25seU9yQWNjZXNzb3JPckN1c3RvbUFjY2Vz
c29yKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBz
aG91bGRUaHJvdywgUmVhZG9ubHlQcm9wZXJ0eVdyaXRlRXJyb3IpOworCisgICAgICAgIFByb3Bl
cnR5RGVzY3JpcHRvciBkZXNjcmlwdG9yOwogICAgICAgICBkZXNjcmlwdG9yLnNldFZhbHVlKHZh
bHVlKTsKLSAgICB9IGVsc2UKLSAgICAgICAgZGVzY3JpcHRvci5zZXREZXNjcmlwdG9yKHZhbHVl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKKyAgICAg
ICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZWNlaXZlci0+bWV0aG9kVGFibGUodm0pLT5k
ZWZpbmVPd25Qcm9wZXJ0eShyZWNlaXZlciwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRl
c2NyaXB0b3IsIHNob3VsZFRocm93KSk7CisgICAgfQogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJO
KHNjb3BlLCByZWNlaXZlci0+bWV0aG9kVGFibGUodm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShyZWNl
aXZlciwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93
KSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZWNlaXZlci0+Y3JlYXRlRGF0YVBy
b3BlcnR5KGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3cpKTsK
IH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1vcmRpbmFyeXNldCAoc3RlcCAz
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCShyZXZpc2lv
biAyNzk1MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC04MDUsNiArODA1LDcgQEAgcHVibGljOgogICAgIEpTRnVuY3Rpb24q
IHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbldpdGhvdXRUcmFuc2l0aW9uKFZNJiwgSlNHbG9iYWxP
YmplY3QqLCBjb25zdCBQcm9wZXJ0eU5hbWUmLCBGdW5jdGlvbkV4ZWN1dGFibGUqLCB1bnNpZ25l
ZCBhdHRyaWJ1dGVzKTsKIAogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGRlZmlu
ZU93blByb3BlcnR5KEpTT2JqZWN0KiwgSlNHbG9iYWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIGNv
bnN0IFByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wgc2hvdWxkVGhyb3cpOworICAgIEpTX0VYUE9S
VF9QUklWQVRFIGJvb2wgY3JlYXRlRGF0YVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiwgUHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBib29sIHNob3VsZFRocm93KTsKIAogICAgIGJvb2wgaXNFbnZpcm9u
bWVudCgpIGNvbnN0OwogICAgIGJvb2wgaXNHbG9iYWxPYmplY3QoKSBjb25zdDsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCShyZXZp
c2lvbiAyNzk1MDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElu
bGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjg4LDYgKzI4OCwxMyBAQCBBTFdBWVNfSU5MSU5F
IGJvb2wgSlNPYmplY3Q6OnB1dElubGluZUZhCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKy8vIGh0
dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtY3JlYXRlZGF0YXByb3BlcnR5CitBTFdBWVNfSU5M
SU5FIGJvb2wgSlNPYmplY3Q6OmNyZWF0ZURhdGFQcm9wZXJ0eShKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBib29s
IHNob3VsZFRocm93KQoreworICAgIFByb3BlcnR5RGVzY3JpcHRvciBkZXNjcmlwdG9yKHZhbHVl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKKyAgICBy
ZXR1cm4gbWV0aG9kVGFibGUoZ2V0Vk0oZ2xvYmFsT2JqZWN0KSktPmRlZmluZU93blByb3BlcnR5
KHRoaXMsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJv
dyk7Cit9CisKIC8vIEhhc093blByb3BlcnR5KE8sIFApIGZyb20gc2VjdGlvbiA3LjMuMTEgaW4g
dGhlIHNwZWMuCiAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIv
Ni4wL2luZGV4Lmh0bWwjc2VjLWhhc293bnByb3BlcnR5CiBBTFdBWVNfSU5MSU5FIGJvb2wgSlNP
YmplY3Q6Omhhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkgY29uc3QKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCShyZXZpc2lvbiAyNzk1MDMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAkod29ya2luZyBjb3B5KQpAQCAt
MjUxLDE3ICsyNTEsNiBAQCBpbmxpbmUgYm9vbCBnZXRTdGF0aWNQcm9wZXJ0eVNsb3RGcm9tVGFi
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWlubGluZSBib29sIHJlcGxhY2VTdGF0aWNQcm9wZXJ0
eVNsb3QoVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAoIXRoaXNPYmplY3QtPnB1dERpcmVjdCh2
bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlm
ICghdGhpc09iamVjdC0+c3RhdGljUHJvcGVydGllc1JlaWZpZWQodm0pKQotICAgICAgICB0aGlz
T2JqZWN0LT5KU09iamVjdDo6c2V0U3RydWN0dXJlKHZtLCBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNo
YW5nZVRyYW5zaXRpb24odm0sIHRoaXNPYmplY3QtPnN0cnVjdHVyZSh2bSksIHByb3BlcnR5TmFt
ZSwgMCkpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGlubGluZSB2b2lkIHJlaWZ5U3RhdGlj
UHJvcGVydHkoVk0mIHZtLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgY29uc3QgUHJvcGVy
dHlOYW1lJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IEhhc2hUYWJsZVZhbHVlJiB2YWx1ZSwgSlNPYmpl
Y3QmIHRoaXNPYmopCiB7CiAgICAgaWYgKHZhbHVlLmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0
cmlidXRlOjpCdWlsdGluKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzk1MDMpCisrKyBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MiBAQAor
MjAyMS0wNy0wMyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAg
ICAgICAgW1dlYklETF0gUHJvcGVybHkgdmFsaWRhdGUgYW5kIG1lcmdlIGRlc2NyaXB0b3JzIGlu
IFtSZXBsYWNlYWJsZV0gc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjc2NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gcmVsaWVkIG9uIGFuIGlu
dmFyaWFudCB0aGF0IHN0cnVjdHVyZSBwcm9wZXJ0eSBpcyBhYnNlbnQKKyAgICAgICAgd2hlbiBb
UmVwbGFjZWFibGVdIHNldHRlciBpcyBjYWxsZWQsIHdoaWNoIGlzIG5vIGxvbmdlciBndWFyYW50
ZWVkIGFmdGVyIHRoZSBpbnRyb2R1Y3Rpb24KKyAgICAgICAgb2YgT2JqZWN0LmRlZmluZVByb3Bl
cnR5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgcHV0RGlyZWN0KCkgd2l0aCBkZWZp
bmVPd25Qcm9wZXJ0eSgpLCBmaXhpbmcgdGhlIGNvbXBsaWFuY2Ugd2l0aAorICAgICAgICBpbnZh
cmlhbnRzIG9mIGludGVybmFsIG1ldGhvZHMgWzFdOiBhbiBhY2Nlc3NvciBwcm9wZXJ0eSBvbmNl
IG9ic2VydmVkIGFzIG5vbi1jb25maWd1cmFibGUKKyAgICAgICAgY2FuJ3QgYmUgcmVjb25maWd1
cmVkIHRvIGhhdmUgW1tWYWx1ZV1dLiBCb3RoIENocm9tZSBhbmQgRmlyZWZveCBwcm9wZXJseSB2
YWxpZGF0ZSBkZXNjcmlwdG9ycy4KKworICAgICAgICBBbHRob3VnaCBbW0RlZmluZU93blByb3Bl
cnR5XV0gZmFpbHVyZSBpcyBzaWxlbnRseSBpZ25vcmVkIGJ5IENocm9tZSBhbmQgdGhlIHNwZWMg
WzJdLCBXZWJLaXQgbm93CisgICAgICAgIHRocm93cyBhIFR5cGVFcnJvciwgd2hpY2ggaXMgYSBk
ZXNpcmVkIGJlaGF2aW9yIGZvciBidWlsdC1pbnMgYW5kIHdhcyBwcm92ZW4gdG8gYmUgd2ViLWNv
bXBhdGlibGUKKyAgICAgICAgYnkgRmlyZWZveC4gV2l0aCBXZWJLaXQgYmVpbmcgdGhlIHNlY29u
ZCBpbXBsZW1lbnRhdGlvbiB0aGF0IHRocm93cywgdGhlIHNwZWMgY2FuIGJlIHRpZ2h0ZW5lZC4K
KworICAgICAgICBBZnRlciByMjY0NTc0LCBhdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0aW9uKCkgaXMg
Y2FsbGVkIGR1cmluZyBkZWZpbmVPd25Qcm9wZXJ0eSgpLCBlbnN1cmluZyBpbmxpbmUKKyAgICAg
ICAgY2FjaGluZyBpcyBjb3JyZWN0LiBBbHNvLCB0aGlzIGNoYW5nZSBhZGp1c3RzIGB3aW5kb3cu
b3BlbmVyYCBzZXR0ZXIgWzNdLgorCisgICAgICAgIFsxXSBodHRwczovL3RjMzkuZXMvZWNtYTI2
Mi8jc2VjLWludmFyaWFudHMtb2YtdGhlLWVzc2VudGlhbC1pbnRlcm5hbC1tZXRob2RzCisgICAg
ICAgIFsyXSBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNkZm4tYXR0cmlidXRlLXNl
dHRlciAoc3RlcCA0LjUuNSkKKyAgICAgICAgWzNdIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL2Jyb3dzZXJzLmh0bWwjZG9tLW9wZW5lcgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2RvbS9yZXBsYWNlYWJsZS1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnByb3BlcnR5LWZh
aWxzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVyLXRo
cm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy0xLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1m
YWlscy0yLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpzZXRPcGVuZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SlNET01XaW5kb3c6OnNldE9wZW5EYXRhYmFzZSk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChBdHRyaWJ1dGVTZXR0ZXJO
ZWVkc1Byb3BlcnR5TmFtZSk6CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlE
ZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyVHJhbXBvbGluZURl
ZmluaXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwOgorCiAyMDIxLTA3LTAyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI3OTQ4Ny4KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHJldmlz
aW9uIDI3OTUwMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTU0LDggKzU1NCw5IEBAIHZvaWQgSlNET01XaW5k
b3c6OnNldE9wZW5lcihKU0M6OkpTR2xvYmEKICAgICAgICAgd3JhcHBlZCgpLmRpc293bk9wZW5l
cigpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxP
YmplY3Qudm0oKTsKLSAgICByZXBsYWNlU3RhdGljUHJvcGVydHlTbG90KHZtLCB0aGlzLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAib3BlbmVyIiksIHZhbHVlKTsKKworICAgIGJvb2wgc2hv
dWxkVGhyb3cgPSB0cnVlOworICAgIGNyZWF0ZURhdGFQcm9wZXJ0eSgmbGV4aWNhbEdsb2JhbE9i
amVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksICJv
cGVuZXIiKSwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogSlNWYWx1ZSBKU0RPTVdpbmRvdzo6
c2VsZihKU0M6OkpTR2xvYmFsT2JqZWN0JikgY29uc3QKQEAgLTYyNSw4ICs2MjYsOCBAQCB2b2lk
IEpTRE9NV2luZG93OjpzZXRPcGVuRGF0YWJhc2UoSlNDOjpKCiAgICAgaWYgKCFCaW5kaW5nU2Vj
dXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coJmxleGljYWxHbG9iYWxPYmplY3Qs
IHdyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVycm9yKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Vk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOwotICAgIHJlcGxhY2VTdGF0aWNQcm9w
ZXJ0eVNsb3Qodm0sIHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJvcGVuRGF0YWJh
c2UiKSwgdmFsdWUpOworICAgIGJvb2wgc2hvdWxkVGhyb3cgPSB0cnVlOworICAgIGNyZWF0ZURh
dGFQcm9wZXJ0eSgmbGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksICJvcGVuRGF0YWJhc2UiKSwgdmFsdWUsIHNob3VsZFRo
cm93KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDI3
OTUwMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCSh3b3JraW5nIGNvcHkpCkBAIC01MzQ4LDYgKzUzNDgsMTQgQEAgc3ViIEdlbmVyYXRlQXR0
cmlidXRlR2V0dGVyRGVmaW5pdGlvbgogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiNlbmRpZlxu
XG4iKSBpZiAkY29uZGl0aW9uYWw7CiB9CiAKK3N1YiBBdHRyaWJ1dGVTZXR0ZXJOZWVkc1Byb3Bl
cnR5TmFtZQoreworICAgIG15ICRhdHRyaWJ1dGUgPSBzaGlmdDsKKworICAgIHJldHVybiAkY29k
ZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkYXR0cmlidXRlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntDYWxsV2l0aH0sICJQcm9wZXJ0eU5hbWUiKQorICAgICAgICB8fCAkYXR0
cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntSZXBsYWNlYWJsZX07Cit9CisKIHN1YiBHZW5l
cmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW9uCiB7CiAgICAgbXkgKCRvdXRwdXRBcnJh
eSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSwgJGF0dHJpYnV0ZVNldHRlckJv
ZHlOYW1lLCAkY29uZGl0aW9uYWwpID0gQF87CkBAIC01MzU2LDcgKzUzNjQsNyBAQCBzdWIgR2Vu
ZXJhdGVBdHRyaWJ1dGVTZXR0ZXJCb2R5RGVmaW5pdGlvCiAgICAgcHVzaChAc2lnbmF0dXJlQXJn
dW1lbnRzLCAiSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QiKTsKICAgICBwdXNo
KEBzaWduYXR1cmVBcmd1bWVudHMsICIke2NsYXNzTmFtZX0mIHRoaXNPYmplY3QiKSBpZiAhJGF0
dHJpYnV0ZS0+aXNTdGF0aWM7CiAgICAgcHVzaChAc2lnbmF0dXJlQXJndW1lbnRzLCAiSlNWYWx1
ZSB2YWx1ZSIpOwotICAgIHB1c2goQHNpZ25hdHVyZUFyZ3VtZW50cywgIlByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUiKSBpZiAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlu
cygkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsV2l0aH0sICJQcm9wZXJ0eU5h
bWUiKTsKKyAgICBwdXNoKEBzaWduYXR1cmVBcmd1bWVudHMsICJQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lIikgaWYgQXR0cmlidXRlU2V0dGVyTmVlZHNQcm9wZXJ0eU5hbWUoJGF0dHJpYnV0ZSk7
CiAKICAgICBteSAkbmVlZFNlY3VyaXR5Q2hlY2sgPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntDaGVja1NlY3VyaXR5fSAmJiAhJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57RG9Ob3RDaGVja1NlY3VyaXR5fSAmJiAhJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57RG9Ob3RDaGVja1NlY3VyaXR5T25TZXR0ZXJ9OwogICAgIG15ICRoYXNDdXN0b21TZXR0ZXIg
PSBIYXNDdXN0b21TZXR0ZXIoJGF0dHJpYnV0ZSk7CkBAIC01NDA4LDEzICs1NDE2LDE0IEBAIHN1
YiBHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlEZWZpbml0aW8KICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIGVuc3VyZVN0aWxsQWxpdmVIZXJlKHZhbHVlKTtcblxuIik7CiAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgIH0gZWxz
aWYgKCRpc1JlcGxhY2VhYmxlKSB7Ci0gICAgICAgIG15ICRpZCA9ICRhdHRyaWJ1dGUtPm5hbWU7
Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1p
biBwcm9wZXJ0eS5cbiIpOwotICAgICAgICBpZiAoQXR0cmlidXRlU2hvdWxkQmVPbkluc3RhbmNl
KCRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpKSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgcmV0dXJuIHJlcGxhY2VTdGF0aWNQcm9wZXJ0eVNsb3Qodm0sICZ0aGlzT2JqZWN0
LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oXCIke2lkfVwiKSwgc3RybGVuKFwiJHtpZH1cIikpLCB2YWx1ZSk7XG4iKTsKKyAgICAgICAg
aWYgKCRuZWVkVGhyb3dTY29wZSkgeworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHRocm93U2NvcGUucmVsZWFzZSgpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIHRoaXNPYmplY3QucHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oXCIke2lkfVwiKSwgc3RybGVuKFwiJHtpZH1cIikpLCB2YWx1ZSk7XG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBVTlVTRURfUEFSQU0odm0pO1xuIik7CiAg
ICAgICAgIH0KKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGJvb2wgc2hvdWxkVGhy
b3cgPSB0cnVlO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB0aGlzT2Jq
ZWN0LmNyZWF0ZURhdGFQcm9wZXJ0eSgmbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgc2hvdWxkVGhyb3cpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e1B1dEZvcndhcmRzfSkgewogICAgICAgICBhc3NlcnQoIltQdXRGb3J3YXJk
c10gaXMgbm90IGNvbXBhdGlibGUgd2l0aCBzdGF0aWMgYXR0cmlidXRlcyIpIGlmICRhdHRyaWJ1
dGUtPmlzU3RhdGljOwogICAgICAgICAKQEAgLTU0OTQsNyArNTUwMyw3IEBAIHN1YiBHZW5lcmF0
ZUF0dHJpYnV0ZVNldHRlclRyYW1wb2xpbmVEZWYKICAgICAKICAgICBteSAkY2FsbEF0dHJpYnV0
ZVNldHRlck5hbWUgPSAic2V0IjsKICAgICAkY2FsbEF0dHJpYnV0ZVNldHRlck5hbWUgLj0gIlN0
YXRpYyIgaWYgJGF0dHJpYnV0ZS0+aXNTdGF0aWM7Ci0gICAgJGNhbGxBdHRyaWJ1dGVTZXR0ZXJO
YW1lIC49ICJQYXNzaW5nUHJvcGVydHlOYW1lIiBpZiAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRB
dHRyaWJ1dGVDb250YWlucygkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsV2l0
aH0sICJQcm9wZXJ0eU5hbWUiKTsKKyAgICAkY2FsbEF0dHJpYnV0ZVNldHRlck5hbWUgLj0gIlBh
c3NpbmdQcm9wZXJ0eU5hbWUiIGlmIEF0dHJpYnV0ZVNldHRlck5lZWRzUHJvcGVydHlOYW1lKCRh
dHRyaWJ1dGUpOwogCiAgICAgbXkgQHRlbXBsYXRlUGFyYW1ldGVycyA9ICgpOwogICAgIHB1c2go
QHRlbXBsYXRlUGFyYW1ldGVycywgJGF0dHJpYnV0ZVNldHRlckJvZHlOYW1lKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwCShyZXZpc2lvbiAyNzk1MDMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc5MCwxNiArNDc5
MCwxOCBAQCBKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNUZXN0T2JqX3JlcGxhCiAgICAgcmV0
dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqX3JlcGxhY2VhYmxlQXR0
cmlidXRlR2V0dGVyLCBDYXN0ZWRUaGlzRXJyb3JCZWhhdmlvcjo6QXNzZXJ0PigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhpc1ZhbHVlLCBhdHRyaWJ1dGVOYW1lKTsKIH0KIAotc3RhdGljIGlubGlu
ZSBib29sIHNldEpTVGVzdE9ial9yZXBsYWNlYWJsZUF0dHJpYnV0ZVNldHRlcihKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQorc3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9ial9yZXBsYWNlYWJsZUF0dHJp
YnV0ZVNldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0T2Jq
JiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQog
ewogICAgIGF1dG8mIHZtID0gSlNDOjpnZXRWTSgmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAg
Ly8gU2hhZG93aW5nIGEgYnVpbHQtaW4gcHJvcGVydHkuCi0gICAgcmV0dXJuIHRoaXNPYmplY3Qu
cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oInJlcGxhY2VhYmxlQXR0cmlidXRlIiksIHN0cmxlbigicmVwbGFjZWFi
bGVBdHRyaWJ1dGUiKSksIHZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0odm0pOworICAgIGJvb2wg
c2hvdWxkVGhyb3cgPSB0cnVlOworICAgIHRoaXNPYmplY3QuY3JlYXRlRGF0YVByb3BlcnR5KCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7Cisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIEpTQ19ERUZJTkVfQ1VTVE9NX1NFVFRFUihzZXRKU1Rlc3RP
YmpfcmVwbGFjZWFibGVBdHRyaWJ1dGUsIChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9i
amVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFs
dWUsIFByb3BlcnR5TmFtZSBhdHRyaWJ1dGVOYW1lKSkKIHsKLSAgICByZXR1cm4gSURMQXR0cmli
dXRlPEpTVGVzdE9iaj46OnNldDxzZXRKU1Rlc3RPYmpfcmVwbGFjZWFibGVBdHRyaWJ1dGVTZXR0
ZXI+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgYXR0cmli
dXRlTmFtZSk7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpzZXRQYXNzaW5n
UHJvcGVydHlOYW1lPHNldEpTVGVzdE9ial9yZXBsYWNlYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCBhdHRyaWJ1dGVOYW1l
KTsKIH0KIAogc3RhdGljIGlubGluZSBKU1ZhbHVlIGpzVGVzdE9ial9udWxsYWJsZURvdWJsZUF0
dHJpYnV0ZUdldHRlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNUZXN0
T2JqJiB0aGlzT2JqZWN0KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc5NTAzKQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDctMDMg
IEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFtXZWJJ
RExdIFByb3Blcmx5IHZhbGlkYXRlIGFuZCBtZXJnZSBkZXNjcmlwdG9ycyBpbiBbUmVwbGFjZWFi
bGVdIHNldHRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI3NjYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9yZXBsYWNlYWJsZS1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnByb3Bl
cnR5LWZhaWxzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcmVwbGFj
ZWFibGUtc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS93aW5kb3ctb3BlbmVyLXNldHRlci10aHJvd3MtaWYtZGVm
aW5lb3ducHJvcGVydHktZmFpbHMtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1m
YWlscy0xLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0
dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy0yLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vd2luZG93LW9wZW5lci1zZXR0ZXItdGhyb3dzLWlmLWRl
ZmluZW93bnByb3BlcnR5LWZhaWxzLTIuaHRtbDogQWRkZWQuCisKIDIwMjEtMDctMDIgIENvbW1p
dCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjc5NDg3LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwbGFjZWFi
bGUtc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwbGFjZWFibGUtc2V0dGVyLXRo
cm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwbGFjZWFibGUtc2V0dGVyLXRocm93cy1pZi1k
ZWZpbmVvd25wcm9wZXJ0eS1mYWlscy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAorCitQQVNTIHdpbmRvdy5zZWxmIHNldHRlciB0aHJvd3MgVHlwZUVycm9yIGlm
IGNhbGxlZCBvbiBub24tY29uZmlndXJhYmxlIGFjY2Vzc29yIHByb3BlcnR5CitQQVNTIHdpbmRv
dy5wYXJlbnQgc2V0dGVyIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGVkIG9uIG5vbi1jb25maWd1
cmFibGUgYWNjZXNzb3IgcHJvcGVydHkKK1BBU1Mgd2luZG93Lm9yaWdpbiBzZXR0ZXIgdGhyb3dz
IFR5cGVFcnJvciBpZiBjYWxsZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBwcm9wZXJ0
eQorUEFTUyB3aW5kb3cuaW5uZXJXaWR0aCBzZXR0ZXIgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxs
ZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBwcm9wZXJ0eQorUEFTUyB3aW5kb3cuc2Ny
ZWVuIHNldHRlciB0aHJvd3MgVHlwZUVycm9yIGlmIGNhbGxlZCBvbiBub24tY29uZmlndXJhYmxl
IG5vbi13cml0YWJsZSBkYXRhIHByb3BlcnR5CitQQVNTIHdpbmRvdy5sZW5ndGggc2V0dGVyIHRo
cm93cyBUeXBlRXJyb3IgaWYgY2FsbGVkIG9uIG5vbi1jb25maWd1cmFibGUgbm9uLXdyaXRhYmxl
IGRhdGEgcHJvcGVydHkKK1BBU1Mgd2luZG93LmV2ZW50IHNldHRlciB0aHJvd3MgVHlwZUVycm9y
IGlmIGNhbGxlZCBvbiBub24tY29uZmlndXJhYmxlIG5vbi13cml0YWJsZSBkYXRhIHByb3BlcnR5
CitQQVNTIHdpbmRvdy5vdXRlckhlaWdodCBzZXR0ZXIgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxs
ZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBub24td3JpdGFibGUgZGF0YSBwcm9wZXJ0eQorCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBsYWNlYWJsZS1zZXR0ZXItdGhyb3dzLWlmLWRlZmlu
ZW93bnByb3BlcnR5LWZhaWxzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vcmVwbGFjZWFibGUtc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy5o
dG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGxhY2VhYmxlLXNl
dHRlci10aHJvd3MtaWYtZGVmaW5lb3ducHJvcGVydHktZmFpbHMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5bUmVwbGFjZWFibGVdIHNldHRlciB0aHJvd3MgVHlwZUVycm9yIGlmIFtbRGVm
aW5lT3duUHJvcGVydHldXSBmYWlsczwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0
dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2Rmbi1hdHRyaWJ1dGUtc2V0dGVyIj4KKwor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKworPGJvZHk+Cis8c2NyaXB0PgorZm9yIChjb25zdCBrZXkgb2YgWyJzZWxmIiwgInBhcmVu
dCIsICJvcmlnaW4iLCAiaW5uZXJXaWR0aCJdKSB7CisgICAgdGVzdCgoKSA9PiB7CisgICAgICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIGtleSwgeyBjb25maWd1cmFibGU6IGZhbHNl
IH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IsICgpID0+IHsgd2luZG93
W2tleV0gPSAxOyB9KTsKKworICAgICAgICBjb25zdCBkZXNjID0gT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcih3aW5kb3csIGtleSk7CisgICAgICAgIGFzc2VydF9mYWxzZSgidmFsdWUi
IGluIGRlc2MpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBkZXNjLmdldCwgImZ1bmN0
aW9uIik7CisgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2Muc2V0LCAiZnVuY3Rpb24i
KTsKKyAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5lbnVtZXJhYmxlKTsKKyAgICAgICAgYXNzZXJ0
X2ZhbHNlKGRlc2MuY29uZmlndXJhYmxlKTsKKyAgICB9LCBgd2luZG93LiR7a2V5fSBzZXR0ZXIg
dGhyb3dzIFR5cGVFcnJvciBpZiBjYWxsZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBw
cm9wZXJ0eWApOworfQorCitmb3IgKGNvbnN0IGtleSBvZiBbInNjcmVlbiIsICJsZW5ndGgiLCAi
ZXZlbnQiLCAib3V0ZXJIZWlnaHQiXSkgeworICAgIHRlc3QoKCkgPT4geworICAgICAgICBjb25z
dCB7IHNldCB9ID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csIGtleSk7
CisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIGtleSwgeyB2YWx1ZTogMSwg
d3JpdGFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlIH0pOworICAgICAgICBhc3NlcnRf
dGhyb3dzKG5ldyBUeXBlRXJyb3IsICgpID0+IHsgc2V0LmNhbGwod2luZG93LCAyKTsgfSk7CisK
KyAgICAgICAgY29uc3QgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Iod2lu
ZG93LCBrZXkpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2MudmFsdWUsIDEpOworICAgICAg
ICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSk7CisgICAgICAgIGFzc2VydF90cnVlKGRlc2Mu
ZW51bWVyYWJsZSk7CisgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmNvbmZpZ3VyYWJsZSk7Cisg
ICAgfSwgYHdpbmRvdy4ke2tleX0gc2V0dGVyIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGVkIG9u
IG5vbi1jb25maWd1cmFibGUgbm9uLXdyaXRhYmxlIGRhdGEgcHJvcGVydHlgKTsKK30KKzwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LW9wZW5lci1zZXR0ZXItdGhy
b3dzLWlmLWRlZmluZW93bnByb3BlcnR5LWZhaWxzLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1k
ZWZpbmVvd25wcm9wZXJ0eS1mYWlscy0xLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctb3BlbmVyLXNldHRlci10aHJvd3MtaWYtZGVmaW5l
b3ducHJvcGVydHktZmFpbHMtMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1Mgd2luZG93Lm9wZW5lciBzZXR0ZXIgdGhyb3dzIFR5cGVFcnJvciBpZiBj
YWxsZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBwcm9wZXJ0eQorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctb3BlbmVyLXNldHRlci10aHJvd3MtaWYtZGVmaW5lb3du
cHJvcGVydHktZmFpbHMtMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L3dpbmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy0x
Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LW9wZW5l
ci1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnByb3BlcnR5LWZhaWxzLTEuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT53aW5kb3cub3BlbmVyIHNldHRlciB0aHJvd3MgVHlwZUVycm9yIGlm
IFtbRGVmaW5lT3duUHJvcGVydHldXSBmYWlsczwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzZXJzLmh0bWwj
ZG9tLW9wZW5lciI+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxib2R5PgorPHNjcmlwdD4KK3Rlc3QoKCkgPT4geworICAg
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICJvcGVuZXIiLCB7IGNvbmZpZ3VyYWJsZTog
ZmFsc2UgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yLCAoKSA9PiB7IHdpbmRv
dy5vcGVuZXIgPSAxOyB9KTsKKworICAgIGNvbnN0IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHdpbmRvdywgIm9wZW5lciIpOworICAgIGFzc2VydF9mYWxzZSgidmFsdWUi
IGluIGRlc2MpOworICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2MuZ2V0LCAiZnVuY3Rpb24i
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBkZXNjLnNldCwgImZ1bmN0aW9uIik7CisgICAg
YXNzZXJ0X3RydWUoZGVzYy5lbnVtZXJhYmxlKTsKKyAgICBhc3NlcnRfZmFsc2UoZGVzYy5jb25m
aWd1cmFibGUpOworfSwgIndpbmRvdy5vcGVuZXIgc2V0dGVyIHRocm93cyBUeXBlRXJyb3IgaWYg
Y2FsbGVkIG9uIG5vbi1jb25maWd1cmFibGUgYWNjZXNzb3IgcHJvcGVydHkiKTsKKzwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LW9wZW5lci1zZXR0ZXItdGhyb3dz
LWlmLWRlZmluZW93bnByb3BlcnR5LWZhaWxzLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1kZWZp
bmVvd25wcm9wZXJ0eS1mYWlscy0yLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctb3BlbmVyLXNldHRlci10aHJvd3MtaWYtZGVmaW5lb3du
cHJvcGVydHktZmFpbHMtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
IEBACisKK1BBU1Mgd2luZG93Lm9wZW5lciBzZXR0ZXIgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxs
ZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBub24td3JpdGFibGUgZGF0YSBwcm9wZXJ0eQorCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctb3BlbmVyLXNldHRlci10aHJvd3MtaWYtZGVm
aW5lb3ducHJvcGVydHktZmFpbHMtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1m
YWlscy0yLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93
LW9wZW5lci1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnByb3BlcnR5LWZhaWxzLTIuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT53aW5kb3cub3BlbmVyIHNldHRlciB0aHJvd3MgVHlwZUVy
cm9yIGlmIFtbRGVmaW5lT3duUHJvcGVydHldXSBmYWlsczwvdGl0bGU+Cis8bGluayByZWw9Imhl
bHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzZXJz
Lmh0bWwjZG9tLW9wZW5lciI+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxib2R5PgorPHNjcmlwdD4KK3Rlc3QoKCkgPT4g
eworICAgIGNvbnN0IHsgc2V0IH0gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdp
bmRvdywgIm9wZW5lciIpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICJvcGVu
ZXIiLCB7IHZhbHVlOiAxLCB3cml0YWJsZTogZmFsc2UsIGNvbmZpZ3VyYWJsZTogZmFsc2UgfSk7
CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yLCAoKSA9PiB7IHNldC5jYWxsKHdpbmRv
dywgMik7IH0pOworCisgICAgY29uc3QgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3Iod2luZG93LCAib3BlbmVyIik7CisgICAgYXNzZXJ0X2VxdWFscyhkZXNjLnZhbHVlLCAx
KTsKKyAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSk7CisgICAgYXNzZXJ0X3RydWUoZGVz
Yy5lbnVtZXJhYmxlKTsKKyAgICBhc3NlcnRfZmFsc2UoZGVzYy5jb25maWd1cmFibGUpOworfSwg
IndpbmRvdy5vcGVuZXIgc2V0dGVyIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGVkIG9uIG5vbi1j
b25maWd1cmFibGUgbm9uLXdyaXRhYmxlIGRhdGEgcHJvcGVydHkiKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432881</attachid>
            <date>2021-07-05 06:48:29 -0700</date>
            <delta_ts>2021-07-23 18:56:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227662-20210705164828.patch</filename>
            <type>text/plain</type>
            <size>23324</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc5NTQ4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDIxLTA3LTA1ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbV2ViSURMXSBQcm9wZXJseSB2YWxpZGF0ZSBhbmQgbWVyZ2UgZGVzY3JpcHRvcnMg
aW4gW1JlcGxhY2VhYmxlXSBzZXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNzY2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEV4dHJhY3RzIGNyZWF0ZURhdGFQcm9wZXJ0eSgpIG1ldGhvZCB0byBr
ZWVwIFdlYklETCBjb2RlIGdlbmVyYXRvciBhcyBzaW1wbGUgYXMgcG9zc2libGUsCisgICAgICAg
IGFuZCBhbHNvIHRvIGVtcGhhc2l6ZSBhIHN1YnRsZSBkaWZmZXJlbmNlIGJldHdlZW4KKyAgICAg
ICAgeyBbW1ZhbHVlXV06IFggfSBhbmQKKyAgICAgICAgeyBbW1ZhbHVlXV06IFgsIFtbV3JpdGFi
bGVdXTogdHJ1ZSwgW1tFbnVtZXJhYmxlXV06IHRydWUsIFtbQ29uZmlndXJhYmxlXV06IHRydWUg
fS4KKworICAgICAgICAqIHJ1bnRpbWUvSlNPTk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6Oldh
bGtlcjo6d2Fsayk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5jcHA6CisgICAgICAgIChK
U0M6OmRlZmluZVByb3BlcnR5T25SZWNlaXZlclNsb3cpOgorICAgICAgICAqIHJ1bnRpbWUvSlNP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpKU09iamVjdDo6Y3JlYXRlRGF0YVByb3BlcnR5KToKKyAgICAgICAgKiBydW50aW1lL0xv
b2t1cC5oOgorICAgICAgICAoSlNDOjpyZXBsYWNlU3RhdGljUHJvcGVydHlTbG90KTogRGVsZXRl
ZC4KKwogMjAyMS0wNy0wMyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+
CiAKICAgICAgICAgW1dlYklETF0gUmV3b3JrIHJ1bnRpbWUgZW5hYmxlZCBwcm9wZXJ0aWVzIGxl
dmVyYWdpbmcgUHJvcGVydHlDYWxsYmFjawpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNPTk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPTk9iamVjdC5jcHAJKHJldmlzaW9uIDI3OTU0NikKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT05PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NTMs
OSArNzUzLDggQEAgTkVWRVJfSU5MSU5FIEpTVmFsdWUgV2Fsa2VyOjp3YWxrKEpTVmFsdQogICAg
ICAgICAgICAgICAgICAgICBpZiAoTElLRUxZKG9mZnNldCAhPSBpbnZhbGlkT2Zmc2V0ICYmIGF0
dHJpYnV0ZXMgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25l
KSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgb2Zmc2V0
LCBmaWx0ZXJlZFZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgZGVzY3JpcHRvcihmaWx0ZXJlZFZhbHVl
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkVGhyb3cgPSBmYWxzZTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUodm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShv
YmplY3QsIG1fZ2xvYmFsT2JqZWN0LCBwcm9wLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QtPmNyZWF0ZURhdGFQcm9wZXJ0eShtX2dsb2Jh
bE9iamVjdCwgcHJvcCwgZmlsdGVyZWRWYWx1ZSwgc2hvdWxkVGhyb3cpOwogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCShyZXZpc2lvbiAyNzk1NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5OSwxNiArODk5LDE3
IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUgYm9vbCBkZWZpbmVQcm9wZXJ0eU8KICAgICBib29sIGhh
c1Byb3BlcnR5ID0gcmVjZWl2ZXItPm1ldGhvZFRhYmxlKHZtKS0+Z2V0T3duUHJvcGVydHlTbG90
KHJlY2VpdmVyLCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogCi0gICAgUHJvcGVydHlEZXNjcmlwdG9yIGRl
c2NyaXB0b3I7CiAgICAgaWYgKGhhc1Byb3BlcnR5KSB7CiAgICAgICAgIC8vIEZJWE1FOiBGb3Ig
YW4gYWNjZXNzb3Igd2l0aCBzZXR0ZXIsIHRoZSBlcnJvciBtZXNzYWdlIGlzIG1pc2xlYWRpbmcu
CiAgICAgICAgIGlmIChzbG90LmF0dHJpYnV0ZXMoKSAmIFByb3BlcnR5QXR0cmlidXRlOjpSZWFk
T25seU9yQWNjZXNzb3JPckN1c3RvbUFjY2Vzc29yKQogICAgICAgICAgICAgcmV0dXJuIHR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBzaG91bGRUaHJvdywgUmVhZG9ubHlQcm9wZXJ0eVdy
aXRlRXJyb3IpOworCisgICAgICAgIFByb3BlcnR5RGVzY3JpcHRvciBkZXNjcmlwdG9yOwogICAg
ICAgICBkZXNjcmlwdG9yLnNldFZhbHVlKHZhbHVlKTsKLSAgICB9IGVsc2UKLSAgICAgICAgZGVz
Y3JpcHRvci5zZXREZXNjcmlwdG9yKHZhbHVlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVy
dHlBdHRyaWJ1dGU6Ok5vbmUpKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBy
ZWNlaXZlci0+bWV0aG9kVGFibGUodm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShyZWNlaXZlciwgZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KSk7CisgICAg
fQogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCByZWNlaXZlci0+bWV0aG9kVGFibGUo
dm0pLT5kZWZpbmVPd25Qcm9wZXJ0eShyZWNlaXZlciwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KSk7CisgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNj
b3BlLCByZWNlaXZlci0+Y3JlYXRlRGF0YVByb3BlcnR5KGdsb2JhbE9iamVjdCwgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgc2hvdWxkVGhyb3cpKTsKIH0KIAogLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEy
NjIvI3NlYy1vcmRpbmFyeXNldCAoc3RlcCAzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdC5oCShyZXZpc2lvbiAyNzk1NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MDYsNiArODA2LDcg
QEAgcHVibGljOgogICAgIEpTRnVuY3Rpb24qIHB1dERpcmVjdEJ1aWx0aW5GdW5jdGlvbldpdGhv
dXRUcmFuc2l0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqLCBjb25zdCBQcm9wZXJ0eU5hbWUmLCBG
dW5jdGlvbkV4ZWN1dGFibGUqLCB1bnNpZ25lZCBhdHRyaWJ1dGVzKTsKIAogICAgIEpTX0VYUE9S
VF9QUklWQVRFIHN0YXRpYyBib29sIGRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiwgSlNHbG9i
YWxPYmplY3QqLCBQcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYsIGJvb2wg
c2hvdWxkVGhyb3cpOworICAgIGJvb2wgY3JlYXRlRGF0YVByb3BlcnR5KEpTR2xvYmFsT2JqZWN0
KiwgUHJvcGVydHlOYW1lLCBKU1ZhbHVlLCBib29sIHNob3VsZFRocm93KTsKIAogICAgIGJvb2wg
aXNFbnZpcm9ubWVudCgpIGNvbnN0OwogICAgIGJvb2wgaXNHbG9iYWxPYmplY3QoKSBjb25zdDsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5l
cy5oCShyZXZpc2lvbiAyNzk1NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjg4LDYgKzI4OCwxMyBAQCBBTFdB
WVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OnB1dElubGluZUZhCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKKy8vIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNzZWMtY3JlYXRlZGF0YXByb3BlcnR5CitB
TFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmNyZWF0ZURhdGFQcm9wZXJ0eShKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZh
bHVlLCBib29sIHNob3VsZFRocm93KQoreworICAgIFByb3BlcnR5RGVzY3JpcHRvciBkZXNjcmlw
dG9yKHZhbHVlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUp
KTsKKyAgICByZXR1cm4gbWV0aG9kVGFibGUoZ2V0Vk0oZ2xvYmFsT2JqZWN0KSktPmRlZmluZU93
blByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBz
aG91bGRUaHJvdyk7Cit9CisKIC8vIEhhc093blByb3BlcnR5KE8sIFApIGZyb20gc2VjdGlvbiA3
LjMuMTEgaW4gdGhlIHNwZWMuCiAvLyBodHRwOi8vd3d3LmVjbWEtaW50ZXJuYXRpb25hbC5vcmcv
ZWNtYS0yNjIvNi4wL2luZGV4Lmh0bWwjc2VjLWhhc293bnByb3BlcnR5CiBBTFdBWVNfSU5MSU5F
IGJvb2wgSlNPYmplY3Q6Omhhc093blByb3BlcnR5KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0xvb2t1cC5oCShyZXZpc2lvbiAyNzk1
NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Mb29rdXAuaAkod29ya2luZyBj
b3B5KQpAQCAtMjY1LDE3ICsyNjUsNiBAQCBpbmxpbmUgYm9vbCBnZXRTdGF0aWNQcm9wZXJ0eVNs
b3RGcm9tVGFiCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWlubGluZSBib29sIHJlcGxhY2VTdGF0
aWNQcm9wZXJ0eVNsb3QoVk0mIHZtLCBKU09iamVjdCogdGhpc09iamVjdCwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAoIXRoaXNPYmplY3QtPnB1
dERpcmVjdCh2bSwgcHJvcGVydHlOYW1lLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIGlmICghdGhpc09iamVjdC0+c3RhdGljUHJvcGVydGllc1JlaWZpZWQodm0pKQotICAg
ICAgICB0aGlzT2JqZWN0LT5KU09iamVjdDo6c2V0U3RydWN0dXJlKHZtLCBTdHJ1Y3R1cmU6OmF0
dHJpYnV0ZUNoYW5nZVRyYW5zaXRpb24odm0sIHRoaXNPYmplY3QtPnN0cnVjdHVyZSh2bSksIHBy
b3BlcnR5TmFtZSwgMCkpOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIGlubGluZSB2b2lkIHJl
aWZ5U3RhdGljUHJvcGVydHkoVk0mIHZtLCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbywgY29u
c3QgUHJvcGVydHlOYW1lJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IEhhc2hUYWJsZVZhbHVlJiB2YWx1
ZSwgSlNPYmplY3QmIHRoaXNPYmopCiB7CiAgICAgaWYgKHZhbHVlLmF0dHJpYnV0ZXMoKSAmIFBy
b3BlcnR5QXR0cmlidXRlOjpCdWlsdGluKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzk1
NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSw0MiBAQAorMjAyMS0wNy0wNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5j
b20+CisKKyAgICAgICAgW1dlYklETF0gUHJvcGVybHkgdmFsaWRhdGUgYW5kIG1lcmdlIGRlc2Ny
aXB0b3JzIGluIFtSZXBsYWNlYWJsZV0gc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gcmVsaWVk
IG9uIGFuIGludmFyaWFudCB0aGF0IHN0cnVjdHVyZSBwcm9wZXJ0eSBpcyBhYnNlbnQKKyAgICAg
ICAgd2hlbiBbUmVwbGFjZWFibGVdIHNldHRlciBpcyBjYWxsZWQsIHdoaWNoIGlzIG5vIGxvbmdl
ciBndWFyYW50ZWVkIGFmdGVyIHRoZSBpbnRyb2R1Y3Rpb24KKyAgICAgICAgb2YgT2JqZWN0LmRl
ZmluZVByb3BlcnR5LgorCisgICAgICAgIFRoaXMgcGF0Y2ggcmVwbGFjZXMgcHV0RGlyZWN0KCkg
d2l0aCBkZWZpbmVPd25Qcm9wZXJ0eSgpLCBmaXhpbmcgdGhlIGNvbXBsaWFuY2Ugd2l0aAorICAg
ICAgICBpbnZhcmlhbnRzIG9mIGludGVybmFsIG1ldGhvZHMgWzFdOiBhbiBhY2Nlc3NvciBwcm9w
ZXJ0eSBvbmNlIG9ic2VydmVkIGFzIG5vbi1jb25maWd1cmFibGUKKyAgICAgICAgY2FuJ3QgYmUg
cmVjb25maWd1cmVkIHRvIGhhdmUgW1tWYWx1ZV1dLiBCb3RoIENocm9tZSBhbmQgRmlyZWZveCBw
cm9wZXJseSB2YWxpZGF0ZSBkZXNjcmlwdG9ycy4KKworICAgICAgICBBbHRob3VnaCBbW0RlZmlu
ZU93blByb3BlcnR5XV0gZmFpbHVyZSBpcyBzaWxlbnRseSBpZ25vcmVkIGJ5IENocm9tZSBhbmQg
dGhlIHNwZWMgWzJdLCBXZWJLaXQgbm93CisgICAgICAgIHRocm93cyBhIFR5cGVFcnJvciwgd2hp
Y2ggaXMgYSBkZXNpcmVkIGJlaGF2aW9yIGZvciBidWlsdC1pbnMgYW5kIHdhcyBwcm92ZW4gdG8g
YmUgd2ViLWNvbXBhdGlibGUKKyAgICAgICAgYnkgRmlyZWZveC4gV2l0aCBXZWJLaXQgYmVpbmcg
dGhlIHNlY29uZCBpbXBsZW1lbnRhdGlvbiB0aGF0IHRocm93cywgdGhlIHNwZWMgY2FuIGJlIHRp
Z2h0ZW5lZC4KKworICAgICAgICBBZnRlciByMjY0NTc0LCBhdHRyaWJ1dGVDaGFuZ2VUcmFuc2l0
aW9uKCkgaXMgY2FsbGVkIGR1cmluZyBkZWZpbmVPd25Qcm9wZXJ0eSgpLCBlbnN1cmluZyBpbmxp
bmUKKyAgICAgICAgY2FjaGluZyBpcyBjb3JyZWN0LiBBbHNvLCB0aGlzIGNoYW5nZSBhZGp1c3Rz
IGB3aW5kb3cub3BlbmVyYCBzZXR0ZXIgWzNdLgorCisgICAgICAgIFsxXSBodHRwczovL3RjMzku
ZXMvZWNtYTI2Mi8jc2VjLWludmFyaWFudHMtb2YtdGhlLWVzc2VudGlhbC1pbnRlcm5hbC1tZXRo
b2RzCisgICAgICAgIFsyXSBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNkZm4tYXR0
cmlidXRlLXNldHRlciAoc3RlcCA0LjUuNSkKKyAgICAgICAgWzNdIGh0dHBzOi8vaHRtbC5zcGVj
LndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Jyb3dzZXJzLmh0bWwjZG9tLW9wZW5lcgorCisgICAgICAg
IFRlc3RzOiBmYXN0L2RvbS9yZXBsYWNlYWJsZS1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnBy
b3BlcnR5LWZhaWxzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3dpbmRvdy1vcGVuZXIt
c2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy0xLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25w
cm9wZXJ0eS1mYWlscy0yLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpzZXRPcGVuZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OnNldE9wZW5EYXRhYmFzZSk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChBdHRyaWJ1
dGVTZXR0ZXJOZWVkc1Byb3BlcnR5TmFtZSk6CisgICAgICAgIChHZW5lcmF0ZUF0dHJpYnV0ZVNl
dHRlckJvZHlEZWZpbml0aW9uKToKKyAgICAgICAgKEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyVHJh
bXBvbGluZURlZmluaXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwOgorCiAyMDIxLTA3LTA0ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTEZDXVtURkNdIDEwMCUgcGVyY2VudCB3aWR0aCBjb2x1bW4ocykgbWFr
ZSB0aGUgdGFibGUgc3RyZXRjaApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAkocmV2aXNpb24gMjc5NTQ2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01NTQsOCArNTU0LDkgQEAgdm9pZCBKU0RPTVdpbmRvdzo6c2V0T3BlbmVyKEpTQzo6SlNHbG9i
YQogICAgICAgICB3cmFwcGVkKCkuZGlzb3duT3BlbmVyKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOwotICAgIHJlcGxhY2VT
dGF0aWNQcm9wZXJ0eVNsb3Qodm0sIHRoaXMsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJv
cGVuZXIiKSwgdmFsdWUpOworCisgICAgYm9vbCBzaG91bGRUaHJvdyA9IHRydWU7CisgICAgY3Jl
YXRlRGF0YVByb3BlcnR5KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSwgIm9wZW5lciIpLCB2YWx1ZSwgc2hvdWxkVGhy
b3cpOwogfQogCiBKU1ZhbHVlIEpTRE9NV2luZG93OjpzZWxmKEpTQzo6SlNHbG9iYWxPYmplY3Qm
KSBjb25zdApAQCAtNjI1LDggKzYyNiw4IEBAIHZvaWQgSlNET01XaW5kb3c6OnNldE9wZW5EYXRh
YmFzZShKU0M6OkoKICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NU
b0RPTVdpbmRvdygmbGV4aWNhbEdsb2JhbE9iamVjdCwgd3JhcHBlZCgpLCBUaHJvd1NlY3VyaXR5
RXJyb3IpKQogICAgICAgICByZXR1cm47CiAKLSAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LnZtKCk7Ci0gICAgcmVwbGFjZVN0YXRpY1Byb3BlcnR5U2xvdCh2bSwgdGhpcywgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyh2bSwgIm9wZW5EYXRhYmFzZSIpLCB2YWx1ZSk7CisgICAgYm9vbCBz
aG91bGRUaHJvdyA9IHRydWU7CisgICAgY3JlYXRlRGF0YVByb3BlcnR5KCZsZXhpY2FsR2xvYmFs
T2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSwg
Im9wZW5EYXRhYmFzZSIpLCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjc5NTQ2KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTUx
ODQsNiArNTE4NCwxNCBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVHZXR0ZXJEZWZpbml0aW9uCiAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiI2VuZGlmXG5cbiIpIGlmICRjb25kaXRpb25hbDsKIH0K
IAorc3ViIEF0dHJpYnV0ZVNldHRlck5lZWRzUHJvcGVydHlOYW1lCit7CisgICAgbXkgJGF0dHJp
YnV0ZSA9IHNoaWZ0OworCisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJp
YnV0ZUNvbnRhaW5zKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxXaXRofSwg
IlByb3BlcnR5TmFtZSIpCisgICAgICAgIHx8ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+e1JlcGxhY2VhYmxlfTsKK30KKwogc3ViIEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyQm9keURl
ZmluaXRpb24KIHsKICAgICBteSAoJG91dHB1dEFycmF5LCAkaW50ZXJmYWNlLCAkY2xhc3NOYW1l
LCAkYXR0cmlidXRlLCAkYXR0cmlidXRlU2V0dGVyQm9keU5hbWUsICRjb25kaXRpb25hbCkgPSBA
XzsKQEAgLTUxOTIsNyArNTIwMCw3IEBAIHN1YiBHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckJvZHlE
ZWZpbml0aW8KICAgICBwdXNoKEBzaWduYXR1cmVBcmd1bWVudHMsICJKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCIpOwogICAgIHB1c2goQHNpZ25hdHVyZUFyZ3VtZW50cywgIiR7
Y2xhc3NOYW1lfSYgdGhpc09iamVjdCIpIGlmICEkYXR0cmlidXRlLT5pc1N0YXRpYzsKICAgICBw
dXNoKEBzaWduYXR1cmVBcmd1bWVudHMsICJKU1ZhbHVlIHZhbHVlIik7Ci0gICAgcHVzaChAc2ln
bmF0dXJlQXJndW1lbnRzLCAiUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSIpIGlmICRjb2RlR2Vu
ZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0NhbGxXaXRofSwgIlByb3BlcnR5TmFtZSIpOworICAgIHB1c2goQHNpZ25hdHVy
ZUFyZ3VtZW50cywgIlByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUiKSBpZiBBdHRyaWJ1dGVTZXR0
ZXJOZWVkc1Byb3BlcnR5TmFtZSgkYXR0cmlidXRlKTsKIAogICAgIG15ICRuZWVkU2VjdXJpdHlD
aGVjayA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NoZWNrU2VjdXJpdHl9ICYm
ICEkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntEb05vdENoZWNrU2VjdXJpdHl9ICYm
ICEkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntEb05vdENoZWNrU2VjdXJpdHlPblNl
dHRlcn07CiAgICAgbXkgJGhhc0N1c3RvbVNldHRlciA9IEhhc0N1c3RvbVNldHRlcigkYXR0cmli
dXRlKTsKQEAgLTUyNDQsMTMgKzUyNTIsMTQgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlU2V0dGVy
Qm9keURlZmluaXRpbwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZW5zdXJlU3Rp
bGxBbGl2ZUhlcmUodmFsdWUpO1xuXG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgfSBlbHNpZiAoJGlzUmVwbGFjZWFibGUpIHsKLSAg
ICAgICAgbXkgJGlkID0gJGF0dHJpYnV0ZS0+bmFtZTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0LWluIHByb3BlcnR5LlxuIik7Ci0gICAgICAg
IGlmIChBdHRyaWJ1dGVTaG91bGRCZU9uSW5zdGFuY2UoJGludGVyZmFjZSwgJGF0dHJpYnV0ZSkp
IHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gcmVwbGFjZVN0
YXRpY1Byb3BlcnR5U2xvdCh2bSwgJnRoaXNPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmco
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihcIiR7aWR9XCIpLCBzdHJsZW4oXCIk
e2lkfVwiKSksIHZhbHVlKTtcbiIpOworICAgICAgICBpZiAoJG5lZWRUaHJvd1Njb3BlKSB7Cisg
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdGhyb3dTY29wZS5yZWxlYXNlKCk7
XG4iKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJp
bmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihcIiR7aWR9XCIpLCBzdHJsZW4o
XCIke2lkfVwiKSksIHZhbHVlKTtcbiIpOworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIFVOVVNFRF9QQVJBTSh2bSk7XG4iKTsKICAgICAgICAgfQorICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgYm9vbCBzaG91bGRUaHJvdyA9IHRydWU7XG4iKTsKKyAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHRoaXNPYmplY3QuY3JlYXRlRGF0YVByb3BlcnR5KCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzaG91bGRUaHJvdyk7XG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiB0cnVlO1xuIik7CiAg
ICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57UHV0Rm9yd2FyZHN9
KSB7CiAgICAgICAgIGFzc2VydCgiW1B1dEZvcndhcmRzXSBpcyBub3QgY29tcGF0aWJsZSB3aXRo
IHN0YXRpYyBhdHRyaWJ1dGVzIikgaWYgJGF0dHJpYnV0ZS0+aXNTdGF0aWM7CiAgICAgICAgIApA
QCAtNTMzMCw3ICs1MzM5LDcgQEAgc3ViIEdlbmVyYXRlQXR0cmlidXRlU2V0dGVyVHJhbXBvbGlu
ZURlZgogICAgIAogICAgIG15ICRjYWxsQXR0cmlidXRlU2V0dGVyTmFtZSA9ICJzZXQiOwogICAg
ICRjYWxsQXR0cmlidXRlU2V0dGVyTmFtZSAuPSAiU3RhdGljIiBpZiAkYXR0cmlidXRlLT5pc1N0
YXRpYzsKLSAgICAkY2FsbEF0dHJpYnV0ZVNldHRlck5hbWUgLj0gIlBhc3NpbmdQcm9wZXJ0eU5h
bWUiIGlmICRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRhdHRyaWJ1
dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxXaXRofSwgIlByb3BlcnR5TmFtZSIpOworICAg
ICRjYWxsQXR0cmlidXRlU2V0dGVyTmFtZSAuPSAiUGFzc2luZ1Byb3BlcnR5TmFtZSIgaWYgQXR0
cmlidXRlU2V0dGVyTmVlZHNQcm9wZXJ0eU5hbWUoJGF0dHJpYnV0ZSk7CiAKICAgICBteSBAdGVt
cGxhdGVQYXJhbWV0ZXJzID0gKCk7CiAgICAgcHVzaChAdGVtcGxhdGVQYXJhbWV0ZXJzLCAkYXR0
cmlidXRlU2V0dGVyQm9keU5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDI3OTU0NikK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01NTkzLDE2ICs1NTkzLDE4IEBAIEpTQ19ERUZJTkVfQ1VTVE9N
X0dFVFRFUihqc1Rlc3RPYmpfcmVwbGEKICAgICByZXR1cm4gSURMQXR0cmlidXRlPEpTVGVzdE9i
aj46OmdldDxqc1Rlc3RPYmpfcmVwbGFjZWFibGVBdHRyaWJ1dGVHZXR0ZXIsIENhc3RlZFRoaXNF
cnJvckJlaGF2aW9yOjpBc3NlcnQ+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzVmFsdWUsIGF0
dHJpYnV0ZU5hbWUpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgc2V0SlNUZXN0T2JqX3JlcGxh
Y2VhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitzdGF0aWMgaW5saW5lIGJv
b2wgc2V0SlNUZXN0T2JqX3JlcGxhY2VhYmxlQXR0cmlidXRlU2V0dGVyKEpTR2xvYmFsT2JqZWN0
JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFs
dWUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgYXV0byYgdm0gPSBKU0M6Omdl
dFZNKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICAvLyBTaGFkb3dpbmcgYSBidWlsdC1pbiBw
cm9wZXJ0eS4KLSAgICByZXR1cm4gdGhpc09iamVjdC5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6
OmZyb21TdHJpbmcodm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigicmVwbGFjZWFi
bGVBdHRyaWJ1dGUiKSwgc3RybGVuKCJyZXBsYWNlYWJsZUF0dHJpYnV0ZSIpKSwgdmFsdWUpOwor
ICAgIFVOVVNFRF9QQVJBTSh2bSk7CisgICAgYm9vbCBzaG91bGRUaHJvdyA9IHRydWU7CisgICAg
dGhpc09iamVjdC5jcmVhdGVEYXRhUHJvcGVydHkoJmxleGljYWxHbG9iYWxPYmplY3QsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogSlND
X0RFRklORV9DVVNUT01fU0VUVEVSKHNldEpTVGVzdE9ial9yZXBsYWNlYWJsZUF0dHJpYnV0ZSwg
KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgUHJvcGVydHlOYW1lIGF0dHJpYnV0
ZU5hbWUpKQogewotICAgIHJldHVybiBJRExBdHRyaWJ1dGU8SlNUZXN0T2JqPjo6c2V0PHNldEpT
VGVzdE9ial9yZXBsYWNlYWJsZUF0dHJpYnV0ZVNldHRlcj4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCBhdHRyaWJ1dGVOYW1lKTsKKyAgICByZXR1cm4gSURM
QXR0cmlidXRlPEpTVGVzdE9iaj46OnNldFBhc3NpbmdQcm9wZXJ0eU5hbWU8c2V0SlNUZXN0T2Jq
X3JlcGxhY2VhYmxlQXR0cmlidXRlU2V0dGVyPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc1Zh
bHVlLCBlbmNvZGVkVmFsdWUsIGF0dHJpYnV0ZU5hbWUpOwogfQogCiBzdGF0aWMgaW5saW5lIEpT
VmFsdWUganNUZXN0T2JqX251bGxhYmxlRG91YmxlQXR0cmlidXRlR2V0dGVyKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1Rlc3RPYmomIHRoaXNPYmplY3QpCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNzk1NDYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNy0wNSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWth
bGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgW1dlYklETF0gUHJvcGVybHkgdmFsaWRhdGUgYW5k
IG1lcmdlIGRlc2NyaXB0b3JzIGluIFtSZXBsYWNlYWJsZV0gc2V0dGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2NjIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3JlcGxhY2VhYmxl
LXNldHRlci10aHJvd3MtaWYtZGVmaW5lb3ducHJvcGVydHktZmFpbHMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9yZXBsYWNlYWJsZS1zZXR0ZXItdGhyb3dzLWlmLWRl
ZmluZW93bnByb3BlcnR5LWZhaWxzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3dp
bmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy0xLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vd2luZG93LW9wZW5lci1zZXR0
ZXItdGhyb3dzLWlmLWRlZmluZW93bnByb3BlcnR5LWZhaWxzLTEuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vd2luZG93LW9wZW5lci1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnBy
b3BlcnR5LWZhaWxzLTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS93
aW5kb3ctb3BlbmVyLXNldHRlci10aHJvd3MtaWYtZGVmaW5lb3ducHJvcGVydHktZmFpbHMtMi5o
dG1sOiBBZGRlZC4KKwogMjAyMS0wNy0wMyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBn
bWFpbC5jb20+CiAKICAgICAgICAgW1dlYklETF0gUmV3b3JrIHJ1bnRpbWUgZW5hYmxlZCBwcm9w
ZXJ0aWVzIGxldmVyYWdpbmcgUHJvcGVydHlDYWxsYmFjawpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vcmVwbGFjZWFibGUtc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWls
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwbGFj
ZWFibGUtc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy1leHBlY3RlZC50
eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwbGFjZWFibGUtc2V0
dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMCBAQAorCitQQVNTIHdpbmRvdy5zZWxmIHNldHRlciB0aHJv
d3MgVHlwZUVycm9yIGlmIGNhbGxlZCBvbiBub24tY29uZmlndXJhYmxlIGFjY2Vzc29yIHByb3Bl
cnR5CitQQVNTIHdpbmRvdy5wYXJlbnQgc2V0dGVyIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGVk
IG9uIG5vbi1jb25maWd1cmFibGUgYWNjZXNzb3IgcHJvcGVydHkKK1BBU1Mgd2luZG93Lm9yaWdp
biBzZXR0ZXIgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxsZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBh
Y2Nlc3NvciBwcm9wZXJ0eQorUEFTUyB3aW5kb3cuaW5uZXJXaWR0aCBzZXR0ZXIgdGhyb3dzIFR5
cGVFcnJvciBpZiBjYWxsZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBwcm9wZXJ0eQor
UEFTUyB3aW5kb3cuc2NyZWVuIHNldHRlciB0aHJvd3MgVHlwZUVycm9yIGlmIGNhbGxlZCBvbiBu
b24tY29uZmlndXJhYmxlIG5vbi13cml0YWJsZSBkYXRhIHByb3BlcnR5CitQQVNTIHdpbmRvdy5s
ZW5ndGggc2V0dGVyIHRocm93cyBUeXBlRXJyb3IgaWYgY2FsbGVkIG9uIG5vbi1jb25maWd1cmFi
bGUgbm9uLXdyaXRhYmxlIGRhdGEgcHJvcGVydHkKK1BBU1Mgd2luZG93LmV2ZW50IHNldHRlciB0
aHJvd3MgVHlwZUVycm9yIGlmIGNhbGxlZCBvbiBub24tY29uZmlndXJhYmxlIG5vbi13cml0YWJs
ZSBkYXRhIHByb3BlcnR5CitQQVNTIHdpbmRvdy5vdXRlckhlaWdodCBzZXR0ZXIgdGhyb3dzIFR5
cGVFcnJvciBpZiBjYWxsZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBub24td3JpdGFibGUgZGF0YSBw
cm9wZXJ0eQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBsYWNlYWJsZS1zZXR0ZXIt
dGhyb3dzLWlmLWRlZmluZW93bnByb3BlcnR5LWZhaWxzLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vcmVwbGFjZWFibGUtc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25w
cm9wZXJ0eS1mYWlscy5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L3JlcGxhY2VhYmxlLXNldHRlci10aHJvd3MtaWYtZGVmaW5lb3ducHJvcGVydHktZmFpbHMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5bUmVwbGFjZWFibGVdIHNldHRlciB0aHJvd3MgVHlw
ZUVycm9yIGlmIFtbRGVmaW5lT3duUHJvcGVydHldXSBmYWlsczwvdGl0bGU+Cis8bGluayByZWw9
ImhlbHAiIGhyZWY9Imh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2Rmbi1hdHRyaWJ1
dGUtc2V0dGVyIj4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKworPGJvZHk+Cis8c2NyaXB0PgorZm9yIChjb25zdCBrZXkgb2Yg
WyJzZWxmIiwgInBhcmVudCIsICJvcmlnaW4iLCAiaW5uZXJXaWR0aCJdKSB7CisgICAgdGVzdCgo
KSA9PiB7CisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIGtleSwgeyBjb25m
aWd1cmFibGU6IGZhbHNlIH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3Is
ICgpID0+IHsgd2luZG93W2tleV0gPSAxOyB9KTsKKworICAgICAgICBjb25zdCBkZXNjID0gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3csIGtleSk7CisgICAgICAgIGFzc2Vy
dF9mYWxzZSgidmFsdWUiIGluIGRlc2MpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBk
ZXNjLmdldCwgImZ1bmN0aW9uIik7CisgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2Mu
c2V0LCAiZnVuY3Rpb24iKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoZGVzYy5lbnVtZXJhYmxlKTsK
KyAgICAgICAgYXNzZXJ0X2ZhbHNlKGRlc2MuY29uZmlndXJhYmxlKTsKKyAgICB9LCBgd2luZG93
LiR7a2V5fSBzZXR0ZXIgdGhyb3dzIFR5cGVFcnJvciBpZiBjYWxsZWQgb24gbm9uLWNvbmZpZ3Vy
YWJsZSBhY2Nlc3NvciBwcm9wZXJ0eWApOworfQorCitmb3IgKGNvbnN0IGtleSBvZiBbInNjcmVl
biIsICJsZW5ndGgiLCAiZXZlbnQiLCAib3V0ZXJIZWlnaHQiXSkgeworICAgIHRlc3QoKCkgPT4g
eworICAgICAgICBjb25zdCB7IHNldCB9ID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cih3aW5kb3csIGtleSk7CisgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIGtl
eSwgeyB2YWx1ZTogMSwgd3JpdGFibGU6IGZhbHNlLCBjb25maWd1cmFibGU6IGZhbHNlIH0pOwor
ICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IsICgpID0+IHsgc2V0LmNhbGwod2lu
ZG93LCAyKTsgfSk7CisKKyAgICAgICAgY29uc3QgZGVzYyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3Iod2luZG93LCBrZXkpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRlc2MudmFs
dWUsIDEpOworICAgICAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSk7CisgICAgICAgIGFz
c2VydF90cnVlKGRlc2MuZW51bWVyYWJsZSk7CisgICAgICAgIGFzc2VydF9mYWxzZShkZXNjLmNv
bmZpZ3VyYWJsZSk7CisgICAgfSwgYHdpbmRvdy4ke2tleX0gc2V0dGVyIHRocm93cyBUeXBlRXJy
b3IgaWYgY2FsbGVkIG9uIG5vbi1jb25maWd1cmFibGUgbm9uLXdyaXRhYmxlIGRhdGEgcHJvcGVy
dHlgKTsKK30KKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LW9w
ZW5lci1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnByb3BlcnR5LWZhaWxzLTEtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0
dGVyLXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy0xLWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctb3BlbmVyLXNldHRlci10
aHJvd3MtaWYtZGVmaW5lb3ducHJvcGVydHktZmFpbHMtMS1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgd2luZG93Lm9wZW5lciBzZXR0ZXIgdGhyb3dz
IFR5cGVFcnJvciBpZiBjYWxsZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3NvciBwcm9wZXJ0
eQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctb3BlbmVyLXNldHRlci10aHJv
d3MtaWYtZGVmaW5lb3ducHJvcGVydHktZmFpbHMtMS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1kZWZpbmVvd25w
cm9wZXJ0eS1mYWlscy0xLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vd2luZG93LW9wZW5lci1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnByb3BlcnR5LWZhaWxz
LTEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT53aW5kb3cub3BlbmVyIHNldHRlciB0aHJv
d3MgVHlwZUVycm9yIGlmIFtbRGVmaW5lT3duUHJvcGVydHldXSBmYWlsczwvdGl0bGU+Cis8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L2Jyb3dzZXJzLmh0bWwjZG9tLW9wZW5lciI+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxib2R5PgorPHNjcmlwdD4KK3Rl
c3QoKCkgPT4geworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICJvcGVuZXIiLCB7
IGNvbmZpZ3VyYWJsZTogZmFsc2UgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9y
LCAoKSA9PiB7IHdpbmRvdy5vcGVuZXIgPSAxOyB9KTsKKworICAgIGNvbnN0IGRlc2MgPSBPYmpl
Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdywgIm9wZW5lciIpOworICAgIGFzc2Vy
dF9mYWxzZSgidmFsdWUiIGluIGRlc2MpOworICAgIGFzc2VydF9lcXVhbHModHlwZW9mIGRlc2Mu
Z2V0LCAiZnVuY3Rpb24iKTsKKyAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBkZXNjLnNldCwgImZ1
bmN0aW9uIik7CisgICAgYXNzZXJ0X3RydWUoZGVzYy5lbnVtZXJhYmxlKTsKKyAgICBhc3NlcnRf
ZmFsc2UoZGVzYy5jb25maWd1cmFibGUpOworfSwgIndpbmRvdy5vcGVuZXIgc2V0dGVyIHRocm93
cyBUeXBlRXJyb3IgaWYgY2FsbGVkIG9uIG5vbi1jb25maWd1cmFibGUgYWNjZXNzb3IgcHJvcGVy
dHkiKTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LW9wZW5l
ci1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnByb3BlcnR5LWZhaWxzLTItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVy
LXRocm93cy1pZi1kZWZpbmVvd25wcm9wZXJ0eS1mYWlscy0yLWV4cGVjdGVkLnR4dAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctb3BlbmVyLXNldHRlci10aHJv
d3MtaWYtZGVmaW5lb3ducHJvcGVydHktZmFpbHMtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mgd2luZG93Lm9wZW5lciBzZXR0ZXIgdGhyb3dzIFR5
cGVFcnJvciBpZiBjYWxsZWQgb24gbm9uLWNvbmZpZ3VyYWJsZSBub24td3JpdGFibGUgZGF0YSBw
cm9wZXJ0eQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctb3BlbmVyLXNldHRl
ci10aHJvd3MtaWYtZGVmaW5lb3ducHJvcGVydHktZmFpbHMtMi5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1vcGVuZXItc2V0dGVyLXRocm93cy1pZi1kZWZp
bmVvd25wcm9wZXJ0eS1mYWlscy0yLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vd2luZG93LW9wZW5lci1zZXR0ZXItdGhyb3dzLWlmLWRlZmluZW93bnByb3BlcnR5
LWZhaWxzLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT53aW5kb3cub3BlbmVyIHNldHRl
ciB0aHJvd3MgVHlwZUVycm9yIGlmIFtbRGVmaW5lT3duUHJvcGVydHldXSBmYWlsczwvdGl0bGU+
Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVs
dGlwYWdlL2Jyb3dzZXJzLmh0bWwjZG9tLW9wZW5lciI+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxib2R5PgorPHNjcmlw
dD4KK3Rlc3QoKCkgPT4geworICAgIGNvbnN0IHsgc2V0IH0gPSBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKHdpbmRvdywgIm9wZW5lciIpOworICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh3aW5kb3csICJvcGVuZXIiLCB7IHZhbHVlOiAxLCB3cml0YWJsZTogZmFsc2UsIGNvbmZpZ3Vy
YWJsZTogZmFsc2UgfSk7CisgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yLCAoKSA9PiB7
IHNldC5jYWxsKHdpbmRvdywgMik7IH0pOworCisgICAgY29uc3QgZGVzYyA9IE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3Iod2luZG93LCAib3BlbmVyIik7CisgICAgYXNzZXJ0X2VxdWFs
cyhkZXNjLnZhbHVlLCAxKTsKKyAgICBhc3NlcnRfZmFsc2UoZGVzYy53cml0YWJsZSk7CisgICAg
YXNzZXJ0X3RydWUoZGVzYy5lbnVtZXJhYmxlKTsKKyAgICBhc3NlcnRfZmFsc2UoZGVzYy5jb25m
aWd1cmFibGUpOworfSwgIndpbmRvdy5vcGVuZXIgc2V0dGVyIHRocm93cyBUeXBlRXJyb3IgaWYg
Y2FsbGVkIG9uIG5vbi1jb25maWd1cmFibGUgbm9uLXdyaXRhYmxlIGRhdGEgcHJvcGVydHkiKTsK
Kzwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>