<?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>192584</bug_id>
          
          <creation_ts>2018-12-11 01:03:07 -0800</creation_ts>
          <short_desc>[Win][Clang] Fix warning -Wmissing-field-initializers</short_desc>
          <delta_ts>2018-12-11 17:18:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>171618</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1486899</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-11 01:03:07 -0800</bug_when>
    <thetext>[Win][Clang] Fix warning -Wmissing-field-initializers

clang-cl reports the following compilation warnings:

&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateFullscreenWindow.cpp(64,29):  warning: missing field &apos;style&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\graphics\win\MediaPlayerPrivateFullscreenWindow.cpp(75,24):  warning: missing field &apos;rcMonitor&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\DefWndProcWindowClass.cpp(38,28):  warning: missing field &apos;lpfnWndProc&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\graphics\win\FontCacheWin.cpp(377,43):  warning: missing field &apos;iBorderWidth&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\CursorWin.cpp(114,27):  warning: missing field &apos;xHotspot&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp(427,28):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp(449,28):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp(757,26):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp(769,26):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp(788,26):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\DragImageWin.cpp(76,25):  warning: missing field &apos;iIcon&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\PasteboardWin.cpp(376,26):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\PasteboardWin.cpp(420,30):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\PasteboardWin.cpp(443,26):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\PasteboardWin.cpp(508,26):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\PasteboardWin.cpp(609,26):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\PasteboardWin.cpp(1066,26):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\SSLKeyGeneratorWin.cpp(63,52):  warning: missing field &apos;SubjectPublicKeyInfo&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\SSLKeyGeneratorWin.cpp(74,51):  warning: missing field &apos;Parameters&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebCore\platform\win\PopupMenuWin.cpp(164,27):  warning: missing field &apos;top&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\UIProcess\win\WebPopupMenuProxyWin.cpp(221,27):  warning: missing field &apos;top&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\Shared\win\WebEventFactory.h(44,126):  warning: missing field &apos;time&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\UIProcess\win\WebView.cpp(656,25):  warning: missing field &apos;uFlags&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\UIProcess\win\WebView.cpp(874,29):  warning: missing field &apos;uFlags&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKitLegacy\win\WebKitMessageLoop.cpp(87,19):  warning: missing field &apos;message&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKitLegacy\win\WebView.cpp(1788,37):  warning: missing field &apos;fMask&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKitLegacy\win\WebView.cpp(2000,24):  warning: missing field &apos;dwFlags&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKitLegacy\win\WebView.cpp(2487,25):  warning: missing field &apos;top&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKitLegacy\win\WebView.cpp(3194,23):  warning: missing field &apos;uFlags&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKitLegacy\win\WebView.cpp(3216,27):  warning: missing field &apos;uFlags&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKitLegacy\win\WebView.cpp(7579,25):  warning: missing field &apos;top&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\Shared\win/WebEventFactory.h(44,126):  warning: missing field &apos;time&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\Shared\win/WebEventFactory.h(44,126):  warning: missing field &apos;time&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\Shared\win/WebEventFactory.h(44,126):  warning: missing field &apos;time&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\Shared\win/WebEventFactory.h(44,126):  warning: missing field &apos;time&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\UIProcess\Launcher\win\ProcessLauncherWin.cpp(90,35):  warning: missing field &apos;lpReserved&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\UIProcess\Launcher\win\ProcessLauncherWin.cpp(94,50):  warning: missing field &apos;hThread&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\DumpRenderTree\win\PixelDumpSupportWin.cpp(65,24):  warning: missing field &apos;biWidth&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\DumpRenderTree\win\PixelDumpSupportWin.cpp(65,24):  warning: missing field &apos;bmiColors&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\DumpRenderTree\win\PixelDumpSupportWin.cpp(82,21):  warning: missing field &apos;bmWidth&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\DumpRenderTree\win\DumpRenderTree.cpp(1234,19):  warning: missing field &apos;message&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\DumpRenderTree\win\EventSender.cpp(123,20):  warning: missing field &apos;message&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\DumpRenderTree\win\EventSender.cpp(365,19):  warning: missing field &apos;message&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\DumpRenderTree\win\EventSender.cpp(699,31):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\DumpRenderTree\win\EventSender.cpp(716,35):  warning: missing field &apos;&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\DumpRenderTree\win\EventSender.cpp(928,47):  warning: missing field &apos;attributes&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\WebKitTestRunner\win\PlatformWebViewWin.cpp(52,30):  warning: missing field &apos;style&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\WebKitTestRunner\win\PlatformWebViewWin.cpp(120,24):  warning: missing field &apos;y&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\WebKitTestRunner\win\PlatformWebViewWin.cpp(120,24):  warning: missing field &apos;size&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\WebKitTestRunner\win\PlatformWebViewWin.cpp(206,31):  warning: missing field &apos;biWidth&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\WebKitTestRunner\win\PlatformWebViewWin.cpp(206,31):  warning: missing field &apos;bmiColors&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\WebKitTestRunner\win\PlatformWebViewWin.cpp(233,26):  warning: missing field &apos;bmWidth&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Source\WebKit\Shared\win\WebEventFactory.h(44,126):  warning: missing field &apos;time&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\MiniBrowser\win\WinMain.cpp(44,17):  warning: missing field &apos;message&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\MiniBrowser\win\WebKitBrowserWindow.cpp(107,61):  warning: missing field &apos;decidePolicyForNavigationAction&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\MiniBrowser\win\WebKitLegacyBrowserWindow.cpp(332,37):  warning: missing field &apos;fMask&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\TestWebKitAPI\win\HostWindow.cpp(53,19):  warning: missing field &apos;top&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\TestWebKitAPI\win\HostWindow.cpp(55,28):  warning: missing field &apos;top&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\TestWebKitAPI\win\HostWindow.cpp(68,30):  warning: missing field &apos;style&apos; initializer [-Wmissing-field-initializers]
&gt; ..\..\Tools\TestWebKitAPI\win\PlatformWebViewWin.cpp(50,30):  warning: missing field &apos;style&apos; initializer [-Wmissing-field-initializers]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486900</commentid>
    <comment_count>1</comment_count>
      <attachid>357042</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-11 01:09:20 -0800</bug_when>
    <thetext>Created attachment 357042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486901</commentid>
    <comment_count>2</comment_count>
      <attachid>357042</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-11 01:16:58 -0800</bug_when>
    <thetext>Comment on attachment 357042
Patch

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

&gt; Source/WebCore/platform/graphics/win/FontCacheWin.cpp:377
&gt; +    NONCLIENTMETRICS nonClientMetrics = { };

How about using `NONCLIENTMETRICS nonClientMetrics { }` instead of `= { }`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486905</commentid>
    <comment_count>3</comment_count>
      <attachid>357044</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-11 01:49:15 -0800</bug_when>
    <thetext>Created attachment 357044
Patch

Thank you for the review. Addressed the review feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486906</commentid>
    <comment_count>4</comment_count>
      <attachid>357044</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-12-11 01:57:28 -0800</bug_when>
    <thetext>Comment on attachment 357044
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487073</commentid>
    <comment_count>5</comment_count>
      <attachid>357044</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-11 17:17:00 -0800</bug_when>
    <thetext>Comment on attachment 357044
Patch

Clearing flags on attachment: 357044

Committed r239092: &lt;https://trac.webkit.org/changeset/239092&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487074</commentid>
    <comment_count>6</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-12-11 17:17:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1487075</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-11 17:18:29 -0800</bug_when>
    <thetext>&lt;rdar://problem/46647472&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357042</attachid>
            <date>2018-12-11 01:09:20 -0800</date>
            <delta_ts>2018-12-11 01:48:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192584-20181211180913.patch</filename>
            <type>text/plain</type>
            <size>29104</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc3YzY5ZGY4NDE3NWVi
