<?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>105721</bug_id>
          
          <creation_ts>2012-12-24 08:11:55 -0800</creation_ts>
          <short_desc>Web Inspector: [Canvas] report if there is any uninstrumented canvas on a page</short_desc>
          <delta_ts>2012-12-27 05:39:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web 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>1</everconfirmed>
          <reporter name="Andrey Adaikin">aandrey</reporter>
          <assigned_to name="Andrey Adaikin">aandrey</assigned_to>
          <cc>apavlov</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>ossy</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>796979</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-12-24 08:11:55 -0800</bug_when>
    <thetext>Adding a method to the protocol to report if there is any uninstrumented canvas on a page.

Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796980</commentid>
    <comment_count>1</comment_count>
      <attachid>180672</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-12-24 08:17:51 -0800</bug_when>
    <thetext>Created attachment 180672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797124</commentid>
    <comment_count>2</comment_count>
      <attachid>180705</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-12-25 02:23:12 -0800</bug_when>
    <thetext>Created attachment 180705
Added a test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797132</commentid>
    <comment_count>3</comment_count>
      <attachid>180705</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-25 03:53:43 -0800</bug_when>
    <thetext>Comment on attachment 180705
Added a test

Attachment 180705 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15531003

New failing tests:
inspector/profiler/canvas2d/canvas-has-uninstrumented-canvases.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797140</commentid>
    <comment_count>4</comment_count>
      <attachid>180705</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-25 04:55:41 -0800</bug_when>
    <thetext>Comment on attachment 180705
Added a test

Attachment 180705 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15503697

New failing tests:
inspector/profiler/canvas2d/canvas-has-uninstrumented-canvases.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797290</commentid>
    <comment_count>5</comment_count>
      <attachid>180705</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-26 05:46:45 -0800</bug_when>
    <thetext>Comment on attachment 180705
Added a test

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

&gt; Source/WebCore/inspector/Inspector.json:3194
&gt;                  &quot;description&quot;: &quot;Unique object identifier.&quot;

The description should be updated for this type.

&gt; Source/WebCore/inspector/Inspector.json:3243
&gt; +                &quot;name&quot;: &quot;hasUninstrumentedCanvases&quot;,

Add a description?

&gt; Source/WebCore/inspector/InspectorCanvasAgent.cpp:96
&gt; +    ensureHasUninstrumentedCanvasesCalculated();

Why do you need this call in enable method? Can it be done from hasUninstrumentedCanvases request?

&gt; Source/WebCore/inspector/InspectorCanvasAgent.cpp:221
&gt; +void InspectorCanvasAgent::ensureHasUninstrumentedCanvasesCalculated()

ensureHasUninstrumentedCanvasesCalculated -&gt; ensureHasUninstrumentedCanvasesInitialized

&gt; Source/WebCore/inspector/InspectorCanvasAgent.h:100
&gt; +    typedef HashMap&lt;Frame*, bool&gt; FrameToHasUninstrumentedCanvasesResult;

Why do you need to store this map? I think running through all wrappers would be fast enough to do on each hasUninstrumentedCanvases, wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797293</commentid>
    <comment_count>6</comment_count>
      <attachid>180705</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-12-26 05:58:14 -0800</bug_when>
    <thetext>Comment on attachment 180705
Added a test

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

&gt;&gt; Source/WebCore/inspector/InspectorCanvasAgent.cpp:96
&gt;&gt; +    ensureHasUninstrumentedCanvasesCalculated();
&gt; 
&gt; Why do you need this call in enable method? Can it be done from hasUninstrumentedCanvases request?

The initialization has to be done before we start wrapping canvas contexts by the means of this Agent. Thus, at the initialization time, if there is any canvas element, for which the getContext() method has been already called, we say we have a uninstrumented canvas (because it was not wrapped by this Agent). By the time the hasUninstrumentedCanvases is called, we may well have a canvas context wrapped already.

&gt;&gt; Source/WebCore/inspector/InspectorCanvasAgent.h:100
&gt;&gt; +    typedef HashMap&lt;Frame*, bool&gt; FrameToHasUninstrumentedCanvasesResult;
&gt; 
&gt; Why do you need to store this map? I think running through all wrappers would be fast enough to do on each hasUninstrumentedCanvases, wdyt?

We need to save early results (i.e. before we start wrapping canvas contexts by this Agent). The map from a Frame to bool will be needed when we support iframes (exec context ID).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797296</commentid>
    <comment_count>7</comment_count>
      <attachid>180705</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-12-26 06:12:12 -0800</bug_when>
    <thetext>Comment on attachment 180705
Added a test

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

&gt; Source/WebCore/inspector/InspectorCanvasAgent.cpp:118
&gt; +    ensureHasUninstrumentedCanvasesCalculated();

You don&apos;t need this call as you check if the agent is enabled and enable method finds all uninstrumented canvases.

&gt; Source/WebCore/inspector/InspectorCanvasAgent.h:101
&gt; +    FrameToHasUninstrumentedCanvasesResult m_hasUninstrumentedCanvasesResults;

This can be a set FramesWithUninstrumentedCanvases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797477</commentid>
    <comment_count>8</comment_count>
      <attachid>180705</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-12-27 01:57:50 -0800</bug_when>
    <thetext>Comment on attachment 180705
Added a test

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

&gt;&gt; Source/WebCore/inspector/Inspector.json:3194
&gt;&gt;                  &quot;description&quot;: &quot;Unique object identifier.&quot;
&gt; 
&gt; The description should be updated for this type.

Done.

&gt;&gt; Source/WebCore/inspector/Inspector.json:3243
&gt;&gt; +                &quot;name&quot;: &quot;hasUninstrumentedCanvases&quot;,
&gt; 
&gt; Add a description?

Done.

&gt;&gt; Source/WebCore/inspector/InspectorCanvasAgent.cpp:118
&gt;&gt; +    ensureHasUninstrumentedCanvasesCalculated();
&gt; 
&gt; You don&apos;t need this call as you check if the agent is enabled and enable method finds all uninstrumented canvases.

Done.

&gt;&gt; Source/WebCore/inspector/InspectorCanvasAgent.cpp:221
&gt;&gt; +void InspectorCanvasAgent::ensureHasUninstrumentedCanvasesCalculated()
&gt; 
&gt; ensureHasUninstrumentedCanvasesCalculated -&gt; ensureHasUninstrumentedCanvasesInitialized

renamed to findFramesWithUninstrumentedCanvases

&gt;&gt; Source/WebCore/inspector/InspectorCanvasAgent.h:101
&gt;&gt; +    FrameToHasUninstrumentedCanvasesResult m_hasUninstrumentedCanvasesResults;
&gt; 
&gt; This can be a set FramesWithUninstrumentedCanvases.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797483</commentid>
    <comment_count>9</comment_count>
      <attachid>180781</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-12-27 02:16:57 -0800</bug_when>
    <thetext>Created attachment 180781
Patch to land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797501</commentid>
    <comment_count>10</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-12-27 03:50:07 -0800</bug_when>
    <thetext>Committed r138497: &lt;http://trac.webkit.org/changeset/138497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797520</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-12-27 05:14:49 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Committed r138497: &lt;http://trac.webkit.org/changeset/138497&gt;

The new test fails on Qt: http://build.webkit.sed.hu/results/x86-64%20Linux%20Qt%20Release/r138497%20%2846350%29/inspector/profiler/canvas2d/canvas-has-uninstrumented-canvases-diff.txt

 ... maybe on other platforms too, but I won&apos;t check any other platform 
in my xmas holiday. Could you check and fix it, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>797524</commentid>
    <comment_count>12</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-12-27 05:39:48 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Committed r138497: &lt;http://trac.webkit.org/changeset/138497&gt;
&gt; 
&gt; The new test fails on Qt: http://build.webkit.sed.hu/results/x86-64%20Linux%20Qt%20Release/r138497%20%2846350%29/inspector/profiler/canvas2d/canvas-has-uninstrumented-canvases-diff.txt
&gt; 
&gt;  ... maybe on other platforms too, but I won&apos;t check any other platform 
&gt; in my xmas holiday. Could you check and fix it, please?

Committed r138498: &lt;http://trac.webkit.org/changeset/138498&gt;

Sorry, forgot to skip the test on QT.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180672</attachid>
            <date>2012-12-24 08:17:51 -0800</date>
            <delta_ts>2012-12-25 02:23:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105721-20121224201504.patch</filename>
            <type>text/plain</type>
            <size>11511</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJiNWQxNThjMGZiZTcy
