<?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>77557</bug_id>
          
          <creation_ts>2012-02-01 09:07:39 -0800</creation_ts>
          <short_desc>Introduce a flag to denote layers which should follow the page scale</short_desc>
          <delta_ts>2012-02-10 12:22:47 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68075</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Sami Kyostila">skyostil</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jamesr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>547112</commentid>
    <comment_count>0</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-02-01 09:07:39 -0800</bug_when>
    <thetext>The contents scale factor of GraphicsLayerChromium is set according to the device and page scale in deviceOrPageScaleFactorChanged(). The problem is that if the page scale factor never changes, the contents scale never gets set to the page scale factor that was in effect at the time of the layer&apos;s creation. If the page scale scale was != 1, this leads to incorrect contentBounds() on the associated LayerChromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547114</commentid>
    <comment_count>1</comment_count>
      <attachid>124958</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-02-01 09:14:34 -0800</bug_when>
    <thetext>Created attachment 124958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>547138</commentid>
    <comment_count>2</comment_count>
      <attachid>124958</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-01 09:47:47 -0800</bug_when>
    <thetext>Comment on attachment 124958
Patch

Attachment 124958 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11387524

New failing tests:
compositing/scaling/tiled-layer-recursion.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548015</commentid>
    <comment_count>3</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-02-02 11:30:13 -0800</bug_when>
    <thetext>FYI, the failure from chromium-ews seems like a flake since I have not been able to reproduce it locally. I&apos;ll try again tomorrow though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548224</commentid>
    <comment_count>4</comment_count>
      <attachid>124958</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-02 16:13:02 -0800</bug_when>
    <thetext>Comment on attachment 124958
Patch

R=me, let&apos;s let the commit queue take a crack at that patch to see if it helps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>548273</commentid>
    <comment_count>5</comment_count>
      <attachid>124958</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-02 17:24:10 -0800</bug_when>
    <thetext>Comment on attachment 124958
Patch

Rejecting attachment 124958 from commit-queue.

New failing tests:
compositing/scaling/tiled-layer-recursion.html
Full output: http://queues.webkit.org/results/11394983</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554141</commentid>
    <comment_count>6</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-02-10 10:14:47 -0800</bug_when>
    <thetext>Ok, I figured out what was up with the failing test. The page scale is affecting the scroll bars and they are getting scaled after being drawn, causing some filtering artifacts. First I thought this caused by some GTK theme weirdness on my machine but that was a red herring.

Currently the overflow control layers (scroll bars) are configured appliesPageScale=false. This is a signal to GraphicsLayerChromium to configure the underlying LayerChromium with a content scale to implement the actual page scale.

However, since the LayerChromium content scale is only updated when 1) the layer transform changes or 2) the page scale for the layer or a parent of it changes, the content scale never ends up getting set for the overflow controls layer and the scroll bars look as they should.

My change was to always apply the content scale for GraphicsLayerChromium, and this broke the scroll bars since they were now scaled.

I&apos;ve now revised the patch to set appliesPageScale=true for overflow controls and made sure changing that flag is properly reflected in LayerChromium and onwards.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554244</commentid>
    <comment_count>7</comment_count>
      <attachid>126544</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-02-10 11:32:19 -0800</bug_when>
    <thetext>Created attachment 126544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554247</commentid>
    <comment_count>8</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-02-10 11:34:59 -0800</bug_when>
    <thetext>Changed title since this the changes are not limited to Chromium any more. Let me know if you think I should split the patch into two pieces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554290</commentid>
    <comment_count>9</comment_count>
      <attachid>126544</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-02-10 12:22:47 -0800</bug_when>
    <thetext>Comment on attachment 126544
Patch

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

r- because of the added ambiguity.

&gt; Source/WebCore/ChangeLog:9
&gt; +          1. Layer contents are scaled by the painter (e.g., non-composited
&gt; +             content layer)

&quot;the painter&quot; is not a term we use in WebKit. I don&apos;t really know what you mean by it.

&gt; Source/WebCore/ChangeLog:37
&gt; +        Reviewed by NOBODY (OOPS!).

This should go above the description.

&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:86
&gt; +    , m_needsPageScale(true)

Currently layers which are descendants of the layer with m_appliesPageScale=true get scaled. Put another way, the layer with m_appliesPageScale=true is the root of the scale.

Now that you&apos;ve added m_needsPageScale, there is ambiguity. What does it mean for a layer which is ancestral to the m_appliesPageScale=true layer to have m_needsPageScale=true?

Maybe we should pull out m_appliesPageScale entirely, and have RLC store which layer is the scale root. Instead of m_needsPageScale, you could then have m_ignoresPageScale, which is set to true for overflow control layers.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124958</attachid>
            <date>2012-02-01 09:14:34 -0800</date>
            <delta_ts>2012-02-10 11:32:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77557-20120201171433.patch</filename>
            <type>text/plain</type>
            <size>6497</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU5ODEzZTYzNjhlYmJk