YmEzMDU5Yjg5YTkyYWVjOTZhZTYzZWVlMi4uYjM4YWFiNzk5ZGM0MmY2N2U2ZWI1NmU2ZTg2MjA2
ZjU2NTNhM2ZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE4LTEyLTExICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5dW0Ns
YW5nXSBGaXggd2FybmluZyAtV21pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI1ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsaXplIGEgc3RydWN0
IHdpdGggJ3sgfScgaW5zdGVhZCBvZiAnezB9Jy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5v
IGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dENhY2hlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6bGFzdFJlc29ydEZh
bGxiYWNrRm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVy
UHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vQ2xpcGJvYXJkVXRpbGl0aWVzV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNl
dEZpbGVEZXNjcmlwdG9yRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRGaWxlQ29udGVudERh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6c2V0VUNoYXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldFV0ZjhEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OnNldENGRGF0YSk6CisgICAgICAgICog
cGxhdGZvcm0vd2luL0N1cnNvcldpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVTaGFy
ZWRDdXJzb3IpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9EZWZXbmRQcm9jV2luZG93Q2xhc3Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJDbGFzcyk6CisgICAgICAgICogcGxhdGZv
cm0vd2luL0RyYWdJbWFnZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVEcmFnSW1h
Z2VJY29uRm9yQ2FjaGVkSW1hZ2VGaWxlbmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Bh
c3RlYm9hcmRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVVUkwpOgorICAgICAgICAo
V2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGFz
dGVib2FyZDo6d3JpdGVSYW5nZVRvRGF0YU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjp3cml0ZVBsYWluVGV4dFRvRGF0YU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjp3
cml0ZUZpbGVUb0RhdGFPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3Jp
dGVNYXJrdXApOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzaG93KToKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmU6OnNp
Z25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyk6CisKIDIwMTgtMTItMTAgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSAiZm9yY2VkIHN0eWxl
IHJlY2FsYyIgdG8gImZ1bGwgc3R5bGUgcmVidWlsZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMGRjNzE0NTdkYzAy
MmUzMmRmZTE5Y2EyNjhjMTgwYjhlMjBhYWZkMy4uMTQ1YWM0YWE0ZTc3ZjhmMjMyMDJiNmU3MGEx
M2RmM2EwOWJhM2Y4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxOC0xMi0xMSAgRnVq
aWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbV2luXVtD
bGFuZ10gRml4IHdhcm5pbmcgLVdtaXNzaW5nLWZpZWxkLWluaXRpYWxpemVycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNTg0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5pdGlhbGl6ZSBhIHN0cnVj
dCB3aXRoICd7IH0nIGluc3RlYWQgb2YgJ3swfScuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1
bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NMYXVuY2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJQ
b3B1cE1lbnVQcm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5
V2luOjpzaG93UG9wdXBNZW51KToKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3Ojppbml0aWFsaXplVG9vbFRpcFdpbmRvdyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnNldFRvb2xUaXApOgorCiAyMDE4LTEyLTEwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFuaW1hdGVkIHNj
cm9sbGluZyBvbiBHb29nbGUgTWFwcyBzY3JvbGxzIHRoZSBwYWdlIGluIGFkZGl0aW9uIHRvIG1v
dmluZyB0aGUgbWFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggZjAxM2Y1MmQyN2I3
YzAwYWU4Zjc3ZTdlMzQ3M2NjMzFmNzlmMjdkMy4uMzZlZDRkZDg3MTdhYmE4NDJiMGYwMjdkOWVi
NmE3YmM5OGY0ZDcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDE4LTEyLTExICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIFtXaW5dW0NsYW5nXSBGaXggd2FybmluZyAtV21pc3NpbmctZmllbGQtaW5p
dGlhbGl6ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTI1ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbml0aWFsaXplIGEgc3RydWN0IHdpdGggJ3sgfScgaW5zdGVhZCBvZiAnezB9Jy4KKworICAg
ICAgICAqIFdlYktpdE1lc3NhZ2VMb29wLmNwcDoKKyAgICAgICAgKFdlYktpdE1lc3NhZ2VMb29w
OjpydW4pOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6b25NZW51
Q29tbWFuZCk6CisgICAgICAgIChXZWJWaWV3OjpnZXN0dXJlKToKKyAgICAgICAgKFdlYlZpZXc6
OnNldFNob3VsZEludmVydENvbG9ycyk6CisgICAgICAgIChXZWJWaWV3Ojppbml0aWFsaXplVG9v
bFRpcFdpbmRvdyk6CisgICAgICAgIChXZWJWaWV3OjpzZXRUb29sVGlwKToKKyAgICAgICAgKFdl
YlZpZXc6OmZ1bGxTY3JlZW5DbGllbnRGb3JjZVJlcGFpbnQpOgorCiAyMDE4LTEyLTA1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFR1cm4gV3JpdGlu
Z0RpcmVjdGlvbiBpbnRvIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5kZXggNzk2Mjg3Njk4MTcz
YWI0NDNjNDQ3OGVhNDk1YjhhZjY5MTMyM2NhYS4uNzM2N2JkZTQ3M2YyNzg2YzY3ZWY1Mjg4NzBm
NGY3ZGI4ZTZlZWMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTM3NCw3ICszNzQsNyBAQCBSZWY8Rm9udD4g
Rm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aQogICAgIH0KIAogICAgIC8vIEZhbGwgYmFjayB0byBOb24tY2xpZW50IG1l
dHJpY3MgZm9udHMuCi0gICAgTk9OQ0xJRU5UTUVUUklDUyBub25DbGllbnRNZXRyaWNzID0gezB9
OworICAgIE5PTkNMSUVOVE1FVFJJQ1Mgbm9uQ2xpZW50TWV0cmljcyA9IHsgfTsKICAgICBub25D
bGllbnRNZXRyaWNzLmNiU2l6ZSA9IHNpemVvZihub25DbGllbnRNZXRyaWNzKTsKICAgICBpZiAo
U3lzdGVtUGFyYW1ldGVyc0luZm8oU1BJX0dFVE5PTkNMSUVOVE1FVFJJQ1MsIHNpemVvZihub25D
bGllbnRNZXRyaWNzKSwgJm5vbkNsaWVudE1ldHJpY3MsIDApKSB7CiAgICAgICAgIGlmIChzaW1w
bGVGb250ID0gZm9udEZyb21EZXNjcmlwdGlvbkFuZExvZ0ZvbnQoZm9udERlc2NyaXB0aW9uLCBu
b25DbGllbnRNZXRyaWNzLmxmTWVzc2FnZUZvbnQsIGZhbGxiYWNrRm9udE5hbWUpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZUZ1bGxzY3JlZW5XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZUZ1bGxzY3JlZW5XaW5kb3cuY3BwCmluZGV4IDE2YjZi
NWRmZjgwMDVjNGZhNGI4NzIyMzg1ZDI5NzMzNDg0YjJjZDIuLjM2MmQ1MDA0YTU0ZjYxZDg2NGVj
NmVlYWY5Mzk4MzJiMDI5YjhiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRl
RnVsbHNjcmVlbldpbmRvdy5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVGdWxsc2NyZWVuV2luZG93OjpjcmVhdGVXaW5kb3coSFdORCBwYXJlbnRId25kKQogICAg
IHN0YXRpYyBBVE9NIHdpbmRvd0F0b207CiAgICAgc3RhdGljIExQQ1dTVFIgd2luZG93Q2xhc3NO
YW1lID0gTCJNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93Q2xhc3MiOwogICAgIGlm
ICghd2luZG93QXRvbSkgewotICAgICAgICBXTkRDTEFTU0VYIHdjZXggPSB7MH07CisgICAgICAg
IFdORENMQVNTRVggd2NleCA9IHsgfTsKICAgICAgICAgd2NleC5jYlNpemUgPSBzaXplb2Yod2Nl
eCk7CiAgICAgICAgIHdjZXguc3R5bGUgPSBDU19IUkVEUkFXIHwgQ1NfVlJFRFJBVzsKICAgICAg
ICAgd2NleC5scGZuV25kUHJvYyA9IHN0YXRpY1duZFByb2M7CkBAIC03Miw3ICs3Miw3IEBAIHZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6Y3JlYXRlV2luZG93KEhXTkQg
cGFyZW50SHduZCkKIAogICAgIEFTU0VSVCghbV9od25kKTsKIAotICAgIE1PTklUT1JJTkZPIG1p
ID0gezB9OworICAgIE1PTklUT1JJTkZPIG1pID0geyB9OwogICAgIG1pLmNiU2l6ZSA9IHNpemVv
ZihNT05JVE9SSU5GTyk7CiAgICAgaWYgKCFHZXRNb25pdG9ySW5mbyhNb25pdG9yRnJvbVdpbmRv
dyhwYXJlbnRId25kLCBNT05JVE9SX0RFRkFVTFRUT05FQVJFU1QpLCAmbWkpKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
VXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRV
dGlsaXRpZXNXaW4uY3BwCmluZGV4IDc5MGE4MmY4YjY3MTEwMGExNjJlNTNlZDg5Nzk3Y2Q5MDc4
ZWZmZjUuLjJmMDMzZmFiMjEyOTEwMDRjYTU3MjA4MzRlMDIwYjI0NjU3OTA1YTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4u
Y3BwCkBAIC00MjQsNyArNDI0LDcgQEAgdm9pZCBzZXRGaWxlRGVzY3JpcHRvckRhdGEoSURhdGFP
YmplY3QqIGRhdGFPYmplY3QsIGludCBzaXplLCBjb25zdCBTdHJpbmcmIHBhc3MKIHsKICAgICBT
dHJpbmcgcGF0aG5hbWUgPSBwYXNzZWRQYXRobmFtZTsKIAotICAgIFNUR01FRElVTSBtZWRpdW0g
PSB7IDAgfTsKKyAgICBTVEdNRURJVU0gbWVkaXVtID0geyB9OwogICAgIG1lZGl1bS50eW1lZCA9
IFRZTUVEX0hHTE9CQUw7CiAKICAgICBtZWRpdW0uaEdsb2JhbCA9IDo6R2xvYmFsQWxsb2MoR1BU
Uiwgc2l6ZW9mKEZJTEVHUk9VUERFU0NSSVBUT1IpKTsKQEAgLTQ0Niw3ICs0NDYsNyBAQCB2b2lk
IHNldEZpbGVEZXNjcmlwdG9yRGF0YShJRGF0YU9iamVjdCogZGF0YU9iamVjdCwgaW50IHNpemUs
IGNvbnN0IFN0cmluZyYgcGFzcwogCiB2b2lkIHNldEZpbGVDb250ZW50RGF0YShJRGF0YU9iamVj
dCogZGF0YU9iamVjdCwgaW50IHNpemUsIHZvaWQqIGRhdGFCbG9iKQogewotICAgIFNUR01FRElV
TSBtZWRpdW0gPSB7IDAgfTsKKyAgICBTVEdNRURJVU0gbWVkaXVtID0geyB9OwogICAgIG1lZGl1
bS50eW1lZCA9IFRZTUVEX0hHTE9CQUw7CiAKICAgICBtZWRpdW0uaEdsb2JhbCA9IDo6R2xvYmFs
QWxsb2MoR1BUUiwgc2l6ZSk7CkBAIC03NTQsNyArNzU0LDcgQEAgdm9pZCBnZXRDRkRhdGEoSURh
dGFPYmplY3QqIGRhdGEsIEZPUk1BVEVUQyogZm9ybWF0LCBWZWN0b3I8U3RyaW5nPiYgZGF0YVN0
cmluZ3MKIAogdm9pZCBzZXRVQ2hhckRhdGEoSURhdGFPYmplY3QqIGRhdGEsIEZPUk1BVEVUQyog
Zm9ybWF0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YVN0cmluZ3MpCiB7Ci0gICAgU1RHTUVE
SVVNIG1lZGl1bSA9IHswfTsKKyAgICBTVEdNRURJVU0gbWVkaXVtID0geyB9OwogICAgIG1lZGl1
bS50eW1lZCA9IFRZTUVEX0hHTE9CQUw7CiAKICAgICBtZWRpdW0uaEdsb2JhbCA9IGNyZWF0ZUds
b2JhbERhdGEoZGF0YVN0cmluZ3MuZmlyc3QoKSk7CkBAIC03NjYsNyArNzY2LDcgQEAgdm9pZCBz
ZXRVQ2hhckRhdGEoSURhdGFPYmplY3QqIGRhdGEsIEZPUk1BVEVUQyogZm9ybWF0LCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZGEKIAogdm9pZCBzZXRVdGY4RGF0YShJRGF0YU9iamVjdCogZGF0YSwg
Rk9STUFURVRDKiBmb3JtYXQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhU3RyaW5ncykKIHsK
LSAgICBTVEdNRURJVU0gbWVkaXVtID0gezB9OworICAgIFNUR01FRElVTSBtZWRpdW0gPSB7IH07
CiAgICAgbWVkaXVtLnR5bWVkID0gVFlNRURfSEdMT0JBTDsKIAogICAgIENTdHJpbmcgY2hhclN0
cmluZyA9IGRhdGFTdHJpbmdzLmZpcnN0KCkudXRmOCgpOwpAQCAtNzg1LDcgKzc4NSw3IEBAIHZv
aWQgc2V0VXRmOERhdGEoSURhdGFPYmplY3QqIGRhdGEsIEZPUk1BVEVUQyogZm9ybWF0LCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgZGF0CiAjaWYgVVNFKENGKQogdm9pZCBzZXRDRkRhdGEoSURhdGFP
YmplY3QqIGRhdGEsIEZPUk1BVEVUQyogZm9ybWF0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0
YVN0cmluZ3MpCiB7Ci0gICAgU1RHTUVESVVNIG1lZGl1bSA9IHswfTsKKyAgICBTVEdNRURJVU0g
bWVkaXVtID0geyB9OwogICAgIG1lZGl1bS50eW1lZCA9IFRZTUVEX0hHTE9CQUw7CiAKICAgICBT
SVpFX1QgZHJvcEZpbGVzU2l6ZSA9IHNpemVvZihEUk9QRklMRVMpICsgKHNpemVvZihXQ0hBUikg
KiAoZGF0YVN0cmluZ3MuZmlyc3QoKS5sZW5ndGgoKSArIDIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0N1cnNvcldpbi5jcHAKaW5kZXggYjRmZmJjNWNmNzg5MDllMGYzZTMzZmY0ZjIx
YzA5MDg1M2U0N2U4YS4uZTY1OWJhZTA1NjgzNWYyOTA3YTg0YmZlYWYyMTliY2JkZGU0NmNjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0N1cnNvcldpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0N1cnNvcldpbi5jcHAKQEAgLTExMSw3ICsx
MTEsNyBAQCBzdGF0aWMgUmVmPFNoYXJlZEN1cnNvcj4gY3JlYXRlU2hhcmVkQ3Vyc29yKEltYWdl
KiBpbWcsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQogICAgICAgICBTZWxlY3RPYmplY3QoYW5k
TWFza0RDLmdldCgpLCBvbGRBbmRNYXNrKTsKICAgICAgICAgU2VsZWN0T2JqZWN0KHhvck1hc2tE
Qy5nZXQoKSwgb2xkWG9yTWFzayk7CiAKLSAgICAgICAgSUNPTklORk8gaWNvbiA9IHswfTsKKyAg
ICAgICAgSUNPTklORk8gaWNvbiA9IHsgfTsKICAgICAgICAgaWNvbi5mSWNvbiA9IEZBTFNFOwog
ICAgICAgICBpY29uLnhIb3RzcG90ID0gZWZmZWN0aXZlSG90U3BvdC54KCk7CiAgICAgICAgIGlj
b24ueUhvdHNwb3QgPSBlZmZlY3RpdmVIb3RTcG90LnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9EZWZXbmRQcm9jV2luZG93Q2xhc3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0RlZlduZFByb2NXaW5kb3dDbGFzcy5jcHAKaW5kZXggYjA3YTZk
ZWUzNWFkZTk5NDIwZTgyNDRmOTQzYTg2OTQ3YTUwM2VkNC4uZGYxZjM2NzhkZTVkMGQxYjJhNjgz
NzQyNzJlNDEwOGJkYWQzYTE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0RlZlduZFByb2NXaW5kb3dDbGFzcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0RlZlduZFByb2NXaW5kb3dDbGFzcy5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGlj
IGNvbnN0IHdjaGFyX3QgY2xhc3NOYW1lW10gPSBMIkRlZlduZFByb2NXaW5kb3dDbGFzcyI7CiAK
IHN0YXRpYyBBVE9NIHJlZ2lzdGVyQ2xhc3MoKQogewotICAgIFdORENMQVNTVyB3bmRDbGFzcyA9
IHswfTsKKyAgICBXTkRDTEFTU1cgd25kQ2xhc3MgPSB7IH07CiAgICAgd25kQ2xhc3MubHBzekNs
YXNzTmFtZSA9IGNsYXNzTmFtZTsKICAgICB3bmRDbGFzcy5scGZuV25kUHJvYyA9IDo6RGVmV2lu
ZG93UHJvY1c7CiAgICAgd25kQ2xhc3MuaEluc3RhbmNlID0gaW5zdGFuY2VIYW5kbGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdJbWFnZVdpbi5jcHAKaW5kZXggYTZiNjcy
ZmM3MjdmZTgzNzlhMmQwZjdlMDQ2MDcxNjk2MGNmYmI4Ny4uMmUyZjk0Y2EwZDU4YmVlYjc5MzY2
MGIxZGNmZTQxYjk4Yjk0MGQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0RyYWdJbWFnZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0Ry
YWdJbWFnZVdpbi5jcHAKQEAgLTczLDcgKzczLDcgQEAgRHJhZ0ltYWdlUmVmIGRpc3NvbHZlRHJh
Z0ltYWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYgaW1hZ2UsIGZsb2F0KQogICAgICAgICAKIERy
YWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VJY29uRm9yQ2FjaGVkSW1hZ2VGaWxlbmFtZShjb25z
dCBTdHJpbmcmIGZpbGVuYW1lKQogewotICAgIFNIRklMRUlORk8gc2hmaSA9IHswfTsKKyAgICBT
SEZJTEVJTkZPIHNoZmkgPSB7IH07CiAgICAgU3RyaW5nIGZuYW1lID0gZmlsZW5hbWU7CiAgICAg
aWYgKEZBSUxFRChTSEdldEZpbGVJbmZvKHN0cmluZ1RvTnVsbFRlcm1pbmF0ZWRXQ2hhcihmbmFt
ZSkuZGF0YSgpLCBGSUxFX0FUVFJJQlVURV9OT1JNQUwsICZzaGZpLCBzaXplb2Yoc2hmaSksIFNI
R0ZJX0lDT04gfCBTSEdGSV9VU0VGSUxFQVRUUklCVVRFUykpKQogICAgICAgICByZXR1cm4gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJvYXJkV2luLmNwcAppbmRleCBk
NTk2N2E1ODIwYzk3YWUyOGM2MjVhNTBkODAzOGUwMGVlMjVkZDJhLi42OTZjODcyODk2OWQwMjE1
NzM3ZWNkNDg4MzE1NTgxYTk4ODVkZjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUGFzdGVib2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1Bhc3RlYm9hcmRXaW4uY3BwCkBAIC0zNzMsNyArMzczLDcgQEAgc3RhdGljIGJvb2wgd3Jp
dGVVUkwoV0NEYXRhT2JqZWN0ICpkYXRhLCBjb25zdCBVUkwmIHVybCwgU3RyaW5nIHRpdGxlLCBi
b29sIHdpdGgKICAgICAgICAgICAgIHRpdGxlID0gdXJsLmhvc3QoKS50b1N0cmluZygpOwogICAg
IH0KIAotICAgIFNUR01FRElVTSBtZWRpdW0gPSB7MH07CisgICAgU1RHTUVESVVNIG1lZGl1bSA9
IHsgfTsKICAgICBtZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOwogCiAgICAgbWVkaXVtLmhH
bG9iYWwgPSBjcmVhdGVHbG9iYWxEYXRhKHVybCwgdGl0bGUpOwpAQCAtNDE3LDcgKzQxNyw3IEBA
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIGRhdGEpCiAgICAgfQogCiAgICAgaWYgKHdpblR5cGUgPT0gQ2xpcGJvYXJkRGF0YVR5
cGVUZXh0KSB7Ci0gICAgICAgIFNUR01FRElVTSBtZWRpdW0gPSB7MH07CisgICAgICAgIFNUR01F
RElVTSBtZWRpdW0gPSB7IH07CiAgICAgICAgIG1lZGl1bS50eW1lZCA9IFRZTUVEX0hHTE9CQUw7
CiAgICAgICAgIG1lZGl1bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFsRGF0YShkYXRhKTsKICAgICAg
ICAgaWYgKCFtZWRpdW0uaEdsb2JhbCkKQEAgLTQ0MCw3ICs0NDAsNyBAQCB2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlUmFuZ2VUb0RhdGFPYmplY3QoUmFuZ2UmIHNlbGVjdGVkUmFuZ2UsIEZyYW1lJiBm
cmFtZSkKICAgICBpZiAoIW1fd3JpdGFibGVEYXRhT2JqZWN0KQogICAgICAgICByZXR1cm47CiAK
LSAgICBTVEdNRURJVU0gbWVkaXVtID0gezB9OworICAgIFNUR01FRElVTSBtZWRpdW0gPSB7IH07
CiAgICAgbWVkaXVtLnR5bWVkID0gVFlNRURfSEdMT0JBTDsKIAogICAgIFZlY3RvcjxjaGFyPiBk
YXRhOwpAQCAtNTA1LDcgKzUwNSw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFpblRleHRU
b0RhdGFPYmplY3QoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFydFJlcGxhY2VPcHRpCiAgICAgaWYg
KCFtX3dyaXRhYmxlRGF0YU9iamVjdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU1RHTUVESVVN
IG1lZGl1bSA9IHswfTsKKyAgICBTVEdNRURJVU0gbWVkaXVtID0geyB9OwogICAgIG1lZGl1bS50
eW1lZCA9IFRZTUVEX0hHTE9CQUw7CiAKICAgICBTdHJpbmcgc3RyID0gdGV4dDsKQEAgLTYwNiw3
ICs2MDYsNyBAQCBzdGF0aWMgSFJFU1VMVCB3cml0ZUZpbGVUb0RhdGFPYmplY3QoSURhdGFPYmpl
Y3QqIGRhdGFPYmplY3QsIEhHTE9CQUwgZmlsZURlc2NyaQogewogICAgIEhSRVNVTFQgaHIgPSBT
X09LOwogICAgIEZPUk1BVEVUQyogZmU7Ci0gICAgU1RHTUVESVVNIG1lZGl1bSA9IHswfTsKKyAg
ICBTVEdNRURJVU0gbWVkaXVtID0geyB9OwogICAgIG1lZGl1bS50eW1lZCA9IFRZTUVEX0hHTE9C
QUw7CiAKICAgICBpZiAoIWZpbGVEZXNjcmlwdG9yIHx8ICFmaWxlQ29udGVudCkKQEAgLTEwNjMs
NyArMTA2Myw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVNYXJrdXAoY29uc3QgU3RyaW5nJiBt
YXJrdXApCiAgICAgVmVjdG9yPGNoYXI+IGRhdGE7CiAgICAgbWFya3VwVG9DRkhUTUwobWFya3Vw
LCAiIiwgZGF0YSk7CiAKLSAgICBTVEdNRURJVU0gbWVkaXVtID0gezB9OworICAgIFNUR01FRElV
TSBtZWRpdW0gPSB7IH07CiAgICAgbWVkaXVtLnR5bWVkID0gVFlNRURfSEdMT0JBTDsKIAogICAg
IG1lZGl1bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFsRGF0YShkYXRhKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKaW5kZXggMWJiMTc0NTdjNDkwMTIxYzRk
ZTFkOTExNTQ5NzYxYmMzZDcxNjM1ZC4uZDRjYjg2Zjk5YTFmYjA1OWJlN2FjMmU1OGZlNmIxZWIx
NDFkMjlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVu
dVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5j
cHAKQEAgLTE2MSw3ICsxNjEsNyBAQCB2b2lkIFBvcHVwTWVudVdpbjo6c2hvdyhjb25zdCBJbnRS
ZWN0JiByLCBGcmFtZVZpZXcqIHZpZXcsIGludCBpbmRleCkKICAgICAgICAgc2hvdWxkQW5pbWF0
ZSA9IEZBTFNFOwogCiAgICAgaWYgKHNob3VsZEFuaW1hdGUpIHsKLSAgICAgICAgUkVDVCB2aWV3
UmVjdCA9IHswfTsKKyAgICAgICAgUkVDVCB2aWV3UmVjdCA9IHsgfTsKICAgICAgICAgOjpHZXRX
aW5kb3dSZWN0KGhvc3RXaW5kb3csICZ2aWV3UmVjdCk7CiAgICAgICAgIGlmICghOjpJc1JlY3RF
bXB0eSgmdmlld1JlY3QpKQogICAgICAgICAgICAgOjpBbmltYXRlV2luZG93KG1fcG9wdXAsIGRl
ZmF1bHRBbmltYXRpb25EdXJhdGlvbiwgQVdfQkxFTkQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcAppbmRleCBkZTIwYjhkMDlhYzUw
YjE3MmU1ZDM3YjYwNjZlMTdiNDY3NGFmODg2Li5hZjY1YzM2MDY5ZjIxYTVmNTExZWQyMzBmYWZj
N2EzZjBkYTBlZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NM
S2V5R2VuZXJhdG9yV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NM
S2V5R2VuZXJhdG9yV2luLmNwcApAQCAtNjAsNyArNjAsNyBAQCBTdHJpbmcgV2ViQ29yZTo6c2ln
bmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJp
bmcmCiAgICAgICAgIGlmICghQ3J5cHRFeHBvcnRQdWJsaWNLZXlJbmZvKGhDb250ZXh0LCBBVF9L
RVlFWENIQU5HRSwgWDUwOV9BU05fRU5DT0RJTkcsIHBQdWJJbmZvLCAmZHdQdWJJbmZvTGVuZ3Ro
KSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIENFUlRfS0VZR0VOX1JFUVVFU1RfSU5G
TyByZXF1ZXN0SW5mbyA9IHsgMCB9OworICAgICAgICBDRVJUX0tFWUdFTl9SRVFVRVNUX0lORk8g
cmVxdWVzdEluZm8gPSB7IH07CiAgICAgICAgIHJlcXVlc3RJbmZvLmR3VmVyc2lvbiA9IENFUlRf
S0VZR0VOX1JFUVVFU1RfVjE7CiAgICAgICAgIHJlcXVlc3RJbmZvLnB3c3pDaGFsbGVuZ2VTdHJp
bmcgPSBMIiI7CiAgICAgICAgIHJlcXVlc3RJbmZvLlN1YmplY3RQdWJsaWNLZXlJbmZvID0gKnBQ
dWJJbmZvOwpAQCAtNzEsNyArNzEsNyBAQCBTdHJpbmcgV2ViQ29yZTo6c2lnbmVkUHVibGljS2V5
QW5kQ2hhbGxlbmdlU3RyaW5nKHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmCiAgICAgICAg
IGF1dG8gbG9jYWxDaGFsbGVuZ2VXaWRlID0gc3RyaW5nVG9OdWxsVGVybWluYXRlZFdDaGFyKGxv
Y2FsQ2hhbGxlbmdlKTsKICAgICAgICAgcmVxdWVzdEluZm8ucHdzekNoYWxsZW5nZVN0cmluZyA9
IGNvbnN0X2Nhc3Q8d2NoYXJfdCo+KGxvY2FsQ2hhbGxlbmdlV2lkZS5kYXRhKCkpOwogCi0gICAg
ICAgIENSWVBUX0FMR09SSVRITV9JREVOVElGSUVSIHNpZ25BbGdvID0geyAwIH07CisgICAgICAg
IENSWVBUX0FMR09SSVRITV9JREVOVElGSUVSIHNpZ25BbGdvID0geyB9OwogICAgICAgICBzaWdu
QWxnby5wc3pPYmpJZCA9IHN6T0lEX1JTQV9TSEExUlNBOwogCiAgICAgICAgIERXT1JEIGR3RW5j
b2RlZExlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L3dpbi9Qcm9jZXNzTGF1bmNoZXJXaW4uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAKaW5kZXggOGZkZjcxNzc3N2YwYTg2Mjcy
NzgwYTRlOGQyYzk1MTk2NjZjZTYwOC4uYmY1OTUxNzM3M2RlYzZhZWVjOWUxNzkxNjE1YzM3NWZm
MzAyMDcxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvd2lu
L1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1
bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAKQEAgLTg3LDExICs4NywxMSBAQCB2b2lk
IFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAKICAgICBhdXRvIGNvbW1hbmRMaW5l
ID0gc3RyaW5nVG9OdWxsVGVybWluYXRlZFdDaGFyKGNvbW1hbmRMaW5lQnVpbGRlci50b1N0cmlu
ZygpKTsKIAotICAgIFNUQVJUVVBJTkZPIHN0YXJ0dXBJbmZvID0geyAwIH07CisgICAgU1RBUlRV
UElORk8gc3RhcnR1cEluZm8gPSB7IH07CiAgICAgc3RhcnR1cEluZm8uY2IgPSBzaXplb2Yoc3Rh
cnR1cEluZm8pOwogICAgIHN0YXJ0dXBJbmZvLmR3RmxhZ3MgPSBTVEFSVEZfVVNFU0hPV1dJTkRP
VzsKICAgICBzdGFydHVwSW5mby53U2hvd1dpbmRvdyA9IFNXX0hJREU7Ci0gICAgUFJPQ0VTU19J
TkZPUk1BVElPTiBwcm9jZXNzSW5mb3JtYXRpb24gPSB7IDAgfTsKKyAgICBQUk9DRVNTX0lORk9S
TUFUSU9OIHByb2Nlc3NJbmZvcm1hdGlvbiA9IHsgfTsKICAgICBCT09MIHJlc3VsdCA9IDo6Q3Jl
YXRlUHJvY2VzcygwLCBjb21tYW5kTGluZS5kYXRhKCksIDAsIDAsIHRydWUsIDAsIDAsIDAsICZz
dGFydHVwSW5mbywgJnByb2Nlc3NJbmZvcm1hdGlvbik7CiAKICAgICAvLyBXZSBjYW4gbm93IGNs
b3NlIHRoZSBjbGllbnQgaWRlbnRpZmllciBoYW5kbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmNwcAppbmRleCAyMjQzZGZkZTYy
YzBhODQzNTVhZGE5YTYwZTM2MjhjNzljYzhmNzBlLi5mMmZmNDdlYTExYmY5MGJmYWYxMGI0ZGU4
YWEwMTQ3NmIxMDk3YzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4v
V2ViUG9wdXBNZW51UHJveHlXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dp
bi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHAKQEAgLTIxOCw3ICsyMTgsNyBAQCB2b2lkIFdlYlBv
cHVwTWVudVByb3h5V2luOjpzaG93UG9wdXBNZW51KGNvbnN0IEludFJlY3QmIHJlY3QsIFRleHRE
aXJlY3Rpb24sIGRvdQogICAgICAgICBzaG91bGRBbmltYXRlID0gRkFMU0U7CiAKICAgICBpZiAo
c2hvdWxkQW5pbWF0ZSkgewotICAgICAgICBSRUNUIHZpZXdSZWN0ID0gezB9OworICAgICAgICBS
RUNUIHZpZXdSZWN0ID0geyB9OwogICAgICAgICA6OkdldFdpbmRvd1JlY3QoaG9zdFdpbmRvdywg
JnZpZXdSZWN0KTsKIAogICAgICAgICBpZiAoITo6SXNSZWN0RW1wdHkoJnZpZXdSZWN0KSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCmluZGV4IGVkMWQ0ZWMzMjIxNzky
NmM2YjZjOTI5YWUwYmZjMTQwMzMyNjE2ZDMuLjRkZTY3ZDVjZmJmODkxMTI2N2VkMjE5MzliMTBm
ZTljOTUyMTk5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKQEAg
LTY1Myw3ICs2NTMsNyBAQCB2b2lkIFdlYlZpZXc6OmluaXRpYWxpemVUb29sVGlwV2luZG93KCkK
ICAgICBpZiAoIW1fdG9vbFRpcFdpbmRvdykKICAgICAgICAgcmV0dXJuOwogCi0gICAgVE9PTElO
Rk8gaW5mbyA9IHsgMCB9OworICAgIFRPT0xJTkZPIGluZm8gPSB7IH07CiAgICAgaW5mby5jYlNp
emUgPSBzaXplb2YoaW5mbyk7CiAgICAgaW5mby51RmxhZ3MgPSBUVEZfSURJU0hXTkQgfCBUVEZf
U1VCQ0xBU1M7CiAgICAgaW5mby51SWQgPSByZWludGVycHJldF9jYXN0PFVJTlRfUFRSPihtX3dp
bmRvdyk7CkBAIC04NzEsNyArODcxLDcgQEAgdm9pZCBXZWJWaWV3OjpzZXRUb29sVGlwKGNvbnN0
IFN0cmluZyYgdG9vbFRpcCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCF0b29sVGlwLmlz
RW1wdHkoKSkgewotICAgICAgICBUT09MSU5GTyBpbmZvID0geyAwIH07CisgICAgICAgIFRPT0xJ
TkZPIGluZm8gPSB7IH07CiAgICAgICAgIGluZm8uY2JTaXplID0gc2l6ZW9mKGluZm8pOwogICAg
ICAgICBpbmZvLnVGbGFncyA9IFRURl9JRElTSFdORDsKICAgICAgICAgaW5mby51SWQgPSByZWlu
dGVycHJldF9jYXN0PFVJTlRfUFRSPihuYXRpdmVXaW5kb3coKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJLaXRNZXNzYWdlTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJLaXRNZXNzYWdlTG9vcC5jcHAKaW5kZXggZjc2YTY2Y2Q0MjgwMTc0NTAw
OWFjMzk3ZTk3MDJiMmRkMzkwODZlYS4uZGE5OTE4ZGU1YmEyZmEyMzEyMGQ1Y2EzMDJiNjBiZDZj
Njk1ZmNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0TWVzc2Fn
ZUxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYktpdE1lc3NhZ2VMb29w
LmNwcApAQCAtODQsNyArODQsNyBAQCBVTE9ORyBXZWJLaXRNZXNzYWdlTG9vcDo6UmVsZWFzZSgp
CiAKIEhSRVNVTFQgV2ViS2l0TWVzc2FnZUxvb3A6OnJ1bihfSW5fIEhBQ0NFTCBoQWNjZWxUYWJs
ZSkKIHsKLSAgICBNU0cgbXNnID0geyAwIH07CisgICAgTVNHIG1zZyA9IHsgfTsKIAogICAgIHdo
aWxlIChHZXRNZXNzYWdlKCZtc2csIDAsIDAsIDApKSB7CiAgICAgICAgIHBlcmZvcm1NZXNzYWdl
TG9vcFRhc2tzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IGU0YjJlNWY1
YzU3NTAzZDI1ZWRmMjdiMWJmNzllYWE5ZGE0MDRhMTYuLjViNTUzMjVkNDU1NDE1MThhMTJmNWEw
ZTNkMTU4NWRiOGE5YzJlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0x
Nzg1LDcgKzE3ODUsNyBAQCB2b2lkIFdlYlZpZXc6Om9uTWVudUNvbW1hbmQoV1BBUkFNIHdQYXJh
bSwgTFBBUkFNIGxQYXJhbSkKICAgICBITUVOVSBoTWVudSA9IHJlaW50ZXJwcmV0X2Nhc3Q8SE1F
TlU+KGxQYXJhbSk7CiAgICAgdW5zaWduZWQgaW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
d1BhcmFtKTsKIAotICAgIE1FTlVJVEVNSU5GTyBtZW51SXRlbUluZm8gPSB7IDAgfTsKKyAgICBN
RU5VSVRFTUlORk8gbWVudUl0ZW1JbmZvID0geyB9OwogICAgIG1lbnVJdGVtSW5mby5jYlNpemUg
PSBzaXplb2YobWVudUl0ZW1JbmZvKTsKICAgICBtZW51SXRlbUluZm8uZk1hc2sgPSBNSUlNX1NU
UklORzsKICAgICA6OkdldE1lbnVJdGVtSW5mbyhoTWVudSwgaW5kZXgsIHRydWUsICZtZW51SXRl
bUluZm8pOwpAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgYm9vbCBXZWJWaWV3OjpnZXN0dXJlKFdQQVJB
TSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiAKICAgICBIR0VTVFVSRUlORk8gZ2VzdHVyZUhhbmRs
ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8SEdFU1RVUkVJTkZPPihsUGFyYW0pOwogICAgIAotICAgIEdF
U1RVUkVJTkZPIGdpID0gezB9OworICAgIEdFU1RVUkVJTkZPIGdpID0geyB9OwogICAgIGdpLmNi
U2l6ZSA9IHNpemVvZihHRVNUVVJFSU5GTyk7CiAKICAgICBpZiAoIUdldEdlc3R1cmVJbmZvUHRy
KCkoZ2VzdHVyZUhhbmRsZSwgcmVpbnRlcnByZXRfY2FzdDxQR0VTVFVSRUlORk8+KCZnaSkpKQpA
QCAtMjQ4NCw3ICsyNDg0LDcgQEAgdm9pZCBXZWJWaWV3OjpzZXRTaG91bGRJbnZlcnRDb2xvcnMo
Ym9vbCBzaG91bGRJbnZlcnRDb2xvcnMpCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0U2hv
dWxkSW52ZXJ0Q29sb3JzKHNob3VsZEludmVydENvbG9ycyk7CiAjZW5kaWYKIAotICAgIFJFQ1Qg
d2luZG93UmVjdCA9IHswfTsKKyAgICBSRUNUIHdpbmRvd1JlY3QgPSB7IH07CiAgICAgZnJhbWVS
ZWN0KCZ3aW5kb3dSZWN0KTsKIAogICAgIC8vIHJlcGFpbnQgZXhwZWN0cyBsb2dpY2FsIHBpeGVs
cywgc28gcmVzY2FsZSBoZXJlLgpAQCAtMzE5MSw3ICszMTkxLDcgQEAgdm9pZCBXZWJWaWV3Ojpp
bml0aWFsaXplVG9vbFRpcFdpbmRvdygpCiAgICAgaWYgKCFtX3Rvb2xUaXBId25kKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBUT09MSU5GTyBpbmZvID0gezB9OworICAgIFRPT0xJTkZPIGluZm8g
PSB7IH07CiAgICAgaW5mby5jYlNpemUgPSBzaXplb2YoaW5mbyk7CiAgICAgaW5mby51RmxhZ3Mg
PSBUVEZfSURJU0hXTkQgfCBUVEZfU1VCQ0xBU1MgOwogICAgIGluZm8udUlkID0gcmVpbnRlcnBy
ZXRfY2FzdDxVSU5UX1BUUj4obV92aWV3V2luZG93KTsKQEAgLTMyMTMsNyArMzIxMyw3IEBAIHZv
aWQgV2ViVmlldzo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXApCiAgICAgbV90b29s
VGlwID0gdG9vbFRpcDsKIAogICAgIGlmICghbV90b29sVGlwLmlzRW1wdHkoKSkgewotICAgICAg
ICBUT09MSU5GTyBpbmZvID0gezB9OworICAgICAgICBUT09MSU5GTyBpbmZvID0geyB9OwogICAg
ICAgICBpbmZvLmNiU2l6ZSA9IHNpemVvZihpbmZvKTsKICAgICAgICAgaW5mby51RmxhZ3MgPSBU
VEZfSURJU0hXTkQ7CiAgICAgICAgIGluZm8udUlkID0gcmVpbnRlcnByZXRfY2FzdDxVSU5UX1BU
Uj4obV92aWV3V2luZG93KTsKQEAgLTc1NzYsNyArNzU3Niw3IEBAIHZvaWQgV2ViVmlldzo6ZnVs
bFNjcmVlbkNsaWVudERpZEV4aXRGdWxsU2NyZWVuKCkKIHZvaWQgV2ViVmlldzo6ZnVsbFNjcmVl
bkNsaWVudEZvcmNlUmVwYWludCgpCiB7CiAgICAgQVNTRVJUKG1fZnVsbHNjcmVlbkNvbnRyb2xs
ZXIpOwotICAgIFJFQ1Qgd2luZG93UmVjdCA9IHswfTsKKyAgICBSRUNUIHdpbmRvd1JlY3QgPSB7
IH07CiAgICAgZnJhbWVSZWN0KCZ3aW5kb3dSZWN0KTsKICAgICByZXBhaW50KHdpbmRvd1JlY3Qs
IHRydWUgLypjb250ZW50Q2hhbmdlZCovLCB0cnVlIC8qaW1tZWRpYXRlKi8sIGZhbHNlIC8qY29u
dGVudE9ubHkqLyk7CiAgICAgbV9mdWxsc2NyZWVuQ29udHJvbGxlci0+cmVwYWludENvbXBsZXRl
ZCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGMzZWNkNzNlMWM4YzkxYjYwOTkyOTUwMjAzNDE2ZTAyZmYwMzcxMmMuLjQyNjNhZTZkY2Y3MGUx
ZjAyNGE5MjJjMTc0MDlhNzU1NzM1Yjg5OGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxOC0xMi0xMSAgRnVqaWkg
SGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KKworICAgICAgICBbV2luXVtDbGFu
Z10gRml4IHdhcm5pbmcgLVdtaXNzaW5nLWZpZWxkLWluaXRpYWxpemVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNTg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5pdGlhbGl6ZSBhIHN0cnVjdCB3
aXRoICd7IH0nIGluc3RlYWQgb2YgJ3swfScuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocnVuVGVzdCk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKG1ha2VNc2cpOgorICAg
ICAgICAocmVwbGF5U2F2ZWRFdmVudHMpOgorICAgICAgICAoYmVnaW5EcmFnV2l0aEZpbGVzQ2Fs
bGJhY2spOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9QaXhlbER1bXBTdXBwb3J0V2lu
LmNwcDoKKyAgICAgICAgKGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyk6CisgICAgICAg
ICogTWluaUJyb3dzZXIvd2luL1dlYktpdExlZ2FjeUJyb3dzZXJXaW5kb3cuY3BwOgorICAgICAg
ICAodXBkYXRlTWVudUl0ZW1Gb3JIaXN0b3J5SXRlbSk6CisgICAgICAgICogTWluaUJyb3dzZXIv
d2luL1dpbk1haW4uY3BwOgorICAgICAgICAod1dpbk1haW4pOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvd2luL0hvc3RXaW5kb3cuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SG9zdFdp
bmRvdzo6Y2xpZW50UmVjdCBjb25zdCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpIb3N0V2lu
ZG93OjpyZWdpc3RlcldpbmRvd0NsYXNzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dpbi9Q
bGF0Zm9ybVdlYlZpZXdXaW4uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1X
ZWJWaWV3OjpyZWdpc3RlcldpbmRvd0NsYXNzKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwOgorICAgICAgICAoV1RSOjpyZWdpc3RlcldpbmRv
d0NsYXNzKToKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dGcmFtZSk6Cisg
ICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJbWFnZSk6CisKIDIw
MTgtMTItMTAgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAg
ICBbQ01ha2VdIEFkZCBFTkFCTEVfUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTIHRvIFdlYktpdEZl
YXR1cmVzLmNtYWtlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cAppbmRleCA5ZjkxYTJjYmEzNzAxYWJmYWIwYjg2ZTZkYmI3MWZmMzM0OTdmYjk0Li4xYjg5MjU3
ZmEzOGNkMzM1ZjAyYjgwNzIzODAyZmIxYTYzZGU1ZjUxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTEyMzEsNyArMTIzMSw3IEBAIHN0YXRpYyB2
b2lkIHJ1blRlc3QoY29uc3Qgc3RyaW5nJiBpbnB1dExpbmUpCiAgICAgd29ya1F1ZXVlLmNsZWFy
KCk7CiAgICAgd29ya1F1ZXVlLnNldEZyb3plbihmYWxzZSk7CiAKLSAgICBNU0cgbXNnID0geyAw
IH07CisgICAgTVNHIG1zZyA9IHsgfTsKICAgICBIV05EIGhvc3RXaW5kb3c7CiAgICAgd2ViVmll
dy0+aG9zdFdpbmRvdygmaG9zdFdpbmRvdyk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRXZl
bnRTZW5kZXIuY3BwCmluZGV4IGM5MDgwMDc1ZGM3OGM1NjY0M2MxMmZmOWNjNzk4MDQ5OWEwMDE1
ZTMuLjdjZGYwMTBjZGIzYjI1NDM4NDhlODJkNTAyZTUyOWJkYWIxZTBlMTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0YXRp
YyBEV09SRCBjdXJyZW50RXZlbnRUaW1lKCkKIAogc3RhdGljIE1TRyBtYWtlTXNnKEhXTkQgaHdu
ZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogewotICAgIE1T
RyByZXN1bHQgPSB7MH07CisgICAgTVNHIHJlc3VsdCA9IHsgfTsKICAgICByZXN1bHQuaHduZCA9
IGh3bmQ7CiAgICAgcmVzdWx0Lm1lc3NhZ2UgPSBtZXNzYWdlOwogICAgIHJlc3VsdC53UGFyYW0g
PSB3UGFyYW07CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCByZXBsYXlTYXZlZEV2ZW50cyhIUkVT
VUxUKiBvbGVEcmFnQW5kRHJvcFJldHVyblZhbHVlKQogewogICAgIHJlcGxheWluZ1NhdmVkRXZl
bnRzID0gdHJ1ZTsKICAgCi0gICAgTVNHIG1zZyA9IHsgMCB9OworICAgIE1TRyBtc2cgPSB7IH07
CiAKICAgICB3aGlsZSAoc3RhcnRPZlF1ZXVlIDwgZW5kT2ZRdWV1ZSAmJiAhbXNnUXVldWVbc3Rh
cnRPZlF1ZXVlXS5kZWxheSkgewogICAgICAgICBtc2cgPSBtc2dRdWV1ZVtzdGFydE9mUXVldWUr
K10ubXNnOwpAQCAtNjk2LDcgKzY5Niw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGJlZ2luRHJhZ1dp
dGhGaWxlc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmCiAgICAg
Ly8gV2Ugc2hvdWxkIGFwcGVuZCAiMCIgaW4gdGhlIGVuZCBvZiB8ZmlsZXN8IHNvIHRoYXQgfERy
YWdRdWVyeUZpbGVXfCByZXRyaWV2ZWQgdGhlIG51bWJlciBvZiBmaWxlcyBjb3JyZWN0bHkgZnJv
bSBPbGUgQ2xpcGJvYXJkLgogICAgIGZpbGVzLmFwcGVuZCgwKTsKIAotICAgIFNUR01FRElVTSBo
RHJvcE1lZGl1bSA9IHswfTsKKyAgICBTVEdNRURJVU0gaERyb3BNZWRpdW0gPSB7IH07CiAgICAg
aERyb3BNZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOwogICAgIFNJWkVfVCBkcm9wRmlsZXNT
aXplID0gc2l6ZW9mKERST1BGSUxFUykgKyAoc2l6ZW9mKFdDSEFSKSAqIGZpbGVzLnNpemUoKSk7
CiAgICAgaERyb3BNZWRpdW0uaEdsb2JhbCA9IEdsb2JhbEFsbG9jKEdNRU1fTU9WRUFCTEUgfCBH
TUVNX0RERVNIQVJFLCBkcm9wRmlsZXNTaXplKTsKQEAgLTcxMyw3ICs3MTMsNyBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBiZWdpbkRyYWdXaXRoRmlsZXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgZgogICAgICAgICBkYXRhW2ldID0gZmlsZXNbaV07CiAgICAgR2xvYmFs
VW5sb2NrKGhEcm9wTWVkaXVtLmhHbG9iYWwpOyAKIAotICAgIFNUR01FRElVTSBoRmlsZU5hbWVN
ZWRpdW0gPSB7MH07CisgICAgU1RHTUVESVVNIGhGaWxlTmFtZU1lZGl1bSA9IHsgfTsKICAgICBo
RmlsZU5hbWVNZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOwogICAgIFNJWkVfVCBoRmlsZU5h
bWVTaXplID0gc2l6ZW9mKFdDSEFSKSAqIGZpbGVzLnNpemUoKTsKICAgICBoRmlsZU5hbWVNZWRp
dW0uaEdsb2JhbCA9IEdsb2JhbEFsbG9jKEdNRU1fTU9WRUFCTEUgfCBHTUVNX0RERVNIQVJFLCBo
RmlsZU5hbWVTaXplKTsKQEAgLTkyNSw3ICs5MjUsNyBAQCBzdGF0aWMgSlNDbGFzc1JlZiBnZXRD
bGFzcyhKU0NvbnRleHRSZWYgY29udGV4dCkKICAgICBzdGF0aWMgSlNDbGFzc1JlZiBldmVudFNl
bmRlckNsYXNzID0gMDsKIAogICAgIGlmICghZXZlbnRTZW5kZXJDbGFzcykgewotICAgICAgICBK
U0NsYXNzRGVmaW5pdGlvbiBjbGFzc0RlZmluaXRpb24gPSB7MH07CisgICAgICAgIEpTQ2xhc3NE
ZWZpbml0aW9uIGNsYXNzRGVmaW5pdGlvbiA9IHsgfTsKICAgICAgICAgY2xhc3NEZWZpbml0aW9u
LnN0YXRpY0Z1bmN0aW9ucyA9IHN0YXRpY0Z1bmN0aW9uczsKICAgICAgICAgY2xhc3NEZWZpbml0
aW9uLnN0YXRpY1ZhbHVlcyA9IHN0YXRpY1ZhbHVlczsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL1BpeGVsRHVtcFN1cHBvcnRXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL1BpeGVsRHVtcFN1cHBvcnRXaW4uY3BwCmluZGV4IDQ0OTViNzQ2NzRhZjQwNzI3
NmE1NjgxZDNlYWM5ZmI3NmVlYWFlNzkuLjkyMDc0MDJhNWE0MTRhMzkwOGU3OTgxZjcwMTIxYzE5
NmUyOGU1N2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9QaXhlbER1bXBT
dXBwb3J0V2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vUGl4ZWxEdW1wU3Vw
cG9ydFdpbi5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0
ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29sIGluY3JlbWUKICAg
ICBpZiAoIUdldFdpbmRvd1JlY3Qod2ViVmlld1dpbmRvdywgJmZyYW1lKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKLSAgICBCSVRNQVBJTkZPIGJtcCA9IHswfTsKKyAgICBCSVRNQVBJTkZP
IGJtcCA9IHsgfTsKICAgICBibXAuYm1pSGVhZGVyLmJpU2l6ZSA9IHNpemVvZihCSVRNQVBJTkZP
SEVBREVSKTsKICAgICBibXAuYm1pSGVhZGVyLmJpV2lkdGggPSBmcmFtZS5yaWdodCAtIGZyYW1l
LmxlZnQ7CiAgICAgYm1wLmJtaUhlYWRlci5iaUhlaWdodCA9IC0oZnJhbWUuYm90dG9tIC0gZnJh
bWUudG9wKTsKQEAgLTc5LDcgKzc5LDcgQEAgUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJp
dG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29sIGluY3JlbWUKICAgICA6
OlNlbGVjdE9iamVjdChtZW1vcnlEQy5nZXQoKSwgYml0bWFwKTsKICAgICBTZW5kTWVzc2FnZSh3
ZWJWaWV3V2luZG93LCBXTV9QUklOVCwgcmVpbnRlcnByZXRfY2FzdDxXUEFSQU0+KG1lbW9yeURD
LmdldCgpKSwgUFJGX0NMSUVOVCB8IFBSRl9DSElMRFJFTiB8IFBSRl9PV05FRCk7CiAKLSAgICBC
SVRNQVAgaW5mbyA9IHswfTsKKyAgICBCSVRNQVAgaW5mbyA9IHsgfTsKICAgICBHZXRPYmplY3Qo
Yml0bWFwLCBzaXplb2YoaW5mbyksICZpbmZvKTsKICAgICBBU1NFUlQoaW5mby5ibUJpdHNQaXhl
bCA9PSAzMik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRMZWdh
Y3lCcm93c2VyV2luZG93LmNwcCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRMZWdhY3lC
cm93c2VyV2luZG93LmNwcAppbmRleCBmNmZjZDU3OTRmNzlmNjkyYWJlNzcyYTgyNzNiNzFhODQ3
MGRkMzM4Li4zODhlMDU1YjdkMGFlZjE1YmQzZDczMTM5MWUzZmQ3ZTFlMWQxOGVkIDEwMDY0NAot
LS0gYS9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2ViS2l0TGVnYWN5QnJvd3NlcldpbmRvdy5jcHAK
KysrIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dlYktpdExlZ2FjeUJyb3dzZXJXaW5kb3cuY3Bw
CkBAIC0zMjksNyArMzI5LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlTWVudUl0ZW1Gb3JIaXN0b3J5
SXRlbShITUVOVSBtZW51LCBJV2ViSGlzdG9yeUl0ZW0mIGhpc3RvcnlJdGUKIHsKICAgICBVSU5U
IG1lbnVJRCA9IElETV9ISVNUT1JZX0xJTkswICsgY3VycmVudEhpc3RvcnlJdGVtOwogCi0gICAg
TUVOVUlURU1JTkZPIG1lbnVJdGVtSW5mbyA9IHsgMCB9OworICAgIE1FTlVJVEVNSU5GTyBtZW51
SXRlbUluZm8gPSB7IH07CiAgICAgbWVudUl0ZW1JbmZvLmNiU2l6ZSA9IHNpemVvZihNRU5VSVRF
TUlORk8pOwogICAgIG1lbnVJdGVtSW5mby5mTWFzayA9IE1JSU1fVFlQRTsKICAgICBtZW51SXRl
bUluZm8uZlR5cGUgPSBNRlRfU1RSSU5HOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIv
d2luL1dpbk1haW4uY3BwIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dpbk1haW4uY3BwCmluZGV4
IDQyNmEwOWViMGU2ZWNjNzg1ODAxYTc3YjIwMDc4NTFhYzQ3MDBhZjQuLmNhZDJhYjYyODE1YjNj
YTEzNWYwZjVmODUzYTMwNDU2NWRkMjQ4YjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2Vy
L3dpbi9XaW5NYWluLmNwcAorKysgYi9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2luTWFpbi5jcHAK
QEAgLTQxLDcgKzQxLDcgQEAgaW50IFdJTkFQSSB3V2luTWFpbihfSW5fIEhJTlNUQU5DRSBoSW5z
dGFuY2UsIF9Jbl9vcHRfIEhJTlNUQU5DRSBoUHJldkluc3RhbmNlLAogICAgIF9DcnRTZXRSZXBv
cnRNb2RlKF9DUlRfV0FSTiwgX0NSVERCR19NT0RFX0ZJTEUpOwogI2VuZGlmCiAKLSAgICBNU0cg
bXNnID0gezB9OworICAgIE1TRyBtc2cgPSB7IH07CiAgICAgSEFDQ0VMIGhBY2NlbFRhYmxlOwog
CiAgICAgSU5JVENPTU1PTkNPTlRST0xTRVggSW5pdEN0cmxFeDsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvd2luL0hvc3RXaW5kb3cuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93
aW4vSG9zdFdpbmRvdy5jcHAKaW5kZXggNzRjOTQ3ZDllYjAxNWU5Zjg4NDdhYmJhYjQxZTZjYjU1
MWZhZmNlZi4uM2U3OTc4ZWFjMzIxMTI0ZjU2MzMwYTUzNzFjOGRlNzIzMDNiOTFiMiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vSG9zdFdpbmRvdy5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS93aW4vSG9zdFdpbmRvdy5jcHAKQEAgLTUwLDkgKzUwLDkgQEAgSG9zdFdp
bmRvdzo6fkhvc3RXaW5kb3coKQogCiBSRUNUIEhvc3RXaW5kb3c6OmNsaWVudFJlY3QoKSBjb25z
dAogewotICAgIFJFQ1QgcmVjdCA9IHswfTsKKyAgICBSRUNUIHJlY3QgPSB7IH07CiAgICAgaWYg
KCE6OkdldENsaWVudFJlY3QobV93aW5kb3csICZyZWN0KSkgewotICAgICAgICBSRUNUIGVtcHR5
UmVjdCA9IHswfTsKKyAgICAgICAgUkVDVCBlbXB0eVJlY3QgPSB7IH07CiAgICAgICAgIHJldHVy
biBlbXB0eVJlY3Q7CiAgICAgfQogICAgIHJldHVybiByZWN0OwpAQCAtNjUsNyArNjUsNyBAQCB2
b2lkIEhvc3RXaW5kb3c6OnJlZ2lzdGVyV2luZG93Q2xhc3MoKQogICAgICAgICByZXR1cm47CiAg
ICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwogCi0gICAgV05EQ0xBU1NFWFcgd25kQ2xhc3MgPSB7MH07
CisgICAgV05EQ0xBU1NFWFcgd25kQ2xhc3MgPSB7IH07CiAgICAgd25kQ2xhc3MuY2JTaXplID0g
c2l6ZW9mKHduZENsYXNzKTsKICAgICB3bmRDbGFzcy5zdHlsZSA9IENTX0hSRURSQVcgfCBDU19W
UkVEUkFXOwogICAgIHduZENsYXNzLmxwZm5XbmRQcm9jID0gd25kUHJvYzsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCmluZGV4IDFjMGM2ODllMTYx
NWI5MTE0N2JjZTA5YmU3Yzc2NDdkNTdhYmJhMjcuLmY5YmY5M2ZkYTI5YTUxMzQ2ZmIzZDQyNWIw
MDA5MmJlNWJhNjNkODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRm
b3JtV2ViVmlld1dpbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1X
ZWJWaWV3V2luLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVn
aXN0ZXJXaW5kb3dDbGFzcygpCiAgICAgICAgIHJldHVybjsKICAgICBpbml0aWFsaXplZCA9IHRy
dWU7CiAKLSAgICBXTkRDTEFTU0VYVyB3bmRDbGFzcyA9IHswfTsKKyAgICBXTkRDTEFTU0VYVyB3
bmRDbGFzcyA9IHsgfTsKICAgICB3bmRDbGFzcy5jYlNpemUgPSBzaXplb2Yod25kQ2xhc3MpOwog
ICAgIHduZENsYXNzLnN0eWxlID0gQ1NfSFJFRFJBVyB8IENTX1ZSRURSQVc7CiAgICAgd25kQ2xh
c3MubHBmblduZFByb2MgPSB3bmRQcm9jOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAKaW5kZXggZGM5ZDNhMWVmZGZiNzVmNjBlNTEyNzNm
ZTYwYjBkNGNmZTQxZTA1Zi4uNTdmNDk1YTEwNjJhOTFmYmExMjkwZDk3YjZlMDA1ODhlZmUzY2Iy
ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3
V2luLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdX
aW4uY3BwCkBAIC00OSw3ICs0OSw3IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVyV2luZG93Q2xhc3Mo
KQogICAgICAgICByZXR1cm47CiAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwogCi0gICAgV05EQ0xB
U1NFWFcgd25kQ2xhc3MgPSB7MH07CisgICAgV05EQ0xBU1NFWFcgd25kQ2xhc3MgPSB7IH07CiAg
ICAgd25kQ2xhc3MuY2JTaXplID0gc2l6ZW9mKHduZENsYXNzKTsKICAgICB3bmRDbGFzcy5zdHls
ZSA9IENTX0hSRURSQVcgfCBDU19WUkVEUkFXOwogICAgIHduZENsYXNzLmxwZm5XbmRQcm9jID0g
RGVmV2luZG93UHJvYzsKQEAgLTExNyw3ICsxMTcsNyBAQCB2b2lkIFBsYXRmb3JtV2ViVmlldzo6
Zm9jdXMoKQogCiBXS1JlY3QgUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dGcmFtZSgpCiB7Ci0gICAg
V0tSZWN0IHdrRnJhbWUgPSB7MH07CisgICAgV0tSZWN0IHdrRnJhbWUgPSB7IH07CiAgICAgUkVD
VCByOwogCiAgICAgaWYgKDo6R2V0V2luZG93UmVjdChtX3dpbmRvdywgJnIpKSB7CkBAIC0yMDMs
NyArMjAzLDcgQEAgY2Fpcm9fc3VyZmFjZV90KiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBz
aG90SW1hZ2UoKQogICAgIFdlYkNvcmU6OkhXbmREQyB3aW5kb3dEQyhtX3dpbmRvdyk7CiAgICAg
YXV0byBtZW1vcnlEQyA9IGFkb3B0R0RJT2JqZWN0KDo6Q3JlYXRlQ29tcGF0aWJsZURDKHdpbmRv
d0RDKSk7CiAKLSAgICBCSVRNQVBJTkZPIGJpdG1hcEluZm8gPSB7MH07CisgICAgQklUTUFQSU5G
TyBiaXRtYXBJbmZvID0geyB9OwogICAgIFdLUmVjdCB3a0ZyYW1lID0gd2luZG93RnJhbWUoKTsK
ICAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5iaVNpemUgPSBzaXplb2YoQklUTUFQSU5GT0hFQURF
Uik7CiAgICAgYml0bWFwSW5mby5ibWlIZWFkZXIuYmlXaWR0aCA9IHdpZHRoOwpAQCAtMjMwLDcg
KzIzMCw3IEBAIGNhaXJvX3N1cmZhY2VfdCogUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hv
dEltYWdlKCkKICAgICAgICAgMCwKICAgICAgICAgU1JDQ09QWSk7CiAKLSAgICBCSVRNQVAgYml0
bWFwVGFnID0gezB9OworICAgIEJJVE1BUCBiaXRtYXBUYWcgPSB7IH07CiAgICAgR2V0T2JqZWN0
KGJpdG1hcC5nZXQoKSwgc2l6ZW9mKGJpdG1hcFRhZyksICZiaXRtYXBUYWcpOwogICAgIEFTU0VS
VChiaXRtYXBUYWcuYm1CaXRzUGl4ZWwgPT0gMzIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357044</attachid>
            <date>2018-12-11 01:49:15 -0800</date>
            <delta_ts>2018-12-11 17:17:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192584-20181211184914.patch</filename>
            <type>text/plain</type>
            <size>29012</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MDYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc3YzY5ZGY4NDE3NWVi
