<?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>198404</bug_id>
          
          <creation_ts>2019-05-30 18:53:05 -0700</creation_ts>
          <short_desc>Use an OptionSet&lt;&gt; for GraphicsLayerPaintingPhase</short_desc>
          <delta_ts>2019-05-31 07:53:38 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1540571</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-30 18:53:05 -0700</bug_when>
    <thetext>Use an OptionSet&lt;&gt; for GraphicsLayerPaintingPhase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540572</commentid>
    <comment_count>1</comment_count>
      <attachid>371014</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-30 18:53:51 -0700</bug_when>
    <thetext>Created attachment 371014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540615</commentid>
    <comment_count>2</comment_count>
      <attachid>371028</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-05-30 20:58:55 -0700</bug_when>
    <thetext>Created attachment 371028
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540646</commentid>
    <comment_count>3</comment_count>
      <attachid>371028</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-30 22:50:56 -0700</bug_when>
    <thetext>Comment on attachment 371028
Patch

Clearing flags on attachment: 371028

Committed r245950: &lt;https://trac.webkit.org/changeset/245950&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540717</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-31 07:53:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/51301653&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371014</attachid>
            <date>2019-05-30 18:53:51 -0700</date>
            <delta_ts>2019-05-30 18:54:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198404-20190530185350.patch</filename>
            <type>text/plain</type>
            <size>25998</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1OTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVmOTE4Nzk2MzJkYTc2
