<?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>65763</bug_id>
          
          <creation_ts>2011-08-05 04:51:27 -0700</creation_ts>
          <short_desc>Web Inspector: implement dock/undock in WebKit2 without getting into WebCore.</short_desc>
          <delta_ts>2011-08-08 01:12:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>aroben</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>447158</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-05 04:51:27 -0700</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447159</commentid>
    <comment_count>1</comment_count>
      <attachid>103061</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-05 05:14:52 -0700</bug_when>
    <thetext>Created attachment 103061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447164</commentid>
    <comment_count>2</comment_count>
      <attachid>103061</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-08-05 05:34:03 -0700</bug_when>
    <thetext>Comment on attachment 103061
Patch

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

&gt; Source/WebKit2/UIProcess/WebInspectorProxy.cpp:221
&gt; +    my_isAttached = shouldOpenAttached();

my_isAttached -&gt; m_isAttached</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447166</commentid>
    <comment_count>3</comment_count>
      <attachid>103064</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-05 05:37:38 -0700</bug_when>
    <thetext>Created attachment 103064
[PATCH] With typo fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447167</commentid>
    <comment_count>4</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-08-05 05:39:32 -0700</bug_when>
    <thetext>Inspector stuff looks good, let&apos;s wait for WK2 experts to confirm that everything is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447178</commentid>
    <comment_count>5</comment_count>
      <attachid>103064</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-05 06:32:45 -0700</bug_when>
    <thetext>Comment on attachment 103064
[PATCH] With typo fixed

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

&gt; Source/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp:259
&gt; +    return minimumAttachedHeight &lt;= (inspectedWindowHeight * 3 / 4);

The 3/4 here should be a constant like in the Mac code. But ideally we&apos;d share this code between all platforms. We&apos;d just need a cross-platform abstraction for getting the inspected window&apos;s height.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447181</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-05 06:37:15 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 103064 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103064&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp:259
&gt; &gt; +    return minimumAttachedHeight &lt;= (inspectedWindowHeight * 3 / 4);
&gt; 
&gt; The 3/4 here should be a constant like in the Mac code. But ideally we&apos;d share this code between all platforms. We&apos;d just need a cross-platform abstraction for getting the inspected window&apos;s height.

I was thinking of doing the platformInspectedWindowHeight instead of the platformCanAttach, but then I thought that different platforms can have different considerations wrt preferred / minimum inspector size. Now sure which is better - flexibility or consistency in this case. One of the most popular requests on the inspector for chrome is do dock to side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447182</commentid>
    <comment_count>7</comment_count>
      <attachid>103064</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-05 06:39:29 -0700</bug_when>
    <thetext>Comment on attachment 103064
[PATCH] With typo fixed

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp:259
&gt;&gt;&gt; +    return minimumAttachedHeight &lt;= (inspectedWindowHeight * 3 / 4);
&gt;&gt; 
&gt;&gt; The 3/4 here should be a constant like in the Mac code. But ideally we&apos;d share this code between all platforms. We&apos;d just need a cross-platform abstraction for getting the inspected window&apos;s height.
&gt; 
&gt; I was thinking of doing the platformInspectedWindowHeight instead of the platformCanAttach, but then I thought that different platforms can have different considerations wrt preferred / minimum inspector size. Now sure which is better - flexibility or consistency in this case. One of the most popular requests on the inspector for chrome is do dock to side.

Since the Web Inspector is a feature of WebKit, not a feature of any particular browsers, I think consistency should be preferred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447198</commentid>
    <comment_count>8</comment_count>
      <attachid>103071</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-05 07:24:38 -0700</bug_when>
    <thetext>Created attachment 103071
[PATCH] Moved minimum size check &amp; constants to WebInspectorProxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447207</commentid>
    <comment_count>9</comment_count>
      <attachid>103071</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-05 07:47:35 -0700</bug_when>
    <thetext>Comment on attachment 103071
[PATCH] Moved minimum size check &amp; constants to WebInspectorProxy

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

Should we change WebKit1 to use ?docked=true, too?

The WebKit2 code looks fine to me. I&apos;ll let someone more familiar with the Inspector give the final r+.

&gt; Source/WebCore/ChangeLog:14
&gt; +        Web Inspector: implement dock/undock in WebKit2 without getting into WebCore.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=65763
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * WebCore.exp.in:
&gt; +        * inspector/InspectorController.cpp:
&gt; +        * inspector/InspectorController.h:
&gt; +        * inspector/InspectorFrontendClient.h:
&gt; +        * inspector/InspectorFrontendClientLocal.h:
&gt; +        * inspector/front-end/inspector.js:
&gt; +        (windowLoaded):

You should explain what your patch is actually doing, and why. This makes it easier for reviewers and others to understand your changes. (Ditto for your other ChangeLogs.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447225</commentid>
    <comment_count>10</comment_count>
      <attachid>103076</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-05 08:57:53 -0700</bug_when>
    <thetext>Created attachment 103076
[PATCH] Patch with better changelog, for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447254</commentid>
    <comment_count>11</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-05 09:56:30 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=103076) [details]
&gt; [PATCH] Patch with better changelog, for landing

docked=true is a very nice way to handle this. Thanks for looking into it! I was going to ask if another solution would be to just port the &quot;canAttach&quot; to WebKit2, but you beat me to the punch. This looks good to me. If this lands, I can file a follow up bug to have the other WebKit ports switch over to docked=true.

This looks good to me, but would be nice if an inspector person could r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447901</commentid>
    <comment_count>12</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-08 01:12:58 -0700</bug_when>
    <thetext>Committed r92587: &lt;http://trac.webkit.org/changeset/92587&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103061</attachid>
            <date>2011-08-05 05:14:52 -0700</date>
            <delta_ts>2011-08-05 05:37:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65763-20110805161449.patch</filename>
            <type>text/plain</type>
            <size>22698</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YjI5NzVlZGM4NTRjMDk3
