<?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>82071</bug_id>
          
          <creation_ts>2012-03-23 11:20:47 -0700</creation_ts>
          <short_desc>[chromium] Improved composited debug borders</short_desc>
          <delta_ts>2012-03-23 14:46:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dana Jansens">danakj</reporter>
          <assigned_to name="Dana Jansens">danakj</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>piman</cc>
    
    <cc>reveman</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>586516</commentid>
    <comment_count>0</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 11:20:47 -0700</bug_when>
    <thetext>[chromium] Improved composited debug borders</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586532</commentid>
    <comment_count>1</comment_count>
      <attachid>133521</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 11:31:32 -0700</bug_when>
    <thetext>Created attachment 133521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586539</commentid>
    <comment_count>2</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 11:35:01 -0700</bug_when>
    <thetext>http://i.imgur.com/DT3gX.png</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586572</commentid>
    <comment_count>3</comment_count>
      <attachid>133521</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-23 12:01:37 -0700</bug_when>
    <thetext>Comment on attachment 133521
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        of its debug quad. Reverse the ordering when appening to fix this
&gt; +        .

s/appening to fix this\n./appending to fix it./

Nice comment justification.  ;)

&gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp:67
&gt; -    layer-&gt;appendQuads(quadCuller, sharedQuadState.get(), usedCheckerboard);
&gt;      layer-&gt;appendDebugBorderQuad(quadCuller, sharedQuadState.get());
&gt; +    layer-&gt;appendQuads(quadCuller, sharedQuadState.get(), usedCheckerboard);

See! Things implicitly being in reverse order is confusing.  ;)

&gt; Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:159
&gt; +                if (hasDebugBorders()) {
&gt; +                    Color color(debugTileBorderMissingTileRed, debugTileBorderMissingTileGreen, debugTileBorderMissingTileBlue, debugTileBorderAlpha);
&gt; +                    quadList.append(CCDebugBorderDrawQuad::create(sharedQuadState, tileRect, color, debugTileBorderWidth));
&gt; +                }

This doesn&apos;t seem right.  This will interleave missing texture debug quads with normal quads, drawing over some of them.