OTQ2MDEyYzk5NmU2YzUwNjgxMjg5ZmQ2YS4uYWNhYTBhY2RlOGUxODIyZjVlM2U5NDI0M2IxNjU0
NmQ5YzYwYzlkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE5LTA1LTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBhbiBPcHRp
b25TZXQ8PiBmb3IgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgR3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2Ugd2l0aCBPcHRpb25TZXQ8R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U+LgorCisg
ICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBhZ2UvUGFnZU92ZXJsYXlD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxlcjo6
c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJs
YXlDb250cm9sbGVyOjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVy
bGF5Q29udHJvbGxlcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZCk6CisgICAgICAgICogcGFnZS9QYWdl
T3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyLmg6CisgICAgICAgICogcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hs
aWdodDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpkdW1wUHJvcGVy
dGllcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6cGFpbnRpbmdQaGFzZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpzZXRQYWludGluZ1BoYXNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50OjpwYWludENvbnRlbnRzKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQmFja2luZzo6dXBkYXRlRm9yZWdyb3VuZExheWVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQmFja2dyb3VuZExheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlTWFza2luZ0xheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0
ZWd5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlU2Nyb2xs
aW5nTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6cGFpbnRp
bmdQaGFzZUZvclByaW1hcnlMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQmFja2luZzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWludENvbnRl
bnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6CisKIDIw
MTktMDUtMzAgIEp1c3RpbiBGYW4gIDxqdXN0aW5fZmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBb
V2ViIEdQVV0gVmVydGV4IEJ1ZmZlcnMvSW5wdXQgU3RhdGUgQVBJIHVwZGF0ZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAppbmRleCBjNWJkYjgyM2Zh
NzVmYTFiY2E2MWVkNzQ5MTE4NTg5NGQyYzVhZDJiLi4wYzAzMzE1YThkZWE5ODdiNjUzYzAzY2Fm
NTdjNDg4MWVjOGQwNjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVy
bGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuY3BwCkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xs
ZXI6OnVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpCiAj
ZW5kaWYKIH0KIAotdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNldFBhZ2VPdmVybGF5TmVl
ZHNEaXNwbGF5KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBk
aXJ0eVJlY3QpCit2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6c2V0UGFnZU92ZXJsYXlOZWVk
c0Rpc3BsYXkoUGFnZU92ZXJsYXkmIG92ZXJsYXksIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkK
IHsKICAgICBBU1NFUlQobV9wYWdlT3ZlcmxheXMuY29udGFpbnMoJm92ZXJsYXkpKTsKICAgICBh
dXRvKiBncmFwaGljc0xheWVyID0gbV9vdmVybGF5R3JhcGhpY3NMYXllcnMuZ2V0KCZvdmVybGF5
KTsKQEAgLTM5MSw3ICszOTEsNyBAQCBWZWN0b3I8U3RyaW5nPiBQYWdlT3ZlcmxheUNvbnRyb2xs
ZXI6OmNvcHlBY2Nlc3NpYmlsaXR5QXR0cmlidXRlc05hbWVzKGJvb2wgcGFyYQogICAgIHJldHVy
biB7IH07CiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpwYWludENvbnRlbnRzKGNv
bnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dCYgZ3JhcGhpY3NDb250ZXh0LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjbGlwUmVjdCwgR3JhcGhpY3NMYXll
clBhaW50QmVoYXZpb3IpCit2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6cGFpbnRDb250ZW50
cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGdy
YXBoaWNzQ29udGV4dCwgT3B0aW9uU2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPiwgY29u
c3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpCiB7CiAg
ICAgZm9yIChhdXRvJiBvdmVybGF5QW5kR3JhcGhpY3NMYXllciA6IG1fb3ZlcmxheUdyYXBoaWNz
TGF5ZXJzKSB7CiAgICAgICAgIGlmIChvdmVybGF5QW5kR3JhcGhpY3NMYXllci52YWx1ZS5wdHIo
KSAhPSBncmFwaGljc0xheWVyKQpAQCAtNDEwLDcgKzQxMCw3IEBAIGZsb2F0IFBhZ2VPdmVybGF5
Q29udHJvbGxlcjo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogICAgIHJldHVybiBtX3BhZ2Uu
ZGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0KIAotdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Om5v
dGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCit2b2lkIFBh
Z2VPdmVybGF5Q29udHJvbGxlcjo6bm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xh
eWVyKikKIHsKICAgICBtX3BhZ2UucmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2NoZWR1bGVS
ZW5kZXJpbmdVcGRhdGUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5oCmluZGV4IDgyN2I3YTEwNDMyMjhmYzU2MGI1M2YyOWZiMjgxNzM1ZjM2ZmQ2Njcu
LjY0ZTkwZTJjNDcxY2IzZThlYmE2NjRhMjc0MzNiNGUzOTBmYTFmYjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtOTMsNyArOTMsNyBAQCBwcml2
YXRlOgogCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgIHZvaWQgbm90aWZ5Rmx1c2hS
ZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwYWludENv
bnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgR3JhcGhpY3NMYXll
clBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOworICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBH
cmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgT3B0aW9uU2V0PEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlPiwgY29uc3QgRmxvYXRSZWN0JiBjbGlwUmVjdCwgR3JhcGhpY3NMYXllclBh
aW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRTa2lwTGF5ZXJJbkR1bXAoY29uc3QgR3JhcGhp
Y3NMYXllciosIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIHRpbGVkQmFja2luZ1VzYWdlQ2hhbmdlZChjb25zdCBHcmFwaGljc0xheWVyKiwgYm9vbCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyLmgKaW5kZXggOGY4YTVmYjQ0M2ViMjNlNGEzYzdmOWE4YWJlN2EyYTBmNDVm
MTg5My4uMmMwMTY5OGQ5ZGYwNWJjNzRlY2JkNGQzNThlOGQ0YTEwMDFhYjc3MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApA
QCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGll
bnQKICAgICAgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
KSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3Qg
RmxvYXRSZWN0JiBpbkNsaXAsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsK
KyAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
c0NvbnRleHQmLCBPcHRpb25TZXQ8R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U+LCBjb25zdCBG
bG9hdFJlY3QmIGluQ2xpcCwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwog
ICAgICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
ICAgIHZvaWQgZGlkRmluaXNoRmFkZU91dEFuaW1hdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KaW5kZXggOTNiMjQx
NzFiODUzOWZmNzg1ZjAxZGM3Njk0OTM1YzJlM2M1NjZlMS4uMjJiNjVkOWFjZmI5ZWQ3YWIzYmY1
YTQyNTQ1Y2UwNWE1Yjc5ODFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
U2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6Om5vdGlmeUZsdXNoUmVxdWlyZWQo
Y29uc3QgR3JhcGhpY3NMYXkKICAgICBtX2NvbnRyb2xsZXItPnBhZ2UoKS5yZW5kZXJpbmdVcGRh
dGVTY2hlZHVsZXIoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCi12b2lkIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFw
aGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmLCBHcmFwaGljc0xheWVyUGFpbnRCZWhh
dmlvcikKK3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpwYWludENv
bnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29u
dGV4dCwgT3B0aW9uU2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPiwgY29uc3QgRmxvYXRS
ZWN0JiwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpCiB7CiAgICAgaWYgKCFEYXRhRGV0ZWN0
b3JzTGlicmFyeSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDczNDJlNDRiNGYyNTIzZDk5
NjY0NTc0ZDZjZDVhZWVhOWMyZDEyOTUuLjU1NjhmNGE4NmUzMzQ3MzFhOThmMDVhMzZjZWIwNDNk
ZDhiYWEwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCkBAIC05MzUsMjIgKzkzNSwyMiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6
OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBi
ZWhhdgogICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1Bo
YXNlcyAmJiBwYWludGluZ1BoYXNlKCkpIHsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIocGFp
bnRpbmdQaGFzZXNcbiI7CiAgICAgICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNj
b3BlKHRzKTsKLSAgICAgICAgaWYgKHBhaW50aW5nUGhhc2UoKSAmIEdyYXBoaWNzTGF5ZXJQYWlu
dEJhY2tncm91bmQpCisgICAgICAgIGlmIChwYWludGluZ1BoYXNlKCkuY29udGFpbnMoR3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2U6OkJhY2tncm91bmQpKQogICAgICAgICAgICAgdHMgPDwgaW5k
ZW50IDw8ICJHcmFwaGljc0xheWVyUGFpbnRCYWNrZ3JvdW5kXG4iOwogCi0gICAgICAgIGlmIChw
YWludGluZ1BoYXNlKCkgJiBHcmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kKQorICAgICAgICBp
ZiAocGFpbnRpbmdQaGFzZSgpLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpG
b3JlZ3JvdW5kKSkKICAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiR3JhcGhpY3NMYXllclBh
aW50Rm9yZWdyb3VuZFxuIjsKIAotICAgICAgICBpZiAocGFpbnRpbmdQaGFzZSgpICYgR3JhcGhp
Y3NMYXllclBhaW50TWFzaykKKyAgICAgICAgaWYgKHBhaW50aW5nUGhhc2UoKS5jb250YWlucyhH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6TWFzaykpCiAgICAgICAgICAgICB0cyA8PCBpbmRl
bnQgPDwgIkdyYXBoaWNzTGF5ZXJQYWludE1hc2tcbiI7CiAKLSAgICAgICAgaWYgKHBhaW50aW5n
UGhhc2UoKSAmIEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKQorICAgICAgICBp
ZiAocGFpbnRpbmdQaGFzZSgpLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpD
aGlsZENsaXBwaW5nTWFzaykpCiAgICAgICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIkdyYXBoaWNz
TGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrXG4iOwogCi0gICAgICAgIGlmIChwYWludGluZ1Bo
YXNlKCkgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzKQorICAgICAgICBpZiAo
cGFpbnRpbmdQaGFzZSgpLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpPdmVy
Zmxvd0NvbnRlbnRzKSkKICAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiR3JhcGhpY3NMYXll
clBhaW50T3ZlcmZsb3dDb250ZW50c1xuIjsKIAotICAgICAgICBpZiAocGFpbnRpbmdQaGFzZSgp
ICYgR3JhcGhpY3NMYXllclBhaW50Q29tcG9zaXRlZFNjcm9sbCkKKyAgICAgICAgaWYgKHBhaW50
aW5nUGhhc2UoKS5jb250YWlucyhHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q29tcG9zaXRl
ZFNjcm9sbCkpCiAgICAgICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIkdyYXBoaWNzTGF5ZXJQYWlu
dENvbXBvc2l0ZWRTY3JvbGxcbiI7CiAKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmlu
ZGV4IDdlMTZkOWU1MWZkMmM5MTIyYzY5MjgzZTMzM2M5ZmFjMjZmMjZiMzEuLmU0ODQzNGVkNGM0
OTgwMTIzMWU2Y2JkZjNlOGRkNDI4MTZhMWIzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTQxNCw4ICs0MTQsOCBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogICAgIC8vIFNvbWUgR3JhcGhpY3NMYXllcnMgcGFpbnQgb25seSB0aGUg
Zm9yZWdyb3VuZCBvciB0aGUgYmFja2dyb3VuZCBjb250ZW50Ci0gICAgR3JhcGhpY3NMYXllclBh
aW50aW5nUGhhc2UgcGFpbnRpbmdQaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRpbmdQaGFz
ZTsgfQotICAgIHZvaWQgc2V0UGFpbnRpbmdQaGFzZShHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFz
ZSBwaGFzZSkgeyBtX3BhaW50aW5nUGhhc2UgPSBwaGFzZTsgfQorICAgIE9wdGlvblNldDxHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZT4gcGFpbnRpbmdQaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cGFpbnRpbmdQaGFzZTsgfQorICAgIHZvaWQgc2V0UGFpbnRpbmdQaGFzZShPcHRpb25TZXQ8R3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2U+IHBoYXNlKSB7IG1fcGFpbnRpbmdQaGFzZSA9IHBoYXNl
OyB9CiAKICAgICBlbnVtIFNob3VsZENsaXBUb0xheWVyIHsKICAgICAgICAgRG9Ob3RDbGlwVG9M
YXllciwKQEAgLTY5MSw3ICs2OTEsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjb25zdCBUeXBlIG1f
dHlwZTsKICAgICBDdXN0b21BcHBlYXJhbmNlIG1fY3VzdG9tQXBwZWFyYW5jZSB7IEN1c3RvbUFw
cGVhcmFuY2U6Ok5vbmUgfTsKLSAgICBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBtX3BhaW50
aW5nUGhhc2UgeyBHcmFwaGljc0xheWVyUGFpbnRBbGxXaXRoT3ZlcmZsb3dDbGlwIH07CisgICAg
T3B0aW9uU2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPiBtX3BhaW50aW5nUGhhc2UgeyBH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Rm9yZWdyb3VuZCwgR3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2U6OkJhY2tncm91bmQgfTsKICAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50
YXRpb24gbV9jb250ZW50c09yaWVudGF0aW9uIHsgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVu
dGF0aW9uOjpUb3BEb3duIH07IC8vIGFmZmVjdHMgb3JpZW50YXRpb24gb2YgbGF5ZXIgY29udGVu
dHMKIAogICAgIGJvb2wgbV9iZWluZ0Rlc3Ryb3llZCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggODY3
MmQwZjRhYjIyZGFkZTBjOTA5YzRjNTNhYzZmZmQyZWQ3NGZkNS4uNTNmY2IyODJkZjA0MGViY2Rj
MTVlNjE3NGU1ZTBjZDMzNzY0NWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaApAQCAtMzgsMTcgKzM4LDE1IEBA
IGNsYXNzIEludFBvaW50OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0
cml4OwogCi1lbnVtIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlRmxhZ3MgewotICAgIEdyYXBo
aWNzTGF5ZXJQYWludEJhY2tncm91bmQgICAgICAgICAgICA9IDEgPDwgMCwKLSAgICBHcmFwaGlj
c0xheWVyUGFpbnRGb3JlZ3JvdW5kICAgICAgICAgICAgPSAxIDw8IDEsCi0gICAgR3JhcGhpY3NM
YXllclBhaW50TWFzayAgICAgICAgICAgICAgICAgID0gMSA8PCAyLAotICAgIEdyYXBoaWNzTGF5
ZXJQYWludENsaXBQYXRoICAgICAgICAgICAgICA9IDEgPDwgMywKLSAgICBHcmFwaGljc0xheWVy
UGFpbnRPdmVyZmxvd0NvbnRlbnRzICAgICAgPSAxIDw8IDQsCi0gICAgR3JhcGhpY3NMYXllclBh
aW50Q29tcG9zaXRlZFNjcm9sbCAgICAgID0gMSA8PCA1LAotICAgIEdyYXBoaWNzTGF5ZXJQYWlu
dENoaWxkQ2xpcHBpbmdNYXNrICAgICA9IDEgPDwgNiwKLSAgICBHcmFwaGljc0xheWVyUGFpbnRB
bGxXaXRoT3ZlcmZsb3dDbGlwICAgPSBHcmFwaGljc0xheWVyUGFpbnRCYWNrZ3JvdW5kIHwgR3Jh
cGhpY3NMYXllclBhaW50Rm9yZWdyb3VuZAorZW51bSBjbGFzcyBHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSB7CisgICAgQmFja2dyb3VuZCAgICAgICAgICAgID0gMSA8PCAwLAorICAgIEZvcmVn
cm91bmQgICAgICAgICAgICA9IDEgPDwgMSwKKyAgICBNYXNrICAgICAgICAgICAgICAgICAgPSAx
IDw8IDIsCisgICAgQ2xpcFBhdGggICAgICAgICAgICAgID0gMSA8PCAzLAorICAgIE92ZXJmbG93
Q29udGVudHMgICAgICA9IDEgPDwgNCwKKyAgICBDb21wb3NpdGVkU2Nyb2xsICAgICAgPSAxIDw8
IDUsCisgICAgQ2hpbGRDbGlwcGluZ01hc2sgICAgID0gMSA8PCA2LAogfTsKLXR5cGVkZWYgdWlu
dDhfdCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTsKIAogZW51bSBBbmltYXRlZFByb3BlcnR5
SUQgewogICAgIEFuaW1hdGVkUHJvcGVydHlJbnZhbGlkLApAQCAtMTAyLDcgKzEwMCw3IEBAIHB1
YmxpYzoKICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0aGlzIGxheWVyIHJlcXVpcmVzIGEgZmx1
c2ggYmVmb3JlIHRoZSBuZXh0IGRpc3BsYXkgcmVmcmVzaC4KICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3Jh
cGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVj
dCYgLyogaW5DbGlwICovLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgeyB9CisgICAgdmly
dHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29u
dGV4dCYsIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4sIGNvbnN0IEZsb2F0
UmVjdCYgLyogaW5DbGlwICovLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGRpZENoYW5nZVBsYXRmb3JtTGF5ZXJGb3JMYXllcihjb25zdCBHcmFwaGlj
c0xheWVyKikgeyB9CiAKICAgICAvLyBQcm92aWRlcyBjdXJyZW50IHRyYW5zZm9ybSAodGFraW5n
IHRyYW5zZm9ybS1vcmlnaW4gYW5kIGFuaW1hdGlvbnMgaW50byBhY2NvdW50KS4gSW5wdXQgbWF0
cml4IGhhcyBiZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCmluZGV4IDA0OGJlZTE5Y2JiOTFhZjE5ZGNlZTc4Mzg0NDU2ZTY2OGI2MGYzNzAu
LmZjYWY5YzdjM2NhNzQ2YWIwOWYzMjMzYzE4YmQ4YTQwZTdlYzAwODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNzA5LDcgKzE3
MDksNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRm9yZWdyb3VuZExheWVyKGJv
b2wgbmVlZHNGb3JlZ3JvdW5kTGF5ZXIpCiAgICAgICAgICAgICBTdHJpbmcgbGF5ZXJOYW1lID0g
bV9vd25pbmdMYXllci5uYW1lKCkgKyAiIChmb3JlZ3JvdW5kKSI7CiAgICAgICAgICAgICBtX2Zv
cmVncm91bmRMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIobGF5ZXJOYW1lKTsKICAgICAgICAg
ICAgIG1fZm9yZWdyb3VuZExheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7Ci0gICAgICAgICAg
ICBtX2ZvcmVncm91bmRMYXllci0+c2V0UGFpbnRpbmdQaGFzZShHcmFwaGljc0xheWVyUGFpbnRG
b3JlZ3JvdW5kKTsKKyAgICAgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5zZXRQYWludGluZ1Bo
YXNlKHsgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkZvcmVncm91bmQgfSk7CiAgICAgICAg
ICAgICBsYXllckNoYW5nZWQgPSB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChtX2Zv
cmVncm91bmRMYXllcikgewpAQCAtMTczNSw3ICsxNzM1LDcgQEAgYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZUJhY2tncm91bmRMYXllcihib29sIG5lZWRzQmFja2dyb3VuZExheWVyKQog
ICAgICAgICAgICAgbV9iYWNrZ3JvdW5kTGF5ZXIgPSBjcmVhdGVHcmFwaGljc0xheWVyKGxheWVy
TmFtZSk7CiAgICAgICAgICAgICBtX2JhY2tncm91bmRMYXllci0+c2V0RHJhd3NDb250ZW50KHRy
dWUpOwogICAgICAgICAgICAgbV9iYWNrZ3JvdW5kTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0
UG9pbnQzRCgpKTsKLSAgICAgICAgICAgIG1fYmFja2dyb3VuZExheWVyLT5zZXRQYWludGluZ1Bo
YXNlKEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQpOworICAgICAgICAgICAgbV9iYWNrZ3Jv
dW5kTGF5ZXItPnNldFBhaW50aW5nUGhhc2UoeyBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6
QmFja2dyb3VuZCB9KTsKICAgICAgICAgICAgIGxheWVyQ2hhbmdlZCA9IHRydWU7CiAgICAgICAg
IH0KICAgICAgICAgCkBAIC0xNzcxLDE3ICsxNzcxLDE3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNr
aW5nOjp1cGRhdGVNYXNraW5nTGF5ZXIoYm9vbCBoYXNNYXNrLCBib29sIGhhc0NsaXBQYXRoKQog
ewogICAgIGJvb2wgbGF5ZXJDaGFuZ2VkID0gZmFsc2U7CiAgICAgaWYgKGhhc01hc2sgfHwgaGFz
Q2xpcFBhdGgpIHsKLSAgICAgICAgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgbWFza1BoYXNl
cyA9IDA7CisgICAgICAgIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4gbWFz
a1BoYXNlczsKICAgICAgICAgaWYgKGhhc01hc2spCi0gICAgICAgICAgICBtYXNrUGhhc2VzID0g
R3JhcGhpY3NMYXllclBhaW50TWFzazsKKyAgICAgICAgICAgIG1hc2tQaGFzZXMgPSBHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZTo6TWFzazsKICAgICAgICAgCiAgICAgICAgIGlmIChoYXNDbGlw
UGF0aCkgewogICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIG1hc2ssIHdlIG5lZWQgdG8gcGFp
bnQgdGhlIGNvbWJpbmVkIGNsaXAtcGF0aCBhbmQgbWFzayBpbnRvIHRoZSBtYXNrIGxheWVyLgog
ICAgICAgICAgICAgaWYgKGhhc01hc2sgfHwgcmVuZGVyZXIoKS5zdHlsZSgpLmNsaXBQYXRoKCkt
PnR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6UmVmZXJlbmNlIHx8ICFHcmFwaGljc0xheWVy
OjpzdXBwb3J0c0xheWVyVHlwZShHcmFwaGljc0xheWVyOjpUeXBlOjpTaGFwZSkpCi0gICAgICAg
ICAgICAgICAgbWFza1BoYXNlcyB8PSBHcmFwaGljc0xheWVyUGFpbnRDbGlwUGF0aDsKKyAgICAg
ICAgICAgICAgICBtYXNrUGhhc2VzLmFkZChHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q2xp
cFBhdGgpOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBwYWludHNDb250ZW50ID0gbWFza1Bo
YXNlczsKKyAgICAgICAgYm9vbCBwYWludHNDb250ZW50ID0gIW1hc2tQaGFzZXMuaXNFbXB0eSgp
OwogICAgICAgICBHcmFwaGljc0xheWVyOjpUeXBlIHJlcXVpcmVkTGF5ZXJUeXBlID0gcGFpbnRz
Q29udGVudCA/IEdyYXBoaWNzTGF5ZXI6OlR5cGU6Ok5vcm1hbCA6IEdyYXBoaWNzTGF5ZXI6OlR5
cGU6OlNoYXBlOwogICAgICAgICBpZiAobV9tYXNrTGF5ZXIgJiYgbV9tYXNrTGF5ZXItPnR5cGUo
KSAhPSByZXF1aXJlZExheWVyVHlwZSkgewogICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5z
ZXRNYXNrTGF5ZXIobnVsbHB0cik7CkBAIC0xODI1LDcgKzE4MjUsNyBAQCB2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KGJvb2wgbmVlZHNEZXNjZW5k
YW50c0NsaXBwaQogICAgICAgICAgICAgaWYgKCFtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsK
ICAgICAgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgPSBjcmVhdGVHcmFwaGlj
c0xheWVyKCJjaGlsZCBjbGlwcGluZyBtYXNrIik7CiAgICAgICAgICAgICAgICAgbV9jaGlsZENs
aXBwaW5nTWFza0xheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7Ci0gICAgICAgICAgICAgICAg
bV9jaGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRQYWludGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQ
YWludENoaWxkQ2xpcHBpbmdNYXNrKTsKKyAgICAgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdN
YXNrTGF5ZXItPnNldFBhaW50aW5nUGhhc2UoeyBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6
Q2hpbGRDbGlwcGluZ01hc2sgfSk7CiAgICAgICAgICAgICAgICAgY2xpcHBpbmdMYXllcigpLT5z
ZXRNYXNrTGF5ZXIobV9jaGlsZENsaXBwaW5nTWFza0xheWVyLmNvcHlSZWYoKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTE4NTYsMTAgKzE4NTYsMTAgQEAgYm9vbCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZVNjcm9sbGluZ0xheWVycyhib29sIG5lZWRzU2Nyb2xsaW5nTGF5ZXJz
KQogICAgICAgICBtX3Njcm9sbGVkQ29udGVudHNMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUp
OwogICAgICAgICBtX3Njcm9sbGVkQ29udGVudHNMYXllci0+c2V0QW5jaG9yUG9pbnQoeyB9KTsK
IAotICAgICAgICBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBwYWludFBoYXNlID0gR3JhcGhp
Y3NMYXllclBhaW50T3ZlcmZsb3dDb250ZW50cyB8IEdyYXBoaWNzTGF5ZXJQYWludENvbXBvc2l0
ZWRTY3JvbGw7CisgICAgICAgIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4g
cGFpbnRQaGFzZXMgPSB7IEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpPdmVyZmxvd0NvbnRl
bnRzLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q29tcG9zaXRlZFNjcm9sbCB9OwogICAg
ICAgICBpZiAoIW1fZm9yZWdyb3VuZExheWVyKQotICAgICAgICAgICAgcGFpbnRQaGFzZSB8PSBH
cmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kOwotICAgICAgICBtX3Njcm9sbGVkQ29udGVudHNM
YXllci0+c2V0UGFpbnRpbmdQaGFzZShwYWludFBoYXNlKTsKKyAgICAgICAgICAgIHBhaW50UGhh
c2VzLmFkZChHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Rm9yZWdyb3VuZCk7CisgICAgICAg
IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXRQYWludGluZ1BoYXNlKHBhaW50UGhhc2VzKTsK
ICAgICAgICAgbV9zY3JvbGxDb250YWluZXJMYXllci0+YWRkQ2hpbGQoKm1fc2Nyb2xsZWRDb250
ZW50c0xheWVyKTsKICAgICB9IGVsc2UgewogICAgICAgICBjb21wb3NpdG9yKCkud2lsbFJlbW92
ZVNjcm9sbGluZ0xheWVyV2l0aEJhY2tpbmcobV9vd25pbmdMYXllciwgKnRoaXMpOwpAQCAtMTkz
OSwyMCArMTkzOSwyMCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0SXNTY3JvbGxDb29y
ZGluYXRlZFdpdGhWaWV3cG9ydENvbnN0cmFpbmVkUm9sZShib29sCiAgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXRJc1ZpZXdwb3J0Q29uc3RyYWluZWQodmlld3BvcnRDb29yZGluYXRlZCk7CiB9CiAK
LUdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRpbmdQ
aGFzZUZvclByaW1hcnlMYXllcigpIGNvbnN0CitPcHRpb25TZXQ8R3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2U+IFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRpbmdQaGFzZUZvclByaW1hcnlMYXll
cigpIGNvbnN0CiB7Ci0gICAgdW5zaWduZWQgcGhhc2UgPSAwOworICAgIE9wdGlvblNldDxHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZT4gcGhhc2VzOwogICAgIGlmICghbV9iYWNrZ3JvdW5kTGF5
ZXIpCi0gICAgICAgIHBoYXNlIHw9IEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQ7CisgICAg
ICAgIHBoYXNlcy5hZGQoR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkJhY2tncm91bmQpOwog
ICAgIGlmICghbV9mb3JlZ3JvdW5kTGF5ZXIpCi0gICAgICAgIHBoYXNlIHw9IEdyYXBoaWNzTGF5
ZXJQYWludEZvcmVncm91bmQ7CisgICAgICAgIHBoYXNlcy5hZGQoR3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2U6OkZvcmVncm91bmQpOwogCiAgICAgaWYgKG1fc2Nyb2xsZWRDb250ZW50c0xheWVy
KSB7Ci0gICAgICAgIHBoYXNlICY9IH5HcmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kOwotICAg
ICAgICBwaGFzZSB8PSBHcmFwaGljc0xheWVyUGFpbnRDb21wb3NpdGVkU2Nyb2xsOworICAgICAg
ICBwaGFzZXMucmVtb3ZlKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpGb3JlZ3JvdW5kKTsK
KyAgICAgICAgcGhhc2VzLmFkZChHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q29tcG9zaXRl
ZFNjcm9sbCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlPihwaGFzZSk7CisgICAgcmV0dXJuIHBoYXNlczsKIH0KIAogZmxvYXQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpjb21wb3NpdGluZ09wYWNpdHkoZmxvYXQgcmVuZGVyZXJPcGFjaXR5
KSBjb25zdApAQCAtMjY0Niw5ICsyNjQ2LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNl
dENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgciwgR3JhcGgKIAog
dm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwKICAgICBjb25zdCBJ
bnRSZWN0JiBwYWludERpcnR5UmVjdCwgLy8gSW4gdGhlIGNvb3JkcyBvZiByb290TGF5ZXIuCi0g
ICAgT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+IHBhaW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2UpCisgICAgT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+
IHBhaW50QmVoYXZpb3IsIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4gcGFp
bnRpbmdQaGFzZSkKIHsKLSAgICBpZiAoKHBhaW50c0ludG9XaW5kb3coKSB8fCBwYWludHNJbnRv
Q29tcG9zaXRlZEFuY2VzdG9yKCkpICYmIHBhaW50aW5nUGhhc2UgIT0gR3JhcGhpY3NMYXllclBh
aW50Q2hpbGRDbGlwcGluZ01hc2spIHsKKyAgICBpZiAoKHBhaW50c0ludG9XaW5kb3coKSB8fCBw
YWludHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCkpICYmIHBhaW50aW5nUGhhc2UgIT0gT3B0aW9u
U2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPihHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFz
ZTo6Q2hpbGRDbGlwcGluZ01hc2spKSB7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYmICFP
UyhXSU5ET1dTKQogICAgICAgICAvLyBGSVhNRTogTG9va3MgbGlrZSB0aGUgQ0FMYXllciB0cmVl
IGlzIG91dCBvZiBzeW5jIHdpdGggdGhlIEdyYXBoaWNzTGF5ZXIgaGVpcmFyY2h5CiAgICAgICAg
IC8vIHdoZW4gcGFnZXMgYXJlIHJlc3RvcmVkIGZyb20gdGhlIFBhZ2VDYWNoZS4KQEAgLTI2NTks
MTkgKzI2NTksMTkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXAKICAgICB9CiAKICAgICBPcHRp
b25TZXQ8UmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJGbGFnPiBwYWludEZsYWdzOwotICAgIGlmIChw
YWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50QmFja2dyb3VuZCkKKyAgICBpZiAocGFp
bnRpbmdQaGFzZS5jb250YWlucyhHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6QmFja2dyb3Vu
ZCkpCiAgICAgICAgIHBhaW50RmxhZ3MuYWRkKFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRp
bmdDb21wb3NpdGluZ0JhY2tncm91bmRQaGFzZSk7Ci0gICAgaWYgKHBhaW50aW5nUGhhc2UgJiBH
cmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kKQorICAgIGlmIChwYWludGluZ1BoYXNlLmNvbnRh
aW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpGb3JlZ3JvdW5kKSkKICAgICAgICAgcGFp
bnRGbGFncy5hZGQoUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nRm9y
ZWdyb3VuZFBoYXNlKTsKLSAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWlu
dE1hc2spCisgICAgaWYgKHBhaW50aW5nUGhhc2UuY29udGFpbnMoR3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2U6Ok1hc2spKQogICAgICAgICBwYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFp
bnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdNYXNrUGhhc2UpOwotICAgIGlmIChwYWludGluZ1Bo
YXNlICYgR3JhcGhpY3NMYXllclBhaW50Q2xpcFBhdGgpCisgICAgaWYgKHBhaW50aW5nUGhhc2Uu
Y29udGFpbnMoR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkNsaXBQYXRoKSkKICAgICAgICAg
cGFpbnRGbGFncy5hZGQoUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5n
Q2xpcFBhdGhQaGFzZSk7Ci0gICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFp
bnRDaGlsZENsaXBwaW5nTWFzaykKKyAgICBpZiAocGFpbnRpbmdQaGFzZS5jb250YWlucyhHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q2hpbGRDbGlwcGluZ01hc2spKQogICAgICAgICBwYWlu
dEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ2hpbGRDbGlwcGluZ01h
c2tQaGFzZSk7Ci0gICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVy
Zmxvd0NvbnRlbnRzKQorICAgIGlmIChwYWludGluZ1BoYXNlLmNvbnRhaW5zKEdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlOjpPdmVyZmxvd0NvbnRlbnRzKSkKICAgICAgICAgcGFpbnRGbGFncy5h
ZGQoUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ092ZXJmbG93Q29udGVudHMpOwotICAg
IGlmIChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50Q29tcG9zaXRlZFNjcm9sbCkK
KyAgICBpZiAocGFpbnRpbmdQaGFzZS5jb250YWlucyhHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFz
ZTo6Q29tcG9zaXRlZFNjcm9sbCkpCiAgICAgICAgIHBhaW50RmxhZ3MuYWRkKFJlbmRlckxheWVy
OjpQYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ1Njcm9sbGluZ1BoYXNlKTsKIAogICAgIGlm
IChncmFwaGljc0xheWVyID09IG1fYmFja2dyb3VuZExheWVyLmdldCgpICYmIG1fYmFja2dyb3Vu
ZExheWVyUGFpbnRzRml4ZWRSb290QmFja2dyb3VuZCkKQEAgLTI3MTgsNyArMjcxOCw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVy
KiBncmFwaGljc0xheWVyLCBHcmFwCiAgICAgICAgICAgICBSZW5kZXJMYXllcjo6UGFpbnRMYXll
clBhaW50aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5kUGhhc2UsCiAgICAgICAgICAgICBSZW5kZXJM
YXllcjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5kUGhhc2UgfTsKIAot
ICAgICAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29u
dGVudHMpCisgICAgICAgIGlmIChwYWludGluZ1BoYXNlLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlOjpPdmVyZmxvd0NvbnRlbnRzKSkKICAgICAgICAgICAgIHNoYXJpbmdMYXll
clBhaW50RmxhZ3MuYWRkKFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0Nv
bnRlbnRzKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxheWVyV2Vha1B0ciA6IG1fYmFja2luZ1No
YXJpbmdMYXllcnMpCkBAIC0yNzI5LDcgKzI3MjksNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3Jh
cAogfQogCiAvLyBVcC1jYWxsIGZyb20gY29tcG9zaXRpbmcgbGF5ZXIgZHJhd2luZyBjYWxsYmFj
ay4KLXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UgcGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwLCBH
cmFwaGljc0xheWVyUGFpbnRCZWhhdmlvciBsYXllclBhaW50QmVoYXZpb3IpCit2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE9wdGlvblNldDxHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZT4gcGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFw
aGljc0xheWVyUGFpbnRCZWhhdmlvciBsYXllclBhaW50QmVoYXZpb3IpCiB7CiAjaWZuZGVmIE5E
RUJVRwogICAgIHJlbmRlcmVyKCkucGFnZSgpLnNldElzUGFpbnRpbmcodHJ1ZSk7CkBAIC0yNzU0
LDcgKzI3NTQsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25z
dCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaAogICAgICAgICB8fCBncmFwaGlj
c0xheWVyID09IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci5nZXQoKQogICAgICAgICB8fCBncmFw
aGljc0xheWVyID09IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLmdldCgpKSB7CiAKLSAgICAgICAg
aWYgKCEocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHMp
KQorICAgICAgICBpZiAoIXBhaW50aW5nUGhhc2UuY29udGFpbnMoR3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2U6Ok92ZXJmbG93Q29udGVudHMpKQogICAgICAgICAgICAgZGlydHlSZWN0LmludGVy
c2VjdChlbmNsb3NpbmdJbnRSZWN0KGNvbXBvc2l0ZWRCb3VuZHNJbmNsdWRpbmdNYXJnaW4oKSkp
OwogCiAgICAgICAgIC8vIFdlIGhhdmUgdG8gdXNlIHRoZSBzYW1lIHJvb3QgYXMgZm9yIGhpdCB0
ZXN0aW5nLCBiZWNhdXNlIGJvdGggbWV0aG9kcyBjYW4gY29tcHV0ZSBhbmQgY2FjaGUgY2xpcFJl
Y3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmlu
ZGV4IDEzMmU1YTNlNjA2Y2ZmNWJlMjE1NDEyOWIzYzVlMzkzOGEwYjc4MzIuLjUxNzVmMTljNGEw
NTZlMTg3N2RlNmJjNThkNDFlY2FlMTEyYWQ5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTIzNSw3ICsyMzUsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlk
ZTsKICAgICB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlOwogCi0gICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwg
Y29uc3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
c0NvbnRleHQmLCBPcHRpb25TZXQ8R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U+LCBjb25zdCBG
bG9hdFJlY3QmIGNsaXAsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKIAog
ICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZmxvYXQg
Y29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhjb25zdCBHcmFwaGljc0xheWVyKikg
Y29uc3Qgb3ZlcnJpZGU7CkBAIC0zMzMsNyArMzMzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
c2V0QmFja2dyb3VuZExheWVyUGFpbnRzRml4ZWRSb290QmFja2dyb3VuZChib29sKTsKIAotICAg
IEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2VGb3JQcmltYXJ5TGF5ZXIo
KSBjb25zdDsKKyAgICBPcHRpb25TZXQ8R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U+IHBhaW50
aW5nUGhhc2VGb3JQcmltYXJ5TGF5ZXIoKSBjb25zdDsKICAgICAKICAgICBMYXlvdXRTaXplIGNv
bnRlbnRPZmZzZXRJbkNvbXBvc2l0aW5nTGF5ZXIoKSBjb25zdDsKICAgICAvLyBSZXN1bHQgaXMg
dHJhbnNmb3JtIG9yaWdpbiBpbiBkZXZpY2UgcGl4ZWxzLgpAQCAtMzg1LDcgKzM4NSw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBoYXNUaWxlZEJhY2tpbmdGbGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7
IHJldHVybiAobV9jaGlsZENvbnRhaW5tZW50TGF5ZXIgJiYgbV9pc0ZyYW1lTGF5ZXJXaXRoVGls
ZWRCYWNraW5nKTsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIHRpbGVDYWNoZUZsYXR0ZW5pbmdMYXll
cigpIGNvbnN0IHsgcmV0dXJuIG1faXNGcmFtZUxheWVyV2l0aFRpbGVkQmFja2luZyA/IG1fY2hp
bGRDb250YWlubWVudExheWVyLmdldCgpIDogbnVsbHB0cjsgfQogCi0gICAgdm9pZCBwYWludElu
dG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50
UmVjdCYgcGFpbnREaXJ0eVJlY3QsIE9wdGlvblNldDxQYWludEJlaGF2aW9yPiwgR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2UpOworICAgIHZvaWQgcGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIHBhaW50RGlydHlSZWN0
LCBPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4sIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZT4pOwogCiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgZ3JhcGhpY3NMYXllclRvQ1NT
UHJvcGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgQW5pbWF0ZWRQcm9wZXJ0
eUlEIGNzc1RvR3JhcGhpY3NMYXllclByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBj
OTVlMzE4MTQwYjJkMjVkYzcyNWUwNjc3Y2YxZDk1ZDVkMDNkNzIwLi43OGNjMTg1N2FlN2JhM2E2
MTYwMTNhZjg3NDA0NWQ5ZjQ1YTVkMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMzI3NCw3ICszMjc0LDcgQEAgdm9p
ZCBwYWludFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBJbnRSZWMKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0KIAotdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFp
bnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhh
dmlvcikKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWludENvbnRlbnRzKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgT3B0
aW9uU2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPiwgY29uc3QgRmxvYXRSZWN0JiBjbGlw
LCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAg
TG9jYWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UobV9yZW5kZXJWaWV3
LnVzZURhcmtBcHBlYXJhbmNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDU2OGFiNGQzNzc3ZjFmY2Q0OWI2ZTk4NzU5OWFm
MWVkYWNkMTkwZjIuLjkxMzQ3NzliZjA5NGEzOWFlYjg1ODNkZGQwM2UyYmM1YTgzZDI4ZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgK
QEAgLTM3Nyw3ICszNzcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJD
bGllbnQgaW1wbGVtZW50YXRpb24KICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBH
cmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhh
c2UsIGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNz
Q29udGV4dCYsIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4sIGNvbnN0IEZs
b2F0UmVjdCYsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2b2lk
IGN1c3RvbVBvc2l0aW9uRm9yVmlzaWJsZVJlY3RDb21wdXRhdGlvbihjb25zdCBHcmFwaGljc0xh
eWVyKiwgRmxvYXRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNUcmFja2luZ1Jl
cGFpbnRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1RyYWNraW5nUmVwYWludHM7IH0K
ICAgICAK
</data>
<flag name="review"
          id="386906"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371028</attachid>
            <date>2019-05-30 20:58:55 -0700</date>
            <delta_ts>2019-05-30 22:50:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198404-20190530205854.patch</filename>
            <type>text/plain</type>
            <size>31620</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1OTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVmOTE4Nzk2MzJkYTc2