N2ZjNGE1NzFmMzVlNDMwMWM3Y2M2OGI2Li5lNTMzMmZiYTZhMDRjZmYxNWFlYzZiMmJhOWY0ZGFk
MzQwZWYzZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMDUgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogaW1wbGVtZW50IGRvY2svdW5kb2NrIGluIFdlYktpdDIgd2l0aG91dCBnZXR0aW5nIGludG8g
V2ViQ29yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1NzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAod2luZG93TG9hZGVkKToKKwogMjAx
MS0wOC0wNSAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkOiBjaGFuZ2UgYW4gaW5zdGFuY2Ugb2YgaXNJbXBvcnRSdWxlKCkg
dGhhdCB3YXMgb3Zlcmxvb2tlZCBpbiBjb21taXQgOTI0NDguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IGI0MTI5OTgxYjMxZjc0ZTcwMDhlYjRmMzcyNTE3NTUwOWYzODYzNWYuLmMyODM4MmQ1Yzhj
MGU4YmViODg4MDdmNDJkNjY3YjBhMGQ4NzlmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0x
NTg2LDEzICsxNTg2LDExIEBAIF9fWk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazhz
ZXRFcnJvckVOM1dURjEwUGFzc1JlZlB0cklOU18xM1Bvc2l0aW9uRXJyCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MzFkb0Rpc3BhdGNoTWVzc2Fn
ZU9uRnJvbnRlbmRQYWdlRVBOU180UGFnZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjE0ZW5hYmxlUHJvZmlsZXJFdgotX19aTjdXZWJDb3JlMTlJbnNw
ZWN0b3JDb250cm9sbGVyMTVjYW5BdHRhY2hXaW5kb3dFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0
b3JDb250cm9sbGVyMTVkZWJ1Z2dlckVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JD
b250cm9sbGVyMTVkaXNhYmxlRGVidWdnZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMTVkaXNhYmxlUHJvZmlsZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9s
bGVyMTVwcm9maWxlckVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVy
MThkaXNjb25uZWN0RnJvbnRlbmRFdgotX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVy
MTlyZXF1ZXN0QXR0YWNoV2luZG93RXYKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxl
cjIwc3RvcFRpbWVsaW5lUHJvZmlsZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9s
bGVyMjFzaG93QW5kRW5hYmxlRGVidWdnZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMTFzaG93Q29uc29sZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggNjUyMmE2MzZhNjc3Yzk4NGIzMzRhMDRiZDk3MjVh
Zjg3ZWEwZWM4Yi4uNjI5MWEzM2NiZTU3YzNkYWQwNjc5Y2FlODg1ZDQ3OTg4YjExMTg2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApA
QCAtNTA5LDIyICs1MDksNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldFJlc291cmNl
c0RhdGFTaXplTGltaXRzRnJvbUludGVybmFscyhpbnQgbWF4aW11bVJlcwogICAgIG1fcmVzb3Vy
Y2VBZ2VudC0+c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKG1heGltdW1S
ZXNvdXJjZXNDb250ZW50U2l6ZSwgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpOwog
fQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlcXVlc3RBdHRhY2hXaW5kb3coKQotewot
ICAgIGlmICghbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudC0+cmVxdWVzdEF0dGFjaFdpbmRvdygpOwotfQot
ICAgIAotYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpjYW5BdHRhY2hXaW5kb3coKQotewotICAg
IGlmICghbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIAotICAgIHJldHVybiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50LT5jYW5BdHRhY2hXaW5k
b3coKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCmluZGV4IDg2ZmY3NmIwODFhOGUyMmM5YzY5NjIyMmVlMTQ3MjU4OTBkOTk3MDQuLjlkNzY4
MzVjZTgzMGE0NDhlZGRhMzk2NzE2NmYwMmVlNDgwZDA3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTIxLDkgKzEyMSw2IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBzZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21J
bnRlcm5hbHMoaW50IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50IG1heGltdW1TaW5n
bGVSZXNvdXJjZUNvbnRlbnRTaXplKTsKLSAgICAKLSAgICB2b2lkIHJlcXVlc3RBdHRhY2hXaW5k
b3coKTsKLSAgICBib29sIGNhbkF0dGFjaFdpbmRvdygpOwogCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBQb3N0V29ya2VyTm90aWZpY2F0aW9uVG9Gcm9udGVuZFRhc2s7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDE3
MzM3NDIxZGU0YWZkYjg4ZjdlYzJkYjkwMTljNjFhNTM3ZWM5MDQuLmJjOGExMzUwYTdjZjM4YTFm
MGFlZGVjYTE0OTUzZWE3NzY1ODRkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC01OCw3ICs1OCw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFjaFdpbmRvdygpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdERldGFjaFdpbmRvdygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdl
QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgY2Fu
QXR0YWNoV2luZG93KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzYXZlQXMoY29uc3QgV1RGOjpT
dHJpbmcmIGZpbGVOYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGVudCkgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmgKaW5kZXggNDIzZWYzNmM2ZjZmOThlZDA1YWU1ZDI1MzAyODc0YjMyNTU4OThjYy4u
ZTA5NWI0NWNmMjM3Y2FkZTI0MTc1ZGZjOTM3NTIwYmJmMGE0OGMxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
CkBAIC02NCw3ICs2NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFj
aFdpbmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV0YWNoV2luZG93KCk7CiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuQXR0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIHNhdmVBcyhj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2hXaW5kb3coKSA9IDA7CkBAIC03Miw2ICs3MSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCisgICAg
Ym9vbCBjYW5BdHRhY2hXaW5kb3coKTsKKwogICAgIHN0YXRpYyB1bnNpZ25lZCBjb25zdHJhaW5l
ZEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIHByZWZlcnJlZEhlaWdodCwgdW5zaWduZWQg
dG90YWxXaW5kb3dIZWlnaHQpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGUxM2FlZjY5ZWYwZTFjOWU4NDI0
OGQ1MzZlY2IxMzhiOTY2ZTU3NTcuLjg0ZWFmZTEyMThkZjg1NzRhNzFiODk4ODBjYmM1Mjk1NTE0
NDVlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCkBAIC01OTIsNiArNTkyLDggQEAgdmFyIHdpbmRvd0xvYWRlZCA9IGZ1bmN0aW9uKCkK
ICAgICB9IGVsc2UKICAgICAgICAgV2ViSW5zcGVjdG9yLmxvYWRlZCgpOwogCisgICAgV2ViSW5z
cGVjdG9yLnNldEF0dGFjaGVkV2luZG93KFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09iamVjdC5k
b2NrZWQgPT09ICJ0cnVlIik7CisKICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9N
Q29udGVudExvYWRlZCIsIHdpbmRvd0xvYWRlZCwgZmFsc2UpOwogICAgIGRlbGV0ZSB3aW5kb3dM
b2FkZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0MjFjMWZlMTBlMTQ2ZDZj
NGEwMThiZGUxMjQwNTY0OGIyYjRmOGM2Li5jOTAxNzMzZDQ5YjI2NzAyNTE1NzMzY2MwMTkxNzRm
NWI3Mjk1MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDExLTA4LTA1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBkb2NrL3VuZG9jayBpbiBXZWJLaXQyIHdpdGhv
dXQgZ2V0dGluZyBpbnRvIFdlYkNvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NTc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgICogc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHNy
Yy9qcy9EZXZUb29scy5qczoKKyAgICAgICAgKGRldnRvb2xzLmRvbUNvbnRlbnRMb2FkZWQpOgor
CiAyMDExLTA4LTA0ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHAKaW5kZXgg
NTYxNjMyMzA5NDU1ZDFiMTcwZTQwNmE4ZjQyZDc0ZmVjYWUxOGFkZS4uYzlmZGU4MDdmYTVlNjIw
ZWMwYmIxOWI3NDJlOGQ0MDEyYmUxYWVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuY3BwCkBAIC0xMjUs
MTIgKzEyNSw2IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsOjpjaGFuZ2VBdHRh
Y2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKICAgICAvLyBEbyBub3RoaW5nOwogfQogCi1ib29s
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbDo6Y2FuQXR0YWNoV2luZG93KCkKLXsKLSAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMgaWYgaXQgaXMgZXZlciBjYWxsZWQgYnkgQ2hyb21pdW0u
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotICAgIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEltcGw6OnNhdmVBcyhjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnQpCiB7CiAgICAgbV9jbGllbnQtPnNhdmVBcyhmaWxlTmFtZSwgY29udGVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
SW1wbC5oCmluZGV4IDBlYmJmMDdhMTQ5YzY3OTkwOTM2NGQ0ZWY0YmQ2NmYzNTJjOGRlNzEuLmZk
NDVmNWIyYjA4NjZiNWE2NDNiZTlhNGNlYWQxNWUzN2UyYmZhNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5o
CkBAIC02Niw3ICs2Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFj
aFdpbmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV0YWNoV2luZG93KCk7CiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuQXR0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIHNhdmVBcyhj
b25zdCBXVEY6OlN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZW50KTsK
IAogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFdURjo6U3RyaW5n
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5q
cyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCmluZGV4IDgwNzE1
YzJiYmRiYThmNmY0OGZhNjczMGEzNjUwN2Q3ZGFhMzI2ZmEuLmYwNTk5NmRkYTk0M2QzMWY1ZDQ4
Yjg4N2EwM2UxNDM5MzBlNThiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL2pzL0RldlRvb2xzLmpzCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0Rl
dlRvb2xzLmpzCkBAIC02NSw3ICs2NSw2IEBAIHZhciBkZXZ0b29scyA9IGRldnRvb2xzIHx8IHt9
OwogCiBkZXZ0b29scy5kb21Db250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogewotICAgIFdlYklu
c3BlY3Rvci5zZXRBdHRhY2hlZFdpbmRvdyhXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmplY3Qu
ZG9ja2VkID09PSAidHJ1ZSIpOwogICAgIGlmIChXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmpl
Y3QudG9vbGJhckNvbG9yICYmIFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09iamVjdC50ZXh0Q29s
b3IpCiAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRUb29sYmFyQ29sb3JzKFdlYkluc3BlY3Rvci5x
dWVyeVBhcmFtc09iamVjdC50b29sYmFyQ29sb3IsIFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09i
amVjdC50ZXh0Q29sb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI4MzNhYjQ5Zjg4NDQ2YWRiMTk3NGI2
MTEyYWMxNWU2ZGM3NWE4OTQuLjhhZGVjODgzMjg3N2M3OTgzYzgxMWVkMmFjNGY2MGM2NjYzZjll
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMS0wOC0wNSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXBs
ZW1lbnQgZG9jay91bmRvY2sgaW4gV2ViS2l0MiB3aXRob3V0IGdldHRpbmcgaW50byBXZWJDb3Jl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clByb3h5OjphdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6Y3Jl
YXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpk
aWRMb2FkSW5zcGVjdG9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5
OjpzaG91bGRPcGVuQXR0YWNoZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvckVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNhbkF0dGFjaCk6CisgICAgICAg
ICogVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DYW5BdHRhY2gpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybU9wZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1DYW5BdHRhY2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJJbnNw
ZWN0b3JQcm94eVF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtT3Blbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUNhbkF0dGFjaCk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0b3JQcm94eVdp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4p
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DYW5BdHRhY2gp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OmRpZExvYWRJbnNwZWN0b3JQYWdlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKwogMjAxMS0wOC0wNCAgTWFyayBS
b3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZ1dHVyZS1wcm9vZiBYY29kZSBjb25m
aWd1cmF0aW9uIHNldHRpbmdzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5jcHAKaW5kZXggYWZkNGY1YjAyYWM2ODJlYTExYzJlYzJkZDc3YjhjOTVjNTFm
MjQ4YS4uYjhmYjFiNGUzNTg1YjA4OTZiMzFiOTgzOGIwYWQzYjIwZTQ1ZTY5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0xMjAsOCAr
MTIwLDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNob3dDb25zb2xlKCkKIAogdm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNoKCkKIHsKKyAgICBpZiAoIXBsYXRmb3JtQ2FuQXR0YWNo
KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1faXNBdHRhY2hlZCA9IHRydWU7Ci0gICAgCisK
ICAgICBpZiAobV9pc1Zpc2libGUpCiAgICAgICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVm
ZXJlbmNlcygpLT5zZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCh0cnVlKTsKIApAQCAtMjA2LDE4
ICsyMDksMTkgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yUGFnZSh1
aW50NjRfdCYgaW5zcGVjdG9yUGFnZUlELCBXZWJQYWdlQ3IKICAgICBpbnNwZWN0b3JQYWdlSUQg
PSBpbnNwZWN0b3JQYWdlLT5wYWdlSUQoKTsKICAgICBpbnNwZWN0b3JQYWdlUGFyYW1ldGVycyA9
IGluc3BlY3RvclBhZ2UtPmNyZWF0aW9uUGFyYW1ldGVycygpOwogCi0gICAgaW5zcGVjdG9yUGFn
ZS0+bG9hZFVSTChpbnNwZWN0b3JQYWdlVVJMKCkpOworICAgIFN0cmluZyB1cmwgPSBpbnNwZWN0
b3JQYWdlVVJMKCk7CisgICAgaWYgKHNob3VsZE9wZW5BdHRhY2hlZCgpKQorICAgICAgICB1cmwg
Kz0gIj9kb2NrZWQ9dHJ1ZSI7CisgICAgaW5zcGVjdG9yUGFnZS0+bG9hZFVSTCh1cmwpOwogfQog
Ci12b2lkIFdlYkluc3BlY3RvclByb3h5OjpkaWRMb2FkSW5zcGVjdG9yUGFnZShib29sIGNhblN0
YXJ0QXR0YWNoZWQpCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpkaWRMb2FkSW5zcGVjdG9yUGFn
ZSgpCiB7CiAgICAgbV9pc1Zpc2libGUgPSB0cnVlOworICAgIG15X2lzQXR0YWNoZWQgPSBzaG91
bGRPcGVuQXR0YWNoZWQoKTsKIAotICAgIGJvb2wgd2lsbE9wZW5BdHRhY2hlZCA9IGNhblN0YXJ0
QXR0YWNoZWQgJiYgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPmluc3BlY3Rv
clN0YXJ0c0F0dGFjaGVkKCk7Ci0gICAgcGxhdGZvcm1PcGVuKHdpbGxPcGVuQXR0YWNoZWQpOwot
ICAgIAotICAgIGlmICh3aWxsT3BlbkF0dGFjaGVkKQotICAgICAgICBtX3BhZ2UtPnByb2Nlc3Mo
KS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpSZXF1ZXN0QXR0YWNoV2luZG93KCksIG1f
cGFnZS0+cGFnZUlEKCkpOworICAgIC8vIHBsYXRmb3JtT3BlbiBpcyByZXNwb25zaWJsZSBmb3Ig
cmVuZGVyaW5nIGF0dGFjaGVkIG1vZGUgZGVwZW5kaW5nIG9uIG15X2lzQXR0YWNoZWQuCisgICAg
cGxhdGZvcm1PcGVuKCk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmRpZENsb3NlKCkK
QEAgLTI0Myw2ICsyNDcsMTEgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdGVkVVJM
Q2hhbmdlZChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKICAgICBwbGF0Zm9ybUluc3BlY3RlZFVS
TENoYW5nZWQodXJsU3RyaW5nKTsKIH0KIAorYm9vbCBXZWJJbnNwZWN0b3JQcm94eTo6c2hvdWxk
T3BlbkF0dGFjaGVkKCkKK3sKKyAgICByZXR1cm4gaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZl
cmVuY2VzKCktPmluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKCkgJiYgcGxhdGZvcm1DYW5BdHRhY2go
KTsgICAgCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0
b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgK
aW5kZXggMDA5ZWY2YWJiZjlhZDc2ZWRlZTc4NjcyY2Q0ODVhNDFiMmQ3YjJjNy4uN2VlZmZhZGIy
YzlmZTk1NmU5MmQzOGM0N2M0MmE4ZmM5ODM3YmM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKQEAgLTExNCwxMCArMTE0LDExIEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAg
ICBXZWJQYWdlUHJveHkqIHBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpOwotICAgIHZvaWQg
cGxhdGZvcm1PcGVuKGJvb2wgd2lsbE9wZW5BdHRhY2hlZCk7CisgICAgdm9pZCBwbGF0Zm9ybU9w
ZW4oKTsKICAgICB2b2lkIHBsYXRmb3JtRGlkQ2xvc2UoKTsKICAgICB2b2lkIHBsYXRmb3JtQnJp
bmdUb0Zyb250KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUluc3BlY3RlZFVSTENoYW5nZWQoY29uc3Qg
U3RyaW5nJik7CisgICAgYm9vbCBwbGF0Zm9ybUNhbkF0dGFjaCgpOwogICAgIHZvaWQgcGxhdGZv
cm1BdHRhY2goKTsKICAgICB2b2lkIHBsYXRmb3JtRGV0YWNoKCk7CiAgICAgdm9pZCBwbGF0Zm9y
bVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKQEAgLTEyNywxMSArMTI4LDEzIEBA
IHByaXZhdGU6CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViSW5zcGVjdG9yUHJveHkgbWVzc2FnZXMK
ICAgICB2b2lkIGNyZWF0ZUluc3BlY3RvclBhZ2UodWludDY0X3QmIGluc3BlY3RvclBhZ2VJRCwg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwotICAgIHZvaWQgZGlkTG9hZEluc3BlY3RvclBh
Z2UoYm9vbCBjYW5TdGFydEF0dGFjaGVkKTsKKyAgICB2b2lkIGRpZExvYWRJbnNwZWN0b3JQYWdl
KCk7CiAgICAgdm9pZCBkaWRDbG9zZSgpOwogICAgIHZvaWQgYnJpbmdUb0Zyb250KCk7CiAgICAg
dm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpOwogCisgICAgYm9vbCBzaG91
bGRPcGVuQXR0YWNoZWQoKTsKKwogICAgIHN0YXRpYyBXZWJQYWdlR3JvdXAqIGluc3BlY3RvclBh
Z2VHcm91cCgpOwogCiAjaWYgUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGQwMDY2ZjRl
NWZmNmI2MzExNWNjOTNmZDE0MDNiZGQ4YWQ0NTQzZDYuLmExOTQ5ODU4ZTA0MzNkOTg0ZjA3YTE1
YTlkMmRiZDE2ZjYzMjQ4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDExICsyNCwxMSBAQAogCiBt
ZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JQcm94eSB7CiAgICAgQ3JlYXRlSW5zcGVjdG9yUGFnZSgp
IC0+ICh1aW50NjRfdCBpbnNwZWN0b3JQYWdlSUQsIFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyBpbnNwZWN0b3JQYWdlUGFyYW1ldGVycykKLSAgICBEaWRMb2FkSW5zcGVjdG9yUGFn
ZShib29sIGNhblN0YXJ0QXR0YWNoZWQpCisgICAgRGlkTG9hZEluc3BlY3RvclBhZ2UoKQogICAg
IERpZENsb3NlKCkKICAgICBCcmluZ1RvRnJvbnQoKQogICAgIEluc3BlY3RlZFVSTENoYW5nZWQo
V1RGOjpTdHJpbmcgdXJsU3RyaW5nKQotICAgIAorCiAgICAgQXR0YWNoKCkKICAgICBEZXRhY2go
KQogICAgIFNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViSW5zcGVjdG9yRWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViSW5zcGVjdG9yRWZsLmNwcAppbmRleCA5MzJm
MDgzNjI5YWJiNzVkODdkNzVmNzVmMzVkODgwYWFlNzkyNGUzLi5lYmNkMWJhOTljZDY3YjI0YmYx
ODcxZjNkYmU1ZTcwZTBhZDNmNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYkluc3BlY3RvckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJJbnNwZWN0b3JFZmwuY3BwCkBAIC02NSw2ICs2NSwxMiBAQCBTdHJpbmcgV2ViSW5z
cGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VVUkwoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KIAorYm9vbCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DYW5BdHRhY2goKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yR3Rr
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yR3RrLmNwcApp
bmRleCA1NjM1MGNhM2U1ODQxZjFmN2I5YTQzMzQ1YTNkMGU3ZWZmMWEzMDVkLi43MjQ0NTUwYWMw
MDhjOGRmNTVhNzVhNWUyYmY0ZDYyNjkwN2E5NThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3Rvckd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwCkBAIC02Niw2ICs2NiwxMiBAQCBTdHJp
bmcgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VVUkwoKSBjb25zdAogICAgIHJldHVy
biBTdHJpbmcoKTsKIH0KIAorYm9vbCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DYW5BdHRh
Y2goKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5z
cGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3Bl
Y3RvclByb3h5TWFjLm1tCmluZGV4IDA0NzI1MDZjOWFiNGVlOTExNGNlN2NkNWRkYTBjYThiZmM3
MDYwYjAuLmFkNGE2NGNhZjdjYTViMjgwY2FmMThhNjkxNmI2MDNiMThmNjc2YzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5t
bQpAQCAtNDQsNiArNDQsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAvLyBUaGUgaGVp
Z2h0IG5lZWRlZCB0byBtYXRjaCBhIHR5cGljYWwgTlNUb29sYmFyLgogc3RhdGljIGNvbnN0IENH
RmxvYXQgd2luZG93Q29udGVudEJvcmRlclRoaWNrbmVzcyA9IDU1Oworc3RhdGljIGNvbnN0IENH
RmxvYXQgbWluaW11bUF0dGFjaGVkSGVpZ2h0ID0gMjUwOworc3RhdGljIGNvbnN0IENHRmxvYXQg
bWF4aW11bUF0dGFjaGVkSGVpZ2h0UmF0aW8gPSAwLjc1OwogCiAvLyBXZWJJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyIGlzIGEgaGVscGVyIE9iakMgb2JqZWN0IHVzZWQgYXMgYSBkZWxlZ2F0ZSBv
ciBub3RpZmljYXRpb24gb2JzZXJ2ZXIKIC8vIGZvciB0aGUgc29sZSBwdXJwb3NlIG9mIGdldHRp
bmcgYmFjayBpbnRvIHRoZSBDKysgY29kZSBmcm9tIGFuIE9iakMgY2FsbGVyLgpAQCAtMTA5LDcg
KzExMSw3IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRl
SW5zcGVjdG9yUGFnZSgpCiAgICAgcmV0dXJuIHRvSW1wbChtX2luc3BlY3RvclZpZXcuZ2V0KCku
cGFnZVJlZik7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbihib29s
IHdpbGxPcGVuQXR0YWNoZWQpCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4o
KQogewogICAgIEFTU0VSVCghbV9pbnNwZWN0b3JXaW5kb3cpOwogCkBAIC0xMzUsMTAgKzEzNywx
MiBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oYm9vbCB3aWxsT3BlbkF0
dGFjaGVkKQogICAgIFttX2luc3BlY3RvclZpZXcuZ2V0KCkgc2V0QXV0b3Jlc2l6aW5nTWFzazoo
TlNWaWV3V2lkdGhTaXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZSldOwogICAgIFtjb250ZW50
VmlldyBhZGRTdWJ2aWV3Om1faW5zcGVjdG9yVmlldy5nZXQoKV07CiAKLSAgICBpZiAoIXdpbGxP
cGVuQXR0YWNoZWQpCi0gICAgICAgIFt3aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsK
LQogICAgIG1faW5zcGVjdG9yV2luZG93LmFkb3B0TlMod2luZG93KTsKKworICAgIGlmIChtX2lz
QXR0YWNoZWQpCisgICAgICAgIHBsYXRmb3JtQXR0YWNoKCk7CisgICAgZWxzZQorICAgICAgICBb
d2luZG93IG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtRGlkQ2xvc2UoKQpAQCAtMTgzLDYgKzE4NywxNCBAQCB2b2lkIFdlYklu
c3BlY3RvclByb3h5OjppbnNwZWN0ZWRWaWV3RnJhbWVEaWRDaGFuZ2UoKQogICAgIFtpbnNwZWN0
ZWRWaWV3IHNldEZyYW1lOk5TTWFrZVJlY3QoaW5zcGVjdGVkTGVmdCwgaW5zcGVjdG9ySGVpZ2h0
LCBpbnNwZWN0ZWRXaWR0aCwgaW5zcGVjdGVkVG9wIC0gaW5zcGVjdG9ySGVpZ2h0KV07CiB9CiAK
K2Jvb2wgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ2FuQXR0YWNoKCkKK3sKKyAgICBXS1Zp
ZXcgKmluc3BlY3RlZFZpZXcgPSBtX3BhZ2UtPndrVmlldygpOworICAgIE5TUmVjdCBpbnNwZWN0
ZWRWaWV3UmVjdCA9IFtpbnNwZWN0ZWRWaWV3IGZyYW1lXTsKKyAgICBDR0Zsb2F0IGluc3BlY3Rl
ZFBhZ2VIZWlnaHQgPSBpbnNwZWN0ZWRWaWV3UmVjdC5zaXplLmhlaWdodDsKKyAgICByZXR1cm4g
bWluaW11bUF0dGFjaGVkSGVpZ2h0IDw9IGluc3BlY3RlZFBhZ2VIZWlnaHQgKiBtYXhpbXVtQXR0
YWNoZWRIZWlnaHRSYXRpbzsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1B
dHRhY2goKQogewogICAgIFdLVmlldyAqaW5zcGVjdGVkVmlldyA9IG1fcGFnZS0+d2tWaWV3KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViSW5zcGVjdG9yUHJv
eHlRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViSW5zcGVjdG9yUHJveHlR
dC5jcHAKaW5kZXggYjU3YWE5ZjA1OWVlYTMzMzk2NThiOTkzMWNmOGI4NTBlNDNkZDcwYi4uODM5
NjRiNTY0MDA3NDY0NDE4MGU3NDQ2Yjg4Y2Y4NzIwZDU0MGU1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkluc3BlY3RvclByb3h5UXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJJbnNwZWN0b3JQcm94eVF0LmNwcApAQCAtMzksNyAr
MzksNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUlu
c3BlY3RvclBhZ2UoKQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybU9wZW4oYm9vbCkKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Bl
bigpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTU5LDYgKzU5LDEyIEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJp
bmcmKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK2Jvb2wgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtQ2FuQXR0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCmluZGV4IGU4YTllMWRjZjZkOGIzZDY5
NDEwMWM4YTA4Zjc1MTQzYmU0NmZlOWIuLmRiYTNkNDM0MWE4NzlmMzExNjNiZmYyMjUyOGQ4Yzcz
Y2JlMWQ5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViSW5z
cGVjdG9yUHJveHlXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2Vi
SW5zcGVjdG9yUHJveHlXaW4uY3BwCkBAIC00NSw2ICs0NSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBjb25zdCBMUENXU1RSIGtXZWJL
aXQySW5zcGVjdG9yV2luZG93Q2xhc3NOYW1lID0gTCJXZWJLaXQySW5zcGVjdG9yV2luZG93Q2xh
c3MiOworc3RhdGljIGludCBtaW5pbXVtQXR0YWNoZWRIZWlnaHQgPSAyNTA7CiAKIGJvb2wgV2Vi
SW5zcGVjdG9yUHJveHk6OnJlZ2lzdGVySW5zcGVjdG9yVmlld1dpbmRvd0NsYXNzKCkKIHsKQEAg
LTE5OCw3ICsxOTksNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogICAgIHJldHVybiBtX2luc3BlY3RvclZpZXctPnBhZ2Uo
KTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKGJvb2wgd2lsbE9w
ZW5BdHRhY2hlZCkKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3BlbigpCiB7CiAg
ICAgcmVnaXN0ZXJJbnNwZWN0b3JWaWV3V2luZG93Q2xhc3MoKTsKIApAQCAtMjA4LDcgKzIwOSw5
IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbihib29sIHdpbGxPcGVuQXR0
YWNoZWQpCiAKICAgICBtX2luc3BlY3RvclZpZXctPnNldFBhcmVudFdpbmRvdyhtX2luc3BlY3Rv
cldpbmRvdyk7CiAKLSAgICBpZiAoIXdpbGxPcGVuQXR0YWNoZWQpCisgICAgaWYgKG1faXNBdHRh
Y2hlZCkKKyAgICAgICAgcGxhdGZvcm1BdHRhY2goKTsKKyAgICBlbHNlCiAgICAgICAgIDo6U2hv
d1dpbmRvdyhtX2luc3BlY3RvcldpbmRvdywgU1dfU0hPVyk7CiB9CiAKQEAgLTI0NSw2ICsyNDgs
MTcgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogICAgIDo6U2V0V2luZG93VGV4dFcobV9pbnNwZWN0
b3JXaW5kb3csIHRpdGxlLmNoYXJhY3RlcnNXaXRoTnVsbFRlcm1pbmF0aW9uKCkpOwogfQogCiti
b29sIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNhbkF0dGFjaCgpCit7CisgICAgSFdORCBp
bnNwZWN0ZWRXaW5kb3cgPSBtX3BhZ2UtPm5hdGl2ZVdpbmRvdygpOworCisgICAgUkVDVCBpbnNw
ZWN0ZWRXaW5kb3dSZWN0OworICAgIDo6R2V0V2luZG93UmVjdChpbnNwZWN0ZWRXaW5kb3csICZp
bnNwZWN0ZWRXaW5kb3dSZWN0KTsKKworICAgIGludCBpbnNwZWN0ZWRXaW5kb3dIZWlnaHQgPSBp
bnNwZWN0ZWRXaW5kb3dSZWN0LmJvdHRvbSAtIGluc3BlY3RlZFdpbmRvd1JlY3QudG9wOworICAg
IHJldHVybiBtaW5pbXVtQXR0YWNoZWRIZWlnaHQgPD0gKGluc3BlY3RlZFdpbmRvd0hlaWdodCAq
IDMgLyA0KTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQog
ewogICAgIEhXTkQgd2ViVmlld1dpbmRvdyA9IG1fcGFnZS0+bmF0aXZlV2luZG93KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmlu
ZGV4IDUzYzI1YzcwYmFkNjUzN2NlYzhkODYxMTQ5MWIwYTUwMjZkZmI3MGYuLjE2YzNiMzk1OGI5
NTM3M2E1MmI2OGRlZmRlYzI3MGUxN2Y5Yzk4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC03OCw3ICs3OCw3IEBAIFdl
YlBhZ2UqIFdlYkluc3BlY3Rvcjo6Y3JlYXRlSW5zcGVjdG9yUGFnZSgpCiAvLyBDYWxsZWQgZnJv
bSBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudAogdm9pZCBXZWJJbnNwZWN0b3I6OmRpZExvYWRJ
bnNwZWN0b3JQYWdlKCkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpEaWRMb2FkSW5zcGVjdG9yUGFnZShj
YW5BdHRhY2hXaW5kb3coKSksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNo
YXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkRp
ZExvYWRJbnNwZWN0b3JQYWdlKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYklu
c3BlY3Rvcjo6ZGlkQ2xvc2UoKQpAQCAtMTgxLDE2ICsxODEsNiBAQCB2b2lkIFdlYkluc3BlY3Rv
cjo6c3RvcFBhZ2VQcm9maWxpbmcoKQogICAgIC8vIEZJWE1FOiBzaG93IHRoZSBUaW1lbGluZSBw
YW5lbC4KIH0KIAotdm9pZCBXZWJJbnNwZWN0b3I6OnJlcXVlc3RBdHRhY2hXaW5kb3coKQotewot
ICAgIG1faW5zcGVjdG9yUGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5y
ZXF1ZXN0QXR0YWNoV2luZG93KCk7Ci19Ci0KLWJvb2wgV2ViSW5zcGVjdG9yOjpjYW5BdHRhY2hX
aW5kb3coKSBjb25zdAotewotICAgIHJldHVybiBtX2luc3BlY3RvclBhZ2UtPmNvcmVQYWdlKCkt
Pmluc3BlY3RvckNvbnRyb2xsZXIoKS0+Y2FuQXR0YWNoV2luZG93KCk7Ci19Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAppbmRleCBjMTZjZDI4
MDQwNDY0MTUzYmRlZmRkZWUxNzFmZWQ2MjJmYTMzMmY3Li5iNGE3NmI0YmJhMjE1YWUyNWViMjdi
ZmY0NTNiOTAwYTgzYjllMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBAIC01OSw5ICs1OSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEphdmFTY3JpcHRQcm9maWxpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc3RhcnRQYWdl
UHJvZmlsaW5nKCk7CiAgICAgdm9pZCBzdG9wUGFnZVByb2ZpbGluZygpOwotICAgIAotICAgIGJv
b2wgY2FuQXR0YWNoV2luZG93KCkgY29uc3Q7Ci0gICAgdm9pZCByZXF1ZXN0QXR0YWNoV2luZG93
KCk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFdlYkluc3BlY3RvckNsaWVudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVj
dG9yLm1lc3NhZ2VzLmluCmluZGV4IDU1ODJjZTllNjk0Yjg3ODYzNGVmMmRkNDE0OTQ0NDY0OTVk
NjI4ZmEuLmRjMTg0YjY4YWNiZWFlNjE5YjFiNjEyMjFjY2RkNTY1NWI2NGQ3NzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5tZXNzYWdlcy5pbgpAQCAtMzIsOCArMzIsNiBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3Ig
ewogICAgIFN0b3BKYXZhU2NyaXB0UHJvZmlsaW5nKCkKICAgICBTdGFydFBhZ2VQcm9maWxpbmco
KQogICAgIFN0b3BQYWdlUHJvZmlsaW5nKCkKLQotICAgIFJlcXVlc3RBdHRhY2hXaW5kb3coKQog
fQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103064</attachid>
            <date>2011-08-05 05:37:38 -0700</date>
            <delta_ts>2011-08-05 07:24:30 -0700</delta_ts>
            <desc>[PATCH] With typo fixed</desc>
            <filename>bug-65763-20110805163735.patch</filename>
            <type>text/plain</type>
            <size>22696</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YjI5NzVlZGM4NTRjMDk3
