<?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>107274</bug_id>
          
          <creation_ts>2013-01-18 06:01:17 -0800</creation_ts>
          <short_desc>Web Inspector: [Canvas] UI: add a context selector to show screenshot of any canvas in the log</short_desc>
          <delta_ts>2013-01-18 09:07:02 -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>
          <dependson>107019</dependson>
    
    <dependson>107280</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Adaikin">aandrey</reporter>
          <assigned_to name="Andrey Adaikin">aandrey</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>810518</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-01-18 06:01:17 -0800</bug_when>
    <thetext>Adding a canvas context selector to display in the replay image screenshot.

Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810523</commentid>
    <comment_count>1</comment_count>
      <attachid>183436</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-01-18 06:02:51 -0800</bug_when>
    <thetext>Created attachment 183436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810524</commentid>
    <comment_count>2</comment_count>
      <attachid>183436</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-18 06:05:11 -0800</bug_when>
    <thetext>Comment on attachment 183436
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Adding a canvas context selector to display in the replay image screenshot.

Please explain what changed and why. Too many changed for such a brief explanation. Is there a way to split this into backend and front-end changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810575</commentid>
    <comment_count>3</comment_count>
      <attachid>183450</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-01-18 07:26:35 -0800</bug_when>
    <thetext>Created attachment 183450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810578</commentid>
    <comment_count>4</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-01-18 07:29:24 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 183436 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=183436&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Adding a canvas context selector to display in the replay image screenshot.
&gt; 
&gt; Please explain what changed and why. Too many changed for such a brief explanation. Is there a way to split this into backend and front-end changes?

Extracted backend changes to https://bugs.webkit.org/show_bug.cgi?id=107280</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810592</commentid>
    <comment_count>5</comment_count>
      <attachid>183456</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-01-18 07:41:47 -0800</bug_when>
    <thetext>Created attachment 183456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810679</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-01-18 09:07:02 -0800</bug_when>
    <thetext>Committed r140160: &lt;http://trac.webkit.org/changeset/140160&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183436</attachid>
            <date>2013-01-18 06:02:51 -0800</date>
            <delta_ts>2013-01-18 07:26:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107274-20130118175949.patch</filename>
            <type>text/plain</type>
            <size>32343</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmUxMzhmOGVhYjEzYjkx
NWNiYzZjZjA5MzAxMmFhNDRiNDgxNjA1Yi4uYzI2M2YwOTAzODY2NDYxNTBiNTk0YTNhNGZhNzJl
Mzg5MjZiMTJmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAxLTE4ICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtDYW52YXNdIGFkZCBhIGNvbnRleHQgc2VsZWN0b3IgdG8gc2hvdyBzY3JlZW5zaG90IG9m
IGFueSBjYW52YXMgaW4gdGhlIGxvZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA3Mjc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkaW5nIGEgY2FudmFzIGNvbnRleHQgc2VsZWN0b3IgdG8gZGlzcGxh
eSBpbiB0aGUgcmVwbGF5IGltYWdlIHNjcmVlbnNob3QuCisKKyAgICAgICAgKiBFbmdsaXNoLmxw
cm9qL2xvY2FsaXplZFN0cmluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL0NvZGVHZW5lcmF0
b3JJbnNwZWN0b3IucHk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFz
TW9kdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxl
OjpyZXBsYXlUcmFjZUxvZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjpyZXNvdXJjZUluZm8pOgorICAgICAgICAoV2Vi
Q29yZTo6SW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGU6OnJlc291cmNlU3RhdGUpOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5oOgorICAgICAgICAoSW5q
ZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNj
cmlwdENhbnZhc01vZHVsZVNvdXJjZS5qczoKKyAgICAgICAgKC4pOgorICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3IuanNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFz
QWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlcGxh
eVRyYWNlTG9nKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ2FudmFzQWdlbnQ6OmdldFJlc291cmNlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDYW52YXNBZ2VudDo6Z2V0UmVzb3VyY2VTdGF0ZSk6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckNhbnZhc0FnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JDYW52YXNBZ2VudCk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DYW52YXNQcm9maWxlVmlldy5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlLl9jcmVhdGVDb250cm9sQnV0dG9uKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5wcm90b3R5cGUuX29uUmVw
bGF5Q29udGV4dENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVW
aWV3LnByb3RvdHlwZS5fb25SZXBsYXlGaXJzdFN0ZXBDbGljayk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlLl9vblJlcGxheUxhc3RTdGVwQ2xpY2sp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlwZS5fZW5h
YmxlV2FpdEljb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnBy
b3RvdHlwZS5fcmVwbGF5VHJhY2VMb2cuZGlkUmVwbGF5VHJhY2VMb2cpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlwZS5fcmVwbGF5VHJhY2VMb2cpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlwZS5fZGlkUmVj
ZWl2ZVRyYWNlTG9nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5w
cm90b3R5cGUuX3JlcXVlc3RSZXBsYXlDb250ZXh0SW5mby5kaWRSZWNlaXZlUmVzb3VyY2VJbmZv
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5wcm90b3R5cGUuX3Jl
cXVlc3RSZXBsYXlDb250ZXh0SW5mbyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FudmFzUHJv
ZmlsZVZpZXcucHJvdG90eXBlLl9yZXF1ZXN0UmVwbGF5Q29udGV4dFN0YXRlKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL2NhbnZhc1Byb2ZpbGVyLmNzczoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5jc3M6CisgICAgICAgICguc3RhdHVzLWJhciBidXR0
b24uc3RhdHVzLWJhci1pdGVtIGltZyk6CisKIDIwMTMtMDEtMTYgIEFuZHJleSBBZGFpa2luICA8
YWFuZHJleUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW0NhbnZhc10g
aW50cm9kdWNlIFJlc291cmNlLnRvRGF0YVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlz
aC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4IGFhOTZkM2IyNDc2NzNiZTk3MGZiZWJk
MmI4NmYyMTVmOWQxMWZjN2IuLjRiMTQxZGQ3N2ZjMDhlNDZkZmJiMTVjZGQ1MTc5YWE4Y2QxNWM4
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovbG9jYWxpemVkU3Ry
aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMKQEAgLTc4MSw2ICs3ODEsOCBAQCBsb2NhbGl6ZWRTdHJpbmdzWyJGaXJzdCBjYWxsLiJd
ID0gIkZpcnN0IGNhbGwuIjsKIGxvY2FsaXplZFN0cmluZ3NbIlByZXZpb3VzIGNhbGwuIl0gPSAi
UHJldmlvdXMgY2FsbC4iOwogbG9jYWxpemVkU3RyaW5nc1siTmV4dCBjYWxsLiJdID0gIk5leHQg
Y2FsbC4iOwogbG9jYWxpemVkU3RyaW5nc1siTGFzdCBjYWxsLiJdID0gIkxhc3QgY2FsbC4iOwor
bG9jYWxpemVkU3RyaW5nc1siU2hvdyBzY3JlZW5zaG90IG9mIHRoZSBsYXN0IHJlcGxheWVkIHJl
c291cmNlLiJdID0gIlNob3cgc2NyZWVuc2hvdCBvZiB0aGUgbGFzdCByZXBsYXllZCByZXNvdXJj
ZS4iOworbG9jYWxpemVkU3RyaW5nc1siU2hvdyBzY3JlZW5zaG90IG9mIHRoaXMgY29udGV4dCdz
IGNhbnZhcy4iXSA9ICJTaG93IHNjcmVlbnNob3Qgb2YgdGhpcyBjb250ZXh0J3MgY2FudmFzLiI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWxvYWQiXSA9ICJSZWxvYWQiOwogbG9jYWxpemVkU3RyaW5n
c1siQmluYXJ5IEZpbGUiXSA9ICJCaW5hcnkgRmlsZSI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJNb2Rp
ZmljYXRpb24gVGltZSJdID0gIk1vZGlmaWNhdGlvbiBUaW1lIjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5IGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKaW5kZXggZTcwOGQ5ZTRk
OThhY2IxYzZhYTVjYTZjNWEwMGIxZTEyYzdhYTkzMy4uNjI5ZmEwMzkwZWM4MTM1MGU5ODAzNTQ4
MDkwNDQxZmRjZDVmNGU0YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0Nv
ZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKQEAgLTU3LDcgKzU3LDggQEAgVFlQRV9OQU1FX0ZJWF9N
QVAgPSB7CiAKIAogVFlQRVNfV0lUSF9SVU5USU1FX0NBU1RfU0VUID0gZnJvemVuc2V0KFsiUnVu
dGltZS5SZW1vdGVPYmplY3QiLCAiUnVudGltZS5Qcm9wZXJ0eURlc2NyaXB0b3IiLCAiUnVudGlt
ZS5JbnRlcm5hbFByb3BlcnR5RGVzY3JpcHRvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJEZWJ1Z2dlci5GdW5jdGlvbkRldGFpbHMiLCAiRGVidWdnZXIuQ2Fs
bEZyYW1lIiwgIkNhbnZhcy5UcmFjZUxvZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJEZWJ1Z2dlci5GdW5jdGlvbkRldGFpbHMiLCAiRGVidWdnZXIuQ2FsbEZy
YW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhbnZhcy5U
cmFjZUxvZyIsICJDYW52YXMuUmVzb3VyY2VJbmZvIiwgIkNhbnZhcy5SZXNvdXJjZVN0YXRlIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGlzIHNob3VsZCBi
ZSBhIHRlbXBvcmFyeSBoYWNrLiBUaW1lbGluZUV2ZW50IHNob3VsZCBiZSBjcmVhdGVkIHZpYSBn
ZW5lcmF0ZWQgQysrIEFQSS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlRpbWVsaW5lLlRpbWVsaW5lRXZlbnQiXSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAKaW5kZXggNzQwYjdi
ZDg1NDlkOWVkYjVhNGM5YzIxZDgyYTVkZjdhY2Y5NmEzMy4uZjIxYzIwMmM5NWNmNmM3ZGVkODg1
ZTc2MmMzMTIwYmJmNDE3MTg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuY3BwCkBAIC0xNDAsMTUgKzE0MCw0OCBA
QCB2b2lkIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjp0cmFjZUxvZyhFcnJvclN0cmluZyog
ZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZwogICAgICp0cmFjZUxvZyA9IFR5cGVCdWlsZGVyOjpD
YW52YXM6OlRyYWNlTG9nOjpydW50aW1lQ2FzdChyZXN1bHRWYWx1ZSk7CiB9CiAKLXZvaWQgSW5q
ZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGU6OnJlcGxheVRyYWNlTG9nKEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgY29uc3QgU3RyaW5nJiB0cmFjZUxvZ0lkLCBpbnQgc3RlcE5vLCBTdHJpbmcqIHJl
c3VsdCkKK3ZvaWQgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGU6OnJlcGxheVRyYWNlTG9nKEVy
cm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB0cmFjZUxvZ0lkLCBpbnQgc3Rl
cE5vLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VTdGF0ZT4qIHJlc3VsdCkK
IHsKICAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3Qo
KSwgInJlcGxheVRyYWNlTG9nIik7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQodHJhY2VM
b2dJZCk7CiAgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQoc3RlcE5vKTsKICAgICBSZWZQdHI8
SW5zcGVjdG9yVmFsdWU+IHJlc3VsdFZhbHVlOwogICAgIG1ha2VDYWxsKGZ1bmN0aW9uLCAmcmVz
dWx0VmFsdWUpOwotICAgIGlmICghcmVzdWx0VmFsdWUgfHwgcmVzdWx0VmFsdWUtPnR5cGUoKSAh
PSBJbnNwZWN0b3JWYWx1ZTo6VHlwZVN0cmluZyB8fCAhcmVzdWx0VmFsdWUtPmFzU3RyaW5nKHJl
c3VsdCkpCi0gICAgICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjogcmVwbGF5VHJh
Y2VMb2ciOworICAgIGlmICghcmVzdWx0VmFsdWUgfHwgcmVzdWx0VmFsdWUtPnR5cGUoKSAhPSBJ
bnNwZWN0b3JWYWx1ZTo6VHlwZU9iamVjdCkgeworICAgICAgICBpZiAoIXJlc3VsdFZhbHVlLT5h
c1N0cmluZyhlcnJvclN0cmluZykpCisgICAgICAgICAgICAqZXJyb3JTdHJpbmcgPSAiSW50ZXJu
YWwgZXJyb3I6IHJlcGxheVRyYWNlTG9nIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAq
cmVzdWx0ID0gVHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VTdGF0ZTo6cnVudGltZUNhc3Qo
cmVzdWx0VmFsdWUpOworfQorCit2b2lkIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjpyZXNv
dXJjZUluZm8oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlc291cmNl
SWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZUluZm8+KiByZXN1bHQpCit7
CisgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0aW9uKGluamVjdGVkU2NyaXB0T2JqZWN0KCks
ICJyZXNvdXJjZUluZm8iKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChyZXNvdXJjZUlk
KTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdFZhbHVlOworICAgIG1ha2VDYWxs
KGZ1bmN0aW9uLCAmcmVzdWx0VmFsdWUpOworICAgIGlmICghcmVzdWx0VmFsdWUgfHwgcmVzdWx0
VmFsdWUtPnR5cGUoKSAhPSBJbnNwZWN0b3JWYWx1ZTo6VHlwZU9iamVjdCkgeworICAgICAgICBp
ZiAoIXJlc3VsdFZhbHVlLT5hc1N0cmluZyhlcnJvclN0cmluZykpCisgICAgICAgICAgICAqZXJy
b3JTdHJpbmcgPSAiSW50ZXJuYWwgZXJyb3I6IHJlc291cmNlSW5mbyI7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgKnJlc3VsdCA9IFR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlSW5m
bzo6cnVudGltZUNhc3QocmVzdWx0VmFsdWUpOworfQorCit2b2lkIEluamVjdGVkU2NyaXB0Q2Fu
dmFzTW9kdWxlOjpyZXNvdXJjZVN0YXRlKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiB0cmFjZUxvZ0lkLCBjb25zdCBTdHJpbmcmIHJlc291cmNlSWQsIFJlZlB0cjxUeXBl
QnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZVN0YXRlPiogcmVzdWx0KQoreworICAgIFNjcmlwdEZ1
bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAicmVzb3VyY2VTdGF0
ZSIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KHRyYWNlTG9nSWQpOworICAgIGZ1bmN0
aW9uLmFwcGVuZEFyZ3VtZW50KHJlc291cmNlSWQpOworICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1
ZT4gcmVzdWx0VmFsdWU7CisgICAgbWFrZUNhbGwoZnVuY3Rpb24sICZyZXN1bHRWYWx1ZSk7Cisg
ICAgaWYgKCFyZXN1bHRWYWx1ZSB8fCByZXN1bHRWYWx1ZS0+dHlwZSgpICE9IEluc3BlY3RvclZh
bHVlOjpUeXBlT2JqZWN0KSB7CisgICAgICAgIGlmICghcmVzdWx0VmFsdWUtPmFzU3RyaW5nKGVy
cm9yU3RyaW5nKSkKKyAgICAgICAgICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5hbCBlcnJvcjog
cmVzb3VyY2VTdGF0ZSI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgKnJlc3VsdCA9IFR5
cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlU3RhdGU6OnJ1bnRpbWVDYXN0KHJlc3VsdFZhbHVl
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaAppbmRleCBiNWUxMzYwOTBl
MWNiMTI3MGM4YjM0M2Q0YjIwZWYzMWNmYjZlMjUwLi44OGY1ZjMzNDlkNTg1YjMzMzg2YTRhNzE4
ODBjYWVjZWJlYTgyN2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaApAQCAtNjAsNyArNjAsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzdG9wQ2FwdHVyaW5nKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBkcm9wVHJhY2VMb2coRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IHRyYWNlTG9nKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiwgY29uc3QgaW50KiwgUmVmUHRy
PFR5cGVCdWlsZGVyOjpDYW52YXM6OlRyYWNlTG9nPiopOwotICAgIHZvaWQgcmVwbGF5VHJhY2VM
b2coRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmLCBpbnQsIFN0cmluZyopOworICAgIHZvaWQg
cmVwbGF5VHJhY2VMb2coRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmLCBpbnQsIFJlZlB0cjxU
eXBlQnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZVN0YXRlPiopOworICAgIHZvaWQgcmVzb3VyY2VJ
bmZvKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpDYW52
YXM6OlJlc291cmNlSW5mbz4qKTsKKyAgICB2b2lkIHJlc291cmNlU3RhdGUoRXJyb3JTdHJpbmcq
LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNhbnZh
czo6UmVzb3VyY2VTdGF0ZT4qKTsKIAogcHJpdmF0ZToKICAgICBTY3JpcHRPYmplY3QgY2FsbFdy
YXBDb250ZXh0RnVuY3Rpb24oY29uc3QgU3RyaW5nJiwgY29uc3QgU2NyaXB0T2JqZWN0Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNN
b2R1bGVTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRD
YW52YXNNb2R1bGVTb3VyY2UuanMKaW5kZXggYzllZWViOGY1ZjE5YzlhZWY0NDBjMjJhZGJjMTQ2
ZGIzZWI3ZDFhMS4uZjY5MzVlY2YwODk0M2Y0ZDJlNjYyN2RlNDExMDk2YjM0MWE4ZDY4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9k
dWxlU291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dENhbnZhc01vZHVsZVNvdXJjZS5qcwpAQCAtNzQxLDggKzc0MSw3IEBAIFJlc291cmNlLnByb3Rv
dHlwZSA9IHsKICAgICAgKi8KICAgICB0b0RhdGFVUkw6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAg
ICAgIHZhciBjb250ZXh0UmVzb3VyY2UgPSB0aGlzLmNvbnRleHRSZXNvdXJjZSgpOwotICAgICAg
ICByZXR1cm4gY29udGV4dFJlc291cmNlID09PSB0aGlzID8gIiIgOiBjb250ZXh0UmVzb3VyY2Uu
dG9EYXRhVVJMKCk7CisgICAgICAgIHJldHVybiAiIjsKICAgICB9LAogCiAgICAgLyoqCkBAIC0y
NjA3LDYgKzI2MDYsMTUgQEAgVHJhY2VMb2cucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaWQKKyAgICAgKiBAcmV0dXJuIHtSZXBsYXlhYmxl
UmVzb3VyY2V9CisgICAgICovCisgICAgcmVwbGF5YWJsZVJlc291cmNlOiBmdW5jdGlvbihpZCkK
KyAgICB7CisgICAgICAgIHJldHVybiAvKiogQHR5cGUge1JlcGxheWFibGVSZXNvdXJjZX0gKi8g
KHRoaXMuX3JlcGxheWFibGVzQ2FjaGUuZ2V0KGlkKSk7CisgICAgfSwKKworICAgIC8qKgogICAg
ICAqIEBwYXJhbSB7IVJlc291cmNlfSByZXNvdXJjZQogICAgICAqLwogICAgIGNhcHR1cmVSZXNv
dXJjZTogZnVuY3Rpb24ocmVzb3VyY2UpCkBAIC0yNjQ3LDYgKzI2NTUsMTUgQEAgVHJhY2VMb2dQ
bGF5ZXIucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge251
bWJlcn0gaWQKKyAgICAgKiBAcmV0dXJuIHtSZXNvdXJjZX0KKyAgICAgKi8KKyAgICByZXBsYXlX
b3JsZFJlc291cmNlOiBmdW5jdGlvbihpZCkKKyAgICB7CisgICAgICAgIHJldHVybiAvKiogQHR5
cGUge1Jlc291cmNlfSAqLyAodGhpcy5fcmVwbGF5V29ybGRDYWNoZS5nZXQoaWQpKTsKKyAgICB9
LAorCisgICAgLyoqCiAgICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICAqLwogICAgIG5leHRS
ZXBsYXlTdGVwOiBmdW5jdGlvbigpCkBAIC0yODk3LDEzICsyOTE0LDEzIEBAIEluamVjdGVkQ2Fu
dmFzTW9kdWxlLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
aWQKICAgICAgKiBAcGFyYW0ge251bWJlcj19IHN0YXJ0T2Zmc2V0Ci0gICAgICogQHJldHVybiB7
T2JqZWN0fHN0cmluZ30KKyAgICAgKiBAcmV0dXJuIHshT2JqZWN0fHN0cmluZ30KICAgICAgKi8K
ICAgICB0cmFjZUxvZzogZnVuY3Rpb24oaWQsIHN0YXJ0T2Zmc2V0KQogICAgIHsKICAgICAgICAg
dmFyIHRyYWNlTG9nID0gdGhpcy5fdHJhY2VMb2dzW2lkXTsKICAgICAgICAgaWYgKCF0cmFjZUxv
ZykKLSAgICAgICAgICAgIHJldHVybiAiRXJyb3I6IFRyYWNlIGxvZyB3aXRoIHRoaXMgSUQgbm90
IGZvdW5kLiI7CisgICAgICAgICAgICByZXR1cm4gIkVycm9yOiBUcmFjZSBsb2cgd2l0aCB0aGUg
Z2l2ZW4gSUQgbm90IGZvdW5kLiI7CiAgICAgICAgIHN0YXJ0T2Zmc2V0ID0gTWF0aC5tYXgoMCwg
c3RhcnRPZmZzZXQgfHwgMCk7CiAgICAgICAgIHZhciBhbGl2ZSA9IHRoaXMuX21hbmFnZXIuY2Fw
dHVyaW5nKCkgJiYgdGhpcy5fbWFuYWdlci5sYXN0VHJhY2VMb2coKSA9PT0gdHJhY2VMb2c7CiAg
ICAgICAgIHZhciByZXN1bHQgPSB7CkBAIC0yOTE5LDcgKzI5MzYsNyBAQCBJbmplY3RlZENhbnZh
c01vZHVsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgc3RhY2tUcmFjZSA9IGNhbGwu
c3RhY2tUcmFjZSgpOwogICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IHN0YWNrVHJhY2UgPyBz
dGFja1RyYWNlLmNhbGxGcmFtZSgwKSB8fCB7fSA6IHt9OwogICAgICAgICAgICAgdmFyIHRyYWNl
TG9nSXRlbSA9IHsKLSAgICAgICAgICAgICAgICBjb250ZXh0SWQ6IHRoaXMuX21ha2VDb250ZXh0
SWQoY29udGV4dFJlc291cmNlLmlkKCkpLAorICAgICAgICAgICAgICAgIGNvbnRleHRJZDogdGhp
cy5fbWFrZVN0cmluZ1Jlc291cmNlSWQoY29udGV4dFJlc291cmNlLmlkKCkpLAogICAgICAgICAg
ICAgICAgIHNvdXJjZVVSTDogY2FsbEZyYW1lLnNvdXJjZVVSTCwKICAgICAgICAgICAgICAgICBs
aW5lTnVtYmVyOiBjYWxsRnJhbWUubGluZU51bWJlciwKICAgICAgICAgICAgICAgICBjb2x1bW5O
dW1iZXI6IGNhbGxGcmFtZS5jb2x1bW5OdW1iZXIKQEAgLTI5NTIsMTggKzI5NjksODAgQEAgSW5q
ZWN0ZWRDYW52YXNNb2R1bGUucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAg
KiBAcGFyYW0ge3N0cmluZ30gaWQKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gdHJhY2VMb2dJZAog
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzdGVwTm8KLSAgICAgKiBAcmV0dXJuIHtzdHJpbmd9Cisg
ICAgICogQHJldHVybiB7IU9iamVjdHxzdHJpbmd9CiAgICAgICovCi0gICAgcmVwbGF5VHJhY2VM
b2c6IGZ1bmN0aW9uKGlkLCBzdGVwTm8pCisgICAgcmVwbGF5VHJhY2VMb2c6IGZ1bmN0aW9uKHRy
YWNlTG9nSWQsIHN0ZXBObykKICAgICB7Ci0gICAgICAgIHZhciB0cmFjZUxvZyA9IHRoaXMuX3Ry
YWNlTG9nc1tpZF07CisgICAgICAgIHZhciB0cmFjZUxvZyA9IHRoaXMuX3RyYWNlTG9nc1t0cmFj
ZUxvZ0lkXTsKICAgICAgICAgaWYgKCF0cmFjZUxvZykKLSAgICAgICAgICAgIHJldHVybiAiIjsK
LSAgICAgICAgdGhpcy5fdHJhY2VMb2dQbGF5ZXJzW2lkXSA9IHRoaXMuX3RyYWNlTG9nUGxheWVy
c1tpZF0gfHwgbmV3IFRyYWNlTG9nUGxheWVyKHRyYWNlTG9nKTsKLSAgICAgICAgdmFyIGxhc3RD
YWxsID0gdGhpcy5fdHJhY2VMb2dQbGF5ZXJzW2lkXS5zdGVwVG8oc3RlcE5vKTsKLSAgICAgICAg
cmV0dXJuIGxhc3RDYWxsLnJlc291cmNlKCkudG9EYXRhVVJMKCk7CisgICAgICAgICAgICByZXR1
cm4gIkVycm9yOiBUcmFjZSBsb2cgd2l0aCB0aGUgZ2l2ZW4gSUQgbm90IGZvdW5kLiI7CisgICAg
ICAgIHRoaXMuX3RyYWNlTG9nUGxheWVyc1t0cmFjZUxvZ0lkXSA9IHRoaXMuX3RyYWNlTG9nUGxh
eWVyc1t0cmFjZUxvZ0lkXSB8fCBuZXcgVHJhY2VMb2dQbGF5ZXIodHJhY2VMb2cpOworICAgICAg
ICB2YXIgbGFzdENhbGwgPSB0aGlzLl90cmFjZUxvZ1BsYXllcnNbdHJhY2VMb2dJZF0uc3RlcFRv
KHN0ZXBObyk7CisgICAgICAgIHZhciByZXNvdXJjZSA9IGxhc3RDYWxsLnJlc291cmNlKCk7Cisg
ICAgICAgIHZhciBkYXRhVVJMID0gcmVzb3VyY2UudG9EYXRhVVJMKCk7CisgICAgICAgIGlmICgh
ZGF0YVVSTCkgeworICAgICAgICAgICAgcmVzb3VyY2UgPSByZXNvdXJjZS5jb250ZXh0UmVzb3Vy
Y2UoKTsKKyAgICAgICAgICAgIGRhdGFVUkwgPSByZXNvdXJjZS50b0RhdGFVUkwoKTsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gdGhpcy5fbWFrZVJlc291cmNlU3RhdGUodGhpcy5fbWFrZVN0
cmluZ1Jlc291cmNlSWQocmVzb3VyY2UuaWQoKSksIHRyYWNlTG9nSWQsIGRhdGFVUkwpOworICAg
IH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyaW5nUmVzb3VyY2VJZAor
ICAgICAqIEByZXR1cm4geyFPYmplY3R8c3RyaW5nfQorICAgICAqLworICAgIHJlc291cmNlSW5m
bzogZnVuY3Rpb24oc3RyaW5nUmVzb3VyY2VJZCkKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJj
ZUlkID0gdGhpcy5fcGFyc2VTdHJpbmdJZChzdHJpbmdSZXNvdXJjZUlkKS5yZXNvdXJjZUlkOwor
ICAgICAgICBpZiAoIXJlc291cmNlSWQpCisgICAgICAgICAgICByZXR1cm4gIkVycm9yOiBXcm9u
ZyByZXNvdXJjZSBJRDogIiArIHN0cmluZ1Jlc291cmNlSWQ7CisKKyAgICAgICAgdmFyIHJlcGxh
eWFibGVSZXNvdXJjZSA9IG51bGw7CisgICAgICAgIGZvciAodmFyIGlkIGluIHRoaXMuX3RyYWNl
TG9ncykgeworICAgICAgICAgICAgcmVwbGF5YWJsZVJlc291cmNlID0gdGhpcy5fdHJhY2VMb2dz
W2lkXS5yZXBsYXlhYmxlUmVzb3VyY2UocmVzb3VyY2VJZCk7CisgICAgICAgICAgICBpZiAocmVw
bGF5YWJsZVJlc291cmNlKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
ICAgIGlmICghcmVwbGF5YWJsZVJlc291cmNlKQorICAgICAgICAgICAgcmV0dXJuICJFcnJvcjog
UmVzb3VyY2Ugd2l0aCB0aGUgZ2l2ZW4gSUQgbm90IGZvdW5kLiI7CisKKyAgICAgICAgcmV0dXJu
IHsKKyAgICAgICAgICAgIGlkOiBzdHJpbmdSZXNvdXJjZUlkLAorICAgICAgICAgICAgZGVzY3Jp
cHRpb246IHJlcGxheWFibGVSZXNvdXJjZS5kZXNjcmlwdGlvbigpCisgICAgICAgIH07CisgICAg
fSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0cmFjZUxvZ0lkCisgICAgICog
QHBhcmFtIHtzdHJpbmd9IHN0cmluZ1Jlc291cmNlSWQKKyAgICAgKiBAcmV0dXJuIHshT2JqZWN0
fHN0cmluZ30KKyAgICAgKi8KKyAgICByZXNvdXJjZVN0YXRlOiBmdW5jdGlvbih0cmFjZUxvZ0lk
LCBzdHJpbmdSZXNvdXJjZUlkKQorICAgIHsKKyAgICAgICAgdmFyIHRyYWNlTG9nID0gdGhpcy5f
dHJhY2VMb2dzW3RyYWNlTG9nSWRdOworICAgICAgICBpZiAoIXRyYWNlTG9nKQorICAgICAgICAg
ICAgcmV0dXJuICJFcnJvcjogVHJhY2UgbG9nIHdpdGggdGhlIGdpdmVuIElEIG5vdCBmb3VuZC4i
OworCisgICAgICAgIHZhciB0cmFjZUxvZ1BsYXllciA9IHRoaXMuX3RyYWNlTG9nUGxheWVyc1t0
cmFjZUxvZ0lkXTsKKyAgICAgICAgaWYgKCF0cmFjZUxvZ1BsYXllcikKKyAgICAgICAgICAgIHJl
dHVybiAiRXJyb3I6IFRyYWNlIGxvZyByZXBsYXkgaGFzIG5vdCBzdGFydGVkIHlldC4iOworCisg
ICAgICAgIHZhciBwYXJzZWRTdHJpbmdJZDEgPSB0aGlzLl9wYXJzZVN0cmluZ0lkKHRyYWNlTG9n
SWQpOworICAgICAgICB2YXIgcGFyc2VkU3RyaW5nSWQyID0gdGhpcy5fcGFyc2VTdHJpbmdJZChz
dHJpbmdSZXNvdXJjZUlkKTsKKyAgICAgICAgaWYgKHBhcnNlZFN0cmluZ0lkMS5pbmplY3RlZFNj
cmlwdElkICE9PSBwYXJzZWRTdHJpbmdJZDIuaW5qZWN0ZWRTY3JpcHRJZCkKKyAgICAgICAgICAg
IHJldHVybiAiRXJyb3I6IEJvdGggSURzIG11c3QgcG9pbnQgdG8gdGhlIHNhbWUgaW5qZWN0ZWQg
c2NyaXB0LiI7CisKKyAgICAgICAgdmFyIHJlc291cmNlSWQgPSBwYXJzZWRTdHJpbmdJZDIucmVz
b3VyY2VJZDsKKyAgICAgICAgaWYgKCFyZXNvdXJjZUlkKQorICAgICAgICAgICAgcmV0dXJuICJF
cnJvcjogV3JvbmcgcmVzb3VyY2UgSUQ6ICIgKyBzdHJpbmdSZXNvdXJjZUlkOworCisgICAgICAg
IHZhciByZXNvdXJjZSA9IHRyYWNlTG9nUGxheWVyLnJlcGxheVdvcmxkUmVzb3VyY2UocmVzb3Vy
Y2VJZCk7CisgICAgICAgIGlmICghcmVzb3VyY2UpCisgICAgICAgICAgICByZXR1cm4gIkVycm9y
OiBSZXNvdXJjZSB3aXRoIHRoZSBnaXZlbiBJRCBoYXMgbm90IGJlZW4gcmVwbGF5ZWQgeWV0LiI7
CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX21ha2VSZXNvdXJjZVN0YXRlKHN0cmluZ1Jlc291cmNl
SWQsIHRyYWNlTG9nSWQsIHJlc291cmNlLnRvRGF0YVVSTCgpKTsKICAgICB9LAogCiAgICAgLyoq
CkBAIC0yOTc4LDkgKzMwNTcsMzMgQEAgSW5qZWN0ZWRDYW52YXNNb2R1bGUucHJvdG90eXBlID0g
ewogICAgICAqIEBwYXJhbSB7bnVtYmVyfSByZXNvdXJjZUlkCiAgICAgICogQHJldHVybiB7c3Ry
aW5nfQogICAgICAqLwotICAgIF9tYWtlQ29udGV4dElkOiBmdW5jdGlvbihyZXNvdXJjZUlkKQor
ICAgIF9tYWtlU3RyaW5nUmVzb3VyY2VJZDogZnVuY3Rpb24ocmVzb3VyY2VJZCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiAie1wiaW5qZWN0ZWRTY3JpcHRJZFwiOiIgKyBpbmplY3RlZFNjcmlwdElk
ICsgIixcInJlc291cmNlSWRcIjoiICsgcmVzb3VyY2VJZCArICJ9IjsKKyAgICB9LAorCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ1Jlc291cmNlSWQKKyAgICAgKiBAcGFy
YW0ge3N0cmluZ30gdHJhY2VMb2dJZAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkYXRhVVJMCisg
ICAgICogQHJldHVybiB7IU9iamVjdH0KKyAgICAgKi8KKyAgICBfbWFrZVJlc291cmNlU3RhdGU6
IGZ1bmN0aW9uKHN0cmluZ1Jlc291cmNlSWQsIHRyYWNlTG9nSWQsIGRhdGFVUkwpCisgICAgewor
ICAgICAgICByZXR1cm4geworICAgICAgICAgICAgaWQ6IHN0cmluZ1Jlc291cmNlSWQsCisgICAg
ICAgICAgICB0cmFjZUxvZ0lkOiB0cmFjZUxvZ0lkLAorICAgICAgICAgICAgZGF0YVVSTDogZGF0
YVVSTAorICAgICAgICB9OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gc3RyaW5nSWQKKyAgICAgKiBAcmV0dXJuIHt7aW5qZWN0ZWRTY3JpcHRJZDogbnVtYmVyLCB0
cmFjZUxvZ0lkOiA/bnVtYmVyLCByZXNvdXJjZUlkOiA/bnVtYmVyfX0KKyAgICAgKi8KKyAgICBf
cGFyc2VTdHJpbmdJZDogZnVuY3Rpb24oc3RyaW5nSWQpCiAgICAgewotICAgICAgICByZXR1cm4g
IntcImluamVjdGVkU2NyaXB0SWRcIjoiICsgaW5qZWN0ZWRTY3JpcHRJZCArICIsXCJjYW52YXND
b250ZXh0SWRcIjoiICsgcmVzb3VyY2VJZCArICJ9IjsKKyAgICAgICAgcmV0dXJuIEluamVjdGVk
U2NyaXB0SG9zdC5ldmFsdWF0ZSgiKCIgKyBzdHJpbmdJZCArICIpIik7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24gYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KaW5kZXggYjI1Zjk5MTdjYzFmNzEy
YWRkNGYzZGI3NTY0NDA0ZGYyYjgyOWUyYy4uZGZjNzFkNDcwM2UxZDY4YmUwZDBjNDdlY2U4ODZk
M2ExNDgwY2Q2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ci5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgpAQCAt
MzE5NCw5ICszMTk0LDI2IEBACiAgICAgICAgICJoaWRkZW4iOiB0cnVlLAogICAgICAgICAidHlw
ZXMiOiBbCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgImlkIjogIkNvbnRleHRJZCIs
CisgICAgICAgICAgICAgICAgImlkIjogIlJlc291cmNlSWQiLAogICAgICAgICAgICAgICAgICJ0
eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlVuaXF1ZSBj
b250ZXh0IGlkZW50aWZpZXIuIgorICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJVbmlx
dWUgcmVzb3VyY2UgaWRlbnRpZmllci4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICJpZCI6ICJSZXNvdXJjZUluZm8iLAorICAgICAgICAgICAgICAgICJ0
eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWQiLCAiJHJlZiI6ICJSZXNvdXJjZUlkIiB9LAorICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRlc2NyaXB0aW9uIiwgInR5cGUiOiAic3RyaW5n
IiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAiaWQiOiAiUmVzb3VyY2VTdGF0ZSIsCisgICAgICAgICAgICAgICAgInR5
cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJpZCIsICIkcmVmIjogIlJlc291cmNlSWQiIH0sCisgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidHJhY2VMb2dJZCIsICIkcmVmIjogIlRyYWNlTG9n
SWQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YVVSTCIsICJ0eXBlIjog
InN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJTY3JlZW5zaG90IGRh
dGEgVVJMLiIgfQorICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgImlkIjogIkNhbGxBcmd1bWVudCIsCkBAIC0zMjA5LDcgKzMy
MjYsNyBAQAogICAgICAgICAgICAgICAgICJpZCI6ICJDYWxsIiwKICAgICAgICAgICAgICAgICAi
dHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbnRleHRJZCIsICIkcmVmIjogIkNvbnRleHRJZCIg
fSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZXh0SWQiLCAiJHJlZiI6ICJS
ZXNvdXJjZUlkIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZ1bmN0aW9uTmFt
ZSIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUgfSwKICAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJhcmd1bWVudHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsg
IiRyZWYiOiAiQ2FsbEFyZ3VtZW50IiB9LCAib3B0aW9uYWwiOiB0cnVlIH0sCiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgIiRyZWYiOiAiQ2FsbEFyZ3VtZW50IiwgIm9w
dGlvbmFsIjogdHJ1ZSB9LApAQCAtMzI5Myw3ICszMzEwLDI2IEBACiAgICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAic3RlcE5vIiwgInR5cGUiOiAiaW50ZWdlciIgfQogICAgICAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAic2NyZWVuc2hvdERhdGFVcmwiLCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZVN0YXRlIiwgIiRyZWYiOiAiUmVzb3Vy
Y2VTdGF0ZSIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0UmVzb3VyY2VJbmZvIiwKKyAgICAgICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXNvdXJjZUlkIiwgIiRyZWYiOiAiUmVzb3VyY2VJZCIgfQorICAgICAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicmVzb3VyY2VJbmZvIiwgIiRyZWYiOiAiUmVzb3VyY2VJbmZvIiB9CisgICAgICAgICAgICAg
ICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFt
ZSI6ICJnZXRSZXNvdXJjZVN0YXRlIiwKKyAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0cmFjZUxvZ0lkIiwgIiRyZWYiOiAiVHJh
Y2VMb2dJZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXNvdXJjZUlkIiwg
IiRyZWYiOiAiUmVzb3VyY2VJZCIgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAg
ICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzb3VyY2VT
dGF0ZSIsICIkcmVmIjogIlJlc291cmNlU3RhdGUiIH0KICAgICAgICAgICAgICAgICBdCiAgICAg
ICAgICAgICB9CiAgICAgICAgIF0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNhbnZhc0FnZW50LmNwcAppbmRleCA0ODk1MDkxZmExOGFmYzI1NzU4YjYzZWJhZWE0
YTA3NTY0ZDdjNGY2Li41ZmRlZmI3MGVjYWMxZjgzNGFiOWFkZDI4N2RiZWJiMDc5YTUwMmQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5j
cHAKQEAgLTE2NCwxMyArMTY0LDMxIEBAIHZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmdldFRy
YWNlTG9nKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB0CiAgICAgICAg
IG1vZHVsZS50cmFjZUxvZyhlcnJvclN0cmluZywgdHJhY2VMb2dJZCwgc3RhcnRPZmZzZXQsICZ0
cmFjZUxvZyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlcGxheVRyYWNlTG9n
KEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB0cmFjZUxvZ0lkLCBpbnQg
c3RlcE5vLCBTdHJpbmcqIHJlc3VsdCkKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdlbnQ6OnJlcGxh
eVRyYWNlTG9nKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB0cmFjZUxv
Z0lkLCBpbnQgc3RlcE5vLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VTdGF0
ZT4mIHJlc3VsdCkKIHsKICAgICBpZiAoIWNoZWNrSXNFbmFibGVkKGVycm9yU3RyaW5nKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlIG1vZHVsZSA9IGlu
amVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlRm9yVHJhY2VMb2dJZChlcnJvclN0cmluZywgdHJhY2VM
b2dJZCk7CiAgICAgaWYgKCFtb2R1bGUuaGFzTm9WYWx1ZSgpKQotICAgICAgICBtb2R1bGUucmVw
bGF5VHJhY2VMb2coZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQsIHN0ZXBObywgcmVzdWx0KTsKKyAg
ICAgICAgbW9kdWxlLnJlcGxheVRyYWNlTG9nKGVycm9yU3RyaW5nLCB0cmFjZUxvZ0lkLCBzdGVw
Tm8sICZyZXN1bHQpOworfQorCit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpnZXRSZXNvdXJj
ZUluZm8oRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlc291cmNlSWQs
IFJlZlB0cjxUeXBlQnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZUluZm8+JiByZXN1bHQpCit7Cisg
ICAgaWYgKCFjaGVja0lzRW5hYmxlZChlcnJvclN0cmluZykpCisgICAgICAgIHJldHVybjsKKyAg
ICBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZSBtb2R1bGUgPSBpbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZUZvclRyYWNlTG9nSWQoZXJyb3JTdHJpbmcsIHJlc291cmNlSWQpOworICAgIGlmICgh
bW9kdWxlLmhhc05vVmFsdWUoKSkKKyAgICAgICAgbW9kdWxlLnJlc291cmNlSW5mbyhlcnJvclN0
cmluZywgcmVzb3VyY2VJZCwgJnJlc3VsdCk7Cit9CisKK3ZvaWQgSW5zcGVjdG9yQ2FudmFzQWdl
bnQ6OmdldFJlc291cmNlU3RhdGUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJp
bmcmIHRyYWNlTG9nSWQsIGNvbnN0IFN0cmluZyYgcmVzb3VyY2VJZCwgUmVmUHRyPFR5cGVCdWls
ZGVyOjpDYW52YXM6OlJlc291cmNlU3RhdGU+JiByZXN1bHQpCit7CisgICAgaWYgKCFjaGVja0lz
RW5hYmxlZChlcnJvclN0cmluZykpCisgICAgICAgIHJldHVybjsKKyAgICBJbmplY3RlZFNjcmlw
dENhbnZhc01vZHVsZSBtb2R1bGUgPSBpbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZUZvclRyYWNl
TG9nSWQoZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQpOworICAgIGlmICghbW9kdWxlLmhhc05vVmFs
dWUoKSkKKyAgICAgICAgbW9kdWxlLnJlc291cmNlU3RhdGUoZXJyb3JTdHJpbmcsIHRyYWNlTG9n
SWQsIHJlc291cmNlSWQsICZyZXN1bHQpOwogfQogCiBTY3JpcHRPYmplY3QgSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQ6OndyYXBDYW52YXMyRFJlbmRlcmluZ0NvbnRleHRGb3JJbnN0cnVtZW50YXRpb24o
Y29uc3QgU2NyaXB0T2JqZWN0JiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuaAppbmRleCA1MDI2YzNhNzIzNzJjZDRmYmQzMDRmZjM5
MGM0ZjQ2YmFjYWY2ODdiLi45OThlYTkxMDBhY2U4MzNjYzk0Y2FkMTgzZjQ0YjVkYjRkNDI0Yjg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdl
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQu
aApAQCAtODQsNyArODQsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0Q2FwdHVy
aW5nKEVycm9yU3RyaW5nKiwgU3RyaW5nKik7CiAgICAgdmlydHVhbCB2b2lkIHN0b3BDYXB0dXJp
bmcoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0VHJh
Y2VMb2coRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBpbnQqLCBSZWZQdHI8VHlw
ZUJ1aWxkZXI6OkNhbnZhczo6VHJhY2VMb2c+Jik7Ci0gICAgdmlydHVhbCB2b2lkIHJlcGxheVRy
YWNlTG9nKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiwgaW50LCBTdHJpbmcqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVwbGF5VHJhY2VMb2coRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmLCBp
bnQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZVN0YXRlPiYpOworICAgIHZp
cnR1YWwgdm9pZCBnZXRSZXNvdXJjZUluZm8oRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmLCBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VJbmZvPiYpOworICAgIHZpcnR1YWwg
dm9pZCBnZXRSZXNvdXJjZVN0YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlU3RhdGU+Jik7CiAK
IHByaXZhdGU6CiAgICAgSW5zcGVjdG9yQ2FudmFzQWdlbnQoSW5zdHJ1bWVudGluZ0FnZW50cyos
IEluc3BlY3RvckNvbXBvc2l0ZVN0YXRlKiwgUGFnZSosIEluamVjdGVkU2NyaXB0TWFuYWdlciop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYW52YXNQ
cm9maWxlVmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FudmFz
UHJvZmlsZVZpZXcuanMKaW5kZXggNTFmM2QzZTI1ODk5YWJiMWFlMjU2N2YyMmRjMzBkNmM4OWQw
MmQxOS4uMzZmYTgxODMzYTMyZDMwMDMxYjRhMDI4NmRlZmM4YmFjZjQyNTI3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYW52YXNQcm9maWxlVmlldy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NhbnZhc1Byb2ZpbGVW
aWV3LmpzCkBAIC00OSw3ICs0OSw3IEBAIFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldyA9
IGZ1bmN0aW9uKHByb2ZpbGUpCiAgICAgdGhpcy5fZGVidWdJbmZvRWxlbWVudCA9IHJlcGxheUlt
YWdlQ29udGFpbmVyLmNyZWF0ZUNoaWxkKCJkaXYiKTsKIAogICAgIHZhciByZXBsYXlJbmZvQ29u
dGFpbmVyID0gdGhpcy5fc3BsaXRWaWV3LnNlY29uZEVsZW1lbnQoKTsKLSAgICB2YXIgY29udHJv
bHNDb250YWluZXIgPSByZXBsYXlJbmZvQ29udGFpbmVyLmNyZWF0ZUNoaWxkKCJkaXYiLCAiY2Fu
dmFzLXJlcGxheS1jb250cm9scyIpOworICAgIHZhciBjb250cm9sc0NvbnRhaW5lciA9IHJlcGxh
eUluZm9Db250YWluZXIuY3JlYXRlQ2hpbGQoImRpdiIsICJzdGF0dXMtYmFyIik7CiAgICAgdmFy
IGxvZ0dyaWRDb250YWluZXIgPSByZXBsYXlJbmZvQ29udGFpbmVyLmNyZWF0ZUNoaWxkKCJkaXYi
LCAiY2FudmFzLXJlcGxheS1sb2ciKTsKIAogICAgIHRoaXMuX2NyZWF0ZUNvbnRyb2xCdXR0b24o
Y29udHJvbHNDb250YWluZXIsICJjYW52YXMtcmVwbGF5LWZpcnN0LXN0ZXAiLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIkZpcnN0IGNhbGwuIiksIHRoaXMuX29uUmVwbGF5Rmlyc3RTdGVwQ2xpY2su
YmluZCh0aGlzKSk7CkBAIC01Nyw2ICs1NywxNSBAQCBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmls
ZVZpZXcgPSBmdW5jdGlvbihwcm9maWxlKQogICAgIHRoaXMuX2NyZWF0ZUNvbnRyb2xCdXR0b24o
Y29udHJvbHNDb250YWluZXIsICJjYW52YXMtcmVwbGF5LW5leHQtc3RlcCIsIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiTmV4dCBjYWxsLiIpLCB0aGlzLl9vblJlcGxheVN0ZXBDbGljay5iaW5kKHRo
aXMsIHRydWUpKTsKICAgICB0aGlzLl9jcmVhdGVDb250cm9sQnV0dG9uKGNvbnRyb2xzQ29udGFp
bmVyLCAiY2FudmFzLXJlcGxheS1sYXN0LXN0ZXAiLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkxh
c3QgY2FsbC4iKSwgdGhpcy5fb25SZXBsYXlMYXN0U3RlcENsaWNrLmJpbmQodGhpcykpOwogCisg
ICAgdGhpcy5fcmVwbGF5Q29udGV4dFNlbGVjdG9yID0gbmV3IFdlYkluc3BlY3Rvci5TdGF0dXNC
YXJDb21ib0JveCh0aGlzLl9vblJlcGxheUNvbnRleHRDaGFuZ2VkLmJpbmQodGhpcykpOworICAg
IHRoaXMuX3JlcGxheUNvbnRleHRTZWxlY3Rvci5jcmVhdGVPcHRpb24oIjxzY3JlZW5zaG90IGF1
dG8+IiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTaG93IHNjcmVlbnNob3Qgb2YgdGhlIGxhc3Qg
cmVwbGF5ZWQgcmVzb3VyY2UuIiksICIiKTsKKyAgICBjb250cm9sc0NvbnRhaW5lci5hcHBlbmRD
aGlsZCh0aGlzLl9yZXBsYXlDb250ZXh0U2VsZWN0b3IuZWxlbWVudCk7CisKKyAgICAvKiogQHR5
cGUgeyFPYmplY3QuPHN0cmluZywgYm9vbGVhbj59ICovCisgICAgdGhpcy5fcmVwbGF5Q29udGV4
dHMgPSB7fTsKKyAgICAvKiogQHR5cGUgeyFPYmplY3QuPHN0cmluZywgQ2FudmFzQWdlbnQuUmVz
b3VyY2VTdGF0ZT59ICovCisgICAgdGhpcy5fY3VycmVudFJlc291cmNlU3RhdGVzID0ge307CisK
ICAgICB2YXIgY29sdW1ucyA9IHsgMDoge30sIDE6IHt9LCAyOiB7fSB9OwogICAgIGNvbHVtbnNb
MF0udGl0bGUgPSAiIyI7CiAgICAgY29sdW1uc1swXS5zb3J0YWJsZSA9IHRydWU7CkBAIC0xMTMs
MTMgKzEyMiw0MyBAQCBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlID0g
ewogICAgICAqLwogICAgIF9jcmVhdGVDb250cm9sQnV0dG9uOiBmdW5jdGlvbihwYXJlbnQsIGNs
YXNzTmFtZSwgdGl0bGUsIGNsaWNrQ2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIgYnV0dG9u
ID0gcGFyZW50LmNyZWF0ZUNoaWxkKCJidXR0b24iLCAiY2FudmFzLWNvbnRyb2wtYnV0dG9uIik7
CisgICAgICAgIHZhciBidXR0b24gPSBwYXJlbnQuY3JlYXRlQ2hpbGQoImJ1dHRvbiIsICJzdGF0
dXMtYmFyLWl0ZW0iKTsKICAgICAgICAgYnV0dG9uLmFkZFN0eWxlQ2xhc3MoY2xhc3NOYW1lKTsK
ICAgICAgICAgYnV0dG9uLnRpdGxlID0gdGl0bGU7CiAgICAgICAgIGJ1dHRvbi5jcmVhdGVDaGls
ZCgiaW1nIik7CiAgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGNsaWNr
Q2FsbGJhY2ssIGZhbHNlKTsKICAgICB9LAogCisgICAgX29uUmVwbGF5Q29udGV4dENoYW5nZWQ6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIC8qKgorICAgICAgICAgKiBAcGFyYW0ge3N0cmlu
Zz99IGVycm9yCisgICAgICAgICAqIEBwYXJhbSB7Q2FudmFzQWdlbnQuUmVzb3VyY2VTdGF0ZX0g
cmVzb3VyY2VTdGF0ZQorICAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gZGlkUmVjZWl2ZVJl
c291cmNlU3RhdGUoZXJyb3IsIHJlc291cmNlU3RhdGUpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRoaXMuX2VuYWJsZVdhaXRJY29uKGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChlcnJvcikKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJj
ZVN0YXRlc1tyZXNvdXJjZVN0YXRlLmlkXSA9IHJlc291cmNlU3RhdGU7CisKKyAgICAgICAgICAg
IHZhciBzZWxlY3RlZENvbnRleHRJZCA9IHRoaXMuX3JlcGxheUNvbnRleHRTZWxlY3Rvci5zZWxl
Y3RlZE9wdGlvbigpLnZhbHVlOworICAgICAgICAgICAgaWYgKHNlbGVjdGVkQ29udGV4dElkID09
PSByZXNvdXJjZVN0YXRlLmlkKQorICAgICAgICAgICAgICAgIHRoaXMuX3JlcGxheUltYWdlRWxl
bWVudC5zcmMgPSByZXNvdXJjZVN0YXRlLmRhdGFVUkw7CisgICAgICAgIH0KKworICAgICAgICB2
YXIgc2VsZWN0ZWRDb250ZXh0SWQgPSB0aGlzLl9yZXBsYXlDb250ZXh0U2VsZWN0b3Iuc2VsZWN0
ZWRPcHRpb24oKS52YWx1ZSB8fCAiYXV0byI7CisgICAgICAgIHZhciByZXNvdXJjZVN0YXRlID0g
dGhpcy5fY3VycmVudFJlc291cmNlU3RhdGVzW3NlbGVjdGVkQ29udGV4dElkXTsKKyAgICAgICAg
aWYgKHJlc291cmNlU3RhdGUpCisgICAgICAgICAgICB0aGlzLl9yZXBsYXlJbWFnZUVsZW1lbnQu
c3JjID0gcmVzb3VyY2VTdGF0ZS5kYXRhVVJMOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IHRoaXMuX2VuYWJsZVdhaXRJY29uKHRydWUpOworICAgICAgICAgICAgdGhpcy5fcmVwbGF5SW1h
Z2VFbGVtZW50LnNyYyA9ICJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhBUUFCQUFBQUFD
SDVCQUVLQUFFQUxBQUFBQUFCQUFFQUFBSUNUQUVBT3c9PSI7IC8vIEVtcHR5IHRyYW5zcGFyZW50
IGltYWdlLgorICAgICAgICAgICAgQ2FudmFzQWdlbnQuZ2V0UmVzb3VyY2VTdGF0ZSh0aGlzLl90
cmFjZUxvZ0lkLCBzZWxlY3RlZENvbnRleHRJZCwgZGlkUmVjZWl2ZVJlc291cmNlU3RhdGUuYmlu
ZCh0aGlzKSk7CisgICAgICAgIH0KKyAgICB9LAorCiAgICAgLyoqCiAgICAgICogQHBhcmFtIHti
b29sZWFufSBmb3J3YXJkCiAgICAgICovCkBAIC0xMzcsMTggKzE3NiwxNSBAQCBXZWJJbnNwZWN0
b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgX29uUmVwbGF5Rmlyc3RT
dGVwQ2xpY2s6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciByb290Tm9kZSA9IHRoaXMu
X2xvZ0dyaWQucm9vdE5vZGUoKTsKLSAgICAgICAgdmFyIGNoaWxkcmVuID0gcm9vdE5vZGUgJiYg
cm9vdE5vZGUuY2hpbGRyZW47Ci0gICAgICAgIHZhciBmaXJzdE5vZGUgPSBjaGlsZHJlbiAmJiBj
aGlsZHJlblswXTsKKyAgICAgICAgdmFyIGZpcnN0Tm9kZSA9IHRoaXMuX2xvZ0dyaWQucm9vdE5v
ZGUoKS5jaGlsZHJlblswXTsKICAgICAgICAgaWYgKGZpcnN0Tm9kZSkKICAgICAgICAgICAgIGZp
cnN0Tm9kZS5yZXZlYWxBbmRTZWxlY3QoKTsKICAgICB9LAogCiAgICAgX29uUmVwbGF5TGFzdFN0
ZXBDbGljazogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIHJvb3ROb2RlID0gdGhpcy5f
bG9nR3JpZC5yb290Tm9kZSgpOwotICAgICAgICB2YXIgY2hpbGRyZW4gPSByb290Tm9kZSAmJiBy
b290Tm9kZS5jaGlsZHJlbjsKLSAgICAgICAgdmFyIGxhc3ROb2RlID0gY2hpbGRyZW4gJiYgY2hp
bGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV07CisgICAgICAgIHZhciBjaGlsZHJlbiA9IHRoaXMu
X2xvZ0dyaWQucm9vdE5vZGUoKS5jaGlsZHJlbjsKKyAgICAgICAgdmFyIGxhc3ROb2RlID0gY2hp
bGRyZW5bY2hpbGRyZW4ubGVuZ3RoIC0gMV07CiAgICAgICAgIGlmIChsYXN0Tm9kZSkKICAgICAg
ICAgICAgIGxhc3ROb2RlLnJldmVhbEFuZFNlbGVjdCgpOwogICAgIH0sCkBAIC0xNjEsNyArMTk3
LDcgQEAgV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICAg
ICAgZnVuY3Rpb24gc2hvd1dhaXRJY29uKCkKICAgICAgICAgewogICAgICAgICAgICAgdGhpcy5f
cmVwbGF5SW1hZ2VFbGVtZW50LmFkZFN0eWxlQ2xhc3MoIndhaXQiKTsKLSAgICAgICAgICAgIHRo
aXMuX2RlYnVnSW5mb0VsZW1lbnQudGV4dENvbnRlbnQgPSAiIjsKKyAgICAgICAgICAgIHRoaXMu
X2RlYnVnSW5mb0VsZW1lbnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7CiAgICAgICAgICAgICBk
ZWxldGUgdGhpcy5fc2hvd1dhaXRJY29uVGltZXI7CiAgICAgICAgIH0KIApAQCAtMTczLDcgKzIw
OSw3IEBAIFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5wcm90b3R5cGUgPSB7CiAgICAg
ICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3Nob3dXYWl0SWNvblRpbWVyOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgdGhpcy5fcmVwbGF5SW1hZ2VFbGVtZW50LmVuYWJsZVN0eWxlQ2xhc3Mo
IndhaXQiLCBlbmFibGUpOwotICAgICAgICAgICAgdGhpcy5fZGVidWdJbmZvRWxlbWVudC50ZXh0
Q29udGVudCA9ICIiOworICAgICAgICAgICAgdGhpcy5fZGVidWdJbmZvRWxlbWVudC5lbmFibGVT
dHlsZUNsYXNzKCJoaWRkZW4iLCBlbmFibGUpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMTgz
LDE1ICsyMTksMjUgQEAgV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgICAgaWYgKCFjYWxsTm9kZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
dmFyIHRpbWUgPSBEYXRlLm5vdygpOwotICAgICAgICBmdW5jdGlvbiBkaWRSZXBsYXlUcmFjZUxv
ZyhlcnJvciwgZGF0YVVSTCkKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJhbSB7c3RyaW5n
P30gZXJyb3IKKyAgICAgICAgICogQHBhcmFtIHtDYW52YXNBZ2VudC5SZXNvdXJjZVN0YXRlfSBy
ZXNvdXJjZVN0YXRlCisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBkaWRSZXBsYXlUcmFj
ZUxvZyhlcnJvciwgcmVzb3VyY2VTdGF0ZSkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGNh
bGxOb2RlICE9PSB0aGlzLl9sb2dHcmlkLnNlbGVjdGVkTm9kZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CisKICAgICAgICAgICAgIHRoaXMuX2VuYWJsZVdhaXRJY29uKGZhbHNlKTsKICAgICAg
ICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IHRoaXMuX2N1cnJlbnRSZXNvdXJjZVN0YXRlcyA9IHt9OworICAgICAgICAgICAgdGhpcy5fY3Vy
cmVudFJlc291cmNlU3RhdGVzWyJhdXRvIl0gPSByZXNvdXJjZVN0YXRlOworICAgICAgICAgICAg
dGhpcy5fY3VycmVudFJlc291cmNlU3RhdGVzW3Jlc291cmNlU3RhdGUuaWRdID0gcmVzb3VyY2VT
dGF0ZTsKKwogICAgICAgICAgICAgdGhpcy5fZGVidWdJbmZvRWxlbWVudC50ZXh0Q29udGVudCA9
ICJSZXBsYXkgdGltZTogIiArIChEYXRlLm5vdygpIC0gdGltZSkgKyAibXMiOwotICAgICAgICAg
ICAgdGhpcy5fcmVwbGF5SW1hZ2VFbGVtZW50LnNyYyA9IGRhdGFVUkw7CisgICAgICAgICAgICB0
aGlzLl9vblJlcGxheUNvbnRleHRDaGFuZ2VkKCk7CiAgICAgICAgIH0KICAgICAgICAgdGhpcy5f
ZW5hYmxlV2FpdEljb24odHJ1ZSk7CiAgICAgICAgIENhbnZhc0FnZW50LnJlcGxheVRyYWNlTG9n
KHRoaXMuX3RyYWNlTG9nSWQsIGNhbGxOb2RlLmluZGV4LCBkaWRSZXBsYXlUcmFjZUxvZy5iaW5k
KHRoaXMpKTsKQEAgLTIwMCwyMCArMjQ2LDYwIEBAIFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxl
Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgX2RpZFJlY2VpdmVUcmFjZUxvZzogZnVuY3Rpb24oZXJy
b3IsIHRyYWNlTG9nKQogICAgIHsKICAgICAgICAgdGhpcy5fZW5hYmxlV2FpdEljb24oZmFsc2Up
OwotICAgICAgICB0aGlzLl9sb2dHcmlkLnJvb3ROb2RlKCkucmVtb3ZlQ2hpbGRyZW4oKTsKICAg
ICAgICAgaWYgKGVycm9yIHx8ICF0cmFjZUxvZykKICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgdmFyIGxhc3ROb2RlID0gbnVsbDsKICAgICAgICAgdmFyIGNhbGxzID0gdHJhY2VMb2cuY2Fs
bHM7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwLCBuID0gY2FsbHMubGVuZ3RoOyBpIDwgbjsgKytp
KQotICAgICAgICAgICAgdGhpcy5fbG9nR3JpZC5yb290Tm9kZSgpLmFwcGVuZENoaWxkKHRoaXMu
X2NyZWF0ZUNhbGxOb2RlKGksIGNhbGxzW2ldKSk7Ci0gICAgICAgIHZhciBsYXN0Tm9kZSA9IHRo
aXMuX2xvZ0dyaWQucm9vdE5vZGUoKS5jaGlsZHJlbltjYWxscy5sZW5ndGggLSAxXTsKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDAsIG4gPSBjYWxscy5sZW5ndGg7IGkgPCBuOyArK2kpIHsKKyAgICAg
ICAgICAgIHZhciBjYWxsID0gY2FsbHNbaV07CisgICAgICAgICAgICB0aGlzLl9yZXF1ZXN0UmVw
bGF5Q29udGV4dEluZm8oY2FsbC5jb250ZXh0SWQpOworICAgICAgICAgICAgdmFyIGdyaWROb2Rl
ID0gdGhpcy5fY3JlYXRlQ2FsbE5vZGUoaSwgY2FsbCk7CisgICAgICAgICAgICB0aGlzLl9sb2dH
cmlkLnJvb3ROb2RlKCkuYXBwZW5kQ2hpbGQoZ3JpZE5vZGUpOworICAgICAgICAgICAgbGFzdE5v
ZGUgPSBncmlkTm9kZTsKKyAgICAgICAgfQogICAgICAgICBpZiAobGFzdE5vZGUpCiAgICAgICAg
ICAgICBsYXN0Tm9kZS5yZXZlYWxBbmRTZWxlY3QoKTsKICAgICB9LAogCiAgICAgLyoqCisgICAg
ICogQHBhcmFtIHtzdHJpbmd9IGNvbnRleHRJZAorICAgICAqLworICAgIF9yZXF1ZXN0UmVwbGF5
Q29udGV4dEluZm86IGZ1bmN0aW9uKGNvbnRleHRJZCkKKyAgICB7CisgICAgICAgIGlmICh0aGlz
Ll9yZXBsYXlDb250ZXh0c1tjb250ZXh0SWRdKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB0aGlzLl9yZXBsYXlDb250ZXh0c1tjb250ZXh0SWRdID0gdHJ1ZTsKKyAgICAgICAgLyoqCisg
ICAgICAgICAqIEBwYXJhbSB7c3RyaW5nP30gZXJyb3IKKyAgICAgICAgICogQHBhcmFtIHtDYW52
YXNBZ2VudC5SZXNvdXJjZUluZm99IHJlc291cmNlSW5mbworICAgICAgICAgKi8KKyAgICAgICAg
ZnVuY3Rpb24gZGlkUmVjZWl2ZVJlc291cmNlSW5mbyhlcnJvciwgcmVzb3VyY2VJbmZvKQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBkZWxldGUg
dGhpcy5fcmVwbGF5Q29udGV4dHNbY29udGV4dElkXTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLl9yZXBsYXlDb250ZXh0U2VsZWN0b3Iu
Y3JlYXRlT3B0aW9uKHJlc291cmNlSW5mby5kZXNjcmlwdGlvbiwgV2ViSW5zcGVjdG9yLlVJU3Ry
aW5nKCJTaG93IHNjcmVlbnNob3Qgb2YgdGhpcyBjb250ZXh0J3MgY2FudmFzLiIpLCBjb250ZXh0
SWQpOworICAgICAgICB9CisgICAgICAgIENhbnZhc0FnZW50LmdldFJlc291cmNlSW5mbyhjb250
ZXh0SWQsIGRpZFJlY2VpdmVSZXNvdXJjZUluZm8uYmluZCh0aGlzKSk7CisgICAgfSwKKworICAg
IC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjb250ZXh0SWQKKyAgICAgKi8KKyAgICBfcmVx
dWVzdFJlcGxheUNvbnRleHRTdGF0ZTogZnVuY3Rpb24oY29udGV4dElkKQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2N1cnJlbnRSZXNvdXJjZVN0YXRlc1tjb250ZXh0SWRdKQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgY29uc29sZS5sb2coIj09PT4gX3JlcXVlc3RS
ZXBsYXlDb250ZXh0U3RhdGU6ICIgKyBjb250ZXh0SWQpOworCisgICAgfSwKKworICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleAogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBjYWxs
CisgICAgICogQHJldHVybiB7IVdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGV9CiAgICAgICovCiAg
ICAgX2NyZWF0ZUNhbGxOb2RlOiBmdW5jdGlvbihpbmRleCwgY2FsbCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2NhbnZhc1Byb2ZpbGVyLmNz
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvY2FudmFzUHJvZmlsZXIuY3Nz
CmluZGV4IDg4MzAxNWNjNTczZjQyZGMyZTRjODQzYWQ5NzRiNTc1YzNlODNkY2UuLmE1OGEyN2Y4
YzcyMzQ2N2RmNjU0NmNiNjJjNTkxYTMzMzhlZjUzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvY2FudmFzUHJvZmlsZXIuY3NzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvY2FudmFzUHJvZmlsZXIuY3NzCkBAIC02NCwxNiAr
NjQsNiBAQAogICAgIG1hcmdpbjogLTE2cHggMCAwIC0xNnB4OwogfQogCi0uY2FudmFzLXJlcGxh
eS1jb250cm9scyB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLSAgICBs
ZWZ0OiAwOwotICAgIHJpZ2h0OiAwOwotICAgIGhlaWdodDogMjZweDsKLSAgICBib3JkZXI6IDFw
eCBzb2xpZCAjYWFhOwotICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRp
ZW50KHJnYigyNDMsMjQzLDI0MyksIHJnYigyMzUsMjM1LDIzNSkpOwotfQotCiAuY2FudmFzLXJl
cGxheS1sb2cgewogICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICB0b3A6IDI0cHg7CkBAIC04
MiwzNCArNzIsNiBAQAogICAgIGJvdHRvbTogMDsKIH0KIAotLmNhbnZhcy1jb250cm9sLWJ1dHRv
biB7Ci0gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
LSAgICB3aWR0aDogMzJweDsKLSAgICBoZWlnaHQ6IDI0cHg7Ci0gICAgcGFkZGluZzogMDsKLSAg
ICBtYXJnaW4tbGVmdDogLTFweDsKLSAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwotICAgIGJhY2tn
cm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwotICAgIGJvcmRlcjogMCB0cmFuc3BhcmVudCBub25l
OwotICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwMiwgMjAyLCAyMDIpOwotICAgIGJv
cmRlci1yaWdodDogMXB4IHNvbGlkIHJnYigyMDIsIDIwMiwgMjAyKTsKLX0KLQotLmNhbnZhcy1j
b250cm9sLWJ1dHRvbjphY3RpdmUgewotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYigxNjMsMTYz
LDE2Myk7Ci0gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2IoMTIwLCAxMjAsIDEyMCk7Ci0g
ICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiKDEyMCwgMTIwLCAxMjApOwotfQotCi0uY2Fu
dmFzLWNvbnRyb2wtYnV0dG9uOmRpc2FibGVkIHsKLSAgICBvcGFjaXR5OiAwLjU7Ci19Ci0KLS5j
YW52YXMtY29udHJvbC1idXR0b24gaW1nIHsKLSAgICBtYXJnaW4tdG9wOiAxcHg7Ci19Ci0KIC5j
YW52YXMtcmVwbGF5LWZpcnN0LXN0ZXAgaW1nIHsKICAgICBjb250ZW50OiB1cmwoSW1hZ2VzL2Rl
YnVnZ2VyQ29udGludWUucG5nKTsKICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRl
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5j
c3MKaW5kZXggYTRlZjk1YTE3MTllMjUwNmMxNzZjYTc0MDFlOGFmNzU3OGZjNDFmZi4uMDlmNDcy
ZWZlNjU3NjVkMzIzODdjYjc5YzBjMDdmOTQyMWVhNTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuY3NzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwpAQCAtNjk0LDYgKzY5NCwxMCBA
QCBidXR0b24uc3RhdHVzLWJhci1pdGVtIHsKICAgICBtYXJnaW46IDAgLTFweDsKIH0KIAorLnN0
YXR1cy1iYXIgYnV0dG9uLnN0YXR1cy1iYXItaXRlbSBpbWcgeworICAgIG1hcmdpbi10b3A6IDFw
eDsKK30KKwogLnN0YXR1cy1iYXIgc2VsZWN0LnN0YXR1cy1iYXItaXRlbTphY3RpdmUsCiAuc3Rh
dHVzLWJhciBidXR0b24uc3RhdHVzLWJhci1pdGVtOmFjdGl2ZSB7CiAgICAgYmFja2dyb3VuZC1j
b2xvcjogcmdiKDE2MywxNjMsMTYzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183450</attachid>
            <date>2013-01-18 07:26:35 -0800</date>
            <delta_ts>2013-01-18 07:28:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107274-20130118192334.patch</filename>
            <type>text/plain</type>
            <size>21206</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmE3YzAyNTczOGJhMjY4
