<?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>121200</bug_id>
          
          <creation_ts>2013-09-11 18:47:57 -0700</creation_ts>
          <short_desc>Merge RenderPart into RenderWidget.</short_desc>
          <delta_ts>2013-09-16 12:57:06 -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>Layout and Rendering</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>928091</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-11 18:47:57 -0700</bug_when>
    <thetext>Merge RenderPart into RenderWidget.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928092</commentid>
    <comment_count>1</comment_count>
      <attachid>211379</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-11 18:52:23 -0700</bug_when>
    <thetext>Created attachment 211379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928093</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-11 18:53:49 -0700</bug_when>
    <thetext>Attachment 211379 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/GNUmakefile.list.am&apos;, u&apos;Source/WebCore/Target.pri&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj&apos;, u&apos;Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/accessibility/AccessibilityScrollView.cpp&apos;, u&apos;Source/WebCore/editing/Editor.cpp&apos;, u&apos;Source/WebCore/html/HTMLAppletElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLFrameElementBase.cpp&apos;, u&apos;Source/WebCore/html/HTMLFrameOwnerElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLFrameOwnerElement.h&apos;, u&apos;Source/WebCore/html/HTMLObjectElement.cpp&apos;, u&apos;Source/WebCore/html/HTMLPlugInImageElement.cpp&apos;, u&apos;Source/WebCore/html/PluginDocument.cpp&apos;, u&apos;Source/WebCore/html/shadow/MediaControlElements.cpp&apos;, u&apos;Source/WebCore/loader/SubframeLoader.cpp&apos;, u&apos;Source/WebCore/page/Frame.cpp&apos;, u&apos;Source/WebCore/page/Frame.h&apos;, u&apos;Source/WebCore/page/FrameView.cpp&apos;, u&apos;Source/WebCore/rendering/RenderEmbeddedObject.cpp&apos;, u&apos;Source/WebCore/rendering/RenderEmbeddedObject.h&apos;, u&apos;Source/WebCore/rendering/RenderFrameBase.cpp&apos;, u&apos;Source/WebCore/rendering/RenderFrameBase.h&apos;, u&apos;Source/WebCore/rendering/RenderLayerBacking.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLayerCompositor.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLayerCompositor.h&apos;, u&apos;Source/WebCore/rendering/RenderObject.h&apos;, u&apos;Source/WebCore/rendering/RenderPart.cpp&apos;, u&apos;Source/WebCore/rendering/RenderPart.h&apos;, u&apos;Source/WebCore/rendering/RenderScrollbar.cpp&apos;, u&apos;Source/WebCore/rendering/RenderTreeAsText.cpp&apos;, u&apos;Source/WebCore/rendering/RenderWidget.cpp&apos;, u&apos;Source/WebCore/rendering/RenderWidget.h&apos;, u&apos;Source/WebCore/rendering/svg/RenderSVGRoot.cpp&apos;, u&apos;Source/WebCore/svg/SVGLengthContext.cpp&apos;, u&apos;Source/WebCore/svg/SVGSVGElement.cpp&apos;, u&apos;Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp&apos;, u&apos;Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp&apos;, u&apos;Source/WebKit/mac/WebView/WebFrame.mm&apos;, u&apos;Source/WebKit/mac/WebView/WebFrameView.mm&apos;, u&apos;Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp&apos;, u&apos;Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp&apos;, u&apos;Source/WebKit/wince/WebCoreSupport/FrameLoaderClientWinCE.cpp&apos;]&quot; exit_code: 1
Source/WebCore/rendering/RenderWidget.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 32 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928097</commentid>
    <comment_count>3</comment_count>
      <attachid>211381</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-11 19:13:58 -0700</bug_when>
    <thetext>Created attachment 211381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928111</commentid>
    <comment_count>4</comment_count>
      <attachid>211388</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-11 19:32:47 -0700</bug_when>
    <thetext>Created attachment 211388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928134</commentid>
    <comment_count>5</comment_count>
      <attachid>211393</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-11 21:36:13 -0700</bug_when>
    <thetext>Created attachment 211393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928149</commentid>
    <comment_count>6</comment_count>
      <attachid>211393</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-11 22:20:21 -0700</bug_when>
    <thetext>Comment on attachment 211393
Patch

Clearing flags on attachment: 211393

Committed r155591: &lt;http://trac.webkit.org/changeset/155591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>928150</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-11 22:20:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929885</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2013-09-16 12:57:06 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 211393 [details])
&gt; Clearing flags on attachment: 211393
&gt; 
&gt; Committed r155591: &lt;http://trac.webkit.org/changeset/155591&gt;

Committed build fix in &lt;http://trac.webkit.org/changeset/155892&gt; for ports that build with PLUGIN_PROXY_FOR_VIDEO enabled, such as iOS WebKit. I substituted isWidget() for isRenderWidget() as the latter doesn&apos;t exist.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211379</attachid>
            <date>2013-09-11 18:52:23 -0700</date>
            <delta_ts>2013-09-11 19:13:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121200.diff</filename>
            <type>text/plain</type>
            <size>64267</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODA0NzczYS4uNjY4NDM0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIxNTksNyArMjE1OSw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5k
ZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAKLSAgICByZW5k
ZXJpbmcvUmVuZGVyUGFydC5jcHAKICAgICByZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCiAg
ICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAogICAgIHJlbmRlcmluZy9SZW5kZXJSZWdpb24u
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZWEyMWZjZi4uZjQ1YjZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDEzLTA5LTExICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKwor
ICAgICAgICBNZXJnZSBSZW5kZXJQYXJ0IGludG8gUmVuZGVyV2lkZ2V0LgorICAgICAgICA8aHR0
cHM6Ly93ZWJraXQub3JnL2IvMTIxMjAwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUgUmVuZGVyUGFydCBjbGFzcyBhbmQgbW92ZSBp
dHMgZnVuY3Rpb25hbGl0eSBpbnRvIFJlbmRlcldpZGdldC4KKyAgICAgICAgSXQgd2FzIGFjdGlu
ZyBhcyBhIHBvaW50bGVzcyBleHRyYSBsYXllciBiZXR3ZWVuIFJlbmRlcldpZGdldCBhbmQgcmVu
ZGVyZXJzCisgICAgICAgIGZvciBlbWJlZGRlZCBvYmplY3RzLCBmcmFtZXMgYW5kIGlmcmFtZXMu
CisKIDIwMTMtMDktMTEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01lZGlhU3RyZWFtIEFQSV0gVXBkYXRpbmcgTmF2aWdhdG9yVXNlck1lZGlhRXJy
b3IgdG8gbWF0Y2ggdGhlIHNwZWMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDc1
MmQ0ZWIuLmZhNzRjZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDQ3Miw4
ICs0NDcyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT3ZlcmZsb3cuaCBcCi0J
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwIFwKLQlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jl
c3MuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQppbmRleCAxYWUzOWNlLi5lN2Y5YWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTExOTcsNyArMTE5
Nyw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQu
Y3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlck9iamVjdENoaWxkTGlzdC5jcHAgXAotICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBc
CiAgICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
clF1b3RlLmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgXApAQCAtMjQ2Niw3
ICsyNDY1LDYgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1u
QmxvY2suaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5oIFwKICAgICBy
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggXAotICAgIHJlbmRlcmluZy9SZW5kZXJQYXJ0LmggXAog
ICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyUXVv
dGUuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCA1NmE5NzIwLi43NDg5MDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzksNyAr
NzksNiBAQCBfX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBN
b3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklO
U185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVF
RQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdF
YmJkTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFF
dmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2FyZEVFRWIKIF9fWk43V2ViQ29yZTEwUGFzdGVi
b2FyZDE0d3JpdGVQbGFpblRleHRFUktOM1dURjZTdHJpbmdFTlMwXzE4U21hcnRSZXBsYWNlT3B0
aW9uRQotX19aTjdXZWJDb3JlMTBSZW5kZXJQYXJ0OXNldFdpZGdldEVOM1dURjEwUGFzc1JlZlB0
cklOU182V2lkZ2V0RUVFCiBfX1pON1dlYkNvcmUxMFJlbmRlclZpZXcxMGNvbXBvc2l0b3JFdgog
X19aTjdXZWJDb3JlMTBSZW5kZXJWaWV3N2hpdFRlc3RFUktOU18xNEhpdFRlc3RSZXF1ZXN0RVJO
U18xM0hpdFRlc3RSZXN1bHRFCiBfX1pON1dlYkNvcmUxMFNjcm9sbFZpZXcxNnNldFBhcmVudFZp
c2libGVFYgpAQCAtMjExLDYgKzIxMCw3IEBAIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0QzFF
UE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0RDFFdgogX19aTjdXZWJDb3Jl
MTJSZW5kZXJPYmplY3QxNnBhaW50aW5nUm9vdFJlY3RFUk5TXzEwTGF5b3V0UmVjdEUKIF9fWk43
V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTlzY3JvbGxSZWN0VG9WaXNpYmxlRVJLTlNfMTBMYXlvdXRS
ZWN0RVJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCitfX1pON1dlYkNvcmUxMlJlbmRlcldpZGdl
dDlzZXRXaWRnZXRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNldpZGdldEVFRQogX19aTjdXZWJDb3Jl
MTJTUUxSZXN1bHRSb3dFCiBfX1pON1dlYkNvcmUxMlNoYXJlZEJ1ZmZlcjEwd3JhcENGRGF0YUVQ
SzhfX0NGRGF0YQogX19aTjdXZWJDb3JlMTJTaGFyZWRCdWZmZXIxMHdyYXBOU0RhdGFFUDZOU0Rh
dGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmlu
ZGV4IDMzZTM0ZmIuLmEwYWY2MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTAyNTksMjAgKzEwMjU5LDYgQEAKICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBp
bGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyUGFydC5jcHAi
PgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAg
ICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxh
dGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRl
clByb2dyZXNzLmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CkBAIC0yMDA1OCw3ICsyMDA0NCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmgiIC8+Ci0gICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyUGFydC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclByb2dyZXNzLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyUXVvdGUuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJSZWdpb24uaCIgLz4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpp
bmRleCBlOThiZDZmLi41ZTU0NDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0yNjM3LDkgKzI2MzcsNiBA
QAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlck9iamVjdENoaWxk
TGlzdC5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29t
cGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJQYXJ0LmNw
cCI+Ci0gICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclByb2dyZXNzLmNwcCI+
CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAt
OTYyNCw5ICs5NjIxLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xS
ZW5kZXJPYmplY3RDaGlsZExpc3QuaCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVy
PgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5n
XFJlbmRlclBhcnQuaCI+Ci0gICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgotICAgIDwv
Q2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclBy
b2dyZXNzLmgiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5j
bHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBkNDlmNDQ5Li45MDJhZmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzYyLDEyICszNzYyLDEwIEBACiAJ
CUE4NzFERTJDMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERTIwMEExNTJBQzgwMEIx
MkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCAqLzsgfTsKIAkJQTg3MURFMkQwQTE1MkFDODAwQjEy
QTY4IC8qIEhUTUxIZWFkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTg3MURFMjEwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxIZWFkRWxlbWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4
NzFERTJFMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERTIyMEExNTJBQzgw
MEIxMkE2OCAvKiBIVE1MRnJhbWVTZXRFbGVtZW50LmNwcCAqLzsgfTsKLQkJQTg3MURFRDAwQTE1
MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURFQzgwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBh
cnQuY3BwICovOyB9OwogCQlBODcxREVEMTBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyRnJhbWVT
ZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFE
RUM5MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZVNldC5oICovOyB9OwogCQlBODcxREVE
MjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyRnJhbWVTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURFQ0EwQTE1MzBDNzAwQjEyQTY4IC8q
IFJlbmRlckZyYW1lU2V0LmNwcCAqLzsgfTsKIAkJQTg3MURFRDMwQTE1MzBDNzAwQjEyQTY4IC8q
IFJlbmRlckZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODcxREVDQjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyRnJhbWUuaCAqLzsgfTsKIAkJ
QTg3MURFRDQwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERUNDMEExNTMwQzcwMEIxMkE2
OCAvKiBSZW5kZXJGcmFtZS5jcHAgKi87IH07Ci0JCUE4NzFERUQ3MEExNTMwQzcwMEIxMkE2OCAv
KiBSZW5kZXJQYXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODcxREVDRjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFERkUyMEExNTM3NkIw
MEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREZERTBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVw
bGFjZWQuY3BwICovOyB9OwogCQlBODcxREZFMzBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVw
bGFjZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
NzFERkRGMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFERkU0MEExNTM3NkIwMEIx
MkE2OCAvKiBSZW5kZXJXaWRnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4NzFERkUwMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAzOTAs
MTIgKzEwMzg4LDEwIEBACiAJCUE4NzFERTIwMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVs
ZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxCb2R5RWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxREUyMTBBMTUyQUM4MDBCMTJB
NjggLyogSFRNTEhlYWRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIVE1MSGVhZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MURF
MjIwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxGcmFtZVNldEVsZW1lbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxGcmFtZVNldEVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODcxREVDODBBMTUzMEM3MDBCMTJBNjggLyogUmVu
ZGVyUGFydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVy
UGFydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERUM5MEExNTMwQzcw
MEIxMkE2OCAvKiBSZW5kZXJGcmFtZVNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyRnJhbWVTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3
MURFQ0EwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lU2V0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJGcmFtZVNldC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERUNCMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFt
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRnJhbWUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MURFQ0MwQTE1MzBDNzAwQjEyQTY4IC8qIFJl
bmRlckZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE4NzFERUNGMEExNTMw
QzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJQYXJ0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERkRF
MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUmVwbGFjZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBODcxREZERjBBMTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclJlcGxhY2VkLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERkUwMEExNTM3NkIwMEIxMkE2OCAvKiBS
ZW5kZXJXaWRnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcldp
ZGdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA0ODksOCArMjA0ODUsNiBA
QAogCQkJCUJDNjBFRkI2MEYzM0EwRTcwMDgxMkE5MyAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3Qu
Y3BwICovLAogCQkJCUJDMkNDOERFMEYzMjg4MTAwMEE5REYyNiAvKiBSZW5kZXJPYmplY3RDaGls
ZExpc3QuaCAqLywKIAkJCQlCQ0ZBOTMwNzEwMzMzMTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZs
b3cuaCAqLywKLQkJCQlBODcxREVDODBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5jcHAg
Ki8sCi0JCQkJQTg3MURFQ0YwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuaCAqLywKIAkJ
CQlBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyogUmVuZGVyUHJvZ3Jlc3MuY3BwICovLAogCQkJ
CUE0M0JGNTlCMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5oICovLAogCQkJCTVB
NTc0RjIyMTMxREI5MzkwMDQ3MUI4OCAvKiBSZW5kZXJRdW90ZS5jcHAgKi8sCkBAIC0yMzYyOSw3
ICsyMzYyMyw2IEBACiAJCQkJQkNFQTQ4ODAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlck9iamVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyQ0M4REYwRjMyODgxMDAwQTlERjI2IC8qIFJlbmRl
ck9iamVjdENoaWxkTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGQTkzMDgxMDMzMzE5MzAw
N0IyNUQxIC8qIFJlbmRlck92ZXJmbG93LmggaW4gSGVhZGVycyAqLywKLQkJCQlBODcxREVENzBB
MTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTQzQkY1
OUQxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclByb2dyZXNzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1QTU3NEYyNTEzMURCOTM5MDA0NzFCODggLyogUmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUQ3MEFENjU4MTNFMTM0MkIwMDVCNTBCNCAvKiBSZW5kZXJSZWdpb24uaCBpbiBIZWFk
ZXJzICovLApAQCAtMjY4MjksNyArMjY4MjIsNiBAQAogCQkJCTFBM0ZGOUMzMTUyNjUzNTkwMDIy
ODhBMSAvKiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNF
QTQ4N0YwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCQzYwRUZCNzBGMzNBMEU3MDA4MTJBOTMgLyogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUE4NzFERUQwMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQ
YXJ0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE0M0JGNTlDMTE0OTI5MjgwMEM2NDNDQSAvKiBS
ZW5kZXJQcm9ncmVzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QTU3NEYyNDEzMURCOTM5MDA0
NzFCODggLyogUmVuZGVyUXVvdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjVCN0ExNzAxN0Mx
MEFBODAwRTRBQTBBIC8qIEVsZW1lbnREYXRhLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3
LmNwcAppbmRleCA3OGQ2OWI0Li4xMDJmZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcApAQCAtMzEsNyAr
MzEsNiBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5j
bHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgog
I2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCmluZGV4IDk5MTg2YzguLmYwMjg5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKQEAgLTY4LDcgKzY4LDYgQEAKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAj
aW5jbHVkZSAiUmVtb3ZlRm9ybWF0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgi
Ci0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgi
CiAjaW5jbHVkZSAiUmVuZGVyZWRQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCmlu
ZGV4IGY5MTMzODEuLmJiMTM5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVs
ZW1lbnQuY3BwCkBAIC04OSw3ICs4OSw3IEBAIFJlbmRlcldpZGdldCogSFRNTEFwcGxldEVsZW1l
bnQ6OnJlbmRlcldpZGdldEZvckpTQmluZGluZ3MoKSBjb25zdAogICAgICAgICByZXR1cm4gMDsK
IAogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
Ci0gICAgcmV0dXJuIHJlbmRlclBhcnQoKTsKKyAgICByZXR1cm4gcmVuZGVyV2lkZ2V0KCk7CiB9
CiAKIHZvaWQgSFRNTEFwcGxldEVsZW1lbnQ6OnVwZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9w
dGlvbiBwbHVnaW5DcmVhdGlvbk9wdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJh
bWVFbGVtZW50QmFzZS5jcHAKaW5kZXggOWNkNjFmNS4uMDQ0ZjdkOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNp
bmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50
TGlzdGVuZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMTc2LDcgKzE3Niw3IEBAIHZv
aWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmRpZE5vdGlmeVN1YnRyZWVJbnNlcnRpb25zKENvbnRh
aW5lck5vZGUqKQogCiB2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpkaWRBdHRhY2hSZW5kZXJl
cnMoKQogewotICAgIGlmIChSZW5kZXJQYXJ0KiBwYXJ0ID0gcmVuZGVyUGFydCgpKSB7CisgICAg
aWYgKFJlbmRlcldpZGdldCogcGFydCA9IHJlbmRlcldpZGdldCgpKSB7CiAgICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBjb250ZW50RnJhbWUoKSkKICAgICAgICAgICAgIHBhcnQtPnNldFdpZGdl
dChmcmFtZS0+dmlldygpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZU93bmVyRWxlbWVudC5jcHAKaW5kZXggODcwNWNmMy4uMjYzNDY5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAog
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lk
Z2V0LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApA
QCAtNDIsMTMgKzQyLDEzIEBAIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6SFRNTEZyYW1lT3duZXJF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtCiB7CiB9CiAKLVJlbmRl
clBhcnQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6cmVuZGVyUGFydCgpIGNvbnN0CitSZW5kZXJX
aWRnZXQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6cmVuZGVyV2lkZ2V0KCkgY29uc3QKIHsKICAg
ICAvLyBIVE1MT2JqZWN0RWxlbWVudCBhbmQgSFRNTEVtYmVkRWxlbWVudCBtYXkgcmV0dXJuIGFy
Yml0cmFyeSByZW5kZXJlcnMKICAgICAvLyB3aGVuIHVzaW5nIGZhbGxiYWNrIGNvbnRlbnQuCi0g
ICAgaWYgKCFyZW5kZXJlcigpIHx8ICFyZW5kZXJlcigpLT5pc1JlbmRlclBhcnQoKSkKKyAgICBp
ZiAoIXJlbmRlcmVyKCkgfHwgIXJlbmRlcmVyKCktPmlzV2lkZ2V0KCkpCiAgICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiB0b1JlbmRlclBhcnQocmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIHRv
UmVuZGVyV2lkZ2V0KHJlbmRlcmVyKCkpOwogfQogCiB2b2lkIEhUTUxGcmFtZU93bmVyRWxlbWVu
dDo6c2V0Q29udGVudEZyYW1lKEZyYW1lKiBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGcmFtZU93bmVyRWxlbWVudC5oCmluZGV4IDY2ZjViOTg2Li41ZGRiNjdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50LmgKQEAgLTI3LDcgKzI3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBET01XaW5kb3c7CiBjbGFzcyBGcmFtZTsKLWNs
YXNzIFJlbmRlclBhcnQ7CitjbGFzcyBSZW5kZXJXaWRnZXQ7CiAKICNpZiBFTkFCTEUoU1ZHKQog
Y2xhc3MgU1ZHRG9jdW1lbnQ7CkBAIC00NiwxMCArNDYsMTAgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBkaXNjb25uZWN0Q29udGVudEZyYW1lKCk7CiAKLSAgICAvLyBNb3N0IHN1YmNsYXNzZXMgdXNl
IFJlbmRlclBhcnQgKGVpdGhlciBSZW5kZXJFbWJlZGRlZE9iamVjdCBvciBSZW5kZXJJRnJhbWUp
CisgICAgLy8gTW9zdCBzdWJjbGFzc2VzIHVzZSBSZW5kZXJXaWRnZXQgKGVpdGhlciBSZW5kZXJF
bWJlZGRlZE9iamVjdCBvciBSZW5kZXJJRnJhbWUpCiAgICAgLy8gZXhjZXB0IGZvciBIVE1MT2Jq
ZWN0RWxlbWVudCBhbmQgSFRNTEVtYmVkRWxlbWVudCB3aGljaCBtYXkgcmV0dXJuIGFueQogICAg
IC8vIFJlbmRlck9iamVjdCB3aGVuIHVzaW5nIGZhbGxiYWNrIGNvbnRlbnQuCi0gICAgUmVuZGVy
UGFydCogcmVuZGVyUGFydCgpIGNvbnN0OworICAgIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0
KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoU1ZHKQogICAgIFNWR0RvY3VtZW50KiBnZXRTVkdEb2N1
bWVudChFeGNlcHRpb25Db2RlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVj
dEVsZW1lbnQuY3BwCmluZGV4IDllOTE2MWIuLjE5YWUyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC04MCw3ICs4MCw3IEBAIFBhc3NSZWZQdHI8SFRN
TE9iamVjdEVsZW1lbnQ+IEhUTUxPYmplY3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnCiBSZW5kZXJXaWRnZXQqIEhUTUxPYmplY3RFbGVtZW50OjpyZW5kZXJXaWRnZXRG
b3JKU0JpbmRpbmdzKCkgY29uc3QKIHsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotICAgIHJldHVybiByZW5kZXJQYXJ0KCk7IC8vIFRoaXMg
d2lsbCByZXR1cm4gMCBpZiB0aGUgcmVuZGVyZXIgaXMgbm90IGEgUmVuZGVyUGFydC4KKyAgICBy
ZXR1cm4gcmVuZGVyV2lkZ2V0KCk7IC8vIFRoaXMgd2lsbCByZXR1cm4gMCBpZiB0aGUgcmVuZGVy
ZXIgaXMgbm90IGEgUmVuZGVyV2lkZ2V0LgogfQogCiBib29sIEhUTUxPYmplY3RFbGVtZW50Ojpp
c1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXgg
ZWExNmU3YS4uZjZjYjZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1
Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuY3BwCkBAIC0yMTEsNyArMjExLDcgQEAgUmVuZGVyT2JqZWN0KiBIVE1MUGx1
Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRl
clMKIAogICAgIC8vIEZhbGxiYWNrIGNvbnRlbnQgYnJlYWtzIHRoZSBET00tPlJlbmRlcmVyIGNs
YXNzIHJlbGF0aW9uc2hpcCBvZiB0aGlzCiAgICAgLy8gY2xhc3MgYW5kIGFsbCBzdXBlcmNsYXNz
ZXMgYmVjYXVzZSBjcmVhdGVPYmplY3Qgd29uJ3QgbmVjZXNzYXJpbHkKLSAgICAvLyByZXR1cm4g
YSBSZW5kZXJFbWJlZGRlZE9iamVjdCwgUmVuZGVyUGFydCBvciBldmVuIFJlbmRlcldpZGdldC4K
KyAgICAvLyByZXR1cm4gYSBSZW5kZXJFbWJlZGRlZE9iamVjdCBvciBSZW5kZXJXaWRnZXQuCiAg
ICAgaWYgKHVzZUZhbGxiYWNrQ29udGVudCgpKQogICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0
OjpjcmVhdGVPYmplY3QodGhpcywgc3R5bGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9j
dW1lbnQuY3BwCmluZGV4IGEwMDU4MmIuLmQ4MzZiYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1
Z2luRG9jdW1lbnQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBh
cnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0ZXIqLCBjb25zdCBjaGFyKiwgc2l6ZV90KQog
ICAgIC8vIGNhbiBzeW5jaHJvbm91c2x5IHJlZGlyZWN0IGRhdGEgdG8gdGhlIHBsdWdpbi4KICAg
ICBmcmFtZS0+dmlldygpLT5mbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKTsKIAotICAg
IGlmIChSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1fZW1iZWRFbGVtZW50LT5yZW5kZXJQYXJ0KCkp
IHsKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiByZW5kZXJlciA9IG1fZW1iZWRFbGVtZW50LT5yZW5k
ZXJXaWRnZXQoKSkgewogICAgICAgICBpZiAoV2lkZ2V0KiB3aWRnZXQgPSByZW5kZXJlci0+d2lk
Z2V0KCkpIHsKICAgICAgICAgICAgIGZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5yZWRpcmVjdERh
dGFUb1BsdWdpbih3aWRnZXQpOwogICAgICAgICAgICAgLy8gSW4gYSBwbHVnaW4gZG9jdW1lbnQs
IHRoZSBtYWluIHJlc291cmNlIGlzIHRoZSBwbHVnaW4uIElmIHdlIGhhdmUgYSBudWxsIHdpZGdl
dCwgdGhhdCBtZWFucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwCmluZGV4IDUwNWEzNTEuLjAxZDU5ZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTYx
LDcgKzYxLDcgQEAKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8p
Ci0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgorI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2Vu
ZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzNzUsOSArMTM3NSw5IEBAIHZvaWQgTWVk
aWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlU2l6ZXMoYm9vbCBmb3Jj
ZVVwZGF0ZSkKICAgICAgICAgdmlkZW9Cb3ggPSBtX3RleHRUcmFja1JlcHJlc2VudGF0aW9uLT5i
b3VuZHMoKTsKICAgICBlbHNlIHsKICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykK
LSAgICAgICAgaWYgKCFtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkgfHwgIW1lZGlhRWxlbWVudC0+
cmVuZGVyZXIoKS0+aXNSZW5kZXJQYXJ0KCkpCisgICAgICAgIGlmICghbWVkaWFFbGVtZW50LT5y
ZW5kZXJlcigpIHx8ICFtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmlzUmVuZGVyV2lkZ2V0KCkp
CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHZpZGVvQm94ID0gcGl4ZWxTbmFwcGVkSW50
UmVjdCh0b1JlbmRlclBhcnQobWVkaWFFbGVtZW50LT5yZW5kZXJlcigpKS0+Y29udGVudEJveFJl
Y3QoKSk7CisgICAgICAgIHZpZGVvQm94ID0gcGl4ZWxTbmFwcGVkSW50UmVjdCh0b1JlbmRlcldp
ZGdldChtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkpLT5jb250ZW50Qm94UmVjdCgpKTsKICNlbHNl
CiAgICAgICAgIGlmICghbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpIHx8ICFtZWRpYUVsZW1lbnQt
PnJlbmRlcmVyKCktPmlzVmlkZW8oKSkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmluZGV4IDQ1NTlkMjcuLjhmOGJjMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBA
IGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RPYmplY3QoSFRNTFBsdWdJbkltYWdlRWxlbWVu
dCogb3duZXJFbGVtZW50LCBjb25zdCBTCiAgICAgfQogCiAgICAgLy8gSWYgdGhlIHBsdWctaW4g
ZWxlbWVudCBhbHJlYWR5IGNvbnRhaW5zIGEgc3ViZnJhbWUsIGxvYWRPclJlZGlyZWN0U3ViZnJh
bWUgd2lsbCByZS11c2UgaXQuIE90aGVyd2lzZSwKLSAgICAvLyBpdCB3aWxsIGNyZWF0ZSBhIG5l
dyBmcmFtZSBhbmQgc2V0IGl0IGFzIHRoZSBSZW5kZXJQYXJ0J3Mgd2lkZ2V0LCBjYXVzaW5nIHdo
YXQgd2FzIHByZXZpb3VzbHkgCisgICAgLy8gaXQgd2lsbCBjcmVhdGUgYSBuZXcgZnJhbWUgYW5k
IHNldCBpdCBhcyB0aGUgUmVuZGVyV2lkZ2V0J3MgV2lkZ2V0LCBjYXVzaW5nIHdoYXQgd2FzIHBy
ZXZpb3VzbHkgCiAgICAgLy8gaW4gdGhlIHdpZGdldCB0byBiZSB0b3JuIGRvd24uCiAgICAgcmV0
dXJuIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUob3duZXJFbGVtZW50LCBjb21wbGV0ZWRVUkwsIGZy
YW1lTmFtZSwgdHJ1ZSwgdHJ1ZSk7CiB9CkBAIC0yNTUsNyArMjU1LDcgQEAgUGFzc1JlZlB0cjxX
aWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpsb2FkTWVkaWFQbGF5ZXJQcm94eVBsdWdpbihOb2RlKiBu
b2RlLCBjb25zdAogICAgICAgICByZXR1cm4gMDsKIAogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1l
ZGlhRWxlbWVudCA9IHRvSFRNTE1lZGlhRWxlbWVudChub2RlKTsKLSAgICBSZW5kZXJQYXJ0KiBy
ZW5kZXJlciA9IHRvUmVuZGVyUGFydChub2RlLT5yZW5kZXJlcigpKTsKKyAgICBSZW5kZXJXaWRn
ZXQqIHJlbmRlcmVyID0gdG9SZW5kZXJXaWRnZXQobm9kZS0+cmVuZGVyZXIoKSk7CiAgICAgSW50
U2l6ZSBzaXplOwogCiAgICAgaWYgKHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCAw
YWM0NGJhLi5mNWUyN2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNzUsMTEgKzc1LDExIEBA
CiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVk
ZSAiUmVndWxhckV4cHJlc3Npb24uaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGFibGVDZWxsLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRl
ICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC01
NjMsNyArNTYzLDcgQEAgUmVuZGVyVmlldyogRnJhbWU6OmNvbnRlbnRSZW5kZXJlcigpIGNvbnN0
CiAgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1bWVudCgpLT5yZW5kZXJWaWV3KCkgOiAwOwog
fQogCi1SZW5kZXJQYXJ0KiBGcmFtZTo6b3duZXJSZW5kZXJlcigpIGNvbnN0CitSZW5kZXJXaWRn
ZXQqIEZyYW1lOjpvd25lclJlbmRlcmVyKCkgY29uc3QKIHsKICAgICBIVE1MRnJhbWVPd25lckVs
ZW1lbnQqIG93bmVyRWxlbWVudCA9IG1fb3duZXJFbGVtZW50OwogICAgIGlmICghb3duZXJFbGVt
ZW50KQpAQCAtNTc1LDkgKzU3NSw5IEBAIFJlbmRlclBhcnQqIEZyYW1lOjpvd25lclJlbmRlcmVy
KCkgY29uc3QKICAgICAvLyB0aGF0IGl0IGhhcyBzdGFydGVkIGJ1dCBjYW5jZWxlZCwgdGhlbiB0
aGlzIGNhbiB0dXJuIGludG8gYW4gQVNTRVJUCiAgICAgLy8gc2luY2UgbV9vd25lckVsZW1lbnQg
d291bGQgYmUgMCB3aGVuIHRoZSBsb2FkIGlzIGNhbmNlbGVkLgogICAgIC8vIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU4NQotICAgIGlmICghb2JqZWN0LT5pc1Jl
bmRlclBhcnQoKSkKKyAgICBpZiAoIW9iamVjdC0+aXNXaWRnZXQoKSkKICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgcmV0dXJuIHRvUmVuZGVyUGFydChvYmplY3QpOworICAgIHJldHVybiB0b1JlbmRl
cldpZGdldChvYmplY3QpOwogfQogCiBGcmFtZSogRnJhbWU6OmZyYW1lRm9yV2lkZ2V0KGNvbnN0
IFdpZGdldCogd2lkZ2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IDQ3MmI2N2QuLjcwMzA2ZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmgKQEAgLTY3LDggKzY3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUmFuZ2U7CiAgICAgY2xhc3MgUmVndWxhckV4cHJlc3Np
b247Ci0gICAgY2xhc3MgUmVuZGVyUGFydDsKICAgICBjbGFzcyBSZW5kZXJWaWV3OworICAgIGNs
YXNzIFJlbmRlcldpZGdldDsKICAgICBjbGFzcyBTY3JpcHRDb250cm9sbGVyOwogICAgIGNsYXNz
IFNldHRpbmdzOwogICAgIGNsYXNzIFRpbGVkQmFja2luZ1N0b3JlOwpAQCAtMTI1LDcgKzEyNSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0
KCk7CiAgICAgICAgIAogICAgICAgICBSZW5kZXJWaWV3KiBjb250ZW50UmVuZGVyZXIoKSBjb25z
dDsgLy8gUm9vdCBvZiB0aGUgcmVuZGVyIHRyZWUgZm9yIHRoZSBkb2N1bWVudCBjb250YWluZWQg
aW4gdGhpcyBmcmFtZS4KLSAgICAgICAgUmVuZGVyUGFydCogb3duZXJSZW5kZXJlcigpIGNvbnN0
OyAvLyBSZW5kZXJlciBmb3IgdGhlIGVsZW1lbnQgdGhhdCBjb250YWlucyB0aGlzIGZyYW1lLgor
ICAgICAgICBSZW5kZXJXaWRnZXQqIG93bmVyUmVuZGVyZXIoKSBjb25zdDsgLy8gUmVuZGVyZXIg
Zm9yIHRoZSBlbGVtZW50IHRoYXQgY29udGFpbnMgdGhpcyBmcmFtZS4KIAogICAgIC8vID09PT09
PT09IEFsbCBwdWJsaWMgZnVuY3Rpb25zIGJlbG93IHRoaXMgcG9pbnQgYXJlIGNhbmRpZGF0ZXMg
dG8gbW92ZSBvdXQgb2YgRnJhbWUgaW50byBhbm90aGVyIGNsYXNzLiA9PT09PT09PQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNDBjZDYzMy4uZjEwNDFlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcApAQCAtNjMsMTIgKzYzLDEyIEBACiAjaW5jbHVkZSAiUmVuZGVySUZy
YW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJh
Y2tpbmcuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xs
YmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRl
clN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3
LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3Iu
aCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCkBAIC0yNDcsNyArMjQ3LDkgQEAgRnJhbWVWaWV3Ojp+RnJhbWVWaWV3KCkKICAgICBBU1NF
UlQobV9zY2hlZHVsZWRFdmVudHMuaXNFbXB0eSgpKTsKIAogICAgIEFTU0VSVChmcmFtZSgpLnZp
ZXcoKSAhPSB0aGlzIHx8ICFmcmFtZSgpLmNvbnRlbnRSZW5kZXJlcigpKTsKLSAgICBSZW5kZXJQ
YXJ0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOworCisgICAgLy8gRklYTUU6
IEhvdyBjb3VsZCB0aGlzIGV2ZXIgaGFwcGVuIHdoZW4gUmVuZGVyV2lkZ2V0IHJldGFpbnMgdGhl
IFdpZGdldCE/CisgICAgUmVuZGVyV2lkZ2V0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5k
ZXJlcigpOwogICAgIGlmIChyZW5kZXJlciAmJiByZW5kZXJlci0+d2lkZ2V0KCkgPT0gdGhpcykK
ICAgICAgICAgcmVuZGVyZXItPnNldFdpZGdldCgwKTsKIH0KQEAgLTQwMiw3ICs0MDQsNyBAQCB2
b2lkIEZyYW1lVmlldzo6Y2xlYXIoKQogICAgIAogICAgIHJlc2V0KCk7CiAKLSAgICBpZiAoUmVu
ZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKSkKKyAgICBpZiAoUmVu
ZGVyV2lkZ2V0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpKQogICAgICAgICBy
ZW5kZXJlci0+dmlld0NsZWFyZWQoKTsKIAogICAgIHNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKHRy
dWUpOwpAQCAtNDI2LDcgKzQyOCw3IEBAIHZvaWQgRnJhbWVWaWV3OjppbnZhbGlkYXRlUmVjdChj
b25zdCBJbnRSZWN0JiByZWN0KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVuZGVy
UGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKKyAgICBSZW5kZXJXaWRn
ZXQqIHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJl
cikKICAgICAgICAgcmV0dXJuOwogCkBAIC01NTMsNyArNTU1LDcgQEAgUGFzc1JlZlB0cjxTY3Jv
bGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9y
aWVudGF0aW8KICAgICAgICAgcmV0dXJuIFJlbmRlclNjcm9sbGJhcjo6Y3JlYXRlQ3VzdG9tU2Ny
b2xsYmFyKHRoaXMsIG9yaWVudGF0aW9uLCBkb2NFbGVtZW50KTsKICAgICAgICAgCiAgICAgLy8g
SWYgd2UgaGF2ZSBhbiBvd25pbmcgaWZyYW1lL2ZyYW1lIGVsZW1lbnQsIHRoZW4gaXQgY2FuIHNl
dCB0aGUgY3VzdG9tIHNjcm9sbGJhciBhbHNvLgotICAgIFJlbmRlclBhcnQqIGZyYW1lUmVuZGVy
ZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKKyAgICBSZW5kZXJXaWRnZXQqIGZyYW1lUmVu
ZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICBpZiAoZnJhbWVSZW5kZXJlciAm
JiBmcmFtZVJlbmRlcmVyLT5zdHlsZSgpLT5oYXNQc2V1ZG9TdHlsZShTQ1JPTExCQVIpKQogICAg
ICAgICByZXR1cm4gUmVuZGVyU2Nyb2xsYmFyOjpjcmVhdGVDdXN0b21TY3JvbGxiYXIodGhpcywg
b3JpZW50YXRpb24sIDAsICZmcmFtZSgpKTsKICAgICAKQEAgLTEwNjUsNyArMTA2Nyw3IEBAIFJl
bmRlck9iamVjdCogRnJhbWVWaWV3OjpsYXlvdXRSb290KGJvb2wgb25seUR1cmluZ0xheW91dCkg
Y29uc3QKIGlubGluZSB2b2lkIEZyYW1lVmlldzo6Zm9yY2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVk
ZWQoKQogewogI2lmIEVOQUJMRShTVkcpCi0gICAgUmVuZGVyUGFydCogb3duZXJSZW5kZXJlciA9
IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOworICAgIFJlbmRlcldpZGdldCogb3duZXJSZW5kZXJl
ciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwogICAgIGlmICghb3duZXJSZW5kZXJlcikKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0xNzMyLDcgKzE3MzQsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2Ny
b2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogCiAgICAgcmVw
YWludFNsb3dSZXBhaW50T2JqZWN0cygpOwogCi0gICAgaWYgKFJlbmRlclBhcnQqIGZyYW1lUmVu
ZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKSkgeworICAgIGlmIChSZW5kZXJXaWRnZXQq
IGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKSkgewogICAgICAgICBpZiAo
aXNFbmNsb3NlZEluQ29tcG9zaXRpbmdMYXllcigpKSB7CiAgICAgICAgICAgICBMYXlvdXRSZWN0
IHJlY3QoZnJhbWVSZW5kZXJlci0+Ym9yZGVyTGVmdCgpICsgZnJhbWVSZW5kZXJlci0+cGFkZGlu
Z0xlZnQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFtZVJlbmRlcmVyLT5ib3Jk
ZXJUb3AoKSArIGZyYW1lUmVuZGVyZXItPnBhZGRpbmdUb3AoKSwKQEAgLTMxMjcsNyArMzEyOSw3
IEBAIFNjcm9sbGFibGVBcmVhKiBGcmFtZVZpZXc6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkg
Y29uc3QKIAogSW50UmVjdCBGcmFtZVZpZXc6OnNjcm9sbGFibGVBcmVhQm91bmRpbmdCb3goKSBj
b25zdAogewotICAgIFJlbmRlclBhcnQqIG93bmVyUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVu
ZGVyZXIoKTsKKyAgICBSZW5kZXJXaWRnZXQqIG93bmVyUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVy
UmVuZGVyZXIoKTsKICAgICBpZiAoIW93bmVyUmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmcmFt
ZVJlY3QoKTsKIApAQCAtMzI4OSw3ICszMjkxLDcgQEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZVNj
cm9sbENvcm5lcigpCiAgICAgICAgIAogICAgICAgICBpZiAoIWNvcm5lclN0eWxlKSB7CiAgICAg
ICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIG93bmluZyBpZnJhbWUvZnJhbWUgZWxlbWVudCwgdGhl
biBpdCBjYW4gc2V0IHRoZSBjdXN0b20gc2Nyb2xsYmFyIGFsc28uCi0gICAgICAgICAgICBpZiAo
UmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKSkKKyAgICAgICAg
ICAgIGlmIChSZW5kZXJXaWRnZXQqIHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCkp
CiAgICAgICAgICAgICAgICAgY29ybmVyU3R5bGUgPSByZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1
ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoU0NST0xMQkFSX0NPUk5FUiksIHJlbmRlcmVyLT5z
dHlsZSgpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTM0MTEsNyArMzQxMyw3IEBAIGJvb2wgRnJh
bWVWaWV3Ojppc0luQ2hpbGRGcmFtZVdpdGhGcmFtZUZsYXR0ZW5pbmcoKSBjb25zdAogICAgIC8v
IEZyYW1lIGZsYXR0ZW5pbmcgYXBwbGllcyB3aGVuIHRoZSBvd25lciBlbGVtZW50IGlzIGVpdGhl
ciBpbiBhIGZyYW1lc2V0IG9yCiAgICAgLy8gYW4gaWZyYW1lIHdpdGggZmxhdHRlbmluZyBwYXJh
bWV0ZXJzLgogICAgIGlmIChmcmFtZSgpLm93bmVyRWxlbWVudCgpLT5oYXNUYWdOYW1lKGlmcmFt
ZVRhZykpIHsKLSAgICAgICAgUmVuZGVySUZyYW1lKiBpZnJhbWVSZW5kZXJlciA9IHRvUmVuZGVy
SUZyYW1lKGZyYW1lKCkub3duZXJFbGVtZW50KCktPnJlbmRlclBhcnQoKSk7CisgICAgICAgIFJl
bmRlcklGcmFtZSogaWZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlcklGcmFtZShmcmFtZSgpLm93bmVy
RWxlbWVudCgpLT5yZW5kZXJXaWRnZXQoKSk7CiAgICAgICAgIGlmIChpZnJhbWVSZW5kZXJlci0+
ZmxhdHRlbkZyYW1lKCkgfHwgaWZyYW1lUmVuZGVyZXItPmlzU2VhbWxlc3MoKSkKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTM5MDUsNyArMzkwNyw3IEBAIEludFJlY3QgRnJh
bWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3Qp
IGNvbnN0CiAgICAgICAgIGlmIChwYXJlbnRTY3JvbGxWaWV3LT5pc0ZyYW1lVmlldygpKSB7CiAg
ICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBhcmVudFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJl
bnRTY3JvbGxWaWV3KTsKICAgICAgICAgICAgIC8vIEdldCBvdXIgcmVuZGVyZXIgaW4gdGhlIHBh
cmVudCB2aWV3Ci0gICAgICAgICAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IGZyYW1lKCkub3du
ZXJSZW5kZXJlcigpOworICAgICAgICAgICAgUmVuZGVyV2lkZ2V0KiByZW5kZXJlciA9IGZyYW1l
KCkub3duZXJSZW5kZXJlcigpOwogICAgICAgICAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAg
ICAgICAgICByZXR1cm4gbG9jYWxSZWN0OwogICAgICAgICAgICAgICAgIApAQCAtMzkyOSw3ICsz
OTMxLDcgQEAgSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29u
c3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QKICAgICAgICAgICAgIGNvbnN0IEZyYW1lVmll
dyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAg
ICAgICAvLyBHZXQgb3VyIHJlbmRlcmVyIGluIHRoZSBwYXJlbnQgdmlldwotICAgICAgICAgICAg
UmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAg
ICAgIFJlbmRlcldpZGdldCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAg
ICAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudFJl
Y3Q7CiAKQEAgLTM5NTMsNyArMzk1NSw3IEBAIEludFBvaW50IEZyYW1lVmlldzo6Y29udmVydFRv
Q29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmIGxvY2FsUG9pbnQpIGNvbnN0CiAgICAgICAg
ICAgICBjb25zdCBGcmFtZVZpZXcqIHBhcmVudFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRTY3Jv
bGxWaWV3KTsKIAogICAgICAgICAgICAgLy8gR2V0IG91ciByZW5kZXJlciBpbiB0aGUgcGFyZW50
IHZpZXcKLSAgICAgICAgICAgIFJlbmRlclBhcnQqIHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJl
bmRlcmVyKCk7CisgICAgICAgICAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcmVyID0gZnJhbWUoKS5v
d25lclJlbmRlcmVyKCk7CiAgICAgICAgICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAg
ICAgIHJldHVybiBsb2NhbFBvaW50OwogICAgICAgICAgICAgICAgIApAQCAtMzk3OCw3ICszOTgw
LDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KGNvbnN0
IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QKICAgICAgICAgICAgIGNvbnN0IEZyYW1lVmll
dyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBhcmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAg
ICAgICAvLyBHZXQgb3VyIHJlbmRlcmVyIGluIHRoZSBwYXJlbnQgdmlldwotICAgICAgICAgICAg
UmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAg
ICAgIFJlbmRlcldpZGdldCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAg
ICAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudFBv
aW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmNwcAppbmRleCAyODVlMzk1Li41M2ZiZjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBz
dGF0aWMgY29uc3QgQ29sb3ImIHVuYXZhaWxhYmxlUGx1Z2luQm9yZGVyQ29sb3IoKQogfQogCiBS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6UmVuZGVyRW1iZWRkZWRPYmplY3QoRWxlbWVudCogZWxlbWVu
dCkKLSAgICA6IFJlbmRlclBhcnQoZWxlbWVudCkKKyAgICA6IFJlbmRlcldpZGdldChlbGVtZW50
KQogICAgICwgbV9oYXNGYWxsYmFja0NvbnRlbnQoZmFsc2UpCiAgICAgLCBtX2lzUGx1Z2luVW5h
dmFpbGFibGUoZmFsc2UpCiAgICAgLCBtX2lzVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JIaWRk
ZW4oZmFsc2UpCkBAIC0xMjEsNyArMTIxLDcgQEAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6On5SZW5k
ZXJFbWJlZGRlZE9iamVjdCgpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9v
bCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cmVxdWlyZXNMYXllcigpIGNvbnN0CiB7Ci0gICAgaWYg
KFJlbmRlclBhcnQ6OnJlcXVpcmVzTGF5ZXIoKSkKKyAgICBpZiAoUmVuZGVyV2lkZ2V0OjpyZXF1
aXJlc0xheWVyKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIHJldHVybiBhbGxv
d3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQKICAgICBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z0luRWxlbWVudCA9IHRv
SFRNTFBsdWdJbkVsZW1lbnQoZWxlbWVudCgpKTsKIAogICAgIGlmIChwbHVnSW5FbGVtZW50LT5k
aXNwbGF5U3RhdGUoKSA+IEhUTUxQbHVnSW5FbGVtZW50OjpEaXNwbGF5aW5nU25hcHNob3QpIHsK
LSAgICAgICAgUmVuZGVyUGFydDo6cGFpbnRDb250ZW50cyhwYWludEluZm8sIHBhaW50T2Zmc2V0
KTsKKyAgICAgICAgUmVuZGVyV2lkZ2V0OjpwYWludENvbnRlbnRzKHBhaW50SW5mbywgcGFpbnRP
ZmZzZXQpOwogICAgICAgICBpZiAoIXBsdWdJbkVsZW1lbnQtPmlzUmVzdGFydGVkUGx1Z2luKCkp
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgUmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPCiAgICAgaWYgKHBhZ2UgJiYgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50
UGhhc2VGb3JlZ3JvdW5kKQogICAgICAgICBwYWdlLT5hZGRSZWxldmFudFJlcGFpbnRlZE9iamVj
dCh0aGlzLCB2aXN1YWxPdmVyZmxvd1JlY3QoKSk7CiAKLSAgICBSZW5kZXJQYXJ0OjpwYWludChw
YWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICBSZW5kZXJXaWRnZXQ6OnBhaW50KHBhaW50SW5m
bywgcGFpbnRPZmZzZXQpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3UmVwbGFjZW1lbnRBcnJvdyhH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgaW5zaWRlUmVjdCkKQEAg
LTQ1Niw3ICs0NTYsNyBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQoKQogICAg
IHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwogICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKIAotICAg
IFJlbmRlclBhcnQ6OmxheW91dCgpOworICAgIFJlbmRlcldpZGdldDo6bGF5b3V0KCk7CiAKICAg
ICBjbGVhck92ZXJmbG93KCk7CiAgICAgYWRkVmlzdWFsRWZmZWN0T3ZlcmZsb3coKTsKQEAgLTUz
Nyw3ICs1MzcsNyBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojp2aWV3Q2xlYXJlZCgpCiAK
IGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zm
c2V0LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCiB7Ci0gICAgaWYgKCFSZW5kZXJQYXJ0
Ojpub2RlQXRQb2ludChyZXF1ZXN0LCByZXN1bHQsIGxvY2F0aW9uSW5Db250YWluZXIsIGFjY3Vt
dWxhdGVkT2Zmc2V0LCBoaXRUZXN0QWN0aW9uKSkKKyAgICBpZiAoIVJlbmRlcldpZGdldDo6bm9k
ZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRl
ZE9mZnNldCwgaGl0VGVzdEFjdGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
ICghd2lkZ2V0KCkgfHwgIXdpZGdldCgpLT5pc1BsdWdpblZpZXdCYXNlKCkpCkBAIC02NDAsNyAr
NjQwLDcgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRDdXJzb3Io
Y29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXJzb3IKICAgICAgICAgY3Vyc29yID0gaGFuZEN1
cnNvcigpOwogICAgICAgICByZXR1cm4gU2V0Q3Vyc29yOwogICAgIH0KLSAgICByZXR1cm4gUmVu
ZGVyUGFydDo6Z2V0Q3Vyc29yKHBvaW50LCBjdXJzb3IpOworICAgIHJldHVybiBSZW5kZXJXaWRn
ZXQ6OmdldEN1cnNvcihwb2ludCwgY3Vyc29yKTsKIH0KIAogYm9vbCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5kZXggMTliOWM1NC4uZjdkMDZkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKQEAgLTIz
LDcgKzIzLDcgQEAKICNpZm5kZWYgUmVuZGVyRW1iZWRkZWRPYmplY3RfaAogI2RlZmluZSBSZW5k
ZXJFbWJlZGRlZE9iamVjdF9oCiAKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAi
UmVuZGVyV2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzIsNyArMzIsNyBA
QCBjbGFzcyBUZXh0UnVuOwogCiAvLyBSZW5kZXJlciBmb3IgZW1iZWRzIGFuZCBvYmplY3RzLCBv
ZnRlbiwgYnV0IG5vdCBhbHdheXMsIHJlbmRlcmVkIHZpYSBwbHVnLWlucy4KIC8vIEZvciBleGFt
cGxlLCA8ZW1iZWQgc3JjPSJmb28uaHRtbCI+IGRvZXMgbm90IGludm9rZSBhIHBsdWctaW4uCi1j
bGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdCA6IHB1YmxpYyBSZW5kZXJQYXJ0IHsKK2NsYXNzIFJl
bmRlckVtYmVkZGVkT2JqZWN0IDogcHVibGljIFJlbmRlcldpZGdldCB7CiBwdWJsaWM6CiAgICAg
UmVuZGVyRW1iZWRkZWRPYmplY3QoRWxlbWVudCopOwogICAgIHZpcnR1YWwgflJlbmRlckVtYmVk
ZGVkT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnJhbWVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2Uu
Y3BwCmluZGV4IGIxM2Q0ZjMuLjkzOTg4ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGcmFtZUJhc2UuY3BwCkBAIC0zNCw3ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgCiBSZW5kZXJGcmFtZUJhc2U6OlJlbmRlckZyYW1lQmFzZShFbGVtZW50KiBlbGVt
ZW50KQotICAgIDogUmVuZGVyUGFydChlbGVtZW50KQorICAgIDogUmVuZGVyV2lkZ2V0KGVsZW1l
bnQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
cmFtZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuaApp
bmRleCA0ZmFkNTYwLi40YWVlNDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRnJhbWVCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZyYW1lQmFzZS5oCkBAIC0yNiwxMiArMjYsMTIgQEAKICNpZm5kZWYgUmVuZGVyRnJhbWVCYXNl
X2gKICNkZWZpbmUgUmVuZGVyRnJhbWVCYXNlX2gKIAotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIK
KyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBC
YXNlIGNsYXNzIGZvciBSZW5kZXJGcmFtZSBhbmQgUmVuZGVySUZyYW1lCi1jbGFzcyBSZW5kZXJG
cmFtZUJhc2UgOiBwdWJsaWMgUmVuZGVyUGFydCB7CitjbGFzcyBSZW5kZXJGcmFtZUJhc2UgOiBw
dWJsaWMgUmVuZGVyV2lkZ2V0IHsKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBSZW5kZXJGcmFt
ZUJhc2UoRWxlbWVudCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCmluZGV4IGE2MGJiYTEuLmNlYTdmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC00NTcsMTEgKzQ1Nywx
MSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29tcG9zaXRlZEJvdW5kcygpCiAK
IHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVBZnRlcldpZGdldFJlc2l6ZSgpCiB7Ci0g
ICAgaWYgKHJlbmRlcmVyKCkuaXNSZW5kZXJQYXJ0KCkpIHsKLSAgICAgICAgaWYgKFJlbmRlckxh
eWVyQ29tcG9zaXRvciogaW5uZXJDb21wb3NpdG9yID0gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpm
cmFtZUNvbnRlbnRzQ29tcG9zaXRvcih0b1JlbmRlclBhcnQoJnJlbmRlcmVyKCkpKSkgewotICAg
ICAgICAgICAgaW5uZXJDb21wb3NpdG9yLT5mcmFtZVZpZXdEaWRDaGFuZ2VTaXplKCk7Ci0gICAg
ICAgICAgICBpbm5lckNvbXBvc2l0b3ItPmZyYW1lVmlld0RpZENoYW5nZUxvY2F0aW9uKGZsb29y
ZWRJbnRQb2ludChjb250ZW50c0JveCgpLmxvY2F0aW9uKCkpKTsKLSAgICAgICAgfQorICAgIGlm
ICghcmVuZGVyZXIoKS5pc1dpZGdldCgpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKFJlbmRl
ckxheWVyQ29tcG9zaXRvciogaW5uZXJDb21wb3NpdG9yID0gUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcih0b1JlbmRlcldpZGdldCgmcmVuZGVyZXIoKSkpKSB7
CisgICAgICAgIGlubmVyQ29tcG9zaXRvci0+ZnJhbWVWaWV3RGlkQ2hhbmdlU2l6ZSgpOworICAg
ICAgICBpbm5lckNvbXBvc2l0b3ItPmZyYW1lVmlld0RpZENoYW5nZUxvY2F0aW9uKGZsb29yZWRJ
bnRQb2ludChjb250ZW50c0JveCgpLmxvY2F0aW9uKCkpKTsKICAgICB9CiB9CiAKQEAgLTU2OCw4
ICs1NjgsOCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNv
bmZpZ3VyYXRpb24oKQogICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogICAgIH0K
ICNlbmRpZgotICAgIGlmIChyZW5kZXJlcigpLmlzUmVuZGVyUGFydCgpKQotICAgICAgICBsYXll
ckNvbmZpZ0NoYW5nZWQgPSBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhcmVudEZyYW1lQ29udGVu
dExheWVycyh0b1JlbmRlclBhcnQoJnJlbmRlcmVyKCkpKTsKKyAgICBpZiAocmVuZGVyZXIoKS5p
c1dpZGdldCgpKQorICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnBhcmVudEZyYW1lQ29udGVudExheWVycyh0b1JlbmRlcldpZGdldCgmcmVuZGVyZXIo
KSkpOwogCiAgICAgcmV0dXJuIGxheWVyQ29uZmlnQ2hhbmdlZDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggNjI4YjFm
OS4uMDg4NDQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAKQEAgLTczOSw4ICs3MzksOCBAQCBib29sIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6dXBkYXRlQmFja2luZyhSZW5kZXJMYXllciogbGF5ZXIsIENvbXBvc2l0aW5nQ2hh
bmdlUgogICAgIH0KICNlbmRpZgogCi0gICAgaWYgKGxheWVyQ2hhbmdlZCAmJiBsYXllci0+cmVu
ZGVyZXIoKS5pc1JlbmRlclBhcnQoKSkgewotICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3Iq
IGlubmVyQ29tcG9zaXRvciA9IGZyYW1lQ29udGVudHNDb21wb3NpdG9yKHRvUmVuZGVyUGFydCgm
bGF5ZXItPnJlbmRlcmVyKCkpKTsKKyAgICBpZiAobGF5ZXJDaGFuZ2VkICYmIGxheWVyLT5yZW5k
ZXJlcigpLmlzV2lkZ2V0KCkpIHsKKyAgICAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBpbm5l
ckNvbXBvc2l0b3IgPSBmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcih0b1JlbmRlcldpZGdldCgmbGF5
ZXItPnJlbmRlcmVyKCkpKTsKICAgICAgICAgaWYgKGlubmVyQ29tcG9zaXRvciAmJiBpbm5lckNv
bXBvc2l0b3ItPmluQ29tcG9zaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICBpbm5lckNvbXBvc2l0
b3ItPnVwZGF0ZVJvb3RMYXllckF0dGFjaG1lbnQoKTsKICAgICB9CkBAIC0xMjU2LDggKzEyNTYs
OCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJU
cmVlKFJlbmRlckxheWVyKiBsYXllciwgVmVjdAogICAgIAogICAgIGlmIChsYXllckJhY2tpbmcp
IHsKICAgICAgICAgYm9vbCBwYXJlbnRlZCA9IGZhbHNlOwotICAgICAgICBpZiAobGF5ZXItPnJl
bmRlcmVyKCkuaXNSZW5kZXJQYXJ0KCkpCi0gICAgICAgICAgICBwYXJlbnRlZCA9IHBhcmVudEZy
YW1lQ29udGVudExheWVycyh0b1JlbmRlclBhcnQoJmxheWVyLT5yZW5kZXJlcigpKSk7CisgICAg
ICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS5pc1dpZGdldCgpKQorICAgICAgICAgICAgcGFyZW50
ZWQgPSBwYXJlbnRGcmFtZUNvbnRlbnRMYXllcnModG9SZW5kZXJXaWRnZXQoJmxheWVyLT5yZW5k
ZXJlcigpKSk7CiAKICAgICAgICAgaWYgKCFwYXJlbnRlZCkKICAgICAgICAgICAgIGxheWVyQmFj
a2luZy0+cGFyZW50Rm9yU3VibGF5ZXJzKCktPnNldENoaWxkcmVuKGxheWVyQ2hpbGRyZW4pOwpA
QCAtMTQwNyw3ICsxNDA3LDcgQEAgU3RyaW5nIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJU
cmVlQXNUZXh0KExheWVyVHJlZUZsYWdzIGZsYWdzKQogICAgIHJldHVybiBsYXllclRyZWVUZXh0
OwogfQogCi1SZW5kZXJMYXllckNvbXBvc2l0b3IqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJh
bWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVyUGFydCogcmVuZGVyZXIpCitSZW5kZXJMYXllckNv
bXBvc2l0b3IqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVDb250ZW50c0NvbXBvc2l0b3Io
UmVuZGVyV2lkZ2V0KiByZW5kZXJlcikKIHsKICAgICBpZiAoIXJlbmRlcmVyLT5lbGVtZW50KCkt
PmlzRnJhbWVPd25lckVsZW1lbnQoKSkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNDIwLDcgKzE0
MjAsNyBAQCBSZW5kZXJMYXllckNvbXBvc2l0b3IqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJh
bWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVyUGFydAogICAgIHJldHVybiAwOwogfQogCi1ib29s
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFyZW50RnJhbWVDb250ZW50TGF5ZXJzKFJlbmRlclBh
cnQqIHJlbmRlcmVyKQorYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhcmVudEZyYW1lQ29u
dGVudExheWVycyhSZW5kZXJXaWRnZXQqIHJlbmRlcmVyKQogewogICAgIFJlbmRlckxheWVyQ29t
cG9zaXRvciogaW5uZXJDb21wb3NpdG9yID0gZnJhbWVDb250ZW50c0NvbXBvc2l0b3IocmVuZGVy
ZXIpOwogICAgIGlmICghaW5uZXJDb21wb3NpdG9yIHx8ICFpbm5lckNvbXBvc2l0b3ItPmluQ29t
cG9zaXRpbmdNb2RlKCkgfHwgaW5uZXJDb21wb3NpdG9yLT5yb290TGF5ZXJBdHRhY2htZW50KCkg
IT0gUm9vdExheWVyQXR0YWNoZWRWaWFFbmNsb3NpbmdGcmFtZSkKQEAgLTE3NDQsNyArMTc0NCw3
IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3NpdGlu
Z1RvRW5jbG9zaW5nRnJhbWUoKSBjb25zdAogICAgIGlmICghYWxsb3dzSW5kZXBlbmRlbnRseUNv
bXBvc2l0ZWRGcmFtZXMoJm1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKSkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgaWYgKCFyZW5kZXJlciB8fCAhcmVuZGVyZXItPmlzUmVuZGVyUGFydCgp
KQorICAgIGlmICghcmVuZGVyZXIgfHwgIXJlbmRlcmVyLT5pc1dpZGdldCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICAvLyBPbiBNYWMsIG9ubHkgcHJvcGFnYXRlIGNvbXBvc2l0aW5n
IGlmIHRoZSBmcmFtZSBpcyBvdmVybGFwcGVkIGluIHRoZSBwYXJlbnQKQEAgLTE3NTMsNyArMTc1
Myw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3Np
dGluZ1RvRW5jbG9zaW5nRnJhbWUoKSBjb25zdAogICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VT
Y2FsZUZhY3RvcigpICE9IDEpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAotICAgIFJlbmRl
clBhcnQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlclBhcnQocmVuZGVyZXIpOworICAgIFJlbmRl
cldpZGdldCogZnJhbWVSZW5kZXJlciA9IHRvUmVuZGVyV2lkZ2V0KHJlbmRlcmVyKTsKICAgICBp
ZiAoZnJhbWVSZW5kZXJlci0+d2lkZ2V0KCkpIHsKICAgICAgICAgQVNTRVJUKGZyYW1lUmVuZGVy
ZXItPndpZGdldCgpLT5pc0ZyYW1lVmlldygpKTsKICAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0g
dG9GcmFtZVZpZXcoZnJhbWVSZW5kZXJlci0+d2lkZ2V0KCkpOwpAQCAtMjA4MSw3ICsyMDgxLDcg
QEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JWaWRl
byhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgICAgICByZXR1cm4gKHZpZGVvLnJlcXVpcmVz
SW1tZWRpYXRlQ29tcG9zaXRpbmcoKSB8fCB2aWRlby5zaG91bGREaXNwbGF5VmlkZW8oKSkgJiYg
Y2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKHZpZGVvKTsKICAgICB9CiAjaWYgRU5BQkxFKFBM
VUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgZWxzZSBpZiAocmVuZGVyZXItPmlzUmVuZGVyUGFy
dCgpKSB7CisgICAgZWxzZSBpZiAocmVuZGVyZXItPmlzUmVuZGVyV2lkZ2V0KCkpIHsKICAgICAg
ICAgaWYgKCFtX2hhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKQEAgLTIxMzksMTAgKzIxMzksMTAgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVnaW4oUmVuZGVyT2JqZWN0KiByZW5kZXJlcikK
IAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGcmFt
ZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25zdAogewotICAgIGlmICghcmVuZGVyZXItPmlz
UmVuZGVyUGFydCgpKQorICAgIGlmICghcmVuZGVyZXItPmlzV2lkZ2V0KCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAKLSAgICBSZW5kZXJQYXJ0KiBmcmFtZVJlbmRlcmVyID0gdG9SZW5k
ZXJQYXJ0KHJlbmRlcmVyKTsKKyAgICBSZW5kZXJXaWRnZXQqIGZyYW1lUmVuZGVyZXIgPSB0b1Jl
bmRlcldpZGdldChyZW5kZXJlcik7CiAKICAgICBpZiAoIWZyYW1lUmVuZGVyZXItPnJlcXVpcmVz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggNGM2
Mzg3Ny4uOGU2NjIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBGaXhlZFBvc2l0aW9uVmll
d3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEdyYXBoaWNzTGF5ZXI7CiBjbGFzcyBHcmFwaGljc0xh
eWVyVXBkYXRlcjsKIGNsYXNzIFJlbmRlckVtYmVkZGVkT2JqZWN0OwotY2xhc3MgUmVuZGVyUGFy
dDsKK2NsYXNzIFJlbmRlcldpZGdldDsKIGNsYXNzIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOwogY2xh
c3MgU3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogI2lmIEVOQUJMRShWSURFTykK
QEAgLTIyNyw5ICsyMjcsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzSW5kZXBl
bmRlbnRseUNvbXBvc2l0ZWRGcmFtZXMoY29uc3QgRnJhbWVWaWV3Kik7CiAgICAgYm9vbCBzaG91
bGRQcm9wYWdhdGVDb21wb3NpdGluZ1RvRW5jbG9zaW5nRnJhbWUoKSBjb25zdDsKIAotICAgIHN0
YXRpYyBSZW5kZXJMYXllckNvbXBvc2l0b3IqIGZyYW1lQ29udGVudHNDb21wb3NpdG9yKFJlbmRl
clBhcnQqKTsKKyAgICBzdGF0aWMgUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBmcmFtZUNvbnRlbnRz
Q29tcG9zaXRvcihSZW5kZXJXaWRnZXQqKTsKICAgICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgbGF5
ZXJzIGNoYW5nZWQuCi0gICAgc3RhdGljIGJvb2wgcGFyZW50RnJhbWVDb250ZW50TGF5ZXJzKFJl
bmRlclBhcnQqKTsKKyAgICBzdGF0aWMgYm9vbCBwYXJlbnRGcmFtZUNvbnRlbnRMYXllcnMoUmVu
ZGVyV2lkZ2V0Kik7CiAKICAgICAvLyBVcGRhdGUgdGhlIGdlb21ldHJ5IG9mIHRoZSBsYXllcnMg
dXNlZCBmb3IgY2xpcHBpbmcgYW5kIHNjcm9sbGluZyBpbiBmcmFtZXMuCiAgICAgdm9pZCBmcmFt
ZVZpZXdEaWRDaGFuZ2VMb2NhdGlvbihjb25zdCBJbnRQb2ludCYgY29udGVudHNPZmZzZXQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGNkODg0ZTQuLmZjOTFh
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTM3OCw3ICsz
NzgsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVySUZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJJbWFnZSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVySW5saW5lKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQYXJ0KCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJSZWdpb24oKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlcGxhY2Vk
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZXBsaWNhKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJQYXJ0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmYwMmM3OC4uMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwxNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChr
bm9sbEBrZGUub3JnKQotICogICAgICAgICAgIChDKSAyMDAwIFNpbW9uIEhhdXNtYW5uIDxoYXVz
bWFubkBrZGUub3JnPgotICogICAgICAgICAgIChDKSAyMDAwIFN0ZWZhbiBTY2hpbWFuc2tpICgx
U3RlaW5AZ214LmRlKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCi0KLSNpbmNsdWRlICJGcmFtZS5o
IgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnRCYXNl
LmgiCi0jaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgotI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNl
LmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdSb290Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVyVmlldy5oIgotCi11c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLVJlbmRlclBhcnQ6OlJlbmRlclBhcnQoRWxlbWVudCogbm9kZSkK
LSAgICA6IFJlbmRlcldpZGdldChub2RlKQotewotICAgIHNldElubGluZShmYWxzZSk7Ci19Ci0K
LVJlbmRlclBhcnQ6On5SZW5kZXJQYXJ0KCkKLXsKLSAgICBjbGVhcldpZGdldCgpOwotfQotCi12
b2lkIFJlbmRlclBhcnQ6OnNldFdpZGdldChQYXNzUmVmUHRyPFdpZGdldD4gd2lkZ2V0KQotewot
ICAgIGlmICh3aWRnZXQgPT0gdGhpcy0+d2lkZ2V0KCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFJlbmRlcldpZGdldDo6c2V0V2lkZ2V0KHdpZGdldCk7Ci0KLSAgICAvLyBtYWtlIHN1cmUgdGhl
IHNjcm9sbGJhcnMgYXJlIHNldCBjb3JyZWN0bHkgZm9yIHJlc3RvcmUKLSAgICAvLyAjIyMgZmlu
ZCBiZXR0ZXIgZml4Ci0gICAgdmlld0NsZWFyZWQoKTsKLX0KLQotdm9pZCBSZW5kZXJQYXJ0Ojp2
aWV3Q2xlYXJlZCgpCi17Ci19Ci0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi1i
b29sIFJlbmRlclBhcnQ6OnJlcXVpcmVzTGF5ZXIoKSBjb25zdAotewotICAgIGlmIChSZW5kZXJX
aWRnZXQ6OnJlcXVpcmVzTGF5ZXIoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAg
cmV0dXJuIHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOwotfQotCi1ib29sIFJlbmRl
clBhcnQ6OnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0Ci17Ci0gICAgLy8g
VGhlcmUgYXJlIHR3byBnZW5lcmFsIGNhc2VzIGluIHdoaWNoIHdlIGNhbiByZXR1cm4gdHJ1ZS4g
Rmlyc3QsIGlmIHRoaXMgaXMgYSBwbHVnaW4gCi0gICAgLy8gcmVuZGVyZXIgYW5kIHRoZSBwbHVn
aW4gaGFzIGEgbGF5ZXIsIHRoZW4gd2UgbmVlZCBhIGxheWVyLiBTZWNvbmQsIGlmIHRoaXMgaXMg
Ci0gICAgLy8gYSByZW5kZXJlciB3aXRoIGEgY29udGVudERvY3VtZW50IGFuZCB0aGF0IGRvY3Vt
ZW50IG5lZWRzIGEgbGF5ZXIsIHRoZW4gd2UgbmVlZAotICAgIC8vIGEgbGF5ZXIuCi0gICAgaWYg
KHdpZGdldCgpICYmIHdpZGdldCgpLT5pc1BsdWdpblZpZXdCYXNlKCkgJiYgdG9QbHVnaW5WaWV3
QmFzZSh3aWRnZXQoKSktPnBsYXRmb3JtTGF5ZXIoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0K
LSAgICBpZiAoIWVsZW1lbnQoKSB8fCAhZWxlbWVudCgpLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogZnJh
bWVPd25lckVsZW1lbnQgPSB0b0ZyYW1lT3duZXJFbGVtZW50KGVsZW1lbnQoKSk7Ci0gICAgaWYg
KERvY3VtZW50KiBjb250ZW50RG9jdW1lbnQgPSBmcmFtZU93bmVyRWxlbWVudC0+Y29udGVudERv
Y3VtZW50KCkpIHsKLSAgICAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcgPSBjb250ZW50RG9jdW1l
bnQtPnJlbmRlclZpZXcoKSkKLSAgICAgICAgICAgIHJldHVybiB2aWV3LT51c2VzQ29tcG9zaXRp
bmcoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0jZW5kaWYKLQotYm9vbCBSZW5k
ZXJQYXJ0OjpuZWVkc1ByZWZlcnJlZFdpZHRoc1JlY2FsY3VsYXRpb24oKSBjb25zdAotewotICAg
IGlmIChSZW5kZXJXaWRnZXQ6Om5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7Ci19
Ci0KLVJlbmRlckJveCogUmVuZGVyUGFydDo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QKLXsK
LSAgICBpZiAoIWVsZW1lbnQoKSB8fCAhd2lkZ2V0KCkgfHwgIXdpZGdldCgpLT5pc0ZyYW1lVmll
dygpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gdG9GcmFtZVZpZXcod2lkZ2V0KCkp
LT5lbWJlZGRlZENvbnRlbnRCb3goKTsKLX0KLQotYm9vbCBSZW5kZXJQYXJ0Ojpub2RlQXRQb2lu
dChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBj
b25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBv
aW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbiBhY3Rpb24pCi17Ci0gICAgaWYg
KCF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkgfHwgIXJlcXVlc3QuYWxsb3dz
Q2hpbGRGcmFtZUNvbnRlbnQoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlcldpZGdldDo6bm9kZUF0
UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9m
ZnNldCwgYWN0aW9uKTsKLQotICAgIEZyYW1lVmlldyogY2hpbGRGcmFtZVZpZXcgPSB0b0ZyYW1l
Vmlldyh3aWRnZXQoKSk7Ci0gICAgUmVuZGVyVmlldyogY2hpbGRSb290ID0gY2hpbGRGcmFtZVZp
ZXctPnJlbmRlclZpZXcoKTsKLQotICAgIGlmIChjaGlsZFJvb3QpIHsKLSAgICAgICAgTGF5b3V0
UG9pbnQgYWRqdXN0ZWRMb2NhdGlvbiA9IGFjY3VtdWxhdGVkT2Zmc2V0ICsgbG9jYXRpb24oKTsK
LSAgICAgICAgTGF5b3V0UG9pbnQgY29udGVudE9mZnNldCA9IExheW91dFBvaW50KGJvcmRlckxl
ZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRvcCgpICsgcGFkZGluZ1RvcCgpKSAtIGNoaWxk
RnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQoKTsKLSAgICAgICAgSGl0VGVzdExvY2F0aW9uIG5ld0hp
dFRlc3RMb2NhdGlvbihsb2NhdGlvbkluQ29udGFpbmVyLCAtYWRqdXN0ZWRMb2NhdGlvbiAtIGNv
bnRlbnRPZmZzZXQpOwotICAgICAgICBIaXRUZXN0UmVxdWVzdCBuZXdIaXRUZXN0UmVxdWVzdChy
ZXF1ZXN0LnR5cGUoKSB8IEhpdFRlc3RSZXF1ZXN0OjpDaGlsZEZyYW1lSGl0VGVzdCk7Ci0gICAg
ICAgIEhpdFRlc3RSZXN1bHQgY2hpbGRGcmFtZVJlc3VsdChuZXdIaXRUZXN0TG9jYXRpb24pOwot
Ci0gICAgICAgIGJvb2wgaXNJbnNpZGVDaGlsZEZyYW1lID0gY2hpbGRSb290LT5oaXRUZXN0KG5l
d0hpdFRlc3RSZXF1ZXN0LCBuZXdIaXRUZXN0TG9jYXRpb24sIGNoaWxkRnJhbWVSZXN1bHQpOwot
Ci0gICAgICAgIGlmIChuZXdIaXRUZXN0TG9jYXRpb24uaXNSZWN0QmFzZWRUZXN0KCkpCi0gICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKGNoaWxkRnJhbWVSZXN1bHQpOwotICAgICAgICBlbHNlIGlm
IChpc0luc2lkZUNoaWxkRnJhbWUpCi0gICAgICAgICAgICByZXN1bHQgPSBjaGlsZEZyYW1lUmVz
dWx0OwotCi0gICAgICAgIGlmIChpc0luc2lkZUNoaWxkRnJhbWUpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gUmVuZGVyV2lkZ2V0Ojpub2RlQXRQb2ludChy
ZXF1ZXN0LCByZXN1bHQsIGxvY2F0aW9uSW5Db250YWluZXIsIGFjY3VtdWxhdGVkT2Zmc2V0LCBh
Y3Rpb24pOwotfQotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUGFydC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ2ZmFmZi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQot
ICogICAgICAgICAgIChDKSAyMDAwIFNpbW9uIEhhdXNtYW5uIDxoYXVzbWFubkBrZGUub3JnPgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgot
ICovCi0KLSNpZm5kZWYgUmVuZGVyUGFydF9oCi0jZGVmaW5lIFJlbmRlclBhcnRfaAotCi0jaW5j
bHVkZSAiUmVuZGVyV2lkZ2V0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gUmVuZGVy
ZXIgZm9yIGZyYW1lcyB2aWEgUmVuZGVyRnJhbWVCYXNlLCBhbmQgcGx1Zy1pbnMgdmlhIFJlbmRl
ckVtYmVkZGVkT2JqZWN0LgotY2xhc3MgUmVuZGVyUGFydCA6IHB1YmxpYyBSZW5kZXJXaWRnZXQg
ewotcHVibGljOgotICAgIGV4cGxpY2l0IFJlbmRlclBhcnQoRWxlbWVudCopOwotICAgIHZpcnR1
YWwgflJlbmRlclBhcnQoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXRXaWRnZXQoUGFzc1JlZlB0
cjxXaWRnZXQ+KSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgdmlld0NsZWFyZWQo
KTsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBib29sIHJlcXVpcmVz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0OwotI2VuZGlmCi0KLSAgICB2aXJ0dWFsIGJv
b2wgbmVlZHNQcmVmZXJyZWRXaWR0aHNSZWNhbGN1bGF0aW9uKCkgY29uc3QgT1ZFUlJJREUgRklO
QUw7Ci0gICAgdmlydHVhbCBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0IE9W
RVJSSURFIEZJTkFMOwotCi0gICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRp
b25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRU
ZXN0QWN0aW9uKSBPVkVSUklERTsKLQotcHJvdGVjdGVkOgotI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKLSAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJS
SURFOwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCBib29sIGlzUmVuZGVyUGFydCgp
IGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0
IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiUmVuZGVyUGFydCI7
IH0KLX07Ci0KLWlubGluZSBSZW5kZXJQYXJ0KiB0b1JlbmRlclBhcnQoUmVuZGVyT2JqZWN0KiBv
YmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8
fCBvYmplY3QtPmlzUmVuZGVyUGFydCgpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVy
UGFydCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMgd2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4g
dW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5kZXJQYXJ0KGNvbnN0IFJlbmRlclBhcnQqKTsK
LQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTY3JvbGxiYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJh
ci5jcHAKaW5kZXggNjU5MDk1Yy4uYzE1MTQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNjcm9sbGJhci5jcHAKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgog
I2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhclBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxi
YXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlN0eWxlSW5o
ZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKIApAQCAtODIsNyArODIs
NyBAQCBSZW5kZXJTY3JvbGxiYXI6On5SZW5kZXJTY3JvbGxiYXIoKQogUmVuZGVyQm94KiBSZW5k
ZXJTY3JvbGxiYXI6Om93bmluZ1JlbmRlcmVyKCkgY29uc3QKIHsKICAgICBpZiAobV9vd25pbmdG
cmFtZSkgewotICAgICAgICBSZW5kZXJCb3gqIGN1cnJlbnRSZW5kZXJlciA9IG1fb3duaW5nRnJh
bWUtPm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAgUmVuZGVyV2lkZ2V0KiBjdXJyZW50UmVuZGVy
ZXIgPSBtX293bmluZ0ZyYW1lLT5vd25lclJlbmRlcmVyKCk7CiAgICAgICAgIHJldHVybiBjdXJy
ZW50UmVuZGVyZXI7CiAgICAgfQogICAgIHJldHVybiBtX293bmVyICYmIG1fb3duZXItPnJlbmRl
cmVyKCkgPyBtX293bmVyLT5yZW5kZXJlcigpLT5lbmNsb3NpbmdCb3goKSA6IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggZWFjY2Y4Yy4u
ZTAzZTIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVB
c1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0
LmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2luY2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVh
ZC5oIgotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIK
ICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBA
IC01MDIsOCArNTAxLDggQEAgdm9pZCBSZW5kZXJUcmVlQXNUZXh0Ojp3cml0ZVJlbmRlck9iamVj
dChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiBvLAogI2lmIFBMQVRGT1JNKFFU
KQogICAgIC8vIFByaW50IGF0dHJpYnV0ZXMgb2YgZW1iZWRkZWQgUVdpZGdldHMuIEUuZy4gd2hl
biB0aGUgV2ViQ29yZTo6V2lkZ2V0CiAgICAgLy8gaXMgaW52aXNpYmxlIHRoZSBRV2lkZ2V0IHNo
b3VsZCBiZSBpbnZpc2libGUgdG9vLgotICAgIGlmIChvLmlzUmVuZGVyUGFydCgpKSB7Ci0gICAg
ICAgIGNvbnN0IFJlbmRlclBhcnQqIHBhcnQgPSB0b1JlbmRlclBhcnQoY29uc3RfY2FzdDxSZW5k
ZXJPYmplY3QqPigmbykpOworICAgIGlmIChvLmlzV2lkZ2V0KCkpIHsKKyAgICAgICAgY29uc3Qg
UmVuZGVyV2lkZ2V0KiBwYXJ0ID0gdG9SZW5kZXJXaWRnZXQoY29uc3RfY2FzdDxSZW5kZXJPYmpl
Y3QqPigmbykpOwogICAgICAgICBpZiAocGFydC0+d2lkZ2V0KCkgJiYgcGFydC0+d2lkZ2V0KCkt
PnBsYXRmb3JtV2lkZ2V0KCkpIHsKICAgICAgICAgICAgIFFPYmplY3QqIHdpZCA9IHBhcnQtPndp
ZGdldCgpLT5wbGF0Zm9ybVdpZGdldCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuY3BwCmluZGV4IDFlODI2YjUuLjMzMTkxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVz
dWx0LmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCisjaW5jbHVkZSAiUGx1
Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJSZW5kZXJDb3VudGVyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC05Niw2ICs5OCw3IEBAIFJl
bmRlcldpZGdldDo6UmVuZGVyV2lkZ2V0KEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgLy8gYWJsZSB0
byBoYW5kbGUgdGhhdC4KICAgICAsIG1fcmVmQ291bnQoMSkKIHsKKyAgICBzZXRJbmxpbmUoZmFs
c2UpOwogICAgIHZpZXcoKS5hZGRXaWRnZXQodGhpcyk7CiB9CiAKQEAgLTIxMiwxMCArMjE1LDE1
IEBAIHZvaWQgUmVuZGVyV2lkZ2V0OjpzZXRXaWRnZXQoUGFzc1JlZlB0cjxXaWRnZXQ+IHdpZGdl
dCkKICAgICAgICAgfQogICAgICAgICBtb3ZlV2lkZ2V0VG9QYXJlbnRTb29uKG1fd2lkZ2V0Lmdl
dCgpLCBtX2ZyYW1lVmlldyk7CiAgICAgfQorICAgIC8vIG1ha2Ugc3VyZSB0aGUgc2Nyb2xsYmFy
cyBhcmUgc2V0IGNvcnJlY3RseSBmb3IgcmVzdG9yZQorICAgIC8vICMjIyBmaW5kIGJldHRlciBm
aXgKKyAgICB2aWV3Q2xlYXJlZCgpOwogfQogCiB2b2lkIFJlbmRlcldpZGdldDo6bGF5b3V0KCkK
IHsKKworICAgIHZpZXdDbGVhcmVkKCk7CiAgICAgU3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQb2lu
dCBsYXlvdXRDaGVja1BvaW50OwogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKIApAQCAtMzg2
LDYgKzM5NCwzMCBAQCBSZW5kZXJXaWRnZXQqIFJlbmRlcldpZGdldDo6ZmluZChjb25zdCBXaWRn
ZXQqIHdpZGdldCkKIAogYm9vbCBSZW5kZXJXaWRnZXQ6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGFjdGlvbikKIHsKKyAgICBpZiAoIXdpZGdldCgpIHx8
ICF3aWRnZXQoKS0+aXNGcmFtZVZpZXcoKSB8fCAhcmVxdWVzdC5hbGxvd3NDaGlsZEZyYW1lQ29u
dGVudCgpKQorICAgICAgICByZXR1cm4gUmVuZGVyV2lkZ2V0Ojpub2RlQXRQb2ludChyZXF1ZXN0
LCByZXN1bHQsIGxvY2F0aW9uSW5Db250YWluZXIsIGFjY3VtdWxhdGVkT2Zmc2V0LCBhY3Rpb24p
OworCisgICAgRnJhbWVWaWV3KiBjaGlsZEZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHdpZGdldCgp
KTsKKyAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBjaGlsZEZyYW1lVmlldy0+cmVuZGVyVmll
dygpOworCisgICAgaWYgKGNoaWxkUm9vdCkgeworICAgICAgICBMYXlvdXRQb2ludCBhZGp1c3Rl
ZExvY2F0aW9uID0gYWNjdW11bGF0ZWRPZmZzZXQgKyBsb2NhdGlvbigpOworICAgICAgICBMYXlv
dXRQb2ludCBjb250ZW50T2Zmc2V0ID0gTGF5b3V0UG9pbnQoYm9yZGVyTGVmdCgpICsgcGFkZGlu
Z0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpIC0gY2hpbGRGcmFtZVZpZXctPnNj
cm9sbE9mZnNldCgpOworICAgICAgICBIaXRUZXN0TG9jYXRpb24gbmV3SGl0VGVzdExvY2F0aW9u
KGxvY2F0aW9uSW5Db250YWluZXIsIC1hZGp1c3RlZExvY2F0aW9uIC0gY29udGVudE9mZnNldCk7
CisgICAgICAgIEhpdFRlc3RSZXF1ZXN0IG5ld0hpdFRlc3RSZXF1ZXN0KHJlcXVlc3QudHlwZSgp
IHwgSGl0VGVzdFJlcXVlc3Q6OkNoaWxkRnJhbWVIaXRUZXN0KTsKKyAgICAgICAgSGl0VGVzdFJl
c3VsdCBjaGlsZEZyYW1lUmVzdWx0KG5ld0hpdFRlc3RMb2NhdGlvbik7CisKKyAgICAgICAgYm9v
bCBpc0luc2lkZUNoaWxkRnJhbWUgPSBjaGlsZFJvb3QtPmhpdFRlc3QobmV3SGl0VGVzdFJlcXVl
c3QsIG5ld0hpdFRlc3RMb2NhdGlvbiwgY2hpbGRGcmFtZVJlc3VsdCk7CisKKyAgICAgICAgaWYg
KG5ld0hpdFRlc3RMb2NhdGlvbi5pc1JlY3RCYXNlZFRlc3QoKSkKKyAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoY2hpbGRGcmFtZVJlc3VsdCk7CisgICAgICAgIGVsc2UgaWYgKGlzSW5zaWRlQ2hp
bGRGcmFtZSkKKyAgICAgICAgICAgIHJlc3VsdCA9IGNoaWxkRnJhbWVSZXN1bHQ7CisKKyAgICAg
ICAgaWYgKGlzSW5zaWRlQ2hpbGRGcmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKwogICAgIGJvb2wgaGFkUmVzdWx0ID0gcmVzdWx0LmlubmVyTm9kZSgpOwogICAgIGJvb2wg
aW5zaWRlID0gUmVuZGVyUmVwbGFjZWQ6Om5vZGVBdFBvaW50KHJlcXVlc3QsIHJlc3VsdCwgbG9j
YXRpb25JbkNvbnRhaW5lciwgYWNjdW11bGF0ZWRPZmZzZXQsIGFjdGlvbik7CiAKQEAgLTQwNCw0
ICs0MzYsNDcgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRlcldpZGdldDo6Z2V0Q3Vyc29yKGNvbnN0
IExheW91dFBvaW50JiBwb2ludCwgQ3Vyc29yJiBjdXJzb3IKICAgICByZXR1cm4gUmVuZGVyUmVw
bGFjZWQ6OmdldEN1cnNvcihwb2ludCwgY3Vyc29yKTsKIH0KIAorCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorYm9vbCBSZW5kZXJXaWRnZXQ6OnJlcXVpcmVzTGF5ZXIoKSBjb25z
dAoreworICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6cmVxdWlyZXNMYXllcigpIHx8IHJlcXVp
cmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOworfQorCitib29sIFJlbmRlcldpZGdldDo6cmVx
dWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKK3sKKyAgICAvLyBUaGVyZSBhcmUg
dHdvIGdlbmVyYWwgY2FzZXMgaW4gd2hpY2ggd2UgY2FuIHJldHVybiB0cnVlLiBGaXJzdCwgaWYg
dGhpcyBpcyBhIHBsdWdpbiAKKyAgICAvLyByZW5kZXJlciBhbmQgdGhlIHBsdWdpbiBoYXMgYSBs
YXllciwgdGhlbiB3ZSBuZWVkIGEgbGF5ZXIuIFNlY29uZCwgaWYgdGhpcyBpcyAKKyAgICAvLyBh
IHJlbmRlcmVyIHdpdGggYSBjb250ZW50RG9jdW1lbnQgYW5kIHRoYXQgZG9jdW1lbnQgbmVlZHMg
YSBsYXllciwgdGhlbiB3ZSBuZWVkCisgICAgLy8gYSBsYXllci4KKyAgICBpZiAod2lkZ2V0KCkg
JiYgd2lkZ2V0KCktPmlzUGx1Z2luVmlld0Jhc2UoKSAmJiB0b1BsdWdpblZpZXdCYXNlKHdpZGdl
dCgpKS0+cGxhdGZvcm1MYXllcigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICgh
ZWxlbWVudCgpIHx8ICFlbGVtZW50KCktPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBmcmFtZU93bmVyRWxl
bWVudCA9IHRvRnJhbWVPd25lckVsZW1lbnQoZWxlbWVudCgpKTsKKyAgICBpZiAoRG9jdW1lbnQq
IGNvbnRlbnREb2N1bWVudCA9IGZyYW1lT3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1lbnQoKSkg
eworICAgICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IGNvbnRlbnREb2N1bWVudC0+cmVuZGVy
VmlldygpKQorICAgICAgICAgICAgcmV0dXJuIHZpZXctPnVzZXNDb21wb3NpdGluZygpOworICAg
IH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCitib29sIFJlbmRlcldpZGdldDo6
bmVlZHNQcmVmZXJyZWRXaWR0aHNSZWNhbGN1bGF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoUmVu
ZGVyUmVwbGFjZWQ6Om5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7Cit9CisKK1Jl
bmRlckJveCogUmVuZGVyV2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAoreworICAg
IGlmICghZWxlbWVudCgpIHx8ICF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkp
CisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRnZXQoKSktPmVt
YmVkZGVkQ29udGVudEJveCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggOTlkY2Q1My4uZWJkZjkwMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDks
IDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJXaWRn
ZXQoKTsKIAogICAgIFdpZGdldCogd2lkZ2V0KCkgY29uc3QgeyByZXR1cm4gbV93aWRnZXQuZ2V0
KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2lkZ2V0KFBhc3NSZWZQdHI8V2lkZ2V0Pik7Cisg
ICAgdm9pZCBzZXRXaWRnZXQoUGFzc1JlZlB0cjxXaWRnZXQ+KTsKIAogICAgIHN0YXRpYyBSZW5k
ZXJXaWRnZXQqIGZpbmQoY29uc3QgV2lkZ2V0Kik7CiAKQEAgLTcxLDYgKzcxLDEyIEBAIHB1Ymxp
YzoKICAgICBSZW5kZXJBcmVuYSogcmVmKCkgeyArK21fcmVmQ291bnQ7IHJldHVybiByZW5kZXJB
cmVuYSgpOyB9CiAgICAgdm9pZCBkZXJlZihSZW5kZXJBcmVuYSopOwogCisjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGJvb2wgcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nKCkgY29uc3Q7CisjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCB2aWV3Q2xlYXJlZCgpIHsg
fQorCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyV2lkZ2V0KEVsZW1lbnQqKTsKIApAQCAtODMsMTIg
Kzg5LDE3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIEN1cnNvckRpcmVjdGl2
ZSBnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmLCBDdXJzb3ImKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRU
ZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJS
SURFOwotCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmly
dHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBPVkVSUklERTsKKyNlbmRpZgogCiBwcml2
YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1dpZGdldCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsg
cmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZWZlcnJlZFdpZHRoc1Jl
Y2FsY3VsYXRpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIFJlbmRlckJv
eCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2
b2lkIGRlc3Ryb3koKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0
aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUpIE9WRVJSSURFIEZJTkFMOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggODNlMmFjOC4uM2VkNTU3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3Bw
CkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUg
IkxheW91dFJlcGFpbnRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJQ
YXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
U1ZHUmVzb3VyY2UuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENvbnRleHQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENvbnRleHQuY3BwCmluZGV4IGQ3OTAwMWEuLmNhN2Ji
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4dC5jcHAKQEAgLTI5LDcgKzI5
LDYgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9udE1ldHJpY3Mu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNpbmNsdWRl
ICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5j
cHAKaW5kZXggNTkyOTcyOS4uYjA3Zjg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50
LmNwcApAQCAtMzksMTIgKzM5LDEyIEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCi0jaW5jbHVkZSAiUmVu
ZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3Lmgi
CisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU01JTFRpbWVDb250YWluZXIu
aCIKICNpbmNsdWRlICJTVkdBbmdsZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuY3BwCmluZGV4IDE3YTM5MTIuLjkxMTMyMjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1
Z2luRGF0YWJhc2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKLSNpbmNsdWRlICJS
ZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNj
cmlwdENvbnRyb2xsZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCBjYmJlMzlhLi4xZGMyMDc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC01OCw4ICs1OCw4IEBACiAjaW5jbHVkZSAiUGx1Z2lu
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NU
cmFja2VyLmgiCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcu
aCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5o
IgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAwODI1M2E2Li44YWQ5
ZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTg1LDggKzg1LDgg
QEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUGx1Z2luRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QcmludENvbnRleHQuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyUGFydC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJW
aWV3Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRlcldpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29u
dHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRWYWx1ZS5oPgpAQCAtNTYyLDcgKzU2
Miw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExv
YWRlciogbG9hZGVyKQogLSAoQk9PTClfZ2V0VmlzaWJsZVJlY3Q6KE5TUmVjdCopcmVjdAogewog
ICAgIEFTU0VSVF9BUkcocmVjdCwgcmVjdCk7Ci0gICAgaWYgKFJlbmRlclBhcnQqIG93bmVyUmVu
ZGVyZXIgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsKKyAgICBpZiAo
UmVuZGVyV2lkZ2V0KiBvd25lclJlbmRlcmVyID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+b3duZXJS
ZW5kZXJlcigpKSB7CiAgICAgICAgIGlmIChvd25lclJlbmRlcmVyLT5uZWVkc0xheW91dCgpKQog
ICAgICAgICAgICAgcmV0dXJuIE5POwogICAgICAgICAqcmVjdCA9IG93bmVyUmVuZGVyZXItPnBp
eGVsU25hcHBlZEFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRleCAzNmNlYzVkLi4yYjVmNjVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtNjEsOCArNjEsOCBAQAog
I2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0
ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJQ
YXJ0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVGcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVZp
ZXcuaD4KQEAgLTI4OSw5ICsyODksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9t
Q2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgIHZp
ZXctPnNldFBsYXRmb3JtV2lkZ2V0KF9wcml2YXRlLT5mcmFtZVNjcm9sbFZpZXcpOwogCiAgICAg
Ly8gRklYTUU6IEZyYW1lIHRyaWVzIHRvIGRvIHRoaXMgdG9vLiBJcyB0aGlzIGNvZGUgbmVlZGVk
PwotICAgIGlmIChSZW5kZXJQYXJ0KiBvd25lciA9IGZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsK
KyAgICBpZiAoUmVuZGVyV2lkZ2V0KiBvd25lciA9IGZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsK
ICAgICAgICAgb3duZXItPnNldFdpZGdldCh2aWV3KTsKLSAgICAgICAgLy8gTm93IHRoZSByZW5k
ZXIgcGFydCBvd25zIHRoZSB2aWV3LCBzbyB3ZSBkb24ndCBhbnkgbW9yZS4KKyAgICAgICAgLy8g
Tm93IHRoZSBSZW5kZXJXaWRnZXQgb3ducyB0aGUgdmlldywgc28gd2UgZG9uJ3QgYW55IG1vcmUu
CiAgICAgfQogCiAgICAgdmlldy0+dXBkYXRlQ2FuSGF2ZVNjcm9sbGJhcnMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
Y3BwCmluZGV4IGI0YTJiZjAuLjhjNzM1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtNjcsNyArNjcs
NiBAQAogI2luY2x1ZGUgIlFXZWJQYWdlQWRhcHRlci5oIgogI2luY2x1ZGUgIlFXZWJQYWdlQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiUXRQbHVnaW5XaWRnZXRBZGFwdGVyLmgiCi0jaW5jbHVkZSAiUmVu
ZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKaW5kZXggODM4NDhjMi4uYWJhNzRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAt
NzYsNyArNzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luUGFja2FnZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGx1Z2luVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUG9saWN5Q2hlY2tl
ci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyUGFydC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UmVuZGVyV2lkZ2V0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcmlw
dENvbnRyb2xsZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCmluZGV4IDQ0M2ZkZTcuLjg1
M2IxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgogI2luY2x1ZGUgIlBv
bGljeUNoZWNrZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVy
V2lkZ2V0LmgiCiAjaW5jbHVkZSAiU3lzdGVtSW5mby5oIgogI2luY2x1ZGUgIldlYktpdFZlcnNp
b24uaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211381</attachid>
            <date>2013-09-11 19:13:58 -0700</date>
            <delta_ts>2013-09-11 19:32:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121200-2.diff</filename>
            <type>text/plain</type>
            <size>64444</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">Y29tbWl0IGMxMTY0YmNhYjkwZGVmMjMyNDJlYWFkYzNmMTQzNTQ3Mjc4NTYwZjQKQXV0aG9yOiBB
bmRyZWFzIEtsaW5nIDxha2xpbmdAYXBwbGUuY29tPgpEYXRlOiAgIFRodSBTZXAgMTIgMDM6MDE6
MjcgMjAxMyArMDEwMAoKICAgIDEyMTIwMAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODA0Nzcz
YS4uNjY4NDM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxNTksNyArMjE1OSw2IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNw
cAogICAgIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlck9i
amVjdENoaWxkTGlzdC5jcHAKLSAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKICAgICByZW5k
ZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAog
ICAgIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyMWZjZi4uZjQ1
YjZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA5LTExICBBbmRyZWFzIEts
aW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSBSZW5kZXJQYXJ0IGludG8g
UmVuZGVyV2lkZ2V0LgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTIxMjAwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUg
UmVuZGVyUGFydCBjbGFzcyBhbmQgbW92ZSBpdHMgZnVuY3Rpb25hbGl0eSBpbnRvIFJlbmRlcldp
ZGdldC4KKyAgICAgICAgSXQgd2FzIGFjdGluZyBhcyBhIHBvaW50bGVzcyBleHRyYSBsYXllciBi
ZXR3ZWVuIFJlbmRlcldpZGdldCBhbmQgcmVuZGVyZXJzCisgICAgICAgIGZvciBlbWJlZGRlZCBv
YmplY3RzLCBmcmFtZXMgYW5kIGlmcmFtZXMuCisKIDIwMTMtMDktMTEgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtIEFQSV0gVXBk
YXRpbmcgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IgdG8gbWF0Y2ggdGhlIHNwZWMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDc1MmQ0ZWIuLmZhNzRjZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNDQ3Miw4ICs0NDcyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT3ZlcmZsb3cuaCBcCi0JU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clBhcnQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclF1b3RlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAxYWUzOWNlLi5lN2Y5YWFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTExOTcsNyArMTE5Nyw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgXAotICAg
IHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclJlZ2lvbi5jcHAgXApAQCAtMjQ2Niw3ICsyNDY1LDYgQEAgSEVBREVSUyArPSBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
ck9iamVjdENoaWxkTGlzdC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggXAotICAg
IHJlbmRlcmluZy9SZW5kZXJQYXJ0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5o
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyUXVvdGUuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1NmE5NzIwLi43NDg5MDMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzksNyArNzksNiBAQCBfX1pON1dlYkNvcmUxMEpTRG9jdW1l
bnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3Jt
TW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNy
ZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJkTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2lu
ZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2Fy
ZEVFRWIKIF9fWk43V2ViQ29yZTEwUGFzdGVib2FyZDE0d3JpdGVQbGFpblRleHRFUktOM1dURjZT
dHJpbmdFTlMwXzE4U21hcnRSZXBsYWNlT3B0aW9uRQotX19aTjdXZWJDb3JlMTBSZW5kZXJQYXJ0
OXNldFdpZGdldEVOM1dURjEwUGFzc1JlZlB0cklOU182V2lkZ2V0RUVFCiBfX1pON1dlYkNvcmUx
MFJlbmRlclZpZXcxMGNvbXBvc2l0b3JFdgogX19aTjdXZWJDb3JlMTBSZW5kZXJWaWV3N2hpdFRl
c3RFUktOU18xNEhpdFRlc3RSZXF1ZXN0RVJOU18xM0hpdFRlc3RSZXN1bHRFCiBfX1pON1dlYkNv
cmUxMFNjcm9sbFZpZXcxNnNldFBhcmVudFZpc2libGVFYgpAQCAtMjExLDYgKzIxMCw3IEBAIF9f
Wk43V2ViQ29yZTEyUHJpbnRDb250ZXh0QzFFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTEyUHJp
bnRDb250ZXh0RDFFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNnBhaW50aW5nUm9vdFJl
Y3RFUk5TXzEwTGF5b3V0UmVjdEUKIF9fWk43V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTlzY3JvbGxS
ZWN0VG9WaXNpYmxlRVJLTlNfMTBMYXlvdXRSZWN0RVJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZf
CitfX1pON1dlYkNvcmUxMlJlbmRlcldpZGdldDlzZXRXaWRnZXRFTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfNldpZGdldEVFRQogX19aTjdXZWJDb3JlMTJTUUxSZXN1bHRSb3dFCiBfX1pON1dlYkNvcmUx
MlNoYXJlZEJ1ZmZlcjEwd3JhcENGRGF0YUVQSzhfX0NGRGF0YQogX19aTjdXZWJDb3JlMTJTaGFy
ZWRCdWZmZXIxMHdyYXBOU0RhdGFFUDZOU0RhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDMzZTM0ZmIuLmEwYWY2MjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTAyNTks
MjAgKzEwMjU5LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcUmVuZGVyUGFydC5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclByb2dyZXNzLmNwcCI+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMDA1OCw3ICsyMDA0NCw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyTmFtZWRGbG93VGhyZWFk
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0
Q2hpbGRMaXN0LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVu
ZGVyUGFydC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRl
clByb2dyZXNzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVu
ZGVyUXVvdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5k
ZXJSZWdpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlOThiZDZmLi41ZTU0NDc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCkBAIC0yNjM3LDkgKzI2MzcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cmVuZGVyaW5nXFJlbmRlck9iamVjdENoaWxkTGlzdC5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5k
ZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHJlbmRlcmluZ1xSZW5kZXJQYXJ0LmNwcCI+Ci0gICAgICA8RmlsdGVyPnJlbmRlcmluZzwv
RmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVu
ZGVyaW5nXFJlbmRlclByb2dyZXNzLmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtOTYyNCw5ICs5NjIxLDYgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJPYmplY3RDaGlsZExpc3QuaCI+CiAgICAg
ICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclBhcnQuaCI+Ci0gICAgICA8RmlsdGVy
PnJlbmRlcmluZzwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclByb2dyZXNzLmgiPgogICAgICAgPEZpbHRlcj5yZW5k
ZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNDlmNDQ5Li45MDJhZmE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNzYyLDEyICszNzYyLDEwIEBACiAJCUE4NzFERTJDMEExNTJBQzgwMEIxMkE2OCAvKiBI
VE1MQm9keUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4NzFERTIwMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCAqLzsg
fTsKIAkJQTg3MURFMkQwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxIZWFkRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURFMjEwQTE1MkFD
ODAwQjEyQTY4IC8qIEhUTUxIZWFkRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFERTJFMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1M
RnJhbWVTZXRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NzFERTIyMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MRnJhbWVTZXRFbGVtZW50
LmNwcCAqLzsgfTsKLQkJQTg3MURFRDAwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURFQzgw
QTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuY3BwICovOyB9OwogCQlBODcxREVEMTBBMTUz
MEM3MDBCMTJBNjggLyogUmVuZGVyRnJhbWVTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERUM5MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJG
cmFtZVNldC5oICovOyB9OwogCQlBODcxREVEMjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyRnJh
bWVTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTg3MURFQ0EwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lU2V0LmNwcCAqLzsgfTsKIAkJ
QTg3MURFRDMwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDQjBBMTUzMEM3MDBCMTJBNjgg
LyogUmVuZGVyRnJhbWUuaCAqLzsgfTsKIAkJQTg3MURFRDQwQTE1MzBDNzAwQjEyQTY4IC8qIFJl
bmRlckZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NzFERUNDMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZS5jcHAgKi87IH07Ci0J
CUE4NzFERUQ3MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDRjBBMTUzMEM3MDBCMTJBNjgg
LyogUmVuZGVyUGFydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE4NzFERkUyMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREZERTBB
MTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuY3BwICovOyB9OwogCQlBODcxREZFMzBB
MTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERkRGMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5k
ZXJSZXBsYWNlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE4NzFERkU0MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERkUwMEExNTM3NkIw
MEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTAzOTAsMTIgKzEwMzg4LDEwIEBACiAJCUE4NzFERTIwMEEx
NTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxCb2R5RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODcxREUyMTBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEhlYWRFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MSGVhZEVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MURFMjIwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxGcmFtZVNldEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODcx
REVDODBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUGFydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4NzFERUM5MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZVNldC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRnJhbWVTZXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MURFQ0EwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRl
ckZyYW1lU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJGcmFtZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERUNCMEEx
NTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3
MURFQ0MwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4NzFERUNGMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJQYXJ0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERkRFMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBs
YWNlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUmVw
bGFjZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxREZERjBBMTUzNzZC
MDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlclJlcGxhY2VkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
NzFERkUwMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcldpZGdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjA0ODksOCArMjA0ODUsNiBAQAogCQkJCUJDNjBFRkI2MEYzM0EwRTcwMDgxMkE5
MyAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwICovLAogCQkJCUJDMkNDOERFMEYzMjg4MTAw
MEE5REYyNiAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuaCAqLywKIAkJCQlCQ0ZBOTMwNzEwMzMz
MTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCAqLywKLQkJCQlBODcxREVDODBBMTUzMEM3
MDBCMTJBNjggLyogUmVuZGVyUGFydC5jcHAgKi8sCi0JCQkJQTg3MURFQ0YwQTE1MzBDNzAwQjEy
QTY4IC8qIFJlbmRlclBhcnQuaCAqLywKIAkJCQlBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyog
UmVuZGVyUHJvZ3Jlc3MuY3BwICovLAogCQkJCUE0M0JGNTlCMTE0OTI5MjgwMEM2NDNDQSAvKiBS
ZW5kZXJQcm9ncmVzcy5oICovLAogCQkJCTVBNTc0RjIyMTMxREI5MzkwMDQ3MUI4OCAvKiBSZW5k
ZXJRdW90ZS5jcHAgKi8sCkBAIC0yMzYyOSw3ICsyMzYyMyw2IEBACiAJCQkJQkNFQTQ4ODAwOTdE
OTMwMjAwOTRDOUU0IC8qIFJlbmRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyQ0M4
REYwRjMyODgxMDAwQTlERjI2IC8qIFJlbmRlck9iamVjdENoaWxkTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNGQTkzMDgxMDMzMzE5MzAwN0IyNUQxIC8qIFJlbmRlck92ZXJmbG93LmggaW4g
SGVhZGVycyAqLywKLQkJCQlBODcxREVENzBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTQzQkY1OUQxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclBy
b2dyZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QTU3NEYyNTEzMURCOTM5MDA0NzFCODggLyog
UmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQ3MEFENjU4MTNFMTM0MkIwMDVCNTBC
NCAvKiBSZW5kZXJSZWdpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjksNyArMjY4MjIsNiBA
QAogCQkJCTFBM0ZGOUMzMTUyNjUzNTkwMDIyODhBMSAvKiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFQTQ4N0YwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRl
ck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwRUZCNzBGMzNBMEU3MDA4MTJBOTMg
LyogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4NzFERUQw
MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE0
M0JGNTlDMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1QTU3NEYyNDEzMURCOTM5MDA0NzFCODggLyogUmVuZGVyUXVvdGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjVCN0ExNzAxN0MxMEFBODAwRTRBQTBBIC8qIEVsZW1lbnREYXRhLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAppbmRleCA3OGQ2OWI0Li4xMDJmZmExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNs
dWRlICJXaWRnZXQuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDk5MTg2Yzgu
LmYwMjg5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTY4LDcgKzY4LDYgQEAK
ICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0Q29tbWFuZC5o
IgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyZWRQb3NpdGlvbi5o
IgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCmluZGV4IGY5MTMzODEuLmJiMTM5MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCkBAIC04OSw3ICs4OSw3IEBAIFJl
bmRlcldpZGdldCogSFRNTEFwcGxldEVsZW1lbnQ6OnJlbmRlcldpZGdldEZvckpTQmluZGluZ3Mo
KSBjb25zdAogICAgICAgICByZXR1cm4gMDsKIAogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAgcmV0dXJuIHJlbmRlclBhcnQoKTsKKyAg
ICByZXR1cm4gcmVuZGVyV2lkZ2V0KCk7CiB9CiAKIHZvaWQgSFRNTEFwcGxldEVsZW1lbnQ6OnVw
ZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbiBwbHVnaW5DcmVhdGlvbk9wdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggOWNkNjFm
NS4uMDQ0ZjdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVt
ZW50QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFz
ZS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAj
aW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0
LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmRpZE5v
dGlmeVN1YnRyZWVJbnNlcnRpb25zKENvbnRhaW5lck5vZGUqKQogCiB2b2lkIEhUTUxGcmFtZUVs
ZW1lbnRCYXNlOjpkaWRBdHRhY2hSZW5kZXJlcnMoKQogewotICAgIGlmIChSZW5kZXJQYXJ0KiBw
YXJ0ID0gcmVuZGVyUGFydCgpKSB7CisgICAgaWYgKFJlbmRlcldpZGdldCogcGFydCA9IHJlbmRl
cldpZGdldCgpKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBjb250ZW50RnJhbWUoKSkK
ICAgICAgICAgICAgIHBhcnQtPnNldFdpZGdldChmcmFtZS0+dmlldygpKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAKaW5kZXggODcwNWNm
My4uMjYzNDY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25l
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJQ
YXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAtNDIsMTMgKzQyLDEzIEBAIEhUTUxGcmFtZU93
bmVyRWxlbWVudDo6SFRNTEZyYW1lT3duZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtCiB7CiB9CiAKLVJlbmRlclBhcnQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6
cmVuZGVyUGFydCgpIGNvbnN0CitSZW5kZXJXaWRnZXQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6
cmVuZGVyV2lkZ2V0KCkgY29uc3QKIHsKICAgICAvLyBIVE1MT2JqZWN0RWxlbWVudCBhbmQgSFRN
TEVtYmVkRWxlbWVudCBtYXkgcmV0dXJuIGFyYml0cmFyeSByZW5kZXJlcnMKICAgICAvLyB3aGVu
IHVzaW5nIGZhbGxiYWNrIGNvbnRlbnQuCi0gICAgaWYgKCFyZW5kZXJlcigpIHx8ICFyZW5kZXJl
cigpLT5pc1JlbmRlclBhcnQoKSkKKyAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIXJlbmRlcmVyKCkt
PmlzV2lkZ2V0KCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB0b1JlbmRlclBhcnQo
cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIHRvUmVuZGVyV2lkZ2V0KHJlbmRlcmVyKCkpOwogfQog
CiB2b2lkIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6c2V0Q29udGVudEZyYW1lKEZyYW1lKiBmcmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oCmluZGV4IDY2
ZjViOTg2Li41ZGRiNjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZU93bmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJF
bGVtZW50LmgKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
T01XaW5kb3c7CiBjbGFzcyBGcmFtZTsKLWNsYXNzIFJlbmRlclBhcnQ7CitjbGFzcyBSZW5kZXJX
aWRnZXQ7CiAKICNpZiBFTkFCTEUoU1ZHKQogY2xhc3MgU1ZHRG9jdW1lbnQ7CkBAIC00NiwxMCAr
NDYsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNjb25uZWN0Q29udGVudEZyYW1lKCk7CiAK
LSAgICAvLyBNb3N0IHN1YmNsYXNzZXMgdXNlIFJlbmRlclBhcnQgKGVpdGhlciBSZW5kZXJFbWJl
ZGRlZE9iamVjdCBvciBSZW5kZXJJRnJhbWUpCisgICAgLy8gTW9zdCBzdWJjbGFzc2VzIHVzZSBS
ZW5kZXJXaWRnZXQgKGVpdGhlciBSZW5kZXJFbWJlZGRlZE9iamVjdCBvciBSZW5kZXJJRnJhbWUp
CiAgICAgLy8gZXhjZXB0IGZvciBIVE1MT2JqZWN0RWxlbWVudCBhbmQgSFRNTEVtYmVkRWxlbWVu
dCB3aGljaCBtYXkgcmV0dXJuIGFueQogICAgIC8vIFJlbmRlck9iamVjdCB3aGVuIHVzaW5nIGZh
bGxiYWNrIGNvbnRlbnQuCi0gICAgUmVuZGVyUGFydCogcmVuZGVyUGFydCgpIGNvbnN0OworICAg
IFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoU1ZHKQog
ICAgIFNWR0RvY3VtZW50KiBnZXRTVkdEb2N1bWVudChFeGNlcHRpb25Db2RlJikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IDllOTE2MWIuLjE5
YWUyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC04
MCw3ICs4MCw3IEBAIFBhc3NSZWZQdHI8SFRNTE9iamVjdEVsZW1lbnQ+IEhUTUxPYmplY3RFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiBSZW5kZXJXaWRnZXQqIEhUTUxP
YmplY3RFbGVtZW50OjpyZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCkgY29uc3QKIHsKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotICAgIHJl
dHVybiByZW5kZXJQYXJ0KCk7IC8vIFRoaXMgd2lsbCByZXR1cm4gMCBpZiB0aGUgcmVuZGVyZXIg
aXMgbm90IGEgUmVuZGVyUGFydC4KKyAgICByZXR1cm4gcmVuZGVyV2lkZ2V0KCk7IC8vIFRoaXMg
d2lsbCByZXR1cm4gMCBpZiB0aGUgcmVuZGVyZXIgaXMgbm90IGEgUmVuZGVyV2lkZ2V0LgogfQog
CiBib29sIEhUTUxPYmplY3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggZWExNmU3YS4uZjZjYjZlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0yMTEsNyArMjEx
LDcgQEAgUmVuZGVyT2JqZWN0KiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclMKIAogICAgIC8vIEZhbGxiYWNrIGNvbnRlbnQg
YnJlYWtzIHRoZSBET00tPlJlbmRlcmVyIGNsYXNzIHJlbGF0aW9uc2hpcCBvZiB0aGlzCiAgICAg
Ly8gY2xhc3MgYW5kIGFsbCBzdXBlcmNsYXNzZXMgYmVjYXVzZSBjcmVhdGVPYmplY3Qgd29uJ3Qg
bmVjZXNzYXJpbHkKLSAgICAvLyByZXR1cm4gYSBSZW5kZXJFbWJlZGRlZE9iamVjdCwgUmVuZGVy
UGFydCBvciBldmVuIFJlbmRlcldpZGdldC4KKyAgICAvLyByZXR1cm4gYSBSZW5kZXJFbWJlZGRl
ZE9iamVjdCBvciBSZW5kZXJXaWRnZXQuCiAgICAgaWYgKHVzZUZhbGxiYWNrQ29udGVudCgpKQog
ICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QodGhpcywgc3R5bGUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IGEwMDU4MmIuLmQ4MzZi
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xMjAsNyArMTIw
LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0
ZXIqLCBjb25zdCBjaGFyKiwgc2l6ZV90KQogICAgIC8vIGNhbiBzeW5jaHJvbm91c2x5IHJlZGly
ZWN0IGRhdGEgdG8gdGhlIHBsdWdpbi4KICAgICBmcmFtZS0+dmlldygpLT5mbHVzaEFueVBlbmRp
bmdQb3N0TGF5b3V0VGFza3MoKTsKIAotICAgIGlmIChSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1f
ZW1iZWRFbGVtZW50LT5yZW5kZXJQYXJ0KCkpIHsKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiByZW5k
ZXJlciA9IG1fZW1iZWRFbGVtZW50LT5yZW5kZXJXaWRnZXQoKSkgewogICAgICAgICBpZiAoV2lk
Z2V0KiB3aWRnZXQgPSByZW5kZXJlci0+d2lkZ2V0KCkpIHsKICAgICAgICAgICAgIGZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5yZWRpcmVjdERhdGFUb1BsdWdpbih3aWRnZXQpOwogICAgICAgICAg
ICAgLy8gSW4gYSBwbHVnaW4gZG9jdW1lbnQsIHRoZSBtYWluIHJlc291cmNlIGlzIHRoZSBwbHVn
aW4uIElmIHdlIGhhdmUgYSBudWxsIHdpZGdldCwgdGhhdCBtZWFucwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDUwNWEz
NTEuLjAxZDU5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTYxLDcgKzYxLDcgQEAKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgorI2lu
Y2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTEzNzUsOSArMTM3NSw5IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudDo6dXBkYXRlU2l6ZXMoYm9vbCBmb3JjZVVwZGF0ZSkKICAgICAgICAgdmlkZW9Cb3ggPSBt
X3RleHRUcmFja1JlcHJlc2VudGF0aW9uLT5ib3VuZHMoKTsKICAgICBlbHNlIHsKICNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICAgICAgaWYgKCFtZWRpYUVsZW1lbnQtPnJl
bmRlcmVyKCkgfHwgIW1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+aXNSZW5kZXJQYXJ0KCkpCisg
ICAgICAgIGlmICghbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpIHx8ICFtZWRpYUVsZW1lbnQtPnJl
bmRlcmVyKCktPmlzUmVuZGVyV2lkZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IHZpZGVvQm94ID0gcGl4ZWxTbmFwcGVkSW50UmVjdCh0b1JlbmRlclBhcnQobWVkaWFFbGVtZW50
LT5yZW5kZXJlcigpKS0+Y29udGVudEJveFJlY3QoKSk7CisgICAgICAgIHZpZGVvQm94ID0gcGl4
ZWxTbmFwcGVkSW50UmVjdCh0b1JlbmRlcldpZGdldChtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkp
LT5jb250ZW50Qm94UmVjdCgpKTsKICNlbHNlCiAgICAgICAgIGlmICghbWVkaWFFbGVtZW50LT5y
ZW5kZXJlcigpIHx8ICFtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmlzVmlkZW8oKSkKICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFt
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDQ1NTlkMjcuLjhmOGJjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9h
ZGVyLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RP
YmplY3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTCiAgICAg
fQogCiAgICAgLy8gSWYgdGhlIHBsdWctaW4gZWxlbWVudCBhbHJlYWR5IGNvbnRhaW5zIGEgc3Vi
ZnJhbWUsIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUgd2lsbCByZS11c2UgaXQuIE90aGVyd2lzZSwK
LSAgICAvLyBpdCB3aWxsIGNyZWF0ZSBhIG5ldyBmcmFtZSBhbmQgc2V0IGl0IGFzIHRoZSBSZW5k
ZXJQYXJ0J3Mgd2lkZ2V0LCBjYXVzaW5nIHdoYXQgd2FzIHByZXZpb3VzbHkgCisgICAgLy8gaXQg
d2lsbCBjcmVhdGUgYSBuZXcgZnJhbWUgYW5kIHNldCBpdCBhcyB0aGUgUmVuZGVyV2lkZ2V0J3Mg
V2lkZ2V0LCBjYXVzaW5nIHdoYXQgd2FzIHByZXZpb3VzbHkgCiAgICAgLy8gaW4gdGhlIHdpZGdl
dCB0byBiZSB0b3JuIGRvd24uCiAgICAgcmV0dXJuIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUob3du
ZXJFbGVtZW50LCBjb21wbGV0ZWRVUkwsIGZyYW1lTmFtZSwgdHJ1ZSwgdHJ1ZSk7CiB9CkBAIC0y
NTUsNyArMjU1LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpsb2FkTWVk
aWFQbGF5ZXJQcm94eVBsdWdpbihOb2RlKiBub2RlLCBjb25zdAogICAgICAgICByZXR1cm4gMDsK
IAogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvSFRNTE1lZGlhRWxlbWVu
dChub2RlKTsKLSAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IHRvUmVuZGVyUGFydChub2RlLT5y
ZW5kZXJlcigpKTsKKyAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcmVyID0gdG9SZW5kZXJXaWRnZXQo
bm9kZS0+cmVuZGVyZXIoKSk7CiAgICAgSW50U2l6ZSBzaXplOwogCiAgICAgaWYgKHJlbmRlcmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCAwYWM0NGJhLi5mNWUyN2Q1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcApAQCAtNzUsMTEgKzc1LDExIEBACiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKLSNpbmNs
dWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC01NjMsNyArNTYzLDcgQEAgUmVuZGVyVmlldyogRnJh
bWU6OmNvbnRlbnRSZW5kZXJlcigpIGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1
bWVudCgpLT5yZW5kZXJWaWV3KCkgOiAwOwogfQogCi1SZW5kZXJQYXJ0KiBGcmFtZTo6b3duZXJS
ZW5kZXJlcigpIGNvbnN0CitSZW5kZXJXaWRnZXQqIEZyYW1lOjpvd25lclJlbmRlcmVyKCkgY29u
c3QKIHsKICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IG1fb3duZXJF
bGVtZW50OwogICAgIGlmICghb3duZXJFbGVtZW50KQpAQCAtNTc1LDkgKzU3NSw5IEBAIFJlbmRl
clBhcnQqIEZyYW1lOjpvd25lclJlbmRlcmVyKCkgY29uc3QKICAgICAvLyB0aGF0IGl0IGhhcyBz
dGFydGVkIGJ1dCBjYW5jZWxlZCwgdGhlbiB0aGlzIGNhbiB0dXJuIGludG8gYW4gQVNTRVJUCiAg
ICAgLy8gc2luY2UgbV9vd25lckVsZW1lbnQgd291bGQgYmUgMCB3aGVuIHRoZSBsb2FkIGlzIGNh
bmNlbGVkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODU4NQotICAgIGlmICghb2JqZWN0LT5pc1JlbmRlclBhcnQoKSkKKyAgICBpZiAoIW9iamVjdC0+
aXNXaWRnZXQoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRvUmVuZGVyUGFydChv
YmplY3QpOworICAgIHJldHVybiB0b1JlbmRlcldpZGdldChvYmplY3QpOwogfQogCiBGcmFtZSog
RnJhbWU6OmZyYW1lRm9yV2lkZ2V0KGNvbnN0IFdpZGdldCogd2lkZ2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5o
CmluZGV4IDQ3MmI2N2QuLjcwMzA2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTY3LDggKzY3LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUmFuZ2U7
CiAgICAgY2xhc3MgUmVndWxhckV4cHJlc3Npb247Ci0gICAgY2xhc3MgUmVuZGVyUGFydDsKICAg
ICBjbGFzcyBSZW5kZXJWaWV3OworICAgIGNsYXNzIFJlbmRlcldpZGdldDsKICAgICBjbGFzcyBT
Y3JpcHRDb250cm9sbGVyOwogICAgIGNsYXNzIFNldHRpbmdzOwogICAgIGNsYXNzIFRpbGVkQmFj
a2luZ1N0b3JlOwpAQCAtMTI1LDcgKzEyNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0KCk7CiAgICAgICAgIAogICAgICAgICBSZW5kZXJW
aWV3KiBjb250ZW50UmVuZGVyZXIoKSBjb25zdDsgLy8gUm9vdCBvZiB0aGUgcmVuZGVyIHRyZWUg
Zm9yIHRoZSBkb2N1bWVudCBjb250YWluZWQgaW4gdGhpcyBmcmFtZS4KLSAgICAgICAgUmVuZGVy
UGFydCogb3duZXJSZW5kZXJlcigpIGNvbnN0OyAvLyBSZW5kZXJlciBmb3IgdGhlIGVsZW1lbnQg
dGhhdCBjb250YWlucyB0aGlzIGZyYW1lLgorICAgICAgICBSZW5kZXJXaWRnZXQqIG93bmVyUmVu
ZGVyZXIoKSBjb25zdDsgLy8gUmVuZGVyZXIgZm9yIHRoZSBlbGVtZW50IHRoYXQgY29udGFpbnMg
dGhpcyBmcmFtZS4KIAogICAgIC8vID09PT09PT09IEFsbCBwdWJsaWMgZnVuY3Rpb25zIGJlbG93
IHRoaXMgcG9pbnQgYXJlIGNhbmRpZGF0ZXMgdG8gbW92ZSBvdXQgb2YgRnJhbWUgaW50byBhbm90
aGVyIGNsYXNzLiA9PT09PT09PQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNDBj
ZDYzMy4uZjEwNDFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNjMsMTIgKzYz
LDEyIEBACiAjaW5jbHVkZSAiUmVuZGVySUZyYW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xs
YmFyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0Lmgi
CiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGlu
YXRvci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yNDcsNyArMjQ3LDkgQEAgRnJhbWVW
aWV3Ojp+RnJhbWVWaWV3KCkKICAgICBBU1NFUlQobV9zY2hlZHVsZWRFdmVudHMuaXNFbXB0eSgp
KTsKIAogICAgIEFTU0VSVChmcmFtZSgpLnZpZXcoKSAhPSB0aGlzIHx8ICFmcmFtZSgpLmNvbnRl
bnRSZW5kZXJlcigpKTsKLSAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJS
ZW5kZXJlcigpOworCisgICAgLy8gRklYTUU6IEhvdyBjb3VsZCB0aGlzIGV2ZXIgaGFwcGVuIHdo
ZW4gUmVuZGVyV2lkZ2V0IHJldGFpbnMgdGhlIFdpZGdldCE/CisgICAgUmVuZGVyV2lkZ2V0KiBy
ZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwogICAgIGlmIChyZW5kZXJlciAmJiBy
ZW5kZXJlci0+d2lkZ2V0KCkgPT0gdGhpcykKICAgICAgICAgcmVuZGVyZXItPnNldFdpZGdldCgw
KTsKIH0KQEAgLTQwMiw3ICs0MDQsNyBAQCB2b2lkIEZyYW1lVmlldzo6Y2xlYXIoKQogICAgIAog
ICAgIHJlc2V0KCk7CiAKLSAgICBpZiAoUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93
bmVyUmVuZGVyZXIoKSkKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiByZW5kZXJlciA9IGZyYW1lKCku
b3duZXJSZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlci0+dmlld0NsZWFyZWQoKTsKIAogICAg
IHNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKHRydWUpOwpAQCAtNDI2LDcgKzQyOCw3IEBAIHZvaWQg
RnJhbWVWaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVy
UmVuZGVyZXIoKTsKKyAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJl
bmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC01NTMs
NyArNTU1LDcgQEAgUGFzc1JlZlB0cjxTY3JvbGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xs
YmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW8KICAgICAgICAgcmV0dXJuIFJlbmRl
clNjcm9sbGJhcjo6Y3JlYXRlQ3VzdG9tU2Nyb2xsYmFyKHRoaXMsIG9yaWVudGF0aW9uLCBkb2NF
bGVtZW50KTsKICAgICAgICAgCiAgICAgLy8gSWYgd2UgaGF2ZSBhbiBvd25pbmcgaWZyYW1lL2Zy
YW1lIGVsZW1lbnQsIHRoZW4gaXQgY2FuIHNldCB0aGUgY3VzdG9tIHNjcm9sbGJhciBhbHNvLgot
ICAgIFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsK
KyAgICBSZW5kZXJXaWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIo
KTsKICAgICBpZiAoZnJhbWVSZW5kZXJlciAmJiBmcmFtZVJlbmRlcmVyLT5zdHlsZSgpLT5oYXNQ
c2V1ZG9TdHlsZShTQ1JPTExCQVIpKQogICAgICAgICByZXR1cm4gUmVuZGVyU2Nyb2xsYmFyOjpj
cmVhdGVDdXN0b21TY3JvbGxiYXIodGhpcywgb3JpZW50YXRpb24sIDAsICZmcmFtZSgpKTsKICAg
ICAKQEAgLTEwNjUsNyArMTA2Nyw3IEBAIFJlbmRlck9iamVjdCogRnJhbWVWaWV3OjpsYXlvdXRS
b290KGJvb2wgb25seUR1cmluZ0xheW91dCkgY29uc3QKIGlubGluZSB2b2lkIEZyYW1lVmlldzo6
Zm9yY2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVkZWQoKQogewogI2lmIEVOQUJMRShTVkcpCi0gICAg
UmVuZGVyUGFydCogb3duZXJSZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOworICAg
IFJlbmRlcldpZGdldCogb3duZXJSZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwog
ICAgIGlmICghb3duZXJSZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzMyLDcgKzE3
MzQsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0KQogCiAgICAgcmVwYWludFNsb3dSZXBhaW50T2JqZWN0cygpOwogCi0g
ICAgaWYgKFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIo
KSkgeworICAgIGlmIChSZW5kZXJXaWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVy
UmVuZGVyZXIoKSkgewogICAgICAgICBpZiAoaXNFbmNsb3NlZEluQ29tcG9zaXRpbmdMYXllcigp
KSB7CiAgICAgICAgICAgICBMYXlvdXRSZWN0IHJlY3QoZnJhbWVSZW5kZXJlci0+Ym9yZGVyTGVm
dCgpICsgZnJhbWVSZW5kZXJlci0+cGFkZGluZ0xlZnQoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcmFtZVJlbmRlcmVyLT5ib3JkZXJUb3AoKSArIGZyYW1lUmVuZGVyZXItPnBhZGRp
bmdUb3AoKSwKQEAgLTMxMjcsNyArMzEyOSw3IEBAIFNjcm9sbGFibGVBcmVhKiBGcmFtZVZpZXc6
OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QKIAogSW50UmVjdCBGcmFtZVZpZXc6OnNj
cm9sbGFibGVBcmVhQm91bmRpbmdCb3goKSBjb25zdAogewotICAgIFJlbmRlclBhcnQqIG93bmVy
UmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKKyAgICBSZW5kZXJXaWRnZXQqIG93
bmVyUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICBpZiAoIW93bmVyUmVu
ZGVyZXIpCiAgICAgICAgIHJldHVybiBmcmFtZVJlY3QoKTsKIApAQCAtMzI4OSw3ICszMjkxLDcg
QEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZVNjcm9sbENvcm5lcigpCiAgICAgICAgIAogICAgICAg
ICBpZiAoIWNvcm5lclN0eWxlKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIG93bmlu
ZyBpZnJhbWUvZnJhbWUgZWxlbWVudCwgdGhlbiBpdCBjYW4gc2V0IHRoZSBjdXN0b20gc2Nyb2xs
YmFyIGFsc28uCi0gICAgICAgICAgICBpZiAoUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgp
Lm93bmVyUmVuZGVyZXIoKSkKKyAgICAgICAgICAgIGlmIChSZW5kZXJXaWRnZXQqIHJlbmRlcmVy
ID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCkpCiAgICAgICAgICAgICAgICAgY29ybmVyU3R5bGUg
PSByZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoU0NS
T0xMQkFSX0NPUk5FUiksIHJlbmRlcmVyLT5zdHlsZSgpKTsKICAgICAgICAgfQogICAgIH0KQEAg
LTM0MTEsNyArMzQxMyw3IEBAIGJvb2wgRnJhbWVWaWV3Ojppc0luQ2hpbGRGcmFtZVdpdGhGcmFt
ZUZsYXR0ZW5pbmcoKSBjb25zdAogICAgIC8vIEZyYW1lIGZsYXR0ZW5pbmcgYXBwbGllcyB3aGVu
IHRoZSBvd25lciBlbGVtZW50IGlzIGVpdGhlciBpbiBhIGZyYW1lc2V0IG9yCiAgICAgLy8gYW4g
aWZyYW1lIHdpdGggZmxhdHRlbmluZyBwYXJhbWV0ZXJzLgogICAgIGlmIChmcmFtZSgpLm93bmVy
RWxlbWVudCgpLT5oYXNUYWdOYW1lKGlmcmFtZVRhZykpIHsKLSAgICAgICAgUmVuZGVySUZyYW1l
KiBpZnJhbWVSZW5kZXJlciA9IHRvUmVuZGVySUZyYW1lKGZyYW1lKCkub3duZXJFbGVtZW50KCkt
PnJlbmRlclBhcnQoKSk7CisgICAgICAgIFJlbmRlcklGcmFtZSogaWZyYW1lUmVuZGVyZXIgPSB0
b1JlbmRlcklGcmFtZShmcmFtZSgpLm93bmVyRWxlbWVudCgpLT5yZW5kZXJXaWRnZXQoKSk7CiAg
ICAgICAgIGlmIChpZnJhbWVSZW5kZXJlci0+ZmxhdHRlbkZyYW1lKCkgfHwgaWZyYW1lUmVuZGVy
ZXItPmlzU2VhbWxlc3MoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTM5
MDUsNyArMzkwNyw3IEBAIEludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5nVmll
dyhjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0CiAgICAgICAgIGlmIChwYXJlbnRTY3Jv
bGxWaWV3LT5pc0ZyYW1lVmlldygpKSB7CiAgICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBh
cmVudFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRTY3JvbGxWaWV3KTsKICAgICAgICAgICAgIC8v
IEdldCBvdXIgcmVuZGVyZXIgaW4gdGhlIHBhcmVudCB2aWV3Ci0gICAgICAgICAgICBSZW5kZXJQ
YXJ0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOworICAgICAgICAgICAgUmVu
ZGVyV2lkZ2V0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwogICAgICAgICAg
ICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxSZWN0OwogICAg
ICAgICAgICAgICAgIApAQCAtMzkyOSw3ICszOTMxLDcgQEAgSW50UmVjdCBGcmFtZVZpZXc6OmNv
bnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QK
ICAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBh
cmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAgICAgICAvLyBHZXQgb3VyIHJlbmRlcmVyIGluIHRo
ZSBwYXJlbnQgdmlldwotICAgICAgICAgICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgp
Lm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAgICAgIFJlbmRlcldpZGdldCogcmVuZGVyZXIgPSBm
cmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhcmVudFJlY3Q7CiAKQEAgLTM5NTMsNyArMzk1NSw3IEBAIElu
dFBvaW50IEZyYW1lVmlldzo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQm
IGxvY2FsUG9pbnQpIGNvbnN0CiAgICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBhcmVudFZp
ZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRTY3JvbGxWaWV3KTsKIAogICAgICAgICAgICAgLy8gR2V0
IG91ciByZW5kZXJlciBpbiB0aGUgcGFyZW50IHZpZXcKLSAgICAgICAgICAgIFJlbmRlclBhcnQq
IHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCk7CisgICAgICAgICAgICBSZW5kZXJX
aWRnZXQqIHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCk7CiAgICAgICAgICAgICBp
ZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbFBvaW50OwogICAgICAg
ICAgICAgICAgIApAQCAtMzk3OCw3ICszOTgwLDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252
ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QK
ICAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBh
cmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAgICAgICAvLyBHZXQgb3VyIHJlbmRlcmVyIGluIHRo
ZSBwYXJlbnQgdmlldwotICAgICAgICAgICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgp
Lm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAgICAgIFJlbmRlcldpZGdldCogcmVuZGVyZXIgPSBm
cmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhcmVudFBvaW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCAyODVlMzk1Li41M2ZiZjg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgY29uc3QgQ29sb3ImIHVuYXZhaWxhYmxl
UGx1Z2luQm9yZGVyQ29sb3IoKQogfQogCiBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UmVuZGVyRW1i
ZWRkZWRPYmplY3QoRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlclBhcnQoZWxlbWVudCkK
KyAgICA6IFJlbmRlcldpZGdldChlbGVtZW50KQogICAgICwgbV9oYXNGYWxsYmFja0NvbnRlbnQo
ZmFsc2UpCiAgICAgLCBtX2lzUGx1Z2luVW5hdmFpbGFibGUoZmFsc2UpCiAgICAgLCBtX2lzVW5h
dmFpbGFibGVQbHVnaW5JbmRpY2F0b3JIaWRkZW4oZmFsc2UpCkBAIC0xMjEsNyArMTIxLDcgQEAg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6On5SZW5kZXJFbWJlZGRlZE9iamVjdCgpCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cmVxdWly
ZXNMYXllcigpIGNvbnN0CiB7Ci0gICAgaWYgKFJlbmRlclBhcnQ6OnJlcXVpcmVzTGF5ZXIoKSkK
KyAgICBpZiAoUmVuZGVyV2lkZ2V0OjpyZXF1aXJlc0xheWVyKCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIAogICAgIHJldHVybiBhbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7CkBA
IC0yMTEsNyArMjExLDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRDb250ZW50
cyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQKICAgICBIVE1MUGx1Z0lu
RWxlbWVudCogcGx1Z0luRWxlbWVudCA9IHRvSFRNTFBsdWdJbkVsZW1lbnQoZWxlbWVudCgpKTsK
IAogICAgIGlmIChwbHVnSW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA+IEhUTUxQbHVnSW5FbGVt
ZW50OjpEaXNwbGF5aW5nU25hcHNob3QpIHsKLSAgICAgICAgUmVuZGVyUGFydDo6cGFpbnRDb250
ZW50cyhwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICAgICAgUmVuZGVyV2lkZ2V0OjpwYWlu
dENvbnRlbnRzKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogICAgICAgICBpZiAoIXBsdWdJbkVs
ZW1lbnQtPmlzUmVzdGFydGVkUGx1Z2luKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPCiAgICAgaWYgKHBhZ2Ug
JiYgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKQogICAgICAgICBwYWdl
LT5hZGRSZWxldmFudFJlcGFpbnRlZE9iamVjdCh0aGlzLCB2aXN1YWxPdmVyZmxvd1JlY3QoKSk7
CiAKLSAgICBSZW5kZXJQYXJ0OjpwYWludChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICBS
ZW5kZXJXaWRnZXQ6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogfQogCiBzdGF0aWMg
dm9pZCBkcmF3UmVwbGFjZW1lbnRBcnJvdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgaW5zaWRlUmVjdCkKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIFJlbmRlckVt
YmVkZGVkT2JqZWN0OjpsYXlvdXQoKQogICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwogICAgIHVw
ZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKIAotICAgIFJlbmRlclBhcnQ6OmxheW91dCgpOworICAgIFJl
bmRlcldpZGdldDo6bGF5b3V0KCk7CiAKICAgICBjbGVhck92ZXJmbG93KCk7CiAgICAgYWRkVmlz
dWFsRWZmZWN0T3ZlcmZsb3coKTsKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIFJlbmRlckVtYmVk
ZGVkT2JqZWN0Ojp2aWV3Q2xlYXJlZCgpCiAKIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6Om5v
ZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rp
b24pCiB7Ci0gICAgaWYgKCFSZW5kZXJQYXJ0Ojpub2RlQXRQb2ludChyZXF1ZXN0LCByZXN1bHQs
IGxvY2F0aW9uSW5Db250YWluZXIsIGFjY3VtdWxhdGVkT2Zmc2V0LCBoaXRUZXN0QWN0aW9uKSkK
KyAgICBpZiAoIVJlbmRlcldpZGdldDo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2Nh
dGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgaGl0VGVzdEFjdGlvbikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghd2lkZ2V0KCkgfHwgIXdpZGdldCgpLT5pc1Bs
dWdpblZpZXdCYXNlKCkpCkBAIC02NDAsNyArNjQwLDcgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXJz
b3IKICAgICAgICAgY3Vyc29yID0gaGFuZEN1cnNvcigpOwogICAgICAgICByZXR1cm4gU2V0Q3Vy
c29yOwogICAgIH0KLSAgICByZXR1cm4gUmVuZGVyUGFydDo6Z2V0Q3Vyc29yKHBvaW50LCBjdXJz
b3IpOworICAgIHJldHVybiBSZW5kZXJXaWRnZXQ6OmdldEN1cnNvcihwb2ludCwgY3Vyc29yKTsK
IH0KIAogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5k
ZXggMTliOWM1NC4uZjdkMDZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmgKQEAgLTIzLDcgKzIzLDcgQEAKICNpZm5kZWYgUmVuZGVyRW1i
ZWRkZWRPYmplY3RfaAogI2RlZmluZSBSZW5kZXJFbWJlZGRlZE9iamVjdF9oCiAKLSNpbmNsdWRl
ICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBUZXh0UnVuOwogCiAvLyBSZW5kZXJl
ciBmb3IgZW1iZWRzIGFuZCBvYmplY3RzLCBvZnRlbiwgYnV0IG5vdCBhbHdheXMsIHJlbmRlcmVk
IHZpYSBwbHVnLWlucy4KIC8vIEZvciBleGFtcGxlLCA8ZW1iZWQgc3JjPSJmb28uaHRtbCI+IGRv
ZXMgbm90IGludm9rZSBhIHBsdWctaW4uCi1jbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdCA6IHB1
YmxpYyBSZW5kZXJQYXJ0IHsKK2NsYXNzIFJlbmRlckVtYmVkZGVkT2JqZWN0IDogcHVibGljIFJl
bmRlcldpZGdldCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3QoRWxlbWVudCop
OwogICAgIHZpcnR1YWwgflJlbmRlckVtYmVkZGVkT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCmluZGV4IGIxM2Q0ZjMuLjkzOTg4ZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCkBAIC0zNCw3
ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBSZW5kZXJGcmFtZUJhc2U6OlJl
bmRlckZyYW1lQmFzZShFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyUGFydChlbGVtZW50
KQorICAgIDogUmVuZGVyV2lkZ2V0KGVsZW1lbnQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuaAppbmRleCA0ZmFkNTYwLi40YWVlNDY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5oCkBAIC0yNiwxMiArMjYsMTIg
QEAKICNpZm5kZWYgUmVuZGVyRnJhbWVCYXNlX2gKICNkZWZpbmUgUmVuZGVyRnJhbWVCYXNlX2gK
IAotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBCYXNlIGNsYXNzIGZvciBSZW5kZXJGcmFtZSBhbmQg
UmVuZGVySUZyYW1lCi1jbGFzcyBSZW5kZXJGcmFtZUJhc2UgOiBwdWJsaWMgUmVuZGVyUGFydCB7
CitjbGFzcyBSZW5kZXJGcmFtZUJhc2UgOiBwdWJsaWMgUmVuZGVyV2lkZ2V0IHsKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBSZW5kZXJGcmFtZUJhc2UoRWxlbWVudCopOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGE2MGJiYTEu
LmNlYTdmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCkBAIC00NTcsMTEgKzQ1NywxMSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlQ29tcG9zaXRlZEJvdW5kcygpCiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRh
dGVBZnRlcldpZGdldFJlc2l6ZSgpCiB7Ci0gICAgaWYgKHJlbmRlcmVyKCkuaXNSZW5kZXJQYXJ0
KCkpIHsKLSAgICAgICAgaWYgKFJlbmRlckxheWVyQ29tcG9zaXRvciogaW5uZXJDb21wb3NpdG9y
ID0gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcih0b1JlbmRl
clBhcnQoJnJlbmRlcmVyKCkpKSkgewotICAgICAgICAgICAgaW5uZXJDb21wb3NpdG9yLT5mcmFt
ZVZpZXdEaWRDaGFuZ2VTaXplKCk7Ci0gICAgICAgICAgICBpbm5lckNvbXBvc2l0b3ItPmZyYW1l
Vmlld0RpZENoYW5nZUxvY2F0aW9uKGZsb29yZWRJbnRQb2ludChjb250ZW50c0JveCgpLmxvY2F0
aW9uKCkpKTsKLSAgICAgICAgfQorICAgIGlmICghcmVuZGVyZXIoKS5pc1dpZGdldCgpKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKFJlbmRlckxheWVyQ29tcG9zaXRvciogaW5uZXJDb21wb3Np
dG9yID0gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcih0b1Jl
bmRlcldpZGdldCgmcmVuZGVyZXIoKSkpKSB7CisgICAgICAgIGlubmVyQ29tcG9zaXRvci0+ZnJh
bWVWaWV3RGlkQ2hhbmdlU2l6ZSgpOworICAgICAgICBpbm5lckNvbXBvc2l0b3ItPmZyYW1lVmll
d0RpZENoYW5nZUxvY2F0aW9uKGZsb29yZWRJbnRQb2ludChjb250ZW50c0JveCgpLmxvY2F0aW9u
KCkpKTsKICAgICB9CiB9CiAKQEAgLTU2OCw4ICs1NjgsOCBAQCBib29sIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgICAgICBsYXllckNv
bmZpZ0NoYW5nZWQgPSB0cnVlOwogICAgIH0KICNlbmRpZgotICAgIGlmIChyZW5kZXJlcigpLmlz
UmVuZGVyUGFydCgpKQotICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnBhcmVudEZyYW1lQ29udGVudExheWVycyh0b1JlbmRlclBhcnQoJnJlbmRlcmVy
KCkpKTsKKyAgICBpZiAocmVuZGVyZXIoKS5pc1dpZGdldCgpKQorICAgICAgICBsYXllckNvbmZp
Z0NoYW5nZWQgPSBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhcmVudEZyYW1lQ29udGVudExheWVy
cyh0b1JlbmRlcldpZGdldCgmcmVuZGVyZXIoKSkpOwogCiAgICAgcmV0dXJuIGxheWVyQ29uZmln
Q2hhbmdlZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKaW5kZXggNjI4YjFmOS4uMDg4NDQ5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTczOSw4ICs3
MzksOCBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyhSZW5kZXJM
YXllciogbGF5ZXIsIENvbXBvc2l0aW5nQ2hhbmdlUgogICAgIH0KICNlbmRpZgogCi0gICAgaWYg
KGxheWVyQ2hhbmdlZCAmJiBsYXllci0+cmVuZGVyZXIoKS5pc1JlbmRlclBhcnQoKSkgewotICAg
ICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3IqIGlubmVyQ29tcG9zaXRvciA9IGZyYW1lQ29udGVu
dHNDb21wb3NpdG9yKHRvUmVuZGVyUGFydCgmbGF5ZXItPnJlbmRlcmVyKCkpKTsKKyAgICBpZiAo
bGF5ZXJDaGFuZ2VkICYmIGxheWVyLT5yZW5kZXJlcigpLmlzV2lkZ2V0KCkpIHsKKyAgICAgICAg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBpbm5lckNvbXBvc2l0b3IgPSBmcmFtZUNvbnRlbnRzQ29t
cG9zaXRvcih0b1JlbmRlcldpZGdldCgmbGF5ZXItPnJlbmRlcmVyKCkpKTsKICAgICAgICAgaWYg
KGlubmVyQ29tcG9zaXRvciAmJiBpbm5lckNvbXBvc2l0b3ItPmluQ29tcG9zaXRpbmdNb2RlKCkp
CiAgICAgICAgICAgICBpbm5lckNvbXBvc2l0b3ItPnVwZGF0ZVJvb3RMYXllckF0dGFjaG1lbnQo
KTsKICAgICB9CkBAIC0xMjU2LDggKzEyNTYsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgVmVjdAog
ICAgIAogICAgIGlmIChsYXllckJhY2tpbmcpIHsKICAgICAgICAgYm9vbCBwYXJlbnRlZCA9IGZh
bHNlOwotICAgICAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCkuaXNSZW5kZXJQYXJ0KCkpCi0gICAg
ICAgICAgICBwYXJlbnRlZCA9IHBhcmVudEZyYW1lQ29udGVudExheWVycyh0b1JlbmRlclBhcnQo
JmxheWVyLT5yZW5kZXJlcigpKSk7CisgICAgICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS5pc1dp
ZGdldCgpKQorICAgICAgICAgICAgcGFyZW50ZWQgPSBwYXJlbnRGcmFtZUNvbnRlbnRMYXllcnMo
dG9SZW5kZXJXaWRnZXQoJmxheWVyLT5yZW5kZXJlcigpKSk7CiAKICAgICAgICAgaWYgKCFwYXJl
bnRlZCkKICAgICAgICAgICAgIGxheWVyQmFja2luZy0+cGFyZW50Rm9yU3VibGF5ZXJzKCktPnNl
dENoaWxkcmVuKGxheWVyQ2hpbGRyZW4pOwpAQCAtMTQwNyw3ICsxNDA3LDcgQEAgU3RyaW5nIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUZsYWdzIGZsYWdz
KQogICAgIHJldHVybiBsYXllclRyZWVUZXh0OwogfQogCi1SZW5kZXJMYXllckNvbXBvc2l0b3Iq
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVyUGFy
dCogcmVuZGVyZXIpCitSZW5kZXJMYXllckNvbXBvc2l0b3IqIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6ZnJhbWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVyV2lkZ2V0KiByZW5kZXJlcikKIHsKICAg
ICBpZiAoIXJlbmRlcmVyLT5lbGVtZW50KCktPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIDA7CkBAIC0xNDIwLDcgKzE0MjAsNyBAQCBSZW5kZXJMYXllckNvbXBvc2l0b3Iq
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVyUGFy
dAogICAgIHJldHVybiAwOwogfQogCi1ib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFyZW50
RnJhbWVDb250ZW50TGF5ZXJzKFJlbmRlclBhcnQqIHJlbmRlcmVyKQorYm9vbCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnBhcmVudEZyYW1lQ29udGVudExheWVycyhSZW5kZXJXaWRnZXQqIHJlbmRl
cmVyKQogewogICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciogaW5uZXJDb21wb3NpdG9yID0gZnJh
bWVDb250ZW50c0NvbXBvc2l0b3IocmVuZGVyZXIpOwogICAgIGlmICghaW5uZXJDb21wb3NpdG9y
IHx8ICFpbm5lckNvbXBvc2l0b3ItPmluQ29tcG9zaXRpbmdNb2RlKCkgfHwgaW5uZXJDb21wb3Np
dG9yLT5yb290TGF5ZXJBdHRhY2htZW50KCkgIT0gUm9vdExheWVyQXR0YWNoZWRWaWFFbmNsb3Np
bmdGcmFtZSkKQEAgLTE3NDQsNyArMTc0NCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpzaG91bGRQcm9wYWdhdGVDb21wb3NpdGluZ1RvRW5jbG9zaW5nRnJhbWUoKSBjb25zdAogICAg
IGlmICghYWxsb3dzSW5kZXBlbmRlbnRseUNvbXBvc2l0ZWRGcmFtZXMoJm1fcmVuZGVyVmlldy5m
cmFtZVZpZXcoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCFyZW5kZXJlciB8
fCAhcmVuZGVyZXItPmlzUmVuZGVyUGFydCgpKQorICAgIGlmICghcmVuZGVyZXIgfHwgIXJlbmRl
cmVyLT5pc1dpZGdldCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBPbiBNYWMs
IG9ubHkgcHJvcGFnYXRlIGNvbXBvc2l0aW5nIGlmIHRoZSBmcmFtZSBpcyBvdmVybGFwcGVkIGlu
IHRoZSBwYXJlbnQKQEAgLTE3NTMsNyArMTc1Myw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3NpdGluZ1RvRW5jbG9zaW5nRnJhbWUoKSBjb25zdAog
ICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpICE9IDEpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIAotICAgIFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRl
clBhcnQocmVuZGVyZXIpOworICAgIFJlbmRlcldpZGdldCogZnJhbWVSZW5kZXJlciA9IHRvUmVu
ZGVyV2lkZ2V0KHJlbmRlcmVyKTsKICAgICBpZiAoZnJhbWVSZW5kZXJlci0+d2lkZ2V0KCkpIHsK
ICAgICAgICAgQVNTRVJUKGZyYW1lUmVuZGVyZXItPndpZGdldCgpLT5pc0ZyYW1lVmlldygpKTsK
ICAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gdG9GcmFtZVZpZXcoZnJhbWVSZW5kZXJlci0+d2lk
Z2V0KCkpOwpAQCAtMjA4MSw3ICsyMDgxLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JWaWRlbyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAg
ICAgICByZXR1cm4gKHZpZGVvLnJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSB8fCB2aWRl
by5zaG91bGREaXNwbGF5VmlkZW8oKSkgJiYgY2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKHZp
ZGVvKTsKICAgICB9CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgZWxz
ZSBpZiAocmVuZGVyZXItPmlzUmVuZGVyUGFydCgpKSB7CisgICAgZWxzZSBpZiAocmVuZGVyZXIt
PmlzUmVuZGVyV2lkZ2V0KCkpIHsKICAgICAgICAgaWYgKCFtX2hhc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmcpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTIxMzksMTAgKzIxMzksMTAg
QEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVn
aW4oUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGcmFtZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25z
dAogewotICAgIGlmICghcmVuZGVyZXItPmlzUmVuZGVyUGFydCgpKQorICAgIGlmICghcmVuZGVy
ZXItPmlzV2lkZ2V0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBSZW5kZXJQ
YXJ0KiBmcmFtZVJlbmRlcmVyID0gdG9SZW5kZXJQYXJ0KHJlbmRlcmVyKTsKKyAgICBSZW5kZXJX
aWRnZXQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlcldpZGdldChyZW5kZXJlcik7CiAKICAgICBp
ZiAoIWZyYW1lUmVuZGVyZXItPnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggNGM2Mzg3Ny4uOGU2NjIzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtNDAsNyArNDAs
NyBAQCBjbGFzcyBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEdyYXBo
aWNzTGF5ZXI7CiBjbGFzcyBHcmFwaGljc0xheWVyVXBkYXRlcjsKIGNsYXNzIFJlbmRlckVtYmVk
ZGVkT2JqZWN0OwotY2xhc3MgUmVuZGVyUGFydDsKK2NsYXNzIFJlbmRlcldpZGdldDsKIGNsYXNz
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOwogY2xhc3MgU3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0
cmFpbnRzOwogI2lmIEVOQUJMRShWSURFTykKQEAgLTIyNyw5ICsyMjcsOSBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGJvb2wgYWxsb3dzSW5kZXBlbmRlbnRseUNvbXBvc2l0ZWRGcmFtZXMoY29uc3Qg
RnJhbWVWaWV3Kik7CiAgICAgYm9vbCBzaG91bGRQcm9wYWdhdGVDb21wb3NpdGluZ1RvRW5jbG9z
aW5nRnJhbWUoKSBjb25zdDsKIAotICAgIHN0YXRpYyBSZW5kZXJMYXllckNvbXBvc2l0b3IqIGZy
YW1lQ29udGVudHNDb21wb3NpdG9yKFJlbmRlclBhcnQqKTsKKyAgICBzdGF0aWMgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yKiBmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcihSZW5kZXJXaWRnZXQqKTsKICAg
ICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgbGF5ZXJzIGNoYW5nZWQuCi0gICAgc3RhdGljIGJvb2wg
cGFyZW50RnJhbWVDb250ZW50TGF5ZXJzKFJlbmRlclBhcnQqKTsKKyAgICBzdGF0aWMgYm9vbCBw
YXJlbnRGcmFtZUNvbnRlbnRMYXllcnMoUmVuZGVyV2lkZ2V0Kik7CiAKICAgICAvLyBVcGRhdGUg
dGhlIGdlb21ldHJ5IG9mIHRoZSBsYXllcnMgdXNlZCBmb3IgY2xpcHBpbmcgYW5kIHNjcm9sbGlu
ZyBpbiBmcmFtZXMuCiAgICAgdm9pZCBmcmFtZVZpZXdEaWRDaGFuZ2VMb2NhdGlvbihjb25zdCBJ
bnRQb2ludCYgY29udGVudHNPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCmluZGV4IGNkODg0ZTQuLmZjOTFhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKQEAgLTM3OCw3ICszNzgsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGlzUmVuZGVySUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNSZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzUmVuZGVySW5saW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZW5kZXJQYXJ0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNSZW5kZXJSZWdpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1JlbmRlclJlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNSZXBsaWNhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmYwMmM3OC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUGFydC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogICAgICAgICAgIChD
KSAyMDAwIFNpbW9uIEhhdXNtYW5uIDxoYXVzbWFubkBrZGUub3JnPgotICogICAgICAgICAgIChD
KSAyMDAwIFN0ZWZhbiBTY2hpbWFuc2tpICgxU3RlaW5AZ214LmRlKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW5kZXJQ
YXJ0LmgiCi0KLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2lu
Y2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnRCYXNlLmgiCi0jaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5o
IgotI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
LSNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCi0jaW5jbHVkZSAiUmVuZGVyVmlldy5oIgotCi11
c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlbmRlclBhcnQ6
OlJlbmRlclBhcnQoRWxlbWVudCogbm9kZSkKLSAgICA6IFJlbmRlcldpZGdldChub2RlKQotewot
ICAgIHNldElubGluZShmYWxzZSk7Ci19Ci0KLVJlbmRlclBhcnQ6On5SZW5kZXJQYXJ0KCkKLXsK
LSAgICBjbGVhcldpZGdldCgpOwotfQotCi12b2lkIFJlbmRlclBhcnQ6OnNldFdpZGdldChQYXNz
UmVmUHRyPFdpZGdldD4gd2lkZ2V0KQotewotICAgIGlmICh3aWRnZXQgPT0gdGhpcy0+d2lkZ2V0
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlcldpZGdldDo6c2V0V2lkZ2V0KHdpZGdl
dCk7Ci0KLSAgICAvLyBtYWtlIHN1cmUgdGhlIHNjcm9sbGJhcnMgYXJlIHNldCBjb3JyZWN0bHkg
Zm9yIHJlc3RvcmUKLSAgICAvLyAjIyMgZmluZCBiZXR0ZXIgZml4Ci0gICAgdmlld0NsZWFyZWQo
KTsKLX0KLQotdm9pZCBSZW5kZXJQYXJ0Ojp2aWV3Q2xlYXJlZCgpCi17Ci19Ci0KLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi1ib29sIFJlbmRlclBhcnQ6OnJlcXVpcmVzTGF5ZXIo
KSBjb25zdAotewotICAgIGlmIChSZW5kZXJXaWRnZXQ6OnJlcXVpcmVzTGF5ZXIoKSkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuIHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZygpOwotfQotCi1ib29sIFJlbmRlclBhcnQ6OnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZygpIGNvbnN0Ci17Ci0gICAgLy8gVGhlcmUgYXJlIHR3byBnZW5lcmFsIGNhc2VzIGlu
IHdoaWNoIHdlIGNhbiByZXR1cm4gdHJ1ZS4gRmlyc3QsIGlmIHRoaXMgaXMgYSBwbHVnaW4gCi0g
ICAgLy8gcmVuZGVyZXIgYW5kIHRoZSBwbHVnaW4gaGFzIGEgbGF5ZXIsIHRoZW4gd2UgbmVlZCBh
IGxheWVyLiBTZWNvbmQsIGlmIHRoaXMgaXMgCi0gICAgLy8gYSByZW5kZXJlciB3aXRoIGEgY29u
dGVudERvY3VtZW50IGFuZCB0aGF0IGRvY3VtZW50IG5lZWRzIGEgbGF5ZXIsIHRoZW4gd2UgbmVl
ZAotICAgIC8vIGEgbGF5ZXIuCi0gICAgaWYgKHdpZGdldCgpICYmIHdpZGdldCgpLT5pc1BsdWdp
blZpZXdCYXNlKCkgJiYgdG9QbHVnaW5WaWV3QmFzZSh3aWRnZXQoKSktPnBsYXRmb3JtTGF5ZXIo
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIWVsZW1lbnQoKSB8fCAhZWxlbWVu
dCgpLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IEhUTUxGcmFtZU93bmVyRWxlbWVudCogZnJhbWVPd25lckVsZW1lbnQgPSB0b0ZyYW1lT3duZXJF
bGVtZW50KGVsZW1lbnQoKSk7Ci0gICAgaWYgKERvY3VtZW50KiBjb250ZW50RG9jdW1lbnQgPSBm
cmFtZU93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkpIHsKLSAgICAgICAgaWYgKFJlbmRl
clZpZXcqIHZpZXcgPSBjb250ZW50RG9jdW1lbnQtPnJlbmRlclZpZXcoKSkKLSAgICAgICAgICAg
IHJldHVybiB2aWV3LT51c2VzQ29tcG9zaXRpbmcoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0jZW5kaWYKLQotYm9vbCBSZW5kZXJQYXJ0OjpuZWVkc1ByZWZlcnJlZFdpZHRoc1Jl
Y2FsY3VsYXRpb24oKSBjb25zdAotewotICAgIGlmIChSZW5kZXJXaWRnZXQ6Om5lZWRzUHJlZmVy
cmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1
cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7Ci19Ci0KLVJlbmRlckJveCogUmVuZGVyUGFydDo6ZW1i
ZWRkZWRDb250ZW50Qm94KCkgY29uc3QKLXsKLSAgICBpZiAoIWVsZW1lbnQoKSB8fCAhd2lkZ2V0
KCkgfHwgIXdpZGdldCgpLT5pc0ZyYW1lVmlldygpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBy
ZXR1cm4gdG9GcmFtZVZpZXcod2lkZ2V0KCkpLT5lbWJlZGRlZENvbnRlbnRCb3goKTsKLX0KLQot
Ym9vbCBSZW5kZXJQYXJ0Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9u
SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVz
dEFjdGlvbiBhY3Rpb24pCi17Ci0gICAgaWYgKCF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJh
bWVWaWV3KCkgfHwgIXJlcXVlc3QuYWxsb3dzQ2hpbGRGcmFtZUNvbnRlbnQoKSkKLSAgICAgICAg
cmV0dXJuIFJlbmRlcldpZGdldDo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2NhdGlv
bkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgYWN0aW9uKTsKLQotICAgIEZyYW1lVmll
dyogY2hpbGRGcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyh3aWRnZXQoKSk7Ci0gICAgUmVuZGVyVmll
dyogY2hpbGRSb290ID0gY2hpbGRGcmFtZVZpZXctPnJlbmRlclZpZXcoKTsKLQotICAgIGlmIChj
aGlsZFJvb3QpIHsKLSAgICAgICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRMb2NhdGlvbiA9IGFjY3Vt
dWxhdGVkT2Zmc2V0ICsgbG9jYXRpb24oKTsKLSAgICAgICAgTGF5b3V0UG9pbnQgY29udGVudE9m
ZnNldCA9IExheW91dFBvaW50KGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRv
cCgpICsgcGFkZGluZ1RvcCgpKSAtIGNoaWxkRnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQoKTsKLSAg
ICAgICAgSGl0VGVzdExvY2F0aW9uIG5ld0hpdFRlc3RMb2NhdGlvbihsb2NhdGlvbkluQ29udGFp
bmVyLCAtYWRqdXN0ZWRMb2NhdGlvbiAtIGNvbnRlbnRPZmZzZXQpOwotICAgICAgICBIaXRUZXN0
UmVxdWVzdCBuZXdIaXRUZXN0UmVxdWVzdChyZXF1ZXN0LnR5cGUoKSB8IEhpdFRlc3RSZXF1ZXN0
OjpDaGlsZEZyYW1lSGl0VGVzdCk7Ci0gICAgICAgIEhpdFRlc3RSZXN1bHQgY2hpbGRGcmFtZVJl
c3VsdChuZXdIaXRUZXN0TG9jYXRpb24pOwotCi0gICAgICAgIGJvb2wgaXNJbnNpZGVDaGlsZEZy
YW1lID0gY2hpbGRSb290LT5oaXRUZXN0KG5ld0hpdFRlc3RSZXF1ZXN0LCBuZXdIaXRUZXN0TG9j
YXRpb24sIGNoaWxkRnJhbWVSZXN1bHQpOwotCi0gICAgICAgIGlmIChuZXdIaXRUZXN0TG9jYXRp
b24uaXNSZWN0QmFzZWRUZXN0KCkpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoaWxkRnJh
bWVSZXN1bHQpOwotICAgICAgICBlbHNlIGlmIChpc0luc2lkZUNoaWxkRnJhbWUpCi0gICAgICAg
ICAgICByZXN1bHQgPSBjaGlsZEZyYW1lUmVzdWx0OwotCi0gICAgICAgIGlmIChpc0luc2lkZUNo
aWxkRnJhbWUpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
UmVuZGVyV2lkZ2V0Ojpub2RlQXRQb2ludChyZXF1ZXN0LCByZXN1bHQsIGxvY2F0aW9uSW5Db250
YWluZXIsIGFjY3VtdWxhdGVkT2Zmc2V0LCBhY3Rpb24pOwotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclBhcnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ2ZmFm
Zi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oCisr
KyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogICAgICAgICAgIChDKSAyMDAwIFNpbW9uIEhh
dXNtYW5uIDxoYXVzbWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgUmVuZGVyUGFydF9oCi0j
ZGVmaW5lIFJlbmRlclBhcnRfaAotCi0jaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotLy8gUmVuZGVyZXIgZm9yIGZyYW1lcyB2aWEgUmVuZGVyRnJhbWVC
YXNlLCBhbmQgcGx1Zy1pbnMgdmlhIFJlbmRlckVtYmVkZGVkT2JqZWN0LgotY2xhc3MgUmVuZGVy
UGFydCA6IHB1YmxpYyBSZW5kZXJXaWRnZXQgewotcHVibGljOgotICAgIGV4cGxpY2l0IFJlbmRl
clBhcnQoRWxlbWVudCopOwotICAgIHZpcnR1YWwgflJlbmRlclBhcnQoKTsKLQotICAgIHZpcnR1
YWwgdm9pZCBzZXRXaWRnZXQoUGFzc1JlZlB0cjxXaWRnZXQ+KSBPVkVSUklERSBGSU5BTDsKLSAg
ICB2aXJ0dWFsIHZvaWQgdmlld0NsZWFyZWQoKTsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICBib29sIHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0
OwotI2VuZGlmCi0KLSAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQcmVmZXJyZWRXaWR0aHNSZWNhbGN1
bGF0aW9uKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBSZW5kZXJCb3gqIGVt
YmVkZGVkQ29udGVudEJveCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotCi0gICAgdmlydHVhbCBi
b29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9p
bnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKLQotcHJvdGVj
dGVkOgotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIGJvb2wg
cmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJSSURFOwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAg
dmlydHVhbCBib29sIGlzUmVuZGVyUGFydCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiAiUmVuZGVyUGFydCI7IH0KLX07Ci0KLWlubGluZSBSZW5kZXJQYXJ0KiB0
b1JlbmRlclBhcnQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyUGFydCgpKTsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUGFydCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMg
d2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5k
ZXJQYXJ0KGNvbnN0IFJlbmRlclBhcnQqKTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKaW5kZXggNjU5MDk1Yy4uYzE1MTQxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKQEAgLTI4
LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhclBhcnQu
aCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlcldp
ZGdldC5oIgogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKIApAQCAtODIsNyArODIsNyBAQCBSZW5kZXJTY3JvbGxiYXI6On5SZW5kZXJT
Y3JvbGxiYXIoKQogUmVuZGVyQm94KiBSZW5kZXJTY3JvbGxiYXI6Om93bmluZ1JlbmRlcmVyKCkg
Y29uc3QKIHsKICAgICBpZiAobV9vd25pbmdGcmFtZSkgewotICAgICAgICBSZW5kZXJCb3gqIGN1
cnJlbnRSZW5kZXJlciA9IG1fb3duaW5nRnJhbWUtPm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAg
UmVuZGVyV2lkZ2V0KiBjdXJyZW50UmVuZGVyZXIgPSBtX293bmluZ0ZyYW1lLT5vd25lclJlbmRl
cmVyKCk7CiAgICAgICAgIHJldHVybiBjdXJyZW50UmVuZGVyZXI7CiAgICAgfQogICAgIHJldHVy
biBtX293bmVyICYmIG1fb3duZXItPnJlbmRlcmVyKCkgPyBtX293bmVyLT5yZW5kZXJlcigpLT5l
bmNsb3NpbmdCb3goKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJl
ZUFzVGV4dC5jcHAKaW5kZXggZWFjY2Y4Yy4uZTAzZTIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1
ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC01MDIsOCArNTAxLDggQEAgdm9pZCBSZW5kZXJU
cmVlQXNUZXh0Ojp3cml0ZVJlbmRlck9iamVjdChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVy
T2JqZWN0JiBvLAogI2lmIFBMQVRGT1JNKFFUKQogICAgIC8vIFByaW50IGF0dHJpYnV0ZXMgb2Yg
ZW1iZWRkZWQgUVdpZGdldHMuIEUuZy4gd2hlbiB0aGUgV2ViQ29yZTo6V2lkZ2V0CiAgICAgLy8g
aXMgaW52aXNpYmxlIHRoZSBRV2lkZ2V0IHNob3VsZCBiZSBpbnZpc2libGUgdG9vLgotICAgIGlm
IChvLmlzUmVuZGVyUGFydCgpKSB7Ci0gICAgICAgIGNvbnN0IFJlbmRlclBhcnQqIHBhcnQgPSB0
b1JlbmRlclBhcnQoY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPigmbykpOworICAgIGlmIChvLmlz
V2lkZ2V0KCkpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyV2lkZ2V0KiBwYXJ0ID0gdG9SZW5kZXJX
aWRnZXQoY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPigmbykpOwogICAgICAgICBpZiAocGFydC0+
d2lkZ2V0KCkgJiYgcGFydC0+d2lkZ2V0KCktPnBsYXRmb3JtV2lkZ2V0KCkpIHsKICAgICAgICAg
ICAgIFFPYmplY3QqIHdpZCA9IHBhcnQtPndpZGdldCgpLT5wbGF0Zm9ybVdpZGdldCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IDFlODI2YjUuLjFl
ZDgzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0y
Nyw3ICsyNyw5IEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRNTEZy
YW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUg
IlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ291bnRlci5oIgogI2luY2x1ZGUg
IlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtOTYsNiArOTgsNyBA
QCBSZW5kZXJXaWRnZXQ6OlJlbmRlcldpZGdldChFbGVtZW50KiBlbGVtZW50KQogICAgIC8vIGFi
bGUgdG8gaGFuZGxlIHRoYXQuCiAgICAgLCBtX3JlZkNvdW50KDEpCiB7CisgICAgc2V0SW5saW5l
KGZhbHNlKTsKICAgICB2aWV3KCkuYWRkV2lkZ2V0KHRoaXMpOwogfQogCkBAIC0yMTIsMTAgKzIx
NSwxNSBAQCB2b2lkIFJlbmRlcldpZGdldDo6c2V0V2lkZ2V0KFBhc3NSZWZQdHI8V2lkZ2V0PiB3
aWRnZXQpCiAgICAgICAgIH0KICAgICAgICAgbW92ZVdpZGdldFRvUGFyZW50U29vbihtX3dpZGdl
dC5nZXQoKSwgbV9mcmFtZVZpZXcpOwogICAgIH0KKyAgICAvLyBtYWtlIHN1cmUgdGhlIHNjcm9s
bGJhcnMgYXJlIHNldCBjb3JyZWN0bHkgZm9yIHJlc3RvcmUKKyAgICAvLyAjIyMgZmluZCBiZXR0
ZXIgZml4CisgICAgdmlld0NsZWFyZWQoKTsKIH0KIAogdm9pZCBSZW5kZXJXaWRnZXQ6OmxheW91
dCgpCiB7CisKKyAgICB2aWV3Q2xlYXJlZCgpOwogICAgIFN0YWNrU3RhdHM6OkxheW91dENoZWNr
UG9pbnQgbGF5b3V0Q2hlY2tQb2ludDsKICAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CiAKQEAg
LTM4Niw2ICszOTQsMzAgQEAgUmVuZGVyV2lkZ2V0KiBSZW5kZXJXaWRnZXQ6OmZpbmQoY29uc3Qg
V2lkZ2V0KiB3aWRnZXQpCiAKIGJvb2wgUmVuZGVyV2lkZ2V0Ojpub2RlQXRQb2ludChjb25zdCBI
aXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRU
ZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbiBhY3Rpb24pCiB7CisgICAgaWYgKCF3aWRnZXQo
KSB8fCAhd2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkgfHwgIXJlcXVlc3QuYWxsb3dzQ2hpbGRGcmFt
ZUNvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpub2RlQXRQb2ludChy
ZXF1ZXN0LCByZXN1bHQsIGxvY2F0aW9uSW5Db250YWluZXIsIGFjY3VtdWxhdGVkT2Zmc2V0LCBh
Y3Rpb24pOworCisgICAgRnJhbWVWaWV3KiBjaGlsZEZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHdp
ZGdldCgpKTsKKyAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBjaGlsZEZyYW1lVmlldy0+cmVu
ZGVyVmlldygpOworCisgICAgaWYgKGNoaWxkUm9vdCkgeworICAgICAgICBMYXlvdXRQb2ludCBh
ZGp1c3RlZExvY2F0aW9uID0gYWNjdW11bGF0ZWRPZmZzZXQgKyBsb2NhdGlvbigpOworICAgICAg
ICBMYXlvdXRQb2ludCBjb250ZW50T2Zmc2V0ID0gTGF5b3V0UG9pbnQoYm9yZGVyTGVmdCgpICsg
cGFkZGluZ0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpIC0gY2hpbGRGcmFtZVZp
ZXctPnNjcm9sbE9mZnNldCgpOworICAgICAgICBIaXRUZXN0TG9jYXRpb24gbmV3SGl0VGVzdExv
Y2F0aW9uKGxvY2F0aW9uSW5Db250YWluZXIsIC1hZGp1c3RlZExvY2F0aW9uIC0gY29udGVudE9m
ZnNldCk7CisgICAgICAgIEhpdFRlc3RSZXF1ZXN0IG5ld0hpdFRlc3RSZXF1ZXN0KHJlcXVlc3Qu
dHlwZSgpIHwgSGl0VGVzdFJlcXVlc3Q6OkNoaWxkRnJhbWVIaXRUZXN0KTsKKyAgICAgICAgSGl0
VGVzdFJlc3VsdCBjaGlsZEZyYW1lUmVzdWx0KG5ld0hpdFRlc3RMb2NhdGlvbik7CisKKyAgICAg
ICAgYm9vbCBpc0luc2lkZUNoaWxkRnJhbWUgPSBjaGlsZFJvb3QtPmhpdFRlc3QobmV3SGl0VGVz
dFJlcXVlc3QsIG5ld0hpdFRlc3RMb2NhdGlvbiwgY2hpbGRGcmFtZVJlc3VsdCk7CisKKyAgICAg
ICAgaWYgKG5ld0hpdFRlc3RMb2NhdGlvbi5pc1JlY3RCYXNlZFRlc3QoKSkKKyAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoY2hpbGRGcmFtZVJlc3VsdCk7CisgICAgICAgIGVsc2UgaWYgKGlzSW5z
aWRlQ2hpbGRGcmFtZSkKKyAgICAgICAgICAgIHJlc3VsdCA9IGNoaWxkRnJhbWVSZXN1bHQ7CisK
KyAgICAgICAgaWYgKGlzSW5zaWRlQ2hpbGRGcmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKwogICAgIGJvb2wgaGFkUmVzdWx0ID0gcmVzdWx0LmlubmVyTm9kZSgpOwogICAg
IGJvb2wgaW5zaWRlID0gUmVuZGVyUmVwbGFjZWQ6Om5vZGVBdFBvaW50KHJlcXVlc3QsIHJlc3Vs
dCwgbG9jYXRpb25JbkNvbnRhaW5lciwgYWNjdW11bGF0ZWRPZmZzZXQsIGFjdGlvbik7CiAKQEAg
LTQwNCw0ICs0MzYsNDcgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRlcldpZGdldDo6Z2V0Q3Vyc29y
KGNvbnN0IExheW91dFBvaW50JiBwb2ludCwgQ3Vyc29yJiBjdXJzb3IKICAgICByZXR1cm4gUmVu
ZGVyUmVwbGFjZWQ6OmdldEN1cnNvcihwb2ludCwgY3Vyc29yKTsKIH0KIAorCisjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorYm9vbCBSZW5kZXJXaWRnZXQ6OnJlcXVpcmVzTGF5ZXIo
KSBjb25zdAoreworICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6cmVxdWlyZXNMYXllcigpIHx8
IHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOworfQorCitib29sIFJlbmRlcldpZGdl
dDo6cmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKK3sKKyAgICAvLyBUaGVy
ZSBhcmUgdHdvIGdlbmVyYWwgY2FzZXMgaW4gd2hpY2ggd2UgY2FuIHJldHVybiB0cnVlLiBGaXJz
dCwgaWYgdGhpcyBpcyBhIHBsdWdpbiAKKyAgICAvLyByZW5kZXJlciBhbmQgdGhlIHBsdWdpbiBo
YXMgYSBsYXllciwgdGhlbiB3ZSBuZWVkIGEgbGF5ZXIuIFNlY29uZCwgaWYgdGhpcyBpcyAKKyAg
ICAvLyBhIHJlbmRlcmVyIHdpdGggYSBjb250ZW50RG9jdW1lbnQgYW5kIHRoYXQgZG9jdW1lbnQg
bmVlZHMgYSBsYXllciwgdGhlbiB3ZSBuZWVkCisgICAgLy8gYSBsYXllci4KKyAgICBpZiAod2lk
Z2V0KCkgJiYgd2lkZ2V0KCktPmlzUGx1Z2luVmlld0Jhc2UoKSAmJiB0b1BsdWdpblZpZXdCYXNl
KHdpZGdldCgpKS0+cGxhdGZvcm1MYXllcigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IGlmICghZWxlbWVudCgpIHx8ICFlbGVtZW50KCktPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBmcmFtZU93
bmVyRWxlbWVudCA9IHRvRnJhbWVPd25lckVsZW1lbnQoZWxlbWVudCgpKTsKKyAgICBpZiAoRG9j
dW1lbnQqIGNvbnRlbnREb2N1bWVudCA9IGZyYW1lT3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1l
bnQoKSkgeworICAgICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IGNvbnRlbnREb2N1bWVudC0+
cmVuZGVyVmlldygpKQorICAgICAgICAgICAgcmV0dXJuIHZpZXctPnVzZXNDb21wb3NpdGluZygp
OworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCitib29sIFJlbmRlcldp
ZGdldDo6bmVlZHNQcmVmZXJyZWRXaWR0aHNSZWNhbGN1bGF0aW9uKCkgY29uc3QKK3sKKyAgICBp
ZiAoUmVuZGVyUmVwbGFjZWQ6Om5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7Cit9
CisKK1JlbmRlckJveCogUmVuZGVyV2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAor
eworICAgIGlmICghZWxlbWVudCgpIHx8ICF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJhbWVW
aWV3KCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRnZXQo
KSktPmVtYmVkZGVkQ29udGVudEJveCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggOTlkY2Q1My4uZWJkZjkw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaApAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykK
LSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOSwgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYs
IDIwMDksIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5k
ZXJXaWRnZXQoKTsKIAogICAgIFdpZGdldCogd2lkZ2V0KCkgY29uc3QgeyByZXR1cm4gbV93aWRn
ZXQuZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2lkZ2V0KFBhc3NSZWZQdHI8V2lkZ2V0
Pik7CisgICAgdm9pZCBzZXRXaWRnZXQoUGFzc1JlZlB0cjxXaWRnZXQ+KTsKIAogICAgIHN0YXRp
YyBSZW5kZXJXaWRnZXQqIGZpbmQoY29uc3QgV2lkZ2V0Kik7CiAKQEAgLTcxLDYgKzcxLDEyIEBA
IHB1YmxpYzoKICAgICBSZW5kZXJBcmVuYSogcmVmKCkgeyArK21fcmVmQ291bnQ7IHJldHVybiBy
ZW5kZXJBcmVuYSgpOyB9CiAgICAgdm9pZCBkZXJlZihSZW5kZXJBcmVuYSopOwogCisjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorICAgIGJvb2wgcmVxdWlyZXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCkgY29uc3Q7CisjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCB2aWV3Q2xlYXJl
ZCgpIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyV2lkZ2V0KEVsZW1lbnQqKTsKIApAQCAt
ODMsMTIgKzg5LDE3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJ
bmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIEN1cnNvckRp
cmVjdGl2ZSBnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmLCBDdXJzb3ImKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFp
bmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24p
IE9WRVJSSURFOwotCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisg
ICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBPVkVSUklERTsKKyNlbmRpZgog
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1dpZGdldCgpIGNvbnN0IE9WRVJSSURFIEZJ
TkFMIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZWZlcnJlZFdp
ZHRoc1JlY2FsY3VsYXRpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIFJl
bmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmly
dHVhbCB2b2lkIGRlc3Ryb3koKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUpIE9WRVJSSURFIEZJTkFMOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggODNlMmFjOC4u
M2VkNTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2lu
Y2x1ZGUgIkxheW91dFJlcGFpbnRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJS
ZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAi
UmVuZGVyU1ZHUmVzb3VyY2UuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5l
ci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENvbnRleHQuY3BwCmluZGV4IGQ3OTAwMWEu
LmNhN2JiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4dC5jcHAKQEAgLTI5
LDcgKzI5LDYgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9udE1l
dHJpY3MuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNp
bmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVmlld3BvcnRDb250
YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5jcHAKaW5kZXggNTkyOTcyOS4uYjA3Zjg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdF
bGVtZW50LmNwcApAQCAtMzksMTIgKzM5LDEyIEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCi0jaW5jbHVk
ZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU1ZHTW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAj
aW5jbHVkZSAiUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJW
aWV3LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU01JTFRpbWVDb250
YWluZXIuaCIKICNpbmNsdWRlICJTVkdBbmdsZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0
YW5jZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCmluZGV4IDE3YTM5MTIuLjkxMTMyMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGx1Z2luRGF0YWJhc2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKLSNpbmNs
dWRlICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1
ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCBjYmJlMzlhLi4x
ZGMyMDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC01OCw4ICs1OCw4IEBACiAjaW5jbHVkZSAi
UGx1Z2luRGF0YWJhc2UuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiUHJv
Z3Jlc3NUcmFja2VyLmgiCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VS
ZXF1ZXN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAwODI1M2E2
Li44YWQ5ZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTg1LDgg
Kzg1LDggQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QcmludENvbnRl
eHQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyUGFydC5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
ZW5kZXJWaWV3Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRlcldpZGdldC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2Ny
aXB0Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRWYWx1ZS5oPgpAQCAtNTYy
LDcgKzU2Miw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1
bWVudExvYWRlciogbG9hZGVyKQogLSAoQk9PTClfZ2V0VmlzaWJsZVJlY3Q6KE5TUmVjdCopcmVj
dAogewogICAgIEFTU0VSVF9BUkcocmVjdCwgcmVjdCk7Ci0gICAgaWYgKFJlbmRlclBhcnQqIG93
bmVyUmVuZGVyZXIgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsKKyAg
ICBpZiAoUmVuZGVyV2lkZ2V0KiBvd25lclJlbmRlcmVyID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+
b3duZXJSZW5kZXJlcigpKSB7CiAgICAgICAgIGlmIChvd25lclJlbmRlcmVyLT5uZWVkc0xheW91
dCgpKQogICAgICAgICAgICAgcmV0dXJuIE5POwogICAgICAgICAqcmVjdCA9IG93bmVyUmVuZGVy
ZXItPnBpeGVsU25hcHBlZEFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRleCAzNmNlYzVkLi4yYjVmNjVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtNjEsOCArNjEs
OCBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlz
dG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9S
ZW5kZXJQYXJ0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVGcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZVZpZXcuaD4KQEAgLTI4OSw5ICsyODksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlw
ZXNGcm9tQ2xhc3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAog
ICAgIHZpZXctPnNldFBsYXRmb3JtV2lkZ2V0KF9wcml2YXRlLT5mcmFtZVNjcm9sbFZpZXcpOwog
CiAgICAgLy8gRklYTUU6IEZyYW1lIHRyaWVzIHRvIGRvIHRoaXMgdG9vLiBJcyB0aGlzIGNvZGUg
bmVlZGVkPwotICAgIGlmIChSZW5kZXJQYXJ0KiBvd25lciA9IGZyYW1lLT5vd25lclJlbmRlcmVy
KCkpIHsKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiBvd25lciA9IGZyYW1lLT5vd25lclJlbmRlcmVy
KCkpIHsKICAgICAgICAgb3duZXItPnNldFdpZGdldCh2aWV3KTsKLSAgICAgICAgLy8gTm93IHRo
ZSByZW5kZXIgcGFydCBvd25zIHRoZSB2aWV3LCBzbyB3ZSBkb24ndCBhbnkgbW9yZS4KKyAgICAg
ICAgLy8gTm93IHRoZSBSZW5kZXJXaWRnZXQgb3ducyB0aGUgdmlldywgc28gd2UgZG9uJ3QgYW55
IG1vcmUuCiAgICAgfQogCiAgICAgdmlldy0+dXBkYXRlQ2FuSGF2ZVNjcm9sbGJhcnMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50UXQuY3BwCmluZGV4IGI0YTJiZjAuLjhjNzM1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtNjcs
NyArNjcsNiBAQAogI2luY2x1ZGUgIlFXZWJQYWdlQWRhcHRlci5oIgogI2luY2x1ZGUgIlFXZWJQ
YWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUXRQbHVnaW5XaWRnZXRBZGFwdGVyLmgiCi0jaW5jbHVk
ZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggODM4NDhjMi4uYWJhNzRlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cApAQCAtNzYsNyArNzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luUGFja2FnZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUG9saWN5
Q2hlY2tlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyUGFydC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NjcmlwdENvbnRyb2xsZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCmluZGV4IDQ0M2Zk
ZTcuLjg1M2IxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcApAQCAtMzYsNyArMzYsNyBA
QAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgogI2luY2x1
ZGUgIlBvbGljeUNoZWNrZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAi
UmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU3lzdGVtSW5mby5oIgogI2luY2x1ZGUgIldlYktp
dFZlcnNpb24uaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211388</attachid>
            <date>2013-09-11 19:32:47 -0700</date>
            <delta_ts>2013-09-11 20:23:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121200-3.diff</filename>
            <type>text/plain</type>
            <size>64335</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">Y29tbWl0IDcwMzMyYzBhNzIyMDg2OTY2MGQ1ZWZiNWM0YzNmYmIxY2FlNDNkM2EKQXV0aG9yOiBB
bmRyZWFzIEtsaW5nIDxha2xpbmdAYXBwbGUuY29tPgpEYXRlOiAgIFRodSBTZXAgMTIgMDM6MDE6
MjcgMjAxMyArMDEwMAoKICAgIDEyMTIwMAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODA0Nzcz
YS4uNjY4NDM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxNTksNyArMjE1OSw2IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNw
cAogICAgIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlck9i
amVjdENoaWxkTGlzdC5jcHAKLSAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKICAgICByZW5k
ZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAog
ICAgIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyMWZjZi4uZjQ1
YjZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA5LTExICBBbmRyZWFzIEts
aW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSBSZW5kZXJQYXJ0IGludG8g
UmVuZGVyV2lkZ2V0LgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTIxMjAwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUg
UmVuZGVyUGFydCBjbGFzcyBhbmQgbW92ZSBpdHMgZnVuY3Rpb25hbGl0eSBpbnRvIFJlbmRlcldp
ZGdldC4KKyAgICAgICAgSXQgd2FzIGFjdGluZyBhcyBhIHBvaW50bGVzcyBleHRyYSBsYXllciBi
ZXR3ZWVuIFJlbmRlcldpZGdldCBhbmQgcmVuZGVyZXJzCisgICAgICAgIGZvciBlbWJlZGRlZCBv
YmplY3RzLCBmcmFtZXMgYW5kIGlmcmFtZXMuCisKIDIwMTMtMDktMTEgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtIEFQSV0gVXBk
YXRpbmcgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IgdG8gbWF0Y2ggdGhlIHNwZWMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDc1MmQ0ZWIuLmZhNzRjZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNDQ3Miw4ICs0NDcyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT3ZlcmZsb3cuaCBcCi0JU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clBhcnQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclF1b3RlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAxYWUzOWNlLi5lN2Y5YWFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTExOTcsNyArMTE5Nyw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgXAotICAg
IHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclJlZ2lvbi5jcHAgXApAQCAtMjQ2Niw3ICsyNDY1LDYgQEAgSEVBREVSUyArPSBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
ck9iamVjdENoaWxkTGlzdC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggXAotICAg
IHJlbmRlcmluZy9SZW5kZXJQYXJ0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5o
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyUXVvdGUuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1NmE5NzIwLi43NDg5MDMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzksNyArNzksNiBAQCBfX1pON1dlYkNvcmUxMEpTRG9jdW1l
bnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3Jt
TW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNy
ZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJkTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2lu
ZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2Fy
ZEVFRWIKIF9fWk43V2ViQ29yZTEwUGFzdGVib2FyZDE0d3JpdGVQbGFpblRleHRFUktOM1dURjZT
dHJpbmdFTlMwXzE4U21hcnRSZXBsYWNlT3B0aW9uRQotX19aTjdXZWJDb3JlMTBSZW5kZXJQYXJ0
OXNldFdpZGdldEVOM1dURjEwUGFzc1JlZlB0cklOU182V2lkZ2V0RUVFCiBfX1pON1dlYkNvcmUx
MFJlbmRlclZpZXcxMGNvbXBvc2l0b3JFdgogX19aTjdXZWJDb3JlMTBSZW5kZXJWaWV3N2hpdFRl
c3RFUktOU18xNEhpdFRlc3RSZXF1ZXN0RVJOU18xM0hpdFRlc3RSZXN1bHRFCiBfX1pON1dlYkNv
cmUxMFNjcm9sbFZpZXcxNnNldFBhcmVudFZpc2libGVFYgpAQCAtMjExLDYgKzIxMCw3IEBAIF9f
Wk43V2ViQ29yZTEyUHJpbnRDb250ZXh0QzFFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTEyUHJp
bnRDb250ZXh0RDFFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNnBhaW50aW5nUm9vdFJl
Y3RFUk5TXzEwTGF5b3V0UmVjdEUKIF9fWk43V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTlzY3JvbGxS
ZWN0VG9WaXNpYmxlRVJLTlNfMTBMYXlvdXRSZWN0RVJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZf
CitfX1pON1dlYkNvcmUxMlJlbmRlcldpZGdldDlzZXRXaWRnZXRFTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfNldpZGdldEVFRQogX19aTjdXZWJDb3JlMTJTUUxSZXN1bHRSb3dFCiBfX1pON1dlYkNvcmUx
MlNoYXJlZEJ1ZmZlcjEwd3JhcENGRGF0YUVQSzhfX0NGRGF0YQogX19aTjdXZWJDb3JlMTJTaGFy
ZWRCdWZmZXIxMHdyYXBOU0RhdGFFUDZOU0RhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDMzZTM0ZmIuLmEwYWY2MjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTAyNTks
MjAgKzEwMjU5LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcUmVuZGVyUGFydC5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclByb2dyZXNzLmNwcCI+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMDA1OCw3ICsyMDA0NCw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyTmFtZWRGbG93VGhyZWFk
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0
Q2hpbGRMaXN0LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVu
ZGVyUGFydC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRl
clByb2dyZXNzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVu
ZGVyUXVvdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5k
ZXJSZWdpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlOThiZDZmLi41ZTU0NDc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCkBAIC0yNjM3LDkgKzI2MzcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cmVuZGVyaW5nXFJlbmRlck9iamVjdENoaWxkTGlzdC5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5k
ZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHJlbmRlcmluZ1xSZW5kZXJQYXJ0LmNwcCI+Ci0gICAgICA8RmlsdGVyPnJlbmRlcmluZzwv
RmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVu
ZGVyaW5nXFJlbmRlclByb2dyZXNzLmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtOTYyNCw5ICs5NjIxLDYgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJPYmplY3RDaGlsZExpc3QuaCI+CiAgICAg
ICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclBhcnQuaCI+Ci0gICAgICA8RmlsdGVy
PnJlbmRlcmluZzwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclByb2dyZXNzLmgiPgogICAgICAgPEZpbHRlcj5yZW5k
ZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNDlmNDQ5Li45MDJhZmE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNzYyLDEyICszNzYyLDEwIEBACiAJCUE4NzFERTJDMEExNTJBQzgwMEIxMkE2OCAvKiBI
VE1MQm9keUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4NzFERTIwMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCAqLzsg
fTsKIAkJQTg3MURFMkQwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxIZWFkRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURFMjEwQTE1MkFD
ODAwQjEyQTY4IC8qIEhUTUxIZWFkRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFERTJFMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1M
RnJhbWVTZXRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NzFERTIyMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MRnJhbWVTZXRFbGVtZW50
LmNwcCAqLzsgfTsKLQkJQTg3MURFRDAwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURFQzgw
QTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuY3BwICovOyB9OwogCQlBODcxREVEMTBBMTUz
MEM3MDBCMTJBNjggLyogUmVuZGVyRnJhbWVTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERUM5MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJG
cmFtZVNldC5oICovOyB9OwogCQlBODcxREVEMjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyRnJh
bWVTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTg3MURFQ0EwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lU2V0LmNwcCAqLzsgfTsKIAkJ
QTg3MURFRDMwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDQjBBMTUzMEM3MDBCMTJBNjgg
LyogUmVuZGVyRnJhbWUuaCAqLzsgfTsKIAkJQTg3MURFRDQwQTE1MzBDNzAwQjEyQTY4IC8qIFJl
bmRlckZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NzFERUNDMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZS5jcHAgKi87IH07Ci0J
CUE4NzFERUQ3MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDRjBBMTUzMEM3MDBCMTJBNjgg
LyogUmVuZGVyUGFydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE4NzFERkUyMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREZERTBB
MTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuY3BwICovOyB9OwogCQlBODcxREZFMzBB
MTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERkRGMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5k
ZXJSZXBsYWNlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE4NzFERkU0MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERkUwMEExNTM3NkIw
MEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTAzOTAsMTIgKzEwMzg4LDEwIEBACiAJCUE4NzFERTIwMEEx
NTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxCb2R5RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODcxREUyMTBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEhlYWRFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MSGVhZEVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MURFMjIwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxGcmFtZVNldEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODcx
REVDODBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUGFydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4NzFERUM5MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZVNldC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRnJhbWVTZXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MURFQ0EwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRl
ckZyYW1lU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJGcmFtZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERUNCMEEx
NTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3
MURFQ0MwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4NzFERUNGMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJQYXJ0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERkRFMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBs
YWNlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUmVw
bGFjZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxREZERjBBMTUzNzZC
MDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlclJlcGxhY2VkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
NzFERkUwMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcldpZGdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjA0ODksOCArMjA0ODUsNiBAQAogCQkJCUJDNjBFRkI2MEYzM0EwRTcwMDgxMkE5
MyAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwICovLAogCQkJCUJDMkNDOERFMEYzMjg4MTAw
MEE5REYyNiAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuaCAqLywKIAkJCQlCQ0ZBOTMwNzEwMzMz
MTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCAqLywKLQkJCQlBODcxREVDODBBMTUzMEM3
MDBCMTJBNjggLyogUmVuZGVyUGFydC5jcHAgKi8sCi0JCQkJQTg3MURFQ0YwQTE1MzBDNzAwQjEy
QTY4IC8qIFJlbmRlclBhcnQuaCAqLywKIAkJCQlBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyog
UmVuZGVyUHJvZ3Jlc3MuY3BwICovLAogCQkJCUE0M0JGNTlCMTE0OTI5MjgwMEM2NDNDQSAvKiBS
ZW5kZXJQcm9ncmVzcy5oICovLAogCQkJCTVBNTc0RjIyMTMxREI5MzkwMDQ3MUI4OCAvKiBSZW5k
ZXJRdW90ZS5jcHAgKi8sCkBAIC0yMzYyOSw3ICsyMzYyMyw2IEBACiAJCQkJQkNFQTQ4ODAwOTdE
OTMwMjAwOTRDOUU0IC8qIFJlbmRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyQ0M4
REYwRjMyODgxMDAwQTlERjI2IC8qIFJlbmRlck9iamVjdENoaWxkTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNGQTkzMDgxMDMzMzE5MzAwN0IyNUQxIC8qIFJlbmRlck92ZXJmbG93LmggaW4g
SGVhZGVycyAqLywKLQkJCQlBODcxREVENzBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTQzQkY1OUQxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclBy
b2dyZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QTU3NEYyNTEzMURCOTM5MDA0NzFCODggLyog
UmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQ3MEFENjU4MTNFMTM0MkIwMDVCNTBC
NCAvKiBSZW5kZXJSZWdpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjksNyArMjY4MjIsNiBA
QAogCQkJCTFBM0ZGOUMzMTUyNjUzNTkwMDIyODhBMSAvKiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFQTQ4N0YwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRl
ck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwRUZCNzBGMzNBMEU3MDA4MTJBOTMg
LyogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4NzFERUQw
MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE0
M0JGNTlDMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1QTU3NEYyNDEzMURCOTM5MDA0NzFCODggLyogUmVuZGVyUXVvdGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjVCN0ExNzAxN0MxMEFBODAwRTRBQTBBIC8qIEVsZW1lbnREYXRhLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAppbmRleCA3OGQ2OWI0Li4xMDJmZmExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNs
dWRlICJXaWRnZXQuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDk5MTg2Yzgu
LmYwMjg5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTY4LDcgKzY4LDYgQEAK
ICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0Q29tbWFuZC5o
IgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyZWRQb3NpdGlvbi5o
IgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCmluZGV4IGY5MTMzODEuLmJiMTM5MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCkBAIC04OSw3ICs4OSw3IEBAIFJl
bmRlcldpZGdldCogSFRNTEFwcGxldEVsZW1lbnQ6OnJlbmRlcldpZGdldEZvckpTQmluZGluZ3Mo
KSBjb25zdAogICAgICAgICByZXR1cm4gMDsKIAogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAgcmV0dXJuIHJlbmRlclBhcnQoKTsKKyAg
ICByZXR1cm4gcmVuZGVyV2lkZ2V0KCk7CiB9CiAKIHZvaWQgSFRNTEFwcGxldEVsZW1lbnQ6OnVw
ZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbiBwbHVnaW5DcmVhdGlvbk9wdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggOWNkNjFm
NS4uMDQ0ZjdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVt
ZW50QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFz
ZS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAj
aW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0
LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmRpZE5v
dGlmeVN1YnRyZWVJbnNlcnRpb25zKENvbnRhaW5lck5vZGUqKQogCiB2b2lkIEhUTUxGcmFtZUVs
ZW1lbnRCYXNlOjpkaWRBdHRhY2hSZW5kZXJlcnMoKQogewotICAgIGlmIChSZW5kZXJQYXJ0KiBw
YXJ0ID0gcmVuZGVyUGFydCgpKSB7CisgICAgaWYgKFJlbmRlcldpZGdldCogcGFydCA9IHJlbmRl
cldpZGdldCgpKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBjb250ZW50RnJhbWUoKSkK
ICAgICAgICAgICAgIHBhcnQtPnNldFdpZGdldChmcmFtZS0+dmlldygpKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAKaW5kZXggODcwNWNm
My4uMjYzNDY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25l
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJQ
YXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAtNDIsMTMgKzQyLDEzIEBAIEhUTUxGcmFtZU93
bmVyRWxlbWVudDo6SFRNTEZyYW1lT3duZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtCiB7CiB9CiAKLVJlbmRlclBhcnQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6
cmVuZGVyUGFydCgpIGNvbnN0CitSZW5kZXJXaWRnZXQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6
cmVuZGVyV2lkZ2V0KCkgY29uc3QKIHsKICAgICAvLyBIVE1MT2JqZWN0RWxlbWVudCBhbmQgSFRN
TEVtYmVkRWxlbWVudCBtYXkgcmV0dXJuIGFyYml0cmFyeSByZW5kZXJlcnMKICAgICAvLyB3aGVu
IHVzaW5nIGZhbGxiYWNrIGNvbnRlbnQuCi0gICAgaWYgKCFyZW5kZXJlcigpIHx8ICFyZW5kZXJl
cigpLT5pc1JlbmRlclBhcnQoKSkKKyAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIXJlbmRlcmVyKCkt
PmlzV2lkZ2V0KCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB0b1JlbmRlclBhcnQo
cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIHRvUmVuZGVyV2lkZ2V0KHJlbmRlcmVyKCkpOwogfQog
CiB2b2lkIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6c2V0Q29udGVudEZyYW1lKEZyYW1lKiBmcmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oCmluZGV4IDY2
ZjViOTg2Li41ZGRiNjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZU93bmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJF
bGVtZW50LmgKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
T01XaW5kb3c7CiBjbGFzcyBGcmFtZTsKLWNsYXNzIFJlbmRlclBhcnQ7CitjbGFzcyBSZW5kZXJX
aWRnZXQ7CiAKICNpZiBFTkFCTEUoU1ZHKQogY2xhc3MgU1ZHRG9jdW1lbnQ7CkBAIC00NiwxMCAr
NDYsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNjb25uZWN0Q29udGVudEZyYW1lKCk7CiAK
LSAgICAvLyBNb3N0IHN1YmNsYXNzZXMgdXNlIFJlbmRlclBhcnQgKGVpdGhlciBSZW5kZXJFbWJl
ZGRlZE9iamVjdCBvciBSZW5kZXJJRnJhbWUpCisgICAgLy8gTW9zdCBzdWJjbGFzc2VzIHVzZSBS
ZW5kZXJXaWRnZXQgKGVpdGhlciBSZW5kZXJFbWJlZGRlZE9iamVjdCBvciBSZW5kZXJJRnJhbWUp
CiAgICAgLy8gZXhjZXB0IGZvciBIVE1MT2JqZWN0RWxlbWVudCBhbmQgSFRNTEVtYmVkRWxlbWVu
dCB3aGljaCBtYXkgcmV0dXJuIGFueQogICAgIC8vIFJlbmRlck9iamVjdCB3aGVuIHVzaW5nIGZh
bGxiYWNrIGNvbnRlbnQuCi0gICAgUmVuZGVyUGFydCogcmVuZGVyUGFydCgpIGNvbnN0OworICAg
IFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoU1ZHKQog
ICAgIFNWR0RvY3VtZW50KiBnZXRTVkdEb2N1bWVudChFeGNlcHRpb25Db2RlJikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IDllOTE2MWIuLjE5
YWUyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC04
MCw3ICs4MCw3IEBAIFBhc3NSZWZQdHI8SFRNTE9iamVjdEVsZW1lbnQ+IEhUTUxPYmplY3RFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiBSZW5kZXJXaWRnZXQqIEhUTUxP
YmplY3RFbGVtZW50OjpyZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCkgY29uc3QKIHsKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotICAgIHJl
dHVybiByZW5kZXJQYXJ0KCk7IC8vIFRoaXMgd2lsbCByZXR1cm4gMCBpZiB0aGUgcmVuZGVyZXIg
aXMgbm90IGEgUmVuZGVyUGFydC4KKyAgICByZXR1cm4gcmVuZGVyV2lkZ2V0KCk7IC8vIFRoaXMg
d2lsbCByZXR1cm4gMCBpZiB0aGUgcmVuZGVyZXIgaXMgbm90IGEgUmVuZGVyV2lkZ2V0LgogfQog
CiBib29sIEhUTUxPYmplY3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggZWExNmU3YS4uZjZjYjZlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0yMTEsNyArMjEx
LDcgQEAgUmVuZGVyT2JqZWN0KiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclMKIAogICAgIC8vIEZhbGxiYWNrIGNvbnRlbnQg
YnJlYWtzIHRoZSBET00tPlJlbmRlcmVyIGNsYXNzIHJlbGF0aW9uc2hpcCBvZiB0aGlzCiAgICAg
Ly8gY2xhc3MgYW5kIGFsbCBzdXBlcmNsYXNzZXMgYmVjYXVzZSBjcmVhdGVPYmplY3Qgd29uJ3Qg
bmVjZXNzYXJpbHkKLSAgICAvLyByZXR1cm4gYSBSZW5kZXJFbWJlZGRlZE9iamVjdCwgUmVuZGVy
UGFydCBvciBldmVuIFJlbmRlcldpZGdldC4KKyAgICAvLyByZXR1cm4gYSBSZW5kZXJFbWJlZGRl
ZE9iamVjdCBvciBSZW5kZXJXaWRnZXQuCiAgICAgaWYgKHVzZUZhbGxiYWNrQ29udGVudCgpKQog
ICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QodGhpcywgc3R5bGUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IGEwMDU4MmIuLmQ4MzZi
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xMjAsNyArMTIw
LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0
ZXIqLCBjb25zdCBjaGFyKiwgc2l6ZV90KQogICAgIC8vIGNhbiBzeW5jaHJvbm91c2x5IHJlZGly
ZWN0IGRhdGEgdG8gdGhlIHBsdWdpbi4KICAgICBmcmFtZS0+dmlldygpLT5mbHVzaEFueVBlbmRp
bmdQb3N0TGF5b3V0VGFza3MoKTsKIAotICAgIGlmIChSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1f
ZW1iZWRFbGVtZW50LT5yZW5kZXJQYXJ0KCkpIHsKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiByZW5k
ZXJlciA9IG1fZW1iZWRFbGVtZW50LT5yZW5kZXJXaWRnZXQoKSkgewogICAgICAgICBpZiAoV2lk
Z2V0KiB3aWRnZXQgPSByZW5kZXJlci0+d2lkZ2V0KCkpIHsKICAgICAgICAgICAgIGZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5yZWRpcmVjdERhdGFUb1BsdWdpbih3aWRnZXQpOwogICAgICAgICAg
ICAgLy8gSW4gYSBwbHVnaW4gZG9jdW1lbnQsIHRoZSBtYWluIHJlc291cmNlIGlzIHRoZSBwbHVn
aW4uIElmIHdlIGhhdmUgYSBudWxsIHdpZGdldCwgdGhhdCBtZWFucwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDUwNWEz
NTEuLjAxZDU5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTYxLDcgKzYxLDcgQEAKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgorI2lu
Y2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTEzNzUsOSArMTM3NSw5IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudDo6dXBkYXRlU2l6ZXMoYm9vbCBmb3JjZVVwZGF0ZSkKICAgICAgICAgdmlkZW9Cb3ggPSBt
X3RleHRUcmFja1JlcHJlc2VudGF0aW9uLT5ib3VuZHMoKTsKICAgICBlbHNlIHsKICNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICAgICAgaWYgKCFtZWRpYUVsZW1lbnQtPnJl
bmRlcmVyKCkgfHwgIW1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+aXNSZW5kZXJQYXJ0KCkpCisg
ICAgICAgIGlmICghbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpIHx8ICFtZWRpYUVsZW1lbnQtPnJl
bmRlcmVyKCktPmlzUmVuZGVyV2lkZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IHZpZGVvQm94ID0gcGl4ZWxTbmFwcGVkSW50UmVjdCh0b1JlbmRlclBhcnQobWVkaWFFbGVtZW50
LT5yZW5kZXJlcigpKS0+Y29udGVudEJveFJlY3QoKSk7CisgICAgICAgIHZpZGVvQm94ID0gcGl4
ZWxTbmFwcGVkSW50UmVjdCh0b1JlbmRlcldpZGdldChtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkp
LT5jb250ZW50Qm94UmVjdCgpKTsKICNlbHNlCiAgICAgICAgIGlmICghbWVkaWFFbGVtZW50LT5y
ZW5kZXJlcigpIHx8ICFtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmlzVmlkZW8oKSkKICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFt
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDQ1NTlkMjcuLjhmOGJjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9h
ZGVyLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RP
YmplY3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTCiAgICAg
fQogCiAgICAgLy8gSWYgdGhlIHBsdWctaW4gZWxlbWVudCBhbHJlYWR5IGNvbnRhaW5zIGEgc3Vi
ZnJhbWUsIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUgd2lsbCByZS11c2UgaXQuIE90aGVyd2lzZSwK
LSAgICAvLyBpdCB3aWxsIGNyZWF0ZSBhIG5ldyBmcmFtZSBhbmQgc2V0IGl0IGFzIHRoZSBSZW5k
ZXJQYXJ0J3Mgd2lkZ2V0LCBjYXVzaW5nIHdoYXQgd2FzIHByZXZpb3VzbHkgCisgICAgLy8gaXQg
d2lsbCBjcmVhdGUgYSBuZXcgZnJhbWUgYW5kIHNldCBpdCBhcyB0aGUgUmVuZGVyV2lkZ2V0J3Mg
V2lkZ2V0LCBjYXVzaW5nIHdoYXQgd2FzIHByZXZpb3VzbHkgCiAgICAgLy8gaW4gdGhlIHdpZGdl
dCB0byBiZSB0b3JuIGRvd24uCiAgICAgcmV0dXJuIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUob3du
ZXJFbGVtZW50LCBjb21wbGV0ZWRVUkwsIGZyYW1lTmFtZSwgdHJ1ZSwgdHJ1ZSk7CiB9CkBAIC0y
NTUsNyArMjU1LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpsb2FkTWVk
aWFQbGF5ZXJQcm94eVBsdWdpbihOb2RlKiBub2RlLCBjb25zdAogICAgICAgICByZXR1cm4gMDsK
IAogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvSFRNTE1lZGlhRWxlbWVu
dChub2RlKTsKLSAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IHRvUmVuZGVyUGFydChub2RlLT5y
ZW5kZXJlcigpKTsKKyAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcmVyID0gdG9SZW5kZXJXaWRnZXQo
bm9kZS0+cmVuZGVyZXIoKSk7CiAgICAgSW50U2l6ZSBzaXplOwogCiAgICAgaWYgKHJlbmRlcmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCAwYWM0NGJhLi5mNWUyN2Q1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcApAQCAtNzUsMTEgKzc1LDExIEBACiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKLSNpbmNs
dWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC01NjMsNyArNTYzLDcgQEAgUmVuZGVyVmlldyogRnJh
bWU6OmNvbnRlbnRSZW5kZXJlcigpIGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1
bWVudCgpLT5yZW5kZXJWaWV3KCkgOiAwOwogfQogCi1SZW5kZXJQYXJ0KiBGcmFtZTo6b3duZXJS
ZW5kZXJlcigpIGNvbnN0CitSZW5kZXJXaWRnZXQqIEZyYW1lOjpvd25lclJlbmRlcmVyKCkgY29u
c3QKIHsKICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IG1fb3duZXJF
bGVtZW50OwogICAgIGlmICghb3duZXJFbGVtZW50KQpAQCAtNTc1LDkgKzU3NSw5IEBAIFJlbmRl
clBhcnQqIEZyYW1lOjpvd25lclJlbmRlcmVyKCkgY29uc3QKICAgICAvLyB0aGF0IGl0IGhhcyBz
dGFydGVkIGJ1dCBjYW5jZWxlZCwgdGhlbiB0aGlzIGNhbiB0dXJuIGludG8gYW4gQVNTRVJUCiAg
ICAgLy8gc2luY2UgbV9vd25lckVsZW1lbnQgd291bGQgYmUgMCB3aGVuIHRoZSBsb2FkIGlzIGNh
bmNlbGVkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODU4NQotICAgIGlmICghb2JqZWN0LT5pc1JlbmRlclBhcnQoKSkKKyAgICBpZiAoIW9iamVjdC0+
aXNXaWRnZXQoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRvUmVuZGVyUGFydChv
YmplY3QpOworICAgIHJldHVybiB0b1JlbmRlcldpZGdldChvYmplY3QpOwogfQogCiBGcmFtZSog
RnJhbWU6OmZyYW1lRm9yV2lkZ2V0KGNvbnN0IFdpZGdldCogd2lkZ2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5o
CmluZGV4IDQ3MmI2N2QuLjcwMzA2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTY3LDggKzY3LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUmFuZ2U7
CiAgICAgY2xhc3MgUmVndWxhckV4cHJlc3Npb247Ci0gICAgY2xhc3MgUmVuZGVyUGFydDsKICAg
ICBjbGFzcyBSZW5kZXJWaWV3OworICAgIGNsYXNzIFJlbmRlcldpZGdldDsKICAgICBjbGFzcyBT
Y3JpcHRDb250cm9sbGVyOwogICAgIGNsYXNzIFNldHRpbmdzOwogICAgIGNsYXNzIFRpbGVkQmFj
a2luZ1N0b3JlOwpAQCAtMTI1LDcgKzEyNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0KCk7CiAgICAgICAgIAogICAgICAgICBSZW5kZXJW
aWV3KiBjb250ZW50UmVuZGVyZXIoKSBjb25zdDsgLy8gUm9vdCBvZiB0aGUgcmVuZGVyIHRyZWUg
Zm9yIHRoZSBkb2N1bWVudCBjb250YWluZWQgaW4gdGhpcyBmcmFtZS4KLSAgICAgICAgUmVuZGVy
UGFydCogb3duZXJSZW5kZXJlcigpIGNvbnN0OyAvLyBSZW5kZXJlciBmb3IgdGhlIGVsZW1lbnQg
dGhhdCBjb250YWlucyB0aGlzIGZyYW1lLgorICAgICAgICBSZW5kZXJXaWRnZXQqIG93bmVyUmVu
ZGVyZXIoKSBjb25zdDsgLy8gUmVuZGVyZXIgZm9yIHRoZSBlbGVtZW50IHRoYXQgY29udGFpbnMg
dGhpcyBmcmFtZS4KIAogICAgIC8vID09PT09PT09IEFsbCBwdWJsaWMgZnVuY3Rpb25zIGJlbG93
IHRoaXMgcG9pbnQgYXJlIGNhbmRpZGF0ZXMgdG8gbW92ZSBvdXQgb2YgRnJhbWUgaW50byBhbm90
aGVyIGNsYXNzLiA9PT09PT09PQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNDBj
ZDYzMy4uZjEwNDFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNjMsMTIgKzYz
LDEyIEBACiAjaW5jbHVkZSAiUmVuZGVySUZyYW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xs
YmFyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0Lmgi
CiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGlu
YXRvci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yNDcsNyArMjQ3LDkgQEAgRnJhbWVW
aWV3Ojp+RnJhbWVWaWV3KCkKICAgICBBU1NFUlQobV9zY2hlZHVsZWRFdmVudHMuaXNFbXB0eSgp
KTsKIAogICAgIEFTU0VSVChmcmFtZSgpLnZpZXcoKSAhPSB0aGlzIHx8ICFmcmFtZSgpLmNvbnRl
bnRSZW5kZXJlcigpKTsKLSAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJS
ZW5kZXJlcigpOworCisgICAgLy8gRklYTUU6IEhvdyBjb3VsZCB0aGlzIGV2ZXIgaGFwcGVuIHdo
ZW4gUmVuZGVyV2lkZ2V0IHJldGFpbnMgdGhlIFdpZGdldCE/CisgICAgUmVuZGVyV2lkZ2V0KiBy
ZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwogICAgIGlmIChyZW5kZXJlciAmJiBy
ZW5kZXJlci0+d2lkZ2V0KCkgPT0gdGhpcykKICAgICAgICAgcmVuZGVyZXItPnNldFdpZGdldCgw
KTsKIH0KQEAgLTQwMiw3ICs0MDQsNyBAQCB2b2lkIEZyYW1lVmlldzo6Y2xlYXIoKQogICAgIAog
ICAgIHJlc2V0KCk7CiAKLSAgICBpZiAoUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93
bmVyUmVuZGVyZXIoKSkKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiByZW5kZXJlciA9IGZyYW1lKCku
b3duZXJSZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlci0+dmlld0NsZWFyZWQoKTsKIAogICAg
IHNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKHRydWUpOwpAQCAtNDI2LDcgKzQyOCw3IEBAIHZvaWQg
RnJhbWVWaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVy
UmVuZGVyZXIoKTsKKyAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJl
bmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC01NTMs
NyArNTU1LDcgQEAgUGFzc1JlZlB0cjxTY3JvbGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xs
YmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW8KICAgICAgICAgcmV0dXJuIFJlbmRl
clNjcm9sbGJhcjo6Y3JlYXRlQ3VzdG9tU2Nyb2xsYmFyKHRoaXMsIG9yaWVudGF0aW9uLCBkb2NF
bGVtZW50KTsKICAgICAgICAgCiAgICAgLy8gSWYgd2UgaGF2ZSBhbiBvd25pbmcgaWZyYW1lL2Zy
YW1lIGVsZW1lbnQsIHRoZW4gaXQgY2FuIHNldCB0aGUgY3VzdG9tIHNjcm9sbGJhciBhbHNvLgot
ICAgIFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsK
KyAgICBSZW5kZXJXaWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIo
KTsKICAgICBpZiAoZnJhbWVSZW5kZXJlciAmJiBmcmFtZVJlbmRlcmVyLT5zdHlsZSgpLT5oYXNQ
c2V1ZG9TdHlsZShTQ1JPTExCQVIpKQogICAgICAgICByZXR1cm4gUmVuZGVyU2Nyb2xsYmFyOjpj
cmVhdGVDdXN0b21TY3JvbGxiYXIodGhpcywgb3JpZW50YXRpb24sIDAsICZmcmFtZSgpKTsKICAg
ICAKQEAgLTEwNjUsNyArMTA2Nyw3IEBAIFJlbmRlck9iamVjdCogRnJhbWVWaWV3OjpsYXlvdXRS
b290KGJvb2wgb25seUR1cmluZ0xheW91dCkgY29uc3QKIGlubGluZSB2b2lkIEZyYW1lVmlldzo6
Zm9yY2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVkZWQoKQogewogI2lmIEVOQUJMRShTVkcpCi0gICAg
UmVuZGVyUGFydCogb3duZXJSZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOworICAg
IFJlbmRlcldpZGdldCogb3duZXJSZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwog
ICAgIGlmICghb3duZXJSZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzMyLDcgKzE3
MzQsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0KQogCiAgICAgcmVwYWludFNsb3dSZXBhaW50T2JqZWN0cygpOwogCi0g
ICAgaWYgKFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIo
KSkgeworICAgIGlmIChSZW5kZXJXaWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVy
UmVuZGVyZXIoKSkgewogICAgICAgICBpZiAoaXNFbmNsb3NlZEluQ29tcG9zaXRpbmdMYXllcigp
KSB7CiAgICAgICAgICAgICBMYXlvdXRSZWN0IHJlY3QoZnJhbWVSZW5kZXJlci0+Ym9yZGVyTGVm
dCgpICsgZnJhbWVSZW5kZXJlci0+cGFkZGluZ0xlZnQoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcmFtZVJlbmRlcmVyLT5ib3JkZXJUb3AoKSArIGZyYW1lUmVuZGVyZXItPnBhZGRp
bmdUb3AoKSwKQEAgLTMxMjcsNyArMzEyOSw3IEBAIFNjcm9sbGFibGVBcmVhKiBGcmFtZVZpZXc6
OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QKIAogSW50UmVjdCBGcmFtZVZpZXc6OnNj
cm9sbGFibGVBcmVhQm91bmRpbmdCb3goKSBjb25zdAogewotICAgIFJlbmRlclBhcnQqIG93bmVy
UmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKKyAgICBSZW5kZXJXaWRnZXQqIG93
bmVyUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICBpZiAoIW93bmVyUmVu
ZGVyZXIpCiAgICAgICAgIHJldHVybiBmcmFtZVJlY3QoKTsKIApAQCAtMzI4OSw3ICszMjkxLDcg
QEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZVNjcm9sbENvcm5lcigpCiAgICAgICAgIAogICAgICAg
ICBpZiAoIWNvcm5lclN0eWxlKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIG93bmlu
ZyBpZnJhbWUvZnJhbWUgZWxlbWVudCwgdGhlbiBpdCBjYW4gc2V0IHRoZSBjdXN0b20gc2Nyb2xs
YmFyIGFsc28uCi0gICAgICAgICAgICBpZiAoUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgp
Lm93bmVyUmVuZGVyZXIoKSkKKyAgICAgICAgICAgIGlmIChSZW5kZXJXaWRnZXQqIHJlbmRlcmVy
ID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCkpCiAgICAgICAgICAgICAgICAgY29ybmVyU3R5bGUg
PSByZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoU0NS
T0xMQkFSX0NPUk5FUiksIHJlbmRlcmVyLT5zdHlsZSgpKTsKICAgICAgICAgfQogICAgIH0KQEAg
LTM0MTEsNyArMzQxMyw3IEBAIGJvb2wgRnJhbWVWaWV3Ojppc0luQ2hpbGRGcmFtZVdpdGhGcmFt
ZUZsYXR0ZW5pbmcoKSBjb25zdAogICAgIC8vIEZyYW1lIGZsYXR0ZW5pbmcgYXBwbGllcyB3aGVu
IHRoZSBvd25lciBlbGVtZW50IGlzIGVpdGhlciBpbiBhIGZyYW1lc2V0IG9yCiAgICAgLy8gYW4g
aWZyYW1lIHdpdGggZmxhdHRlbmluZyBwYXJhbWV0ZXJzLgogICAgIGlmIChmcmFtZSgpLm93bmVy
RWxlbWVudCgpLT5oYXNUYWdOYW1lKGlmcmFtZVRhZykpIHsKLSAgICAgICAgUmVuZGVySUZyYW1l
KiBpZnJhbWVSZW5kZXJlciA9IHRvUmVuZGVySUZyYW1lKGZyYW1lKCkub3duZXJFbGVtZW50KCkt
PnJlbmRlclBhcnQoKSk7CisgICAgICAgIFJlbmRlcklGcmFtZSogaWZyYW1lUmVuZGVyZXIgPSB0
b1JlbmRlcklGcmFtZShmcmFtZSgpLm93bmVyRWxlbWVudCgpLT5yZW5kZXJXaWRnZXQoKSk7CiAg
ICAgICAgIGlmIChpZnJhbWVSZW5kZXJlci0+ZmxhdHRlbkZyYW1lKCkgfHwgaWZyYW1lUmVuZGVy
ZXItPmlzU2VhbWxlc3MoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTM5
MDUsNyArMzkwNyw3IEBAIEludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5nVmll
dyhjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0CiAgICAgICAgIGlmIChwYXJlbnRTY3Jv
bGxWaWV3LT5pc0ZyYW1lVmlldygpKSB7CiAgICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBh
cmVudFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRTY3JvbGxWaWV3KTsKICAgICAgICAgICAgIC8v
IEdldCBvdXIgcmVuZGVyZXIgaW4gdGhlIHBhcmVudCB2aWV3Ci0gICAgICAgICAgICBSZW5kZXJQ
YXJ0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOworICAgICAgICAgICAgUmVu
ZGVyV2lkZ2V0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwogICAgICAgICAg
ICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxSZWN0OwogICAg
ICAgICAgICAgICAgIApAQCAtMzkyOSw3ICszOTMxLDcgQEAgSW50UmVjdCBGcmFtZVZpZXc6OmNv
bnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QK
ICAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBh
cmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAgICAgICAvLyBHZXQgb3VyIHJlbmRlcmVyIGluIHRo
ZSBwYXJlbnQgdmlldwotICAgICAgICAgICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgp
Lm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAgICAgIFJlbmRlcldpZGdldCogcmVuZGVyZXIgPSBm
cmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhcmVudFJlY3Q7CiAKQEAgLTM5NTMsNyArMzk1NSw3IEBAIElu
dFBvaW50IEZyYW1lVmlldzo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQm
IGxvY2FsUG9pbnQpIGNvbnN0CiAgICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBhcmVudFZp
ZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRTY3JvbGxWaWV3KTsKIAogICAgICAgICAgICAgLy8gR2V0
IG91ciByZW5kZXJlciBpbiB0aGUgcGFyZW50IHZpZXcKLSAgICAgICAgICAgIFJlbmRlclBhcnQq
IHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCk7CisgICAgICAgICAgICBSZW5kZXJX
aWRnZXQqIHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCk7CiAgICAgICAgICAgICBp
ZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbFBvaW50OwogICAgICAg
ICAgICAgICAgIApAQCAtMzk3OCw3ICszOTgwLDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252
ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QK
ICAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBh
cmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAgICAgICAvLyBHZXQgb3VyIHJlbmRlcmVyIGluIHRo
ZSBwYXJlbnQgdmlldwotICAgICAgICAgICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgp
Lm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAgICAgIFJlbmRlcldpZGdldCogcmVuZGVyZXIgPSBm
cmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhcmVudFBvaW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCAyODVlMzk1Li41M2ZiZjg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgY29uc3QgQ29sb3ImIHVuYXZhaWxhYmxl
UGx1Z2luQm9yZGVyQ29sb3IoKQogfQogCiBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UmVuZGVyRW1i
ZWRkZWRPYmplY3QoRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlclBhcnQoZWxlbWVudCkK
KyAgICA6IFJlbmRlcldpZGdldChlbGVtZW50KQogICAgICwgbV9oYXNGYWxsYmFja0NvbnRlbnQo
ZmFsc2UpCiAgICAgLCBtX2lzUGx1Z2luVW5hdmFpbGFibGUoZmFsc2UpCiAgICAgLCBtX2lzVW5h
dmFpbGFibGVQbHVnaW5JbmRpY2F0b3JIaWRkZW4oZmFsc2UpCkBAIC0xMjEsNyArMTIxLDcgQEAg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6On5SZW5kZXJFbWJlZGRlZE9iamVjdCgpCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cmVxdWly
ZXNMYXllcigpIGNvbnN0CiB7Ci0gICAgaWYgKFJlbmRlclBhcnQ6OnJlcXVpcmVzTGF5ZXIoKSkK
KyAgICBpZiAoUmVuZGVyV2lkZ2V0OjpyZXF1aXJlc0xheWVyKCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIAogICAgIHJldHVybiBhbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7CkBA
IC0yMTEsNyArMjExLDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRDb250ZW50
cyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQKICAgICBIVE1MUGx1Z0lu
RWxlbWVudCogcGx1Z0luRWxlbWVudCA9IHRvSFRNTFBsdWdJbkVsZW1lbnQoZWxlbWVudCgpKTsK
IAogICAgIGlmIChwbHVnSW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA+IEhUTUxQbHVnSW5FbGVt
ZW50OjpEaXNwbGF5aW5nU25hcHNob3QpIHsKLSAgICAgICAgUmVuZGVyUGFydDo6cGFpbnRDb250
ZW50cyhwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICAgICAgUmVuZGVyV2lkZ2V0OjpwYWlu
dENvbnRlbnRzKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogICAgICAgICBpZiAoIXBsdWdJbkVs
ZW1lbnQtPmlzUmVzdGFydGVkUGx1Z2luKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPCiAgICAgaWYgKHBhZ2Ug
JiYgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKQogICAgICAgICBwYWdl
LT5hZGRSZWxldmFudFJlcGFpbnRlZE9iamVjdCh0aGlzLCB2aXN1YWxPdmVyZmxvd1JlY3QoKSk7
CiAKLSAgICBSZW5kZXJQYXJ0OjpwYWludChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICBS
ZW5kZXJXaWRnZXQ6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogfQogCiBzdGF0aWMg
dm9pZCBkcmF3UmVwbGFjZW1lbnRBcnJvdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgaW5zaWRlUmVjdCkKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIFJlbmRlckVt
YmVkZGVkT2JqZWN0OjpsYXlvdXQoKQogICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwogICAgIHVw
ZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKIAotICAgIFJlbmRlclBhcnQ6OmxheW91dCgpOworICAgIFJl
bmRlcldpZGdldDo6bGF5b3V0KCk7CiAKICAgICBjbGVhck92ZXJmbG93KCk7CiAgICAgYWRkVmlz
dWFsRWZmZWN0T3ZlcmZsb3coKTsKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIFJlbmRlckVtYmVk
ZGVkT2JqZWN0Ojp2aWV3Q2xlYXJlZCgpCiAKIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6Om5v
ZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rp
b24pCiB7Ci0gICAgaWYgKCFSZW5kZXJQYXJ0Ojpub2RlQXRQb2ludChyZXF1ZXN0LCByZXN1bHQs
IGxvY2F0aW9uSW5Db250YWluZXIsIGFjY3VtdWxhdGVkT2Zmc2V0LCBoaXRUZXN0QWN0aW9uKSkK
KyAgICBpZiAoIVJlbmRlcldpZGdldDo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2Nh
dGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgaGl0VGVzdEFjdGlvbikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghd2lkZ2V0KCkgfHwgIXdpZGdldCgpLT5pc1Bs
dWdpblZpZXdCYXNlKCkpCkBAIC02NDAsNyArNjQwLDcgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXJz
b3IKICAgICAgICAgY3Vyc29yID0gaGFuZEN1cnNvcigpOwogICAgICAgICByZXR1cm4gU2V0Q3Vy
c29yOwogICAgIH0KLSAgICByZXR1cm4gUmVuZGVyUGFydDo6Z2V0Q3Vyc29yKHBvaW50LCBjdXJz
b3IpOworICAgIHJldHVybiBSZW5kZXJXaWRnZXQ6OmdldEN1cnNvcihwb2ludCwgY3Vyc29yKTsK
IH0KIAogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5k
ZXggMTliOWM1NC4uZjdkMDZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmgKQEAgLTIzLDcgKzIzLDcgQEAKICNpZm5kZWYgUmVuZGVyRW1i
ZWRkZWRPYmplY3RfaAogI2RlZmluZSBSZW5kZXJFbWJlZGRlZE9iamVjdF9oCiAKLSNpbmNsdWRl
ICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBUZXh0UnVuOwogCiAvLyBSZW5kZXJl
ciBmb3IgZW1iZWRzIGFuZCBvYmplY3RzLCBvZnRlbiwgYnV0IG5vdCBhbHdheXMsIHJlbmRlcmVk
IHZpYSBwbHVnLWlucy4KIC8vIEZvciBleGFtcGxlLCA8ZW1iZWQgc3JjPSJmb28uaHRtbCI+IGRv
ZXMgbm90IGludm9rZSBhIHBsdWctaW4uCi1jbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdCA6IHB1
YmxpYyBSZW5kZXJQYXJ0IHsKK2NsYXNzIFJlbmRlckVtYmVkZGVkT2JqZWN0IDogcHVibGljIFJl
bmRlcldpZGdldCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3QoRWxlbWVudCop
OwogICAgIHZpcnR1YWwgflJlbmRlckVtYmVkZGVkT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCmluZGV4IGIxM2Q0ZjMuLjkzOTg4ZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCkBAIC0zNCw3
ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBSZW5kZXJGcmFtZUJhc2U6OlJl
bmRlckZyYW1lQmFzZShFbGVtZW50KiBlbGVtZW50KQotICAgIDogUmVuZGVyUGFydChlbGVtZW50
KQorICAgIDogUmVuZGVyV2lkZ2V0KGVsZW1lbnQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuaAppbmRleCA0ZmFkNTYwLi40YWVlNDY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5oCkBAIC0yNiwxMiArMjYsMTIg
QEAKICNpZm5kZWYgUmVuZGVyRnJhbWVCYXNlX2gKICNkZWZpbmUgUmVuZGVyRnJhbWVCYXNlX2gK
IAotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBCYXNlIGNsYXNzIGZvciBSZW5kZXJGcmFtZSBhbmQg
UmVuZGVySUZyYW1lCi1jbGFzcyBSZW5kZXJGcmFtZUJhc2UgOiBwdWJsaWMgUmVuZGVyUGFydCB7
CitjbGFzcyBSZW5kZXJGcmFtZUJhc2UgOiBwdWJsaWMgUmVuZGVyV2lkZ2V0IHsKIHByb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBSZW5kZXJGcmFtZUJhc2UoRWxlbWVudCopOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGE2MGJiYTEu
LmNlYTdmOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCkBAIC00NTcsMTEgKzQ1NywxMSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6
dXBkYXRlQ29tcG9zaXRlZEJvdW5kcygpCiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRh
dGVBZnRlcldpZGdldFJlc2l6ZSgpCiB7Ci0gICAgaWYgKHJlbmRlcmVyKCkuaXNSZW5kZXJQYXJ0
KCkpIHsKLSAgICAgICAgaWYgKFJlbmRlckxheWVyQ29tcG9zaXRvciogaW5uZXJDb21wb3NpdG9y
ID0gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcih0b1JlbmRl
clBhcnQoJnJlbmRlcmVyKCkpKSkgewotICAgICAgICAgICAgaW5uZXJDb21wb3NpdG9yLT5mcmFt
ZVZpZXdEaWRDaGFuZ2VTaXplKCk7Ci0gICAgICAgICAgICBpbm5lckNvbXBvc2l0b3ItPmZyYW1l
Vmlld0RpZENoYW5nZUxvY2F0aW9uKGZsb29yZWRJbnRQb2ludChjb250ZW50c0JveCgpLmxvY2F0
aW9uKCkpKTsKLSAgICAgICAgfQorICAgIGlmICghcmVuZGVyZXIoKS5pc1dpZGdldCgpKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKFJlbmRlckxheWVyQ29tcG9zaXRvciogaW5uZXJDb21wb3Np
dG9yID0gUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcih0b1Jl
bmRlcldpZGdldCgmcmVuZGVyZXIoKSkpKSB7CisgICAgICAgIGlubmVyQ29tcG9zaXRvci0+ZnJh
bWVWaWV3RGlkQ2hhbmdlU2l6ZSgpOworICAgICAgICBpbm5lckNvbXBvc2l0b3ItPmZyYW1lVmll
d0RpZENoYW5nZUxvY2F0aW9uKGZsb29yZWRJbnRQb2ludChjb250ZW50c0JveCgpLmxvY2F0aW9u
KCkpKTsKICAgICB9CiB9CiAKQEAgLTU2OCw4ICs1NjgsOCBAQCBib29sIFJlbmRlckxheWVyQmFj
a2luZzo6dXBkYXRlR3JhcGhpY3NMYXllckNvbmZpZ3VyYXRpb24oKQogICAgICAgICBsYXllckNv
bmZpZ0NoYW5nZWQgPSB0cnVlOwogICAgIH0KICNlbmRpZgotICAgIGlmIChyZW5kZXJlcigpLmlz
UmVuZGVyUGFydCgpKQotICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnBhcmVudEZyYW1lQ29udGVudExheWVycyh0b1JlbmRlclBhcnQoJnJlbmRlcmVy
KCkpKTsKKyAgICBpZiAocmVuZGVyZXIoKS5pc1dpZGdldCgpKQorICAgICAgICBsYXllckNvbmZp
Z0NoYW5nZWQgPSBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhcmVudEZyYW1lQ29udGVudExheWVy
cyh0b1JlbmRlcldpZGdldCgmcmVuZGVyZXIoKSkpOwogCiAgICAgcmV0dXJuIGxheWVyQ29uZmln
Q2hhbmdlZDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKaW5kZXggNjI4YjFmOS4uMDg4NDQ5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTczOSw4ICs3
MzksOCBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQmFja2luZyhSZW5kZXJM
YXllciogbGF5ZXIsIENvbXBvc2l0aW5nQ2hhbmdlUgogICAgIH0KICNlbmRpZgogCi0gICAgaWYg
KGxheWVyQ2hhbmdlZCAmJiBsYXllci0+cmVuZGVyZXIoKS5pc1JlbmRlclBhcnQoKSkgewotICAg
ICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3IqIGlubmVyQ29tcG9zaXRvciA9IGZyYW1lQ29udGVu
dHNDb21wb3NpdG9yKHRvUmVuZGVyUGFydCgmbGF5ZXItPnJlbmRlcmVyKCkpKTsKKyAgICBpZiAo
bGF5ZXJDaGFuZ2VkICYmIGxheWVyLT5yZW5kZXJlcigpLmlzV2lkZ2V0KCkpIHsKKyAgICAgICAg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBpbm5lckNvbXBvc2l0b3IgPSBmcmFtZUNvbnRlbnRzQ29t
cG9zaXRvcih0b1JlbmRlcldpZGdldCgmbGF5ZXItPnJlbmRlcmVyKCkpKTsKICAgICAgICAgaWYg
KGlubmVyQ29tcG9zaXRvciAmJiBpbm5lckNvbXBvc2l0b3ItPmluQ29tcG9zaXRpbmdNb2RlKCkp
CiAgICAgICAgICAgICBpbm5lckNvbXBvc2l0b3ItPnVwZGF0ZVJvb3RMYXllckF0dGFjaG1lbnQo
KTsKICAgICB9CkBAIC0xMjU2LDggKzEyNTYsOCBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6cmVidWlsZENvbXBvc2l0aW5nTGF5ZXJUcmVlKFJlbmRlckxheWVyKiBsYXllciwgVmVjdAog
ICAgIAogICAgIGlmIChsYXllckJhY2tpbmcpIHsKICAgICAgICAgYm9vbCBwYXJlbnRlZCA9IGZh
bHNlOwotICAgICAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCkuaXNSZW5kZXJQYXJ0KCkpCi0gICAg
ICAgICAgICBwYXJlbnRlZCA9IHBhcmVudEZyYW1lQ29udGVudExheWVycyh0b1JlbmRlclBhcnQo
JmxheWVyLT5yZW5kZXJlcigpKSk7CisgICAgICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS5pc1dp
ZGdldCgpKQorICAgICAgICAgICAgcGFyZW50ZWQgPSBwYXJlbnRGcmFtZUNvbnRlbnRMYXllcnMo
dG9SZW5kZXJXaWRnZXQoJmxheWVyLT5yZW5kZXJlcigpKSk7CiAKICAgICAgICAgaWYgKCFwYXJl
bnRlZCkKICAgICAgICAgICAgIGxheWVyQmFja2luZy0+cGFyZW50Rm9yU3VibGF5ZXJzKCktPnNl
dENoaWxkcmVuKGxheWVyQ2hpbGRyZW4pOwpAQCAtMTQwNyw3ICsxNDA3LDcgQEAgU3RyaW5nIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6bGF5ZXJUcmVlQXNUZXh0KExheWVyVHJlZUZsYWdzIGZsYWdz
KQogICAgIHJldHVybiBsYXllclRyZWVUZXh0OwogfQogCi1SZW5kZXJMYXllckNvbXBvc2l0b3Iq
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVyUGFy
dCogcmVuZGVyZXIpCitSZW5kZXJMYXllckNvbXBvc2l0b3IqIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6ZnJhbWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVyV2lkZ2V0KiByZW5kZXJlcikKIHsKICAg
ICBpZiAoIXJlbmRlcmVyLT5lbGVtZW50KCktPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIDA7CkBAIC0xNDIwLDcgKzE0MjAsNyBAQCBSZW5kZXJMYXllckNvbXBvc2l0b3Iq
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZnJhbWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVyUGFy
dAogICAgIHJldHVybiAwOwogfQogCi1ib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFyZW50
RnJhbWVDb250ZW50TGF5ZXJzKFJlbmRlclBhcnQqIHJlbmRlcmVyKQorYm9vbCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnBhcmVudEZyYW1lQ29udGVudExheWVycyhSZW5kZXJXaWRnZXQqIHJlbmRl
cmVyKQogewogICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciogaW5uZXJDb21wb3NpdG9yID0gZnJh
bWVDb250ZW50c0NvbXBvc2l0b3IocmVuZGVyZXIpOwogICAgIGlmICghaW5uZXJDb21wb3NpdG9y
IHx8ICFpbm5lckNvbXBvc2l0b3ItPmluQ29tcG9zaXRpbmdNb2RlKCkgfHwgaW5uZXJDb21wb3Np
dG9yLT5yb290TGF5ZXJBdHRhY2htZW50KCkgIT0gUm9vdExheWVyQXR0YWNoZWRWaWFFbmNsb3Np
bmdGcmFtZSkKQEAgLTE3NDQsNyArMTc0NCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpzaG91bGRQcm9wYWdhdGVDb21wb3NpdGluZ1RvRW5jbG9zaW5nRnJhbWUoKSBjb25zdAogICAg
IGlmICghYWxsb3dzSW5kZXBlbmRlbnRseUNvbXBvc2l0ZWRGcmFtZXMoJm1fcmVuZGVyVmlldy5m
cmFtZVZpZXcoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCFyZW5kZXJlciB8
fCAhcmVuZGVyZXItPmlzUmVuZGVyUGFydCgpKQorICAgIGlmICghcmVuZGVyZXIgfHwgIXJlbmRl
cmVyLT5pc1dpZGdldCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBPbiBNYWMs
IG9ubHkgcHJvcGFnYXRlIGNvbXBvc2l0aW5nIGlmIHRoZSBmcmFtZSBpcyBvdmVybGFwcGVkIGlu
IHRoZSBwYXJlbnQKQEAgLTE3NTMsNyArMTc1Myw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpzaG91bGRQcm9wYWdhdGVDb21wb3NpdGluZ1RvRW5jbG9zaW5nRnJhbWUoKSBjb25zdAog
ICAgIGlmIChwYWdlICYmIHBhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpICE9IDEpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIAotICAgIFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRl
clBhcnQocmVuZGVyZXIpOworICAgIFJlbmRlcldpZGdldCogZnJhbWVSZW5kZXJlciA9IHRvUmVu
ZGVyV2lkZ2V0KHJlbmRlcmVyKTsKICAgICBpZiAoZnJhbWVSZW5kZXJlci0+d2lkZ2V0KCkpIHsK
ICAgICAgICAgQVNTRVJUKGZyYW1lUmVuZGVyZXItPndpZGdldCgpLT5pc0ZyYW1lVmlldygpKTsK
ICAgICAgICAgRnJhbWVWaWV3KiB2aWV3ID0gdG9GcmFtZVZpZXcoZnJhbWVSZW5kZXJlci0+d2lk
Z2V0KCkpOwpAQCAtMjA4MSw3ICsyMDgxLDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JWaWRlbyhSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAg
ICAgICByZXR1cm4gKHZpZGVvLnJlcXVpcmVzSW1tZWRpYXRlQ29tcG9zaXRpbmcoKSB8fCB2aWRl
by5zaG91bGREaXNwbGF5VmlkZW8oKSkgJiYgY2FuQWNjZWxlcmF0ZVZpZGVvUmVuZGVyaW5nKHZp
ZGVvKTsKICAgICB9CiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0gICAgZWxz
ZSBpZiAocmVuZGVyZXItPmlzUmVuZGVyUGFydCgpKSB7CisgICAgZWxzZSBpZiAocmVuZGVyZXIt
PmlzUmVuZGVyV2lkZ2V0KCkpIHsKICAgICAgICAgaWYgKCFtX2hhc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmcpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTIxMzksMTAgKzIxMzksMTAg
QEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQbHVn
aW4oUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIAogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JGcmFtZShSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSBjb25z
dAogewotICAgIGlmICghcmVuZGVyZXItPmlzUmVuZGVyUGFydCgpKQorICAgIGlmICghcmVuZGVy
ZXItPmlzV2lkZ2V0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBSZW5kZXJQ
YXJ0KiBmcmFtZVJlbmRlcmVyID0gdG9SZW5kZXJQYXJ0KHJlbmRlcmVyKTsKKyAgICBSZW5kZXJX
aWRnZXQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlcldpZGdldChyZW5kZXJlcik7CiAKICAgICBp
ZiAoIWZyYW1lUmVuZGVyZXItPnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgKaW5kZXggNGM2Mzg3Ny4uOGU2NjIzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtNDAsNyArNDAs
NyBAQCBjbGFzcyBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKIGNsYXNzIEdyYXBo
aWNzTGF5ZXI7CiBjbGFzcyBHcmFwaGljc0xheWVyVXBkYXRlcjsKIGNsYXNzIFJlbmRlckVtYmVk
ZGVkT2JqZWN0OwotY2xhc3MgUmVuZGVyUGFydDsKK2NsYXNzIFJlbmRlcldpZGdldDsKIGNsYXNz
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOwogY2xhc3MgU3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0
cmFpbnRzOwogI2lmIEVOQUJMRShWSURFTykKQEAgLTIyNyw5ICsyMjcsOSBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGJvb2wgYWxsb3dzSW5kZXBlbmRlbnRseUNvbXBvc2l0ZWRGcmFtZXMoY29uc3Qg
RnJhbWVWaWV3Kik7CiAgICAgYm9vbCBzaG91bGRQcm9wYWdhdGVDb21wb3NpdGluZ1RvRW5jbG9z
aW5nRnJhbWUoKSBjb25zdDsKIAotICAgIHN0YXRpYyBSZW5kZXJMYXllckNvbXBvc2l0b3IqIGZy
YW1lQ29udGVudHNDb21wb3NpdG9yKFJlbmRlclBhcnQqKTsKKyAgICBzdGF0aWMgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yKiBmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcihSZW5kZXJXaWRnZXQqKTsKICAg
ICAvLyBSZXR1cm4gdHJ1ZSBpZiB0aGUgbGF5ZXJzIGNoYW5nZWQuCi0gICAgc3RhdGljIGJvb2wg
cGFyZW50RnJhbWVDb250ZW50TGF5ZXJzKFJlbmRlclBhcnQqKTsKKyAgICBzdGF0aWMgYm9vbCBw
YXJlbnRGcmFtZUNvbnRlbnRMYXllcnMoUmVuZGVyV2lkZ2V0Kik7CiAKICAgICAvLyBVcGRhdGUg
dGhlIGdlb21ldHJ5IG9mIHRoZSBsYXllcnMgdXNlZCBmb3IgY2xpcHBpbmcgYW5kIHNjcm9sbGlu
ZyBpbiBmcmFtZXMuCiAgICAgdm9pZCBmcmFtZVZpZXdEaWRDaGFuZ2VMb2NhdGlvbihjb25zdCBJ
bnRQb2ludCYgY29udGVudHNPZmZzZXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCmluZGV4IGNkODg0ZTQuLmZjOTFhY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKQEAgLTM3OCw3ICszNzgsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBi
b29sIGlzUmVuZGVySUZyYW1lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNSZW5kZXJJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzUmVuZGVySW5saW5lKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgaXNSZW5kZXJQYXJ0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNSZW5kZXJSZWdpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1JlbmRlclJlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNSZXBsaWNhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZmYwMmM3OC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUGFydC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogICAgICAgICAgIChD
KSAyMDAwIFNpbW9uIEhhdXNtYW5uIDxoYXVzbWFubkBrZGUub3JnPgotICogICAgICAgICAgIChD
KSAyMDAwIFN0ZWZhbiBTY2hpbWFuc2tpICgxU3RlaW5AZ214LmRlKQotICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
LSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0gKgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJSZW5kZXJQ
YXJ0LmgiCi0KLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5oIgotI2lu
Y2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnRCYXNlLmgiCi0jaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5o
IgotI2luY2x1ZGUgIlBsdWdpblZpZXdCYXNlLmgiCi0jaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIK
LSNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCi0jaW5jbHVkZSAiUmVuZGVyVmlldy5oIgotCi11
c2luZyBuYW1lc3BhY2Ugc3RkOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlbmRlclBhcnQ6
OlJlbmRlclBhcnQoRWxlbWVudCogbm9kZSkKLSAgICA6IFJlbmRlcldpZGdldChub2RlKQotewot
ICAgIHNldElubGluZShmYWxzZSk7Ci19Ci0KLVJlbmRlclBhcnQ6On5SZW5kZXJQYXJ0KCkKLXsK
LSAgICBjbGVhcldpZGdldCgpOwotfQotCi12b2lkIFJlbmRlclBhcnQ6OnNldFdpZGdldChQYXNz
UmVmUHRyPFdpZGdldD4gd2lkZ2V0KQotewotICAgIGlmICh3aWRnZXQgPT0gdGhpcy0+d2lkZ2V0
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIFJlbmRlcldpZGdldDo6c2V0V2lkZ2V0KHdpZGdl
dCk7Ci0KLSAgICAvLyBtYWtlIHN1cmUgdGhlIHNjcm9sbGJhcnMgYXJlIHNldCBjb3JyZWN0bHkg
Zm9yIHJlc3RvcmUKLSAgICAvLyAjIyMgZmluZCBiZXR0ZXIgZml4Ci0gICAgdmlld0NsZWFyZWQo
KTsKLX0KLQotdm9pZCBSZW5kZXJQYXJ0Ojp2aWV3Q2xlYXJlZCgpCi17Ci19Ci0KLSNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi1ib29sIFJlbmRlclBhcnQ6OnJlcXVpcmVzTGF5ZXIo
KSBjb25zdAotewotICAgIGlmIChSZW5kZXJXaWRnZXQ6OnJlcXVpcmVzTGF5ZXIoKSkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgcmV0dXJuIHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZygpOwotfQotCi1ib29sIFJlbmRlclBhcnQ6OnJlcXVpcmVzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZygpIGNvbnN0Ci17Ci0gICAgLy8gVGhlcmUgYXJlIHR3byBnZW5lcmFsIGNhc2VzIGlu
IHdoaWNoIHdlIGNhbiByZXR1cm4gdHJ1ZS4gRmlyc3QsIGlmIHRoaXMgaXMgYSBwbHVnaW4gCi0g
ICAgLy8gcmVuZGVyZXIgYW5kIHRoZSBwbHVnaW4gaGFzIGEgbGF5ZXIsIHRoZW4gd2UgbmVlZCBh
IGxheWVyLiBTZWNvbmQsIGlmIHRoaXMgaXMgCi0gICAgLy8gYSByZW5kZXJlciB3aXRoIGEgY29u
dGVudERvY3VtZW50IGFuZCB0aGF0IGRvY3VtZW50IG5lZWRzIGEgbGF5ZXIsIHRoZW4gd2UgbmVl
ZAotICAgIC8vIGEgbGF5ZXIuCi0gICAgaWYgKHdpZGdldCgpICYmIHdpZGdldCgpLT5pc1BsdWdp
blZpZXdCYXNlKCkgJiYgdG9QbHVnaW5WaWV3QmFzZSh3aWRnZXQoKSktPnBsYXRmb3JtTGF5ZXIo
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIWVsZW1lbnQoKSB8fCAhZWxlbWVu
dCgpLT5pc0ZyYW1lT3duZXJFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IEhUTUxGcmFtZU93bmVyRWxlbWVudCogZnJhbWVPd25lckVsZW1lbnQgPSB0b0ZyYW1lT3duZXJF
bGVtZW50KGVsZW1lbnQoKSk7Ci0gICAgaWYgKERvY3VtZW50KiBjb250ZW50RG9jdW1lbnQgPSBm
cmFtZU93bmVyRWxlbWVudC0+Y29udGVudERvY3VtZW50KCkpIHsKLSAgICAgICAgaWYgKFJlbmRl
clZpZXcqIHZpZXcgPSBjb250ZW50RG9jdW1lbnQtPnJlbmRlclZpZXcoKSkKLSAgICAgICAgICAg
IHJldHVybiB2aWV3LT51c2VzQ29tcG9zaXRpbmcoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0jZW5kaWYKLQotYm9vbCBSZW5kZXJQYXJ0OjpuZWVkc1ByZWZlcnJlZFdpZHRoc1Jl
Y2FsY3VsYXRpb24oKSBjb25zdAotewotICAgIGlmIChSZW5kZXJXaWRnZXQ6Om5lZWRzUHJlZmVy
cmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1
cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7Ci19Ci0KLVJlbmRlckJveCogUmVuZGVyUGFydDo6ZW1i
ZWRkZWRDb250ZW50Qm94KCkgY29uc3QKLXsKLSAgICBpZiAoIWVsZW1lbnQoKSB8fCAhd2lkZ2V0
KCkgfHwgIXdpZGdldCgpLT5pc0ZyYW1lVmlldygpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBy
ZXR1cm4gdG9GcmFtZVZpZXcod2lkZ2V0KCkpLT5lbWJlZGRlZENvbnRlbnRCb3goKTsKLX0KLQot
Ym9vbCBSZW5kZXJQYXJ0Ojpub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVz
dCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9u
SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVz
dEFjdGlvbiBhY3Rpb24pCi17Ci0gICAgaWYgKCF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJh
bWVWaWV3KCkgfHwgIXJlcXVlc3QuYWxsb3dzQ2hpbGRGcmFtZUNvbnRlbnQoKSkKLSAgICAgICAg
cmV0dXJuIFJlbmRlcldpZGdldDo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2NhdGlv
bkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgYWN0aW9uKTsKLQotICAgIEZyYW1lVmll
dyogY2hpbGRGcmFtZVZpZXcgPSB0b0ZyYW1lVmlldyh3aWRnZXQoKSk7Ci0gICAgUmVuZGVyVmll
dyogY2hpbGRSb290ID0gY2hpbGRGcmFtZVZpZXctPnJlbmRlclZpZXcoKTsKLQotICAgIGlmIChj
aGlsZFJvb3QpIHsKLSAgICAgICAgTGF5b3V0UG9pbnQgYWRqdXN0ZWRMb2NhdGlvbiA9IGFjY3Vt
dWxhdGVkT2Zmc2V0ICsgbG9jYXRpb24oKTsKLSAgICAgICAgTGF5b3V0UG9pbnQgY29udGVudE9m
ZnNldCA9IExheW91dFBvaW50KGJvcmRlckxlZnQoKSArIHBhZGRpbmdMZWZ0KCksIGJvcmRlclRv
cCgpICsgcGFkZGluZ1RvcCgpKSAtIGNoaWxkRnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQoKTsKLSAg
ICAgICAgSGl0VGVzdExvY2F0aW9uIG5ld0hpdFRlc3RMb2NhdGlvbihsb2NhdGlvbkluQ29udGFp
bmVyLCAtYWRqdXN0ZWRMb2NhdGlvbiAtIGNvbnRlbnRPZmZzZXQpOwotICAgICAgICBIaXRUZXN0
UmVxdWVzdCBuZXdIaXRUZXN0UmVxdWVzdChyZXF1ZXN0LnR5cGUoKSB8IEhpdFRlc3RSZXF1ZXN0
OjpDaGlsZEZyYW1lSGl0VGVzdCk7Ci0gICAgICAgIEhpdFRlc3RSZXN1bHQgY2hpbGRGcmFtZVJl
c3VsdChuZXdIaXRUZXN0TG9jYXRpb24pOwotCi0gICAgICAgIGJvb2wgaXNJbnNpZGVDaGlsZEZy
YW1lID0gY2hpbGRSb290LT5oaXRUZXN0KG5ld0hpdFRlc3RSZXF1ZXN0LCBuZXdIaXRUZXN0TG9j
YXRpb24sIGNoaWxkRnJhbWVSZXN1bHQpOwotCi0gICAgICAgIGlmIChuZXdIaXRUZXN0TG9jYXRp
b24uaXNSZWN0QmFzZWRUZXN0KCkpCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKGNoaWxkRnJh
bWVSZXN1bHQpOwotICAgICAgICBlbHNlIGlmIChpc0luc2lkZUNoaWxkRnJhbWUpCi0gICAgICAg
ICAgICByZXN1bHQgPSBjaGlsZEZyYW1lUmVzdWx0OwotCi0gICAgICAgIGlmIChpc0luc2lkZUNo
aWxkRnJhbWUpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
UmVuZGVyV2lkZ2V0Ojpub2RlQXRQb2ludChyZXF1ZXN0LCByZXN1bHQsIGxvY2F0aW9uSW5Db250
YWluZXIsIGFjY3VtdWxhdGVkT2Zmc2V0LCBhY3Rpb24pOwotfQotCi19CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclBhcnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTQ2ZmFm
Zi4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oCisr
KyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBM
YXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQotICogICAgICAgICAgIChDKSAyMDAwIFNpbW9uIEhh
dXNtYW5uIDxoYXVzbWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgUmVuZGVyUGFydF9oCi0j
ZGVmaW5lIFJlbmRlclBhcnRfaAotCi0jaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotLy8gUmVuZGVyZXIgZm9yIGZyYW1lcyB2aWEgUmVuZGVyRnJhbWVC
YXNlLCBhbmQgcGx1Zy1pbnMgdmlhIFJlbmRlckVtYmVkZGVkT2JqZWN0LgotY2xhc3MgUmVuZGVy
UGFydCA6IHB1YmxpYyBSZW5kZXJXaWRnZXQgewotcHVibGljOgotICAgIGV4cGxpY2l0IFJlbmRl
clBhcnQoRWxlbWVudCopOwotICAgIHZpcnR1YWwgflJlbmRlclBhcnQoKTsKLQotICAgIHZpcnR1
YWwgdm9pZCBzZXRXaWRnZXQoUGFzc1JlZlB0cjxXaWRnZXQ+KSBPVkVSUklERSBGSU5BTDsKLSAg
ICB2aXJ0dWFsIHZvaWQgdmlld0NsZWFyZWQoKTsKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKLSAgICBib29sIHJlcXVpcmVzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpIGNvbnN0
OwotI2VuZGlmCi0KLSAgICB2aXJ0dWFsIGJvb2wgbmVlZHNQcmVmZXJyZWRXaWR0aHNSZWNhbGN1
bGF0aW9uKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7Ci0gICAgdmlydHVhbCBSZW5kZXJCb3gqIGVt
YmVkZGVkQ29udGVudEJveCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwotCi0gICAgdmlydHVhbCBi
b29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNv
bnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9p
bnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKLQotcHJvdGVj
dGVkOgotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICB2aXJ0dWFsIGJvb2wg
cmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJSSURFOwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAg
dmlydHVhbCBib29sIGlzUmVuZGVyUGFydCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0dXJu
IHRydWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiAiUmVuZGVyUGFydCI7IH0KLX07Ci0KLWlubGluZSBSZW5kZXJQYXJ0KiB0
b1JlbmRlclBhcnQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VD
VVJJVFlfSU1QTElDQVRJT04oIW9iamVjdCB8fCBvYmplY3QtPmlzUmVuZGVyUGFydCgpKTsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8UmVuZGVyUGFydCo+KG9iamVjdCk7Ci19Ci0KLS8vIFRoaXMg
d2lsbCBjYXRjaCBhbnlvbmUgZG9pbmcgYW4gdW5uZWNlc3NhcnkgY2FzdC4KLXZvaWQgdG9SZW5k
ZXJQYXJ0KGNvbnN0IFJlbmRlclBhcnQqKTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKaW5kZXggNjU5MDk1Yy4uYzE1MTQxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5jcHAKQEAgLTI4
LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhclBhcnQu
aCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlcldp
ZGdldC5oIgogI2luY2x1ZGUgIlN0eWxlSW5oZXJpdGVkRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKIApAQCAtODIsNyArODIsNyBAQCBSZW5kZXJTY3JvbGxiYXI6On5SZW5kZXJT
Y3JvbGxiYXIoKQogUmVuZGVyQm94KiBSZW5kZXJTY3JvbGxiYXI6Om93bmluZ1JlbmRlcmVyKCkg
Y29uc3QKIHsKICAgICBpZiAobV9vd25pbmdGcmFtZSkgewotICAgICAgICBSZW5kZXJCb3gqIGN1
cnJlbnRSZW5kZXJlciA9IG1fb3duaW5nRnJhbWUtPm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAg
UmVuZGVyV2lkZ2V0KiBjdXJyZW50UmVuZGVyZXIgPSBtX293bmluZ0ZyYW1lLT5vd25lclJlbmRl
cmVyKCk7CiAgICAgICAgIHJldHVybiBjdXJyZW50UmVuZGVyZXI7CiAgICAgfQogICAgIHJldHVy
biBtX293bmVyICYmIG1fb3duZXItPnJlbmRlcmVyKCkgPyBtX293bmVyLT5yZW5kZXJlcigpLT5l
bmNsb3NpbmdCb3goKSA6IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJl
ZUFzVGV4dC5jcHAKaW5kZXggZWFjY2Y4Yy4uZTAzZTIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2luY2x1
ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC01MDIsOCArNTAxLDggQEAgdm9pZCBSZW5kZXJU
cmVlQXNUZXh0Ojp3cml0ZVJlbmRlck9iamVjdChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVy
T2JqZWN0JiBvLAogI2lmIFBMQVRGT1JNKFFUKQogICAgIC8vIFByaW50IGF0dHJpYnV0ZXMgb2Yg
ZW1iZWRkZWQgUVdpZGdldHMuIEUuZy4gd2hlbiB0aGUgV2ViQ29yZTo6V2lkZ2V0CiAgICAgLy8g
aXMgaW52aXNpYmxlIHRoZSBRV2lkZ2V0IHNob3VsZCBiZSBpbnZpc2libGUgdG9vLgotICAgIGlm
IChvLmlzUmVuZGVyUGFydCgpKSB7Ci0gICAgICAgIGNvbnN0IFJlbmRlclBhcnQqIHBhcnQgPSB0
b1JlbmRlclBhcnQoY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPigmbykpOworICAgIGlmIChvLmlz
V2lkZ2V0KCkpIHsKKyAgICAgICAgY29uc3QgUmVuZGVyV2lkZ2V0KiBwYXJ0ID0gdG9SZW5kZXJX
aWRnZXQoY29uc3RfY2FzdDxSZW5kZXJPYmplY3QqPigmbykpOwogICAgICAgICBpZiAocGFydC0+
d2lkZ2V0KCkgJiYgcGFydC0+d2lkZ2V0KCktPnBsYXRmb3JtV2lkZ2V0KCkpIHsKICAgICAgICAg
ICAgIFFPYmplY3QqIHdpZCA9IHBhcnQtPndpZGdldCgpLT5wbGF0Zm9ybVdpZGdldCgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IDFlODI2YjUuLmFh
NzM3MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0y
Nyw3ICsyNyw5IEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSAiSFRNTEZy
YW1lT3duZXJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgorI2luY2x1ZGUg
IlBsdWdpblZpZXdCYXNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ291bnRlci5oIgogI2luY2x1ZGUg
IlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtOTYsNiArOTgsNyBA
QCBSZW5kZXJXaWRnZXQ6OlJlbmRlcldpZGdldChFbGVtZW50KiBlbGVtZW50KQogICAgIC8vIGFi
bGUgdG8gaGFuZGxlIHRoYXQuCiAgICAgLCBtX3JlZkNvdW50KDEpCiB7CisgICAgc2V0SW5saW5l
KGZhbHNlKTsKICAgICB2aWV3KCkuYWRkV2lkZ2V0KHRoaXMpOwogfQogCkBAIC0yMTIsNiArMjE1
LDkgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OnNldFdpZGdldChQYXNzUmVmUHRyPFdpZGdldD4gd2lk
Z2V0KQogICAgICAgICB9CiAgICAgICAgIG1vdmVXaWRnZXRUb1BhcmVudFNvb24obV93aWRnZXQu
Z2V0KCksIG1fZnJhbWVWaWV3KTsKICAgICB9CisgICAgLy8gbWFrZSBzdXJlIHRoZSBzY3JvbGxi
YXJzIGFyZSBzZXQgY29ycmVjdGx5IGZvciByZXN0b3JlCisgICAgLy8gIyMjIGZpbmQgYmV0dGVy
IGZpeAorICAgIHZpZXdDbGVhcmVkKCk7CiB9CiAKIHZvaWQgUmVuZGVyV2lkZ2V0OjpsYXlvdXQo
KQpAQCAtMzg2LDYgKzM5MiwzMCBAQCBSZW5kZXJXaWRnZXQqIFJlbmRlcldpZGdldDo6ZmluZChj
b25zdCBXaWRnZXQqIHdpZGdldCkKIAogYm9vbCBSZW5kZXJXaWRnZXQ6Om5vZGVBdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0
IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQm
IGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGFjdGlvbikKIHsKKyAgICBpZiAoIXdp
ZGdldCgpIHx8ICF3aWRnZXQoKS0+aXNGcmFtZVZpZXcoKSB8fCAhcmVxdWVzdC5hbGxvd3NDaGls
ZEZyYW1lQ29udGVudCgpKQorICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6Om5vZGVBdFBv
aW50KHJlcXVlc3QsIHJlc3VsdCwgbG9jYXRpb25JbkNvbnRhaW5lciwgYWNjdW11bGF0ZWRPZmZz
ZXQsIGFjdGlvbik7CisKKyAgICBGcmFtZVZpZXcqIGNoaWxkRnJhbWVWaWV3ID0gdG9GcmFtZVZp
ZXcod2lkZ2V0KCkpOworICAgIFJlbmRlclZpZXcqIGNoaWxkUm9vdCA9IGNoaWxkRnJhbWVWaWV3
LT5yZW5kZXJWaWV3KCk7CisKKyAgICBpZiAoY2hpbGRSb290KSB7CisgICAgICAgIExheW91dFBv
aW50IGFkanVzdGVkTG9jYXRpb24gPSBhY2N1bXVsYXRlZE9mZnNldCArIGxvY2F0aW9uKCk7Cisg
ICAgICAgIExheW91dFBvaW50IGNvbnRlbnRPZmZzZXQgPSBMYXlvdXRQb2ludChib3JkZXJMZWZ0
KCkgKyBwYWRkaW5nTGVmdCgpLCBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3AoKSkgLSBjaGlsZEZy
YW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCk7CisgICAgICAgIEhpdFRlc3RMb2NhdGlvbiBuZXdIaXRU
ZXN0TG9jYXRpb24obG9jYXRpb25JbkNvbnRhaW5lciwgLWFkanVzdGVkTG9jYXRpb24gLSBjb250
ZW50T2Zmc2V0KTsKKyAgICAgICAgSGl0VGVzdFJlcXVlc3QgbmV3SGl0VGVzdFJlcXVlc3QocmVx
dWVzdC50eXBlKCkgfCBIaXRUZXN0UmVxdWVzdDo6Q2hpbGRGcmFtZUhpdFRlc3QpOworICAgICAg
ICBIaXRUZXN0UmVzdWx0IGNoaWxkRnJhbWVSZXN1bHQobmV3SGl0VGVzdExvY2F0aW9uKTsKKwor
ICAgICAgICBib29sIGlzSW5zaWRlQ2hpbGRGcmFtZSA9IGNoaWxkUm9vdC0+aGl0VGVzdChuZXdI
aXRUZXN0UmVxdWVzdCwgbmV3SGl0VGVzdExvY2F0aW9uLCBjaGlsZEZyYW1lUmVzdWx0KTsKKwor
ICAgICAgICBpZiAobmV3SGl0VGVzdExvY2F0aW9uLmlzUmVjdEJhc2VkVGVzdCgpKQorICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZChjaGlsZEZyYW1lUmVzdWx0KTsKKyAgICAgICAgZWxzZSBpZiAo
aXNJbnNpZGVDaGlsZEZyYW1lKQorICAgICAgICAgICAgcmVzdWx0ID0gY2hpbGRGcmFtZVJlc3Vs
dDsKKworICAgICAgICBpZiAoaXNJbnNpZGVDaGlsZEZyYW1lKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCiAgICAgYm9vbCBoYWRSZXN1bHQgPSByZXN1bHQuaW5uZXJOb2RlKCk7
CiAgICAgYm9vbCBpbnNpZGUgPSBSZW5kZXJSZXBsYWNlZDo6bm9kZUF0UG9pbnQocmVxdWVzdCwg
cmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgYWN0aW9uKTsK
IApAQCAtNDA0LDQgKzQzNCw0NyBAQCBDdXJzb3JEaXJlY3RpdmUgUmVuZGVyV2lkZ2V0OjpnZXRD
dXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXJzb3ImIGN1cnNvcgogICAgIHJldHVy
biBSZW5kZXJSZXBsYWNlZDo6Z2V0Q3Vyc29yKHBvaW50LCBjdXJzb3IpOwogfQogCisKKyNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCitib29sIFJlbmRlcldpZGdldDo6cmVxdWlyZXNM
YXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpyZXF1aXJlc0xheWVy
KCkgfHwgcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7Cit9CisKK2Jvb2wgUmVuZGVy
V2lkZ2V0OjpyZXF1aXJlc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSBjb25zdAoreworICAgIC8v
IFRoZXJlIGFyZSB0d28gZ2VuZXJhbCBjYXNlcyBpbiB3aGljaCB3ZSBjYW4gcmV0dXJuIHRydWUu
IEZpcnN0LCBpZiB0aGlzIGlzIGEgcGx1Z2luIAorICAgIC8vIHJlbmRlcmVyIGFuZCB0aGUgcGx1
Z2luIGhhcyBhIGxheWVyLCB0aGVuIHdlIG5lZWQgYSBsYXllci4gU2Vjb25kLCBpZiB0aGlzIGlz
IAorICAgIC8vIGEgcmVuZGVyZXIgd2l0aCBhIGNvbnRlbnREb2N1bWVudCBhbmQgdGhhdCBkb2N1
bWVudCBuZWVkcyBhIGxheWVyLCB0aGVuIHdlIG5lZWQKKyAgICAvLyBhIGxheWVyLgorICAgIGlm
ICh3aWRnZXQoKSAmJiB3aWRnZXQoKS0+aXNQbHVnaW5WaWV3QmFzZSgpICYmIHRvUGx1Z2luVmll
d0Jhc2Uod2lkZ2V0KCkpLT5wbGF0Zm9ybUxheWVyKCkpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgaWYgKCFlbGVtZW50KCkgfHwgIWVsZW1lbnQoKS0+aXNGcmFtZU93bmVyRWxlbWVudCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIGZy
YW1lT3duZXJFbGVtZW50ID0gdG9GcmFtZU93bmVyRWxlbWVudChlbGVtZW50KCkpOworICAgIGlm
IChEb2N1bWVudCogY29udGVudERvY3VtZW50ID0gZnJhbWVPd25lckVsZW1lbnQtPmNvbnRlbnRE
b2N1bWVudCgpKSB7CisgICAgICAgIGlmIChSZW5kZXJWaWV3KiB2aWV3ID0gY29udGVudERvY3Vt
ZW50LT5yZW5kZXJWaWV3KCkpCisgICAgICAgICAgICByZXR1cm4gdmlldy0+dXNlc0NvbXBvc2l0
aW5nKCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK2Jvb2wgUmVu
ZGVyV2lkZ2V0OjpuZWVkc1ByZWZlcnJlZFdpZHRoc1JlY2FsY3VsYXRpb24oKSBjb25zdAorewor
ICAgIGlmIChSZW5kZXJSZXBsYWNlZDo6bmVlZHNQcmVmZXJyZWRXaWR0aHNSZWNhbGN1bGF0aW9u
KCkpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBlbWJlZGRlZENvbnRlbnRCb3go
KTsKK30KKworUmVuZGVyQm94KiBSZW5kZXJXaWRnZXQ6OmVtYmVkZGVkQ29udGVudEJveCgpIGNv
bnN0Cit7CisgICAgaWYgKCFlbGVtZW50KCkgfHwgIXdpZGdldCgpIHx8ICF3aWRnZXQoKS0+aXNG
cmFtZVZpZXcoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHRvRnJhbWVWaWV3KHdp
ZGdldCgpKS0+ZW1iZWRkZWRDb250ZW50Qm94KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAppbmRleCA5OWRjZDUzLi5l
YmRmOTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUu
b3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwOSwgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
flJlbmRlcldpZGdldCgpOwogCiAgICAgV2lkZ2V0KiB3aWRnZXQoKSBjb25zdCB7IHJldHVybiBt
X3dpZGdldC5nZXQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRXaWRnZXQoUGFzc1JlZlB0cjxX
aWRnZXQ+KTsKKyAgICB2b2lkIHNldFdpZGdldChQYXNzUmVmUHRyPFdpZGdldD4pOwogCiAgICAg
c3RhdGljIFJlbmRlcldpZGdldCogZmluZChjb25zdCBXaWRnZXQqKTsKIApAQCAtNzEsNiArNzEs
MTIgQEAgcHVibGljOgogICAgIFJlbmRlckFyZW5hKiByZWYoKSB7ICsrbV9yZWZDb3VudDsgcmV0
dXJuIHJlbmRlckFyZW5hKCk7IH0KICAgICB2b2lkIGRlcmVmKFJlbmRlckFyZW5hKik7CiAKKyNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgYm9vbCByZXF1aXJlc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmcoKSBjb25zdDsKKyNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIHZpZXdD
bGVhcmVkKCkgeyB9CisKIHByb3RlY3RlZDoKICAgICBSZW5kZXJXaWRnZXQoRWxlbWVudCopOwog
CkBAIC04MywxMiArODksMTcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBwYWludChQ
YWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgQ3Vy
c29yRGlyZWN0aXZlIGdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYsIEN1cnNvciYpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVx
dWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5D
b250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFj
dGlvbikgT1ZFUlJJREU7Ci0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhQYWludElu
Zm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOworI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKKyAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IE9WRVJSSURFOworI2Vu
ZGlmCiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzV2lkZ2V0KCkgY29uc3QgT1ZFUlJJ
REUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgdmlydHVhbCBib29sIG5lZWRzUHJlZmVy
cmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpIGNvbnN0IE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1
YWwgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCBPVkVSUklERSBGSU5BTDsK
KwogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBPVkVSUklERSBGSU5BTDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTZWxlY3Rpb25TdGF0ZShTZWxlY3Rpb25TdGF0ZSkgT1ZFUlJJREUgRklOQUw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAppbmRleCA4M2Uy
YWM4Li4zZWQ1NTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5jcHAKQEAgLTMzLDcgKzMzLDYgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0Lmgi
CiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1
ZGUgIlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdDb250YWluZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlQ29u
dGFpbmVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4dC5jcHAKaW5kZXggZDc5
MDAxYS4uY2E3YmI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmNwcApA
QCAtMjksNyArMjksNiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJG
b250TWV0cmljcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5o
IgogI2luY2x1ZGUgIlJlbmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdWaWV3cG9y
dENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmNwcAppbmRleCA1OTI5NzI5Li5iMDdmODdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCkBAIC0zOSwxMiArMzksMTIgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKLSNp
bmNsdWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2UuaCIKICNp
bmNsdWRlICJSZW5kZXJTVkdNb2RlbE9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jvb3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJl
bmRlclZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTTUlMVGlt
ZUNvbnRhaW5lci5oIgogI2luY2x1ZGUgIlNWR0FuZ2xlLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVu
dEluc3RhbmNlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggMTdhMzkxMi4uOTExMzIyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmNwcApAQCAtNTEsNyArNTEsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgot
I2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNs
dWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IGNiYmUz
OWEuLjFkYzIwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHAKQEAgLTU4LDggKzU4LDggQEAKICNpbmNs
dWRlICJQbHVnaW5EYXRhYmFzZS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRl
ICJQcm9ncmVzc1RyYWNrZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAi
UmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDA4
MjUzYTYuLjhhZDlkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAt
ODUsOCArODUsOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ByaW50
Q29udGV4dC5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJQYXJ0Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1JlbmRlclZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdFZhbHVlLmg+CkBA
IC01NjIsNyArNTYyLDcgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNl
KERvY3VtZW50TG9hZGVyKiBsb2FkZXIpCiAtIChCT09MKV9nZXRWaXNpYmxlUmVjdDooTlNSZWN0
KilyZWN0CiB7CiAgICAgQVNTRVJUX0FSRyhyZWN0LCByZWN0KTsKLSAgICBpZiAoUmVuZGVyUGFy
dCogb3duZXJSZW5kZXJlciA9IF9wcml2YXRlLT5jb3JlRnJhbWUtPm93bmVyUmVuZGVyZXIoKSkg
eworICAgIGlmIChSZW5kZXJXaWRnZXQqIG93bmVyUmVuZGVyZXIgPSBfcHJpdmF0ZS0+Y29yZUZy
YW1lLT5vd25lclJlbmRlcmVyKCkpIHsKICAgICAgICAgaWYgKG93bmVyUmVuZGVyZXItPm5lZWRz
TGF5b3V0KCkpCiAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgICAgICpyZWN0ID0gb3duZXJS
ZW5kZXJlci0+cGl4ZWxTbmFwcGVkQWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCmluZGV4IDM2Y2VjNWQuLjJiNWY2
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCkBAIC02MSw4
ICs2MSw4IEBACiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL1JlbmRlclBhcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgorI2ltcG9y
dCA8V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGhyZWFkQ2hlY2su
aD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUZyYW1lVmlldy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlVmlldy5oPgpAQCAtMjg5LDkgKzI4OSw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBh
ZGRUeXBlc0Zyb21DbGFzcyhOU011dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2Jq
Q0NsCiAgICAgdmlldy0+c2V0UGxhdGZvcm1XaWRnZXQoX3ByaXZhdGUtPmZyYW1lU2Nyb2xsVmll
dyk7CiAKICAgICAvLyBGSVhNRTogRnJhbWUgdHJpZXMgdG8gZG8gdGhpcyB0b28uIElzIHRoaXMg
Y29kZSBuZWVkZWQ/Ci0gICAgaWYgKFJlbmRlclBhcnQqIG93bmVyID0gZnJhbWUtPm93bmVyUmVu
ZGVyZXIoKSkgeworICAgIGlmIChSZW5kZXJXaWRnZXQqIG93bmVyID0gZnJhbWUtPm93bmVyUmVu
ZGVyZXIoKSkgewogICAgICAgICBvd25lci0+c2V0V2lkZ2V0KHZpZXcpOwotICAgICAgICAvLyBO
b3cgdGhlIHJlbmRlciBwYXJ0IG93bnMgdGhlIHZpZXcsIHNvIHdlIGRvbid0IGFueSBtb3JlLgor
ICAgICAgICAvLyBOb3cgdGhlIFJlbmRlcldpZGdldCBvd25zIHRoZSB2aWV3LCBzbyB3ZSBkb24n
dCBhbnkgbW9yZS4KICAgICB9CiAKICAgICB2aWV3LT51cGRhdGVDYW5IYXZlU2Nyb2xsYmFycygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRRdC5jcHAKaW5kZXggYjRhMmJmMC4uOGM3MzVhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCkBA
IC02Nyw3ICs2Nyw2IEBACiAjaW5jbHVkZSAiUVdlYlBhZ2VBZGFwdGVyLmgiCiAjaW5jbHVkZSAi
UVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJRdFBsdWdpbldpZGdldEFkYXB0ZXIuaCIKLSNp
bmNsdWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZUludGVybmFsLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXIu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA4Mzg0OGMyLi5hYmE3NGVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC03Niw3ICs3Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5QYWNrYWdl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5WaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
b2xpY3lDaGVja2VyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJQYXJ0Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9SZW5kZXJXaWRnZXQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFu
ZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAKaW5kZXgg
NDQzZmRlNy4uODUzYjFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCkBAIC0zNiw3ICsz
Niw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNlLmgiCiAj
aW5jbHVkZSAiUG9saWN5Q2hlY2tlci5oIgotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKKyNpbmNs
dWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTeXN0ZW1JbmZvLmgiCiAjaW5jbHVkZSAi
V2ViS2l0VmVyc2lvbi5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>211393</attachid>
            <date>2013-09-11 21:36:13 -0700</date>
            <delta_ts>2013-09-11 22:20:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121200-4.diff</filename>
            <type>text/plain</type>
            <size>64663</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">Y29tbWl0IGRkOGE3ZDFiZWY0MGFmN2FkYWJjNjhmZGYzOThkMWJlNWJlMTk2ODQKQXV0aG9yOiBB
bmRyZWFzIEtsaW5nIDxha2xpbmdAYXBwbGUuY29tPgpEYXRlOiAgIFRodSBTZXAgMTIgMDM6MDE6
MjcgMjAxMyArMDEwMAoKICAgIDEyMTIwMAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODA0Nzcz
YS4uNjY4NDM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIxNTksNyArMjE1OSw2IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNw
cAogICAgIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlck9i
amVjdENoaWxkTGlzdC5jcHAKLSAgICByZW5kZXJpbmcvUmVuZGVyUGFydC5jcHAKICAgICByZW5k
ZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwCiAgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcAog
ICAgIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyMWZjZi4uZjQ1
YjZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA5LTExICBBbmRyZWFzIEts
aW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSBSZW5kZXJQYXJ0IGludG8g
UmVuZGVyV2lkZ2V0LgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTIxMjAwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSB0aGUg
UmVuZGVyUGFydCBjbGFzcyBhbmQgbW92ZSBpdHMgZnVuY3Rpb25hbGl0eSBpbnRvIFJlbmRlcldp
ZGdldC4KKyAgICAgICAgSXQgd2FzIGFjdGluZyBhcyBhIHBvaW50bGVzcyBleHRyYSBsYXllciBi
ZXR3ZWVuIFJlbmRlcldpZGdldCBhbmQgcmVuZGVyZXJzCisgICAgICAgIGZvciBlbWJlZGRlZCBv
YmplY3RzLCBmcmFtZXMgYW5kIGlmcmFtZXMuCisKIDIwMTMtMDktMTEgIEVyaWMgQ2FybHNvbiAg
PGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtIEFQSV0gVXBk
YXRpbmcgTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IgdG8gbWF0Y2ggdGhlIHNwZWMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDc1MmQ0ZWIuLmZhNzRjZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtNDQ3Miw4ICs0NDcyLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT3ZlcmZsb3cuaCBcCi0JU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clBhcnQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclF1b3RlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAxYWUzOWNlLi5lN2Y5YWFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkKQEAgLTExOTcsNyArMTE5Nyw2IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRl
cmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwIFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlck9iamVjdENoaWxkTGlzdC5jcHAgXAotICAg
IHJlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclByb2dyZXNz
LmNwcCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclF1b3RlLmNwcCBcCiAgICAgcmVuZGVyaW5nL1Jl
bmRlclJlZ2lvbi5jcHAgXApAQCAtMjQ2Niw3ICsyNDY1LDYgQEAgSEVBREVSUyArPSBcCiAgICAg
cmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRl
ck9iamVjdENoaWxkTGlzdC5oIFwKICAgICByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggXAotICAg
IHJlbmRlcmluZy9SZW5kZXJQYXJ0LmggXAogICAgIHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5o
IFwKICAgICByZW5kZXJpbmcvUmVuZGVyUXVvdGUuaCBcCiAgICAgcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1NmE5NzIwLi43NDg5MDMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgpAQCAtNzksNyArNzksNiBAQCBfX1pON1dlYkNvcmUxMEpTRG9jdW1l
bnQ2c19pbmZvRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNyZWF0ZUVSS04zV1RGMTJBdG9t
aWNTdHJpbmdFTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2luZG93RUVFUktOU18xOFBsYXRmb3Jt
TW91c2VFdmVudEVpTlM1X0lOU180Tm9kZUVFRQogX19aTjdXZWJDb3JlMTBNb3VzZUV2ZW50NmNy
ZWF0ZUVSS04zV1RGMTJBdG9taWNTdHJpbmdFYmJkTlMxXzEwUGFzc1JlZlB0cklOU185RE9NV2lu
ZG93RUVFaWlpaWliYmJidE5TNV9JTlNfMTFFdmVudFRhcmdldEVFRU5TNV9JTlNfOUNsaXBib2Fy
ZEVFRWIKIF9fWk43V2ViQ29yZTEwUGFzdGVib2FyZDE0d3JpdGVQbGFpblRleHRFUktOM1dURjZT
dHJpbmdFTlMwXzE4U21hcnRSZXBsYWNlT3B0aW9uRQotX19aTjdXZWJDb3JlMTBSZW5kZXJQYXJ0
OXNldFdpZGdldEVOM1dURjEwUGFzc1JlZlB0cklOU182V2lkZ2V0RUVFCiBfX1pON1dlYkNvcmUx
MFJlbmRlclZpZXcxMGNvbXBvc2l0b3JFdgogX19aTjdXZWJDb3JlMTBSZW5kZXJWaWV3N2hpdFRl
c3RFUktOU18xNEhpdFRlc3RSZXF1ZXN0RVJOU18xM0hpdFRlc3RSZXN1bHRFCiBfX1pON1dlYkNv
cmUxMFNjcm9sbFZpZXcxNnNldFBhcmVudFZpc2libGVFYgpAQCAtMjExLDYgKzIxMCw3IEBAIF9f
Wk43V2ViQ29yZTEyUHJpbnRDb250ZXh0QzFFUE5TXzVGcmFtZUUKIF9fWk43V2ViQ29yZTEyUHJp
bnRDb250ZXh0RDFFdgogX19aTjdXZWJDb3JlMTJSZW5kZXJPYmplY3QxNnBhaW50aW5nUm9vdFJl
Y3RFUk5TXzEwTGF5b3V0UmVjdEUKIF9fWk43V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTlzY3JvbGxS
ZWN0VG9WaXNpYmxlRVJLTlNfMTBMYXlvdXRSZWN0RVJLTlNfMTVTY3JvbGxBbGlnbm1lbnRFUzZf
CitfX1pON1dlYkNvcmUxMlJlbmRlcldpZGdldDlzZXRXaWRnZXRFTjNXVEYxMFBhc3NSZWZQdHJJ
TlNfNldpZGdldEVFRQogX19aTjdXZWJDb3JlMTJTUUxSZXN1bHRSb3dFCiBfX1pON1dlYkNvcmUx
MlNoYXJlZEJ1ZmZlcjEwd3JhcENGRGF0YUVQSzhfX0NGRGF0YQogX19aTjdXZWJDb3JlMTJTaGFy
ZWRCdWZmZXIxMHdyYXBOU0RhdGFFUDZOU0RhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDMzZTM0ZmIuLmEwYWY2MjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTAyNTks
MjAgKzEwMjU5LDYgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcUmVuZGVyUGFydC5jcHAiPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50
cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8
L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclByb2dyZXNzLmNwcCI+CiAgICAgICA8RXhjbHVk
ZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdE
ZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8
eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMDA1OCw3ICsyMDA0NCw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyTmFtZWRGbG93VGhyZWFk
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVuZGVyT2JqZWN0
Q2hpbGRMaXN0LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVu
ZGVyUGFydC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRl
clByb2dyZXNzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcUmVu
ZGVyUXVvdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5k
ZXJSZWdpb24uaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJv
ai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCBlOThiZDZmLi41ZTU0NDc3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRl
cnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5m
aWx0ZXJzCkBAIC0yNjM3LDkgKzI2MzcsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cmVuZGVyaW5nXFJlbmRlck9iamVjdENoaWxkTGlzdC5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5k
ZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHJlbmRlcmluZ1xSZW5kZXJQYXJ0LmNwcCI+Ci0gICAgICA8RmlsdGVyPnJlbmRlcmluZzwv
RmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVu
ZGVyaW5nXFJlbmRlclByb2dyZXNzLmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZzwvRmls
dGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtOTYyNCw5ICs5NjIxLDYgQEAKICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xSZW5kZXJPYmplY3RDaGlsZExpc3QuaCI+CiAgICAg
ICA8RmlsdGVyPnJlbmRlcmluZzwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclBhcnQuaCI+Ci0gICAgICA8RmlsdGVy
PnJlbmRlcmluZzwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXFJlbmRlclByb2dyZXNzLmgiPgogICAgICAgPEZpbHRlcj5yZW5k
ZXJpbmc8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNDlmNDQ5Li45MDJhZmE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNzYyLDEyICszNzYyLDEwIEBACiAJCUE4NzFERTJDMEExNTJBQzgwMEIxMkE2OCAvKiBI
VE1MQm9keUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4NzFERTIwMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCAqLzsg
fTsKIAkJQTg3MURFMkQwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxIZWFkRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURFMjEwQTE1MkFD
ODAwQjEyQTY4IC8qIEhUTUxIZWFkRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4NzFERTJFMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1M
RnJhbWVTZXRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4NzFERTIyMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MRnJhbWVTZXRFbGVtZW50
LmNwcCAqLzsgfTsKLQkJQTg3MURFRDAwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg3MURFQzgw
QTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlclBhcnQuY3BwICovOyB9OwogCQlBODcxREVEMTBBMTUz
MEM3MDBCMTJBNjggLyogUmVuZGVyRnJhbWVTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERUM5MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJG
cmFtZVNldC5oICovOyB9OwogCQlBODcxREVEMjBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyRnJh
bWVTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTg3MURFQ0EwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lU2V0LmNwcCAqLzsgfTsKIAkJ
QTg3MURFRDMwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDQjBBMTUzMEM3MDBCMTJBNjgg
LyogUmVuZGVyRnJhbWUuaCAqLzsgfTsKIAkJQTg3MURFRDQwQTE1MzBDNzAwQjEyQTY4IC8qIFJl
bmRlckZyYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4NzFERUNDMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZS5jcHAgKi87IH07Ci0J
CUE4NzFERUQ3MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREVDRjBBMTUzMEM3MDBCMTJBNjgg
LyogUmVuZGVyUGFydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE4NzFERkUyMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBsYWNlZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODcxREZERTBB
MTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuY3BwICovOyB9OwogCQlBODcxREZFMzBB
MTUzNzZCMDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERkRGMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5k
ZXJSZXBsYWNlZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE4NzFERkU0MEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NzFERkUwMEExNTM3NkIw
MEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTAzOTAsMTIgKzEwMzg4LDEwIEBACiAJCUE4NzFERTIwMEEx
NTJBQzgwMEIxMkE2OCAvKiBIVE1MQm9keUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhUTUxCb2R5RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODcxREUyMTBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEhlYWRFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MSGVhZEVsZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MURFMjIwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhU
TUxGcmFtZVNldEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBODcx
REVDODBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUGFydC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4NzFERUM5MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZVNldC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRnJhbWVTZXQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3MURFQ0EwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRl
ckZyYW1lU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJGcmFtZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERUNCMEEx
NTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJGcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3
MURFQ0MwQTE1MzBDNzAwQjEyQTY4IC8qIFJlbmRlckZyYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJGcmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUE4NzFERUNGMEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJQYXJ0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4NzFERkRFMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJSZXBs
YWNlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUmVw
bGFjZWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODcxREZERjBBMTUzNzZC
MDBCMTJBNjggLyogUmVuZGVyUmVwbGFjZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlclJlcGxhY2VkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
NzFERkUwMEExNTM3NkIwMEIxMkE2OCAvKiBSZW5kZXJXaWRnZXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcldpZGdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjA0ODksOCArMjA0ODUsNiBAQAogCQkJCUJDNjBFRkI2MEYzM0EwRTcwMDgxMkE5
MyAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuY3BwICovLAogCQkJCUJDMkNDOERFMEYzMjg4MTAw
MEE5REYyNiAvKiBSZW5kZXJPYmplY3RDaGlsZExpc3QuaCAqLywKIAkJCQlCQ0ZBOTMwNzEwMzMz
MTkzMDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCAqLywKLQkJCQlBODcxREVDODBBMTUzMEM3
MDBCMTJBNjggLyogUmVuZGVyUGFydC5jcHAgKi8sCi0JCQkJQTg3MURFQ0YwQTE1MzBDNzAwQjEy
QTY4IC8qIFJlbmRlclBhcnQuaCAqLywKIAkJCQlBNDNCRjU5QTExNDkyOTI4MDBDNjQzQ0EgLyog
UmVuZGVyUHJvZ3Jlc3MuY3BwICovLAogCQkJCUE0M0JGNTlCMTE0OTI5MjgwMEM2NDNDQSAvKiBS
ZW5kZXJQcm9ncmVzcy5oICovLAogCQkJCTVBNTc0RjIyMTMxREI5MzkwMDQ3MUI4OCAvKiBSZW5k
ZXJRdW90ZS5jcHAgKi8sCkBAIC0yMzYyOSw3ICsyMzYyMyw2IEBACiAJCQkJQkNFQTQ4ODAwOTdE
OTMwMjAwOTRDOUU0IC8qIFJlbmRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyQ0M4
REYwRjMyODgxMDAwQTlERjI2IC8qIFJlbmRlck9iamVjdENoaWxkTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNGQTkzMDgxMDMzMzE5MzAwN0IyNUQxIC8qIFJlbmRlck92ZXJmbG93LmggaW4g
SGVhZGVycyAqLywKLQkJCQlBODcxREVENzBBMTUzMEM3MDBCMTJBNjggLyogUmVuZGVyUGFydC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTQzQkY1OUQxMTQ5MjkyODAwQzY0M0NBIC8qIFJlbmRlclBy
b2dyZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QTU3NEYyNTEzMURCOTM5MDA0NzFCODggLyog
UmVuZGVyUXVvdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUQ3MEFENjU4MTNFMTM0MkIwMDVCNTBC
NCAvKiBSZW5kZXJSZWdpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MjksNyArMjY4MjIsNiBA
QAogCQkJCTFBM0ZGOUMzMTUyNjUzNTkwMDIyODhBMSAvKiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFQTQ4N0YwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRl
ck9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzYwRUZCNzBGMzNBMEU3MDA4MTJBOTMg
LyogUmVuZGVyT2JqZWN0Q2hpbGRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4NzFERUQw
MEExNTMwQzcwMEIxMkE2OCAvKiBSZW5kZXJQYXJ0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE0
M0JGNTlDMTE0OTI5MjgwMEM2NDNDQSAvKiBSZW5kZXJQcm9ncmVzcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1QTU3NEYyNDEzMURCOTM5MDA0NzFCODggLyogUmVuZGVyUXVvdGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQjVCN0ExNzAxN0MxMEFBODAwRTRBQTBBIC8qIEVsZW1lbnREYXRhLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmNwcAppbmRleCA3OGQ2OWI0Li4xMDJmZmExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3Jv
bGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3LmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcuaCIKICNpbmNs
dWRlICJXaWRnZXQuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDk5MTg2Yzgu
LmYwMjg5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTY4LDcgKzY4LDYgQEAK
ICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAjaW5jbHVkZSAiUmVtb3ZlRm9ybWF0Q29tbWFuZC5o
IgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2lu
Y2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyZWRQb3NpdGlvbi5o
IgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCmluZGV4IGY5MTMzODEuLmJiMTM5MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCkBAIC04OSw3ICs4OSw3IEBAIFJl
bmRlcldpZGdldCogSFRNTEFwcGxldEVsZW1lbnQ6OnJlbmRlcldpZGdldEZvckpTQmluZGluZ3Mo
KSBjb25zdAogICAgICAgICByZXR1cm4gMDsKIAogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAgcmV0dXJuIHJlbmRlclBhcnQoKTsKKyAg
ICByZXR1cm4gcmVuZGVyV2lkZ2V0KCk7CiB9CiAKIHZvaWQgSFRNTEFwcGxldEVsZW1lbnQ6OnVw
ZGF0ZVdpZGdldChQbHVnaW5DcmVhdGlvbk9wdGlvbiBwbHVnaW5DcmVhdGlvbk9wdGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggOWNkNjFm
NS4uMDQ0ZjdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVt
ZW50QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFz
ZS5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAj
aW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0
LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIlNjcmlwdEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtMTc2LDcgKzE3Niw3IEBAIHZvaWQgSFRNTEZyYW1lRWxlbWVudEJhc2U6OmRpZE5v
dGlmeVN1YnRyZWVJbnNlcnRpb25zKENvbnRhaW5lck5vZGUqKQogCiB2b2lkIEhUTUxGcmFtZUVs
ZW1lbnRCYXNlOjpkaWRBdHRhY2hSZW5kZXJlcnMoKQogewotICAgIGlmIChSZW5kZXJQYXJ0KiBw
YXJ0ID0gcmVuZGVyUGFydCgpKSB7CisgICAgaWYgKFJlbmRlcldpZGdldCogcGFydCA9IHJlbmRl
cldpZGdldCgpKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBjb250ZW50RnJhbWUoKSkK
ICAgICAgICAgICAgIHBhcnQtPnNldFdpZGdldChmcmFtZS0+dmlldygpKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5jcHAKaW5kZXggODcwNWNm
My4uMjYzNDY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVPd25l
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmNwcApAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJQ
YXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIApAQCAtNDIsMTMgKzQyLDEzIEBAIEhUTUxGcmFtZU93
bmVyRWxlbWVudDo6SFRNTEZyYW1lT3duZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtCiB7CiB9CiAKLVJlbmRlclBhcnQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6
cmVuZGVyUGFydCgpIGNvbnN0CitSZW5kZXJXaWRnZXQqIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6
cmVuZGVyV2lkZ2V0KCkgY29uc3QKIHsKICAgICAvLyBIVE1MT2JqZWN0RWxlbWVudCBhbmQgSFRN
TEVtYmVkRWxlbWVudCBtYXkgcmV0dXJuIGFyYml0cmFyeSByZW5kZXJlcnMKICAgICAvLyB3aGVu
IHVzaW5nIGZhbGxiYWNrIGNvbnRlbnQuCi0gICAgaWYgKCFyZW5kZXJlcigpIHx8ICFyZW5kZXJl
cigpLT5pc1JlbmRlclBhcnQoKSkKKyAgICBpZiAoIXJlbmRlcmVyKCkgfHwgIXJlbmRlcmVyKCkt
PmlzV2lkZ2V0KCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB0b1JlbmRlclBhcnQo
cmVuZGVyZXIoKSk7CisgICAgcmV0dXJuIHRvUmVuZGVyV2lkZ2V0KHJlbmRlcmVyKCkpOwogfQog
CiB2b2lkIEhUTUxGcmFtZU93bmVyRWxlbWVudDo6c2V0Q29udGVudEZyYW1lKEZyYW1lKiBmcmFt
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZU93bmVyRWxlbWVudC5oCmluZGV4IDY2
ZjViOTg2Li41ZGRiNjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZU93bmVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lT3duZXJF
bGVtZW50LmgKQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
T01XaW5kb3c7CiBjbGFzcyBGcmFtZTsKLWNsYXNzIFJlbmRlclBhcnQ7CitjbGFzcyBSZW5kZXJX
aWRnZXQ7CiAKICNpZiBFTkFCTEUoU1ZHKQogY2xhc3MgU1ZHRG9jdW1lbnQ7CkBAIC00NiwxMCAr
NDYsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBkaXNjb25uZWN0Q29udGVudEZyYW1lKCk7CiAK
LSAgICAvLyBNb3N0IHN1YmNsYXNzZXMgdXNlIFJlbmRlclBhcnQgKGVpdGhlciBSZW5kZXJFbWJl
ZGRlZE9iamVjdCBvciBSZW5kZXJJRnJhbWUpCisgICAgLy8gTW9zdCBzdWJjbGFzc2VzIHVzZSBS
ZW5kZXJXaWRnZXQgKGVpdGhlciBSZW5kZXJFbWJlZGRlZE9iamVjdCBvciBSZW5kZXJJRnJhbWUp
CiAgICAgLy8gZXhjZXB0IGZvciBIVE1MT2JqZWN0RWxlbWVudCBhbmQgSFRNTEVtYmVkRWxlbWVu
dCB3aGljaCBtYXkgcmV0dXJuIGFueQogICAgIC8vIFJlbmRlck9iamVjdCB3aGVuIHVzaW5nIGZh
bGxiYWNrIGNvbnRlbnQuCi0gICAgUmVuZGVyUGFydCogcmVuZGVyUGFydCgpIGNvbnN0OworICAg
IFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0KCkgY29uc3Q7CiAKICNpZiBFTkFCTEUoU1ZHKQog
ICAgIFNWR0RvY3VtZW50KiBnZXRTVkdEb2N1bWVudChFeGNlcHRpb25Db2RlJikgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IDllOTE2MWIuLjE5
YWUyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBAIC04
MCw3ICs4MCw3IEBAIFBhc3NSZWZQdHI8SFRNTE9iamVjdEVsZW1lbnQ+IEhUTUxPYmplY3RFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnCiBSZW5kZXJXaWRnZXQqIEhUTUxP
YmplY3RFbGVtZW50OjpyZW5kZXJXaWRnZXRGb3JKU0JpbmRpbmdzKCkgY29uc3QKIHsKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotICAgIHJl
dHVybiByZW5kZXJQYXJ0KCk7IC8vIFRoaXMgd2lsbCByZXR1cm4gMCBpZiB0aGUgcmVuZGVyZXIg
aXMgbm90IGEgUmVuZGVyUGFydC4KKyAgICByZXR1cm4gcmVuZGVyV2lkZ2V0KCk7IC8vIFRoaXMg
d2lsbCByZXR1cm4gMCBpZiB0aGUgcmVuZGVyZXIgaXMgbm90IGEgUmVuZGVyV2lkZ2V0LgogfQog
CiBib29sIEhUTUxPYmplY3RFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBs
dWdJbkltYWdlRWxlbWVudC5jcHAKaW5kZXggZWExNmU3YS4uZjZjYjZlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5JbWFnZUVsZW1lbnQuY3BwCkBAIC0yMTEsNyArMjEx
LDcgQEAgUmVuZGVyT2JqZWN0KiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50OjpjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclMKIAogICAgIC8vIEZhbGxiYWNrIGNvbnRlbnQg
YnJlYWtzIHRoZSBET00tPlJlbmRlcmVyIGNsYXNzIHJlbGF0aW9uc2hpcCBvZiB0aGlzCiAgICAg
Ly8gY2xhc3MgYW5kIGFsbCBzdXBlcmNsYXNzZXMgYmVjYXVzZSBjcmVhdGVPYmplY3Qgd29uJ3Qg
bmVjZXNzYXJpbHkKLSAgICAvLyByZXR1cm4gYSBSZW5kZXJFbWJlZGRlZE9iamVjdCwgUmVuZGVy
UGFydCBvciBldmVuIFJlbmRlcldpZGdldC4KKyAgICAvLyByZXR1cm4gYSBSZW5kZXJFbWJlZGRl
ZE9iamVjdCBvciBSZW5kZXJXaWRnZXQuCiAgICAgaWYgKHVzZUZhbGxiYWNrQ29udGVudCgpKQog
ICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QodGhpcywgc3R5bGUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCmluZGV4IGEwMDU4MmIuLmQ4MzZi
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwCkBAIC0xMjAsNyArMTIw
LDcgQEAgdm9pZCBQbHVnaW5Eb2N1bWVudFBhcnNlcjo6YXBwZW5kQnl0ZXMoRG9jdW1lbnRXcml0
ZXIqLCBjb25zdCBjaGFyKiwgc2l6ZV90KQogICAgIC8vIGNhbiBzeW5jaHJvbm91c2x5IHJlZGly
ZWN0IGRhdGEgdG8gdGhlIHBsdWdpbi4KICAgICBmcmFtZS0+dmlldygpLT5mbHVzaEFueVBlbmRp
bmdQb3N0TGF5b3V0VGFza3MoKTsKIAotICAgIGlmIChSZW5kZXJQYXJ0KiByZW5kZXJlciA9IG1f
ZW1iZWRFbGVtZW50LT5yZW5kZXJQYXJ0KCkpIHsKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiByZW5k
ZXJlciA9IG1fZW1iZWRFbGVtZW50LT5yZW5kZXJXaWRnZXQoKSkgewogICAgICAgICBpZiAoV2lk
Z2V0KiB3aWRnZXQgPSByZW5kZXJlci0+d2lkZ2V0KCkpIHsKICAgICAgICAgICAgIGZyYW1lLT5s
b2FkZXIoKS5jbGllbnQoKS5yZWRpcmVjdERhdGFUb1BsdWdpbih3aWRnZXQpOwogICAgICAgICAg
ICAgLy8gSW4gYSBwbHVnaW4gZG9jdW1lbnQsIHRoZSBtYWluIHJlc291cmNlIGlzIHRoZSBwbHVn
aW4uIElmIHdlIGhhdmUgYSBudWxsIHdpZGdldCwgdGhhdCBtZWFucwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDUwNWEz
NTEuLjAxZDU5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTYxLDcgKzYxLDcgQEAKICNlbmRpZgogCiAjaWYgRU5B
QkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgorI2lu
Y2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTEzNzUsOSArMTM3NSw5IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudDo6dXBkYXRlU2l6ZXMoYm9vbCBmb3JjZVVwZGF0ZSkKICAgICAgICAgdmlkZW9Cb3ggPSBt
X3RleHRUcmFja1JlcHJlc2VudGF0aW9uLT5ib3VuZHMoKTsKICAgICBlbHNlIHsKICNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKLSAgICAgICAgaWYgKCFtZWRpYUVsZW1lbnQtPnJl
bmRlcmVyKCkgfHwgIW1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKS0+aXNSZW5kZXJQYXJ0KCkpCisg
ICAgICAgIGlmICghbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpIHx8ICFtZWRpYUVsZW1lbnQtPnJl
bmRlcmVyKCktPmlzUmVuZGVyV2lkZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IHZpZGVvQm94ID0gcGl4ZWxTbmFwcGVkSW50UmVjdCh0b1JlbmRlclBhcnQobWVkaWFFbGVtZW50
LT5yZW5kZXJlcigpKS0+Y29udGVudEJveFJlY3QoKSk7CisgICAgICAgIHZpZGVvQm94ID0gcGl4
ZWxTbmFwcGVkSW50UmVjdCh0b1JlbmRlcldpZGdldChtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkp
LT5jb250ZW50Qm94UmVjdCgpKTsKICNlbHNlCiAgICAgICAgIGlmICghbWVkaWFFbGVtZW50LT5y
ZW5kZXJlcigpIHx8ICFtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPmlzVmlkZW8oKSkKICAgICAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFt
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDQ1NTlkMjcuLjhmOGJjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJmcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9h
ZGVyLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIGJvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RP
YmplY3QoSFRNTFBsdWdJbkltYWdlRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTCiAgICAg
fQogCiAgICAgLy8gSWYgdGhlIHBsdWctaW4gZWxlbWVudCBhbHJlYWR5IGNvbnRhaW5zIGEgc3Vi
ZnJhbWUsIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUgd2lsbCByZS11c2UgaXQuIE90aGVyd2lzZSwK
LSAgICAvLyBpdCB3aWxsIGNyZWF0ZSBhIG5ldyBmcmFtZSBhbmQgc2V0IGl0IGFzIHRoZSBSZW5k
ZXJQYXJ0J3Mgd2lkZ2V0LCBjYXVzaW5nIHdoYXQgd2FzIHByZXZpb3VzbHkgCisgICAgLy8gaXQg
d2lsbCBjcmVhdGUgYSBuZXcgZnJhbWUgYW5kIHNldCBpdCBhcyB0aGUgUmVuZGVyV2lkZ2V0J3Mg
V2lkZ2V0LCBjYXVzaW5nIHdoYXQgd2FzIHByZXZpb3VzbHkgCiAgICAgLy8gaW4gdGhlIHdpZGdl
dCB0byBiZSB0b3JuIGRvd24uCiAgICAgcmV0dXJuIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUob3du
ZXJFbGVtZW50LCBjb21wbGV0ZWRVUkwsIGZyYW1lTmFtZSwgdHJ1ZSwgdHJ1ZSk7CiB9CkBAIC0y
NTUsNyArMjU1LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpsb2FkTWVk
aWFQbGF5ZXJQcm94eVBsdWdpbihOb2RlKiBub2RlLCBjb25zdAogICAgICAgICByZXR1cm4gMDsK
IAogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvSFRNTE1lZGlhRWxlbWVu
dChub2RlKTsKLSAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IHRvUmVuZGVyUGFydChub2RlLT5y
ZW5kZXJlcigpKTsKKyAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcmVyID0gdG9SZW5kZXJXaWRnZXQo
bm9kZS0+cmVuZGVyZXIoKSk7CiAgICAgSW50U2l6ZSBzaXplOwogCiAgICAgaWYgKHJlbmRlcmVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCAwYWM0NGJhLi5mNWUyN2Q1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcApAQCAtNzUsMTEgKzc1LDExIEBACiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5j
bHVkZSAiUGFnZUdyb3VwLmgiCiAjaW5jbHVkZSAiUmVndWxhckV4cHJlc3Npb24uaCIKLSNpbmNs
dWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1
ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRl
ICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC01NjMsNyArNTYzLDcgQEAgUmVuZGVyVmlldyogRnJh
bWU6OmNvbnRlbnRSZW5kZXJlcigpIGNvbnN0CiAgICAgcmV0dXJuIGRvY3VtZW50KCkgPyBkb2N1
bWVudCgpLT5yZW5kZXJWaWV3KCkgOiAwOwogfQogCi1SZW5kZXJQYXJ0KiBGcmFtZTo6b3duZXJS
ZW5kZXJlcigpIGNvbnN0CitSZW5kZXJXaWRnZXQqIEZyYW1lOjpvd25lclJlbmRlcmVyKCkgY29u
c3QKIHsKICAgICBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCA9IG1fb3duZXJF
bGVtZW50OwogICAgIGlmICghb3duZXJFbGVtZW50KQpAQCAtNTc1LDkgKzU3NSw5IEBAIFJlbmRl
clBhcnQqIEZyYW1lOjpvd25lclJlbmRlcmVyKCkgY29uc3QKICAgICAvLyB0aGF0IGl0IGhhcyBz
dGFydGVkIGJ1dCBjYW5jZWxlZCwgdGhlbiB0aGlzIGNhbiB0dXJuIGludG8gYW4gQVNTRVJUCiAg
ICAgLy8gc2luY2UgbV9vd25lckVsZW1lbnQgd291bGQgYmUgMCB3aGVuIHRoZSBsb2FkIGlzIGNh
bmNlbGVkLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODU4NQotICAgIGlmICghb2JqZWN0LT5pc1JlbmRlclBhcnQoKSkKKyAgICBpZiAoIW9iamVjdC0+
aXNXaWRnZXQoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHRvUmVuZGVyUGFydChv
YmplY3QpOworICAgIHJldHVybiB0b1JlbmRlcldpZGdldChvYmplY3QpOwogfQogCiBGcmFtZSog
RnJhbWU6OmZyYW1lRm9yV2lkZ2V0KGNvbnN0IFdpZGdldCogd2lkZ2V0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5o
CmluZGV4IDQ3MmI2N2QuLjcwMzA2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTY3LDggKzY3LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5vZGU7CiAgICAgY2xhc3MgUmFuZ2U7
CiAgICAgY2xhc3MgUmVndWxhckV4cHJlc3Npb247Ci0gICAgY2xhc3MgUmVuZGVyUGFydDsKICAg
ICBjbGFzcyBSZW5kZXJWaWV3OworICAgIGNsYXNzIFJlbmRlcldpZGdldDsKICAgICBjbGFzcyBT
Y3JpcHRDb250cm9sbGVyOwogICAgIGNsYXNzIFNldHRpbmdzOwogICAgIGNsYXNzIFRpbGVkQmFj
a2luZ1N0b3JlOwpAQCAtMTI1LDcgKzEyNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgU2NyaXB0Q29udHJvbGxlciYgc2NyaXB0KCk7CiAgICAgICAgIAogICAgICAgICBSZW5kZXJW
aWV3KiBjb250ZW50UmVuZGVyZXIoKSBjb25zdDsgLy8gUm9vdCBvZiB0aGUgcmVuZGVyIHRyZWUg
Zm9yIHRoZSBkb2N1bWVudCBjb250YWluZWQgaW4gdGhpcyBmcmFtZS4KLSAgICAgICAgUmVuZGVy
UGFydCogb3duZXJSZW5kZXJlcigpIGNvbnN0OyAvLyBSZW5kZXJlciBmb3IgdGhlIGVsZW1lbnQg
dGhhdCBjb250YWlucyB0aGlzIGZyYW1lLgorICAgICAgICBSZW5kZXJXaWRnZXQqIG93bmVyUmVu
ZGVyZXIoKSBjb25zdDsgLy8gUmVuZGVyZXIgZm9yIHRoZSBlbGVtZW50IHRoYXQgY29udGFpbnMg
dGhpcyBmcmFtZS4KIAogICAgIC8vID09PT09PT09IEFsbCBwdWJsaWMgZnVuY3Rpb25zIGJlbG93
IHRoaXMgcG9pbnQgYXJlIGNhbmRpZGF0ZXMgdG8gbW92ZSBvdXQgb2YgRnJhbWUgaW50byBhbm90
aGVyIGNsYXNzLiA9PT09PT09PQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNDBj
ZDYzMy4uZjEwNDFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNjMsMTIgKzYz
LDEyIEBACiAjaW5jbHVkZSAiUmVuZGVySUZyYW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIu
aCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xs
YmFyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhl
bWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0Lmgi
CiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGlu
YXRvci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yNDcsNyArMjQ3LDkgQEAgRnJhbWVW
aWV3Ojp+RnJhbWVWaWV3KCkKICAgICBBU1NFUlQobV9zY2hlZHVsZWRFdmVudHMuaXNFbXB0eSgp
KTsKIAogICAgIEFTU0VSVChmcmFtZSgpLnZpZXcoKSAhPSB0aGlzIHx8ICFmcmFtZSgpLmNvbnRl
bnRSZW5kZXJlcigpKTsKLSAgICBSZW5kZXJQYXJ0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJS
ZW5kZXJlcigpOworCisgICAgLy8gRklYTUU6IEhvdyBjb3VsZCB0aGlzIGV2ZXIgaGFwcGVuIHdo
ZW4gUmVuZGVyV2lkZ2V0IHJldGFpbnMgdGhlIFdpZGdldCE/CisgICAgUmVuZGVyV2lkZ2V0KiBy
ZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwogICAgIGlmIChyZW5kZXJlciAmJiBy
ZW5kZXJlci0+d2lkZ2V0KCkgPT0gdGhpcykKICAgICAgICAgcmVuZGVyZXItPnNldFdpZGdldCgw
KTsKIH0KQEAgLTQwMiw3ICs0MDQsNyBAQCB2b2lkIEZyYW1lVmlldzo6Y2xlYXIoKQogICAgIAog
ICAgIHJlc2V0KCk7CiAKLSAgICBpZiAoUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93
bmVyUmVuZGVyZXIoKSkKKyAgICBpZiAoUmVuZGVyV2lkZ2V0KiByZW5kZXJlciA9IGZyYW1lKCku
b3duZXJSZW5kZXJlcigpKQogICAgICAgICByZW5kZXJlci0+dmlld0NsZWFyZWQoKTsKIAogICAg
IHNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKHRydWUpOwpAQCAtNDI2LDcgKzQyOCw3IEBAIHZvaWQg
RnJhbWVWaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgpLm93bmVy
UmVuZGVyZXIoKTsKKyAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJl
bmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC01NTMs
NyArNTU1LDcgQEAgUGFzc1JlZlB0cjxTY3JvbGxiYXI+IEZyYW1lVmlldzo6Y3JlYXRlU2Nyb2xs
YmFyKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW8KICAgICAgICAgcmV0dXJuIFJlbmRl
clNjcm9sbGJhcjo6Y3JlYXRlQ3VzdG9tU2Nyb2xsYmFyKHRoaXMsIG9yaWVudGF0aW9uLCBkb2NF
bGVtZW50KTsKICAgICAgICAgCiAgICAgLy8gSWYgd2UgaGF2ZSBhbiBvd25pbmcgaWZyYW1lL2Zy
YW1lIGVsZW1lbnQsIHRoZW4gaXQgY2FuIHNldCB0aGUgY3VzdG9tIHNjcm9sbGJhciBhbHNvLgot
ICAgIFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsK
KyAgICBSZW5kZXJXaWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIo
KTsKICAgICBpZiAoZnJhbWVSZW5kZXJlciAmJiBmcmFtZVJlbmRlcmVyLT5zdHlsZSgpLT5oYXNQ
c2V1ZG9TdHlsZShTQ1JPTExCQVIpKQogICAgICAgICByZXR1cm4gUmVuZGVyU2Nyb2xsYmFyOjpj
cmVhdGVDdXN0b21TY3JvbGxiYXIodGhpcywgb3JpZW50YXRpb24sIDAsICZmcmFtZSgpKTsKICAg
ICAKQEAgLTEwNjUsNyArMTA2Nyw3IEBAIFJlbmRlck9iamVjdCogRnJhbWVWaWV3OjpsYXlvdXRS
b290KGJvb2wgb25seUR1cmluZ0xheW91dCkgY29uc3QKIGlubGluZSB2b2lkIEZyYW1lVmlldzo6
Zm9yY2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVkZWQoKQogewogI2lmIEVOQUJMRShTVkcpCi0gICAg
UmVuZGVyUGFydCogb3duZXJSZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOworICAg
IFJlbmRlcldpZGdldCogb3duZXJSZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwog
ICAgIGlmICghb3duZXJSZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzMyLDcgKzE3
MzQsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0KQogCiAgICAgcmVwYWludFNsb3dSZXBhaW50T2JqZWN0cygpOwogCi0g
ICAgaWYgKFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIo
KSkgeworICAgIGlmIChSZW5kZXJXaWRnZXQqIGZyYW1lUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVy
UmVuZGVyZXIoKSkgewogICAgICAgICBpZiAoaXNFbmNsb3NlZEluQ29tcG9zaXRpbmdMYXllcigp
KSB7CiAgICAgICAgICAgICBMYXlvdXRSZWN0IHJlY3QoZnJhbWVSZW5kZXJlci0+Ym9yZGVyTGVm
dCgpICsgZnJhbWVSZW5kZXJlci0+cGFkZGluZ0xlZnQoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmcmFtZVJlbmRlcmVyLT5ib3JkZXJUb3AoKSArIGZyYW1lUmVuZGVyZXItPnBhZGRp
bmdUb3AoKSwKQEAgLTMxMjcsNyArMzEyOSw3IEBAIFNjcm9sbGFibGVBcmVhKiBGcmFtZVZpZXc6
OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QKIAogSW50UmVjdCBGcmFtZVZpZXc6OnNj
cm9sbGFibGVBcmVhQm91bmRpbmdCb3goKSBjb25zdAogewotICAgIFJlbmRlclBhcnQqIG93bmVy
UmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKKyAgICBSZW5kZXJXaWRnZXQqIG93
bmVyUmVuZGVyZXIgPSBmcmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICBpZiAoIW93bmVyUmVu
ZGVyZXIpCiAgICAgICAgIHJldHVybiBmcmFtZVJlY3QoKTsKIApAQCAtMzI4OSw3ICszMjkxLDcg
QEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZVNjcm9sbENvcm5lcigpCiAgICAgICAgIAogICAgICAg
ICBpZiAoIWNvcm5lclN0eWxlKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGFuIG93bmlu
ZyBpZnJhbWUvZnJhbWUgZWxlbWVudCwgdGhlbiBpdCBjYW4gc2V0IHRoZSBjdXN0b20gc2Nyb2xs
YmFyIGFsc28uCi0gICAgICAgICAgICBpZiAoUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgp
Lm93bmVyUmVuZGVyZXIoKSkKKyAgICAgICAgICAgIGlmIChSZW5kZXJXaWRnZXQqIHJlbmRlcmVy
ID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCkpCiAgICAgICAgICAgICAgICAgY29ybmVyU3R5bGUg
PSByZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoU0NS
T0xMQkFSX0NPUk5FUiksIHJlbmRlcmVyLT5zdHlsZSgpKTsKICAgICAgICAgfQogICAgIH0KQEAg
LTM0MTEsNyArMzQxMyw3IEBAIGJvb2wgRnJhbWVWaWV3Ojppc0luQ2hpbGRGcmFtZVdpdGhGcmFt
ZUZsYXR0ZW5pbmcoKSBjb25zdAogICAgIC8vIEZyYW1lIGZsYXR0ZW5pbmcgYXBwbGllcyB3aGVu
IHRoZSBvd25lciBlbGVtZW50IGlzIGVpdGhlciBpbiBhIGZyYW1lc2V0IG9yCiAgICAgLy8gYW4g
aWZyYW1lIHdpdGggZmxhdHRlbmluZyBwYXJhbWV0ZXJzLgogICAgIGlmIChmcmFtZSgpLm93bmVy
RWxlbWVudCgpLT5oYXNUYWdOYW1lKGlmcmFtZVRhZykpIHsKLSAgICAgICAgUmVuZGVySUZyYW1l
KiBpZnJhbWVSZW5kZXJlciA9IHRvUmVuZGVySUZyYW1lKGZyYW1lKCkub3duZXJFbGVtZW50KCkt
PnJlbmRlclBhcnQoKSk7CisgICAgICAgIFJlbmRlcklGcmFtZSogaWZyYW1lUmVuZGVyZXIgPSB0
b1JlbmRlcklGcmFtZShmcmFtZSgpLm93bmVyRWxlbWVudCgpLT5yZW5kZXJXaWRnZXQoKSk7CiAg
ICAgICAgIGlmIChpZnJhbWVSZW5kZXJlci0+ZmxhdHRlbkZyYW1lKCkgfHwgaWZyYW1lUmVuZGVy
ZXItPmlzU2VhbWxlc3MoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KQEAgLTM5
MDUsNyArMzkwNyw3IEBAIEludFJlY3QgRnJhbWVWaWV3Ojpjb252ZXJ0VG9Db250YWluaW5nVmll
dyhjb25zdCBJbnRSZWN0JiBsb2NhbFJlY3QpIGNvbnN0CiAgICAgICAgIGlmIChwYXJlbnRTY3Jv
bGxWaWV3LT5pc0ZyYW1lVmlldygpKSB7CiAgICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBh
cmVudFZpZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRTY3JvbGxWaWV3KTsKICAgICAgICAgICAgIC8v
IEdldCBvdXIgcmVuZGVyZXIgaW4gdGhlIHBhcmVudCB2aWV3Ci0gICAgICAgICAgICBSZW5kZXJQ
YXJ0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOworICAgICAgICAgICAgUmVu
ZGVyV2lkZ2V0KiByZW5kZXJlciA9IGZyYW1lKCkub3duZXJSZW5kZXJlcigpOwogICAgICAgICAg
ICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgICAgICAgICByZXR1cm4gbG9jYWxSZWN0OwogICAg
ICAgICAgICAgICAgIApAQCAtMzkyOSw3ICszOTMxLDcgQEAgSW50UmVjdCBGcmFtZVZpZXc6OmNv
bnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QK
ICAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBh
cmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAgICAgICAvLyBHZXQgb3VyIHJlbmRlcmVyIGluIHRo
ZSBwYXJlbnQgdmlldwotICAgICAgICAgICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgp
Lm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAgICAgIFJlbmRlcldpZGdldCogcmVuZGVyZXIgPSBm
cmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhcmVudFJlY3Q7CiAKQEAgLTM5NTMsNyArMzk1NSw3IEBAIElu
dFBvaW50IEZyYW1lVmlldzo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQm
IGxvY2FsUG9pbnQpIGNvbnN0CiAgICAgICAgICAgICBjb25zdCBGcmFtZVZpZXcqIHBhcmVudFZp
ZXcgPSB0b0ZyYW1lVmlldyhwYXJlbnRTY3JvbGxWaWV3KTsKIAogICAgICAgICAgICAgLy8gR2V0
IG91ciByZW5kZXJlciBpbiB0aGUgcGFyZW50IHZpZXcKLSAgICAgICAgICAgIFJlbmRlclBhcnQq
IHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCk7CisgICAgICAgICAgICBSZW5kZXJX
aWRnZXQqIHJlbmRlcmVyID0gZnJhbWUoKS5vd25lclJlbmRlcmVyKCk7CiAgICAgICAgICAgICBp
ZiAoIXJlbmRlcmVyKQogICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbFBvaW50OwogICAgICAg
ICAgICAgICAgIApAQCAtMzk3OCw3ICszOTgwLDcgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252
ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QK
ICAgICAgICAgICAgIGNvbnN0IEZyYW1lVmlldyogcGFyZW50VmlldyA9IHRvRnJhbWVWaWV3KHBh
cmVudFNjcm9sbFZpZXcpOwogCiAgICAgICAgICAgICAvLyBHZXQgb3VyIHJlbmRlcmVyIGluIHRo
ZSBwYXJlbnQgdmlldwotICAgICAgICAgICAgUmVuZGVyUGFydCogcmVuZGVyZXIgPSBmcmFtZSgp
Lm93bmVyUmVuZGVyZXIoKTsKKyAgICAgICAgICAgIFJlbmRlcldpZGdldCogcmVuZGVyZXIgPSBm
cmFtZSgpLm93bmVyUmVuZGVyZXIoKTsKICAgICAgICAgICAgIGlmICghcmVuZGVyZXIpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhcmVudFBvaW50OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCAyODVlMzk1Li41M2ZiZjg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgY29uc3QgQ29sb3ImIHVuYXZhaWxhYmxl
UGx1Z2luQm9yZGVyQ29sb3IoKQogfQogCiBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UmVuZGVyRW1i
ZWRkZWRPYmplY3QoRWxlbWVudCogZWxlbWVudCkKLSAgICA6IFJlbmRlclBhcnQoZWxlbWVudCkK
KyAgICA6IFJlbmRlcldpZGdldChlbGVtZW50KQogICAgICwgbV9oYXNGYWxsYmFja0NvbnRlbnQo
ZmFsc2UpCiAgICAgLCBtX2lzUGx1Z2luVW5hdmFpbGFibGUoZmFsc2UpCiAgICAgLCBtX2lzVW5h
dmFpbGFibGVQbHVnaW5JbmRpY2F0b3JIaWRkZW4oZmFsc2UpCkBAIC0xMjEsNyArMTIxLDcgQEAg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6On5SZW5kZXJFbWJlZGRlZE9iamVjdCgpCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cmVxdWly
ZXNMYXllcigpIGNvbnN0CiB7Ci0gICAgaWYgKFJlbmRlclBhcnQ6OnJlcXVpcmVzTGF5ZXIoKSkK
KyAgICBpZiAoUmVuZGVyV2lkZ2V0OjpyZXF1aXJlc0xheWVyKCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIAogICAgIHJldHVybiBhbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7CkBA
IC0yMTEsNyArMjExLDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6cGFpbnRDb250ZW50
cyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQKICAgICBIVE1MUGx1Z0lu
RWxlbWVudCogcGx1Z0luRWxlbWVudCA9IHRvSFRNTFBsdWdJbkVsZW1lbnQoZWxlbWVudCgpKTsK
IAogICAgIGlmIChwbHVnSW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA+IEhUTUxQbHVnSW5FbGVt
ZW50OjpEaXNwbGF5aW5nU25hcHNob3QpIHsKLSAgICAgICAgUmVuZGVyUGFydDo6cGFpbnRDb250
ZW50cyhwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICAgICAgUmVuZGVyV2lkZ2V0OjpwYWlu
dENvbnRlbnRzKHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogICAgICAgICBpZiAoIXBsdWdJbkVs
ZW1lbnQtPmlzUmVzdGFydGVkUGx1Z2luKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OnBhaW50KFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPCiAgICAgaWYgKHBhZ2Ug
JiYgcGFpbnRJbmZvLnBoYXNlID09IFBhaW50UGhhc2VGb3JlZ3JvdW5kKQogICAgICAgICBwYWdl
LT5hZGRSZWxldmFudFJlcGFpbnRlZE9iamVjdCh0aGlzLCB2aXN1YWxPdmVyZmxvd1JlY3QoKSk7
CiAKLSAgICBSZW5kZXJQYXJ0OjpwYWludChwYWludEluZm8sIHBhaW50T2Zmc2V0KTsKKyAgICBS
ZW5kZXJXaWRnZXQ6OnBhaW50KHBhaW50SW5mbywgcGFpbnRPZmZzZXQpOwogfQogCiBzdGF0aWMg
dm9pZCBkcmF3UmVwbGFjZW1lbnRBcnJvdyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEZsb2F0UmVjdCYgaW5zaWRlUmVjdCkKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIFJlbmRlckVt
YmVkZGVkT2JqZWN0OjpsYXlvdXQoKQogICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwogICAgIHVw
ZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKIAotICAgIFJlbmRlclBhcnQ6OmxheW91dCgpOworICAgIFJl
bmRlcldpZGdldDo6bGF5b3V0KCk7CiAKICAgICBjbGVhck92ZXJmbG93KCk7CiAgICAgYWRkVmlz
dWFsRWZmZWN0T3ZlcmZsb3coKTsKQEAgLTUzNyw3ICs1MzcsNyBAQCB2b2lkIFJlbmRlckVtYmVk
ZGVkT2JqZWN0Ojp2aWV3Q2xlYXJlZCgpCiAKIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6Om5v
ZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3Qg
TGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rp
b24pCiB7Ci0gICAgaWYgKCFSZW5kZXJQYXJ0Ojpub2RlQXRQb2ludChyZXF1ZXN0LCByZXN1bHQs
IGxvY2F0aW9uSW5Db250YWluZXIsIGFjY3VtdWxhdGVkT2Zmc2V0LCBoaXRUZXN0QWN0aW9uKSkK
KyAgICBpZiAoIVJlbmRlcldpZGdldDo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2Nh
dGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgaGl0VGVzdEFjdGlvbikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghd2lkZ2V0KCkgfHwgIXdpZGdldCgpLT5pc1Bs
dWdpblZpZXdCYXNlKCkpCkBAIC02NDAsNyArNjQwLDcgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpnZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBDdXJz
b3IKICAgICAgICAgY3Vyc29yID0gaGFuZEN1cnNvcigpOwogICAgICAgICByZXR1cm4gU2V0Q3Vy
c29yOwogICAgIH0KLSAgICByZXR1cm4gUmVuZGVyUGFydDo6Z2V0Q3Vyc29yKHBvaW50LCBjdXJz
b3IpOworICAgIHJldHVybiBSZW5kZXJXaWRnZXQ6OmdldEN1cnNvcihwb2ludCwgY3Vyc29yKTsK
IH0KIAogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Y2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5k
ZXggMTliOWM1NC4uZjdkMDZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmgKQEAgLTIzLDcgKzIzLDcgQEAKICNpZm5kZWYgUmVuZGVyRW1i
ZWRkZWRPYmplY3RfaAogI2RlZmluZSBSZW5kZXJFbWJlZGRlZE9iamVjdF9oCiAKLSNpbmNsdWRl
ICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBUZXh0UnVuOwogCiAvLyBSZW5kZXJl
ciBmb3IgZW1iZWRzIGFuZCBvYmplY3RzLCBvZnRlbiwgYnV0IG5vdCBhbHdheXMsIHJlbmRlcmVk
IHZpYSBwbHVnLWlucy4KIC8vIEZvciBleGFtcGxlLCA8ZW1iZWQgc3JjPSJmb28uaHRtbCI+IGRv
ZXMgbm90IGludm9rZSBhIHBsdWctaW4uCi1jbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdCA6IHB1
YmxpYyBSZW5kZXJQYXJ0IHsKK2NsYXNzIFJlbmRlckVtYmVkZGVkT2JqZWN0IDogcHVibGljIFJl
bmRlcldpZGdldCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3QoRWxlbWVudCop
OwogICAgIHZpcnR1YWwgflJlbmRlckVtYmVkZGVkT2JqZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lLmNwcAppbmRleCBkMThlMGZlLi44YmM1NjNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZS5jcHAKQEAgLTMzLDcgKzMzLDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogUmVuZGVyRnJhbWU6OlJlbmRlckZyYW1lKEhUTUxGcmFtZUVsZW1lbnQq
IGZyYW1lKQogICAgIDogUmVuZGVyRnJhbWVCYXNlKGZyYW1lKQogewotICAgIHNldElubGluZShm
YWxzZSk7CiB9CiAKIEZyYW1lRWRnZUluZm8gUmVuZGVyRnJhbWU6OmVkZ2VJbmZvKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5jcHAKaW5kZXggYjEz
ZDRmMy4uOTM5ODhmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZyYW1lQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1l
QmFzZS5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIFJl
bmRlckZyYW1lQmFzZTo6UmVuZGVyRnJhbWVCYXNlKEVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBS
ZW5kZXJQYXJ0KGVsZW1lbnQpCisgICAgOiBSZW5kZXJXaWRnZXQoZWxlbWVudCkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5oCmluZGV4IDRmYWQ1NjAu
LjRhZWU0NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmgK
QEAgLTI2LDEyICsyNiwxMiBAQAogI2lmbmRlZiBSZW5kZXJGcmFtZUJhc2VfaAogI2RlZmluZSBS
ZW5kZXJGcmFtZUJhc2VfaAogCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgorI2luY2x1ZGUgIlJl
bmRlcldpZGdldC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIEJhc2UgY2xhc3MgZm9y
IFJlbmRlckZyYW1lIGFuZCBSZW5kZXJJRnJhbWUKLWNsYXNzIFJlbmRlckZyYW1lQmFzZSA6IHB1
YmxpYyBSZW5kZXJQYXJ0IHsKK2NsYXNzIFJlbmRlckZyYW1lQmFzZSA6IHB1YmxpYyBSZW5kZXJX
aWRnZXQgewogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFJlbmRlckZyYW1lQmFzZShFbGVtZW50
Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKaW5kZXggYTYwYmJhMS4uY2VhN2Y5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTQ1NywxMSArNDU3LDExIEBAIHZvaWQgUmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb21wb3NpdGVkQm91bmRzKCkKIAogdm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6OnVwZGF0ZUFmdGVyV2lkZ2V0UmVzaXplKCkKIHsKLSAgICBpZiAocmVuZGVy
ZXIoKS5pc1JlbmRlclBhcnQoKSkgewotICAgICAgICBpZiAoUmVuZGVyTGF5ZXJDb21wb3NpdG9y
KiBpbm5lckNvbXBvc2l0b3IgPSBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lQ29udGVudHND
b21wb3NpdG9yKHRvUmVuZGVyUGFydCgmcmVuZGVyZXIoKSkpKSB7Ci0gICAgICAgICAgICBpbm5l
ckNvbXBvc2l0b3ItPmZyYW1lVmlld0RpZENoYW5nZVNpemUoKTsKLSAgICAgICAgICAgIGlubmVy
Q29tcG9zaXRvci0+ZnJhbWVWaWV3RGlkQ2hhbmdlTG9jYXRpb24oZmxvb3JlZEludFBvaW50KGNv
bnRlbnRzQm94KCkubG9jYXRpb24oKSkpOwotICAgICAgICB9CisgICAgaWYgKCFyZW5kZXJlcigp
LmlzV2lkZ2V0KCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoUmVuZGVyTGF5ZXJDb21wb3Np
dG9yKiBpbm5lckNvbXBvc2l0b3IgPSBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZyYW1lQ29udGVu
dHNDb21wb3NpdG9yKHRvUmVuZGVyV2lkZ2V0KCZyZW5kZXJlcigpKSkpIHsKKyAgICAgICAgaW5u
ZXJDb21wb3NpdG9yLT5mcmFtZVZpZXdEaWRDaGFuZ2VTaXplKCk7CisgICAgICAgIGlubmVyQ29t
cG9zaXRvci0+ZnJhbWVWaWV3RGlkQ2hhbmdlTG9jYXRpb24oZmxvb3JlZEludFBvaW50KGNvbnRl
bnRzQm94KCkubG9jYXRpb24oKSkpOwogICAgIH0KIH0KIApAQCAtNTY4LDggKzU2OCw4IEBAIGJv
b2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigp
CiAgICAgICAgIGxheWVyQ29uZmlnQ2hhbmdlZCA9IHRydWU7CiAgICAgfQogI2VuZGlmCi0gICAg
aWYgKHJlbmRlcmVyKCkuaXNSZW5kZXJQYXJ0KCkpCi0gICAgICAgIGxheWVyQ29uZmlnQ2hhbmdl
ZCA9IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFyZW50RnJhbWVDb250ZW50TGF5ZXJzKHRvUmVu
ZGVyUGFydCgmcmVuZGVyZXIoKSkpOworICAgIGlmIChyZW5kZXJlcigpLmlzV2lkZ2V0KCkpCisg
ICAgICAgIGxheWVyQ29uZmlnQ2hhbmdlZCA9IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFyZW50
RnJhbWVDb250ZW50TGF5ZXJzKHRvUmVuZGVyV2lkZ2V0KCZyZW5kZXJlcigpKSk7CiAKICAgICBy
ZXR1cm4gbGF5ZXJDb25maWdDaGFuZ2VkOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA2MjhiMWY5Li4wODg0NDkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcApAQCAtNzM5LDggKzczOSw4IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRh
dGVCYWNraW5nKFJlbmRlckxheWVyKiBsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSCiAgICAgfQog
I2VuZGlmCiAKLSAgICBpZiAobGF5ZXJDaGFuZ2VkICYmIGxheWVyLT5yZW5kZXJlcigpLmlzUmVu
ZGVyUGFydCgpKSB7Ci0gICAgICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciogaW5uZXJDb21wb3Np
dG9yID0gZnJhbWVDb250ZW50c0NvbXBvc2l0b3IodG9SZW5kZXJQYXJ0KCZsYXllci0+cmVuZGVy
ZXIoKSkpOworICAgIGlmIChsYXllckNoYW5nZWQgJiYgbGF5ZXItPnJlbmRlcmVyKCkuaXNXaWRn
ZXQoKSkgeworICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3IqIGlubmVyQ29tcG9zaXRvciA9
IGZyYW1lQ29udGVudHNDb21wb3NpdG9yKHRvUmVuZGVyV2lkZ2V0KCZsYXllci0+cmVuZGVyZXIo
KSkpOwogICAgICAgICBpZiAoaW5uZXJDb21wb3NpdG9yICYmIGlubmVyQ29tcG9zaXRvci0+aW5D
b21wb3NpdGluZ01vZGUoKSkKICAgICAgICAgICAgIGlubmVyQ29tcG9zaXRvci0+dXBkYXRlUm9v
dExheWVyQXR0YWNobWVudCgpOwogICAgIH0KQEAgLTEyNTYsOCArMTI1Niw4IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpyZWJ1aWxkQ29tcG9zaXRpbmdMYXllclRyZWUoUmVuZGVyTGF5
ZXIqIGxheWVyLCBWZWN0CiAgICAgCiAgICAgaWYgKGxheWVyQmFja2luZykgewogICAgICAgICBi
b29sIHBhcmVudGVkID0gZmFsc2U7Ci0gICAgICAgIGlmIChsYXllci0+cmVuZGVyZXIoKS5pc1Jl
bmRlclBhcnQoKSkKLSAgICAgICAgICAgIHBhcmVudGVkID0gcGFyZW50RnJhbWVDb250ZW50TGF5
ZXJzKHRvUmVuZGVyUGFydCgmbGF5ZXItPnJlbmRlcmVyKCkpKTsKKyAgICAgICAgaWYgKGxheWVy
LT5yZW5kZXJlcigpLmlzV2lkZ2V0KCkpCisgICAgICAgICAgICBwYXJlbnRlZCA9IHBhcmVudEZy
YW1lQ29udGVudExheWVycyh0b1JlbmRlcldpZGdldCgmbGF5ZXItPnJlbmRlcmVyKCkpKTsKIAog
ICAgICAgICBpZiAoIXBhcmVudGVkKQogICAgICAgICAgICAgbGF5ZXJCYWNraW5nLT5wYXJlbnRG
b3JTdWJsYXllcnMoKS0+c2V0Q2hpbGRyZW4obGF5ZXJDaGlsZHJlbik7CkBAIC0xNDA3LDcgKzE0
MDcsNyBAQCBTdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVBc1RleHQoTGF5
ZXJUcmVlRmxhZ3MgZmxhZ3MpCiAgICAgcmV0dXJuIGxheWVyVHJlZVRleHQ7CiB9CiAKLVJlbmRl
ckxheWVyQ29tcG9zaXRvciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZUNvbnRlbnRzQ29t
cG9zaXRvcihSZW5kZXJQYXJ0KiByZW5kZXJlcikKK1JlbmRlckxheWVyQ29tcG9zaXRvciogUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcihSZW5kZXJXaWRnZXQq
IHJlbmRlcmVyKQogewogICAgIGlmICghcmVuZGVyZXItPmVsZW1lbnQoKS0+aXNGcmFtZU93bmVy
RWxlbWVudCgpKQogICAgICAgICByZXR1cm4gMDsKQEAgLTE0MjAsNyArMTQyMCw3IEBAIFJlbmRl
ckxheWVyQ29tcG9zaXRvciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmcmFtZUNvbnRlbnRzQ29t
cG9zaXRvcihSZW5kZXJQYXJ0CiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpwYXJlbnRGcmFtZUNvbnRlbnRMYXllcnMoUmVuZGVyUGFydCogcmVuZGVyZXIp
Citib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFyZW50RnJhbWVDb250ZW50TGF5ZXJzKFJl
bmRlcldpZGdldCogcmVuZGVyZXIpCiB7CiAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yKiBpbm5l
ckNvbXBvc2l0b3IgPSBmcmFtZUNvbnRlbnRzQ29tcG9zaXRvcihyZW5kZXJlcik7CiAgICAgaWYg
KCFpbm5lckNvbXBvc2l0b3IgfHwgIWlubmVyQ29tcG9zaXRvci0+aW5Db21wb3NpdGluZ01vZGUo
KSB8fCBpbm5lckNvbXBvc2l0b3ItPnJvb3RMYXllckF0dGFjaG1lbnQoKSAhPSBSb290TGF5ZXJB
dHRhY2hlZFZpYUVuY2xvc2luZ0ZyYW1lKQpAQCAtMTc0NCw3ICsxNzQ0LDcgQEAgYm9vbCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3NpbmdG
cmFtZSgpIGNvbnN0CiAgICAgaWYgKCFhbGxvd3NJbmRlcGVuZGVudGx5Q29tcG9zaXRlZEZyYW1l
cygmbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBpZiAoIXJlbmRlcmVyIHx8ICFyZW5kZXJlci0+aXNSZW5kZXJQYXJ0KCkpCisgICAgaWYgKCFy
ZW5kZXJlciB8fCAhcmVuZGVyZXItPmlzV2lkZ2V0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIC8vIE9uIE1hYywgb25seSBwcm9wYWdhdGUgY29tcG9zaXRpbmcgaWYgdGhlIGZyYW1l
IGlzIG92ZXJsYXBwZWQgaW4gdGhlIHBhcmVudApAQCAtMTc1Myw3ICsxNzUzLDcgQEAgYm9vbCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3VsZFByb3BhZ2F0ZUNvbXBvc2l0aW5nVG9FbmNsb3Np
bmdGcmFtZSgpIGNvbnN0CiAgICAgaWYgKHBhZ2UgJiYgcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkg
IT0gMSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCi0gICAgUmVuZGVyUGFydCogZnJhbWVS
ZW5kZXJlciA9IHRvUmVuZGVyUGFydChyZW5kZXJlcik7CisgICAgUmVuZGVyV2lkZ2V0KiBmcmFt
ZVJlbmRlcmVyID0gdG9SZW5kZXJXaWRnZXQocmVuZGVyZXIpOwogICAgIGlmIChmcmFtZVJlbmRl
cmVyLT53aWRnZXQoKSkgewogICAgICAgICBBU1NFUlQoZnJhbWVSZW5kZXJlci0+d2lkZ2V0KCkt
PmlzRnJhbWVWaWV3KCkpOwogICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSB0b0ZyYW1lVmlldyhm
cmFtZVJlbmRlcmVyLT53aWRnZXQoKSk7CkBAIC0yMDgxLDcgKzIwODEsNyBAQCBib29sIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKFJlbmRlck9iamVj
dCogcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAodmlkZW8ucmVxdWlyZXNJbW1lZGlhdGVDb21w
b3NpdGluZygpIHx8IHZpZGVvLnNob3VsZERpc3BsYXlWaWRlbygpKSAmJiBjYW5BY2NlbGVyYXRl
VmlkZW9SZW5kZXJpbmcodmlkZW8pOwogICAgIH0KICNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZP
Ul9WSURFTykKLSAgICBlbHNlIGlmIChyZW5kZXJlci0+aXNSZW5kZXJQYXJ0KCkpIHsKKyAgICBl
bHNlIGlmIChyZW5kZXJlci0+aXNSZW5kZXJXaWRnZXQoKSkgewogICAgICAgICBpZiAoIW1faGFz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZykKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAt
MjEzOSwxMCArMjEzOSwxMCBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXND
b21wb3NpdGluZ0ZvclBsdWdpbihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogCiBib29sIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckZyYW1lKFJlbmRlck9iamVj
dCogcmVuZGVyZXIpIGNvbnN0CiB7Ci0gICAgaWYgKCFyZW5kZXJlci0+aXNSZW5kZXJQYXJ0KCkp
CisgICAgaWYgKCFyZW5kZXJlci0+aXNXaWRnZXQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIAotICAgIFJlbmRlclBhcnQqIGZyYW1lUmVuZGVyZXIgPSB0b1JlbmRlclBhcnQocmVuZGVy
ZXIpOworICAgIFJlbmRlcldpZGdldCogZnJhbWVSZW5kZXJlciA9IHRvUmVuZGVyV2lkZ2V0KHJl
bmRlcmVyKTsKIAogICAgIGlmICghZnJhbWVSZW5kZXJlci0+cmVxdWlyZXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCA0YzYzODc3Li44ZTY2MjM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5oCkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFp
bnRzOwogY2xhc3MgR3JhcGhpY3NMYXllcjsKIGNsYXNzIEdyYXBoaWNzTGF5ZXJVcGRhdGVyOwog
Y2xhc3MgUmVuZGVyRW1iZWRkZWRPYmplY3Q7Ci1jbGFzcyBSZW5kZXJQYXJ0OworY2xhc3MgUmVu
ZGVyV2lkZ2V0OwogY2xhc3MgU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiBjbGFzcyBTdGlja3lQb3Np
dGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiAjaWYgRU5BQkxFKFZJREVPKQpAQCAtMjI3LDkgKzIy
Nyw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhbGxvd3NJbmRlcGVuZGVudGx5Q29tcG9z
aXRlZEZyYW1lcyhjb25zdCBGcmFtZVZpZXcqKTsKICAgICBib29sIHNob3VsZFByb3BhZ2F0ZUNv
bXBvc2l0aW5nVG9FbmNsb3NpbmdGcmFtZSgpIGNvbnN0OwogCi0gICAgc3RhdGljIFJlbmRlckxh
eWVyQ29tcG9zaXRvciogZnJhbWVDb250ZW50c0NvbXBvc2l0b3IoUmVuZGVyUGFydCopOworICAg
IHN0YXRpYyBSZW5kZXJMYXllckNvbXBvc2l0b3IqIGZyYW1lQ29udGVudHNDb21wb3NpdG9yKFJl
bmRlcldpZGdldCopOwogICAgIC8vIFJldHVybiB0cnVlIGlmIHRoZSBsYXllcnMgY2hhbmdlZC4K
LSAgICBzdGF0aWMgYm9vbCBwYXJlbnRGcmFtZUNvbnRlbnRMYXllcnMoUmVuZGVyUGFydCopOwor
ICAgIHN0YXRpYyBib29sIHBhcmVudEZyYW1lQ29udGVudExheWVycyhSZW5kZXJXaWRnZXQqKTsK
IAogICAgIC8vIFVwZGF0ZSB0aGUgZ2VvbWV0cnkgb2YgdGhlIGxheWVycyB1c2VkIGZvciBjbGlw
cGluZyBhbmQgc2Nyb2xsaW5nIGluIGZyYW1lcy4KICAgICB2b2lkIGZyYW1lVmlld0RpZENoYW5n
ZUxvY2F0aW9uKGNvbnN0IEludFBvaW50JiBjb250ZW50c09mZnNldCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggY2Q4ODRlNC4uZmM5MWFjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtMzc4LDcgKzM3OCw2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJJRnJhbWUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckltYWdlKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJJbmxpbmUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclBhcnQoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlclJlZ2lvbigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyUmVwbGFjZWQoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1JlcGxpY2EoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBh
cnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZjAyYzc4Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE0MiArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcp
Ci0gKiAgICAgICAgICAgKEMpIDIwMDAgU2ltb24gSGF1c21hbm4gPGhhdXNtYW5uQGtkZS5vcmc+
Ci0gKiAgICAgICAgICAgKEMpIDIwMDAgU3RlZmFuIFNjaGltYW5za2kgKDFTdGVpbkBnbXguZGUp
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGlt
aXRlZCAyMDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICog
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICog
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKLQotI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudEJhc2UuaCIKLSNpbmNsdWRl
ICJIaXRUZXN0UmVzdWx0LmgiCi0jaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKLSNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgotI2luY2x1ZGUgIlJlbmRlclNWR1Jvb3QuaCIKLSNpbmNsdWRlICJS
ZW5kZXJWaWV3LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotUmVuZGVyUGFydDo6UmVuZGVyUGFydChFbGVtZW50KiBub2RlKQotICAgIDogUmVuZGVy
V2lkZ2V0KG5vZGUpCi17Ci0gICAgc2V0SW5saW5lKGZhbHNlKTsKLX0KLQotUmVuZGVyUGFydDo6
flJlbmRlclBhcnQoKQotewotICAgIGNsZWFyV2lkZ2V0KCk7Ci19Ci0KLXZvaWQgUmVuZGVyUGFy
dDo6c2V0V2lkZ2V0KFBhc3NSZWZQdHI8V2lkZ2V0PiB3aWRnZXQpCi17Ci0gICAgaWYgKHdpZGdl
dCA9PSB0aGlzLT53aWRnZXQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUmVuZGVyV2lkZ2V0
OjpzZXRXaWRnZXQod2lkZ2V0KTsKLQotICAgIC8vIG1ha2Ugc3VyZSB0aGUgc2Nyb2xsYmFycyBh
cmUgc2V0IGNvcnJlY3RseSBmb3IgcmVzdG9yZQotICAgIC8vICMjIyBmaW5kIGJldHRlciBmaXgK
LSAgICB2aWV3Q2xlYXJlZCgpOwotfQotCi12b2lkIFJlbmRlclBhcnQ6OnZpZXdDbGVhcmVkKCkK
LXsKLX0KLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLWJvb2wgUmVuZGVyUGFy
dDo6cmVxdWlyZXNMYXllcigpIGNvbnN0Ci17Ci0gICAgaWYgKFJlbmRlcldpZGdldDo6cmVxdWly
ZXNMYXllcigpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICByZXR1cm4gcmVxdWly
ZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCk7Ci19Ci0KLWJvb2wgUmVuZGVyUGFydDo6cmVxdWly
ZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKLXsKLSAgICAvLyBUaGVyZSBhcmUgdHdv
IGdlbmVyYWwgY2FzZXMgaW4gd2hpY2ggd2UgY2FuIHJldHVybiB0cnVlLiBGaXJzdCwgaWYgdGhp
cyBpcyBhIHBsdWdpbiAKLSAgICAvLyByZW5kZXJlciBhbmQgdGhlIHBsdWdpbiBoYXMgYSBsYXll
ciwgdGhlbiB3ZSBuZWVkIGEgbGF5ZXIuIFNlY29uZCwgaWYgdGhpcyBpcyAKLSAgICAvLyBhIHJl
bmRlcmVyIHdpdGggYSBjb250ZW50RG9jdW1lbnQgYW5kIHRoYXQgZG9jdW1lbnQgbmVlZHMgYSBs
YXllciwgdGhlbiB3ZSBuZWVkCi0gICAgLy8gYSBsYXllci4KLSAgICBpZiAod2lkZ2V0KCkgJiYg
d2lkZ2V0KCktPmlzUGx1Z2luVmlld0Jhc2UoKSAmJiB0b1BsdWdpblZpZXdCYXNlKHdpZGdldCgp
KS0+cGxhdGZvcm1MYXllcigpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmICghZWxl
bWVudCgpIHx8ICFlbGVtZW50KCktPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBmcmFtZU93bmVyRWxlbWVu
dCA9IHRvRnJhbWVPd25lckVsZW1lbnQoZWxlbWVudCgpKTsKLSAgICBpZiAoRG9jdW1lbnQqIGNv
bnRlbnREb2N1bWVudCA9IGZyYW1lT3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1lbnQoKSkgewot
ICAgICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IGNvbnRlbnREb2N1bWVudC0+cmVuZGVyVmll
dygpKQotICAgICAgICAgICAgcmV0dXJuIHZpZXctPnVzZXNDb21wb3NpdGluZygpOwotICAgIH0K
LQotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCi1ib29sIFJlbmRlclBhcnQ6Om5lZWRz
UHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpIGNvbnN0Ci17Ci0gICAgaWYgKFJlbmRlcldp
ZGdldDo6bmVlZHNQcmVmZXJyZWRXaWR0aHNSZWNhbGN1bGF0aW9uKCkpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIHJldHVybiBlbWJlZGRlZENvbnRlbnRCb3goKTsKLX0KLQotUmVuZGVyQm94
KiBSZW5kZXJQYXJ0OjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAotewotICAgIGlmICghZWxl
bWVudCgpIHx8ICF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkpCi0gICAgICAg
IHJldHVybiAwOwotICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRnZXQoKSktPmVtYmVkZGVkQ29u
dGVudEJveCgpOwotfQotCi1ib29sIFJlbmRlclBhcnQ6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRl
c3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEhpdFRlc3RM
b2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uIGFjdGlvbikKLXsKLSAgICBpZiAoIXdpZGdldCgpIHx8
ICF3aWRnZXQoKS0+aXNGcmFtZVZpZXcoKSB8fCAhcmVxdWVzdC5hbGxvd3NDaGlsZEZyYW1lQ29u
dGVudCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyV2lkZ2V0Ojpub2RlQXRQb2ludChyZXF1ZXN0
LCByZXN1bHQsIGxvY2F0aW9uSW5Db250YWluZXIsIGFjY3VtdWxhdGVkT2Zmc2V0LCBhY3Rpb24p
OwotCi0gICAgRnJhbWVWaWV3KiBjaGlsZEZyYW1lVmlldyA9IHRvRnJhbWVWaWV3KHdpZGdldCgp
KTsKLSAgICBSZW5kZXJWaWV3KiBjaGlsZFJvb3QgPSBjaGlsZEZyYW1lVmlldy0+cmVuZGVyVmll
dygpOwotCi0gICAgaWYgKGNoaWxkUm9vdCkgewotICAgICAgICBMYXlvdXRQb2ludCBhZGp1c3Rl
ZExvY2F0aW9uID0gYWNjdW11bGF0ZWRPZmZzZXQgKyBsb2NhdGlvbigpOwotICAgICAgICBMYXlv
dXRQb2ludCBjb250ZW50T2Zmc2V0ID0gTGF5b3V0UG9pbnQoYm9yZGVyTGVmdCgpICsgcGFkZGlu
Z0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpIC0gY2hpbGRGcmFtZVZpZXctPnNj
cm9sbE9mZnNldCgpOwotICAgICAgICBIaXRUZXN0TG9jYXRpb24gbmV3SGl0VGVzdExvY2F0aW9u
KGxvY2F0aW9uSW5Db250YWluZXIsIC1hZGp1c3RlZExvY2F0aW9uIC0gY29udGVudE9mZnNldCk7
Ci0gICAgICAgIEhpdFRlc3RSZXF1ZXN0IG5ld0hpdFRlc3RSZXF1ZXN0KHJlcXVlc3QudHlwZSgp
IHwgSGl0VGVzdFJlcXVlc3Q6OkNoaWxkRnJhbWVIaXRUZXN0KTsKLSAgICAgICAgSGl0VGVzdFJl
c3VsdCBjaGlsZEZyYW1lUmVzdWx0KG5ld0hpdFRlc3RMb2NhdGlvbik7Ci0KLSAgICAgICAgYm9v
bCBpc0luc2lkZUNoaWxkRnJhbWUgPSBjaGlsZFJvb3QtPmhpdFRlc3QobmV3SGl0VGVzdFJlcXVl
c3QsIG5ld0hpdFRlc3RMb2NhdGlvbiwgY2hpbGRGcmFtZVJlc3VsdCk7Ci0KLSAgICAgICAgaWYg
KG5ld0hpdFRlc3RMb2NhdGlvbi5pc1JlY3RCYXNlZFRlc3QoKSkKLSAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoY2hpbGRGcmFtZVJlc3VsdCk7Ci0gICAgICAgIGVsc2UgaWYgKGlzSW5zaWRlQ2hp
bGRGcmFtZSkKLSAgICAgICAgICAgIHJlc3VsdCA9IGNoaWxkRnJhbWVSZXN1bHQ7Ci0KLSAgICAg
ICAgaWYgKGlzSW5zaWRlQ2hpbGRGcmFtZSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLQotICAgIHJldHVybiBSZW5kZXJXaWRnZXQ6Om5vZGVBdFBvaW50KHJlcXVlc3QsIHJlc3Vs
dCwgbG9jYXRpb25JbkNvbnRhaW5lciwgYWNjdW11bGF0ZWRPZmZzZXQsIGFjdGlvbik7Ci19Ci0K
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlNDZmYWZmLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJQYXJ0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiAgICAgICAgICAg
KEMpIDIwMDAgU2ltb24gSGF1c21hbm4gPGhhdXNtYW5uQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQg
KEMpIDIwMDYsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRl
ZiBSZW5kZXJQYXJ0X2gKLSNkZWZpbmUgUmVuZGVyUGFydF9oCi0KLSNpbmNsdWRlICJSZW5kZXJX
aWRnZXQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0vLyBSZW5kZXJlciBmb3IgZnJhbWVz
IHZpYSBSZW5kZXJGcmFtZUJhc2UsIGFuZCBwbHVnLWlucyB2aWEgUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuCi1jbGFzcyBSZW5kZXJQYXJ0IDogcHVibGljIFJlbmRlcldpZGdldCB7Ci1wdWJsaWM6Ci0g
ICAgZXhwbGljaXQgUmVuZGVyUGFydChFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB+UmVuZGVyUGFy
dCgpOwotCi0gICAgdmlydHVhbCB2b2lkIHNldFdpZGdldChQYXNzUmVmUHRyPFdpZGdldD4pIE9W
RVJSSURFIEZJTkFMOwotICAgIHZpcnR1YWwgdm9pZCB2aWV3Q2xlYXJlZCgpOwotCi0jaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGJvb2wgcmVxdWlyZXNBY2NlbGVyYXRlZENv
bXBvc2l0aW5nKCkgY29uc3Q7Ci0jZW5kaWYKLQotICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZWZl
cnJlZFdpZHRoc1JlY2FsY3VsYXRpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0
dWFsIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7
Ci0KLSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBI
aXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVy
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9W
RVJSSURFOwotCi1wcm90ZWN0ZWQ6Ci0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQot
ICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0xheWVyKCkgY29uc3QgT1ZFUlJJREU7Ci0jZW5kaWYK
LQotcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQYXJ0KCkgY29uc3QgT1ZFUlJJ
REUgRklOQUwgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVy
TmFtZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuICJSZW5kZXJQYXJ0IjsgfQotfTsKLQotaW5s
aW5lIFJlbmRlclBhcnQqIHRvUmVuZGVyUGFydChSZW5kZXJPYmplY3QqIG9iamVjdCkKLXsKLSAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTighb2JqZWN0IHx8IG9iamVjdC0+aXNS
ZW5kZXJQYXJ0KCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxSZW5kZXJQYXJ0Kj4ob2JqZWN0
KTsKLX0KLQotLy8gVGhpcyB3aWxsIGNhdGNoIGFueW9uZSBkb2luZyBhbiB1bm5lY2Vzc2FyeSBj
YXN0Lgotdm9pZCB0b1JlbmRlclBhcnQoY29uc3QgUmVuZGVyUGFydCopOwotCi19Ci0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJhci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyLmNwcAppbmRleCA2
NTkwOTVjLi5jMTUxNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2Nyb2xsYmFyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Ny
b2xsYmFyLmNwcApAQCAtMjgsOSArMjgsOSBAQAogCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJGcmFtZVZpZXcuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyU2Nyb2xsYmFyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclNjcm9sbGJhclRoZW1lLmgiCisj
aW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgi
CiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogCkBAIC04Miw3ICs4Miw3IEBAIFJlbmRlclNj
cm9sbGJhcjo6flJlbmRlclNjcm9sbGJhcigpCiBSZW5kZXJCb3gqIFJlbmRlclNjcm9sbGJhcjo6
b3duaW5nUmVuZGVyZXIoKSBjb25zdAogewogICAgIGlmIChtX293bmluZ0ZyYW1lKSB7Ci0gICAg
ICAgIFJlbmRlckJveCogY3VycmVudFJlbmRlcmVyID0gbV9vd25pbmdGcmFtZS0+b3duZXJSZW5k
ZXJlcigpOworICAgICAgICBSZW5kZXJXaWRnZXQqIGN1cnJlbnRSZW5kZXJlciA9IG1fb3duaW5n
RnJhbWUtPm93bmVyUmVuZGVyZXIoKTsKICAgICAgICAgcmV0dXJuIGN1cnJlbnRSZW5kZXJlcjsK
ICAgICB9CiAgICAgcmV0dXJuIG1fb3duZXIgJiYgbV9vd25lci0+cmVuZGVyZXIoKSA/IG1fb3du
ZXItPnJlbmRlcmVyKCktPmVuY2xvc2luZ0JveCgpIDogMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCBlYWNjZjhjLi5lMDNlMjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC00NCw3
ICs0NCw2IEBACiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJSZW5kZXJM
aXN0TWFya2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgiCi0jaW5jbHVk
ZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclJlZ2lvbi5oIgogI2luY2x1ZGUgIlJl
bmRlclRhYmxlQ2VsbC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTUwMiw4ICs1MDEs
OCBAQCB2b2lkIFJlbmRlclRyZWVBc1RleHQ6OndyaXRlUmVuZGVyT2JqZWN0KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIG8sCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgLy8gUHJp
bnQgYXR0cmlidXRlcyBvZiBlbWJlZGRlZCBRV2lkZ2V0cy4gRS5nLiB3aGVuIHRoZSBXZWJDb3Jl
OjpXaWRnZXQKICAgICAvLyBpcyBpbnZpc2libGUgdGhlIFFXaWRnZXQgc2hvdWxkIGJlIGludmlz
aWJsZSB0b28uCi0gICAgaWYgKG8uaXNSZW5kZXJQYXJ0KCkpIHsKLSAgICAgICAgY29uc3QgUmVu
ZGVyUGFydCogcGFydCA9IHRvUmVuZGVyUGFydChjb25zdF9jYXN0PFJlbmRlck9iamVjdCo+KCZv
KSk7CisgICAgaWYgKG8uaXNXaWRnZXQoKSkgeworICAgICAgICBjb25zdCBSZW5kZXJXaWRnZXQq
IHBhcnQgPSB0b1JlbmRlcldpZGdldChjb25zdF9jYXN0PFJlbmRlck9iamVjdCo+KCZvKSk7CiAg
ICAgICAgIGlmIChwYXJ0LT53aWRnZXQoKSAmJiBwYXJ0LT53aWRnZXQoKS0+cGxhdGZvcm1XaWRn
ZXQoKSkgewogICAgICAgICAgICAgUU9iamVjdCogd2lkID0gcGFydC0+d2lkZ2V0KCktPnBsYXRm
b3JtV2lkZ2V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAK
aW5kZXggMWU4MjZiNS4uZmRhOTA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cldpZGdldC5jcHAKQEAgLTI3LDcgKzI3LDkgQEAKICNpbmNsdWRlICJBbmltYXRpb25Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIK
KyNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVz
dWx0LmgiCisjaW5jbHVkZSAiUGx1Z2luVmlld0Jhc2UuaCIKICNpbmNsdWRlICJSZW5kZXJDb3Vu
dGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3Lmgi
CkBAIC05Niw2ICs5OCw3IEBAIFJlbmRlcldpZGdldDo6UmVuZGVyV2lkZ2V0KEVsZW1lbnQqIGVs
ZW1lbnQpCiAgICAgLy8gYWJsZSB0byBoYW5kbGUgdGhhdC4KICAgICAsIG1fcmVmQ291bnQoMSkK
IHsKKyAgICBzZXRJbmxpbmUoZmFsc2UpOwogICAgIHZpZXcoKS5hZGRXaWRnZXQodGhpcyk7CiB9
CiAKQEAgLTIxMiw2ICsyMTUsOSBAQCB2b2lkIFJlbmRlcldpZGdldDo6c2V0V2lkZ2V0KFBhc3NS
ZWZQdHI8V2lkZ2V0PiB3aWRnZXQpCiAgICAgICAgIH0KICAgICAgICAgbW92ZVdpZGdldFRvUGFy
ZW50U29vbihtX3dpZGdldC5nZXQoKSwgbV9mcmFtZVZpZXcpOwogICAgIH0KKyAgICAvLyBtYWtl
IHN1cmUgdGhlIHNjcm9sbGJhcnMgYXJlIHNldCBjb3JyZWN0bHkgZm9yIHJlc3RvcmUKKyAgICAv
LyAjIyMgZmluZCBiZXR0ZXIgZml4CisgICAgdmlld0NsZWFyZWQoKTsKIH0KIAogdm9pZCBSZW5k
ZXJXaWRnZXQ6OmxheW91dCgpCkBAIC0zODYsNiArMzkyLDI3IEBAIFJlbmRlcldpZGdldCogUmVu
ZGVyV2lkZ2V0OjpmaW5kKGNvbnN0IFdpZGdldCogd2lkZ2V0KQogCiBib29sIFJlbmRlcldpZGdl
dDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1
bHQmIHJlc3VsdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBj
b25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24gYWN0aW9u
KQogeworICAgIGlmIChyZXF1ZXN0LmFsbG93c0NoaWxkRnJhbWVDb250ZW50KCkgJiYgd2lkZ2V0
KCkgJiYgd2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkgJiYgdG9GcmFtZVZpZXcod2lkZ2V0KCkpLT5y
ZW5kZXJWaWV3KCkpIHsKKyAgICAgICAgRnJhbWVWaWV3KiBjaGlsZEZyYW1lVmlldyA9IHRvRnJh
bWVWaWV3KHdpZGdldCgpKTsKKyAgICAgICAgUmVuZGVyVmlldyogY2hpbGRSb290ID0gY2hpbGRG
cmFtZVZpZXctPnJlbmRlclZpZXcoKTsKKworICAgICAgICBMYXlvdXRQb2ludCBhZGp1c3RlZExv
Y2F0aW9uID0gYWNjdW11bGF0ZWRPZmZzZXQgKyBsb2NhdGlvbigpOworICAgICAgICBMYXlvdXRQ
b2ludCBjb250ZW50T2Zmc2V0ID0gTGF5b3V0UG9pbnQoYm9yZGVyTGVmdCgpICsgcGFkZGluZ0xl
ZnQoKSwgYm9yZGVyVG9wKCkgKyBwYWRkaW5nVG9wKCkpIC0gY2hpbGRGcmFtZVZpZXctPnNjcm9s
bE9mZnNldCgpOworICAgICAgICBIaXRUZXN0TG9jYXRpb24gbmV3SGl0VGVzdExvY2F0aW9uKGxv
Y2F0aW9uSW5Db250YWluZXIsIC1hZGp1c3RlZExvY2F0aW9uIC0gY29udGVudE9mZnNldCk7Cisg
ICAgICAgIEhpdFRlc3RSZXF1ZXN0IG5ld0hpdFRlc3RSZXF1ZXN0KHJlcXVlc3QudHlwZSgpIHwg
SGl0VGVzdFJlcXVlc3Q6OkNoaWxkRnJhbWVIaXRUZXN0KTsKKyAgICAgICAgSGl0VGVzdFJlc3Vs
dCBjaGlsZEZyYW1lUmVzdWx0KG5ld0hpdFRlc3RMb2NhdGlvbik7CisKKyAgICAgICAgYm9vbCBp
c0luc2lkZUNoaWxkRnJhbWUgPSBjaGlsZFJvb3QtPmhpdFRlc3QobmV3SGl0VGVzdFJlcXVlc3Qs
IG5ld0hpdFRlc3RMb2NhdGlvbiwgY2hpbGRGcmFtZVJlc3VsdCk7CisKKyAgICAgICAgaWYgKG5l
d0hpdFRlc3RMb2NhdGlvbi5pc1JlY3RCYXNlZFRlc3QoKSkKKyAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoY2hpbGRGcmFtZVJlc3VsdCk7CisgICAgICAgIGVsc2UgaWYgKGlzSW5zaWRlQ2hpbGRG
cmFtZSkKKyAgICAgICAgICAgIHJlc3VsdCA9IGNoaWxkRnJhbWVSZXN1bHQ7CisKKyAgICAgICAg
aWYgKGlzSW5zaWRlQ2hpbGRGcmFtZSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KwogICAgIGJvb2wgaGFkUmVzdWx0ID0gcmVzdWx0LmlubmVyTm9kZSgpOwogICAgIGJvb2wgaW5z
aWRlID0gUmVuZGVyUmVwbGFjZWQ6Om5vZGVBdFBvaW50KHJlcXVlc3QsIHJlc3VsdCwgbG9jYXRp
b25JbkNvbnRhaW5lciwgYWNjdW11bGF0ZWRPZmZzZXQsIGFjdGlvbik7CiAKQEAgLTQwNCw0ICs0
MzEsNDcgQEAgQ3Vyc29yRGlyZWN0aXZlIFJlbmRlcldpZGdldDo6Z2V0Q3Vyc29yKGNvbnN0IExh
eW91dFBvaW50JiBwb2ludCwgQ3Vyc29yJiBjdXJzb3IKICAgICByZXR1cm4gUmVuZGVyUmVwbGFj
ZWQ6OmdldEN1cnNvcihwb2ludCwgY3Vyc29yKTsKIH0KIAorCisjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQorYm9vbCBSZW5kZXJXaWRnZXQ6OnJlcXVpcmVzTGF5ZXIoKSBjb25zdAor
eworICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6cmVxdWlyZXNMYXllcigpIHx8IHJlcXVpcmVz
QWNjZWxlcmF0ZWRDb21wb3NpdGluZygpOworfQorCitib29sIFJlbmRlcldpZGdldDo6cmVxdWly
ZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QKK3sKKyAgICAvLyBUaGVyZSBhcmUgdHdv
IGdlbmVyYWwgY2FzZXMgaW4gd2hpY2ggd2UgY2FuIHJldHVybiB0cnVlLiBGaXJzdCwgaWYgdGhp
cyBpcyBhIHBsdWdpbiAKKyAgICAvLyByZW5kZXJlciBhbmQgdGhlIHBsdWdpbiBoYXMgYSBsYXll
ciwgdGhlbiB3ZSBuZWVkIGEgbGF5ZXIuIFNlY29uZCwgaWYgdGhpcyBpcyAKKyAgICAvLyBhIHJl
bmRlcmVyIHdpdGggYSBjb250ZW50RG9jdW1lbnQgYW5kIHRoYXQgZG9jdW1lbnQgbmVlZHMgYSBs
YXllciwgdGhlbiB3ZSBuZWVkCisgICAgLy8gYSBsYXllci4KKyAgICBpZiAod2lkZ2V0KCkgJiYg
d2lkZ2V0KCktPmlzUGx1Z2luVmlld0Jhc2UoKSAmJiB0b1BsdWdpblZpZXdCYXNlKHdpZGdldCgp
KS0+cGxhdGZvcm1MYXllcigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghZWxl
bWVudCgpIHx8ICFlbGVtZW50KCktPmlzRnJhbWVPd25lckVsZW1lbnQoKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBmcmFtZU93bmVyRWxlbWVu
dCA9IHRvRnJhbWVPd25lckVsZW1lbnQoZWxlbWVudCgpKTsKKyAgICBpZiAoRG9jdW1lbnQqIGNv
bnRlbnREb2N1bWVudCA9IGZyYW1lT3duZXJFbGVtZW50LT5jb250ZW50RG9jdW1lbnQoKSkgewor
ICAgICAgICBpZiAoUmVuZGVyVmlldyogdmlldyA9IGNvbnRlbnREb2N1bWVudC0+cmVuZGVyVmll
dygpKQorICAgICAgICAgICAgcmV0dXJuIHZpZXctPnVzZXNDb21wb3NpdGluZygpOworICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCitib29sIFJlbmRlcldpZGdldDo6bmVl
ZHNQcmVmZXJyZWRXaWR0aHNSZWNhbGN1bGF0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoUmVuZGVy
UmVwbGFjZWQ6Om5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7Cit9CisKK1JlbmRl
ckJveCogUmVuZGVyV2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAoreworICAgIGlm
ICghZWxlbWVudCgpIHx8ICF3aWRnZXQoKSB8fCAhd2lkZ2V0KCktPmlzRnJhbWVWaWV3KCkpCisg
ICAgICAgIHJldHVybiAwOworICAgIHJldHVybiB0b0ZyYW1lVmlldyh3aWRnZXQoKSktPmVtYmVk
ZGVkQ29udGVudEJveCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggOTlkY2Q1My4uZWJkZjkwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaApAQCAtMSw2ICsxLDYgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKLSAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDksIDIw
MTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5SZW5kZXJXaWRnZXQo
KTsKIAogICAgIFdpZGdldCogd2lkZ2V0KCkgY29uc3QgeyByZXR1cm4gbV93aWRnZXQuZ2V0KCk7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2lkZ2V0KFBhc3NSZWZQdHI8V2lkZ2V0Pik7CisgICAg
dm9pZCBzZXRXaWRnZXQoUGFzc1JlZlB0cjxXaWRnZXQ+KTsKIAogICAgIHN0YXRpYyBSZW5kZXJX
aWRnZXQqIGZpbmQoY29uc3QgV2lkZ2V0Kik7CiAKQEAgLTcxLDYgKzcxLDEyIEBAIHB1YmxpYzoK
ICAgICBSZW5kZXJBcmVuYSogcmVmKCkgeyArK21fcmVmQ291bnQ7IHJldHVybiByZW5kZXJBcmVu
YSgpOyB9CiAgICAgdm9pZCBkZXJlZihSZW5kZXJBcmVuYSopOwogCisjaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQorICAgIGJvb2wgcmVxdWlyZXNBY2NlbGVyYXRlZENvbXBvc2l0aW5n
KCkgY29uc3Q7CisjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCB2aWV3Q2xlYXJlZCgpIHsgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyV2lkZ2V0KEVsZW1lbnQqKTsKIApAQCAtODMsMTIgKzg5
LDE3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29u
c3QgTGF5b3V0UG9pbnQmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIEN1cnNvckRpcmVjdGl2ZSBn
ZXRDdXJzb3IoY29uc3QgTGF5b3V0UG9pbnQmLCBDdXJzb3ImKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0
UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25z
dCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURF
OwotCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoUGFpbnRJbmZvJiwgY29uc3QgTGF5
b3V0UG9pbnQmKTsKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCisgICAgdmlydHVh
bCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBPVkVSUklERTsKKyNlbmRpZgogCiBwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCBpc1dpZGdldCgpIGNvbnN0IE9WRVJSSURFIEZJTkFMIHsgcmV0
dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBuZWVkc1ByZWZlcnJlZFdpZHRoc1JlY2Fs
Y3VsYXRpb24oKSBjb25zdCBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIFJlbmRlckJveCog
ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CisKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lk
IGRlc3Ryb3koKSBPVkVSUklERSBGSU5BTDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0aW9u
U3RhdGUoU2VsZWN0aW9uU3RhdGUpIE9WRVJSSURFIEZJTkFMOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggODNlMmFjOC4uM2VkNTU3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBA
IC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkxh
eW91dFJlcGFpbnRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZH
UmVzb3VyY2UuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aENvbnRleHQuY3BwCmluZGV4IGQ3OTAwMWEuLmNhN2JiNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoQ29udGV4dC5jcHAKQEAgLTI5LDcgKzI5LDYg
QEAKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9udE1ldHJpY3MuaCIK
ICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJS
ZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaCIK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAK
aW5kZXggNTkyOTcyOS4uYjA3Zjg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNw
cApAQCAtMzksMTIgKzM5LDEyIEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCi0jaW5jbHVkZSAiUmVuZGVy
UGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291cmNlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
U1ZHTW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVkZSAi
UmVuZGVyU1ZHVmlld3BvcnRDb250YWluZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisj
aW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU01JTFRpbWVDb250YWluZXIuaCIK
ICNpbmNsdWRlICJTVkdBbmdsZS5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwCmluZGV4IDE3YTM5MTIuLjkxMTMyMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5j
cHAKQEAgLTUxLDcgKzUxLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2lu
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKLSNpbmNsdWRlICJSZW5k
ZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNjcmlw
dENvbnRyb2xsZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcAppbmRleCBjYmJlMzlhLi4xZGMyMDc2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwCkBAIC01OCw4ICs1OCw4IEBACiAjaW5jbHVkZSAiUGx1Z2luRGF0
YWJhc2UuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFj
a2VyLmgiCi0jaW5jbHVkZSAiUmVuZGVyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
KyNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgog
I2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCAwODI1M2E2Li44YWQ5ZGRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTg1LDggKzg1LDggQEAK
ICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGx1Z2luRGF0YS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QcmludENvbnRleHQuaD4KLSNp
bXBvcnQgPFdlYkNvcmUvUmVuZGVyUGFydC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJWaWV3
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRlcldpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29udHJv
bGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRWYWx1ZS5oPgpAQCAtNTYyLDcgKzU2Miw3
IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRl
ciogbG9hZGVyKQogLSAoQk9PTClfZ2V0VmlzaWJsZVJlY3Q6KE5TUmVjdCopcmVjdAogewogICAg
IEFTU0VSVF9BUkcocmVjdCwgcmVjdCk7Ci0gICAgaWYgKFJlbmRlclBhcnQqIG93bmVyUmVuZGVy
ZXIgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsKKyAgICBpZiAoUmVu
ZGVyV2lkZ2V0KiBvd25lclJlbmRlcmVyID0gX3ByaXZhdGUtPmNvcmVGcmFtZS0+b3duZXJSZW5k
ZXJlcigpKSB7CiAgICAgICAgIGlmIChvd25lclJlbmRlcmVyLT5uZWVkc0xheW91dCgpKQogICAg
ICAgICAgICAgcmV0dXJuIE5POwogICAgICAgICAqcmVjdCA9IG93bmVyUmVuZGVyZXItPnBpeGVs
U25hcHBlZEFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lVmlldy5tbQppbmRleCAzNmNlYzVkLi4yYjVmNjVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQpAQCAtNjEsOCArNjEsOCBAQAogI2lt
cG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0u
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJQYXJ0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVu
ZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVGcmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVZpZXcu
aD4KQEAgLTI4OSw5ICsyODksOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xh
c3MoTlNNdXRhYmxlRGljdGlvbmFyeSAqYWxsVHlwZXMsIENsYXNzIG9iakNDbAogICAgIHZpZXct
PnNldFBsYXRmb3JtV2lkZ2V0KF9wcml2YXRlLT5mcmFtZVNjcm9sbFZpZXcpOwogCiAgICAgLy8g
RklYTUU6IEZyYW1lIHRyaWVzIHRvIGRvIHRoaXMgdG9vLiBJcyB0aGlzIGNvZGUgbmVlZGVkPwot
ICAgIGlmIChSZW5kZXJQYXJ0KiBvd25lciA9IGZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsKKyAg
ICBpZiAoUmVuZGVyV2lkZ2V0KiBvd25lciA9IGZyYW1lLT5vd25lclJlbmRlcmVyKCkpIHsKICAg
ICAgICAgb3duZXItPnNldFdpZGdldCh2aWV3KTsKLSAgICAgICAgLy8gTm93IHRoZSByZW5kZXIg
cGFydCBvd25zIHRoZSB2aWV3LCBzbyB3ZSBkb24ndCBhbnkgbW9yZS4KKyAgICAgICAgLy8gTm93
IHRoZSBSZW5kZXJXaWRnZXQgb3ducyB0aGUgdmlldywgc28gd2UgZG9uJ3QgYW55IG1vcmUuCiAg
ICAgfQogCiAgICAgdmlldy0+dXBkYXRlQ2FuSGF2ZVNjcm9sbGJhcnMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3Bw
CmluZGV4IGI0YTJiZjAuLjhjNzM1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcApAQCAtNjcsNyArNjcsNiBA
QAogI2luY2x1ZGUgIlFXZWJQYWdlQWRhcHRlci5oIgogI2luY2x1ZGUgIlFXZWJQYWdlQ2xpZW50
LmgiCiAjaW5jbHVkZSAiUXRQbHVnaW5XaWRnZXRBZGFwdGVyLmgiCi0jaW5jbHVkZSAiUmVuZGVy
UGFydC5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAKaW5kZXggODM4NDhjMi4uYWJhNzRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNzYs
NyArNzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luUGFja2FnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGx1Z2luVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUG9saWN5Q2hlY2tlci5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyUGFydC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVu
ZGVyV2lkZ2V0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENv
bnRyb2xsZXIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCmluZGV4IDQ0M2ZkZTcuLjg1M2Ix
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNFLmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgogI2luY2x1ZGUgIlBvbGlj
eUNoZWNrZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJQYXJ0LmgiCisjaW5jbHVkZSAiUmVuZGVyV2lk
Z2V0LmgiCiAjaW5jbHVkZSAiU3lzdGVtSW5mby5oIgogI2luY2x1ZGUgIldlYktpdFZlcnNpb24u
aCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>