N2ZjNGE1NzFmMzVlNDMwMWM3Y2M2OGI2Li5lNTMzMmZiYTZhMDRjZmYxNWFlYzZiMmJhOWY0ZGFk
MzQwZWYzZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMDUgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogaW1wbGVtZW50IGRvY2svdW5kb2NrIGluIFdlYktpdDIgd2l0aG91dCBnZXR0aW5nIGludG8g
V2ViQ29yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1NzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAod2luZG93TG9hZGVkKToKKwogMjAx
MS0wOC0wNSAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkOiBjaGFuZ2UgYW4gaW5zdGFuY2Ugb2YgaXNJbXBvcnRSdWxlKCkg
dGhhdCB3YXMgb3Zlcmxvb2tlZCBpbiBjb21taXQgOTI0NDguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IGI0MTI5OTgxYjMxZjc0ZTcwMDhlYjRmMzcyNTE3NTUwOWYzODYzNWYuLmMyODM4MmQ1Yzhj
MGU4YmViODg4MDdmNDJkNjY3YjBhMGQ4NzlmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0x
NTg2LDEzICsxNTg2LDExIEBAIF9fWk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazhz
ZXRFcnJvckVOM1dURjEwUGFzc1JlZlB0cklOU18xM1Bvc2l0aW9uRXJyCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MzFkb0Rpc3BhdGNoTWVzc2Fn
ZU9uRnJvbnRlbmRQYWdlRVBOU180UGFnZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjE0ZW5hYmxlUHJvZmlsZXJFdgotX19aTjdXZWJDb3JlMTlJbnNw
ZWN0b3JDb250cm9sbGVyMTVjYW5BdHRhY2hXaW5kb3dFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0
b3JDb250cm9sbGVyMTVkZWJ1Z2dlckVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JD
b250cm9sbGVyMTVkaXNhYmxlRGVidWdnZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMTVkaXNhYmxlUHJvZmlsZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9s
bGVyMTVwcm9maWxlckVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVy
MThkaXNjb25uZWN0RnJvbnRlbmRFdgotX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVy
MTlyZXF1ZXN0QXR0YWNoV2luZG93RXYKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxl
cjIwc3RvcFRpbWVsaW5lUHJvZmlsZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9s
bGVyMjFzaG93QW5kRW5hYmxlRGVidWdnZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMTFzaG93Q29uc29sZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggNjUyMmE2MzZhNjc3Yzk4NGIzMzRhMDRiZDk3MjVh
Zjg3ZWEwZWM4Yi4uNjI5MWEzM2NiZTU3YzNkYWQwNjc5Y2FlODg1ZDQ3OTg4YjExMTg2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApA
QCAtNTA5LDIyICs1MDksNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldFJlc291cmNl
c0RhdGFTaXplTGltaXRzRnJvbUludGVybmFscyhpbnQgbWF4aW11bVJlcwogICAgIG1fcmVzb3Vy
Y2VBZ2VudC0+c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKG1heGltdW1S
ZXNvdXJjZXNDb250ZW50U2l6ZSwgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpOwog
fQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlcXVlc3RBdHRhY2hXaW5kb3coKQotewot
ICAgIGlmICghbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudC0+cmVxdWVzdEF0dGFjaFdpbmRvdygpOwotfQot
ICAgIAotYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpjYW5BdHRhY2hXaW5kb3coKQotewotICAg
IGlmICghbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIAotICAgIHJldHVybiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50LT5jYW5BdHRhY2hXaW5k
b3coKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCmluZGV4IDg2ZmY3NmIwODFhOGUyMmM5YzY5NjIyMmVlMTQ3MjU4OTBkOTk3MDQuLjlkNzY4
MzVjZTgzMGE0NDhlZGRhMzk2NzE2NmYwMmVlNDgwZDA3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTIxLDkgKzEyMSw2IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBzZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21J
bnRlcm5hbHMoaW50IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50IG1heGltdW1TaW5n
bGVSZXNvdXJjZUNvbnRlbnRTaXplKTsKLSAgICAKLSAgICB2b2lkIHJlcXVlc3RBdHRhY2hXaW5k
b3coKTsKLSAgICBib29sIGNhbkF0dGFjaFdpbmRvdygpOwogCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBQb3N0V29ya2VyTm90aWZpY2F0aW9uVG9Gcm9udGVuZFRhc2s7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDE3
MzM3NDIxZGU0YWZkYjg4ZjdlYzJkYjkwMTljNjFhNTM3ZWM5MDQuLmJjOGExMzUwYTdjZjM4YTFm
MGFlZGVjYTE0OTUzZWE3NzY1ODRkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC01OCw3ICs1OCw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFjaFdpbmRvdygpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdERldGFjaFdpbmRvdygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdl
QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgY2Fu
QXR0YWNoV2luZG93KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzYXZlQXMoY29uc3QgV1RGOjpT
dHJpbmcmIGZpbGVOYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGVudCkgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmgKaW5kZXggNDIzZWYzNmM2ZjZmOThlZDA1YWU1ZDI1MzAyODc0YjMyNTU4OThjYy4u
ZTA5NWI0NWNmMjM3Y2FkZTI0MTc1ZGZjOTM3NTIwYmJmMGE0OGMxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
CkBAIC02NCw3ICs2NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFj
aFdpbmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV0YWNoV2luZG93KCk7CiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuQXR0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIHNhdmVBcyhj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2hXaW5kb3coKSA9IDA7CkBAIC03Miw2ICs3MSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCisgICAg
Ym9vbCBjYW5BdHRhY2hXaW5kb3coKTsKKwogICAgIHN0YXRpYyB1bnNpZ25lZCBjb25zdHJhaW5l
ZEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIHByZWZlcnJlZEhlaWdodCwgdW5zaWduZWQg
dG90YWxXaW5kb3dIZWlnaHQpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGUxM2FlZjY5ZWYwZTFjOWU4NDI0
OGQ1MzZlY2IxMzhiOTY2ZTU3NTcuLjg0ZWFmZTEyMThkZjg1NzRhNzFiODk4ODBjYmM1Mjk1NTE0
NDVlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCkBAIC01OTIsNiArNTkyLDggQEAgdmFyIHdpbmRvd0xvYWRlZCA9IGZ1bmN0aW9uKCkK
ICAgICB9IGVsc2UKICAgICAgICAgV2ViSW5zcGVjdG9yLmxvYWRlZCgpOwogCisgICAgV2ViSW5z
cGVjdG9yLnNldEF0dGFjaGVkV2luZG93KFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09iamVjdC5k
b2NrZWQgPT09ICJ0cnVlIik7CisKICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9N
Q29udGVudExvYWRlZCIsIHdpbmRvd0xvYWRlZCwgZmFsc2UpOwogICAgIGRlbGV0ZSB3aW5kb3dM
b2FkZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0MjFjMWZlMTBlMTQ2ZDZj
NGEwMThiZGUxMjQwNTY0OGIyYjRmOGM2Li5jOTAxNzMzZDQ5YjI2NzAyNTE1NzMzY2MwMTkxNzRm
NWI3Mjk1MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDExLTA4LTA1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBkb2NrL3VuZG9jayBpbiBXZWJLaXQyIHdpdGhv
dXQgZ2V0dGluZyBpbnRvIFdlYkNvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NTc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgICogc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHNy
Yy9qcy9EZXZUb29scy5qczoKKyAgICAgICAgKGRldnRvb2xzLmRvbUNvbnRlbnRMb2FkZWQpOgor
CiAyMDExLTA4LTA0ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHAKaW5kZXgg
NTYxNjMyMzA5NDU1ZDFiMTcwZTQwNmE4ZjQyZDc0ZmVjYWUxOGFkZS4uYzlmZGU4MDdmYTVlNjIw
ZWMwYmIxOWI3NDJlOGQ0MDEyYmUxYWVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuY3BwCkBAIC0xMjUs
MTIgKzEyNSw2IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsOjpjaGFuZ2VBdHRh
Y2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKICAgICAvLyBEbyBub3RoaW5nOwogfQogCi1ib29s
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbDo6Y2FuQXR0YWNoV2luZG93KCkKLXsKLSAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMgaWYgaXQgaXMgZXZlciBjYWxsZWQgYnkgQ2hyb21pdW0u
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotICAgIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEltcGw6OnNhdmVBcyhjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnQpCiB7CiAgICAgbV9jbGllbnQtPnNhdmVBcyhmaWxlTmFtZSwgY29udGVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
SW1wbC5oCmluZGV4IDBlYmJmMDdhMTQ5YzY3OTkwOTM2NGQ0ZWY0YmQ2NmYzNTJjOGRlNzEuLmZk
NDVmNWIyYjA4NjZiNWE2NDNiZTlhNGNlYWQxNWUzN2UyYmZhNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5o
CkBAIC02Niw3ICs2Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFj
aFdpbmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV0YWNoV2luZG93KCk7CiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuQXR0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIHNhdmVBcyhj
b25zdCBXVEY6OlN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZW50KTsK
IAogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFdURjo6U3RyaW5n
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5q
cyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCmluZGV4IDgwNzE1
YzJiYmRiYThmNmY0OGZhNjczMGEzNjUwN2Q3ZGFhMzI2ZmEuLmYwNTk5NmRkYTk0M2QzMWY1ZDQ4
Yjg4N2EwM2UxNDM5MzBlNThiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL2pzL0RldlRvb2xzLmpzCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0Rl
dlRvb2xzLmpzCkBAIC02NSw3ICs2NSw2IEBAIHZhciBkZXZ0b29scyA9IGRldnRvb2xzIHx8IHt9
OwogCiBkZXZ0b29scy5kb21Db250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogewotICAgIFdlYklu
c3BlY3Rvci5zZXRBdHRhY2hlZFdpbmRvdyhXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmplY3Qu
ZG9ja2VkID09PSAidHJ1ZSIpOwogICAgIGlmIChXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmpl
Y3QudG9vbGJhckNvbG9yICYmIFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09iamVjdC50ZXh0Q29s
b3IpCiAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRUb29sYmFyQ29sb3JzKFdlYkluc3BlY3Rvci5x
dWVyeVBhcmFtc09iamVjdC50b29sYmFyQ29sb3IsIFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09i
amVjdC50ZXh0Q29sb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI4MzNhYjQ5Zjg4NDQ2YWRiMTk3NGI2
MTEyYWMxNWU2ZGM3NWE4OTQuLjhhZGVjODgzMjg3N2M3OTgzYzgxMWVkMmFjNGY2MGM2NjYzZjll
MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMS0wOC0wNSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXBs
ZW1lbnQgZG9jay91bmRvY2sgaW4gV2ViS2l0MiB3aXRob3V0IGdldHRpbmcgaW50byBXZWJDb3Jl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clByb3h5OjphdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6Y3Jl
YXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpk
aWRMb2FkSW5zcGVjdG9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5
OjpzaG91bGRPcGVuQXR0YWNoZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvckVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNhbkF0dGFjaCk6CisgICAgICAg
ICogVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DYW5BdHRhY2gpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybU9wZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1DYW5BdHRhY2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJJbnNw
ZWN0b3JQcm94eVF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtT3Blbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUNhbkF0dGFjaCk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0b3JQcm94eVdp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4p
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DYW5BdHRhY2gp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OmRpZExvYWRJbnNwZWN0b3JQYWdlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKwogMjAxMS0wOC0wNCAgTWFyayBS
b3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZ1dHVyZS1wcm9vZiBYY29kZSBjb25m
aWd1cmF0aW9uIHNldHRpbmdzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5jcHAKaW5kZXggYWZkNGY1YjAyYWM2ODJlYTExYzJlYzJkZDc3YjhjOTVjNTFm
MjQ4YS4uYzQ5MmExOTMyYjdiZTgxZjgwYmVlZDcyYWJlMWI4ZGY1ZDQxNjAwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0xMjAsOCAr
MTIwLDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNob3dDb25zb2xlKCkKIAogdm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNoKCkKIHsKKyAgICBpZiAoIXBsYXRmb3JtQ2FuQXR0YWNo
KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1faXNBdHRhY2hlZCA9IHRydWU7Ci0gICAgCisK
ICAgICBpZiAobV9pc1Zpc2libGUpCiAgICAgICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVm
ZXJlbmNlcygpLT5zZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCh0cnVlKTsKIApAQCAtMjA2LDE4
ICsyMDksMTkgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yUGFnZSh1
aW50NjRfdCYgaW5zcGVjdG9yUGFnZUlELCBXZWJQYWdlQ3IKICAgICBpbnNwZWN0b3JQYWdlSUQg
PSBpbnNwZWN0b3JQYWdlLT5wYWdlSUQoKTsKICAgICBpbnNwZWN0b3JQYWdlUGFyYW1ldGVycyA9
IGluc3BlY3RvclBhZ2UtPmNyZWF0aW9uUGFyYW1ldGVycygpOwogCi0gICAgaW5zcGVjdG9yUGFn
ZS0+bG9hZFVSTChpbnNwZWN0b3JQYWdlVVJMKCkpOworICAgIFN0cmluZyB1cmwgPSBpbnNwZWN0
b3JQYWdlVVJMKCk7CisgICAgaWYgKHNob3VsZE9wZW5BdHRhY2hlZCgpKQorICAgICAgICB1cmwg
Kz0gIj9kb2NrZWQ9dHJ1ZSI7CisgICAgaW5zcGVjdG9yUGFnZS0+bG9hZFVSTCh1cmwpOwogfQog
Ci12b2lkIFdlYkluc3BlY3RvclByb3h5OjpkaWRMb2FkSW5zcGVjdG9yUGFnZShib29sIGNhblN0
YXJ0QXR0YWNoZWQpCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpkaWRMb2FkSW5zcGVjdG9yUGFn
ZSgpCiB7CiAgICAgbV9pc1Zpc2libGUgPSB0cnVlOworICAgIG1faXNBdHRhY2hlZCA9IHNob3Vs
ZE9wZW5BdHRhY2hlZCgpOwogCi0gICAgYm9vbCB3aWxsT3BlbkF0dGFjaGVkID0gY2FuU3RhcnRB
dHRhY2hlZCAmJiBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS0+aW5zcGVjdG9y
U3RhcnRzQXR0YWNoZWQoKTsKLSAgICBwbGF0Zm9ybU9wZW4od2lsbE9wZW5BdHRhY2hlZCk7Ci0g
ICAgCi0gICAgaWYgKHdpbGxPcGVuQXR0YWNoZWQpCi0gICAgICAgIG1fcGFnZS0+cHJvY2Vzcygp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6OlJlcXVlc3RBdHRhY2hXaW5kb3coKSwgbV9w
YWdlLT5wYWdlSUQoKSk7CisgICAgLy8gcGxhdGZvcm1PcGVuIGlzIHJlc3BvbnNpYmxlIGZvciBy
ZW5kZXJpbmcgYXR0YWNoZWQgbW9kZSBkZXBlbmRpbmcgb24gbV9pc0F0dGFjaGVkLgorICAgIHBs
YXRmb3JtT3BlbigpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpkaWRDbG9zZSgpCkBA
IC0yNDMsNiArMjQ3LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RlZFVSTENo
YW5nZWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgcGxhdGZvcm1JbnNwZWN0ZWRVUkxD
aGFuZ2VkKHVybFN0cmluZyk7CiB9CiAKK2Jvb2wgV2ViSW5zcGVjdG9yUHJveHk6OnNob3VsZE9w
ZW5BdHRhY2hlZCgpCit7CisgICAgcmV0dXJuIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJl
bmNlcygpLT5pbnNwZWN0b3JTdGFydHNBdHRhY2hlZCgpICYmIHBsYXRmb3JtQ2FuQXR0YWNoKCk7
ICAgIAorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQ
RUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9y
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmlu
ZGV4IDAwOWVmNmFiYmY5YWQ3NmVkZWU3ODY3MmNkNDg1YTQxYjJkN2IyYzcuLjdlZWZmYWRiMmM5
ZmU5NTZlOTJkMzhjNDdjNDJhOGZjOTgzN2JjOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xMTQsMTAgKzExNCwxMSBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQogCiAgICAg
V2ViUGFnZVByb3h5KiBwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKTsKLSAgICB2b2lkIHBs
YXRmb3JtT3Blbihib29sIHdpbGxPcGVuQXR0YWNoZWQpOworICAgIHZvaWQgcGxhdGZvcm1PcGVu
KCk7CiAgICAgdm9pZCBwbGF0Zm9ybURpZENsb3NlKCk7CiAgICAgdm9pZCBwbGF0Zm9ybUJyaW5n
VG9Gcm9udCgpOwogICAgIHZvaWQgcGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0
cmluZyYpOworICAgIGJvb2wgcGxhdGZvcm1DYW5BdHRhY2goKTsKICAgICB2b2lkIHBsYXRmb3Jt
QXR0YWNoKCk7CiAgICAgdm9pZCBwbGF0Zm9ybURldGFjaCgpOwogICAgIHZvaWQgcGxhdGZvcm1T
ZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCk7CkBAIC0xMjcsMTEgKzEyOCwxMyBAQCBw
cml2YXRlOgogCiAgICAgLy8gQ2FsbGVkIGJ5IFdlYkluc3BlY3RvclByb3h5IG1lc3NhZ2VzCiAg
ICAgdm9pZCBjcmVhdGVJbnNwZWN0b3JQYWdlKHVpbnQ2NF90JiBpbnNwZWN0b3JQYWdlSUQsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKLSAgICB2b2lkIGRpZExvYWRJbnNwZWN0b3JQYWdl
KGJvb2wgY2FuU3RhcnRBdHRhY2hlZCk7CisgICAgdm9pZCBkaWRMb2FkSW5zcGVjdG9yUGFnZSgp
OwogICAgIHZvaWQgZGlkQ2xvc2UoKTsKICAgICB2b2lkIGJyaW5nVG9Gcm9udCgpOwogICAgIHZv
aWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKTsKIAorICAgIGJvb2wgc2hvdWxk
T3BlbkF0dGFjaGVkKCk7CisKICAgICBzdGF0aWMgV2ViUGFnZUdyb3VwKiBpbnNwZWN0b3JQYWdl
R3JvdXAoKTsKIAogI2lmIFBMQVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBkMDA2NmY0ZTVm
ZjZiNjMxMTVjYzkzZmQxNDAzYmRkOGFkNDU0M2Q2Li5hMTk0OTg1OGUwNDMzZDk4NGYwN2ExNWE5
ZDJkYmQxNmY2MzI0OGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCwxMSArMjQsMTEgQEAKIAogbWVz
c2FnZXMgLT4gV2ViSW5zcGVjdG9yUHJveHkgewogICAgIENyZWF0ZUluc3BlY3RvclBhZ2UoKSAt
PiAodWludDY0X3QgaW5zcGVjdG9yUGFnZUlELCBXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMgaW5zcGVjdG9yUGFnZVBhcmFtZXRlcnMpCi0gICAgRGlkTG9hZEluc3BlY3RvclBhZ2Uo
Ym9vbCBjYW5TdGFydEF0dGFjaGVkKQorICAgIERpZExvYWRJbnNwZWN0b3JQYWdlKCkKICAgICBE
aWRDbG9zZSgpCiAgICAgQnJpbmdUb0Zyb250KCkKICAgICBJbnNwZWN0ZWRVUkxDaGFuZ2VkKFdU
Rjo6U3RyaW5nIHVybFN0cmluZykKLSAgICAKKwogICAgIEF0dGFjaCgpCiAgICAgRGV0YWNoKCkK
ICAgICBTZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvckVmbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvckVmbC5jcHAKaW5kZXggOTMyZjA4
MzYyOWFiYjc1ZDg3ZDc1Zjc1ZjM1ZDg4MGFhZTc5MjRlMy4uZWJjZDFiYTk5Y2Q2N2IyNGJmMTg3
MWYzZGJlNWU3MGUwYWQzZjYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJJbnNwZWN0b3JFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvV2ViSW5zcGVjdG9yRWZsLmNwcApAQCAtNjUsNiArNjUsMTIgQEAgU3RyaW5nIFdlYkluc3Bl
Y3RvclByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7
CiB9CiAKK2Jvb2wgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ2FuQXR0YWNoKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3Rvckd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3Rvckd0ay5jcHAKaW5k
ZXggNTYzNTBjYTNlNTg0MWYxZjdiOWE0MzM0NWEzZDBlN2VmZjFhMzA1ZC4uNzI0NDU1MGFjMDA4
YzhkZjU1YTc1YTVlMmJmNGQ2MjY5MDdhOTU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yR3RrLmNwcApAQCAtNjYsNiArNjYsMTIgQEAgU3RyaW5n
IFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkgY29uc3QKICAgICByZXR1cm4g
U3RyaW5nKCk7CiB9CiAKK2Jvb2wgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ2FuQXR0YWNo
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3Bl
Y3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0
b3JQcm94eU1hYy5tbQppbmRleCAwNDcyNTA2YzlhYjRlZTkxMTRjZTdjZDVkZGEwY2E4YmZjNzA2
MGIwLi5hZDRhNjRjYWY3Y2E1YjI4MGNhZjE4YTY5MTZiNjAzYjE4ZjY3NmM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0K
QEAgLTQ0LDYgKzQ0LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogLy8gVGhlIGhlaWdo
dCBuZWVkZWQgdG8gbWF0Y2ggYSB0eXBpY2FsIE5TVG9vbGJhci4KIHN0YXRpYyBjb25zdCBDR0Zs
b2F0IHdpbmRvd0NvbnRlbnRCb3JkZXJUaGlja25lc3MgPSA1NTsKK3N0YXRpYyBjb25zdCBDR0Zs
b2F0IG1pbmltdW1BdHRhY2hlZEhlaWdodCA9IDI1MDsKK3N0YXRpYyBjb25zdCBDR0Zsb2F0IG1h
eGltdW1BdHRhY2hlZEhlaWdodFJhdGlvID0gMC43NTsKIAogLy8gV2ViSW5zcGVjdG9yUHJveHlP
YmpDQWRhcHRlciBpcyBhIGhlbHBlciBPYmpDIG9iamVjdCB1c2VkIGFzIGEgZGVsZWdhdGUgb3Ig
bm90aWZpY2F0aW9uIG9ic2VydmVyCiAvLyBmb3IgdGhlIHNvbGUgcHVycG9zZSBvZiBnZXR0aW5n
IGJhY2sgaW50byB0aGUgQysrIGNvZGUgZnJvbSBhbiBPYmpDIGNhbGxlci4KQEAgLTEwOSw3ICsx
MTEsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUlu
c3BlY3RvclBhZ2UoKQogICAgIHJldHVybiB0b0ltcGwobV9pbnNwZWN0b3JWaWV3LmdldCgpLnBh
Z2VSZWYpOwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oYm9vbCB3
aWxsT3BlbkF0dGFjaGVkKQordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKCkK
IHsKICAgICBBU1NFUlQoIW1faW5zcGVjdG9yV2luZG93KTsKIApAQCAtMTM1LDEwICsxMzcsMTIg
QEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKGJvb2wgd2lsbE9wZW5BdHRh
Y2hlZCkKICAgICBbbV9pbnNwZWN0b3JWaWV3LmdldCgpIHNldEF1dG9yZXNpemluZ01hc2s6KE5T
Vmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGUpXTsKICAgICBbY29udGVudFZp
ZXcgYWRkU3VidmlldzptX2luc3BlY3RvclZpZXcuZ2V0KCldOwogCi0gICAgaWYgKCF3aWxsT3Bl
bkF0dGFjaGVkKQotICAgICAgICBbd2luZG93IG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07Ci0K
ICAgICBtX2luc3BlY3RvcldpbmRvdy5hZG9wdE5TKHdpbmRvdyk7CisKKyAgICBpZiAobV9pc0F0
dGFjaGVkKQorICAgICAgICBwbGF0Zm9ybUF0dGFjaCgpOworICAgIGVsc2UKKyAgICAgICAgW3dp
bmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpuaWxdOwogfQogCiB2b2lkIFdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybURpZENsb3NlKCkKQEAgLTE4Myw2ICsxODcsMTQgQEAgdm9pZCBXZWJJbnNw
ZWN0b3JQcm94eTo6aW5zcGVjdGVkVmlld0ZyYW1lRGlkQ2hhbmdlKCkKICAgICBbaW5zcGVjdGVk
VmlldyBzZXRGcmFtZTpOU01ha2VSZWN0KGluc3BlY3RlZExlZnQsIGluc3BlY3RvckhlaWdodCwg
aW5zcGVjdGVkV2lkdGgsIGluc3BlY3RlZFRvcCAtIGluc3BlY3RvckhlaWdodCldOwogfQogCiti
b29sIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNhbkF0dGFjaCgpCit7CisgICAgV0tWaWV3
ICppbnNwZWN0ZWRWaWV3ID0gbV9wYWdlLT53a1ZpZXcoKTsKKyAgICBOU1JlY3QgaW5zcGVjdGVk
Vmlld1JlY3QgPSBbaW5zcGVjdGVkVmlldyBmcmFtZV07CisgICAgQ0dGbG9hdCBpbnNwZWN0ZWRQ
YWdlSGVpZ2h0ID0gaW5zcGVjdGVkVmlld1JlY3Quc2l6ZS5oZWlnaHQ7CisgICAgcmV0dXJuIG1p
bmltdW1BdHRhY2hlZEhlaWdodCA8PSBpbnNwZWN0ZWRQYWdlSGVpZ2h0ICogbWF4aW11bUF0dGFj
aGVkSGVpZ2h0UmF0aW87Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0
YWNoKCkKIHsKICAgICBXS1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBtX3BhZ2UtPndrVmlldygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkluc3BlY3RvclByb3h5
UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dlYkluc3BlY3RvclByb3h5UXQu
Y3BwCmluZGV4IGI1N2FhOWYwNTllZWEzMzM5NjU4Yjk5MzFjZjhiODUwZTQzZGQ3MGIuLjgzOTY0
YjU2NDAwNzQ2NDQxODBlNzQ0NmI4OGNmODcyMGQ1NDBlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJJbnNwZWN0b3JQcm94eVF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViSW5zcGVjdG9yUHJveHlRdC5jcHAKQEAgLTM5LDcgKzM5
LDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNw
ZWN0b3JQYWdlKCkKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1PcGVuKGJvb2wpCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4o
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC01OSw2ICs1OSwxMiBAQCB2b2lkIFdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5n
JikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUNhbkF0dGFjaCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dpbi9XZWJJbnNwZWN0b3JQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcAppbmRleCBlOGE5ZTFkY2Y2ZDhiM2Q2OTQx
MDFjOGEwOGY3NTE0M2JlNDZmZTliLi5kYmEzZDQzNDFhODc5ZjMxMTYzYmZmMjI1MjhkOGM3M2Ni
ZTFkOTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYkluc3Bl
Y3RvclByb3h5V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYklu
c3BlY3RvclByb3h5V2luLmNwcApAQCAtNDUsNiArNDUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdGF0aWMgY29uc3QgTFBDV1NUUiBrV2ViS2l0
Mkluc3BlY3RvcldpbmRvd0NsYXNzTmFtZSA9IEwiV2ViS2l0Mkluc3BlY3RvcldpbmRvd0NsYXNz
IjsKK3N0YXRpYyBpbnQgbWluaW11bUF0dGFjaGVkSGVpZ2h0ID0gMjUwOwogCiBib29sIFdlYklu
c3BlY3RvclByb3h5OjpyZWdpc3Rlckluc3BlY3RvclZpZXdXaW5kb3dDbGFzcygpCiB7CkBAIC0x
OTgsNyArMTk5LDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1D
cmVhdGVJbnNwZWN0b3JQYWdlKCkKICAgICByZXR1cm4gbV9pbnNwZWN0b3JWaWV3LT5wYWdlKCk7
CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbihib29sIHdpbGxPcGVu
QXR0YWNoZWQpCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQogewogICAg
IHJlZ2lzdGVySW5zcGVjdG9yVmlld1dpbmRvd0NsYXNzKCk7CiAKQEAgLTIwOCw3ICsyMDksOSBA
QCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oYm9vbCB3aWxsT3BlbkF0dGFj
aGVkKQogCiAgICAgbV9pbnNwZWN0b3JWaWV3LT5zZXRQYXJlbnRXaW5kb3cobV9pbnNwZWN0b3JX
aW5kb3cpOwogCi0gICAgaWYgKCF3aWxsT3BlbkF0dGFjaGVkKQorICAgIGlmIChtX2lzQXR0YWNo
ZWQpCisgICAgICAgIHBsYXRmb3JtQXR0YWNoKCk7CisgICAgZWxzZQogICAgICAgICA6OlNob3dX
aW5kb3cobV9pbnNwZWN0b3JXaW5kb3csIFNXX1NIT1cpOwogfQogCkBAIC0yNDUsNiArMjQ4LDE3
IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChj
b25zdCBTdHJpbmcmIHVybFN0cmluZykKICAgICA6OlNldFdpbmRvd1RleHRXKG1faW5zcGVjdG9y
V2luZG93LCB0aXRsZS5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpKTsKIH0KIAorYm9v
bCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DYW5BdHRhY2goKQoreworICAgIEhXTkQgaW5z
cGVjdGVkV2luZG93ID0gbV9wYWdlLT5uYXRpdmVXaW5kb3coKTsKKworICAgIFJFQ1QgaW5zcGVj
dGVkV2luZG93UmVjdDsKKyAgICA6OkdldFdpbmRvd1JlY3QoaW5zcGVjdGVkV2luZG93LCAmaW5z
cGVjdGVkV2luZG93UmVjdCk7CisKKyAgICBpbnQgaW5zcGVjdGVkV2luZG93SGVpZ2h0ID0gaW5z
cGVjdGVkV2luZG93UmVjdC5ib3R0b20gLSBpbnNwZWN0ZWRXaW5kb3dSZWN0LnRvcDsKKyAgICBy
ZXR1cm4gbWluaW11bUF0dGFjaGVkSGVpZ2h0IDw9IChpbnNwZWN0ZWRXaW5kb3dIZWlnaHQgKiAz
IC8gNCk7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIHsK
ICAgICBIV05EIHdlYlZpZXdXaW5kb3cgPSBtX3BhZ2UtPm5hdGl2ZVdpbmRvdygpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRl
eCA1M2MyNWM3MGJhZDY1MzdjZWM4ZDg2MTE0OTFiMGE1MDI2ZGZiNzBmLi4xNmMzYjM5NThiOTUz
NzNhNTJiNjhkZWZkZWMyNzBlMTdmOWM5ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApAQCAtNzgsNyArNzgsNyBAQCBXZWJQ
YWdlKiBXZWJJbnNwZWN0b3I6OmNyZWF0ZUluc3BlY3RvclBhZ2UoKQogLy8gQ2FsbGVkIGZyb20g
V2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQKIHZvaWQgV2ViSW5zcGVjdG9yOjpkaWRMb2FkSW5z
cGVjdG9yUGFnZSgpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6RGlkTG9hZEluc3BlY3RvclBhZ2UoY2Fu
QXR0YWNoV2luZG93KCkpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpEaWRM
b2FkSW5zcGVjdG9yUGFnZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJJbnNw
ZWN0b3I6OmRpZENsb3NlKCkKQEAgLTE4MSwxNiArMTgxLDYgQEAgdm9pZCBXZWJJbnNwZWN0b3I6
OnN0b3BQYWdlUHJvZmlsaW5nKCkKICAgICAvLyBGSVhNRTogc2hvdyB0aGUgVGltZWxpbmUgcGFu
ZWwuCiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yOjpyZXF1ZXN0QXR0YWNoV2luZG93KCkKLXsKLSAg
ICBtX2luc3BlY3RvclBhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+cmVx
dWVzdEF0dGFjaFdpbmRvdygpOwotfQotCi1ib29sIFdlYkluc3BlY3Rvcjo6Y2FuQXR0YWNoV2lu
ZG93KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pbnNwZWN0b3JQYWdlLT5jb3JlUGFnZSgpLT5p
bnNwZWN0b3JDb250cm9sbGVyKCktPmNhbkF0dGFjaFdpbmRvdygpOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKaW5kZXggYzE2Y2QyODA0
MDQ2NDE1M2JkZWZkZGVlMTcxZmVkNjIyZmEzMzJmNy4uYjRhNzZiNGJiYTIxNWFlMjVlYjI3YmZm
NDUzYjkwMGE4M2I5ZTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuaApAQCAtNTksOSArNTksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHN0YXJ0UGFnZVBy
b2ZpbGluZygpOwogICAgIHZvaWQgc3RvcFBhZ2VQcm9maWxpbmcoKTsKLSAgICAKLSAgICBib29s
IGNhbkF0dGFjaFdpbmRvdygpIGNvbnN0OwotICAgIHZvaWQgcmVxdWVzdEF0dGFjaFdpbmRvdygp
OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJJbnNwZWN0b3JDbGllbnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5tZXNzYWdlcy5pbgppbmRleCA1NTgyY2U5ZTY5NGI4Nzg2MzRlZjJkZDQxNDk0NDQ2NDk1ZDYy
OGZhLi5kYzE4NGI2OGFjYmVhZTYxOWIxYjYxMjIxY2NkZDU2NTViNjRkNzc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3Iu
bWVzc2FnZXMuaW4KQEAgLTMyLDggKzMyLDYgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yIHsK
ICAgICBTdG9wSmF2YVNjcmlwdFByb2ZpbGluZygpCiAgICAgU3RhcnRQYWdlUHJvZmlsaW5nKCkK
ICAgICBTdG9wUGFnZVByb2ZpbGluZygpCi0KLSAgICBSZXF1ZXN0QXR0YWNoV2luZG93KCkKIH0K
IAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103071</attachid>
            <date>2011-08-05 07:24:38 -0700</date>
            <delta_ts>2011-08-05 08:57:44 -0700</delta_ts>
            <desc>[PATCH] Moved minimum size check &amp; constants to WebInspectorProxy</desc>
            <filename>bug-65763-20110805182436.patch</filename>
            <type>text/plain</type>
            <size>22420</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YjI5NzVlZGM4NTRjMDk3