YjVmMmIyZWY5NjNjYzVjYzI1NmNlNmYxZi4uNjIzMjlhNmJjZmU2OWE2ODY1N2YwYTIxZmIwMTgz
NmI0YWJiZmJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAyLTAxICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
R3JhcGhpY3NMYXllckNocm9taXVtIGRvZXMgbm90IHJlc3BlY3QgaW5pdGlhbCBwYWdlIHNjYWxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1Nwor
CisgICAgICAgIFByZXZpb3VzbHkgR3JhcGhpY3NMYXllckNocm9taXVtIG9ubHkgdXBkYXRlZCBp
dHMgY29udGVudHMgc2NhbGUgZmFjdG9yCisgICAgICAgIHdoZW4gaXRzIHRyYW5zZm9ybSBjaGFu
Z2VkIG9yIHdoZW4gdGhlIG92ZXJhbGwgcGFnZSBvciBkZXZpY2Ugc2NhbGUKKyAgICAgICAgZmFj
dG9yIGNoYW5nZWQuIElmIG5laXRoZXIgb2YgdGhlc2UgZXZlbnRzIGlzIHRyaWdnZXJlZCwgdGhl
IGxheWVyIGlzCisgICAgICAgIGxlZnQgd2l0aCBhIGRlZmF1bHQgY29udGVudHMgc2NhbGUgb2Yg
MS4gVGhpcyBtYXkgb3IgbWF5IG5vdCBtYXRjaCB0aGUKKyAgICAgICAgY3VycmVudCBwYWdlIHNj
YWxlIGF0IHRoZSB0aW1lIHRoZSBsYXllciB3YXMgY29uc3RydWN0ZWQuCisKKyAgICAgICAgVGhl
IGZpeCBpcyB0byBzZXQgdGhlIGluaXRpYWwgY29udGVudHMgc2NhbGUgYWNjb3JkaW5nIHRvIHRo
ZSBjdXJyZW50CisgICAgICAgIHBhZ2Ugc2NhbGUgYXQgbGF5ZXIgY29uc3RydWN0aW9uIHRpbWUu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDog
QWRkZWQgbmV3IHVuaXQgdGVzdCBmb3IgR3JhcGhpY3NMYXllckNocm9taXVtLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6R3JhcGhpY3NMYXllckNo
cm9taXVtKToKKwogMjAxMi0wMS0zMSAgUGFibG8gRmxvdXJldCAgPHBhYmxvZkBtb3Rvcm9sYS5j
b20+CiAKICAgICAgICAgRml4IGNvbXBpbGF0aW9uIGVycm9ycyBvbiBidWlsZC13ZWJraXQgLS1k
ZWJ1ZyAtLW5vLXdvcmtlcnMgb24gbWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAw
MjBhYWI2Yjc5YjY4MmRjNzE3N2YzZjlhYmYyMDM2Mjc3M2M1ZTk0Li4xMzY0NjMyZTQ5YzVlMjcy
MmQ0OTJkMzNhYjU5M2YxZDFkNjVhYzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDEyLTAyLTAxICBTYW1pIEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gR3JhcGhpY3NMYXllckNocm9taXVtIGRvZXMg
bm90IHJlc3BlY3QgaW5pdGlhbCBwYWdlIHNjYWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1NworCisgICAgICAgIE5ldyB1bml0IHRlc3QgZm9y
IGNoZWNraW5nIHRoYXQgR3JhcGhpY3NMYXllckNocm9taXVtIGFwcGxpZXMgdGhlCisgICAgICAg
IGluaXRpYWwgcGFnZSBzY2FsZS4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHRlc3RzL0dyYXBoaWNzTGF5
ZXJDaHJvbWl1bVRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6VEVTVCk6CisKIDIwMTItMDEtMzAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDYz
MjQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCAzMWE1MTE4ZmZk
MDNkMTgyNDhkMDdlNTFlMjRhZWVkMzJhZmU5NzBlLi45MWJlMDY5YWMyNmJjNGU5NjJkOGQ5MzBl
NTg5ZDg2NjQxMDljMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAK
QEAgLTc2LDYgKzc2LDcgQEAgR3JhcGhpY3NMYXllckNocm9taXVtOjpHcmFwaGljc0xheWVyQ2hy
b21pdW0oR3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogewogICAgIG1fbGF5ZXIgPSBDb250
ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKHRoaXMpOwogCisgICAgdXBkYXRlQ29udGVudHNTY2Fs
ZSgpOwogICAgIHVwZGF0ZURlYnVnSW5kaWNhdG9ycygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwaQppbmRleCA4NGVjZmI4M2ZkOTFiMWE2ZjA2ZTQyYTI4MDA0MjMzNWJkYzRjNzEx
Li5kMTFiZmFiNzgzNzQ4ODI1MDk4MWJjZTMyY2Y4ODhkZWMxMzFkN2I4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cGkKQEAgLTkzLDYgKzkzLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9G
bG9hdFF1YWRUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvRnJhbWVUZXN0SGVscGVycy5j
cHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0ZyYW1lVGVzdEhlbHBlcnMuaCcsCisgICAgICAgICAg
ICAndGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rl
c3RzL0lEQkJpbmRpbmdVdGlsaXRpZXNUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvSURC
S2V5UGF0aFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9JREJMZXZlbERCQ29kaW5nVGVz
dC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGlj
c0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvR3Jh
cGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E1MmM2ODM2ODM4MjdlZDU0
OWUyMzZjM2MxY2VhYzFiM2NiYmMwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTAsMCArMSw2
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiR3Jh
cGhpY3NMYXllckNocm9taXVtLmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCisjaW5j
bHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSB7CisKK2NsYXNzIE1vY2tHcmFwaGljc0xheWVyQ2xpZW50OiBwdWJsaWMgR3JhcGhpY3NM
YXllckNsaWVudCB7CitwdWJsaWM6CisgICAgTW9ja0dyYXBoaWNzTGF5ZXJDbGllbnQoZmxvYXQg
cGFnZVNjYWxlRmFjdG9yID0gMSkKKyAgICAgICAgOiBtX3BhZ2VTY2FsZUZhY3RvcihwYWdlU2Nh
bGVGYWN0b3IpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRp
b25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9CisgICAgdmly
dHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBo
aWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBp
bkNsaXApIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG93
UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBt
X3BhZ2VTY2FsZUZhY3RvcjsgfQorCitwcml2YXRlOgorICAgIGZsb2F0IG1fcGFnZVNjYWxlRmFj
dG9yOworfTsKKworVEVTVChHcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LCBpbml0aWFsUGFnZVNj
YWxlRmFjdG9yKQoreworICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciA9IDI7CisgICAgTW9ja0dy
YXBoaWNzTGF5ZXJDbGllbnQgY2xpZW50KHBhZ2VTY2FsZUZhY3Rvcik7CisgICAgT3duUHRyPEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bT4gZ3JhcGhpY3NMYXllciA9IHN0YXRpY19wb2ludGVyX2Nhc3Q8
R3JhcGhpY3NMYXllckNocm9taXVtPihHcmFwaGljc0xheWVyOjpjcmVhdGUoJmNsaWVudCkpOwor
ICAgIEFTU0VSVF9UUlVFKGdyYXBoaWNzTGF5ZXIuZ2V0KCkpOworCisgICAgTGF5ZXJDaHJvbWl1
bSogbGF5ZXJDaHJvbWl1bSA9IGdyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKTsKKyAgICBB
U1NFUlRfVFJVRShsYXllckNocm9taXVtKTsKKyAgICBFWFBFQ1RfRVEocGFnZVNjYWxlRmFjdG9y
LCBsYXllckNocm9taXVtLT5jb250ZW50c1NjYWxlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126544</attachid>
            <date>2012-02-10 11:32:19 -0800</date>
            <delta_ts>2012-02-10 12:22:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-77557-20120210193218.patch</filename>
            <type>text/plain</type>
            <size>16577</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3MzY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThjYWUzNDVhOTMwNDE2
ZWIwMDNjZTcyYmM3YjdjNGNjNDdhN2ExOS4uMWFjZDVlNWVlMTdiNDJjYWJmYzVmNjJlYjdhYzk0
ZWJhZmI5MmM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTAyLTAxICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEludHJvZHVjZSBh
IGZsYWcgdG8gZGVub3RlIGxheWVycyB3aGljaCBzaG91bGQgZm9sbG93IHRoZSBwYWdlIHNjYWxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzU1Nwor
CisgICAgICAgIFRoZXJlIGFyZSB0aHJlZSBkaWZmZXJlbnQgcmVsYXRpb25zaGlwcyBiZXR3ZWVu
IGxheWVycyBhbmQgcGFnZSBzY2FsZToKKworICAgICAgICAgIDEuIExheWVyIGNvbnRlbnRzIGFy
ZSBzY2FsZWQgYnkgdGhlIHBhaW50ZXIgKGUuZy4sIG5vbi1jb21wb3NpdGVkCisgICAgICAgICAg
ICAgY29udGVudCBsYXllcikKKworICAgICAgICAgIDIuIExheWVyIGNvbnRlbnRzIGFyZSBzY2Fs
ZWQgYnkgdGhlIGNvbXBvc2l0b3IgKGUuZy4sIENTUyB0cmFuc2Zvcm1lZAorICAgICAgICAgICAg
IGNoaWxkIGxheWVyKQorCisgICAgICAgICAgMy4gTGF5ZXIgY29udGVudHMgYXJlIG5vdCBzY2Fs
ZWQgYXQgYWxsIChlLmcuLCBvdmVyZmxvdyBjb250cm9scykKKworICAgICAgICBDdXJyZW50bHkg
R3JhcGhpY3NMYXllciBvbmx5IGhhcyBhIHNpbmdsZSBmbGFnIC0tIGFwcGxpZXNQYWdlU2NhbGUo
KSAtLQorICAgICAgICB3aGljaCBpcyBub3QgZW5vdWdoIHRvIHJlcHJlc2VudCBhbGwgY2FzZXMu
IFRoaXMgY2F1c2VzIHByb2JsZW1zIHdpdGgKKyAgICAgICAgY2F0ZWdvcnkgMyBsYXllcnMsIGJl
Y2F1c2UgdGhlIENocm9taXVtIGNvbXBvc2l0b3IgY3VycmVudGx5IGFwcGxpZXMgYQorICAgICAg
ICBjb250ZW50IHNjYWxlIGZhY3RvciB0byBhbGwgbGF5ZXJzIHRoYXQgYXJlIG5vdCBzY2FsZWQg
YnkgdGhlIHBhaW50ZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2Vjb25k
IGZsYWcgY2FsbGVkIG5lZWRzUGFnZVNjYWxlKCkuIEl0IGNhbiBiZQorICAgICAgICB1c2VkIHRv
IGRlbm90ZSBjYXRlZ29yeSAzIGxheWVycyB3aGljaCBzaG91bGQgbmV2ZXIgaGF2ZSB0aGUgcGFn
ZSBzY2FsZQorICAgICAgICBhcHBsaWVkIHRvIHRoZW0uIFRoaXMgZmxhZyBpcyB0cnVlIGJ5IGRl
ZmF1bHQgdG8gZW5zdXJlIGFsbCBsYXllcnMgZ2V0CisgICAgICAgIHNjYWxlZCB1bmxlc3MgaXQg
aXMgb3ZlcnJpZGRlbi4KKworICAgICAgICBXZSBhbHNvIGltcHJvdmUgdGhlIHdheSBHcmFwaGlj
c0xheWVyQ2hyb21pdW0gcmVhY3RzIHRvIGNoYW5nZXMgdG8gYm90aAorICAgICAgICBhcHBsaWVz
UGFnZVNjYWxlKCkgYW5kIG5lZWRzUGFnZVNjYWxlKCkuIFByZXZpb3VzbHkKKyAgICAgICAgR3Jh
cGhpY3NMYXllckNocm9taXVtIG9ubHkgdXBkYXRlZCBpdHMgY29udGVudHMgc2NhbGUgZmFjdG9y
IHdoZW4gaXRzCisgICAgICAgIHRyYW5zZm9ybSBjaGFuZ2VkIG9yIHdoZW4gdGhlIG92ZXJhbGwg
cGFnZSBvciBkZXZpY2Ugc2NhbGUgZmFjdG9yCisgICAgICAgIGNoYW5nZWQuIElmIG5laXRoZXIg
b2YgdGhlc2UgZXZlbnRzIGlzIHRyaWdnZXJlZCwgdGhlIGxheWVyIGlzIGxlZnQgd2l0aAorICAg
ICAgICBhIGRlZmF1bHQgY29udGVudHMgc2NhbGUgb2YgMS4gVGhpcyBtYXkgb3IgbWF5IG5vdCBt
YXRjaCB0aGUgY3VycmVudAorICAgICAgICBwYWdlIHNjYWxlIGF0IHRoZSB0aW1lIHRoZSBsYXll
ciB3YXMgY29uc3RydWN0ZWQuCisKKyAgICAgICAgVGhlIGZpeCBpcyB0byBzZXQgdGhlIGluaXRp
YWwgY29udGVudHMgc2NhbGUgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50CisgICAgICAgIHBhZ2Ug
c2NhbGUgYXQgbGF5ZXIgY29uc3RydWN0aW9uIHRpbWUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogQWRkZWQgbmV3IHVuaXQgdGVzdCBmb3Ig
R3JhcGhpY3NMYXllckNocm9taXVtLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDaHJvbWl1bTo6R3JhcGhpY3NMYXllckNocm9taXVtKToKKwogMjAxMi0wMi0wOSAg
S2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVwbGFjZSBb
Q3VzdG9tQXJndW1lbnRIYW5kbGluZ10gd2l0aCBbQ2FsbFdpdGg9U2NyaXB0QXJndW1lbnRzfENh
bGxTdGFja10KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDc5MzVhMGZhMDQxY2RkYzc2
NGQxMmZiYWI3ZTA2YTMwODg1Y2MwZS4uY2VjMmU1YjRlYzYzMjc2NTRjNjk4NWRkMzBlNGM4MDlj
ZDA5NDc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
Mi0wMi0wMSAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbY2hyb21pdW1dIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSBkb2VzIG5vdCByZXNwZWN0IGluaXRp
YWwgcGFnZSBzY2FsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Nzc1NTcKKworICAgICAgICBOZXcgdW5pdCB0ZXN0IGZvciBjaGVja2luZyB0aGF0IEdy
YXBoaWNzTGF5ZXJDaHJvbWl1bSBhcHBsaWVzIHRoZQorICAgICAgICBjb250ZW50cyBzY2FsZSBj
b3JyZWN0bHkgdG8gdGhlIHVuZGVybHlpbmcgTGF5ZXJDaHJvbWl1bS4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAg
ICAqIHRlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisKIDIwMTItMDItMDkgIEtlbmlj
aGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBXZWJTb2Nr
ZXQgZXh0ZW5zaW9uIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggYzdhMjI3NTViMDFjOWM0OGIzZGYwNmE1NjYz
ZjkxNjBkN2NlMzlkNy4uYjJkMDI0MjE2MjI1YTQzMzdmY2JkYjIwYjZkZjllNWNkODVkNzFjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
ci5jcHAKQEAgLTgzLDYgKzgzLDcgQEAgR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcihHcmFw
aGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2FjY2VsZXJhdGVzRHJhd2luZyhmYWxz
ZSkKICAgICAsIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnQoZmFsc2UpCiAgICAgLCBtX2FwcGxp
ZXNQYWdlU2NhbGUoZmFsc2UpCisgICAgLCBtX25lZWRzUGFnZVNjYWxlKHRydWUpCiAgICAgLCBt
X3BhaW50aW5nUGhhc2UoR3JhcGhpY3NMYXllclBhaW50QWxsKQogICAgICwgbV9jb250ZW50c09y
aWVudGF0aW9uKENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNUb3BEb3duKQogICAgICwgbV9wYXJlbnQo
MCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aAppbmRleCA5Zjc1NjI0ZmZjMTdmYWNhNWYwMjIxYTFlZmNiY2M4MWEyMjc2MDM2Li43ZTRmZmFl
MDMyMmU2ZGI0NDYzYWZiMzE4MThhZjI0NTlkZTdiYWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0zODcsOSArMzg3LDEyIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnQoYm9v
bCBtYWludGFpbnNBbGlnbm1lbnQpIHsgbV9tYWludGFpbnNQaXhlbEFsaWdubWVudCA9IG1haW50
YWluc0FsaWdubWVudDsgfQogICAgIHZpcnR1YWwgYm9vbCBtYWludGFpbnNQaXhlbEFsaWdubWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnQ7IH0KICAgICAKLSAg
ICB2b2lkIHNldEFwcGxpZXNQYWdlU2NhbGUoYm9vbCBhcHBsaWVzU2NhbGUgPSB0cnVlKSB7IG1f
YXBwbGllc1BhZ2VTY2FsZSA9IGFwcGxpZXNTY2FsZTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRB
cHBsaWVzUGFnZVNjYWxlKGJvb2wgYXBwbGllc1NjYWxlID0gdHJ1ZSkgeyBtX2FwcGxpZXNQYWdl
U2NhbGUgPSBhcHBsaWVzU2NhbGU7IH0KICAgICBib29sIGFwcGxpZXNQYWdlU2NhbGUoKSBjb25z
dCB7IHJldHVybiBtX2FwcGxpZXNQYWdlU2NhbGU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc1BhZ2VTY2FsZShib29sIG5lZWRzU2NhbGUpIHsgbV9uZWVkc1BhZ2VTY2FsZSA9IG5lZWRz
U2NhbGU7IH0KKyAgICBib29sIG5lZWRzUGFnZVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9uZWVk
c1BhZ2VTY2FsZTsgfQorCiAgICAgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1
cm4gbV9jbGllbnQgPyBtX2NsaWVudC0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxOyB9CiAgICAgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50
LT5kZXZpY2VTY2FsZUZhY3RvcigpIDogMTsgfQogCkBAIC00NzYsNyArNDc5LDkgQEAgcHJvdGVj
dGVkOgogICAgIGJvb2wgbV9jb250ZW50c1Zpc2libGUgOiAxOwogICAgIGJvb2wgbV9hY2NlbGVy
YXRlc0RyYXdpbmcgOiAxOwogICAgIGJvb2wgbV9tYWludGFpbnNQaXhlbEFsaWdubWVudCA6IDE7
Ci0gICAgYm9vbCBtX2FwcGxpZXNQYWdlU2NhbGUgOiAxOyAvLyBTZXQgZm9yIHRoZSBsYXllciB3
aGljaCBoYXMgdGhlIHBhZ2Ugc2NhbGUgYXBwbGllZCB0byBpdC4KKyAgICBib29sIG1fYXBwbGll
c1BhZ2VTY2FsZSA6IDE7IC8vIFNldCBmb3IgdGhlIGxheWVyIHdoaWNoIGhhcyB0aGUgcGFnZSBz
Y2FsZSBhcHBsaWVkIHRvIGl0IGJ5IHRoZSBwYWludGVyLgorICAgIGJvb2wgbV9uZWVkc1BhZ2VT
Y2FsZSA6IDE7IC8vIFNldCBmb3IgdGhlIGxheWVyIHdoaWNoIHNob3VsZCBoYXZlIHRoZSBwYWdl
IHNjYWxlIGFwcGxpZWQgdG8gaXQgZWl0aGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gYnkgdGhlIHBhaW50ZXIgb3IgdGhlIGNvbXBvc2l0b3IuCiAKICAgICBHcmFwaGljc0xh
eWVyUGFpbnRpbmdQaGFzZSBtX3BhaW50aW5nUGhhc2U7CiAgICAgQ29tcG9zaXRpbmdDb29yZGlu
YXRlc09yaWVudGF0aW9uIG1fY29udGVudHNPcmllbnRhdGlvbjsgLy8gYWZmZWN0cyBvcmllbnRh
dGlvbiBvZiBsYXllciBjb250ZW50cwpAQCAtNTExLDQgKzUxNiwzIEBAIHZvaWQgc2hvd0dyYXBo
aWNzTGF5ZXJUcmVlKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIGxheWVyKTsKICNlbmRp
ZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKICNlbmRpZiAvLyBHcmFwaGljc0xh
eWVyX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggYmI4ODVl
ZDhlZWY5YTVjOTJiM2UxZTYwZjU3M2FlYmViMDMzOWVlZC4uMjUzMzEyNTgxZTRmYjY2YjU5NDZj
Nzc4ZWJiODA5YWUyODdkYjdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0u
Y3BwCkBAIC03Niw2ICs3Niw3IEBAIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6R3JhcGhpY3NMYXll
ckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKIHsKICAgICBtX2xheWVyID0g
Q29udGVudExheWVyQ2hyb21pdW06OmNyZWF0ZSh0aGlzKTsKIAorICAgIHVwZGF0ZUNvbnRlbnRz
U2NhbGUoKTsKICAgICB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKIH0KIApAQCAtNjI0LDggKzYy
NSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50c1JlY3QoKQog
CiB2b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHNTY2FsZSgpCiB7Ci0g
ICAgLy8gSWYgcGFnZSBzY2FsZSBpcyBhbHJlYWR5IGFwcGxpZWQgdGhlbiB0aGVyZSdzIG5vIG5l
ZWQgdG8gYXBwbHkgaXQgYWdhaW4uCi0gICAgaWYgKGFwcGxpZXNQYWdlU2NhbGUoKSB8fCAhbV9s
YXllcikKKyAgICBpZiAoIW1fbGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbGF5ZXIt
PnNldENvbnRlbnRzU2NhbGUoY29udGVudHNTY2FsZSgpKTsKQEAgLTY2NSw3ICs2NjUsOCBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0dXBDb250ZW50c0xheWVyKExheWVyQ2hyb21p
dW0qIGNvbnRlbnRzTGF5ZXIpCiAKIGZsb2F0IEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6Y29udGVu
dHNTY2FsZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFhcHBsaWVzUGFnZVNjYWxlKCkpCisgICAgLy8g
SWYgcGFnZSBzY2FsZSBpcyBhbHJlYWR5IGFwcGxpZWQgdGhlbiB0aGVyZSdzIG5vIG5lZWQgdG8g
YXBwbHkgaXQgYWdhaW4uCisgICAgaWYgKCFhcHBsaWVzUGFnZVNjYWxlKCkgJiYgbmVlZHNQYWdl
U2NhbGUoKSkKICAgICAgICAgcmV0dXJuIHBhZ2VTY2FsZUZhY3RvcigpICogZGV2aWNlU2NhbGVG
YWN0b3IoKTsKICAgICByZXR1cm4gMTsKIH0KQEAgLTY3Nyw2ICs2NzgsMTggQEAgdm9pZCBHcmFw
aGljc0xheWVyQ2hyb21pdW06OmRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpCiAgICAg
ICAgIG1fbGF5ZXItPnBhZ2VTY2FsZUNoYW5nZWQoKTsKIH0KIAordm9pZCBHcmFwaGljc0xheWVy
Q2hyb21pdW06OnNldEFwcGxpZXNQYWdlU2NhbGUoYm9vbCBhcHBsaWVzU2NhbGUpCit7CisgICAg
R3JhcGhpY3NMYXllcjo6c2V0QXBwbGllc1BhZ2VTY2FsZShhcHBsaWVzU2NhbGUpOworICAgIHVw
ZGF0ZUNvbnRlbnRzU2NhbGUoKTsKK30KKwordm9pZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OnNl
dE5lZWRzUGFnZVNjYWxlKGJvb2wgbmVlZHNTY2FsZSkKK3sKKyAgICBHcmFwaGljc0xheWVyOjpz
ZXROZWVkc1BhZ2VTY2FsZShuZWVkc1NjYWxlKTsKKyAgICB1cGRhdGVDb250ZW50c1NjYWxlKCk7
Cit9CisKIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpwYWludENvbnRlbnRzKEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UmVjdCYgY2xpcCkKIHsKICAgICBwYWludEdyYXBo
aWNzTGF5ZXJDb250ZW50cyhjb250ZXh0LCBjbGlwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNo
cm9taXVtLmgKaW5kZXggMzliMzY3YjlkM2YwZTJmODNhMzIwZjkwMmI1NDA2MmZiOTMxZTg2Ni4u
YTU2MjhhZWFiMjNmMDE2MzNlZjA2OGZhZDRjZjc2MWZiNWZhMTg1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9t
aXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3Jh
cGhpY3NMYXllckNocm9taXVtLmgKQEAgLTk3LDYgKzk3LDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXREZWJ1Z0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IGJvcmRlcldpZHRoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CisgICAg
dmlydHVhbCB2b2lkIHNldEFwcGxpZXNQYWdlU2NhbGUoYm9vbCk7CisgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzUGFnZVNjYWxlKGJvb2wpOwogCiAgICAgLy8gQ29udGVudExheWVyRGVsZWdhdGUg
aW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGU5Y2JkZjg2ZWFmN2QxMzEyM2EzZDgz
MzU2MjMwZDg0YTgwYzczNzguLjkyM2M0YmIxMWI5YTZhZTZiYWUzZTg0YTRkOTNlYTE4YWExZTNl
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCkBAIC02NTUsNiArNjU1LDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZU92
ZXJmbG93Q29udHJvbHNMYXllcnMoYm9vbCBuZWVkc0hvcml6b250YWxTY3JvbGwKICAgICBpZiAo
bmVlZHNIb3Jpem9udGFsU2Nyb2xsYmFyTGF5ZXIpIHsKICAgICAgICAgaWYgKCFtX2xheWVyRm9y
SG9yaXpvbnRhbFNjcm9sbGJhcikgewogICAgICAgICAgICAgbV9sYXllckZvckhvcml6b250YWxT
Y3JvbGxiYXIgPSBjcmVhdGVHcmFwaGljc0xheWVyKCJob3Jpem9udGFsIHNjcm9sbGJhciIpOwor
ICAgICAgICAgICAgbV9sYXllckZvckhvcml6b250YWxTY3JvbGxiYXItPnNldE5lZWRzUGFnZVNj
YWxlKGZhbHNlKTsKICAgICAgICAgICAgIGxheWVyc0NoYW5nZWQgPSB0cnVlOwogICAgICAgICB9
CiAgICAgfSBlbHNlIGlmIChtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhcikgewpAQCAtNjY1
LDYgKzY2Niw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVPdmVyZmxvd0NvbnRy
b2xzTGF5ZXJzKGJvb2wgbmVlZHNIb3Jpem9udGFsU2Nyb2xsCiAgICAgaWYgKG5lZWRzVmVydGlj
YWxTY3JvbGxiYXJMYXllcikgewogICAgICAgICBpZiAoIW1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9s
bGJhcikgewogICAgICAgICAgICAgbV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyID0gY3JlYXRl
R3JhcGhpY3NMYXllcigidmVydGljYWwgc2Nyb2xsYmFyIik7CisgICAgICAgICAgICBtX2xheWVy
Rm9yVmVydGljYWxTY3JvbGxiYXItPnNldE5lZWRzUGFnZVNjYWxlKGZhbHNlKTsKICAgICAgICAg
ICAgIGxheWVyc0NoYW5nZWQgPSB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChtX2xh
eWVyRm9yVmVydGljYWxTY3JvbGxiYXIpIHsKQEAgLTY3NSw2ICs2NzcsNyBAQCBib29sIFJlbmRl
ckxheWVyQmFja2luZzo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyhib29sIG5lZWRzSG9y
aXpvbnRhbFNjcm9sbAogICAgIGlmIChuZWVkc1Njcm9sbENvcm5lckxheWVyKSB7CiAgICAgICAg
IGlmICghbV9sYXllckZvclNjcm9sbENvcm5lcikgewogICAgICAgICAgICAgbV9sYXllckZvclNj
cm9sbENvcm5lciA9IGNyZWF0ZUdyYXBoaWNzTGF5ZXIoInNjcm9sbCBjb3JuZXIiKTsKKyAgICAg
ICAgICAgIG1fbGF5ZXJGb3JTY3JvbGxDb3JuZXItPnNldE5lZWRzUGFnZVNjYWxlKGZhbHNlKTsK
ICAgICAgICAgICAgIGxheWVyc0NoYW5nZWQgPSB0cnVlOwogICAgICAgICB9CiAgICAgfSBlbHNl
IGlmIChtX2xheWVyRm9yU2Nyb2xsQ29ybmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDU5NDI1MjAyNDM0YjU4YmZm
MmE0ZTdjMDU5NDU1ZDI1MzE2ZGM5NDUuLmQ1ZGZlNDY2NTMzYTM5YzkyYmQxM2QwNDJhMzA3OTEw
YWE2ODM3YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCkBAIC0xODExLDYgKzE4MTEsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpCiAgICAgaWYgKHJlcXVpcmVz
SG9yaXpvbnRhbFNjcm9sbGJhckxheWVyKCkpIHsKICAgICAgICAgaWYgKCFtX2xheWVyRm9ySG9y
aXpvbnRhbFNjcm9sbGJhcikgewogICAgICAgICAgICAgbV9sYXllckZvckhvcml6b250YWxTY3Jv
bGxiYXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcyk7CisgICAgICAgICAgICBtX2xheWVy
Rm9ySG9yaXpvbnRhbFNjcm9sbGJhci0+c2V0TmVlZHNQYWdlU2NhbGUoZmFsc2UpOwogICAgICNp
Zm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2xheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJhci0+
c2V0TmFtZSgiaG9yaXpvbnRhbCBzY3JvbGxiYXIiKTsKICAgICAjZW5kaWYKQEAgLTE4MzQsNiAr
MTgzNSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVPdmVyZmxvd0NvbnRy
b2xzTGF5ZXJzKCkKICAgICBpZiAocmVxdWlyZXNWZXJ0aWNhbFNjcm9sbGJhckxheWVyKCkpIHsK
ICAgICAgICAgaWYgKCFtX2xheWVyRm9yVmVydGljYWxTY3JvbGxiYXIpIHsKICAgICAgICAgICAg
IG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSh0aGlz
KTsKKyAgICAgICAgICAgIG1fbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhci0+c2V0TmVlZHNQYWdl
U2NhbGUoZmFsc2UpOwogICAgICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2xheWVyRm9y
VmVydGljYWxTY3JvbGxiYXItPnNldE5hbWUoInZlcnRpY2FsIHNjcm9sbGJhciIpOwogICAgICNl
bmRpZgpAQCAtMTg1Nyw2ICsxODU5LDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZU92ZXJmbG93Q29udHJvbHNMYXllcnMoKQogICAgIGlmIChyZXF1aXJlc1Njcm9sbENvcm5l
ckxheWVyKCkpIHsKICAgICAgICAgaWYgKCFtX2xheWVyRm9yU2Nyb2xsQ29ybmVyKSB7CiAgICAg
ICAgICAgICBtX2xheWVyRm9yU2Nyb2xsQ29ybmVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRo
aXMpOworICAgICAgICAgICAgbV9sYXllckZvclNjcm9sbENvcm5lci0+c2V0TmVlZHNQYWdlU2Nh
bGUoZmFsc2UpOwogICAgICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2xheWVyRm9yU2Ny
b2xsQ29ybmVyLT5zZXROYW1lKCJzY3JvbGwgY29ybmVyIik7CiAgICAgI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCAzNWYyYjE5OTA3NzlkNjY5ZWY4MDQwMmZiMDBmMmE1
NTYxNDdjMzI2Li4wMjY1MTRkN2ZhZWJkYjQ5ZTgzMTVlYWFmYzcwY2Q1YzdkOTIxMjUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTkzLDYgKzkzLDcgQEAKICAgICAgICAgICAg
ICd0ZXN0cy9GbG9hdFF1YWRUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvRnJhbWVUZXN0
SGVscGVycy5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0ZyYW1lVGVzdEhlbHBlcnMuaCcsCisg
ICAgICAgICAgICAndGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAnLAogICAgICAg
ICAgICAgJ3Rlc3RzL0lEQkJpbmRpbmdVdGlsaXRpZXNUZXN0LmNwcCcsCiAgICAgICAgICAgICAn
dGVzdHMvSURCS2V5UGF0aFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9JREJMZXZlbERC
Q29kaW5nVGVzdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJjNjZhMTVk
M2ZlZjNkNjJiNjQ1ZGJhZTNiMzg1OTM2YzdlOTVjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKQEAg
LTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5j
bHVkZSAiR3JhcGhpY3NMYXllckNocm9taXVtLmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0xheWVy
LmgiCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIE1vY2tHcmFwaGljc0xheWVyQ2xpZW50OiBwdWJsaWMg
R3JhcGhpY3NMYXllckNsaWVudCB7CitwdWJsaWM6CisgICAgTW9ja0dyYXBoaWNzTGF5ZXJDbGll
bnQoZmxvYXQgcGFnZVNjYWxlRmFjdG9yID0gMSkKKyAgICAgICAgOiBtX3BhZ2VTY2FsZUZhY3Rv
cihwYWdlU2NhbGVGYWN0b3IpCisgICAgeworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBub3Rp
ZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgeyB9
CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVy
KikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciosIEdyYXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJ
bnRSZWN0JiBpbkNsaXApIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBzaG93UmVwYWludENvdW50ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7
IHJldHVybiBtX3BhZ2VTY2FsZUZhY3RvcjsgfQorCitwcml2YXRlOgorICAgIGZsb2F0IG1fcGFn
ZVNjYWxlRmFjdG9yOworfTsKKworVEVTVChHcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LCBwYWdl
U2NhbGVGYWN0b3JUcmFja2luZykKK3sKKyAgICBmbG9hdCBpZGVudGl0eSA9IDE7CisgICAgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yID0gMjsKKyAgICBNb2NrR3JhcGhpY3NMYXllckNsaWVudCBjbGll
bnQocGFnZVNjYWxlRmFjdG9yKTsKKyAgICBPd25QdHI8R3JhcGhpY3NMYXllckNocm9taXVtPiBn
cmFwaGljc0xheWVyID0gc3RhdGljX3BvaW50ZXJfY2FzdDxHcmFwaGljc0xheWVyQ2hyb21pdW0+
KEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSgmY2xpZW50KSk7CisgICAgQVNTRVJUX1RSVUUoZ3JhcGhp
Y3NMYXllci5nZXQoKSk7CisKKyAgICBMYXllckNocm9taXVtKiBsYXllckNocm9taXVtID0gZ3Jh
cGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpOworICAgIEFTU0VSVF9UUlVFKGxheWVyQ2hyb21p
dW0pOworCisgICAgLy8gVGhlIGluaXRpYWwgcGFnZSBzY2FsZSBmYWN0b3Igc2hvdWxkIG1hdGNo
LgorICAgIEVYUEVDVF9FUSh0cnVlLCBncmFwaGljc0xheWVyLT5uZWVkc1BhZ2VTY2FsZSgpKTsK
KyAgICBFWFBFQ1RfRVEoZmFsc2UsIGdyYXBoaWNzTGF5ZXItPmFwcGxpZXNQYWdlU2NhbGUoKSk7
CisgICAgRVhQRUNUX0VRKHBhZ2VTY2FsZUZhY3RvciwgbGF5ZXJDaHJvbWl1bS0+Y29udGVudHNT
Y2FsZSgpKTsKKworICAgIC8vIEFwcGx5aW5nIHBhZ2Ugc2NhbGUgb24gdGhlIGdyYXBoaWNzIGxh
eWVyIHNob3VsZCByZXNldCB0aGUgY29udGVudCBzY2FsZQorICAgIC8vIG9mIHRoZSBwbGF0Zm9y
bSBsYXllci4KKyAgICBncmFwaGljc0xheWVyLT5zZXRBcHBsaWVzUGFnZVNjYWxlKHRydWUpOwor
ICAgIEVYUEVDVF9FUSh0cnVlLCBncmFwaGljc0xheWVyLT5hcHBsaWVzUGFnZVNjYWxlKCkpOwor
ICAgIEVYUEVDVF9FUShpZGVudGl0eSwgbGF5ZXJDaHJvbWl1bS0+Y29udGVudHNTY2FsZSgpKTsK
KworICAgIC8vIERpc2FibGluZyBwYWdlIHNjYWxlIGFsdG9nZXRoZXIgc2hvdWxkIGFsc28gcmVz
ZXQgdGhlIGNvbnRlbnQgc2NhbGUuCisgICAgZ3JhcGhpY3NMYXllci0+c2V0QXBwbGllc1BhZ2VT
Y2FsZShmYWxzZSk7CisgICAgZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNQYWdlU2NhbGUoZmFsc2Up
OworICAgIEVYUEVDVF9FUShmYWxzZSwgZ3JhcGhpY3NMYXllci0+YXBwbGllc1BhZ2VTY2FsZSgp
KTsKKyAgICBFWFBFQ1RfRVEoZmFsc2UsIGdyYXBoaWNzTGF5ZXItPm5lZWRzUGFnZVNjYWxlKCkp
OworICAgIEVYUEVDVF9FUShpZGVudGl0eSwgbGF5ZXJDaHJvbWl1bS0+Y29udGVudHNTY2FsZSgp
KTsKKworICAgIC8vIFJlbmFibGUgb25jZSBtb3JlLgorICAgIGdyYXBoaWNzTGF5ZXItPnNldE5l
ZWRzUGFnZVNjYWxlKHRydWUpOworICAgIEVYUEVDVF9FUSh0cnVlLCBncmFwaGljc0xheWVyLT5u
ZWVkc1BhZ2VTY2FsZSgpKTsKKyAgICBFWFBFQ1RfRVEocGFnZVNjYWxlRmFjdG9yLCBsYXllckNo
cm9taXVtLT5jb250ZW50c1NjYWxlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZQo=
</data>
<flag name="review"
          id="128384"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="128385"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>