MzllZmY2ZWY4OWQ2ZDk3YTUzN2Q1MGY0Ni4uYzFhMDc3N2I3ZDMyOTNiYWU3MDU4ZThlNTg0NjVj
ZDM1ODAwOTkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTAxLTE4ICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtDYW52YXNdIGFkZCBhIGNvbnRleHQgc2VsZWN0b3IgdG8gc2hvdyBzY3JlZW5zaG90IG9m
IGFueSBjYW52YXMgaW4gdGhlIGxvZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA3Mjc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2UgbmVlZCB0byBleHBvc2UgcmVwbGF5YWJsZSByZXNvdXJjZSBpbmZv
IGFuZCByZXBsYXkgc3RhdGUgdmlhIHRoZSBwcm90b2NvbC4KKyAgICAgICAgVGhlIFJlc291cmNl
SW5mbyBkZXNjcmliZXMgYSByZXBsYXlhYmxlIHJlc291cmNlLCBpLmUuIHRoZSBpbmZvIGFib3V0
IGEgcmVzb3VyY2UgdGhhdCB3YXMgc3RvcmVkIHRvIHJlcGxheSBpdCBsYXRlci4KKyAgICAgICAg
VGhlIFJlc291cmNlU3RhdGUgZGVzY3JpYmVzIGEgY3VycmVudCBzdGF0ZSBvZiBhIHJlc291cmNl
IGJlaW5nIHJlcGxheWVkIG9uIHRoZSBiYWNrLWVuZC4KKworICAgICAgICAqIGluc3BlY3Rvci9D
b2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5OgorICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNj
cmlwdENhbnZhc01vZHVsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdENh
bnZhc01vZHVsZTo6cmVwbGF5VHJhY2VMb2cpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZTo6cmVzb3VyY2VJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjpyZXNvdXJjZVN0YXRl
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUuaDoKKyAg
ICAgICAgKEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuanM6CisgICAgICAgICguKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvckNhbnZhc0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNhbnZhc0Fn
ZW50OjpyZXBsYXlUcmFjZUxvZyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvckNhbnZhc0FnZW50OjpnZXRSZXNvdXJjZUluZm8pOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ2FudmFzQWdlbnQ6OmdldFJlc291cmNlU3RhdGUpOgorICAgICAgICAq
IGluc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5oOgorICAgICAgICAoSW5zcGVjdG9yQ2Fu
dmFzQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ2FudmFzUHJvZmlsZVZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBl
Ll9yZXBsYXlUcmFjZUxvZy5kaWRSZXBsYXlUcmFjZUxvZyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlLl9yZXBsYXlUcmFjZUxvZyk6CisKIDIwMTMt
MDEtMTggIEtvbmRhcGFsbHkgS2FseWFuICA8a2FseWFuLmtvbmRhcGFsbHlAaW50ZWwuY29tPgog
CiAgICAgICAgIFtFRkxdW1dlYkdMXSBGaXggTWVtb3J5IGxlYWtzIGluIEVHTCBhbmQgR0xYIHN1
cmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvQ29kZUdlbmVyYXRv
ckluc3BlY3Rvci5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5z
cGVjdG9yLnB5CmluZGV4IGU3MDhkOWU0ZDk4YWNiMWM2YWE1Y2E2YzVhMDBiMWUxMmM3YWE5MzMu
LjYyOWZhMDM5MGVjODEzNTBlOTgwMzU0ODA5MDQ0MWZkY2Q1ZjRlNGEgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVjdG9yLnB5CkBAIC01Nyw3
ICs1Nyw4IEBAIFRZUEVfTkFNRV9GSVhfTUFQID0gewogCiAKIFRZUEVTX1dJVEhfUlVOVElNRV9D
QVNUX1NFVCA9IGZyb3plbnNldChbIlJ1bnRpbWUuUmVtb3RlT2JqZWN0IiwgIlJ1bnRpbWUuUHJv
cGVydHlEZXNjcmlwdG9yIiwgIlJ1bnRpbWUuSW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3IiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVidWdnZXIuRnVuY3Rp
b25EZXRhaWxzIiwgIkRlYnVnZ2VyLkNhbGxGcmFtZSIsICJDYW52YXMuVHJhY2VMb2ciLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRGVidWdnZXIuRnVuY3Rpb25E
ZXRhaWxzIiwgIkRlYnVnZ2VyLkNhbGxGcmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJDYW52YXMuVHJhY2VMb2ciLCAiQ2FudmFzLlJlc291cmNlSW5mbyIs
ICJDYW52YXMuUmVzb3VyY2VTdGF0ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICMgVGhpcyBzaG91bGQgYmUgYSB0ZW1wb3JhcnkgaGFjay4gVGltZWxpbmVFdmVu
dCBzaG91bGQgYmUgY3JlYXRlZCB2aWEgZ2VuZXJhdGVkIEMrKyBBUEkuCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaW1lbGluZS5UaW1lbGluZUV2ZW50Il0pCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52
YXNNb2R1bGUuY3BwCmluZGV4IDc0MGI3YmQ4NTQ5ZDllZGI1YTRjOWMyMWQ4MmE1ZGY3YWNmOTZh
MzMuLmYyMWMyMDJjOTVjZjZjN2RlZDg4NWU3NjJjMzEyMGJiZjQxNzE4NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxl
LmNwcApAQCAtMTQwLDE1ICsxNDAsNDggQEAgdm9pZCBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVs
ZTo6dHJhY2VMb2coRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcKICAgICAq
dHJhY2VMb2cgPSBUeXBlQnVpbGRlcjo6Q2FudmFzOjpUcmFjZUxvZzo6cnVudGltZUNhc3QocmVz
dWx0VmFsdWUpOwogfQogCi12b2lkIEluamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlOjpyZXBsYXlU
cmFjZUxvZyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgdHJhY2VMb2dJ
ZCwgaW50IHN0ZXBObywgU3RyaW5nKiByZXN1bHQpCit2b2lkIEluamVjdGVkU2NyaXB0Q2FudmFz
TW9kdWxlOjpyZXBsYXlUcmFjZUxvZyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0
cmluZyYgdHJhY2VMb2dJZCwgaW50IHN0ZXBObywgUmVmUHRyPFR5cGVCdWlsZGVyOjpDYW52YXM6
OlJlc291cmNlU3RhdGU+KiByZXN1bHQpCiB7CiAgICAgU2NyaXB0RnVuY3Rpb25DYWxsIGZ1bmN0
aW9uKGluamVjdGVkU2NyaXB0T2JqZWN0KCksICJyZXBsYXlUcmFjZUxvZyIpOwogICAgIGZ1bmN0
aW9uLmFwcGVuZEFyZ3VtZW50KHRyYWNlTG9nSWQpOwogICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3Vt
ZW50KHN0ZXBObyk7CiAgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHRWYWx1ZTsKICAg
ICBtYWtlQ2FsbChmdW5jdGlvbiwgJnJlc3VsdFZhbHVlKTsKLSAgICBpZiAoIXJlc3VsdFZhbHVl
IHx8IHJlc3VsdFZhbHVlLT50eXBlKCkgIT0gSW5zcGVjdG9yVmFsdWU6OlR5cGVTdHJpbmcgfHwg
IXJlc3VsdFZhbHVlLT5hc1N0cmluZyhyZXN1bHQpKQotICAgICAgICAqZXJyb3JTdHJpbmcgPSAi
SW50ZXJuYWwgZXJyb3I6IHJlcGxheVRyYWNlTG9nIjsKKyAgICBpZiAoIXJlc3VsdFZhbHVlIHx8
IHJlc3VsdFZhbHVlLT50eXBlKCkgIT0gSW5zcGVjdG9yVmFsdWU6OlR5cGVPYmplY3QpIHsKKyAg
ICAgICAgaWYgKCFyZXN1bHRWYWx1ZS0+YXNTdHJpbmcoZXJyb3JTdHJpbmcpKQorICAgICAgICAg
ICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiByZXBsYXlUcmFjZUxvZyI7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgKnJlc3VsdCA9IFR5cGVCdWlsZGVyOjpDYW52YXM6OlJl
c291cmNlU3RhdGU6OnJ1bnRpbWVDYXN0KHJlc3VsdFZhbHVlKTsKK30KKwordm9pZCBJbmplY3Rl
ZFNjcmlwdENhbnZhc01vZHVsZTo6cmVzb3VyY2VJbmZvKEVycm9yU3RyaW5nKiBlcnJvclN0cmlu
ZywgY29uc3QgU3RyaW5nJiByZXNvdXJjZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNhbnZhczo6
UmVzb3VyY2VJbmZvPiogcmVzdWx0KQoreworICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlv
bihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAicmVzb3VyY2VJbmZvIik7CisgICAgZnVuY3Rpb24u
YXBwZW5kQXJndW1lbnQocmVzb3VyY2VJZCk7CisgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBy
ZXN1bHRWYWx1ZTsKKyAgICBtYWtlQ2FsbChmdW5jdGlvbiwgJnJlc3VsdFZhbHVlKTsKKyAgICBp
ZiAoIXJlc3VsdFZhbHVlIHx8IHJlc3VsdFZhbHVlLT50eXBlKCkgIT0gSW5zcGVjdG9yVmFsdWU6
OlR5cGVPYmplY3QpIHsKKyAgICAgICAgaWYgKCFyZXN1bHRWYWx1ZS0+YXNTdHJpbmcoZXJyb3JT
dHJpbmcpKQorICAgICAgICAgICAgKmVycm9yU3RyaW5nID0gIkludGVybmFsIGVycm9yOiByZXNv
dXJjZUluZm8iOworICAgICAgICByZXR1cm47CisgICAgfQorICAgICpyZXN1bHQgPSBUeXBlQnVp
bGRlcjo6Q2FudmFzOjpSZXNvdXJjZUluZm86OnJ1bnRpbWVDYXN0KHJlc3VsdFZhbHVlKTsKK30K
Kwordm9pZCBJbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZTo6cmVzb3VyY2VTdGF0ZShFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgdHJhY2VMb2dJZCwgY29uc3QgU3RyaW5n
JiByZXNvdXJjZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VTdGF0ZT4q
IHJlc3VsdCkKK3sKKyAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3Jp
cHRPYmplY3QoKSwgInJlc291cmNlU3RhdGUiKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVu
dCh0cmFjZUxvZ0lkKTsKKyAgICBmdW5jdGlvbi5hcHBlbmRBcmd1bWVudChyZXNvdXJjZUlkKTsK
KyAgICBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IHJlc3VsdFZhbHVlOworICAgIG1ha2VDYWxsKGZ1
bmN0aW9uLCAmcmVzdWx0VmFsdWUpOworICAgIGlmICghcmVzdWx0VmFsdWUgfHwgcmVzdWx0VmFs
dWUtPnR5cGUoKSAhPSBJbnNwZWN0b3JWYWx1ZTo6VHlwZU9iamVjdCkgeworICAgICAgICBpZiAo
IXJlc3VsdFZhbHVlLT5hc1N0cmluZyhlcnJvclN0cmluZykpCisgICAgICAgICAgICAqZXJyb3JT
dHJpbmcgPSAiSW50ZXJuYWwgZXJyb3I6IHJlc291cmNlU3RhdGUiOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgICpyZXN1bHQgPSBUeXBlQnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZVN0YXRl
OjpydW50aW1lQ2FzdChyZXN1bHRWYWx1ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdENhbnZh
c01vZHVsZS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFz
TW9kdWxlLmgKaW5kZXggYjVlMTM2MDkwZTFjYjEyNzBjOGIzNDNkNGIyMGVmMzFjZmI2ZTI1MC4u
ODhmNWYzMzQ5ZDU4NWIzMzM4NmE0YTcxODgwY2FlY2ViZWE4MjdhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlLmgKQEAg
LTYwLDcgKzYwLDkgQEAgcHVibGljOgogICAgIHZvaWQgc3RvcENhcHR1cmluZyhFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgZHJvcFRyYWNlTG9nKEVycm9yU3RyaW5nKiwg
Y29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB0cmFjZUxvZyhFcnJvclN0cmluZyosIGNvbnN0IFN0
cmluZyYsIGNvbnN0IGludCosIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q2FudmFzOjpUcmFjZUxvZz4q
KTsKLSAgICB2b2lkIHJlcGxheVRyYWNlTG9nKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiwg
aW50LCBTdHJpbmcqKTsKKyAgICB2b2lkIHJlcGxheVRyYWNlTG9nKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiwgaW50LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVzb3VyY2VTdGF0
ZT4qKTsKKyAgICB2b2lkIHJlc291cmNlSW5mbyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYs
IFJlZlB0cjxUeXBlQnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZUluZm8+Kik7CisgICAgdm9pZCBy
ZXNvdXJjZVN0YXRlKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
UmVmUHRyPFR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291cmNlU3RhdGU+Kik7CiAKIHByaXZhdGU6
CiAgICAgU2NyaXB0T2JqZWN0IGNhbGxXcmFwQ29udGV4dEZ1bmN0aW9uKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFNjcmlwdE9iamVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Q2FudmFzTW9kdWxlU291cmNlLmpzCmluZGV4IGM5ZWVl
YjhmNWYxOWM5YWVmNDQwYzIyYWRiYzE0NmRiM2ViN2QxYTEuLmY2OTM1ZWNmMDg5NDNmNGQyZTY2
MjdkZTQxMTA5NmIzNDFhOGQ2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZVNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVTb3VyY2UuanMKQEAgLTc0MSw4
ICs3NDEsNyBAQCBSZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgdG9EYXRhVVJM
OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgY29udGV4dFJlc291cmNlID0gdGhpcy5j
b250ZXh0UmVzb3VyY2UoKTsKLSAgICAgICAgcmV0dXJuIGNvbnRleHRSZXNvdXJjZSA9PT0gdGhp
cyA/ICIiIDogY29udGV4dFJlc291cmNlLnRvRGF0YVVSTCgpOworICAgICAgICByZXR1cm4gIiI7
CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMjYwNyw2ICsyNjA2LDE1IEBAIFRyYWNlTG9nLnByb3Rv
dHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGlkCisg
ICAgICogQHJldHVybiB7UmVwbGF5YWJsZVJlc291cmNlfQorICAgICAqLworICAgIHJlcGxheWFi
bGVSZXNvdXJjZTogZnVuY3Rpb24oaWQpCisgICAgeworICAgICAgICByZXR1cm4gLyoqIEB0eXBl
IHtSZXBsYXlhYmxlUmVzb3VyY2V9ICovICh0aGlzLl9yZXBsYXlhYmxlc0NhY2hlLmdldChpZCkp
OworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0geyFSZXNvdXJjZX0gcmVzb3VyY2UK
ICAgICAgKi8KICAgICBjYXB0dXJlUmVzb3VyY2U6IGZ1bmN0aW9uKHJlc291cmNlKQpAQCAtMjY0
Nyw2ICsyNjU1LDE1IEBAIFRyYWNlTG9nUGxheWVyLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAg
ICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGlkCisgICAgICogQHJldHVybiB7UmVzb3Vy
Y2V9CisgICAgICovCisgICAgcmVwbGF5V29ybGRSZXNvdXJjZTogZnVuY3Rpb24oaWQpCisgICAg
eworICAgICAgICByZXR1cm4gLyoqIEB0eXBlIHtSZXNvdXJjZX0gKi8gKHRoaXMuX3JlcGxheVdv
cmxkQ2FjaGUuZ2V0KGlkKSk7CisgICAgfSwKKworICAgIC8qKgogICAgICAqIEByZXR1cm4ge251
bWJlcn0KICAgICAgKi8KICAgICBuZXh0UmVwbGF5U3RlcDogZnVuY3Rpb24oKQpAQCAtMjg5Nywx
MyArMjkxNCwxMyBAQCBJbmplY3RlZENhbnZhc01vZHVsZS5wcm90b3R5cGUgPSB7CiAgICAgLyoq
CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGlkCiAgICAgICogQHBhcmFtIHtudW1iZXI9fSBzdGFy
dE9mZnNldAotICAgICAqIEByZXR1cm4ge09iamVjdHxzdHJpbmd9CisgICAgICogQHJldHVybiB7
IU9iamVjdHxzdHJpbmd9CiAgICAgICovCiAgICAgdHJhY2VMb2c6IGZ1bmN0aW9uKGlkLCBzdGFy
dE9mZnNldCkKICAgICB7CiAgICAgICAgIHZhciB0cmFjZUxvZyA9IHRoaXMuX3RyYWNlTG9nc1tp
ZF07CiAgICAgICAgIGlmICghdHJhY2VMb2cpCi0gICAgICAgICAgICByZXR1cm4gIkVycm9yOiBU
cmFjZSBsb2cgd2l0aCB0aGlzIElEIG5vdCBmb3VuZC4iOworICAgICAgICAgICAgcmV0dXJuICJF
cnJvcjogVHJhY2UgbG9nIHdpdGggdGhlIGdpdmVuIElEIG5vdCBmb3VuZC4iOwogICAgICAgICBz
dGFydE9mZnNldCA9IE1hdGgubWF4KDAsIHN0YXJ0T2Zmc2V0IHx8IDApOwogICAgICAgICB2YXIg
YWxpdmUgPSB0aGlzLl9tYW5hZ2VyLmNhcHR1cmluZygpICYmIHRoaXMuX21hbmFnZXIubGFzdFRy
YWNlTG9nKCkgPT09IHRyYWNlTG9nOwogICAgICAgICB2YXIgcmVzdWx0ID0gewpAQCAtMjkxOSw3
ICsyOTM2LDcgQEAgSW5qZWN0ZWRDYW52YXNNb2R1bGUucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgdmFyIHN0YWNrVHJhY2UgPSBjYWxsLnN0YWNrVHJhY2UoKTsKICAgICAgICAgICAgIHZhciBj
YWxsRnJhbWUgPSBzdGFja1RyYWNlID8gc3RhY2tUcmFjZS5jYWxsRnJhbWUoMCkgfHwge30gOiB7
fTsKICAgICAgICAgICAgIHZhciB0cmFjZUxvZ0l0ZW0gPSB7Ci0gICAgICAgICAgICAgICAgY29u
dGV4dElkOiB0aGlzLl9tYWtlQ29udGV4dElkKGNvbnRleHRSZXNvdXJjZS5pZCgpKSwKKyAgICAg
ICAgICAgICAgICBjb250ZXh0SWQ6IHRoaXMuX21ha2VTdHJpbmdSZXNvdXJjZUlkKGNvbnRleHRS
ZXNvdXJjZS5pZCgpKSwKICAgICAgICAgICAgICAgICBzb3VyY2VVUkw6IGNhbGxGcmFtZS5zb3Vy
Y2VVUkwsCiAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogY2FsbEZyYW1lLmxpbmVOdW1iZXIs
CiAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiBjYWxsRnJhbWUuY29sdW1uTnVtYmVyCkBA
IC0yOTUyLDE4ICsyOTY5LDgwIEBAIEluamVjdGVkQ2FudmFzTW9kdWxlLnByb3RvdHlwZSA9IHsK
ICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IGlkCisgICAgICogQHBh
cmFtIHtzdHJpbmd9IHRyYWNlTG9nSWQKICAgICAgKiBAcGFyYW0ge251bWJlcn0gc3RlcE5vCi0g
ICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqIEByZXR1cm4geyFPYmplY3R8c3RyaW5nfQog
ICAgICAqLwotICAgIHJlcGxheVRyYWNlTG9nOiBmdW5jdGlvbihpZCwgc3RlcE5vKQorICAgIHJl
cGxheVRyYWNlTG9nOiBmdW5jdGlvbih0cmFjZUxvZ0lkLCBzdGVwTm8pCiAgICAgewotICAgICAg
ICB2YXIgdHJhY2VMb2cgPSB0aGlzLl90cmFjZUxvZ3NbaWRdOworICAgICAgICB2YXIgdHJhY2VM
b2cgPSB0aGlzLl90cmFjZUxvZ3NbdHJhY2VMb2dJZF07CiAgICAgICAgIGlmICghdHJhY2VMb2cp
Ci0gICAgICAgICAgICByZXR1cm4gIiI7Ci0gICAgICAgIHRoaXMuX3RyYWNlTG9nUGxheWVyc1tp
ZF0gPSB0aGlzLl90cmFjZUxvZ1BsYXllcnNbaWRdIHx8IG5ldyBUcmFjZUxvZ1BsYXllcih0cmFj
ZUxvZyk7Ci0gICAgICAgIHZhciBsYXN0Q2FsbCA9IHRoaXMuX3RyYWNlTG9nUGxheWVyc1tpZF0u
c3RlcFRvKHN0ZXBObyk7Ci0gICAgICAgIHJldHVybiBsYXN0Q2FsbC5yZXNvdXJjZSgpLnRvRGF0
YVVSTCgpOworICAgICAgICAgICAgcmV0dXJuICJFcnJvcjogVHJhY2UgbG9nIHdpdGggdGhlIGdp
dmVuIElEIG5vdCBmb3VuZC4iOworICAgICAgICB0aGlzLl90cmFjZUxvZ1BsYXllcnNbdHJhY2VM
b2dJZF0gPSB0aGlzLl90cmFjZUxvZ1BsYXllcnNbdHJhY2VMb2dJZF0gfHwgbmV3IFRyYWNlTG9n
UGxheWVyKHRyYWNlTG9nKTsKKyAgICAgICAgdmFyIGxhc3RDYWxsID0gdGhpcy5fdHJhY2VMb2dQ
bGF5ZXJzW3RyYWNlTG9nSWRdLnN0ZXBUbyhzdGVwTm8pOworICAgICAgICB2YXIgcmVzb3VyY2Ug
PSBsYXN0Q2FsbC5yZXNvdXJjZSgpOworICAgICAgICB2YXIgZGF0YVVSTCA9IHJlc291cmNlLnRv
RGF0YVVSTCgpOworICAgICAgICBpZiAoIWRhdGFVUkwpIHsKKyAgICAgICAgICAgIHJlc291cmNl
ID0gcmVzb3VyY2UuY29udGV4dFJlc291cmNlKCk7CisgICAgICAgICAgICBkYXRhVVJMID0gcmVz
b3VyY2UudG9EYXRhVVJMKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX21ha2VS
ZXNvdXJjZVN0YXRlKHRoaXMuX21ha2VTdHJpbmdSZXNvdXJjZUlkKHJlc291cmNlLmlkKCkpLCB0
cmFjZUxvZ0lkLCBkYXRhVVJMKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtz
dHJpbmd9IHN0cmluZ1Jlc291cmNlSWQKKyAgICAgKiBAcmV0dXJuIHshT2JqZWN0fHN0cmluZ30K
KyAgICAgKi8KKyAgICByZXNvdXJjZUluZm86IGZ1bmN0aW9uKHN0cmluZ1Jlc291cmNlSWQpCisg
ICAgeworICAgICAgICB2YXIgcmVzb3VyY2VJZCA9IHRoaXMuX3BhcnNlU3RyaW5nSWQoc3RyaW5n
UmVzb3VyY2VJZCkucmVzb3VyY2VJZDsKKyAgICAgICAgaWYgKCFyZXNvdXJjZUlkKQorICAgICAg
ICAgICAgcmV0dXJuICJFcnJvcjogV3JvbmcgcmVzb3VyY2UgSUQ6ICIgKyBzdHJpbmdSZXNvdXJj
ZUlkOworCisgICAgICAgIHZhciByZXBsYXlhYmxlUmVzb3VyY2UgPSBudWxsOworICAgICAgICBm
b3IgKHZhciBpZCBpbiB0aGlzLl90cmFjZUxvZ3MpIHsKKyAgICAgICAgICAgIHJlcGxheWFibGVS
ZXNvdXJjZSA9IHRoaXMuX3RyYWNlTG9nc1tpZF0ucmVwbGF5YWJsZVJlc291cmNlKHJlc291cmNl
SWQpOworICAgICAgICAgICAgaWYgKHJlcGxheWFibGVSZXNvdXJjZSkKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoIXJlcGxheWFibGVSZXNvdXJjZSkKKyAg
ICAgICAgICAgIHJldHVybiAiRXJyb3I6IFJlc291cmNlIHdpdGggdGhlIGdpdmVuIElEIG5vdCBm
b3VuZC4iOworCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBpZDogc3RyaW5nUmVzb3Vy
Y2VJZCwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiByZXBsYXlhYmxlUmVzb3VyY2UuZGVzY3Jp
cHRpb24oKQorICAgICAgICB9OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0
cmluZ30gdHJhY2VMb2dJZAorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJpbmdSZXNvdXJjZUlk
CisgICAgICogQHJldHVybiB7IU9iamVjdHxzdHJpbmd9CisgICAgICovCisgICAgcmVzb3VyY2VT
dGF0ZTogZnVuY3Rpb24odHJhY2VMb2dJZCwgc3RyaW5nUmVzb3VyY2VJZCkKKyAgICB7CisgICAg
ICAgIHZhciB0cmFjZUxvZyA9IHRoaXMuX3RyYWNlTG9nc1t0cmFjZUxvZ0lkXTsKKyAgICAgICAg
aWYgKCF0cmFjZUxvZykKKyAgICAgICAgICAgIHJldHVybiAiRXJyb3I6IFRyYWNlIGxvZyB3aXRo
IHRoZSBnaXZlbiBJRCBub3QgZm91bmQuIjsKKworICAgICAgICB2YXIgdHJhY2VMb2dQbGF5ZXIg
PSB0aGlzLl90cmFjZUxvZ1BsYXllcnNbdHJhY2VMb2dJZF07CisgICAgICAgIGlmICghdHJhY2VM
b2dQbGF5ZXIpCisgICAgICAgICAgICByZXR1cm4gIkVycm9yOiBUcmFjZSBsb2cgcmVwbGF5IGhh
cyBub3Qgc3RhcnRlZCB5ZXQuIjsKKworICAgICAgICB2YXIgcGFyc2VkU3RyaW5nSWQxID0gdGhp
cy5fcGFyc2VTdHJpbmdJZCh0cmFjZUxvZ0lkKTsKKyAgICAgICAgdmFyIHBhcnNlZFN0cmluZ0lk
MiA9IHRoaXMuX3BhcnNlU3RyaW5nSWQoc3RyaW5nUmVzb3VyY2VJZCk7CisgICAgICAgIGlmIChw
YXJzZWRTdHJpbmdJZDEuaW5qZWN0ZWRTY3JpcHRJZCAhPT0gcGFyc2VkU3RyaW5nSWQyLmluamVj
dGVkU2NyaXB0SWQpCisgICAgICAgICAgICByZXR1cm4gIkVycm9yOiBCb3RoIElEcyBtdXN0IHBv
aW50IHRvIHRoZSBzYW1lIGluamVjdGVkIHNjcmlwdC4iOworCisgICAgICAgIHZhciByZXNvdXJj
ZUlkID0gcGFyc2VkU3RyaW5nSWQyLnJlc291cmNlSWQ7CisgICAgICAgIGlmICghcmVzb3VyY2VJ
ZCkKKyAgICAgICAgICAgIHJldHVybiAiRXJyb3I6IFdyb25nIHJlc291cmNlIElEOiAiICsgc3Ry
aW5nUmVzb3VyY2VJZDsKKworICAgICAgICB2YXIgcmVzb3VyY2UgPSB0cmFjZUxvZ1BsYXllci5y
ZXBsYXlXb3JsZFJlc291cmNlKHJlc291cmNlSWQpOworICAgICAgICBpZiAoIXJlc291cmNlKQor
ICAgICAgICAgICAgcmV0dXJuICJFcnJvcjogUmVzb3VyY2Ugd2l0aCB0aGUgZ2l2ZW4gSUQgaGFz
IG5vdCBiZWVuIHJlcGxheWVkIHlldC4iOworCisgICAgICAgIHJldHVybiB0aGlzLl9tYWtlUmVz
b3VyY2VTdGF0ZShzdHJpbmdSZXNvdXJjZUlkLCB0cmFjZUxvZ0lkLCByZXNvdXJjZS50b0RhdGFV
UkwoKSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMjk3OCw5ICszMDU3LDMzIEBAIEluamVjdGVk
Q2FudmFzTW9kdWxlLnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge251bWJlcn0gcmVzb3Vy
Y2VJZAogICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAgKi8KLSAgICBfbWFrZUNvbnRleHRJ
ZDogZnVuY3Rpb24ocmVzb3VyY2VJZCkKKyAgICBfbWFrZVN0cmluZ1Jlc291cmNlSWQ6IGZ1bmN0
aW9uKHJlc291cmNlSWQpCisgICAgeworICAgICAgICByZXR1cm4gIntcImluamVjdGVkU2NyaXB0
SWRcIjoiICsgaW5qZWN0ZWRTY3JpcHRJZCArICIsXCJyZXNvdXJjZUlkXCI6IiArIHJlc291cmNl
SWQgKyAifSI7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJp
bmdSZXNvdXJjZUlkCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHRyYWNlTG9nSWQKKyAgICAgKiBA
cGFyYW0ge3N0cmluZ30gZGF0YVVSTAorICAgICAqIEByZXR1cm4geyFPYmplY3R9CisgICAgICov
CisgICAgX21ha2VSZXNvdXJjZVN0YXRlOiBmdW5jdGlvbihzdHJpbmdSZXNvdXJjZUlkLCB0cmFj
ZUxvZ0lkLCBkYXRhVVJMKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGlk
OiBzdHJpbmdSZXNvdXJjZUlkLAorICAgICAgICAgICAgdHJhY2VMb2dJZDogdHJhY2VMb2dJZCwK
KyAgICAgICAgICAgIGRhdGFVUkw6IGRhdGFVUkwKKyAgICAgICAgfTsKKyAgICB9LAorCisgICAg
LyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHN0cmluZ0lkCisgICAgICogQHJldHVybiB7e2lu
amVjdGVkU2NyaXB0SWQ6IG51bWJlciwgdHJhY2VMb2dJZDogP251bWJlciwgcmVzb3VyY2VJZDog
P251bWJlcn19CisgICAgICovCisgICAgX3BhcnNlU3RyaW5nSWQ6IGZ1bmN0aW9uKHN0cmluZ0lk
KQogICAgIHsKLSAgICAgICAgcmV0dXJuICJ7XCJpbmplY3RlZFNjcmlwdElkXCI6IiArIGluamVj
dGVkU2NyaXB0SWQgKyAiLFwiY2FudmFzQ29udGV4dElkXCI6IiArIHJlc291cmNlSWQgKyAifSI7
CisgICAgICAgIHJldHVybiBJbmplY3RlZFNjcmlwdEhvc3QuZXZhbHVhdGUoIigiICsgc3RyaW5n
SWQgKyAiKSIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5q
c29uCmluZGV4IGIyNWY5OTE3Y2MxZjcxMmFkZDRmM2RiNzU2NDQwNGRmMmI4MjllMmMuLmRmYzcx
ZDQ3MDNlMWQ2OGJlMGQwYzQ3ZWNlODg2ZDNhMTQ4MGNkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTMxOTQsOSArMzE5NCwyNiBAQAogICAgICAgICAiaGlk
ZGVuIjogdHJ1ZSwKICAgICAgICAgInR5cGVzIjogWwogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgICJpZCI6ICJDb250ZXh0SWQiLAorICAgICAgICAgICAgICAgICJpZCI6ICJSZXNvdXJj
ZUlkIiwKICAgICAgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJVbmlxdWUgY29udGV4dCBpZGVudGlmaWVyLiIKKyAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiVW5pcXVlIHJlc291cmNlIGlkZW50aWZpZXIuIgorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAiUmVzb3VyY2VJ
bmZvIiwKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgICAg
ICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlkIiwgIiRy
ZWYiOiAiUmVzb3VyY2VJZCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkZXNj
cmlwdGlvbiIsICJ0eXBlIjogInN0cmluZyIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIlJlc291cmNlU3Rh
dGUiLAorICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAgICAg
InByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWQiLCAiJHJl
ZiI6ICJSZXNvdXJjZUlkIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRyYWNl
TG9nSWQiLCAiJHJlZiI6ICJUcmFjZUxvZ0lkIiB9LAorICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImRhdGFVUkwiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiU2NyZWVuc2hvdCBkYXRhIFVSTC4iIH0KKyAgICAgICAgICAgICAgICBdCiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJpZCI6ICJDYWxs
QXJndW1lbnQiLApAQCAtMzIwOSw3ICszMjI2LDcgQEAKICAgICAgICAgICAgICAgICAiaWQiOiAi
Q2FsbCIsCiAgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKICAgICAgICAgICAgICAg
ICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZXh0
SWQiLCAiJHJlZiI6ICJDb250ZXh0SWQiIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiY29udGV4dElkIiwgIiRyZWYiOiAiUmVzb3VyY2VJZCIgfSwKICAgICAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJmdW5jdGlvbk5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwi
OiB0cnVlIH0sCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXJndW1lbnRzIiwgInR5
cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNhbGxBcmd1bWVudCIgfSwgIm9wdGlv
bmFsIjogdHJ1ZSB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIk
cmVmIjogIkNhbGxBcmd1bWVudCIsICJvcHRpb25hbCI6IHRydWUgfSwKQEAgLTMyOTMsNyArMzMx
MCwyNiBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0ZXBObyIsICJ0eXBlIjog
ImludGVnZXIiIH0KICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5z
IjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcmVlbnNob3REYXRhVXJsIiwg
InR5cGUiOiAic3RyaW5nIiB9CisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzb3Vy
Y2VTdGF0ZSIsICIkcmVmIjogIlJlc291cmNlU3RhdGUiIH0KKyAgICAgICAgICAgICAgICBdCisg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJuYW1lIjogImdl
dFJlc291cmNlSW5mbyIsCisgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzb3VyY2VJZCIsICIkcmVmIjogIlJlc291cmNlSWQi
IH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAg
ICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc291cmNlSW5mbyIsICIkcmVmIjogIlJlc291
cmNlSW5mbyIgfQorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgIm5hbWUiOiAiZ2V0UmVzb3VyY2VTdGF0ZSIsCisgICAgICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
dHJhY2VMb2dJZCIsICIkcmVmIjogIlRyYWNlTG9nSWQiIH0sCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAicmVzb3VyY2VJZCIsICIkcmVmIjogIlJlc291cmNlSWQiIH0KKyAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInJlc291cmNlU3RhdGUiLCAiJHJlZiI6ICJSZXNvdXJjZVN0YXRlIiB9
CiAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgfQogICAgICAgICBdLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5jcHAKaW5kZXggNDg5
NTA5MWZhMThhZmMyNTc1OGI2M2ViYWVhNGEwNzU2NGQ3YzRmNi4uNWZkZWZiNzBlY2FjMWY4MzRh
YjlhZGQyODdkYmViYjA3OWE1MDJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ2FudmFzQWdlbnQuY3BwCkBAIC0xNjQsMTMgKzE2NCwzMSBAQCB2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50OjpnZXRUcmFjZUxvZyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcs
IGNvbnN0IFN0cmluZyYgdAogICAgICAgICBtb2R1bGUudHJhY2VMb2coZXJyb3JTdHJpbmcsIHRy
YWNlTG9nSWQsIHN0YXJ0T2Zmc2V0LCAmdHJhY2VMb2cpOwogfQogCi12b2lkIEluc3BlY3RvckNh
bnZhc0FnZW50OjpyZXBsYXlUcmFjZUxvZyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0
IFN0cmluZyYgdHJhY2VMb2dJZCwgaW50IHN0ZXBObywgU3RyaW5nKiByZXN1bHQpCit2b2lkIElu
c3BlY3RvckNhbnZhc0FnZW50OjpyZXBsYXlUcmFjZUxvZyhFcnJvclN0cmluZyogZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgdHJhY2VMb2dJZCwgaW50IHN0ZXBObywgUmVmUHRyPFR5cGVCdWls
ZGVyOjpDYW52YXM6OlJlc291cmNlU3RhdGU+JiByZXN1bHQpCiB7CiAgICAgaWYgKCFjaGVja0lz
RW5hYmxlZChlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsKICAgICBJbmplY3RlZFNjcmlw
dENhbnZhc01vZHVsZSBtb2R1bGUgPSBpbmplY3RlZFNjcmlwdENhbnZhc01vZHVsZUZvclRyYWNl
TG9nSWQoZXJyb3JTdHJpbmcsIHRyYWNlTG9nSWQpOwogICAgIGlmICghbW9kdWxlLmhhc05vVmFs
dWUoKSkKLSAgICAgICAgbW9kdWxlLnJlcGxheVRyYWNlTG9nKGVycm9yU3RyaW5nLCB0cmFjZUxv
Z0lkLCBzdGVwTm8sIHJlc3VsdCk7CisgICAgICAgIG1vZHVsZS5yZXBsYXlUcmFjZUxvZyhlcnJv
clN0cmluZywgdHJhY2VMb2dJZCwgc3RlcE5vLCAmcmVzdWx0KTsKK30KKwordm9pZCBJbnNwZWN0
b3JDYW52YXNBZ2VudDo6Z2V0UmVzb3VyY2VJbmZvKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywg
Y29uc3QgU3RyaW5nJiByZXNvdXJjZUlkLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNhbnZhczo6UmVz
b3VyY2VJbmZvPiYgcmVzdWx0KQoreworICAgIGlmICghY2hlY2tJc0VuYWJsZWQoZXJyb3JTdHJp
bmcpKQorICAgICAgICByZXR1cm47CisgICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgbW9k
dWxlID0gaW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGVGb3JUcmFjZUxvZ0lkKGVycm9yU3RyaW5n
LCByZXNvdXJjZUlkKTsKKyAgICBpZiAoIW1vZHVsZS5oYXNOb1ZhbHVlKCkpCisgICAgICAgIG1v
ZHVsZS5yZXNvdXJjZUluZm8oZXJyb3JTdHJpbmcsIHJlc291cmNlSWQsICZyZXN1bHQpOworfQor
Cit2b2lkIEluc3BlY3RvckNhbnZhc0FnZW50OjpnZXRSZXNvdXJjZVN0YXRlKEVycm9yU3RyaW5n
KiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiB0cmFjZUxvZ0lkLCBjb25zdCBTdHJpbmcmIHJl
c291cmNlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q2FudmFzOjpSZXNvdXJjZVN0YXRlPiYgcmVz
dWx0KQoreworICAgIGlmICghY2hlY2tJc0VuYWJsZWQoZXJyb3JTdHJpbmcpKQorICAgICAgICBy
ZXR1cm47CisgICAgSW5qZWN0ZWRTY3JpcHRDYW52YXNNb2R1bGUgbW9kdWxlID0gaW5qZWN0ZWRT
Y3JpcHRDYW52YXNNb2R1bGVGb3JUcmFjZUxvZ0lkKGVycm9yU3RyaW5nLCB0cmFjZUxvZ0lkKTsK
KyAgICBpZiAoIW1vZHVsZS5oYXNOb1ZhbHVlKCkpCisgICAgICAgIG1vZHVsZS5yZXNvdXJjZVN0
YXRlKGVycm9yU3RyaW5nLCB0cmFjZUxvZ0lkLCByZXNvdXJjZUlkLCAmcmVzdWx0KTsKIH0KIAog
U2NyaXB0T2JqZWN0IEluc3BlY3RvckNhbnZhc0FnZW50Ojp3cmFwQ2FudmFzMkRSZW5kZXJpbmdD
b250ZXh0Rm9ySW5zdHJ1bWVudGF0aW9uKGNvbnN0IFNjcmlwdE9iamVjdCYgY29udGV4dCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDYW52YXNBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmgKaW5kZXgg
NTAyNmMzYTcyMzcyY2Q0ZmJkMzA0ZmYzOTBjNGY0NmJhY2FmNjg3Yi4uOTk4ZWE5MTAwYWNlODMz
Y2M5NGNhZDE4M2Y0NGI1ZGI0ZDQyNGI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNhbnZhc0FnZW50LmgKQEAgLTg0LDcgKzg0LDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzdGFydENhcHR1cmluZyhFcnJvclN0cmluZyosIFN0cmluZyopOwogICAg
IHZpcnR1YWwgdm9pZCBzdG9wQ2FwdHVyaW5nKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJik7
CiAgICAgdmlydHVhbCB2b2lkIGdldFRyYWNlTG9nKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgaW50KiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpDYW52YXM6OlRyYWNlTG9nPiYpOwot
ICAgIHZpcnR1YWwgdm9pZCByZXBsYXlUcmFjZUxvZyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmlu
ZyYsIGludCwgU3RyaW5nKik7CisgICAgdmlydHVhbCB2b2lkIHJlcGxheVRyYWNlTG9nKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiwgaW50LCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkNhbnZhczo6
UmVzb3VyY2VTdGF0ZT4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVzb3VyY2VJbmZvKEVycm9y
U3RyaW5nKiwgY29uc3QgU3RyaW5nJiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpDYW52YXM6OlJlc291
cmNlSW5mbz4mKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVzb3VyY2VTdGF0ZShFcnJvclN0cmlu
ZyosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q2Fu
dmFzOjpSZXNvdXJjZVN0YXRlPiYpOwogCiBwcml2YXRlOgogICAgIEluc3BlY3RvckNhbnZhc0Fn
ZW50KEluc3RydW1lbnRpbmdBZ2VudHMqLCBJbnNwZWN0b3JDb21wb3NpdGVTdGF0ZSosIFBhZ2Uq
LCBJbmplY3RlZFNjcmlwdE1hbmFnZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvQ2FudmFzUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NhbnZhc1Byb2ZpbGVWaWV3LmpzCmluZGV4IDUxZjNkM2UyNTg5
OWFiYjFhZTI1NjdmMjJkYzMwZDZjODlkMDJkMTkuLmIzNzgxNzc0ODJmNDkyMTFhYmU4NmRmOTMw
MzdhZWQ0NTg3ZWQ2OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvQ2FudmFzUHJvZmlsZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9DYW52YXNQcm9maWxlVmlldy5qcwpAQCAtMTgzLDcgKzE4Myw3IEBAIFdlYklu
c3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghY2Fs
bE5vZGUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciB0aW1lID0gRGF0ZS5ub3co
KTsKLSAgICAgICAgZnVuY3Rpb24gZGlkUmVwbGF5VHJhY2VMb2coZXJyb3IsIGRhdGFVUkwpCisg
ICAgICAgIGZ1bmN0aW9uIGRpZFJlcGxheVRyYWNlTG9nKGVycm9yLCByZXNvdXJjZVN0YXRlKQog
ICAgICAgICB7CiAgICAgICAgICAgICBpZiAoY2FsbE5vZGUgIT09IHRoaXMuX2xvZ0dyaWQuc2Vs
ZWN0ZWROb2RlKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTE5MSw3ICsxOTEsNyBAQCBX
ZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAg
aWYgKGVycm9yKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIHRoaXMuX2Rl
YnVnSW5mb0VsZW1lbnQudGV4dENvbnRlbnQgPSAiUmVwbGF5IHRpbWU6ICIgKyAoRGF0ZS5ub3co
KSAtIHRpbWUpICsgIm1zIjsKLSAgICAgICAgICAgIHRoaXMuX3JlcGxheUltYWdlRWxlbWVudC5z
cmMgPSBkYXRhVVJMOworICAgICAgICAgICAgdGhpcy5fcmVwbGF5SW1hZ2VFbGVtZW50LnNyYyA9
IHJlc291cmNlU3RhdGUuZGF0YVVSTDsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9lbmFibGVX
YWl0SWNvbih0cnVlKTsKICAgICAgICAgQ2FudmFzQWdlbnQucmVwbGF5VHJhY2VMb2codGhpcy5f
dHJhY2VMb2dJZCwgY2FsbE5vZGUuaW5kZXgsIGRpZFJlcGxheVRyYWNlTG9nLmJpbmQodGhpcykp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183456</attachid>
            <date>2013-01-18 07:41:47 -0800</date>
            <delta_ts>2013-01-18 08:03:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107274-20130118193845.patch</filename>
            <type>text/plain</type>
            <size>13277</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTVmNTE0NTdjMjNkYjk0
