<?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>91169</bug_id>
          
          <creation_ts>2012-07-12 17:24:37 -0700</creation_ts>
          <short_desc>Chromium Mac: Add TEXTURE_RECTANGLE_ARB support to CCVideoLayerImpl</short_desc>
          <delta_ts>2012-07-18 13:25:29 -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="Sailesh Agrawal">sail</reporter>
          <assigned_to name="Sailesh Agrawal">sail</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fischman</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>thakis</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>668431</commentid>
    <comment_count>0</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-07-12 17:24:37 -0700</bug_when>
    <thetext>Chromium Mac: Add TEXTURE_RECTANGLE_ARB support to CCVideoLayerImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668447</commentid>
    <comment_count>1</comment_count>
      <attachid>152110</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-07-12 17:38:48 -0700</bug_when>
    <thetext>Created attachment 152110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668449</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-12 17:41:25 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668450</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-12 17:41:45 -0700</bug_when>
    <thetext>Attachment 152110 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platf...&quot; exit_code: 1
Source/WebCore/ChangeLog:22:  Need whitespace between colon and description  [changelog/filechangedescriptionwhitespace] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668457</commentid>
    <comment_count>4</comment_count>
      <attachid>152114</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-07-12 17:48:23 -0700</bug_when>
    <thetext>Created attachment 152114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669072</commentid>
    <comment_count>5</comment_count>
      <attachid>152114</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-07-13 08:37:10 -0700</bug_when>
    <thetext>Comment on attachment 152114
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        No new tests (OOPS!).

You&apos;ll need to add tests or justify why none are possible here.

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:1675
&gt; +const LayerRendererChromium::TextureRectProgramFlip* LayerRendererChromium::textureRectProgramFlip()

bikeshed: s/Flip/Flipped/ ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669292</commentid>
    <comment_count>6</comment_count>
      <attachid>152114</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-07-13 11:31:01 -0700</bug_when>
    <thetext>Comment on attachment 152114
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:1675
&gt;&gt; +const LayerRendererChromium::TextureRectProgramFlip* LayerRendererChromium::textureRectProgramFlip()
&gt; 
&gt; bikeshed: s/Flip/Flipped/ ?

Do we really need another program? Can&apos;t the rect that&apos;s being sent to the shader be adjusted?

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h:204
&gt; -    typedef ProgramBinding&lt;VertexShaderPosTexTransform, FragmentShaderRGBATexRectFlipAlpha&gt; TextureIOSurfaceProgram;
&gt; +    typedef ProgramBinding&lt;VertexShaderPosTexTransform, FragmentShaderRGBATexRectAlpha&gt; TextureRectProgram;
&gt; +    typedef ProgramBinding&lt;VertexShaderPosTexTransform, FragmentShaderRGBATexRectFlipAlpha&gt; TextureRectProgramFlip;