YmEzMDU5Yjg5YTkyYWVjOTZhZTYzZWVlMi4uNmQ1MDlhY2EzZWRkNzQyZWE5MzgxNjJkYjQyYzhj
ZDU1YjY4MmY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE4LTEyLTExICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5dW0Ns
YW5nXSBGaXggd2FybmluZyAtV21pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI1ODQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsaXplIGEgc3RydWN0
IHdpdGggJ3sgfScgaW5zdGVhZCBvZiAnPSB7MH0nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
bm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9G
b250Q2FjaGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpsYXN0UmVzb3J0
RmFsbGJhY2tGb250KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93OjpjcmVhdGVXaW5kb3cpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c2V0RmlsZURlc2NyaXB0b3JEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEZpbGVDb250ZW50
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRVQ2hhckRhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6c2V0VXRmOERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6c2V0Q0ZEYXRhKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVNo
YXJlZEN1cnNvcik6CisgICAgICAgICogcGxhdGZvcm0vd2luL0RlZlduZFByb2NXaW5kb3dDbGFz
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RlckNsYXNzKToKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vRHJhZ0ltYWdlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZURyYWdJ
bWFnZUljb25Gb3JDYWNoZWRJbWFnZUZpbGVuYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
UGFzdGVib2FyZFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVVSTCk6CisgICAgICAg
IChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpQ
YXN0ZWJvYXJkOjp3cml0ZVJhbmdlVG9EYXRhT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0VG9EYXRhT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OndyaXRlRmlsZVRvRGF0YU9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3
cml0ZU1hcmt1cCk6CisgICAgICAgICogcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNob3cpOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZTo6
c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKToKKwogMjAxOC0xMi0xMCAgQW50dGkg
S29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lICJmb3JjZWQgc3R5
bGUgcmVjYWxjIiB0byAiZnVsbCBzdHlsZSByZWJ1aWxkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwZGM3MTQ1N2Rj
MDIyZTMyZGZlMTljYTI2OGMxODBiOGUyMGFhZmQzLi5hODIxMmQyZjc5ZDA4MGMzOTFkODYzZjhl
MjE4OWM1ZTJiNGEzMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE4LTEyLTExICBG
dWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5d
W0NsYW5nXSBGaXggd2FybmluZyAtV21pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI1ODQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsaXplIGEgc3Ry
dWN0IHdpdGggJ3sgfScgaW5zdGVhZCBvZiAnPSB7MH0nLgorCisgICAgICAgICogVUlQcm9jZXNz
L0xhdW5jaGVyL3dpbi9Qcm9jZXNzTGF1bmNoZXJXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
cm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4v
V2ViUG9wdXBNZW51UHJveHlXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1lbnVQ
cm94eVdpbjo6c2hvd1BvcHVwTWVudSk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6aW5pdGlhbGl6ZVRvb2xUaXBXaW5kb3cp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3OjpzZXRUb29sVGlwKToKKwogMjAxOC0xMi0xMCAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBBbmltYXRl
ZCBzY3JvbGxpbmcgb24gR29vZ2xlIE1hcHMgc2Nyb2xscyB0aGUgcGFnZSBpbiBhZGRpdGlvbiB0
byBtb3ZpbmcgdGhlIG1hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGYwMTNmNTJk
MjdiN2MwMGFlOGY3N2U3ZTM0NzNjYzMxZjc5ZjI3ZDMuLjhiNjk0MmFiNDliYWVhYWU2MzUwZDE3
NjQ3ZTE1YmI0N2E4NjVkYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAxOC0xMi0xMSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KKworICAgICAgICBbV2luXVtDbGFuZ10gRml4IHdhcm5pbmcgLVdtaXNzaW5nLWZpZWxk
LWluaXRpYWxpemVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkyNTg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW5pdGlhbGl6ZSBhIHN0cnVjdCB3aXRoICd7IH0nIGluc3RlYWQgb2YgJz0gezB9Jy4K
KworICAgICAgICAqIFdlYktpdE1lc3NhZ2VMb29wLmNwcDoKKyAgICAgICAgKFdlYktpdE1lc3Nh
Z2VMb29wOjpydW4pOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
b25NZW51Q29tbWFuZCk6CisgICAgICAgIChXZWJWaWV3OjpnZXN0dXJlKToKKyAgICAgICAgKFdl
YlZpZXc6OnNldFNob3VsZEludmVydENvbG9ycyk6CisgICAgICAgIChXZWJWaWV3Ojppbml0aWFs
aXplVG9vbFRpcFdpbmRvdyk6CisgICAgICAgIChXZWJWaWV3OjpzZXRUb29sVGlwKToKKyAgICAg
ICAgKFdlYlZpZXc6OmZ1bGxTY3JlZW5DbGllbnRGb3JjZVJlcGFpbnQpOgorCiAyMDE4LTEyLTA1
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFR1cm4g
V3JpdGluZ0RpcmVjdGlvbiBpbnRvIGFuIGVudW0gY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5kZXggNzk2Mjg3
Njk4MTczYWI0NDNjNDQ3OGVhNDk1YjhhZjY5MTMyM2NhYS4uZjJkNjYwZGE5ZmJmOTQ1OWI5YTU1
YzNhNTZmNTQzM2Y0MWVjOTUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTM3NCw3ICszNzQsNyBAQCBSZWY8
Rm9udD4gRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGb250KGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aQogICAgIH0KIAogICAgIC8vIEZhbGwgYmFjayB0byBOb24tY2xp
ZW50IG1ldHJpY3MgZm9udHMuCi0gICAgTk9OQ0xJRU5UTUVUUklDUyBub25DbGllbnRNZXRyaWNz
ID0gezB9OworICAgIE5PTkNMSUVOVE1FVFJJQ1Mgbm9uQ2xpZW50TWV0cmljcyB7IH07CiAgICAg
bm9uQ2xpZW50TWV0cmljcy5jYlNpemUgPSBzaXplb2Yobm9uQ2xpZW50TWV0cmljcyk7CiAgICAg
aWYgKFN5c3RlbVBhcmFtZXRlcnNJbmZvKFNQSV9HRVROT05DTElFTlRNRVRSSUNTLCBzaXplb2Yo
bm9uQ2xpZW50TWV0cmljcyksICZub25DbGllbnRNZXRyaWNzLCAwKSkgewogICAgICAgICBpZiAo
c2ltcGxlRm9udCA9IGZvbnRGcm9tRGVzY3JpcHRpb25BbmRMb2dGb250KGZvbnREZXNjcmlwdGlv
biwgbm9uQ2xpZW50TWV0cmljcy5sZk1lc3NhZ2VGb250LCBmYWxsYmFja0ZvbnROYW1lKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93LmNwcAppbmRleCAx
NmI2YjVkZmY4MDA1YzRmYTRiODcyMjM4NWQyOTczMzQ4NGIyY2QyLi5mMjQ2ODU4YWY1MDBkOGU0
NWU3Y2U1Yzg1OTA2YjA5MDk5NDdiNzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJp
dmF0ZUZ1bGxzY3JlZW5XaW5kb3cuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvdzo6Y3JlYXRlV2luZG93KEhXTkQgcGFyZW50SHduZCkK
ICAgICBzdGF0aWMgQVRPTSB3aW5kb3dBdG9tOwogICAgIHN0YXRpYyBMUENXU1RSIHdpbmRvd0Ns
YXNzTmFtZSA9IEwiTWVkaWFQbGF5ZXJQcml2YXRlRnVsbHNjcmVlbldpbmRvd0NsYXNzIjsKICAg
ICBpZiAoIXdpbmRvd0F0b20pIHsKLSAgICAgICAgV05EQ0xBU1NFWCB3Y2V4ID0gezB9OworICAg
ICAgICBXTkRDTEFTU0VYIHdjZXggeyB9OwogICAgICAgICB3Y2V4LmNiU2l6ZSA9IHNpemVvZih3
Y2V4KTsKICAgICAgICAgd2NleC5zdHlsZSA9IENTX0hSRURSQVcgfCBDU19WUkVEUkFXOwogICAg
ICAgICB3Y2V4LmxwZm5XbmRQcm9jID0gc3RhdGljV25kUHJvYzsKQEAgLTcyLDcgKzcyLDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVGdWxsc2NyZWVuV2luZG93OjpjcmVhdGVXaW5kb3coSFdO
RCBwYXJlbnRId25kKQogCiAgICAgQVNTRVJUKCFtX2h3bmQpOwogCi0gICAgTU9OSVRPUklORk8g
bWkgPSB7MH07CisgICAgTU9OSVRPUklORk8gbWkgeyB9OwogICAgIG1pLmNiU2l6ZSA9IHNpemVv
ZihNT05JVE9SSU5GTyk7CiAgICAgaWYgKCFHZXRNb25pdG9ySW5mbyhNb25pdG9yRnJvbVdpbmRv
dyhwYXJlbnRId25kLCBNT05JVE9SX0RFRkFVTFRUT05FQVJFU1QpLCAmbWkpKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
VXRpbGl0aWVzV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRV
dGlsaXRpZXNXaW4uY3BwCmluZGV4IDc5MGE4MmY4YjY3MTEwMGExNjJlNTNlZDg5Nzk3Y2Q5MDc4
ZWZmZjUuLjRjNTJiYzBmZTkxNWM1MjU2ZDZiNTAyYTk2N2I4MjQ2MDE4MTY0Y2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRVdGlsaXRpZXNXaW4u
Y3BwCkBAIC00MjQsNyArNDI0LDcgQEAgdm9pZCBzZXRGaWxlRGVzY3JpcHRvckRhdGEoSURhdGFP
YmplY3QqIGRhdGFPYmplY3QsIGludCBzaXplLCBjb25zdCBTdHJpbmcmIHBhc3MKIHsKICAgICBT
dHJpbmcgcGF0aG5hbWUgPSBwYXNzZWRQYXRobmFtZTsKIAotICAgIFNUR01FRElVTSBtZWRpdW0g
PSB7IDAgfTsKKyAgICBTVEdNRURJVU0gbWVkaXVtIHsgfTsKICAgICBtZWRpdW0udHltZWQgPSBU
WU1FRF9IR0xPQkFMOwogCiAgICAgbWVkaXVtLmhHbG9iYWwgPSA6Okdsb2JhbEFsbG9jKEdQVFIs
IHNpemVvZihGSUxFR1JPVVBERVNDUklQVE9SKSk7CkBAIC00NDYsNyArNDQ2LDcgQEAgdm9pZCBz
ZXRGaWxlRGVzY3JpcHRvckRhdGEoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIGludCBzaXplLCBj
b25zdCBTdHJpbmcmIHBhc3MKIAogdm9pZCBzZXRGaWxlQ29udGVudERhdGEoSURhdGFPYmplY3Qq
IGRhdGFPYmplY3QsIGludCBzaXplLCB2b2lkKiBkYXRhQmxvYikKIHsKLSAgICBTVEdNRURJVU0g
bWVkaXVtID0geyAwIH07CisgICAgU1RHTUVESVVNIG1lZGl1bSB7IH07CiAgICAgbWVkaXVtLnR5
bWVkID0gVFlNRURfSEdMT0JBTDsKIAogICAgIG1lZGl1bS5oR2xvYmFsID0gOjpHbG9iYWxBbGxv
YyhHUFRSLCBzaXplKTsKQEAgLTc1NCw3ICs3NTQsNyBAQCB2b2lkIGdldENGRGF0YShJRGF0YU9i
amVjdCogZGF0YSwgRk9STUFURVRDKiBmb3JtYXQsIFZlY3RvcjxTdHJpbmc+JiBkYXRhU3RyaW5n
cwogCiB2b2lkIHNldFVDaGFyRGF0YShJRGF0YU9iamVjdCogZGF0YSwgRk9STUFURVRDKiBmb3Jt
YXQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhU3RyaW5ncykKIHsKLSAgICBTVEdNRURJVU0g
bWVkaXVtID0gezB9OworICAgIFNUR01FRElVTSBtZWRpdW0geyB9OwogICAgIG1lZGl1bS50eW1l
ZCA9IFRZTUVEX0hHTE9CQUw7CiAKICAgICBtZWRpdW0uaEdsb2JhbCA9IGNyZWF0ZUdsb2JhbERh
dGEoZGF0YVN0cmluZ3MuZmlyc3QoKSk7CkBAIC03NjYsNyArNzY2LDcgQEAgdm9pZCBzZXRVQ2hh
ckRhdGEoSURhdGFPYmplY3QqIGRhdGEsIEZPUk1BVEVUQyogZm9ybWF0LCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZGEKIAogdm9pZCBzZXRVdGY4RGF0YShJRGF0YU9iamVjdCogZGF0YSwgRk9STUFU
RVRDKiBmb3JtYXQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBkYXRhU3RyaW5ncykKIHsKLSAgICBT
VEdNRURJVU0gbWVkaXVtID0gezB9OworICAgIFNUR01FRElVTSBtZWRpdW0geyB9OwogICAgIG1l
ZGl1bS50eW1lZCA9IFRZTUVEX0hHTE9CQUw7CiAKICAgICBDU3RyaW5nIGNoYXJTdHJpbmcgPSBk
YXRhU3RyaW5ncy5maXJzdCgpLnV0ZjgoKTsKQEAgLTc4NSw3ICs3ODUsNyBAQCB2b2lkIHNldFV0
ZjhEYXRhKElEYXRhT2JqZWN0KiBkYXRhLCBGT1JNQVRFVEMqIGZvcm1hdCwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGRhdAogI2lmIFVTRShDRikKIHZvaWQgc2V0Q0ZEYXRhKElEYXRhT2JqZWN0KiBk
YXRhLCBGT1JNQVRFVEMqIGZvcm1hdCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFTdHJpbmdz
KQogewotICAgIFNUR01FRElVTSBtZWRpdW0gPSB7MH07CisgICAgU1RHTUVESVVNIG1lZGl1bSB7
IH07CiAgICAgbWVkaXVtLnR5bWVkID0gVFlNRURfSEdMT0JBTDsKIAogICAgIFNJWkVfVCBkcm9w
RmlsZXNTaXplID0gc2l6ZW9mKERST1BGSUxFUykgKyAoc2l6ZW9mKFdDSEFSKSAqIChkYXRhU3Ry
aW5ncy5maXJzdCgpLmxlbmd0aCgpICsgMikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL0N1cnNvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
Q3Vyc29yV2luLmNwcAppbmRleCBiNGZmYmM1Y2Y3ODkwOWUwZjNlMzNmZjRmMjFjMDkwODUzZTQ3
ZThhLi5kNWMxZjNmY2U2NjRlMTc5NzZmMjNiNGNlN2ViYzVmNWVlNGJjZDg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHN0
YXRpYyBSZWY8U2hhcmVkQ3Vyc29yPiBjcmVhdGVTaGFyZWRDdXJzb3IoSW1hZ2UqIGltZywgY29u
c3QgSW50UG9pbnQmIGhvdFNwb3QpCiAgICAgICAgIFNlbGVjdE9iamVjdChhbmRNYXNrREMuZ2V0
KCksIG9sZEFuZE1hc2spOwogICAgICAgICBTZWxlY3RPYmplY3QoeG9yTWFza0RDLmdldCgpLCBv
bGRYb3JNYXNrKTsKIAotICAgICAgICBJQ09OSU5GTyBpY29uID0gezB9OworICAgICAgICBJQ09O
SU5GTyBpY29uIHsgfTsKICAgICAgICAgaWNvbi5mSWNvbiA9IEZBTFNFOwogICAgICAgICBpY29u
LnhIb3RzcG90ID0gZWZmZWN0aXZlSG90U3BvdC54KCk7CiAgICAgICAgIGljb24ueUhvdHNwb3Qg
PSBlZmZlY3RpdmVIb3RTcG90LnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9EZWZXbmRQcm9jV2luZG93Q2xhc3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0RlZlduZFByb2NXaW5kb3dDbGFzcy5jcHAKaW5kZXggYjA3YTZkZWUzNWFkZTk5NDIw
ZTgyNDRmOTQzYTg2OTQ3YTUwM2VkNC4uZmFlYjY2OTc1OTY3MjViY2Y3Nzc0OTdmYjEyY2RkNmM5
NmJjODI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RlZlduZFBy
b2NXaW5kb3dDbGFzcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RlZldu
ZFByb2NXaW5kb3dDbGFzcy5jcHAKQEAgLTM1LDcgKzM1LDcgQEAgc3RhdGljIGNvbnN0IHdjaGFy
X3QgY2xhc3NOYW1lW10gPSBMIkRlZlduZFByb2NXaW5kb3dDbGFzcyI7CiAKIHN0YXRpYyBBVE9N
IHJlZ2lzdGVyQ2xhc3MoKQogewotICAgIFdORENMQVNTVyB3bmRDbGFzcyA9IHswfTsKKyAgICBX
TkRDTEFTU1cgd25kQ2xhc3MgeyB9OwogICAgIHduZENsYXNzLmxwc3pDbGFzc05hbWUgPSBjbGFz
c05hbWU7CiAgICAgd25kQ2xhc3MubHBmblduZFByb2MgPSA6OkRlZldpbmRvd1Byb2NXOwogICAg
IHduZENsYXNzLmhJbnN0YW5jZSA9IGluc3RhbmNlSGFuZGxlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0ltYWdlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3BwCmluZGV4IGE2YjY3MmZjNzI3ZmU4Mzc5YTJk
MGY3ZTA0NjA3MTY5NjBjZmJiODcuLjgzNjNlMTc3M2EwYTVmM2IxMTgwODAzODc4OTZhYWY2ZWZi
YzQxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnSW1hZ2VXaW4uY3Bw
CkBAIC03Myw3ICs3Myw3IEBAIERyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rp
b24oRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCkKICAgICAgICAgCiBEcmFnSW1hZ2VSZWYgY3Jl
YXRlRHJhZ0ltYWdlSWNvbkZvckNhY2hlZEltYWdlRmlsZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxl
bmFtZSkKIHsKLSAgICBTSEZJTEVJTkZPIHNoZmkgPSB7MH07CisgICAgU0hGSUxFSU5GTyBzaGZp
IHsgfTsKICAgICBTdHJpbmcgZm5hbWUgPSBmaWxlbmFtZTsKICAgICBpZiAoRkFJTEVEKFNIR2V0
RmlsZUluZm8oc3RyaW5nVG9OdWxsVGVybWluYXRlZFdDaGFyKGZuYW1lKS5kYXRhKCksIEZJTEVf
QVRUUklCVVRFX05PUk1BTCwgJnNoZmksIHNpemVvZihzaGZpKSwgU0hHRklfSUNPTiB8IFNIR0ZJ
X1VTRUZJTEVBVFRSSUJVVEVTKSkpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL1Bhc3RlYm9hcmRXaW4uY3BwCmluZGV4IGQ1OTY3YTU4MjBjOTdhZTI4
YzYyNWE1MGQ4MDM4ZTAwZWUyNWRkMmEuLmY0NTY1Y2UwNWY2OGM4NjU3MmU2OGIwOWU1M2Q1YmIx
MDA3M2MwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9QYXN0ZWJv
YXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUGFzdGVib2FyZFdp
bi5jcHAKQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0aWMgYm9vbCB3cml0ZVVSTChXQ0RhdGFPYmpl
Y3QgKmRhdGEsIGNvbnN0IFVSTCYgdXJsLCBTdHJpbmcgdGl0bGUsIGJvb2wgd2l0aAogICAgICAg
ICAgICAgdGl0bGUgPSB1cmwuaG9zdCgpLnRvU3RyaW5nKCk7CiAgICAgfQogCi0gICAgU1RHTUVE
SVVNIG1lZGl1bSA9IHswfTsKKyAgICBTVEdNRURJVU0gbWVkaXVtIHsgfTsKICAgICBtZWRpdW0u
dHltZWQgPSBUWU1FRF9IR0xPQkFMOwogCiAgICAgbWVkaXVtLmhHbG9iYWwgPSBjcmVhdGVHbG9i
YWxEYXRhKHVybCwgdGl0bGUpOwpAQCAtNDE3LDcgKzQxNyw3IEBAIHZvaWQgUGFzdGVib2FyZDo6
d3JpdGVTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpCiAgICAg
fQogCiAgICAgaWYgKHdpblR5cGUgPT0gQ2xpcGJvYXJkRGF0YVR5cGVUZXh0KSB7Ci0gICAgICAg
IFNUR01FRElVTSBtZWRpdW0gPSB7MH07CisgICAgICAgIFNUR01FRElVTSBtZWRpdW0geyB9Owog
ICAgICAgICBtZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOwogICAgICAgICBtZWRpdW0uaEds
b2JhbCA9IGNyZWF0ZUdsb2JhbERhdGEoZGF0YSk7CiAgICAgICAgIGlmICghbWVkaXVtLmhHbG9i
YWwpCkBAIC00NDAsNyArNDQwLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVJhbmdlVG9EYXRh
T2JqZWN0KFJhbmdlJiBzZWxlY3RlZFJhbmdlLCBGcmFtZSYgZnJhbWUpCiAgICAgaWYgKCFtX3dy
aXRhYmxlRGF0YU9iamVjdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU1RHTUVESVVNIG1lZGl1
bSA9IHswfTsKKyAgICBTVEdNRURJVU0gbWVkaXVtIHsgfTsKICAgICBtZWRpdW0udHltZWQgPSBU
WU1FRF9IR0xPQkFMOwogCiAgICAgVmVjdG9yPGNoYXI+IGRhdGE7CkBAIC01MDUsNyArNTA1LDcg
QEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dFRvRGF0YU9iamVjdChjb25zdCBTdHJp
bmcmIHRleHQsIFNtYXJ0UmVwbGFjZU9wdGkKICAgICBpZiAoIW1fd3JpdGFibGVEYXRhT2JqZWN0
KQogICAgICAgICByZXR1cm47CiAKLSAgICBTVEdNRURJVU0gbWVkaXVtID0gezB9OworICAgIFNU
R01FRElVTSBtZWRpdW0geyB9OwogICAgIG1lZGl1bS50eW1lZCA9IFRZTUVEX0hHTE9CQUw7CiAK
ICAgICBTdHJpbmcgc3RyID0gdGV4dDsKQEAgLTYwNiw3ICs2MDYsNyBAQCBzdGF0aWMgSFJFU1VM
VCB3cml0ZUZpbGVUb0RhdGFPYmplY3QoSURhdGFPYmplY3QqIGRhdGFPYmplY3QsIEhHTE9CQUwg
ZmlsZURlc2NyaQogewogICAgIEhSRVNVTFQgaHIgPSBTX09LOwogICAgIEZPUk1BVEVUQyogZmU7
Ci0gICAgU1RHTUVESVVNIG1lZGl1bSA9IHswfTsKKyAgICBTVEdNRURJVU0gbWVkaXVtIHsgfTsK
ICAgICBtZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOwogCiAgICAgaWYgKCFmaWxlRGVzY3Jp
cHRvciB8fCAhZmlsZUNvbnRlbnQpCkBAIC0xMDYzLDcgKzEwNjMsNyBAQCB2b2lkIFBhc3RlYm9h
cmQ6OndyaXRlTWFya3VwKGNvbnN0IFN0cmluZyYgbWFya3VwKQogICAgIFZlY3RvcjxjaGFyPiBk
YXRhOwogICAgIG1hcmt1cFRvQ0ZIVE1MKG1hcmt1cCwgIiIsIGRhdGEpOwogCi0gICAgU1RHTUVE
SVVNIG1lZGl1bSA9IHswfTsKKyAgICBTVEdNRURJVU0gbWVkaXVtIHsgfTsKICAgICBtZWRpdW0u
dHltZWQgPSBUWU1FRF9IR0xPQkFMOwogCiAgICAgbWVkaXVtLmhHbG9iYWwgPSBjcmVhdGVHbG9i
YWxEYXRhKGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1Bv
cHVwTWVudVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2lu
LmNwcAppbmRleCAxYmIxNzQ1N2M0OTAxMjFjNGRlMWQ5MTE1NDk3NjFiYzNkNzE2MzVkLi4zNWJj
NGU3OWJmOTY1Mzk5NzYzNDRlNzI0ODI3YTA1NjJhNjI1YzZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcApAQCAtMTYxLDcgKzE2MSw3IEBAIHZvaWQg
UG9wdXBNZW51V2luOjpzaG93KGNvbnN0IEludFJlY3QmIHIsIEZyYW1lVmlldyogdmlldywgaW50
IGluZGV4KQogICAgICAgICBzaG91bGRBbmltYXRlID0gRkFMU0U7CiAKICAgICBpZiAoc2hvdWxk
QW5pbWF0ZSkgewotICAgICAgICBSRUNUIHZpZXdSZWN0ID0gezB9OworICAgICAgICBSRUNUIHZp
ZXdSZWN0IHsgfTsKICAgICAgICAgOjpHZXRXaW5kb3dSZWN0KGhvc3RXaW5kb3csICZ2aWV3UmVj
dCk7CiAgICAgICAgIGlmICghOjpJc1JlY3RFbXB0eSgmdmlld1JlY3QpKQogICAgICAgICAgICAg
OjpBbmltYXRlV2luZG93KG1fcG9wdXAsIGRlZmF1bHRBbmltYXRpb25EdXJhdGlvbiwgQVdfQkxF
TkQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVy
YXRvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9y
V2luLmNwcAppbmRleCBkZTIwYjhkMDlhYzUwYjE3MmU1ZDM3YjYwNjZlMTdiNDY3NGFmODg2Li5k
ZjM1MzUzYTZjYjgwZGQ2NDhkZmQyN2Y1NmIwNmE1N2NjOGJlMWU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU1NMS2V5R2VuZXJhdG9yV2luLmNwcApAQCAtNjAsNyAr
NjAsNyBAQCBTdHJpbmcgV2ViQ29yZTo6c2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KHVuc2lnbmVkIGluZGV4LCBjb25zdCBTdHJpbmcmCiAgICAgICAgIGlmICghQ3J5cHRFeHBvcnRQ
dWJsaWNLZXlJbmZvKGhDb250ZXh0LCBBVF9LRVlFWENIQU5HRSwgWDUwOV9BU05fRU5DT0RJTkcs
IHBQdWJJbmZvLCAmZHdQdWJJbmZvTGVuZ3RoKSkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAg
ICAgIENFUlRfS0VZR0VOX1JFUVVFU1RfSU5GTyByZXF1ZXN0SW5mbyA9IHsgMCB9OworICAgICAg
ICBDRVJUX0tFWUdFTl9SRVFVRVNUX0lORk8gcmVxdWVzdEluZm8geyB9OwogICAgICAgICByZXF1
ZXN0SW5mby5kd1ZlcnNpb24gPSBDRVJUX0tFWUdFTl9SRVFVRVNUX1YxOwogICAgICAgICByZXF1
ZXN0SW5mby5wd3N6Q2hhbGxlbmdlU3RyaW5nID0gTCIiOwogICAgICAgICByZXF1ZXN0SW5mby5T
dWJqZWN0UHVibGljS2V5SW5mbyA9ICpwUHViSW5mbzsKQEAgLTcxLDcgKzcxLDcgQEAgU3RyaW5n
IFdlYkNvcmU6OnNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBpbmRl
eCwgY29uc3QgU3RyaW5nJgogICAgICAgICBhdXRvIGxvY2FsQ2hhbGxlbmdlV2lkZSA9IHN0cmlu
Z1RvTnVsbFRlcm1pbmF0ZWRXQ2hhcihsb2NhbENoYWxsZW5nZSk7CiAgICAgICAgIHJlcXVlc3RJ
bmZvLnB3c3pDaGFsbGVuZ2VTdHJpbmcgPSBjb25zdF9jYXN0PHdjaGFyX3QqPihsb2NhbENoYWxs
ZW5nZVdpZGUuZGF0YSgpKTsKIAotICAgICAgICBDUllQVF9BTEdPUklUSE1fSURFTlRJRklFUiBz
aWduQWxnbyA9IHsgMCB9OworICAgICAgICBDUllQVF9BTEdPUklUSE1fSURFTlRJRklFUiBzaWdu
QWxnbyB7IH07CiAgICAgICAgIHNpZ25BbGdvLnBzek9iaklkID0gc3pPSURfUlNBX1NIQTFSU0E7
CiAKICAgICAgICAgRFdPUkQgZHdFbmNvZGVkTGVuZ3RoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvd2luL1Byb2Nlc3NMYXVuY2hlcldpbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2luLmNwcApp
bmRleCA4ZmRmNzE3Nzc3ZjBhODYyNzI3ODBhNGU4ZDJjOTUxOTY2NmNlNjA4Li4wZjc2MDdiNWQx
NWI1ODYwZTgxMjc3YjE4Mzk0NzI3NDY0OGY0OGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci93aW4vUHJvY2Vzc0xhdW5jaGVyV2luLmNwcApA
QCAtODcsMTEgKzg3LDExIEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkK
IAogICAgIGF1dG8gY29tbWFuZExpbmUgPSBzdHJpbmdUb051bGxUZXJtaW5hdGVkV0NoYXIoY29t
bWFuZExpbmVCdWlsZGVyLnRvU3RyaW5nKCkpOwogCi0gICAgU1RBUlRVUElORk8gc3RhcnR1cElu
Zm8gPSB7IDAgfTsKKyAgICBTVEFSVFVQSU5GTyBzdGFydHVwSW5mbyB7IH07CiAgICAgc3RhcnR1
cEluZm8uY2IgPSBzaXplb2Yoc3RhcnR1cEluZm8pOwogICAgIHN0YXJ0dXBJbmZvLmR3RmxhZ3Mg
PSBTVEFSVEZfVVNFU0hPV1dJTkRPVzsKICAgICBzdGFydHVwSW5mby53U2hvd1dpbmRvdyA9IFNX
X0hJREU7Ci0gICAgUFJPQ0VTU19JTkZPUk1BVElPTiBwcm9jZXNzSW5mb3JtYXRpb24gPSB7IDAg
fTsKKyAgICBQUk9DRVNTX0lORk9STUFUSU9OIHByb2Nlc3NJbmZvcm1hdGlvbiB7IH07CiAgICAg
Qk9PTCByZXN1bHQgPSA6OkNyZWF0ZVByb2Nlc3MoMCwgY29tbWFuZExpbmUuZGF0YSgpLCAwLCAw
LCB0cnVlLCAwLCAwLCAwLCAmc3RhcnR1cEluZm8sICZwcm9jZXNzSW5mb3JtYXRpb24pOwogCiAg
ICAgLy8gV2UgY2FuIG5vdyBjbG9zZSB0aGUgY2xpZW50IGlkZW50aWZpZXIgaGFuZGxlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2lu
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5j
cHAKaW5kZXggMjI0M2RmZGU2MmMwYTg0MzU1YWRhOWE2MGUzNjI4Yzc5Y2M4ZjcwZS4uYTBmOTYz
ZDM3NzQzMTk5NjhlOWY0ZjY1NTQ0YmRiNjQwNGYxMWZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uY3BwCkBAIC0yMTgsNyAr
MjE4LDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eVdpbjo6c2hvd1BvcHVwTWVudShjb25zdCBJ
bnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uLCBkb3UKICAgICAgICAgc2hvdWxkQW5pbWF0ZSA9
IEZBTFNFOwogCiAgICAgaWYgKHNob3VsZEFuaW1hdGUpIHsKLSAgICAgICAgUkVDVCB2aWV3UmVj
dCA9IHswfTsKKyAgICAgICAgUkVDVCB2aWV3UmVjdCB7IH07CiAgICAgICAgIDo6R2V0V2luZG93
UmVjdChob3N0V2luZG93LCAmdmlld1JlY3QpOwogCiAgICAgICAgIGlmICghOjpJc1JlY3RFbXB0
eSgmdmlld1JlY3QpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKaW5k
ZXggZWQxZDRlYzMyMjE3OTI2YzZiNmM5MjlhZTBiZmMxNDAzMzI2MTZkMy4uZjliODg1ZGMxZTIz
NTI4ODNiNGY2YTIyZWQ4NzVmMzYyZWU4NTAzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dp
bi9XZWJWaWV3LmNwcApAQCAtNjUzLDcgKzY1Myw3IEBAIHZvaWQgV2ViVmlldzo6aW5pdGlhbGl6
ZVRvb2xUaXBXaW5kb3coKQogICAgIGlmICghbV90b29sVGlwV2luZG93KQogICAgICAgICByZXR1
cm47CiAKLSAgICBUT09MSU5GTyBpbmZvID0geyAwIH07CisgICAgVE9PTElORk8gaW5mbyB7IH07
CiAgICAgaW5mby5jYlNpemUgPSBzaXplb2YoaW5mbyk7CiAgICAgaW5mby51RmxhZ3MgPSBUVEZf
SURJU0hXTkQgfCBUVEZfU1VCQ0xBU1M7CiAgICAgaW5mby51SWQgPSByZWludGVycHJldF9jYXN0
PFVJTlRfUFRSPihtX3dpbmRvdyk7CkBAIC04NzEsNyArODcxLDcgQEAgdm9pZCBXZWJWaWV3Ojpz
ZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKCF0b29sVGlwLmlzRW1wdHkoKSkgewotICAgICAgICBUT09MSU5GTyBpbmZvID0geyAwIH07
CisgICAgICAgIFRPT0xJTkZPIGluZm8geyB9OwogICAgICAgICBpbmZvLmNiU2l6ZSA9IHNpemVv
ZihpbmZvKTsKICAgICAgICAgaW5mby51RmxhZ3MgPSBUVEZfSURJU0hXTkQ7CiAgICAgICAgIGlu
Zm8udUlkID0gcmVpbnRlcnByZXRfY2FzdDxVSU5UX1BUUj4obmF0aXZlV2luZG93KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0TWVzc2FnZUxvb3AuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViS2l0TWVzc2FnZUxvb3AuY3BwCmluZGV4IGY3NmE2
NmNkNDI4MDE3NDUwMDlhYzM5N2U5NzAyYjJkZDM5MDg2ZWEuLjkzN2E2NjY5ZTkwOGZlZTYwN2Jj
NDFkNWI5Mjc3YzdhNjAxZGVkNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYktpdE1lc3NhZ2VMb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJL
aXRNZXNzYWdlTG9vcC5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgVUxPTkcgV2ViS2l0TWVzc2FnZUxv
b3A6OlJlbGVhc2UoKQogCiBIUkVTVUxUIFdlYktpdE1lc3NhZ2VMb29wOjpydW4oX0luXyBIQUND
RUwgaEFjY2VsVGFibGUpCiB7Ci0gICAgTVNHIG1zZyA9IHsgMCB9OworICAgIE1TRyBtc2cgeyB9
OwogCiAgICAgd2hpbGUgKEdldE1lc3NhZ2UoJm1zZywgMCwgMCwgMCkpIHsKICAgICAgICAgcGVy
Zm9ybU1lc3NhZ2VMb29wVGFza3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5k
ZXggZTRiMmU1ZjVjNTc1MDNkMjVlZGYyN2IxYmY3OWVhYTlkYTQwNGExNi4uNmFlMjFlY2ZiMWQ4
OWQ3ZDY5ODA2Y2NjY2EzZWU1N2IyYjczZWUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmll
dy5jcHAKQEAgLTE3ODUsNyArMTc4NSw3IEBAIHZvaWQgV2ViVmlldzo6b25NZW51Q29tbWFuZChX
UEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhcmFtKQogICAgIEhNRU5VIGhNZW51ID0gcmVpbnRlcnBy
ZXRfY2FzdDxITUVOVT4obFBhcmFtKTsKICAgICB1bnNpZ25lZCBpbmRleCA9IHN0YXRpY19jYXN0
PHVuc2lnbmVkPih3UGFyYW0pOwogCi0gICAgTUVOVUlURU1JTkZPIG1lbnVJdGVtSW5mbyA9IHsg
MCB9OworICAgIE1FTlVJVEVNSU5GTyBtZW51SXRlbUluZm8geyB9OwogICAgIG1lbnVJdGVtSW5m
by5jYlNpemUgPSBzaXplb2YobWVudUl0ZW1JbmZvKTsKICAgICBtZW51SXRlbUluZm8uZk1hc2sg
PSBNSUlNX1NUUklORzsKICAgICA6OkdldE1lbnVJdGVtSW5mbyhoTWVudSwgaW5kZXgsIHRydWUs
ICZtZW51SXRlbUluZm8pOwpAQCAtMTk5Nyw3ICsxOTk3LDcgQEAgYm9vbCBXZWJWaWV3OjpnZXN0
dXJlKFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiAKICAgICBIR0VTVFVSRUlORk8gZ2Vz
dHVyZUhhbmRsZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8SEdFU1RVUkVJTkZPPihsUGFyYW0pOwogICAg
IAotICAgIEdFU1RVUkVJTkZPIGdpID0gezB9OworICAgIEdFU1RVUkVJTkZPIGdpIHsgfTsKICAg
ICBnaS5jYlNpemUgPSBzaXplb2YoR0VTVFVSRUlORk8pOwogCiAgICAgaWYgKCFHZXRHZXN0dXJl
SW5mb1B0cigpKGdlc3R1cmVIYW5kbGUsIHJlaW50ZXJwcmV0X2Nhc3Q8UEdFU1RVUkVJTkZPPigm
Z2kpKSkKQEAgLTI0ODQsNyArMjQ4NCw3IEBAIHZvaWQgV2ViVmlldzo6c2V0U2hvdWxkSW52ZXJ0
Q29sb3JzKGJvb2wgc2hvdWxkSW52ZXJ0Q29sb3JzKQogICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnNldFNob3VsZEludmVydENvbG9ycyhzaG91bGRJbnZlcnRDb2xvcnMpOwogI2VuZGlmCiAKLSAg
ICBSRUNUIHdpbmRvd1JlY3QgPSB7MH07CisgICAgUkVDVCB3aW5kb3dSZWN0IHsgfTsKICAgICBm
cmFtZVJlY3QoJndpbmRvd1JlY3QpOwogCiAgICAgLy8gcmVwYWludCBleHBlY3RzIGxvZ2ljYWwg
cGl4ZWxzLCBzbyByZXNjYWxlIGhlcmUuCkBAIC0zMTkxLDcgKzMxOTEsNyBAQCB2b2lkIFdlYlZp
ZXc6OmluaXRpYWxpemVUb29sVGlwV2luZG93KCkKICAgICBpZiAoIW1fdG9vbFRpcEh3bmQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFRPT0xJTkZPIGluZm8gPSB7MH07CisgICAgVE9PTElORk8g
aW5mbyB7IH07CiAgICAgaW5mby5jYlNpemUgPSBzaXplb2YoaW5mbyk7CiAgICAgaW5mby51Rmxh
Z3MgPSBUVEZfSURJU0hXTkQgfCBUVEZfU1VCQ0xBU1MgOwogICAgIGluZm8udUlkID0gcmVpbnRl
cnByZXRfY2FzdDxVSU5UX1BUUj4obV92aWV3V2luZG93KTsKQEAgLTMyMTMsNyArMzIxMyw3IEBA
IHZvaWQgV2ViVmlldzo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXApCiAgICAgbV90
b29sVGlwID0gdG9vbFRpcDsKIAogICAgIGlmICghbV90b29sVGlwLmlzRW1wdHkoKSkgewotICAg
ICAgICBUT09MSU5GTyBpbmZvID0gezB9OworICAgICAgICBUT09MSU5GTyBpbmZvIHsgfTsKICAg
ICAgICAgaW5mby5jYlNpemUgPSBzaXplb2YoaW5mbyk7CiAgICAgICAgIGluZm8udUZsYWdzID0g
VFRGX0lESVNIV05EOwogICAgICAgICBpbmZvLnVJZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8VUlOVF9Q
VFI+KG1fdmlld1dpbmRvdyk7CkBAIC03NTc2LDcgKzc1NzYsNyBAQCB2b2lkIFdlYlZpZXc6OmZ1
bGxTY3JlZW5DbGllbnREaWRFeGl0RnVsbFNjcmVlbigpCiB2b2lkIFdlYlZpZXc6OmZ1bGxTY3Jl
ZW5DbGllbnRGb3JjZVJlcGFpbnQoKQogewogICAgIEFTU0VSVChtX2Z1bGxzY3JlZW5Db250cm9s
bGVyKTsKLSAgICBSRUNUIHdpbmRvd1JlY3QgPSB7MH07CisgICAgUkVDVCB3aW5kb3dSZWN0IHsg
fTsKICAgICBmcmFtZVJlY3QoJndpbmRvd1JlY3QpOwogICAgIHJlcGFpbnQod2luZG93UmVjdCwg
dHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIHRydWUgLyppbW1lZGlhdGUqLywgZmFsc2UgLypjb250
ZW50T25seSovKTsKICAgICBtX2Z1bGxzY3JlZW5Db250cm9sbGVyLT5yZXBhaW50Q29tcGxldGVk
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
YzNlY2Q3M2UxYzhjOTFiNjA5OTI5NTAyMDM0MTZlMDJmZjAzNzEyYy4uODVjMTI0ZmRjNzg5NTk1
MWVlN2EyZTM2NmRjYWRhZWFmNzE5NmI3MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE4LTEyLTExICBGdWppaSBI
aXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtXaW5dW0NsYW5n
XSBGaXggd2FybmluZyAtV21pc3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI1ODQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbml0aWFsaXplIGEgc3RydWN0IHdp
dGggJ3sgfScgaW5zdGVhZCBvZiAnPSB7MH0nLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
d2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJ1blRlc3QpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHA6CisgICAgICAgIChtYWtlTXNnKToKKyAg
ICAgICAgKHJlcGxheVNhdmVkRXZlbnRzKToKKyAgICAgICAgKGJlZ2luRHJhZ1dpdGhGaWxlc0Nh
bGxiYWNrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vUGl4ZWxEdW1wU3VwcG9ydFdp
bi5jcHA6CisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOgorICAgICAg
ICAqIE1pbmlCcm93c2VyL3dpbi9XZWJLaXRMZWdhY3lCcm93c2VyV2luZG93LmNwcDoKKyAgICAg
ICAgKHVwZGF0ZU1lbnVJdGVtRm9ySGlzdG9yeUl0ZW0pOgorICAgICAgICAqIE1pbmlCcm93c2Vy
L3dpbi9XaW5NYWluLmNwcDoKKyAgICAgICAgKHdXaW5NYWluKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL3dpbi9Ib3N0V2luZG93LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6Okhvc3RX
aW5kb3c6OmNsaWVudFJlY3QgY29uc3QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SG9zdFdp
bmRvdzo6cmVnaXN0ZXJXaW5kb3dDbGFzcyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4v
UGxhdGZvcm1XZWJWaWV3V2luLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlBsYXRmb3Jt
V2ViVmlldzo6cmVnaXN0ZXJXaW5kb3dDbGFzcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcDoKKyAgICAgICAgKFdUUjo6cmVnaXN0ZXJXaW5k
b3dDbGFzcyk6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6d2luZG93RnJhbWUpOgor
ICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UpOgorCiAy
MDE4LTEyLTEwICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAg
ICAgW0NNYWtlXSBBZGQgRU5BQkxFX1JFU09VUkNFX0xPQURfU1RBVElTVElDUyB0byBXZWJLaXRG
ZWF0dXJlcy5jbWFrZQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5j
cHAKaW5kZXggOWY5MWEyY2JhMzcwMWFiZmFiMGI4NmU2ZGJiNzFmZjMzNDk3ZmI5NC4uOGUwOTI5
YTJmN2E3NzE0N2QxZGM2ZWVjY2MyZjUwOTcwNDRlMjdlZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xMjMxLDcgKzEyMzEsNyBAQCBzdGF0aWMg
dm9pZCBydW5UZXN0KGNvbnN0IHN0cmluZyYgaW5wdXRMaW5lKQogICAgIHdvcmtRdWV1ZS5jbGVh
cigpOwogICAgIHdvcmtRdWV1ZS5zZXRGcm96ZW4oZmFsc2UpOwogCi0gICAgTVNHIG1zZyA9IHsg
MCB9OworICAgIE1TRyBtc2cgeyB9OwogICAgIEhXTkQgaG9zdFdpbmRvdzsKICAgICB3ZWJWaWV3
LT5ob3N0V2luZG93KCZob3N0V2luZG93KTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVu
dFNlbmRlci5jcHAKaW5kZXggYzkwODAwNzVkYzc4YzU2NjQzYzEyZmY5Y2M3OTgwNDk5YTAwMTVl
My4uNGEzYzYzYjk0MDJhZTQ0ZDE2OTdlYjFlMDdjMmI1NTg0YmNiOGRjOSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRXZlbnRTZW5kZXIuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgc3RhdGlj
IERXT1JEIGN1cnJlbnRFdmVudFRpbWUoKQogCiBzdGF0aWMgTVNHIG1ha2VNc2coSFdORCBod25k
LCBVSU5UIG1lc3NhZ2UsIFdQQVJBTSB3UGFyYW0sIExQQVJBTSBsUGFyYW0pCiB7Ci0gICAgTVNH
IHJlc3VsdCA9IHswfTsKKyAgICBNU0cgcmVzdWx0IHsgfTsKICAgICByZXN1bHQuaHduZCA9IGh3
bmQ7CiAgICAgcmVzdWx0Lm1lc3NhZ2UgPSBtZXNzYWdlOwogICAgIHJlc3VsdC53UGFyYW0gPSB3
UGFyYW07CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCByZXBsYXlTYXZlZEV2ZW50cyhIUkVTVUxU
KiBvbGVEcmFnQW5kRHJvcFJldHVyblZhbHVlKQogewogICAgIHJlcGxheWluZ1NhdmVkRXZlbnRz
ID0gdHJ1ZTsKICAgCi0gICAgTVNHIG1zZyA9IHsgMCB9OworICAgIE1TRyBtc2cgeyB9OwogCiAg
ICAgd2hpbGUgKHN0YXJ0T2ZRdWV1ZSA8IGVuZE9mUXVldWUgJiYgIW1zZ1F1ZXVlW3N0YXJ0T2ZR
dWV1ZV0uZGVsYXkpIHsKICAgICAgICAgbXNnID0gbXNnUXVldWVbc3RhcnRPZlF1ZXVlKytdLm1z
ZzsKQEAgLTY5Niw3ICs2OTYsNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBiZWdpbkRyYWdXaXRoRmls
ZXNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZgogICAgIC8vIFdl
IHNob3VsZCBhcHBlbmQgIjAiIGluIHRoZSBlbmQgb2YgfGZpbGVzfCBzbyB0aGF0IHxEcmFnUXVl
cnlGaWxlV3wgcmV0cmlldmVkIHRoZSBudW1iZXIgb2YgZmlsZXMgY29ycmVjdGx5IGZyb20gT2xl
IENsaXBib2FyZC4KICAgICBmaWxlcy5hcHBlbmQoMCk7CiAKLSAgICBTVEdNRURJVU0gaERyb3BN
ZWRpdW0gPSB7MH07CisgICAgU1RHTUVESVVNIGhEcm9wTWVkaXVtIHsgfTsKICAgICBoRHJvcE1l
ZGl1bS50eW1lZCA9IFRZTUVEX0hHTE9CQUw7CiAgICAgU0laRV9UIGRyb3BGaWxlc1NpemUgPSBz
aXplb2YoRFJPUEZJTEVTKSArIChzaXplb2YoV0NIQVIpICogZmlsZXMuc2l6ZSgpKTsKICAgICBo
RHJvcE1lZGl1bS5oR2xvYmFsID0gR2xvYmFsQWxsb2MoR01FTV9NT1ZFQUJMRSB8IEdNRU1fRERF
U0hBUkUsIGRyb3BGaWxlc1NpemUpOwpAQCAtNzEzLDcgKzcxMyw3IEBAIHN0YXRpYyBKU1ZhbHVl
UmVmIGJlZ2luRHJhZ1dpdGhGaWxlc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmCiAgICAgICAgIGRhdGFbaV0gPSBmaWxlc1tpXTsKICAgICBHbG9iYWxVbmxvY2so
aERyb3BNZWRpdW0uaEdsb2JhbCk7IAogCi0gICAgU1RHTUVESVVNIGhGaWxlTmFtZU1lZGl1bSA9
IHswfTsKKyAgICBTVEdNRURJVU0gaEZpbGVOYW1lTWVkaXVtIHsgfTsKICAgICBoRmlsZU5hbWVN
ZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOwogICAgIFNJWkVfVCBoRmlsZU5hbWVTaXplID0g
c2l6ZW9mKFdDSEFSKSAqIGZpbGVzLnNpemUoKTsKICAgICBoRmlsZU5hbWVNZWRpdW0uaEdsb2Jh
bCA9IEdsb2JhbEFsbG9jKEdNRU1fTU9WRUFCTEUgfCBHTUVNX0RERVNIQVJFLCBoRmlsZU5hbWVT
aXplKTsKQEAgLTkyNSw3ICs5MjUsNyBAQCBzdGF0aWMgSlNDbGFzc1JlZiBnZXRDbGFzcyhKU0Nv
bnRleHRSZWYgY29udGV4dCkKICAgICBzdGF0aWMgSlNDbGFzc1JlZiBldmVudFNlbmRlckNsYXNz
ID0gMDsKIAogICAgIGlmICghZXZlbnRTZW5kZXJDbGFzcykgewotICAgICAgICBKU0NsYXNzRGVm
aW5pdGlvbiBjbGFzc0RlZmluaXRpb24gPSB7MH07CisgICAgICAgIEpTQ2xhc3NEZWZpbml0aW9u
IGNsYXNzRGVmaW5pdGlvbiB7IH07CiAgICAgICAgIGNsYXNzRGVmaW5pdGlvbi5zdGF0aWNGdW5j
dGlvbnMgPSBzdGF0aWNGdW5jdGlvbnM7CiAgICAgICAgIGNsYXNzRGVmaW5pdGlvbi5zdGF0aWNW
YWx1ZXMgPSBzdGF0aWNWYWx1ZXM7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9QaXhlbER1bXBTdXBwb3J0V2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9Q
aXhlbER1bXBTdXBwb3J0V2luLmNwcAppbmRleCA0NDk1Yjc0Njc0YWY0MDcyNzZhNTY4MWQzZWFj
OWZiNzZlZWFhZTc5Li5hOWJhNjkxODMxMThiYjgzMjNjOGQ0OWIxZmQzMzlhNTFmNTM5YjYwIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vUGl4ZWxEdW1wU3VwcG9ydFdpbi5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1BpeGVsRHVtcFN1cHBvcnRXaW4uY3Bw
CkBAIC02Miw3ICs2Miw3IEBAIFJlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250
ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9vbCBpbmNyZW1lCiAgICAgaWYgKCFHZXRX
aW5kb3dSZWN0KHdlYlZpZXdXaW5kb3csICZmcmFtZSkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgQklUTUFQSU5GTyBibXAgPSB7MH07CisgICAgQklUTUFQSU5GTyBibXAgeyB9Owog
ICAgIGJtcC5ibWlIZWFkZXIuYmlTaXplID0gc2l6ZW9mKEJJVE1BUElORk9IRUFERVIpOwogICAg
IGJtcC5ibWlIZWFkZXIuYmlXaWR0aCA9IGZyYW1lLnJpZ2h0IC0gZnJhbWUubGVmdDsKICAgICBi
bXAuYm1pSGVhZGVyLmJpSGVpZ2h0ID0gLShmcmFtZS5ib3R0b20gLSBmcmFtZS50b3ApOwpAQCAt
NzksNyArNzksNyBAQCBSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dEZy
b21XZWJWaWV3KGJvb2wgb25zY3JlZW4sIGJvb2wgaW5jcmVtZQogICAgIDo6U2VsZWN0T2JqZWN0
KG1lbW9yeURDLmdldCgpLCBiaXRtYXApOwogICAgIFNlbmRNZXNzYWdlKHdlYlZpZXdXaW5kb3cs
IFdNX1BSSU5ULCByZWludGVycHJldF9jYXN0PFdQQVJBTT4obWVtb3J5REMuZ2V0KCkpLCBQUkZf
Q0xJRU5UIHwgUFJGX0NISUxEUkVOIHwgUFJGX09XTkVEKTsKIAotICAgIEJJVE1BUCBpbmZvID0g
ezB9OworICAgIEJJVE1BUCBpbmZvIHsgfTsKICAgICBHZXRPYmplY3QoYml0bWFwLCBzaXplb2Yo
aW5mbyksICZpbmZvKTsKICAgICBBU1NFUlQoaW5mby5ibUJpdHNQaXhlbCA9PSAzMik7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRMZWdhY3lCcm93c2VyV2luZG93
LmNwcCBiL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XZWJLaXRMZWdhY3lCcm93c2VyV2luZG93LmNw
cAppbmRleCBmNmZjZDU3OTRmNzlmNjkyYWJlNzcyYTgyNzNiNzFhODQ3MGRkMzM4Li5kNjQzMGI0
NDAyMWYyMTc1YzFjZmM4MjY5Y2U0OTA1NGFjOWFmMTZiIDEwMDY0NAotLS0gYS9Ub29scy9NaW5p
QnJvd3Nlci93aW4vV2ViS2l0TGVnYWN5QnJvd3NlcldpbmRvdy5jcHAKKysrIGIvVG9vbHMvTWlu
aUJyb3dzZXIvd2luL1dlYktpdExlZ2FjeUJyb3dzZXJXaW5kb3cuY3BwCkBAIC0zMjksNyArMzI5
LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlTWVudUl0ZW1Gb3JIaXN0b3J5SXRlbShITUVOVSBtZW51
LCBJV2ViSGlzdG9yeUl0ZW0mIGhpc3RvcnlJdGUKIHsKICAgICBVSU5UIG1lbnVJRCA9IElETV9I
SVNUT1JZX0xJTkswICsgY3VycmVudEhpc3RvcnlJdGVtOwogCi0gICAgTUVOVUlURU1JTkZPIG1l
bnVJdGVtSW5mbyA9IHsgMCB9OworICAgIE1FTlVJVEVNSU5GTyBtZW51SXRlbUluZm8geyB9Owog
ICAgIG1lbnVJdGVtSW5mby5jYlNpemUgPSBzaXplb2YoTUVOVUlURU1JTkZPKTsKICAgICBtZW51
SXRlbUluZm8uZk1hc2sgPSBNSUlNX1RZUEU7CiAgICAgbWVudUl0ZW1JbmZvLmZUeXBlID0gTUZU
X1NUUklORzsKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XaW5NYWluLmNwcCBi
L1Rvb2xzL01pbmlCcm93c2VyL3dpbi9XaW5NYWluLmNwcAppbmRleCA0MjZhMDllYjBlNmVjYzc4
NTgwMWE3N2IyMDA3ODUxYWM0NzAwYWY0Li5lOTJjYjQ5YzQ4NDRmMWE2YmZlYTNjZGZiNjExMTcz
ZTM5ZjI3OTJjIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci93aW4vV2luTWFpbi5jcHAK
KysrIGIvVG9vbHMvTWluaUJyb3dzZXIvd2luL1dpbk1haW4uY3BwCkBAIC00MSw3ICs0MSw3IEBA
IGludCBXSU5BUEkgd1dpbk1haW4oX0luXyBISU5TVEFOQ0UgaEluc3RhbmNlLCBfSW5fb3B0XyBI
SU5TVEFOQ0UgaFByZXZJbnN0YW5jZSwKICAgICBfQ3J0U2V0UmVwb3J0TW9kZShfQ1JUX1dBUk4s
IF9DUlREQkdfTU9ERV9GSUxFKTsKICNlbmRpZgogCi0gICAgTVNHIG1zZyA9IHswfTsKKyAgICBN
U0cgbXNnIHsgfTsKICAgICBIQUNDRUwgaEFjY2VsVGFibGU7CiAKICAgICBJTklUQ09NTU9OQ09O
VFJPTFNFWCBJbml0Q3RybEV4OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4v
SG9zdFdpbmRvdy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9Ib3N0V2luZG93LmNwcApp
bmRleCA3NGM5NDdkOWViMDE1ZTlmODg0N2FiYmFiNDFlNmNiNTUxZmFmY2VmLi40MDZiOWM1MjI2
MjU3ODlhNjdhOGM5OTdkMWU0MWYxYmQ2NWRiYjEwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL3dpbi9Ib3N0V2luZG93LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9I
b3N0V2luZG93LmNwcApAQCAtNTAsOSArNTAsOSBAQCBIb3N0V2luZG93Ojp+SG9zdFdpbmRvdygp
CiAKIFJFQ1QgSG9zdFdpbmRvdzo6Y2xpZW50UmVjdCgpIGNvbnN0CiB7Ci0gICAgUkVDVCByZWN0
ID0gezB9OworICAgIFJFQ1QgcmVjdCB7IH07CiAgICAgaWYgKCE6OkdldENsaWVudFJlY3QobV93
aW5kb3csICZyZWN0KSkgewotICAgICAgICBSRUNUIGVtcHR5UmVjdCA9IHswfTsKKyAgICAgICAg
UkVDVCBlbXB0eVJlY3QgeyB9OwogICAgICAgICByZXR1cm4gZW1wdHlSZWN0OwogICAgIH0KICAg
ICByZXR1cm4gcmVjdDsKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBIb3N0V2luZG93OjpyZWdpc3Rl
cldpbmRvd0NsYXNzKCkKICAgICAgICAgcmV0dXJuOwogICAgIGluaXRpYWxpemVkID0gdHJ1ZTsK
IAotICAgIFdORENMQVNTRVhXIHduZENsYXNzID0gezB9OworICAgIFdORENMQVNTRVhXIHduZENs
YXNzIHsgfTsKICAgICB3bmRDbGFzcy5jYlNpemUgPSBzaXplb2Yod25kQ2xhc3MpOwogICAgIHdu
ZENsYXNzLnN0eWxlID0gQ1NfSFJFRFJBVyB8IENTX1ZSRURSQVc7CiAgICAgd25kQ2xhc3MubHBm
blduZFByb2MgPSB3bmRQcm9jOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4v
UGxhdGZvcm1XZWJWaWV3V2luLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3Jt
V2ViVmlld1dpbi5jcHAKaW5kZXggMWMwYzY4OWUxNjE1YjkxMTQ3YmNlMDliZTdjNzY0N2Q1N2Fi
YmEyNy4uM2ViNmQ1YzgzNjY1MjllODZlYzkzZTQ5NTg2M2QyZWQ3ZGM5OWI0YiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCkBAIC00Nyw3ICs0
Nyw3IEBAIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZWdpc3RlcldpbmRvd0NsYXNzKCkKICAgICAg
ICAgcmV0dXJuOwogICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKIAotICAgIFdORENMQVNTRVhXIHdu
ZENsYXNzID0gezB9OworICAgIFdORENMQVNTRVhXIHduZENsYXNzIHsgfTsKICAgICB3bmRDbGFz
cy5jYlNpemUgPSBzaXplb2Yod25kQ2xhc3MpOwogICAgIHduZENsYXNzLnN0eWxlID0gQ1NfSFJF
RFJBVyB8IENTX1ZSRURSQVc7CiAgICAgd25kQ2xhc3MubHBmblduZFByb2MgPSB3bmRQcm9jOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3V2lu
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAK
aW5kZXggZGM5ZDNhMWVmZGZiNzVmNjBlNTEyNzNmZTYwYjBkNGNmZTQxZTA1Zi4uZjgwYzI2ZTVh
NjQ4ZDdlN2FjM2U4N2Q3MTU2NWFmNjNiNTY1ODlhYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCkBAIC00OSw3ICs0OSw3IEBAIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyV2luZG93Q2xhc3MoKQogICAgICAgICByZXR1cm47CiAgICAgaW5p
dGlhbGl6ZWQgPSB0cnVlOwogCi0gICAgV05EQ0xBU1NFWFcgd25kQ2xhc3MgPSB7MH07CisgICAg
V05EQ0xBU1NFWFcgd25kQ2xhc3MgeyB9OwogICAgIHduZENsYXNzLmNiU2l6ZSA9IHNpemVvZih3
bmRDbGFzcyk7CiAgICAgd25kQ2xhc3Muc3R5bGUgPSBDU19IUkVEUkFXIHwgQ1NfVlJFRFJBVzsK
ICAgICB3bmRDbGFzcy5scGZuV25kUHJvYyA9IERlZldpbmRvd1Byb2M7CkBAIC0xMTcsNyArMTE3
LDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKCkKIAogV0tSZWN0IFBsYXRmb3JtV2Vi
Vmlldzo6d2luZG93RnJhbWUoKQogewotICAgIFdLUmVjdCB3a0ZyYW1lID0gezB9OworICAgIFdL
UmVjdCB3a0ZyYW1lIHsgfTsKICAgICBSRUNUIHI7CiAKICAgICBpZiAoOjpHZXRXaW5kb3dSZWN0
KG1fd2luZG93LCAmcikpIHsKQEAgLTIwMyw3ICsyMDMsNyBAQCBjYWlyb19zdXJmYWNlX3QqIFBs
YXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJbWFnZSgpCiAgICAgV2ViQ29yZTo6SFduZERD
IHdpbmRvd0RDKG1fd2luZG93KTsKICAgICBhdXRvIG1lbW9yeURDID0gYWRvcHRHRElPYmplY3Qo
OjpDcmVhdGVDb21wYXRpYmxlREMod2luZG93REMpKTsKIAotICAgIEJJVE1BUElORk8gYml0bWFw
SW5mbyA9IHswfTsKKyAgICBCSVRNQVBJTkZPIGJpdG1hcEluZm8geyB9OwogICAgIFdLUmVjdCB3
a0ZyYW1lID0gd2luZG93RnJhbWUoKTsKICAgICBiaXRtYXBJbmZvLmJtaUhlYWRlci5iaVNpemUg
PSBzaXplb2YoQklUTUFQSU5GT0hFQURFUik7CiAgICAgYml0bWFwSW5mby5ibWlIZWFkZXIuYmlX
aWR0aCA9IHdpZHRoOwpAQCAtMjMwLDcgKzIzMCw3IEBAIGNhaXJvX3N1cmZhY2VfdCogUGxhdGZv
cm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKICAgICAgICAgMCwKICAgICAgICAgU1JD
Q09QWSk7CiAKLSAgICBCSVRNQVAgYml0bWFwVGFnID0gezB9OworICAgIEJJVE1BUCBiaXRtYXBU
YWcgeyB9OwogICAgIEdldE9iamVjdChiaXRtYXAuZ2V0KCksIHNpemVvZihiaXRtYXBUYWcpLCAm
Yml0bWFwVGFnKTsKICAgICBBU1NFUlQoYml0bWFwVGFnLmJtQml0c1BpeGVsID09IDMyKTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>