N2ZjNGE1NzFmMzVlNDMwMWM3Y2M2OGI2Li5lNTMzMmZiYTZhMDRjZmYxNWFlYzZiMmJhOWY0ZGFk
MzQwZWYzZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMDUgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogaW1wbGVtZW50IGRvY2svdW5kb2NrIGluIFdlYktpdDIgd2l0aG91dCBnZXR0aW5nIGludG8g
V2ViQ29yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1NzYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5jcHA6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAod2luZG93TG9hZGVkKToKKwogMjAx
MS0wOC0wNSAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRzdGVpbmVyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkOiBjaGFuZ2UgYW4gaW5zdGFuY2Ugb2YgaXNJbXBvcnRSdWxlKCkg
dGhhdCB3YXMgb3Zlcmxvb2tlZCBpbiBjb21taXQgOTI0NDguCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IGI0MTI5OTgxYjMxZjc0ZTcwMDhlYjRmMzcyNTE3NTUwOWYzODYzNWYuLmMyODM4MmQ1Yzhj
MGU4YmViODg4MDdmNDJkNjY3YjBhMGQ4NzlmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0x
NTg2LDEzICsxNTg2LDExIEBAIF9fWk43V2ViQ29yZTIyR2VvbG9jYXRpb25TZXJ2aWNlTW9jazhz
ZXRFcnJvckVOM1dURjEwUGFzc1JlZlB0cklOU18xM1Bvc2l0aW9uRXJyCiAjaWYgRU5BQkxFKElO
U1BFQ1RPUikKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MzFkb0Rpc3BhdGNoTWVzc2Fn
ZU9uRnJvbnRlbmRQYWdlRVBOU180UGFnZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjE0ZW5hYmxlUHJvZmlsZXJFdgotX19aTjdXZWJDb3JlMTlJbnNw
ZWN0b3JDb250cm9sbGVyMTVjYW5BdHRhY2hXaW5kb3dFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0
b3JDb250cm9sbGVyMTVkZWJ1Z2dlckVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JD
b250cm9sbGVyMTVkaXNhYmxlRGVidWdnZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMTVkaXNhYmxlUHJvZmlsZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9s
bGVyMTVwcm9maWxlckVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVy
MThkaXNjb25uZWN0RnJvbnRlbmRFdgotX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVy
MTlyZXF1ZXN0QXR0YWNoV2luZG93RXYKIF9fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxl
cjIwc3RvcFRpbWVsaW5lUHJvZmlsZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9s
bGVyMjFzaG93QW5kRW5hYmxlRGVidWdnZXJFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0b3JDb250
cm9sbGVyMTFzaG93Q29uc29sZUV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggNjUyMmE2MzZhNjc3Yzk4NGIzMzRhMDRiZDk3MjVh
Zjg3ZWEwZWM4Yi4uNjI5MWEzM2NiZTU3YzNkYWQwNjc5Y2FlODg1ZDQ3OTg4YjExMTg2YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApA
QCAtNTA5LDIyICs1MDksNiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldFJlc291cmNl
c0RhdGFTaXplTGltaXRzRnJvbUludGVybmFscyhpbnQgbWF4aW11bVJlcwogICAgIG1fcmVzb3Vy
Y2VBZ2VudC0+c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKG1heGltdW1S
ZXNvdXJjZXNDb250ZW50U2l6ZSwgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpOwog
fQogCi12b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnJlcXVlc3RBdHRhY2hXaW5kb3coKQotewot
ICAgIGlmICghbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudC0+cmVxdWVzdEF0dGFjaFdpbmRvdygpOwotfQot
ICAgIAotYm9vbCBJbnNwZWN0b3JDb250cm9sbGVyOjpjYW5BdHRhY2hXaW5kb3coKQotewotICAg
IGlmICghbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIAotICAgIHJldHVybiBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50LT5jYW5BdHRhY2hXaW5k
b3coKTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCmluZGV4IDg2ZmY3NmIwODFhOGUyMmM5YzY5NjIyMmVlMTQ3MjU4OTBkOTk3MDQuLjlkNzY4
MzVjZTgzMGE0NDhlZGRhMzk2NzE2NmYwMmVlNDgwZDA3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTIxLDkgKzEyMSw2IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBzZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21J
bnRlcm5hbHMoaW50IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW50IG1heGltdW1TaW5n
bGVSZXNvdXJjZUNvbnRlbnRTaXplKTsKLSAgICAKLSAgICB2b2lkIHJlcXVlc3RBdHRhY2hXaW5k
b3coKTsKLSAgICBib29sIGNhbkF0dGFjaFdpbmRvdygpOwogCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBQb3N0V29ya2VyTm90aWZpY2F0aW9uVG9Gcm9udGVuZFRhc2s7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCmluZGV4IDE3
MzM3NDIxZGU0YWZkYjg4ZjdlYzJkYjkwMTljNjFhNTM3ZWM5MDQuLmJjOGExMzUwYTdjZjM4YTFm
MGFlZGVjYTE0OTUzZWE3NzY1ODRkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC01OCw3ICs1OCw2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFjaFdpbmRvdygpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdERldGFjaFdpbmRvdygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdl
QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgY2Fu
QXR0YWNoV2luZG93KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzYXZlQXMoY29uc3QgV1RGOjpT
dHJpbmcmIGZpbGVOYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGVudCkgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmgKaW5kZXggNDIzZWYzNmM2ZjZmOThlZDA1YWU1ZDI1MzAyODc0YjMyNTU4OThjYy4u
ZTA5NWI0NWNmMjM3Y2FkZTI0MTc1ZGZjOTM3NTIwYmJmMGE0OGMxZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
CkBAIC02NCw3ICs2NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFj
aFdpbmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV0YWNoV2luZG93KCk7CiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuQXR0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIHNhdmVBcyhj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2hXaW5kb3coKSA9IDA7CkBAIC03Miw2ICs3MSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCisgICAg
Ym9vbCBjYW5BdHRhY2hXaW5kb3coKTsKKwogICAgIHN0YXRpYyB1bnNpZ25lZCBjb25zdHJhaW5l
ZEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIHByZWZlcnJlZEhlaWdodCwgdW5zaWduZWQg
dG90YWxXaW5kb3dIZWlnaHQpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IGUxM2FlZjY5ZWYwZTFjOWU4NDI0
OGQ1MzZlY2IxMzhiOTY2ZTU3NTcuLjg0ZWFmZTEyMThkZjg1NzRhNzFiODk4ODBjYmM1Mjk1NTE0
NDVlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5z
cGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCkBAIC01OTIsNiArNTkyLDggQEAgdmFyIHdpbmRvd0xvYWRlZCA9IGZ1bmN0aW9uKCkK
ICAgICB9IGVsc2UKICAgICAgICAgV2ViSW5zcGVjdG9yLmxvYWRlZCgpOwogCisgICAgV2ViSW5z
cGVjdG9yLnNldEF0dGFjaGVkV2luZG93KFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09iamVjdC5k
b2NrZWQgPT09ICJ0cnVlIik7CisKICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9N
Q29udGVudExvYWRlZCIsIHdpbmRvd0xvYWRlZCwgZmFsc2UpOwogICAgIGRlbGV0ZSB3aW5kb3dM
b2FkZWQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0MjFjMWZlMTBlMTQ2ZDZj
NGEwMThiZGUxMjQwNTY0OGIyYjRmOGM2Li5jOTAxNzMzZDQ5YjI2NzAyNTE1NzMzY2MwMTkxNzRm
NWI3Mjk1MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDExLTA4LTA1ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBkb2NrL3VuZG9jayBpbiBXZWJLaXQyIHdpdGhv
dXQgZ2V0dGluZyBpbnRvIFdlYkNvcmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NTc2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgICogc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5oOgorICAgICAgICAqIHNy
Yy9qcy9EZXZUb29scy5qczoKKyAgICAgICAgKGRldnRvb2xzLmRvbUNvbnRlbnRMb2FkZWQpOgor
CiAyMDExLTA4LTA0ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHAKaW5kZXgg
NTYxNjMyMzA5NDU1ZDFiMTcwZTQwNmE4ZjQyZDc0ZmVjYWUxOGFkZS4uYzlmZGU4MDdmYTVlNjIw
ZWMwYmIxOWI3NDJlOGQ0MDEyYmUxYWVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuY3BwCkBAIC0xMjUs
MTIgKzEyNSw2IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsOjpjaGFuZ2VBdHRh
Y2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKICAgICAvLyBEbyBub3RoaW5nOwogfQogCi1ib29s
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbDo6Y2FuQXR0YWNoV2luZG93KCkKLXsKLSAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMgaWYgaXQgaXMgZXZlciBjYWxsZWQgYnkgQ2hyb21pdW0u
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotICAgIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dEltcGw6OnNhdmVBcyhjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnQpCiB7CiAgICAgbV9jbGllbnQtPnNhdmVBcyhmaWxlTmFtZSwgY29udGVudCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
SW1wbC5oCmluZGV4IDBlYmJmMDdhMTQ5YzY3OTkwOTM2NGQ0ZWY0YmQ2NmYzNTJjOGRlNzEuLmZk
NDVmNWIyYjA4NjZiNWE2NDNiZTlhNGNlYWQxNWUzN2UyYmZhNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5o
CkBAIC02Niw3ICs2Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFj
aFdpbmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV0YWNoV2luZG93KCk7CiAgICAg
dmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKLSAgICB2
aXJ0dWFsIGJvb2wgY2FuQXR0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIHNhdmVBcyhj
b25zdCBXVEY6OlN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZW50KTsK
IAogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFdURjo6U3RyaW5n
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5q
cyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RldlRvb2xzLmpzCmluZGV4IDgwNzE1
YzJiYmRiYThmNmY0OGZhNjczMGEzNjUwN2Q3ZGFhMzI2ZmEuLmYwNTk5NmRkYTk0M2QzMWY1ZDQ4
Yjg4N2EwM2UxNDM5MzBlNThiZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL2pzL0RldlRvb2xzLmpzCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0Rl
dlRvb2xzLmpzCkBAIC02NSw3ICs2NSw2IEBAIHZhciBkZXZ0b29scyA9IGRldnRvb2xzIHx8IHt9
OwogCiBkZXZ0b29scy5kb21Db250ZW50TG9hZGVkID0gZnVuY3Rpb24oKQogewotICAgIFdlYklu
c3BlY3Rvci5zZXRBdHRhY2hlZFdpbmRvdyhXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmplY3Qu
ZG9ja2VkID09PSAidHJ1ZSIpOwogICAgIGlmIChXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmpl
Y3QudG9vbGJhckNvbG9yICYmIFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09iamVjdC50ZXh0Q29s
b3IpCiAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRUb29sYmFyQ29sb3JzKFdlYkluc3BlY3Rvci5x
dWVyeVBhcmFtc09iamVjdC50b29sYmFyQ29sb3IsIFdlYkluc3BlY3Rvci5xdWVyeVBhcmFtc09i
amVjdC50ZXh0Q29sb3IpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGI4MzNhYjQ5Zjg4NDQ2YWRiMTk3NGI2
MTEyYWMxNWU2ZGM3NWE4OTQuLjdlY2FjMzJlOWQwZGRjODc3OWM4ZTBlZmIwN2M3MGViMDY1ZmUz
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMS0wOC0wNSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXBs
ZW1lbnQgZG9jay91bmRvY2sgaW4gV2ViS2l0MiB3aXRob3V0IGdldHRpbmcgaW50byBXZWJDb3Jl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clByb3h5OjphdHRhY2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6Y3Jl
YXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpk
aWRMb2FkSW5zcGVjdG9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5
OjpzaG91bGRPcGVuQXR0YWNoZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvckVmbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdo
dCk6CisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWln
aHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWln
aHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJJbnNwZWN0b3JQcm94eVF0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbik6CisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdo
dCk6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0b3JQcm94eVdpbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWln
aHQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OmRpZExvYWRJbnNwZWN0b3JQYWdlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbjoKKwogMjAxMS0wOC0wNCAgTWFy
ayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZ1dHVyZS1wcm9vZiBYY29kZSBj
b25maWd1cmF0aW9uIHNldHRpbmdzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJ
bnNwZWN0b3JQcm94eS5jcHAKaW5kZXggYWZkNGY1YjAyYWM2ODJlYTExYzJlYzJkZDc3YjhjOTVj
NTFmMjQ4YS4uYTJmZWQyYThjNzRkZTViZDQyYzc0MGFiMWJiNjlmMjA2NmUxYjg4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0xMjAs
OCArMTIwLDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNob3dDb25zb2xlKCkKIAogdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNoKCkKIHsKKyAgICBpZiAoIWNhbkF0dGFjaCgpKQor
ICAgICAgICByZXR1cm47CisKICAgICBtX2lzQXR0YWNoZWQgPSB0cnVlOwotICAgIAorCiAgICAg
aWYgKG1faXNWaXNpYmxlKQogICAgICAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS0+c2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQodHJ1ZSk7CiAKQEAgLTIwNiwxOCArMjA5
LDE5IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUluc3BlY3RvclBhZ2UodWludDY0
X3QmIGluc3BlY3RvclBhZ2VJRCwgV2ViUGFnZUNyCiAgICAgaW5zcGVjdG9yUGFnZUlEID0gaW5z
cGVjdG9yUGFnZS0+cGFnZUlEKCk7CiAgICAgaW5zcGVjdG9yUGFnZVBhcmFtZXRlcnMgPSBpbnNw
ZWN0b3JQYWdlLT5jcmVhdGlvblBhcmFtZXRlcnMoKTsKIAotICAgIGluc3BlY3RvclBhZ2UtPmxv
YWRVUkwoaW5zcGVjdG9yUGFnZVVSTCgpKTsKKyAgICBTdHJpbmcgdXJsID0gaW5zcGVjdG9yUGFn
ZVVSTCgpOworICAgIGlmIChzaG91bGRPcGVuQXR0YWNoZWQoKSkKKyAgICAgICAgdXJsICs9ICI/
ZG9ja2VkPXRydWUiOworICAgIGluc3BlY3RvclBhZ2UtPmxvYWRVUkwodXJsKTsKIH0KIAotdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6ZGlkTG9hZEluc3BlY3RvclBhZ2UoYm9vbCBjYW5TdGFydEF0
dGFjaGVkKQordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6ZGlkTG9hZEluc3BlY3RvclBhZ2UoKQog
ewogICAgIG1faXNWaXNpYmxlID0gdHJ1ZTsKKyAgICBtX2lzQXR0YWNoZWQgPSBzaG91bGRPcGVu
QXR0YWNoZWQoKTsKIAotICAgIGJvb2wgd2lsbE9wZW5BdHRhY2hlZCA9IGNhblN0YXJ0QXR0YWNo
ZWQgJiYgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPmluc3BlY3RvclN0YXJ0
c0F0dGFjaGVkKCk7Ci0gICAgcGxhdGZvcm1PcGVuKHdpbGxPcGVuQXR0YWNoZWQpOwotICAgIAot
ICAgIGlmICh3aWxsT3BlbkF0dGFjaGVkKQotICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2Vu
ZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpSZXF1ZXN0QXR0YWNoV2luZG93KCksIG1fcGFnZS0+
cGFnZUlEKCkpOworICAgIC8vIHBsYXRmb3JtT3BlbiBpcyByZXNwb25zaWJsZSBmb3IgcmVuZGVy
aW5nIGF0dGFjaGVkIG1vZGUgZGVwZW5kaW5nIG9uIG1faXNBdHRhY2hlZC4KKyAgICBwbGF0Zm9y
bU9wZW4oKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6ZGlkQ2xvc2UoKQpAQCAtMjQz
LDYgKzI0NywxNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0ZWRVUkxDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogICAgIHBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdl
ZCh1cmxTdHJpbmcpOwogfQogCitib29sIFdlYkluc3BlY3RvclByb3h5OjpjYW5BdHRhY2goKQor
eworICAgIHVuc2lnbmVkIGluc3BlY3RlZFdpbmRvd0hlaWdodCA9IHBsYXRmb3JtSW5zcGVjdGVk
V2luZG93SGVpZ2h0KCk7CisgICAgcmV0dXJuIGluc3BlY3RlZFdpbmRvd0hlaWdodCAmJiBtaW5p
bXVtQXR0YWNoZWRIZWlnaHQgPD0gKGluc3BlY3RlZFdpbmRvd0hlaWdodCAqIDMgLyA0KTsKK30K
KworYm9vbCBXZWJJbnNwZWN0b3JQcm94eTo6c2hvdWxkT3BlbkF0dGFjaGVkKCkKK3sKKyAgICBy
ZXR1cm4gaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPmluc3BlY3RvclN0YXJ0
c0F0dGFjaGVkKCkgJiYgY2FuQXR0YWNoKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggMDA5ZWY2YWJiZjlhZDc2ZWRlZTc4NjcyY2Q0ODVh
NDFiMmQ3YjJjNy4uZGY4ZGRhNjNjMmRkMmQzYmY5OWMwNjRjMzI0NzEyOTNlZTE4NmZiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKQEAgLTExNCwx
MCArMTE0LDExIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBBUElUeXBlOyB9CiAKICAgICBXZWJQYWdlUHJveHkqIHBsYXRmb3JtQ3JlYXRlSW5zcGVj
dG9yUGFnZSgpOwotICAgIHZvaWQgcGxhdGZvcm1PcGVuKGJvb2wgd2lsbE9wZW5BdHRhY2hlZCk7
CisgICAgdm9pZCBwbGF0Zm9ybU9wZW4oKTsKICAgICB2b2lkIHBsYXRmb3JtRGlkQ2xvc2UoKTsK
ICAgICB2b2lkIHBsYXRmb3JtQnJpbmdUb0Zyb250KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUluc3Bl
Y3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJik7CisgICAgdW5zaWduZWQgcGxhdGZvcm1JbnNw
ZWN0ZWRXaW5kb3dIZWlnaHQoKTsKICAgICB2b2lkIHBsYXRmb3JtQXR0YWNoKCk7CiAgICAgdm9p
ZCBwbGF0Zm9ybURldGFjaCgpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hl
aWdodCh1bnNpZ25lZCk7CkBAIC0xMjcsMTEgKzEyOCwxNCBAQCBwcml2YXRlOgogCiAgICAgLy8g
Q2FsbGVkIGJ5IFdlYkluc3BlY3RvclByb3h5IG1lc3NhZ2VzCiAgICAgdm9pZCBjcmVhdGVJbnNw
ZWN0b3JQYWdlKHVpbnQ2NF90JiBpbnNwZWN0b3JQYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMmKTsKLSAgICB2b2lkIGRpZExvYWRJbnNwZWN0b3JQYWdlKGJvb2wgY2FuU3RhcnRBdHRh
Y2hlZCk7CisgICAgdm9pZCBkaWRMb2FkSW5zcGVjdG9yUGFnZSgpOwogICAgIHZvaWQgZGlkQ2xv
c2UoKTsKICAgICB2b2lkIGJyaW5nVG9Gcm9udCgpOwogICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hh
bmdlZChjb25zdCBTdHJpbmcmKTsKIAorICAgIGJvb2wgY2FuQXR0YWNoKCk7CisgICAgYm9vbCBz
aG91bGRPcGVuQXR0YWNoZWQoKTsKKwogICAgIHN0YXRpYyBXZWJQYWdlR3JvdXAqIGluc3BlY3Rv
clBhZ2VHcm91cCgpOwogCiAjaWYgUExBVEZPUk0oV0lOKQpAQCAtMTUzLDYgKzE1Nyw3IEBAIHBy
aXZhdGU6CiAKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW5pdGlhbFdpbmRvd1dpZHRoID0g
NzUwOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbml0aWFsV2luZG93SGVpZ2h0ID0gNjUw
OworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtaW5pbXVtQXR0YWNoZWRIZWlnaHQgPSAyNTA7
CiAKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGQwMDY2ZjRl
NWZmNmI2MzExNWNjOTNmZDE0MDNiZGQ4YWQ0NTQzZDYuLmExOTQ5ODU4ZTA0MzNkOTg0ZjA3YTE1
YTlkMmRiZDE2ZjYzMjQ4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDExICsyNCwxMSBAQAogCiBt
ZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JQcm94eSB7CiAgICAgQ3JlYXRlSW5zcGVjdG9yUGFnZSgp
IC0+ICh1aW50NjRfdCBpbnNwZWN0b3JQYWdlSUQsIFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyBpbnNwZWN0b3JQYWdlUGFyYW1ldGVycykKLSAgICBEaWRMb2FkSW5zcGVjdG9yUGFn
ZShib29sIGNhblN0YXJ0QXR0YWNoZWQpCisgICAgRGlkTG9hZEluc3BlY3RvclBhZ2UoKQogICAg
IERpZENsb3NlKCkKICAgICBCcmluZ1RvRnJvbnQoKQogICAgIEluc3BlY3RlZFVSTENoYW5nZWQo
V1RGOjpTdHJpbmcgdXJsU3RyaW5nKQotICAgIAorCiAgICAgQXR0YWNoKCkKICAgICBEZXRhY2go
KQogICAgIFNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViSW5zcGVjdG9yRWZsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViSW5zcGVjdG9yRWZsLmNwcAppbmRleCA5MzJm
MDgzNjI5YWJiNzVkODdkNzVmNzVmMzVkODgwYWFlNzkyNGUzLi41ZmUyMzg4YTA2ZDExZDAxZDZj
ZWRhZGY3MWU5MmQ4N2U2YTlmNTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvZWZsL1dlYkluc3BlY3RvckVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2VmbC9XZWJJbnNwZWN0b3JFZmwuY3BwCkBAIC02NSw2ICs2NSwxMiBAQCBTdHJpbmcgV2ViSW5z
cGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VVUkwoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KIAordW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2lu
ZG93SGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQor
CiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2Vi
SW5zcGVjdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVj
dG9yR3RrLmNwcAppbmRleCA1NjM1MGNhM2U1ODQxZjFmN2I5YTQzMzQ1YTNkMGU3ZWZmMWEzMDVk
Li43YjY0ZmU4MDBiMGRmNjJjNDA0M2Y5NTRhYmJhMmIyYjkyODFiMjhmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3Rvckd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwCkBAIC02Niw2ICs2
NiwxMiBAQCBTdHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VVUkwoKSBjb25z
dAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAordW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0
dGFjaCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDA0NzI1MDZjOWFi
NGVlOTExNGNlN2NkNWRkYTBjYThiZmM3MDYwYjAuLmY1MGExMjNmMzg2ZTE4OTc0ZTFlNGE5YThj
MzE4YTM5MjJjNmQ1M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAtMTA5LDcgKzEwOSw3IEBAIFdlYlBhZ2VQcm94
eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCiAgICAg
cmV0dXJuIHRvSW1wbChtX2luc3BlY3RvclZpZXcuZ2V0KCkucGFnZVJlZik7CiB9CiAKLXZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbihib29sIHdpbGxPcGVuQXR0YWNoZWQpCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQogewogICAgIEFTU0VSVCghbV9p
bnNwZWN0b3JXaW5kb3cpOwogCkBAIC0xMzUsMTAgKzEzNSwxMiBAQCB2b2lkIFdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybU9wZW4oYm9vbCB3aWxsT3BlbkF0dGFjaGVkKQogICAgIFttX2luc3Bl
Y3RvclZpZXcuZ2V0KCkgc2V0QXV0b3Jlc2l6aW5nTWFzazooTlNWaWV3V2lkdGhTaXphYmxlIHwg
TlNWaWV3SGVpZ2h0U2l6YWJsZSldOwogICAgIFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Om1faW5z
cGVjdG9yVmlldy5nZXQoKV07CiAKLSAgICBpZiAoIXdpbGxPcGVuQXR0YWNoZWQpCi0gICAgICAg
IFt3aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKLQogICAgIG1faW5zcGVjdG9yV2lu
ZG93LmFkb3B0TlMod2luZG93KTsKKworICAgIGlmIChtX2lzQXR0YWNoZWQpCisgICAgICAgIHBs
YXRmb3JtQXR0YWNoKCk7CisgICAgZWxzZQorICAgICAgICBbd2luZG93IG1ha2VLZXlBbmRPcmRl
ckZyb250Om5pbF07CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGlkQ2xv
c2UoKQpAQCAtMTgzLDYgKzE4NSwxMyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0
ZWRWaWV3RnJhbWVEaWRDaGFuZ2UoKQogICAgIFtpbnNwZWN0ZWRWaWV3IHNldEZyYW1lOk5TTWFr
ZVJlY3QoaW5zcGVjdGVkTGVmdCwgaW5zcGVjdG9ySGVpZ2h0LCBpbnNwZWN0ZWRXaWR0aCwgaW5z
cGVjdGVkVG9wIC0gaW5zcGVjdG9ySGVpZ2h0KV07CiB9CiAKK3Vuc2lnbmVkIFdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpCit7CisgICAgV0tWaWV3ICpp
bnNwZWN0ZWRWaWV3ID0gbV9wYWdlLT53a1ZpZXcoKTsKKyAgICBOU1JlY3QgaW5zcGVjdGVkVmll
d1JlY3QgPSBbaW5zcGVjdGVkVmlldyBmcmFtZV07CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVu
c2lnbmVkPihpbnNwZWN0ZWRWaWV3UmVjdC5zaXplLmhlaWdodCk7Cit9CisKIHZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIHsKICAgICBXS1ZpZXcgKmluc3BlY3RlZFZp
ZXcgPSBtX3BhZ2UtPndrVmlldygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1dlYkluc3BlY3RvclByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkluc3BlY3RvclByb3h5UXQuY3BwCmluZGV4IGI1N2FhOWYwNTllZWEzMzM5NjU4Yjk5
MzFjZjhiODUwZTQzZGQ3MGIuLjgwMmExNDE3OGMyMGVhZjQ5ZTkxMDEyMGFjZGY5Mzc1Nzc2ZDgw
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJJbnNwZWN0b3JQ
cm94eVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViSW5zcGVjdG9y
UHJveHlRdC5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKICAgICByZXR1cm4gMDsKIH0KIAot
dm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKGJvb2wpCit2b2lkIFdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBA
IC01OSw2ICs1OSwxMiBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3Rl
ZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit1
bnNpZ25lZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0b3JQ
cm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclBy
b3h5V2luLmNwcAppbmRleCBlOGE5ZTFkY2Y2ZDhiM2Q2OTQxMDFjOGEwOGY3NTE0M2JlNDZmZTli
Li5kMDk1Y2IwMmVkNjVlNzEzN2Q5ZDkxNjM1M2M1NDhjZmVmMWQ5NGNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcApA
QCAtMTk4LDcgKzE5OCw3IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCiAgICAgcmV0dXJuIG1faW5zcGVjdG9yVmlldy0+cGFn
ZSgpOwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oYm9vbCB3aWxs
T3BlbkF0dGFjaGVkKQordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKCkKIHsK
ICAgICByZWdpc3Rlckluc3BlY3RvclZpZXdXaW5kb3dDbGFzcygpOwogCkBAIC0yMDgsNyArMjA4
LDkgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKGJvb2wgd2lsbE9wZW5B
dHRhY2hlZCkKIAogICAgIG1faW5zcGVjdG9yVmlldy0+c2V0UGFyZW50V2luZG93KG1faW5zcGVj
dG9yV2luZG93KTsKIAotICAgIGlmICghd2lsbE9wZW5BdHRhY2hlZCkKKyAgICBpZiAobV9pc0F0
dGFjaGVkKQorICAgICAgICBwbGF0Zm9ybUF0dGFjaCgpOworICAgIGVsc2UKICAgICAgICAgOjpT
aG93V2luZG93KG1faW5zcGVjdG9yV2luZG93LCBTV19TSE9XKTsKIH0KIApAQCAtMjQ1LDYgKzI0
NywxNiBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFVSTENoYW5n
ZWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgOjpTZXRXaW5kb3dUZXh0VyhtX2luc3Bl
Y3RvcldpbmRvdywgdGl0bGUuY2hhcmFjdGVyc1dpdGhOdWxsVGVybWluYXRpb24oKSk7CiB9CiAK
K3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdo
dCgpCit7CisgICAgSFdORCBpbnNwZWN0ZWRXaW5kb3cgPSBtX3BhZ2UtPm5hdGl2ZVdpbmRvdygp
OworCisgICAgUkVDVCBpbnNwZWN0ZWRXaW5kb3dSZWN0OworICAgIDo6R2V0V2luZG93UmVjdChp
bnNwZWN0ZWRXaW5kb3csICZpbnNwZWN0ZWRXaW5kb3dSZWN0KTsKKworICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oaW5zcGVjdGVkV2luZG93UmVjdC5ib3R0b20gLSBpbnNwZWN0ZWRX
aW5kb3dSZWN0LnRvcCk7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0
YWNoKCkKIHsKICAgICBIV05EIHdlYlZpZXdXaW5kb3cgPSBtX3BhZ2UtPm5hdGl2ZVdpbmRvdygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
LmNwcAppbmRleCA1M2MyNWM3MGJhZDY1MzdjZWM4ZDg2MTE0OTFiMGE1MDI2ZGZiNzBmLi4xNmMz
YjM5NThiOTUzNzNhNTJiNjhkZWZkZWMyNzBlMTdmOWM5ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApAQCAtNzgsNyArNzgs
NyBAQCBXZWJQYWdlKiBXZWJJbnNwZWN0b3I6OmNyZWF0ZUluc3BlY3RvclBhZ2UoKQogLy8gQ2Fs
bGVkIGZyb20gV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQKIHZvaWQgV2ViSW5zcGVjdG9yOjpk
aWRMb2FkSW5zcGVjdG9yUGFnZSgpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6RGlkTG9hZEluc3BlY3Rv
clBhZ2UoY2FuQXR0YWNoV2luZG93KCkpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclBy
b3h5OjpEaWRMb2FkSW5zcGVjdG9yUGFnZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9p
ZCBXZWJJbnNwZWN0b3I6OmRpZENsb3NlKCkKQEAgLTE4MSwxNiArMTgxLDYgQEAgdm9pZCBXZWJJ
bnNwZWN0b3I6OnN0b3BQYWdlUHJvZmlsaW5nKCkKICAgICAvLyBGSVhNRTogc2hvdyB0aGUgVGlt
ZWxpbmUgcGFuZWwuCiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yOjpyZXF1ZXN0QXR0YWNoV2luZG93
KCkKLXsKLSAgICBtX2luc3BlY3RvclBhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xs
ZXIoKS0+cmVxdWVzdEF0dGFjaFdpbmRvdygpOwotfQotCi1ib29sIFdlYkluc3BlY3Rvcjo6Y2Fu
QXR0YWNoV2luZG93KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9pbnNwZWN0b3JQYWdlLT5jb3Jl
UGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmNhbkF0dGFjaFdpbmRvdygpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgKaW5kZXgg
YzE2Y2QyODA0MDQ2NDE1M2JkZWZkZGVlMTcxZmVkNjIyZmEzMzJmNy4uYjRhNzZiNGJiYTIxNWFl
MjVlYjI3YmZmNDUzYjkwMGE4M2I5ZTI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaApAQCAtNTksOSArNTksNiBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHN0
YXJ0UGFnZVByb2ZpbGluZygpOwogICAgIHZvaWQgc3RvcFBhZ2VQcm9maWxpbmcoKTsKLSAgICAK
LSAgICBib29sIGNhbkF0dGFjaFdpbmRvdygpIGNvbnN0OwotICAgIHZvaWQgcmVxdWVzdEF0dGFj
aFdpbmRvdygpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBXZWJJbnNwZWN0b3JDbGll
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3Rvci5tZXNzYWdlcy5pbgppbmRleCA1NTgyY2U5ZTY5NGI4Nzg2MzRlZjJkZDQxNDk0
NDQ2NDk1ZDYyOGZhLi5kYzE4NGI2OGFjYmVhZTYxOWIxYjYxMjIxY2NkZDU2NTViNjRkNzc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IubWVzc2FnZXMuaW4KQEAgLTMyLDggKzMyLDYgQEAgbWVzc2FnZXMgLT4gV2ViSW5z
cGVjdG9yIHsKICAgICBTdG9wSmF2YVNjcmlwdFByb2ZpbGluZygpCiAgICAgU3RhcnRQYWdlUHJv
ZmlsaW5nKCkKICAgICBTdG9wUGFnZVByb2ZpbGluZygpCi0KLSAgICBSZXF1ZXN0QXR0YWNoV2lu
ZG93KCkKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103076</attachid>
            <date>2011-08-05 08:57:53 -0700</date>
            <delta_ts>2011-08-08 01:01:16 -0700</delta_ts>
            <desc>[PATCH] Patch with better changelog, for landing</desc>
            <filename>bug-65763-20110805195750.patch</filename>
            <type>text/plain</type>
            <size>23130</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3YjI5NzVlZGM4NTRjMDk3