NTNhMGY3MDU5NGRmYTIzNzY1Mjk0NDc0YS4uODJjZjE0N2U5OGMyNDMxNThjNzhmOGFmODAzZmNk
OGQ4NGM2ZmMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTEyLTI0ICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtDYW52YXNdIHJlcG9ydCBpZiB0aGVyZSBpcyBhbnkgdW5pbnN0cnVtZW50ZWQgY2FudmFz
IG9uIGEgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA1NzIxCisKKyAgICAgICAgQWRkaW5nIGEgbWV0aG9kIHRvIHRoZSBwcm90b2NvbCB0byBy
ZXBvcnQgaWYgdGhlcmUgaXMgYW55IHVuaW5zdHJ1bWVudGVkIGNhbnZhcyBvbiBhIHBhZ2UuCisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuanM6
CisgICAgICAgICguKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjplbmFibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
Q2FudmFzQWdlbnQ6Omhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmVuc3VyZUhhc1VuaW5zdHJ1bWVu
dGVkQ2FudmFzZXNDYWxjdWxhdGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5zcGVjdG9yQ2FudmFz
QWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKwogMjAxMi0xMi0yNCAgUGV0ZXIgUnliaW4g
IDxwcnliaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEtlZXAgTGl2
ZUVkaXQgQVBJIGRpc2FibGVkIHdoZW4gaWRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLmpzCmluZGV4
IDE5OTRlYmY5NDM2YjllNWIxZjY5OTUzMjI3YjQ1MDlmNDU4MGI1ZDAuLmQ2MWVhMTFjMTg5ZWFh
MmM3MGQ1NjRmZWMzMjkwMzYyY2E1YTUyOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuanMKQEAg
LTEwMTUsNyArMTAxNSwxNSBAQCBmdW5jdGlvbiBSZXBsYXlhYmxlUmVzb3VyY2Uob3JpZ2luYWxS
ZXNvdXJjZSwgZGF0YSkKIAogUmVwbGF5YWJsZVJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge0NhY2hlfSBjYWNoZQorICAgICAqIEByZXR1cm4ge251bWJlcn0K
KyAgICAgKi8KKyAgICBpZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMu
X2RhdGEuaWQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7IUNhY2hlfSBjYWNo
ZQogICAgICAqIEByZXR1cm4geyFSZXNvdXJjZX0KICAgICAgKi8KICAgICByZXBsYXk6IGZ1bmN0
aW9uKGNhY2hlKQpAQCAtMTAyOSw3ICsxMDM3LDcgQEAgUmVwbGF5YWJsZVJlc291cmNlLnByb3Rv
dHlwZSA9IHsKIAogLyoqCiAgKiBAcGFyYW0ge1JlcGxheWFibGVSZXNvdXJjZXwqfSBvYmoKLSAq
IEBwYXJhbSB7Q2FjaGV9IGNhY2hlCisgKiBAcGFyYW0geyFDYWNoZX0gY2FjaGUKICAqIEByZXR1
cm4geyp9CiAgKi8KIFJlcGxheWFibGVSZXNvdXJjZS5yZXBsYXkgPSBmdW5jdGlvbihvYmosIGNh
Y2hlKQpAQCAtMjgyNCw2ICsyODMyLDcgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgdmFyIHN0YWNrVHJhY2UgPSBjYWxsLnN0YWNrVHJhY2UoKTsKICAgICAgICAg
ICAgIHZhciBjYWxsRnJhbWUgPSBzdGFja1RyYWNlID8gc3RhY2tUcmFjZS5jYWxsRnJhbWUoMCkg
fHwge30gOiB7fTsKICAgICAgICAgICAgIHZhciB0cmFjZUxvZ0l0ZW0gPSB7CisgICAgICAgICAg
ICAgICAgY29udGV4dElkOiB0aGlzLl9tYWtlQ29udGV4dElkKGNhbGwucmVzb3VyY2UoKS5pZCgp
KSwKICAgICAgICAgICAgICAgICBzb3VyY2VVUkw6IGNhbGxGcmFtZS5zb3VyY2VVUkwsCiAgICAg
ICAgICAgICAgICAgbGluZU51bWJlcjogY2FsbEZyYW1lLmxpbmVOdW1iZXIsCiAgICAgICAgICAg
ICAgICAgY29sdW1uTnVtYmVyOiBjYWxsRnJhbWUuY29sdW1uTnVtYmVyCkBAIC0yODgxLDYgKzI4
OTAsMTUgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gIntc
ImluamVjdGVkU2NyaXB0SWRcIjoiICsgaW5qZWN0ZWRTY3JpcHRJZCArICIsXCJ0cmFjZUxvZ0lk
XCI6IiArICgrK3RoaXMuX2xhc3RUcmFjZUxvZ0lkKSArICJ9IjsKICAgICB9LAogCisgICAgLyoq
CisgICAgICogQHBhcmFtIHtudW1iZXJ9IHJlc291cmNlSWQKKyAgICAgKiBAcmV0dXJuIHtzdHJp
bmd9CisgICAgICovCisgICAgX21ha2VDb250ZXh0SWQ6IGZ1bmN0aW9uKHJlc291cmNlSWQpCisg
ICAgeworICAgICAgICByZXR1cm4gIntcImluamVjdGVkU2NyaXB0SWRcIjoiICsgaW5qZWN0ZWRT
Y3JpcHRJZCArICIsXCJjYW52YXNDb250ZXh0SWRcIjoiICsgcmVzb3VyY2VJZCArICJ9IjsKKyAg
ICB9LAorCiAgICAgX29uVHJhY2VMb2dQbGF5ZXJSZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAg
ICAgICAgdGhpcy5fcmVwbGF5Q29udGV4dHMgPSBbXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgppbmRleCAzN2EyNGYxNzRiNzc1ZGQ2MGJiYjI4ZWM5NzA0ZTc5ZjczYzRh
MmM4Li45NmIxZDdhM2JmZDA0ZDU0NTIyOTIxNDVhNjQ1ZWE1ZjNlNGRmMWQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0zMTg5LDcgKzMxODksNyBAQAogICAg
ICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgInR5cGVzIjogWwogICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICJpZCI6ICJUcmFjZUxvZ0lkIiwKKyAgICAgICAgICAgICAgICAiaWQi
OiAiQ29udGV4dElkIiwKICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAogICAgICAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgb2JqZWN0IGlkZW50aWZpZXIuIgogICAg
ICAgICAgICAgfSwKQEAgLTMxOTcsNiArMzE5Nyw3IEBACiAgICAgICAgICAgICAgICAgImlkIjog
IkNhbGwiLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAg
ICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29udGV4
dElkIiwgIiRyZWYiOiAiQ29udGV4dElkIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZ1bmN0aW9uTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfSwK
ICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhcmd1bWVudHMiLCAidHlwZSI6ICJhcnJh
eSIsICJpdGVtcyI6IHsgInR5cGUiOiAic3RyaW5nIiB9LCAib3B0aW9uYWwiOiB0cnVlIH0sCiAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvcGVydHkiLCAidHlwZSI6ICJzdHJpbmci
LCAib3B0aW9uYWwiOiB0cnVlIH0sCkBAIC0zMjA4LDYgKzMyMDksMTEgQEAKICAgICAgICAgICAg
ICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJp
ZCI6ICJUcmFjZUxvZ0lkIiwKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAg
ICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgb2JqZWN0IGlkZW50aWZpZXIuIgor
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAiaWQiOiAiVHJh
Y2VMb2ciLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAg
ICAgInByb3BlcnRpZXMiOiBbCkBAIC0zMjM0LDYgKzMyNDAsMTIgQEAKICAgICAgICAgICAgICAg
ICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1l
IjogImhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMiLAorICAgICAgICAgICAgICAgICJyZXR1cm5z
IjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICJ0eXBlIjogImJv
b2xlYW4iIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICJuYW1lIjogImNhcHR1cmVGcmFtZSIsCiAgICAgICAgICAgICAg
ICAgInJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHJhY2VMb2dJ
ZCIsICIkcmVmIjogIlRyYWNlTG9nSWQiIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCmluZGV4IDM5ZGNhMjU1ZGZiNTIwODVlMWFlYmZk
MzMwNGExMzBhZWYyM2JkMmYuLjY5YWY2NjZlNDIwZmNjNzliMGYyYjMzODYxMDY2OGNiNmY0MWQ4
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0Fn
ZW50LmNwcApAQCAtMzQsNiArMzQsMTAgQEAKIAogI2luY2x1ZGUgIkluc3BlY3RvckNhbnZhc0Fn
ZW50LmgiCiAKKyNpbmNsdWRlICJCaW5kaW5nVmlzaXRvcnMuaCIKKyNpbmNsdWRlICJGcmFtZS5o
IgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHQuaCIKICNpbmNsdWRlICJJbmplY3RlZFNjcmlwdENh
bnZhc01vZHVsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgpAQCAtNDIs
NiArNDYsNyBAQAogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCisjaW5jbHVkZSAiU2NyaXB0UHJvZmls
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC04NiwxMiArOTEsMTQgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZW5hYmxlKEVycm9y
U3RyaW5nKikKIHsKICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKENhbnZhc0FnZW50U3RhdGU6OmVu
YWJsZWQsIHRydWUpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9yQ2Fu
dmFzQWdlbnQodGhpcyk7CisgICAgZW5zdXJlSGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc0NhbGN1
bGF0ZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzYWJsZShFcnJvclN0
cmluZyopCiB7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JDYW52YXNB
Z2VudCgwKTsKICAgICBtX3N0YXRlLT5zZXRCb29sZWFuKENhbnZhc0FnZW50U3RhdGU6OmVuYWJs
ZWQsIGZhbHNlKTsKKyAgICBtX2hhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNSZXN1bHRzLmNsZWFy
KCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmRyb3BUcmFjZUxvZyhFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgdHJhY2VMb2dJZCkKQEAgLTEwMSw2ICsx
MDgsMTIgQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZHJvcFRyYWNlTG9nKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJgogICAgICAgICBtb2R1bGUuZHJvcFRyYWNl
TG9nKGVycm9yU3RyaW5nLCB0cmFjZUxvZ0lkKTsKIH0KIAordm9pZCBJbnNwZWN0b3JDYW52YXNB
Z2VudDo6aGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlcyhFcnJvclN0cmluZyosIGJvb2wqIHJlc3Vs
dCkKK3sKKyAgICBlbnN1cmVIYXNVbmluc3RydW1lbnRlZENhbnZhc2VzQ2FsY3VsYXRlZCgpOwor
ICAgICpyZXN1bHQgPSBtX2hhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNSZXN1bHRzLmdldChtX2lu
c3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpKTsKK30KKwogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6Y2FwdHVyZUZyYW1lKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgU3RyaW5nKiB0cmFjZUxv
Z0lkKQogewogICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSA9IG1haW5Xb3JsZFNjcmlwdFN0
YXRlKG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkpOwpAQCAtMTkwLDYgKzIwMyw0OSBAQCBJ
bmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSBJbnNwZWN0b3JDYW52YXNBZ2VudDo6aW5qZWN0ZWRT
Y3JpcHRDYW52YXNNb2R1bGVGb3JUcgogICAgIHJldHVybiBtb2R1bGU7CiB9CiAKK3ZvaWQgSW5z
cGVjdG9yQ2FudmFzQWdlbnQ6OnJlc2V0KCkKK3sKKyAgICBtX2hhc1VuaW5zdHJ1bWVudGVkQ2Fu
dmFzZXNSZXN1bHRzLmNsZWFyKCk7CisgICAgaWYgKG1fc3RhdGUtPmdldEJvb2xlYW4oQ2FudmFz
QWdlbnRTdGF0ZTo6ZW5hYmxlZCkpCisgICAgICAgIGVuc3VyZUhhc1VuaW5zdHJ1bWVudGVkQ2Fu
dmFzZXNDYWxjdWxhdGVkKCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmVuc3Vy
ZUhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNDYWxjdWxhdGVkKCkKK3sKKyAgICBpZiAoIW1faGFz
VW5pbnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisgICAgbV9oYXNVbmluc3RydW1lbnRlZENhbnZhc2VzUmVzdWx0cy5zZXQobV9pbnNwZWN0ZWRQ
YWdlLT5tYWluRnJhbWUoKSwgZmFsc2UpOworCisgICAgY2xhc3MgTm9kZVZpc2l0b3IgOiBwdWJs
aWMgV3JhcHBlZE5vZGVWaXNpdG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIE5vZGVWaXNpdG9y
KFBhZ2UqIHBhZ2UsIEZyYW1lVG9IYXNVbmluc3RydW1lbnRlZENhbnZhc2VzUmVzdWx0JiBoYXNV
bmluc3RydW1lbnRlZENhbnZhc2VzUmVzdWx0cykKKyAgICAgICAgICAgIDogbV9wYWdlKHBhZ2Up
CisgICAgICAgICAgICAsIG1faGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdHMoaGFzVW5p
bnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdHMpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAg
ICAgIHZpcnR1YWwgdm9pZCB2aXNpdE5vZGUoTm9kZSogbm9kZSkgT1ZFUlJJREUKKyAgICAgICAg
eworICAgICAgICAgICAgaWYgKCFub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Y2FudmFzVGFn
KSB8fCAhbm9kZS0+ZG9jdW1lbnQoKSB8fCAhbm9kZS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEZyYW1lKiBm
cmFtZSA9IG5vZGUtPmRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgICAgICAgICBpZiAoZnJhbWUt
PnBhZ2UoKSAhPSBtX3BhZ2UpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAg
ICBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1l
bnQqPihub2RlKTsKKyAgICAgICAgICAgIGlmIChjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSkK
KyAgICAgICAgICAgICAgICBtX2hhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNSZXN1bHRzLnNldChm
cmFtZSwgdHJ1ZSk7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIFBhZ2UqIG1f
cGFnZTsKKyAgICAgICAgRnJhbWVUb0hhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNSZXN1bHQmIG1f
aGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdHM7CisgICAgfSBub2RlVmlzaXRvcihtX2lu
c3BlY3RlZFBhZ2UsIG1faGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdHMpOworCisgICAg
U2NyaXB0UHJvZmlsZXI6OnZpc2l0Tm9kZVdyYXBwZXJzKCZub2RlVmlzaXRvcik7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCmluZGV4IDI2
YjNhNTVjMjUyY2M4ZDg2YjI3NzM2NjlmYWE0NGY0OTllMGUxNDUuLjY4ZGFmZDU4OTIyNmVhNDY3
MDg0M2QwYzE4ODNjNTMwMmVjNjU0NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC0zNywxMiArMzcsMTQgQEAKICNpbmNsdWRlICJJ
bnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclR5cGVCdWlsZGVyLmgiCiAj
aW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBGcmFtZTsKIGNsYXNzIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOwogY2xhc3MgSW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyOwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7CkBAIC02NCw2ICs2Niw5IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAgIHZpcnR1YWwg
dm9pZCByZXN0b3JlKCk7CiAKKyAgICAvLyBDYWxsZWQgZnJvbSBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24KKyAgICB2b2lkIHJlc2V0KCk7CisKICAgICAvLyBDYWxsZWQgZnJvbSBJbnNwZWN0b3JD
YW52YXNJbnN0cnVtZW50YXRpb24KICAgICBTY3JpcHRPYmplY3Qgd3JhcENhbnZhczJEUmVuZGVy
aW5nQ29udGV4dEZvckluc3RydW1lbnRhdGlvbihjb25zdCBTY3JpcHRPYmplY3QmKTsKICNpZiBF
TkFCTEUoV0VCR0wpCkBAIC03NCw2ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
ZW5hYmxlKEVycm9yU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJp
bmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgZHJvcFRyYWNlTG9nKEVycm9yU3RyaW5nKiwgY29uc3Qg
U3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMoRXJy
b3JTdHJpbmcqLCBib29sKik7CiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVGcmFtZShFcnJvclN0
cmluZyosIFN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBzdGFydENhcHR1cmluZyhFcnJvclN0
cmluZyosIFN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wQ2FwdHVyaW5nKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJik7CkBAIC04MywxMSArODksMTQgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICBJbnNwZWN0b3JDYW52YXNBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVj
dG9yU3RhdGUqLCBQYWdlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAKKyAgICB2b2lkIGVu
c3VyZUhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNDYWxjdWxhdGVkKCk7CiAgICAgSW5qZWN0ZWRT
Y3JpcHRDYW52YXNNb2R1bGUgaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVGb3JUcmFjZUxvZ0lk
KEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJik7CiAKICAgICBQYWdlKiBtX2luc3BlY3RlZFBh
Z2U7CiAgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsK
ICAgICBJbnNwZWN0b3JGcm9udGVuZDo6Q2FudmFzKiBtX2Zyb250ZW5kOworICAgIHR5cGVkZWYg
SGFzaE1hcDxGcmFtZSosIGJvb2w+IEZyYW1lVG9IYXNVbmluc3RydW1lbnRlZENhbnZhc2VzUmVz
dWx0OworICAgIEZyYW1lVG9IYXNVbmluc3RydW1lbnRlZENhbnZhc2VzUmVzdWx0IG1faGFzVW5p
bnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uY3BwCmluZGV4IDMzOTM2NmEyYTNiODU4ZGZiMjkwN2NiNDNiYTZkY2Q1OTA2N2YwYTgu
Ljg4ZGI1NGMzNTZmNDFjYWFmMjMyMDllOWMyNjAzZGI0NTBkZTlkMjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBA
IC05MTMsNiArOTEzLDggQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1p
dExvYWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnQKICAgICAgICAgaWYgKElu
c3BlY3RvckxheWVyVHJlZUFnZW50KiBsYXllclRyZWVBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvckxheWVyVHJlZUFnZW50KCkpCiAgICAgICAgICAgICBsYXllclRyZWVBZ2Vu
dC0+cmVzZXQoKTsKICNlbmRpZgorICAgICAgICBpZiAoSW5zcGVjdG9yQ2FudmFzQWdlbnQqIGNh
bnZhc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQ2FudmFzQWdlbnQoKSkK
KyAgICAgICAgICAgIGNhbnZhc0FnZW50LT5yZXNldCgpOwogICAgICAgICBpbnNwZWN0b3JBZ2Vu
dC0+ZGlkQ29tbWl0TG9hZCgpOwogICAgIH0KICAgICBpZiAoSW5zcGVjdG9yUGFnZUFnZW50KiBw
YWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JQYWdlQWdlbnQoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180705</attachid>
            <date>2012-12-25 02:23:12 -0800</date>
            <delta_ts>2012-12-27 01:57:50 -0800</delta_ts>
            <desc>Added a test</desc>
            <filename>bug-105721-20121225142024.patch</filename>
            <type>text/plain</type>
            <size>20324</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIzMWUxYjc2NjIwNDk4
