<?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>22570</bug_id>
          
          <creation_ts>2008-12-01 11:53:31 -0800</creation_ts>
          <short_desc>Issues rendering reflected, overflow:hidden elements</short_desc>
          <delta_ts>2008-12-18 09:43:28 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100843</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-01 11:53:31 -0800</bug_when>
    <thetext>Testcase shows a problem where rendering of an element with overflow:hidden breaks when it has a reflection, and the reflection is not rendered correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100844</commentid>
    <comment_count>1</comment_count>
      <attachid>25632</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-01 11:54:04 -0800</bug_when>
    <thetext>Created attachment 25632
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100845</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-01 11:54:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/6385962&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100850</commentid>
    <comment_count>3</comment_count>
      <attachid>25633</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-01 12:17:43 -0800</bug_when>
    <thetext>Created attachment 25633
Patch, testcase, changelog

Here&apos;s a sledgehammer approach: nuke the cached clip rects before and after rendering the reflection.

I also renamed the confusing clearClipRect()/clearClipRects().

A better approach might be to allow the computation of a non-cached set of clip rects, and only use those transiently during reflection painting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100902</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-01 15:44:11 -0800</bug_when>
    <thetext>I fix the misspelling of clearClipRectsIncludingDescedants before committing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101210</commentid>
    <comment_count>5</comment_count>
      <attachid>25633</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-12-03 09:18:47 -0800</bug_when>
    <thetext>Comment on attachment 25633
Patch, testcase, changelog

Descedants should be Descendants.

Reflections don&apos;t change the painting root. Maybe you meant that the root layer gets shifted because the reflection has a transform. The comment is wrong, since the |paintingRoot| argument doesn&apos;t change.

Anyway rather than clearing the cached results (twice), I think a simpler fix might be to just make the reflection painting not use the cached values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101211</commentid>
    <comment_count>6</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-12-03 09:19:13 -0800</bug_when>
    <thetext>However I&apos;ll still r+ it if you fix the comments and typos.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101212</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-03 09:25:27 -0800</bug_when>
    <thetext>I&apos;ll change it so that reflection painting doesn&apos;t use the cached values. That will require the ability to compute clipRects independently of caching them, which may be useful for other reasons (but might get messy to do up the parent chain).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>101751</commentid>
    <comment_count>8</comment_count>
      <attachid>25830</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-07 09:50:13 -0800</bug_when>
    <thetext>Created attachment 25830
Just the clearClipRect(s) method renames as step 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102102</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-10 09:18:37 -0800</bug_when>
    <thetext>Cleanup patch committed:
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/rendering/RenderBox.cpp
	M	WebCore/rendering/RenderLayer.cpp
	M	WebCore/rendering/RenderLayer.h
	M	WebCore/rendering/RenderObject.cpp
	M	WebCore/rendering/RenderWidget.cpp
Committed r39175

Keeping open for the actual fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102865</commentid>
    <comment_count>10</comment_count>
      <attachid>26115</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-17 23:29:03 -0800</bug_when>
    <thetext>Created attachment 26115
Patch, testcase, changelog

This patch does the right thing; it adds the ability to compute clipRects on the fly, and passes a flag down when painting reflections to use such transient clip rects to avoid the layer caching invalid ones.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102867</commentid>
    <comment_count>11</comment_count>
      <attachid>26116</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-17 23:35:24 -0800</bug_when>
    <thetext>Created attachment 26116
Patch, testcase, changelog (minor patch change)

reflectionLayer()-&gt;paintLayer() doesn&apos;t need to set the temporaryClipRects flag, because the RenderReplicate paintLayer() does that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102890</commentid>
    <comment_count>12</comment_count>
      <attachid>26116</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-12-18 09:29:12 -0800</bug_when>
    <thetext>Comment on attachment 26116
Patch, testcase, changelog (minor patch change)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102891</commentid>
    <comment_count>13</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-12-18 09:31:46 -0800</bug_when>
    <thetext>I&apos;m giving this r+, but it does seem to have O(n^2) behavior when painting reflections with a deep layer hierarchy, since each individual layer will compute clip rects without caching... and end up crawling all the way up to the root of the reflection.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102895</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-18 09:40:01 -0800</bug_when>
    <thetext>Filed bug 22916 to fix the O(n^2) behavior while painting reflected layers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>102898</commentid>
    <comment_count>15</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2008-12-18 09:43:28 -0800</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/reflections/reflection-overflow-hidden.html
	A	LayoutTests/platform/mac/fast/reflections/reflection-overflow-hidden-expected.checksum
	A	LayoutTests/platform/mac/fast/reflections/reflection-overflow-hidden-expected.png
	A	LayoutTests/platform/mac/fast/reflections/reflection-overflow-hidden-expected.txt
	M	WebCore/ChangeLog
	M	WebCore/rendering/RenderLayer.cpp
	M	WebCore/rendering/RenderLayer.h
	M	WebCore/rendering/RenderReplica.cpp
Committed r39373
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>25632</attachid>
            <date>2008-12-01 11:54:04 -0800</date>
            <delta_ts>2008-12-01 11:54:04 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>abs-pos-reflection.html</filename>
            <type>text/html</type>
            <size>1824</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgogICJodHRw
Oi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3QuZHRkIj4KCjxodG1sPgo8aGVhZD4KICA8bWV0
YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11
dGYtOCI+CiAgPHRpdGxlPlJlZmxlY3Rpb25zIGFuZCBQb3NpdGlvbmluZzwvdGl0bGU+CiAgCiAg
PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KICAgIGJvZHkgewogICAgICBt
YXJnaW46IDIwcHg7CiAgICB9CiAgICAjcGxheWVyIHsKICAgICAgLXdlYmtpdC1ib3gtcmVmbGVj
dDogYmVsb3cgMXB4OwogICAgICBvdXRsaW5lOiAxcHggc29saWQgYmx1ZTsKICAgIH0KCiAgICAj
cGxheWVyOmhvdmVyIHsKICAgICAgICAtd2Via2l0LWJveC1yZWZsZWN0OiBiZWxvdyAxcHg7CiAg
ICB9CiAgICAKICAgICN0cmVrIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAg
d2lkdGg6IDQwMHB4OwogICAgICAgIGhlaWdodDogMjUwcHg7CiAgICAgICAgbWFyZ2luOiA2MHB4
IGF1dG87CiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgICAgICBib3JkZXI6IDFweCBzb2xp
ZCBibGFjazsKICAgIH0KICAgIAogICAgLnRvcCB7CiAgICAgICAgcG9zaXRpb246IGFic29sdXRl
OwogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMzBweDsKICAgICAgICB0b3A6
IC0zMHB4OwogICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMjU1LCAwLCAwLjUpOwogICAgfQog
ICAgCiAgICAuYm90dG9tIHsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgd2lk
dGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAzMHB4OwogICAgICAgIGJvdHRvbTogLTMwcHg7CiAg
ICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDAsIDAsIDAuNSk7CiAgICB9CgogICAgI3RyZWs6
aG92ZXIgLnRvcCB7CiAgICAgICAgdG9wOiAwOwogICAgfQoKICAgICN0cmVrOmhvdmVyIC5ib3R0
b20gewogICAgICAgIGJvdHRvbTogMDsKICAgIH0KCiAgICAjdHJlay5ob3ZlcmVkIC50b3Agewog
ICAgICAgIHRvcDogMDsKICAgIH0KCiAgICAjdHJlay5ob3ZlcmVkIC5ib3R0b20gewogICAgICAg
IGJvdHRvbTogMDsKICAgIH0KCiAgPC9zdHlsZT4KICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgY2hhcnNldD0idXRmLTgiPgogICAgZnVuY3Rpb24gdG9nZ2xlSG92ZXJlZCgpCiAgICB7
CiAgICAgIHZhciB0cmVrID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RyZWsnKTsKICAgICAg
aWYgKHRyZWsuY2xhc3NOYW1lID09ICdob3ZlcmVkJykKICAgICAgICB0cmVrLmNsYXNzTmFtZSA9
ICcnOwogICAgICBlbHNlCiAgICAgIHRyZWsuY2xhc3NOYW1lID0gJ2hvdmVyZWQnOwogICAgfQog
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbigpIHsKICAgICAgLy8g
d2luZG93LnNldEludGVydmFsKHRvZ2dsZUhvdmVyZWQsIDIwMDApOwogICAgfSwgZmFsc2UpOwog
IDwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgoKICAgIDxwPjxhIGhyZWY9InJkYXI6Ly9wcm9ibGVt
LzYzODU5NjIiPnJkYXI6Ly9wcm9ibGVtLzYzODU5NjI8L2E+PC9wPgogICAgPGRpdiBpZD0icGxh
eWVyIj4KICAgICAgPGRpdiBpZD0idHJlayIgY2xhc3M9ImhvdmVyZWQyIj4KICAgICAgICAgIDxk
aXYgY2xhc3M9InRvcCI+VG9wPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b20iPkJv
dHRvbTwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgCjwvYm9keT4KPC9odG1sPgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25633</attachid>
            <date>2008-12-01 12:17:43 -0800</date>
            <delta_ts>2008-12-17 23:29:03 -0800</delta_ts>
            <desc>Patch, testcase, changelog</desc>
            <filename>22570_patch.txt</filename>
            <type>text/plain</type>
            <size>12318</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzY2U4MzAzLi41OGU0OTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMTIt
MDEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNTcwCisgICAgICAgIAorICAgICAgICBUZXN0IGZvciBwYWlu
dGluZyBhbiBvdmVyZmxvdzpoaWRkZW4gZWxlbWVudCB3aXRoIHJlZmxlY3Rpb24uCisgICAgICAg
IAorICAgICAgICAqIGZhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4u
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVmbGVjdGlvbnMvcmVm
bGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9mYXN0L3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlk
ZGVuLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVm
bGVjdGlvbnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KwogMjAwOC0xMS0yOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q0YTViZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1oaWRk
ZW4uaHRtbApAQCAtMCwwICsxLDY5IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8v
RFREIEhUTUwgNC4wMS8vRU4iCisgICJodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNC9zdHJpY3Qu
ZHRkIj4KKworPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBl
IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgorICA8dGl0bGU+UmVmbGVjdGlv
biBhbmQgb3ZlcmZsb3c8L3RpdGxlPgorICAKKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRp
YT0ic2NyZWVuIj4KKyAgICBib2R5IHsKKyAgICAgIG1hcmdpbjogNTBweDsKKyAgICB9CisgICAg
I3BsYXllciB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICB0b3A6IDEwMHB4Owor
ICAgICAgLXdlYmtpdC1ib3gtcmVmbGVjdDogYmVsb3cgMTBweDsKKyAgICAgIHdpZHRoOiA0MDBw
eDsKKyAgICB9CisKKyAgICAjaW5uZXIgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgICAg
IG91dGxpbmU6IDJweCBzb2xpZCBibGFjazsKKyAgICB9CisgICAgCisgICAgLnRvcCB7CisgICAg
ICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIGhl
aWdodDogNTBweDsKKyAgICAgICAgdG9wOiAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGdyZWVuOworICAgIH0KKyAgICAKKyAgICAuYm90dG9tIHsKKyAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgICB3aWR0aDogMTAwJTsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAg
ICAgICBib3R0b206IDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAg
fQorICAgIAorICAgIC50ZXN0ZXIgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAg
d2lkdGg6IDQwMHB4OworICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgYmFja2dyb3VuZC1jb2xv
cjogcmVkOworICAgICAgei1pbmRleDogLTE7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+CisKKyAgICA8cD48YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI1NzAiPmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjU3MDwvYT4uIFRlc3QgZm9yCisgICAgICByZWZsZWN0aW9uIHBhaW50aW5nIG9uIG92ZXJmbG93
OmhpZGRlbiBlbGVtZW50LiBZb3Ugc2hvdWxkIG5vdCBzZWUgYW55IHJlZCBiZWxvdy48L3A+Cisg
ICAgCisgICAgPGRpdiBjbGFzcz0idGVzdGVyIiBzdHlsZT0idG9wOiAxMDBweDsiPjwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9InRlc3RlciIgc3R5bGU9InRvcDogMjUwcHg7Ij48L2Rpdj4KKworICAg
IDxkaXYgaWQ9InBsYXllciI+CisgICAgICA8ZGl2IGlkPSJpbm5lciI+CisgICAgICAgICAgPGRp
diBjbGFzcz0idG9wIj5Ub3A8L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJib3R0b20iPkJv
dHRvbTwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgCis8L2JvZHk+Cis8L2h0
bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZmxlY3Rp
b25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLmNoZWNrc3VtIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQuY2hlY2tzdW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uODliMzc0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLmNoZWNr
c3VtCkBAIC0wLDAgKzEgQEAKKzJiM2ZkMGExNDE5YjE2OTAyMjBlZjI0MTJjZDc4MTY3ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQu
cG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlv
bi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmViMWJhZjIKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi1leHBlY3RlZC5wbmcgZGlmZmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9u
LW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZTU5NTE2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMwIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVu
ZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDEz
NiBsYXllclR5cGU6IGJhY2tncm91bmQgb25seQorbGF5ZXIgYXQgKDUwLDEwMCkgc2l6ZSA0MDB4
NTAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAtMSB7RElWfSBhdCAoNTAsMTAwKSBz
aXplIDQwMHg1MCBbYmdjb2xvcj0jRkYwMDAwXQorbGF5ZXIgYXQgKDUwLDI1MCkgc2l6ZSA0MDB4
NTAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAtMSB7RElWfSBhdCAoNTAsMjUwKSBz
aXplIDQwMHg1MCBbYmdjb2xvcj0jRkYwMDAwXQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTM2
IGxheWVyVHlwZTogZm9yZWdyb3VuZCBvbmx5CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHgxMzYKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoNTAsNTApIHNpemUgNzAw
eDM2CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3MDB4MzYKKyAgICAgICAg
UmVuZGVySW5saW5lIHtBfSBhdCAoMCwwKSBzaXplIDMwNXgxOCBbY29sb3I9IzAwMDBFRV0KKyAg
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMDV4MTgKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMwNTogImh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU3MCIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgz
MDUsMCkgc2l6ZSA2OTd4MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzA1LDApIHdpZHRoIDYx
OiAiLiBUZXN0IGZvciAiCisgICAgICAgICAgdGV4dCBydW4gYXQgKDM2NiwwKSB3aWR0aCAzMzE6
ICJyZWZsZWN0aW9uIHBhaW50aW5nIG9uIG92ZXJmbG93OmhpZGRlbiBlbGVtZW50LiBZb3UiCisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMTgpIHdpZHRoIDE4ODogInNob3VsZCBub3Qgc2VlIGFu
eSByZWQgYmVsb3cuIgorbGF5ZXIgYXQgKDUwLDEwMCkgc2l6ZSA0MDB4NDEwCisgIFJlbmRlckJs
b2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoNTAsMTAwKSBzaXplIDQwMHgyMDAKK2xheWVyIGF0
ICg1MCwxMDApIHNpemUgNDAweDIwMAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25l
ZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSA0MDB4MjAwCitsYXllciBhdCAoNTAsMTAwKSBzaXplIDQw
MHg1MAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSA0MDB4
NTAgW2JnY29sb3I9IzAwODAwMF0KKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAyNngxOAorICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjY6ICJUb3AiCitsYXllciBh
dCAoNTAsMjUwKSBzaXplIDQwMHg1MAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0g
YXQgKDAsMTUwKSBzaXplIDQwMHg1MCBbYmdjb2xvcj0jMDA4MDAwXQorICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ3eDE4CisgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCA0NzogIkJvdHRvbSIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZGZmMTM3Ny4uNzhhNDFhMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOC0xMi0w
MSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzAKKyAgICAgICAgCisgICAgICAgIFJlZmxlY3Rpb25zIGFy
ZSBwYWludGVkIHdpdGggdHJhbnNmb3Jtcywgd2hpY2ggaW52b2x2ZXMgYSB0ZW1wb3JhcnkgY2hh
bmdlCisgICAgICAgIHRvIHRoZSBwYWludGluZyByb290LiBUaGlzIGNhbiBjYXVzZSBpbnZhbGlk
IGNsaXAgcmVjdHMgdG8gZ2V0IGNhY2hlZCwgc28KKyAgICAgICAgd2UgaGF2ZSB0byBjbGVhciB0
aGUgY2xpcCByZWN0cyBiZWZvcmUgYW5kIGFmdGVyIHBhaW50aW5nIHJlZmxlY3RlZCBsYXllcnMu
CisKKyAgICAgICAgVGVzdDogZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92ZXJmbG93LWhp
ZGRlbi5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6ZGVzdHJveSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVMYXllclBv
c2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW1vdmVPbmx5VGhpc0xh
eWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjppbnNlcnRPbmx5VGhpc0xheWVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExheWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmNsZWFyQ2xpcFJlY3RzSW5jbHVkaW5nRGVzY2VkYW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2xlYXJDbGlwUmVjdHMpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2Up
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyV2lkZ2V0OjpkZXN0cm95KToKKwogMjAwOC0xMi0wMSAgVG9yIEFybmUgVmVzdGLD
uCAgPHRhdmVzdGJvQHRyb2xsdGVjaC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
SGF1c21hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBhMjM2YjM3Li4yNDJhMWI0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBSZW5kZXJCb3g6
OmRlc3Ryb3koKQogCiAgICAgLy8gVGhpcyBtdXN0IGJlIGRvbmUgYmVmb3JlIHdlIGRlc3Ryb3kg
dGhlIFJlbmRlck9iamVjdC4KICAgICBpZiAobV9sYXllcikKLSAgICAgICAgbV9sYXllci0+Y2xl
YXJDbGlwUmVjdCgpOworICAgICAgICBtX2xheWVyLT5jbGVhckNsaXBSZWN0cygpOwogCiAgICAg
aWYgKHN0eWxlKCkgJiYgKHN0eWxlKCktPmhlaWdodCgpLmlzUGVyY2VudCgpIHx8IHN0eWxlKCkt
Pm1pbkhlaWdodCgpLmlzUGVyY2VudCgpIHx8IHN0eWxlKCktPm1heEhlaWdodCgpLmlzUGVyY2Vu
dCgpKSkKICAgICAgICAgUmVuZGVyQmxvY2s6OnJlbW92ZVBlcmNlbnRIZWlnaHREZXNjZW5kYW50
KHRoaXMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDg2N2RiMjQuLjMxOTJmNTgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTM3Miw3ICszNzIsNyBAQCB2b2lkIFJl
bmRlckxheWVyOjp1cGRhdGVWaXNpYmlsaXR5U3RhdHVzKCkKIHZvaWQgUmVuZGVyTGF5ZXI6OnVw
ZGF0ZUxheWVyUG9zaXRpb24oKQogewogICAgIC8vIENsZWFyIG91ciBjYWNoZWQgY2xpcCByZWN0
IGluZm9ybWF0aW9uLgotICAgIGNsZWFyQ2xpcFJlY3QoKTsKKyAgICBjbGVhckNsaXBSZWN0cygp
OwogCiAgICAgaW50IHggPSBtX29iamVjdC0+eFBvcygpOwogICAgIGludCB5ID0gbV9vYmplY3Qt
PnlQb3MoKSAtIG1fb2JqZWN0LT5ib3JkZXJUb3BFeHRyYSgpOwpAQCAtNjQ0LDcgKzY0NCw3IEBA
IHZvaWQgUmVuZGVyTGF5ZXI6OnJlbW92ZU9ubHlUaGlzTGF5ZXIoKQogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgLy8gRGlydHkgdGhlIGNsaXAgcmVjdHMuCi0gICAgY2xlYXJDbGlwUmVjdHMo
KTsKKyAgICBjbGVhckNsaXBSZWN0c0luY2x1ZGluZ0Rlc2NlZGFudHMoKTsKIAogICAgIC8vIFJl
bW92ZSB1cyBmcm9tIHRoZSBwYXJlbnQuCiAgICAgUmVuZGVyTGF5ZXIqIHBhcmVudCA9IG1fcGFy
ZW50OwpAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6Omluc2VydE9ubHlUaGlz
TGF5ZXIoKQogICAgICAgICBjdXJyLT5tb3ZlTGF5ZXJzKG1fcGFyZW50LCB0aGlzKTsKICAgICAg
ICAgCiAgICAgLy8gQ2xlYXIgb3V0IGFsbCB0aGUgY2xpcCByZWN0cy4KLSAgICBjbGVhckNsaXBS
ZWN0cygpOworICAgIGNsZWFyQ2xpcFJlY3RzSW5jbHVkaW5nRGVzY2VkYW50cygpOwogfQogCiB2
b2lkIApAQCAtMTY5OSwxMCArMTY5OSwxNyBAQCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihSZW5k
ZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRleHQqIHAsCiAKICAgICAvLyBQYWludCB0
aGUgcmVmbGVjdGlvbiBmaXJzdCBpZiB3ZSBoYXZlIG9uZS4KICAgICBpZiAobV9yZWZsZWN0aW9u
ICYmICFtX3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbiAmJiAoIW1fdHJhbnNmb3JtIHx8IGFwcGxp
ZWRUcmFuc2Zvcm0pKSB7CisgICAgICAgIC8vIFRoZSByZWZsZWN0aW9uIGlzIHBhaW50ZWQgd2l0
aCBhIHRyYW5zZm9ybSwgYW5kIHRoZXJlZm9yZSB3aXRoIGEgdGVtcG9yYXJ5IGNoYW5nZSB0byB0
aGUgcGFpbnRpbmcgcm9vdC4KKyAgICAgICAgLy8gVGhhdCBjYW4gY2F1c2UgbGF5ZXJzIHRvIGNh
Y2hlIGluY29ycmVjdCBjbGlwUmVjdHMsIHNvIHdlIGhhdmUgdG8gY2xlYXIgdGhlbSBiZWZvcmUg
YW5kIGFmdGVyIHBhaW50aW5nIHRoZSByZWZsZWN0aW9uLgorICAgICAgICAvLyBXZSBhc3N1bWUg
dGhhdCBwYXJlbnQgY2xpcCByZWN0cyBhcmUgT0ssIGJlY2F1c2UgdGhlIHBhaW50aW5nIHdpdGgg
dHJhbnNmb3JtIGNsYXVzZSBhYm92ZSBkaWQgYW4gZXhwbGljaXQKKyAgICAgICAgLy8gcGFyZW50
KCktPmNhbGN1bGF0ZUNsaXBSZWN0cygpIHdpdGggdGhlIG9yaWdpbmFsIHJvb3RMYXllci4KKyAg
ICAgICAgLy8gRklYTUU6IGlkZWFsbHkgY2xpcCByZWN0IGNhY2hpbmcgd291bGQgdGFrZSB0aGUg
cGFpbnRpbmcgcm9vdCBpbnRvIGFjY291bnQKKyAgICAgICAgY2xlYXJDbGlwUmVjdHNJbmNsdWRp
bmdEZXNjZWRhbnRzKCk7CiAgICAgICAgIC8vIE1hcmsgdGhhdCB3ZSBhcmUgbm93IGluc2lkZSBy
ZXBsaWNhIHBhaW50aW5nLgogICAgICAgICBtX3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbiA9IHRy
dWU7CiAgICAgICAgIHJlZmxlY3Rpb25MYXllcigpLT5wYWludExheWVyKHJvb3RMYXllciwgcCwg
cGFpbnREaXJ0eVJlY3QsIGhhdmVUcmFuc3BhcmVuY3ksIHBhaW50UmVzdHJpY3Rpb24sIHBhaW50
aW5nUm9vdCk7CiAgICAgICAgIG1fcGFpbnRpbmdJbnNpZGVSZWZsZWN0aW9uID0gZmFsc2U7Cisg
ICAgICAgIGNsZWFyQ2xpcFJlY3RzSW5jbHVkaW5nRGVzY2VkYW50cygpOwogICAgIH0KIAogICAg
IC8vIENhbGN1bGF0ZSB0aGUgY2xpcCByZWN0cyB3ZSBzaG91bGQgdXNlLgpAQCAtMjA2NSw2ICsy
MDcyLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IFJlbmRl
ckxheWVyKiByb290TGF5ZXIpCiAgICAgICAgIG1fY2xpcFJlY3RzID0gcGFyZW50KCktPmNsaXBS
ZWN0cygpOwogICAgIGVsc2UKICAgICAgICAgbV9jbGlwUmVjdHMgPSBuZXcgKG1fb2JqZWN0LT5y
ZW5kZXJBcmVuYSgpKSBDbGlwUmVjdHMob3ZlcmZsb3dDbGlwUmVjdCwgZml4ZWRDbGlwUmVjdCwg
cG9zQ2xpcFJlY3QsIGZpeGVkKTsKKwogICAgIG1fY2xpcFJlY3RzLT5yZWYoKTsKIH0KIApAQCAt
MjIzMywxOCArMjI0MSwxOCBAQCBJbnRSZWN0IFJlbmRlckxheWVyOjpib3VuZGluZ0JveChjb25z
dCBSZW5kZXJMYXllciogcm9vdExheWVyKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXZvaWQgUmVuZGVyTGF5ZXI6OmNsZWFyQ2xpcFJlY3RzKCkKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNs
ZWFyQ2xpcFJlY3RzSW5jbHVkaW5nRGVzY2VkYW50cygpCiB7CiAgICAgaWYgKCFtX2NsaXBSZWN0
cykKICAgICAgICAgcmV0dXJuOwogCi0gICAgY2xlYXJDbGlwUmVjdCgpOworICAgIGNsZWFyQ2xp
cFJlY3RzKCk7CiAgICAgCiAgICAgZm9yIChSZW5kZXJMYXllciogbCA9IGZpcnN0Q2hpbGQoKTsg
bDsgbCA9IGwtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGwtPmNsZWFyQ2xpcFJlY3RzKCk7Cisg
ICAgICAgIGwtPmNsZWFyQ2xpcFJlY3RzSW5jbHVkaW5nRGVzY2VkYW50cygpOwogfQogCi12b2lk
IFJlbmRlckxheWVyOjpjbGVhckNsaXBSZWN0KCkKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNsZWFyQ2xp
cFJlY3RzKCkKIHsKICAgICBpZiAobV9jbGlwUmVjdHMpIHsKICAgICAgICAgbV9jbGlwUmVjdHMt
PmRlcmVmKG1fb2JqZWN0LT5yZW5kZXJBcmVuYSgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmlu
ZGV4IDc5NTk5YzguLjRlNzVlMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtMjYwLDgg
KzI2MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGF0aXZlUG9zaXRpb25PZmZzZXQoaW50JiBy
ZWxYLCBpbnQmIHJlbFkpIGNvbnN0IHsgcmVsWCArPSBtX3JlbFg7IHJlbFkgKz0gbV9yZWxZOyB9
CiAgICAgSW50U2l6ZSByZWxhdGl2ZVBvc2l0aW9uT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gSW50
U2l6ZShtX3JlbFgsIG1fcmVsWSk7IH0KIAorICAgIHZvaWQgY2xlYXJDbGlwUmVjdHNJbmNsdWRp
bmdEZXNjZWRhbnRzKCk7CiAgICAgdm9pZCBjbGVhckNsaXBSZWN0cygpOwotICAgIHZvaWQgY2xl
YXJDbGlwUmVjdCgpOwogCiAgICAgLy8gR2V0IHRoZSBlbmNsb3Npbmcgc3RhY2tpbmcgY29udGV4
dCBmb3IgdGhpcyBsYXllci4gIEEgc3RhY2tpbmcgY29udGV4dCBpcyBhIGxheWVyCiAgICAgLy8g
dGhhdCBoYXMgYSBub24tYXV0byB6LWluZGV4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
aW5kZXggNjFmN2JkOC4uZjZiOTk3YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBA
IC0yMjY5LDcgKzIyNjksNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6c3R5bGVXaWxsQ2hhbmdlKFJl
bmRlclN0eWxlOjpEaWZmIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBuZQogICAgICAgICAgICAg
aWYgKGRpZmYgPT0gUmVuZGVyU3R5bGU6OlJlcGFpbnRMYXllcikgewogICAgICAgICAgICAgICAg
IGxheWVyKCktPnJlcGFpbnRJbmNsdWRpbmdEZXNjZW5kYW50cygpOwogICAgICAgICAgICAgICAg
IGlmICghKG1fc3R5bGUtPmNsaXAoKSA9PSBuZXdTdHlsZS0+Y2xpcCgpKSkKLSAgICAgICAgICAg
ICAgICAgICAgbGF5ZXIoKS0+Y2xlYXJDbGlwUmVjdHMoKTsKKyAgICAgICAgICAgICAgICAgICAg
bGF5ZXIoKS0+Y2xlYXJDbGlwUmVjdHNJbmNsdWRpbmdEZXNjZWRhbnRzKCk7CiAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGRpZmYgPT0gUmVuZGVyU3R5bGU6OlJlcGFpbnQgfHwgbmV3U3R5bGUtPm91
dGxpbmVTaXplKCkgPCBtX3N0eWxlLT5vdXRsaW5lU2l6ZSgpKQogICAgICAgICAgICAgICAgIHJl
cGFpbnQoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggZTg4
N2QwMC4uMWE5NzQ0YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
LmNwcAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC05NCw3ICs5
NCw3IEBAIHZvaWQgUmVuZGVyV2lkZ2V0OjpkZXN0cm95KCkKICAgICBSZW5kZXJBcmVuYSogYXJl
bmEgPSByZW5kZXJBcmVuYSgpOwogCiAgICAgaWYgKGxheWVyKQotICAgICAgICBsYXllci0+Y2xl
YXJDbGlwUmVjdCgpOworICAgICAgICBsYXllci0+Y2xlYXJDbGlwUmVjdHMoKTsKIAogICAgIGlm
IChzdHlsZSgpICYmIChzdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNlbnQoKSB8fCBzdHlsZSgpLT5t
aW5IZWlnaHQoKS5pc1BlcmNlbnQoKSB8fCBzdHlsZSgpLT5tYXhIZWlnaHQoKS5pc1BlcmNlbnQo
KSkpCiAgICAgICAgIFJlbmRlckJsb2NrOjpyZW1vdmVQZXJjZW50SGVpZ2h0RGVzY2VuZGFudCh0
aGlzKTsK
</data>
<flag name="review"
          id="11945"
          type_id="1"
          status="-"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25830</attachid>
            <date>2008-12-07 09:50:13 -0800</date>
            <delta_ts>2008-12-17 23:29:03 -0800</delta_ts>
            <desc>Just the clearClipRect(s) method renames as step 1</desc>
            <filename>22570_rename_patch.txt</filename>
            <type>text/plain</type>
            <size>5150</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTRmMDYwYy4uYjBiM2Q3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAwOC0xMi0wNyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgbWV0aG9kcyBvbiBSZW5kZXJMYXllciBmb3IgY2xh
cml0eToKKyAgICAgICAgICAgIGNsZWFyQ2xpcFJlY3RzIC0+IGNsZWFyQ2xpcFJlY3RzSW5jbHVk
aW5nRGVzY2VuZGFudHMKKyAgICAgICAgICAgIGNsZWFyQ2xpcFJlY3QgIC0+IGNsZWFyQ2xpcFJl
Y3RzCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6ZGVzdHJveSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW1vdmVPbmx5VGhpc0xheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjppbnNlcnRPbmx5VGhpc0xheWVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjbGVhckNsaXBSZWN0c0luY2x1ZGluZ0Rlc2Nl
bmRhbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjbGVhckNsaXBSZWN0cyk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnN0eWxl
V2lsbENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmRlc3Ryb3kpOgorCiAyMDA4LTEyLTA2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDE0OWJhMzkuLjczOWMwYjggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtODksNyArODksNyBAQCB2b2lkIFJlbmRlckJveDo6
ZGVzdHJveSgpCiAKICAgICAvLyBUaGlzIG11c3QgYmUgZG9uZSBiZWZvcmUgd2UgZGVzdHJveSB0
aGUgUmVuZGVyT2JqZWN0LgogICAgIGlmIChtX2xheWVyKQotICAgICAgICBtX2xheWVyLT5jbGVh
ckNsaXBSZWN0KCk7CisgICAgICAgIG1fbGF5ZXItPmNsZWFyQ2xpcFJlY3RzKCk7CiAKICAgICBp
ZiAoc3R5bGUoKSAmJiAoc3R5bGUoKS0+aGVpZ2h0KCkuaXNQZXJjZW50KCkgfHwgc3R5bGUoKS0+
bWluSGVpZ2h0KCkuaXNQZXJjZW50KCkgfHwgc3R5bGUoKS0+bWF4SGVpZ2h0KCkuaXNQZXJjZW50
KCkpKQogICAgICAgICBSZW5kZXJCbG9jazo6cmVtb3ZlUGVyY2VudEhlaWdodERlc2NlbmRhbnQo
dGhpcyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggMjY5YTRmNS4uNTEyOTA5MSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzcyLDcgKzM3Miw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoKQogdm9pZCBSZW5kZXJMYXllcjo6dXBk
YXRlTGF5ZXJQb3NpdGlvbigpCiB7CiAgICAgLy8gQ2xlYXIgb3VyIGNhY2hlZCBjbGlwIHJlY3Qg
aW5mb3JtYXRpb24uCi0gICAgY2xlYXJDbGlwUmVjdCgpOworICAgIGNsZWFyQ2xpcFJlY3RzKCk7
CiAKICAgICBpbnQgeCA9IG1fb2JqZWN0LT54UG9zKCk7CiAgICAgaW50IHkgPSBtX29iamVjdC0+
eVBvcygpIC0gbV9vYmplY3QtPmJvcmRlclRvcEV4dHJhKCk7CkBAIC02NDQsNyArNjQ0LDcgQEAg
dm9pZCBSZW5kZXJMYXllcjo6cmVtb3ZlT25seVRoaXNMYXllcigpCiAgICAgICAgIHJldHVybjsK
ICAgICAKICAgICAvLyBEaXJ0eSB0aGUgY2xpcCByZWN0cy4KLSAgICBjbGVhckNsaXBSZWN0cygp
OworICAgIGNsZWFyQ2xpcFJlY3RzSW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKIAogICAgIC8vIFJl
bW92ZSB1cyBmcm9tIHRoZSBwYXJlbnQuCiAgICAgUmVuZGVyTGF5ZXIqIHBhcmVudCA9IG1fcGFy
ZW50OwpAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6Omluc2VydE9ubHlUaGlz
TGF5ZXIoKQogICAgICAgICBjdXJyLT5tb3ZlTGF5ZXJzKG1fcGFyZW50LCB0aGlzKTsKICAgICAg
ICAgCiAgICAgLy8gQ2xlYXIgb3V0IGFsbCB0aGUgY2xpcCByZWN0cy4KLSAgICBjbGVhckNsaXBS
ZWN0cygpOworICAgIGNsZWFyQ2xpcFJlY3RzSW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKIH0KIAog
dm9pZCAKQEAgLTIyMzgsMTggKzIyMzgsMTggQEAgSW50UmVjdCBSZW5kZXJMYXllcjo6Ym91bmRp
bmdCb3goY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllcikgY29uc3QKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCi12b2lkIFJlbmRlckxheWVyOjpjbGVhckNsaXBSZWN0cygpCit2b2lkIFJlbmRl
ckxheWVyOjpjbGVhckNsaXBSZWN0c0luY2x1ZGluZ0Rlc2NlbmRhbnRzKCkKIHsKICAgICBpZiAo
IW1fY2xpcFJlY3RzKQogICAgICAgICByZXR1cm47CiAKLSAgICBjbGVhckNsaXBSZWN0KCk7Cisg
ICAgY2xlYXJDbGlwUmVjdHMoKTsKICAgICAKICAgICBmb3IgKFJlbmRlckxheWVyKiBsID0gZmly
c3RDaGlsZCgpOyBsOyBsID0gbC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgbC0+Y2xlYXJDbGlw
UmVjdHMoKTsKKyAgICAgICAgbC0+Y2xlYXJDbGlwUmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygp
OwogfQogCi12b2lkIFJlbmRlckxheWVyOjpjbGVhckNsaXBSZWN0KCkKK3ZvaWQgUmVuZGVyTGF5
ZXI6OmNsZWFyQ2xpcFJlY3RzKCkKIHsKICAgICBpZiAobV9jbGlwUmVjdHMpIHsKICAgICAgICAg
bV9jbGlwUmVjdHMtPmRlcmVmKG1fb2JqZWN0LT5yZW5kZXJBcmVuYSgpKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCmluZGV4IDc5NTk5YzguLjYyYTE5OGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aApAQCAtMjYwLDggKzI2MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGF0aXZlUG9zaXRpb25P
ZmZzZXQoaW50JiByZWxYLCBpbnQmIHJlbFkpIGNvbnN0IHsgcmVsWCArPSBtX3JlbFg7IHJlbFkg
Kz0gbV9yZWxZOyB9CiAgICAgSW50U2l6ZSByZWxhdGl2ZVBvc2l0aW9uT2Zmc2V0KCkgY29uc3Qg
eyByZXR1cm4gSW50U2l6ZShtX3JlbFgsIG1fcmVsWSk7IH0KIAorICAgIHZvaWQgY2xlYXJDbGlw
UmVjdHNJbmNsdWRpbmdEZXNjZW5kYW50cygpOwogICAgIHZvaWQgY2xlYXJDbGlwUmVjdHMoKTsK
LSAgICB2b2lkIGNsZWFyQ2xpcFJlY3QoKTsKIAogICAgIC8vIEdldCB0aGUgZW5jbG9zaW5nIHN0
YWNraW5nIGNvbnRleHQgZm9yIHRoaXMgbGF5ZXIuICBBIHN0YWNraW5nIGNvbnRleHQgaXMgYSBs
YXllcgogICAgIC8vIHRoYXQgaGFzIGEgbm9uLWF1dG8gei1pbmRleC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCmluZGV4IDg3ZmI1N2QuLjYxZGY4MmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcApAQCAtMjI2OSw3ICsyMjY5LDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnN0eWxl
V2lsbENoYW5nZShSZW5kZXJTdHlsZTo6RGlmZiBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogbmUK
ICAgICAgICAgICAgIGlmIChkaWZmID09IFJlbmRlclN0eWxlOjpSZXBhaW50TGF5ZXIpIHsKICAg
ICAgICAgICAgICAgICBsYXllcigpLT5yZXBhaW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKTsKICAg
ICAgICAgICAgICAgICBpZiAoIShtX3N0eWxlLT5jbGlwKCkgPT0gbmV3U3R5bGUtPmNsaXAoKSkp
Ci0gICAgICAgICAgICAgICAgICAgIGxheWVyKCktPmNsZWFyQ2xpcFJlY3RzKCk7CisgICAgICAg
ICAgICAgICAgICAgIGxheWVyKCktPmNsZWFyQ2xpcFJlY3RzSW5jbHVkaW5nRGVzY2VuZGFudHMo
KTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGlmZiA9PSBSZW5kZXJTdHlsZTo6UmVwYWludCB8
fCBuZXdTdHlsZS0+b3V0bGluZVNpemUoKSA8IG1fc3R5bGUtPm91dGxpbmVTaXplKCkpCiAgICAg
ICAgICAgICAgICAgcmVwYWludCgpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0
LmNwcAppbmRleCBlODg3ZDAwLi4xYTk3NDRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5j
cHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OmRlc3Ryb3koKQogICAgIFJl
bmRlckFyZW5hKiBhcmVuYSA9IHJlbmRlckFyZW5hKCk7CiAKICAgICBpZiAobGF5ZXIpCi0gICAg
ICAgIGxheWVyLT5jbGVhckNsaXBSZWN0KCk7CisgICAgICAgIGxheWVyLT5jbGVhckNsaXBSZWN0
cygpOwogCiAgICAgaWYgKHN0eWxlKCkgJiYgKHN0eWxlKCktPmhlaWdodCgpLmlzUGVyY2VudCgp
IHx8IHN0eWxlKCktPm1pbkhlaWdodCgpLmlzUGVyY2VudCgpIHx8IHN0eWxlKCktPm1heEhlaWdo
dCgpLmlzUGVyY2VudCgpKSkKICAgICAgICAgUmVuZGVyQmxvY2s6OnJlbW92ZVBlcmNlbnRIZWln
aHREZXNjZW5kYW50KHRoaXMpOwo=
</data>
<flag name="review"
          id="12110"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26115</attachid>
            <date>2008-12-17 23:29:03 -0800</date>
            <delta_ts>2008-12-17 23:35:24 -0800</delta_ts>
            <desc>Patch, testcase, changelog</desc>
            <filename>22570_patch2.txt</filename>
            <type>text/plain</type>
            <size>25969</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5OWQ3NDNlLi4yYzFkNjI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMTIt
MTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzAKKyAgICAgICAgCisgICAgICAgIEFkZCB0
ZXN0Y2FzZSBmb3IgcmVmbGVjdGlvbiBvbiBhbiBlbGVtZW50IHdpdGggb3ZlcmZsb3c6IGhpZGRl
bgorCisgICAgICAgICogZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9y
ZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9y
ZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDA4LTEyLTE3ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuaWtvbGFzLnppbW1lcm1hbm5A
dG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFr
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjdkNGE1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZmxlY3Rp
b25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgorICAiaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CisKKzxodG1sPgorPGhlYWQ+CisgIDxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PXV0Zi04Ij4KKyAgPHRpdGxlPlJlZmxlY3Rpb24gYW5kIG92ZXJmbG93PC90aXRsZT4KKyAgCisg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgYm9keSB7CisgICAg
ICBtYXJnaW46IDUwcHg7CisgICAgfQorICAgICNwbGF5ZXIgeworICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgdG9wOiAxMDBweDsKKyAgICAgIC13ZWJraXQtYm94LXJlZmxlY3Q6IGJl
bG93IDEwcHg7CisgICAgICB3aWR0aDogNDAwcHg7CisgICAgfQorCisgICAgI2lubmVyIHsKKyAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAg
ICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICBvdXRsaW5lOiAycHggc29saWQgYmxhY2s7Cisg
ICAgfQorICAgIAorICAgIC50b3AgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgIHdpZHRoOiAxMDAlOworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgIHRvcDogMHB4
OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9CisgICAgCisgICAgLmJv
dHRvbSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgd2lkdGg6IDEwMCU7
CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgYm90dG9tOiAwcHg7CisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIH0KKyAgICAKKyAgICAudGVzdGVyIHsKKyAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgIGhlaWdodDog
NTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgIHotaW5kZXg6IC0xOwor
ICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCisgICAgPHA+PGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcwIj5odHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzA8L2E+LiBUZXN0IGZvcgorICAgICAgcmVm
bGVjdGlvbiBwYWludGluZyBvbiBvdmVyZmxvdzpoaWRkZW4gZWxlbWVudC4gWW91IHNob3VsZCBu
b3Qgc2VlIGFueSByZWQgYmVsb3cuPC9wPgorICAgIAorICAgIDxkaXYgY2xhc3M9InRlc3RlciIg
c3R5bGU9InRvcDogMTAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0ZXIiIHN0eWxl
PSJ0b3A6IDI1MHB4OyI+PC9kaXY+CisKKyAgICA8ZGl2IGlkPSJwbGF5ZXIiPgorICAgICAgPGRp
diBpZD0iaW5uZXIiPgorICAgICAgICAgIDxkaXYgY2xhc3M9InRvcCI+VG9wPC9kaXY+CisgICAg
ICAgICAgPGRpdiBjbGFzcz0iYm90dG9tIj5Cb3R0b208L2Rpdj4KKyAgICAgIDwvZGl2PgorICAg
IDwvZGl2PgorICAgIAorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZmxl
Y3Rpb25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLmNoZWNrc3VtCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5YjM3NDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi1leHBlY3RlZC5jaGVja3N1bQpAQCAtMCwwICsxIEBACisyYjNmZDBhMTQx
OWIxNjkwMjIwZWYyNDEyY2Q3ODE2NwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZmxlY3Rpb25zL3JlZmxlY3Rp
b24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjFiYWYyCkJpbmFyeSBmaWxl
cyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVmbGVjdGlv
bnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlv
bi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1OTUxNmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgxMzYgbGF5ZXJUeXBlOiBiYWNrZ3JvdW5kIG9ubHkK
K2xheWVyIGF0ICg1MCwxMDApIHNpemUgNDAweDUwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVk
KSB6STogLTEge0RJVn0gYXQgKDUwLDEwMCkgc2l6ZSA0MDB4NTAgW2JnY29sb3I9I0ZGMDAwMF0K
K2xheWVyIGF0ICg1MCwyNTApIHNpemUgNDAweDUwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVk
KSB6STogLTEge0RJVn0gYXQgKDUwLDI1MCkgc2l6ZSA0MDB4NTAgW2JnY29sb3I9I0ZGMDAwMF0K
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDEzNiBsYXllclR5cGU6IGZvcmVncm91bmQgb25seQor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTM2CisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDUwLDUwKSBzaXplIDcwMHgzNgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDApIHNpemUgNzAweDM2CisgICAgICAgIFJlbmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6
ZSAzMDV4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMzA1eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAz
MDU6ICJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzAiCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzA1LDApIHNpemUgNjk3eDM2CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDMwNSwwKSB3aWR0aCA2MTogIi4gVGVzdCBmb3IgIgorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgzNjYsMCkgd2lkdGggMzMxOiAicmVmbGVjdGlvbiBwYWludGluZyBvbiBvdmVy
ZmxvdzpoaWRkZW4gZWxlbWVudC4gWW91IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3
aWR0aCAxODg6ICJzaG91bGQgbm90IHNlZSBhbnkgcmVkIGJlbG93LiIKK2xheWVyIGF0ICg1MCwx
MDApIHNpemUgNDAweDQxMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDUw
LDEwMCkgc2l6ZSA0MDB4MjAwCitsYXllciBhdCAoNTAsMTAwKSBzaXplIDQwMHgyMDAKKyAgUmVu
ZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgNDAweDIw
MAorbGF5ZXIgYXQgKDUwLDEwMCkgc2l6ZSA0MDB4NTAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9u
ZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgNDAweDUwIFtiZ2NvbG9yPSMwMDgwMDBdCisgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjZ4MTgKKyAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDI2OiAiVG9wIgorbGF5ZXIgYXQgKDUwLDI1MCkgc2l6ZSA0MDB4NTAKKyAgUmVu
ZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDE1MCkgc2l6ZSA0MDB4NTAgW2JnY29s
b3I9IzAwODAwMF0KKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0N3gxOAor
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDc6ICJCb3R0b20iCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2NDgzMzcuLjFiYjg0
MDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzggQEAKKzIwMDgtMTItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcwCisgICAg
ICAgIAorICAgICAgICBBZGQgdGhlIGFiaWxpdHkgdG8gY29tcHV0ZSBjbGlwIHJlY3RzIGluZGVw
ZW5kZW50bHkgZnJvbQorICAgICAgICBjYWNoaW5nIHRoZW0gb24gdGhlIFJlbmRlckxheWVyLiBX
aGVuIHBhaW50aW5nIHJlZmxlY3Rpb25zLCB1c2UgCisgICAgICAgIHN1Y2ggdGVtcG9yYXJpbHkg
Y29tcHV0ZWQgY2xpcFJlY3RzLCBvdGhlcndpc2UgdGhlIGxheWVyIG1heSBjYWNoZQorICAgICAg
ICBjbGlwUmVjdHMgd2hpY2ggYXJlIGludmFsaWQsIHNpbmNlIHRoZXkgaGF2ZSBiZWVuIGNvbXB1
dGVkIHdpdGgKKyAgICAgICAgYSByb290TGF5ZXIgdGhhdCBpcyBub3QgdGhlIG9uZSB1c3VhbGx5
IHVzZWQgdG8gcGFpbnQuCisgICAgICAgIAorICAgICAgICBUZXN0OiBmYXN0L3JlZmxlY3Rpb25z
L3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVDbGlwUmVjdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpDbGlwUmVjdHMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpDbGlw
UmVjdHM6Om92ZXJmbG93Q2xpcFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpz
ZXRPdmVyZmxvd0NsaXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0czo6Zml4ZWRD
bGlwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdHM6OnNldEZpeGVkQ2xpcFJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpwb3NDbGlwUmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDbGlwUmVjdHM6OnNldFBvc0NsaXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBSZWN0czo6c2V0Rml4ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0czo6b3BlcmF0b3I9KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJS
ZXBsaWNhOjpwYWludCk6CisKIDIwMDgtMTItMTcgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29s
YXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFj
aWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNTEyOTA5MS4u
OTUzMDA0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTY0MSw3ICsxNjQxLDcg
QEAgc3RhdGljIHZvaWQgcmVzdG9yZUNsaXAoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRS
ZWN0JiBwYWludERpcnR5UmVjdCwgY29uc3QKIHZvaWQKIFJlbmRlckxheWVyOjpwYWludExheWVy
KFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCogcCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHBhaW50RGlydHlSZWN0LCBib29sIGhhdmVUcmFu
c3BhcmVuY3ksIFBhaW50UmVzdHJpY3Rpb24gcGFpbnRSZXN0cmljdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290LCBib29sIGFwcGxpZWRUcmFu
c2Zvcm0pCisgICAgICAgICAgICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9v
dCwgYm9vbCBhcHBsaWVkVHJhbnNmb3JtLCBib29sIHRlbXBvcmFyeUNsaXBSZWN0cykKIHsKICAg
ICAvLyBBdm9pZCBwYWludGluZyBsYXllcnMgd2hlbiBzdHlsZXNoZWV0cyBoYXZlbid0IGxvYWRl
ZC4gIFRoaXMgZWxpbWluYXRlcyBGT1VDLgogICAgIC8vIEl0J3Mgb2sgbm90IHRvIGRyYXcsIGJl
Y2F1c2UgbGF0ZXIgb24sIHdoZW4gYWxsIHRoZSBzdHlsZXNoZWV0cyBkbyBsb2FkLCB1cGRhdGVT
dHlsZVNlbGVjdG9yIG9uIHRoZSBEb2N1bWVudApAQCAtMTY3MCw4ICsxNjcwLDE0IEBAIFJlbmRl
ckxheWVyOjpwYWludExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4
dCogcCwKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBwYXJlbnQncyBjbGlwIHJlY3RzIGhhdmUg
YmVlbiBjYWxjdWxhdGVkLgogICAgICAgICBJbnRSZWN0IGNsaXBSZWN0ID0gcGFpbnREaXJ0eVJl
Y3Q7CiAgICAgICAgIGlmIChwYXJlbnQoKSkgewotICAgICAgICAgICAgcGFyZW50KCktPmNhbGN1
bGF0ZUNsaXBSZWN0cyhyb290TGF5ZXIpOwotICAgICAgICAgICAgY2xpcFJlY3QgPSBwYXJlbnQo
KS0+Y2xpcFJlY3RzKCktPm92ZXJmbG93Q2xpcFJlY3QoKTsKKyAgICAgICAgICAgIGlmICh0ZW1w
b3JhcnlDbGlwUmVjdHMpIHsKKyAgICAgICAgICAgICAgICBDbGlwUmVjdHMgcGFyZW50Q2xpcFJl
Y3RzOworICAgICAgICAgICAgICAgIHBhcmVudCgpLT5jYWxjdWxhdGVDbGlwUmVjdHMocm9vdExh
eWVyLCBwYXJlbnRDbGlwUmVjdHMpOworICAgICAgICAgICAgICAgIGNsaXBSZWN0ID0gcGFyZW50
Q2xpcFJlY3RzLm92ZXJmbG93Q2xpcFJlY3QoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgcGFyZW50KCktPnVwZGF0ZUNsaXBSZWN0cyhyb290TGF5ZXIpOworICAgICAg
ICAgICAgICAgIGNsaXBSZWN0ID0gcGFyZW50KCktPmNsaXBSZWN0cygpLT5vdmVyZmxvd0NsaXBS
ZWN0KCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjbGlwUmVjdC5pbnRlcnNlY3QocGFp
bnREaXJ0eVJlY3QpOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMTY5Miw3ICsxNjk4LDcgQEAg
UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3ND
b250ZXh0KiBwLAogICAgICAgICBwLT5jb25jYXRDVE0odHJhbnNmb3JtKTsKIAogICAgICAgICAv
LyBOb3cgZG8gYSBwYWludCB3aXRoIHRoZSByb290IGxheWVyIHNoaWZ0ZWQgdG8gYmUgdXMuCi0g
ICAgICAgIHBhaW50TGF5ZXIodGhpcywgcCwgdHJhbnNmb3JtLmludmVyc2UoKS5tYXBSZWN0KHBh
aW50RGlydHlSZWN0KSwgaGF2ZVRyYW5zcGFyZW5jeSwgcGFpbnRSZXN0cmljdGlvbiwgcGFpbnRp
bmdSb290LCB0cnVlKTsKKyAgICAgICAgcGFpbnRMYXllcih0aGlzLCBwLCB0cmFuc2Zvcm0uaW52
ZXJzZSgpLm1hcFJlY3QocGFpbnREaXJ0eVJlY3QpLCBoYXZlVHJhbnNwYXJlbmN5LCBwYWludFJl
c3RyaWN0aW9uLCBwYWludGluZ1Jvb3QsIHRydWUsIHRlbXBvcmFyeUNsaXBSZWN0cyk7CiAgICAg
ICAgIAogICAgICAgICBwLT5yZXN0b3JlKCk7CiAgICAgICAgIApAQCAtMTcwNiwxMyArMTcxMiwx
MyBAQCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFw
aGljc0NvbnRleHQqIHAsCiAgICAgaWYgKG1fcmVmbGVjdGlvbiAmJiAhbV9wYWludGluZ0luc2lk
ZVJlZmxlY3Rpb24gJiYgKCFtX3RyYW5zZm9ybSB8fCBhcHBsaWVkVHJhbnNmb3JtKSkgewogICAg
ICAgICAvLyBNYXJrIHRoYXQgd2UgYXJlIG5vdyBpbnNpZGUgcmVwbGljYSBwYWludGluZy4KICAg
ICAgICAgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24gPSB0cnVlOwotICAgICAgICByZWZsZWN0
aW9uTGF5ZXIoKS0+cGFpbnRMYXllcihyb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0LCBoYXZl
VHJhbnNwYXJlbmN5LCBwYWludFJlc3RyaWN0aW9uLCBwYWludGluZ1Jvb3QpOworICAgICAgICBy
ZWZsZWN0aW9uTGF5ZXIoKS0+cGFpbnRMYXllcihyb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0
LCBoYXZlVHJhbnNwYXJlbmN5LCBwYWludFJlc3RyaWN0aW9uLCBwYWludGluZ1Jvb3QsIGZhbHNl
LCB0cnVlKTsKICAgICAgICAgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24gPSBmYWxzZTsKICAg
ICB9CiAKICAgICAvLyBDYWxjdWxhdGUgdGhlIGNsaXAgcmVjdHMgd2Ugc2hvdWxkIHVzZS4KICAg
ICBJbnRSZWN0IGxheWVyQm91bmRzLCBkYW1hZ2VSZWN0LCBjbGlwUmVjdFRvQXBwbHksIG91dGxp
bmVSZWN0OwotICAgIGNhbGN1bGF0ZVJlY3RzKHJvb3RMYXllciwgcGFpbnREaXJ0eVJlY3QsIGxh
eWVyQm91bmRzLCBkYW1hZ2VSZWN0LCBjbGlwUmVjdFRvQXBwbHksIG91dGxpbmVSZWN0KTsKKyAg
ICBjYWxjdWxhdGVSZWN0cyhyb290TGF5ZXIsIHBhaW50RGlydHlSZWN0LCBsYXllckJvdW5kcywg
ZGFtYWdlUmVjdCwgY2xpcFJlY3RUb0FwcGx5LCBvdXRsaW5lUmVjdCwgdGVtcG9yYXJ5Q2xpcFJl
Y3RzKTsKICAgICBpbnQgeCA9IGxheWVyQm91bmRzLngoKTsKICAgICBpbnQgeSA9IGxheWVyQm91
bmRzLnkoKTsKICAgICBpbnQgdHggPSB4IC0gcmVuZGVyZXIoKS0+eFBvcygpOwpAQCAtMTc2MCw3
ICsxNzY2LDcgQEAgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXll
ciwgR3JhcGhpY3NDb250ZXh0KiBwLAogICAgIC8vIE5vdyB3YWxrIHRoZSBzb3J0ZWQgbGlzdCBv
ZiBjaGlsZHJlbiB3aXRoIG5lZ2F0aXZlIHotaW5kaWNlcy4KICAgICBpZiAobV9uZWdaT3JkZXJM
aXN0KQogICAgICAgICBmb3IgKFZlY3RvcjxSZW5kZXJMYXllcio+OjppdGVyYXRvciBpdCA9IG1f
bmVnWk9yZGVyTGlzdC0+YmVnaW4oKTsgaXQgIT0gbV9uZWdaT3JkZXJMaXN0LT5lbmQoKTsgKytp
dCkKLSAgICAgICAgICAgIGl0WzBdLT5wYWludExheWVyKHJvb3RMYXllciwgcCwgcGFpbnREaXJ0
eVJlY3QsIGhhdmVUcmFuc3BhcmVuY3ksIHBhaW50UmVzdHJpY3Rpb24sIHBhaW50aW5nUm9vdCk7
CisgICAgICAgICAgICBpdFswXS0+cGFpbnRMYXllcihyb290TGF5ZXIsIHAsIHBhaW50RGlydHlS
ZWN0LCBoYXZlVHJhbnNwYXJlbmN5LCBwYWludFJlc3RyaWN0aW9uLCBwYWludGluZ1Jvb3QsIGZh
bHNlLCB0ZW1wb3JhcnlDbGlwUmVjdHMpOwogICAgIAogICAgIC8vIE5vdyBlc3RhYmxpc2ggdGhl
IGFwcHJvcHJpYXRlIGNsaXAgYW5kIHBhaW50IG91ciBjaGlsZCBSZW5kZXJPYmplY3RzLgogICAg
IGlmIChzaG91bGRQYWludCAmJiAhY2xpcFJlY3RUb0FwcGx5LmlzRW1wdHkoKSkgewpAQCAtMTc5
OCwxMiArMTgwNCwxMiBAQCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihSZW5kZXJMYXllciogcm9v
dExheWVyLCBHcmFwaGljc0NvbnRleHQqIHAsCiAgICAgLy8gUGFpbnQgYW55IGNoaWxkIGxheWVy
cyB0aGF0IGhhdmUgb3ZlcmZsb3cuCiAgICAgaWYgKG1fb3ZlcmZsb3dMaXN0KQogICAgICAgICBm
b3IgKFZlY3RvcjxSZW5kZXJMYXllcio+OjppdGVyYXRvciBpdCA9IG1fb3ZlcmZsb3dMaXN0LT5i
ZWdpbigpOyBpdCAhPSBtX292ZXJmbG93TGlzdC0+ZW5kKCk7ICsraXQpCi0gICAgICAgICAgICBp
dFswXS0+cGFpbnRMYXllcihyb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0LCBoYXZlVHJhbnNw
YXJlbmN5LCBwYWludFJlc3RyaWN0aW9uLCBwYWludGluZ1Jvb3QpOworICAgICAgICAgICAgaXRb
MF0tPnBhaW50TGF5ZXIocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgaGF2ZVRyYW5zcGFy
ZW5jeSwgcGFpbnRSZXN0cmljdGlvbiwgcGFpbnRpbmdSb290LCBmYWxzZSwgdGVtcG9yYXJ5Q2xp
cFJlY3RzKTsKICAgICAKICAgICAvLyBOb3cgd2FsayB0aGUgc29ydGVkIGxpc3Qgb2YgY2hpbGRy
ZW4gd2l0aCBwb3NpdGl2ZSB6LWluZGljZXMuCiAgICAgaWYgKG1fcG9zWk9yZGVyTGlzdCkKICAg
ICAgICAgZm9yIChWZWN0b3I8UmVuZGVyTGF5ZXIqPjo6aXRlcmF0b3IgaXQgPSBtX3Bvc1pPcmRl
ckxpc3QtPmJlZ2luKCk7IGl0ICE9IG1fcG9zWk9yZGVyTGlzdC0+ZW5kKCk7ICsraXQpCi0gICAg
ICAgICAgICBpdFswXS0+cGFpbnRMYXllcihyb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0LCBo
YXZlVHJhbnNwYXJlbmN5LCBwYWludFJlc3RyaWN0aW9uLCBwYWludGluZ1Jvb3QpOworICAgICAg
ICAgICAgaXRbMF0tPnBhaW50TGF5ZXIocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgaGF2
ZVRyYW5zcGFyZW5jeSwgcGFpbnRSZXN0cmljdGlvbiwgcGFpbnRpbmdSb290LCBmYWxzZSwgdGVt
cG9yYXJ5Q2xpcFJlY3RzKTsKICAgICAKICAgICBpZiAocmVuZGVyZXIoKS0+aGFzTWFzaygpICYm
IHNob3VsZFBhaW50ICYmICFzZWxlY3Rpb25Pbmx5ICYmICFkYW1hZ2VSZWN0LmlzRW1wdHkoKSkg
ewogICAgICAgICBzZXRDbGlwKHAsIHBhaW50RGlydHlSZWN0LCBkYW1hZ2VSZWN0KTsKQEAgLTE4
ODEsNyArMTg4Nyw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKFJl
bmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IEhpdFRlc3RSZXF1CiAgIAogICAgICAgICAvLyBN
YWtlIHN1cmUgdGhlIHBhcmVudCdzIGNsaXAgcmVjdHMgaGF2ZSBiZWVuIGNhbGN1bGF0ZWQuCiAg
ICAgICAgIGlmIChwYXJlbnQoKSkgewotICAgICAgICAgICAgcGFyZW50KCktPmNhbGN1bGF0ZUNs
aXBSZWN0cyhyb290TGF5ZXIpOworICAgICAgICAgICAgcGFyZW50KCktPnVwZGF0ZUNsaXBSZWN0
cyhyb290TGF5ZXIpOwogICAgICAgICAKICAgICAgICAgICAgIC8vIEdvIGFoZWFkIGFuZCB0ZXN0
IHRoZSBlbmNsb3NpbmcgY2xpcCBub3cuCiAgICAgICAgICAgICBJbnRSZWN0IGNsaXBSZWN0ID0g
cGFyZW50KCktPmNsaXBSZWN0cygpLT5vdmVyZmxvd0NsaXBSZWN0KCk7CkBAIC0xOTk0LDE2ICsy
MDAwLDMwIEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKFJlbmRlckxh
eWVyKiByb290TGF5ZXIsIGNvbnN0IEhpdFRlc3RSZXF1CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZv
aWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyhjb25zdCBSZW5kZXJMYXllciogcm9v
dExheWVyKQordm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlQ2xpcFJlY3RzKGNvbnN0IFJlbmRlckxh
eWVyKiByb290TGF5ZXIpCiB7CiAgICAgaWYgKG1fY2xpcFJlY3RzKQogICAgICAgICByZXR1cm47
IC8vIFdlIGhhdmUgdGhlIGNvcnJlY3QgY2FjaGVkIHZhbHVlLgogCisgICAgaWYgKHBhcmVudCgp
KQorICAgICAgICBwYXJlbnQoKS0+dXBkYXRlQ2xpcFJlY3RzKHJvb3RMYXllcik7CisKKyAgICBD
bGlwUmVjdHMgY2xpcFJlY3RzOworICAgIGNhbGN1bGF0ZUNsaXBSZWN0cyhyb290TGF5ZXIsIGNs
aXBSZWN0cywgdHJ1ZSk7CisKKyAgICBpZiAocGFyZW50KCkgJiYgcGFyZW50KCktPmNsaXBSZWN0
cygpICYmIGNsaXBSZWN0cyA9PSAqcGFyZW50KCktPmNsaXBSZWN0cygpKQorICAgICAgICBtX2Ns
aXBSZWN0cyA9IHBhcmVudCgpLT5jbGlwUmVjdHMoKTsKKyAgICBlbHNlCisgICAgICAgIG1fY2xp
cFJlY3RzID0gbmV3IChtX29iamVjdC0+cmVuZGVyQXJlbmEoKSkgQ2xpcFJlY3RzKGNsaXBSZWN0
cyk7CisgICAgbV9jbGlwUmVjdHMtPnJlZigpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpjYWxj
dWxhdGVDbGlwUmVjdHMoY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgQ2xpcFJlY3RzJiBj
bGlwUmVjdHMsIGJvb2wgdXNlQ2FjaGVkKSBjb25zdAorewogICAgIEludFJlY3QgaW5maW5pdGVS
ZWN0KElOVF9NSU4vMiwgSU5UX01JTi8yLCBJTlRfTUFYLCBJTlRfTUFYKTsKICAgICBpZiAoIXBh
cmVudCgpKSB7CiAgICAgICAgIC8vIFRoZSByb290IGxheWVyJ3MgY2xpcCByZWN0IGlzIGFsd2F5
cyBpbmZpbml0ZS4KLSAgICAgICAgbV9jbGlwUmVjdHMgPSBuZXcgKG1fb2JqZWN0LT5yZW5kZXJB
cmVuYSgpKSBDbGlwUmVjdHMoaW5maW5pdGVSZWN0KTsKLSAgICAgICAgbV9jbGlwUmVjdHMtPnJl
ZigpOworICAgICAgICBjbGlwUmVjdHMucmVzZXQoaW5maW5pdGVSZWN0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMjAxMiwyNiArMjAzMiwyNiBAQCB2b2lkIFJlbmRlckxheWVyOjpj
YWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllcikKICAgICBSZW5k
ZXJMYXllciogcGFyZW50TGF5ZXIgPSByb290TGF5ZXIgIT0gdGhpcyA/IHBhcmVudCgpIDogMDsK
ICAgICAKICAgICAvLyBFbnN1cmUgdGhhdCBvdXIgcGFyZW50J3MgY2xpcCBoYXMgYmVlbiBjYWxj
dWxhdGVkIHNvIHRoYXQgd2UgY2FuIGV4YW1pbmUgdGhlIHZhbHVlcy4KLSAgICBpZiAocGFyZW50
TGF5ZXIpCi0gICAgICAgIHBhcmVudExheWVyLT5jYWxjdWxhdGVDbGlwUmVjdHMocm9vdExheWVy
KTsKLQotICAgIC8vIFNldCB1cCBvdXIgdGhyZWUgcmVjdHMgdG8gaW5pdGlhbGx5IG1hdGNoIHRo
ZSBwYXJlbnQgcmVjdHMuCi0gICAgSW50UmVjdCBwb3NDbGlwUmVjdChwYXJlbnRMYXllciA/IHBh
cmVudExheWVyLT5jbGlwUmVjdHMoKS0+cG9zQ2xpcFJlY3QoKSA6IGluZmluaXRlUmVjdCk7Ci0g
ICAgSW50UmVjdCBvdmVyZmxvd0NsaXBSZWN0KHBhcmVudExheWVyID8gcGFyZW50TGF5ZXItPmNs
aXBSZWN0cygpLT5vdmVyZmxvd0NsaXBSZWN0KCkgOiBpbmZpbml0ZVJlY3QpOwotICAgIEludFJl
Y3QgZml4ZWRDbGlwUmVjdChwYXJlbnRMYXllciA/IHBhcmVudExheWVyLT5jbGlwUmVjdHMoKS0+
Zml4ZWRDbGlwUmVjdCgpIDogaW5maW5pdGVSZWN0KTsKLSAgICBib29sIGZpeGVkID0gcGFyZW50
TGF5ZXIgPyBwYXJlbnRMYXllci0+Y2xpcFJlY3RzKCktPmZpeGVkKCkgOiBmYWxzZTsKKyAgICBp
ZiAocGFyZW50TGF5ZXIpIHsKKyAgICAgICAgaWYgKHVzZUNhY2hlZCAmJiBwYXJlbnRMYXllci0+
Y2xpcFJlY3RzKCkpCisgICAgICAgICAgICBjbGlwUmVjdHMgPSAqcGFyZW50TGF5ZXItPmNsaXBS
ZWN0cygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwYXJlbnRMYXllci0+Y2FsY3VsYXRl
Q2xpcFJlY3RzKHJvb3RMYXllciwgY2xpcFJlY3RzKTsKKyAgICB9CisgICAgZWxzZQorICAgICAg
ICBjbGlwUmVjdHMucmVzZXQoaW5maW5pdGVSZWN0KTsKIAogICAgIC8vIEEgZml4ZWQgb2JqZWN0
IGlzIGVzc2VudGlhbGx5IHRoZSByb290IG9mIGl0cyBjb250YWluaW5nIGJsb2NrIGhpZXJhcmNo
eSwgc28gd2hlbgogICAgIC8vIHdlIGVuY291bnRlciBzdWNoIGFuIG9iamVjdCwgd2UgcmVzZXQg
b3VyIGNsaXAgcmVjdHMgdG8gdGhlIGZpeGVkQ2xpcFJlY3QuCiAgICAgaWYgKG1fb2JqZWN0LT5z
dHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRpb24pIHsKLSAgICAgICAgcG9zQ2xpcFJl
Y3QgPSBmaXhlZENsaXBSZWN0OwotICAgICAgICBvdmVyZmxvd0NsaXBSZWN0ID0gZml4ZWRDbGlw
UmVjdDsKLSAgICAgICAgZml4ZWQgPSB0cnVlOworICAgICAgICBjbGlwUmVjdHMuc2V0UG9zQ2xp
cFJlY3QoY2xpcFJlY3RzLmZpeGVkQ2xpcFJlY3QoKSk7CisgICAgICAgIGNsaXBSZWN0cy5zZXRP
dmVyZmxvd0NsaXBSZWN0KGNsaXBSZWN0cy5maXhlZENsaXBSZWN0KCkpOworICAgICAgICBjbGlw
UmVjdHMuc2V0Rml4ZWQodHJ1ZSk7CiAgICAgfQogICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5zdHls
ZSgpLT5wb3NpdGlvbigpID09IFJlbGF0aXZlUG9zaXRpb24pCi0gICAgICAgIHBvc0NsaXBSZWN0
ID0gb3ZlcmZsb3dDbGlwUmVjdDsKKyAgICAgICAgY2xpcFJlY3RzLnNldFBvc0NsaXBSZWN0KGNs
aXBSZWN0cy5vdmVyZmxvd0NsaXBSZWN0KCkpOwogICAgIGVsc2UgaWYgKG1fb2JqZWN0LT5zdHls
ZSgpLT5wb3NpdGlvbigpID09IEFic29sdXRlUG9zaXRpb24pCi0gICAgICAgIG92ZXJmbG93Q2xp
cFJlY3QgPSBwb3NDbGlwUmVjdDsKKyAgICAgICAgY2xpcFJlY3RzLnNldE92ZXJmbG93Q2xpcFJl
Y3QoY2xpcFJlY3RzLnBvc0NsaXBSZWN0KCkpOwogICAgIAogICAgIC8vIFVwZGF0ZSB0aGUgY2xp
cCByZWN0cyB0aGF0IHdpbGwgYmUgcGFzc2VkIHRvIGNoaWxkIGxheWVycy4KICAgICBpZiAobV9v
YmplY3QtPmhhc092ZXJmbG93Q2xpcCgpIHx8IG1fb2JqZWN0LT5oYXNDbGlwKCkpIHsKQEAgLTIw
NDEsNTUgKzIwNjEsNTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNv
bnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIpCiAgICAgICAgIGNvbnZlcnRUb0xheWVyQ29vcmRz
KHJvb3RMYXllciwgeCwgeSk7CiAgICAgICAgIFJlbmRlclZpZXcqIHZpZXcgPSByZW5kZXJlcigp
LT52aWV3KCk7CiAgICAgICAgIEFTU0VSVCh2aWV3KTsKLSAgICAgICAgaWYgKHZpZXcgJiYgZml4
ZWQgJiYgcm9vdExheWVyLT5yZW5kZXJlcigpID09IHZpZXcpIHsKKyAgICAgICAgaWYgKHZpZXcg
JiYgY2xpcFJlY3RzLmZpeGVkKCkgJiYgcm9vdExheWVyLT5yZW5kZXJlcigpID09IHZpZXcpIHsK
ICAgICAgICAgICAgIHggLT0gdmlldy0+ZnJhbWVWaWV3KCktPnNjcm9sbFgoKTsKICAgICAgICAg
ICAgIHkgLT0gdmlldy0+ZnJhbWVWaWV3KCktPnNjcm9sbFkoKTsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgaWYgKG1fb2JqZWN0LT5oYXNPdmVyZmxvd0NsaXAoKSkgewogICAgICAgICAg
ICAgSW50UmVjdCBuZXdPdmVyZmxvd0NsaXAgPSBtX29iamVjdC0+Z2V0T3ZlcmZsb3dDbGlwUmVj
dCh4LHkpOwotICAgICAgICAgICAgb3ZlcmZsb3dDbGlwUmVjdC5pbnRlcnNlY3QobmV3T3ZlcmZs
b3dDbGlwKTsKKyAgICAgICAgICAgIGNsaXBSZWN0cy5zZXRPdmVyZmxvd0NsaXBSZWN0KGludGVy
c2VjdGlvbihuZXdPdmVyZmxvd0NsaXAsIGNsaXBSZWN0cy5vdmVyZmxvd0NsaXBSZWN0KCkpKTsK
ICAgICAgICAgICAgIGlmIChtX29iamVjdC0+aXNQb3NpdGlvbmVkKCkgfHwgbV9vYmplY3QtPmlz
UmVsUG9zaXRpb25lZCgpKQotICAgICAgICAgICAgICAgIHBvc0NsaXBSZWN0LmludGVyc2VjdChu
ZXdPdmVyZmxvd0NsaXApOworICAgICAgICAgICAgICAgIGNsaXBSZWN0cy5zZXRQb3NDbGlwUmVj
dChpbnRlcnNlY3Rpb24obmV3T3ZlcmZsb3dDbGlwLCBjbGlwUmVjdHMucG9zQ2xpcFJlY3QoKSkp
OwogICAgICAgICB9CiAgICAgICAgIGlmIChtX29iamVjdC0+aGFzQ2xpcCgpKSB7CiAgICAgICAg
ICAgICBJbnRSZWN0IG5ld1Bvc0NsaXAgPSBtX29iamVjdC0+Z2V0Q2xpcFJlY3QoeCx5KTsKLSAg
ICAgICAgICAgIHBvc0NsaXBSZWN0LmludGVyc2VjdChuZXdQb3NDbGlwKTsKLSAgICAgICAgICAg
IG92ZXJmbG93Q2xpcFJlY3QuaW50ZXJzZWN0KG5ld1Bvc0NsaXApOwotICAgICAgICAgICAgZml4
ZWRDbGlwUmVjdC5pbnRlcnNlY3QobmV3UG9zQ2xpcCk7CisgICAgICAgICAgICBjbGlwUmVjdHMu
c2V0UG9zQ2xpcFJlY3QoaW50ZXJzZWN0aW9uKG5ld1Bvc0NsaXAsIGNsaXBSZWN0cy5wb3NDbGlw
UmVjdCgpKSk7CisgICAgICAgICAgICBjbGlwUmVjdHMuc2V0T3ZlcmZsb3dDbGlwUmVjdChpbnRl
cnNlY3Rpb24obmV3UG9zQ2xpcCwgY2xpcFJlY3RzLm92ZXJmbG93Q2xpcFJlY3QoKSkpOworICAg
ICAgICAgICAgY2xpcFJlY3RzLnNldEZpeGVkQ2xpcFJlY3QoaW50ZXJzZWN0aW9uKG5ld1Bvc0Ns
aXAsIGNsaXBSZWN0cy5maXhlZENsaXBSZWN0KCkpKTsKICAgICAgICAgfQogICAgIH0KLSAgICAK
LSAgICAvLyBJZiBvdXIgY2xpcCByZWN0cyBtYXRjaCBvdXIgcGFyZW50J3MgY2xpcCwgdGhlbiB3
ZSBjYW4ganVzdCBzaGFyZSBpdHMgZGF0YSBzdHJ1Y3R1cmUgYW5kCi0gICAgLy8gcmVmIGNvdW50
LgotICAgIGlmIChwYXJlbnQoKS0+Y2xpcFJlY3RzKCkgJiYKLSAgICAgICAgZml4ZWQgPT0gcGFy
ZW50KCktPmNsaXBSZWN0cygpLT5maXhlZCgpICYmCi0gICAgICAgIHBvc0NsaXBSZWN0ID09IHBh
cmVudCgpLT5jbGlwUmVjdHMoKS0+cG9zQ2xpcFJlY3QoKSAmJgotICAgICAgICBvdmVyZmxvd0Ns
aXBSZWN0ID09IHBhcmVudCgpLT5jbGlwUmVjdHMoKS0+b3ZlcmZsb3dDbGlwUmVjdCgpICYmCi0g
ICAgICAgIGZpeGVkQ2xpcFJlY3QgPT0gcGFyZW50KCktPmNsaXBSZWN0cygpLT5maXhlZENsaXBS
ZWN0KCkpCi0gICAgICAgIG1fY2xpcFJlY3RzID0gcGFyZW50KCktPmNsaXBSZWN0cygpOwotICAg
IGVsc2UKLSAgICAgICAgbV9jbGlwUmVjdHMgPSBuZXcgKG1fb2JqZWN0LT5yZW5kZXJBcmVuYSgp
KSBDbGlwUmVjdHMob3ZlcmZsb3dDbGlwUmVjdCwgZml4ZWRDbGlwUmVjdCwgcG9zQ2xpcFJlY3Qs
IGZpeGVkKTsKLSAgICBtX2NsaXBSZWN0cy0+cmVmKCk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6
OmNhbGN1bGF0ZVJlY3RzKGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IEludFJl
Y3QmIHBhaW50RGlydHlSZWN0LCBJbnRSZWN0JiBsYXllckJvdW5kcywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEludFJlY3QmIGJhY2tncm91bmRSZWN0LCBJbnRSZWN0JiBmb3Jl
Z3JvdW5kUmVjdCwgSW50UmVjdCYgb3V0bGluZVJlY3QpIGNvbnN0CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJbnRSZWN0JiBiYWNrZ3JvdW5kUmVjdCwgSW50UmVjdCYgZm9yZWdy
b3VuZFJlY3QsIEludFJlY3QmIG91dGxpbmVSZWN0LCBib29sIHRlbXBvcmFyeUNsaXBSZWN0cykg
Y29uc3QKIHsKICAgICBpZiAocm9vdExheWVyICE9IHRoaXMgJiYgcGFyZW50KCkpIHsKLSAgICAg
ICAgcGFyZW50KCktPmNhbGN1bGF0ZUNsaXBSZWN0cyhyb290TGF5ZXIpOworICAgICAgICBDbGlw
UmVjdHMgcGFyZW50Q2xpcFJlY3RzOworICAgICAgICBpZiAodGVtcG9yYXJ5Q2xpcFJlY3RzKQor
ICAgICAgICAgICAgcGFyZW50KCktPmNhbGN1bGF0ZUNsaXBSZWN0cyhyb290TGF5ZXIsIHBhcmVu
dENsaXBSZWN0cyk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcGFyZW50KCktPnVwZGF0
ZUNsaXBSZWN0cyhyb290TGF5ZXIpOworICAgICAgICAgICAgcGFyZW50Q2xpcFJlY3RzID0gKnBh
cmVudCgpLT5jbGlwUmVjdHMoKTsKKyAgICAgICAgfQogCi0gICAgICAgIGJhY2tncm91bmRSZWN0
ID0gbV9vYmplY3QtPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbiA/IHBhcmVu
dCgpLT5jbGlwUmVjdHMoKS0+Zml4ZWRDbGlwUmVjdCgpIDoKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAobV9vYmplY3QtPmlzUG9zaXRpb25lZCgpID8gcGFyZW50KCktPmNsaXBSZWN0cygpLT5w
b3NDbGlwUmVjdCgpIDogCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhcmVudCgpLT5jbGlwUmVjdHMoKS0+b3ZlcmZsb3dDbGlwUmVjdCgpKTsK
KyAgICAgICAgYmFja2dyb3VuZFJlY3QgPSBtX29iamVjdC0+c3R5bGUoKS0+cG9zaXRpb24oKSA9
PSBGaXhlZFBvc2l0aW9uID8gcGFyZW50Q2xpcFJlY3RzLmZpeGVkQ2xpcFJlY3QoKSA6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgKG1fb2JqZWN0LT5pc1Bvc2l0aW9uZWQoKSA/IHBhcmVudENs
aXBSZWN0cy5wb3NDbGlwUmVjdCgpIDogCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhcmVudENsaXBSZWN0cy5vdmVyZmxvd0NsaXBSZWN0KCkp
OwogICAgICAgICBSZW5kZXJWaWV3KiB2aWV3ID0gcmVuZGVyZXIoKS0+dmlldygpOwogICAgICAg
ICBBU1NFUlQodmlldyk7Ci0gICAgICAgIGlmICh2aWV3ICYmIHBhcmVudCgpLT5jbGlwUmVjdHMo
KS0+Zml4ZWQoKSAmJiByb290TGF5ZXItPnJlbmRlcmVyKCkgPT0gdmlldykKKyAgICAgICAgaWYg
KHZpZXcgJiYgcGFyZW50Q2xpcFJlY3RzLmZpeGVkKCkgJiYgcm9vdExheWVyLT5yZW5kZXJlcigp
ID09IHZpZXcpCiAgICAgICAgICAgICBiYWNrZ3JvdW5kUmVjdC5tb3ZlKHZpZXctPmZyYW1lVmll
dygpLT5zY3JvbGxYKCksIHZpZXctPmZyYW1lVmlldygpLT5zY3JvbGxZKCkpOwogCiAgICAgICAg
IGJhY2tncm91bmRSZWN0LmludGVyc2VjdChwYWludERpcnR5UmVjdCk7CiAgICAgfSBlbHNlCiAg
ICAgICAgIGJhY2tncm91bmRSZWN0ID0gcGFpbnREaXJ0eVJlY3Q7CisKICAgICBmb3JlZ3JvdW5k
UmVjdCA9IGJhY2tncm91bmRSZWN0OwogICAgIG91dGxpbmVSZWN0ID0gYmFja2dyb3VuZFJlY3Q7
CiAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA2MmExOThiLi5mMDYwOGMxIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTY5LDYgKzY5LDEyIEBAIHN0cnVjdCBIaXRUZXN0UmVx
dWVzdDsKIAogY2xhc3MgQ2xpcFJlY3RzIHsKIHB1YmxpYzoKKyAgICBDbGlwUmVjdHMoKQorICAg
ICAgICA6IG1fcmVmQ250KDApCisgICAgICAgICwgbV9maXhlZChmYWxzZSkKKyAgICB7CisgICAg
fQorCiAgICAgQ2xpcFJlY3RzKGNvbnN0IEludFJlY3QmIHIpCiAgICAgICAgIDogbV9vdmVyZmxv
d0NsaXBSZWN0KHIpCiAgICAgICAgICwgbV9maXhlZENsaXBSZWN0KHIpCkBAIC03OCwxOSArODQs
MzQgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICBDbGlwUmVjdHMoY29uc3QgSW50UmVj
dCYgb3ZlcmZsb3dSZWN0LCBjb25zdCBJbnRSZWN0JiBmaXhlZFJlY3QsIGNvbnN0IEludFJlY3Qm
IHBvc1JlY3QsIGJvb2wgZml4ZWQpCi0gICAgICAgIDogbV9vdmVyZmxvd0NsaXBSZWN0KG92ZXJm
bG93UmVjdCkKLSAgICAgICAgLCBtX2ZpeGVkQ2xpcFJlY3QoZml4ZWRSZWN0KQotICAgICAgICAs
IG1fcG9zQ2xpcFJlY3QocG9zUmVjdCkKKyAgICBDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzJiBv
dGhlcikKKyAgICAgICAgOiBtX292ZXJmbG93Q2xpcFJlY3Qob3RoZXIub3ZlcmZsb3dDbGlwUmVj
dCgpKQorICAgICAgICAsIG1fZml4ZWRDbGlwUmVjdChvdGhlci5maXhlZENsaXBSZWN0KCkpCisg
ICAgICAgICwgbV9wb3NDbGlwUmVjdChvdGhlci5wb3NDbGlwUmVjdCgpKQogICAgICAgICAsIG1f
cmVmQ250KDApCi0gICAgICAgICwgbV9maXhlZChmaXhlZCkKKyAgICAgICAgLCBtX2ZpeGVkKG90
aGVyLmZpeGVkKCkpCiAgICAgewogICAgIH0KIAotICAgIGNvbnN0IEludFJlY3QmIG92ZXJmbG93
Q2xpcFJlY3QoKSB7IHJldHVybiBtX292ZXJmbG93Q2xpcFJlY3Q7IH0KLSAgICBjb25zdCBJbnRS
ZWN0JiBmaXhlZENsaXBSZWN0KCkgeyByZXR1cm4gbV9maXhlZENsaXBSZWN0OyB9Ci0gICAgY29u
c3QgSW50UmVjdCYgcG9zQ2xpcFJlY3QoKSB7IHJldHVybiBtX3Bvc0NsaXBSZWN0OyB9CisgICAg
dm9pZCByZXNldChjb25zdCBJbnRSZWN0JiByKQorICAgIHsKKyAgICAgICAgbV9vdmVyZmxvd0Ns
aXBSZWN0ID0gcjsKKyAgICAgICAgbV9maXhlZENsaXBSZWN0ID0gcjsKKyAgICAgICAgbV9wb3ND
bGlwUmVjdCA9IHI7CisgICAgICAgIG1fZml4ZWQgPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAg
Y29uc3QgSW50UmVjdCYgb3ZlcmZsb3dDbGlwUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZs
b3dDbGlwUmVjdDsgfQorICAgIHZvaWQgc2V0T3ZlcmZsb3dDbGlwUmVjdChjb25zdCBJbnRSZWN0
JiByKSB7IG1fb3ZlcmZsb3dDbGlwUmVjdCA9IHI7IH0KKworICAgIGNvbnN0IEludFJlY3QmIGZp
eGVkQ2xpcFJlY3QoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkQ2xpcFJlY3Q7IH0KKyAgICB2b2lk
IHNldEZpeGVkQ2xpcFJlY3QoY29uc3QgSW50UmVjdCZyKSB7IG1fZml4ZWRDbGlwUmVjdCA9IHI7
IH0KKworICAgIGNvbnN0IEludFJlY3QmIHBvc0NsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9w
b3NDbGlwUmVjdDsgfQorICAgIHZvaWQgc2V0UG9zQ2xpcFJlY3QoY29uc3QgSW50UmVjdCYgcikg
eyBtX3Bvc0NsaXBSZWN0ID0gcjsgfQorCiAgICAgYm9vbCBmaXhlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZml4ZWQ7IH0KKyAgICB2b2lkIHNldEZpeGVkKGJvb2wgZml4ZWQpIHsgbV9maXhlZCA9IGZp
eGVkOyB9CiAKICAgICB2b2lkIHJlZigpIHsgbV9yZWZDbnQrKzsgfQogICAgIHZvaWQgZGVyZWYo
UmVuZGVyQXJlbmEqIHJlbmRlckFyZW5hKSB7IGlmICgtLW1fcmVmQ250ID09IDApIGRlc3Ryb3ko
cmVuZGVyQXJlbmEpOyB9CkBAIC0xMDIsNiArMTIzLDIzIEBAIHB1YmxpYzoKIAogICAgIC8vIE92
ZXJyaWRkZW4gdG8gcHJldmVudCB0aGUgbm9ybWFsIGRlbGV0ZSBmcm9tIGJlaW5nIGNhbGxlZC4K
ICAgICB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkKiwgc2l6ZV90KTsKKworICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBDbGlwUmVjdHMmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fb3ZlcmZsb3dDbGlwUmVjdCA9PSBvdGhlci5vdmVyZmxvd0NsaXBSZWN0KCkgJiYKKyAg
ICAgICAgICAgICAgIG1fZml4ZWRDbGlwUmVjdCA9PSBvdGhlci5maXhlZENsaXBSZWN0KCkgJiYK
KyAgICAgICAgICAgICAgIG1fcG9zQ2xpcFJlY3QgPT0gb3RoZXIucG9zQ2xpcFJlY3QoKSAmJgor
ICAgICAgICAgICAgICAgbV9maXhlZCA9PSBvdGhlci5maXhlZCgpOworICAgIH0KKworICAgIENs
aXBSZWN0cyYgb3BlcmF0b3I9KGNvbnN0IENsaXBSZWN0cyYgb3RoZXIpCisgICAgeworICAgICAg
ICBtX292ZXJmbG93Q2xpcFJlY3QgPSBvdGhlci5vdmVyZmxvd0NsaXBSZWN0KCk7CisgICAgICAg
IG1fZml4ZWRDbGlwUmVjdCA9IG90aGVyLmZpeGVkQ2xpcFJlY3QoKTsKKyAgICAgICAgbV9wb3ND
bGlwUmVjdCA9IG90aGVyLnBvc0NsaXBSZWN0KCk7CisgICAgICAgIG1fZml4ZWQgPSBvdGhlci5m
aXhlZCgpOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQogICAgICAgICAKIHByaXZhdGU6
CiAgICAgLy8gVGhlIG5vcm1hbCBvcGVyYXRvciBuZXcgaXMgZGlzYWxsb3dlZCBvbiBhbGwgcmVu
ZGVyIG9iamVjdHMuCkBAIC0zMDIsOSArMzQwLDE1IEBAIHB1YmxpYzoKICAgICAvLyB8cm9vdExh
eWVyfS4gIEl0IGFsc28gY29tcHV0ZXMgb3VyIGJhY2tncm91bmQgYW5kIGZvcmVncm91bmQgY2xp
cCByZWN0cwogICAgIC8vIGZvciBwYWludGluZy9ldmVudCBoYW5kbGluZy4KICAgICB2b2lkIGNh
bGN1bGF0ZVJlY3RzKGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IEludFJlY3Qm
IHBhaW50RGlydHlSZWN0LCBJbnRSZWN0JiBsYXllckJvdW5kcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgIEludFJlY3QmIGJhY2tncm91bmRSZWN0LCBJbnRSZWN0JiBmb3JlZ3JvdW5kUmVjdCwg
SW50UmVjdCYgb3V0bGluZVJlY3QpIGNvbnN0OwotICAgIHZvaWQgY2FsY3VsYXRlQ2xpcFJlY3Rz
KGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIpOworICAgICAgICAgICAgICAgICAgICAgICAg
SW50UmVjdCYgYmFja2dyb3VuZFJlY3QsIEludFJlY3QmIGZvcmVncm91bmRSZWN0LCBJbnRSZWN0
JiBvdXRsaW5lUmVjdCwgYm9vbCB0ZW1wb3JhcnlDbGlwUmVjdHMgPSBmYWxzZSkgY29uc3Q7CisK
KyAgICAvLyBDb21wdXRlIGFuZCBjYWNoZSBjbGlwIHJlY3RzIGNvbXB1dGVkIHdpdGggdGhlIGdp
dmVuIGxheWVyIGFzIHRoZSByb290CisgICAgdm9pZCB1cGRhdGVDbGlwUmVjdHMoY29uc3QgUmVu
ZGVyTGF5ZXIqIHJvb3RMYXllcik7CisgICAgLy8gQ29tcHV0ZSBhbmQgcmV0dXJuIHRoZSBjbGlw
IHJlY3RzLiBJZiB1c2VDYWNoZWQgaXMgdHJ1ZSwgd2lsbCB1c2VkIHByZXZpb3VzbHkgY29tcHV0
ZWQgY2xpcCByZWN0cyBvbiBhbmNlc3RvcnMKKyAgICAvLyAocmF0aGVyIHRoYW4gY29tcHV0aW5n
IHRoZW0gYWxsIGZyb20gc2NyYXRjaCB1cCB0aGUgcGFyZW50IGNoYWluKS4KKyAgICB2b2lkIGNh
bGN1bGF0ZUNsaXBSZWN0cyhjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBDbGlwUmVjdHMm
LCBib29sIHVzZUNhY2hlZCA9IGZhbHNlKSBjb25zdDsKICAgICBDbGlwUmVjdHMqIGNsaXBSZWN0
cygpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcFJlY3RzOyB9CisKICAgICBJbnRSZWN0IGNoaWxkcmVu
Q2xpcFJlY3QoKSBjb25zdDsgLy8gUmV0dXJucyB0aGUgZm9yZWdyb3VuZCBjbGlwIHJlY3Qgb2Yg
dGhlIGxheWVyIGluIHRoZSBkb2N1bWVudCdzIGNvb3JkaW5hdGUgc3BhY2UuCiAgICAgSW50UmVj
dCBzZWxmQ2xpcFJlY3QoKSBjb25zdDsgLy8gUmV0dXJucyB0aGUgYmFja2dyb3VuZCBjbGlwIHJl
Y3Qgb2YgdGhlIGxheWVyIGluIHRoZSBkb2N1bWVudCdzIGNvb3JkaW5hdGUgc3BhY2UuCiAKQEAg
LTM0OSw3ICszOTMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgY29sbGVjdExheWVycyhWZWN0b3I8
UmVuZGVyTGF5ZXIqPiomLCBWZWN0b3I8UmVuZGVyTGF5ZXIqPiomKTsKIAogICAgIHZvaWQgcGFp
bnRMYXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJ
bnRSZWN0JiBwYWludERpcnR5UmVjdCwKLSAgICAgICAgICAgICAgICAgICAgYm9vbCBoYXZlVHJh
bnNwYXJlbmN5LCBQYWludFJlc3RyaWN0aW9uLCBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdCwg
Ym9vbCBhcHBsaWVkVHJhbnNmb3JtID0gZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBib29s
IGhhdmVUcmFuc3BhcmVuY3ksIFBhaW50UmVzdHJpY3Rpb24sIFJlbmRlck9iamVjdCogcGFpbnRp
bmdSb290LAorICAgICAgICAgICAgICAgICAgICBib29sIGFwcGxpZWRUcmFuc2Zvcm0gPSBmYWxz
ZSwgYm9vbCB0ZW1wb3JhcnlDbGlwUmVjdHMgPSBmYWxzZSk7CiAgICAgUmVuZGVyTGF5ZXIqIGhp
dFRlc3RMYXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBjb25zdCBIaXRUZXN0UmVxdWVzdCYs
IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBJbnRSZWN0JiBoaXRUZXN0UmVjdCwgY29uc3QgSW50UG9p
bnQmIGhpdFRlc3RQb2ludCwgYm9vbCBhcHBsaWVkVHJhbnNmb3JtID0gZmFsc2UpOwogICAgIHZv
aWQgY29tcHV0ZVNjcm9sbERpbWVuc2lvbnMoYm9vbCogbmVlZEhCYXIgPSAwLCBib29sKiBuZWVk
VkJhciA9IDApOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNh
LmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwCmluZGV4IGJlMjgxNzEu
Ljk1NTY5ODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3Bw
CisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwCkBAIC02Niw4ICs2Niwx
MyBAQCB2b2lkIFJlbmRlclJlcGxpY2E6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQg
dHgsIGludCB0eSkKICAgICB0eSArPSBtX3k7CiAKICAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09
IFBhaW50UGhhc2VGb3JlZ3JvdW5kKQotICAgICAgICAvLyBUdXJuIGFyb3VuZCBhbmQgcGFpbnQg
dGhlIHBhcmVudCBsYXllci4KLSAgICAgICAgbGF5ZXIoKS0+cGFyZW50KCktPnBhaW50TGF5ZXIo
bGF5ZXIoKS0+dHJhbnNmb3JtKCkgPyBsYXllcigpLT5wYXJlbnQoKSA6IGxheWVyKCktPmVuY2xv
c2luZ1RyYW5zZm9ybWVkQW5jZXN0b3IoKSwgcGFpbnRJbmZvLmNvbnRleHQsIHBhaW50SW5mby5y
ZWN0LCB0cnVlLCBQYWludFJlc3RyaWN0aW9uTm9uZSwgMCwgdHJ1ZSk7CisgICAgICAgIC8vIFR1
cm4gYXJvdW5kIGFuZCBwYWludCB0aGUgcGFyZW50IGxheWVyLiBVc2UgdGVtcG9yYXJ5IGNsaXBS
ZWN0cywgc28gdGhhdCB0aGUgbGF5ZXIgZG9lc24ndCBlbmQgdXAgY2FjaGluZyBjbGlwIHJlY3Rz
CisgICAgICAgIC8vIGNvbXB1dGluZyB1c2luZyB0aGUgd3Jvbmcgcm9vdExheWVyCisgICAgICAg
IGxheWVyKCktPnBhcmVudCgpLT5wYWludExheWVyKGxheWVyKCktPnRyYW5zZm9ybSgpID8gbGF5
ZXIoKS0+cGFyZW50KCkgOiBsYXllcigpLT5lbmNsb3NpbmdUcmFuc2Zvcm1lZEFuY2VzdG9yKCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhaW50SW5mby5jb250ZXh0
LCBwYWludEluZm8ucmVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dHJ1ZSwgUGFpbnRSZXN0cmljdGlvbk5vbmUsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRydWUsICAgICAvLyBhcHBsaWVkVHJhbnNmb3JtCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUpOyAgICAvLyB0ZW1wb3JhcnlDbGlwUmVjdHMK
ICAgICBlbHNlIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZU1hc2spCiAgICAgICAg
IHBhaW50TWFzayhwYWludEluZm8sIHR4LCB0eSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26116</attachid>
            <date>2008-12-17 23:35:24 -0800</date>
            <delta_ts>2008-12-18 09:29:12 -0800</delta_ts>
            <desc>Patch, testcase, changelog (minor patch change)</desc>
            <filename>22570_patch2.txt</filename>
            <type>text/plain</type>
            <size>25956</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5OWQ3NDNlLi4yYzFkNjI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDgtMTIt
MTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzAKKyAgICAgICAgCisgICAgICAgIEFkZCB0
ZXN0Y2FzZSBmb3IgcmVmbGVjdGlvbiBvbiBhbiBlbGVtZW50IHdpdGggb3ZlcmZsb3c6IGhpZGRl
bgorCisgICAgICAgICogZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9y
ZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1o
aWRkZW4tZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9y
ZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQ6IEFkZGVk
LgorCiAyMDA4LTEyLTE3ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuaWtvbGFzLnppbW1lcm1hbm5A
dG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFr
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjdkNGE1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZmxlY3Rp
b25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKQEAgLTAsMCArMSw2OSBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgorICAiaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CisKKzxodG1sPgorPGhlYWQ+CisgIDxt
ZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0
PXV0Zi04Ij4KKyAgPHRpdGxlPlJlZmxlY3Rpb24gYW5kIG92ZXJmbG93PC90aXRsZT4KKyAgCisg
IDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgYm9keSB7CisgICAg
ICBtYXJnaW46IDUwcHg7CisgICAgfQorICAgICNwbGF5ZXIgeworICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgdG9wOiAxMDBweDsKKyAgICAgIC13ZWJraXQtYm94LXJlZmxlY3Q6IGJl
bG93IDEwcHg7CisgICAgICB3aWR0aDogNDAwcHg7CisgICAgfQorCisgICAgI2lubmVyIHsKKyAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAg
ICBvdmVyZmxvdzogaGlkZGVuOworICAgICAgICBvdXRsaW5lOiAycHggc29saWQgYmxhY2s7Cisg
ICAgfQorICAgIAorICAgIC50b3AgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgIHdpZHRoOiAxMDAlOworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgIHRvcDogMHB4
OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICB9CisgICAgCisgICAgLmJv
dHRvbSB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgd2lkdGg6IDEwMCU7
CisgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgYm90dG9tOiAwcHg7CisgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOworICAgIH0KKyAgICAKKyAgICAudGVzdGVyIHsKKyAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHdpZHRoOiA0MDBweDsKKyAgICAgIGhlaWdodDog
NTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgIHotaW5kZXg6IC0xOwor
ICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCisgICAgPHA+PGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcwIj5odHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzA8L2E+LiBUZXN0IGZvcgorICAgICAgcmVm
bGVjdGlvbiBwYWludGluZyBvbiBvdmVyZmxvdzpoaWRkZW4gZWxlbWVudC4gWW91IHNob3VsZCBu
b3Qgc2VlIGFueSByZWQgYmVsb3cuPC9wPgorICAgIAorICAgIDxkaXYgY2xhc3M9InRlc3RlciIg
c3R5bGU9InRvcDogMTAwcHg7Ij48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJ0ZXN0ZXIiIHN0eWxl
PSJ0b3A6IDI1MHB4OyI+PC9kaXY+CisKKyAgICA8ZGl2IGlkPSJwbGF5ZXIiPgorICAgICAgPGRp
diBpZD0iaW5uZXIiPgorICAgICAgICAgIDxkaXYgY2xhc3M9InRvcCI+VG9wPC9kaXY+CisgICAg
ICAgICAgPGRpdiBjbGFzcz0iYm90dG9tIj5Cb3R0b208L2Rpdj4KKyAgICAgIDwvZGl2PgorICAg
IDwvZGl2PgorICAgIAorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRl
bi1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZmxl
Y3Rpb25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLmNoZWNrc3VtCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5YjM3NDgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0aW9uLW92
ZXJmbG93LWhpZGRlbi1leHBlY3RlZC5jaGVja3N1bQpAQCAtMCwwICsxIEBACisyYjNmZDBhMTQx
OWIxNjkwMjIwZWYyNDEyY2Q3ODE2NwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L3JlZmxlY3Rpb25zL3JlZmxlY3Rp
b24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L3JlZmxlY3Rpb25zL3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLWV4cGVjdGVkLnBu
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYjFiYWYyCkJpbmFyeSBmaWxl
cyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVmbGVjdGlv
bnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQucG5nIGRpZmZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlv
bi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvcmVmbGVjdGlvbnMvcmVmbGVjdGlvbi1vdmVyZmxvdy1oaWRkZW4tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1OTUxNmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9yZWZsZWN0aW9ucy9yZWZsZWN0
aW9uLW92ZXJmbG93LWhpZGRlbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgxMzYgbGF5ZXJUeXBlOiBiYWNrZ3JvdW5kIG9ubHkK
K2xheWVyIGF0ICg1MCwxMDApIHNpemUgNDAweDUwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVk
KSB6STogLTEge0RJVn0gYXQgKDUwLDEwMCkgc2l6ZSA0MDB4NTAgW2JnY29sb3I9I0ZGMDAwMF0K
K2xheWVyIGF0ICg1MCwyNTApIHNpemUgNDAweDUwCisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVk
KSB6STogLTEge0RJVn0gYXQgKDUwLDI1MCkgc2l6ZSA0MDB4NTAgW2JnY29sb3I9I0ZGMDAwMF0K
K2xheWVyIGF0ICgwLDApIHNpemUgODAweDEzNiBsYXllclR5cGU6IGZvcmVncm91bmQgb25seQor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MTM2CisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDUwLDUwKSBzaXplIDcwMHgzNgorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDApIHNpemUgNzAweDM2CisgICAgICAgIFJlbmRlcklubGluZSB7QX0gYXQgKDAsMCkgc2l6
ZSAzMDV4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMzA1eDE4CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAz
MDU6ICJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzAiCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMzA1LDApIHNpemUgNjk3eDM2CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDMwNSwwKSB3aWR0aCA2MTogIi4gVGVzdCBmb3IgIgorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgzNjYsMCkgd2lkdGggMzMxOiAicmVmbGVjdGlvbiBwYWludGluZyBvbiBvdmVy
ZmxvdzpoaWRkZW4gZWxlbWVudC4gWW91IgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3
aWR0aCAxODg6ICJzaG91bGQgbm90IHNlZSBhbnkgcmVkIGJlbG93LiIKK2xheWVyIGF0ICg1MCwx
MDApIHNpemUgNDAweDQxMAorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDUw
LDEwMCkgc2l6ZSA0MDB4MjAwCitsYXllciBhdCAoNTAsMTAwKSBzaXplIDQwMHgyMDAKKyAgUmVu
ZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgNDAweDIw
MAorbGF5ZXIgYXQgKDUwLDEwMCkgc2l6ZSA0MDB4NTAKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9u
ZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgNDAweDUwIFtiZ2NvbG9yPSMwMDgwMDBdCisgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjZ4MTgKKyAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDI2OiAiVG9wIgorbGF5ZXIgYXQgKDUwLDI1MCkgc2l6ZSA0MDB4NTAKKyAgUmVu
ZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDE1MCkgc2l6ZSA0MDB4NTAgW2JnY29s
b3I9IzAwODAwMF0KKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0N3gxOAor
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDc6ICJCb3R0b20iCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ2NDgzMzcuLjFiYjg0
MDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzggQEAKKzIwMDgtMTItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcwCisgICAg
ICAgIAorICAgICAgICBBZGQgdGhlIGFiaWxpdHkgdG8gY29tcHV0ZSBjbGlwIHJlY3RzIGluZGVw
ZW5kZW50bHkgZnJvbQorICAgICAgICBjYWNoaW5nIHRoZW0gb24gdGhlIFJlbmRlckxheWVyLiBX
aGVuIHBhaW50aW5nIHJlZmxlY3Rpb25zLCB1c2UgCisgICAgICAgIHN1Y2ggdGVtcG9yYXJpbHkg
Y29tcHV0ZWQgY2xpcFJlY3RzLCBvdGhlcndpc2UgdGhlIGxheWVyIG1heSBjYWNoZQorICAgICAg
ICBjbGlwUmVjdHMgd2hpY2ggYXJlIGludmFsaWQsIHNpbmNlIHRoZXkgaGF2ZSBiZWVuIGNvbXB1
dGVkIHdpdGgKKyAgICAgICAgYSByb290TGF5ZXIgdGhhdCBpcyBub3QgdGhlIG9uZSB1c3VhbGx5
IHVzZWQgdG8gcGFpbnQuCisgICAgICAgIAorICAgICAgICBUZXN0OiBmYXN0L3JlZmxlY3Rpb25z
L3JlZmxlY3Rpb24tb3ZlcmZsb3ctaGlkZGVuLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVDbGlwUmVjdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlUmVjdHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpDbGlwUmVjdHMpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpDbGlw
UmVjdHM6Om92ZXJmbG93Q2xpcFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpz
ZXRPdmVyZmxvd0NsaXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0czo6Zml4ZWRD
bGlwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwUmVjdHM6OnNldEZpeGVkQ2xpcFJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpwb3NDbGlwUmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDbGlwUmVjdHM6OnNldFBvc0NsaXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNs
aXBSZWN0czo6c2V0Rml4ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcFJlY3RzOjpvcGVyYXRv
cj09KToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBSZWN0czo6b3BlcmF0b3I9KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJS
ZXBsaWNhOjpwYWludCk6CisKIDIwMDgtMTItMTcgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29s
YXMuemltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFj
aWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNTEyOTA5MS4u
OTUzMDA0NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisr
KyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTY0MSw3ICsxNjQxLDcg
QEAgc3RhdGljIHZvaWQgcmVzdG9yZUNsaXAoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRS
ZWN0JiBwYWludERpcnR5UmVjdCwgY29uc3QKIHZvaWQKIFJlbmRlckxheWVyOjpwYWludExheWVy
KFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCogcCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IEludFJlY3QmIHBhaW50RGlydHlSZWN0LCBib29sIGhhdmVUcmFu
c3BhcmVuY3ksIFBhaW50UmVzdHJpY3Rpb24gcGFpbnRSZXN0cmljdGlvbiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290LCBib29sIGFwcGxpZWRUcmFu
c2Zvcm0pCisgICAgICAgICAgICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9v
dCwgYm9vbCBhcHBsaWVkVHJhbnNmb3JtLCBib29sIHRlbXBvcmFyeUNsaXBSZWN0cykKIHsKICAg
ICAvLyBBdm9pZCBwYWludGluZyBsYXllcnMgd2hlbiBzdHlsZXNoZWV0cyBoYXZlbid0IGxvYWRl
ZC4gIFRoaXMgZWxpbWluYXRlcyBGT1VDLgogICAgIC8vIEl0J3Mgb2sgbm90IHRvIGRyYXcsIGJl
Y2F1c2UgbGF0ZXIgb24sIHdoZW4gYWxsIHRoZSBzdHlsZXNoZWV0cyBkbyBsb2FkLCB1cGRhdGVT
dHlsZVNlbGVjdG9yIG9uIHRoZSBEb2N1bWVudApAQCAtMTY3MCw4ICsxNjcwLDE0IEBAIFJlbmRl
ckxheWVyOjpwYWludExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4
dCogcCwKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBwYXJlbnQncyBjbGlwIHJlY3RzIGhhdmUg
YmVlbiBjYWxjdWxhdGVkLgogICAgICAgICBJbnRSZWN0IGNsaXBSZWN0ID0gcGFpbnREaXJ0eVJl
Y3Q7CiAgICAgICAgIGlmIChwYXJlbnQoKSkgewotICAgICAgICAgICAgcGFyZW50KCktPmNhbGN1
bGF0ZUNsaXBSZWN0cyhyb290TGF5ZXIpOwotICAgICAgICAgICAgY2xpcFJlY3QgPSBwYXJlbnQo
KS0+Y2xpcFJlY3RzKCktPm92ZXJmbG93Q2xpcFJlY3QoKTsKKyAgICAgICAgICAgIGlmICh0ZW1w
b3JhcnlDbGlwUmVjdHMpIHsKKyAgICAgICAgICAgICAgICBDbGlwUmVjdHMgcGFyZW50Q2xpcFJl
Y3RzOworICAgICAgICAgICAgICAgIHBhcmVudCgpLT5jYWxjdWxhdGVDbGlwUmVjdHMocm9vdExh
eWVyLCBwYXJlbnRDbGlwUmVjdHMpOworICAgICAgICAgICAgICAgIGNsaXBSZWN0ID0gcGFyZW50
Q2xpcFJlY3RzLm92ZXJmbG93Q2xpcFJlY3QoKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICAgICAgcGFyZW50KCktPnVwZGF0ZUNsaXBSZWN0cyhyb290TGF5ZXIpOworICAgICAg
ICAgICAgICAgIGNsaXBSZWN0ID0gcGFyZW50KCktPmNsaXBSZWN0cygpLT5vdmVyZmxvd0NsaXBS
ZWN0KCk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjbGlwUmVjdC5pbnRlcnNlY3QocGFp
bnREaXJ0eVJlY3QpOwogICAgICAgICB9CiAgICAgICAgIApAQCAtMTY5Miw3ICsxNjk4LDcgQEAg
UmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3ND
b250ZXh0KiBwLAogICAgICAgICBwLT5jb25jYXRDVE0odHJhbnNmb3JtKTsKIAogICAgICAgICAv
LyBOb3cgZG8gYSBwYWludCB3aXRoIHRoZSByb290IGxheWVyIHNoaWZ0ZWQgdG8gYmUgdXMuCi0g
ICAgICAgIHBhaW50TGF5ZXIodGhpcywgcCwgdHJhbnNmb3JtLmludmVyc2UoKS5tYXBSZWN0KHBh
aW50RGlydHlSZWN0KSwgaGF2ZVRyYW5zcGFyZW5jeSwgcGFpbnRSZXN0cmljdGlvbiwgcGFpbnRp
bmdSb290LCB0cnVlKTsKKyAgICAgICAgcGFpbnRMYXllcih0aGlzLCBwLCB0cmFuc2Zvcm0uaW52
ZXJzZSgpLm1hcFJlY3QocGFpbnREaXJ0eVJlY3QpLCBoYXZlVHJhbnNwYXJlbmN5LCBwYWludFJl
c3RyaWN0aW9uLCBwYWludGluZ1Jvb3QsIHRydWUsIHRlbXBvcmFyeUNsaXBSZWN0cyk7CiAgICAg
ICAgIAogICAgICAgICBwLT5yZXN0b3JlKCk7CiAgICAgICAgIApAQCAtMTcwNiwxMyArMTcxMiwx
MyBAQCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFw
aGljc0NvbnRleHQqIHAsCiAgICAgaWYgKG1fcmVmbGVjdGlvbiAmJiAhbV9wYWludGluZ0luc2lk
ZVJlZmxlY3Rpb24gJiYgKCFtX3RyYW5zZm9ybSB8fCBhcHBsaWVkVHJhbnNmb3JtKSkgewogICAg
ICAgICAvLyBNYXJrIHRoYXQgd2UgYXJlIG5vdyBpbnNpZGUgcmVwbGljYSBwYWludGluZy4KICAg
ICAgICAgbV9wYWludGluZ0luc2lkZVJlZmxlY3Rpb24gPSB0cnVlOwotICAgICAgICByZWZsZWN0
aW9uTGF5ZXIoKS0+cGFpbnRMYXllcihyb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0LCBoYXZl
VHJhbnNwYXJlbmN5LCBwYWludFJlc3RyaWN0aW9uLCBwYWludGluZ1Jvb3QpOworICAgICAgICBy
ZWZsZWN0aW9uTGF5ZXIoKS0+cGFpbnRMYXllcihyb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0
LCBoYXZlVHJhbnNwYXJlbmN5LCBwYWludFJlc3RyaWN0aW9uLCBwYWludGluZ1Jvb3QpOwogICAg
ICAgICBtX3BhaW50aW5nSW5zaWRlUmVmbGVjdGlvbiA9IGZhbHNlOwogICAgIH0KIAogICAgIC8v
IENhbGN1bGF0ZSB0aGUgY2xpcCByZWN0cyB3ZSBzaG91bGQgdXNlLgogICAgIEludFJlY3QgbGF5
ZXJCb3VuZHMsIGRhbWFnZVJlY3QsIGNsaXBSZWN0VG9BcHBseSwgb3V0bGluZVJlY3Q7Ci0gICAg
Y2FsY3VsYXRlUmVjdHMocm9vdExheWVyLCBwYWludERpcnR5UmVjdCwgbGF5ZXJCb3VuZHMsIGRh
bWFnZVJlY3QsIGNsaXBSZWN0VG9BcHBseSwgb3V0bGluZVJlY3QpOworICAgIGNhbGN1bGF0ZVJl
Y3RzKHJvb3RMYXllciwgcGFpbnREaXJ0eVJlY3QsIGxheWVyQm91bmRzLCBkYW1hZ2VSZWN0LCBj
bGlwUmVjdFRvQXBwbHksIG91dGxpbmVSZWN0LCB0ZW1wb3JhcnlDbGlwUmVjdHMpOwogICAgIGlu
dCB4ID0gbGF5ZXJCb3VuZHMueCgpOwogICAgIGludCB5ID0gbGF5ZXJCb3VuZHMueSgpOwogICAg
IGludCB0eCA9IHggLSByZW5kZXJlcigpLT54UG9zKCk7CkBAIC0xNzYwLDcgKzE3NjYsNyBAQCBS
ZW5kZXJMYXllcjo6cGFpbnRMYXllcihSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0Nv
bnRleHQqIHAsCiAgICAgLy8gTm93IHdhbGsgdGhlIHNvcnRlZCBsaXN0IG9mIGNoaWxkcmVuIHdp
dGggbmVnYXRpdmUgei1pbmRpY2VzLgogICAgIGlmIChtX25lZ1pPcmRlckxpc3QpCiAgICAgICAg
IGZvciAoVmVjdG9yPFJlbmRlckxheWVyKj46Oml0ZXJhdG9yIGl0ID0gbV9uZWdaT3JkZXJMaXN0
LT5iZWdpbigpOyBpdCAhPSBtX25lZ1pPcmRlckxpc3QtPmVuZCgpOyArK2l0KQotICAgICAgICAg
ICAgaXRbMF0tPnBhaW50TGF5ZXIocm9vdExheWVyLCBwLCBwYWludERpcnR5UmVjdCwgaGF2ZVRy
YW5zcGFyZW5jeSwgcGFpbnRSZXN0cmljdGlvbiwgcGFpbnRpbmdSb290KTsKKyAgICAgICAgICAg
IGl0WzBdLT5wYWludExheWVyKHJvb3RMYXllciwgcCwgcGFpbnREaXJ0eVJlY3QsIGhhdmVUcmFu
c3BhcmVuY3ksIHBhaW50UmVzdHJpY3Rpb24sIHBhaW50aW5nUm9vdCwgZmFsc2UsIHRlbXBvcmFy
eUNsaXBSZWN0cyk7CiAgICAgCiAgICAgLy8gTm93IGVzdGFibGlzaCB0aGUgYXBwcm9wcmlhdGUg
Y2xpcCBhbmQgcGFpbnQgb3VyIGNoaWxkIFJlbmRlck9iamVjdHMuCiAgICAgaWYgKHNob3VsZFBh
aW50ICYmICFjbGlwUmVjdFRvQXBwbHkuaXNFbXB0eSgpKSB7CkBAIC0xNzk4LDEyICsxODA0LDEy
IEBAIFJlbmRlckxheWVyOjpwYWludExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBo
aWNzQ29udGV4dCogcCwKICAgICAvLyBQYWludCBhbnkgY2hpbGQgbGF5ZXJzIHRoYXQgaGF2ZSBv
dmVyZmxvdy4KICAgICBpZiAobV9vdmVyZmxvd0xpc3QpCiAgICAgICAgIGZvciAoVmVjdG9yPFJl
bmRlckxheWVyKj46Oml0ZXJhdG9yIGl0ID0gbV9vdmVyZmxvd0xpc3QtPmJlZ2luKCk7IGl0ICE9
IG1fb3ZlcmZsb3dMaXN0LT5lbmQoKTsgKytpdCkKLSAgICAgICAgICAgIGl0WzBdLT5wYWludExh
eWVyKHJvb3RMYXllciwgcCwgcGFpbnREaXJ0eVJlY3QsIGhhdmVUcmFuc3BhcmVuY3ksIHBhaW50
UmVzdHJpY3Rpb24sIHBhaW50aW5nUm9vdCk7CisgICAgICAgICAgICBpdFswXS0+cGFpbnRMYXll
cihyb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0LCBoYXZlVHJhbnNwYXJlbmN5LCBwYWludFJl
c3RyaWN0aW9uLCBwYWludGluZ1Jvb3QsIGZhbHNlLCB0ZW1wb3JhcnlDbGlwUmVjdHMpOwogICAg
IAogICAgIC8vIE5vdyB3YWxrIHRoZSBzb3J0ZWQgbGlzdCBvZiBjaGlsZHJlbiB3aXRoIHBvc2l0
aXZlIHotaW5kaWNlcy4KICAgICBpZiAobV9wb3NaT3JkZXJMaXN0KQogICAgICAgICBmb3IgKFZl
Y3RvcjxSZW5kZXJMYXllcio+OjppdGVyYXRvciBpdCA9IG1fcG9zWk9yZGVyTGlzdC0+YmVnaW4o
KTsgaXQgIT0gbV9wb3NaT3JkZXJMaXN0LT5lbmQoKTsgKytpdCkKLSAgICAgICAgICAgIGl0WzBd
LT5wYWludExheWVyKHJvb3RMYXllciwgcCwgcGFpbnREaXJ0eVJlY3QsIGhhdmVUcmFuc3BhcmVu
Y3ksIHBhaW50UmVzdHJpY3Rpb24sIHBhaW50aW5nUm9vdCk7CisgICAgICAgICAgICBpdFswXS0+
cGFpbnRMYXllcihyb290TGF5ZXIsIHAsIHBhaW50RGlydHlSZWN0LCBoYXZlVHJhbnNwYXJlbmN5
LCBwYWludFJlc3RyaWN0aW9uLCBwYWludGluZ1Jvb3QsIGZhbHNlLCB0ZW1wb3JhcnlDbGlwUmVj
dHMpOwogICAgIAogICAgIGlmIChyZW5kZXJlcigpLT5oYXNNYXNrKCkgJiYgc2hvdWxkUGFpbnQg
JiYgIXNlbGVjdGlvbk9ubHkgJiYgIWRhbWFnZVJlY3QuaXNFbXB0eSgpKSB7CiAgICAgICAgIHNl
dENsaXAocCwgcGFpbnREaXJ0eVJlY3QsIGRhbWFnZVJlY3QpOwpAQCAtMTg4MSw3ICsxODg3LDcg
QEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5ZXIoUmVuZGVyTGF5ZXIqIHJv
b3RMYXllciwgY29uc3QgSGl0VGVzdFJlcXUKICAgCiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUg
cGFyZW50J3MgY2xpcCByZWN0cyBoYXZlIGJlZW4gY2FsY3VsYXRlZC4KICAgICAgICAgaWYgKHBh
cmVudCgpKSB7Ci0gICAgICAgICAgICBwYXJlbnQoKS0+Y2FsY3VsYXRlQ2xpcFJlY3RzKHJvb3RM
YXllcik7CisgICAgICAgICAgICBwYXJlbnQoKS0+dXBkYXRlQ2xpcFJlY3RzKHJvb3RMYXllcik7
CiAgICAgICAgIAogICAgICAgICAgICAgLy8gR28gYWhlYWQgYW5kIHRlc3QgdGhlIGVuY2xvc2lu
ZyBjbGlwIG5vdy4KICAgICAgICAgICAgIEludFJlY3QgY2xpcFJlY3QgPSBwYXJlbnQoKS0+Y2xp
cFJlY3RzKCktPm92ZXJmbG93Q2xpcFJlY3QoKTsKQEAgLTE5OTQsMTYgKzIwMDAsMzAgQEAgUmVu
ZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXll
ciwgY29uc3QgSGl0VGVzdFJlcXUKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMYXll
cjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIpCit2b2lk
IFJlbmRlckxheWVyOjp1cGRhdGVDbGlwUmVjdHMoY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXll
cikKIHsKICAgICBpZiAobV9jbGlwUmVjdHMpCiAgICAgICAgIHJldHVybjsgLy8gV2UgaGF2ZSB0
aGUgY29ycmVjdCBjYWNoZWQgdmFsdWUuCiAKKyAgICBpZiAocGFyZW50KCkpCisgICAgICAgIHBh
cmVudCgpLT51cGRhdGVDbGlwUmVjdHMocm9vdExheWVyKTsKKworICAgIENsaXBSZWN0cyBjbGlw
UmVjdHM7CisgICAgY2FsY3VsYXRlQ2xpcFJlY3RzKHJvb3RMYXllciwgY2xpcFJlY3RzLCB0cnVl
KTsKKworICAgIGlmIChwYXJlbnQoKSAmJiBwYXJlbnQoKS0+Y2xpcFJlY3RzKCkgJiYgY2xpcFJl
Y3RzID09ICpwYXJlbnQoKS0+Y2xpcFJlY3RzKCkpCisgICAgICAgIG1fY2xpcFJlY3RzID0gcGFy
ZW50KCktPmNsaXBSZWN0cygpOworICAgIGVsc2UKKyAgICAgICAgbV9jbGlwUmVjdHMgPSBuZXcg
KG1fb2JqZWN0LT5yZW5kZXJBcmVuYSgpKSBDbGlwUmVjdHMoY2xpcFJlY3RzKTsKKyAgICBtX2Ns
aXBSZWN0cy0+cmVmKCk7Cit9CisKK3ZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0
cyhjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBDbGlwUmVjdHMmIGNsaXBSZWN0cywgYm9v
bCB1c2VDYWNoZWQpIGNvbnN0Cit7CiAgICAgSW50UmVjdCBpbmZpbml0ZVJlY3QoSU5UX01JTi8y
LCBJTlRfTUlOLzIsIElOVF9NQVgsIElOVF9NQVgpOwogICAgIGlmICghcGFyZW50KCkpIHsKICAg
ICAgICAgLy8gVGhlIHJvb3QgbGF5ZXIncyBjbGlwIHJlY3QgaXMgYWx3YXlzIGluZmluaXRlLgot
ICAgICAgICBtX2NsaXBSZWN0cyA9IG5ldyAobV9vYmplY3QtPnJlbmRlckFyZW5hKCkpIENsaXBS
ZWN0cyhpbmZpbml0ZVJlY3QpOwotICAgICAgICBtX2NsaXBSZWN0cy0+cmVmKCk7CisgICAgICAg
IGNsaXBSZWN0cy5yZXNldChpbmZpbml0ZVJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0yMDEyLDI2ICsyMDMyLDI2IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBS
ZWN0cyhjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyKQogICAgIFJlbmRlckxheWVyKiBwYXJl
bnRMYXllciA9IHJvb3RMYXllciAhPSB0aGlzID8gcGFyZW50KCkgOiAwOwogICAgIAogICAgIC8v
IEVuc3VyZSB0aGF0IG91ciBwYXJlbnQncyBjbGlwIGhhcyBiZWVuIGNhbGN1bGF0ZWQgc28gdGhh
dCB3ZSBjYW4gZXhhbWluZSB0aGUgdmFsdWVzLgotICAgIGlmIChwYXJlbnRMYXllcikKLSAgICAg
ICAgcGFyZW50TGF5ZXItPmNhbGN1bGF0ZUNsaXBSZWN0cyhyb290TGF5ZXIpOwotCi0gICAgLy8g
U2V0IHVwIG91ciB0aHJlZSByZWN0cyB0byBpbml0aWFsbHkgbWF0Y2ggdGhlIHBhcmVudCByZWN0
cy4KLSAgICBJbnRSZWN0IHBvc0NsaXBSZWN0KHBhcmVudExheWVyID8gcGFyZW50TGF5ZXItPmNs
aXBSZWN0cygpLT5wb3NDbGlwUmVjdCgpIDogaW5maW5pdGVSZWN0KTsKLSAgICBJbnRSZWN0IG92
ZXJmbG93Q2xpcFJlY3QocGFyZW50TGF5ZXIgPyBwYXJlbnRMYXllci0+Y2xpcFJlY3RzKCktPm92
ZXJmbG93Q2xpcFJlY3QoKSA6IGluZmluaXRlUmVjdCk7Ci0gICAgSW50UmVjdCBmaXhlZENsaXBS
ZWN0KHBhcmVudExheWVyID8gcGFyZW50TGF5ZXItPmNsaXBSZWN0cygpLT5maXhlZENsaXBSZWN0
KCkgOiBpbmZpbml0ZVJlY3QpOwotICAgIGJvb2wgZml4ZWQgPSBwYXJlbnRMYXllciA/IHBhcmVu
dExheWVyLT5jbGlwUmVjdHMoKS0+Zml4ZWQoKSA6IGZhbHNlOworICAgIGlmIChwYXJlbnRMYXll
cikgeworICAgICAgICBpZiAodXNlQ2FjaGVkICYmIHBhcmVudExheWVyLT5jbGlwUmVjdHMoKSkK
KyAgICAgICAgICAgIGNsaXBSZWN0cyA9ICpwYXJlbnRMYXllci0+Y2xpcFJlY3RzKCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHBhcmVudExheWVyLT5jYWxjdWxhdGVDbGlwUmVjdHMocm9v
dExheWVyLCBjbGlwUmVjdHMpOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIGNsaXBSZWN0cy5y
ZXNldChpbmZpbml0ZVJlY3QpOwogCiAgICAgLy8gQSBmaXhlZCBvYmplY3QgaXMgZXNzZW50aWFs
bHkgdGhlIHJvb3Qgb2YgaXRzIGNvbnRhaW5pbmcgYmxvY2sgaGllcmFyY2h5LCBzbyB3aGVuCiAg
ICAgLy8gd2UgZW5jb3VudGVyIHN1Y2ggYW4gb2JqZWN0LCB3ZSByZXNldCBvdXIgY2xpcCByZWN0
cyB0byB0aGUgZml4ZWRDbGlwUmVjdC4KICAgICBpZiAobV9vYmplY3QtPnN0eWxlKCktPnBvc2l0
aW9uKCkgPT0gRml4ZWRQb3NpdGlvbikgewotICAgICAgICBwb3NDbGlwUmVjdCA9IGZpeGVkQ2xp
cFJlY3Q7Ci0gICAgICAgIG92ZXJmbG93Q2xpcFJlY3QgPSBmaXhlZENsaXBSZWN0OwotICAgICAg
ICBmaXhlZCA9IHRydWU7CisgICAgICAgIGNsaXBSZWN0cy5zZXRQb3NDbGlwUmVjdChjbGlwUmVj
dHMuZml4ZWRDbGlwUmVjdCgpKTsKKyAgICAgICAgY2xpcFJlY3RzLnNldE92ZXJmbG93Q2xpcFJl
Y3QoY2xpcFJlY3RzLmZpeGVkQ2xpcFJlY3QoKSk7CisgICAgICAgIGNsaXBSZWN0cy5zZXRGaXhl
ZCh0cnVlKTsKICAgICB9CiAgICAgZWxzZSBpZiAobV9vYmplY3QtPnN0eWxlKCktPnBvc2l0aW9u
KCkgPT0gUmVsYXRpdmVQb3NpdGlvbikKLSAgICAgICAgcG9zQ2xpcFJlY3QgPSBvdmVyZmxvd0Ns
aXBSZWN0OworICAgICAgICBjbGlwUmVjdHMuc2V0UG9zQ2xpcFJlY3QoY2xpcFJlY3RzLm92ZXJm
bG93Q2xpcFJlY3QoKSk7CiAgICAgZWxzZSBpZiAobV9vYmplY3QtPnN0eWxlKCktPnBvc2l0aW9u
KCkgPT0gQWJzb2x1dGVQb3NpdGlvbikKLSAgICAgICAgb3ZlcmZsb3dDbGlwUmVjdCA9IHBvc0Ns
aXBSZWN0OworICAgICAgICBjbGlwUmVjdHMuc2V0T3ZlcmZsb3dDbGlwUmVjdChjbGlwUmVjdHMu
cG9zQ2xpcFJlY3QoKSk7CiAgICAgCiAgICAgLy8gVXBkYXRlIHRoZSBjbGlwIHJlY3RzIHRoYXQg
d2lsbCBiZSBwYXNzZWQgdG8gY2hpbGQgbGF5ZXJzLgogICAgIGlmIChtX29iamVjdC0+aGFzT3Zl
cmZsb3dDbGlwKCkgfHwgbV9vYmplY3QtPmhhc0NsaXAoKSkgewpAQCAtMjA0MSw1NSArMjA2MSw1
MCBAQCB2b2lkIFJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgUmVuZGVyTGF5
ZXIqIHJvb3RMYXllcikKICAgICAgICAgY29udmVydFRvTGF5ZXJDb29yZHMocm9vdExheWVyLCB4
LCB5KTsKICAgICAgICAgUmVuZGVyVmlldyogdmlldyA9IHJlbmRlcmVyKCktPnZpZXcoKTsKICAg
ICAgICAgQVNTRVJUKHZpZXcpOwotICAgICAgICBpZiAodmlldyAmJiBmaXhlZCAmJiByb290TGF5
ZXItPnJlbmRlcmVyKCkgPT0gdmlldykgeworICAgICAgICBpZiAodmlldyAmJiBjbGlwUmVjdHMu
Zml4ZWQoKSAmJiByb290TGF5ZXItPnJlbmRlcmVyKCkgPT0gdmlldykgewogICAgICAgICAgICAg
eCAtPSB2aWV3LT5mcmFtZVZpZXcoKS0+c2Nyb2xsWCgpOwogICAgICAgICAgICAgeSAtPSB2aWV3
LT5mcmFtZVZpZXcoKS0+c2Nyb2xsWSgpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBp
ZiAobV9vYmplY3QtPmhhc092ZXJmbG93Q2xpcCgpKSB7CiAgICAgICAgICAgICBJbnRSZWN0IG5l
d092ZXJmbG93Q2xpcCA9IG1fb2JqZWN0LT5nZXRPdmVyZmxvd0NsaXBSZWN0KHgseSk7Ci0gICAg
ICAgICAgICBvdmVyZmxvd0NsaXBSZWN0LmludGVyc2VjdChuZXdPdmVyZmxvd0NsaXApOworICAg
ICAgICAgICAgY2xpcFJlY3RzLnNldE92ZXJmbG93Q2xpcFJlY3QoaW50ZXJzZWN0aW9uKG5ld092
ZXJmbG93Q2xpcCwgY2xpcFJlY3RzLm92ZXJmbG93Q2xpcFJlY3QoKSkpOwogICAgICAgICAgICAg
aWYgKG1fb2JqZWN0LT5pc1Bvc2l0aW9uZWQoKSB8fCBtX29iamVjdC0+aXNSZWxQb3NpdGlvbmVk
KCkpCi0gICAgICAgICAgICAgICAgcG9zQ2xpcFJlY3QuaW50ZXJzZWN0KG5ld092ZXJmbG93Q2xp
cCk7CisgICAgICAgICAgICAgICAgY2xpcFJlY3RzLnNldFBvc0NsaXBSZWN0KGludGVyc2VjdGlv
bihuZXdPdmVyZmxvd0NsaXAsIGNsaXBSZWN0cy5wb3NDbGlwUmVjdCgpKSk7CiAgICAgICAgIH0K
ICAgICAgICAgaWYgKG1fb2JqZWN0LT5oYXNDbGlwKCkpIHsKICAgICAgICAgICAgIEludFJlY3Qg
bmV3UG9zQ2xpcCA9IG1fb2JqZWN0LT5nZXRDbGlwUmVjdCh4LHkpOwotICAgICAgICAgICAgcG9z
Q2xpcFJlY3QuaW50ZXJzZWN0KG5ld1Bvc0NsaXApOwotICAgICAgICAgICAgb3ZlcmZsb3dDbGlw
UmVjdC5pbnRlcnNlY3QobmV3UG9zQ2xpcCk7Ci0gICAgICAgICAgICBmaXhlZENsaXBSZWN0Lmlu
dGVyc2VjdChuZXdQb3NDbGlwKTsKKyAgICAgICAgICAgIGNsaXBSZWN0cy5zZXRQb3NDbGlwUmVj
dChpbnRlcnNlY3Rpb24obmV3UG9zQ2xpcCwgY2xpcFJlY3RzLnBvc0NsaXBSZWN0KCkpKTsKKyAg
ICAgICAgICAgIGNsaXBSZWN0cy5zZXRPdmVyZmxvd0NsaXBSZWN0KGludGVyc2VjdGlvbihuZXdQ
b3NDbGlwLCBjbGlwUmVjdHMub3ZlcmZsb3dDbGlwUmVjdCgpKSk7CisgICAgICAgICAgICBjbGlw
UmVjdHMuc2V0Rml4ZWRDbGlwUmVjdChpbnRlcnNlY3Rpb24obmV3UG9zQ2xpcCwgY2xpcFJlY3Rz
LmZpeGVkQ2xpcFJlY3QoKSkpOwogICAgICAgICB9CiAgICAgfQotICAgIAotICAgIC8vIElmIG91
ciBjbGlwIHJlY3RzIG1hdGNoIG91ciBwYXJlbnQncyBjbGlwLCB0aGVuIHdlIGNhbiBqdXN0IHNo
YXJlIGl0cyBkYXRhIHN0cnVjdHVyZSBhbmQKLSAgICAvLyByZWYgY291bnQuCi0gICAgaWYgKHBh
cmVudCgpLT5jbGlwUmVjdHMoKSAmJgotICAgICAgICBmaXhlZCA9PSBwYXJlbnQoKS0+Y2xpcFJl
Y3RzKCktPmZpeGVkKCkgJiYKLSAgICAgICAgcG9zQ2xpcFJlY3QgPT0gcGFyZW50KCktPmNsaXBS
ZWN0cygpLT5wb3NDbGlwUmVjdCgpICYmCi0gICAgICAgIG92ZXJmbG93Q2xpcFJlY3QgPT0gcGFy
ZW50KCktPmNsaXBSZWN0cygpLT5vdmVyZmxvd0NsaXBSZWN0KCkgJiYKLSAgICAgICAgZml4ZWRD
bGlwUmVjdCA9PSBwYXJlbnQoKS0+Y2xpcFJlY3RzKCktPmZpeGVkQ2xpcFJlY3QoKSkKLSAgICAg
ICAgbV9jbGlwUmVjdHMgPSBwYXJlbnQoKS0+Y2xpcFJlY3RzKCk7Ci0gICAgZWxzZQotICAgICAg
ICBtX2NsaXBSZWN0cyA9IG5ldyAobV9vYmplY3QtPnJlbmRlckFyZW5hKCkpIENsaXBSZWN0cyhv
dmVyZmxvd0NsaXBSZWN0LCBmaXhlZENsaXBSZWN0LCBwb3NDbGlwUmVjdCwgZml4ZWQpOwotICAg
IG1fY2xpcFJlY3RzLT5yZWYoKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlUmVj
dHMoY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0
eVJlY3QsIEludFJlY3QmIGxheWVyQm91bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgSW50UmVjdCYgYmFja2dyb3VuZFJlY3QsIEludFJlY3QmIGZvcmVncm91bmRSZWN0LCBJ
bnRSZWN0JiBvdXRsaW5lUmVjdCkgY29uc3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEludFJlY3QmIGJhY2tncm91bmRSZWN0LCBJbnRSZWN0JiBmb3JlZ3JvdW5kUmVjdCwgSW50
UmVjdCYgb3V0bGluZVJlY3QsIGJvb2wgdGVtcG9yYXJ5Q2xpcFJlY3RzKSBjb25zdAogewogICAg
IGlmIChyb290TGF5ZXIgIT0gdGhpcyAmJiBwYXJlbnQoKSkgewotICAgICAgICBwYXJlbnQoKS0+
Y2FsY3VsYXRlQ2xpcFJlY3RzKHJvb3RMYXllcik7CisgICAgICAgIENsaXBSZWN0cyBwYXJlbnRD
bGlwUmVjdHM7CisgICAgICAgIGlmICh0ZW1wb3JhcnlDbGlwUmVjdHMpCisgICAgICAgICAgICBw
YXJlbnQoKS0+Y2FsY3VsYXRlQ2xpcFJlY3RzKHJvb3RMYXllciwgcGFyZW50Q2xpcFJlY3RzKTsK
KyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBwYXJlbnQoKS0+dXBkYXRlQ2xpcFJlY3RzKHJv
b3RMYXllcik7CisgICAgICAgICAgICBwYXJlbnRDbGlwUmVjdHMgPSAqcGFyZW50KCktPmNsaXBS
ZWN0cygpOworICAgICAgICB9CiAKLSAgICAgICAgYmFja2dyb3VuZFJlY3QgPSBtX29iamVjdC0+
c3R5bGUoKS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uID8gcGFyZW50KCktPmNsaXBSZWN0
cygpLT5maXhlZENsaXBSZWN0KCkgOgotICAgICAgICAgICAgICAgICAgICAgICAgIChtX29iamVj
dC0+aXNQb3NpdGlvbmVkKCkgPyBwYXJlbnQoKS0+Y2xpcFJlY3RzKCktPnBvc0NsaXBSZWN0KCkg
OiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFyZW50KCktPmNsaXBSZWN0cygpLT5vdmVyZmxvd0NsaXBSZWN0KCkpOworICAgICAgICBiYWNr
Z3JvdW5kUmVjdCA9IG1fb2JqZWN0LT5zdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVkUG9zaXRp
b24gPyBwYXJlbnRDbGlwUmVjdHMuZml4ZWRDbGlwUmVjdCgpIDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAobV9vYmplY3QtPmlzUG9zaXRpb25lZCgpID8gcGFyZW50Q2xpcFJlY3RzLnBvc0Ns
aXBSZWN0KCkgOiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyZW50Q2xpcFJlY3RzLm92ZXJmbG93Q2xpcFJlY3QoKSk7CiAgICAgICAgIFJl
bmRlclZpZXcqIHZpZXcgPSByZW5kZXJlcigpLT52aWV3KCk7CiAgICAgICAgIEFTU0VSVCh2aWV3
KTsKLSAgICAgICAgaWYgKHZpZXcgJiYgcGFyZW50KCktPmNsaXBSZWN0cygpLT5maXhlZCgpICYm
IHJvb3RMYXllci0+cmVuZGVyZXIoKSA9PSB2aWV3KQorICAgICAgICBpZiAodmlldyAmJiBwYXJl
bnRDbGlwUmVjdHMuZml4ZWQoKSAmJiByb290TGF5ZXItPnJlbmRlcmVyKCkgPT0gdmlldykKICAg
ICAgICAgICAgIGJhY2tncm91bmRSZWN0Lm1vdmUodmlldy0+ZnJhbWVWaWV3KCktPnNjcm9sbFgo
KSwgdmlldy0+ZnJhbWVWaWV3KCktPnNjcm9sbFkoKSk7CiAKICAgICAgICAgYmFja2dyb3VuZFJl
Y3QuaW50ZXJzZWN0KHBhaW50RGlydHlSZWN0KTsKICAgICB9IGVsc2UKICAgICAgICAgYmFja2dy
b3VuZFJlY3QgPSBwYWludERpcnR5UmVjdDsKKwogICAgIGZvcmVncm91bmRSZWN0ID0gYmFja2dy
b3VuZFJlY3Q7CiAgICAgb3V0bGluZVJlY3QgPSBiYWNrZ3JvdW5kUmVjdDsKICAgICAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5oCmluZGV4IDYyYTE5OGIuLmYwNjA4YzEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaApAQCAtNjksNiArNjksMTIgQEAgc3RydWN0IEhpdFRlc3RSZXF1ZXN0OwogCiBjbGFz
cyBDbGlwUmVjdHMgewogcHVibGljOgorICAgIENsaXBSZWN0cygpCisgICAgICAgIDogbV9yZWZD
bnQoMCkKKyAgICAgICAgLCBtX2ZpeGVkKGZhbHNlKQorICAgIHsKKyAgICB9CisKICAgICBDbGlw
UmVjdHMoY29uc3QgSW50UmVjdCYgcikKICAgICAgICAgOiBtX292ZXJmbG93Q2xpcFJlY3QocikK
ICAgICAgICAgLCBtX2ZpeGVkQ2xpcFJlY3QocikKQEAgLTc4LDE5ICs4NCwzNCBAQCBwdWJsaWM6
CiAgICAgewogICAgIH0KIAotICAgIENsaXBSZWN0cyhjb25zdCBJbnRSZWN0JiBvdmVyZmxvd1Jl
Y3QsIGNvbnN0IEludFJlY3QmIGZpeGVkUmVjdCwgY29uc3QgSW50UmVjdCYgcG9zUmVjdCwgYm9v
bCBmaXhlZCkKLSAgICAgICAgOiBtX292ZXJmbG93Q2xpcFJlY3Qob3ZlcmZsb3dSZWN0KQotICAg
ICAgICAsIG1fZml4ZWRDbGlwUmVjdChmaXhlZFJlY3QpCi0gICAgICAgICwgbV9wb3NDbGlwUmVj
dChwb3NSZWN0KQorICAgIENsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHMmIG90aGVyKQorICAgICAg
ICA6IG1fb3ZlcmZsb3dDbGlwUmVjdChvdGhlci5vdmVyZmxvd0NsaXBSZWN0KCkpCisgICAgICAg
ICwgbV9maXhlZENsaXBSZWN0KG90aGVyLmZpeGVkQ2xpcFJlY3QoKSkKKyAgICAgICAgLCBtX3Bv
c0NsaXBSZWN0KG90aGVyLnBvc0NsaXBSZWN0KCkpCiAgICAgICAgICwgbV9yZWZDbnQoMCkKLSAg
ICAgICAgLCBtX2ZpeGVkKGZpeGVkKQorICAgICAgICAsIG1fZml4ZWQob3RoZXIuZml4ZWQoKSkK
ICAgICB7CiAgICAgfQogCi0gICAgY29uc3QgSW50UmVjdCYgb3ZlcmZsb3dDbGlwUmVjdCgpIHsg
cmV0dXJuIG1fb3ZlcmZsb3dDbGlwUmVjdDsgfQotICAgIGNvbnN0IEludFJlY3QmIGZpeGVkQ2xp
cFJlY3QoKSB7IHJldHVybiBtX2ZpeGVkQ2xpcFJlY3Q7IH0KLSAgICBjb25zdCBJbnRSZWN0JiBw
b3NDbGlwUmVjdCgpIHsgcmV0dXJuIG1fcG9zQ2xpcFJlY3Q7IH0KKyAgICB2b2lkIHJlc2V0KGNv
bnN0IEludFJlY3QmIHIpCisgICAgeworICAgICAgICBtX292ZXJmbG93Q2xpcFJlY3QgPSByOwor
ICAgICAgICBtX2ZpeGVkQ2xpcFJlY3QgPSByOworICAgICAgICBtX3Bvc0NsaXBSZWN0ID0gcjsK
KyAgICAgICAgbV9maXhlZCA9IGZhbHNlOworICAgIH0KKyAgICAKKyAgICBjb25zdCBJbnRSZWN0
JiBvdmVyZmxvd0NsaXBSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9vdmVyZmxvd0NsaXBSZWN0OyB9
CisgICAgdm9pZCBzZXRPdmVyZmxvd0NsaXBSZWN0KGNvbnN0IEludFJlY3QmIHIpIHsgbV9vdmVy
Zmxvd0NsaXBSZWN0ID0gcjsgfQorCisgICAgY29uc3QgSW50UmVjdCYgZml4ZWRDbGlwUmVjdCgp
IGNvbnN0IHsgcmV0dXJuIG1fZml4ZWRDbGlwUmVjdDsgfQorICAgIHZvaWQgc2V0Rml4ZWRDbGlw
UmVjdChjb25zdCBJbnRSZWN0JnIpIHsgbV9maXhlZENsaXBSZWN0ID0gcjsgfQorCisgICAgY29u
c3QgSW50UmVjdCYgcG9zQ2xpcFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Bvc0NsaXBSZWN0OyB9
CisgICAgdm9pZCBzZXRQb3NDbGlwUmVjdChjb25zdCBJbnRSZWN0JiByKSB7IG1fcG9zQ2xpcFJl
Y3QgPSByOyB9CisKICAgICBib29sIGZpeGVkKCkgY29uc3QgeyByZXR1cm4gbV9maXhlZDsgfQor
ICAgIHZvaWQgc2V0Rml4ZWQoYm9vbCBmaXhlZCkgeyBtX2ZpeGVkID0gZml4ZWQ7IH0KIAogICAg
IHZvaWQgcmVmKCkgeyBtX3JlZkNudCsrOyB9CiAgICAgdm9pZCBkZXJlZihSZW5kZXJBcmVuYSog
cmVuZGVyQXJlbmEpIHsgaWYgKC0tbV9yZWZDbnQgPT0gMCkgZGVzdHJveShyZW5kZXJBcmVuYSk7
IH0KQEAgLTEwMiw2ICsxMjMsMjMgQEAgcHVibGljOgogCiAgICAgLy8gT3ZlcnJpZGRlbiB0byBw
cmV2ZW50IHRoZSBub3JtYWwgZGVsZXRlIGZyb20gYmVpbmcgY2FsbGVkLgogICAgIHZvaWQgb3Bl
cmF0b3IgZGVsZXRlKHZvaWQqLCBzaXplX3QpOworCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IENsaXBSZWN0cyYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9vdmVyZmxv
d0NsaXBSZWN0ID09IG90aGVyLm92ZXJmbG93Q2xpcFJlY3QoKSAmJgorICAgICAgICAgICAgICAg
bV9maXhlZENsaXBSZWN0ID09IG90aGVyLmZpeGVkQ2xpcFJlY3QoKSAmJgorICAgICAgICAgICAg
ICAgbV9wb3NDbGlwUmVjdCA9PSBvdGhlci5wb3NDbGlwUmVjdCgpICYmCisgICAgICAgICAgICAg
ICBtX2ZpeGVkID09IG90aGVyLmZpeGVkKCk7CisgICAgfQorCisgICAgQ2xpcFJlY3RzJiBvcGVy
YXRvcj0oY29uc3QgQ2xpcFJlY3RzJiBvdGhlcikKKyAgICB7CisgICAgICAgIG1fb3ZlcmZsb3dD
bGlwUmVjdCA9IG90aGVyLm92ZXJmbG93Q2xpcFJlY3QoKTsKKyAgICAgICAgbV9maXhlZENsaXBS
ZWN0ID0gb3RoZXIuZml4ZWRDbGlwUmVjdCgpOworICAgICAgICBtX3Bvc0NsaXBSZWN0ID0gb3Ro
ZXIucG9zQ2xpcFJlY3QoKTsKKyAgICAgICAgbV9maXhlZCA9IG90aGVyLmZpeGVkKCk7CisgICAg
ICAgIHJldHVybiAqdGhpczsKKyAgICB9CiAgICAgICAgIAogcHJpdmF0ZToKICAgICAvLyBUaGUg
bm9ybWFsIG9wZXJhdG9yIG5ldyBpcyBkaXNhbGxvd2VkIG9uIGFsbCByZW5kZXIgb2JqZWN0cy4K
QEAgLTMwMiw5ICszNDAsMTUgQEAgcHVibGljOgogICAgIC8vIHxyb290TGF5ZXJ9LiAgSXQgYWxz
byBjb21wdXRlcyBvdXIgYmFja2dyb3VuZCBhbmQgZm9yZWdyb3VuZCBjbGlwIHJlY3RzCiAgICAg
Ly8gZm9yIHBhaW50aW5nL2V2ZW50IGhhbmRsaW5nLgogICAgIHZvaWQgY2FsY3VsYXRlUmVjdHMo
Y29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0eVJl
Y3QsIEludFJlY3QmIGxheWVyQm91bmRzLAotICAgICAgICAgICAgICAgICAgICAgICAgSW50UmVj
dCYgYmFja2dyb3VuZFJlY3QsIEludFJlY3QmIGZvcmVncm91bmRSZWN0LCBJbnRSZWN0JiBvdXRs
aW5lUmVjdCkgY29uc3Q7Ci0gICAgdm9pZCBjYWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgUmVuZGVy
TGF5ZXIqIHJvb3RMYXllcik7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnRSZWN0JiBiYWNr
Z3JvdW5kUmVjdCwgSW50UmVjdCYgZm9yZWdyb3VuZFJlY3QsIEludFJlY3QmIG91dGxpbmVSZWN0
LCBib29sIHRlbXBvcmFyeUNsaXBSZWN0cyA9IGZhbHNlKSBjb25zdDsKKworICAgIC8vIENvbXB1
dGUgYW5kIGNhY2hlIGNsaXAgcmVjdHMgY29tcHV0ZWQgd2l0aCB0aGUgZ2l2ZW4gbGF5ZXIgYXMg
dGhlIHJvb3QKKyAgICB2b2lkIHVwZGF0ZUNsaXBSZWN0cyhjb25zdCBSZW5kZXJMYXllciogcm9v
dExheWVyKTsKKyAgICAvLyBDb21wdXRlIGFuZCByZXR1cm4gdGhlIGNsaXAgcmVjdHMuIElmIHVz
ZUNhY2hlZCBpcyB0cnVlLCB3aWxsIHVzZWQgcHJldmlvdXNseSBjb21wdXRlZCBjbGlwIHJlY3Rz
IG9uIGFuY2VzdG9ycworICAgIC8vIChyYXRoZXIgdGhhbiBjb21wdXRpbmcgdGhlbSBhbGwgZnJv
bSBzY3JhdGNoIHVwIHRoZSBwYXJlbnQgY2hhaW4pLgorICAgIHZvaWQgY2FsY3VsYXRlQ2xpcFJl
Y3RzKGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIENsaXBSZWN0cyYsIGJvb2wgdXNlQ2Fj
aGVkID0gZmFsc2UpIGNvbnN0OwogICAgIENsaXBSZWN0cyogY2xpcFJlY3RzKCkgY29uc3QgeyBy
ZXR1cm4gbV9jbGlwUmVjdHM7IH0KKwogICAgIEludFJlY3QgY2hpbGRyZW5DbGlwUmVjdCgpIGNv
bnN0OyAvLyBSZXR1cm5zIHRoZSBmb3JlZ3JvdW5kIGNsaXAgcmVjdCBvZiB0aGUgbGF5ZXIgaW4g
dGhlIGRvY3VtZW50J3MgY29vcmRpbmF0ZSBzcGFjZS4KICAgICBJbnRSZWN0IHNlbGZDbGlwUmVj
dCgpIGNvbnN0OyAvLyBSZXR1cm5zIHRoZSBiYWNrZ3JvdW5kIGNsaXAgcmVjdCBvZiB0aGUgbGF5
ZXIgaW4gdGhlIGRvY3VtZW50J3MgY29vcmRpbmF0ZSBzcGFjZS4KIApAQCAtMzQ5LDcgKzM5Myw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb2xsZWN0TGF5ZXJzKFZlY3RvcjxSZW5kZXJMYXllcio+
KiYsIFZlY3RvcjxSZW5kZXJMYXllcio+KiYpOwogCiAgICAgdm9pZCBwYWludExheWVyKFJlbmRl
ckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmIHBhaW50
RGlydHlSZWN0LAotICAgICAgICAgICAgICAgICAgICBib29sIGhhdmVUcmFuc3BhcmVuY3ksIFBh
aW50UmVzdHJpY3Rpb24sIFJlbmRlck9iamVjdCogcGFpbnRpbmdSb290LCBib29sIGFwcGxpZWRU
cmFuc2Zvcm0gPSBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGJvb2wgaGF2ZVRyYW5zcGFy
ZW5jeSwgUGFpbnRSZXN0cmljdGlvbiwgUmVuZGVyT2JqZWN0KiBwYWludGluZ1Jvb3QsCisgICAg
ICAgICAgICAgICAgICAgIGJvb2wgYXBwbGllZFRyYW5zZm9ybSA9IGZhbHNlLCBib29sIHRlbXBv
cmFyeUNsaXBSZWN0cyA9IGZhbHNlKTsKICAgICBSZW5kZXJMYXllciogaGl0VGVzdExheWVyKFJl
bmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3Vs
dCYsIGNvbnN0IEludFJlY3QmIGhpdFRlc3RSZWN0LCBjb25zdCBJbnRQb2ludCYgaGl0VGVzdFBv
aW50LCBib29sIGFwcGxpZWRUcmFuc2Zvcm0gPSBmYWxzZSk7CiAgICAgdm9pZCBjb21wdXRlU2Ny
b2xsRGltZW5zaW9ucyhib29sKiBuZWVkSEJhciA9IDAsIGJvb2wqIG5lZWRWQmFyID0gMCk7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKaW5kZXggYmUyODE3MS4uOTU1Njk4MCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKKysrIGIvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAKQEAgLTY2LDggKzY2LDEzIEBAIHZvaWQgUmVu
ZGVyUmVwbGljYTo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5KQog
ICAgIHR5ICs9IG1feTsKIAogICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZUZv
cmVncm91bmQpCi0gICAgICAgIC8vIFR1cm4gYXJvdW5kIGFuZCBwYWludCB0aGUgcGFyZW50IGxh
eWVyLgotICAgICAgICBsYXllcigpLT5wYXJlbnQoKS0+cGFpbnRMYXllcihsYXllcigpLT50cmFu
c2Zvcm0oKSA/IGxheWVyKCktPnBhcmVudCgpIDogbGF5ZXIoKS0+ZW5jbG9zaW5nVHJhbnNmb3Jt
ZWRBbmNlc3RvcigpLCBwYWludEluZm8uY29udGV4dCwgcGFpbnRJbmZvLnJlY3QsIHRydWUsIFBh
aW50UmVzdHJpY3Rpb25Ob25lLCAwLCB0cnVlKTsKKyAgICAgICAgLy8gVHVybiBhcm91bmQgYW5k
IHBhaW50IHRoZSBwYXJlbnQgbGF5ZXIuIFVzZSB0ZW1wb3JhcnkgY2xpcFJlY3RzLCBzbyB0aGF0
IHRoZSBsYXllciBkb2Vzbid0IGVuZCB1cCBjYWNoaW5nIGNsaXAgcmVjdHMKKyAgICAgICAgLy8g
Y29tcHV0aW5nIHVzaW5nIHRoZSB3cm9uZyByb290TGF5ZXIKKyAgICAgICAgbGF5ZXIoKS0+cGFy
ZW50KCktPnBhaW50TGF5ZXIobGF5ZXIoKS0+dHJhbnNmb3JtKCkgPyBsYXllcigpLT5wYXJlbnQo
KSA6IGxheWVyKCktPmVuY2xvc2luZ1RyYW5zZm9ybWVkQW5jZXN0b3IoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQsIHBhaW50SW5mby5y
ZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCBQYWludFJl
c3RyaWN0aW9uTm9uZSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dHJ1ZSwgICAgIC8vIGFwcGxpZWRUcmFuc2Zvcm0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdHJ1ZSk7ICAgIC8vIHRlbXBvcmFyeUNsaXBSZWN0cwogICAgIGVsc2UgaWYg
KHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlTWFzaykKICAgICAgICAgcGFpbnRNYXNrKHBh
aW50SW5mbywgdHgsIHR5KTsKIH0K
</data>
<flag name="review"
          id="12321"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>