N2ZjNGE1NzFmMzVlNDMwMWM3Y2M2OGI2Li5mYzI3YTIyMjQyYjcwMjc5NGE5OWNmNzM3MDMxM2Iw
YjVkNGFkMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDgtMDUgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rv
cjogaW1wbGVtZW50IGRvY2svdW5kb2NrIGluIFdlYktpdDIgd2l0aG91dCBnZXR0aW5nIGludG8g
V2ViQ29yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY1NzYzCisKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBjYW4ndCBoYXZlIHN5
bmNocm9ub3VzIGNhbkF0dGFjaFdpbmRvdygpIHJldHVybmluZyB2YWx1ZQorICAgICAgICBzaW5j
ZSBpbiB0aGUgbXVsdGlwcm9jZXNzIGVudmlyb25tZW50LCB5b3UgY2FuJ3QgaW1tZWRpYXRlbHkg
Z2V0IGJhY2sgdG8gaXQgZnJvbSB0aGUgaG9zdC4KKworICAgICAgICByOTIzODQgaW50cm9kdWNl
ZCBhbiB1bmhlYWx0aHkgV2ViS2l0IC0+IFdlYkNvcmUgLT4gV2ViS2l0IGNhbkF0dGFjaCBxdWVy
eSB3aGVyZSBlbWJlZGRlcgorICAgICAgICB3YXMgYXNraW5nIGl0c2VsZiBhIHF1ZXN0aW9uLiBU
aGlzIGxvb3Agd2FzIGZpeGVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAgICAgICAgKHdpbmRvd0xv
YWRlZCk6CisKIDIwMTEtMDgtMDUgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3RlaW5lckBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZDogY2hhbmdlIGFuIGluc3RhbmNlIG9mIGlz
SW1wb3J0UnVsZSgpIHRoYXQgd2FzIG92ZXJsb29rZWQgaW4gY29tbWl0IDkyNDQ4LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgppbmRleCBiNDEyOTk4MWIzMWY3NGU3MDA4ZWI0ZjM3MjUxNzU1MDlmMzg2MzVm
Li5jMjgzODJkNWM4YzBlOGJlYjg4ODA3ZjQyZDY2N2IwYTBkODc5ZjcxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgpAQCAtMTU4NiwxMyArMTU4NiwxMSBAQCBfX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9u
U2VydmljZU1vY2s4c2V0RXJyb3JFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTNQb3NpdGlvbkVycgog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVudDMxZG9E
aXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZUVQTlNfNFBhZ2VFUktOM1dURjZTdHJpbmdFCiBf
X1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxNGVuYWJsZVByb2ZpbGVyRXYKLV9fWk43
V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1Y2FuQXR0YWNoV2luZG93RXYKIF9fWk43V2Vi
Q29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1ZGVidWdnZXJFbmFibGVkRXYKIF9fWk43V2ViQ29y
ZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1ZGlzYWJsZURlYnVnZ2VyRXYKIF9fWk43V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjE1ZGlzYWJsZVByb2ZpbGVyRXYKIF9fWk43V2ViQ29yZTE5SW5z
cGVjdG9yQ29udHJvbGxlcjE1cHJvZmlsZXJFbmFibGVkRXYKIF9fWk43V2ViQ29yZTE5SW5zcGVj
dG9yQ29udHJvbGxlcjE4ZGlzY29ubmVjdEZyb250ZW5kRXYKLV9fWk43V2ViQ29yZTE5SW5zcGVj
dG9yQ29udHJvbGxlcjE5cmVxdWVzdEF0dGFjaFdpbmRvd0V2CiBfX1pON1dlYkNvcmUxOUluc3Bl
Y3RvckNvbnRyb2xsZXIyMHN0b3BUaW1lbGluZVByb2ZpbGVyRXYKIF9fWk43V2ViQ29yZTE5SW5z
cGVjdG9yQ29udHJvbGxlcjIxc2hvd0FuZEVuYWJsZURlYnVnZ2VyRXYKIF9fWk43V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjExc2hvd0NvbnNvbGVFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDY1MjJhNjM2YTY3N2M5ODRi
MzM0YTA0YmQ5NzI1YWY4N2VhMGVjOGIuLjYyOTFhMzNjYmU1N2MzZGFkMDY3OWNhZTg4NWQ0Nzk4
OGIxMTE4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKQEAgLTUwOSwyMiArNTA5LDYgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpzZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHMoaW50IG1heGltdW1SZXMK
ICAgICBtX3Jlc291cmNlQWdlbnQtPnNldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVy
bmFscyhtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIG1heGltdW1TaW5nbGVSZXNvdXJjZUNv
bnRlbnRTaXplKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXF1ZXN0QXR0YWNo
V2luZG93KCkKLXsKLSAgICBpZiAoIW1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQtPnJlcXVlc3RBdHRhY2hX
aW5kb3coKTsKLX0KLSAgICAKLWJvb2wgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y2FuQXR0YWNoV2lu
ZG93KCkKLXsKLSAgICBpZiAoIW1faW5zcGVjdG9yRnJvbnRlbmRDbGllbnQpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAKLSAgICByZXR1cm4gbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudC0+
Y2FuQXR0YWNoV2luZG93KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaAppbmRleCA4NmZmNzZiMDgxYThlMjJjOWM2OTYyMjJlZTE0NzI1ODkw
ZDk5NzA0Li45ZDc2ODM1Y2U4MzBhNDQ4ZWRkYTM5NjcxNjZmMDJlZTQ4MGQwNzYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKQEAgLTEyMSw5
ICsxMjEsNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0UmVzb3VyY2VzRGF0YVNp
emVMaW1pdHNGcm9tSW50ZXJuYWxzKGludCBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGlu
dCBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSk7Ci0gICAgCi0gICAgdm9pZCByZXF1
ZXN0QXR0YWNoV2luZG93KCk7Ci0gICAgYm9vbCBjYW5BdHRhY2hXaW5kb3coKTsKIAogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgUG9zdFdvcmtlck5vdGlmaWNhdGlvblRvRnJvbnRlbmRUYXNr
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQuaAppbmRleCAxNzMzNzQyMWRlNGFmZGI4OGY3ZWMyZGI5MDE5YzYxYTUzN2VjOTA0Li5iYzhh
MTM1MGE3Y2YzOGExZjBhZWRlY2ExNDk1M2VhNzc2NTg0ZGExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaApAQCAtNTgsNyArNTgs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RBdHRhY2hXaW5kb3coKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3REZXRhY2hXaW5kb3coKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKSA9IDA7Ci0gICAgdmly
dHVhbCBib29sIGNhbkF0dGFjaFdpbmRvdygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2F2ZUFz
KGNvbnN0IFdURjo6U3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRlbnQp
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmlu
ZyYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5oCmluZGV4IDQyM2VmMzZjNmY2Zjk4ZWQwNWFlNWQyNTMwMjg3
NGIzMjU1ODk4Y2MuLmUwOTViNDVjZjIzN2NhZGUyNDE3NWRmYzkzNzUyMGJiZjBhNDhjMWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
Q2xpZW50TG9jYWwuaApAQCAtNjQsNyArNjQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RBdHRhY2hXaW5kb3coKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldGFjaFdp
bmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNp
Z25lZCk7Ci0gICAgdmlydHVhbCBib29sIGNhbkF0dGFjaFdpbmRvdygpOwogICAgIHZpcnR1YWwg
dm9pZCBzYXZlQXMoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgeyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoV2luZG93KCkgPSAwOwpAQCAtNzIsNiArNzEsOCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKTsKIAorICAgIGJvb2wgY2FuQXR0YWNoV2luZG93KCk7CisKICAgICBzdGF0aWMgdW5zaWdu
ZWQgY29uc3RyYWluZWRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBwcmVmZXJyZWRIZWln
aHQsIHVuc2lnbmVkIHRvdGFsV2luZG93SGVpZ2h0KTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBlMTNhZWY2
OWVmMGUxYzllODQyNDhkNTM2ZWNiMTM4Yjk2NmU1NzU3Li44NGVhZmUxMjE4ZGY4NTc0YTcxYjg5
ODgwY2JjNTI5NTUxNDQ1ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNTkyLDYgKzU5Miw4IEBAIHZhciB3aW5kb3dMb2FkZWQg
PSBmdW5jdGlvbigpCiAgICAgfSBlbHNlCiAgICAgICAgIFdlYkluc3BlY3Rvci5sb2FkZWQoKTsK
IAorICAgIFdlYkluc3BlY3Rvci5zZXRBdHRhY2hlZFdpbmRvdyhXZWJJbnNwZWN0b3IucXVlcnlQ
YXJhbXNPYmplY3QuZG9ja2VkID09PSAidHJ1ZSIpOworCiAgICAgd2luZG93LnJlbW92ZUV2ZW50
TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCB3aW5kb3dMb2FkZWQsIGZhbHNlKTsKICAgICBk
ZWxldGUgd2luZG93TG9hZGVkOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDIx
YzFmZTEwZTE0NmQ2YzRhMDE4YmRlMTI0MDU2NDhiMmI0ZjhjNi4uYzkwMTczM2Q0OWIyNjcwMjUx
NTczM2NjMDE5MTc0ZjViNzI5NTFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMS0wOC0wNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQgZG9jay91bmRvY2sgaW4g
V2ViS2l0MiB3aXRob3V0IGdldHRpbmcgaW50byBXZWJDb3JlLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dEltcGwuY3BwOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuaDoK
KyAgICAgICAgKiBzcmMvanMvRGV2VG9vbHMuanM6CisgICAgICAgIChkZXZ0b29scy5kb21Db250
ZW50TG9hZGVkKToKKwogMjAxMS0wOC0wNCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgREVQUy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudElt
cGwuY3BwCmluZGV4IDU2MTYzMjMwOTQ1NWQxYjE3MGU0MDZhOGY0MmQ3NGZlY2FlMThhZGUuLmM5
ZmRlODA3ZmE1ZTYyMGVjMGJiMTliNzQyZThkNDAxMmJlMWFlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBs
LmNwcApAQCAtMTI1LDEyICsxMjUsNiBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50SW1w
bDo6Y2hhbmdlQXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpCiAgICAgLy8gRG8gbm90aGlu
ZzsKIH0KIAotYm9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGw6OmNhbkF0dGFjaFdpbmRv
dygpCi17Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIGlmIGl0IGlzIGV2ZXIgY2FsbGVk
IGJ5IENocm9taXVtLgotICAgIHJldHVybiBmYWxzZTsKLX0KLSAgICAKIHZvaWQgSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRJbXBsOjpzYXZlQXMoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3Qg
U3RyaW5nJiBjb250ZW50KQogewogICAgIG1fY2xpZW50LT5zYXZlQXMoZmlsZU5hbWUsIGNvbnRl
bnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JG
cm9udGVuZENsaWVudEltcGwuaAppbmRleCAwZWJiZjA3YTE0OWM2Nzk5MDkzNjRkNGVmNGJkNjZm
MzUyYzhkZTcxLi5mZDQ1ZjViMmIwODY2YjVhNjQzYmU5YTRjZWFkMTVlMzdlMmJmYTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudEltcGwuaApAQCAtNjYsNyArNjYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RBdHRhY2hXaW5kb3coKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldGFjaFdp
bmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNp
Z25lZCk7Ci0gICAgdmlydHVhbCBib29sIGNhbkF0dGFjaFdpbmRvdygpOwogICAgIHZpcnR1YWwg
dm9pZCBzYXZlQXMoY29uc3QgV1RGOjpTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBXVEY6OlN0cmlu
ZyYgY29udGVudCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25z
dCBXVEY6OlN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvRGV2VG9vbHMuanMgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5q
cwppbmRleCA4MDcxNWMyYmJkYmE4ZjZmNDhmYTY3MzBhMzY1MDdkN2RhYTMyNmZhLi5mMDU5OTZk
ZGE5NDNkMzFmNWQ0OGI4ODdhMDNlMTQzOTMwZTU4YmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5qcworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9qcy9EZXZUb29scy5qcwpAQCAtNjUsNyArNjUsNiBAQCB2YXIgZGV2dG9vbHMgPSBk
ZXZ0b29scyB8fCB7fTsKIAogZGV2dG9vbHMuZG9tQ29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkK
IHsKLSAgICBXZWJJbnNwZWN0b3Iuc2V0QXR0YWNoZWRXaW5kb3coV2ViSW5zcGVjdG9yLnF1ZXJ5
UGFyYW1zT2JqZWN0LmRvY2tlZCA9PT0gInRydWUiKTsKICAgICBpZiAoV2ViSW5zcGVjdG9yLnF1
ZXJ5UGFyYW1zT2JqZWN0LnRvb2xiYXJDb2xvciAmJiBXZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNP
YmplY3QudGV4dENvbG9yKQogICAgICAgICBXZWJJbnNwZWN0b3Iuc2V0VG9vbGJhckNvbG9ycyhX
ZWJJbnNwZWN0b3IucXVlcnlQYXJhbXNPYmplY3QudG9vbGJhckNvbG9yLCBXZWJJbnNwZWN0b3Iu
cXVlcnlQYXJhbXNPYmplY3QudGV4dENvbG9yKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiODMzYWI0OWY4
ODQ0NmFkYjE5NzRiNjExMmFjMTVlNmRjNzVhODk0Li5kZmIxMjgxYWQ3M2I2ZTJkZTYyNWQ0Mzc4
OWEzYWY1MzVhN2YxMzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDgtMDUg
IFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogaW1wbGVtZW50IGRvY2svdW5kb2NrIGluIFdlYktpdDIgd2l0aG91dCBnZXR0aW5n
IGludG8gV2ViQ29yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY1NzYzCisKKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBjYW4ndCBo
YXZlIHN5bmNocm9ub3VzIGNhbkF0dGFjaFdpbmRvdygpIHJldHVybmluZyB2YWx1ZQorICAgICAg
ICBzaW5jZSBpbiB0aGUgbXVsdGlwcm9jZXNzIGVudmlyb25tZW50LCB5b3UgY2FuJ3QgaW1tZWRp
YXRlbHkgZ2V0IGJhY2sgdG8gaXQgZnJvbSB0aGUgaG9zdC4KKworICAgICAgICByOTIzODQgaW50
cm9kdWNlZCBhbiB1bmhlYWx0aHkgV2ViS2l0IC0+IFdlYkNvcmUgLT4gV2ViS2l0IGNhbkF0dGFj
aCBxdWVyeSB3aGVyZSBlbWJlZGRlcgorICAgICAgICB3YXMgYXNraW5nIGl0c2VsZiBhIHF1ZXN0
aW9uLiBUaGlzIGxvb3Agd2FzIGZpeGVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmF0dGFjaCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0b3JQYWdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmRpZExvYWRJbnNwZWN0b3JQYWdlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnNob3VsZE9wZW5BdHRhY2hlZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
Ykluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2Vi
SW5zcGVjdG9yRWZsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dl
Ykluc3BlY3Rvckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9X
ZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtT3Blbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1dl
Ykluc3BlY3RvclByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1PcGVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dl
Ykluc3BlY3RvclByb3h5V2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtT3Blbik6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6ZGlk
TG9hZEluc3BlY3RvclBhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNw
ZWN0b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3Nh
Z2VzLmluOgorCiAyMDExLTA4LTA0ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgRnV0dXJlLXByb29mIFhjb2RlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCBhZmQ0ZjVi
MDJhYzY4MmVhMTFjMmVjMmRkNzdiOGM5NWM1MWYyNDhhLi5hMmZlZDJhOGM3NGRlNWJkNDJjNzQw
YWIxYmI2OWYyMDY2ZTFiODhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJ
bnNwZWN0b3JQcm94eS5jcHAKQEAgLTEyMCw4ICsxMjAsMTEgQEAgdm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6c2hvd0NvbnNvbGUoKQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjphdHRhY2goKQog
eworICAgIGlmICghY2FuQXR0YWNoKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1faXNBdHRh
Y2hlZCA9IHRydWU7Ci0gICAgCisKICAgICBpZiAobV9pc1Zpc2libGUpCiAgICAgICAgIGluc3Bl
Y3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hl
ZCh0cnVlKTsKIApAQCAtMjA2LDE4ICsyMDksMTkgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
Y3JlYXRlSW5zcGVjdG9yUGFnZSh1aW50NjRfdCYgaW5zcGVjdG9yUGFnZUlELCBXZWJQYWdlQ3IK
ICAgICBpbnNwZWN0b3JQYWdlSUQgPSBpbnNwZWN0b3JQYWdlLT5wYWdlSUQoKTsKICAgICBpbnNw
ZWN0b3JQYWdlUGFyYW1ldGVycyA9IGluc3BlY3RvclBhZ2UtPmNyZWF0aW9uUGFyYW1ldGVycygp
OwogCi0gICAgaW5zcGVjdG9yUGFnZS0+bG9hZFVSTChpbnNwZWN0b3JQYWdlVVJMKCkpOworICAg
IFN0cmluZyB1cmwgPSBpbnNwZWN0b3JQYWdlVVJMKCk7CisgICAgaWYgKHNob3VsZE9wZW5BdHRh
Y2hlZCgpKQorICAgICAgICB1cmwgKz0gIj9kb2NrZWQ9dHJ1ZSI7CisgICAgaW5zcGVjdG9yUGFn
ZS0+bG9hZFVSTCh1cmwpOwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5OjpkaWRMb2FkSW5z
cGVjdG9yUGFnZShib29sIGNhblN0YXJ0QXR0YWNoZWQpCit2b2lkIFdlYkluc3BlY3RvclByb3h5
OjpkaWRMb2FkSW5zcGVjdG9yUGFnZSgpCiB7CiAgICAgbV9pc1Zpc2libGUgPSB0cnVlOworICAg
IG1faXNBdHRhY2hlZCA9IHNob3VsZE9wZW5BdHRhY2hlZCgpOwogCi0gICAgYm9vbCB3aWxsT3Bl
bkF0dGFjaGVkID0gY2FuU3RhcnRBdHRhY2hlZCAmJiBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJl
ZmVyZW5jZXMoKS0+aW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoKTsKLSAgICBwbGF0Zm9ybU9wZW4o
d2lsbE9wZW5BdHRhY2hlZCk7Ci0gICAgCi0gICAgaWYgKHdpbGxPcGVuQXR0YWNoZWQpCi0gICAg
ICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6OlJlcXVl
c3RBdHRhY2hXaW5kb3coKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgLy8gcGxhdGZvcm1PcGVu
IGlzIHJlc3BvbnNpYmxlIGZvciByZW5kZXJpbmcgYXR0YWNoZWQgbW9kZSBkZXBlbmRpbmcgb24g
bV9pc0F0dGFjaGVkLgorICAgIHBsYXRmb3JtT3BlbigpOwogfQogCiB2b2lkIFdlYkluc3BlY3Rv
clByb3h5OjpkaWRDbG9zZSgpCkBAIC0yNDMsNiArMjQ3LDE3IEBAIHZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6Omluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAg
cGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKHVybFN0cmluZyk7CiB9CiAKK2Jvb2wgV2ViSW5z
cGVjdG9yUHJveHk6OmNhbkF0dGFjaCgpCit7CisgICAgdW5zaWduZWQgaW5zcGVjdGVkV2luZG93
SGVpZ2h0ID0gcGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKTsKKyAgICByZXR1cm4gaW5z
cGVjdGVkV2luZG93SGVpZ2h0ICYmIG1pbmltdW1BdHRhY2hlZEhlaWdodCA8PSAoaW5zcGVjdGVk
V2luZG93SGVpZ2h0ICogMyAvIDQpOworfQorCitib29sIFdlYkluc3BlY3RvclByb3h5OjpzaG91
bGRPcGVuQXR0YWNoZWQoKQoreworICAgIHJldHVybiBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJl
ZmVyZW5jZXMoKS0+aW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoKSAmJiBjYW5BdHRhY2goKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCAwMDll
ZjZhYmJmOWFkNzZlZGVlNzg2NzJjZDQ4NWE0MWIyZDdiMmM3Li5kZjhkZGE2M2MyZGQyZDNiZjk5
YzA2NGMzMjQ3MTI5M2VlMTg2ZmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaApAQCAtMTE0LDEwICsxMTQsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIEFQSVR5cGU7IH0KIAogICAgIFdlYlBhZ2VQ
cm94eSogcGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCk7Ci0gICAgdm9pZCBwbGF0Zm9ybU9w
ZW4oYm9vbCB3aWxsT3BlbkF0dGFjaGVkKTsKKyAgICB2b2lkIHBsYXRmb3JtT3BlbigpOwogICAg
IHZvaWQgcGxhdGZvcm1EaWRDbG9zZSgpOwogICAgIHZvaWQgcGxhdGZvcm1CcmluZ1RvRnJvbnQo
KTsKICAgICB2b2lkIHBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKTsK
KyAgICB1bnNpZ25lZCBwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpOwogICAgIHZvaWQg
cGxhdGZvcm1BdHRhY2goKTsKICAgICB2b2lkIHBsYXRmb3JtRGV0YWNoKCk7CiAgICAgdm9pZCBw
bGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKQEAgLTEyNywxMSArMTI4
LDE0IEBAIHByaXZhdGU6CiAKICAgICAvLyBDYWxsZWQgYnkgV2ViSW5zcGVjdG9yUHJveHkgbWVz
c2FnZXMKICAgICB2b2lkIGNyZWF0ZUluc3BlY3RvclBhZ2UodWludDY0X3QmIGluc3BlY3RvclBh
Z2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwotICAgIHZvaWQgZGlkTG9hZEluc3Bl
Y3RvclBhZ2UoYm9vbCBjYW5TdGFydEF0dGFjaGVkKTsKKyAgICB2b2lkIGRpZExvYWRJbnNwZWN0
b3JQYWdlKCk7CiAgICAgdm9pZCBkaWRDbG9zZSgpOwogICAgIHZvaWQgYnJpbmdUb0Zyb250KCk7
CiAgICAgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpOwogCisgICAgYm9v
bCBjYW5BdHRhY2goKTsKKyAgICBib29sIHNob3VsZE9wZW5BdHRhY2hlZCgpOworCiAgICAgc3Rh
dGljIFdlYlBhZ2VHcm91cCogaW5zcGVjdG9yUGFnZUdyb3VwKCk7CiAKICNpZiBQTEFURk9STShX
SU4pCkBAIC0xNTMsNiArMTU3LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBpbml0aWFsV2luZG93V2lkdGggPSA3NTA7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IGluaXRpYWxXaW5kb3dIZWlnaHQgPSA2NTA7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1p
bmltdW1BdHRhY2hlZEhlaWdodCA9IDI1MDsKIAogICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggZDAwNjZmNGU1ZmY2YjYzMTE1Y2M5M2ZkMTQwM2JkZDhhZDQ1NDNk
Ni4uYTE5NDk4NThlMDQzM2Q5ODRmMDdhMTVhOWQyZGJkMTZmNjMyNDhlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMjQsMTEgKzI0LDExIEBACiAKIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvclByb3h5IHsK
ICAgICBDcmVhdGVJbnNwZWN0b3JQYWdlKCkgLT4gKHVpbnQ2NF90IGluc3BlY3RvclBhZ2VJRCwg
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIGluc3BlY3RvclBhZ2VQYXJhbWV0ZXJz
KQotICAgIERpZExvYWRJbnNwZWN0b3JQYWdlKGJvb2wgY2FuU3RhcnRBdHRhY2hlZCkKKyAgICBE
aWRMb2FkSW5zcGVjdG9yUGFnZSgpCiAgICAgRGlkQ2xvc2UoKQogICAgIEJyaW5nVG9Gcm9udCgp
CiAgICAgSW5zcGVjdGVkVVJMQ2hhbmdlZChXVEY6OlN0cmluZyB1cmxTdHJpbmcpCi0gICAgCisK
ICAgICBBdHRhY2goKQogICAgIERldGFjaCgpCiAgICAgU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQo
dW5zaWduZWQgaGVpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2Vm
bC9XZWJJbnNwZWN0b3JFZmwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJJ
bnNwZWN0b3JFZmwuY3BwCmluZGV4IDkzMmYwODM2MjlhYmI3NWQ4N2Q3NWY3NWYzNWQ4ODBhYWU3
OTI0ZTMuLjVmZTIzODhhMDZkMTFkMDFkNmNlZGFkZjcxZTkyZDg3ZTZhOWY1ODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvV2ViSW5zcGVjdG9yRWZsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYkluc3BlY3RvckVmbC5jcHAKQEAgLTY1
LDYgKzY1LDEyIEBAIFN0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yUGFnZVVSTCgp
IGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCit1bnNpZ25lZCBXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtQXR0YWNoKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwCmluZGV4IDU2MzUwY2EzZTU4NDFm
MWY3YjlhNDMzNDVhM2QwZTdlZmYxYTMwNWQuLjdiNjRmZTgwMGIwZGY2MmM0MDQzZjk1NGFiYmEy
YjJiOTI4MWIyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2Vi
SW5zcGVjdG9yR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYklu
c3BlY3Rvckd0ay5jcHAKQEAgLTY2LDYgKzY2LDEyIEBAIFN0cmluZyBXZWJJbnNwZWN0b3JQcm94
eTo6aW5zcGVjdG9yUGFnZVVSTCgpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCit1
bnNpZ25lZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQ
cm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJv
eHlNYWMubW0KaW5kZXggMDQ3MjUwNmM5YWI0ZWU5MTE0Y2U3Y2Q1ZGRhMGNhOGJmYzcwNjBiMC4u
ZjUwYTEyM2YzODZlMTg5NzRlMWU0YTlhOGMzMThhMzkyMmM2ZDUzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCkBAIC0x
MDksNyArMTA5LDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1D
cmVhdGVJbnNwZWN0b3JQYWdlKCkKICAgICByZXR1cm4gdG9JbXBsKG1faW5zcGVjdG9yVmlldy5n
ZXQoKS5wYWdlUmVmKTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVu
KGJvb2wgd2lsbE9wZW5BdHRhY2hlZCkKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
T3BlbigpCiB7CiAgICAgQVNTRVJUKCFtX2luc3BlY3RvcldpbmRvdyk7CiAKQEAgLTEzNSwxMCAr
MTM1LDEyIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbihib29sIHdpbGxP
cGVuQXR0YWNoZWQpCiAgICAgW21faW5zcGVjdG9yVmlldy5nZXQoKSBzZXRBdXRvcmVzaXppbmdN
YXNrOihOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdIZWlnaHRTaXphYmxlKV07CiAgICAgW2Nv
bnRlbnRWaWV3IGFkZFN1YnZpZXc6bV9pbnNwZWN0b3JWaWV3LmdldCgpXTsKIAotICAgIGlmICgh
d2lsbE9wZW5BdHRhY2hlZCkKLSAgICAgICAgW3dpbmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpu
aWxdOwotCiAgICAgbV9pbnNwZWN0b3JXaW5kb3cuYWRvcHROUyh3aW5kb3cpOworCisgICAgaWYg
KG1faXNBdHRhY2hlZCkKKyAgICAgICAgcGxhdGZvcm1BdHRhY2goKTsKKyAgICBlbHNlCisgICAg
ICAgIFt3aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKIH0KIAogdm9pZCBXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1EaWRDbG9zZSgpCkBAIC0xODMsNiArMTg1LDEzIEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZSgpCiAgICAgW2lu
c3BlY3RlZFZpZXcgc2V0RnJhbWU6TlNNYWtlUmVjdChpbnNwZWN0ZWRMZWZ0LCBpbnNwZWN0b3JI
ZWlnaHQsIGluc3BlY3RlZFdpZHRoLCBpbnNwZWN0ZWRUb3AgLSBpbnNwZWN0b3JIZWlnaHQpXTsK
IH0KIAordW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93
SGVpZ2h0KCkKK3sKKyAgICBXS1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBtX3BhZ2UtPndrVmlldygp
OworICAgIE5TUmVjdCBpbnNwZWN0ZWRWaWV3UmVjdCA9IFtpbnNwZWN0ZWRWaWV3IGZyYW1lXTsK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluc3BlY3RlZFZpZXdSZWN0LnNpemUu
aGVpZ2h0KTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQog
ewogICAgIFdLVmlldyAqaW5zcGVjdGVkVmlldyA9IG1fcGFnZS0+d2tWaWV3KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViSW5zcGVjdG9yUHJveHlRdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViSW5zcGVjdG9yUHJveHlRdC5jcHAKaW5k
ZXggYjU3YWE5ZjA1OWVlYTMzMzk2NThiOTkzMWNmOGI4NTBlNDNkZDcwYi4uODAyYTE0MTc4YzIw
ZWFmNDllOTEwMTIwYWNkZjkzNzU3NzZkODBiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1dlYkluc3BlY3RvclByb3h5UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJJbnNwZWN0b3JQcm94eVF0LmNwcApAQCAtMzksNyArMzksNyBAQCBX
ZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBh
Z2UoKQogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bU9wZW4oYm9vbCkKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3BlbigpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTU5LDYgKzU5LDEyIEBAIHZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2go
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCmluZGV4IGU4YTllMWRjZjZkOGIz
ZDY5NDEwMWM4YTA4Zjc1MTQzYmU0NmZlOWIuLmQwOTVjYjAyZWQ2NWU3MTM3ZDlkOTE2MzUzYzU0
OGNmZWYxZDk0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2Vi
SW5zcGVjdG9yUHJveHlXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4v
V2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCkBAIC0xOTgsNyArMTk4LDcgQEAgV2ViUGFnZVByb3h5
KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKICAgICBy
ZXR1cm4gbV9pbnNwZWN0b3JWaWV3LT5wYWdlKCk7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtT3Blbihib29sIHdpbGxPcGVuQXR0YWNoZWQpCit2b2lkIFdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybU9wZW4oKQogewogICAgIHJlZ2lzdGVySW5zcGVjdG9yVmlld1dpbmRv
d0NsYXNzKCk7CiAKQEAgLTIwOCw3ICsyMDgsOSBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybU9wZW4oYm9vbCB3aWxsT3BlbkF0dGFjaGVkKQogCiAgICAgbV9pbnNwZWN0b3JWaWV3
LT5zZXRQYXJlbnRXaW5kb3cobV9pbnNwZWN0b3JXaW5kb3cpOwogCi0gICAgaWYgKCF3aWxsT3Bl
bkF0dGFjaGVkKQorICAgIGlmIChtX2lzQXR0YWNoZWQpCisgICAgICAgIHBsYXRmb3JtQXR0YWNo
KCk7CisgICAgZWxzZQogICAgICAgICA6OlNob3dXaW5kb3cobV9pbnNwZWN0b3JXaW5kb3csIFNX
X1NIT1cpOwogfQogCkBAIC0yNDUsNiArMjQ3LDE2IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmIHVybFN0cmluZykKICAg
ICA6OlNldFdpbmRvd1RleHRXKG1faW5zcGVjdG9yV2luZG93LCB0aXRsZS5jaGFyYWN0ZXJzV2l0
aE51bGxUZXJtaW5hdGlvbigpKTsKIH0KIAordW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkKK3sKKyAgICBIV05EIGluc3BlY3RlZFdpbmRv
dyA9IG1fcGFnZS0+bmF0aXZlV2luZG93KCk7CisKKyAgICBSRUNUIGluc3BlY3RlZFdpbmRvd1Jl
Y3Q7CisgICAgOjpHZXRXaW5kb3dSZWN0KGluc3BlY3RlZFdpbmRvdywgJmluc3BlY3RlZFdpbmRv
d1JlY3QpOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbnNwZWN0ZWRXaW5k
b3dSZWN0LmJvdHRvbSAtIGluc3BlY3RlZFdpbmRvd1JlY3QudG9wKTsKK30KKwogdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQogewogICAgIEhXTkQgd2ViVmlld1dpbmRv
dyA9IG1fcGFnZS0+bmF0aXZlV2luZG93KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDUzYzI1YzcwYmFkNjUzN2NlYzhk
ODYxMTQ5MWIwYTUwMjZkZmI3MGYuLjE2YzNiMzk1OGI5NTM3M2E1MmI2OGRlZmRlYzI3MGUxN2Y5
Yzk4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuY3BwCkBAIC03OCw3ICs3OCw3IEBAIFdlYlBhZ2UqIFdlYkluc3BlY3Rvcjo6Y3Jl
YXRlSW5zcGVjdG9yUGFnZSgpCiAvLyBDYWxsZWQgZnJvbSBXZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudAogdm9pZCBXZWJJbnNwZWN0b3I6OmRpZExvYWRJbnNwZWN0b3JQYWdlKCkKIHsKLSAgICBX
ZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3Bl
Y3RvclByb3h5OjpEaWRMb2FkSW5zcGVjdG9yUGFnZShjYW5BdHRhY2hXaW5kb3coKSksIG1fcGFn
ZS0+cGFnZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkRpZExvYWRJbnNwZWN0b3JQYWdlKCksIG1f
cGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYkluc3BlY3Rvcjo6ZGlkQ2xvc2UoKQpAQCAt
MTgxLDE2ICsxODEsNiBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6c3RvcFBhZ2VQcm9maWxpbmcoKQog
ICAgIC8vIEZJWE1FOiBzaG93IHRoZSBUaW1lbGluZSBwYW5lbC4KIH0KIAotdm9pZCBXZWJJbnNw
ZWN0b3I6OnJlcXVlc3RBdHRhY2hXaW5kb3coKQotewotICAgIG1faW5zcGVjdG9yUGFnZS0+Y29y
ZVBhZ2UoKS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5yZXF1ZXN0QXR0YWNoV2luZG93KCk7Ci19
Ci0KLWJvb2wgV2ViSW5zcGVjdG9yOjpjYW5BdHRhY2hXaW5kb3coKSBjb25zdAotewotICAgIHJl
dHVybiBtX2luc3BlY3RvclBhZ2UtPmNvcmVQYWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+
Y2FuQXR0YWNoV2luZG93KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYg
Ly8gRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuaAppbmRleCBjMTZjZDI4MDQwNDY0MTUzYmRlZmRkZWUxNzFmZWQ2
MjJmYTMzMmY3Li5iNGE3NmI0YmJhMjE1YWUyNWViMjdiZmY0NTNiOTAwYTgzYjllMjZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCkBA
IC01OSw5ICs1OSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEphdmFTY3JpcHRQcm9maWxpbmdF
bmFibGVkKGJvb2wpOwogICAgIHZvaWQgc3RhcnRQYWdlUHJvZmlsaW5nKCk7CiAgICAgdm9pZCBz
dG9wUGFnZVByb2ZpbGluZygpOwotICAgIAotICAgIGJvb2wgY2FuQXR0YWNoV2luZG93KCkgY29u
c3Q7Ci0gICAgdm9pZCByZXF1ZXN0QXR0YWNoV2luZG93KCk7CiAKIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIFdlYkluc3BlY3RvckNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCmluZGV4IDU1
ODJjZTllNjk0Yjg3ODYzNGVmMmRkNDE0OTQ0NDY0OTVkNjI4ZmEuLmRjMTg0YjY4YWNiZWFlNjE5
YjFiNjEyMjFjY2RkNTY1NWI2NGQ3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgpAQCAtMzIsOCAr
MzIsNiBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3IgewogICAgIFN0b3BKYXZhU2NyaXB0UHJv
ZmlsaW5nKCkKICAgICBTdGFydFBhZ2VQcm9maWxpbmcoKQogICAgIFN0b3BQYWdlUHJvZmlsaW5n
KCkKLQotICAgIFJlcXVlc3RBdHRhY2hXaW5kb3coKQogfQogCiAjZW5kaWYK
</data>
<flag name="review"
          id="98544"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>