bikshed: I&apos;ll take other suggestions, but I don&apos;t like this renaming.  TextureRect is just too ambiguous, since TextureProgram and TextureProgramFlip take texture rects as uniforms.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:211
&gt; +    case GraphicsContext3D::TEXTURE_2D:
&gt; +    case Extensions3D::TEXTURE_RECTANGLE_ARB: {

Can you reuse the CCIOSurfaceDrawQuad rather than shoehorning this into the CCTextureDrawQuad?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671476</commentid>
    <comment_count>7</comment_count>
      <attachid>152801</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-07-17 12:02:47 -0700</bug_when>
    <thetext>Created attachment 152801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671478</commentid>
    <comment_count>8</comment_count>
      <attachid>152114</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-07-17 12:04:45 -0700</bug_when>
    <thetext>Comment on attachment 152114
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp:1675
&gt;&gt;&gt; +const LayerRendererChromium::TextureRectProgramFlip* LayerRendererChromium::textureRectProgramFlip()
&gt;&gt; 
&gt;&gt; bikeshed: s/Flip/Flipped/ ?
&gt; 
&gt; Do we really need another program? Can&apos;t the rect that&apos;s being sent to the shader be adjusted?

Removed.

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h:204
&gt;&gt; +    typedef ProgramBinding&lt;VertexShaderPosTexTransform, FragmentShaderRGBATexRectFlipAlpha&gt; TextureRectProgramFlip;
&gt; 
&gt; bikshed: I&apos;ll take other suggestions, but I don&apos;t like this renaming.  TextureRect is just too ambiguous, since TextureProgram and TextureProgramFlip take texture rects as uniforms.

Removed.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:211
&gt;&gt; +    case Extensions3D::TEXTURE_RECTANGLE_ARB: {
&gt; 
&gt; Can you reuse the CCIOSurfaceDrawQuad rather than shoehorning this into the CCTextureDrawQuad?

Done. Reused CCIOSurfaceDrawQuad and added a flipped field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671782</commentid>
    <comment_count>9</comment_count>
      <attachid>152801</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-07-17 17:21:00 -0700</bug_when>
    <thetext>Comment on attachment 152801
Patch

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

This patch is much improved.  Thanks for all the changes.  Along with rebasing to get this to apply to ToT, I have one more small change, but then this should be good:

&gt; Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:102
&gt; -    quadList.append(CCIOSurfaceDrawQuad::create(sharedQuadState, quadRect, m_ioSurfaceSize, m_ioSurfaceTextureId));
&gt; +    quadList.append(CCIOSurfaceDrawQuad::create(sharedQuadState, quadRect, m_ioSurfaceSize, m_ioSurfaceTextureId, true));

Ack, boolean parameter trap (http://ariya.ofilabs.com/2011/08/hall-of-api-shame-boolean-trap.html).  Even if you store flipped as a boolean member variable, can you add an enum { Flipped, Unflipped } to the create function signature so it&apos;s obvious what the parameter means at the callsite?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672578</commentid>
    <comment_count>10</comment_count>
      <attachid>153058</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-07-18 11:37:16 -0700</bug_when>
    <thetext>Created attachment 153058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672580</commentid>
    <comment_count>11</comment_count>
      <attachid>152801</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-07-18 11:38:03 -0700</bug_when>
    <thetext>Comment on attachment 152801
Patch

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

Rebased to tip of tree.

&gt;&gt; Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:102
&gt;&gt; +    quadList.append(CCIOSurfaceDrawQuad::create(sharedQuadState, quadRect, m_ioSurfaceSize, m_ioSurfaceTextureId, true));
&gt; 
&gt; Ack, boolean parameter trap (http://ariya.ofilabs.com/2011/08/hall-of-api-shame-boolean-trap.html).  Even if you store flipped as a boolean member variable, can you add an enum { Flipped, Unflipped } to the create function signature so it&apos;s obvious what the parameter means at the callsite?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672583</commentid>
    <comment_count>12</comment_count>
      <attachid>153058</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-07-18 11:40:49 -0700</bug_when>
    <thetext>Comment on attachment 153058
Patch

R=me.  Thanks for that change.  It looks like this still doesn&apos;t apply, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672608</commentid>
    <comment_count>13</comment_count>
      <attachid>153064</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-07-18 12:14:44 -0700</bug_when>
    <thetext>Created attachment 153064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672610</commentid>
    <comment_count>14</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2012-07-18 12:17:34 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 153058 [details])
&gt; R=me.  Thanks for that change.  It looks like this still doesn&apos;t apply, though.

Oops, updated. New patch seems to apply now.
Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672617</commentid>
    <comment_count>15</comment_count>
      <attachid>153064</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-07-18 12:25:02 -0700</bug_when>
    <thetext>Comment on attachment 153064
Patch

R=meagain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672692</commentid>
    <comment_count>16</comment_count>
      <attachid>153064</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 13:25:23 -0700</bug_when>
    <thetext>Comment on attachment 153064
Patch

Clearing flags on attachment: 153064

Committed r123009: &lt;http://trac.webkit.org/changeset/123009&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672693</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 13:25:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152110</attachid>
            <date>2012-07-12 17:38:48 -0700</date>
            <delta_ts>2012-07-12 17:48:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91169-20120712173847.patch</filename>
            <type>text/plain</type>
            <size>18577</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyNTMxKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA3LTEyICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaHJvbWl1bSBNYWM6
IEFkZCBURVhUVVJFX1JFQ1RBTkdMRV9BUkIgc3VwcG9ydCB0byBDQ1ZpZGVvTGF5ZXJJbXBsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTE2OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBh
IHRleHR1cmVUYXJnZXQgZmllbGQgdG8gV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkLgorCisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZC5oOgorICAgICAg
ICAoV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9z
aXRvclRleHR1cmVRdWFkOjp0ZXh0dXJlVGFyZ2V0KToKKwogMjAxMi0wNy0xMSAgQWxleGFuZHJl
IEVsaWFzICA8YWVsaWFzQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBNb3ZlIGNv
bXBvc2l0b3IgcXVhZHMgdG8gUGxhdGZvcm0vY2hyb21pdW0vcHVibGljCkluZGV4OiBTb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclRl
eHR1cmVRdWFkLmgJKHJldmlzaW9uIDEyMjQ1NykKKysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJDb21tb24uaCIKICNpbmNsdWRlICJXZWJDb21wb3Np
dG9yUXVhZC5oIgogI2luY2x1ZGUgIldlYkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIldlYkdyYXBo
aWNzQ29udGV4dDNELmgiCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KICNlbmRpZgpAQCAtNDMsMjYgKzQ0LDI4IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkIDogcHVibGljIFdlYkNvbXBvc2l0
b3JRdWFkIHsKIHB1YmxpYzoKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAgICBzdGF0aWMg
UGFzc093blB0cjxXZWJDb21wb3NpdG9yVGV4dHVyZVF1YWQ+IGNyZWF0ZShjb25zdCBXZWJDb21w
b3NpdG9yU2hhcmVkUXVhZFN0YXRlKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIHVuc2lnbmVk
IHRleHR1cmVJZCwgYm9vbCBwcmVtdWx0aXBsaWVkQWxwaGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdXZSZWN0LCBib29sIGZsaXBwZWQpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkNv
bXBvc2l0b3JUZXh0dXJlUXVhZD4gY3JlYXRlKGNvbnN0IFdlYkNvbXBvc2l0b3JTaGFyZWRRdWFk
U3RhdGUqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgdW5zaWduZWQgdGV4dHVyZUlkLCBib29s
IHByZW11bHRpcGxpZWRBbHBoYSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1dlJlY3QsIGJv
b2wgZmxpcHBlZCwgV0dDM0RlbnVtIHRleHR1cmVUYXJnZXQpOwogICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCB1dlJlY3QoKSBjb25zdCB7IHJldHVybiBtX3V2UmVjdDsgfQogI2VuZGlmCiAKICAgICB1
bnNpZ25lZCB0ZXh0dXJlSWQoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmVJZDsgfQogICAgIGJv
b2wgcHJlbXVsdGlwbGllZEFscGhhKCkgY29uc3QgeyByZXR1cm4gIG1fcHJlbXVsdGlwbGllZEFs
cGhhOyB9CiAgICAgYm9vbCBmbGlwcGVkKCkgY29uc3QgeyByZXR1cm4gbV9mbGlwcGVkOyB9Cisg
ICAgV0dDM0RlbnVtIHRleHR1cmVUYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmVUYXJn
ZXQ7IH0KIAogICAgIHZvaWQgc2V0TmVlZHNCbGVuZGluZygpOwogCiAgICAgc3RhdGljIGNvbnN0
IFdlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZCogbWF0ZXJpYWxDYXN0KGNvbnN0IFdlYkNvbXBvc2l0
b3JRdWFkKik7CiBwcml2YXRlOgogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIFdlYkNv
bXBvc2l0b3JUZXh0dXJlUXVhZChjb25zdCBXZWJLaXQ6OldlYkNvbXBvc2l0b3JTaGFyZWRRdWFk
U3RhdGUqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgdW5zaWduZWQgdGV4dHVyZV9pZCwgYm9v
bCBwcmVtdWx0aXBsaWVkQWxwaGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdXZSZWN0LCBi
b29sIGZsaXBwZWQpOworICAgIFdlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZChjb25zdCBXZWJLaXQ6
OldlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
dW5zaWduZWQgdGV4dHVyZV9pZCwgYm9vbCBwcmVtdWx0aXBsaWVkQWxwaGEsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdXZSZWN0LCBib29sIGZsaXBwZWQsIFdHQzNEZW51bSB0ZXh0dXJlVGFy
Z2V0KTsKICNlbmRpZgogCiAgICAgdW5zaWduZWQgbV90ZXh0dXJlSWQ7CiAgICAgYm9vbCBtX3By
ZW11bHRpcGxpZWRBbHBoYTsKICAgICBXZWJGbG9hdFJlY3QgbV91dlJlY3Q7CiAgICAgYm9vbCBt
X2ZsaXBwZWQ7CisgICAgV0dDM0RlbnVtIG1fdGV4dHVyZVRhcmdldDsKIH07CiAKICNwcmFnbWEg
cGFjayhwb3ApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjI1MzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wNy0x
MiAgU2FpbGVzaCBBZ3Jhd2FsICA8c2FpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2hyb21p
dW0gTWFjOiBBZGQgVEVYVFVSRV9SRUNUQU5HTEVfQVJCIHN1cHBvcnQgdG8gQ0NWaWRlb0xheWVy
SW1wbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEx
NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGV4dGVuZHMgQ0NWaWRlb0xheWVySW1wbCB0byBzdXBwb3J0IFRFWFRVUkVfUkVDVEFOR0xFX0FS
Qi4gVGhpcyB0ZXh0dXJlIHRhcmdldCBpcyB1c2VkIGJ5IHRoZSBNYWMgaGFyZHdhcmUgYWNjZWxl
cmF0ZWQgdmlkZW8gZGVjb2Rlci4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvclRleHR1cmVR
dWFkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvclRleHR1cmVRdWFkOjpjcmVh
dGUpOkFkZGVkIHRleHR1cmVUYXJnZXQgZmllbGQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBv
c2l0b3JUZXh0dXJlUXVhZDo6V2ViQ29tcG9zaXRvclRleHR1cmVRdWFkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3VGV4dHVyZVF1YWQpOkFk
ZGVkIHN1cHBvcnQgZm9yIGRyYXdpbmcgVEVYVFVSRV9SRUNUQU5HTEVfQVJCIHRleHR1cmVzLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3SU9TdXJmYWNlUXVh
ZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnRleHR1cmVSZWN0
UHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6dGV4dHVyZVJlY3RQcm9ncmFtRmxpcCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmNsZWFudXBTaGFyZWRPYmplY3RzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaDpBZGRl
ZCBtX3RleHR1cmVSZWN0UHJvZ3JhbUZsaXAgYW5kIHJlbmFtZWQgbV90ZXh0dXJlSU9TdXJmYWNl
UHJvZ3JhbSB0byBtX3RleHR1cmVSZWN0UHJvZ3JhbS4KKyAgICAgICAgKExheWVyUmVuZGVyZXJD
aHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3Jv
bGxiYXJMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY3JvbGxiYXJMYXllcklt
cGw6OmFwcGVuZFF1YWRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RleHR1cmVMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlTGF5
ZXJJbXBsOjphcHBlbmRRdWFkcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5
ZXJJbXBsOjphcHBlbmRRdWFkcyk6CisKIDIwMTItMDctMTIgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBtX3R5cGUgYW5kIG1faGFzTmFtZUNhY2hlIGZy
b20gSFRNTENvbGxlY3Rpb25DYWNoZUJhc2UgdG8gRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlIGZv
ciBiZXR0ZXIgYml0IHBhY2tpbmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkNvbXBvc2l0b3JUZXh0
dXJlUXVhZC5jcHAJKHJldmlzaW9uIDEyMjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzEsMTcgKzMxLDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotUGFzc093blB0cjxXZWJDb21wb3NpdG9yVGV4dHVyZVF1YWQ+IFdl
YkNvbXBvc2l0b3JUZXh0dXJlUXVhZDo6Y3JlYXRlKGNvbnN0IFdlYktpdDo6V2ViQ29tcG9zaXRv
clNoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVj
dCwgdW5zaWduZWQgdGV4dHVyZUlkLCBib29sIHByZW11bHRpcGxpZWRBbHBoYSwgY29uc3QgRmxv
YXRSZWN0JiB1dlJlY3QsIGJvb2wgZmxpcHBlZCkKK1Bhc3NPd25QdHI8V2ViQ29tcG9zaXRvclRl
eHR1cmVRdWFkPiBXZWJDb21wb3NpdG9yVGV4dHVyZVF1YWQ6OmNyZWF0ZShjb25zdCBXZWJLaXQ6
OldlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50
UmVjdCYgcXVhZFJlY3QsIHVuc2lnbmVkIHRleHR1cmVJZCwgYm9vbCBwcmVtdWx0aXBsaWVkQWxw
aGEsIGNvbnN0IEZsb2F0UmVjdCYgdXZSZWN0LCBib29sIGZsaXBwZWQsIFdHQzNEZW51bSB0ZXh0
dXJlVGFyZ2V0KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViQ29tcG9zaXRvclRleHR1
cmVRdWFkKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIHRleHR1cmVJZCwgcHJlbXVsdGlwbGll
ZEFscGhhLCB1dlJlY3QsIGZsaXBwZWQpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYkNv
bXBvc2l0b3JUZXh0dXJlUXVhZChzaGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCB0ZXh0dXJlSWQs
IHByZW11bHRpcGxpZWRBbHBoYSwgdXZSZWN0LCBmbGlwcGVkLCB0ZXh0dXJlVGFyZ2V0KSk7CiB9
CiAKLVdlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZDo6V2ViQ29tcG9zaXRvclRleHR1cmVRdWFkKGNv
bnN0IFdlYktpdDo6V2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRl
LCBjb25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkLCBib29sIHByZW11
bHRpcGxpZWRBbHBoYSwgY29uc3QgRmxvYXRSZWN0JiB1dlJlY3QsIGJvb2wgZmxpcHBlZCkKK1dl
YkNvbXBvc2l0b3JUZXh0dXJlUXVhZDo6V2ViQ29tcG9zaXRvclRleHR1cmVRdWFkKGNvbnN0IFdl
YktpdDo6V2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25z
dCBJbnRSZWN0JiBxdWFkUmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkLCBib29sIHByZW11bHRpcGxp
ZWRBbHBoYSwgY29uc3QgRmxvYXRSZWN0JiB1dlJlY3QsIGJvb2wgZmxpcHBlZCwgV0dDM0RlbnVt
IHRleHR1cmVUYXJnZXQpCiAgICAgOiBXZWJDb21wb3NpdG9yUXVhZChzaGFyZWRRdWFkU3RhdGUs
IFdlYkNvbXBvc2l0b3JRdWFkOjpUZXh0dXJlQ29udGVudCwgcXVhZFJlY3QpCiAgICAgLCBtX3Rl
eHR1cmVJZCh0ZXh0dXJlSWQpCiAgICAgLCBtX3ByZW11bHRpcGxpZWRBbHBoYShwcmVtdWx0aXBs
aWVkQWxwaGEpCiAgICAgLCBtX3V2UmVjdCh1dlJlY3QpCiAgICAgLCBtX2ZsaXBwZWQoZmxpcHBl
ZCkKKyAgICAsIG1fdGV4dHVyZVRhcmdldCh0ZXh0dXJlVGFyZ2V0KQogewogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hy
b21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDEyMjQ1NykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJD
aHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjQsMTcgKzEwMjQsMjQgQEAgdm9pZCBM
YXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdUZXh0dXJlUQogICAgIEFTU0VSVChDQ1Byb3h5Ojpp
c0ltcGxUaHJlYWQoKSk7CiAKICAgICBUZXhUcmFuc2Zvcm1UZXh0dXJlUHJvZ3JhbUJpbmRpbmcg
YmluZGluZzsKLSAgICBpZiAocXVhZC0+ZmxpcHBlZCgpKQotICAgICAgICBiaW5kaW5nLnNldCh0
ZXh0dXJlUHJvZ3JhbUZsaXAoKSk7Ci0gICAgZWxzZQotICAgICAgICBiaW5kaW5nLnNldCh0ZXh0
dXJlUHJvZ3JhbSgpKTsKKyAgICBpZiAocXVhZC0+dGV4dHVyZVRhcmdldCgpID09IEV4dGVuc2lv
bnMzRDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCKSB7CisgICAgICAgIGlmIChxdWFkLT5mbGlwcGVk
KCkpCisgICAgICAgICAgICBiaW5kaW5nLnNldCh0ZXh0dXJlUmVjdFByb2dyYW1GbGlwKCkpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBiaW5kaW5nLnNldCh0ZXh0dXJlUmVjdFByb2dyYW0o
KSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHF1YWQtPmZsaXBwZWQoKSkKKyAgICAgICAg
ICAgIGJpbmRpbmcuc2V0KHRleHR1cmVQcm9ncmFtRmxpcCgpKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgYmluZGluZy5zZXQodGV4dHVyZVByb2dyYW0oKSk7CisgICAgfQogICAgIEdMQyhj
b250ZXh0KCksIGNvbnRleHQoKS0+dXNlUHJvZ3JhbShiaW5kaW5nLnByb2dyYW1JZCkpOwogICAg
IEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+dW5pZm9ybTFpKGJpbmRpbmcuc2FtcGxlckxvY2F0
aW9uLCAwKSk7CiAgICAgY29uc3QgRmxvYXRSZWN0JiB1dlJlY3QgPSBxdWFkLT51dlJlY3QoKTsK
ICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVuaWZvcm00ZihiaW5kaW5nLnRleFRyYW5z
Zm9ybUxvY2F0aW9uLCB1dlJlY3QueCgpLCB1dlJlY3QueSgpLCB1dlJlY3Qud2lkdGgoKSwgdXZS
ZWN0LmhlaWdodCgpKSk7CiAKICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPmFjdGl2ZVRl
eHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKSk7Ci0gICAgR0xDKGNvbnRleHQoKSwg
Y29udGV4dCgpLT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwgcXVh
ZC0+dGV4dHVyZUlkKCkpKTsKKyAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPmJpbmRUZXh0
dXJlKHF1YWQtPnRleHR1cmVUYXJnZXQoKSwgcXVhZC0+dGV4dHVyZUlkKCkpKTsKIAogICAgIC8v
IEZJWE1FOiBzZXR0aW5nIHRoZSB0ZXh0dXJlIHBhcmFtZXRlcnMgZXZlcnkgdGltZSBpcyByZWR1
bmRhbnQuIE1vdmUgdGhpcyBjb2RlIHNvbWV3aGVyZQogICAgIC8vIHdoZXJlIGl0IHdpbGwgb25s
eSBoYXBwZW4gb25jZSBwZXIgdGV4dHVyZS4KQEAgLTEwNjksNyArMTA3Niw3IEBAIHZvaWQgTGF5
ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3SU9TdXJmYWMKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6
aXNJbXBsVGhyZWFkKCkpOwogICAgIFRleFRyYW5zZm9ybVRleHR1cmVQcm9ncmFtQmluZGluZyBi
aW5kaW5nOwotICAgIGJpbmRpbmcuc2V0KHRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKCkpOworICAg
IGJpbmRpbmcuc2V0KHRleHR1cmVSZWN0UHJvZ3JhbUZsaXAoKSk7CiAKICAgICBHTEMoY29udGV4
dCgpLCBjb250ZXh0KCktPnVzZVByb2dyYW0oYmluZGluZy5wcm9ncmFtSWQpKTsKICAgICBHTEMo
Y29udGV4dCgpLCBjb250ZXh0KCktPnVuaWZvcm0xaShiaW5kaW5nLnNhbXBsZXJMb2NhdGlvbiwg
MCkpOwpAQCAtMTY1NCwxNSArMTY2MSwyNiBAQCBjb25zdCBMYXllclJlbmRlcmVyQ2hyb21pdW06
OlRleHR1cmVQcm9nCiAgICAgcmV0dXJuIG1fdGV4dHVyZVByb2dyYW1GbGlwLmdldCgpOwogfQog
Ci1jb25zdCBMYXllclJlbmRlcmVyQ2hyb21pdW06OlRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKiBM
YXllclJlbmRlcmVyQ2hyb21pdW06OnRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKCkKK2NvbnN0IExh
eWVyUmVuZGVyZXJDaHJvbWl1bTo6VGV4dHVyZVJlY3RQcm9ncmFtKiBMYXllclJlbmRlcmVyQ2hy
b21pdW06OnRleHR1cmVSZWN0UHJvZ3JhbSgpCit7CisgICAgaWYgKCFtX3RleHR1cmVSZWN0UHJv
Z3JhbSkKKyAgICAgICAgbV90ZXh0dXJlUmVjdFByb2dyYW0gPSBhZG9wdFB0cihuZXcgVGV4dHVy
ZVJlY3RQcm9ncmFtKG1fY29udGV4dCkpOworICAgIGlmICghbV90ZXh0dXJlUmVjdFByb2dyYW0t
PmluaXRpYWxpemVkKCkpIHsKKyAgICAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJMYXllclJlbmRl
cmVyQ2hyb21pdW06OnRleHR1cmVSZWN0UHJvZ3JhbTo6aW5pdGlhbGl6ZSIpOworICAgICAgICBt
X3RleHR1cmVSZWN0UHJvZ3JhbS0+aW5pdGlhbGl6ZShtX2NvbnRleHQsIG1faXNVc2luZ0JpbmRV
bmlmb3JtKTsKKyAgICB9CisgICAgcmV0dXJuIG1fdGV4dHVyZVJlY3RQcm9ncmFtLmdldCgpOwor
fQorCitjb25zdCBMYXllclJlbmRlcmVyQ2hyb21pdW06OlRleHR1cmVSZWN0UHJvZ3JhbUZsaXAq
IExheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGV4dHVyZVJlY3RQcm9ncmFtRmxpcCgpCiB7Ci0gICAg
aWYgKCFtX3RleHR1cmVJT1N1cmZhY2VQcm9ncmFtKQotICAgICAgICBtX3RleHR1cmVJT1N1cmZh
Y2VQcm9ncmFtID0gYWRvcHRQdHIobmV3IFRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKG1fY29udGV4
dCkpOwotICAgIGlmICghbV90ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbS0+aW5pdGlhbGl6ZWQoKSkg
ewotICAgICAgICBUUkFDRV9FVkVOVDAoImNjIiwgIkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGV4
dHVyZUlPU3VyZmFjZVByb2dyYW06OmluaXRpYWxpemUiKTsKLSAgICAgICAgbV90ZXh0dXJlSU9T
dXJmYWNlUHJvZ3JhbS0+aW5pdGlhbGl6ZShtX2NvbnRleHQsIG1faXNVc2luZ0JpbmRVbmlmb3Jt
KTsKKyAgICBpZiAoIW1fdGV4dHVyZVJlY3RQcm9ncmFtRmxpcCkKKyAgICAgICAgbV90ZXh0dXJl
UmVjdFByb2dyYW1GbGlwID0gYWRvcHRQdHIobmV3IFRleHR1cmVSZWN0UHJvZ3JhbUZsaXAobV9j
b250ZXh0KSk7CisgICAgaWYgKCFtX3RleHR1cmVSZWN0UHJvZ3JhbUZsaXAtPmluaXRpYWxpemVk
KCkpIHsKKyAgICAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJMYXllclJlbmRlcmVyQ2hyb21pdW06
OnRleHR1cmVSZWN0UHJvZ3JhbUZsaXA6OmluaXRpYWxpemUiKTsKKyAgICAgICAgbV90ZXh0dXJl
UmVjdFByb2dyYW1GbGlwLT5pbml0aWFsaXplKG1fY29udGV4dCwgbV9pc1VzaW5nQmluZFVuaWZv
cm0pOwogICAgIH0KLSAgICByZXR1cm4gbV90ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbS5nZXQoKTsK
KyAgICByZXR1cm4gbV90ZXh0dXJlUmVjdFByb2dyYW1GbGlwLmdldCgpOwogfQogCiBjb25zdCBM
YXllclJlbmRlcmVyQ2hyb21pdW06OlZpZGVvWVVWUHJvZ3JhbSogTGF5ZXJSZW5kZXJlckNocm9t
aXVtOjp2aWRlb1lVVlByb2dyYW0oKQpAQCAtMTcyMSw4ICsxNzM5LDEwIEBAIHZvaWQgTGF5ZXJS
ZW5kZXJlckNocm9taXVtOjpjbGVhbnVwU2hhcmUKICAgICAgICAgbV90ZXh0dXJlUHJvZ3JhbS0+
Y2xlYW51cChtX2NvbnRleHQpOwogICAgIGlmIChtX3RleHR1cmVQcm9ncmFtRmxpcCkKICAgICAg
ICAgbV90ZXh0dXJlUHJvZ3JhbUZsaXAtPmNsZWFudXAobV9jb250ZXh0KTsKLSAgICBpZiAobV90
ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbSkKLSAgICAgICAgbV90ZXh0dXJlSU9TdXJmYWNlUHJvZ3Jh
bS0+Y2xlYW51cChtX2NvbnRleHQpOworICAgIGlmIChtX3RleHR1cmVSZWN0UHJvZ3JhbSkKKyAg
ICAgICAgbV90ZXh0dXJlUmVjdFByb2dyYW0tPmNsZWFudXAobV9jb250ZXh0KTsKKyAgICBpZiAo
bV90ZXh0dXJlUmVjdFByb2dyYW1GbGlwKQorICAgICAgICBtX3RleHR1cmVSZWN0UHJvZ3JhbUZs
aXAtPmNsZWFudXAobV9jb250ZXh0KTsKIAogICAgIGlmIChtX3ZpZGVvWVVWUHJvZ3JhbSkKICAg
ICAgICAgbV92aWRlb1lVVlByb2dyYW0tPmNsZWFudXAobV9jb250ZXh0KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCShyZXZpc2lvbiAxMjI0NTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0u
aAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDcgKzIwMCw4IEBAIHByaXZhdGU6CiAgICAgLy8gVGV4
dHVyZSBzaGFkZXJzLgogICAgIHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVydGV4U2hhZGVyUG9z
VGV4VHJhbnNmb3JtLCBGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYT4gVGV4dHVyZVByb2dyYW07
CiAgICAgdHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm0s
IEZyYWdtZW50U2hhZGVyUkdCQVRleEZsaXBBbHBoYT4gVGV4dHVyZVByb2dyYW1GbGlwOwotICAg
IHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtLCBGcmFn
bWVudFNoYWRlclJHQkFUZXhSZWN0RmxpcEFscGhhPiBUZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbTsK
KyAgICB0eXBlZGVmIFByb2dyYW1CaW5kaW5nPFZlcnRleFNoYWRlclBvc1RleFRyYW5zZm9ybSwg
RnJhZ21lbnRTaGFkZXJSR0JBVGV4UmVjdEFscGhhPiBUZXh0dXJlUmVjdFByb2dyYW07CisgICAg
dHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm0sIEZyYWdt
ZW50U2hhZGVyUkdCQVRleFJlY3RGbGlwQWxwaGE+IFRleHR1cmVSZWN0UHJvZ3JhbUZsaXA7CiAK
ICAgICAvLyBWaWRlbyBzaGFkZXJzLgogICAgIHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVydGV4
U2hhZGVyVmlkZW9UcmFuc2Zvcm0sIEZyYWdtZW50U2hhZGVyT0VTSW1hZ2VFeHRlcm5hbD4gVmlk
ZW9TdHJlYW1UZXh0dXJlUHJvZ3JhbTsKQEAgLTIyOCw3ICsyMjksOCBAQCBwcml2YXRlOgogCiAg
ICAgY29uc3QgVGV4dHVyZVByb2dyYW0qIHRleHR1cmVQcm9ncmFtKCk7CiAgICAgY29uc3QgVGV4
dHVyZVByb2dyYW1GbGlwKiB0ZXh0dXJlUHJvZ3JhbUZsaXAoKTsKLSAgICBjb25zdCBUZXh0dXJl
SU9TdXJmYWNlUHJvZ3JhbSogdGV4dHVyZUlPU3VyZmFjZVByb2dyYW0oKTsKKyAgICBjb25zdCBU
ZXh0dXJlUmVjdFByb2dyYW0qIHRleHR1cmVSZWN0UHJvZ3JhbSgpOworICAgIGNvbnN0IFRleHR1
cmVSZWN0UHJvZ3JhbUZsaXAqIHRleHR1cmVSZWN0UHJvZ3JhbUZsaXAoKTsKIAogICAgIGNvbnN0
IFZpZGVvWVVWUHJvZ3JhbSogdmlkZW9ZVVZQcm9ncmFtKCk7CiAgICAgY29uc3QgVmlkZW9TdHJl
YW1UZXh0dXJlUHJvZ3JhbSogdmlkZW9TdHJlYW1UZXh0dXJlUHJvZ3JhbSgpOwpAQCAtMjUyLDcg
KzI1NCw4IEBAIHByaXZhdGU6CiAKICAgICBPd25QdHI8VGV4dHVyZVByb2dyYW0+IG1fdGV4dHVy
ZVByb2dyYW07CiAgICAgT3duUHRyPFRleHR1cmVQcm9ncmFtRmxpcD4gbV90ZXh0dXJlUHJvZ3Jh
bUZsaXA7Ci0gICAgT3duUHRyPFRleHR1cmVJT1N1cmZhY2VQcm9ncmFtPiBtX3RleHR1cmVJT1N1
cmZhY2VQcm9ncmFtOworICAgIE93blB0cjxUZXh0dXJlUmVjdFByb2dyYW0+IG1fdGV4dHVyZVJl
Y3RQcm9ncmFtOworICAgIE93blB0cjxUZXh0dXJlUmVjdFByb2dyYW1GbGlwPiBtX3RleHR1cmVS
ZWN0UHJvZ3JhbUZsaXA7CiAKICAgICBPd25QdHI8VmlkZW9ZVVZQcm9ncmFtPiBtX3ZpZGVvWVVW
UHJvZ3JhbTsKICAgICBPd25QdHI8VmlkZW9TdHJlYW1UZXh0dXJlUHJvZ3JhbT4gbV92aWRlb1N0
cmVhbVRleHR1cmVQcm9ncmFtOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxiYXJMYXllckltcGwuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsYmFyTGF5
ZXJJbXBsLmNwcAkocmV2aXNpb24gMTIyNDU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxiYXJMYXllckltcGwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDQ1Njcm9sbGJhckxheWVySW1wbC5o
IgogCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJU
aGVtZS5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgiCiAjaW5jbHVkZSAi
Y2MvQ0NRdWFkQ3VsbGVyLmgiCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQgQ0NTY3JvbGxiYXJMYXll
ckltcGw6OmFwcGVuZFF1YWRzKEMKICAgICB0aGVtZS0+c3BsaXRUcmFjaygmbV9zY3JvbGxiYXIs
IHRoZW1lLT50cmFja1JlY3QoJm1fc2Nyb2xsYmFyKSwgYmFja1RyYWNrUmVjdCwgdGh1bWJSZWN0
LCBmb3JlVHJhY2tSZWN0KTsKIAogICAgIGlmIChtX3RodW1iVGV4dHVyZUlkICYmIHRoZW1lLT5o
YXNUaHVtYigmbV9zY3JvbGxiYXIpICYmICF0aHVtYlJlY3QuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IE93blB0cjxDQ1RleHR1cmVEcmF3UXVhZD4gcXVhZCA9IENDVGV4dHVyZURyYXdRdWFkOjpjcmVh
dGUoc2hhcmVkUXVhZFN0YXRlLCB0aHVtYlJlY3QsIG1fdGh1bWJUZXh0dXJlSWQsIHByZW11bHRp
cGxlZEFscGhhLCB1dlJlY3QsIGZsaXBwZWQpOworICAgICAgICBPd25QdHI8Q0NUZXh0dXJlRHJh
d1F1YWQ+IHF1YWQgPSBDQ1RleHR1cmVEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwg
dGh1bWJSZWN0LCBtX3RodW1iVGV4dHVyZUlkLCBwcmVtdWx0aXBsZWRBbHBoYSwgdXZSZWN0LCBm
bGlwcGVkLCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCk7CiAgICAgICAgIHF1YWQtPnNl
dE5lZWRzQmxlbmRpbmcoKTsKICAgICAgICAgcXVhZExpc3QuYXBwZW5kKHF1YWQucmVsZWFzZSgp
KTsKICAgICB9CkBAIC04NywxMiArODgsMTIgQEAgdm9pZCBDQ1Njcm9sbGJhckxheWVySW1wbDo6
YXBwZW5kUXVhZHMoQwogCiAgICAgLy8gV2Ugb25seSBwYWludCB0aGUgdHJhY2sgaW4gdHdvIHBh
cnRzIGlmIHdlIHdlcmUgZ2l2ZW4gYSB0ZXh0dXJlIGZvciB0aGUgZm9yd2FyZCB0cmFjayBwYXJ0
LgogICAgIGlmIChtX2ZvcmVUcmFja1RleHR1cmVJZCAmJiAhZm9yZVRyYWNrUmVjdC5pc0VtcHR5
KCkpCi0gICAgICAgIHF1YWRMaXN0LmFwcGVuZChDQ1RleHR1cmVEcmF3UXVhZDo6Y3JlYXRlKHNo
YXJlZFF1YWRTdGF0ZSwgZm9yZVRyYWNrUmVjdCwgbV9mb3JlVHJhY2tUZXh0dXJlSWQsIHByZW11
bHRpcGxlZEFscGhhLCB0b1VWUmVjdChmb3JlVHJhY2tSZWN0LCBib3VuZHNSZWN0KSwgZmxpcHBl
ZCkpOworICAgICAgICBxdWFkTGlzdC5hcHBlbmQoQ0NUZXh0dXJlRHJhd1F1YWQ6OmNyZWF0ZShz
aGFyZWRRdWFkU3RhdGUsIGZvcmVUcmFja1JlY3QsIG1fZm9yZVRyYWNrVGV4dHVyZUlkLCBwcmVt
dWx0aXBsZWRBbHBoYSwgdG9VVlJlY3QoZm9yZVRyYWNrUmVjdCwgYm91bmRzUmVjdCksIGZsaXBw
ZWQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJEKSk7CiAKICAgICAvLyBPcmRlciBtYXR0
ZXJzIGhlcmU6IHNpbmNlIHRoZSBiYWNrIHRyYWNrIHRleHR1cmUgaXMgYmVpbmcgZHJhd24gdG8g
dGhlIGVudGlyZSBjb250ZW50cyByZWN0LCB3ZSBtdXN0IGFwcGVuZCBpdCBhZnRlciB0aGUgdGh1
bWIgYW5kCiAgICAgLy8gZm9yZSB0cmFjayBxdWFkcy4gVGhlIGJhY2sgdHJhY2sgdGV4dHVyZSBj
b250YWlucyAoYW5kIGRpc3BsYXlzKSB0aGUgYnV0dG9ucy4KICAgICBpZiAoIWJvdW5kc1JlY3Qu
aXNFbXB0eSgpKQotICAgICAgICBxdWFkTGlzdC5hcHBlbmQoQ0NUZXh0dXJlRHJhd1F1YWQ6OmNy
ZWF0ZShzaGFyZWRRdWFkU3RhdGUsIGJvdW5kc1JlY3QsIG1fYmFja1RyYWNrVGV4dHVyZUlkLCBw
cmVtdWx0aXBsZWRBbHBoYSwgdXZSZWN0LCBmbGlwcGVkKSk7CisgICAgICAgIHF1YWRMaXN0LmFw
cGVuZChDQ1RleHR1cmVEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgYm91bmRzUmVj
dCwgbV9iYWNrVHJhY2tUZXh0dXJlSWQsIHByZW11bHRpcGxlZEFscGhhLCB1dlJlY3QsIGZsaXBw
ZWQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJEKSk7CiB9CiAKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBs
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwuY3BwCShyZXZpc2lvbiAxMjI0NTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllcklt
cGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJjYy9D
Q1RleHR1cmVMYXllckltcGwuaCIKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAj
aW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgImNjL0NDUXVhZEN1bGxlci5oIgogI2lu
Y2x1ZGUgImNjL0NDVGV4dHVyZURyYXdRdWFkLmgiCkBAIC01MSw3ICs1Miw3IEBAIENDVGV4dHVy
ZUxheWVySW1wbDo6fkNDVGV4dHVyZUxheWVySW1wbCgKIHZvaWQgQ0NUZXh0dXJlTGF5ZXJJbXBs
OjphcHBlbmRRdWFkcyhDQ1F1YWRDdWxsZXImIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1YWRT
dGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBib29sJikKIHsKICAgICBJbnRSZWN0IHF1YWRSZWN0KElu
dFBvaW50KCksIGJvdW5kcygpKTsKLSAgICBxdWFkTGlzdC5hcHBlbmQoQ0NUZXh0dXJlRHJhd1F1
YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCBtX3RleHR1cmVJZCwgbV9wcmVt
dWx0aXBsaWVkQWxwaGEsIG1fdXZSZWN0LCBtX2ZsaXBwZWQpKTsKKyAgICBxdWFkTGlzdC5hcHBl
bmQoQ0NUZXh0dXJlRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCBt
X3RleHR1cmVJZCwgbV9wcmVtdWx0aXBsaWVkQWxwaGEsIG1fdXZSZWN0LCBtX2ZsaXBwZWQsIEdy
YXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJEKSk7CiB9CiAKIHZvaWQgQ0NUZXh0dXJlTGF5ZXJJ
bXBsOjpkdW1wTGF5ZXJQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25z
dApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NW
aWRlb0xheWVySW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAJKHJldmlzaW9uIDEyMjQ1
NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlk
ZW9MYXllckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsMTQgKzIwMywxOSBAQCB2b2lk
IENDVmlkZW9MYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVhCiAgICAgICAgIGJvb2wgcHJlbXVs
dGlwbGllZEFscGhhID0gdHJ1ZTsKICAgICAgICAgRmxvYXRSZWN0IHV2UmVjdCgwLCAwLCB3aWR0
aFNjYWxlRmFjdG9yLCAxKTsKICAgICAgICAgYm9vbCBmbGlwcGVkID0gZmFsc2U7Ci0gICAgICAg
IE93blB0cjxDQ1RleHR1cmVEcmF3UXVhZD4gdGV4dHVyZVF1YWQgPSBDQ1RleHR1cmVEcmF3UXVh
ZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIHBsYW5lLnRleHR1cmVJZCwgcHJl
bXVsdGlwbGllZEFscGhhLCB1dlJlY3QsIGZsaXBwZWQpOworICAgICAgICBPd25QdHI8Q0NUZXh0
dXJlRHJhd1F1YWQ+IHRleHR1cmVRdWFkID0gQ0NUZXh0dXJlRHJhd1F1YWQ6OmNyZWF0ZShzaGFy
ZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCBwbGFuZS50ZXh0dXJlSWQsIHByZW11bHRpcGxpZWRBbHBo
YSwgdXZSZWN0LCBmbGlwcGVkLCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCk7CiAgICAg
ICAgIHF1YWRMaXN0LmFwcGVuZCh0ZXh0dXJlUXVhZC5yZWxlYXNlKCkpOwogICAgICAgICBicmVh
azsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRDogeworICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQ6CisgICAgY2FzZSBFeHRlbnNpb25z
M0Q6OlRFWFRVUkVfUkVDVEFOR0xFX0FSQjogewogICAgICAgICAvLyBOYXRpdmVUZXh0dXJlIGhh
cmR3YXJlIGRlY29kZXIuCisjaWYgZGVmaW5lZChPU19NQUNPU1gpCisgICAgICAgIGJvb2wgcHJl
bXVsdGlwbGllZEFscGhhID0gZmFsc2U7CisjZWxzZQogICAgICAgICBib29sIHByZW11bHRpcGxp
ZWRBbHBoYSA9IHRydWU7Ci0gICAgICAgIEZsb2F0UmVjdCB1dlJlY3QoMCwgMCwgMSwgMSk7Cisj
ZW5kaWYKKyAgICAgICAgRmxvYXRSZWN0IHV2UmVjdCA9IG1fZm9ybWF0ID09IEV4dGVuc2lvbnMz
RDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCID8gRmxvYXRSZWN0KDAsIDAsIG1fZnJhbWUtPndpZHRo
KCksIG1fZnJhbWUtPmhlaWdodCgpKSA6IEZsb2F0UmVjdCgwLCAwLCAxLCAxKTsKICNpZiBkZWZp
bmVkKE9TX0NIUk9NRU9TKSAmJiBkZWZpbmVkKF9fQVJNRUxfXykKICAgICAgICAgYm9vbCBmbGlw
cGVkID0gdHJ1ZTsgLy8gVW5kZXIgdGhlIGNvdmVycywgaW1wbGVtZW50ZWQgYnkgT3Blbk1BWCBJ
TC4KICNlbGlmIE9TKFdJTkRPV1MpCkBAIC0yMTgsNyArMjIzLDcgQEAgdm9pZCBDQ1ZpZGVvTGF5
ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YQogI2Vsc2UKICAgICAgICAgYm9vbCBmbGlwcGVkID0g
ZmFsc2U7IC8vIExpYlZBIChjcm9zL2ludGVsKSwgTWFjT1MuCiAjZW5kaWYKLSAgICAgICAgT3du
UHRyPENDVGV4dHVyZURyYXdRdWFkPiB0ZXh0dXJlUXVhZCA9IENDVGV4dHVyZURyYXdRdWFkOjpj
cmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgbV9mcmFtZS0+dGV4dHVyZUlkKCksIHBy
ZW11bHRpcGxpZWRBbHBoYSwgdXZSZWN0LCBmbGlwcGVkKTsKKyAgICAgICAgT3duUHRyPENDVGV4
dHVyZURyYXdRdWFkPiB0ZXh0dXJlUXVhZCA9IENDVGV4dHVyZURyYXdRdWFkOjpjcmVhdGUoc2hh
cmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgbV9mcmFtZS0+dGV4dHVyZUlkKCksIHByZW11bHRpcGxp
ZWRBbHBoYSwgdXZSZWN0LCBmbGlwcGVkLCBtX2Zvcm1hdCk7CiAgICAgICAgIHF1YWRMaXN0LmFw
cGVuZCh0ZXh0dXJlUXVhZC5yZWxlYXNlKCkpOwogICAgICAgICBicmVhazsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152114</attachid>
            <date>2012-07-12 17:48:23 -0700</date>
            <delta_ts>2012-07-17 12:04:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91169-20120712174822.patch</filename>
            <type>text/plain</type>
            <size>18580</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyNTMxKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA3LTEyICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaHJvbWl1bSBNYWM6
IEFkZCBURVhUVVJFX1JFQ1RBTkdMRV9BUkIgc3VwcG9ydCB0byBDQ1ZpZGVvTGF5ZXJJbXBsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTE2OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBh
IHRleHR1cmVUYXJnZXQgZmllbGQgdG8gV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkLgorCisgICAg
ICAgICogY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZC5oOgorICAgICAg
ICAoV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9z
aXRvclRleHR1cmVRdWFkOjp0ZXh0dXJlVGFyZ2V0KToKKwogMjAxMi0wNy0xMSAgQWxleGFuZHJl
IEVsaWFzICA8YWVsaWFzQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBNb3ZlIGNv
bXBvc2l0b3IgcXVhZHMgdG8gUGxhdGZvcm0vY2hyb21pdW0vcHVibGljCkluZGV4OiBTb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvclRl
eHR1cmVRdWFkLmgJKHJldmlzaW9uIDEyMjQ1NykKKysrIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJDb21tb24uaCIKICNpbmNsdWRlICJXZWJDb21wb3Np
dG9yUXVhZC5oIgogI2luY2x1ZGUgIldlYkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIldlYkdyYXBo
aWNzQ29udGV4dDNELmgiCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAjaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KICNlbmRpZgpAQCAtNDMsMjYgKzQ0LDI4IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkIDogcHVibGljIFdlYkNvbXBvc2l0
b3JRdWFkIHsKIHB1YmxpYzoKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAgICBzdGF0aWMg
UGFzc093blB0cjxXZWJDb21wb3NpdG9yVGV4dHVyZVF1YWQ+IGNyZWF0ZShjb25zdCBXZWJDb21w
b3NpdG9yU2hhcmVkUXVhZFN0YXRlKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIHVuc2lnbmVk
IHRleHR1cmVJZCwgYm9vbCBwcmVtdWx0aXBsaWVkQWxwaGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdXZSZWN0LCBib29sIGZsaXBwZWQpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkNv
bXBvc2l0b3JUZXh0dXJlUXVhZD4gY3JlYXRlKGNvbnN0IFdlYkNvbXBvc2l0b3JTaGFyZWRRdWFk
U3RhdGUqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgdW5zaWduZWQgdGV4dHVyZUlkLCBib29s
IHByZW11bHRpcGxpZWRBbHBoYSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1dlJlY3QsIGJv
b2wgZmxpcHBlZCwgV0dDM0RlbnVtIHRleHR1cmVUYXJnZXQpOwogICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCB1dlJlY3QoKSBjb25zdCB7IHJldHVybiBtX3V2UmVjdDsgfQogI2VuZGlmCiAKICAgICB1
bnNpZ25lZCB0ZXh0dXJlSWQoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmVJZDsgfQogICAgIGJv
b2wgcHJlbXVsdGlwbGllZEFscGhhKCkgY29uc3QgeyByZXR1cm4gIG1fcHJlbXVsdGlwbGllZEFs
cGhhOyB9CiAgICAgYm9vbCBmbGlwcGVkKCkgY29uc3QgeyByZXR1cm4gbV9mbGlwcGVkOyB9Cisg
ICAgV0dDM0RlbnVtIHRleHR1cmVUYXJnZXQoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmVUYXJn
ZXQ7IH0KIAogICAgIHZvaWQgc2V0TmVlZHNCbGVuZGluZygpOwogCiAgICAgc3RhdGljIGNvbnN0
IFdlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZCogbWF0ZXJpYWxDYXN0KGNvbnN0IFdlYkNvbXBvc2l0
b3JRdWFkKik7CiBwcml2YXRlOgogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIFdlYkNv
bXBvc2l0b3JUZXh0dXJlUXVhZChjb25zdCBXZWJLaXQ6OldlYkNvbXBvc2l0b3JTaGFyZWRRdWFk
U3RhdGUqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgdW5zaWduZWQgdGV4dHVyZV9pZCwgYm9v
bCBwcmVtdWx0aXBsaWVkQWxwaGEsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdXZSZWN0LCBi
b29sIGZsaXBwZWQpOworICAgIFdlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZChjb25zdCBXZWJLaXQ6
OldlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jiwg
dW5zaWduZWQgdGV4dHVyZV9pZCwgYm9vbCBwcmVtdWx0aXBsaWVkQWxwaGEsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgdXZSZWN0LCBib29sIGZsaXBwZWQsIFdHQzNEZW51bSB0ZXh0dXJlVGFy
Z2V0KTsKICNlbmRpZgogCiAgICAgdW5zaWduZWQgbV90ZXh0dXJlSWQ7CiAgICAgYm9vbCBtX3By
ZW11bHRpcGxpZWRBbHBoYTsKICAgICBXZWJGbG9hdFJlY3QgbV91dlJlY3Q7CiAgICAgYm9vbCBt
X2ZsaXBwZWQ7CisgICAgV0dDM0RlbnVtIG1fdGV4dHVyZVRhcmdldDsKIH07CiAKICNwcmFnbWEg
cGFjayhwb3ApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjI1MzEpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0wNy0x
MiAgU2FpbGVzaCBBZ3Jhd2FsICA8c2FpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2hyb21p
dW0gTWFjOiBBZGQgVEVYVFVSRV9SRUNUQU5HTEVfQVJCIHN1cHBvcnQgdG8gQ0NWaWRlb0xheWVy
SW1wbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEx
NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IGV4dGVuZHMgQ0NWaWRlb0xheWVySW1wbCB0byBzdXBwb3J0IFRFWFRVUkVfUkVDVEFOR0xFX0FS
Qi4gVGhpcyB0ZXh0dXJlIHRhcmdldCBpcyB1c2VkIGJ5IHRoZSBNYWMgaGFyZHdhcmUgYWNjZWxl
cmF0ZWQgdmlkZW8gZGVjb2Rlci4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvclRleHR1cmVR
dWFkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvclRleHR1cmVRdWFkOjpjcmVh
dGUpOiBBZGRlZCB0ZXh0dXJlVGFyZ2V0IGZpZWxkLgorICAgICAgICAoV2ViS2l0OjpXZWJDb21w
b3NpdG9yVGV4dHVyZVF1YWQ6OldlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd1RleHR1cmVRdWFkKTog
QWRkZWQgc3VwcG9ydCBmb3IgZHJhd2luZyBURVhUVVJFX1JFQ1RBTkdMRV9BUkIgdGV4dHVyZXMu
CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdJT1N1cmZhY2VR
dWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGV4dHVyZVJl
Y3RQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJS
ZW5kZXJlckNocm9taXVtOjp0ZXh0dXJlUmVjdFByb2dyYW1GbGlwKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6Y2xlYW51cFNoYXJlZE9iamVjdHMpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oOiBB
ZGRlZCBtX3RleHR1cmVSZWN0UHJvZ3JhbUZsaXAgYW5kIHJlbmFtZWQgbV90ZXh0dXJlSU9TdXJm
YWNlUHJvZ3JhbSB0byBtX3RleHR1cmVSZWN0UHJvZ3JhbS4KKyAgICAgICAgKExheWVyUmVuZGVy
ZXJDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
Y3JvbGxiYXJMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NTY3JvbGxiYXJMYXll
ckltcGw6OmFwcGVuZFF1YWRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RleHR1cmVMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJl
TGF5ZXJJbXBsOjphcHBlbmRRdWFkcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVv
TGF5ZXJJbXBsOjphcHBlbmRRdWFkcyk6CisKIDIwMTItMDctMTIgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBtX3R5cGUgYW5kIG1faGFzTmFtZUNhY2hl
IGZyb20gSFRNTENvbGxlY3Rpb25DYWNoZUJhc2UgdG8gRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNl
IGZvciBiZXR0ZXIgYml0IHBhY2tpbmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkNvbXBvc2l0b3JU
ZXh0dXJlUXVhZC5jcHAJKHJldmlzaW9uIDEyMjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvclRleHR1cmVRdWFkLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsMTcgKzMxLDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc093blB0cjxXZWJDb21wb3NpdG9yVGV4dHVyZVF1YWQ+
IFdlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZDo6Y3JlYXRlKGNvbnN0IFdlYktpdDo6V2ViQ29tcG9z
aXRvclNoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFk
UmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkLCBib29sIHByZW11bHRpcGxpZWRBbHBoYSwgY29uc3Qg
RmxvYXRSZWN0JiB1dlJlY3QsIGJvb2wgZmxpcHBlZCkKK1Bhc3NPd25QdHI8V2ViQ29tcG9zaXRv
clRleHR1cmVRdWFkPiBXZWJDb21wb3NpdG9yVGV4dHVyZVF1YWQ6OmNyZWF0ZShjb25zdCBXZWJL
aXQ6OldlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3Qg
SW50UmVjdCYgcXVhZFJlY3QsIHVuc2lnbmVkIHRleHR1cmVJZCwgYm9vbCBwcmVtdWx0aXBsaWVk
QWxwaGEsIGNvbnN0IEZsb2F0UmVjdCYgdXZSZWN0LCBib29sIGZsaXBwZWQsIFdHQzNEZW51bSB0
ZXh0dXJlVGFyZ2V0KQogewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViQ29tcG9zaXRvclRl
eHR1cmVRdWFkKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIHRleHR1cmVJZCwgcHJlbXVsdGlw
bGllZEFscGhhLCB1dlJlY3QsIGZsaXBwZWQpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdl
YkNvbXBvc2l0b3JUZXh0dXJlUXVhZChzaGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCB0ZXh0dXJl
SWQsIHByZW11bHRpcGxpZWRBbHBoYSwgdXZSZWN0LCBmbGlwcGVkLCB0ZXh0dXJlVGFyZ2V0KSk7
CiB9CiAKLVdlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZDo6V2ViQ29tcG9zaXRvclRleHR1cmVRdWFk
KGNvbnN0IFdlYktpdDo6V2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0
YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkLCBib29sIHBy
ZW11bHRpcGxpZWRBbHBoYSwgY29uc3QgRmxvYXRSZWN0JiB1dlJlY3QsIGJvb2wgZmxpcHBlZCkK
K1dlYkNvbXBvc2l0b3JUZXh0dXJlUXVhZDo6V2ViQ29tcG9zaXRvclRleHR1cmVRdWFkKGNvbnN0
IFdlYktpdDo6V2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBj
b25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgdW5zaWduZWQgdGV4dHVyZUlkLCBib29sIHByZW11bHRp
cGxpZWRBbHBoYSwgY29uc3QgRmxvYXRSZWN0JiB1dlJlY3QsIGJvb2wgZmxpcHBlZCwgV0dDM0Rl
bnVtIHRleHR1cmVUYXJnZXQpCiAgICAgOiBXZWJDb21wb3NpdG9yUXVhZChzaGFyZWRRdWFkU3Rh
dGUsIFdlYkNvbXBvc2l0b3JRdWFkOjpUZXh0dXJlQ29udGVudCwgcXVhZFJlY3QpCiAgICAgLCBt
X3RleHR1cmVJZCh0ZXh0dXJlSWQpCiAgICAgLCBtX3ByZW11bHRpcGxpZWRBbHBoYShwcmVtdWx0
aXBsaWVkQWxwaGEpCiAgICAgLCBtX3V2UmVjdCh1dlJlY3QpCiAgICAgLCBtX2ZsaXBwZWQoZmxp
cHBlZCkKKyAgICAsIG1fdGV4dHVyZVRhcmdldCh0ZXh0dXJlVGFyZ2V0KQogewogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVy
Q2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDEyMjQ1NykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMjQsMTcgKzEwMjQsMjQgQEAgdm9p
ZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdUZXh0dXJlUQogICAgIEFTU0VSVChDQ1Byb3h5
Ojppc0ltcGxUaHJlYWQoKSk7CiAKICAgICBUZXhUcmFuc2Zvcm1UZXh0dXJlUHJvZ3JhbUJpbmRp
bmcgYmluZGluZzsKLSAgICBpZiAocXVhZC0+ZmxpcHBlZCgpKQotICAgICAgICBiaW5kaW5nLnNl
dCh0ZXh0dXJlUHJvZ3JhbUZsaXAoKSk7Ci0gICAgZWxzZQotICAgICAgICBiaW5kaW5nLnNldCh0
ZXh0dXJlUHJvZ3JhbSgpKTsKKyAgICBpZiAocXVhZC0+dGV4dHVyZVRhcmdldCgpID09IEV4dGVu
c2lvbnMzRDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCKSB7CisgICAgICAgIGlmIChxdWFkLT5mbGlw
cGVkKCkpCisgICAgICAgICAgICBiaW5kaW5nLnNldCh0ZXh0dXJlUmVjdFByb2dyYW1GbGlwKCkp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBiaW5kaW5nLnNldCh0ZXh0dXJlUmVjdFByb2dy
YW0oKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHF1YWQtPmZsaXBwZWQoKSkKKyAgICAg
ICAgICAgIGJpbmRpbmcuc2V0KHRleHR1cmVQcm9ncmFtRmxpcCgpKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgYmluZGluZy5zZXQodGV4dHVyZVByb2dyYW0oKSk7CisgICAgfQogICAgIEdM
Qyhjb250ZXh0KCksIGNvbnRleHQoKS0+dXNlUHJvZ3JhbShiaW5kaW5nLnByb2dyYW1JZCkpOwog
ICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+dW5pZm9ybTFpKGJpbmRpbmcuc2FtcGxlckxv
Y2F0aW9uLCAwKSk7CiAgICAgY29uc3QgRmxvYXRSZWN0JiB1dlJlY3QgPSBxdWFkLT51dlJlY3Qo
KTsKICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVuaWZvcm00ZihiaW5kaW5nLnRleFRy
YW5zZm9ybUxvY2F0aW9uLCB1dlJlY3QueCgpLCB1dlJlY3QueSgpLCB1dlJlY3Qud2lkdGgoKSwg
dXZSZWN0LmhlaWdodCgpKSk7CiAKICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPmFjdGl2
ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKSk7Ci0gICAgR0xDKGNvbnRleHQo
KSwgY29udGV4dCgpLT5iaW5kVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCwg
cXVhZC0+dGV4dHVyZUlkKCkpKTsKKyAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPmJpbmRU
ZXh0dXJlKHF1YWQtPnRleHR1cmVUYXJnZXQoKSwgcXVhZC0+dGV4dHVyZUlkKCkpKTsKIAogICAg
IC8vIEZJWE1FOiBzZXR0aW5nIHRoZSB0ZXh0dXJlIHBhcmFtZXRlcnMgZXZlcnkgdGltZSBpcyBy
ZWR1bmRhbnQuIE1vdmUgdGhpcyBjb2RlIHNvbWV3aGVyZQogICAgIC8vIHdoZXJlIGl0IHdpbGwg
b25seSBoYXBwZW4gb25jZSBwZXIgdGV4dHVyZS4KQEAgLTEwNjksNyArMTA3Niw3IEBAIHZvaWQg
TGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3SU9TdXJmYWMKIHsKICAgICBBU1NFUlQoQ0NQcm94
eTo6aXNJbXBsVGhyZWFkKCkpOwogICAgIFRleFRyYW5zZm9ybVRleHR1cmVQcm9ncmFtQmluZGlu
ZyBiaW5kaW5nOwotICAgIGJpbmRpbmcuc2V0KHRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKCkpOwor
ICAgIGJpbmRpbmcuc2V0KHRleHR1cmVSZWN0UHJvZ3JhbUZsaXAoKSk7CiAKICAgICBHTEMoY29u
dGV4dCgpLCBjb250ZXh0KCktPnVzZVByb2dyYW0oYmluZGluZy5wcm9ncmFtSWQpKTsKICAgICBH
TEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVuaWZvcm0xaShiaW5kaW5nLnNhbXBsZXJMb2NhdGlv
biwgMCkpOwpAQCAtMTY1NCwxNSArMTY2MSwyNiBAQCBjb25zdCBMYXllclJlbmRlcmVyQ2hyb21p
dW06OlRleHR1cmVQcm9nCiAgICAgcmV0dXJuIG1fdGV4dHVyZVByb2dyYW1GbGlwLmdldCgpOwog
fQogCi1jb25zdCBMYXllclJlbmRlcmVyQ2hyb21pdW06OlRleHR1cmVJT1N1cmZhY2VQcm9ncmFt
KiBMYXllclJlbmRlcmVyQ2hyb21pdW06OnRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKCkKK2NvbnN0
IExheWVyUmVuZGVyZXJDaHJvbWl1bTo6VGV4dHVyZVJlY3RQcm9ncmFtKiBMYXllclJlbmRlcmVy
Q2hyb21pdW06OnRleHR1cmVSZWN0UHJvZ3JhbSgpCit7CisgICAgaWYgKCFtX3RleHR1cmVSZWN0
UHJvZ3JhbSkKKyAgICAgICAgbV90ZXh0dXJlUmVjdFByb2dyYW0gPSBhZG9wdFB0cihuZXcgVGV4
dHVyZVJlY3RQcm9ncmFtKG1fY29udGV4dCkpOworICAgIGlmICghbV90ZXh0dXJlUmVjdFByb2dy
YW0tPmluaXRpYWxpemVkKCkpIHsKKyAgICAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJMYXllclJl
bmRlcmVyQ2hyb21pdW06OnRleHR1cmVSZWN0UHJvZ3JhbTo6aW5pdGlhbGl6ZSIpOworICAgICAg
ICBtX3RleHR1cmVSZWN0UHJvZ3JhbS0+aW5pdGlhbGl6ZShtX2NvbnRleHQsIG1faXNVc2luZ0Jp
bmRVbmlmb3JtKTsKKyAgICB9CisgICAgcmV0dXJuIG1fdGV4dHVyZVJlY3RQcm9ncmFtLmdldCgp
OworfQorCitjb25zdCBMYXllclJlbmRlcmVyQ2hyb21pdW06OlRleHR1cmVSZWN0UHJvZ3JhbUZs
aXAqIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGV4dHVyZVJlY3RQcm9ncmFtRmxpcCgpCiB7Ci0g
ICAgaWYgKCFtX3RleHR1cmVJT1N1cmZhY2VQcm9ncmFtKQotICAgICAgICBtX3RleHR1cmVJT1N1
cmZhY2VQcm9ncmFtID0gYWRvcHRQdHIobmV3IFRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKG1fY29u
dGV4dCkpOwotICAgIGlmICghbV90ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbS0+aW5pdGlhbGl6ZWQo
KSkgewotICAgICAgICBUUkFDRV9FVkVOVDAoImNjIiwgIkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6
dGV4dHVyZUlPU3VyZmFjZVByb2dyYW06OmluaXRpYWxpemUiKTsKLSAgICAgICAgbV90ZXh0dXJl
SU9TdXJmYWNlUHJvZ3JhbS0+aW5pdGlhbGl6ZShtX2NvbnRleHQsIG1faXNVc2luZ0JpbmRVbmlm
b3JtKTsKKyAgICBpZiAoIW1fdGV4dHVyZVJlY3RQcm9ncmFtRmxpcCkKKyAgICAgICAgbV90ZXh0
dXJlUmVjdFByb2dyYW1GbGlwID0gYWRvcHRQdHIobmV3IFRleHR1cmVSZWN0UHJvZ3JhbUZsaXAo
bV9jb250ZXh0KSk7CisgICAgaWYgKCFtX3RleHR1cmVSZWN0UHJvZ3JhbUZsaXAtPmluaXRpYWxp
emVkKCkpIHsKKyAgICAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJMYXllclJlbmRlcmVyQ2hyb21p
dW06OnRleHR1cmVSZWN0UHJvZ3JhbUZsaXA6OmluaXRpYWxpemUiKTsKKyAgICAgICAgbV90ZXh0
dXJlUmVjdFByb2dyYW1GbGlwLT5pbml0aWFsaXplKG1fY29udGV4dCwgbV9pc1VzaW5nQmluZFVu
aWZvcm0pOwogICAgIH0KLSAgICByZXR1cm4gbV90ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbS5nZXQo
KTsKKyAgICByZXR1cm4gbV90ZXh0dXJlUmVjdFByb2dyYW1GbGlwLmdldCgpOwogfQogCiBjb25z
dCBMYXllclJlbmRlcmVyQ2hyb21pdW06OlZpZGVvWVVWUHJvZ3JhbSogTGF5ZXJSZW5kZXJlckNo
cm9taXVtOjp2aWRlb1lVVlByb2dyYW0oKQpAQCAtMTcyMSw4ICsxNzM5LDEwIEBAIHZvaWQgTGF5
ZXJSZW5kZXJlckNocm9taXVtOjpjbGVhbnVwU2hhcmUKICAgICAgICAgbV90ZXh0dXJlUHJvZ3Jh
bS0+Y2xlYW51cChtX2NvbnRleHQpOwogICAgIGlmIChtX3RleHR1cmVQcm9ncmFtRmxpcCkKICAg
ICAgICAgbV90ZXh0dXJlUHJvZ3JhbUZsaXAtPmNsZWFudXAobV9jb250ZXh0KTsKLSAgICBpZiAo
bV90ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbSkKLSAgICAgICAgbV90ZXh0dXJlSU9TdXJmYWNlUHJv
Z3JhbS0+Y2xlYW51cChtX2NvbnRleHQpOworICAgIGlmIChtX3RleHR1cmVSZWN0UHJvZ3JhbSkK
KyAgICAgICAgbV90ZXh0dXJlUmVjdFByb2dyYW0tPmNsZWFudXAobV9jb250ZXh0KTsKKyAgICBp
ZiAobV90ZXh0dXJlUmVjdFByb2dyYW1GbGlwKQorICAgICAgICBtX3RleHR1cmVSZWN0UHJvZ3Jh
bUZsaXAtPmNsZWFudXAobV9jb250ZXh0KTsKIAogICAgIGlmIChtX3ZpZGVvWVVWUHJvZ3JhbSkK
ICAgICAgICAgbV92aWRlb1lVVlByb2dyYW0tPmNsZWFudXAobV9jb250ZXh0KTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCShyZXZpc2lvbiAxMjI0NTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDcgKzIwMCw4IEBAIHByaXZhdGU6CiAgICAgLy8g
VGV4dHVyZSBzaGFkZXJzLgogICAgIHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVydGV4U2hhZGVy
UG9zVGV4VHJhbnNmb3JtLCBGcmFnbWVudFNoYWRlclJHQkFUZXhBbHBoYT4gVGV4dHVyZVByb2dy
YW07CiAgICAgdHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zv
cm0sIEZyYWdtZW50U2hhZGVyUkdCQVRleEZsaXBBbHBoYT4gVGV4dHVyZVByb2dyYW1GbGlwOwot
ICAgIHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtLCBG
cmFnbWVudFNoYWRlclJHQkFUZXhSZWN0RmxpcEFscGhhPiBUZXh0dXJlSU9TdXJmYWNlUHJvZ3Jh
bTsKKyAgICB0eXBlZGVmIFByb2dyYW1CaW5kaW5nPFZlcnRleFNoYWRlclBvc1RleFRyYW5zZm9y
bSwgRnJhZ21lbnRTaGFkZXJSR0JBVGV4UmVjdEFscGhhPiBUZXh0dXJlUmVjdFByb2dyYW07Cisg
ICAgdHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm0sIEZy
YWdtZW50U2hhZGVyUkdCQVRleFJlY3RGbGlwQWxwaGE+IFRleHR1cmVSZWN0UHJvZ3JhbUZsaXA7
CiAKICAgICAvLyBWaWRlbyBzaGFkZXJzLgogICAgIHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVy
dGV4U2hhZGVyVmlkZW9UcmFuc2Zvcm0sIEZyYWdtZW50U2hhZGVyT0VTSW1hZ2VFeHRlcm5hbD4g
VmlkZW9TdHJlYW1UZXh0dXJlUHJvZ3JhbTsKQEAgLTIyOCw3ICsyMjksOCBAQCBwcml2YXRlOgog
CiAgICAgY29uc3QgVGV4dHVyZVByb2dyYW0qIHRleHR1cmVQcm9ncmFtKCk7CiAgICAgY29uc3Qg
VGV4dHVyZVByb2dyYW1GbGlwKiB0ZXh0dXJlUHJvZ3JhbUZsaXAoKTsKLSAgICBjb25zdCBUZXh0
dXJlSU9TdXJmYWNlUHJvZ3JhbSogdGV4dHVyZUlPU3VyZmFjZVByb2dyYW0oKTsKKyAgICBjb25z
dCBUZXh0dXJlUmVjdFByb2dyYW0qIHRleHR1cmVSZWN0UHJvZ3JhbSgpOworICAgIGNvbnN0IFRl
eHR1cmVSZWN0UHJvZ3JhbUZsaXAqIHRleHR1cmVSZWN0UHJvZ3JhbUZsaXAoKTsKIAogICAgIGNv
bnN0IFZpZGVvWVVWUHJvZ3JhbSogdmlkZW9ZVVZQcm9ncmFtKCk7CiAgICAgY29uc3QgVmlkZW9T
dHJlYW1UZXh0dXJlUHJvZ3JhbSogdmlkZW9TdHJlYW1UZXh0dXJlUHJvZ3JhbSgpOwpAQCAtMjUy
LDcgKzI1NCw4IEBAIHByaXZhdGU6CiAKICAgICBPd25QdHI8VGV4dHVyZVByb2dyYW0+IG1fdGV4
dHVyZVByb2dyYW07CiAgICAgT3duUHRyPFRleHR1cmVQcm9ncmFtRmxpcD4gbV90ZXh0dXJlUHJv
Z3JhbUZsaXA7Ci0gICAgT3duUHRyPFRleHR1cmVJT1N1cmZhY2VQcm9ncmFtPiBtX3RleHR1cmVJ
T1N1cmZhY2VQcm9ncmFtOworICAgIE93blB0cjxUZXh0dXJlUmVjdFByb2dyYW0+IG1fdGV4dHVy
ZVJlY3RQcm9ncmFtOworICAgIE93blB0cjxUZXh0dXJlUmVjdFByb2dyYW1GbGlwPiBtX3RleHR1
cmVSZWN0UHJvZ3JhbUZsaXA7CiAKICAgICBPd25QdHI8VmlkZW9ZVVZQcm9ncmFtPiBtX3ZpZGVv
WVVWUHJvZ3JhbTsKICAgICBPd25QdHI8VmlkZW9TdHJlYW1UZXh0dXJlUHJvZ3JhbT4gbV92aWRl
b1N0cmVhbVRleHR1cmVQcm9ncmFtOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxiYXJMYXllckltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsYmFy
TGF5ZXJJbXBsLmNwcAkocmV2aXNpb24gMTIyNDU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTY3JvbGxiYXJMYXllckltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDQ1Njcm9sbGJhckxheWVySW1w
bC5oIgogCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKICNpbmNsdWRlICJTY3JvbGxi
YXJUaGVtZS5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgiCiAjaW5jbHVk
ZSAiY2MvQ0NRdWFkQ3VsbGVyLmgiCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQgQ0NTY3JvbGxiYXJM
YXllckltcGw6OmFwcGVuZFF1YWRzKEMKICAgICB0aGVtZS0+c3BsaXRUcmFjaygmbV9zY3JvbGxi
YXIsIHRoZW1lLT50cmFja1JlY3QoJm1fc2Nyb2xsYmFyKSwgYmFja1RyYWNrUmVjdCwgdGh1bWJS
ZWN0LCBmb3JlVHJhY2tSZWN0KTsKIAogICAgIGlmIChtX3RodW1iVGV4dHVyZUlkICYmIHRoZW1l
LT5oYXNUaHVtYigmbV9zY3JvbGxiYXIpICYmICF0aHVtYlJlY3QuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIE93blB0cjxDQ1RleHR1cmVEcmF3UXVhZD4gcXVhZCA9IENDVGV4dHVyZURyYXdRdWFkOjpj
cmVhdGUoc2hhcmVkUXVhZFN0YXRlLCB0aHVtYlJlY3QsIG1fdGh1bWJUZXh0dXJlSWQsIHByZW11
bHRpcGxlZEFscGhhLCB1dlJlY3QsIGZsaXBwZWQpOworICAgICAgICBPd25QdHI8Q0NUZXh0dXJl
RHJhd1F1YWQ+IHF1YWQgPSBDQ1RleHR1cmVEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0
ZSwgdGh1bWJSZWN0LCBtX3RodW1iVGV4dHVyZUlkLCBwcmVtdWx0aXBsZWRBbHBoYSwgdXZSZWN0
LCBmbGlwcGVkLCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCk7CiAgICAgICAgIHF1YWQt
PnNldE5lZWRzQmxlbmRpbmcoKTsKICAgICAgICAgcXVhZExpc3QuYXBwZW5kKHF1YWQucmVsZWFz
ZSgpKTsKICAgICB9CkBAIC04NywxMiArODgsMTIgQEAgdm9pZCBDQ1Njcm9sbGJhckxheWVySW1w
bDo6YXBwZW5kUXVhZHMoQwogCiAgICAgLy8gV2Ugb25seSBwYWludCB0aGUgdHJhY2sgaW4gdHdv
IHBhcnRzIGlmIHdlIHdlcmUgZ2l2ZW4gYSB0ZXh0dXJlIGZvciB0aGUgZm9yd2FyZCB0cmFjayBw
YXJ0LgogICAgIGlmIChtX2ZvcmVUcmFja1RleHR1cmVJZCAmJiAhZm9yZVRyYWNrUmVjdC5pc0Vt
cHR5KCkpCi0gICAgICAgIHF1YWRMaXN0LmFwcGVuZChDQ1RleHR1cmVEcmF3UXVhZDo6Y3JlYXRl
KHNoYXJlZFF1YWRTdGF0ZSwgZm9yZVRyYWNrUmVjdCwgbV9mb3JlVHJhY2tUZXh0dXJlSWQsIHBy
ZW11bHRpcGxlZEFscGhhLCB0b1VWUmVjdChmb3JlVHJhY2tSZWN0LCBib3VuZHNSZWN0KSwgZmxp
cHBlZCkpOworICAgICAgICBxdWFkTGlzdC5hcHBlbmQoQ0NUZXh0dXJlRHJhd1F1YWQ6OmNyZWF0
ZShzaGFyZWRRdWFkU3RhdGUsIGZvcmVUcmFja1JlY3QsIG1fZm9yZVRyYWNrVGV4dHVyZUlkLCBw
cmVtdWx0aXBsZWRBbHBoYSwgdG9VVlJlY3QoZm9yZVRyYWNrUmVjdCwgYm91bmRzUmVjdCksIGZs
aXBwZWQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJEKSk7CiAKICAgICAvLyBPcmRlciBt
YXR0ZXJzIGhlcmU6IHNpbmNlIHRoZSBiYWNrIHRyYWNrIHRleHR1cmUgaXMgYmVpbmcgZHJhd24g
dG8gdGhlIGVudGlyZSBjb250ZW50cyByZWN0LCB3ZSBtdXN0IGFwcGVuZCBpdCBhZnRlciB0aGUg
dGh1bWIgYW5kCiAgICAgLy8gZm9yZSB0cmFjayBxdWFkcy4gVGhlIGJhY2sgdHJhY2sgdGV4dHVy
ZSBjb250YWlucyAoYW5kIGRpc3BsYXlzKSB0aGUgYnV0dG9ucy4KICAgICBpZiAoIWJvdW5kc1Jl
Y3QuaXNFbXB0eSgpKQotICAgICAgICBxdWFkTGlzdC5hcHBlbmQoQ0NUZXh0dXJlRHJhd1F1YWQ6
OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIGJvdW5kc1JlY3QsIG1fYmFja1RyYWNrVGV4dHVyZUlk
LCBwcmVtdWx0aXBsZWRBbHBoYSwgdXZSZWN0LCBmbGlwcGVkKSk7CisgICAgICAgIHF1YWRMaXN0
LmFwcGVuZChDQ1RleHR1cmVEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgYm91bmRz
UmVjdCwgbV9iYWNrVHJhY2tUZXh0dXJlSWQsIHByZW11bHRpcGxlZEFscGhhLCB1dlJlY3QsIGZs
aXBwZWQsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJEKSk7CiB9CiAKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwuY3BwCShyZXZpc2lvbiAxMjI0NTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXll
ckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJj
Yy9DQ1RleHR1cmVMYXllckltcGwuaCIKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgi
CiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgImNjL0NDUXVhZEN1bGxlci5oIgog
I2luY2x1ZGUgImNjL0NDVGV4dHVyZURyYXdRdWFkLmgiCkBAIC01MSw3ICs1Miw3IEBAIENDVGV4
dHVyZUxheWVySW1wbDo6fkNDVGV4dHVyZUxheWVySW1wbCgKIHZvaWQgQ0NUZXh0dXJlTGF5ZXJJ
bXBsOjphcHBlbmRRdWFkcyhDQ1F1YWRDdWxsZXImIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1
YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBib29sJikKIHsKICAgICBJbnRSZWN0IHF1YWRSZWN0
KEludFBvaW50KCksIGJvdW5kcygpKTsKLSAgICBxdWFkTGlzdC5hcHBlbmQoQ0NUZXh0dXJlRHJh
d1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCBtX3RleHR1cmVJZCwgbV9w
cmVtdWx0aXBsaWVkQWxwaGEsIG1fdXZSZWN0LCBtX2ZsaXBwZWQpKTsKKyAgICBxdWFkTGlzdC5h
cHBlbmQoQ0NUZXh0dXJlRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0
LCBtX3RleHR1cmVJZCwgbV9wcmVtdWx0aXBsaWVkQWxwaGEsIG1fdXZSZWN0LCBtX2ZsaXBwZWQs
IEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFXzJEKSk7CiB9CiAKIHZvaWQgQ0NUZXh0dXJlTGF5
ZXJJbXBsOjpkdW1wTGF5ZXJQcm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBj
b25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NWaWRlb0xheWVySW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAJKHJldmlzaW9uIDEy
MjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VmlkZW9MYXllckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsMTQgKzIwMywxOSBAQCB2
b2lkIENDVmlkZW9MYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVhCiAgICAgICAgIGJvb2wgcHJl
bXVsdGlwbGllZEFscGhhID0gdHJ1ZTsKICAgICAgICAgRmxvYXRSZWN0IHV2UmVjdCgwLCAwLCB3
aWR0aFNjYWxlRmFjdG9yLCAxKTsKICAgICAgICAgYm9vbCBmbGlwcGVkID0gZmFsc2U7Ci0gICAg
ICAgIE93blB0cjxDQ1RleHR1cmVEcmF3UXVhZD4gdGV4dHVyZVF1YWQgPSBDQ1RleHR1cmVEcmF3
UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIHBsYW5lLnRleHR1cmVJZCwg
cHJlbXVsdGlwbGllZEFscGhhLCB1dlJlY3QsIGZsaXBwZWQpOworICAgICAgICBPd25QdHI8Q0NU
ZXh0dXJlRHJhd1F1YWQ+IHRleHR1cmVRdWFkID0gQ0NUZXh0dXJlRHJhd1F1YWQ6OmNyZWF0ZShz
aGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCBwbGFuZS50ZXh0dXJlSWQsIHByZW11bHRpcGxpZWRB
bHBoYSwgdXZSZWN0LCBmbGlwcGVkLCBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRCk7CiAg
ICAgICAgIHF1YWRMaXN0LmFwcGVuZCh0ZXh0dXJlUXVhZC5yZWxlYXNlKCkpOwogICAgICAgICBi
cmVhazsKICAgICB9Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRV8yRDogewor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkVfMkQ6CisgICAgY2FzZSBFeHRlbnNp
b25zM0Q6OlRFWFRVUkVfUkVDVEFOR0xFX0FSQjogewogICAgICAgICAvLyBOYXRpdmVUZXh0dXJl
IGhhcmR3YXJlIGRlY29kZXIuCisjaWYgZGVmaW5lZChPU19NQUNPU1gpCisgICAgICAgIGJvb2wg
cHJlbXVsdGlwbGllZEFscGhhID0gZmFsc2U7CisjZWxzZQogICAgICAgICBib29sIHByZW11bHRp
cGxpZWRBbHBoYSA9IHRydWU7Ci0gICAgICAgIEZsb2F0UmVjdCB1dlJlY3QoMCwgMCwgMSwgMSk7
CisjZW5kaWYKKyAgICAgICAgRmxvYXRSZWN0IHV2UmVjdCA9IG1fZm9ybWF0ID09IEV4dGVuc2lv
bnMzRDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCID8gRmxvYXRSZWN0KDAsIDAsIG1fZnJhbWUtPndp
ZHRoKCksIG1fZnJhbWUtPmhlaWdodCgpKSA6IEZsb2F0UmVjdCgwLCAwLCAxLCAxKTsKICNpZiBk
ZWZpbmVkKE9TX0NIUk9NRU9TKSAmJiBkZWZpbmVkKF9fQVJNRUxfXykKICAgICAgICAgYm9vbCBm
bGlwcGVkID0gdHJ1ZTsgLy8gVW5kZXIgdGhlIGNvdmVycywgaW1wbGVtZW50ZWQgYnkgT3Blbk1B
WCBJTC4KICNlbGlmIE9TKFdJTkRPV1MpCkBAIC0yMTgsNyArMjIzLDcgQEAgdm9pZCBDQ1ZpZGVv
TGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YQogI2Vsc2UKICAgICAgICAgYm9vbCBmbGlwcGVk
ID0gZmFsc2U7IC8vIExpYlZBIChjcm9zL2ludGVsKSwgTWFjT1MuCiAjZW5kaWYKLSAgICAgICAg
T3duUHRyPENDVGV4dHVyZURyYXdRdWFkPiB0ZXh0dXJlUXVhZCA9IENDVGV4dHVyZURyYXdRdWFk
OjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgbV9mcmFtZS0+dGV4dHVyZUlkKCks
IHByZW11bHRpcGxpZWRBbHBoYSwgdXZSZWN0LCBmbGlwcGVkKTsKKyAgICAgICAgT3duUHRyPEND
VGV4dHVyZURyYXdRdWFkPiB0ZXh0dXJlUXVhZCA9IENDVGV4dHVyZURyYXdRdWFkOjpjcmVhdGUo
c2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgbV9mcmFtZS0+dGV4dHVyZUlkKCksIHByZW11bHRp
cGxpZWRBbHBoYSwgdXZSZWN0LCBmbGlwcGVkLCBtX2Zvcm1hdCk7CiAgICAgICAgIHF1YWRMaXN0
LmFwcGVuZCh0ZXh0dXJlUXVhZC5yZWxlYXNlKCkpOwogICAgICAgICBicmVhazsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152801</attachid>
            <date>2012-07-17 12:02:47 -0700</date>
            <delta_ts>2012-07-18 11:38:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91169-20120717120246.patch</filename>
            <type>text/plain</type>
            <size>10399</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyODYyKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA3LTE3ICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaHJvbWl1bSBNYWM6
IEFkZCBURVhUVVJFX1JFQ1RBTkdMRV9BUkIgc3VwcG9ydCB0byBDQ1ZpZGVvTGF5ZXJJbXBsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTE2OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgImZs
aXBwZWQiIGZpZWxkIHRvIFdlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkLiBUaGlzIGlzIHVzZWQg
YXQgZHJhdyB0aW1lIHRvIGZsaXAgdGhlIHRleHR1cmUgaWYgbmVjZXNzYXJ5LgorCisgICAgICAg
ICogY2hyb21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkLmg6IEFkZGVkIGZs
aXBwZWQgZmllbGQgdG8gdGhlIGNvbnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29tcG9zaXRvcklP
U3VyZmFjZVF1YWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVh
ZDo6ZmxpcHBlZCk6IFRoZSBuZXcgZmxpcHBlZCBmaWVsZCBzaG91bGQgYmUgc2V0IHRvIHRydWUg
aWYgdGhlIHRleHR1cmUgc2hvdWxkIGJlIGZsaXBwZWQgd2hlbiBkcmF3aW5nLgorCiAyMDEyLTA3
LTEzICBUb255IFBheW5lICA8dHBheW5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUg
V2lkZ2V0IGZyb20gc2NyZWVuQ29sb3JQcm9maWxlCkluZGV4OiBTb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVh
ZC5oCShyZXZpc2lvbiAxMjI0NTcpCisrKyBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDIwICsz
NywyMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkNvbXBvc2l0b3JJT1N1cmZhY2VR
dWFkIDogcHVibGljIFdlYkNvbXBvc2l0b3JRdWFkIHsKIHB1YmxpYzoKICNpZiBXRUJLSVRfSU1Q
TEVNRU5UQVRJT04KLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJDb21wb3NpdG9ySU9TdXJmYWNl
UXVhZD4gY3JlYXRlKGNvbnN0IFdlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW9TdXJmYWNlU2l6ZSwg
dW5zaWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJD
b21wb3NpdG9ySU9TdXJmYWNlUXVhZD4gY3JlYXRlKGNvbnN0IFdlYkNvbXBvc2l0b3JTaGFyZWRR
dWFkU3RhdGUqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgaW9TdXJmYWNlU2l6ZSwgdW5zaWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkLCBib29sIGZsaXBw
ZWQpOwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBpb1N1cmZhY2VTaXplKCkgY29uc3QgeyByZXR1
cm4gbV9pb1N1cmZhY2VTaXplOyB9CiAgICAgdW5zaWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkKCkg
Y29uc3QgeyByZXR1cm4gbV9pb1N1cmZhY2VUZXh0dXJlSWQ7IH0KKyAgICBib29sIGZsaXBwZWQo
KSBjb25zdCB7IHJldHVybiBtX2ZsaXBwZWQ7IH0KICNlbmRpZgogCiAgICAgc3RhdGljIGNvbnN0
IFdlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkKiBtYXRlcmlhbENhc3QoY29uc3QgV2ViQ29tcG9z
aXRvclF1YWQqKTsKIHByaXZhdGU6CiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCi0gICAgV2Vi
Q29tcG9zaXRvcklPU3VyZmFjZVF1YWQoY29uc3QgV2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0
ZSosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpb1N1
cmZhY2VTaXplLCB1bnNpZ25lZCBpb1N1cmZhY2VUZXh0dXJlSWQpOworICAgIFdlYkNvbXBvc2l0
b3JJT1N1cmZhY2VRdWFkKGNvbnN0IFdlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW9TdXJmYWNlU2l6
ZSwgdW5zaWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkLCBib29sIGZsaXBwZWQpOwogI2VuZGlmCiAK
ICAgICBXZWJTaXplIG1faW9TdXJmYWNlU2l6ZTsKICAgICB1bnNpZ25lZCBtX2lvU3VyZmFjZVRl
eHR1cmVJZDsKKyAgICBib29sIG1fZmxpcHBlZDsKIH07CiAKICNwcmFnbWEgcGFjayhwb3ApCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjI4NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0wNy0xNyAgU2FpbGVzaCBB
Z3Jhd2FsICA8c2FpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ2hyb21pdW0gTWFjOiBBZGQg
VEVYVFVSRV9SRUNUQU5HTEVfQVJCIHN1cHBvcnQgdG8gQ0NWaWRlb0xheWVySW1wbAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTExNjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGV4dGVuZHMgQ0NW
aWRlb0xheWVySW1wbCB0byBzdXBwb3J0IFRFWFRVUkVfUkVDVEFOR0xFX0FSQi4gVGhpcyB0ZXh0
dXJlIHRhcmdldCBpcyB1c2VkIGJ5IHRoZSBNYWMgaGFyZHdhcmUgYWNjZWxlcmF0ZWQgdmlkZW8g
ZGVjb2Rlci4KKworICAgICAgICBObyBuZXcgdGVzdHMgKEhXIHZpZGVvIGRlY29kZSBvbiBNYWMg
aXMgYmVpbmcgdGVzdGVkIG1hbnVhbGx5LikuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9zdXBwb3J0L1dlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQ6OmNyZWF0ZSk6IEFkZGVkIGEgZmxpcHBlZCBh
cmd1bWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQ6Oldl
YkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkKTogQWRkZWQgYSBmbGlwcGVkIGFyZ3VtZW50LgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdJT1N1cmZh
Y2VRdWFkKTogQWRkZWQgc3VwcG9ydCBmb3Igbm9uLWZsaXBwZWQgSU9TdXJmYWNlIHRleHR1cmVz
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5oOgorICAgICAgICAoTGF5ZXJSZW5kZXJlckNocm9taXVtKTogQ2hhbmdlZCBUZXh0dXJl
SU9TdXJmYWNlUHJvZ3JhbSB0byBiZSBub24tZmxpcHBlZC4gVG8gZHJhdyBmbGlwcGVkIHRleHR1
cmVzIGRyYXdJT1N1cmZhY2VRdWFkIHNldHMgYSBkaWZmZXJlbnQgdmFsdWUgZm9yIHRleFRyYW5z
Zm9ybUxvY2F0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SU9TdXJmYWNlTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDSU9TdXJmYWNlTGF5
ZXJJbXBsOjphcHBlbmRRdWFkcyk6IFVwZGF0ZWQgY2FsbCB0byBDQ1N0cmVhbVZpZGVvRHJhd1F1
YWQgY29uc3RydWN0b3IuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NWaWRlb0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJbXBs
OjphcHBlbmRRdWFkcyk6IEFkZGVkIHN1cHBvcnQgZm9yIGRyYXdpbmcgVEVYVFVSRV9SRUNUQU5H
TEVfQVJCIHRleHR1cmVzLgorCiAyMDEyLTA3LTE3ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBJbmNvcnJlY3Qgb2Zmc2V0IHVzZWQgZm9yIHNjcm9sbFdpZHRo
L0hlaWdodCBjYWxjdWxhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9XZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJDb21wb3NpdG9ySU9T
dXJmYWNlUXVhZC5jcHAJKHJldmlzaW9uIDEyMjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSwxNSArMzEsMTYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzT3duUHRyPFdlYkNvbXBvc2l0b3JJT1N1cmZhY2VR
dWFkPiBXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZDo6Y3JlYXRlKGNvbnN0IFdlYkNvbXBvc2l0
b3JTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJl
Y3QsIGNvbnN0IEludFNpemUmIGlvU3VyZmFjZVNpemUsIHVuc2lnbmVkIGlvU3VyZmFjZVRleHR1
cmVJZCkKK1Bhc3NPd25QdHI8V2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQ+IFdlYkNvbXBvc2l0
b3JJT1N1cmZhY2VRdWFkOjpjcmVhdGUoY29uc3QgV2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0
ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgY29uc3QgSW50U2l6
ZSYgaW9TdXJmYWNlU2l6ZSwgdW5zaWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkLCBib29sIGZsaXBw
ZWQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVh
ZChzaGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCBpb1N1cmZhY2VTaXplLCBpb1N1cmZhY2VUZXh0
dXJlSWQpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYkNvbXBvc2l0b3JJT1N1cmZhY2VR
dWFkKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIGlvU3VyZmFjZVNpemUsIGlvU3VyZmFjZVRl
eHR1cmVJZCwgZmxpcHBlZCkpOwogfQogCi1XZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZDo6V2Vi
Q29tcG9zaXRvcklPU3VyZmFjZVF1YWQoY29uc3QgV2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0
ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgY29uc3QgSW50U2l6
ZSYgaW9TdXJmYWNlU2l6ZSwgdW5zaWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkKQorV2ViQ29tcG9z
aXRvcklPU3VyZmFjZVF1YWQ6OldlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkKGNvbnN0IFdlYkNv
bXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50UmVjdCYg
cXVhZFJlY3QsIGNvbnN0IEludFNpemUmIGlvU3VyZmFjZVNpemUsIHVuc2lnbmVkIGlvU3VyZmFj
ZVRleHR1cmVJZCwgYm9vbCBmbGlwcGVkKQogICAgIDogV2ViQ29tcG9zaXRvclF1YWQoc2hhcmVk
UXVhZFN0YXRlLCBXZWJDb21wb3NpdG9yUXVhZDo6SU9TdXJmYWNlQ29udGVudCwgcXVhZFJlY3Qp
CiAgICAgLCBtX2lvU3VyZmFjZVNpemUoaW9TdXJmYWNlU2l6ZSkKICAgICAsIG1faW9TdXJmYWNl
VGV4dHVyZUlkKGlvU3VyZmFjZVRleHR1cmVJZCkKKyAgICAsIG1fZmxpcHBlZChmbGlwcGVkKQog
ewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDEyMjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNzMsNyArMTA3
MywxMCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0lPU3VyZmFjCiAKICAgICBH
TEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVzZVByb2dyYW0oYmluZGluZy5wcm9ncmFtSWQpKTsK
ICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVuaWZvcm0xaShiaW5kaW5nLnNhbXBsZXJM
b2NhdGlvbiwgMCkpOwotICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+dW5pZm9ybTRmKGJp
bmRpbmcudGV4VHJhbnNmb3JtTG9jYXRpb24sIDAsIDAsIHF1YWQtPmlvU3VyZmFjZVNpemUoKS53
aWR0aCgpLCBxdWFkLT5pb1N1cmZhY2VTaXplKCkuaGVpZ2h0KCkpKTsKKyAgICBpZiAocXVhZC0+
ZmxpcHBlZCgpKQorICAgICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVuaWZvcm00Zihi
aW5kaW5nLnRleFRyYW5zZm9ybUxvY2F0aW9uLCAwLCBxdWFkLT5pb1N1cmZhY2VTaXplKCkuaGVp
Z2h0KCksIHF1YWQtPmlvU3VyZmFjZVNpemUoKS53aWR0aCgpLCBxdWFkLT5pb1N1cmZhY2VTaXpl
KCkuaGVpZ2h0KCkgKiAtMS4wKSk7CisgICAgZWxzZQorICAgICAgICBHTEMoY29udGV4dCgpLCBj
b250ZXh0KCktPnVuaWZvcm00ZihiaW5kaW5nLnRleFRyYW5zZm9ybUxvY2F0aW9uLCAwLCAwLCBx
dWFkLT5pb1N1cmZhY2VTaXplKCkud2lkdGgoKSwgcXVhZC0+aW9TdXJmYWNlU2l6ZSgpLmhlaWdo
dCgpKSk7CiAKICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPmFjdGl2ZVRleHR1cmUoR3Jh
cGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKSk7CiAgICAgR0xDKGNvbnRleHQoKSwgY29udGV4dCgp
LT5iaW5kVGV4dHVyZShFeHRlbnNpb25zM0Q6OlRFWFRVUkVfUkVDVEFOR0xFX0FSQiwgcXVhZC0+
aW9TdXJmYWNlVGV4dHVyZUlkKCkpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5oCShyZXZpc2lvbiAxMjI0NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAt
MjAwLDcgKzIwMCw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGV4dHVyZSBzaGFkZXJzLgogICAgIHR5
cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtLCBGcmFnbWVu
dFNoYWRlclJHQkFUZXhBbHBoYT4gVGV4dHVyZVByb2dyYW07CiAgICAgdHlwZWRlZiBQcm9ncmFt
QmluZGluZzxWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm0sIEZyYWdtZW50U2hhZGVyUkdCQVRl
eEZsaXBBbHBoYT4gVGV4dHVyZVByb2dyYW1GbGlwOwotICAgIHR5cGVkZWYgUHJvZ3JhbUJpbmRp
bmc8VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtLCBGcmFnbWVudFNoYWRlclJHQkFUZXhSZWN0
RmxpcEFscGhhPiBUZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbTsKKyAgICB0eXBlZGVmIFByb2dyYW1C
aW5kaW5nPFZlcnRleFNoYWRlclBvc1RleFRyYW5zZm9ybSwgRnJhZ21lbnRTaGFkZXJSR0JBVGV4
UmVjdEFscGhhPiBUZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbTsKIAogICAgIC8vIFZpZGVvIHNoYWRl
cnMuCiAgICAgdHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhTaGFkZXJWaWRlb1RyYW5zZm9y
bSwgRnJhZ21lbnRTaGFkZXJPRVNJbWFnZUV4dGVybmFsPiBWaWRlb1N0cmVhbVRleHR1cmVQcm9n
cmFtOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NJT1N1cmZhY2VMYXllckltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmNwcAkocmV2
aXNpb24gMTIyNDU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NJT1N1cmZhY2VMYXllckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5
OSw3IEBAIHZvaWQgQ0NJT1N1cmZhY2VMYXllckltcGw6OndpbGxEcmF3KENDUmUKIHZvaWQgQ0NJ
T1N1cmZhY2VMYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVhZEN1bGxlciYgcXVhZExpc3QsIGNv
bnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUsIGJvb2wmKQogewogICAgIElu
dFJlY3QgcXVhZFJlY3QoSW50UG9pbnQoKSwgYm91bmRzKCkpOwotICAgIHF1YWRMaXN0LmFwcGVu
ZChDQ0lPU3VyZmFjZURyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwg
bV9pb1N1cmZhY2VTaXplLCBtX2lvU3VyZmFjZVRleHR1cmVJZCkpOworICAgIHF1YWRMaXN0LmFw
cGVuZChDQ0lPU3VyZmFjZURyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVj
dCwgbV9pb1N1cmZhY2VTaXplLCBtX2lvU3VyZmFjZVRleHR1cmVJZCwgdHJ1ZSkpOwogfQogCiB2
b2lkIENDSU9TdXJmYWNlTGF5ZXJJbXBsOjpkdW1wTGF5ZXJQcm9wZXJ0aWVzKFRleHRTdHJlYW0m
IHRzLCBpbnQgaW5kZW50KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1w
bC5jcHAJKHJldmlzaW9uIDEyMjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw2ICszNyw3IEBACiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2luY2x1ZGUgIlRleHR1cmVN
YW5hZ2VyLmgiIC8vIEZvciBUZXh0dXJlQWxsb2NhdG9yCiAjaW5jbHVkZSAiY2MvQ0NHcmFwaGlj
c0NvbnRleHQuaCIKKyNpbmNsdWRlICJjYy9DQ0lPU3VyZmFjZURyYXdRdWFkLmgiCiAjaW5jbHVk
ZSAiY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oIgogI2luY2x1ZGUgImNjL0NDUHJveHkuaCIKICNp
bmNsdWRlICJjYy9DQ1F1YWRDdWxsZXIuaCIKQEAgLTIyMiw2ICsyMjMsMTIgQEAgdm9pZCBDQ1Zp
ZGVvTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YQogICAgICAgICBxdWFkTGlzdC5hcHBlbmQo
dGV4dHVyZVF1YWQucmVsZWFzZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2Ug
RXh0ZW5zaW9uczNEOjpURVhUVVJFX1JFQ1RBTkdMRV9BUkI6IHsKKyAgICAgICAgSW50U2l6ZSB0
ZXh0dXJlU2l6ZShtX2ZyYW1lLT53aWR0aCgpLCBtX2ZyYW1lLT5oZWlnaHQoKSk7IAorICAgICAg
ICBPd25QdHI8Q0NJT1N1cmZhY2VEcmF3UXVhZD4gaW9TdXJmYWNlUXVhZCA9IENDSU9TdXJmYWNl
RHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0LCB0ZXh0dXJlU2l6ZSwg
bV9mcmFtZS0+dGV4dHVyZUlkKCksIGZhbHNlKTsKKyAgICAgICAgcXVhZExpc3QuYXBwZW5kKGlv
U3VyZmFjZVF1YWQucmVsZWFzZSgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2Ug
RXh0ZW5zaW9uczNEQ2hyb21pdW06OkdMX1RFWFRVUkVfRVhURVJOQUxfT0VTOiB7CiAgICAgICAg
IC8vIFN0cmVhbVRleHR1cmUgaGFyZHdhcmUgZGVjb2Rlci4KICAgICAgICAgT3duUHRyPENDU3Ry
ZWFtVmlkZW9EcmF3UXVhZD4gc3RyZWFtVmlkZW9RdWFkID0gQ0NTdHJlYW1WaWRlb0RyYXdRdWFk
OjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgbV9mcmFtZS0+dGV4dHVyZUlkKCks
IG1fc3RyZWFtVGV4dHVyZU1hdHJpeCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153058</attachid>
            <date>2012-07-18 11:37:16 -0700</date>
            <delta_ts>2012-07-18 12:14:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91169-20120718113715.patch</filename>
            <type>text/plain</type>
            <size>10610</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyOTkxKQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA3LTE4ICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaHJvbWl1bSBNYWM6
IEFkZCBURVhUVVJFX1JFQ1RBTkdMRV9BUkIgc3VwcG9ydCB0byBDQ1ZpZGVvTGF5ZXJJbXBsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTE2OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgIm9y
aWVudGF0aW9uIiBmaWVsZCB0byBXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZC4gVGhpcyBpcyB1
c2VkIGF0IGRyYXcgdGltZSB0byBmbGlwIHRoZSB0ZXh0dXJlIGlmIG5lY2Vzc2FyeS4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZC5oOiBBZGRl
ZCBvcmllbnRhdGlvbiBmaWVsZCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJLaXQ6
OldlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkOjpvcmllbnRhdGlvbik6CisgICAgICAgIChXZWJD
b21wb3NpdG9ySU9TdXJmYWNlUXVhZCk6IFRoZSBuZXcgb3JpZW50YXRpb24gZmllbGQgc2hvdWxk
IGJlIHNldCB0byBGbGlwcGVkIGlmIHRoZSB0ZXh0dXJlIHNob3VsZCBiZSBmbGlwcGVkIHdoZW4g
ZHJhd2luZy4KKwogMjAxMi0wNy0xMyAgVG9ueSBQYXluZSAgPHRwYXluZUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmVtb3ZlIFdpZGdldCBmcm9tIHNjcmVlbkNvbG9yUHJvZmlsZQpJbmRleDog
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVh
ZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29t
cG9zaXRvcklPU3VyZmFjZVF1YWQuaAkocmV2aXNpb24gMTIyNDU3KQorKysgU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNywyMCArMzcsMjcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJD
b21wb3NpdG9ySU9TdXJmYWNlUXVhZCA6IHB1YmxpYyBXZWJDb21wb3NpdG9yUXVhZCB7CiBwdWJs
aWM6CiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCi0gICAgc3RhdGljIFBhc3NPd25QdHI8V2Vi
Q29tcG9zaXRvcklPU3VyZmFjZVF1YWQ+IGNyZWF0ZShjb25zdCBXZWJDb21wb3NpdG9yU2hhcmVk
UXVhZFN0YXRlKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIGlvU3VyZmFjZVNpemUsIHVuc2lnbmVkIGlvU3VyZmFjZVRleHR1cmVJZCk7CisgICAgZW51
bSBPcmllbnRhdGlvbiB7CisgICAgICBGbGlwcGVkLAorICAgICAgVW5mbGlwcGVkCisgICAgfTsK
KworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkPiBjcmVh
dGUoY29uc3QgV2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0ZSosIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpb1N1cmZhY2VTaXplLCB1bnNpZ25lZCBp
b1N1cmZhY2VUZXh0dXJlSWQsIE9yaWVudGF0aW9uKTsKIAogICAgIFdlYkNvcmU6OkludFNpemUg
aW9TdXJmYWNlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW9TdXJmYWNlU2l6ZTsgfQogICAgIHVu
c2lnbmVkIGlvU3VyZmFjZVRleHR1cmVJZCgpIGNvbnN0IHsgcmV0dXJuIG1faW9TdXJmYWNlVGV4
dHVyZUlkOyB9CisgICAgT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBt
X29yaWVudGF0aW9uOyB9CiAjZW5kaWYKIAogICAgIHN0YXRpYyBjb25zdCBXZWJDb21wb3NpdG9y
SU9TdXJmYWNlUXVhZCogbWF0ZXJpYWxDYXN0KGNvbnN0IFdlYkNvbXBvc2l0b3JRdWFkKik7CiBw
cml2YXRlOgogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIFdlYkNvbXBvc2l0b3JJT1N1
cmZhY2VRdWFkKGNvbnN0IFdlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW9TdXJmYWNlU2l6ZSwgdW5z
aWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkKTsKKyAgICBXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVh
ZChjb25zdCBXZWJDb21wb3NpdG9yU2hhcmVkUXVhZFN0YXRlKiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGlvU3VyZmFjZVNpemUsIHVuc2lnbmVkIGlv
U3VyZmFjZVRleHR1cmVJZCwgT3JpZW50YXRpb24pOwogI2VuZGlmCiAKICAgICBXZWJTaXplIG1f
aW9TdXJmYWNlU2l6ZTsKICAgICB1bnNpZ25lZCBtX2lvU3VyZmFjZVRleHR1cmVJZDsKKyAgICBP
cmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwogfTsKIAogI3ByYWdtYSBwYWNrKHBvcCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMjk5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA3LTE4ICBTYWlsZXNoIEFncmF3
YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaHJvbWl1bSBNYWM6IEFkZCBURVhU
VVJFX1JFQ1RBTkdMRV9BUkIgc3VwcG9ydCB0byBDQ1ZpZGVvTGF5ZXJJbXBsCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTE2OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZXh0ZW5kcyBDQ1ZpZGVv
TGF5ZXJJbXBsIHRvIHN1cHBvcnQgVEVYVFVSRV9SRUNUQU5HTEVfQVJCLiBUaGlzIHRleHR1cmUg
dGFyZ2V0IGlzIHVzZWQgYnkgdGhlIE1hYyBoYXJkd2FyZSBhY2NlbGVyYXRlZCB2aWRlbyBkZWNv
ZGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoSFcgdmlkZW8gZGVjb2RlIG9uIE1hYyBpcyBi
ZWluZyB0ZXN0ZWQgbWFudWFsbHkuKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvV2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZDo6Y3JlYXRlKTogQWRkZWQgYW4gb3JpZW50YXRpb24g
YXJndW1lbnQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkOjpX
ZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZCk6IEFkZGVkIGFuIG9yaWVudGF0aW9uIGFyZ3VtZW50
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdJ
T1N1cmZhY2VRdWFkKTogQWRkZWQgc3VwcG9ydCBmb3Igbm9uLWZsaXBwZWQgSU9TdXJmYWNlIHRl
eHR1cmVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5oOgorICAgICAgICAoTGF5ZXJSZW5kZXJlckNocm9taXVtKTogQ2hhbmdlZCBU
ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbSB0byBiZSBub24tZmxpcHBlZC4gVG8gZHJhdyBmbGlwcGVk
IHRleHR1cmVzIGRyYXdJT1N1cmZhY2VRdWFkIHNldHMgYSBkaWZmZXJlbnQgdmFsdWUgZm9yIHRl
eFRyYW5zZm9ybUxvY2F0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDSU9TdXJm
YWNlTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyk6IFVwZGF0ZWQgY2FsbCB0byBDQ0lPU3VyZmFjZURy
YXdRdWFkIGNvbnN0cnVjdG9yLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVmlkZW9MYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NWaWRlb0xheWVy
SW1wbDo6YXBwZW5kUXVhZHMpOiBBZGRlZCBzdXBwb3J0IGZvciBkcmF3aW5nIFRFWFRVUkVfUkVD
VEFOR0xFX0FSQiB0ZXh0dXJlcy4KKwogMjAxMi0wNy0xOCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjI5ODQuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkNvbXBvc2l0
b3JJT1N1cmZhY2VRdWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L1dlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkLmNwcAkocmV2aXNp
b24gMTIyNDU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9X
ZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE1ICsz
MSwxNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
LVBhc3NPd25QdHI8V2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQ+IFdlYkNvbXBvc2l0b3JJT1N1
cmZhY2VRdWFkOjpjcmVhdGUoY29uc3QgV2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0ZSogc2hh
cmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVjdCwgY29uc3QgSW50U2l6ZSYgaW9T
dXJmYWNlU2l6ZSwgdW5zaWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkKQorUGFzc093blB0cjxXZWJD
b21wb3NpdG9ySU9TdXJmYWNlUXVhZD4gV2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQ6OmNyZWF0
ZShjb25zdCBXZWJDb21wb3NpdG9yU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUsIGNv
bnN0IEludFJlY3QmIHF1YWRSZWN0LCBjb25zdCBJbnRTaXplJiBpb1N1cmZhY2VTaXplLCB1bnNp
Z25lZCBpb1N1cmZhY2VUZXh0dXJlSWQsIE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgV2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQoc2hhcmVkUXVh
ZFN0YXRlLCBxdWFkUmVjdCwgaW9TdXJmYWNlU2l6ZSwgaW9TdXJmYWNlVGV4dHVyZUlkKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZChzaGFyZWRR
dWFkU3RhdGUsIHF1YWRSZWN0LCBpb1N1cmZhY2VTaXplLCBpb1N1cmZhY2VUZXh0dXJlSWQsIG9y
aWVudGF0aW9uKSk7CiB9CiAKLVdlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkOjpXZWJDb21wb3Np
dG9ySU9TdXJmYWNlUXVhZChjb25zdCBXZWJDb21wb3NpdG9yU2hhcmVkUXVhZFN0YXRlKiBzaGFy
ZWRRdWFkU3RhdGUsIGNvbnN0IEludFJlY3QmIHF1YWRSZWN0LCBjb25zdCBJbnRTaXplJiBpb1N1
cmZhY2VTaXplLCB1bnNpZ25lZCBpb1N1cmZhY2VUZXh0dXJlSWQpCitXZWJDb21wb3NpdG9ySU9T
dXJmYWNlUXVhZDo6V2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQoY29uc3QgV2ViQ29tcG9zaXRv
clNoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBjb25zdCBJbnRSZWN0JiBxdWFkUmVj
dCwgY29uc3QgSW50U2l6ZSYgaW9TdXJmYWNlU2l6ZSwgdW5zaWduZWQgaW9TdXJmYWNlVGV4dHVy
ZUlkLCBPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKICAgICA6IFdlYkNvbXBvc2l0b3JRdWFkKHNo
YXJlZFF1YWRTdGF0ZSwgV2ViQ29tcG9zaXRvclF1YWQ6OklPU3VyZmFjZUNvbnRlbnQsIHF1YWRS
ZWN0KQogICAgICwgbV9pb1N1cmZhY2VTaXplKGlvU3VyZmFjZVNpemUpCiAgICAgLCBtX2lvU3Vy
ZmFjZVRleHR1cmVJZChpb1N1cmZhY2VUZXh0dXJlSWQpCisgICAgLCBtX29yaWVudGF0aW9uKG9y
aWVudGF0aW9uKQogewogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1
bS5jcHAJKHJldmlzaW9uIDEyMjQ1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwNzMsNyArMTA3MywxMCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0lPU3Vy
ZmFjCiAKICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVzZVByb2dyYW0oYmluZGluZy5w
cm9ncmFtSWQpKTsKICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVuaWZvcm0xaShiaW5k
aW5nLnNhbXBsZXJMb2NhdGlvbiwgMCkpOwotICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+
dW5pZm9ybTRmKGJpbmRpbmcudGV4VHJhbnNmb3JtTG9jYXRpb24sIDAsIDAsIHF1YWQtPmlvU3Vy
ZmFjZVNpemUoKS53aWR0aCgpLCBxdWFkLT5pb1N1cmZhY2VTaXplKCkuaGVpZ2h0KCkpKTsKKyAg
ICBpZiAocXVhZC0+b3JpZW50YXRpb24oKSA9PSBDQ0lPU3VyZmFjZURyYXdRdWFkOjpGbGlwcGVk
KQorICAgICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPnVuaWZvcm00ZihiaW5kaW5nLnRl
eFRyYW5zZm9ybUxvY2F0aW9uLCAwLCBxdWFkLT5pb1N1cmZhY2VTaXplKCkuaGVpZ2h0KCksIHF1
YWQtPmlvU3VyZmFjZVNpemUoKS53aWR0aCgpLCBxdWFkLT5pb1N1cmZhY2VTaXplKCkuaGVpZ2h0
KCkgKiAtMS4wKSk7CisgICAgZWxzZQorICAgICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCkt
PnVuaWZvcm00ZihiaW5kaW5nLnRleFRyYW5zZm9ybUxvY2F0aW9uLCAwLCAwLCBxdWFkLT5pb1N1
cmZhY2VTaXplKCkud2lkdGgoKSwgcXVhZC0+aW9TdXJmYWNlU2l6ZSgpLmhlaWdodCgpKSk7CiAK
ICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkUwKSk7CiAgICAgR0xDKGNvbnRleHQoKSwgY29udGV4dCgpLT5iaW5kVGV4
dHVyZShFeHRlbnNpb25zM0Q6OlRFWFRVUkVfUkVDVEFOR0xFX0FSQiwgcXVhZC0+aW9TdXJmYWNl
VGV4dHVyZUlkKCkpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCShy
ZXZpc2lvbiAxMjI0NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDcgKzIw
MCw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGV4dHVyZSBzaGFkZXJzLgogICAgIHR5cGVkZWYgUHJv
Z3JhbUJpbmRpbmc8VmVydGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtLCBGcmFnbWVudFNoYWRlclJH
QkFUZXhBbHBoYT4gVGV4dHVyZVByb2dyYW07CiAgICAgdHlwZWRlZiBQcm9ncmFtQmluZGluZzxW
ZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm0sIEZyYWdtZW50U2hhZGVyUkdCQVRleEZsaXBBbHBo
YT4gVGV4dHVyZVByb2dyYW1GbGlwOwotICAgIHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVydGV4
U2hhZGVyUG9zVGV4VHJhbnNmb3JtLCBGcmFnbWVudFNoYWRlclJHQkFUZXhSZWN0RmxpcEFscGhh
PiBUZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbTsKKyAgICB0eXBlZGVmIFByb2dyYW1CaW5kaW5nPFZl
cnRleFNoYWRlclBvc1RleFRyYW5zZm9ybSwgRnJhZ21lbnRTaGFkZXJSR0JBVGV4UmVjdEFscGhh
PiBUZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbTsKIAogICAgIC8vIFZpZGVvIHNoYWRlcnMuCiAgICAg
dHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhTaGFkZXJWaWRlb1RyYW5zZm9ybSwgRnJhZ21l
bnRTaGFkZXJPRVNJbWFnZUV4dGVybmFsPiBWaWRlb1N0cmVhbVRleHR1cmVQcm9ncmFtOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NJT1N1cmZh
Y2VMYXllckltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmNwcAkocmV2aXNpb24gMTIy
NDU3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NJ
T1N1cmZhY2VMYXllckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw3IEBAIHZv
aWQgQ0NJT1N1cmZhY2VMYXllckltcGw6OndpbGxEcmF3KENDUmUKIHZvaWQgQ0NJT1N1cmZhY2VM
YXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVhZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hh
cmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUsIGJvb2wmKQogewogICAgIEludFJlY3QgcXVh
ZFJlY3QoSW50UG9pbnQoKSwgYm91bmRzKCkpOwotICAgIHF1YWRMaXN0LmFwcGVuZChDQ0lPU3Vy
ZmFjZURyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgbV9pb1N1cmZh
Y2VTaXplLCBtX2lvU3VyZmFjZVRleHR1cmVJZCkpOworICAgIHF1YWRMaXN0LmFwcGVuZChDQ0lP
U3VyZmFjZURyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgbV9pb1N1
cmZhY2VTaXplLCBtX2lvU3VyZmFjZVRleHR1cmVJZCwgQ0NJT1N1cmZhY2VEcmF3UXVhZDo6Rmxp
cHBlZCkpOwogfQogCiB2b2lkIENDSU9TdXJmYWNlTGF5ZXJJbXBsOjpkdW1wTGF5ZXJQcm9wZXJ0
aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25zdApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NWaWRlb0xheWVySW1wbC5jcHAJKHJldmlzaW9uIDEyMjQ1NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5oIgogI2lu
Y2x1ZGUgIlRleHR1cmVNYW5hZ2VyLmgiIC8vIEZvciBUZXh0dXJlQWxsb2NhdG9yCiAjaW5jbHVk
ZSAiY2MvQ0NHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJjYy9DQ0lPU3VyZmFjZURyYXdR
dWFkLmgiCiAjaW5jbHVkZSAiY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oIgogI2luY2x1ZGUgImNj
L0NDUHJveHkuaCIKICNpbmNsdWRlICJjYy9DQ1F1YWRDdWxsZXIuaCIKQEAgLTIyMiw2ICsyMjMs
MTIgQEAgdm9pZCBDQ1ZpZGVvTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YQogICAgICAgICBx
dWFkTGlzdC5hcHBlbmQodGV4dHVyZVF1YWQucmVsZWFzZSgpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpURVhUVVJFX1JFQ1RBTkdMRV9BUkI6IHsKKyAg
ICAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZShtX2ZyYW1lLT53aWR0aCgpLCBtX2ZyYW1lLT5oZWln
aHQoKSk7IAorICAgICAgICBPd25QdHI8Q0NJT1N1cmZhY2VEcmF3UXVhZD4gaW9TdXJmYWNlUXVh
ZCA9IENDSU9TdXJmYWNlRHJhd1F1YWQ6OmNyZWF0ZShzaGFyZWRRdWFkU3RhdGUsIHF1YWRSZWN0
LCB0ZXh0dXJlU2l6ZSwgbV9mcmFtZS0+dGV4dHVyZUlkKCksIENDSU9TdXJmYWNlRHJhd1F1YWQ6
OlVuZmxpcHBlZCk7CisgICAgICAgIHF1YWRMaXN0LmFwcGVuZChpb1N1cmZhY2VRdWFkLnJlbGVh
c2UoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIEV4dGVuc2lvbnMzRENocm9t
aXVtOjpHTF9URVhUVVJFX0VYVEVSTkFMX09FUzogewogICAgICAgICAvLyBTdHJlYW1UZXh0dXJl
IGhhcmR3YXJlIGRlY29kZXIuCiAgICAgICAgIE93blB0cjxDQ1N0cmVhbVZpZGVvRHJhd1F1YWQ+
IHN0cmVhbVZpZGVvUXVhZCA9IENDU3RyZWFtVmlkZW9EcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1
YWRTdGF0ZSwgcXVhZFJlY3QsIG1fZnJhbWUtPnRleHR1cmVJZCgpLCBtX3N0cmVhbVRleHR1cmVN
YXRyaXgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153064</attachid>
            <date>2012-07-18 12:14:44 -0700</date>
            <delta_ts>2012-07-18 13:25:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91169-20120718121443.patch</filename>
            <type>text/plain</type>
            <size>10651</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTIyOTk3KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA3LTE4ICBTYWls
ZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaHJvbWl1bSBNYWM6
IEFkZCBURVhUVVJFX1JFQ1RBTkdMRV9BUkIgc3VwcG9ydCB0byBDQ1ZpZGVvTGF5ZXJJbXBsCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTE2OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgIm9y
aWVudGF0aW9uIiBmaWVsZCB0byBXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZC4gVGhpcyBpcyB1
c2VkIGF0IGRyYXcgdGltZSB0byBmbGlwIHRoZSB0ZXh0dXJlIGlmIG5lY2Vzc2FyeS4KKworICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZC5oOiBBZGRl
ZCBvcmllbnRhdGlvbiBmaWVsZCB0byB0aGUgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJLaXQ6
OldlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkOjpvcmllbnRhdGlvbik6CisgICAgICAgIChXZWJD
b21wb3NpdG9ySU9TdXJmYWNlUXVhZCk6IFRoZSBuZXcgb3JpZW50YXRpb24gZmllbGQgc2hvdWxk
IGJlIHNldCB0byBGbGlwcGVkIGlmIHRoZSB0ZXh0dXJlIHNob3VsZCBiZSBmbGlwcGVkIHdoZW4g
ZHJhd2luZy4KKwogMjAxMi0wNy0xMyAgVG9ueSBQYXluZSAgPHRwYXluZUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmVtb3ZlIFdpZGdldCBmcm9tIHNjcmVlbkNvbG9yUHJvZmlsZQpJbmRleDog
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVh
ZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViQ29t
cG9zaXRvcklPU3VyZmFjZVF1YWQuaAkocmV2aXNpb24gMTIyOTk3KQorKysgU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNywyMCArMzcsMjcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJD
b21wb3NpdG9ySU9TdXJmYWNlUXVhZCA6IHB1YmxpYyBXZWJDb21wb3NpdG9yUXVhZCB7CiBwdWJs
aWM6CiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCi0gICAgc3RhdGljIFBhc3NPd25QdHI8V2Vi
Q29tcG9zaXRvcklPU3VyZmFjZVF1YWQ+IGNyZWF0ZShjb25zdCBXZWJDb21wb3NpdG9yU2hhcmVk
UXVhZFN0YXRlKiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIGlvU3VyZmFjZVNpemUsIHVuc2lnbmVkIGlvU3VyZmFjZVRleHR1cmVJZCk7CisgICAgZW51
bSBPcmllbnRhdGlvbiB7CisgICAgICBGbGlwcGVkLAorICAgICAgVW5mbGlwcGVkCisgICAgfTsK
KworICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkPiBjcmVh
dGUoY29uc3QgV2ViQ29tcG9zaXRvclNoYXJlZFF1YWRTdGF0ZSosIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBpb1N1cmZhY2VTaXplLCB1bnNpZ25lZCBp
b1N1cmZhY2VUZXh0dXJlSWQsIE9yaWVudGF0aW9uKTsKIAogICAgIFdlYkNvcmU6OkludFNpemUg
aW9TdXJmYWNlU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW9TdXJmYWNlU2l6ZTsgfQogICAgIHVu
c2lnbmVkIGlvU3VyZmFjZVRleHR1cmVJZCgpIGNvbnN0IHsgcmV0dXJuIG1faW9TdXJmYWNlVGV4
dHVyZUlkOyB9CisgICAgT3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBt
X29yaWVudGF0aW9uOyB9CiAjZW5kaWYKIAogICAgIHN0YXRpYyBjb25zdCBXZWJDb21wb3NpdG9y
SU9TdXJmYWNlUXVhZCogbWF0ZXJpYWxDYXN0KGNvbnN0IFdlYkNvbXBvc2l0b3JRdWFkKik7CiBw
cml2YXRlOgogI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIFdlYkNvbXBvc2l0b3JJT1N1
cmZhY2VRdWFkKGNvbnN0IFdlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgaW9TdXJmYWNlU2l6ZSwgdW5z
aWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkKTsKKyAgICBXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVh
ZChjb25zdCBXZWJDb21wb3NpdG9yU2hhcmVkUXVhZFN0YXRlKiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGlvU3VyZmFjZVNpemUsIHVuc2lnbmVkIGlv
U3VyZmFjZVRleHR1cmVJZCwgT3JpZW50YXRpb24pOwogI2VuZGlmCiAKICAgICBXZWJTaXplIG1f
aW9TdXJmYWNlU2l6ZTsKICAgICB1bnNpZ25lZCBtX2lvU3VyZmFjZVRleHR1cmVJZDsKKyAgICBP
cmllbnRhdGlvbiBtX29yaWVudGF0aW9uOwogfTsKIAogI3ByYWdtYSBwYWNrKHBvcCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMjk5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA3LTE4ICBTYWlsZXNoIEFncmF3
YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaHJvbWl1bSBNYWM6IEFkZCBURVhU
VVJFX1JFQ1RBTkdMRV9BUkIgc3VwcG9ydCB0byBDQ1ZpZGVvTGF5ZXJJbXBsCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTE2OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgZXh0ZW5kcyBDQ1ZpZGVv
TGF5ZXJJbXBsIHRvIHN1cHBvcnQgVEVYVFVSRV9SRUNUQU5HTEVfQVJCLiBUaGlzIHRleHR1cmUg
dGFyZ2V0IGlzIHVzZWQgYnkgdGhlIE1hYyBoYXJkd2FyZSBhY2NlbGVyYXRlZCB2aWRlbyBkZWNv
ZGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoSFcgdmlkZW8gZGVjb2RlIG9uIE1hYyBpcyBi
ZWluZyB0ZXN0ZWQgbWFudWFsbHkuKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1
cHBvcnQvV2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZDo6Y3JlYXRlKTogQWRkZWQgYW4gb3JpZW50YXRpb24g
YXJndW1lbnQuCisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkOjpX
ZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZCk6IEFkZGVkIGFuIG9yaWVudGF0aW9uIGFyZ3VtZW50
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdJ
T1N1cmZhY2VRdWFkKTogQWRkZWQgc3VwcG9ydCBmb3Igbm9uLWZsaXBwZWQgSU9TdXJmYWNlIHRl
eHR1cmVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5oOgorICAgICAgICAoTGF5ZXJSZW5kZXJlckNocm9taXVtKTogQ2hhbmdlZCBU
ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbSB0byBiZSBub24tZmxpcHBlZC4gVG8gZHJhdyBmbGlwcGVk
IHRleHR1cmVzIGRyYXdJT1N1cmZhY2VRdWFkIHNldHMgYSBkaWZmZXJlbnQgdmFsdWUgZm9yIHRl
eFRyYW5zZm9ybUxvY2F0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDSU9TdXJm
YWNlTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyk6IFVwZGF0ZWQgY2FsbCB0byBDQ0lPU3VyZmFjZURy
YXdRdWFkIGNvbnN0cnVjdG9yLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVmlkZW9MYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NWaWRlb0xheWVy
SW1wbDo6YXBwZW5kUXVhZHMpOiBBZGRlZCBzdXBwb3J0IGZvciBkcmF3aW5nIFRFWFRVUkVfUkVD
VEFOR0xFX0FSQiB0ZXh0dXJlcy4KKwogMjAxMi0wNy0xOCAgVmFydW4gSmFpbiAgPHZhcnVuamFp
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBEcmFnIGltYWdlIGZvciBpbWFn
ZSBlbGVtZW50cyBzaG91bGQgYmUgc2NhbGVkIHdpdGggZGV2aWNlIHNjYWxlIGZhY3Rvci4KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRv
cklPU3VyZmFjZVF1YWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL3N1cHBvcnQvV2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQuY3BwCShyZXZpc2lv
biAxMjI5OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dl
YkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTUgKzMx
LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
UGFzc093blB0cjxXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZD4gV2ViQ29tcG9zaXRvcklPU3Vy
ZmFjZVF1YWQ6OmNyZWF0ZShjb25zdCBXZWJDb21wb3NpdG9yU2hhcmVkUXVhZFN0YXRlKiBzaGFy
ZWRRdWFkU3RhdGUsIGNvbnN0IEludFJlY3QmIHF1YWRSZWN0LCBjb25zdCBJbnRTaXplJiBpb1N1
cmZhY2VTaXplLCB1bnNpZ25lZCBpb1N1cmZhY2VUZXh0dXJlSWQpCitQYXNzT3duUHRyPFdlYkNv
bXBvc2l0b3JJT1N1cmZhY2VRdWFkPiBXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZDo6Y3JlYXRl
KGNvbnN0IFdlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29u
c3QgSW50UmVjdCYgcXVhZFJlY3QsIGNvbnN0IEludFNpemUmIGlvU3VyZmFjZVNpemUsIHVuc2ln
bmVkIGlvU3VyZmFjZVRleHR1cmVJZCwgT3JpZW50YXRpb24gb3JpZW50YXRpb24pCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZChzaGFyZWRRdWFk
U3RhdGUsIHF1YWRSZWN0LCBpb1N1cmZhY2VTaXplLCBpb1N1cmZhY2VUZXh0dXJlSWQpKTsKKyAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYkNvbXBvc2l0b3JJT1N1cmZhY2VRdWFkKHNoYXJlZFF1
YWRTdGF0ZSwgcXVhZFJlY3QsIGlvU3VyZmFjZVNpemUsIGlvU3VyZmFjZVRleHR1cmVJZCwgb3Jp
ZW50YXRpb24pKTsKIH0KIAotV2ViQ29tcG9zaXRvcklPU3VyZmFjZVF1YWQ6OldlYkNvbXBvc2l0
b3JJT1N1cmZhY2VRdWFkKGNvbnN0IFdlYkNvbXBvc2l0b3JTaGFyZWRRdWFkU3RhdGUqIHNoYXJl
ZFF1YWRTdGF0ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJlY3QsIGNvbnN0IEludFNpemUmIGlvU3Vy
ZmFjZVNpemUsIHVuc2lnbmVkIGlvU3VyZmFjZVRleHR1cmVJZCkKK1dlYkNvbXBvc2l0b3JJT1N1
cmZhY2VRdWFkOjpXZWJDb21wb3NpdG9ySU9TdXJmYWNlUXVhZChjb25zdCBXZWJDb21wb3NpdG9y
U2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUsIGNvbnN0IEludFJlY3QmIHF1YWRSZWN0
LCBjb25zdCBJbnRTaXplJiBpb1N1cmZhY2VTaXplLCB1bnNpZ25lZCBpb1N1cmZhY2VUZXh0dXJl
SWQsIE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogICAgIDogV2ViQ29tcG9zaXRvclF1YWQoc2hh
cmVkUXVhZFN0YXRlLCBXZWJDb21wb3NpdG9yUXVhZDo6SU9TdXJmYWNlQ29udGVudCwgcXVhZFJl
Y3QpCiAgICAgLCBtX2lvU3VyZmFjZVNpemUoaW9TdXJmYWNlU2l6ZSkKICAgICAsIG1faW9TdXJm
YWNlVGV4dHVyZUlkKGlvU3VyZmFjZVRleHR1cmVJZCkKKyAgICAsIG1fb3JpZW50YXRpb24ob3Jp
ZW50YXRpb24pCiB7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVt
LmNwcAkocmV2aXNpb24gMTIyOTk3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTA3Miw3ICsxMDcyLDEwIEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjpkcmF3SU9TdXJm
YWMKIAogICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+dXNlUHJvZ3JhbShiaW5kaW5nLnBy
b2dyYW1JZCkpOwogICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+dW5pZm9ybTFpKGJpbmRp
bmcuc2FtcGxlckxvY2F0aW9uLCAwKSk7Ci0gICAgR0xDKGNvbnRleHQoKSwgY29udGV4dCgpLT51
bmlmb3JtNGYoYmluZGluZy50ZXhUcmFuc2Zvcm1Mb2NhdGlvbiwgMCwgMCwgcXVhZC0+aW9TdXJm
YWNlU2l6ZSgpLndpZHRoKCksIHF1YWQtPmlvU3VyZmFjZVNpemUoKS5oZWlnaHQoKSkpOworICAg
IGlmIChxdWFkLT5vcmllbnRhdGlvbigpID09IENDSU9TdXJmYWNlRHJhd1F1YWQ6OkZsaXBwZWQp
CisgICAgICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+dW5pZm9ybTRmKGJpbmRpbmcudGV4
VHJhbnNmb3JtTG9jYXRpb24sIDAsIHF1YWQtPmlvU3VyZmFjZVNpemUoKS5oZWlnaHQoKSwgcXVh
ZC0+aW9TdXJmYWNlU2l6ZSgpLndpZHRoKCksIHF1YWQtPmlvU3VyZmFjZVNpemUoKS5oZWlnaHQo
KSAqIC0xLjApKTsKKyAgICBlbHNlCisgICAgICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+
dW5pZm9ybTRmKGJpbmRpbmcudGV4VHJhbnNmb3JtTG9jYXRpb24sIDAsIDAsIHF1YWQtPmlvU3Vy
ZmFjZVNpemUoKS53aWR0aCgpLCBxdWFkLT5pb1N1cmZhY2VTaXplKCkuaGVpZ2h0KCkpKTsKIAog
ICAgIEdMQyhjb250ZXh0KCksIGNvbnRleHQoKS0+YWN0aXZlVGV4dHVyZShHcmFwaGljc0NvbnRl
eHQzRDo6VEVYVFVSRTApKTsKICAgICBHTEMoY29udGV4dCgpLCBjb250ZXh0KCktPmJpbmRUZXh0
dXJlKEV4dGVuc2lvbnMzRDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCLCBxdWFkLT5pb1N1cmZhY2VU
ZXh0dXJlSWQoKSkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgJKHJl
dmlzaW9uIDEyMjk5NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNyArMjAw
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBUZXh0dXJlIHNoYWRlcnMuCiAgICAgdHlwZWRlZiBQcm9n
cmFtQmluZGluZzxWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm0sIEZyYWdtZW50U2hhZGVyUkdC
QVRleEFscGhhPiBUZXh0dXJlUHJvZ3JhbTsKICAgICB0eXBlZGVmIFByb2dyYW1CaW5kaW5nPFZl
cnRleFNoYWRlclBvc1RleFRyYW5zZm9ybSwgRnJhZ21lbnRTaGFkZXJSR0JBVGV4RmxpcEFscGhh
PiBUZXh0dXJlUHJvZ3JhbUZsaXA7Ci0gICAgdHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhT
aGFkZXJQb3NUZXhUcmFuc2Zvcm0sIEZyYWdtZW50U2hhZGVyUkdCQVRleFJlY3RGbGlwQWxwaGE+
IFRleHR1cmVJT1N1cmZhY2VQcm9ncmFtOworICAgIHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVy
dGV4U2hhZGVyUG9zVGV4VHJhbnNmb3JtLCBGcmFnbWVudFNoYWRlclJHQkFUZXhSZWN0QWxwaGE+
IFRleHR1cmVJT1N1cmZhY2VQcm9ncmFtOwogCiAgICAgLy8gVmlkZW8gc2hhZGVycy4KICAgICB0
eXBlZGVmIFByb2dyYW1CaW5kaW5nPFZlcnRleFNoYWRlclZpZGVvVHJhbnNmb3JtLCBGcmFnbWVu
dFNoYWRlck9FU0ltYWdlRXh0ZXJuYWw+IFZpZGVvU3RyZWFtVGV4dHVyZVByb2dyYW07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lPU3VyZmFj
ZUxheWVySW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NJT1N1cmZhY2VMYXllckltcGwuY3BwCShyZXZpc2lvbiAxMjI5
OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lP
U3VyZmFjZUxheWVySW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgdm9p
ZCBDQ0lPU3VyZmFjZUxheWVySW1wbDo6d2lsbERyYXcoQ0NSZQogdm9pZCBDQ0lPU3VyZmFjZUxh
eWVySW1wbDo6YXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiBxdWFkTGlzdCwgY29uc3QgQ0NTaGFy
ZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgYm9vbCYpCiB7CiAgICAgSW50UmVjdCBxdWFk
UmVjdChJbnRQb2ludCgpLCBjb250ZW50Qm91bmRzKCkpOwotICAgIHF1YWRMaXN0LmFwcGVuZChD
Q0lPU3VyZmFjZURyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgbV9p
b1N1cmZhY2VTaXplLCBtX2lvU3VyZmFjZVRleHR1cmVJZCkpOworICAgIHF1YWRMaXN0LmFwcGVu
ZChDQ0lPU3VyZmFjZURyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwg
bV9pb1N1cmZhY2VTaXplLCBtX2lvU3VyZmFjZVRleHR1cmVJZCwgQ0NJT1N1cmZhY2VEcmF3UXVh
ZDo6RmxpcHBlZCkpOwogfQogCiB2b2lkIENDSU9TdXJmYWNlTGF5ZXJJbXBsOjpkdW1wTGF5ZXJQ
cm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAJKHJldmlzaW9uIDEyMjk5NykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiVGV4dFN0cmVhbS5o
IgogI2luY2x1ZGUgIlRleHR1cmVBbGxvY2F0b3IuaCIKICNpbmNsdWRlICJjYy9DQ0dyYXBoaWNz
Q29udGV4dC5oIgorI2luY2x1ZGUgImNjL0NDSU9TdXJmYWNlRHJhd1F1YWQuaCIKICNpbmNsdWRl
ICJjYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgiCiAjaW5jbHVkZSAiY2MvQ0NQcm94eS5oIgogI2lu
Y2x1ZGUgImNjL0NDUXVhZEN1bGxlci5oIgpAQCAtMjIyLDYgKzIyMywxMiBAQCB2b2lkIENDVmlk
ZW9MYXllckltcGw6OmFwcGVuZFF1YWRzKENDUXVhCiAgICAgICAgIHF1YWRMaXN0LmFwcGVuZCh0
ZXh0dXJlUXVhZC5yZWxlYXNlKCkpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OlRFWFRVUkVfUkVDVEFOR0xFX0FSQjogeworICAgICAgICBJbnRTaXplIHRl
eHR1cmVTaXplKG1fZnJhbWUtPndpZHRoKCksIG1fZnJhbWUtPmhlaWdodCgpKTsgCisgICAgICAg
IE93blB0cjxDQ0lPU3VyZmFjZURyYXdRdWFkPiBpb1N1cmZhY2VRdWFkID0gQ0NJT1N1cmZhY2VE
cmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIHRleHR1cmVTaXplLCBt
X2ZyYW1lLT50ZXh0dXJlSWQoKSwgQ0NJT1N1cmZhY2VEcmF3UXVhZDo6VW5mbGlwcGVkKTsKKyAg
ICAgICAgcXVhZExpc3QuYXBwZW5kKGlvU3VyZmFjZVF1YWQucmVsZWFzZSgpKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQogICAgIGNhc2UgRXh0ZW5zaW9uczNEQ2hyb21pdW06OkdMX1RFWFRVUkVf
RVhURVJOQUxfT0VTOiB7CiAgICAgICAgIC8vIFN0cmVhbVRleHR1cmUgaGFyZHdhcmUgZGVjb2Rl
ci4KICAgICAgICAgT3duUHRyPENDU3RyZWFtVmlkZW9EcmF3UXVhZD4gc3RyZWFtVmlkZW9RdWFk
ID0gQ0NTdHJlYW1WaWRlb0RyYXdRdWFkOjpjcmVhdGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVj
dCwgbV9mcmFtZS0+dGV4dHVyZUlkKCksIG1fc3RyZWFtVGV4dHVyZU1hdHJpeCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>