<?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>223105</bug_id>
          
          <creation_ts>2021-03-11 17:32:42 -0800</creation_ts>
          <short_desc>Introduce ensureOnMainThread()</short_desc>
          <delta_ts>2021-03-11 20:49:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=223094</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>philipj</cc>
    
    <cc>samuel_white</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1738727</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-11 17:32:42 -0800</bug_when>
    <thetext>Introduce ensureOnMainThread(), similarly to the recently added ensureOnMainThreadRunLoop(). It runs the task synchronously when on the main thread, otherwise dispatches the task to the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738728</commentid>
    <comment_count>1</comment_count>
      <attachid>423001</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-11 17:34:27 -0800</bug_when>
    <thetext>Created attachment 423001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738739</commentid>
    <comment_count>2</comment_count>
      <attachid>423001</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-11 19:26:14 -0800</bug_when>
    <thetext>Comment on attachment 423001
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:-171
&gt; -static void ensureOnMainThread(Function&lt;void()&gt;&amp;&amp; f)

Wow, would you look at that? Someone had the good name idea already!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738756</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-11 20:48:29 -0800</bug_when>
    <thetext>Committed r274324: &lt;https://commits.webkit.org/r274324&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423001.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738757</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-11 20:49:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/75346904&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423001</attachid>
            <date>2021-03-11 17:34:27 -0800</date>
            <delta_ts>2021-03-11 20:48:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223105-20210311173426.patch</filename>
            <type>text/plain</type>
            <size>31502</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhMmM5MTVmMmZhOGM3MWRmNjA4MjNj