NmVkNzQ2ZjQ0ZTYxMGRkMmRmMzJhZDQxZi4uNTM1ZjRhOGQzOTg1NGZmMmU4ZjdiNTRhYTY2NTk3
YTBlZDY3ZDM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTEyLTI1ICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtDYW52YXNdIHJlcG9ydCBpZiB0aGVyZSBpcyBhbnkgdW5pbnN0cnVtZW50ZWQgY2FudmFz
IG9uIGEgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA1NzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkaW5nIGEgbWV0aG9kIHRvIHRoZSBwcm90b2NvbCB0byByZXBvcnQgaWYgdGhlcmUgaXMg
YW55IHVuaW5zdHJ1bWVudGVkIGNhbnZhcyBvbiBhIHBhZ2UuCisKKyAgICAgICAgVGVzdDogaW5z
cGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVtZW50ZWQtY2FudmFz
ZXMuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxl
U291cmNlLmpzOgorICAgICAgICAoLik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6SW5zcGVjdG9yQ2FudmFzQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmVuYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6aGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlcyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50OjpjYXB0dXJlRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OnN0YXJ0Q2FwdHVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50OjpzdG9wQ2FwdHVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50OjpnZXRUcmFjZUxvZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6cmVwbGF5VHJhY2VMb2cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OmVuc3VyZUhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNDYWxjdWxhdGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpjaGVja0lzRW5hYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVzZXQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChJbnNwZWN0b3JDYW52YXNBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwpOgorCiAyMDEyLTEy
LTI1ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogTWFrZSBJbnNwZWN0b3JTdGF0ZSBpbnN0YW5jZXMgcGVyLWFnZW50LCBj
b3JyZXNwb25kaW5nIHRvIEpTT04gbWFwIGVudHJpZXMgaW4gdGhlIGNvb2tpZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291
cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlU291cmNlLmpzCmluZGV4IDE5OTRlYmY5NDM2YjllNWIxZjY5OTUzMjI3YjQ1MDlmNDU4MGI1
ZDAuLmQ2MWVhMTFjMTg5ZWFhMmM3MGQ1NjRmZWMzMjkwMzYyY2E1YTUyOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJj
ZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNN
b2R1bGVTb3VyY2UuanMKQEAgLTEwMTUsNyArMTAxNSwxNSBAQCBmdW5jdGlvbiBSZXBsYXlhYmxl
UmVzb3VyY2Uob3JpZ2luYWxSZXNvdXJjZSwgZGF0YSkKIAogUmVwbGF5YWJsZVJlc291cmNlLnBy
b3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0NhY2hlfSBjYWNoZQorICAgICAq
IEByZXR1cm4ge251bWJlcn0KKyAgICAgKi8KKyAgICBpZDogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2RhdGEuaWQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7IUNhY2hlfSBjYWNoZQogICAgICAqIEByZXR1cm4geyFSZXNvdXJjZX0KICAgICAgKi8K
ICAgICByZXBsYXk6IGZ1bmN0aW9uKGNhY2hlKQpAQCAtMTAyOSw3ICsxMDM3LDcgQEAgUmVwbGF5
YWJsZVJlc291cmNlLnByb3RvdHlwZSA9IHsKIAogLyoqCiAgKiBAcGFyYW0ge1JlcGxheWFibGVS
ZXNvdXJjZXwqfSBvYmoKLSAqIEBwYXJhbSB7Q2FjaGV9IGNhY2hlCisgKiBAcGFyYW0geyFDYWNo
ZX0gY2FjaGUKICAqIEByZXR1cm4geyp9CiAgKi8KIFJlcGxheWFibGVSZXNvdXJjZS5yZXBsYXkg
PSBmdW5jdGlvbihvYmosIGNhY2hlKQpAQCAtMjgyNCw2ICsyODMyLDcgQEAgSW5qZWN0ZWRTY3Jp
cHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIHN0YWNrVHJhY2UgPSBjYWxsLnN0YWNr
VHJhY2UoKTsKICAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBzdGFja1RyYWNlID8gc3RhY2tU
cmFjZS5jYWxsRnJhbWUoMCkgfHwge30gOiB7fTsKICAgICAgICAgICAgIHZhciB0cmFjZUxvZ0l0
ZW0gPSB7CisgICAgICAgICAgICAgICAgY29udGV4dElkOiB0aGlzLl9tYWtlQ29udGV4dElkKGNh
bGwucmVzb3VyY2UoKS5pZCgpKSwKICAgICAgICAgICAgICAgICBzb3VyY2VVUkw6IGNhbGxGcmFt
ZS5zb3VyY2VVUkwsCiAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogY2FsbEZyYW1lLmxpbmVO
dW1iZXIsCiAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiBjYWxsRnJhbWUuY29sdW1uTnVt
YmVyCkBAIC0yODgxLDYgKzI4OTAsMTUgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewog
ICAgICAgICByZXR1cm4gIntcImluamVjdGVkU2NyaXB0SWRcIjoiICsgaW5qZWN0ZWRTY3JpcHRJ
ZCArICIsXCJ0cmFjZUxvZ0lkXCI6IiArICgrK3RoaXMuX2xhc3RUcmFjZUxvZ0lkKSArICJ9IjsK
ICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHJlc291cmNlSWQKKyAg
ICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAgX21ha2VDb250ZXh0SWQ6IGZ1bmN0
aW9uKHJlc291cmNlSWQpCisgICAgeworICAgICAgICByZXR1cm4gIntcImluamVjdGVkU2NyaXB0
SWRcIjoiICsgaW5qZWN0ZWRTY3JpcHRJZCArICIsXCJjYW52YXNDb250ZXh0SWRcIjoiICsgcmVz
b3VyY2VJZCArICJ9IjsKKyAgICB9LAorCiAgICAgX29uVHJhY2VMb2dQbGF5ZXJSZXNldDogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVwbGF5Q29udGV4dHMgPSBbXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCAzN2EyNGYxNzRiNzc1ZGQ2MGJi
YjI4ZWM5NzA0ZTc5ZjczYzRhMmM4Li45NmIxZDdhM2JmZDA0ZDU0NTIyOTIxNDVhNjQ1ZWE1ZjNl
NGRmMWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0zMTg5
LDcgKzMxODksNyBAQAogICAgICAgICAiaGlkZGVuIjogdHJ1ZSwKICAgICAgICAgInR5cGVzIjog
WwogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJpZCI6ICJUcmFjZUxvZ0lkIiwKKyAg
ICAgICAgICAgICAgICAiaWQiOiAiQ29udGV4dElkIiwKICAgICAgICAgICAgICAgICAidHlwZSI6
ICJzdHJpbmciLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgb2JqZWN0
IGlkZW50aWZpZXIuIgogICAgICAgICAgICAgfSwKQEAgLTMxOTcsNiArMzE5Nyw3IEBACiAgICAg
ICAgICAgICAgICAgImlkIjogIkNhbGwiLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVj
dCIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiY29udGV4dElkIiwgIiRyZWYiOiAiQ29udGV4dElkIiB9LAogICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImZ1bmN0aW9uTmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJv
cHRpb25hbCI6IHRydWUgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhcmd1bWVu
dHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgInR5cGUiOiAic3RyaW5nIiB9LCAib3B0
aW9uYWwiOiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvcGVydHki
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlIH0sCkBAIC0zMjA4LDYgKzMyMDks
MTEgQEAKICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICJpZCI6ICJUcmFjZUxvZ0lkIiwKKyAgICAgICAgICAgICAgICAidHlw
ZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgb2Jq
ZWN0IGlkZW50aWZpZXIuIgorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAg
ICAgICAgICAiaWQiOiAiVHJhY2VMb2ciLAogICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVj
dCIsCiAgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCkBAIC0zMjM0LDYgKzMyNDAsMTIg
QEAKICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICJuYW1lIjogImhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMiLAorICAgICAg
ICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJl
c3VsdCIsICJ0eXBlIjogImJvb2xlYW4iIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImNhcHR1cmVGcmFt
ZSIsCiAgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidHJhY2VMb2dJZCIsICIkcmVmIjogIlRyYWNlTG9nSWQiIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCmluZGV4IDUzNDc1
MzM1YTE3ZmVlN2Q2MTc3YjE4ODg2MWM2ODY0NTAxNmY5M2EuLmVmODNiNGRhODdlNzY1YTU3OGYy
MWY1MWVhMDBmNzVhZGM5NjhmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNhbnZhc0FnZW50LmNwcApAQCAtMzQsNiArMzQsMTAgQEAKIAogI2luY2x1ZGUg
Ikluc3BlY3RvckNhbnZhc0FnZW50LmgiCiAKKyNpbmNsdWRlICJCaW5kaW5nVmlzaXRvcnMuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHQuaCIKICNpbmNsdWRl
ICJJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0
TWFuYWdlci5oIgpAQCAtNDIsNiArNDYsNyBAQAogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2Vu
dHMuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCisjaW5j
bHVkZSAiU2NyaXB0UHJvZmlsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC01NSw2ICs2MCw3IEBAIEluc3BlY3RvckNhbnZhc0FnZW50OjpJ
bnNwZWN0b3JDYW52YXNBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdl
CiAgICAgLCBtX2luc3BlY3RlZFBhZ2UocGFnZSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5h
Z2VyKGluamVjdGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkKKyAgICAsIG1f
ZW5hYmxlZChmYWxzZSkKIHsKIH0KIApAQCAtODQsMTQgKzkwLDE4IEBAIHZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OnJlc3RvcmUoKQogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjplbmFi
bGUoRXJyb3JTdHJpbmcqKQogewotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oQ2FudmFzQWdlbnRT
dGF0ZTo6Y2FudmFzQWdlbnRFbmFibGVkLCB0cnVlKTsKKyAgICBtX2VuYWJsZWQgPSB0cnVlOwor
ICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oQ2FudmFzQWdlbnRTdGF0ZTo6Y2FudmFzQWdlbnRFbmFi
bGVkLCBtX2VuYWJsZWQpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0SW5zcGVjdG9y
Q2FudmFzQWdlbnQodGhpcyk7CisgICAgZW5zdXJlSGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc0Nh
bGN1bGF0ZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzYWJsZShFcnJv
clN0cmluZyopCiB7CisgICAgbV9lbmFibGVkID0gZmFsc2U7CisgICAgbV9zdGF0ZS0+c2V0Qm9v
bGVhbihDYW52YXNBZ2VudFN0YXRlOjpjYW52YXNBZ2VudEVuYWJsZWQsIG1fZW5hYmxlZCk7CiAg
ICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JDYW52YXNBZ2VudCgwKTsKLSAg
ICBtX3N0YXRlLT5zZXRCb29sZWFuKENhbnZhc0FnZW50U3RhdGU6OmNhbnZhc0FnZW50RW5hYmxl
ZCwgZmFsc2UpOworICAgIG1faGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdHMuY2xlYXIo
KTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZHJvcFRyYWNlTG9nKEVycm9yU3Ry
aW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB0cmFjZUxvZ0lkKQpAQCAtMTAxLDggKzEx
MSwxOCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50Ojpkcm9wVHJhY2VMb2coRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmCiAgICAgICAgIG1vZHVsZS5kcm9wVHJhY2VM
b2coZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQpOwogfQogCit2b2lkIEluc3BlY3RvckNhbnZhc0Fn
ZW50OjpoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
Ym9vbCogcmVzdWx0KQoreworICAgIGlmICghY2hlY2tJc0VuYWJsZWQoZXJyb3JTdHJpbmcpKQor
ICAgICAgICByZXR1cm47CisgICAgZW5zdXJlSGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc0NhbGN1
bGF0ZWQoKTsKKyAgICAqcmVzdWx0ID0gbV9oYXNVbmluc3RydW1lbnRlZENhbnZhc2VzUmVzdWx0
cy5nZXQobV9pbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKSk7Cit9CisKIHZvaWQgSW5zcGVjdG9y
Q2FudmFzQWdlbnQ6OmNhcHR1cmVGcmFtZShFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIFN0cmlu
ZyogdHJhY2VMb2dJZCkKIHsKKyAgICBpZiAoIWNoZWNrSXNFbmFibGVkKGVycm9yU3RyaW5nKSkK
KyAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSA9IG1haW5Xb3Js
ZFNjcmlwdFN0YXRlKG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkpOwogICAgIEluamVjdGVk
U2NyaXB0Q2FudmFzTW9kdWxlIG1vZHVsZSA9IEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjpt
b2R1bGVGb3JTdGF0ZShtX2luamVjdGVkU2NyaXB0TWFuYWdlciwgc2NyaXB0U3RhdGUpOwogICAg
IGlmIChtb2R1bGUuaGFzTm9WYWx1ZSgpKSB7CkBAIC0xMTQsNiArMTM0LDggQEAgdm9pZCBJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6Y2FwdHVyZUZyYW1lKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
U3RyaW5nKiB0cmFjZUwKIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6c3RhcnRDYXB0dXJp
bmcoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBTdHJpbmcqIHRyYWNlTG9nSWQpCiB7CisgICAg
aWYgKCFjaGVja0lzRW5hYmxlZChlcnJvclN0cmluZykpCisgICAgICAgIHJldHVybjsKICAgICBT
Y3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBtYWluV29ybGRTY3JpcHRTdGF0ZShtX2luc3BlY3Rl
ZFBhZ2UtPm1haW5GcmFtZSgpKTsKICAgICBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSBtb2R1
bGUgPSBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZTo6bW9kdWxlRm9yU3RhdGUobV9pbmplY3Rl
ZFNjcmlwdE1hbmFnZXIsIHNjcmlwdFN0YXRlKTsKICAgICBpZiAobW9kdWxlLmhhc05vVmFsdWUo
KSkgewpAQCAtMTI1LDYgKzE0Nyw4IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnN0YXJ0
Q2FwdHVyaW5nKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgU3RyaW5nKiB0cmFjCiAKIHZvaWQg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnN0b3BDYXB0dXJpbmcoRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRyYWNlTG9nSWQpCiB7CisgICAgaWYgKCFjaGVja0lzRW5hYmxl
ZChlcnJvclN0cmluZykpCisgICAgICAgIHJldHVybjsKICAgICBJbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZSBtb2R1bGUgPSBpbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZUZvclRyYWNlTG9nSWQo
ZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQpOwogICAgIGlmICghbW9kdWxlLmhhc05vVmFsdWUoKSkK
ICAgICAgICAgbW9kdWxlLnN0b3BDYXB0dXJpbmcoZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQpOwpA
QCAtMTMyLDYgKzE1Niw4IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnN0b3BDYXB0dXJp
bmcoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmCiAKIHZvaWQgSW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OmdldFRyYWNlTG9nKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW5nJiB0cmFjZUxvZ0lkLCBjb25zdCBpbnQqIHN0YXJ0T2Zmc2V0LCBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OkNhbnZhczo6VHJhY2VMb2c+JiB0cmFjZUxvZykKIHsKKyAgICBpZiAoIWNoZWNr
SXNFbmFibGVkKGVycm9yU3RyaW5nKSkKKyAgICAgICAgcmV0dXJuOwogICAgIEluamVjdGVkU2Ny
aXB0Q2FudmFzTW9kdWxlIG1vZHVsZSA9IGluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlRm9yVHJh
Y2VMb2dJZChlcnJvclN0cmluZywgdHJhY2VMb2dJZCk7CiAgICAgaWYgKCFtb2R1bGUuaGFzTm9W
YWx1ZSgpKQogICAgICAgICBtb2R1bGUudHJhY2VMb2coZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQs
IHN0YXJ0T2Zmc2V0LCAmdHJhY2VMb2cpOwpAQCAtMTM5LDYgKzE2NSw4IEBAIHZvaWQgSW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OmdldFRyYWNlTG9nKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29u
c3QgU3RyaW5nJiB0CiAKIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlcGxheVRyYWNlTG9n
KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB0cmFjZUxvZ0lkLCBpbnQg
c3RlcE5vLCBTdHJpbmcqIHJlc3VsdCkKIHsKKyAgICBpZiAoIWNoZWNrSXNFbmFibGVkKGVycm9y
U3RyaW5nKSkKKyAgICAgICAgcmV0dXJuOwogICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxl
IG1vZHVsZSA9IGluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlRm9yVHJhY2VMb2dJZChlcnJvclN0
cmluZywgdHJhY2VMb2dJZCk7CiAgICAgaWYgKCFtb2R1bGUuaGFzTm9WYWx1ZSgpKQogICAgICAg
ICBtb2R1bGUucmVwbGF5VHJhY2VMb2coZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQsIHN0ZXBObywg
cmVzdWx0KTsKQEAgLTE5MCw2ICsyMTgsNTcgQEAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUg
SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlRm9yVHIKICAg
ICByZXR1cm4gbW9kdWxlOwogfQogCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjplbnN1cmVI
YXNVbmluc3RydW1lbnRlZENhbnZhc2VzQ2FsY3VsYXRlZCgpCit7CisgICAgaWYgKCFtX2hhc1Vu
aW5zdHJ1bWVudGVkQ2FudmFzZXNSZXN1bHRzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIG1faGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdHMuc2V0KG1faW5zcGVjdGVkUGFn
ZS0+bWFpbkZyYW1lKCksIGZhbHNlKTsKKworICAgIGNsYXNzIE5vZGVWaXNpdG9yIDogcHVibGlj
IFdyYXBwZWROb2RlVmlzaXRvciB7CisgICAgcHVibGljOgorICAgICAgICBOb2RlVmlzaXRvcihQ
YWdlKiBwYWdlLCBGcmFtZVRvSGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdCYgaGFzVW5p
bnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdHMpCisgICAgICAgICAgICA6IG1fcGFnZShwYWdlKQor
ICAgICAgICAgICAgLCBtX2hhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNSZXN1bHRzKGhhc1VuaW5z
dHJ1bWVudGVkQ2FudmFzZXNSZXN1bHRzKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICB2aXJ0dWFsIHZvaWQgdmlzaXROb2RlKE5vZGUqIG5vZGUpIE9WRVJSSURFCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICghbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmNhbnZhc1RhZykg
fHwgIW5vZGUtPmRvY3VtZW50KCkgfHwgIW5vZGUtPmRvY3VtZW50KCktPmZyYW1lKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgCisgICAgICAgICAgICBGcmFtZSogZnJh
bWUgPSBub2RlLT5kb2N1bWVudCgpLT5mcmFtZSgpOworICAgICAgICAgICAgaWYgKGZyYW1lLT5w
YWdlKCkgIT0gbV9wYWdlKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
SFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50
Kj4obm9kZSk7CisgICAgICAgICAgICBpZiAoY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCkpCisg
ICAgICAgICAgICAgICAgbV9oYXNVbmluc3RydW1lbnRlZENhbnZhc2VzUmVzdWx0cy5zZXQoZnJh
bWUsIHRydWUpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBQYWdlKiBtX3Bh
Z2U7CisgICAgICAgIEZyYW1lVG9IYXNVbmluc3RydW1lbnRlZENhbnZhc2VzUmVzdWx0JiBtX2hh
c1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNSZXN1bHRzOworICAgIH0gbm9kZVZpc2l0b3IobV9pbnNw
ZWN0ZWRQYWdlLCBtX2hhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNSZXN1bHRzKTsKKworICAgIFNj
cmlwdFByb2ZpbGVyOjp2aXNpdE5vZGVXcmFwcGVycygmbm9kZVZpc2l0b3IpOworfQorCitib29s
IEluc3BlY3RvckNhbnZhc0FnZW50OjpjaGVja0lzRW5hYmxlZChFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcpIGNvbnN0Cit7CisgICAgaWYgKG1fZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgKmVycm9yU3RyaW5nID0gIkNhbnZhcyBhZ2VudCBpcyBub3QgZW5hYmxlZCI7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpyZXNldCgpCit7
CisgICAgbV9oYXNVbmluc3RydW1lbnRlZENhbnZhc2VzUmVzdWx0cy5jbGVhcigpOworICAgIGlm
IChtX2VuYWJsZWQpCisgICAgICAgIGVuc3VyZUhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNDYWxj
dWxhdGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52
YXNBZ2VudC5oCmluZGV4IDBmNWNhOTg3MWM5MzIxMDYxMGY2YWVkNGUwOWNlYmQxZjQ1NTY5ZTYu
Ljc3MTI3NDg0OGE1MTY2NmQ3YWRjOGIyZjljMTM3NThhMzNjOWZkZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCkBAIC0zNywxMiArMzcs
MTQgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
clR5cGVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBGcmFtZTsKIGNsYXNzIEluamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlOwogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogY2xhc3MgSW5zcGVjdG9yU3RhdGU7
CkBAIC02NCw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJGcm9udGVu
ZCgpOwogICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CiAKKyAgICAvLyBDYWxsZWQgZnJvbSBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24KKyAgICB2b2lkIHJlc2V0KCk7CisKICAgICAvLyBDYWxs
ZWQgZnJvbSBJbnNwZWN0b3JDYW52YXNJbnN0cnVtZW50YXRpb24KICAgICBTY3JpcHRPYmplY3Qg
d3JhcENhbnZhczJEUmVuZGVyaW5nQ29udGV4dEZvckluc3RydW1lbnRhdGlvbihjb25zdCBTY3Jp
cHRPYmplY3QmKTsKICNpZiBFTkFCTEUoV0VCR0wpCkBAIC03NCw2ICs3OSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lk
IGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFsIHZvaWQgZHJvcFRyYWNlTG9nKEVy
cm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGhhc1VuaW5zdHJ1
bWVudGVkQ2FudmFzZXMoRXJyb3JTdHJpbmcqLCBib29sKik7CiAgICAgdmlydHVhbCB2b2lkIGNh
cHR1cmVGcmFtZShFcnJvclN0cmluZyosIFN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBzdGFy
dENhcHR1cmluZyhFcnJvclN0cmluZyosIFN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBzdG9w
Q2FwdHVyaW5nKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJik7CkBAIC04NCwxMCArOTAsMTUg
QEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3JDYW52YXNBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRz
KiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBQYWdlKiwgSW5qZWN0ZWRTY3JpcHRNYW5hZ2Vy
Kik7CiAKICAgICBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSBpbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZUZvclRyYWNlTG9nSWQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2
b2lkIGVuc3VyZUhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNDYWxjdWxhdGVkKCk7CisgICAgYm9v
bCBjaGVja0lzRW5hYmxlZChFcnJvclN0cmluZyopIGNvbnN0OwogCiAgICAgUGFnZSogbV9pbnNw
ZWN0ZWRQYWdlOwogICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNjcmlwdE1h
bmFnZXI7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OkNhbnZhcyogbV9mcm9udGVuZDsKKyAgICBi
b29sIG1fZW5hYmxlZDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8RnJhbWUqLCBib29sPiBGcmFtZVRv
SGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc1Jlc3VsdDsKKyAgICBGcmFtZVRvSGFzVW5pbnN0cnVt
ZW50ZWRDYW52YXNlc1Jlc3VsdCBtX2hhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNSZXN1bHRzOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCAzMzkzNjZhMmEzYjg1
OGRmYjI5MDdjYjQzYmE2ZGNkNTkwNjdmMGE4Li44OGRiNTRjMzU2ZjQxY2FhZjIzMjA5ZTljMjYw
M2RiNDUwZGU5ZDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtOTEzLDYgKzkxMyw4IEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50CiAgICAgICAgIGlmIChJbnNwZWN0b3JMYXllclRyZWVBZ2VudCogbGF5ZXJU
cmVlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JMYXllclRyZWVBZ2VudCgp
KQogICAgICAgICAgICAgbGF5ZXJUcmVlQWdlbnQtPnJlc2V0KCk7CiAjZW5kaWYKKyAgICAgICAg
aWYgKEluc3BlY3RvckNhbnZhc0FnZW50KiBjYW52YXNBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvckNhbnZhc0FnZW50KCkpCisgICAgICAgICAgICBjYW52YXNBZ2VudC0+cmVz
ZXQoKTsKICAgICAgICAgaW5zcGVjdG9yQWdlbnQtPmRpZENvbW1pdExvYWQoKTsKICAgICB9CiAg
ICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmFmMmFiNzc2MGY1NzBlZTE3ZjMxYThk
NTcyNjU2NTlhOWViODZjYS4uZDE3MGVkNjRkYmIwYzQxOWI2M2Q5YTdhYjAxMGMzOGUzNzBlNDBj
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTEyLTI1ICBBbmRyZXkgQWRhaWtpbiAgPGFh
bmRyZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtDYW52YXNdIHJl
cG9ydCBpZiB0aGVyZSBpcyBhbnkgdW5pbnN0cnVtZW50ZWQgY2FudmFzIG9uIGEgcGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NzIxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
cHJvZmlsZXIvY2FudmFzLXByb2ZpbGVyLXRlc3QuanM6CisgICAgICAgIChpbml0aWFsaXplX0Nh
bnZhc1dlYkdMUHJvZmlsZXJUZXN0Lkluc3BlY3RvclRlc3QuZW5hYmxlQ2FudmFzQWdlbnQpOgor
ICAgICAgICAoaW5pdGlhbGl6ZV9DYW52YXNXZWJHTFByb2ZpbGVyVGVzdC5JbnNwZWN0b3JUZXN0
LmRpc2FibGVDYW52YXNBZ2VudCk6CisgICAgICAgIChpbml0aWFsaXplX0NhbnZhc1dlYkdMUHJv
ZmlsZXJUZXN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFz
LWhhcy11bmluc3RydW1lbnRlZC1jYW52YXNlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMtaGFzLXVuaW5zdHJ1bWVudGVk
LWNhbnZhc2VzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTI0ICBUYWthc2hpIFNha2Ftb3RvICA8
dGFzYWtAZ29vZ2xlLmNvbT4KIAogICAgICAgICA6OmZpcnN0LWxldHRlciB7IG92ZXJmbG93OiAt
d2Via2l0LXBhZ2VkLXkgfSBjYXVzZXMgY3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9jYW52YXMtcHJvZmlsZXItdGVzdC5qcyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9wcm9maWxlci9jYW52YXMtcHJvZmlsZXItdGVzdC5qcwppbmRleCAxM2Y0NDY4NGE5
ODFlNjNkZWM5ZWZhNzAxOGU5NzI4NzA2NzQ5ZjVjLi43MmRhMjJhNjQzZGQ4ZWY1M2QwZmNmNmRl
OTM0MzRmYzdiYmQwYmZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmls
ZXIvY2FudmFzLXByb2ZpbGVyLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2NhbnZhcy1wcm9maWxlci10ZXN0LmpzCkBAIC0xNCw3ICsxNCwyNiBAQCBJbnNwZWN0
b3JUZXN0LmVuYWJsZUNhbnZhc0FnZW50ID0gZnVuY3Rpb24oY2FsbGJhY2spCiAgICAgdHJ5IHsK
ICAgICAgICAgQ2FudmFzQWdlbnQuZW5hYmxlKGNhbnZhc0FnZW50RW5hYmxlZCk7CiAgICAgfSBj
YXRjaCAoZSkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXhjZXB0aW9uIHdo
aWxlIGVuYWJsaW5nIENhbnZhc0FnZW50IiwgZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJFeGNlcHRpb24gd2hpbGUgZW5hYmxpbmcgQ2FudmFzQWdlbnQ6ICIgKyBlKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9OworCitJbnNwZWN0
b3JUZXN0LmRpc2FibGVDYW52YXNBZ2VudCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQoreworICAgIGZ1
bmN0aW9uIGNhbnZhc0FnZW50RGlzYWJsZWQoZXJyb3IpCisgICAgeworICAgICAgICBpZiAoIWVy
cm9yKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zYWZlV3JhcChjYWxsYmFjaykoKTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRkFJTEVE
IHRvIGRpc2FibGUgQ2FudmFzQWdlbnQ6ICIgKyBlcnJvcik7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICB9CisgICAgfQorICAgIHRyeSB7CisgICAg
ICAgIENhbnZhc0FnZW50LmRpc2FibGUoY2FudmFzQWdlbnREaXNhYmxlZCk7CisgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRXhjZXB0aW9uIHdoaWxl
IGRpc2FibGluZyBDYW52YXNBZ2VudDogIiArIGUpOwogICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwogICAgIH0KIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLWhhcy11bmluc3RydW1lbnRlZC1jYW52YXNlcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2Fu
dmFzLWhhcy11bmluc3RydW1lbnRlZC1jYW52YXNlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGIxZDc3MDNjYjMxYmU5OTQ4ZjhjMmNlYzUzODI4MjEzZWNmNWIyOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMtaGFzLXVu
aW5zdHJ1bWVudGVkLWNhbnZhc2VzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3Rz
IENhbnZhcyBoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzIHByb3RvY29sIG1ldGhvZC4KKworQnVn
IDEwNTcyMQoraGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlczogZmFsc2UKK2hhc1VuaW5zdHJ1bWVu
dGVkQ2FudmFzZXM6IHRydWUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3By
b2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVtZW50ZWQtY2FudmFzZXMuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMtaGFzLXVuaW5z
dHJ1bWVudGVkLWNhbnZhc2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGEyNmE4NmE2MjBkZWUzN2YyNjM5
MWRjMDU1N2MzOWQ1NzQ0N2E2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMtaGFzLXVuaW5zdHJ1bWVudGVkLWNhbnZhc2Vz
Lmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi9jYW52YXMtcHJvZmlsZXItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorCit2YXIgY2FudmFzOworCitmdW5jdGlvbiBjcmVhdGVDYW52YXNFbGVtZW50
KCkKK3sKKyAgICBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKKyAg
ICBjb25zb2xlLmFzc2VydChjYW52YXMsICJGYWlsZWQgdG8gY3JlYXRlIGEgY2FudmFzIGVsZW1l
bnQiKTsKK30KKworZnVuY3Rpb24gZ2V0Q2FudmFzQ29udGV4dCgpCit7CisgICAgdmFyIGNvbnRl
eHQgPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICBjb25zb2xlLmFzc2VydChjb250ZXh0
LCAiRmFpbGVkIHRvIGNyZWF0ZSBhIGNhbnZhcyBjb250ZXh0Iik7Cit9CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImNyZWF0ZUNhbnZh
c0VsZW1lbnQoKSIsIHN0ZXAxKTsKKyAgICBmdW5jdGlvbiBzdGVwMSgpCisgICAgeworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmVuYWJsZUNhbnZhc0FnZW50KHN0ZXAyKTsKKyAgICB9CisgICAgZnVu
Y3Rpb24gc3RlcDIoKQorICAgIHsKKyAgICAgICAgQ2FudmFzQWdlbnQuaGFzVW5pbnN0cnVtZW50
ZWRDYW52YXNlcyhoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzQ2FsbGJhY2sxKTsKKyAgICB9Cisg
ICAgZnVuY3Rpb24gaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc0NhbGxiYWNrMShlcnJvciwgcmVz
dWx0KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImhhc1VuaW5zdHJ1
bWVudGVkQ2FudmFzZXM6ICIgKyByZXN1bHQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dFRydWUoIWVycm9yLCAiVW5leHBlY3RlZCBlcnJvciIpOworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydEVxdWFscyhmYWxzZSwgcmVzdWx0LCAiVGhlcmUgc2hvdWxkIGJlIG5vIHVuaW5zdHJ1
bWVudGVkIGNhbnZhc2VzIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuZGlzYWJsZUNhbnZhc0Fn
ZW50KHN0ZXAzKTsKKyAgICB9CisgICAgZnVuY3Rpb24gc3RlcDMoKQorICAgIHsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluQ29uc29sZSgiZ2V0Q2FudmFzQ29udGV4dCgpIiwgc3Rl
cDQpOworICAgIH0KKyAgICBmdW5jdGlvbiBzdGVwNCgpCisgICAgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmVuYWJsZUNhbnZhc0FnZW50KHN0ZXA1KTsKKyAgICB9CisgICAgZnVuY3Rpb24gc3Rl
cDUoKQorICAgIHsKKyAgICAgICAgQ2FudmFzQWdlbnQuaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNl
cyhoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzQ2FsbGJhY2syKTsKKyAgICB9CisgICAgZnVuY3Rp
b24gaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc0NhbGxiYWNrMihlcnJvciwgcmVzdWx0KQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImhhc1VuaW5zdHJ1bWVudGVkQ2Fu
dmFzZXM6ICIgKyByZXN1bHQpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUoIWVy
cm9yLCAiVW5leHBlY3RlZCBlcnJvciIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscyh0cnVlLCByZXN1bHQsICJUaGVyZSBpcyBhbiB1bmluc3RydW1lbnRlZCBjYW52YXMhIik7
CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorCis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgQ2Fu
dmFzIGhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMgcHJvdG9jb2wgbWV0aG9kLgorPC9wPgorPGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTcyMSI+QnVn
IDEwNTcyMTwvYT4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="198067"
          type_id="1"
          status="+"
          setter="yurys"
    />
    <flag name="commit-queue"
          id="198068"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180781</attachid>
            <date>2012-12-27 02:16:57 -0800</date>
            <delta_ts>2012-12-27 02:17:18 -0800</delta_ts>
            <desc>Patch to land</desc>
            <filename>bug-105721-20121227141408.patch</filename>
            <type>text/plain</type>
            <size>23347</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4NDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGIzMWUxYjc2NjIwNDk4