Change line 154 from &quot;if (!tile || !tile-&gt;textureId()) {&quot; to &quot;if (!tile || !tile-&gt;textureId() || ((i + j) % 2) {&quot; or &quot;if (true) {&quot; and you&apos;ll see what I mean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586585</commentid>
    <comment_count>4</comment_count>
      <attachid>133521</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-03-23 12:14:12 -0700</bug_when>
    <thetext>Comment on attachment 133521
Patch

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

It would also be nice if tile boundaries have different colors from layer borders.  Some times it&apos;s hard to tell apart tiles from 256x256 layers (e.g. in maps).

&gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp:39
&gt; +static const int debugSurfaceBorderWidth = 2;

Couldn&apos;t these be initialized directly as WebCore::Color&apos;s ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586626</commentid>
    <comment_count>5</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 12:46:02 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 133521 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133521&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        of its debug quad. Reverse the ordering when appening to fix this
&gt; &gt; +        .
&gt; 
&gt; s/appening to fix this\n./appending to fix it./

+1

&gt; See! Things implicitly being in reverse order is confusing.  ;)

Indeed :/

&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:159
&gt; &gt; +                if (hasDebugBorders()) {
&gt; &gt; +                    Color color(debugTileBorderMissingTileRed, debugTileBorderMissingTileGreen, debugTileBorderMissingTileBlue, debugTileBorderAlpha);
&gt; &gt; +                    quadList.append(CCDebugBorderDrawQuad::create(sharedQuadState, tileRect, color, debugTileBorderWidth));
&gt; &gt; +                }
&gt; 
&gt; This doesn&apos;t seem right.  This will interleave missing texture debug quads with normal quads, drawing over some of them.

Yeh, you&apos;re right, the left edge would get erased by the tile beside it. I moved the debug borders stuff up to the top so all borders are appended, then content tiles.

(In reply to comment #4)
&gt; (From update of attachment 133521 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133521&amp;action=review
&gt; 
&gt; It would also be nice if tile boundaries have different colors from layer borders.  Some times it&apos;s hard to tell apart tiles from 256x256 layers (e.g. in maps).

Cyan! :)

&gt; &gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp:39
&gt; &gt; +static const int debugSurfaceBorderWidth = 2;
&gt; 
&gt; Couldn&apos;t these be initialized directly as WebCore::Color&apos;s ?

Yeh, I was trying to avoid the ire of reviewers for using static structs. I&apos;ll switch em to Colors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586627</commentid>
    <comment_count>6</comment_count>
      <attachid>133539</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 12:47:40 -0700</bug_when>
    <thetext>Created attachment 133539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586629</commentid>
    <comment_count>7</comment_count>
      <attachid>133539</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-23 12:48:53 -0700</bug_when>
    <thetext>Comment on attachment 133539
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp:42
&gt; +static const Color debugSurfaceBorderColor(0, 0, 255);
&gt; +static const Color debugReplicaBorderColor(160, 0, 255);

I believe these generate static initializers, so I&apos;m going to go ahead and yell at you not to do this (or alternately confirm with the C++ standard that no static initializer is generated for this code)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586647</commentid>
    <comment_count>8</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 13:00:58 -0700</bug_when>
    <thetext>Interesting..It seems like the Color class can be staticly initialized?

http://en.wikipedia.org/wiki/C%2B%2B11#Modification_to_the_definition_of_plain_old_data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586658</commentid>
    <comment_count>9</comment_count>
      <attachid>133545</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 13:11:12 -0700</bug_when>
    <thetext>Created attachment 133545
Patch

Without static Color objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586673</commentid>
    <comment_count>10</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 13:27:00 -0700</bug_when>
    <thetext>For posterity, I spoke with James. Color seems to fit the definition of POD in C++11, but not in C++03, so no go on static instances. And it is safer anyhow to not treat it like POD, since anyone could change the Color class and break our assumptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586695</commentid>
    <comment_count>11</comment_count>
      <attachid>133545</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-23 13:53:39 -0700</bug_when>
    <thetext>Comment on attachment 133545
Patch

Excellent.  Thanks for fixing this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586768</commentid>
    <comment_count>12</comment_count>
      <attachid>133545</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-23 14:46:15 -0700</bug_when>
    <thetext>Comment on attachment 133545
Patch

Clearing flags on attachment: 133545

Committed r111909: &lt;http://trac.webkit.org/changeset/111909&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586769</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-23 14:46:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133521</attachid>
            <date>2012-03-23 11:31:32 -0700</date>
            <delta_ts>2012-03-23 12:47:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82071-20120323143131.patch</filename>
            <type>text/plain</type>
            <size>9853</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWIwOTk4ZDA4MzQ1MDI5
MDhiY2I1ZjM4OGI0NGVmNzYzNmU1NzAxMS4uNmJmYmRhNDU4YmE2MGRlOTcxYjFmZjY0N2NjZWE0
YmEyMTk0ZTBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTAzLTIzICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gSW1w
cm92ZWQgY29tcG9zaXRlZCBkZWJ1ZyBib3JkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjA3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgcHJvYmxlbSB3aXRoIG1pc3NpbmcgZGVidWcg
Ym9yZGVycy4gU2luY2Ugd2UgYXBwZW5kIHF1YWRzCisgICAgICAgIHRvIHRoZSBsaXN0IGZyb250
IHRvIGJhY2sgbm93LCB3ZSBkcmF3IHRoZSBxdWFkcyBpbiB0aGUgbGlzdCBmcm9tCisgICAgICAg
IGJhY2sgdG8gZnJvbnQgb2YgdGhlIGxpc3QuIFdoaWNoIG1lYW5zIGlmIHRoZSBkZWJ1ZyBxdWFk
IGlzIGFkZGVkCisgICAgICAgIGFmdGVyIHRoZSBsYXllciBpdCBpcyBkcmF3aW5nIGFyb3VuZCwg
dGhlIGxheWVyIGNhbiBkcmF3IG92ZXIgdG9wCisgICAgICAgIG9mIGl0cyBkZWJ1ZyBxdWFkLiBS
ZXZlcnNlIHRoZSBvcmRlcmluZyB3aGVuIGFwcGVuaW5nIHRvIGZpeCB0aGlzCisgICAgICAgIC4K
KworICAgICAgICBNYWtlIHRoZSBib3JkZXIgcmVkIGFyb3VuZCB0aWxlcyB0aGF0IGFyZSBjaGVj
a2VyYm9hcmRlZC4gTWlzc2luZworICAgICAgICB0aWxlcyBpbiBub24tcm9vdCBsYXllcnMgYXJl
IGRyYXduIGNsZWFyLCBzbyB0aGlzIG1ha2VzIHRoZW0gbW9yZQorICAgICAgICB2aXNpYmxlLgor
CisgICAgICAgIFB1dCBhIGJsdWUgYm9yZGVyIGFyb3VuZCBlYWNoIHJlbmRlciBzdXJmYWNlLCBh
bmQgYSBwdXJwbGUgYm9yZGVyCisgICAgICAgIG9uIHRoZWlyIHJlcGxpY2FzLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUmVuZGVyUGFzcy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpD
Q1JlbmRlclBhc3M6OmFwcGVuZFF1YWRzRm9yUmVuZGVyU3VyZmFjZUxheWVyKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NSZW5kZXJTdXJmYWNlOjpoYXNSZXBsaWNhKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5kZXJTdXJmYWNlOjpjcmVhdGVSZXBsaWNh
U2hhcmVkUXVhZFN0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1JlbmRlclN1cmZhY2UuaDoKKyAgICAgICAgKENDUmVuZGVyU3VyZmFjZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGlsZWRMYXllckltcGw6OmFw
cGVuZFF1YWRzKToKKwogMjAxMi0wMy0yMiAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFNraXAgZnJhbWVzIHdoZW4gY2hlY2tlcmJvYXJk
aW5nIGFuIGFuaW1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKaW5kZXggY2Y0N2I2Y2I4
N2E0Mzc2MDIxMDMwN2RjZGY5MDY5MDcxZTRhNGUwYy4uNzJiNzJhZWNkMWQ0NzQ2MzljMzllMzY1
OTZmNDU5YTljMGY3NmU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwCkBAIC0yOCw2ICsy
OCw3IEBACiAjaW5jbHVkZSAiY2MvQ0NSZW5kZXJQYXNzLmgiCiAKICNpbmNsdWRlICJjYy9DQ0Rh
bWFnZVRyYWNrZXIuaCIKKyNpbmNsdWRlICJjYy9DQ0RlYnVnQm9yZGVyRHJhd1F1YWQuaCIKICNp
bmNsdWRlICJjYy9DQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgImNjL0NDUXVhZEN1bGxlci5oIgog
I2luY2x1ZGUgImNjL0NDUmVuZGVyU3VyZmFjZURyYXdRdWFkLmgiCkBAIC0zNSw2ICszNiwxNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdTdXJmYWNl
Qm9yZGVyV2lkdGggPSAyOworc3RhdGljIGNvbnN0IGludCBkZWJ1Z1N1cmZhY2VCb3JkZXJBbHBo
YSA9IDI1NTsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdTdXJmYWNlQm9yZGVyUmVkID0gMDsKK3N0
YXRpYyBjb25zdCBpbnQgZGVidWdTdXJmYWNlQm9yZGVyR3JlZW4gPSAwOworc3RhdGljIGNvbnN0
IGludCBkZWJ1Z1N1cmZhY2VCb3JkZXJCbHVlID0gMjU1Oworc3RhdGljIGNvbnN0IGludCBkZWJ1
Z1JlcGxpY2FCb3JkZXJXaWR0aCA9IDI7CitzdGF0aWMgY29uc3QgaW50IGRlYnVnUmVwbGljYUJv
cmRlckFscGhhID0gMjU1Oworc3RhdGljIGNvbnN0IGludCBkZWJ1Z1JlcGxpY2FCb3JkZXJSZWQg
PSAxNjA7CitzdGF0aWMgY29uc3QgaW50IGRlYnVnUmVwbGljYUJvcmRlckdyZWVuID0gMDsKK3N0
YXRpYyBjb25zdCBpbnQgZGVidWdSZXBsaWNhQm9yZGVyQmx1ZSA9IDI1NTsKKwogUGFzc093blB0
cjxDQ1JlbmRlclBhc3M+IENDUmVuZGVyUGFzczo6Y3JlYXRlKENDUmVuZGVyU3VyZmFjZSogdGFy
Z2V0U3VyZmFjZSkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDUmVuZGVyUGFzcyh0YXJn
ZXRTdXJmYWNlKSk7CkBAIC01MSw4ICs2Myw4IEBAIHZvaWQgQ0NSZW5kZXJQYXNzOjphcHBlbmRR
dWFkc0ZvckxheWVyKENDTGF5ZXJJbXBsKiBsYXllciwgQ0NPY2NsdXNpb25UcmFja2VySW1wCiAg
ICAgQ0NRdWFkQ3VsbGVyIHF1YWRDdWxsZXIobV9xdWFkTGlzdCwgbGF5ZXIsIG9jY2x1c2lvblRy
YWNrZXIpOwogCiAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUg
PSBsYXllci0+Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCk7Ci0gICAgbGF5ZXItPmFwcGVuZFF1YWRz
KHF1YWRDdWxsZXIsIHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgdXNlZENoZWNrZXJib2FyZCk7CiAg
ICAgbGF5ZXItPmFwcGVuZERlYnVnQm9yZGVyUXVhZChxdWFkQ3VsbGVyLCBzaGFyZWRRdWFkU3Rh
dGUuZ2V0KCkpOworICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFk
U3RhdGUuZ2V0KCksIHVzZWRDaGVja2VyYm9hcmQpOwogICAgIG1fc2hhcmVkUXVhZFN0YXRlTGlz
dC5hcHBlbmQoc2hhcmVkUXVhZFN0YXRlLnJlbGVhc2UoKSk7CiB9CiAKQEAgLTYyLDYgKzc0LDE4
IEBAIHZvaWQgQ0NSZW5kZXJQYXNzOjphcHBlbmRRdWFkc0ZvclJlbmRlclN1cmZhY2VMYXllcihD
Q0xheWVySW1wbCogbGF5ZXIpCiAgICAgLy8gbm90IGJlIGhhbmRsZWQgc3BlY2lhbGx5IGhlcmUu
CiAgICAgQ0NSZW5kZXJTdXJmYWNlKiBzdXJmYWNlID0gbGF5ZXItPnJlbmRlclN1cmZhY2UoKTsK
ICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IHN1cmZhY2Ut
PmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOworCisgICAgaWYgKGxheWVyLT5oYXNEZWJ1Z0JvcmRl
cnMoKSkgeworICAgICAgICBDb2xvciBjb2xvcihkZWJ1Z1N1cmZhY2VCb3JkZXJSZWQsIGRlYnVn
U3VyZmFjZUJvcmRlckdyZWVuLCBkZWJ1Z1N1cmZhY2VCb3JkZXJCbHVlLCBkZWJ1Z1N1cmZhY2VC
b3JkZXJBbHBoYSk7CisgICAgICAgIG1fcXVhZExpc3QuYXBwZW5kKENDRGVidWdCb3JkZXJEcmF3
UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgc3VyZmFjZS0+Y29udGVudFJlY3Qo
KSwgY29sb3IsIGRlYnVnU3VyZmFjZUJvcmRlcldpZHRoKSk7CisgICAgICAgIGlmIChzdXJmYWNl
LT5oYXNSZXBsaWNhKCkpIHsKKyAgICAgICAgICAgIE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4g
c2hhcmVkUXVhZFN0YXRlID0gc3VyZmFjZS0+Y3JlYXRlUmVwbGljYVNoYXJlZFF1YWRTdGF0ZSgp
OworICAgICAgICAgICAgQ29sb3IgY29sb3IoZGVidWdSZXBsaWNhQm9yZGVyUmVkLCBkZWJ1Z1Jl
cGxpY2FCb3JkZXJHcmVlbiwgZGVidWdSZXBsaWNhQm9yZGVyQmx1ZSwgZGVidWdSZXBsaWNhQm9y
ZGVyQWxwaGEpOworICAgICAgICAgICAgbV9xdWFkTGlzdC5hcHBlbmQoQ0NEZWJ1Z0JvcmRlckRy
YXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLmdldCgpLCBzdXJmYWNlLT5jb250ZW50UmVj
dCgpLCBjb2xvciwgZGVidWdSZXBsaWNhQm9yZGVyV2lkdGgpKTsKKyAgICAgICAgICAgIG1fc2hh
cmVkUXVhZFN0YXRlTGlzdC5hcHBlbmQoc2hhcmVkUXVhZFN0YXRlLnJlbGVhc2UoKSk7CisgICAg
ICAgIH0KKyAgICB9CisKICAgICBtX3F1YWRMaXN0LmFwcGVuZChDQ1JlbmRlclN1cmZhY2VEcmF3
UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgc3VyZmFjZS0+Y29udGVudFJlY3Qo
KSwgbGF5ZXIsIHN1cmZhY2VEYW1hZ2VSZWN0KCkpKTsKICAgICBtX3NoYXJlZFF1YWRTdGF0ZUxp
c3QuYXBwZW5kKHNoYXJlZFF1YWRTdGF0ZS5yZWxlYXNlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVu
ZGVyU3VyZmFjZS5jcHAKaW5kZXggMzYzYjVlODBlOTJmMTI5OTk4ODAwZWMwNzUwYmFjYTEyZGJh
ZDM1NC4uNDI4OGJjYmIxNmJiZjQ3MmVkZTE2NjQyMzA2ZTk3YmUxNzlhNDQ1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJT
dXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1JlbmRlclN1cmZhY2UuY3BwCkBAIC0yNjgsNiArMjY4LDExIEBAIGludCBDQ1JlbmRl
clN1cmZhY2U6Om93bmluZ0xheWVySWQoKSBjb25zdAogICAgIHJldHVybiBtX293bmluZ0xheWVy
ID8gbV9vd25pbmdMYXllci0+aWQoKSA6IDA7CiB9CiAKK2Jvb2wgQ0NSZW5kZXJTdXJmYWNlOjpo
YXNSZXBsaWNhKCkKK3sKKyAgICByZXR1cm4gbV9vd25pbmdMYXllci0+cmVwbGljYUxheWVyKCk7
Cit9CisKIHZvaWQgQ0NSZW5kZXJTdXJmYWNlOjpzZXRDbGlwUmVjdChjb25zdCBJbnRSZWN0JiBj
bGlwUmVjdCkKIHsKICAgICBpZiAobV9jbGlwUmVjdCA9PSBjbGlwUmVjdCkKQEAgLTMxMSw1ICsz
MTYsMTEgQEAgUGFzc093blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gQ0NSZW5kZXJTdXJmYWNlOjpj
cmVhdGVTaGFyZWRRdWFkU3RhdGUoKSBjb25zdAogICAgIHJldHVybiBDQ1NoYXJlZFF1YWRTdGF0
ZTo6Y3JlYXRlKG9yaWdpblRyYW5zZm9ybSgpLCBkcmF3VHJhbnNmb3JtKCksIGNvbnRlbnRSZWN0
KCksIGNsaXBSZWN0KCksIGRyYXdPcGFjaXR5KCksIGlzT3BhcXVlKTsKIH0KIAorUGFzc093blB0
cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gQ0NSZW5kZXJTdXJmYWNlOjpjcmVhdGVSZXBsaWNhU2hhcmVk
UXVhZFN0YXRlKCkgY29uc3QKK3sKKyAgICBib29sIGlzT3BhcXVlID0gZmFsc2U7CisgICAgcmV0
dXJuIENDU2hhcmVkUXVhZFN0YXRlOjpjcmVhdGUocmVwbGljYU9yaWdpblRyYW5zZm9ybSgpLCBy
ZXBsaWNhRHJhd1RyYW5zZm9ybSgpLCBjb250ZW50UmVjdCgpLCBjbGlwUmVjdCgpLCBkcmF3T3Bh
Y2l0eSgpLCBpc09wYXF1ZSk7Cit9CisKIH0KICNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5oCmluZGV4IGYyNmJkNGUzMjdjZDFl
YmIxMWViNTlkYTJhMzU3YWI4OGMyYWUzNmUuLjlmNzE0YzVjMDgwM2E3M2Y5M2E0M2EyOWYxY2Mw
NWMwN2QxOTNjOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFjZS5oCkBAIC0xMjYsNiArMTI2
LDggQEAgcHVibGljOgogCiAgICAgaW50IG93bmluZ0xheWVySWQoKSBjb25zdDsKIAorICAgIGJv
b2wgaGFzUmVwbGljYSgpOworCiAgICAgdm9pZCByZXNldFByb3BlcnR5Q2hhbmdlZEZsYWcoKSB7
IG1fc3VyZmFjZVByb3BlcnR5Q2hhbmdlZCA9IGZhbHNlOyB9CiAgICAgYm9vbCBzdXJmYWNlUHJv
cGVydHlDaGFuZ2VkKCkgY29uc3Q7CiAgICAgYm9vbCBzdXJmYWNlUHJvcGVydHlDaGFuZ2VkT25s
eUZyb21EZXNjZW5kYW50KCkgY29uc3Q7CkBAIC0xMzMsNiArMTM1LDcgQEAgcHVibGljOgogICAg
IENDRGFtYWdlVHJhY2tlciogZGFtYWdlVHJhY2tlcigpIGNvbnN0IHsgcmV0dXJuIG1fZGFtYWdl
VHJhY2tlci5nZXQoKTsgfQogCiAgICAgUGFzc093blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gY3Jl
YXRlU2hhcmVkUXVhZFN0YXRlKCkgY29uc3Q7CisgICAgUGFzc093blB0cjxDQ1NoYXJlZFF1YWRT
dGF0ZT4gY3JlYXRlUmVwbGljYVNoYXJlZFF1YWRTdGF0ZSgpIGNvbnN0OwogCiBwcml2YXRlOgog
ICAgIHZvaWQgZHJhd0xheWVyKExheWVyUmVuZGVyZXJDaHJvbWl1bSosIENDTGF5ZXJJbXBsKiwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBTa0JpdG1hcCYgZmlsdGVyQml0bWFw
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGlsZWRMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKaW5kZXggM2Y3YjBiM2FjMjE5YTc2
MDc3NWE1ZWJmMDAxOGRmZDg5NDIzNzc3OS4uMzQ0NDk3YzFlZmQyNzllOWIxZGIzY2M2ODRmMjRi
MWEyMmNlZDU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKQEAgLTQyLDYg
KzQyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgY29uc3QgaW50IGRlYnVnVGls
ZUJvcmRlcldpZHRoID0gMTsKIHN0YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQWxwaGEg
PSAxMDA7CitzdGF0aWMgY29uc3QgaW50IGRlYnVnVGlsZUJvcmRlck1pc3NpbmdUaWxlUmVkID0g
MjU1Oworc3RhdGljIGNvbnN0IGludCBkZWJ1Z1RpbGVCb3JkZXJNaXNzaW5nVGlsZUdyZWVuID0g
MDsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyTWlzc2luZ1RpbGVCbHVlID0gMDsK
IAogY2xhc3MgTWFuYWdlZFRleHR1cmU7CiAKQEAgLTE1MCw2ICsxNTMsMTAgQEAgdm9pZCBDQ1Rp
bGVkTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YWRDdWxsZXImIHF1YWRMaXN0LCBjb25zdCBD
Q1NoYXJlZFF1YWRTdGEKIAogICAgICAgICAgICAgaWYgKCF0aWxlIHx8ICF0aWxlLT50ZXh0dXJl
SWQoKSkgewogICAgICAgICAgICAgICAgIHVzZWRDaGVja2VyYm9hcmQgfD0gcXVhZExpc3QuYXBw
ZW5kKENDU29saWRDb2xvckRyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCB0aWxlUmVj
dCwgYmFja2dyb3VuZENvbG9yKCkpKTsKKyAgICAgICAgICAgICAgICBpZiAoaGFzRGVidWdCb3Jk
ZXJzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgQ29sb3IgY29sb3IoZGVidWdUaWxlQm9yZGVy
TWlzc2luZ1RpbGVSZWQsIGRlYnVnVGlsZUJvcmRlck1pc3NpbmdUaWxlR3JlZW4sIGRlYnVnVGls
ZUJvcmRlck1pc3NpbmdUaWxlQmx1ZSwgZGVidWdUaWxlQm9yZGVyQWxwaGEpOworICAgICAgICAg
ICAgICAgICAgICBxdWFkTGlzdC5hcHBlbmQoQ0NEZWJ1Z0JvcmRlckRyYXdRdWFkOjpjcmVhdGUo
c2hhcmVkUXVhZFN0YXRlLCB0aWxlUmVjdCwgY29sb3IsIGRlYnVnVGlsZUJvcmRlcldpZHRoKSk7
CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgfQogCkBAIC0xNzEsMTMgKzE3OCwxMyBAQCB2b2lkIENDVGlsZWRMYXllckltcGw6OmFwcGVu
ZFF1YWRzKENDUXVhZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YQogICAg
ICAgICAgICAgYm9vbCByaWdodEVkZ2VBQSA9IGkgPT0gbV90aWxlci0+bnVtVGlsZXNYKCkgLSAx
ICYmIHVzZUFBOwogICAgICAgICAgICAgYm9vbCBib3R0b21FZGdlQUEgPSBqID09IG1fdGlsZXIt
Pm51bVRpbGVzWSgpIC0gMSAmJiB1c2VBQTsKIAotICAgICAgICAgICAgY29uc3QgR0MzRGludCB0
ZXh0dXJlRmlsdGVyID0gbV90aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCkgPyBHcmFwaGljc0NvbnRl
eHQzRDo6TElORUFSIDogR3JhcGhpY3NDb250ZXh0M0Q6Ok5FQVJFU1Q7Ci0gICAgICAgICAgICBx
dWFkTGlzdC5hcHBlbmQoQ0NUaWxlRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIHRp
bGVSZWN0LCB0aWxlT3BhcXVlUmVjdCwgdGlsZS0+dGV4dHVyZUlkKCksIHRleHR1cmVPZmZzZXQs
IHRleHR1cmVTaXplLCB0ZXh0dXJlRmlsdGVyLCBjb250ZW50c1N3aXp6bGVkKCksIGxlZnRFZGdl
QUEsIHRvcEVkZ2VBQSwgcmlnaHRFZGdlQUEsIGJvdHRvbUVkZ2VBQSkpOwotCiAgICAgICAgICAg
ICBpZiAoaGFzRGVidWdCb3JkZXJzKCkpIHsKICAgICAgICAgICAgICAgICBDb2xvciBjb2xvcihk
ZWJ1Z0JvcmRlckNvbG9yKCkucmVkKCksIGRlYnVnQm9yZGVyQ29sb3IoKS5ncmVlbigpLCBkZWJ1
Z0JvcmRlckNvbG9yKCkuYmx1ZSgpLCBkZWJ1Z1RpbGVCb3JkZXJBbHBoYSk7CiAgICAgICAgICAg
ICAgICAgcXVhZExpc3QuYXBwZW5kKENDRGVidWdCb3JkZXJEcmF3UXVhZDo6Y3JlYXRlKHNoYXJl
ZFF1YWRTdGF0ZSwgdGlsZVJlY3QsIGNvbG9yLCBkZWJ1Z1RpbGVCb3JkZXJXaWR0aCkpOwogICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBjb25zdCBHQzNEaW50IHRleHR1cmVGaWx0ZXIgPSBt
X3RpbGVyLT5oYXNCb3JkZXJUZXhlbHMoKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIgOiBH
cmFwaGljc0NvbnRleHQzRDo6TkVBUkVTVDsKKyAgICAgICAgICAgIHF1YWRMaXN0LmFwcGVuZChD
Q1RpbGVEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgdGlsZVJlY3QsIHRpbGVPcGFx
dWVSZWN0LCB0aWxlLT50ZXh0dXJlSWQoKSwgdGV4dHVyZU9mZnNldCwgdGV4dHVyZVNpemUsIHRl
eHR1cmVGaWx0ZXIsIGNvbnRlbnRzU3dpenpsZWQoKSwgbGVmdEVkZ2VBQSwgdG9wRWRnZUFBLCBy
aWdodEVkZ2VBQSwgYm90dG9tRWRnZUFBKSk7CiAgICAgICAgIH0KICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133539</attachid>
            <date>2012-03-23 12:47:40 -0700</date>
            <delta_ts>2012-03-23 13:11:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82071-20120323154739.patch</filename>
            <type>text/plain</type>
            <size>9617</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWIwOTk4ZDA4MzQ1MDI5
MDhiY2I1ZjM4OGI0NGVmNzYzNmU1NzAxMS4uNjIzMzJmNmUwNGJmY2YzZGM4MDdiZGU5OGFhN2Y4
ZDJjZjgyZWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAzLTIzICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gSW1w
cm92ZWQgY29tcG9zaXRlZCBkZWJ1ZyBib3JkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjA3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgcHJvYmxlbSB3aXRoIG1pc3NpbmcgZGVidWcg
Ym9yZGVycy4gU2luY2Ugd2UgYXBwZW5kIHF1YWRzCisgICAgICAgIHRvIHRoZSBsaXN0IGZyb250
IHRvIGJhY2sgbm93LCB3ZSBkcmF3IHRoZSBxdWFkcyBpbiB0aGUgbGlzdCBmcm9tCisgICAgICAg
IGJhY2sgdG8gZnJvbnQgb2YgdGhlIGxpc3QuIFdoaWNoIG1lYW5zIGlmIHRoZSBkZWJ1ZyBxdWFk
IGlzIGFkZGVkCisgICAgICAgIGFmdGVyIHRoZSBsYXllciBpdCBpcyBkcmF3aW5nIGFyb3VuZCwg
dGhlIGxheWVyIGNhbiBkcmF3IG92ZXIgdG9wCisgICAgICAgIG9mIGl0cyBkZWJ1ZyBxdWFkLiBS
ZXZlcnNlIHRoZSBvcmRlcmluZyB3aGVuIGFwcGVuZGluZyB0byBmaXggaXQuCisKKyAgICAgICAg
TWFrZSB0aGUgYm9yZGVyIHJlZCBhcm91bmQgdGlsZXMgdGhhdCBhcmUgY2hlY2tlcmJvYXJkZWQu
IE1pc3NpbmcKKyAgICAgICAgdGlsZXMgaW4gbm9uLXJvb3QgbGF5ZXJzIGFyZSBkcmF3biBjbGVh
ciwgc28gdGhpcyBtYWtlcyB0aGVtIG1vcmUKKyAgICAgICAgdmlzaWJsZS4KKworICAgICAgICBQ
dXQgYSBibHVlIGJvcmRlciBhcm91bmQgZWFjaCByZW5kZXIgc3VyZmFjZSwgYW5kIGEgcHVycGxl
IGJvcmRlcgorICAgICAgICBvbiB0aGVpciByZXBsaWNhcy4KKworICAgICAgICBObyBuZXcgdGVz
dHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBh
c3MuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclBh
c3M6OmFwcGVuZFF1YWRzRm9yTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5kZXJQYXNz
OjphcHBlbmRRdWFkc0ZvclJlbmRlclN1cmZhY2VMYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNDUmVuZGVyU3VyZmFjZTo6aGFzUmVwbGljYSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDUmVuZGVyU3VyZmFjZTo6Y3JlYXRlUmVwbGljYVNoYXJlZFF1YWRT
dGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJT
dXJmYWNlLmg6CisgICAgICAgIChDQ1JlbmRlclN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RpbGVkTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyk6
CisKIDIwMTItMDMtMjIgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBTa2lwIGZyYW1lcyB3aGVuIGNoZWNrZXJib2FyZGluZyBhbiBhbmlt
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwCmluZGV4IGNmNDdiNmNiODdhNDM3NjAyMTAz
MDdkY2RmOTA2OTA3MWU0YTRlMGMuLmMxNjcxNGE4ZWIzMTE4OGI2NDVjMGIyY2NlMDZmMGQxNDZi
ZDc0OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lu
Y2x1ZGUgImNjL0NDUmVuZGVyUGFzcy5oIgogCiAjaW5jbHVkZSAiY2MvQ0NEYW1hZ2VUcmFja2Vy
LmgiCisjaW5jbHVkZSAiY2MvQ0NEZWJ1Z0JvcmRlckRyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2Mv
Q0NMYXllckltcGwuaCIKICNpbmNsdWRlICJjYy9DQ1F1YWRDdWxsZXIuaCIKICNpbmNsdWRlICJj
Yy9DQ1JlbmRlclN1cmZhY2VEcmF3UXVhZC5oIgpAQCAtMzUsNiArMzYsMTEgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgaW50IGRlYnVnU3VyZmFjZUJvcmRlcldpZHRo
ID0gMjsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdTdXJmYWNlQm9yZGVyQWxwaGEgPSAxMDA7Citz
dGF0aWMgY29uc3QgQ29sb3IgZGVidWdTdXJmYWNlQm9yZGVyQ29sb3IoMCwgMCwgMjU1KTsKK3N0
YXRpYyBjb25zdCBDb2xvciBkZWJ1Z1JlcGxpY2FCb3JkZXJDb2xvcigxNjAsIDAsIDI1NSk7CisK
IFBhc3NPd25QdHI8Q0NSZW5kZXJQYXNzPiBDQ1JlbmRlclBhc3M6OmNyZWF0ZShDQ1JlbmRlclN1
cmZhY2UqIHRhcmdldFN1cmZhY2UpCiB7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1JlbmRl
clBhc3ModGFyZ2V0U3VyZmFjZSkpOwpAQCAtNTEsOCArNTcsOCBAQCB2b2lkIENDUmVuZGVyUGFz
czo6YXBwZW5kUXVhZHNGb3JMYXllcihDQ0xheWVySW1wbCogbGF5ZXIsIENDT2NjbHVzaW9uVHJh
Y2tlckltcAogICAgIENDUXVhZEN1bGxlciBxdWFkQ3VsbGVyKG1fcXVhZExpc3QsIGxheWVyLCBv
Y2NsdXNpb25UcmFja2VyKTsKIAogICAgIE93blB0cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVk
UXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpOwotICAgIGxheWVyLT5h
cHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHVzZWRDaGVja2Vy
Ym9hcmQpOwogICAgIGxheWVyLT5hcHBlbmREZWJ1Z0JvcmRlclF1YWQocXVhZEN1bGxlciwgc2hh
cmVkUXVhZFN0YXRlLmdldCgpKTsKKyAgICBsYXllci0+YXBwZW5kUXVhZHMocXVhZEN1bGxlciwg
c2hhcmVkUXVhZFN0YXRlLmdldCgpLCB1c2VkQ2hlY2tlcmJvYXJkKTsKICAgICBtX3NoYXJlZFF1
YWRTdGF0ZUxpc3QuYXBwZW5kKHNoYXJlZFF1YWRTdGF0ZS5yZWxlYXNlKCkpOwogfQogCkBAIC02
Miw2ICs2OCwxOCBAQCB2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JSZW5kZXJTdXJm
YWNlTGF5ZXIoQ0NMYXllckltcGwqIGxheWVyKQogICAgIC8vIG5vdCBiZSBoYW5kbGVkIHNwZWNp
YWxseSBoZXJlLgogICAgIENDUmVuZGVyU3VyZmFjZSogc3VyZmFjZSA9IGxheWVyLT5yZW5kZXJT
dXJmYWNlKCk7CiAgICAgT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUg
PSBzdXJmYWNlLT5jcmVhdGVTaGFyZWRRdWFkU3RhdGUoKTsKKworICAgIGlmIChsYXllci0+aGFz
RGVidWdCb3JkZXJzKCkpIHsKKyAgICAgICAgQ29sb3IgY29sb3IoZGVidWdTdXJmYWNlQm9yZGVy
Q29sb3IucmVkKCksIGRlYnVnU3VyZmFjZUJvcmRlckNvbG9yLmdyZWVuKCksIGRlYnVnU3VyZmFj
ZUJvcmRlckNvbG9yLmJsdWUoKSwgZGVidWdTdXJmYWNlQm9yZGVyQWxwaGEpOworICAgICAgICBt
X3F1YWRMaXN0LmFwcGVuZChDQ0RlYnVnQm9yZGVyRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFk
U3RhdGUuZ2V0KCksIHN1cmZhY2UtPmNvbnRlbnRSZWN0KCksIGNvbG9yLCBkZWJ1Z1N1cmZhY2VC
b3JkZXJXaWR0aCkpOworICAgICAgICBpZiAoc3VyZmFjZS0+aGFzUmVwbGljYSgpKSB7CisgICAg
ICAgICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJlZFF1YWRTdGF0ZSA9IHN1cmZh
Y2UtPmNyZWF0ZVJlcGxpY2FTaGFyZWRRdWFkU3RhdGUoKTsKKyAgICAgICAgICAgIENvbG9yIGNv
bG9yKGRlYnVnUmVwbGljYUJvcmRlckNvbG9yLnJlZCgpLCBkZWJ1Z1JlcGxpY2FCb3JkZXJDb2xv
ci5ncmVlbigpLCBkZWJ1Z1JlcGxpY2FCb3JkZXJDb2xvci5ibHVlKCksIGRlYnVnU3VyZmFjZUJv
cmRlckFscGhhKTsKKyAgICAgICAgICAgIG1fcXVhZExpc3QuYXBwZW5kKENDRGVidWdCb3JkZXJE
cmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgc3VyZmFjZS0+Y29udGVudFJl
Y3QoKSwgY29sb3IsIGRlYnVnU3VyZmFjZUJvcmRlcldpZHRoKSk7CisgICAgICAgICAgICBtX3No
YXJlZFF1YWRTdGF0ZUxpc3QuYXBwZW5kKHNoYXJlZFF1YWRTdGF0ZS5yZWxlYXNlKCkpOworICAg
ICAgICB9CisgICAgfQorCiAgICAgbV9xdWFkTGlzdC5hcHBlbmQoQ0NSZW5kZXJTdXJmYWNlRHJh
d1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHN1cmZhY2UtPmNvbnRlbnRSZWN0
KCksIGxheWVyLCBzdXJmYWNlRGFtYWdlUmVjdCgpKSk7CiAgICAgbV9zaGFyZWRRdWFkU3RhdGVM
aXN0LmFwcGVuZChzaGFyZWRRdWFkU3RhdGUucmVsZWFzZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVyU3VyZmFj
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Jl
bmRlclN1cmZhY2UuY3BwCmluZGV4IDM2M2I1ZTgwZTkyZjEyOTk5ODgwMGVjMDc1MGJhY2ExMmRi
YWQzNTQuLjQyODhiY2JiMTZiYmY0NzJlZGUxNjY0MjMwNmU5N2JlMTc5YTQ0NWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVuZGVy
U3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmNwcApAQCAtMjY4LDYgKzI2OCwxMSBAQCBpbnQgQ0NSZW5k
ZXJTdXJmYWNlOjpvd25pbmdMYXllcklkKCkgY29uc3QKICAgICByZXR1cm4gbV9vd25pbmdMYXll
ciA/IG1fb3duaW5nTGF5ZXItPmlkKCkgOiAwOwogfQogCitib29sIENDUmVuZGVyU3VyZmFjZTo6
aGFzUmVwbGljYSgpCit7CisgICAgcmV0dXJuIG1fb3duaW5nTGF5ZXItPnJlcGxpY2FMYXllcigp
OworfQorCiB2b2lkIENDUmVuZGVyU3VyZmFjZTo6c2V0Q2xpcFJlY3QoY29uc3QgSW50UmVjdCYg
Y2xpcFJlY3QpCiB7CiAgICAgaWYgKG1fY2xpcFJlY3QgPT0gY2xpcFJlY3QpCkBAIC0zMTEsNSAr
MzE2LDExIEBAIFBhc3NPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IENDUmVuZGVyU3VyZmFjZTo6
Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gQ0NTaGFyZWRRdWFkU3Rh
dGU6OmNyZWF0ZShvcmlnaW5UcmFuc2Zvcm0oKSwgZHJhd1RyYW5zZm9ybSgpLCBjb250ZW50UmVj
dCgpLCBjbGlwUmVjdCgpLCBkcmF3T3BhY2l0eSgpLCBpc09wYXF1ZSk7CiB9CiAKK1Bhc3NPd25Q
dHI8Q0NTaGFyZWRRdWFkU3RhdGU+IENDUmVuZGVyU3VyZmFjZTo6Y3JlYXRlUmVwbGljYVNoYXJl
ZFF1YWRTdGF0ZSgpIGNvbnN0Cit7CisgICAgYm9vbCBpc09wYXF1ZSA9IGZhbHNlOworICAgIHJl
dHVybiBDQ1NoYXJlZFF1YWRTdGF0ZTo6Y3JlYXRlKHJlcGxpY2FPcmlnaW5UcmFuc2Zvcm0oKSwg
cmVwbGljYURyYXdUcmFuc2Zvcm0oKSwgY29udGVudFJlY3QoKSwgY2xpcFJlY3QoKSwgZHJhd09w
YWNpdHkoKSwgaXNPcGFxdWUpOworfQorCiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NP
TVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaAppbmRleCBmMjZiZDRlMzI3Y2Qx
ZWJiMTFlYjU5ZGEyYTM1N2FiODhjMmFlMzZlLi45ZjcxNGM1YzA4MDNhNzNmOTNhNDNhMjlmMWNj
MDVjMDdkMTkzYzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaApAQCAtMTI2LDYgKzEy
Niw4IEBAIHB1YmxpYzoKIAogICAgIGludCBvd25pbmdMYXllcklkKCkgY29uc3Q7CiAKKyAgICBi
b29sIGhhc1JlcGxpY2EoKTsKKwogICAgIHZvaWQgcmVzZXRQcm9wZXJ0eUNoYW5nZWRGbGFnKCkg
eyBtX3N1cmZhY2VQcm9wZXJ0eUNoYW5nZWQgPSBmYWxzZTsgfQogICAgIGJvb2wgc3VyZmFjZVBy
b3BlcnR5Q2hhbmdlZCgpIGNvbnN0OwogICAgIGJvb2wgc3VyZmFjZVByb3BlcnR5Q2hhbmdlZE9u
bHlGcm9tRGVzY2VuZGFudCgpIGNvbnN0OwpAQCAtMTMzLDYgKzEzNSw3IEBAIHB1YmxpYzoKICAg
ICBDQ0RhbWFnZVRyYWNrZXIqIGRhbWFnZVRyYWNrZXIoKSBjb25zdCB7IHJldHVybiBtX2RhbWFn
ZVRyYWNrZXIuZ2V0KCk7IH0KIAogICAgIFBhc3NPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IGNy
ZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpIGNvbnN0OworICAgIFBhc3NPd25QdHI8Q0NTaGFyZWRRdWFk
U3RhdGU+IGNyZWF0ZVJlcGxpY2FTaGFyZWRRdWFkU3RhdGUoKSBjb25zdDsKIAogcHJpdmF0ZToK
ICAgICB2b2lkIGRyYXdMYXllcihMYXllclJlbmRlcmVyQ2hyb21pdW0qLCBDQ0xheWVySW1wbCos
IGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgU2tCaXRtYXAmIGZpbHRlckJpdG1h
cCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwCmluZGV4IDNmN2IwYjNhYzIxOWE3
NjA3NzVhNWViZjAwMThkZmQ4OTQyMzc3NzkuLjFlMjA4ZTFiMTQ3MGZkMTY1MmM3NjA4MmY4N2Vk
NDg4ZWU0NDAyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwCkBAIC00Miw2
ICs0Miw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RhdGljIGNvbnN0IGludCBkZWJ1Z1Rp
bGVCb3JkZXJXaWR0aCA9IDE7CiBzdGF0aWMgY29uc3QgaW50IGRlYnVnVGlsZUJvcmRlckFscGhh
ID0gMTAwOworc3RhdGljIGNvbnN0IENvbG9yIGRlYnVnVGlsZUJvcmRlckNvbG9yKDgwLCAyMDAs
IDIwMCk7CitzdGF0aWMgY29uc3QgQ29sb3IgZGVidWdUaWxlQm9yZGVyTWlzc2luZ1RpbGVDb2xv
cigyNTUsIDAsIDApOwogCiBjbGFzcyBNYW5hZ2VkVGV4dHVyZTsKIApAQCAtMTM3LDYgKzEzOSwy
MyBAQCB2b2lkIENDVGlsZWRMYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVhZEN1bGxlciYgcXVh
ZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YQogCiAgICAgaW50IGxlZnQsIHRvcCwgcmlnaHQs
IGJvdHRvbTsKICAgICBtX3RpbGVyLT5sYXllclJlY3RUb1RpbGVJbmRpY2VzKGxheWVyUmVjdCwg
bGVmdCwgdG9wLCByaWdodCwgYm90dG9tKTsKKworICAgIGlmIChoYXNEZWJ1Z0JvcmRlcnMoKSkg
eworICAgICAgICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJvdHRvbTsgKytqKSB7CisgICAgICAg
ICAgICBmb3IgKGludCBpID0gbGVmdDsgaSA8PSByaWdodDsgKytpKSB7CisgICAgICAgICAgICAg
ICAgRHJhd2FibGVUaWxlKiB0aWxlID0gdGlsZUF0KGksIGopOworICAgICAgICAgICAgICAgIElu
dFJlY3QgdGlsZVJlY3QgPSBtX3RpbGVyLT50aWxlQm91bmRzKGksIGopOworICAgICAgICAgICAg
ICAgIENvbG9yIGJvcmRlckNvbG9yOworCisgICAgICAgICAgICAgICAgaWYgKCF0aWxlIHx8ICF0
aWxlLT50ZXh0dXJlSWQoKSkKKyAgICAgICAgICAgICAgICAgICAgYm9yZGVyQ29sb3IgPSBDb2xv
cihkZWJ1Z1RpbGVCb3JkZXJNaXNzaW5nVGlsZUNvbG9yLnJlZCgpLCBkZWJ1Z1RpbGVCb3JkZXJN
aXNzaW5nVGlsZUNvbG9yLmdyZWVuKCksIGRlYnVnVGlsZUJvcmRlck1pc3NpbmdUaWxlQ29sb3Iu
Ymx1ZSgpLCBkZWJ1Z1RpbGVCb3JkZXJBbHBoYSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICBib3JkZXJDb2xvciA9IENvbG9yKGRlYnVnVGlsZUJvcmRlckNvbG9y
LnJlZCgpLCBkZWJ1Z1RpbGVCb3JkZXJDb2xvci5ncmVlbigpLCBkZWJ1Z1RpbGVCb3JkZXJDb2xv
ci5ibHVlKCksIGRlYnVnVGlsZUJvcmRlckFscGhhKTsKKyAgICAgICAgICAgICAgICBxdWFkTGlz
dC5hcHBlbmQoQ0NEZWJ1Z0JvcmRlckRyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCB0
aWxlUmVjdCwgYm9yZGVyQ29sb3IsIGRlYnVnVGlsZUJvcmRlcldpZHRoKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKICAgICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJvdHRv
bTsgKytqKSB7CiAgICAgICAgIGZvciAoaW50IGkgPSBsZWZ0OyBpIDw9IHJpZ2h0OyArK2kpIHsK
ICAgICAgICAgICAgIERyYXdhYmxlVGlsZSogdGlsZSA9IHRpbGVBdChpLCBqKTsKQEAgLTE3Mywx
MSArMTkyLDYgQEAgdm9pZCBDQ1RpbGVkTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YWRDdWxs
ZXImIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1YWRTdGEKIAogICAgICAgICAgICAgY29uc3Qg
R0MzRGludCB0ZXh0dXJlRmlsdGVyID0gbV90aWxlci0+aGFzQm9yZGVyVGV4ZWxzKCkgPyBHcmFw
aGljc0NvbnRleHQzRDo6TElORUFSIDogR3JhcGhpY3NDb250ZXh0M0Q6Ok5FQVJFU1Q7CiAgICAg
ICAgICAgICBxdWFkTGlzdC5hcHBlbmQoQ0NUaWxlRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFk
U3RhdGUsIHRpbGVSZWN0LCB0aWxlT3BhcXVlUmVjdCwgdGlsZS0+dGV4dHVyZUlkKCksIHRleHR1
cmVPZmZzZXQsIHRleHR1cmVTaXplLCB0ZXh0dXJlRmlsdGVyLCBjb250ZW50c1N3aXp6bGVkKCks
IGxlZnRFZGdlQUEsIHRvcEVkZ2VBQSwgcmlnaHRFZGdlQUEsIGJvdHRvbUVkZ2VBQSkpOwotCi0g
ICAgICAgICAgICBpZiAoaGFzRGVidWdCb3JkZXJzKCkpIHsKLSAgICAgICAgICAgICAgICBDb2xv
ciBjb2xvcihkZWJ1Z0JvcmRlckNvbG9yKCkucmVkKCksIGRlYnVnQm9yZGVyQ29sb3IoKS5ncmVl
bigpLCBkZWJ1Z0JvcmRlckNvbG9yKCkuYmx1ZSgpLCBkZWJ1Z1RpbGVCb3JkZXJBbHBoYSk7Ci0g
ICAgICAgICAgICAgICAgcXVhZExpc3QuYXBwZW5kKENDRGVidWdCb3JkZXJEcmF3UXVhZDo6Y3Jl
YXRlKHNoYXJlZFF1YWRTdGF0ZSwgdGlsZVJlY3QsIGNvbG9yLCBkZWJ1Z1RpbGVCb3JkZXJXaWR0
aCkpOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133545</attachid>
            <date>2012-03-23 13:11:12 -0700</date>
            <delta_ts>2012-03-23 14:46:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82071-20120323161110.patch</filename>
            <type>text/plain</type>
            <size>9988</size>
            <attacher name="Dana Jansens">danakj</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWIwOTk4ZDA4MzQ1MDI5
MDhiY2I1ZjM4OGI0NGVmNzYzNmU1NzAxMS4uNjIzMzJmNmUwNGJmY2YzZGM4MDdiZGU5OGFhN2Y4
ZDJjZjgyZWIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAzLTIzICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gSW1w
cm92ZWQgY29tcG9zaXRlZCBkZWJ1ZyBib3JkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjA3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgcHJvYmxlbSB3aXRoIG1pc3NpbmcgZGVidWcg
Ym9yZGVycy4gU2luY2Ugd2UgYXBwZW5kIHF1YWRzCisgICAgICAgIHRvIHRoZSBsaXN0IGZyb250
IHRvIGJhY2sgbm93LCB3ZSBkcmF3IHRoZSBxdWFkcyBpbiB0aGUgbGlzdCBmcm9tCisgICAgICAg
IGJhY2sgdG8gZnJvbnQgb2YgdGhlIGxpc3QuIFdoaWNoIG1lYW5zIGlmIHRoZSBkZWJ1ZyBxdWFk
IGlzIGFkZGVkCisgICAgICAgIGFmdGVyIHRoZSBsYXllciBpdCBpcyBkcmF3aW5nIGFyb3VuZCwg
dGhlIGxheWVyIGNhbiBkcmF3IG92ZXIgdG9wCisgICAgICAgIG9mIGl0cyBkZWJ1ZyBxdWFkLiBS
ZXZlcnNlIHRoZSBvcmRlcmluZyB3aGVuIGFwcGVuZGluZyB0byBmaXggaXQuCisKKyAgICAgICAg
TWFrZSB0aGUgYm9yZGVyIHJlZCBhcm91bmQgdGlsZXMgdGhhdCBhcmUgY2hlY2tlcmJvYXJkZWQu
IE1pc3NpbmcKKyAgICAgICAgdGlsZXMgaW4gbm9uLXJvb3QgbGF5ZXJzIGFyZSBkcmF3biBjbGVh
ciwgc28gdGhpcyBtYWtlcyB0aGVtIG1vcmUKKyAgICAgICAgdmlzaWJsZS4KKworICAgICAgICBQ
dXQgYSBibHVlIGJvcmRlciBhcm91bmQgZWFjaCByZW5kZXIgc3VyZmFjZSwgYW5kIGEgcHVycGxl
IGJvcmRlcgorICAgICAgICBvbiB0aGVpciByZXBsaWNhcy4KKworICAgICAgICBObyBuZXcgdGVz
dHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBh
c3MuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1JlbmRlclBh
c3M6OmFwcGVuZFF1YWRzRm9yTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NSZW5kZXJQYXNz
OjphcHBlbmRRdWFkc0ZvclJlbmRlclN1cmZhY2VMYXllcik6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNDUmVuZGVyU3VyZmFjZTo6aGFzUmVwbGljYSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDUmVuZGVyU3VyZmFjZTo6Y3JlYXRlUmVwbGljYVNoYXJlZFF1YWRT
dGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJT
dXJmYWNlLmg6CisgICAgICAgIChDQ1JlbmRlclN1cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RpbGVkTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyk6
CisKIDIwMTItMDMtMjIgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBTa2lwIGZyYW1lcyB3aGVuIGNoZWNrZXJib2FyZGluZyBhbiBhbmlt
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1JlbmRlclBhc3MuY3BwCmluZGV4IGNmNDdiNmNiODdhNDM3NjAyMTAz
MDdkY2RmOTA2OTA3MWU0YTRlMGMuLjE3MDRhNjE2ZDViMzEzNGM5YWM5YTg0NjFkYThhNGRiMmZm
MTBlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUmVuZGVyUGFzcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJQYXNzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lu
Y2x1ZGUgImNjL0NDUmVuZGVyUGFzcy5oIgogCiAjaW5jbHVkZSAiY2MvQ0NEYW1hZ2VUcmFja2Vy
LmgiCisjaW5jbHVkZSAiY2MvQ0NEZWJ1Z0JvcmRlckRyYXdRdWFkLmgiCiAjaW5jbHVkZSAiY2Mv
Q0NMYXllckltcGwuaCIKICNpbmNsdWRlICJjYy9DQ1F1YWRDdWxsZXIuaCIKICNpbmNsdWRlICJj
Yy9DQ1JlbmRlclN1cmZhY2VEcmF3UXVhZC5oIgpAQCAtMzUsNiArMzYsMTUgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitzdGF0aWMgY29uc3QgaW50IGRlYnVnU3VyZmFjZUJvcmRlcldpZHRo
ID0gMjsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdTdXJmYWNlQm9yZGVyQWxwaGEgPSAxMDA7Citz
dGF0aWMgY29uc3QgaW50IGRlYnVnU3VyZmFjZUJvcmRlckNvbG9yUmVkID0gMDsKK3N0YXRpYyBj
b25zdCBpbnQgZGVidWdTdXJmYWNlQm9yZGVyQ29sb3JHcmVlbiA9IDA7CitzdGF0aWMgY29uc3Qg
aW50IGRlYnVnU3VyZmFjZUJvcmRlckNvbG9yQmx1ZSA9IDI1NTsKK3N0YXRpYyBjb25zdCBpbnQg
ZGVidWdSZXBsaWNhQm9yZGVyQ29sb3JSZWQgPSAxNjA7CitzdGF0aWMgY29uc3QgaW50IGRlYnVn
UmVwbGljYUJvcmRlckNvbG9yR3JlZW4gPSAwOworc3RhdGljIGNvbnN0IGludCBkZWJ1Z1JlcGxp
Y2FCb3JkZXJDb2xvckJsdWUgPSAyNTU7CisKIFBhc3NPd25QdHI8Q0NSZW5kZXJQYXNzPiBDQ1Jl
bmRlclBhc3M6OmNyZWF0ZShDQ1JlbmRlclN1cmZhY2UqIHRhcmdldFN1cmZhY2UpCiB7CiAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBDQ1JlbmRlclBhc3ModGFyZ2V0U3VyZmFjZSkpOwpAQCAtNTEs
OCArNjEsOCBAQCB2b2lkIENDUmVuZGVyUGFzczo6YXBwZW5kUXVhZHNGb3JMYXllcihDQ0xheWVy
SW1wbCogbGF5ZXIsIENDT2NjbHVzaW9uVHJhY2tlckltcAogICAgIENDUXVhZEN1bGxlciBxdWFk
Q3VsbGVyKG1fcXVhZExpc3QsIGxheWVyLCBvY2NsdXNpb25UcmFja2VyKTsKIAogICAgIE93blB0
cjxDQ1NoYXJlZFF1YWRTdGF0ZT4gc2hhcmVkUXVhZFN0YXRlID0gbGF5ZXItPmNyZWF0ZVNoYXJl
ZFF1YWRTdGF0ZSgpOwotICAgIGxheWVyLT5hcHBlbmRRdWFkcyhxdWFkQ3VsbGVyLCBzaGFyZWRR
dWFkU3RhdGUuZ2V0KCksIHVzZWRDaGVja2VyYm9hcmQpOwogICAgIGxheWVyLT5hcHBlbmREZWJ1
Z0JvcmRlclF1YWQocXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpKTsKKyAgICBsYXll
ci0+YXBwZW5kUXVhZHMocXVhZEN1bGxlciwgc2hhcmVkUXVhZFN0YXRlLmdldCgpLCB1c2VkQ2hl
Y2tlcmJvYXJkKTsKICAgICBtX3NoYXJlZFF1YWRTdGF0ZUxpc3QuYXBwZW5kKHNoYXJlZFF1YWRT
dGF0ZS5yZWxlYXNlKCkpOwogfQogCkBAIC02Miw2ICs3MiwxOCBAQCB2b2lkIENDUmVuZGVyUGFz
czo6YXBwZW5kUXVhZHNGb3JSZW5kZXJTdXJmYWNlTGF5ZXIoQ0NMYXllckltcGwqIGxheWVyKQog
ICAgIC8vIG5vdCBiZSBoYW5kbGVkIHNwZWNpYWxseSBoZXJlLgogICAgIENDUmVuZGVyU3VyZmFj
ZSogc3VyZmFjZSA9IGxheWVyLT5yZW5kZXJTdXJmYWNlKCk7CiAgICAgT3duUHRyPENDU2hhcmVk
UXVhZFN0YXRlPiBzaGFyZWRRdWFkU3RhdGUgPSBzdXJmYWNlLT5jcmVhdGVTaGFyZWRRdWFkU3Rh
dGUoKTsKKworICAgIGlmIChsYXllci0+aGFzRGVidWdCb3JkZXJzKCkpIHsKKyAgICAgICAgQ29s
b3IgY29sb3IoZGVidWdTdXJmYWNlQm9yZGVyQ29sb3JSZWQsIGRlYnVnU3VyZmFjZUJvcmRlckNv
bG9yR3JlZW4sIGRlYnVnU3VyZmFjZUJvcmRlckNvbG9yQmx1ZSwgZGVidWdTdXJmYWNlQm9yZGVy
QWxwaGEpOworICAgICAgICBtX3F1YWRMaXN0LmFwcGVuZChDQ0RlYnVnQm9yZGVyRHJhd1F1YWQ6
OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHN1cmZhY2UtPmNvbnRlbnRSZWN0KCksIGNv
bG9yLCBkZWJ1Z1N1cmZhY2VCb3JkZXJXaWR0aCkpOworICAgICAgICBpZiAoc3VyZmFjZS0+aGFz
UmVwbGljYSgpKSB7CisgICAgICAgICAgICBPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IHNoYXJl
ZFF1YWRTdGF0ZSA9IHN1cmZhY2UtPmNyZWF0ZVJlcGxpY2FTaGFyZWRRdWFkU3RhdGUoKTsKKyAg
ICAgICAgICAgIENvbG9yIGNvbG9yKGRlYnVnUmVwbGljYUJvcmRlckNvbG9yUmVkLCBkZWJ1Z1Jl
cGxpY2FCb3JkZXJDb2xvckdyZWVuLCBkZWJ1Z1JlcGxpY2FCb3JkZXJDb2xvckJsdWUsIGRlYnVn
U3VyZmFjZUJvcmRlckFscGhhKTsKKyAgICAgICAgICAgIG1fcXVhZExpc3QuYXBwZW5kKENDRGVi
dWdCb3JkZXJEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZS5nZXQoKSwgc3VyZmFjZS0+
Y29udGVudFJlY3QoKSwgY29sb3IsIGRlYnVnU3VyZmFjZUJvcmRlcldpZHRoKSk7CisgICAgICAg
ICAgICBtX3NoYXJlZFF1YWRTdGF0ZUxpc3QuYXBwZW5kKHNoYXJlZFF1YWRTdGF0ZS5yZWxlYXNl
KCkpOworICAgICAgICB9CisgICAgfQorCiAgICAgbV9xdWFkTGlzdC5hcHBlbmQoQ0NSZW5kZXJT
dXJmYWNlRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUuZ2V0KCksIHN1cmZhY2UtPmNv
bnRlbnRSZWN0KCksIGxheWVyLCBzdXJmYWNlRGFtYWdlUmVjdCgpKSk7CiAgICAgbV9zaGFyZWRR
dWFkU3RhdGVMaXN0LmFwcGVuZChzaGFyZWRRdWFkU3RhdGUucmVsZWFzZSgpKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUmVu
ZGVyU3VyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1JlbmRlclN1cmZhY2UuY3BwCmluZGV4IDM2M2I1ZTgwZTkyZjEyOTk5ODgwMGVjMDc1
MGJhY2ExMmRiYWQzNTQuLjQyODhiY2JiMTZiYmY0NzJlZGUxNjY0MjMwNmU5N2JlMTc5YTQ0NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDUmVuZGVyU3VyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmNwcApAQCAtMjY4LDYgKzI2OCwxMSBAQCBp
bnQgQ0NSZW5kZXJTdXJmYWNlOjpvd25pbmdMYXllcklkKCkgY29uc3QKICAgICByZXR1cm4gbV9v
d25pbmdMYXllciA/IG1fb3duaW5nTGF5ZXItPmlkKCkgOiAwOwogfQogCitib29sIENDUmVuZGVy
U3VyZmFjZTo6aGFzUmVwbGljYSgpCit7CisgICAgcmV0dXJuIG1fb3duaW5nTGF5ZXItPnJlcGxp
Y2FMYXllcigpOworfQorCiB2b2lkIENDUmVuZGVyU3VyZmFjZTo6c2V0Q2xpcFJlY3QoY29uc3Qg
SW50UmVjdCYgY2xpcFJlY3QpCiB7CiAgICAgaWYgKG1fY2xpcFJlY3QgPT0gY2xpcFJlY3QpCkBA
IC0zMTEsNSArMzE2LDExIEBAIFBhc3NPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IENDUmVuZGVy
U3VyZmFjZTo6Y3JlYXRlU2hhcmVkUXVhZFN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gQ0NTaGFy
ZWRRdWFkU3RhdGU6OmNyZWF0ZShvcmlnaW5UcmFuc2Zvcm0oKSwgZHJhd1RyYW5zZm9ybSgpLCBj
b250ZW50UmVjdCgpLCBjbGlwUmVjdCgpLCBkcmF3T3BhY2l0eSgpLCBpc09wYXF1ZSk7CiB9CiAK
K1Bhc3NPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IENDUmVuZGVyU3VyZmFjZTo6Y3JlYXRlUmVw
bGljYVNoYXJlZFF1YWRTdGF0ZSgpIGNvbnN0Cit7CisgICAgYm9vbCBpc09wYXF1ZSA9IGZhbHNl
OworICAgIHJldHVybiBDQ1NoYXJlZFF1YWRTdGF0ZTo6Y3JlYXRlKHJlcGxpY2FPcmlnaW5UcmFu
c2Zvcm0oKSwgcmVwbGljYURyYXdUcmFuc2Zvcm0oKSwgY29udGVudFJlY3QoKSwgY2xpcFJlY3Qo
KSwgZHJhd09wYWNpdHkoKSwgaXNPcGFxdWUpOworfQorCiB9CiAjZW5kaWYgLy8gVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NSZW5kZXJTdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaAppbmRleCBmMjZi
ZDRlMzI3Y2QxZWJiMTFlYjU5ZGEyYTM1N2FiODhjMmFlMzZlLi45ZjcxNGM1YzA4MDNhNzNmOTNh
NDNhMjlmMWNjMDVjMDdkMTkzYzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1JlbmRlclN1cmZhY2UuaApAQCAt
MTI2LDYgKzEyNiw4IEBAIHB1YmxpYzoKIAogICAgIGludCBvd25pbmdMYXllcklkKCkgY29uc3Q7
CiAKKyAgICBib29sIGhhc1JlcGxpY2EoKTsKKwogICAgIHZvaWQgcmVzZXRQcm9wZXJ0eUNoYW5n
ZWRGbGFnKCkgeyBtX3N1cmZhY2VQcm9wZXJ0eUNoYW5nZWQgPSBmYWxzZTsgfQogICAgIGJvb2wg
c3VyZmFjZVByb3BlcnR5Q2hhbmdlZCgpIGNvbnN0OwogICAgIGJvb2wgc3VyZmFjZVByb3BlcnR5
Q2hhbmdlZE9ubHlGcm9tRGVzY2VuZGFudCgpIGNvbnN0OwpAQCAtMTMzLDYgKzEzNSw3IEBAIHB1
YmxpYzoKICAgICBDQ0RhbWFnZVRyYWNrZXIqIGRhbWFnZVRyYWNrZXIoKSBjb25zdCB7IHJldHVy
biBtX2RhbWFnZVRyYWNrZXIuZ2V0KCk7IH0KIAogICAgIFBhc3NPd25QdHI8Q0NTaGFyZWRRdWFk
U3RhdGU+IGNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpIGNvbnN0OworICAgIFBhc3NPd25QdHI8Q0NT
aGFyZWRRdWFkU3RhdGU+IGNyZWF0ZVJlcGxpY2FTaGFyZWRRdWFkU3RhdGUoKSBjb25zdDsKIAog
cHJpdmF0ZToKICAgICB2b2lkIGRyYXdMYXllcihMYXllclJlbmRlcmVyQ2hyb21pdW0qLCBDQ0xh
eWVySW1wbCosIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgU2tCaXRtYXAmIGZp
bHRlckJpdG1hcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RpbGVkTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwCmluZGV4IDNmN2Iw
YjNhYzIxOWE3NjA3NzVhNWViZjAwMThkZmQ4OTQyMzc3NzkuLjU2MGUzM2FmMmM3ZTMxMDFmZWM2
ZjQ3ODU2MWE5YjJjYjE5MjhmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3Bw
CkBAIC00Miw2ICs0MiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBp
bnQgZGVidWdUaWxlQm9yZGVyV2lkdGggPSAxOwogc3RhdGljIGNvbnN0IGludCBkZWJ1Z1RpbGVC
b3JkZXJBbHBoYSA9IDEwMDsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQ29sb3JS
ZWQgPSA4MDsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQ29sb3JHcmVlbiA9IDIw
MDsKK3N0YXRpYyBjb25zdCBpbnQgZGVidWdUaWxlQm9yZGVyQ29sb3JCbHVlID0gMjAwOworc3Rh
dGljIGNvbnN0IGludCBkZWJ1Z1RpbGVCb3JkZXJNaXNzaW5nVGlsZUNvbG9yUmVkID0gMjU1Owor
c3RhdGljIGNvbnN0IGludCBkZWJ1Z1RpbGVCb3JkZXJNaXNzaW5nVGlsZUNvbG9yR3JlZW4gPSAw
Oworc3RhdGljIGNvbnN0IGludCBkZWJ1Z1RpbGVCb3JkZXJNaXNzaW5nVGlsZUNvbG9yQmx1ZSA9
IDA7CiAKIGNsYXNzIE1hbmFnZWRUZXh0dXJlOwogCkBAIC0xMzcsNiArMTQzLDIzIEBAIHZvaWQg
Q0NUaWxlZExheWVySW1wbDo6YXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiBxdWFkTGlzdCwgY29u
c3QgQ0NTaGFyZWRRdWFkU3RhCiAKICAgICBpbnQgbGVmdCwgdG9wLCByaWdodCwgYm90dG9tOwog
ICAgIG1fdGlsZXItPmxheWVyUmVjdFRvVGlsZUluZGljZXMobGF5ZXJSZWN0LCBsZWZ0LCB0b3As
IHJpZ2h0LCBib3R0b20pOworCisgICAgaWYgKGhhc0RlYnVnQm9yZGVycygpKSB7CisgICAgICAg
IGZvciAoaW50IGogPSB0b3A7IGogPD0gYm90dG9tOyArK2opIHsKKyAgICAgICAgICAgIGZvciAo
aW50IGkgPSBsZWZ0OyBpIDw9IHJpZ2h0OyArK2kpIHsKKyAgICAgICAgICAgICAgICBEcmF3YWJs
ZVRpbGUqIHRpbGUgPSB0aWxlQXQoaSwgaik7CisgICAgICAgICAgICAgICAgSW50UmVjdCB0aWxl
UmVjdCA9IG1fdGlsZXItPnRpbGVCb3VuZHMoaSwgaik7CisgICAgICAgICAgICAgICAgQ29sb3Ig
Ym9yZGVyQ29sb3I7CisKKyAgICAgICAgICAgICAgICBpZiAoIXRpbGUgfHwgIXRpbGUtPnRleHR1
cmVJZCgpKQorICAgICAgICAgICAgICAgICAgICBib3JkZXJDb2xvciA9IENvbG9yKGRlYnVnVGls
ZUJvcmRlck1pc3NpbmdUaWxlQ29sb3JSZWQsIGRlYnVnVGlsZUJvcmRlck1pc3NpbmdUaWxlQ29s
b3JHcmVlbiwgZGVidWdUaWxlQm9yZGVyTWlzc2luZ1RpbGVDb2xvckJsdWUsIGRlYnVnVGlsZUJv
cmRlckFscGhhKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGJv
cmRlckNvbG9yID0gQ29sb3IoZGVidWdUaWxlQm9yZGVyQ29sb3JSZWQsIGRlYnVnVGlsZUJvcmRl
ckNvbG9yR3JlZW4sIGRlYnVnVGlsZUJvcmRlckNvbG9yQmx1ZSwgZGVidWdUaWxlQm9yZGVyQWxw
aGEpOworICAgICAgICAgICAgICAgIHF1YWRMaXN0LmFwcGVuZChDQ0RlYnVnQm9yZGVyRHJhd1F1
YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIHRpbGVSZWN0LCBib3JkZXJDb2xvciwgZGVidWdU
aWxlQm9yZGVyV2lkdGgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAg
IGZvciAoaW50IGogPSB0b3A7IGogPD0gYm90dG9tOyArK2opIHsKICAgICAgICAgZm9yIChpbnQg
aSA9IGxlZnQ7IGkgPD0gcmlnaHQ7ICsraSkgewogICAgICAgICAgICAgRHJhd2FibGVUaWxlKiB0
aWxlID0gdGlsZUF0KGksIGopOwpAQCAtMTczLDExICsxOTYsNiBAQCB2b2lkIENDVGlsZWRMYXll
ckltcGw6OmFwcGVuZFF1YWRzKENDUXVhZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hhcmVk
UXVhZFN0YQogCiAgICAgICAgICAgICBjb25zdCBHQzNEaW50IHRleHR1cmVGaWx0ZXIgPSBtX3Rp
bGVyLT5oYXNCb3JkZXJUZXhlbHMoKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIgOiBHcmFw
aGljc0NvbnRleHQzRDo6TkVBUkVTVDsKICAgICAgICAgICAgIHF1YWRMaXN0LmFwcGVuZChDQ1Rp
bGVEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgdGlsZVJlY3QsIHRpbGVPcGFxdWVS
ZWN0LCB0aWxlLT50ZXh0dXJlSWQoKSwgdGV4dHVyZU9mZnNldCwgdGV4dHVyZVNpemUsIHRleHR1
cmVGaWx0ZXIsIGNvbnRlbnRzU3dpenpsZWQoKSwgbGVmdEVkZ2VBQSwgdG9wRWRnZUFBLCByaWdo
dEVkZ2VBQSwgYm90dG9tRWRnZUFBKSk7Ci0KLSAgICAgICAgICAgIGlmIChoYXNEZWJ1Z0JvcmRl
cnMoKSkgewotICAgICAgICAgICAgICAgIENvbG9yIGNvbG9yKGRlYnVnQm9yZGVyQ29sb3IoKS5y
ZWQoKSwgZGVidWdCb3JkZXJDb2xvcigpLmdyZWVuKCksIGRlYnVnQm9yZGVyQ29sb3IoKS5ibHVl
KCksIGRlYnVnVGlsZUJvcmRlckFscGhhKTsKLSAgICAgICAgICAgICAgICBxdWFkTGlzdC5hcHBl
bmQoQ0NEZWJ1Z0JvcmRlckRyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCB0aWxlUmVj
dCwgY29sb3IsIGRlYnVnVGlsZUJvcmRlcldpZHRoKSk7Ci0gICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>