NTFjOTg3ZmQ3MGM1OTIxNGQuLmFiMWVlNzFmN2NhN2EwNzk2OTk0ZjQ5MDExZGQ4YzlmZGFmMjdh
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEtMDMtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgZW5zdXJlT25NYWluVGhyZWFkKCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzEwNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSBl
bnN1cmVPbk1haW5UaHJlYWQoKSwgc2ltaWxhcmx5IHRvIHRoZSByZWNlbnRseSBhZGRlZCBlbnN1
cmVPbk1haW5UaHJlYWRSdW5Mb29wKCkuIEl0IHJ1bnMKKyAgICAgICAgdGhlIHRhc2sgc3luY2hy
b25vdXNseSB3aGVuIG9uIHRoZSBtYWluIHRocmVhZCwgb3RoZXJ3aXNlIGRpc3BhdGNoZXMgdGhl
IHRhc2sgdG8gdGhlIG1haW4gdGhyZWFkLgorCisgICAgICAgICogd3RmL01haW5UaHJlYWQuY3Bw
OgorICAgICAgICAoV1RGOjplbnN1cmVPbk1haW5UaHJlYWQpOgorICAgICAgICAqIHd0Zi9NYWlu
VGhyZWFkLmg6CisgICAgICAgICogd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg6CisgICAgICAg
IChXVEY6OlRocmVhZFNhZmVSZWZDb3VudGVkOjpkZXJlZiBjb25zdCk6CisgICAgICAgICogd3Rm
L3RleHQvY2YvU3RyaW5nSW1wbENGLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nV3JhcHBlckNG
QWxsb2NhdG9yOjpkZWFsbG9jYXRlKToKKyAgICAgICAgKiB3dGYvdW5peC9NZW1vcnlQcmVzc3Vy
ZUhhbmRsZXJVbml4LmNwcDoKKyAgICAgICAgKFdURjo6TWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp0
cmlnZ2VyTWVtb3J5UHJlc3N1cmVFdmVudCk6CisKIDIwMjEtMDMtMTEgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgV29ya1F1ZXVlOjptYWluKCkg
dG8gZ2V0IHRoZSBtYWluIHRocmVhZCdzIHdvcmsgcXVldWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMGQzYmUy
Zjg1MmY5N2Q0OWZmYWQ3ZDFlOTBhOTlmZTkwMzIwNzA3Li4yNzZlMjZlMzZkZDE4NzM4OGQ5MWNh
MTFhMzk3ZDc3MTVlYTZjZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjEtMDMt
MTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2Ug
ZW5zdXJlT25NYWluVGhyZWFkKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMzEwNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEludHJvZHVjZSBlbnN1cmVPbk1haW5UaHJlYWQoKSwgc2ltaWxhcmx5IHRv
IHRoZSByZWNlbnRseSBhZGRlZCBlbnN1cmVPbk1haW5UaHJlYWRSdW5Mb29wKCkuIEl0IHJ1bnMK
KyAgICAgICAgdGhlIHRhc2sgc3luY2hyb25vdXNseSB3aGVuIG9uIHRoZSBtYWluIHRocmVhZCwg
b3RoZXJ3aXNlIGRpc3BhdGNoZXMgdGhlIHRhc2sgdG8gdGhlIG1haW4gdGhyZWFkLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpwZXJmb3JtRnVuY3Rpb25Pbk1haW5UaHJlYWQp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6cmV0cmlldmVWYWx1ZUZyb21NYWlu
VGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OnJldHJpZXZlQXV0b3Jl
bGVhc2VkVmFsdWVGcm9tTWFpblRocmVhZCk6CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0OjpjbG9zZSk6CisgICAgICAgICogZG9t
L21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsOjpjcmVhdGVOZXdNZXNz
YWdlUG9ydENoYW5uZWwpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnRDaGFubmVsUHJv
dmlkZXJJbXBsOjplbnRhbmdsZUxvY2FsUG9ydEluVGhpc1Byb2Nlc3NUb1JlbW90ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGw6Om1lc3NhZ2VQb3J0
RGlzZW50YW5nbGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVySW1wbDo6bWVzc2FnZVBvcnRDbG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXJJbXBsOjpwb3N0TWVzc2FnZVRvUmVtb3RlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbDo6dGFrZUFsbE1lc3NhZ2VzRm9y
UG9ydCk6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGw6
OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2aXR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lc3NhZ2VQ
b3J0Q2hhbm5lbFByb3ZpZGVySW1wbDo6cGVyZm9ybUFjdGlvbk9uTWFpblRocmVhZCk6IERlbGV0
ZWQuCisgICAgICAgICogZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ckltcGwuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZW5xdWV1ZVRhc2tGb3JEaXNwYXRjaGVyKToKKyAg
ICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0TW9uaXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXaGVlbEV2ZW50VGVzdE1vbml0b3I6OnNjaGVkdWxlQ2FsbGJhY2tDaGVjayk6CisgICAgICAg
ICogcGxhdGZvcm0vR2VuZXJpY1Rhc2tRdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUYXNr
RGlzcGF0Y2hlcjxUaW1lcj46OnBvc3RUYXNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1t
OgorICAgICAgICAoZW5zdXJlT25NYWluVGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMubW06CisgICAgICAgICgtW1dlYlJvb3RTYW1wbGVCdWZmZXJCb3VuZHNDaGFu
Z2VMaXN0ZW5lciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0
Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmludmFsaWRhdGVGb250Q2FjaGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbjo6bWF5YmVCZWNv
bWVSZWFkeUZvck1vcmVNZWRpYURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyOjpkZXZpY2VDaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVh
bHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjphcHBseVJvdGF0aW9uKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeTo6YmVnaW5JbnRlcnJ1cHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk6OmVu
ZEludGVycnVwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0dXJlU291cmNl
RmFjdG9yeTo6c2NoZWR1bGVSZWNvbmZpZ3VyYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbToKKyAgICAgICAgKC1bV2ViQ29yZU5T
VVJMU2Vzc2lvbkRhdGFUYXNrIHJlc291cmNlOnJlY2VpdmVkUmVkaXJlY3Q6cmVxdWVzdDpjb21w
bGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VybFJlcXVlc3Q6OnJ1bk9uTWFpblRocmVh
ZCk6CisKIDIwMjEtMDMtMTEgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtCaWdTdXIgd2sxIGFybTY0XSBwbGF0Zm9ybS9tYWMvZmFzdC9vYmpjL2xvbmdsb25nVGVz
dC5odG1sIGlzIGEgY29uc2lzdGVudCBmYWlsdXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCAx
MWQzOWVlNTczMDRmYTI4MDFkMWZjYjgxMzNiYWNiOTkzYjJlMDEyLi4xYjcyNTkzOWJkMzZhZjdl
MTU4ZGRhNmFmNzQ1ODU5ODg0ZGYwOGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIxLTAzLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgSW50cm9kdWNlIGVuc3VyZU9uTWFpblRocmVhZCgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMxMDUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgZW5zdXJlT25NYWluVGhyZWFk
KCksIHNpbWlsYXJseSB0byB0aGUgcmVjZW50bHkgYWRkZWQgZW5zdXJlT25NYWluVGhyZWFkUnVu
TG9vcCgpLiBJdCBydW5zCisgICAgICAgIHRoZSB0YXNrIHN5bmNocm9ub3VzbHkgd2hlbiBvbiB0
aGUgbWFpbiB0aHJlYWQsIG90aGVyd2lzZSBkaXNwYXRjaGVzIHRoZSB0YXNrIHRvIHRoZSBtYWlu
IHRocmVhZC4KKworICAgICAgICAqIFN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTdG9yYWdlVHJhY2tlcjo6c2V0T3JpZ2luRGV0YWlscyk6CisKIDIwMjEtMDMt
MTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgUmV0YWlu
UHRyPD4gLyBPU09iamVjdFB0cjw+IG1vcmUgaW4gV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NYWluVGhyZWFkLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwCmlu
ZGV4IDQxZTlkOWEyZDM5OGJkNDFjMGJjNGI1ZWM4OGUyODdmMDAxYTA0MDguLmIzZjM4YWQ3NTIy
OGQ5Y2Y2YTE3MzZhZGIyODg3ZTY0YWIyZmVmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL01haW5UaHJlYWQuY3BwCkBAIC04
OCw2ICs4OCwxNCBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGZ1
bmN0aW9uKQogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGZ1bmN0aW9uKSk7
CiB9CiAKK3ZvaWQgZW5zdXJlT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlv
bikKK3sKKyAgICBpZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAg
ZWxzZQorICAgICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUoZnVuY3Rpb24pKTsKK30KKwog
Ym9vbCBpc01haW5UaHJlYWRPckdDVGhyZWFkKCkKIHsKICAgICBpZiAoVGhyZWFkOjptYXlCZUdD
VGhyZWFkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYWluVGhyZWFkLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9NYWluVGhyZWFkLmgKaW5kZXggNGMxY2M0MmJmNmU1OTZiMWYzYmNjZWNlM2Ez
MGJlZDljYTFmZmQxOC4uNTczNDE4ZWFkODRiMjU4MjExY2Y2N2RiODQyMTA4OWMyMDc5MDY3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01haW5UaHJlYWQuaApAQCAtNDQsNiArNDQsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBpbml0aWFsaXplTWFpblRocmVhZCgpOwogCiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBjYWxs
T25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChGdW5jdGlvbjx2b2lkKCk+JiYpOworV1RGX0VYUE9S
VF9QUklWQVRFIHZvaWQgZW5zdXJlT25NYWluVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJik7IC8v
IFN5bmMgaWYgY2FsbGVkIG9uIG1haW4gdGhyZWFkLCBhc3luYyBvdGhlcndpc2UuCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGRpc3BhdGNoQXN5bmNPbk1h
aW5UaHJlYWRXaXRoV2ViVGhyZWFkTG9ja0lmTmVlZGVkKHZvaWQgKF5ibG9jaykoKSk7CkBAIC04
MSw2ICs4Miw3IEBAIHVzaW5nIFdURjo6Y2FsbE9uTWFpblRocmVhZEFuZFdhaXQ7CiB1c2luZyBX
VEY6OmNhbGxPbk1haW5SdW5Mb29wOwogdXNpbmcgV1RGOjpjYWxsT25NYWluUnVuTG9vcEFuZFdh
aXQ7CiB1c2luZyBXVEY6OmVuc3VyZU9uTWFpblJ1bkxvb3A7Cit1c2luZyBXVEY6OmVuc3VyZU9u
TWFpblRocmVhZDsKIHVzaW5nIFdURjo6Y2FuQ3VycmVudFRocmVhZEFjY2Vzc1RocmVhZExvY2Fs
RGF0YTsKIHVzaW5nIFdURjo6aXNNYWluUnVuTG9vcDsKIHVzaW5nIFdURjo6aXNNYWluVGhyZWFk
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaCBiL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmgKaW5kZXggMDU2MWYyMDdjYWFjODll
MzAwZTNiOTg1NTFiZDU2YzIwY2Y2OWVlYi4uNjA3NTRmOTYwNTZlZmU3MTk4YmZjZmU5YWM5NmYz
NDJlNTNhYjAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oCkBAIC0xMjAs
MTEgKzEyMCw4IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBEZXN0cnVjdGlvblRocmVhZDo6QW55
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1h
aW46Ci0gICAgICAgICAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChXVEZNb3ZlKGRlbGV0ZVRoaXMpKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGVu
c3VyZU9uTWFpblRocmVhZChXVEZNb3ZlKGRlbGV0ZVRoaXMpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgY2FzZSBEZXN0cnVjdGlvblRocmVhZDo6TWFpblJ1bkxvb3A6CiAgICAgICAg
ICAgICBpZiAoIWlzTWFpblJ1bkxvb3AoKSkgewogICAgICAgICAgICAgICAgIGNhbGxPbk1haW5S
dW5Mb29wKFdURk1vdmUoZGVsZXRlVGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9jZi9TdHJpbmdJbXBsQ0YuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9jZi9TdHJpbmdJ
bXBsQ0YuY3BwCmluZGV4IDMwZWYzNjA1NzE0NGNiMmExYmY1NjBiNTRlYzZhNjhiNmFhMDU3Y2Mu
LmMwNzVjMGQ0YWM4OTA4YWYyOWRiMmM1MzM1YWFlM2Q5YzE4ZjQzMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvY2YvU3RyaW5nSW1wbENGLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L2NmL1N0cmluZ0ltcGxDRi5jcHAKQEAgLTgyLDE3ICs4MiwxMCBAQCBuYW1lc3BhY2Ug
U3RyaW5nV3JhcHBlckNGQWxsb2NhdG9yIHsKICAgICBzdGF0aWMgdm9pZCBkZWFsbG9jYXRlKHZv
aWQqIHBvaW50ZXIsIHZvaWQqKQogICAgIHsKICAgICAgICAgU3RyaW5nSW1wbCoqIGhlYWRlciA9
IHN0YXRpY19jYXN0PFN0cmluZ0ltcGwqKj4ocG9pbnRlcikgLSAxOwotICAgICAgICBTdHJpbmdJ
bXBsKiB1bmRlcmx5aW5nU3RyaW5nID0gKmhlYWRlcjsKLSAgICAgICAgaWYgKCF1bmRlcmx5aW5n
U3RyaW5nKQorICAgICAgICBpZiAoISpoZWFkZXIpCiAgICAgICAgICAgICBTdHJpbmdXcmFwcGVy
Q0ZBbGxvY2F0b3JNYWxsb2M6OmZyZWUoaGVhZGVyKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgICAgICAgICB1bmRlcmx5aW5nU3Ry
aW5nLT5kZXJlZigpOyAvLyBCYWxhbmNlZCBieSBjYWxsIHRvIHJlZiBpbiBhbGxvY2F0ZSBhYm92
ZS4KLSAgICAgICAgICAgICAgICBTdHJpbmdXcmFwcGVyQ0ZBbGxvY2F0b3JNYWxsb2M6OmZyZWUo
aGVhZGVyKTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2hlYWRlcl0geworICAgICAgICAgICAgZW5zdXJlT25N
YWluVGhyZWFkKFtoZWFkZXJdIHsKICAgICAgICAgICAgICAgICBTdHJpbmdJbXBsKiB1bmRlcmx5
aW5nU3RyaW5nID0gKmhlYWRlcjsKICAgICAgICAgICAgICAgICBBU1NFUlQodW5kZXJseWluZ1N0
cmluZyk7CiAgICAgICAgICAgICAgICAgdW5kZXJseWluZ1N0cmluZy0+ZGVyZWYoKTsgLy8gQmFs
YW5jZWQgYnkgY2FsbCB0byByZWYgaW4gYWxsb2NhdGUgYWJvdmUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi91bml4L01lbW9yeVByZXNzdXJlSGFuZGxlclVuaXguY3BwIGIvU291cmNlL1dU
Ri93dGYvdW5peC9NZW1vcnlQcmVzc3VyZUhhbmRsZXJVbml4LmNwcAppbmRleCA2NzU0NzVlMWI1
MTU3NzE5MjBkYzVhYWIwMGJhOGVkNjFjZmYwNGE1Li5hOTZlNGU1ZjVhYTRmNGI4ODA5NDljOGEx
OTYzODdmY2Y0MmFhMTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bml4L01lbW9yeVBy
ZXNzdXJlSGFuZGxlclVuaXguY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaXgvTWVtb3J5UHJl
c3N1cmVIYW5kbGVyVW5peC5jcHAKQEAgLTY5LDEyICs2OSw5IEBAIHZvaWQgTWVtb3J5UHJlc3N1
cmVIYW5kbGVyOjp0cmlnZ2VyTWVtb3J5UHJlc3N1cmVFdmVudChib29sIGlzQ3JpdGljYWwpCiAK
ICAgICBzZXRVbmRlck1lbW9yeVByZXNzdXJlKHRydWUpOwogCi0gICAgaWYgKGlzTWFpblRocmVh
ZCgpKQorICAgIGVuc3VyZU9uTWFpblRocmVhZChbdGhpcywgaXNDcml0aWNhbF0gewogICAgICAg
ICByZXNwb25kVG9NZW1vcnlQcmVzc3VyZShpc0NyaXRpY2FsID8gQ3JpdGljYWw6OlllcyA6IENy
aXRpY2FsOjpObyk7Ci0gICAgZWxzZQotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3RoaXMsIGlzQ3JpdGljYWxdIHsKLSAgICAgICAgICAgIHJlc3BvbmRUb01lbW9yeVByZXNzdXJl
KGlzQ3JpdGljYWwgPyBDcml0aWNhbDo6WWVzIDogQ3JpdGljYWw6Ok5vKTsKLSAgICAgICAgfSk7
CisgICAgfSk7CiAKICAgICBpZiAoUmVsaWVmTG9nZ2VyOjpsb2dnaW5nRW5hYmxlZCgpICYmIGlz
VW5kZXJNZW1vcnlQcmVzc3VyZSgpKQogICAgICAgICBMT0coTWVtb3J5UHJlc3N1cmUsICJTeXN0
ZW0gaXMgbm8gbG9uZ2VyIHVuZGVyIG1lbW9yeSBwcmVzc3VyZS4iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgKaW5kZXggMWJlN2Q1NzUzMDcyZjg0ZmI5Y2M4Yzc1ZTllZTA3NTc0MmNmZGRiNC4uYzM0
NDJkNzE0YjYwOWY2YjgxNWE3NmVmMjJkODlhNGVmYTgwNjQyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmgKQEAgLTE1ODAsOSArMTU4MCw2IEBAIHZvaWQgZW51bWVyYXRlRGVzY2VuZGFudHMoVCYg
b2JqZWN0LCBib29sIGluY2x1ZGVTZWxmLCBjb25zdCBGJiBsYW1iZGEpCiAKIHRlbXBsYXRlPHR5
cGVuYW1lIFU+IGlubGluZSB2b2lkIHBlcmZvcm1GdW5jdGlvbk9uTWFpblRocmVhZChVJiYgbGFt
YmRhKQogewotICAgIGlmIChpc01haW5UaHJlYWQoKSkKLSAgICAgICAgcmV0dXJuIGxhbWJkYSgp
OwotCiAgICAgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoWyZsYW1iZGFdIHsKICAgICAgICAgbGFt
YmRhKCk7CiAgICAgfSk7CkBAIC0xNTkwLDkgKzE1ODcsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBV
PiBpbmxpbmUgdm9pZCBwZXJmb3JtRnVuY3Rpb25Pbk1haW5UaHJlYWQoVSYmIGxhbWJkYSkKIAog
dGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIFQgcmV0cmlldmVWYWx1ZUZy
b21NYWluVGhyZWFkKFUmJiBsYW1iZGEpCiB7Ci0gICAgaWYgKGlzTWFpblRocmVhZCgpKQotICAg
ICAgICByZXR1cm4gbGFtYmRhKCk7Ci0KICAgICBUIHZhbHVlOwogICAgIGNhbGxPbk1haW5UaHJl
YWRBbmRXYWl0KFsmdmFsdWUsICZsYW1iZGFdIHsKICAgICAgICAgdmFsdWUgPSBsYW1iZGEoKTsK
QEAgLTE2MDMsOSArMTU5Nyw2IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlu
bGluZSBUIHJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZChVJiYgbGFtYmRhCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgVCByZXRy
aWV2ZUF1dG9yZWxlYXNlZFZhbHVlRnJvbU1haW5UaHJlYWQoVSYmIGxhbWJkYSkKIHsKLSAgICBp
ZiAoaXNNYWluVGhyZWFkKCkpCi0gICAgICAgIHJldHVybiBsYW1iZGEoKS5hdXRvcmVsZWFzZSgp
OwotCiAgICAgUmV0YWluUHRyPFQ+IHZhbHVlOwogICAgIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0
KFsmdmFsdWUsICZsYW1iZGFdIHsKICAgICAgICAgdmFsdWUgPSBsYW1iZGEoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZVBvcnQuY3BwCmluZGV4IDIxZGQ1ZjBiN2FkMWI2MDc0NjA3NWQ4ZjZmOWYyZmU0
NDA2NjAyMzAuLmJiYzA4NWEyOWEzNTZjNTUwMDgwYzM1ODQzNjZmNThjYjEyNGE2ZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcApAQCAtMjMwLDEzICsyMzAsOSBAQCB2b2lkIE1lc3Nh
Z2VQb3J0OjpjbG9zZSgpCiAgICAgICAgIHJldHVybjsKICAgICBtX2Nsb3NlZCA9IHRydWU7CiAK
LSAgICBpZiAoaXNNYWluVGhyZWFkKCkpCi0gICAgICAgIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3Zp
ZGVyOjpzaW5nbGV0b24oKS5tZXNzYWdlUG9ydENsb3NlZChtX2lkZW50aWZpZXIpOwotICAgIGVs
c2UgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVudGlmaWVyID0gbV9pZGVudGlmaWVy
XSB7Ci0gICAgICAgICAgICBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjo6c2luZ2xldG9uKCku
bWVzc2FnZVBvcnRDbG9zZWQoaWRlbnRpZmllcik7Ci0gICAgICAgIH0pOwotICAgIH0KKyAgICBl
bnN1cmVPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXJdIHsKKyAgICAgICAg
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpLm1lc3NhZ2VQb3J0Q2xvc2Vk
KGlkZW50aWZpZXIpOworICAgIH0pOwogCiAgICAgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9y
dHMvTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsLmNwcAppbmRleCA3MzYyOTA4Y2NiZjE4
NjdlN2Y0ZmU3ODA5YzUzNmM4NDk2MDE5OWMzLi44MzdmZjQ4ZGI4ZDgyMTRiYzFmOTk2Y2I2YzE2
ZWI3Y2E0ODZlZDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRz
L01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGwuY3BwCkBAIC01
MCw0NSArNTAsMzcgQEAgTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXJJbXBsOjp+TWVzc2FnZVBv
cnRDaGFubmVsUHJvdmlkZXJJbXBsKCkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAot
dm9pZCBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGw6OnBlcmZvcm1BY3Rpb25Pbk1haW5U
aHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIGFjdGlvbikKLXsKLSAgICBpZiAoaXNNYWluVGhyZWFk
KCkpCi0gICAgICAgIGFjdGlvbigpOwotICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChXVEZNb3ZlKGFjdGlvbikpOwotfQotCiB2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
SW1wbDo6Y3JlYXRlTmV3TWVzc2FnZVBvcnRDaGFubmVsKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRp
ZmllciYgbG9jYWwsIGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcmVtb3RlKQogewotICAg
IHBlcmZvcm1BY3Rpb25Pbk1haW5UaHJlYWQoW3JlZ2lzdHJ5ID0gJm1fcmVnaXN0cnksIGxvY2Fs
LCByZW1vdGVdIHsKKyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW3JlZ2lzdHJ5ID0gJm1fcmVnaXN0
cnksIGxvY2FsLCByZW1vdGVdIHsKICAgICAgICAgcmVnaXN0cnktPmRpZENyZWF0ZU1lc3NhZ2VQ
b3J0Q2hhbm5lbChsb2NhbCwgcmVtb3RlKTsKICAgICB9KTsKIH0KIAogdm9pZCBNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlckltcGw6OmVudGFuZ2xlTG9jYWxQb3J0SW5UaGlzUHJvY2Vzc1RvUmVt
b3RlKGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgbG9jYWwsIGNvbnN0IE1lc3NhZ2VQb3J0
SWRlbnRpZmllciYgcmVtb3RlKQogewotICAgIHBlcmZvcm1BY3Rpb25Pbk1haW5UaHJlYWQoW3Jl
Z2lzdHJ5ID0gJm1fcmVnaXN0cnksIGxvY2FsLCByZW1vdGVdIHsKKyAgICBlbnN1cmVPbk1haW5U
aHJlYWQoW3JlZ2lzdHJ5ID0gJm1fcmVnaXN0cnksIGxvY2FsLCByZW1vdGVdIHsKICAgICAgICAg
cmVnaXN0cnktPmRpZEVudGFuZ2xlTG9jYWxUb1JlbW90ZShsb2NhbCwgcmVtb3RlLCBQcm9jZXNz
OjppZGVudGlmaWVyKCkpOwogICAgIH0pOwogfQogCiB2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVySW1wbDo6bWVzc2FnZVBvcnREaXNlbnRhbmdsZWQoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiBsb2NhbCkKIHsKLSAgICBwZXJmb3JtQWN0aW9uT25NYWluVGhyZWFkKFtyZWdpc3Ry
eSA9ICZtX3JlZ2lzdHJ5LCBsb2NhbF0geworICAgIGVuc3VyZU9uTWFpblRocmVhZChbcmVnaXN0
cnkgPSAmbV9yZWdpc3RyeSwgbG9jYWxdIHsKICAgICAgICAgcmVnaXN0cnktPmRpZERpc2VudGFu
Z2xlTWVzc2FnZVBvcnQobG9jYWwpOwogICAgIH0pOwogfQogCiB2b2lkIE1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVySW1wbDo6bWVzc2FnZVBvcnRDbG9zZWQoY29uc3QgTWVzc2FnZVBvcnRJZGVu
dGlmaWVyJiBsb2NhbCkKIHsKLSAgICBwZXJmb3JtQWN0aW9uT25NYWluVGhyZWFkKFtyZWdpc3Ry
eSA9ICZtX3JlZ2lzdHJ5LCBsb2NhbF0geworICAgIGVuc3VyZU9uTWFpblRocmVhZChbcmVnaXN0
cnkgPSAmbV9yZWdpc3RyeSwgbG9jYWxdIHsKICAgICAgICAgcmVnaXN0cnktPmRpZENsb3NlTWVz
c2FnZVBvcnQobG9jYWwpOwogICAgIH0pOwogfQogCiB2b2lkIE1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVySW1wbDo6cG9zdE1lc3NhZ2VUb1JlbW90ZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYm
IG1lc3NhZ2UsIGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgcmVtb3RlVGFyZ2V0KQogewot
ICAgIHBlcmZvcm1BY3Rpb25Pbk1haW5UaHJlYWQoW3JlZ2lzdHJ5ID0gJm1fcmVnaXN0cnksIG1l
c3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCByZW1vdGVUYXJnZXRdKCkgbXV0YWJsZSB7CisgICAg
ZW5zdXJlT25NYWluVGhyZWFkKFtyZWdpc3RyeSA9ICZtX3JlZ2lzdHJ5LCBtZXNzYWdlID0gV1RG
TW92ZShtZXNzYWdlKSwgcmVtb3RlVGFyZ2V0XSgpIG11dGFibGUgewogICAgICAgICBpZiAocmVn
aXN0cnktPmRpZFBvc3RNZXNzYWdlVG9SZW1vdGUoV1RGTW92ZShtZXNzYWdlKSwgcmVtb3RlVGFy
Z2V0KSkKICAgICAgICAgICAgIE1lc3NhZ2VQb3J0Ojpub3RpZnlNZXNzYWdlQXZhaWxhYmxlKHJl
bW90ZVRhcmdldCk7CiAgICAgfSk7CkBAIC0xMDIsNyArOTQsNyBAQCB2b2lkIE1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVySW1wbDo6dGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChjb25zdCBNZXNzYWdl
UG9ydElkZQogICAgICAgICBvdXRlckNhbGxiYWNrKFdURk1vdmUobWVzc2FnZXMpLCBXVEZNb3Zl
KG1lc3NhZ2VEZWxpdmVyeUNhbGxiYWNrKSk7CiAgICAgfTsKIAotICAgIHBlcmZvcm1BY3Rpb25P
bk1haW5UaHJlYWQoW3JlZ2lzdHJ5ID0gJm1fcmVnaXN0cnksIHBvcnQsIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFtyZWdp
c3RyeSA9ICZtX3JlZ2lzdHJ5LCBwb3J0LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgp
IG11dGFibGUgewogICAgICAgICByZWdpc3RyeS0+dGFrZUFsbE1lc3NhZ2VzRm9yUG9ydChwb3J0
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgfSk7CiB9CkBAIC0xMTQsNyArMTA2LDcgQEAgdm9p
ZCBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlckltcGw6OmNoZWNrUmVtb3RlUG9ydEZvckFjdGl2
aXR5KGNvbnN0IE1lc3NhZ2VQb3IKICAgICAgICAgb3V0ZXJDYWxsYmFjayhoYXNBY3Rpdml0eSk7
CiAgICAgfSB9OwogCi0gICAgcGVyZm9ybUFjdGlvbk9uTWFpblRocmVhZChbcmVnaXN0cnkgPSAm
bV9yZWdpc3RyeSwgcmVtb3RlVGFyZ2V0LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgp
IG11dGFibGUgeworICAgIGVuc3VyZU9uTWFpblRocmVhZChbcmVnaXN0cnkgPSAmbV9yZWdpc3Ry
eSwgcmVtb3RlVGFyZ2V0LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUg
ewogICAgICAgICByZWdpc3RyeS0+Y2hlY2tSZW1vdGVQb3J0Rm9yQWN0aXZpdHkocmVtb3RlVGFy
Z2V0LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVySW1wbC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL21lc3NhZ2Vwb3J0cy9NZXNzYWdlUG9ydENoYW5uZWxQcm92
aWRlckltcGwuaAppbmRleCBmZWFlYWNlMTVmY2I0Y2Q4ODA5OGQyNTZkNmJkMmU2MmQ5MTc3Y2Q3
Li41ZTRmNTRlYmNjMTA0YjU5NTAwYzVjMjFhNmRmZDllMWE0ZDliNmI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vbWVzc2FnZXBvcnRzL01lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9tZXNzYWdlcG9ydHMvTWVzc2FnZVBvcnRD
aGFubmVsUHJvdmlkZXJJbXBsLmgKQEAgLTQ0LDggKzQ0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHRha2VBbGxNZXNzYWdlc0ZvclBvcnQoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+JiYsIEZ1
bmN0aW9uPHZvaWQoKT4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgY2hlY2tSZW1vdGVQb3J0Rm9y
QWN0aXZpdHkoY29uc3QgTWVzc2FnZVBvcnRJZGVudGlmaWVyJiByZW1vdGVUYXJnZXQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoSGFzQWN0aXZpdHkpPiYmIGNhbGxiYWNrKSBmaW5hbDsKIAotICAg
IHZvaWQgcGVyZm9ybUFjdGlvbk9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKCk+JiYpOwotCiAg
ICAgTWVzc2FnZVBvcnRDaGFubmVsUmVnaXN0cnkgbV9yZWdpc3RyeTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDI0NzY1OTA0YjdiYTA1NTNmZGUw
NmNhODYxN2E0ZWY4ZmM0ODg2MjQuLjAzZTkzOWY2MTI1ODM0NDczZWQ4MjQyN2Q1MThmZTIxZjZh
N2QyMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNzk5
NCwxOCArNzk5NCwxMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhU3RyZWFtQ2FwdHVy
ZVN0YXJ0ZWQoKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmVucXVldWVUYXNrRm9yRGlzcGF0
Y2hlcihGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiB7Ci0gICAgaWYgKCFpc01haW5UaHJl
YWQoKSkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKSwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKV0oKSBtdXRhYmxlIHsK
LSAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgZW5xdWV1ZVRhc2tGb3JEaXNwYXRjaGVyKFdURk1vdmUoZnVuY3Rpb24pKTsKLSAg
ICAgICAgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIXNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok1lZGlhRWxlbWVudCwgV1RG
TW92ZShmdW5jdGlvbikpOworICAgIGVuc3VyZU9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyksIGZ1bmN0aW9uID0gV1RGTW92ZShmdW5jdGlvbildKCkgbXV0
YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TWVkaWFFbGVtZW50LCBXVEZNb3Zl
KGZ1bmN0aW9uKSk7CisgICAgfSk7CiB9CiAKIFNlY3VyaXR5T3JpZ2luRGF0YSBIVE1MTWVkaWFF
bGVtZW50Ojpkb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvV2hlZWxFdmVudFRlc3RNb25pdG9yLmNwcAppbmRleCAzZWJlYTFhNDFiMmE0MmQ0YmZl
ZGRjYTJlNzMyYzJkOGZhMzUyZjllLi5mOTRkMTgyOGQ1NjBkZmUxYmVmYmU2N2I0NGNiNDA0MTk1
Yzk5NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVsRXZlbnRUZXN0TW9u
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdE1vbml0b3Iu
Y3BwCkBAIC0xMjIsMTIgKzEyMiw3IEBAIHZvaWQgV2hlZWxFdmVudFRlc3RNb25pdG9yOjpyZWNl
aXZlZFdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKIAogdm9pZCBX
aGVlbEV2ZW50VGVzdE1vbml0b3I6OnNjaGVkdWxlQ2FsbGJhY2tDaGVjaygpCiB7Ci0gICAgaWYg
KGlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgIG1fcGFnZS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZShSZW5kZXJpbmdVcGRhdGVTdGVwOjpXaGVlbEV2ZW50TW9uaXRvckNhbGxiYWNrcyk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtQ
YWdlID0gbWFrZVdlYWtQdHIobV9wYWdlKV0geworICAgIGVuc3VyZU9uTWFpblRocmVhZChbd2Vh
a1BhZ2UgPSBtYWtlV2Vha1B0cihtX3BhZ2UpXSB7CiAgICAgICAgIGlmICh3ZWFrUGFnZSkKICAg
ICAgICAgICAgIHdlYWtQYWdlLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShSZW5kZXJpbmdVcGRh
dGVTdGVwOjpXaGVlbEV2ZW50TW9uaXRvckNhbGxiYWNrcyk7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9HZW5lcmljVGFza1F1ZXVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVldWUuY3BwCmluZGV4IGE1MzU0MmYwZGE3ODgw
MjQ2M2UzOTE0NWMzYjMxYzNmMTgxM2YyYjcuLjUxNjUzMTRjZmVhMTJhMDEwMGM4MmMyNmJjY2Nm
MjIyZDAyYzdhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNU
YXNrUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0dlbmVyaWNUYXNrUXVl
dWUuY3BwCkBAIC00NCwxNCArNDQsMTAgQEAgdm9pZCBUYXNrRGlzcGF0Y2hlcjxUaW1lcj46OnBv
c3RUYXNrKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKICAgICAgICAgcGVuZGluZ0Rpc3Bh
dGNoZXJzKCkuYXBwZW5kKG1ha2VXZWFrUHRyKCp0aGlzKSk7CiAgICAgfQogCi0gICAgYXV0byBz
dGFydFRpbWVyID0gW10geworICAgIGVuc3VyZU9uTWFpblRocmVhZChbXSB7CiAgICAgICAgIGlm
ICghc2hhcmVkVGltZXIoKS5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgc2hhcmVkVGltZXIoKS5z
dGFydE9uZVNob3QoMF9zKTsKLSAgICB9OwotICAgIGlmIChpc01haW5UaHJlYWQoKSkKLSAgICAg
ICAgc3RhcnRUaW1lcigpOwotICAgIGVsc2UKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChXVEZN
b3ZlKHN0YXJ0VGltZXIpKTsKKyAgICB9KTsKIH0KIAogVGltZXImIFRhc2tEaXNwYXRjaGVyPFRp
bWVyPjo6c2hhcmVkVGltZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOTgxOWM4ZTk1
NTliYTA1NjFkYjdlYmE4MTZkZjUxYWVhMDdjZWRmYy4uNDM2MWQwNTdmMzNjYWQ3YmY5YjYwN2Rj
N2E5ZDA1NTI1YjU1ZGZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xNjgsMTQgKzE2
OCw2IEBAIGVudW0gTWVkaWFQbGF5ZXJBVkZvdW5kYXRpb25PYnNlcnZhdGlvbkNvbnRleHQgewog
ICAgIE1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0QVZQbGF5ZXJMYXll
ciwKIH07CiAKLXN0YXRpYyB2b2lkIGVuc3VyZU9uTWFpblRocmVhZChGdW5jdGlvbjx2b2lkKCk+
JiYgZikKLXsKLSAgICBpZiAoaXNNYWluVGhyZWFkKCkpCi0gICAgICAgIGYoKTsKLSAgICBlbHNl
Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoV1RGTW92ZShmKSk7Ci19Ci0KIEBpbnRlcmZhY2Ug
V2ViQ29yZUFWRk1vdmllT2JzZXJ2ZXIgOiBOU09iamVjdCA8QVZQbGF5ZXJJdGVtTGVnaWJsZU91
dHB1dFB1c2hEZWxlZ2F0ZSwgQVZQbGF5ZXJJdGVtTWV0YWRhdGFPdXRwdXRQdXNoRGVsZWdhdGUs
IEFWUGxheWVySXRlbU1ldGFkYXRhQ29sbGVjdG9yUHVzaERlbGVnYXRlPgogewogICAgIFdlYWtQ
dHI8TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQz4gbV9wbGF5ZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0KaW5kZXggNTQ4NTI0YzVhZGNkNGE2NDdjOGFkMmZlZDgwZTkwNTA2
MjBhOGNkNC4uYjYyMTE0MWM5NDliNzJkNDg2MjFlYjE5ZDlmNWU2NGQ0OTRmZWM3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMTA5LDE1ICsxMDksOSBAQCAtICh2b2lkKW9ic2Vy
dmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0
IGNoYW5nZTooTgogCiAgICAgaWYgKChDQUxheWVyICopb2JqZWN0ID09IF9yb290TGF5ZXIuZ2V0
KCkpIHsKICAgICAgICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImJvdW5kcyJdKSB7
Ci0gICAgICAgICAgICBpZiAoaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
X2NhbGxiYWNrKQotICAgICAgICAgICAgICAgICAgICBfY2FsbGJhY2soKTsKLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3Byb3RlY3RlZFNlbGYgPSBSZXRhaW5QdHI8V2ViUm9vdFNhbXBsZUJ1ZmZlckJvdW5kc0No
YW5nZUxpc3RlbmVyPihzZWxmKV0gewotICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRTZWxm
LT5fY2FsbGJhY2spCi0gICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9jYWxsYmFj
aygpOworICAgICAgICAgICAgZW5zdXJlT25NYWluVGhyZWFkKFtyZXRhaW5lZFNlbGYgPSByZXRh
aW5QdHIoc2VsZildIHsKKyAgICAgICAgICAgICAgICBpZiAocmV0YWluZWRTZWxmLT5fY2FsbGJh
Y2spCisgICAgICAgICAgICAgICAgICAgIHJldGFpbmVkU2VsZi0+X2NhbGxiYWNrKCk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAppbmRl
eCBmYTc3YjM5OTc3ZGI5NzhhMDU5NzFiNmMyNWM0MWYzNzJkZTUyNGIxLi44NWM5NGE5YTkzZjA4
YjAyYjU0N2UwYmU2MDU2NmNmYzE0MDgwMjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCkBA
IC0xMTYxLDIwICsxMTYxLDE1IEBAIHN0YXRpYyBGb250TG9va3VwIHBsYXRmb3JtRm9udExvb2t1
cFdpdGhGYW1pbHkoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBGb250U2VsCiAKIHN0YXRpYyB2
b2lkIGludmFsaWRhdGVGb250Q2FjaGUoKQogewotICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsK
LSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbXSB7Ci0gICAgICAgICAgICBpbnZhbGlkYXRlRm9u
dENhY2hlKCk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgU3lz
dGVtRm9udERhdGFiYXNlQ29yZVRleHQ6OnNpbmdsZXRvbigpLmNsZWFyKCk7Ci0gICAgY2xlYXJG
b250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0Q2FjaGUoKTsKKyAgICBlbnN1cmVPbk1haW5U
aHJlYWQoW10geworICAgICAgICBTeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dDo6c2luZ2xldG9u
KCkuY2xlYXIoKTsKKyAgICAgICAgY2xlYXJGb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0
Q2FjaGUoKTsKIAotICAgIEZvbnREYXRhYmFzZTo6c2luZ2xldG9uQWxsb3dpbmdVc2VySW5zdGFs
bGVkRm9udHMoKS5jbGVhcigpOwotICAgIEZvbnREYXRhYmFzZTo6c2luZ2xldG9uRGlzYWxsb3dp
bmdVc2VySW5zdGFsbGVkRm9udHMoKS5jbGVhcigpOworICAgICAgICBGb250RGF0YWJhc2U6OnNp
bmdsZXRvbkFsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKCkuY2xlYXIoKTsKKyAgICAgICAgRm9u
dERhdGFiYXNlOjpzaW5nbGV0b25EaXNhbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpLmNsZWFy
KCk7CiAKLSAgICBGb250Q2FjaGU6OnNpbmdsZXRvbigpLmludmFsaWRhdGUoKTsKKyAgICAgICAg
Rm9udENhY2hlOjpzaW5nbGV0b24oKS5pbnZhbGlkYXRlKCk7CisgICAgfSk7CiB9CiAKIHN0YXRp
YyBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKGNvbnN0IEF0
b21TdHJpbmcmIGZhbWlseSwgY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24s
IGZsb2F0IHNpemUsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZv
bnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViQ29yZURlY29tcHJlc3Npb25TZXNzaW9uLm1tCmluZGV4IDcwNWEz
MTg3MGE0NzIzYzYzMzJjYzA4NzU1ZTk0ZmEzMzgxMGQ3MGYuLjA5OGVjMDlhZTNkOWE2N2JiMDAx
MWZkMTk1YTBmNjQ5MDY0M2U4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL1dlYkNvcmVEZWNvbXByZXNzaW9uU2Vzc2lvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJDb3JlRGVjb21wcmVzc2lvblNl
c3Npb24ubW0KQEAgLTk1LDEzICs5NSw3IEBAIHZvaWQgV2ViQ29yZURlY29tcHJlc3Npb25TZXNz
aW9uOjptYXliZUJlY29tZVJlYWR5Rm9yTW9yZU1lZGlhRGF0YSgpCiAKICAgICBMT0coTWVkaWEs
ICJXZWJDb3JlRGVjb21wcmVzc2lvblNlc3Npb246Om1heWJlQmVjb21lUmVhZHlGb3JNb3JlTWVk
aWFEYXRhKCVwKSAtIGlzUmVhZHlGb3JNb3JlTWVkaWFEYXRhKCVkKSwgaGFzQ2FsbGJhY2soJWQp
IiwgdGhpcywgaXNSZWFkeUZvck1vcmVNZWRpYURhdGEoKSwgISFtX25vdGlmaWNhdGlvbkNhbGxi
YWNrKTsKIAotICAgIGlmIChpc01haW5UaHJlYWQoKSkgewotICAgICAgICBtX25vdGlmaWNhdGlv
bkNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBSZWZQdHI8V2ViQ29y
ZURlY29tcHJlc3Npb25TZXNzaW9uPiBwcm90ZWN0ZWRUaGlzIHsgdGhpcyB9OwotICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpc10geworICAgIGVuc3VyZU9uTWFpblRo
cmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIGlmIChwcm90
ZWN0ZWRUaGlzLT5tX25vdGlmaWNhdGlvbkNhbGxiYWNrKQogICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+bV9ub3RpZmljYXRpb25DYWxsYmFjaygpOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZU1hbmFn
ZXIuY3BwCmluZGV4IDM2YzFkZGJmMTM5MzdlNDIyZTE3NTVjYjg3MWE1ZjY2ODgwZTg1ZjAuLjFh
NzUzYTEwYmU3OWU3YzQzOTg1YjJlNTgwZDU0OTFiMThlNTc0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlTWFu
YWdlci5jcHAKQEAgLTUyLDEzICs1Miw5IEBAIENhcHR1cmVEZXZpY2UgQ2FwdHVyZURldmljZU1h
bmFnZXI6OmNhcHR1cmVEZXZpY2VGcm9tUGVyc2lzdGVudElEKGNvbnN0IFN0cmluZyYKIAogdm9p
ZCBDYXB0dXJlRGV2aWNlTWFuYWdlcjo6ZGV2aWNlQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKCFpc01h
aW5UaHJlYWQoKSkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtdIHsKLSAgICAgICAgICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmNhcHR1cmVEZXZpY2VzQ2hh
bmdlZCgpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5jYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsK
KyAgICBlbnN1cmVPbk1haW5UaHJlYWQoW10geworICAgICAgICBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpzaW5nbGV0b24oKS5jYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKKyAgICB9KTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJj
ZS5jcHAKaW5kZXggNjI4M2Y1ZjA2NmM2MTVhNmZjOGNhMTNkZTc2OTI0YzUyODc3MTAzOS4uZmE5
NDY2NWU1ZmJhZDM4N2QzM2RkZTBiMDI3ZmJlMTk0YjI1ZDMwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2UuY3BwCkBAIC05MSwxOCArOTEsMTQgQEAgdm9pZCBSZWFsdGltZU91
dGdvaW5nVmlkZW9Tb3VyY2U6OnNldFNvdXJjZShSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+
JiYgbmV3U28KIAogdm9pZCBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OmFwcGx5Um90YXRp
b24oKQogewotICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgICAg
ICBhcHBseVJvdGF0aW9uKCk7Ci0gICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
ICAgIGlmIChtX2FyZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9uKQotICAgICAgICByZXR1cm47
CisgICAgZW5zdXJlT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigq
dGhpcyldIHsKKyAgICAgICAgaWYgKG1fYXJlU2lua3NBc2tpbmdUb0FwcGx5Um90YXRpb24pCisg
ICAgICAgICAgICByZXR1cm47CiAKLSAgICBtX2FyZVNpbmtzQXNraW5nVG9BcHBseVJvdGF0aW9u
ID0gdHJ1ZTsKLSAgICBpZiAoIW1fdmlkZW9Tb3VyY2UtPnNvdXJjZSgpLnNldFNob3VsZEFwcGx5
Um90YXRpb24odHJ1ZSkpCi0gICAgICAgIG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7Cisg
ICAgICAgIG1fYXJlU2lua3NBc2tpbmdUb0FwcGx5Um90YXRpb24gPSB0cnVlOworICAgICAgICBp
ZiAoIW1fdmlkZW9Tb3VyY2UtPnNvdXJjZSgpLnNldFNob3VsZEFwcGx5Um90YXRpb24odHJ1ZSkp
CisgICAgICAgICAgICBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOworICAgIH0pOwogfQog
CiB2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6c3RvcCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggMzZlNjlkMTVkNjQ0ZWUyOWU4ZjhkYTJiN2VjNDA1
NzVlYzk1NmU0NS4uNGJjZDUzOTBlNWExMmM1YTY4YWU0YzAzMjA2MTAxNWQ4YWFiNzVkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcApAQCAtNjQyLDM1ICs2NDIsMjMgQEAg
dm9pZCBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpzZXRJbnRlcnJ1cHRlZEZvclRlc3RpbmcoYm9v
bCBpc0ludGVycnVwdGVkKQogCiB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5Ojpi
ZWdpbkludGVycnVwdGlvbigpCiB7Ci0gICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewotICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzXSB7Ci0gICAgICAgICAgICBiZWdpbkludGVycnVwdGlv
bigpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBDb3JlQXVkaW9T
aGFyZWRVbml0OjpzaW5nbGV0b24oKS5zdXNwZW5kKCk7CisgICAgZW5zdXJlT25NYWluVGhyZWFk
KFtdIHsKKyAgICAgICAgQ29yZUF1ZGlvU2hhcmVkVW5pdDo6c2luZ2xldG9uKCkuc3VzcGVuZCgp
OworICAgIH0pOwogfQogCiB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjplbmRJ
bnRlcnJ1cHRpb24oKQogewotICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKLSAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpc10gewotICAgICAgICAgICAgZW5kSW50ZXJydXB0aW9uKCk7Ci0g
ICAgICAgIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIENvcmVBdWRpb1NoYXJlZFVu
aXQ6OnNpbmdsZXRvbigpLnJlc3VtZSgpOworICAgIGVuc3VyZU9uTWFpblRocmVhZChbXSB7Cisg
ICAgICAgIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnJlc3VtZSgpOworICAgIH0p
OwogfQogCiB2b2lkIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5OjpzY2hlZHVsZVJlY29u
ZmlndXJhdGlvbigpCiB7Ci0gICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewotICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFt0aGlzXSB7Ci0gICAgICAgICAgICBzY2hlZHVsZVJlY29uZmlndXJhdGlv
bigpOwotICAgICAgICB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBDb3JlQXVkaW9T
aGFyZWRVbml0OjpzaW5nbGV0b24oKS5yZWNvbmZpZ3VyZSgpOworICAgIGVuc3VyZU9uTWFpblRo
cmVhZChbXSB7CisgICAgICAgIENvcmVBdWRpb1NoYXJlZFVuaXQ6OnNpbmdsZXRvbigpLnJlY29u
ZmlndXJlKCk7CisgICAgfSk7CiB9CiAKIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmZhY3RvcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCmluZGV4IGVlYzRl
NGY5YzZmYzllNzhlZDFjNmMxY2VlNzhhYzdiZWJlODBjNTcuLjUyOTY5NWY3MWM2YWIxZjQzY2Nl
NGZiMTMwYjg0NDIyZTYwZjVmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KQEAgLTg4Niwx
MyArODg2LDkgQEAgLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlKilyZXNv
dXJjZSByZWNlaXZlZFJlZGlyZWN0Oihjb25zdCBSZXNvdXIKICAgICAgICAgaWQ8TlNVUkxTZXNz
aW9uRGF0YURlbGVnYXRlPiBkYXRhRGVsZWdhdGUgPSAoaWQ8TlNVUkxTZXNzaW9uRGF0YURlbGVn
YXRlPilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24uZGVsZWdhdGU7CiAgICAgICAgIGlmIChbZGF0
YURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoVVJMU2Vzc2lvbjp0YXNrOndp
bGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uOm5ld1JlcXVlc3Q6Y29tcGxldGlvbkhhbmRsZXI6KV0p
IHsKICAgICAgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXJCbG9jayA9IG1ha2VCbG9ja1B0
cihbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oTlNVUkxS
ZXF1ZXN0ICpuZXdSZXF1ZXN0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoIWlzTWFp
blRocmVhZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3JlcXVl
c3QgPSBSZXNvdXJjZVJlcXVlc3QgeyBuZXdSZXF1ZXN0IH0sIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICAgICAgICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7Ci0gICAgICAgICAg
ICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG5ld1JlcXVlc3QpOworICAg
ICAgICAgICAgICAgIGVuc3VyZU9uTWFpblRocmVhZChbcmVxdWVzdCA9IFJlc291cmNlUmVxdWVz
dCB7IG5ld1JlcXVlc3QgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFdURk1vdmUocmVxdWVzdCkpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICBbZGF0YURlbGVnYXRlIFVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAq
KXN0cm9uZ1NlbGYuZ2V0KCkuc2Vzc2lvbiB0YXNrOihOU1VSTFNlc3Npb25UYXNrICopc3Ryb25n
U2VsZi5nZXQoKSB3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbjooTlNIVFRQVVJMUmVzcG9uc2Ug
KilyZXNwb25zZS5nZXQoKSBuZXdSZXF1ZXN0OnJlcXVlc3QubnNVUkxSZXF1ZXN0KEhUVFBCb2R5
VXBkYXRlUG9saWN5OjpEb05vdFVwZGF0ZUhUVFBCb2R5KSBjb21wbGV0aW9uSGFuZGxlcjpjb21w
bGV0aW9uSGFuZGxlckJsb2NrLmdldCgpXTsKICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwCmluZGV4
IDE5NTUxZjA5ZjdmMzU5OWY4NzIyOTcyMGE0MzhkZmRkYjNjYWM2YjAuLjQ2MzMwOTc3OTMxYzE0
ZTg2OTM3ZWFmNWIzN2FlYmRiNWY0YjgzYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcApAQCAtMTg5LDEwICsxODksOCBA
QCB2b2lkIEN1cmxSZXF1ZXN0OjpydW5Pbk1haW5UaHJlYWQoRnVuY3Rpb248dm9pZCgpPiYmIHRh
c2spCiB7CiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQogICAgICAgICBtX21lc3NhZ2VRdWV1ZS0+
YXBwZW5kKG1ha2VVbmlxdWU8RnVuY3Rpb248dm9pZCgpPj4oV1RGTW92ZSh0YXNrKSkpOwotICAg
IGVsc2UgaWYgKGlzTWFpblRocmVhZCgpKQotICAgICAgICB0YXNrKCk7CiAgICAgZWxzZQotICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFdURk1vdmUodGFzaykpOworICAgICAgICBlbnN1cmVPbk1h
aW5UaHJlYWQoV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHZvaWQgQ3VybFJlcXVlc3Q6OnJ1bk9uV29y
a2VyVGhyZWFkSWZSZXF1aXJlZChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCmluZGV4IDgwNmNiMDk5NWQw
YTA3YzcxODI3MWQyMTA1MDcwMzk4YzQwM2JjODEuLjJmYzEyMTY2MzJmZjg5ZWY0Y2RhYjgyOWI2
ZjM4ZmUzODRiY2IxZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9T
dG9yYWdlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3Jh
Z2VUcmFja2VyLmNwcApAQCAtMjk5LDE1ICsyOTksMTAgQEAgdm9pZCBTdG9yYWdlVHJhY2tlcjo6
c2V0T3JpZ2luRGV0YWlscyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0
cmkKICAgICAgICAgc3luY1NldE9yaWdpbkRldGFpbHMob3JpZ2luSWRlbnRpZmllciwgZGF0YWJh
c2VGaWxlKTsKICAgICB9OwogCi0gICAgaWYgKGlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgIEFT
U0VSVChtX3RocmVhZCk7CisgICAgLy8gRklYTUU6IFRoaXMgd2VpcmQgcGluZy1wb25naW5nIHdh
cyBkb25lIHRvIGZpeCBhIGRlYWRsb2NrLiBXZSBzaG91bGQgZmlndXJlIG91dCBhIGNsZWFuZXIg
d2F5IHRvIGF2b2lkIGl0IGluc3RlYWQuCisgICAgZW5zdXJlT25NYWluVGhyZWFkKFt0aGlzLCBm
dW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSgpIG11dGFibGUgewogICAgICAgICBtX3RocmVh
ZC0+ZGlzcGF0Y2goV1RGTW92ZShmdW5jdGlvbikpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8v
IEZJWE1FOiBUaGlzIHdlaXJkIHBpbmctcG9uZ2luZyB3YXMgZG9uZSB0byBmaXggYSBkZWFkbG9j
ay4gV2Ugc2hvdWxkIGZpZ3VyZSBvdXQgYSBjbGVhbmVyIHdheSB0byBhdm9pZCBpdCBpbnN0ZWFk
LgotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVu
Y3Rpb24pXSgpIG11dGFibGUgewotICAgICAgICAgICAgbV90aHJlYWQtPmRpc3BhdGNoKFdURk1v
dmUoZnVuY3Rpb24pKTsKLSAgICAgICAgfSk7Ci0gICAgfQorICAgIH0pOwogfQogCiB2b2lkIFN0
b3JhZ2VUcmFja2VyOjpzeW5jU2V0T3JpZ2luRGV0YWlscyhjb25zdCBTdHJpbmcmIG9yaWdpbklk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VGaWxlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>