NjkzMWUxMmU0ZDk5NTQ5ZjU3MDRjMmM5Ni4uY2I2MzM1MDM1ZjZmOWExOGRjNTVjMWZhYmYxZDFk
NjZmNzNhMjhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEzLTAxLTE4ICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtDYW52YXNdIFVJOiBhZGQgYSBjb250ZXh0IHNlbGVjdG9yIHRvIHNob3cgc2NyZWVuc2hv
dCBvZiBhbnkgY2FudmFzIGluIHRoZSBsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNzI3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIGNhbnZhcyBjb250ZXh0IHNlbGVjdG9yIHRvIGRp
c3BsYXkgaW4gdGhlIHJlcGxheSBpbWFnZSBzY3JlZW5zaG90LgorICAgICAgICBEcml2ZS1ieTog
UmV1c2UgY29tbW9uIENTUyBjbGFzcyAic3RhdHVzLWJhci1pdGVtIiB0byByZW1vdmUgYSBsb3Qg
b2YgQ1NTIGR1cGxpY2F0aW9uLgorCisgICAgICAgICogRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvQ2FudmFzUHJvZmlsZVZp
ZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlwZS5fY3JlYXRlQ29udHJv
bEJ1dHRvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90
eXBlLl9vblJlcGxheUNvbnRleHRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYW52
YXNQcm9maWxlVmlldy5wcm90b3R5cGUuX29uUmVwbGF5Rmlyc3RTdGVwQ2xpY2spOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlwZS5fb25SZXBsYXlMYXN0
U3RlcENsaWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5wcm90
b3R5cGUuX2VuYWJsZVdhaXRJY29uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYW52YXNQcm9m
aWxlVmlldy5wcm90b3R5cGUuX3JlcGxheVRyYWNlTG9nLmRpZFJlcGxheVRyYWNlTG9nKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5wcm90b3R5cGUuX3JlcGxheVRy
YWNlTG9nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5wcm90b3R5
cGUuX2RpZFJlY2VpdmVUcmFjZUxvZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FudmFzUHJv
ZmlsZVZpZXcucHJvdG90eXBlLl9yZXF1ZXN0UmVwbGF5Q29udGV4dEluZm8uZGlkUmVjZWl2ZVJl
c291cmNlSW5mbyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJv
dG90eXBlLl9yZXF1ZXN0UmVwbGF5Q29udGV4dEluZm8pOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvY2FudmFzUHJvZmlsZXIuY3NzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmNzczoKKyAgICAgICAgKC5zdGF0dXMtYmFyIGJ1dHRvbi5zdGF0dXMtYmFy
LWl0ZW0gaW1nKToKKworMjAxMy0wMS0xOCAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNocm9t
aXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2FudmFzXSBhZGQgZ2V0UmVzb3Vy
Y2VJbmZvIGFuZCBnZXRSZXNvdXJjZVN0YXRlIG1ldGhvZHMgdG8gdGhlIHByb3RvY29sCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDcyODAKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpz
IGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCmluZGV4
IGY2MjhlYzg0MjgzYjMxYWVkYjk4ZmE3ZGY2OTczZjkyMWY0ZDM3NDkuLjg1MGVjZDA3ZjcwNjEx
ZDNlMjEzMTlhMTdlOWJkZmYyOTNhNDE3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Vu
Z2xpc2gubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9Fbmds
aXNoLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKQEAgLTc4Miw2ICs3ODIsOCBAQCBsb2NhbGl6
ZWRTdHJpbmdzWyJGaXJzdCBjYWxsLiJdID0gIkZpcnN0IGNhbGwuIjsKIGxvY2FsaXplZFN0cmlu
Z3NbIlByZXZpb3VzIGNhbGwuIl0gPSAiUHJldmlvdXMgY2FsbC4iOwogbG9jYWxpemVkU3RyaW5n
c1siTmV4dCBjYWxsLiJdID0gIk5leHQgY2FsbC4iOwogbG9jYWxpemVkU3RyaW5nc1siTGFzdCBj
YWxsLiJdID0gIkxhc3QgY2FsbC4iOworbG9jYWxpemVkU3RyaW5nc1siU2hvdyBzY3JlZW5zaG90
IG9mIHRoZSBsYXN0IHJlcGxheWVkIHJlc291cmNlLiJdID0gIlNob3cgc2NyZWVuc2hvdCBvZiB0
aGUgbGFzdCByZXBsYXllZCByZXNvdXJjZS4iOworbG9jYWxpemVkU3RyaW5nc1siU2hvdyBzY3Jl
ZW5zaG90IG9mIHRoaXMgY29udGV4dCdzIGNhbnZhcy4iXSA9ICJTaG93IHNjcmVlbnNob3Qgb2Yg
dGhpcyBjb250ZXh0J3MgY2FudmFzLiI7CiBsb2NhbGl6ZWRTdHJpbmdzWyJSZWxvYWQiXSA9ICJS
ZWxvYWQiOwogbG9jYWxpemVkU3RyaW5nc1siQmluYXJ5IEZpbGUiXSA9ICJCaW5hcnkgRmlsZSI7
CiBsb2NhbGl6ZWRTdHJpbmdzWyJNb2RpZmljYXRpb24gVGltZSJdID0gIk1vZGlmaWNhdGlvbiBU
aW1lIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2Fu
dmFzUHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0Nh
bnZhc1Byb2ZpbGVWaWV3LmpzCmluZGV4IGIzNzgxNzc0ODJmNDkyMTFhYmU4NmRmOTMwMzdhZWQ0
NTg3ZWQ2OWQuLjRlNmIzZDViNGU0ZDY1OWY5YzI1YjdkZDQ5OTU0ZDVkYjRjMjBkYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ2FudmFzUHJvZmlsZVZp
ZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DYW52YXNQcm9m
aWxlVmlldy5qcwpAQCAtNDksNyArNDksNyBAQCBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZp
ZXcgPSBmdW5jdGlvbihwcm9maWxlKQogICAgIHRoaXMuX2RlYnVnSW5mb0VsZW1lbnQgPSByZXBs
YXlJbWFnZUNvbnRhaW5lci5jcmVhdGVDaGlsZCgiZGl2Iik7CiAKICAgICB2YXIgcmVwbGF5SW5m
b0NvbnRhaW5lciA9IHRoaXMuX3NwbGl0Vmlldy5zZWNvbmRFbGVtZW50KCk7Ci0gICAgdmFyIGNv
bnRyb2xzQ29udGFpbmVyID0gcmVwbGF5SW5mb0NvbnRhaW5lci5jcmVhdGVDaGlsZCgiZGl2Iiwg
ImNhbnZhcy1yZXBsYXktY29udHJvbHMiKTsKKyAgICB2YXIgY29udHJvbHNDb250YWluZXIgPSBy
ZXBsYXlJbmZvQ29udGFpbmVyLmNyZWF0ZUNoaWxkKCJkaXYiLCAic3RhdHVzLWJhciIpOwogICAg
IHZhciBsb2dHcmlkQ29udGFpbmVyID0gcmVwbGF5SW5mb0NvbnRhaW5lci5jcmVhdGVDaGlsZCgi
ZGl2IiwgImNhbnZhcy1yZXBsYXktbG9nIik7CiAKICAgICB0aGlzLl9jcmVhdGVDb250cm9sQnV0
dG9uKGNvbnRyb2xzQ29udGFpbmVyLCAiY2FudmFzLXJlcGxheS1maXJzdC1zdGVwIiwgV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJGaXJzdCBjYWxsLiIpLCB0aGlzLl9vblJlcGxheUZpcnN0U3RlcENs
aWNrLmJpbmQodGhpcykpOwpAQCAtNTcsNiArNTcsMTUgQEAgV2ViSW5zcGVjdG9yLkNhbnZhc1By
b2ZpbGVWaWV3ID0gZnVuY3Rpb24ocHJvZmlsZSkKICAgICB0aGlzLl9jcmVhdGVDb250cm9sQnV0
dG9uKGNvbnRyb2xzQ29udGFpbmVyLCAiY2FudmFzLXJlcGxheS1uZXh0LXN0ZXAiLCBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIk5leHQgY2FsbC4iKSwgdGhpcy5fb25SZXBsYXlTdGVwQ2xpY2suYmlu
ZCh0aGlzLCB0cnVlKSk7CiAgICAgdGhpcy5fY3JlYXRlQ29udHJvbEJ1dHRvbihjb250cm9sc0Nv
bnRhaW5lciwgImNhbnZhcy1yZXBsYXktbGFzdC1zdGVwIiwgV2ViSW5zcGVjdG9yLlVJU3RyaW5n
KCJMYXN0IGNhbGwuIiksIHRoaXMuX29uUmVwbGF5TGFzdFN0ZXBDbGljay5iaW5kKHRoaXMpKTsK
IAorICAgIHRoaXMuX3JlcGxheUNvbnRleHRTZWxlY3RvciA9IG5ldyBXZWJJbnNwZWN0b3IuU3Rh
dHVzQmFyQ29tYm9Cb3godGhpcy5fb25SZXBsYXlDb250ZXh0Q2hhbmdlZC5iaW5kKHRoaXMpKTsK
KyAgICB0aGlzLl9yZXBsYXlDb250ZXh0U2VsZWN0b3IuY3JlYXRlT3B0aW9uKCI8c2NyZWVuc2hv
dCBhdXRvPiIsIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2hvdyBzY3JlZW5zaG90IG9mIHRoZSBs
YXN0IHJlcGxheWVkIHJlc291cmNlLiIpLCAiIik7CisgICAgY29udHJvbHNDb250YWluZXIuYXBw
ZW5kQ2hpbGQodGhpcy5fcmVwbGF5Q29udGV4dFNlbGVjdG9yLmVsZW1lbnQpOworCisgICAgLyoq
IEB0eXBlIHshT2JqZWN0LjxzdHJpbmcsIGJvb2xlYW4+fSAqLworICAgIHRoaXMuX3JlcGxheUNv
bnRleHRzID0ge307CisgICAgLyoqIEB0eXBlIHshT2JqZWN0LjxzdHJpbmcsIENhbnZhc0FnZW50
LlJlc291cmNlU3RhdGU+fSAqLworICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJjZVN0YXRlcyA9IHt9
OworCiAgICAgdmFyIGNvbHVtbnMgPSB7IDA6IHt9LCAxOiB7fSwgMjoge30gfTsKICAgICBjb2x1
bW5zWzBdLnRpdGxlID0gIiMiOwogICAgIGNvbHVtbnNbMF0uc29ydGFibGUgPSB0cnVlOwpAQCAt
MTEzLDEzICsxMjIsNDMgQEAgV2ViSW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlw
ZSA9IHsKICAgICAgKi8KICAgICBfY3JlYXRlQ29udHJvbEJ1dHRvbjogZnVuY3Rpb24ocGFyZW50
LCBjbGFzc05hbWUsIHRpdGxlLCBjbGlja0NhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIGJ1
dHRvbiA9IHBhcmVudC5jcmVhdGVDaGlsZCgiYnV0dG9uIiwgImNhbnZhcy1jb250cm9sLWJ1dHRv
biIpOworICAgICAgICB2YXIgYnV0dG9uID0gcGFyZW50LmNyZWF0ZUNoaWxkKCJidXR0b24iLCAi
c3RhdHVzLWJhci1pdGVtIik7CiAgICAgICAgIGJ1dHRvbi5hZGRTdHlsZUNsYXNzKGNsYXNzTmFt
ZSk7CiAgICAgICAgIGJ1dHRvbi50aXRsZSA9IHRpdGxlOwogICAgICAgICBidXR0b24uY3JlYXRl
Q2hpbGQoImltZyIpOwogICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBj
bGlja0NhbGxiYWNrLCBmYWxzZSk7CiAgICAgfSwKIAorICAgIF9vblJlcGxheUNvbnRleHRDaGFu
Z2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHtz
dHJpbmc/fSBlcnJvcgorICAgICAgICAgKiBAcGFyYW0ge0NhbnZhc0FnZW50LlJlc291cmNlU3Rh
dGV9IHJlc291cmNlU3RhdGUKKyAgICAgICAgICovCisgICAgICAgIGZ1bmN0aW9uIGRpZFJlY2Vp
dmVSZXNvdXJjZVN0YXRlKGVycm9yLCByZXNvdXJjZVN0YXRlKQorICAgICAgICB7CisgICAgICAg
ICAgICB0aGlzLl9lbmFibGVXYWl0SWNvbihmYWxzZSk7CisgICAgICAgICAgICBpZiAoZXJyb3Ip
CisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB0aGlzLl9jdXJyZW50UmVz
b3VyY2VTdGF0ZXNbcmVzb3VyY2VTdGF0ZS5pZF0gPSByZXNvdXJjZVN0YXRlOworCisgICAgICAg
ICAgICB2YXIgc2VsZWN0ZWRDb250ZXh0SWQgPSB0aGlzLl9yZXBsYXlDb250ZXh0U2VsZWN0b3Iu
c2VsZWN0ZWRPcHRpb24oKS52YWx1ZTsKKyAgICAgICAgICAgIGlmIChzZWxlY3RlZENvbnRleHRJ
ZCA9PT0gcmVzb3VyY2VTdGF0ZS5pZCkKKyAgICAgICAgICAgICAgICB0aGlzLl9yZXBsYXlJbWFn
ZUVsZW1lbnQuc3JjID0gcmVzb3VyY2VTdGF0ZS5kYXRhVVJMOworICAgICAgICB9CisKKyAgICAg
ICAgdmFyIHNlbGVjdGVkQ29udGV4dElkID0gdGhpcy5fcmVwbGF5Q29udGV4dFNlbGVjdG9yLnNl
bGVjdGVkT3B0aW9uKCkudmFsdWUgfHwgImF1dG8iOworICAgICAgICB2YXIgcmVzb3VyY2VTdGF0
ZSA9IHRoaXMuX2N1cnJlbnRSZXNvdXJjZVN0YXRlc1tzZWxlY3RlZENvbnRleHRJZF07CisgICAg
ICAgIGlmIChyZXNvdXJjZVN0YXRlKQorICAgICAgICAgICAgdGhpcy5fcmVwbGF5SW1hZ2VFbGVt
ZW50LnNyYyA9IHJlc291cmNlU3RhdGUuZGF0YVVSTDsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICB0aGlzLl9lbmFibGVXYWl0SWNvbih0cnVlKTsKKyAgICAgICAgICAgIHRoaXMuX3JlcGxh
eUltYWdlRWxlbWVudC5zcmMgPSAiZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoQVFBQkFB
QUFBQ0g1QkFFS0FBRUFMQUFBQUFBQkFBRUFBQUlDVEFFQU93PT0iOyAvLyBFbXB0eSB0cmFuc3Bh
cmVudCBpbWFnZS4KKyAgICAgICAgICAgIENhbnZhc0FnZW50LmdldFJlc291cmNlU3RhdGUodGhp
cy5fdHJhY2VMb2dJZCwgc2VsZWN0ZWRDb250ZXh0SWQsIGRpZFJlY2VpdmVSZXNvdXJjZVN0YXRl
LmJpbmQodGhpcykpOworICAgICAgICB9CisgICAgfSwKKwogICAgIC8qKgogICAgICAqIEBwYXJh
bSB7Ym9vbGVhbn0gZm9yd2FyZAogICAgICAqLwpAQCAtMTM3LDE4ICsxNzYsMTUgQEAgV2ViSW5z
cGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlwZSA9IHsKIAogICAgIF9vblJlcGxheUZp
cnN0U3RlcENsaWNrOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgcm9vdE5vZGUgPSB0
aGlzLl9sb2dHcmlkLnJvb3ROb2RlKCk7Ci0gICAgICAgIHZhciBjaGlsZHJlbiA9IHJvb3ROb2Rl
ICYmIHJvb3ROb2RlLmNoaWxkcmVuOwotICAgICAgICB2YXIgZmlyc3ROb2RlID0gY2hpbGRyZW4g
JiYgY2hpbGRyZW5bMF07CisgICAgICAgIHZhciBmaXJzdE5vZGUgPSB0aGlzLl9sb2dHcmlkLnJv
b3ROb2RlKCkuY2hpbGRyZW5bMF07CiAgICAgICAgIGlmIChmaXJzdE5vZGUpCiAgICAgICAgICAg
ICBmaXJzdE5vZGUucmV2ZWFsQW5kU2VsZWN0KCk7CiAgICAgfSwKIAogICAgIF9vblJlcGxheUxh
c3RTdGVwQ2xpY2s6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciByb290Tm9kZSA9IHRo
aXMuX2xvZ0dyaWQucm9vdE5vZGUoKTsKLSAgICAgICAgdmFyIGNoaWxkcmVuID0gcm9vdE5vZGUg
JiYgcm9vdE5vZGUuY2hpbGRyZW47Ci0gICAgICAgIHZhciBsYXN0Tm9kZSA9IGNoaWxkcmVuICYm
IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdOworICAgICAgICB2YXIgY2hpbGRyZW4gPSB0
aGlzLl9sb2dHcmlkLnJvb3ROb2RlKCkuY2hpbGRyZW47CisgICAgICAgIHZhciBsYXN0Tm9kZSA9
IGNoaWxkcmVuW2NoaWxkcmVuLmxlbmd0aCAtIDFdOwogICAgICAgICBpZiAobGFzdE5vZGUpCiAg
ICAgICAgICAgICBsYXN0Tm9kZS5yZXZlYWxBbmRTZWxlY3QoKTsKICAgICB9LApAQCAtMTYxLDcg
KzE5Nyw3IEBAIFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGZ1bmN0aW9uIHNob3dXYWl0SWNvbigpCiAgICAgICAgIHsKICAgICAgICAgICAgIHRo
aXMuX3JlcGxheUltYWdlRWxlbWVudC5hZGRTdHlsZUNsYXNzKCJ3YWl0Iik7Ci0gICAgICAgICAg
ICB0aGlzLl9kZWJ1Z0luZm9FbGVtZW50LnRleHRDb250ZW50ID0gIiI7CisgICAgICAgICAgICB0
aGlzLl9kZWJ1Z0luZm9FbGVtZW50LmFkZFN0eWxlQ2xhc3MoImhpZGRlbiIpOwogICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX3Nob3dXYWl0SWNvblRpbWVyOwogICAgICAgICB9CiAKQEAgLTE3Myw3
ICsyMDksNyBAQCBXZWJJbnNwZWN0b3IuQ2FudmFzUHJvZmlsZVZpZXcucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9zaG93V2FpdEljb25UaW1lcjsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHRoaXMuX3JlcGxheUltYWdlRWxlbWVudC5lbmFibGVTdHlsZUNs
YXNzKCJ3YWl0IiwgZW5hYmxlKTsKLSAgICAgICAgICAgIHRoaXMuX2RlYnVnSW5mb0VsZW1lbnQu
dGV4dENvbnRlbnQgPSAiIjsKKyAgICAgICAgICAgIHRoaXMuX2RlYnVnSW5mb0VsZW1lbnQuZW5h
YmxlU3R5bGVDbGFzcygiaGlkZGVuIiwgZW5hYmxlKTsKICAgICAgICAgfQogICAgIH0sCiAKQEAg
LTE4MywxNSArMjE5LDI1IEBAIFdlYkluc3BlY3Rvci5DYW52YXNQcm9maWxlVmlldy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGlmICghY2FsbE5vZGUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIHZhciB0aW1lID0gRGF0ZS5ub3coKTsKKyAgICAgICAgLyoqCisgICAgICAgICAqIEBwYXJh
bSB7c3RyaW5nP30gZXJyb3IKKyAgICAgICAgICogQHBhcmFtIHtDYW52YXNBZ2VudC5SZXNvdXJj
ZVN0YXRlfSByZXNvdXJjZVN0YXRlCisgICAgICAgICAqLwogICAgICAgICBmdW5jdGlvbiBkaWRS
ZXBsYXlUcmFjZUxvZyhlcnJvciwgcmVzb3VyY2VTdGF0ZSkKICAgICAgICAgewogICAgICAgICAg
ICAgaWYgKGNhbGxOb2RlICE9PSB0aGlzLl9sb2dHcmlkLnNlbGVjdGVkTm9kZSkKICAgICAgICAg
ICAgICAgICByZXR1cm47CisKICAgICAgICAgICAgIHRoaXMuX2VuYWJsZVdhaXRJY29uKGZhbHNl
KTsKICAgICAgICAgICAgIGlmIChlcnJvcikKICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgIHRoaXMuX2N1cnJlbnRSZXNvdXJjZVN0YXRlcyA9IHt9OworICAgICAgICAgICAg
dGhpcy5fY3VycmVudFJlc291cmNlU3RhdGVzWyJhdXRvIl0gPSByZXNvdXJjZVN0YXRlOworICAg
ICAgICAgICAgdGhpcy5fY3VycmVudFJlc291cmNlU3RhdGVzW3Jlc291cmNlU3RhdGUuaWRdID0g
cmVzb3VyY2VTdGF0ZTsKKwogICAgICAgICAgICAgdGhpcy5fZGVidWdJbmZvRWxlbWVudC50ZXh0
Q29udGVudCA9ICJSZXBsYXkgdGltZTogIiArIChEYXRlLm5vdygpIC0gdGltZSkgKyAibXMiOwot
ICAgICAgICAgICAgdGhpcy5fcmVwbGF5SW1hZ2VFbGVtZW50LnNyYyA9IHJlc291cmNlU3RhdGUu
ZGF0YVVSTDsKKyAgICAgICAgICAgIHRoaXMuX29uUmVwbGF5Q29udGV4dENoYW5nZWQoKTsKICAg
ICAgICAgfQogICAgICAgICB0aGlzLl9lbmFibGVXYWl0SWNvbih0cnVlKTsKICAgICAgICAgQ2Fu
dmFzQWdlbnQucmVwbGF5VHJhY2VMb2codGhpcy5fdHJhY2VMb2dJZCwgY2FsbE5vZGUuaW5kZXgs
IGRpZFJlcGxheVRyYWNlTG9nLmJpbmQodGhpcykpOwpAQCAtMjAwLDIwICsyNDYsNDggQEAgV2Vi
SW5zcGVjdG9yLkNhbnZhc1Byb2ZpbGVWaWV3LnByb3RvdHlwZSA9IHsKICAgICBfZGlkUmVjZWl2
ZVRyYWNlTG9nOiBmdW5jdGlvbihlcnJvciwgdHJhY2VMb2cpCiAgICAgewogICAgICAgICB0aGlz
Ll9lbmFibGVXYWl0SWNvbihmYWxzZSk7Ci0gICAgICAgIHRoaXMuX2xvZ0dyaWQucm9vdE5vZGUo
KS5yZW1vdmVDaGlsZHJlbigpOwogICAgICAgICBpZiAoZXJyb3IgfHwgIXRyYWNlTG9nKQogICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB2YXIgbGFzdE5vZGUgPSBudWxsOwogICAgICAgICB2
YXIgY2FsbHMgPSB0cmFjZUxvZy5jYWxsczsKLSAgICAgICAgZm9yICh2YXIgaSA9IDAsIG4gPSBj
YWxscy5sZW5ndGg7IGkgPCBuOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9sb2dHcmlkLnJvb3RO
b2RlKCkuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlQ2FsbE5vZGUoaSwgY2FsbHNbaV0pKTsKLSAg
ICAgICAgdmFyIGxhc3ROb2RlID0gdGhpcy5fbG9nR3JpZC5yb290Tm9kZSgpLmNoaWxkcmVuW2Nh
bGxzLmxlbmd0aCAtIDFdOworICAgICAgICBmb3IgKHZhciBpID0gMCwgbiA9IGNhbGxzLmxlbmd0
aDsgaSA8IG47ICsraSkgeworICAgICAgICAgICAgdmFyIGNhbGwgPSBjYWxsc1tpXTsKKyAgICAg
ICAgICAgIHRoaXMuX3JlcXVlc3RSZXBsYXlDb250ZXh0SW5mbyhjYWxsLmNvbnRleHRJZCk7Cisg
ICAgICAgICAgICB2YXIgZ3JpZE5vZGUgPSB0aGlzLl9jcmVhdGVDYWxsTm9kZShpLCBjYWxsKTsK
KyAgICAgICAgICAgIHRoaXMuX2xvZ0dyaWQucm9vdE5vZGUoKS5hcHBlbmRDaGlsZChncmlkTm9k
ZSk7CisgICAgICAgICAgICBsYXN0Tm9kZSA9IGdyaWROb2RlOworICAgICAgICB9CiAgICAgICAg
IGlmIChsYXN0Tm9kZSkKICAgICAgICAgICAgIGxhc3ROb2RlLnJldmVhbEFuZFNlbGVjdCgpOwog
ICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gY29udGV4dElkCisgICAg
ICovCisgICAgX3JlcXVlc3RSZXBsYXlDb250ZXh0SW5mbzogZnVuY3Rpb24oY29udGV4dElkKQor
ICAgIHsKKyAgICAgICAgaWYgKHRoaXMuX3JlcGxheUNvbnRleHRzW2NvbnRleHRJZF0pCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX3JlcGxheUNvbnRleHRzW2NvbnRleHRJZF0g
PSB0cnVlOworICAgICAgICAvKioKKyAgICAgICAgICogQHBhcmFtIHtzdHJpbmc/fSBlcnJvcgor
ICAgICAgICAgKiBAcGFyYW0ge0NhbnZhc0FnZW50LlJlc291cmNlSW5mb30gcmVzb3VyY2VJbmZv
CisgICAgICAgICAqLworICAgICAgICBmdW5jdGlvbiBkaWRSZWNlaXZlUmVzb3VyY2VJbmZvKGVy
cm9yLCByZXNvdXJjZUluZm8pCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlcnJvcikgewor
ICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9yZXBsYXlDb250ZXh0c1tjb250ZXh0SWRdOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMu
X3JlcGxheUNvbnRleHRTZWxlY3Rvci5jcmVhdGVPcHRpb24ocmVzb3VyY2VJbmZvLmRlc2NyaXB0
aW9uLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNob3cgc2NyZWVuc2hvdCBvZiB0aGlzIGNvbnRl
eHQncyBjYW52YXMuIiksIGNvbnRleHRJZCk7CisgICAgICAgIH0KKyAgICAgICAgQ2FudmFzQWdl
bnQuZ2V0UmVzb3VyY2VJbmZvKGNvbnRleHRJZCwgZGlkUmVjZWl2ZVJlc291cmNlSW5mby5iaW5k
KHRoaXMpKTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4
CiAgICAgICogQHBhcmFtIHtPYmplY3R9IGNhbGwKKyAgICAgKiBAcmV0dXJuIHshV2ViSW5zcGVj
dG9yLkRhdGFHcmlkTm9kZX0KICAgICAgKi8KICAgICBfY3JlYXRlQ2FsbE5vZGU6IGZ1bmN0aW9u
KGluZGV4LCBjYWxsKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvY2FudmFzUHJvZmlsZXIuY3NzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9jYW52YXNQcm9maWxlci5jc3MKaW5kZXggODgzMDE1Y2M1NzNmNDJkYzJlNGM4
NDNhZDk3NGI1NzVjM2U4M2RjZS4uYTU4YTI3ZjhjNzIzNDY3ZGY2NTQ2Y2I2MmM1OTFhMzMzOGVm
NTNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9jYW52
YXNQcm9maWxlci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9j
YW52YXNQcm9maWxlci5jc3MKQEAgLTY0LDE2ICs2NCw2IEBACiAgICAgbWFyZ2luOiAtMTZweCAw
IDAgLTE2cHg7CiB9CiAKLS5jYW52YXMtcmVwbGF5LWNvbnRyb2xzIHsKLSAgICBwb3NpdGlvbjog
YWJzb2x1dGU7Ci0gICAgdG9wOiAwOwotICAgIGxlZnQ6IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAg
aGVpZ2h0OiAyNnB4OwotICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7Ci0gICAgYmFja2dyb3Vu
ZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQocmdiKDI0MywyNDMsMjQzKSwgcmdiKDIz
NSwyMzUsMjM1KSk7Ci19Ci0KIC5jYW52YXMtcmVwbGF5LWxvZyB7CiAgICAgcG9zaXRpb246IGFi
c29sdXRlOwogICAgIHRvcDogMjRweDsKQEAgLTgyLDM0ICs3Miw2IEBACiAgICAgYm90dG9tOiAw
OwogfQogCi0uY2FudmFzLWNvbnRyb2wtYnV0dG9uIHsKLSAgICBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHdpZHRoOiAzMnB4OwotICAgIGhlaWdo
dDogMjRweDsKLSAgICBwYWRkaW5nOiAwOwotICAgIG1hcmdpbi1sZWZ0OiAtMXB4OwotICAgIHZl
cnRpY2FsLWFsaWduOiB0b3A7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Ci0g
ICAgYm9yZGVyOiAwIHRyYW5zcGFyZW50IG5vbmU7Ci0gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xp
ZCByZ2IoMjAyLCAyMDIsIDIwMik7Ci0gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiKDIw
MiwgMjAyLCAyMDIpOwotfQotCi0uY2FudmFzLWNvbnRyb2wtYnV0dG9uOmFjdGl2ZSB7Ci0gICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiKDE2MywxNjMsMTYzKTsKLSAgICBib3JkZXItbGVmdDogMXB4
IHNvbGlkIHJnYigxMjAsIDEyMCwgMTIwKTsKLSAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBy
Z2IoMTIwLCAxMjAsIDEyMCk7Ci19Ci0KLS5jYW52YXMtY29udHJvbC1idXR0b246ZGlzYWJsZWQg
ewotICAgIG9wYWNpdHk6IDAuNTsKLX0KLQotLmNhbnZhcy1jb250cm9sLWJ1dHRvbiBpbWcgewot
ICAgIG1hcmdpbi10b3A6IDFweDsKLX0KLQogLmNhbnZhcy1yZXBsYXktZmlyc3Qtc3RlcCBpbWcg
ewogICAgIGNvbnRlbnQ6IHVybChJbWFnZXMvZGVidWdnZXJDb250aW51ZS5wbmcpOwogICAgIC13
ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmNzcwppbmRleCBhNGVmOTVhMTcxOWUyNTA2YzE3
NmNhNzQwMWU4YWY3NTc4ZmM0MWZmLi4wOWY0NzJlZmU2NTc2NWQzMjM4N2NiNzljMGMwN2Y5NDIx
ZWE1MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuY3NzCkBAIC02OTQsNiArNjk0LDEwIEBAIGJ1dHRvbi5zdGF0dXMtYmFyLWl0ZW0gewog
ICAgIG1hcmdpbjogMCAtMXB4OwogfQogCisuc3RhdHVzLWJhciBidXR0b24uc3RhdHVzLWJhci1p
dGVtIGltZyB7CisgICAgbWFyZ2luLXRvcDogMXB4OworfQorCiAuc3RhdHVzLWJhciBzZWxlY3Qu
c3RhdHVzLWJhci1pdGVtOmFjdGl2ZSwKIC5zdGF0dXMtYmFyIGJ1dHRvbi5zdGF0dXMtYmFyLWl0
ZW06YWN0aXZlIHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTYzLDE2MywxNjMpOwo=
</data>
<flag name="review"
          id="201842"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>