NmVkNzQ2ZjQ0ZTYxMGRkMmRmMzJhZDQxZi4uNTM1ZjRhOGQzOTg1NGZmMmU4ZjdiNTRhYTY2NTk3
YTBlZDY3ZDM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTEyLTI1ICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtDYW52YXNdIHJlcG9ydCBpZiB0aGVyZSBpcyBhbnkgdW5pbnN0cnVtZW50ZWQgY2FudmFz
IG9uIGEgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA1NzIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkaW5nIGEgbWV0aG9kIHRvIHRoZSBwcm90b2NvbCB0byByZXBvcnQgaWYgdGhlcmUgaXMg
YW55IHVuaW5zdHJ1bWVudGVkIGNhbnZhcyBvbiBhIHBhZ2UuCisKKyAgICAgICAgVGVzdDogaW5z
cGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVtZW50ZWQtY2FudmFz
ZXMuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxl
U291cmNlLmpzOgorICAgICAgICAoLik6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6SW5zcGVjdG9yQ2FudmFzQWdlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmVuYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6ZGlzYWJsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6aGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlcyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50OjpjYXB0dXJlRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OnN0YXJ0Q2FwdHVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50OjpzdG9wQ2FwdHVyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50OjpnZXRUcmFjZUxvZyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2Vu
dDo6cmVwbGF5VHJhY2VMb2cpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OmVuc3VyZUhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNDYWxjdWxhdGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpjaGVja0lzRW5hYmxlZCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDYW52YXNBZ2VudDo6cmVzZXQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChJbnNwZWN0b3JDYW52YXNBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwpOgorCiAyMDEyLTEy
LTI1ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogTWFrZSBJbnNwZWN0b3JTdGF0ZSBpbnN0YW5jZXMgcGVyLWFnZW50LCBj
b3JyZXNwb25kaW5nIHRvIEpTT04gbWFwIGVudHJpZXMgaW4gdGhlIGNvb2tpZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291
cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlU291cmNlLmpzCmluZGV4IDE5OTRlYmY5NDM2YjllNWIxZjY5OTUzMjI3YjQ1MDlmNDU4MGI1
ZDAuLmQ2MWVhMTFjMTg5ZWFhMmM3MGQ1NjRmZWMzMjkwMzYyY2E1YTUyOWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJj
ZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNN
b2R1bGVTb3VyY2UuanMKQEAgLTEwMTUsNyArMTAxNSwxNSBAQCBmdW5jdGlvbiBSZXBsYXlhYmxl
UmVzb3VyY2Uob3JpZ2luYWxSZXNvdXJjZSwgZGF0YSkKIAogUmVwbGF5YWJsZVJlc291cmNlLnBy
b3RvdHlwZSA9IHsKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0NhY2hlfSBjYWNoZQorICAgICAq
IEByZXR1cm4ge251bWJlcn0KKyAgICAgKi8KKyAgICBpZDogZnVuY3Rpb24oKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2RhdGEuaWQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBw
YXJhbSB7IUNhY2hlfSBjYWNoZQogICAgICAqIEByZXR1cm4geyFSZXNvdXJjZX0KICAgICAgKi8K
ICAgICByZXBsYXk6IGZ1bmN0aW9uKGNhY2hlKQpAQCAtMTAyOSw3ICsxMDM3LDcgQEAgUmVwbGF5
YWJsZVJlc291cmNlLnByb3RvdHlwZSA9IHsKIAogLyoqCiAgKiBAcGFyYW0ge1JlcGxheWFibGVS
ZXNvdXJjZXwqfSBvYmoKLSAqIEBwYXJhbSB7Q2FjaGV9IGNhY2hlCisgKiBAcGFyYW0geyFDYWNo
ZX0gY2FjaGUKICAqIEByZXR1cm4geyp9CiAgKi8KIFJlcGxheWFibGVSZXNvdXJjZS5yZXBsYXkg
PSBmdW5jdGlvbihvYmosIGNhY2hlKQpAQCAtMjgyNCw2ICsyODMyLDcgQEAgSW5qZWN0ZWRTY3Jp
cHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgdmFyIHN0YWNrVHJhY2UgPSBjYWxsLnN0YWNr
VHJhY2UoKTsKICAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBzdGFja1RyYWNlID8gc3RhY2tU
cmFjZS5jYWxsRnJhbWUoMCkgfHwge30gOiB7fTsKICAgICAgICAgICAgIHZhciB0cmFjZUxvZ0l0
ZW0gPSB7CisgICAgICAgICAgICAgICAgY29udGV4dElkOiB0aGlzLl9tYWtlQ29udGV4dElkKGNh
bGwucmVzb3VyY2UoKS5pZCgpKSwKICAgICAgICAgICAgICAgICBzb3VyY2VVUkw6IGNhbGxGcmFt
ZS5zb3VyY2VVUkwsCiAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogY2FsbEZyYW1lLmxpbmVO
dW1iZXIsCiAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiBjYWxsRnJhbWUuY29sdW1uTnVt
YmVyCkBAIC0yODgxLDYgKzI4OTAsMTUgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewog
ICAgICAgICByZXR1cm4gIntcImluamVjdGVkU2NyaXB0SWRcIjoiICsgaW5qZWN0ZWRTY3JpcHRJ
ZCArICIsXCJ0cmFjZUxvZ0lkXCI6IiArICgrK3RoaXMuX2xhc3RUcmFjZUxvZ0lkKSArICJ9IjsK
ICAgICB9LAogCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHJlc291cmNlSWQKKyAg
ICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAgX21ha2VDb250ZXh0SWQ6IGZ1bmN0
aW9uKHJlc291cmNlSWQpCisgICAgeworICAgICAgICByZXR1cm4gIntcImluamVjdGVkU2NyaXB0
SWRcIjoiICsgaW5qZWN0ZWRTY3JpcHRJZCArICIsXCJjYW52YXNDb250ZXh0SWRcIjoiICsgcmVz
b3VyY2VJZCArICJ9IjsKKyAgICB9LAorCiAgICAgX29uVHJhY2VMb2dQbGF5ZXJSZXNldDogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVwbGF5Q29udGV4dHMgPSBbXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCAzN2EyNGYxNzRiNzc1ZGQ2MGJi
YjI4ZWM5NzA0ZTc5ZjczYzRhMmM4Li5iYTAyODA4MjExOTk4ZTA1OWNkYjBjNmUyOTQyMzkxMWU4
ZGUwMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpz
b24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0zMTg5
LDE0ICszMTg5LDE1IEBACiAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAidHlwZXMi
OiBbCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgImlkIjogIlRyYWNlTG9nSWQiLAor
ICAgICAgICAgICAgICAgICJpZCI6ICJDb250ZXh0SWQiLAogICAgICAgICAgICAgICAgICJ0eXBl
IjogInN0cmluZyIsCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBvYmpl
Y3QgaWRlbnRpZmllci4iCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBj
b250ZXh0IGlkZW50aWZpZXIuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICAiaWQiOiAiQ2FsbCIsCiAgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0
IiwKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJjb250ZXh0SWQiLCAiJHJlZiI6ICJDb250ZXh0SWQiIH0sCiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiZnVuY3Rpb25OYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFyZ3VtZW50
cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAidHlwZSI6ICJzdHJpbmciIH0sICJvcHRp
b25hbCI6IHRydWUgfSwKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm9wZXJ0eSIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfSwKQEAgLTMyMDgsNiArMzIwOSwx
MSBAQAogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgImlkIjogIlRyYWNlTG9nSWQiLAorICAgICAgICAgICAgICAgICJ0eXBl
IjogInN0cmluZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSB0cmFj
ZSBsb2cgaWRlbnRpZmllci4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICJpZCI6ICJUcmFjZUxvZyIsCiAgICAgICAgICAgICAgICAgInR5cGUiOiAib2Jq
ZWN0IiwKICAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKQEAgLTMyMzQsNiArMzI0MCwx
MyBAQAogICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgIm5hbWUiOiAiaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlcyIsCisgICAg
ICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
cmVzdWx0IiwgInR5cGUiOiAiYm9vbGVhbiIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiB0aGVyZSBpcyBhbnkgdW5pbnN0cnVt
ZW50ZWQgY2FudmFzIGluIHRoZSBpbnNwZWN0ZWQgcGFnZS4iCisgICAgICAgICAgICB9LAorICAg
ICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogImNhcHR1cmVGcmFtZSIsCiAgICAg
ICAgICAgICAgICAgInJldHVybnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
dHJhY2VMb2dJZCIsICIkcmVmIjogIlRyYWNlTG9nSWQiIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCmluZGV4IDUzNDc1MzM1YTE3ZmVl
N2Q2MTc3YjE4ODg2MWM2ODY0NTAxNmY5M2EuLjQ4OTUwOTFmYTE4YWZjMjU3NThiNjNlYmFlYTRh
MDc1NjRkN2M0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDYW52YXNBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNhbnZhc0FnZW50LmNwcApAQCAtMzQsNiArMzQsMTAgQEAKIAogI2luY2x1ZGUgIkluc3BlY3Rv
ckNhbnZhc0FnZW50LmgiCiAKKyNpbmNsdWRlICJCaW5kaW5nVmlzaXRvcnMuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRTY3JpcHQuaCIKICNpbmNsdWRlICJJbmplY3Rl
ZFNjcmlwdENhbnZhc01vZHVsZS5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5o
IgpAQCAtNDIsNiArNDYsNyBAQAogI2luY2x1ZGUgIkluc3RydW1lbnRpbmdBZ2VudHMuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCisjaW5jbHVkZSAiU2Ny
aXB0UHJvZmlsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTdGF0ZS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC01NSw2ICs2MCw3IEBAIEluc3BlY3RvckNhbnZhc0FnZW50OjpJbnNwZWN0b3JD
YW52YXNBZ2VudChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlCiAgICAgLCBt
X2luc3BlY3RlZFBhZ2UocGFnZSkKICAgICAsIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKGluamVj
dGVkU2NyaXB0TWFuYWdlcikKICAgICAsIG1fZnJvbnRlbmQoMCkKKyAgICAsIG1fZW5hYmxlZChm
YWxzZSkKIHsKIH0KIApAQCAtODQsMTQgKzkwLDIwIEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OnJlc3RvcmUoKQogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjplbmFibGUoRXJyb3JT
dHJpbmcqKQogewotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oQ2FudmFzQWdlbnRTdGF0ZTo6Y2Fu
dmFzQWdlbnRFbmFibGVkLCB0cnVlKTsKKyAgICBpZiAobV9lbmFibGVkKQorICAgICAgICByZXR1
cm47CisgICAgbV9lbmFibGVkID0gdHJ1ZTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKENhbnZh
c0FnZW50U3RhdGU6OmNhbnZhc0FnZW50RW5hYmxlZCwgbV9lbmFibGVkKTsKICAgICBtX2luc3Ry
dW1lbnRpbmdBZ2VudHMtPnNldEluc3BlY3RvckNhbnZhc0FnZW50KHRoaXMpOworICAgIGZpbmRG
cmFtZXNXaXRoVW5pbnN0cnVtZW50ZWRDYW52YXNlcygpOwogfQogCiB2b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKIHsKKyAgICBtX2VuYWJsZWQgPSBmYWxz
ZTsKKyAgICBtX3N0YXRlLT5zZXRCb29sZWFuKENhbnZhc0FnZW50U3RhdGU6OmNhbnZhc0FnZW50
RW5hYmxlZCwgbV9lbmFibGVkKTsKICAgICBtX2luc3RydW1lbnRpbmdBZ2VudHMtPnNldEluc3Bl
Y3RvckNhbnZhc0FnZW50KDApOwotICAgIG1fc3RhdGUtPnNldEJvb2xlYW4oQ2FudmFzQWdlbnRT
dGF0ZTo6Y2FudmFzQWdlbnRFbmFibGVkLCBmYWxzZSk7CisgICAgbV9mcmFtZXNXaXRoVW5pbnN0
cnVtZW50ZWRDYW52YXNlcy5jbGVhcigpOwogfQogCiB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50
Ojpkcm9wVHJhY2VMb2coRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRy
YWNlTG9nSWQpCkBAIC0xMDEsOCArMTEzLDE3IEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6
OmRyb3BUcmFjZUxvZyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYKICAg
ICAgICAgbW9kdWxlLmRyb3BUcmFjZUxvZyhlcnJvclN0cmluZywgdHJhY2VMb2dJZCk7CiB9CiAK
K3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6Omhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMoRXJy
b3JTdHJpbmcqIGVycm9yU3RyaW5nLCBib29sKiByZXN1bHQpCit7CisgICAgaWYgKCFjaGVja0lz
RW5hYmxlZChlcnJvclN0cmluZykpCisgICAgICAgIHJldHVybjsKKyAgICAqcmVzdWx0ID0gbV9m
cmFtZXNXaXRoVW5pbnN0cnVtZW50ZWRDYW52YXNlcy5jb250YWlucyhtX2luc3BlY3RlZFBhZ2Ut
Pm1haW5GcmFtZSgpKTsKK30KKwogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Y2FwdHVyZUZy
YW1lKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgU3RyaW5nKiB0cmFjZUxvZ0lkKQogeworICAg
IGlmICghY2hlY2tJc0VuYWJsZWQoZXJyb3JTdHJpbmcpKQorICAgICAgICByZXR1cm47CiAgICAg
U2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gbWFpbldvcmxkU2NyaXB0U3RhdGUobV9pbnNwZWN0
ZWRQYWdlLT5tYWluRnJhbWUoKSk7CiAgICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgbW9k
dWxlID0gSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGU6Om1vZHVsZUZvclN0YXRlKG1faW5qZWN0
ZWRTY3JpcHRNYW5hZ2VyLCBzY3JpcHRTdGF0ZSk7CiAgICAgaWYgKG1vZHVsZS5oYXNOb1ZhbHVl
KCkpIHsKQEAgLTExNCw2ICsxMzUsOCBAQCB2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpjYXB0
dXJlRnJhbWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBTdHJpbmcqIHRyYWNlTAogCiB2b2lk
IEluc3BlY3RvckNhbnZhc0FnZW50OjpzdGFydENhcHR1cmluZyhFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIFN0cmluZyogdHJhY2VMb2dJZCkKIHsKKyAgICBpZiAoIWNoZWNrSXNFbmFibGVkKGVy
cm9yU3RyaW5nKSkKKyAgICAgICAgcmV0dXJuOwogICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0
ZSA9IG1haW5Xb3JsZFNjcmlwdFN0YXRlKG1faW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCkpOwog
ICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlIG1vZHVsZSA9IEluamVjdGVkU2NyaXB0Q2Fu
dmFzTW9kdWxlOjptb2R1bGVGb3JTdGF0ZShtX2luamVjdGVkU2NyaXB0TWFuYWdlciwgc2NyaXB0
U3RhdGUpOwogICAgIGlmIChtb2R1bGUuaGFzTm9WYWx1ZSgpKSB7CkBAIC0xMjUsNiArMTQ4LDgg
QEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6c3RhcnRDYXB0dXJpbmcoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBTdHJpbmcqIHRyYWMKIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
c3RvcENhcHR1cmluZyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgdHJh
Y2VMb2dJZCkKIHsKKyAgICBpZiAoIWNoZWNrSXNFbmFibGVkKGVycm9yU3RyaW5nKSkKKyAgICAg
ICAgcmV0dXJuOwogICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlIG1vZHVsZSA9IGluamVj
dGVkU2NyaXB0Q2FudmFzTW9kdWxlRm9yVHJhY2VMb2dJZChlcnJvclN0cmluZywgdHJhY2VMb2dJ
ZCk7CiAgICAgaWYgKCFtb2R1bGUuaGFzTm9WYWx1ZSgpKQogICAgICAgICBtb2R1bGUuc3RvcENh
cHR1cmluZyhlcnJvclN0cmluZywgdHJhY2VMb2dJZCk7CkBAIC0xMzIsNiArMTU3LDggQEAgdm9p
ZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6c3RvcENhcHR1cmluZyhFcnJvclN0cmluZyogZXJyb3JT
dHJpbmcsIGNvbnN0IFN0cmluZyYKIAogdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Z2V0VHJh
Y2VMb2coRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRyYWNlTG9nSWQs
IGNvbnN0IGludCogc3RhcnRPZmZzZXQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q2FudmFzOjpUcmFj
ZUxvZz4mIHRyYWNlTG9nKQogeworICAgIGlmICghY2hlY2tJc0VuYWJsZWQoZXJyb3JTdHJpbmcp
KQorICAgICAgICByZXR1cm47CiAgICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgbW9kdWxl
ID0gaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVGb3JUcmFjZUxvZ0lkKGVycm9yU3RyaW5nLCB0
cmFjZUxvZ0lkKTsKICAgICBpZiAoIW1vZHVsZS5oYXNOb1ZhbHVlKCkpCiAgICAgICAgIG1vZHVs
ZS50cmFjZUxvZyhlcnJvclN0cmluZywgdHJhY2VMb2dJZCwgc3RhcnRPZmZzZXQsICZ0cmFjZUxv
Zyk7CkBAIC0xMzksNiArMTY2LDggQEAgdm9pZCBJbnNwZWN0b3JDYW52YXNBZ2VudDo6Z2V0VHJh
Y2VMb2coRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHQKIAogdm9pZCBJ
bnNwZWN0b3JDYW52YXNBZ2VudDo6cmVwbGF5VHJhY2VMb2coRXJyb3JTdHJpbmcqIGVycm9yU3Ry
aW5nLCBjb25zdCBTdHJpbmcmIHRyYWNlTG9nSWQsIGludCBzdGVwTm8sIFN0cmluZyogcmVzdWx0
KQogeworICAgIGlmICghY2hlY2tJc0VuYWJsZWQoZXJyb3JTdHJpbmcpKQorICAgICAgICByZXR1
cm47CiAgICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgbW9kdWxlID0gaW5qZWN0ZWRTY3Jp
cHRDYW52YXNNb2R1bGVGb3JUcmFjZUxvZ0lkKGVycm9yU3RyaW5nLCB0cmFjZUxvZ0lkKTsKICAg
ICBpZiAoIW1vZHVsZS5oYXNOb1ZhbHVlKCkpCiAgICAgICAgIG1vZHVsZS5yZXBsYXlUcmFjZUxv
ZyhlcnJvclN0cmluZywgdHJhY2VMb2dJZCwgc3RlcE5vLCByZXN1bHQpOwpAQCAtMTkwLDYgKzIx
OSw1MyBAQCBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSBJbnNwZWN0b3JDYW52YXNBZ2VudDo6
aW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVGb3JUcgogICAgIHJldHVybiBtb2R1bGU7CiB9CiAK
K3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmZpbmRGcmFtZXNXaXRoVW5pbnN0cnVtZW50ZWRD
YW52YXNlcygpCit7CisgICAgY2xhc3MgTm9kZVZpc2l0b3IgOiBwdWJsaWMgV3JhcHBlZE5vZGVW
aXNpdG9yIHsKKyAgICBwdWJsaWM6CisgICAgICAgIE5vZGVWaXNpdG9yKFBhZ2UqIHBhZ2UsIEZy
YW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzJiBoYXNVbmluc3RydW1lbnRlZENhbnZhc2Vz
UmVzdWx0cykKKyAgICAgICAgICAgIDogbV9wYWdlKHBhZ2UpCisgICAgICAgICAgICAsIG1fZnJh
bWVzV2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFzZXMoaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc1Jl
c3VsdHMpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCB2aXNp
dE5vZGUoTm9kZSogbm9kZSkgT1ZFUlJJREUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFu
b2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Y2FudmFzVGFnKSB8fCAhbm9kZS0+ZG9jdW1lbnQo
KSB8fCAhbm9kZS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICAKKyAgICAgICAgICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50
KCktPmZyYW1lKCk7CisgICAgICAgICAgICBpZiAoZnJhbWUtPnBhZ2UoKSAhPSBtX3BhZ2UpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBIVE1MQ2FudmFzRWxlbWVudCog
Y2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihub2RlKTsKKyAgICAgICAg
ICAgIGlmIChjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSkKKyAgICAgICAgICAgICAgICBtX2Zy
YW1lc1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzLmFkZChmcmFtZSk7CisgICAgICAgIH0KKwor
ICAgIHByaXZhdGU6CisgICAgICAgIFBhZ2UqIG1fcGFnZTsKKyAgICAgICAgRnJhbWVzV2l0aFVu
aW5zdHJ1bWVudGVkQ2FudmFzZXMmIG1fZnJhbWVzV2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFzZXM7
CisgICAgfSBub2RlVmlzaXRvcihtX2luc3BlY3RlZFBhZ2UsIG1fZnJhbWVzV2l0aFVuaW5zdHJ1
bWVudGVkQ2FudmFzZXMpOworCisgICAgU2NyaXB0UHJvZmlsZXI6OnZpc2l0Tm9kZVdyYXBwZXJz
KCZub2RlVmlzaXRvcik7Cit9CisKK2Jvb2wgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmNoZWNrSXNF
bmFibGVkKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZykgY29uc3QKK3sKKyAgICBpZiAobV9lbmFi
bGVkKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAqZXJyb3JTdHJpbmcgPSAiQ2FudmFzIGFn
ZW50IGlzIG5vdCBlbmFibGVkIjsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgSW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OnJlc2V0KCkKK3sKKyAgICBtX2ZyYW1lc1dpdGhVbmluc3RydW1lbnRl
ZENhbnZhc2VzLmNsZWFyKCk7CisgICAgaWYgKG1fZW5hYmxlZCkKKyAgICAgICAgZmluZEZyYW1l
c1dpdGhVbmluc3RydW1lbnRlZENhbnZhc2VzKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oCmluZGV4IDBmNWNhOTg3MWM5MzIxMDYxMGY2
YWVkNGUwOWNlYmQxZjQ1NTY5ZTYuLjUwMjZjM2E3MjM3MmNkNGZiZDMwNGZmMzkwYzRmNDZiYWNh
ZjY4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52
YXNBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNB
Z2VudC5oCkBAIC0zNywxMiArMzcsMTQgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZC5o
IgogI2luY2x1ZGUgIkluc3BlY3RvclR5cGVCdWlsZGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U3Rh
dGUuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGcmFtZTsKIGNsYXNzIElu
amVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOwogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwog
Y2xhc3MgSW5zcGVjdG9yU3RhdGU7CkBAIC02NCw2ICs2Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlKCk7CiAK
KyAgICAvLyBDYWxsZWQgZnJvbSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24KKyAgICB2b2lkIHJl
c2V0KCk7CisKICAgICAvLyBDYWxsZWQgZnJvbSBJbnNwZWN0b3JDYW52YXNJbnN0cnVtZW50YXRp
b24KICAgICBTY3JpcHRPYmplY3Qgd3JhcENhbnZhczJEUmVuZGVyaW5nQ29udGV4dEZvckluc3Ry
dW1lbnRhdGlvbihjb25zdCBTY3JpcHRPYmplY3QmKTsKICNpZiBFTkFCTEUoV0VCR0wpCkBAIC03
NCw2ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5n
Kik7CiAgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2aXJ0dWFs
IHZvaWQgZHJvcFRyYWNlTG9nKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJik7CisgICAgdmly
dHVhbCB2b2lkIGhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMoRXJyb3JTdHJpbmcqLCBib29sKik7
CiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVGcmFtZShFcnJvclN0cmluZyosIFN0cmluZyopOwog
ICAgIHZpcnR1YWwgdm9pZCBzdGFydENhcHR1cmluZyhFcnJvclN0cmluZyosIFN0cmluZyopOwog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wQ2FwdHVyaW5nKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
Jik7CkBAIC04NCwxMCArOTAsMTUgQEAgcHJpdmF0ZToKICAgICBJbnNwZWN0b3JDYW52YXNBZ2Vu
dChJbnN0cnVtZW50aW5nQWdlbnRzKiwgSW5zcGVjdG9yQ29tcG9zaXRlU3RhdGUqLCBQYWdlKiwg
SW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKik7CiAKICAgICBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVs
ZSBpbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZUZvclRyYWNlTG9nSWQoRXJyb3JTdHJpbmcqLCBj
b25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGZpbmRGcmFtZXNXaXRoVW5pbnN0cnVtZW50ZWRDYW52
YXNlcygpOworICAgIGJvb2wgY2hlY2tJc0VuYWJsZWQoRXJyb3JTdHJpbmcqKSBjb25zdDsKIAog
ICAgIFBhZ2UqIG1faW5zcGVjdGVkUGFnZTsKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIEluc3BlY3RvckZyb250ZW5kOjpDYW52YXMqIG1f
ZnJvbnRlbmQ7CisgICAgYm9vbCBtX2VuYWJsZWQ7CisgICAgdHlwZWRlZiBIYXNoU2V0PEZyYW1l
Kj4gRnJhbWVzV2l0aFVuaW5zdHJ1bWVudGVkQ2FudmFzZXM7CisgICAgRnJhbWVzV2l0aFVuaW5z
dHJ1bWVudGVkQ2FudmFzZXMgbV9mcmFtZXNXaXRoVW5pbnN0cnVtZW50ZWRDYW52YXNlczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMzM5MzY2YTJhM2I4NThk
ZmIyOTA3Y2I0M2JhNmRjZDU5MDY3ZjBhOC4uODhkYjU0YzM1NmY0MWNhYWYyMzIwOWU5YzI2MDNk
YjQ1MGRlOWQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTkxMyw2ICs5MTMsOCBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudAogICAgICAgICBpZiAoSW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQqIGxheWVyVHJl
ZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yTGF5ZXJUcmVlQWdlbnQoKSkK
ICAgICAgICAgICAgIGxheWVyVHJlZUFnZW50LT5yZXNldCgpOwogI2VuZGlmCisgICAgICAgIGlm
IChJbnNwZWN0b3JDYW52YXNBZ2VudCogY2FudmFzQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRz
LT5pbnNwZWN0b3JDYW52YXNBZ2VudCgpKQorICAgICAgICAgICAgY2FudmFzQWdlbnQtPnJlc2V0
KCk7CiAgICAgICAgIGluc3BlY3RvckFnZW50LT5kaWRDb21taXRMb2FkKCk7CiAgICAgfQogICAg
IGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvclBhZ2VBZ2VudCgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZhZjJhYjc3NjBmNTcwZWUxN2YzMWE4ZDU3
MjY1NjU5YTllYjg2Y2EuLmQxNzBlZDY0ZGJiMGM0MTliNjNkOWE3YWIwMTBjMzhlMzcwZTQwYzIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMi0yNSAgQW5kcmV5IEFkYWlraW4gIDxhYW5k
cmV5QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2FudmFzXSByZXBv
cnQgaWYgdGhlcmUgaXMgYW55IHVuaW5zdHJ1bWVudGVkIGNhbnZhcyBvbiBhIHBhZ2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTcyMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3By
b2ZpbGVyL2NhbnZhcy1wcm9maWxlci10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9DYW52
YXNXZWJHTFByb2ZpbGVyVGVzdC5JbnNwZWN0b3JUZXN0LmVuYWJsZUNhbnZhc0FnZW50KToKKyAg
ICAgICAgKGluaXRpYWxpemVfQ2FudmFzV2ViR0xQcm9maWxlclRlc3QuSW5zcGVjdG9yVGVzdC5k
aXNhYmxlQ2FudmFzQWdlbnQpOgorICAgICAgICAoaW5pdGlhbGl6ZV9DYW52YXNXZWJHTFByb2Zp
bGVyVGVzdCk6CisgICAgICAgICogaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1o
YXMtdW5pbnN0cnVtZW50ZWQtY2FudmFzZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLWhhcy11bmluc3RydW1lbnRlZC1j
YW52YXNlcy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMi0yNCAgVGFrYXNoaSBTYWthbW90byAgPHRh
c2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAgOjpmaXJzdC1sZXR0ZXIgeyBvdmVyZmxvdzogLXdl
YmtpdC1wYWdlZC15IH0gY2F1c2VzIGNyYXNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvY2FudmFzLXByb2ZpbGVyLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvcHJvZmlsZXIvY2FudmFzLXByb2ZpbGVyLXRlc3QuanMKaW5kZXggMTNmNDQ2ODRhOTgx
ZTYzZGVjOWVmYTcwMThlOTcyODcwNjc0OWY1Yy4uNzJkYTIyYTY0M2RkOGVmNTNkMGZjZjZkZTkz
NDM0ZmM3YmJkMGJmZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVy
L2NhbnZhcy1wcm9maWxlci10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9jYW52YXMtcHJvZmlsZXItdGVzdC5qcwpAQCAtMTQsNyArMTQsMjYgQEAgSW5zcGVjdG9y
VGVzdC5lbmFibGVDYW52YXNBZ2VudCA9IGZ1bmN0aW9uKGNhbGxiYWNrKQogICAgIHRyeSB7CiAg
ICAgICAgIENhbnZhc0FnZW50LmVuYWJsZShjYW52YXNBZ2VudEVuYWJsZWQpOwogICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV4Y2VwdGlvbiB3aGls
ZSBlbmFibGluZyBDYW52YXNBZ2VudCIsIGUpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRXhjZXB0aW9uIHdoaWxlIGVuYWJsaW5nIENhbnZhc0FnZW50OiAiICsgZSk7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfTsKKworSW5zcGVjdG9y
VGVzdC5kaXNhYmxlQ2FudmFzQWdlbnQgPSBmdW5jdGlvbihjYWxsYmFjaykKK3sKKyAgICBmdW5j
dGlvbiBjYW52YXNBZ2VudERpc2FibGVkKGVycm9yKQorICAgIHsKKyAgICAgICAgaWYgKCFlcnJv
cikKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2FmZVdyYXAoY2FsbGJhY2spKCk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkZBSUxFRCB0
byBkaXNhYmxlIENhbnZhc0FnZW50OiAiICsgZXJyb3IpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB0cnkgeworICAgICAg
ICBDYW52YXNBZ2VudC5kaXNhYmxlKGNhbnZhc0FnZW50RGlzYWJsZWQpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkV4Y2VwdGlvbiB3aGlsZSBk
aXNhYmxpbmcgQ2FudmFzQWdlbnQ6ICIgKyBlKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVtZW50ZWQtY2FudmFzZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZh
cy1oYXMtdW5pbnN0cnVtZW50ZWQtY2FudmFzZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRi
MWQ3NzAzY2IzMWJlOTk0OGY4YzJjZWM1MzgyODIxM2VjZjViMjgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLWhhcy11bmlu
c3RydW1lbnRlZC1jYW52YXNlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0cyBD
YW52YXMgaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlcyBwcm90b2NvbCBtZXRob2QuCisKK0J1ZyAx
MDU3MjEKK2hhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXM6IGZhbHNlCitoYXNVbmluc3RydW1lbnRl
ZENhbnZhc2VzOiB0cnVlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9m
aWxlci9jYW52YXMyZC9jYW52YXMtaGFzLXVuaW5zdHJ1bWVudGVkLWNhbnZhc2VzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLWhhcy11bmluc3Ry
dW1lbnRlZC1jYW52YXNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMjZhODZhNjIwZGVlMzdmMjYzOTFk
YzA1NTdjMzlkNTc0NDdhNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvcHJvZmlsZXIvY2FudmFzMmQvY2FudmFzLWhhcy11bmluc3RydW1lbnRlZC1jYW52YXNlcy5o
dG1sCkBAIC0wLDAgKzEsNjkgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vY2FudmFzLXByb2ZpbGVyLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKwordmFyIGNhbnZhczsKKworZnVuY3Rpb24gY3JlYXRlQ2FudmFzRWxlbWVudCgp
Cit7CisgICAgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7CisgICAg
Y29uc29sZS5hc3NlcnQoY2FudmFzLCAiRmFpbGVkIHRvIGNyZWF0ZSBhIGNhbnZhcyBlbGVtZW50
Iik7Cit9CisKK2Z1bmN0aW9uIGdldENhbnZhc0NvbnRleHQoKQoreworICAgIHZhciBjb250ZXh0
ID0gY2FudmFzLmdldENvbnRleHQoIjJkIik7CisgICAgY29uc29sZS5hc3NlcnQoY29udGV4dCwg
IkZhaWxlZCB0byBjcmVhdGUgYSBjYW52YXMgY29udGV4dCIpOworfQorCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5Db25zb2xlKCJjcmVhdGVDYW52YXNF
bGVtZW50KCkiLCBzdGVwMSk7CisgICAgZnVuY3Rpb24gc3RlcDEoKQorICAgIHsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5lbmFibGVDYW52YXNBZ2VudChzdGVwMik7CisgICAgfQorICAgIGZ1bmN0
aW9uIHN0ZXAyKCkKKyAgICB7CisgICAgICAgIENhbnZhc0FnZW50Lmhhc1VuaW5zdHJ1bWVudGVk
Q2FudmFzZXMoaGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc0NhbGxiYWNrMSk7CisgICAgfQorICAg
IGZ1bmN0aW9uIGhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNDYWxsYmFjazEoZXJyb3IsIHJlc3Vs
dCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJoYXNVbmluc3RydW1l
bnRlZENhbnZhc2VzOiAiICsgcmVzdWx0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRU
cnVlKCFlcnJvciwgIlVuZXhwZWN0ZWQgZXJyb3IiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMoZmFsc2UsIHJlc3VsdCwgIlRoZXJlIHNob3VsZCBiZSBubyB1bmluc3RydW1l
bnRlZCBjYW52YXNlcyIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmRpc2FibGVDYW52YXNBZ2Vu
dChzdGVwMyk7CisgICAgfQorICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICB7CisgICAgICAgIElu
c3BlY3RvclRlc3QuZXZhbHVhdGVJbkNvbnNvbGUoImdldENhbnZhc0NvbnRleHQoKSIsIHN0ZXA0
KTsKKyAgICB9CisgICAgZnVuY3Rpb24gc3RlcDQoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5lbmFibGVDYW52YXNBZ2VudChzdGVwNSk7CisgICAgfQorICAgIGZ1bmN0aW9uIHN0ZXA1
KCkKKyAgICB7CisgICAgICAgIENhbnZhc0FnZW50Lmhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXMo
aGFzVW5pbnN0cnVtZW50ZWRDYW52YXNlc0NhbGxiYWNrMik7CisgICAgfQorICAgIGZ1bmN0aW9u
IGhhc1VuaW5zdHJ1bWVudGVkQ2FudmFzZXNDYWxsYmFjazIoZXJyb3IsIHJlc3VsdCkKKyAgICB7
CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJoYXNVbmluc3RydW1lbnRlZENhbnZh
c2VzOiAiICsgcmVzdWx0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKCFlcnJv
ciwgIlVuZXhwZWN0ZWQgZXJyb3IiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVh
bHModHJ1ZSwgcmVzdWx0LCAiVGhlcmUgaXMgYW4gdW5pbnN0cnVtZW50ZWQgY2FudmFzISIpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKworPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4KK1Rlc3RzIENhbnZh
cyBoYXNVbmluc3RydW1lbnRlZENhbnZhc2VzIHByb3RvY29sIG1ldGhvZC4KKzwvcD4KKzxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU3MjEiPkJ1ZyAx
MDU3MjE8L2E+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggNjZmZWY0ZDE3ODA5YWVlNGQyMDY3Mzc3ODkxMjg3ZGFlYThj
YmYwYS4uZjUxNWI5ZDlhN2MwNzc0ZDhlZDJjODUwYWNmMjI5NGVjNWY2YzBiNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE1NjcsNiArMTU2Nyw3IEBA
IHdlYmtpdC5vcmcvYi8yMzE2NiBpZXRlc3RjZW50ZXIvY3NzMy9ib3JkZXJzYmFja2dyb3VuZHMv
Ym9yZGVyLXJhZGl1cy1jbGlwLTAwMi5oCiAKICMgTmV3IGluc3BlY3Rvci9wcm9maWxlci9tZW1v
cnktaW5zdHJ1bWVudGF0aW9uLWNhbnZhcy5odG1sIGZhaWxzIG9uIEpTQyBwbGF0Zm9ybXMKIHdl
YmtpdC5vcmcvYi85OTAwMSBpbnNwZWN0b3IvcHJvZmlsZXIvbWVtb3J5LWluc3RydW1lbnRhdGlv
bi1jYW52YXMuaHRtbAord2Via2l0Lm9yZy9iLzczOTM2IGluc3BlY3Rvci9wcm9maWxlci9jYW52
YXMyZC9jYW52YXMtaGFzLXVuaW5zdHJ1bWVudGVkLWNhbnZhc2VzLmh0bWwKIAogIyBFRkwgcG9y
dCBkb2VzIG5vdCBzdXBwb3J0IEVtYWNzIGNvbW1hbmRzLgogQnVnKEVGTCkgZWRpdGluZy9wYXN0
ZWJvYXJkL2VtYWNzLWNudGwteS0wMDEuaHRtbCBbIE1pc3NpbmcgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkZTc0YTkzMjRiYWRiM2QxMTAzOTZmM2Y3
YTY3YjZhY2U2NDZmODM0Li4zNjE1YjRlYTk4N2NjMDlkOWZjZmIxYjQ4ZTJhZTU3ODgwZjM3Yzg0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTgxLDYg
Kzk4MSw3IEBAIHdlYmtpdC5vcmcvYi81MDQ4NSBpbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFw
c2hvdC1zdW1tYXJ5LXNvcnRpbmctZmllbGRzLmh0bWwKIHdlYmtpdC5vcmcvYi81MDQ4NSBpbnNw
ZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1zdW1tYXJ5LXNvcnRpbmctaW5zdGFuY2VzLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi85OTAwMSBpbnNwZWN0b3IvcHJvZmlsZXIvbWVt
b3J5LWluc3RydW1lbnRhdGlvbi1jYW52YXMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9i
LzUwNDg1IGluc3BlY3Rvci1wcm90b2NvbC90YWtlLWhlYXAtc25hcHNob3QuaHRtbCBbIFNraXAg
XQord2Via2l0Lm9yZy9iLzczOTM2IGluc3BlY3Rvci9wcm9maWxlci9jYW52YXMyZC9jYW52YXMt
aGFzLXVuaW5zdHJ1bWVudGVkLWNhbnZhc2VzLmh0bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9y
Zy9iLzM3NjEzIHdlYmtpdC5vcmcvYi8yMDAxMSBwcmludGluZyBbIFNraXAgXQogd2Via2l0Lm9y
Zy9iLzM3NjEzIGVkaXRpbmcvZXhlY0NvbW1hbmQvcHJpbnQuaHRtbCBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmMTAwMzNmZWNhNTViZWRh
YWZjMDI5YWNmNTBkMDMxYTU1ODZkODhjLi5iZmE2M2IyZjA0MDI1NzNjOTAzNmE5YmIyNjgyZDdj
ZDExOTI0N2ViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMjU5LDYgKzI1OSw3IEBAIHdlYmtpdC5vcmcvYi81MDQ4NSBpbnNwZWN0b3ItcHJvdG9jb2wv
dGFrZS1oZWFwLXNuYXBzaG90Lmh0bWwgWyBTa2lwIF0KIAogIyBOZXcgaW5zcGVjdG9yL3Byb2Zp
bGVyL21lbW9yeS1pbnN0cnVtZW50YXRpb24tY2FudmFzLmh0bWwgZmFpbHMgb24gSlNDIHBsYXRm
b3Jtcwogd2Via2l0Lm9yZy9iLzk5MDAxIGluc3BlY3Rvci9wcm9maWxlci9tZW1vcnktaW5zdHJ1
bWVudGF0aW9uLWNhbnZhcy5odG1sCit3ZWJraXQub3JnL2IvNzM5MzYgaW5zcGVjdG9yL3Byb2Zp
bGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVtZW50ZWQtY2FudmFzZXMuaHRtbAogCiAj
IFNraXBwaW5nIG5ld2x5IGFkZGVkIHRlc3RzIHdoaWxlIEknbSBmaW5kaW5nIG91dCB3aGF0IGlz
IHdyb25nLgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk3MDYK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGZlZjVkMWQ3
ZWM0Y2UyZTM3MDM2YzMwNzU2NGM0NGE1OGY5Y2JmYi4uZTNlNzNiODM0YjMxZmI3ZjM1NzAyYzQw
ZDUzNzdkNmI0MWY0ZTE1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTEyOTAsNiArMTI5MCw3IEBAIHdlYmtpdC5vcmcvYi81MDQ4NSBpbnNwZWN0b3It
cHJvdG9jb2wvdGFrZS1oZWFwLXNuYXBzaG90Lmh0bWwgWyBTa2lwIF0KIAogIyBOZXcgaW5zcGVj
dG9yL3Byb2ZpbGVyL21lbW9yeS1pbnN0cnVtZW50YXRpb24tY2FudmFzLmh0bWwgZmFpbHMgb24g
SlNDIHBsYXRmb3Jtcwogd2Via2l0Lm9yZy9iLzk5MDAxIGluc3BlY3Rvci9wcm9maWxlci9tZW1v
cnktaW5zdHJ1bWVudGF0aW9uLWNhbnZhcy5odG1sCit3ZWJraXQub3JnL2IvNzM5MzYgaW5zcGVj
dG9yL3Byb2ZpbGVyL2NhbnZhczJkL2NhbnZhcy1oYXMtdW5pbnN0cnVtZW50ZWQtY2FudmFzZXMu
aHRtbAogCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDMwMAog
aW5zcGVjdG9yL2RlYnVnZ2VyL2xpdmUtZWRpdC5odG1sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>