OTQ2MDEyYzk5NmU2YzUwNjgxMjg5ZmQ2YS4uZTU4ZTcxZWRjMmE2NzRmYzgyNGM5NGRiZjAxZTg3
OTI0NWNjMjU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTA1LTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBhbiBPcHRp
b25TZXQ8PiBmb3IgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgUmVwbGFjZSBHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSB3aXRoIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4uCisKKyAgICAg
ICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGFnZS9QYWdlT3ZlcmxheUNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlDb250cm9sbGVyOjpzZXRQ
YWdlT3ZlcmxheU5lZWRzRGlzcGxheSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNv
bnRyb2xsZXI6OnBhaW50Q29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXlD
b250cm9sbGVyOjpub3RpZnlGbHVzaFJlcXVpcmVkKToKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVy
bGF5Q29udHJvbGxlci5oOgorICAgICAgICAqIHBhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJs
YXlMaW51eC5jcHA6CisgICAgICAgICogcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ci5oOgorICAgICAgICAqIHBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW06Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OnBh
aW50Q29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6ZHVtcFByb3BlcnRpZXMgY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnBhaW50aW5nUGhhc2UgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0UGFpbnRpbmdQaGFzZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNsaWVudDo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZUZvcmVncm91bmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OnVwZGF0ZUJhY2tncm91bmRMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZU1hc2tpbmdMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNoaWxkQ2xpcHBpbmdTdHJhdGVneSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVNjcm9sbGluZ0xheWVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50aW5nUGhhc2VG
b3JQcmltYXJ5TGF5ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjpwYWludEludG9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFpbnRDb250ZW50cyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDE5LTA1LTMw
ICBKdXN0aW4gRmFuICA8anVzdGluX2ZhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBHUFVd
IFZlcnRleCBCdWZmZXJzL0lucHV0IFN0YXRlIEFQSSB1cGRhdGVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cKaW5kZXggOWRjMWYyZWRhMjE1Y2YyMmVmZjJhYzQzMThjZjMyMDczMDcxODc4Mi4u
MGE1ZmIzMTYwMTg5NjdhMTdhZGU1YzAzZmNjNWY5OWFjYTA5MjgxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTA1LTMwICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBhbiBPcHRpb25TZXQ8PiBm
b3IgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCisKKyAgICAgICAgUmVwbGFjZSBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSB3aXRo
IE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4uCisKKyAgICAgICAgTm8gYmVo
YXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRl
eHQ6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmdDb250ZXh0Lmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChX
ZWJWaWV3OjpwYWludENvbnRlbnRzKToKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMTktMDUt
MjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
U10gRHJvcHBlZCB0ZXh0LCBhdHRhY2htZW50cywgYW5kIGltYWdlcyBzaG91bGQgYW5pbWF0ZSBp
bnRvIHBsYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5j
cHAKaW5kZXggYzViZGI4MjNmYTc1ZmExYmNhNjFlZDc0OTExODU4OTRkMmM1YWQyYi4uMGMwMzMx
NWE4ZGVhOTg3YjY1M2MwM2NhZjU3YzQ4ODFlYzhkMDY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQg
UGFnZU92ZXJsYXlDb250cm9sbGVyOjp1cGRhdGVGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQ
b3NpdGlvblVwZGF0ZXMoKQogI2VuZGlmCiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVy
OjpzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSYgb3ZlcmxheSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgZGlydHlSZWN0KQordm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6
OnNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QpCiB7CiAgICAgQVNTRVJUKG1fcGFnZU92ZXJsYXlzLmNvbnRhaW5z
KCZvdmVybGF5KSk7CiAgICAgYXV0byogZ3JhcGhpY3NMYXllciA9IG1fb3ZlcmxheUdyYXBoaWNz
TGF5ZXJzLmdldCgmb3ZlcmxheSk7CkBAIC0zOTEsNyArMzkxLDcgQEAgVmVjdG9yPFN0cmluZz4g
UGFnZU92ZXJsYXlDb250cm9sbGVyOjpjb3B5QWNjZXNzaWJpbGl0eUF0dHJpYnV0ZXNOYW1lcyhi
b29sIHBhcmEKICAgICByZXR1cm4geyB9OwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxl
cjo6cGFpbnRDb250ZW50cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiBncmFwaGljc0xh
eWVyLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY2xp
cFJlY3QsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKQordm9pZCBQYWdlT3ZlcmxheUNvbnRy
b2xsZXI6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwg
R3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIE9wdGlvblNldDxHcmFwaGljc0xheWVy
UGFpbnRpbmdQaGFzZT4sIGNvbnN0IEZsb2F0UmVjdCYgY2xpcFJlY3QsIEdyYXBoaWNzTGF5ZXJQ
YWludEJlaGF2aW9yKQogewogICAgIGZvciAoYXV0byYgb3ZlcmxheUFuZEdyYXBoaWNzTGF5ZXIg
OiBtX292ZXJsYXlHcmFwaGljc0xheWVycykgewogICAgICAgICBpZiAob3ZlcmxheUFuZEdyYXBo
aWNzTGF5ZXIudmFsdWUucHRyKCkgIT0gZ3JhcGhpY3NMYXllcikKQEAgLTQxMCw3ICs0MTAsNyBA
QCBmbG9hdCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QK
ICAgICByZXR1cm4gbV9wYWdlLmRldmljZVNjYWxlRmFjdG9yKCk7CiB9CiAKLXZvaWQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKQordm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Om5vdGlmeUZsdXNoUmVxdWly
ZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB7CiAgICAgbV9wYWdlLnJlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlcigpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCA4MjdiN2ExMDQzMjI4ZmM1NjBiNTNm
MjlmYjI4MTczNWYzNmZkNjY3Li42NGU5MGUyYzQ3MWNiM2U4ZWJhNjY0YTI3NDMzYjRlMzkwZmEx
ZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAg
LTkzLDcgKzkzLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAg
ICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OwotICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3ND
b250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYgY2xp
cFJlY3QsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKKyAgICB2b2lkIHBh
aW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIE9wdGlv
blNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4sIGNvbnN0IEZsb2F0UmVjdCYgY2xpcFJl
Y3QsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkU2tpcExheWVy
SW5EdW1wKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBMYXllclRyZWVBc1RleHRCZWhhdmlvcikgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aWxlZEJhY2tpbmdVc2FnZUNoYW5nZWQoY29uc3QgR3Jh
cGhpY3NMYXllciosIGJvb2wpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKaW5kZXggYTgyNGU1M2Zj
ODk5ZTY3Y2ViZGI1NjQ2MGUxOTkwMWM4MGMyZjY4Zi4uNGZkZjc1NmMwMjE5ODg1MzNiMmYxMjU1
YzkxYTRlY2M5MTQ4NGZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9S
ZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xp
bnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCkBAIC04NCw3ICs4NCw3IEBAIHB1Ymxp
YzoKICAgICB+UmVzb3VyY2VVc2FnZU92ZXJsYXlQYWludGVyKCkgPSBkZWZhdWx0OwogCiBwcml2
YXRlOgotICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxv
YXRSZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGUKKyAgICB2
b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgT3B0aW9uU2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPiwgY29uc3QgRmxv
YXRSZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGUKICAgICB7
CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsK
ICAgICAgICAgY29udGV4dC5maWxsUmVjdChjbGlwLCBDb2xvcigwLjBmLCAwLjBmLCAwLjBmLCAw
LjhmKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyLmgKaW5kZXggOGY4YTVmYjQ0M2ViMjNlNGEzYzdmOWE4YWJlN2EyYTBmNDVmMTg5
My4uMmMwMTY5OGQ5ZGYwNWJjNzRlY2JkNGQzNThlOGQ0YTEwMDFhYjc3MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAt
ODIsNyArODIsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQK
ICAgICAgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZTsKLSAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
LCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxv
YXRSZWN0JiBpbkNsaXAsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKKyAg
ICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0Nv
bnRleHQmLCBPcHRpb25TZXQ8R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U+LCBjb25zdCBGbG9h
dFJlY3QmIGluQ2xpcCwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpIG92ZXJyaWRlOwogICAg
ICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgICAg
IHZvaWQgZGlkRmluaXNoRmFkZU91dEFuaW1hdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KaW5kZXggOTNiMjQxNzFi
ODUzOWZmNzg1ZjAxZGM3Njk0OTM1YzJlM2M1NjZlMS4uMjJiNjVkOWFjZmI5ZWQ3YWIzYmY1YTQy
NTQ1Y2UwNWE1Yjc5ODFhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9T
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgR3JhcGhpY3NMYXkKICAgICBtX2NvbnRyb2xsZXItPnBhZ2UoKS5yZW5kZXJpbmdVcGRhdGVT
Y2hlZHVsZXIoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCi12b2lkIFNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGlj
c0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlLCBjb25zdCBGbG9hdFJlY3QmLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlv
cikKK3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpwYWludENvbnRl
bnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4
dCwgT3B0aW9uU2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPiwgY29uc3QgRmxvYXRSZWN0
JiwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpCiB7CiAgICAgaWYgKCFEYXRhRGV0ZWN0b3Jz
TGlicmFyeSgpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDczNDJlNDRiNGYyNTIzZDk5NjY0
NTc0ZDZjZDVhZWVhOWMyZDEyOTUuLjU1NjhmNGE4NmUzMzQ3MzFhOThmMDVhMzZjZWIwNDNkZDhi
YWEwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCkBAIC05MzUsMjIgKzkzNSwyMiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXI6OmR1
bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBMYXllclRyZWVBc1RleHRCZWhhdmlvciBiZWhh
dgogICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1BoYXNl
cyAmJiBwYWludGluZ1BoYXNlKCkpIHsKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIocGFpbnRp
bmdQaGFzZXNcbiI7CiAgICAgICAgIFRleHRTdHJlYW06OkluZGVudFNjb3BlIGluZGVudFNjb3Bl
KHRzKTsKLSAgICAgICAgaWYgKHBhaW50aW5nUGhhc2UoKSAmIEdyYXBoaWNzTGF5ZXJQYWludEJh
Y2tncm91bmQpCisgICAgICAgIGlmIChwYWludGluZ1BoYXNlKCkuY29udGFpbnMoR3JhcGhpY3NM
YXllclBhaW50aW5nUGhhc2U6OkJhY2tncm91bmQpKQogICAgICAgICAgICAgdHMgPDwgaW5kZW50
IDw8ICJHcmFwaGljc0xheWVyUGFpbnRCYWNrZ3JvdW5kXG4iOwogCi0gICAgICAgIGlmIChwYWlu
dGluZ1BoYXNlKCkgJiBHcmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kKQorICAgICAgICBpZiAo
cGFpbnRpbmdQaGFzZSgpLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpGb3Jl
Z3JvdW5kKSkKICAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiR3JhcGhpY3NMYXllclBhaW50
Rm9yZWdyb3VuZFxuIjsKIAotICAgICAgICBpZiAocGFpbnRpbmdQaGFzZSgpICYgR3JhcGhpY3NM
YXllclBhaW50TWFzaykKKyAgICAgICAgaWYgKHBhaW50aW5nUGhhc2UoKS5jb250YWlucyhHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZTo6TWFzaykpCiAgICAgICAgICAgICB0cyA8PCBpbmRlbnQg
PDwgIkdyYXBoaWNzTGF5ZXJQYWludE1hc2tcbiI7CiAKLSAgICAgICAgaWYgKHBhaW50aW5nUGhh
c2UoKSAmIEdyYXBoaWNzTGF5ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrKQorICAgICAgICBpZiAo
cGFpbnRpbmdQaGFzZSgpLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpDaGls
ZENsaXBwaW5nTWFzaykpCiAgICAgICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIkdyYXBoaWNzTGF5
ZXJQYWludENoaWxkQ2xpcHBpbmdNYXNrXG4iOwogCi0gICAgICAgIGlmIChwYWludGluZ1BoYXNl
KCkgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxvd0NvbnRlbnRzKQorICAgICAgICBpZiAocGFp
bnRpbmdQaGFzZSgpLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpPdmVyZmxv
d0NvbnRlbnRzKSkKICAgICAgICAgICAgIHRzIDw8IGluZGVudCA8PCAiR3JhcGhpY3NMYXllclBh
aW50T3ZlcmZsb3dDb250ZW50c1xuIjsKIAotICAgICAgICBpZiAocGFpbnRpbmdQaGFzZSgpICYg
R3JhcGhpY3NMYXllclBhaW50Q29tcG9zaXRlZFNjcm9sbCkKKyAgICAgICAgaWYgKHBhaW50aW5n
UGhhc2UoKS5jb250YWlucyhHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q29tcG9zaXRlZFNj
cm9sbCkpCiAgICAgICAgICAgICB0cyA8PCBpbmRlbnQgPDwgIkdyYXBoaWNzTGF5ZXJQYWludENv
bXBvc2l0ZWRTY3JvbGxcbiI7CiAKICAgICAgICAgdHMgPDwgaW5kZW50IDw8ICIpXG4iOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4
IDdlMTZkOWU1MWZkMmM5MTIyYzY5MjgzZTMzM2M5ZmFjMjZmMjZiMzEuLmU0ODQzNGVkNGM0OTgw
MTIzMWU2Y2JkZjNlOGRkNDI4MTZhMWIzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTQxNCw4ICs0MTQsOCBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogICAgIC8vIFNvbWUgR3JhcGhpY3NMYXllcnMgcGFpbnQgb25seSB0aGUgZm9y
ZWdyb3VuZCBvciB0aGUgYmFja2dyb3VuZCBjb250ZW50Ci0gICAgR3JhcGhpY3NMYXllclBhaW50
aW5nUGhhc2UgcGFpbnRpbmdQaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFpbnRpbmdQaGFzZTsg
fQotICAgIHZvaWQgc2V0UGFpbnRpbmdQaGFzZShHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBw
aGFzZSkgeyBtX3BhaW50aW5nUGhhc2UgPSBwaGFzZTsgfQorICAgIE9wdGlvblNldDxHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZT4gcGFpbnRpbmdQaGFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFp
bnRpbmdQaGFzZTsgfQorICAgIHZvaWQgc2V0UGFpbnRpbmdQaGFzZShPcHRpb25TZXQ8R3JhcGhp
Y3NMYXllclBhaW50aW5nUGhhc2U+IHBoYXNlKSB7IG1fcGFpbnRpbmdQaGFzZSA9IHBoYXNlOyB9
CiAKICAgICBlbnVtIFNob3VsZENsaXBUb0xheWVyIHsKICAgICAgICAgRG9Ob3RDbGlwVG9MYXll
ciwKQEAgLTY5MSw3ICs2OTEsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICBjb25zdCBUeXBlIG1fdHlw
ZTsKICAgICBDdXN0b21BcHBlYXJhbmNlIG1fY3VzdG9tQXBwZWFyYW5jZSB7IEN1c3RvbUFwcGVh
cmFuY2U6Ok5vbmUgfTsKLSAgICBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBtX3BhaW50aW5n
UGhhc2UgeyBHcmFwaGljc0xheWVyUGFpbnRBbGxXaXRoT3ZlcmZsb3dDbGlwIH07CisgICAgT3B0
aW9uU2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPiBtX3BhaW50aW5nUGhhc2UgeyBHcmFw
aGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Rm9yZWdyb3VuZCwgR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2U6OkJhY2tncm91bmQgfTsKICAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRp
b24gbV9jb250ZW50c09yaWVudGF0aW9uIHsgQ29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0
aW9uOjpUb3BEb3duIH07IC8vIGFmZmVjdHMgb3JpZW50YXRpb24gb2YgbGF5ZXIgY29udGVudHMK
IAogICAgIGJvb2wgbV9iZWluZ0Rlc3Ryb3llZCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKaW5kZXggODY3MmQw
ZjRhYjIyZGFkZTBjOTA5YzRjNTNhYzZmZmQyZWQ3NGZkNS4uNTNmY2IyODJkZjA0MGViY2RjMTVl
NjE3NGU1ZTBjZDMzNzY0NWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaApAQCAtMzgsMTcgKzM4LDE1IEBAIGNs
YXNzIEludFBvaW50OwogY2xhc3MgSW50UmVjdDsKIGNsYXNzIFRyYW5zZm9ybWF0aW9uTWF0cml4
OwogCi1lbnVtIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlRmxhZ3MgewotICAgIEdyYXBoaWNz
TGF5ZXJQYWludEJhY2tncm91bmQgICAgICAgICAgICA9IDEgPDwgMCwKLSAgICBHcmFwaGljc0xh
eWVyUGFpbnRGb3JlZ3JvdW5kICAgICAgICAgICAgPSAxIDw8IDEsCi0gICAgR3JhcGhpY3NMYXll
clBhaW50TWFzayAgICAgICAgICAgICAgICAgID0gMSA8PCAyLAotICAgIEdyYXBoaWNzTGF5ZXJQ
YWludENsaXBQYXRoICAgICAgICAgICAgICA9IDEgPDwgMywKLSAgICBHcmFwaGljc0xheWVyUGFp
bnRPdmVyZmxvd0NvbnRlbnRzICAgICAgPSAxIDw8IDQsCi0gICAgR3JhcGhpY3NMYXllclBhaW50
Q29tcG9zaXRlZFNjcm9sbCAgICAgID0gMSA8PCA1LAotICAgIEdyYXBoaWNzTGF5ZXJQYWludENo
aWxkQ2xpcHBpbmdNYXNrICAgICA9IDEgPDwgNiwKLSAgICBHcmFwaGljc0xheWVyUGFpbnRBbGxX
aXRoT3ZlcmZsb3dDbGlwICAgPSBHcmFwaGljc0xheWVyUGFpbnRCYWNrZ3JvdW5kIHwgR3JhcGhp
Y3NMYXllclBhaW50Rm9yZWdyb3VuZAorZW51bSBjbGFzcyBHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZSB7CisgICAgQmFja2dyb3VuZCAgICAgICAgICAgID0gMSA8PCAwLAorICAgIEZvcmVncm91
bmQgICAgICAgICAgICA9IDEgPDwgMSwKKyAgICBNYXNrICAgICAgICAgICAgICAgICAgPSAxIDw8
IDIsCisgICAgQ2xpcFBhdGggICAgICAgICAgICAgID0gMSA8PCAzLAorICAgIE92ZXJmbG93Q29u
dGVudHMgICAgICA9IDEgPDwgNCwKKyAgICBDb21wb3NpdGVkU2Nyb2xsICAgICAgPSAxIDw8IDUs
CisgICAgQ2hpbGRDbGlwcGluZ01hc2sgICAgID0gMSA8PCA2LAogfTsKLXR5cGVkZWYgdWludDhf
dCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTsKIAogZW51bSBBbmltYXRlZFByb3BlcnR5SUQg
ewogICAgIEFuaW1hdGVkUHJvcGVydHlJbnZhbGlkLApAQCAtMTAyLDcgKzEwMCw3IEBAIHB1Ymxp
YzoKICAgICAvLyBOb3RpZmljYXRpb24gdGhhdCB0aGlzIGxheWVyIHJlcXVpcmVzIGEgZmx1c2gg
YmVmb3JlIHRoZSBuZXh0IGRpc3BsYXkgcmVmcmVzaC4KICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5
Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhp
Y3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEZsb2F0UmVjdCYg
LyogaW5DbGlwICovLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgeyB9CisgICAgdmlydHVh
bCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4
dCYsIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4sIGNvbnN0IEZsb2F0UmVj
dCYgLyogaW5DbGlwICovLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRpZENoYW5nZVBsYXRmb3JtTGF5ZXJGb3JMYXllcihjb25zdCBHcmFwaGljc0xh
eWVyKikgeyB9CiAKICAgICAvLyBQcm92aWRlcyBjdXJyZW50IHRyYW5zZm9ybSAodGFraW5nIHRy
YW5zZm9ybS1vcmlnaW4gYW5kIGFuaW1hdGlvbnMgaW50byBhY2NvdW50KS4gSW5wdXQgbWF0cml4
IGhhcyBiZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IDA0OGJlZTE5Y2JiOTFhZjE5ZGNlZTc4Mzg0NDU2ZTY2OGI2MGYzNzAuLmZj
YWY5YzdjM2NhNzQ2YWIwOWYzMjMzYzE4YmQ4YTQwZTdlYzAwODMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNzA5LDcgKzE3MDks
NyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlRm9yZWdyb3VuZExheWVyKGJvb2wg
bmVlZHNGb3JlZ3JvdW5kTGF5ZXIpCiAgICAgICAgICAgICBTdHJpbmcgbGF5ZXJOYW1lID0gbV9v
d25pbmdMYXllci5uYW1lKCkgKyAiIChmb3JlZ3JvdW5kKSI7CiAgICAgICAgICAgICBtX2ZvcmVn
cm91bmRMYXllciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIobGF5ZXJOYW1lKTsKICAgICAgICAgICAg
IG1fZm9yZWdyb3VuZExheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7Ci0gICAgICAgICAgICBt
X2ZvcmVncm91bmRMYXllci0+c2V0UGFpbnRpbmdQaGFzZShHcmFwaGljc0xheWVyUGFpbnRGb3Jl
Z3JvdW5kKTsKKyAgICAgICAgICAgIG1fZm9yZWdyb3VuZExheWVyLT5zZXRQYWludGluZ1BoYXNl
KHsgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkZvcmVncm91bmQgfSk7CiAgICAgICAgICAg
ICBsYXllckNoYW5nZWQgPSB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChtX2ZvcmVn
cm91bmRMYXllcikgewpAQCAtMTczNSw3ICsxNzM1LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tp
bmc6OnVwZGF0ZUJhY2tncm91bmRMYXllcihib29sIG5lZWRzQmFja2dyb3VuZExheWVyKQogICAg
ICAgICAgICAgbV9iYWNrZ3JvdW5kTGF5ZXIgPSBjcmVhdGVHcmFwaGljc0xheWVyKGxheWVyTmFt
ZSk7CiAgICAgICAgICAgICBtX2JhY2tncm91bmRMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUp
OwogICAgICAgICAgICAgbV9iYWNrZ3JvdW5kTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9p
bnQzRCgpKTsKLSAgICAgICAgICAgIG1fYmFja2dyb3VuZExheWVyLT5zZXRQYWludGluZ1BoYXNl
KEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQpOworICAgICAgICAgICAgbV9iYWNrZ3JvdW5k
TGF5ZXItPnNldFBhaW50aW5nUGhhc2UoeyBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6QmFj
a2dyb3VuZCB9KTsKICAgICAgICAgICAgIGxheWVyQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgIH0K
ICAgICAgICAgCkBAIC0xNzcxLDE3ICsxNzcxLDE3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5n
Ojp1cGRhdGVNYXNraW5nTGF5ZXIoYm9vbCBoYXNNYXNrLCBib29sIGhhc0NsaXBQYXRoKQogewog
ICAgIGJvb2wgbGF5ZXJDaGFuZ2VkID0gZmFsc2U7CiAgICAgaWYgKGhhc01hc2sgfHwgaGFzQ2xp
cFBhdGgpIHsKLSAgICAgICAgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgbWFza1BoYXNlcyA9
IDA7CisgICAgICAgIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4gbWFza1Bo
YXNlczsKICAgICAgICAgaWYgKGhhc01hc2spCi0gICAgICAgICAgICBtYXNrUGhhc2VzID0gR3Jh
cGhpY3NMYXllclBhaW50TWFzazsKKyAgICAgICAgICAgIG1hc2tQaGFzZXMgPSBHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZTo6TWFzazsKICAgICAgICAgCiAgICAgICAgIGlmIChoYXNDbGlwUGF0
aCkgewogICAgICAgICAgICAgLy8gSWYgd2UgaGF2ZSBhIG1hc2ssIHdlIG5lZWQgdG8gcGFpbnQg
dGhlIGNvbWJpbmVkIGNsaXAtcGF0aCBhbmQgbWFzayBpbnRvIHRoZSBtYXNrIGxheWVyLgogICAg
ICAgICAgICAgaWYgKGhhc01hc2sgfHwgcmVuZGVyZXIoKS5zdHlsZSgpLmNsaXBQYXRoKCktPnR5
cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6UmVmZXJlbmNlIHx8ICFHcmFwaGljc0xheWVyOjpz
dXBwb3J0c0xheWVyVHlwZShHcmFwaGljc0xheWVyOjpUeXBlOjpTaGFwZSkpCi0gICAgICAgICAg
ICAgICAgbWFza1BoYXNlcyB8PSBHcmFwaGljc0xheWVyUGFpbnRDbGlwUGF0aDsKKyAgICAgICAg
ICAgICAgICBtYXNrUGhhc2VzLmFkZChHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q2xpcFBh
dGgpOwogICAgICAgICB9CiAKLSAgICAgICAgYm9vbCBwYWludHNDb250ZW50ID0gbWFza1BoYXNl
czsKKyAgICAgICAgYm9vbCBwYWludHNDb250ZW50ID0gIW1hc2tQaGFzZXMuaXNFbXB0eSgpOwog
ICAgICAgICBHcmFwaGljc0xheWVyOjpUeXBlIHJlcXVpcmVkTGF5ZXJUeXBlID0gcGFpbnRzQ29u
dGVudCA/IEdyYXBoaWNzTGF5ZXI6OlR5cGU6Ok5vcm1hbCA6IEdyYXBoaWNzTGF5ZXI6OlR5cGU6
OlNoYXBlOwogICAgICAgICBpZiAobV9tYXNrTGF5ZXIgJiYgbV9tYXNrTGF5ZXItPnR5cGUoKSAh
PSByZXF1aXJlZExheWVyVHlwZSkgewogICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRN
YXNrTGF5ZXIobnVsbHB0cik7CkBAIC0xODI1LDcgKzE4MjUsNyBAQCB2b2lkIFJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlQ2hpbGRDbGlwcGluZ1N0cmF0ZWd5KGJvb2wgbmVlZHNEZXNjZW5kYW50
c0NsaXBwaQogICAgICAgICAgICAgaWYgKCFtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIpIHsKICAg
ICAgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNrTGF5ZXIgPSBjcmVhdGVHcmFwaGljc0xh
eWVyKCJjaGlsZCBjbGlwcGluZyBtYXNrIik7CiAgICAgICAgICAgICAgICAgbV9jaGlsZENsaXBw
aW5nTWFza0xheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgbV9j
aGlsZENsaXBwaW5nTWFza0xheWVyLT5zZXRQYWludGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWlu
dENoaWxkQ2xpcHBpbmdNYXNrKTsKKyAgICAgICAgICAgICAgICBtX2NoaWxkQ2xpcHBpbmdNYXNr
TGF5ZXItPnNldFBhaW50aW5nUGhhc2UoeyBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q2hp
bGRDbGlwcGluZ01hc2sgfSk7CiAgICAgICAgICAgICAgICAgY2xpcHBpbmdMYXllcigpLT5zZXRN
YXNrTGF5ZXIobV9jaGlsZENsaXBwaW5nTWFza0xheWVyLmNvcHlSZWYoKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTE4NTYsMTAgKzE4NTYsMTAgQEAgYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OnVwZGF0ZVNjcm9sbGluZ0xheWVycyhib29sIG5lZWRzU2Nyb2xsaW5nTGF5ZXJzKQog
ICAgICAgICBtX3Njcm9sbGVkQ29udGVudHNMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUpOwog
ICAgICAgICBtX3Njcm9sbGVkQ29udGVudHNMYXllci0+c2V0QW5jaG9yUG9pbnQoeyB9KTsKIAot
ICAgICAgICBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSBwYWludFBoYXNlID0gR3JhcGhpY3NM
YXllclBhaW50T3ZlcmZsb3dDb250ZW50cyB8IEdyYXBoaWNzTGF5ZXJQYWludENvbXBvc2l0ZWRT
Y3JvbGw7CisgICAgICAgIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4gcGFp
bnRQaGFzZXMgPSB7IEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpPdmVyZmxvd0NvbnRlbnRz
LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q29tcG9zaXRlZFNjcm9sbCB9OwogICAgICAg
ICBpZiAoIW1fZm9yZWdyb3VuZExheWVyKQotICAgICAgICAgICAgcGFpbnRQaGFzZSB8PSBHcmFw
aGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kOwotICAgICAgICBtX3Njcm9sbGVkQ29udGVudHNMYXll
ci0+c2V0UGFpbnRpbmdQaGFzZShwYWludFBoYXNlKTsKKyAgICAgICAgICAgIHBhaW50UGhhc2Vz
LmFkZChHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Rm9yZWdyb3VuZCk7CisgICAgICAgIG1f
c2Nyb2xsZWRDb250ZW50c0xheWVyLT5zZXRQYWludGluZ1BoYXNlKHBhaW50UGhhc2VzKTsKICAg
ICAgICAgbV9zY3JvbGxDb250YWluZXJMYXllci0+YWRkQ2hpbGQoKm1fc2Nyb2xsZWRDb250ZW50
c0xheWVyKTsKICAgICB9IGVsc2UgewogICAgICAgICBjb21wb3NpdG9yKCkud2lsbFJlbW92ZVNj
cm9sbGluZ0xheWVyV2l0aEJhY2tpbmcobV9vd25pbmdMYXllciwgKnRoaXMpOwpAQCAtMTkzOSwy
MCArMTkzOSwyMCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0SXNTY3JvbGxDb29yZGlu
YXRlZFdpdGhWaWV3cG9ydENvbnN0cmFpbmVkUm9sZShib29sCiAgICAgbV9ncmFwaGljc0xheWVy
LT5zZXRJc1ZpZXdwb3J0Q29uc3RyYWluZWQodmlld3BvcnRDb29yZGluYXRlZCk7CiB9CiAKLUdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRpbmdQaGFz
ZUZvclByaW1hcnlMYXllcigpIGNvbnN0CitPcHRpb25TZXQ8R3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2U+IFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRpbmdQaGFzZUZvclByaW1hcnlMYXllcigp
IGNvbnN0CiB7Ci0gICAgdW5zaWduZWQgcGhhc2UgPSAwOworICAgIE9wdGlvblNldDxHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZT4gcGhhc2VzOwogICAgIGlmICghbV9iYWNrZ3JvdW5kTGF5ZXIp
Ci0gICAgICAgIHBoYXNlIHw9IEdyYXBoaWNzTGF5ZXJQYWludEJhY2tncm91bmQ7CisgICAgICAg
IHBoYXNlcy5hZGQoR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkJhY2tncm91bmQpOwogICAg
IGlmICghbV9mb3JlZ3JvdW5kTGF5ZXIpCi0gICAgICAgIHBoYXNlIHw9IEdyYXBoaWNzTGF5ZXJQ
YWludEZvcmVncm91bmQ7CisgICAgICAgIHBoYXNlcy5hZGQoR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2U6OkZvcmVncm91bmQpOwogCiAgICAgaWYgKG1fc2Nyb2xsZWRDb250ZW50c0xheWVyKSB7
Ci0gICAgICAgIHBoYXNlICY9IH5HcmFwaGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kOwotICAgICAg
ICBwaGFzZSB8PSBHcmFwaGljc0xheWVyUGFpbnRDb21wb3NpdGVkU2Nyb2xsOworICAgICAgICBw
aGFzZXMucmVtb3ZlKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpGb3JlZ3JvdW5kKTsKKyAg
ICAgICAgcGhhc2VzLmFkZChHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6Q29tcG9zaXRlZFNj
cm9sbCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlPihwaGFzZSk7CisgICAgcmV0dXJuIHBoYXNlczsKIH0KIAogZmxvYXQgUmVuZGVy
TGF5ZXJCYWNraW5nOjpjb21wb3NpdGluZ09wYWNpdHkoZmxvYXQgcmVuZGVyZXJPcGFjaXR5KSBj
b25zdApAQCAtMjY0Niw5ICsyNjQ2LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENv
bnRlbnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgciwgR3JhcGgKIAogdm9p
ZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
IGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwKICAgICBjb25zdCBJbnRS
ZWN0JiBwYWludERpcnR5UmVjdCwgLy8gSW4gdGhlIGNvb3JkcyBvZiByb290TGF5ZXIuCi0gICAg
T3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+IHBhaW50QmVoYXZpb3IsIEdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlIHBhaW50aW5nUGhhc2UpCisgICAgT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+IHBh
aW50QmVoYXZpb3IsIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4gcGFpbnRp
bmdQaGFzZSkKIHsKLSAgICBpZiAoKHBhaW50c0ludG9XaW5kb3coKSB8fCBwYWludHNJbnRvQ29t
cG9zaXRlZEFuY2VzdG9yKCkpICYmIHBhaW50aW5nUGhhc2UgIT0gR3JhcGhpY3NMYXllclBhaW50
Q2hpbGRDbGlwcGluZ01hc2spIHsKKyAgICBpZiAoKHBhaW50c0ludG9XaW5kb3coKSB8fCBwYWlu
dHNJbnRvQ29tcG9zaXRlZEFuY2VzdG9yKCkpICYmIHBhaW50aW5nUGhhc2UgIT0gT3B0aW9uU2V0
PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPihHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6
Q2hpbGRDbGlwcGluZ01hc2spKSB7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYmICFPUyhX
SU5ET1dTKQogICAgICAgICAvLyBGSVhNRTogTG9va3MgbGlrZSB0aGUgQ0FMYXllciB0cmVlIGlz
IG91dCBvZiBzeW5jIHdpdGggdGhlIEdyYXBoaWNzTGF5ZXIgaGVpcmFyY2h5CiAgICAgICAgIC8v
IHdoZW4gcGFnZXMgYXJlIHJlc3RvcmVkIGZyb20gdGhlIFBhZ2VDYWNoZS4KQEAgLTI2NTksMTkg
KzI2NTksMTkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXAKICAgICB9CiAKICAgICBPcHRpb25T
ZXQ8UmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJGbGFnPiBwYWludEZsYWdzOwotICAgIGlmIChwYWlu
dGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50QmFja2dyb3VuZCkKKyAgICBpZiAocGFpbnRp
bmdQaGFzZS5jb250YWlucyhHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6QmFja2dyb3VuZCkp
CiAgICAgICAgIHBhaW50RmxhZ3MuYWRkKFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdD
b21wb3NpdGluZ0JhY2tncm91bmRQaGFzZSk7Ci0gICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFw
aGljc0xheWVyUGFpbnRGb3JlZ3JvdW5kKQorICAgIGlmIChwYWludGluZ1BoYXNlLmNvbnRhaW5z
KEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpGb3JlZ3JvdW5kKSkKICAgICAgICAgcGFpbnRG
bGFncy5hZGQoUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nRm9yZWdy
b3VuZFBoYXNlKTsKLSAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludE1h
c2spCisgICAgaWYgKHBhaW50aW5nUGhhc2UuY29udGFpbnMoR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2U6Ok1hc2spKQogICAgICAgICBwYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRM
YXllclBhaW50aW5nQ29tcG9zaXRpbmdNYXNrUGhhc2UpOwotICAgIGlmIChwYWludGluZ1BoYXNl
ICYgR3JhcGhpY3NMYXllclBhaW50Q2xpcFBhdGgpCisgICAgaWYgKHBhaW50aW5nUGhhc2UuY29u
dGFpbnMoR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6OkNsaXBQYXRoKSkKICAgICAgICAgcGFp
bnRGbGFncy5hZGQoUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ0NvbXBvc2l0aW5nQ2xp
cFBhdGhQaGFzZSk7Ci0gICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRD
aGlsZENsaXBwaW5nTWFzaykKKyAgICBpZiAocGFpbnRpbmdQaGFzZS5jb250YWlucyhHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZTo6Q2hpbGRDbGlwcGluZ01hc2spKQogICAgICAgICBwYWludEZs
YWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nQ2hpbGRDbGlwcGluZ01hc2tQ
aGFzZSk7Ci0gICAgaWYgKHBhaW50aW5nUGhhc2UgJiBHcmFwaGljc0xheWVyUGFpbnRPdmVyZmxv
d0NvbnRlbnRzKQorICAgIGlmIChwYWludGluZ1BoYXNlLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQ
YWludGluZ1BoYXNlOjpPdmVyZmxvd0NvbnRlbnRzKSkKICAgICAgICAgcGFpbnRGbGFncy5hZGQo
UmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ092ZXJmbG93Q29udGVudHMpOwotICAgIGlm
IChwYWludGluZ1BoYXNlICYgR3JhcGhpY3NMYXllclBhaW50Q29tcG9zaXRlZFNjcm9sbCkKKyAg
ICBpZiAocGFpbnRpbmdQaGFzZS5jb250YWlucyhHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6
Q29tcG9zaXRlZFNjcm9sbCkpCiAgICAgICAgIHBhaW50RmxhZ3MuYWRkKFJlbmRlckxheWVyOjpQ
YWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ1Njcm9sbGluZ1BoYXNlKTsKIAogICAgIGlmIChn
cmFwaGljc0xheWVyID09IG1fYmFja2dyb3VuZExheWVyLmdldCgpICYmIG1fYmFja2dyb3VuZExh
eWVyUGFpbnRzRml4ZWRSb290QmFja2dyb3VuZCkKQEAgLTI3MTgsNyArMjcxOCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyLCBHcmFwCiAgICAgICAgICAgICBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBh
aW50aW5nQ29tcG9zaXRpbmdCYWNrZ3JvdW5kUGhhc2UsCiAgICAgICAgICAgICBSZW5kZXJMYXll
cjo6UGFpbnRMYXllclBhaW50aW5nQ29tcG9zaXRpbmdGb3JlZ3JvdW5kUGhhc2UgfTsKIAotICAg
ICAgICBpZiAocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVu
dHMpCisgICAgICAgIGlmIChwYWludGluZ1BoYXNlLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWlu
dGluZ1BoYXNlOjpPdmVyZmxvd0NvbnRlbnRzKSkKICAgICAgICAgICAgIHNoYXJpbmdMYXllclBh
aW50RmxhZ3MuYWRkKFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0NvbnRl
bnRzKTsKIAogICAgICAgICBmb3IgKGF1dG8mIGxheWVyV2Vha1B0ciA6IG1fYmFja2luZ1NoYXJp
bmdMYXllcnMpCkBAIC0yNzI5LDcgKzI3MjksNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAog
fQogCiAvLyBVcC1jYWxsIGZyb20gY29tcG9zaXRpbmcgbGF5ZXIgZHJhd2luZyBjYWxsYmFjay4K
LXZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgR3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UgcGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFw
aGljc0xheWVyUGFpbnRCZWhhdmlvciBsYXllclBhaW50QmVoYXZpb3IpCit2b2lkIFJlbmRlckxh
eWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xh
eWVyLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFp
bnRpbmdQaGFzZT4gcGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFwaGlj
c0xheWVyUGFpbnRCZWhhdmlvciBsYXllclBhaW50QmVoYXZpb3IpCiB7CiAjaWZuZGVmIE5ERUJV
RwogICAgIHJlbmRlcmVyKCkucGFnZSgpLnNldElzUGFpbnRpbmcodHJ1ZSk7CkBAIC0yNzU0LDcg
KzI3NTQsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRDb250ZW50cyhjb25zdCBH
cmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwaAogICAgICAgICB8fCBncmFwaGljc0xh
eWVyID09IG1fY2hpbGRDbGlwcGluZ01hc2tMYXllci5nZXQoKQogICAgICAgICB8fCBncmFwaGlj
c0xheWVyID09IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyLmdldCgpKSB7CiAKLSAgICAgICAgaWYg
KCEocGFpbnRpbmdQaGFzZSAmIEdyYXBoaWNzTGF5ZXJQYWludE92ZXJmbG93Q29udGVudHMpKQor
ICAgICAgICBpZiAoIXBhaW50aW5nUGhhc2UuY29udGFpbnMoR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2U6Ok92ZXJmbG93Q29udGVudHMpKQogICAgICAgICAgICAgZGlydHlSZWN0LmludGVyc2Vj
dChlbmNsb3NpbmdJbnRSZWN0KGNvbXBvc2l0ZWRCb3VuZHNJbmNsdWRpbmdNYXJnaW4oKSkpOwog
CiAgICAgICAgIC8vIFdlIGhhdmUgdG8gdXNlIHRoZSBzYW1lIHJvb3QgYXMgZm9yIGhpdCB0ZXN0
aW5nLCBiZWNhdXNlIGJvdGggbWV0aG9kcyBjYW4gY29tcHV0ZSBhbmQgY2FjaGUgY2xpcFJlY3Rz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCmluZGV4
IDEzMmU1YTNlNjA2Y2ZmNWJlMjE1NDEyOWIzYzVlMzkzOGEwYjc4MzIuLjUxNzVmMTljNGEwNTZl
MTg3N2RlNmJjNThkNDFlY2FlMTEyYWQ5MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTIzNSw3ICsyMzUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsK
ICAgICB2b2lkIG5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2goY29uc3QgR3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOwogCi0gICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29u
c3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7
CisgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0Nv
bnRleHQmLCBPcHRpb25TZXQ8R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U+LCBjb25zdCBGbG9h
dFJlY3QmIGNsaXAsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKIAogICAg
IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZmxvYXQgY29u
dGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhjb25zdCBHcmFwaGljc0xheWVyKikgY29u
c3Qgb3ZlcnJpZGU7CkBAIC0zMzMsNyArMzMzLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0
QmFja2dyb3VuZExheWVyUGFpbnRzRml4ZWRSb290QmFja2dyb3VuZChib29sKTsKIAotICAgIEdy
YXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlIHBhaW50aW5nUGhhc2VGb3JQcmltYXJ5TGF5ZXIoKSBj
b25zdDsKKyAgICBPcHRpb25TZXQ8R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U+IHBhaW50aW5n
UGhhc2VGb3JQcmltYXJ5TGF5ZXIoKSBjb25zdDsKICAgICAKICAgICBMYXlvdXRTaXplIGNvbnRl
bnRPZmZzZXRJbkNvbXBvc2l0aW5nTGF5ZXIoKSBjb25zdDsKICAgICAvLyBSZXN1bHQgaXMgdHJh
bnNmb3JtIG9yaWdpbiBpbiBkZXZpY2UgcGl4ZWxzLgpAQCAtMzg1LDcgKzM4NSw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBoYXNUaWxlZEJhY2tpbmdGbGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiAobV9jaGlsZENvbnRhaW5tZW50TGF5ZXIgJiYgbV9pc0ZyYW1lTGF5ZXJXaXRoVGlsZWRC
YWNraW5nKTsgfQogICAgIEdyYXBoaWNzTGF5ZXIqIHRpbGVDYWNoZUZsYXR0ZW5pbmdMYXllcigp
IGNvbnN0IHsgcmV0dXJuIG1faXNGcmFtZUxheWVyV2l0aFRpbGVkQmFja2luZyA/IG1fY2hpbGRD
b250YWlubWVudExheWVyLmdldCgpIDogbnVsbHB0cjsgfQogCi0gICAgdm9pZCBwYWludEludG9M
YXllcihjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVj
dCYgcGFpbnREaXJ0eVJlY3QsIE9wdGlvblNldDxQYWludEJlaGF2aW9yPiwgR3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UpOworICAgIHZvaWQgcGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NM
YXllciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIHBhaW50RGlydHlSZWN0LCBP
cHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4sIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQ
aGFzZT4pOwogCiAgICAgc3RhdGljIENTU1Byb3BlcnR5SUQgZ3JhcGhpY3NMYXllclRvQ1NTUHJv
cGVydHkoQW5pbWF0ZWRQcm9wZXJ0eUlEKTsKICAgICBzdGF0aWMgQW5pbWF0ZWRQcm9wZXJ0eUlE
IGNzc1RvR3JhcGhpY3NMYXllclByb3BlcnR5KENTU1Byb3BlcnR5SUQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBjOTVl
MzE4MTQwYjJkMjVkYzcyNWUwNjc3Y2YxZDk1ZDVkMDNkNzIwLi43OGNjMTg1N2FlN2JhM2E2MTYw
MTNhZjg3NDA0NWQ5ZjQ1YTVkMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMzI3NCw3ICszMjc0LDcgQEAgdm9pZCBw
YWludFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBJbnRSZWMKICAgICBjb250ZXh0LnJlc3RvcmUoKTsKIH0KIAotdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogZ3Jh
cGhpY3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRp
bmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiBjbGlwLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlv
cikKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgT3B0aW9u
U2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPiwgY29uc3QgRmxvYXRSZWN0JiBjbGlwLCBH
cmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikKIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAgTG9j
YWxEZWZhdWx0U3lzdGVtQXBwZWFyYW5jZSBsb2NhbEFwcGVhcmFuY2UobV9yZW5kZXJWaWV3LnVz
ZURhcmtBcHBlYXJhbmNlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCmluZGV4IDU2OGFiNGQzNzc3ZjFmY2Q0OWI2ZTk4NzU5OWFmMWVk
YWNkMTkwZjIuLjkxMzQ3NzliZjA5NGEzOWFlYjg1ODNkZGQwM2UyYmM1YTgzZDI4ZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAg
LTM3Nyw3ICszNzcsNyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGll
bnQgaW1wbGVtZW50YXRpb24KICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFw
aGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2Us
IGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsK
KyAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29u
dGV4dCYsIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4sIGNvbnN0IEZsb2F0
UmVjdCYsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICB2b2lkIGN1
c3RvbVBvc2l0aW9uRm9yVmlzaWJsZVJlY3RDb21wdXRhdGlvbihjb25zdCBHcmFwaGljc0xheWVy
KiwgRmxvYXRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNUcmFja2luZ1JlcGFp
bnRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc1RyYWNraW5nUmVwYWludHM7IH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmNwcAppbmRleCBl
NDQ3MzcwZDlkMWQ0ZmMyOTQwYWIzZjg3OWYzNGFkY2M5YzM0YTZlLi5mYjE2OWZkZmM4NDc3MzU2
YWNjY2FmNTg1N2FlYjJlYmQ4NGM4YmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0NvbnRleHQuY3BwCkBAIC00MDAsNyArNDAwLDcgQEAgdm9pZCBBY2NlbGVyYXRlZENv
bXBvc2l0aW5nQ29udGV4dDo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQoKQogICAgICAgICBzY2hlZHVs
ZUxheWVyRmx1c2goKTsKIH0KIAotdm9pZCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6
cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgRmxvYXRSZWN0JiByZWN0VG9Q
YWludCwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpCit2b2lkIEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdDb250ZXh0OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4s
IGNvbnN0IEZsb2F0UmVjdCYgcmVjdFRvUGFpbnQsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9y
KQogewogICAgIGNvbnRleHQuc2F2ZSgpOwogICAgIGNvbnRleHQuY2xpcChyZWN0VG9QYWludCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9BY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuaAppbmRleCA2YmIzMzRk
NDQxZDQxYzdjNDAwNzYwNGU4NDc3ZWU0MjViNjNkYmRhLi5lM2VjMzNmZDQ5OTdhMDFhMjI1ZDVl
MWNmOWI0ZjRiNjJkNzdlMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdD
b250ZXh0LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIGJvb2wgZW5hYmxlZCgpOwog
CiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAgIHZvaWQgcGFpbnRDb250ZW50cyhjb25z
dCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgcmVjdFRvUGFpbnQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIE9wdGlvblNldDxXZWJDb3JlOjpHcmFwaGlj
c0xheWVyUGFpbnRpbmdQaGFzZT4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdFRvUGFp
bnQsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKSBvdmVycmlkZTsKICAgICBm
bG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCBpbml0
aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDc5ZmM0NmQwZmI4
NjQxNzliOTIyM2RlYjM1ZGNhZjVmYmNhNDk5NzEuLmE4OWFjYzAwMGQ1ZWU3YjQyZTcxN2M0ZTlm
MzZkMjhjZDVjYTRhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC03MzYz
LDcgKzczNjMsNyBAQCB2b2lkIFdlYlZpZXc6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3Jh
cGhpY3NMYXllciopCiAgICAgZmx1c2hQZW5kaW5nR3JhcGhpY3NMYXllckNoYW5nZXNTb29uKCk7
CiB9CiAKLXZvaWQgV2ViVmlldzo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwg
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29u
c3QgRmxvYXRSZWN0JiBpbkNsaXBQaXhlbHMsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKQor
dm9pZCBXZWJWaWV3OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIE9wdGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4s
IGNvbnN0IEZsb2F0UmVjdCYgaW5DbGlwUGl4ZWxzLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlv
cikKIHsKICAgICBGcmFtZSogZnJhbWUgPSBjb3JlKG1fbWFpbkZyYW1lKTsKICAgICBpZiAoIWZy
YW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5oCmluZGV4IGFkNGUzMmQ0N2U4NWJkODI0NzAx
ZWFjYWVmNDVlZjFmYjRkNTQ1MWUuLjEwODRkNDA2M2UyOWMzNjk3YTVmN2FmOGVmN2M1MmY1MWFm
OTBhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgKQEAgLTU2OCw3ICs1NjgsNyBAQCBw
cml2YXRlOgogICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICB2b2lkIG5vdGlmeUFuaW1h
dGlvblN0YXJ0ZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciosIGNvbnN0IFN0cmluZyYs
IE1vbm90b25pY1RpbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwYWludENv
bnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiBpbkNsaXAsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9y
KSBvdmVycmlkZTsKKyAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciosIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIE9wdGlvblNldDxXZWJDb3JlOjpH
cmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgaW5D
bGlwLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlvcikgb3ZlcnJpZGU7CiAKICNp
ZiBVU0UoQ0EpCiAgICAgLy8gQ0FDRkxheWVyVHJlZUhvc3RDbGllbnQK
</data>

          </attachment>
      

    </bug>

</bugzilla>