<?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>104553</bug_id>
          
          <creation_ts>2012-12-10 06:46:36 -0800</creation_ts>
          <short_desc>[EFL][WebGL] Minor Refactor in GraphicsContext3DEfl.</short_desc>
          <delta_ts>2012-12-11 02:33:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>104652</dependson>
          <blocked>103105</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kalyan">kalyan.kondapally</reporter>
          <assigned_to name="Kalyan">kalyan.kondapally</assigned_to>
          <cc>dino</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>787280</commentid>
    <comment_count>0</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-10 06:46:36 -0800</bug_when>
    <thetext>Remove unused code in PlatformSurface.
Share FBO between canvas and surface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787386</commentid>
    <comment_count>1</comment_count>
      <attachid>178564</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-10 08:57:56 -0800</bug_when>
    <thetext>Created attachment 178564
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787424</commentid>
    <comment_count>2</comment_count>
      <attachid>178574</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-10 09:50:35 -0800</bug_when>
    <thetext>Created attachment 178574
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787428</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 09:53:51 -0800</bug_when>
    <thetext>Attachment 178574 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp:150:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 10 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>787438</commentid>
    <comment_count>4</comment_count>
      <attachid>178574</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-10 10:00:49 -0800</bug_when>
    <thetext>Comment on attachment 178574
patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +
&gt; +        With this patch we use the same FBO for canvas and backbuffer of offscreen surface.
&gt; +        Also, removes some unused code.

You should explain why that is a good things etc. What it really means

&gt; Source/WebCore/ChangeLog:23
&gt; +        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
&gt; +        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
&gt; +        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
&gt; +        (GraphicsContext3DPrivate::canvasResized):
&gt; +        (GraphicsContext3DPrivate::copyToGraphicsSurface):
&gt; +        * platform/graphics/efl/GraphicsContext3DPrivate.h:
&gt; +        (GraphicsContext3DPrivate):
&gt; +        * platform/graphics/opengl/GLDefs.h:
&gt; +        * platform/graphics/opengl/GLPlatformContext.h:
&gt; +        * platform/graphics/opengl/GLPlatformSurface.h:
&gt; +        * platform/graphics/surfaces/glx/GLXSurface.h:

Please add more info about your changes here. Especially when you refactor

&gt; Source/WebCore/platform/graphics/efl/GraphicsContext3DEfl.cpp:236
&gt; +    m_private-&gt;canvasResized();

didResizeCanvas() seems more consistent with other webcore code

&gt; Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp:146
&gt; +    // We should copy the full buffer, and not respect the
&gt; +    // current scissor bounds.

keep on one line

&gt; Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp:147
&gt; +    // FIXME::It would be more efficient to track the state of the scissor test.

not two ::, just &quot;FIXME: &quot;

&gt;&gt; Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp:150
&gt;&gt; +       // m_context-&gt;disable(GraphicsContext3D::SCISSOR_TEST);
&gt; 
&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

Dont ever commit outcommented code!

&gt; Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h:56
&gt; +    // Creates FBO used by the surface.
&gt; +    // Buffers can be bound to this FBO.

one line!

&gt; Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h:57
&gt; +    void initialize(GLuint *frameBufferId);

* placement!

&gt; Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h:70
&gt; -    // a)Blits texture contents to back buffer.
&gt; +    // a)Blits back buffer contents to front buffer.
&gt;      // b)Calls Swap Buffers.
&gt; -    // c)Sets current FBO as bindFboId and binds texture to bindTexture.
&gt; -    virtual void updateContents(const uint32_t texture, const IntRect&amp; sourceRect, const GLuint bindFboId, const uint32_t bindTexture);
&gt; +    // c)Sets current FBO as bindFboId.

space after )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787446</commentid>
    <comment_count>5</comment_count>
      <attachid>178581</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-10 10:05:48 -0800</bug_when>
    <thetext>Created attachment 178581
proposedpatch

patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787448</commentid>
    <comment_count>6</comment_count>
      <attachid>178581</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-10 10:07:29 -0800</bug_when>
    <thetext>Comment on attachment 178581
proposedpatch

r- given my other comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787698</commentid>
    <comment_count>7</comment_count>
      <attachid>178628</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-10 13:53:00 -0800</bug_when>
    <thetext>Created attachment 178628
patchv3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787704</commentid>
    <comment_count>8</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2012-12-10 13:55:21 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 178574 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178574&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +
&gt; &gt; +        With this patch we use the same FBO for canvas and backbuffer of offscreen surface.
&gt; &gt; +        Also, removes some unused code.
&gt; 
&gt; You should explain why that is a good things etc. What it really means
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:23
&gt; &gt; +        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
&gt; &gt; +        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
&gt; &gt; +        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
&gt; &gt; +        (GraphicsContext3DPrivate::canvasResized):
&gt; &gt; +        (GraphicsContext3DPrivate::copyToGraphicsSurface):
&gt; &gt; +        * platform/graphics/efl/GraphicsContext3DPrivate.h:
&gt; &gt; +        (GraphicsContext3DPrivate):
&gt; &gt; +        * platform/graphics/opengl/GLDefs.h:
&gt; &gt; +        * platform/graphics/opengl/GLPlatformContext.h:
&gt; &gt; +        * platform/graphics/opengl/GLPlatformSurface.h:
&gt; &gt; +        * platform/graphics/surfaces/glx/GLXSurface.h:
&gt; 
&gt; Please add more info about your changes here. Especially when you refactor
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/efl/GraphicsContext3DEfl.cpp:236
&gt; &gt; +    m_private-&gt;canvasResized();
&gt; 
&gt; didResizeCanvas() seems more consistent with other webcore code
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp:146
&gt; &gt; +    // We should copy the full buffer, and not respect the
&gt; &gt; +    // current scissor bounds.
&gt; 
&gt; keep on one line
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp:147
&gt; &gt; +    // FIXME::It would be more efficient to track the state of the scissor test.
&gt; 
&gt; not two ::, just &quot;FIXME: &quot;
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/graphics/efl/GraphicsContext3DPrivate.cpp:150
&gt; &gt;&gt; +       // m_context-&gt;disable(GraphicsContext3D::SCISSOR_TEST);
&gt; &gt; 
&gt; &gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; 
&gt; Dont ever commit outcommented code!
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h:56
&gt; &gt; +    // Creates FBO used by the surface.
&gt; &gt; +    // Buffers can be bound to this FBO.
&gt; 
&gt; one line!
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h:57
&gt; &gt; +    void initialize(GLuint *frameBufferId);
&gt; 
&gt; * placement!
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/opengl/GLPlatformSurface.h:70
&gt; &gt; -    // a)Blits texture contents to back buffer.
&gt; &gt; +    // a)Blits back buffer contents to front buffer.
&gt; &gt;      // b)Calls Swap Buffers.
&gt; &gt; -    // c)Sets current FBO as bindFboId and binds texture to bindTexture.
&gt; &gt; -    virtual void updateContents(const uint32_t texture, const IntRect&amp; sourceRect, const GLuint bindFboId, const uint32_t bindTexture);
&gt; &gt; +    // c)Sets current FBO as bindFboId.
&gt; 
&gt; space after )

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787744</commentid>
    <comment_count>9</comment_count>
      <attachid>178628</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 15:02:19 -0800</bug_when>
    <thetext>Comment on attachment 178628
patchv3

Clearing flags on attachment: 178628

Committed r137211: &lt;http://trac.webkit.org/changeset/137211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787745</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 15:02:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787827</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-12-10 16:17:30 -0800</bug_when>
    <thetext>This seems to break all of webgl for me!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178564</attachid>
            <date>2012-12-10 08:57:56 -0800</date>
            <delta_ts>2012-12-10 09:05:01 -0800</delta_ts>
            <desc>patch</desc>
            <filename>refactorchanges.patch</filename>
            <type>text/plain</type>
            <size>13078</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDljNjhiZWEuLjk0M2M3ZDUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEy
LTEyLTEwICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXZWJHTF0gTWlub3IgUmVmYWN0b3IgaW4gR3JhcGhpY3NDb250ZXh0
M0RFZmwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDQ1NTMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2l0aCB0aGlzIHBhdGNoIHdlIHVzZSB0aGUgc2FtZSBGQk8gZm9yIGNhbnZhcyBhbmQgYmFja2J1
ZmZlciBvZiBvZmZzY3JlZW4gc3VyZmFjZS4KKyAgICAgICAgQWxzbywgcmVtb3ZlcyBzb21lIHVu
dXNlZCBjb2RlLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUdyYXBoaWNzU3VyZmFjZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjYW52YXNSZXNpemVk
KToKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y29weVRvR3JhcGhpY3NTdXJm
YWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmg6CisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRFByaXZhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oOgorCiAyMDEyLTEyLTA4ICBLb25kYXBh
bGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KIAogICAgICAgICBbRUZM
XSBbV2ViR0xdIFBhdGggaXMgbm90IHJlc2l6ZWQgY29ycmVjdGx5LgpkaWZmIC0tZ2l0IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZs
LmNwcAppbmRleCAyZDEwYTFmLi42YjM4YWVmIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcAorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcApAQCAt
ODAsNyArODAsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhp
Y3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaQogCiAgICAgaWYgKHJlbmRlclN0
eWxlID09IFJlbmRlck9mZnNjcmVlbikgewogICAgICAgICAvLyBDcmVhdGUgYnVmZmVycyBmb3Ig
dGhlIGNhbnZhcyBGQk8uCi0gICAgICAgIGdsR2VuRnJhbWVidWZmZXJzKC8qIGNvdW50ICovIDEs
ICZtX2Zibyk7CisgICAgICAgIG1fcHJpdmF0ZS0+bV9wbGF0Zm9ybVN1cmZhY2UtPmluaXRpYWxp
emUoJm1fZmJvKTsKIAogICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRv
LgogICAgICAgICBnbEdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOwpAQCAtMTM0LDcgKzEzNCw4
IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQz
RDo6QXR0cmlidXRlcyBhdHRycywgSG9zdFdpCiAgICAgZ2xFbmFibGUoR0xfUE9JTlRfU1BSSVRF
KTsKICAgICBnbEVuYWJsZShHTF9WRVJURVhfUFJPR1JBTV9QT0lOVF9TSVpFKTsKICNlbmRpZgot
ICAgIGdsQ2xlYXJDb2xvcigwLjAsIDAuMCwgMC4wLCAwLjApOworICAgIGlmIChyZW5kZXJTdHls
ZSAhPSBSZW5kZXJUb0N1cnJlbnRHTENvbnRleHQpCisgICAgICAgIGdsQ2xlYXJDb2xvcigwLjAs
IDAuMCwgMC4wLCAwLjApOwogfQogCiBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4
dDNEKCkKQEAgLTE0MiwxMSArMTQzLDYgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0Nv
bnRleHQzRCgpCiAgICAgaWYgKCFtX3ByaXZhdGUgfHwgIW1ha2VDb250ZXh0Q3VycmVudCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fZmJvKSB7Ci0gICAgICAgIG1fcHJpdmF0ZS0+
cmVsZWFzZVJlc291cmNlcygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgZ2xEZWxl
dGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKIAogICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykg
ewpAQCAtMTY3LDcgKzE2Myw2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0
M0QoKQogICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVm
ZmVyKTsKICAgICB9CiAKLSAgICBnbERlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9mYm8pOwogICAg
IG1fcHJpdmF0ZS0+cmVsZWFzZVJlc291cmNlcygpOwogfQogCkBAIC0yMzYsOSArMjMxLDkgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyhjb25zdCB1bnNpZ25lZCBjaGFy
KiBpbWFnZVBpeGVscywgaW50IGltYWcKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQot
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlR3JhcGhpY3NTdXJmYWNlcyhjb25zdCBJbnRT
aXplJiBzaXplKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlR3JhcGhpY3NTdXJmYWNl
cyhjb25zdCBJbnRTaXplJikKIHsKLSAgICBtX3ByaXZhdGUtPmNyZWF0ZUdyYXBoaWNzU3VyZmFj
ZXMoc2l6ZSk7CisgICAgbV9wcml2YXRlLT5jYW52YXNSZXNpemVkKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDE4ZTE2YjEuLjQ2NDMzMzAgMTAwNjQ0
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTI1LDE0ICsyNSw2IEBACiAKICNpbmNsdWRl
ICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybUNvbnRleHRDYWlyby5oIgotCi0jaWYgVVNFKE9QRU5HTF9FU18yKQotI2luY2x1ZGUg
PEdMRVMyL2dsMi5oPgotI2luY2x1ZGUgPEdMRVMyL2dsMmV4dC5oPgotI2Vsc2UKLSNpbmNsdWRl
ICJPcGVuR0xTaGltcy5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTMx
LDcgKzEyMyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSCiAjZW5kaWYKIAogI2lmIFVTRShH
UkFQSElDU19TVVJGQUNFKQotdm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdy
YXBoaWNzU3VyZmFjZXMoY29uc3QgSW50U2l6ZSYpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6Y2FudmFzUmVzaXplZCgpCiB7CiAgICAgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSA9IHRy
dWU7CiB9CkBAIC0xNDYsMTUgKzEzOCwzMiBAQCB1aW50MzJfdCBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6OmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpCiAgICAgICAgIG1fcGxhdGZvcm1TdXJmYWNl
LT5zZXRHZW9tZXRyeShJbnRSZWN0KDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1f
Y29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KSk7CiAgICAgfQogCisgICAgYm9vbCBlbmFibGVTY2lz
c29yVGVzdCA9IGZhbHNlOworICAgIGludCB3aWR0aCA9IG1fY29udGV4dC0+bV9jdXJyZW50V2lk
dGg7CisgICAgaW50IGhlaWdodCA9IG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0OworCisgICAg
Ly8gV2Ugc2hvdWxkIGNvcHkgdGhlIGZ1bGwgYnVmZmVyLCBhbmQgbm90IHJlc3BlY3QgdGhlCisg
ICAgLy8gY3VycmVudCBzY2lzc29yIGJvdW5kcy4KKyAgICAvLyBGSVhNRTo6SXQgd291bGQgYmUg
bW9yZSBlZmZpY2llbnQgdG8gdHJhY2sgdGhlIHN0YXRlIG9mIHRoZSBzY2lzc29yIHRlc3QuCisg
ICAgaWYgKG1fY29udGV4dC0+aXNFbmFibGVkKEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RF
U1QpKSB7CisgICAgICAgIGVuYWJsZVNjaXNzb3JUZXN0ID0gdHJ1ZTsKKyAgICAgICAvLyBtX2Nv
bnRleHQtPmRpc2FibGUoR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVCk7CisgICAgfQor
CiAgICAgaWYgKG1fY29udGV4dC0+bV9hdHRycy5hbnRpYWxpYXMpIHsKLSNpZiAhVVNFKE9QRU5H
TF9FU18yKQorCiAgICAgICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX1JFQURfRlJBTUVCVUZGRVJf
RVhULCBtX2NvbnRleHQtPm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICBnbEJpbmRGcmFtZWJ1
ZmZlcihHTF9EUkFXX0ZSQU1FQlVGRkVSX0VYVCwgbV9jb250ZXh0LT5tX2Zibyk7Ci0gICAgICAg
IGdsQmxpdEZyYW1lYnVmZmVyKDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29u
dGV4dC0+bV9jdXJyZW50SGVpZ2h0LCAwLCAwLCBtX2NvbnRleHQtPm1fY3VycmVudFdpZHRoLCBt
X2NvbnRleHQtPm1fY3VycmVudEhlaWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xfTElORUFS
KTsKLSNlbmRpZgorCisgICAgICAgIC8vIFVzZSBORUFSRVNUIGFzIG5vIHNjYWxlIGlzIHBlcmZv
cm1lZCBkdXJpbmcgdGhlIGJsaXQuCisgICAgICAgIGdsQmxpdEZyYW1lYnVmZmVyKDAsIDAsIHdp
ZHRoLCBoZWlnaHQsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xP
Ul9CVUZGRVJfQklULCBHcmFwaGljc0NvbnRleHQzRDo6TkVBUkVTVCk7CiAgICAgfQogCi0gICAg
bV9wbGF0Zm9ybVN1cmZhY2UtPnVwZGF0ZUNvbnRlbnRzKG1fY29udGV4dC0+bV90ZXh0dXJlLCBJ
bnRSZWN0KDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC0+bV9jdXJy
ZW50SGVpZ2h0KSwgbV9jb250ZXh0LT5tX2JvdW5kRkJPLCBtX2NvbnRleHQtPm1fYm91bmRUZXh0
dXJlMCk7CisgICAgbV9wbGF0Zm9ybVN1cmZhY2UtPnVwZGF0ZUNvbnRlbnRzKEludFJlY3QoMCwg
MCwgd2lkdGgsIGhlaWdodCksIG1fY29udGV4dC0+bV9ib3VuZEZCTyk7CisKKyAgICBpZiAoZW5h
YmxlU2Npc3NvclRlc3QpCisgICAgICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4
dDNEOjpTQ0lTU09SX1RFU1QpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmggU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5oCmluZGV4IDNkNjBiNGUuLjU5MzQ4NmUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0Up
CiAgICAgdmlydHVhbCB1aW50MzJfdCBjb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsKICAgICB2aXJ0
dWFsIEdyYXBoaWNzU3VyZmFjZVRva2VuIGdyYXBoaWNzU3VyZmFjZVRva2VuKCkgY29uc3Q7Ci0g
ICAgdm9pZCBjcmVhdGVHcmFwaGljc1N1cmZhY2VzKGNvbnN0IEludFNpemUmKTsKKyAgICB2b2lk
IGNhbnZhc1Jlc2l6ZWQoKTsKICNlbmRpZgogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7
CiAgICAgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCk7CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAppbmRleCA2ZTM2YTExLi5iODdmZDM0OSAxMDA2NDQK
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oCkBAIC0yOSwx
NSArMjksMTUgQEAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKICNpZiBVU0Uo
T1BFTkdMX0VTXzIpCi0jaW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMRVMuaCIKKyNpbmNsdWRl
ICJPcGVuR0xFU1NoaW1zLmgiCisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVkZSA8R0xF
UzIvZ2wyZXh0Lmg+CiAjZWxzZQotI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgotI2Vu
ZGlmCi0KICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgotCiAjaW5jbHVkZSA8R0wvZ2wuaD4KICNp
bmNsdWRlIDxHTC9nbGV4dC5oPgorI2VuZGlmCisKICNpZiBIQVZFKEdMWCkKICNpbmNsdWRlIDxH
TC9nbHguaD4KICNlbmRpZgpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcAppbmRleCAxN2IzMDg0Li4yNGM4
NDQ0IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
UGxhdGZvcm1Db250ZXh0LmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcApAQCAtNDEsMTggKzQxLDE1IEBAIHN0YXRpYyBH
TFBsYXRmb3JtQ29udGV4dCogbV9jdXJyZW50Q29udGV4dCA9IDA7CiAKIFBhc3NPd25QdHI8R0xQ
bGF0Zm9ybUNvbnRleHQ+IEdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVDb250ZXh0KEdyYXBoaWNz
Q29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKIHsKLSAgICBzdGF0aWMgYm9vbCBp
bml0aWFsaXplZFNoaW1zID0gZmFsc2U7CisgICAgaWYgKCFpbml0aWFsaXplT3BlbkdMU2hpbXMo
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIWluaXRpYWxpemVkU2hpbXMp
IHsKLSAgICAgICAgaW5pdGlhbGl6ZWRTaGltcyA9IGluaXRpYWxpemVPcGVuR0xTaGltcygpOwor
ICAgIGlmICghZ2xHZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKSB7CiAjaWYgSEFWRShHTFgpCiAg
ICAgICAgIGdsR2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQiA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZO
R0xHRVRHUkFQSElDU1JFU0VUU1RBVFVTQVJCUFJPQz4oZ2xYR2V0UHJvY0FkZHJlc3NBUkIocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBHTHVieXRlKj4oImdsR2V0R3JhcGhpY3NSZXNldFN0YXR1c0FS
QiIpKSk7CiAjZW5kaWYKICAgICB9CiAKLSAgICBpZiAoIWluaXRpYWxpemVkU2hpbXMpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCiAgICAgc3dpdGNoIChyZW5kZXJTdHlsZSkgewogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbjoKICAgICAgICAgaWYgKE93blB0
cjxHTFBsYXRmb3JtQ29udGV4dD4gZ2x4Q29udGV4dCA9IEdMUGxhdGZvcm1Db250ZXh0OjpjcmVh
dGVPZmZTY3JlZW5Db250ZXh0KCkpCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmluZGV4IDc2ZTgwMTku
LjVlNzBlNmEgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCkBAIC03Miw2ICs3MiwxNCBAQCBHTFBs
YXRmb3JtU3VyZmFjZTo6fkdMUGxhdGZvcm1TdXJmYWNlKCkKIHsKIH0KIAordm9pZCBHTFBsYXRm
b3JtU3VyZmFjZTo6aW5pdGlhbGl6ZShHTHVpbnQqIGZyYW1lQnVmZmVySWQpCit7CisgICAgaWYg
KCFtX2Zib0lkKQorICAgICAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm9JZCk7CisKKyAg
ICAqZnJhbWVCdWZmZXJJZCA9IG1fZmJvSWQ7Cit9CisKIFBsYXRmb3JtU3VyZmFjZSBHTFBsYXRm
b3JtU3VyZmFjZTo6aGFuZGxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kcmF3YWJsZTsKQEAg
LTk3LDU4ICsxMDUsMjMgQEAgdm9pZCBHTFBsYXRmb3JtU3VyZmFjZTo6c3dhcEJ1ZmZlcnMoKQog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgR0xQbGF0Zm9ybVN1cmZhY2U6OmNvcHlU
ZXh0dXJlKHVpbnQzMl90IHRleHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpCit2b2lk
IEdMUGxhdGZvcm1TdXJmYWNlOjp1cGRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiBzb3VyY2VS
ZWN0LCBjb25zdCBHTHVpbnQgYmluZEZib0lkKQogewogICAgIGlmICghbV9mYm9JZCkKLSAgICAg
ICAgZ2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvSWQpOwotCi0gICAgbV9yZXN0b3JlTmVlZGVk
ID0gdHJ1ZTsKLSAgICBpbnQgeCA9IHNvdXJjZVJlY3QueCgpOwotICAgIGludCB5ID0gc291cmNl
UmVjdC55KCk7Ci0gICAgaW50IHdpZHRoID0gc291cmNlUmVjdC53aWR0aCgpOwotICAgIGludCBo
ZWlnaHQgPSBzb3VyY2VSZWN0LmhlaWdodCgpOwotCi0gICAgZ2xQdXNoQXR0cmliKEdMX0NPTE9S
X0JVRkZFUl9CSVQpOwotCi0gICAgR0xpbnQgcHJldmlvdXNGQk87Ci0gICAgZ2xHZXRJbnRlZ2Vy
dihHTF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAmcHJldmlvdXNGQk8pOworICAgICAgICByZXR1cm47
CiAKLSAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9SRUFEX0ZSQU1FQlVGRkVSLCBtX2Zib0lkKTsK
LQotICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2xGcmFt
ZWJ1ZmZlclRleHR1cmUyRChHTF9SRUFEX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5U
MCwgR0xfVEVYVFVSRV8yRCwgdGV4dHVyZSwgMCk7Ci0KLSAgICBnbEJpbmRGcmFtZWJ1ZmZlcihH
TF9EUkFXX0ZSQU1FQlVGRkVSLCAwKTsKLQotICAgIGdsQmxpdEZyYW1lYnVmZmVyKHgsIHksIHdp
ZHRoLCBoZWlnaHQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX0NPTE9SX0JVRkZFUl9CSVQsIEdM
X0xJTkVBUik7Ci0KLSAgICBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX1JFQURfRlJBTUVCVUZG
RVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCAwLCAwKTsKLSAgICBnbEJp
bmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIDApOwotICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBwcmV2aW91c0ZCTyk7Ci0KLSAgICBnbFBvcEF0dHJpYigpOwotfQotCi12b2lk
IEdMUGxhdGZvcm1TdXJmYWNlOjp1cGRhdGVDb250ZW50cyhjb25zdCB1aW50MzJfdCB0ZXh0dXJl
LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBHTHVpbnQgYmluZEZib0lkLCBjb25z
dCB1aW50MzJfdCBiaW5kVGV4dHVyZSkKLXsKICAgICBtX3Jlc3RvcmVOZWVkZWQgPSBmYWxzZTsK
IAotICAgIGlmICghbV9mYm9JZCkKLSAgICAgICAgZ2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJv
SWQpOwotCiAgICAgaW50IHggPSBzb3VyY2VSZWN0LngoKTsKICAgICBpbnQgeSA9IHNvdXJjZVJl
Y3QueSgpOwogICAgIGludCB3aWR0aCA9IHNvdXJjZVJlY3Qud2lkdGgoKTsKICAgICBpbnQgaGVp
Z2h0ID0gc291cmNlUmVjdC5oZWlnaHQoKTsKIAogICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX1JF
QURfRlJBTUVCVUZGRVIsIG1fZmJvSWQpOwotICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8y
RCwgdGV4dHVyZSk7Ci0gICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9SRUFEX0ZSQU1FQlVG
RkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV8yRCwgdGV4dHVyZSwgMCk7CiAg
ICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRFJBV19GUkFNRUJVRkZFUiwgMCk7Ci0gICAgZ2xCbGl0
RnJhbWVidWZmZXIoeCwgeSwgd2lkdGgsIGhlaWdodCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xf
Q09MT1JfQlVGRkVSX0JJVCwgR0xfTElORUFSKTsKKyAgICAvLyBVc2UgTkVBUkVTVCBhcyBubyBz
Y2FsZSBpcyBwZXJmb3JtZWQgZHVyaW5nIHRoZSBibGl0LgorICAgIGdsQmxpdEZyYW1lYnVmZmVy
KHgsIHksIHdpZHRoLCBoZWlnaHQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX0NPTE9SX0JVRkZF
Ul9CSVQsIEdMX05FQVJFU1QpOwogICAgIHN3YXBCdWZmZXJzKCk7Ci0gICAgZ2xGcmFtZWJ1ZmZl
clRleHR1cmUyRChHTF9SRUFEX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xf
VEVYVFVSRV8yRCwgMCwgMCk7Ci0gICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBiaW5k
VGV4dHVyZSk7CiAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGJpbmRGYm9J
ZCk7CiB9CiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybVN1cmZhY2UuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaAppbmRleCBiNDExMTMyLi45ZWNmOTYyIDEwMDY0NAot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJm
YWNlLmgKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRm
b3JtU3VyZmFjZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBP
U0lUSU5HKQogCiAjaW5jbHVkZSAiR0xEZWZzLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
QEAgLTUxLDYgKzUyLDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEludFJlY3QmIGdlb21ldHJ5
KCkgY29uc3Q7CiAKKyAgICAvLyBDcmVhdGVzIEZCTyB1c2VkIGJ5IHRoZSBzdXJmYWNlLgorICAg
IC8vIEJ1ZmZlcnMgY2FuIGJlIGJvdW5kIHRvIHRoaXMgRkJPLgorICAgIHZvaWQgaW5pdGlhbGl6
ZShHTHVpbnQgKmZyYW1lQnVmZmVySWQpOworCiAgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIHBs
YXRmb3JtIHNwZWNpZmljIHN1cmZhY2UgaGFuZGxlLgogICAgIFBsYXRmb3JtU3VyZmFjZSBoYW5k
bGUoKSBjb25zdDsKIApAQCAtNTgsMTQgKzYzLDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBzd2FwQnVmZmVycygpOwogCi0gICAgdmlydHVhbCB2b2lkIGNvcHlUZXh0dXJlKHVpbnQz
Ml90IHRleHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpOwotCi0gICAgLy8gQ29udmVu
aWVuY2UgRnVuY3Rpb24gdG8gdXBkYXRlIHN1cmZhY2UgYmFja2J1ZmZlciB3aXRoIHRleHR1cmUg
Y29udGVudHMsIHJlc3RvcmUgY3VycmVudCBGQk8gYW5kIFRleHR1cmUuCisgICAgLy8gQ29udmVu
aWVuY2UgRnVuY3Rpb24gdG8gdXBkYXRlIHN1cmZhY2UgY29udGVudHMuCiAgICAgLy8gRnVuY3Rp
b24gZG9lcyB0aGUgZm9sbG93aW5nKGluIG9yZGVyKToKLSAgICAvLyBhKUJsaXRzIHRleHR1cmUg
Y29udGVudHMgdG8gYmFjayBidWZmZXIuCisgICAgLy8gYSlCbGl0cyBiYWNrIGJ1ZmZlciBjb250
ZW50cyB0byBmcm9udCBidWZmZXIuCiAgICAgLy8gYilDYWxscyBTd2FwIEJ1ZmZlcnMuCi0gICAg
Ly8gYylTZXRzIGN1cnJlbnQgRkJPIGFzIGJpbmRGYm9JZCBhbmQgYmluZHMgdGV4dHVyZSB0byBi
aW5kVGV4dHVyZS4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3QgdWludDMy
X3QgdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgR0x1aW50IGJpbmRG
Ym9JZCwgY29uc3QgdWludDMyX3QgYmluZFRleHR1cmUpOworICAgIC8vIGMpU2V0cyBjdXJyZW50
IEZCTyBhcyBiaW5kRmJvSWQuCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKGNvbnN0
IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEdMdWludCBiaW5kRmJvSWQpOwogCiAgICAgdmly
dHVhbCB2b2lkIHNldEdlb21ldHJ5KGNvbnN0IEludFJlY3QmIG5ld1JlY3QpOwogCmRpZmYgLS1n
aXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZh
Y2UuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3Vy
ZmFjZS5oCmluZGV4IGViMDI3ZWYuLjA2ODg3YjIgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSA8WDExL2V4dGVuc2lvbnMvWHJlbmRlci5oPgogI2VuZGlmCiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178574</attachid>
            <date>2012-12-10 09:50:35 -0800</date>
            <delta_ts>2012-12-10 10:05:48 -0800</delta_ts>
            <desc>patch</desc>
            <filename>refactorContext.patch</filename>
            <type>text/plain</type>
            <size>13533</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDljNjhiZWEuLjk0M2M3ZDUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEy
LTEyLTEwICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXZWJHTF0gTWlub3IgUmVmYWN0b3IgaW4gR3JhcGhpY3NDb250ZXh0
M0RFZmwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDQ1NTMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2l0aCB0aGlzIHBhdGNoIHdlIHVzZSB0aGUgc2FtZSBGQk8gZm9yIGNhbnZhcyBhbmQgYmFja2J1
ZmZlciBvZiBvZmZzY3JlZW4gc3VyZmFjZS4KKyAgICAgICAgQWxzbywgcmVtb3ZlcyBzb21lIHVu
dXNlZCBjb2RlLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUdyYXBoaWNzU3VyZmFjZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjYW52YXNSZXNpemVk
KToKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y29weVRvR3JhcGhpY3NTdXJm
YWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmg6CisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRFByaXZhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oOgorCiAyMDEyLTEyLTA4ICBLb25kYXBh
bGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KIAogICAgICAgICBbRUZM
XSBbV2ViR0xdIFBhdGggaXMgbm90IHJlc2l6ZWQgY29ycmVjdGx5LgpkaWZmIC0tZ2l0IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZs
LmNwcAppbmRleCAyZDEwYTFmLi42YjM4YWVmIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcAorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcApAQCAt
ODAsNyArODAsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhp
Y3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaQogCiAgICAgaWYgKHJlbmRlclN0
eWxlID09IFJlbmRlck9mZnNjcmVlbikgewogICAgICAgICAvLyBDcmVhdGUgYnVmZmVycyBmb3Ig
dGhlIGNhbnZhcyBGQk8uCi0gICAgICAgIGdsR2VuRnJhbWVidWZmZXJzKC8qIGNvdW50ICovIDEs
ICZtX2Zibyk7CisgICAgICAgIG1fcHJpdmF0ZS0+bV9wbGF0Zm9ybVN1cmZhY2UtPmluaXRpYWxp
emUoJm1fZmJvKTsKIAogICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRv
LgogICAgICAgICBnbEdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOwpAQCAtMTM0LDcgKzEzNCw4
IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQz
RDo6QXR0cmlidXRlcyBhdHRycywgSG9zdFdpCiAgICAgZ2xFbmFibGUoR0xfUE9JTlRfU1BSSVRF
KTsKICAgICBnbEVuYWJsZShHTF9WRVJURVhfUFJPR1JBTV9QT0lOVF9TSVpFKTsKICNlbmRpZgot
ICAgIGdsQ2xlYXJDb2xvcigwLjAsIDAuMCwgMC4wLCAwLjApOworICAgIGlmIChyZW5kZXJTdHls
ZSAhPSBSZW5kZXJUb0N1cnJlbnRHTENvbnRleHQpCisgICAgICAgIGdsQ2xlYXJDb2xvcigwLjAs
IDAuMCwgMC4wLCAwLjApOwogfQogCiBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4
dDNEKCkKQEAgLTE0MiwxMSArMTQzLDYgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0Nv
bnRleHQzRCgpCiAgICAgaWYgKCFtX3ByaXZhdGUgfHwgIW1ha2VDb250ZXh0Q3VycmVudCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fZmJvKSB7Ci0gICAgICAgIG1fcHJpdmF0ZS0+
cmVsZWFzZVJlc291cmNlcygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgZ2xEZWxl
dGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKIAogICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykg
ewpAQCAtMTY3LDcgKzE2Myw2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0
M0QoKQogICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVm
ZmVyKTsKICAgICB9CiAKLSAgICBnbERlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9mYm8pOwogICAg
IG1fcHJpdmF0ZS0+cmVsZWFzZVJlc291cmNlcygpOwogfQogCkBAIC0yMzYsOSArMjMxLDkgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyhjb25zdCB1bnNpZ25lZCBjaGFy
KiBpbWFnZVBpeGVscywgaW50IGltYWcKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQot
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlR3JhcGhpY3NTdXJmYWNlcyhjb25zdCBJbnRT
aXplJiBzaXplKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlR3JhcGhpY3NTdXJmYWNl
cyhjb25zdCBJbnRTaXplJikKIHsKLSAgICBtX3ByaXZhdGUtPmNyZWF0ZUdyYXBoaWNzU3VyZmFj
ZXMoc2l6ZSk7CisgICAgbV9wcml2YXRlLT5jYW52YXNSZXNpemVkKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDE4ZTE2YjEuLjQ2NDMzMzAgMTAwNjQ0
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTI1LDE0ICsyNSw2IEBACiAKICNpbmNsdWRl
ICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybUNvbnRleHRDYWlyby5oIgotCi0jaWYgVVNFKE9QRU5HTF9FU18yKQotI2luY2x1ZGUg
PEdMRVMyL2dsMi5oPgotI2luY2x1ZGUgPEdMRVMyL2dsMmV4dC5oPgotI2Vsc2UKLSNpbmNsdWRl
ICJPcGVuR0xTaGltcy5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTMx
LDcgKzEyMyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSCiAjZW5kaWYKIAogI2lmIFVTRShH
UkFQSElDU19TVVJGQUNFKQotdm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdy
YXBoaWNzU3VyZmFjZXMoY29uc3QgSW50U2l6ZSYpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6Y2FudmFzUmVzaXplZCgpCiB7CiAgICAgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSA9IHRy
dWU7CiB9CkBAIC0xNDYsMTUgKzEzOCwzMiBAQCB1aW50MzJfdCBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6OmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpCiAgICAgICAgIG1fcGxhdGZvcm1TdXJmYWNl
LT5zZXRHZW9tZXRyeShJbnRSZWN0KDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1f
Y29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KSk7CiAgICAgfQogCisgICAgYm9vbCBlbmFibGVTY2lz
c29yVGVzdCA9IGZhbHNlOworICAgIGludCB3aWR0aCA9IG1fY29udGV4dC0+bV9jdXJyZW50V2lk
dGg7CisgICAgaW50IGhlaWdodCA9IG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0OworCisgICAg
Ly8gV2Ugc2hvdWxkIGNvcHkgdGhlIGZ1bGwgYnVmZmVyLCBhbmQgbm90IHJlc3BlY3QgdGhlCisg
ICAgLy8gY3VycmVudCBzY2lzc29yIGJvdW5kcy4KKyAgICAvLyBGSVhNRTo6SXQgd291bGQgYmUg
bW9yZSBlZmZpY2llbnQgdG8gdHJhY2sgdGhlIHN0YXRlIG9mIHRoZSBzY2lzc29yIHRlc3QuCisg
ICAgaWYgKG1fY29udGV4dC0+aXNFbmFibGVkKEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RF
U1QpKSB7CisgICAgICAgIGVuYWJsZVNjaXNzb3JUZXN0ID0gdHJ1ZTsKKyAgICAgICAvLyBtX2Nv
bnRleHQtPmRpc2FibGUoR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVCk7CisgICAgfQor
CiAgICAgaWYgKG1fY29udGV4dC0+bV9hdHRycy5hbnRpYWxpYXMpIHsKLSNpZiAhVVNFKE9QRU5H
TF9FU18yKQorCiAgICAgICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX1JFQURfRlJBTUVCVUZGRVJf
RVhULCBtX2NvbnRleHQtPm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICBnbEJpbmRGcmFtZWJ1
ZmZlcihHTF9EUkFXX0ZSQU1FQlVGRkVSX0VYVCwgbV9jb250ZXh0LT5tX2Zibyk7Ci0gICAgICAg
IGdsQmxpdEZyYW1lYnVmZmVyKDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29u
dGV4dC0+bV9jdXJyZW50SGVpZ2h0LCAwLCAwLCBtX2NvbnRleHQtPm1fY3VycmVudFdpZHRoLCBt
X2NvbnRleHQtPm1fY3VycmVudEhlaWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xfTElORUFS
KTsKLSNlbmRpZgorCisgICAgICAgIC8vIFVzZSBORUFSRVNUIGFzIG5vIHNjYWxlIGlzIHBlcmZv
cm1lZCBkdXJpbmcgdGhlIGJsaXQuCisgICAgICAgIGdsQmxpdEZyYW1lYnVmZmVyKDAsIDAsIHdp
ZHRoLCBoZWlnaHQsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIEdyYXBoaWNzQ29udGV4dDNEOjpDT0xP
Ul9CVUZGRVJfQklULCBHcmFwaGljc0NvbnRleHQzRDo6TkVBUkVTVCk7CiAgICAgfQogCi0gICAg
bV9wbGF0Zm9ybVN1cmZhY2UtPnVwZGF0ZUNvbnRlbnRzKG1fY29udGV4dC0+bV90ZXh0dXJlLCBJ
bnRSZWN0KDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC0+bV9jdXJy
ZW50SGVpZ2h0KSwgbV9jb250ZXh0LT5tX2JvdW5kRkJPLCBtX2NvbnRleHQtPm1fYm91bmRUZXh0
dXJlMCk7CisgICAgbV9wbGF0Zm9ybVN1cmZhY2UtPnVwZGF0ZUNvbnRlbnRzKEludFJlY3QoMCwg
MCwgd2lkdGgsIGhlaWdodCksIG1fY29udGV4dC0+bV9ib3VuZEZCTyk7CisKKyAgICBpZiAoZW5h
YmxlU2Npc3NvclRlc3QpCisgICAgICAgIG1fY29udGV4dC0+ZW5hYmxlKEdyYXBoaWNzQ29udGV4
dDNEOjpTQ0lTU09SX1RFU1QpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmggU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5oCmluZGV4IDNkNjBiNGUuLjU5MzQ4NmUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0Up
CiAgICAgdmlydHVhbCB1aW50MzJfdCBjb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsKICAgICB2aXJ0
dWFsIEdyYXBoaWNzU3VyZmFjZVRva2VuIGdyYXBoaWNzU3VyZmFjZVRva2VuKCkgY29uc3Q7Ci0g
ICAgdm9pZCBjcmVhdGVHcmFwaGljc1N1cmZhY2VzKGNvbnN0IEludFNpemUmKTsKKyAgICB2b2lk
IGNhbnZhc1Jlc2l6ZWQoKTsKICNlbmRpZgogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7
CiAgICAgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCk7CmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAppbmRleCA2ZTM2YTExLi5iODdmZDM0OSAxMDA2NDQK
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5oCkBAIC0yOSwx
NSArMjksMTUgQEAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKICNpZiBVU0Uo
T1BFTkdMX0VTXzIpCi0jaW5jbHVkZSAiRXh0ZW5zaW9uczNET3BlbkdMRVMuaCIKKyNpbmNsdWRl
ICJPcGVuR0xFU1NoaW1zLmgiCisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVkZSA8R0xF
UzIvZ2wyZXh0Lmg+CiAjZWxzZQotI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgotI2Vu
ZGlmCi0KICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgotCiAjaW5jbHVkZSA8R0wvZ2wuaD4KICNp
bmNsdWRlIDxHTC9nbGV4dC5oPgorI2VuZGlmCisKICNpZiBIQVZFKEdMWCkKICNpbmNsdWRlIDxH
TC9nbHguaD4KICNlbmRpZgpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcAppbmRleCAxN2IzMDg0Li4yNGM4
NDQ0IDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dM
UGxhdGZvcm1Db250ZXh0LmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNwcApAQCAtNDEsMTggKzQxLDE1IEBAIHN0YXRpYyBH
TFBsYXRmb3JtQ29udGV4dCogbV9jdXJyZW50Q29udGV4dCA9IDA7CiAKIFBhc3NPd25QdHI8R0xQ
bGF0Zm9ybUNvbnRleHQ+IEdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVDb250ZXh0KEdyYXBoaWNz
Q29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKIHsKLSAgICBzdGF0aWMgYm9vbCBp
bml0aWFsaXplZFNoaW1zID0gZmFsc2U7CisgICAgaWYgKCFpbml0aWFsaXplT3BlbkdMU2hpbXMo
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBpZiAoIWluaXRpYWxpemVkU2hpbXMp
IHsKLSAgICAgICAgaW5pdGlhbGl6ZWRTaGltcyA9IGluaXRpYWxpemVPcGVuR0xTaGltcygpOwor
ICAgIGlmICghZ2xHZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCKSB7CiAjaWYgSEFWRShHTFgpCiAg
ICAgICAgIGdsR2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQiA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZO
R0xHRVRHUkFQSElDU1JFU0VUU1RBVFVTQVJCUFJPQz4oZ2xYR2V0UHJvY0FkZHJlc3NBUkIocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBHTHVieXRlKj4oImdsR2V0R3JhcGhpY3NSZXNldFN0YXR1c0FS
QiIpKSk7CiAjZW5kaWYKICAgICB9CiAKLSAgICBpZiAoIWluaXRpYWxpemVkU2hpbXMpCi0gICAg
ICAgIHJldHVybiBudWxscHRyOwotCiAgICAgc3dpdGNoIChyZW5kZXJTdHlsZSkgewogICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbjoKICAgICAgICAgaWYgKE93blB0
cjxHTFBsYXRmb3JtQ29udGV4dD4gZ2x4Q29udGV4dCA9IEdMUGxhdGZvcm1Db250ZXh0OjpjcmVh
dGVPZmZTY3JlZW5Db250ZXh0KCkpCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmggU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmgKaW5kZXggMTk1OWI3Yi4uMTcw
Yjc2ZSAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
TFBsYXRmb3JtQ29udGV4dC5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAi
R0xEZWZzLmgiCiAjaW5jbHVkZSAiR0xQbGF0Zm9ybVN1cmZhY2UuaCIKKyNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKaW5kZXggNzZlODAxOS4u
NWU3MGU2YSAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHAKQEAgLTcyLDYgKzcyLDE0IEBAIEdMUGxh
dGZvcm1TdXJmYWNlOjp+R0xQbGF0Zm9ybVN1cmZhY2UoKQogewogfQogCit2b2lkIEdMUGxhdGZv
cm1TdXJmYWNlOjppbml0aWFsaXplKEdMdWludCogZnJhbWVCdWZmZXJJZCkKK3sKKyAgICBpZiAo
IW1fZmJvSWQpCisgICAgICAgIGdsR2VuRnJhbWVidWZmZXJzKDEsICZtX2Zib0lkKTsKKworICAg
ICpmcmFtZUJ1ZmZlcklkID0gbV9mYm9JZDsKK30KKwogUGxhdGZvcm1TdXJmYWNlIEdMUGxhdGZv
cm1TdXJmYWNlOjpoYW5kbGUoKSBjb25zdAogewogICAgIHJldHVybiBtX2RyYXdhYmxlOwpAQCAt
OTcsNTggKzEwNSwyMyBAQCB2b2lkIEdMUGxhdGZvcm1TdXJmYWNlOjpzd2FwQnVmZmVycygpCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBHTFBsYXRmb3JtU3VyZmFjZTo6Y29weVRl
eHR1cmUodWludDMyX3QgdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCkKK3ZvaWQg
R0xQbGF0Zm9ybVN1cmZhY2U6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIHNvdXJjZVJl
Y3QsIGNvbnN0IEdMdWludCBiaW5kRmJvSWQpCiB7CiAgICAgaWYgKCFtX2Zib0lkKQotICAgICAg
ICBnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm9JZCk7Ci0KLSAgICBtX3Jlc3RvcmVOZWVkZWQg
PSB0cnVlOwotICAgIGludCB4ID0gc291cmNlUmVjdC54KCk7Ci0gICAgaW50IHkgPSBzb3VyY2VS
ZWN0LnkoKTsKLSAgICBpbnQgd2lkdGggPSBzb3VyY2VSZWN0LndpZHRoKCk7Ci0gICAgaW50IGhl
aWdodCA9IHNvdXJjZVJlY3QuaGVpZ2h0KCk7Ci0KLSAgICBnbFB1c2hBdHRyaWIoR0xfQ09MT1Jf
QlVGRkVSX0JJVCk7Ci0KLSAgICBHTGludCBwcmV2aW91c0ZCTzsKLSAgICBnbEdldEludGVnZXJ2
KEdMX0ZSQU1FQlVGRkVSX0JJTkRJTkcsICZwcmV2aW91c0ZCTyk7CisgICAgICAgIHJldHVybjsK
IAotICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX1JFQURfRlJBTUVCVUZGRVIsIG1fZmJvSWQpOwot
Ci0gICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAgICBnbEZyYW1l
YnVmZmVyVGV4dHVyZTJEKEdMX1JFQURfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQw
LCBHTF9URVhUVVJFXzJELCB0ZXh0dXJlLCAwKTsKLQotICAgIGdsQmluZEZyYW1lYnVmZmVyKEdM
X0RSQVdfRlJBTUVCVUZGRVIsIDApOwotCi0gICAgZ2xCbGl0RnJhbWVidWZmZXIoeCwgeSwgd2lk
dGgsIGhlaWdodCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xf
TElORUFSKTsKLQotICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfUkVBRF9GUkFNRUJVRkZF
UiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIDAsIDApOwotICAgIGdsQmlu
ZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7Ci0gICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJB
TUVCVUZGRVIsIHByZXZpb3VzRkJPKTsKLQotICAgIGdsUG9wQXR0cmliKCk7Ci19Ci0KLXZvaWQg
R0xQbGF0Zm9ybVN1cmZhY2U6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHVpbnQzMl90IHRleHR1cmUs
IGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEdMdWludCBiaW5kRmJvSWQsIGNvbnN0
IHVpbnQzMl90IGJpbmRUZXh0dXJlKQotewogICAgIG1fcmVzdG9yZU5lZWRlZCA9IGZhbHNlOwog
Ci0gICAgaWYgKCFtX2Zib0lkKQotICAgICAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm9J
ZCk7Ci0KICAgICBpbnQgeCA9IHNvdXJjZVJlY3QueCgpOwogICAgIGludCB5ID0gc291cmNlUmVj
dC55KCk7CiAgICAgaW50IHdpZHRoID0gc291cmNlUmVjdC53aWR0aCgpOwogICAgIGludCBoZWln
aHQgPSBzb3VyY2VSZWN0LmhlaWdodCgpOwogCiAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfUkVB
RF9GUkFNRUJVRkZFUiwgbV9mYm9JZCk7Ci0gICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJE
LCB0ZXh0dXJlKTsKLSAgICBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX1JFQURfRlJBTUVCVUZG
RVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCB0ZXh0dXJlLCAwKTsKICAg
ICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9EUkFXX0ZSQU1FQlVGRkVSLCAwKTsKLSAgICBnbEJsaXRG
cmFtZWJ1ZmZlcih4LCB5LCB3aWR0aCwgaGVpZ2h0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBHTF9D
T0xPUl9CVUZGRVJfQklULCBHTF9MSU5FQVIpOworICAgIC8vIFVzZSBORUFSRVNUIGFzIG5vIHNj
YWxlIGlzIHBlcmZvcm1lZCBkdXJpbmcgdGhlIGJsaXQuCisgICAgZ2xCbGl0RnJhbWVidWZmZXIo
eCwgeSwgd2lkdGgsIGhlaWdodCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xfQ09MT1JfQlVGRkVS
X0JJVCwgR0xfTkVBUkVTVCk7CiAgICAgc3dhcEJ1ZmZlcnMoKTsKLSAgICBnbEZyYW1lYnVmZmVy
VGV4dHVyZTJEKEdMX1JFQURfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9U
RVhUVVJFXzJELCAwLCAwKTsKLSAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIGJpbmRU
ZXh0dXJlKTsKICAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgYmluZEZib0lk
KTsKIH0KIApkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HTFBsYXRmb3JtU3VyZmFjZS5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5oCmluZGV4IGI0MTExMzIuLjllY2Y5NjIgMTAwNjQ0Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZh
Y2UuaAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZv
cm1TdXJmYWNlLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9T
SVRJTkcpCiAKICNpbmNsdWRlICJHTERlZnMuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApA
QCAtNTEsNiArNTIsMTAgQEAgcHVibGljOgogCiAgICAgY29uc3QgSW50UmVjdCYgZ2VvbWV0cnko
KSBjb25zdDsKIAorICAgIC8vIENyZWF0ZXMgRkJPIHVzZWQgYnkgdGhlIHN1cmZhY2UuCisgICAg
Ly8gQnVmZmVycyBjYW4gYmUgYm91bmQgdG8gdGhpcyBGQk8uCisgICAgdm9pZCBpbml0aWFsaXpl
KEdMdWludCAqZnJhbWVCdWZmZXJJZCk7CisKICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgcGxh
dGZvcm0gc3BlY2lmaWMgc3VyZmFjZSBoYW5kbGUuCiAgICAgUGxhdGZvcm1TdXJmYWNlIGhhbmRs
ZSgpIGNvbnN0OwogCkBAIC01OCwxNCArNjMsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIHN3YXBCdWZmZXJzKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29weVRleHR1cmUodWludDMy
X3QgdGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCk7Ci0KLSAgICAvLyBDb252ZW5p
ZW5jZSBGdW5jdGlvbiB0byB1cGRhdGUgc3VyZmFjZSBiYWNrYnVmZmVyIHdpdGggdGV4dHVyZSBj
b250ZW50cywgcmVzdG9yZSBjdXJyZW50IEZCTyBhbmQgVGV4dHVyZS4KKyAgICAvLyBDb252ZW5p
ZW5jZSBGdW5jdGlvbiB0byB1cGRhdGUgc3VyZmFjZSBjb250ZW50cy4KICAgICAvLyBGdW5jdGlv
biBkb2VzIHRoZSBmb2xsb3dpbmcoaW4gb3JkZXIpOgotICAgIC8vIGEpQmxpdHMgdGV4dHVyZSBj
b250ZW50cyB0byBiYWNrIGJ1ZmZlci4KKyAgICAvLyBhKUJsaXRzIGJhY2sgYnVmZmVyIGNvbnRl
bnRzIHRvIGZyb250IGJ1ZmZlci4KICAgICAvLyBiKUNhbGxzIFN3YXAgQnVmZmVycy4KLSAgICAv
LyBjKVNldHMgY3VycmVudCBGQk8gYXMgYmluZEZib0lkIGFuZCBiaW5kcyB0ZXh0dXJlIHRvIGJp
bmRUZXh0dXJlLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB1aW50MzJf
dCB0ZXh0dXJlLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBHTHVpbnQgYmluZEZi
b0lkLCBjb25zdCB1aW50MzJfdCBiaW5kVGV4dHVyZSk7CisgICAgLy8gYylTZXRzIGN1cnJlbnQg
RkJPIGFzIGJpbmRGYm9JZC4KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qg
SW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgR0x1aW50IGJpbmRGYm9JZCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2V0R2VvbWV0cnkoY29uc3QgSW50UmVjdCYgbmV3UmVjdCk7CiAKZGlmZiAtLWdp
dCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFj
ZS5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJm
YWNlLmgKaW5kZXggZWIwMjdlZi4uMDY4ODdiMiAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlIDxYMTEvZXh0ZW5zaW9ucy9YcmVuZGVyLmg+CiAjZW5kaWYKICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178581</attachid>
            <date>2012-12-10 10:05:48 -0800</date>
            <delta_ts>2012-12-10 13:53:00 -0800</delta_ts>
            <desc>proposedpatch</desc>
            <filename>refactorContext.patch</filename>
            <type>text/plain</type>
            <size>13531</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDljNjhiZWEuLjk0M2M3ZDUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEy
LTEyLTEwICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXZWJHTF0gTWlub3IgUmVmYWN0b3IgaW4gR3JhcGhpY3NDb250ZXh0
M0RFZmwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDQ1NTMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2l0aCB0aGlzIHBhdGNoIHdlIHVzZSB0aGUgc2FtZSBGQk8gZm9yIGNhbnZhcyBhbmQgYmFja2J1
ZmZlciBvZiBvZmZzY3JlZW4gc3VyZmFjZS4KKyAgICAgICAgQWxzbywgcmVtb3ZlcyBzb21lIHVu
dXNlZCBjb2RlLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUdyYXBoaWNzU3VyZmFjZXMp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjYW52YXNSZXNpemVk
KToKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y29weVRvR3JhcGhpY3NTdXJm
YWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmg6CisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRFByaXZhdGUpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oOgorCiAyMDEyLTEyLTA4ICBLb25kYXBh
bGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KIAogICAgICAgICBbRUZM
XSBbV2ViR0xdIFBhdGggaXMgbm90IHJlc2l6ZWQgY29ycmVjdGx5LgpkaWZmIC0tZ2l0IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZs
LmNwcAppbmRleCAyZDEwYTFmLi42YjM4YWVmIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcAorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcApAQCAt
ODAsNyArODAsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhp
Y3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaQogCiAgICAgaWYgKHJlbmRlclN0
eWxlID09IFJlbmRlck9mZnNjcmVlbikgewogICAgICAgICAvLyBDcmVhdGUgYnVmZmVycyBmb3Ig
dGhlIGNhbnZhcyBGQk8uCi0gICAgICAgIGdsR2VuRnJhbWVidWZmZXJzKC8qIGNvdW50ICovIDEs
ICZtX2Zibyk7CisgICAgICAgIG1fcHJpdmF0ZS0+bV9wbGF0Zm9ybVN1cmZhY2UtPmluaXRpYWxp
emUoJm1fZmJvKTsKIAogICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRv
LgogICAgICAgICBnbEdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOwpAQCAtMTM0LDcgKzEzNCw4
IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQz
RDo6QXR0cmlidXRlcyBhdHRycywgSG9zdFdpCiAgICAgZ2xFbmFibGUoR0xfUE9JTlRfU1BSSVRF
KTsKICAgICBnbEVuYWJsZShHTF9WRVJURVhfUFJPR1JBTV9QT0lOVF9TSVpFKTsKICNlbmRpZgot
ICAgIGdsQ2xlYXJDb2xvcigwLjAsIDAuMCwgMC4wLCAwLjApOworICAgIGlmIChyZW5kZXJTdHls
ZSAhPSBSZW5kZXJUb0N1cnJlbnRHTENvbnRleHQpCisgICAgICAgIGdsQ2xlYXJDb2xvcigwLjAs
IDAuMCwgMC4wLCAwLjApOwogfQogCiBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4
dDNEKCkKQEAgLTE0MiwxMSArMTQzLDYgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0Nv
bnRleHQzRCgpCiAgICAgaWYgKCFtX3ByaXZhdGUgfHwgIW1ha2VDb250ZXh0Q3VycmVudCgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fZmJvKSB7Ci0gICAgICAgIG1fcHJpdmF0ZS0+
cmVsZWFzZVJlc291cmNlcygpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgZ2xEZWxl
dGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKIAogICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykg
ewpAQCAtMTY3LDcgKzE2Myw2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0
M0QoKQogICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVm
ZmVyKTsKICAgICB9CiAKLSAgICBnbERlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9mYm8pOwogICAg
IG1fcHJpdmF0ZS0+cmVsZWFzZVJlc291cmNlcygpOwogfQogCkBAIC0yMzYsOSArMjMxLDkgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRUb0NhbnZhcyhjb25zdCB1bnNpZ25lZCBjaGFy
KiBpbWFnZVBpeGVscywgaW50IGltYWcKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQot
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlR3JhcGhpY3NTdXJmYWNlcyhjb25zdCBJbnRT
aXplJiBzaXplKQordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlR3JhcGhpY3NTdXJmYWNl
cyhjb25zdCBJbnRTaXplJikKIHsKLSAgICBtX3ByaXZhdGUtPmNyZWF0ZUdyYXBoaWNzU3VyZmFj
ZXMoc2l6ZSk7CisgICAgbV9wcml2YXRlLT5jYW52YXNSZXNpemVkKCk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0Nv
bnRleHQzRFByaXZhdGUuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9H
cmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDE4ZTE2YjEuLjI3MzRlMTEgMTAwNjQ0
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlLmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTI1LDE0ICsyNSw2IEBACiAKICNpbmNsdWRl
ICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJQ
bGF0Zm9ybUNvbnRleHRDYWlyby5oIgotCi0jaWYgVVNFKE9QRU5HTF9FU18yKQotI2luY2x1ZGUg
PEdMRVMyL2dsMi5oPgotI2luY2x1ZGUgPEdMRVMyL2dsMmV4dC5oPgotI2Vsc2UKLSNpbmNsdWRl
ICJPcGVuR0xTaGltcy5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTMx
LDcgKzEyMyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwYWludFRvVGV4dHVy
ZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSCiAjZW5kaWYKIAogI2lmIFVTRShH
UkFQSElDU19TVVJGQUNFKQotdm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdy
YXBoaWNzU3VyZmFjZXMoY29uc3QgSW50U2l6ZSYpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZTo6Y2FudmFzUmVzaXplZCgpCiB7CiAgICAgbV9wZW5kaW5nU3VyZmFjZVJlc2l6ZSA9IHRy
dWU7CiB9CkBAIC0xNDYsMTUgKzEzOCwzMiBAQCB1aW50MzJfdCBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGU6OmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpCiAgICAgICAgIG1fcGxhdGZvcm1TdXJmYWNl
LT5zZXRHZW9tZXRyeShJbnRSZWN0KDAsIDAsIG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGgsIG1f
Y29udGV4dC0+bV9jdXJyZW50SGVpZ2h0KSk7CiAgICAgfQogCisgICAgYm9vbCBlbmFibGVTY2lz
c29yVGVzdCA9IGZhbHNlOworICAgIGludCB3aWR0aCA9IG1fY29udGV4dC0+bV9jdXJyZW50V2lk
dGg7CisgICAgaW50IGhlaWdodCA9IG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0OworCisgICAg
Ly8gV2Ugc2hvdWxkIGNvcHkgdGhlIGZ1bGwgYnVmZmVyLCBhbmQgbm90IHJlc3BlY3QgdGhlCisg
ICAgLy8gY3VycmVudCBzY2lzc29yIGJvdW5kcy4KKyAgICAvLyBGSVhNRTo6SXQgd291bGQgYmUg
bW9yZSBlZmZpY2llbnQgdG8gdHJhY2sgdGhlIHN0YXRlIG9mIHRoZSBzY2lzc29yIHRlc3QuCisg
ICAgaWYgKG1fY29udGV4dC0+aXNFbmFibGVkKEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RF
U1QpKSB7CisgICAgICAgIGVuYWJsZVNjaXNzb3JUZXN0ID0gdHJ1ZTsKKyAgICAgICAgbV9jb250
ZXh0LT5kaXNhYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1QpOworICAgIH0KKwog
ICAgIGlmIChtX2NvbnRleHQtPm1fYXR0cnMuYW50aWFsaWFzKSB7Ci0jaWYgIVVTRShPUEVOR0xf
RVNfMikKKwogICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9SRUFEX0ZSQU1FQlVGRkVSX0VY
VCwgbV9jb250ZXh0LT5tX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgZ2xCaW5kRnJhbWVidWZm
ZXIoR0xfRFJBV19GUkFNRUJVRkZFUl9FWFQsIG1fY29udGV4dC0+bV9mYm8pOwotICAgICAgICBn
bEJsaXRGcmFtZWJ1ZmZlcigwLCAwLCBtX2NvbnRleHQtPm1fY3VycmVudFdpZHRoLCBtX2NvbnRl
eHQtPm1fY3VycmVudEhlaWdodCwgMCwgMCwgbV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0aCwgbV9j
b250ZXh0LT5tX2N1cnJlbnRIZWlnaHQsIEdMX0NPTE9SX0JVRkZFUl9CSVQsIEdMX0xJTkVBUik7
Ci0jZW5kaWYKKworICAgICAgICAvLyBVc2UgTkVBUkVTVCBhcyBubyBzY2FsZSBpcyBwZXJmb3Jt
ZWQgZHVyaW5nIHRoZSBibGl0LgorICAgICAgICBnbEJsaXRGcmFtZWJ1ZmZlcigwLCAwLCB3aWR0
aCwgaGVpZ2h0LCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1Jf
QlVGRkVSX0JJVCwgR3JhcGhpY3NDb250ZXh0M0Q6Ok5FQVJFU1QpOwogICAgIH0KIAotICAgIG1f
cGxhdGZvcm1TdXJmYWNlLT51cGRhdGVDb250ZW50cyhtX2NvbnRleHQtPm1fdGV4dHVyZSwgSW50
UmVjdCgwLCAwLCBtX2NvbnRleHQtPm1fY3VycmVudFdpZHRoLCBtX2NvbnRleHQtPm1fY3VycmVu
dEhlaWdodCksIG1fY29udGV4dC0+bV9ib3VuZEZCTywgbV9jb250ZXh0LT5tX2JvdW5kVGV4dHVy
ZTApOworICAgIG1fcGxhdGZvcm1TdXJmYWNlLT51cGRhdGVDb250ZW50cyhJbnRSZWN0KDAsIDAs
IHdpZHRoLCBoZWlnaHQpLCBtX2NvbnRleHQtPm1fYm91bmRGQk8pOworCisgICAgaWYgKGVuYWJs
ZVNjaXNzb3JUZXN0KQorICAgICAgICBtX2NvbnRleHQtPmVuYWJsZShHcmFwaGljc0NvbnRleHQz
RDo6U0NJU1NPUl9URVNUKTsKKwogICAgIHJldHVybiAwOwogfQogCmRpZmYgLS1naXQgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5o
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUuaAppbmRleCAzZDYwYjRlLi41OTM0ODZlIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRl
LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQog
ICAgIHZpcnR1YWwgdWludDMyX3QgY29weVRvR3JhcGhpY3NTdXJmYWNlKCk7CiAgICAgdmlydHVh
bCBHcmFwaGljc1N1cmZhY2VUb2tlbiBncmFwaGljc1N1cmZhY2VUb2tlbigpIGNvbnN0OwotICAg
IHZvaWQgY3JlYXRlR3JhcGhpY3NTdXJmYWNlcyhjb25zdCBJbnRTaXplJik7CisgICAgdm9pZCBj
YW52YXNSZXNpemVkKCk7CiAjZW5kaWYKICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpOwog
ICAgIHZvaWQgcmVsZWFzZVJlc291cmNlcygpOwpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR0xEZWZzLmgKaW5kZXggNmUzNmExMS4uYjg3ZmQzNDkgMTAwNjQ0Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xEZWZzLmgKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaApAQCAtMjksMTUg
KzI5LDE1IEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogCiAjaWYgVVNFKE9Q
RU5HTF9FU18yKQotI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTEVTLmgiCisjaW5jbHVkZSAi
T3BlbkdMRVNTaGltcy5oIgorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPEdMRVMy
L2dsMmV4dC5oPgogI2Vsc2UKLSNpbmNsdWRlICJFeHRlbnNpb25zM0RPcGVuR0wuaCIKLSNlbmRp
ZgotCiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMuaCIKLQogI2luY2x1ZGUgPEdML2dsLmg+CiAjaW5j
bHVkZSA8R0wvZ2xleHQuaD4KKyNlbmRpZgorCiAjaWYgSEFWRShHTFgpCiAjaW5jbHVkZSA8R0wv
Z2x4Lmg+CiAjZW5kaWYKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAKaW5kZXggMTdiMzA4NC4uMjRjODQ0
NCAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBs
YXRmb3JtQ29udGV4dC5jcHAKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5jcHAKQEAgLTQxLDE4ICs0MSwxNSBAQCBzdGF0aWMgR0xQ
bGF0Zm9ybUNvbnRleHQqIG1fY3VycmVudENvbnRleHQgPSAwOwogCiBQYXNzT3duUHRyPEdMUGxh
dGZvcm1Db250ZXh0PiBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRlQ29udGV4dChHcmFwaGljc0Nv
bnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCiB7Ci0gICAgc3RhdGljIGJvb2wgaW5p
dGlhbGl6ZWRTaGltcyA9IGZhbHNlOworICAgIGlmICghaW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCkp
CisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFpbml0aWFsaXplZFNoaW1zKSB7
Ci0gICAgICAgIGluaXRpYWxpemVkU2hpbXMgPSBpbml0aWFsaXplT3BlbkdMU2hpbXMoKTsKKyAg
ICBpZiAoIWdsR2V0R3JhcGhpY3NSZXNldFN0YXR1c0FSQikgewogI2lmIEhBVkUoR0xYKQogICAg
ICAgICBnbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIgPSByZWludGVycHJldF9jYXN0PFBGTkdM
R0VUR1JBUEhJQ1NSRVNFVFNUQVRVU0FSQlBST0M+KGdsWEdldFByb2NBZGRyZXNzQVJCKHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgR0x1Ynl0ZSo+KCJnbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIi
KSkpOwogI2VuZGlmCiAgICAgfQogCi0gICAgaWYgKCFpbml0aWFsaXplZFNoaW1zKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsKICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJPZmZzY3JlZW46CiAgICAgICAgIGlmIChPd25QdHI8
R0xQbGF0Zm9ybUNvbnRleHQ+IGdseENvbnRleHQgPSBHTFBsYXRmb3JtQ29udGV4dDo6Y3JlYXRl
T2ZmU2NyZWVuQ29udGV4dCgpKQpkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oCmluZGV4IDE5NTliN2IuLjE3MGI3
NmUgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQ
bGF0Zm9ybUNvbnRleHQuaAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dMUGxhdGZvcm1Db250ZXh0LmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkdM
RGVmcy5oIgogI2luY2x1ZGUgIkdMUGxhdGZvcm1TdXJmYWNlLmgiCisjaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0M0QuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCmluZGV4IDc2ZTgwMTkuLjVl
NzBlNmEgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R0xQbGF0Zm9ybVN1cmZhY2UuY3BwCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuY3BwCkBAIC03Miw2ICs3MiwxNCBAQCBHTFBsYXRm
b3JtU3VyZmFjZTo6fkdMUGxhdGZvcm1TdXJmYWNlKCkKIHsKIH0KIAordm9pZCBHTFBsYXRmb3Jt
U3VyZmFjZTo6aW5pdGlhbGl6ZShHTHVpbnQqIGZyYW1lQnVmZmVySWQpCit7CisgICAgaWYgKCFt
X2Zib0lkKQorICAgICAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmbV9mYm9JZCk7CisKKyAgICAq
ZnJhbWVCdWZmZXJJZCA9IG1fZmJvSWQ7Cit9CisKIFBsYXRmb3JtU3VyZmFjZSBHTFBsYXRmb3Jt
U3VyZmFjZTo6aGFuZGxlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9kcmF3YWJsZTsKQEAgLTk3
LDU4ICsxMDUsMjMgQEAgdm9pZCBHTFBsYXRmb3JtU3VyZmFjZTo6c3dhcEJ1ZmZlcnMoKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgR0xQbGF0Zm9ybVN1cmZhY2U6OmNvcHlUZXh0
dXJlKHVpbnQzMl90IHRleHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpCit2b2lkIEdM
UGxhdGZvcm1TdXJmYWNlOjp1cGRhdGVDb250ZW50cyhjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCBjb25zdCBHTHVpbnQgYmluZEZib0lkKQogewogICAgIGlmICghbV9mYm9JZCkKLSAgICAgICAg
Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvSWQpOwotCi0gICAgbV9yZXN0b3JlTmVlZGVkID0g
dHJ1ZTsKLSAgICBpbnQgeCA9IHNvdXJjZVJlY3QueCgpOwotICAgIGludCB5ID0gc291cmNlUmVj
dC55KCk7Ci0gICAgaW50IHdpZHRoID0gc291cmNlUmVjdC53aWR0aCgpOwotICAgIGludCBoZWln
aHQgPSBzb3VyY2VSZWN0LmhlaWdodCgpOwotCi0gICAgZ2xQdXNoQXR0cmliKEdMX0NPTE9SX0JV
RkZFUl9CSVQpOwotCi0gICAgR0xpbnQgcHJldmlvdXNGQk87Ci0gICAgZ2xHZXRJbnRlZ2VydihH
TF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAmcHJldmlvdXNGQk8pOworICAgICAgICByZXR1cm47CiAK
LSAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9SRUFEX0ZSQU1FQlVGRkVSLCBtX2Zib0lkKTsKLQot
ICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgdGV4dHVyZSk7Ci0gICAgZ2xGcmFtZWJ1
ZmZlclRleHR1cmUyRChHTF9SRUFEX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwg
R0xfVEVYVFVSRV8yRCwgdGV4dHVyZSwgMCk7Ci0KLSAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9E
UkFXX0ZSQU1FQlVGRkVSLCAwKTsKLQotICAgIGdsQmxpdEZyYW1lYnVmZmVyKHgsIHksIHdpZHRo
LCBoZWlnaHQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX0NPTE9SX0JVRkZFUl9CSVQsIEdMX0xJ
TkVBUik7Ci0KLSAgICBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX1JFQURfRlJBTUVCVUZGRVIs
IEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCAwLCAwKTsKLSAgICBnbEJpbmRU
ZXh0dXJlKEdMX1RFWFRVUkVfMkQsIDApOwotICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1F
QlVGRkVSLCBwcmV2aW91c0ZCTyk7Ci0KLSAgICBnbFBvcEF0dHJpYigpOwotfQotCi12b2lkIEdM
UGxhdGZvcm1TdXJmYWNlOjp1cGRhdGVDb250ZW50cyhjb25zdCB1aW50MzJfdCB0ZXh0dXJlLCBj
b25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBHTHVpbnQgYmluZEZib0lkLCBjb25zdCB1
aW50MzJfdCBiaW5kVGV4dHVyZSkKLXsKICAgICBtX3Jlc3RvcmVOZWVkZWQgPSBmYWxzZTsKIAot
ICAgIGlmICghbV9mYm9JZCkKLSAgICAgICAgZ2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvSWQp
OwotCiAgICAgaW50IHggPSBzb3VyY2VSZWN0LngoKTsKICAgICBpbnQgeSA9IHNvdXJjZVJlY3Qu
eSgpOwogICAgIGludCB3aWR0aCA9IHNvdXJjZVJlY3Qud2lkdGgoKTsKICAgICBpbnQgaGVpZ2h0
ID0gc291cmNlUmVjdC5oZWlnaHQoKTsKIAogICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX1JFQURf
RlJBTUVCVUZGRVIsIG1fZmJvSWQpOwotICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwg
dGV4dHVyZSk7Ci0gICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9SRUFEX0ZSQU1FQlVGRkVS
LCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV8yRCwgdGV4dHVyZSwgMCk7CiAgICAg
Z2xCaW5kRnJhbWVidWZmZXIoR0xfRFJBV19GUkFNRUJVRkZFUiwgMCk7Ci0gICAgZ2xCbGl0RnJh
bWVidWZmZXIoeCwgeSwgd2lkdGgsIGhlaWdodCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xfQ09M
T1JfQlVGRkVSX0JJVCwgR0xfTElORUFSKTsKKyAgICAvLyBVc2UgTkVBUkVTVCBhcyBubyBzY2Fs
ZSBpcyBwZXJmb3JtZWQgZHVyaW5nIHRoZSBibGl0LgorICAgIGdsQmxpdEZyYW1lYnVmZmVyKHgs
IHksIHdpZHRoLCBoZWlnaHQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX0NPTE9SX0JVRkZFUl9C
SVQsIEdMX05FQVJFU1QpOwogICAgIHN3YXBCdWZmZXJzKCk7Ci0gICAgZ2xGcmFtZWJ1ZmZlclRl
eHR1cmUyRChHTF9SRUFEX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVY
VFVSRV8yRCwgMCwgMCk7Ci0gICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBiaW5kVGV4
dHVyZSk7CiAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGJpbmRGYm9JZCk7
CiB9CiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R0xQbGF0Zm9ybVN1cmZhY2UuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR0xQbGF0Zm9ybVN1cmZhY2UuaAppbmRleCBiNDExMTMyLi45ZWNmOTYyIDEwMDY0NAotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNl
LmgKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3Jt
U3VyZmFjZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQogCiAjaW5jbHVkZSAiR0xEZWZzLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAg
LTUxLDYgKzUyLDEwIEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEludFJlY3QmIGdlb21ldHJ5KCkg
Y29uc3Q7CiAKKyAgICAvLyBDcmVhdGVzIEZCTyB1c2VkIGJ5IHRoZSBzdXJmYWNlLgorICAgIC8v
IEJ1ZmZlcnMgY2FuIGJlIGJvdW5kIHRvIHRoaXMgRkJPLgorICAgIHZvaWQgaW5pdGlhbGl6ZShH
THVpbnQgKmZyYW1lQnVmZmVySWQpOworCiAgICAgLy8gR2V0IHRoZSB1bmRlcmx5aW5nIHBsYXRm
b3JtIHNwZWNpZmljIHN1cmZhY2UgaGFuZGxlLgogICAgIFBsYXRmb3JtU3VyZmFjZSBoYW5kbGUo
KSBjb25zdDsKIApAQCAtNTgsMTQgKzYzLDEyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBzd2FwQnVmZmVycygpOwogCi0gICAgdmlydHVhbCB2b2lkIGNvcHlUZXh0dXJlKHVpbnQzMl90
IHRleHR1cmUsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QpOwotCi0gICAgLy8gQ29udmVuaWVu
Y2UgRnVuY3Rpb24gdG8gdXBkYXRlIHN1cmZhY2UgYmFja2J1ZmZlciB3aXRoIHRleHR1cmUgY29u
dGVudHMsIHJlc3RvcmUgY3VycmVudCBGQk8gYW5kIFRleHR1cmUuCisgICAgLy8gQ29udmVuaWVu
Y2UgRnVuY3Rpb24gdG8gdXBkYXRlIHN1cmZhY2UgY29udGVudHMuCiAgICAgLy8gRnVuY3Rpb24g
ZG9lcyB0aGUgZm9sbG93aW5nKGluIG9yZGVyKToKLSAgICAvLyBhKUJsaXRzIHRleHR1cmUgY29u
dGVudHMgdG8gYmFjayBidWZmZXIuCisgICAgLy8gYSlCbGl0cyBiYWNrIGJ1ZmZlciBjb250ZW50
cyB0byBmcm9udCBidWZmZXIuCiAgICAgLy8gYilDYWxscyBTd2FwIEJ1ZmZlcnMuCi0gICAgLy8g
YylTZXRzIGN1cnJlbnQgRkJPIGFzIGJpbmRGYm9JZCBhbmQgYmluZHMgdGV4dHVyZSB0byBiaW5k
VGV4dHVyZS4KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3QgdWludDMyX3Qg
dGV4dHVyZSwgY29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgR0x1aW50IGJpbmRGYm9J
ZCwgY29uc3QgdWludDMyX3QgYmluZFRleHR1cmUpOworICAgIC8vIGMpU2V0cyBjdXJyZW50IEZC
TyBhcyBiaW5kRmJvSWQuCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKGNvbnN0IElu
dFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEdMdWludCBiaW5kRmJvSWQpOwogCiAgICAgdmlydHVh
bCB2b2lkIHNldEdlb21ldHJ5KGNvbnN0IEludFJlY3QmIG5ld1JlY3QpOwogCmRpZmYgLS1naXQg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2Uu
aCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFj
ZS5oCmluZGV4IGViMDI3ZWYuLjA2ODg3YjIgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSA8WDExL2V4dGVuc2lvbnMvWHJlbmRlci5oPgogI2VuZGlmCiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCg==
</data>
<flag name="review"
          id="195167"
          type_id="1"
          status="-"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="195168"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178628</attachid>
            <date>2012-12-10 13:53:00 -0800</date>
            <delta_ts>2012-12-10 15:02:19 -0800</delta_ts>
            <desc>patchv3</desc>
            <filename>reviewfixes.patch</filename>
            <type>text/plain</type>
            <size>14712</size>
            <attacher name="Kalyan">kalyan.kondapally</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDljNjhiZWEuLmMyMTA2NGMgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEy
LTEyLTEwICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXZWJHTF0gTWlub3IgUmVmYWN0b3JpbmcgaW4gR3JhcGhpY3NDb250
ZXh0M0RFZmwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDQ1NTMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2UgdXNlIGRpZmZlcmVudCBGQk8gZm9yIGNhbnZhcyBhbmQgb2Zmc2NyZWVuIHN1cmZhY2Ug
b2Ygb3VyIHBsYXRmb3JtIGxheWVyLgorICAgICAgICBUaHVzIHdlIG5lZWQgdG8gbWFuYWdlIGFu
eSBib3VuZCBidWZmZXJzIHdoaWxlIGNvcHlpbmcgY29udGVudHMgdG8gdGhlIHN1cmZhY2UuIEN1
cnJlbnRseSwgU3VyZmFjZQorICAgICAgICBhbHdheXMgdXNlcyBkb3VibGUgYnVmZmVyaW5nIGJ1
dCBpbiBmdXR1cmUgd2Ugc2hvdWxkIGJlIGFibGUgdG8gY29uZmlndXJlIGl0IHRvIHVzZSBlaXRo
ZXIKKyAgICAgICAgZG91YmxlIG9yIHNpbmdsZSBidWZmZXIuIEZvciB0aGVzZSB1c2UgY2FzZXMs
IGl0IHdvdWxkIGJlIGhhbmR5IHRvIGJpbmQgYnVmZmVycyBkaXJlY3RseSB0bworICAgICAgICBG
Qk8gdXNlZCBieSB0aGUgc3VyZmFjZS4gVGhpcyBwYXRjaCBkb2VzIHRoZSBuZWVkZWQgY2hhbmdl
cyBpbiBHcmFwaGljc0NvbnRleHQzREVmbCBhbmQKKyAgICAgICAgUGxhdGZvcm1TdXJmYWNlLiBB
bHNvLCByZW1vdmVzIHNvbWUgdW51c2VkIGNvZGUuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICBSZWxldmFudCBjaGFuZ2VzIGluIEdyYXBoaWNzQ29udGV4
dDNERWZsIHRvIG9idGFpbiBGQk8gaWQgZnJvbSBQbGF0Zm9ybVN1cmZhY2UuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNERWZsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKworICAg
ICAgICBSZW5hbWVkIGNyZWF0ZUdyYXBoaWNzU3VyZmFjZSB0byBkaWRSZXNpemVDYW52YXMuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlR3JhcGhpY3NTdXJmYWNl
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHA6CisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmRpZFJlc2l6ZUNh
bnZhcyk6CisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNvcHlUb0dyYXBoaWNz
U3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5oOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKToKKworICAg
ICAgICBIZWFkZXIgY2xlYW51cC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R0xEZWZzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1D
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1Db250ZXh0OjpjcmVhdGVD
b250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNv
bnRleHQuaDoKKworICAgICAgICBBZGRlZCBpbml0aWFsaXplIG1ldGhvZCB0byBleHBvc2UgRkJP
IGlkIG9mIHRoZSBzdXJmYWNlLgorICAgICAgICBSZW1vdmVkIHVudXNlZCBjb2RlLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpHTFBsYXRmb3JtU3VyZmFjZTo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkdMUGxhdGZvcm1TdXJmYWNlOjp1cGRhdGVDb250
ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJm
YWNlLmg6CisgICAgICAgIChHTFBsYXRmb3JtU3VyZmFjZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvc3VyZmFjZXMvZ2x4L0dMWFN1cmZhY2UuaDoKKwogMjAxMi0xMi0wOCAgS29uZGFw
YWxseSBLYWx5YW4gIDxrYWx5YW4ua29uZGFwYWxseUBpbnRlbC5jb20+CiAKICAgICAgICAgW0VG
TF0gW1dlYkdMXSBQYXRoIGlzIG5vdCByZXNpemVkIGNvcnJlY3RseS4KZGlmZiAtLWdpdCBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwuY3Bw
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVm
bC5jcHAKaW5kZXggMmQxMGExZi4uYTQxZDBlNCAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAKQEAg
LTgwLDcgKzgwLDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBo
aWNzQ29udGV4dDNEOjpBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2kKIAogICAgIGlmIChyZW5kZXJT
dHlsZSA9PSBSZW5kZXJPZmZzY3JlZW4pIHsKICAgICAgICAgLy8gQ3JlYXRlIGJ1ZmZlcnMgZm9y
IHRoZSBjYW52YXMgRkJPLgotICAgICAgICBnbEdlbkZyYW1lYnVmZmVycygvKiBjb3VudCAqLyAx
LCAmbV9mYm8pOworICAgICAgICBtX3ByaXZhdGUtPm1fcGxhdGZvcm1TdXJmYWNlLT5pbml0aWFs
aXplKCZtX2Zibyk7CiAKICAgICAgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50
by4KICAgICAgICAgZ2xHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKQEAgLTEzNCw3ICsxMzQs
OCBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0Q6OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaQogICAgIGdsRW5hYmxlKEdMX1BPSU5UX1NQUklU
RSk7CiAgICAgZ2xFbmFibGUoR0xfVkVSVEVYX1BST0dSQU1fUE9JTlRfU0laRSk7CiAjZW5kaWYK
LSAgICBnbENsZWFyQ29sb3IoMC4wLCAwLjAsIDAuMCwgMC4wKTsKKyAgICBpZiAocmVuZGVyU3R5
bGUgIT0gUmVuZGVyVG9DdXJyZW50R0xDb250ZXh0KQorICAgICAgICBnbENsZWFyQ29sb3IoMC4w
LCAwLjAsIDAuMCwgMC4wKTsKIH0KIAogR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRl
eHQzRCgpCkBAIC0xNDIsMTEgKzE0Myw2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3ND
b250ZXh0M0QoKQogICAgIGlmICghbV9wcml2YXRlIHx8ICFtYWtlQ29udGV4dEN1cnJlbnQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX2ZibykgewotICAgICAgICBtX3ByaXZhdGUt
PnJlbGVhc2VSZXNvdXJjZXMoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGdsRGVs
ZXRlVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CiAKICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMp
IHsKQEAgLTE2Nyw3ICsxNjMsNiBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4
dDNEKCkKICAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1
ZmZlcik7CiAgICAgfQogCi0gICAgZ2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKICAg
ICBtX3ByaXZhdGUtPnJlbGVhc2VSZXNvdXJjZXMoKTsKIH0KIApAQCAtMjM2LDkgKzIzMSw5IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50VG9DYW52YXMoY29uc3QgdW5zaWduZWQgY2hh
ciogaW1hZ2VQaXhlbHMsIGludCBpbWFnCiB9CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkK
LXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUdyYXBoaWNzU3VyZmFjZXMoY29uc3QgSW50
U2l6ZSYgc2l6ZSkKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUdyYXBoaWNzU3VyZmFj
ZXMoY29uc3QgSW50U2l6ZSYpCiB7Ci0gICAgbV9wcml2YXRlLT5jcmVhdGVHcmFwaGljc1N1cmZh
Y2VzKHNpemUpOworICAgIG1fcHJpdmF0ZS0+ZGlkUmVzaXplQ2FudmFzKCk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGlj
c0NvbnRleHQzRFByaXZhdGUuY3BwIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Vm
bC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCmluZGV4IDE4ZTE2YjEuLmI5MWJiOTEgMTAw
NjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250
ZXh0M0RQcml2YXRlLmNwcAorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTI1LDE0ICsyNSw2IEBACiAKICNpbmNs
dWRlICJIb3N0V2luZG93LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRl
ICJQbGF0Zm9ybUNvbnRleHRDYWlyby5oIgotCi0jaWYgVVNFKE9QRU5HTF9FU18yKQotI2luY2x1
ZGUgPEdMRVMyL2dsMi5oPgotI2luY2x1ZGUgPEdMRVMyL2dsMmV4dC5oPgotI2Vsc2UKLSNpbmNs
dWRlICJPcGVuR0xTaGltcy5oIgotI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MTMxLDcgKzEyMyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwYWludFRvVGV4
dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29uc3QgRmxvYXRSCiAjZW5kaWYKIAogI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0
ZUdyYXBoaWNzU3VyZmFjZXMoY29uc3QgSW50U2l6ZSYpCit2b2lkIEdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6ZGlkUmVzaXplQ2FudmFzKCkKIHsKICAgICBtX3BlbmRpbmdTdXJmYWNlUmVzaXpl
ID0gdHJ1ZTsKIH0KQEAgLTE0NiwxNSArMTM4LDMxIEBAIHVpbnQzMl90IEdyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZTo6Y29weVRvR3JhcGhpY3NTdXJmYWNlKCkKICAgICAgICAgbV9wbGF0Zm9ybVN1
cmZhY2UtPnNldEdlb21ldHJ5KEludFJlY3QoMCwgMCwgbV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0
aCwgbV9jb250ZXh0LT5tX2N1cnJlbnRIZWlnaHQpKTsKICAgICB9CiAKKyAgICBib29sIGVuYWJs
ZVNjaXNzb3JUZXN0ID0gZmFsc2U7CisgICAgaW50IHdpZHRoID0gbV9jb250ZXh0LT5tX2N1cnJl
bnRXaWR0aDsKKyAgICBpbnQgaGVpZ2h0ID0gbV9jb250ZXh0LT5tX2N1cnJlbnRIZWlnaHQ7CisK
KyAgICAvLyBXZSBzaG91bGQgY29weSB0aGUgZnVsbCBidWZmZXIsIGFuZCBub3QgcmVzcGVjdCB0
aGUgY3VycmVudCBzY2lzc29yIGJvdW5kcy4KKyAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbW9y
ZSBlZmZpY2llbnQgdG8gdHJhY2sgdGhlIHN0YXRlIG9mIHRoZSBzY2lzc29yIHRlc3QuCisgICAg
aWYgKG1fY29udGV4dC0+aXNFbmFibGVkKEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1Qp
KSB7CisgICAgICAgIGVuYWJsZVNjaXNzb3JUZXN0ID0gdHJ1ZTsKKyAgICAgICAgbV9jb250ZXh0
LT5kaXNhYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1QpOworICAgIH0KKwogICAg
IGlmIChtX2NvbnRleHQtPm1fYXR0cnMuYW50aWFsaWFzKSB7Ci0jaWYgIVVTRShPUEVOR0xfRVNf
MikKKwogICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9SRUFEX0ZSQU1FQlVGRkVSX0VYVCwg
bV9jb250ZXh0LT5tX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXIo
R0xfRFJBV19GUkFNRUJVRkZFUl9FWFQsIG1fY29udGV4dC0+bV9mYm8pOwotICAgICAgICBnbEJs
aXRGcmFtZWJ1ZmZlcigwLCAwLCBtX2NvbnRleHQtPm1fY3VycmVudFdpZHRoLCBtX2NvbnRleHQt
Pm1fY3VycmVudEhlaWdodCwgMCwgMCwgbV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0aCwgbV9jb250
ZXh0LT5tX2N1cnJlbnRIZWlnaHQsIEdMX0NPTE9SX0JVRkZFUl9CSVQsIEdMX0xJTkVBUik7Ci0j
ZW5kaWYKKworICAgICAgICAvLyBVc2UgTkVBUkVTVCBhcyBubyBzY2FsZSBpcyBwZXJmb3JtZWQg
ZHVyaW5nIHRoZSBibGl0LgorICAgICAgICBnbEJsaXRGcmFtZWJ1ZmZlcigwLCAwLCB3aWR0aCwg
aGVpZ2h0LCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQlVG
RkVSX0JJVCwgR3JhcGhpY3NDb250ZXh0M0Q6Ok5FQVJFU1QpOwogICAgIH0KIAotICAgIG1fcGxh
dGZvcm1TdXJmYWNlLT51cGRhdGVDb250ZW50cyhtX2NvbnRleHQtPm1fdGV4dHVyZSwgSW50UmVj
dCgwLCAwLCBtX2NvbnRleHQtPm1fY3VycmVudFdpZHRoLCBtX2NvbnRleHQtPm1fY3VycmVudEhl
aWdodCksIG1fY29udGV4dC0+bV9ib3VuZEZCTywgbV9jb250ZXh0LT5tX2JvdW5kVGV4dHVyZTAp
OworICAgIG1fcGxhdGZvcm1TdXJmYWNlLT51cGRhdGVDb250ZW50cyhtX2NvbnRleHQtPm1fYm91
bmRGQk8pOworCisgICAgaWYgKGVuYWJsZVNjaXNzb3JUZXN0KQorICAgICAgICBtX2NvbnRleHQt
PmVuYWJsZShHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUKTsKKwogICAgIHJldHVybiAw
OwogfQogCmRpZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuaAppbmRleCAzZDYwYjRlLi5jNjViNjdlIDEw
MDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZS5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwv
R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQogICAgIHZpcnR1YWwgdWludDMyX3QgY29weVRvR3JhcGhp
Y3NTdXJmYWNlKCk7CiAgICAgdmlydHVhbCBHcmFwaGljc1N1cmZhY2VUb2tlbiBncmFwaGljc1N1
cmZhY2VUb2tlbigpIGNvbnN0OwotICAgIHZvaWQgY3JlYXRlR3JhcGhpY3NTdXJmYWNlcyhjb25z
dCBJbnRTaXplJik7CisgICAgdm9pZCBkaWRSZXNpemVDYW52YXMoKTsKICNlbmRpZgogICAgIGJv
b2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgdm9pZCByZWxlYXNlUmVzb3VyY2VzKCk7CmRp
ZmYgLS1naXQgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMRGVmcy5o
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTERlZnMuaAppbmRleCA2
ZTM2YTExLi5kZjViY2RkIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dMRGVmcy5oCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR0xEZWZzLmgKQEAgLTI4LDE2ICsyOCwxNiBAQAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQogCi0jaWYgVVNFKE9QRU5HTF9FU18yKQotI2luY2x1ZGUgIkV4dGVuc2lv
bnMzRE9wZW5HTEVTLmgiCi0jZWxzZQotI2luY2x1ZGUgIkV4dGVuc2lvbnMzRE9wZW5HTC5oIgot
I2VuZGlmCi0KICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogCisjaWYgVVNFKE9QRU5HTF9FU18y
KQorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPEdMRVMyL2dsMmV4dC5oPgorI2Vs
c2UKICNpbmNsdWRlIDxHTC9nbC5oPgogI2luY2x1ZGUgPEdML2dsZXh0Lmg+CisjZW5kaWYKKwog
I2lmIEhBVkUoR0xYKQogI2luY2x1ZGUgPEdML2dseC5oPgogI2VuZGlmCmRpZmYgLS1naXQgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmNw
cCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRl
eHQuY3BwCmluZGV4IDE3YjMwODQuLjI0Yzg0NDQgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRleHQuY3BwCkBA
IC00MSwxOCArNDEsMTUgQEAgc3RhdGljIEdMUGxhdGZvcm1Db250ZXh0KiBtX2N1cnJlbnRDb250
ZXh0ID0gMDsKIAogUGFzc093blB0cjxHTFBsYXRmb3JtQ29udGV4dD4gR0xQbGF0Zm9ybUNvbnRl
eHQ6OmNyZWF0ZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0
eWxlKQogewotICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkU2hpbXMgPSBmYWxzZTsKKyAgICBp
ZiAoIWluaXRpYWxpemVPcGVuR0xTaGltcygpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAot
ICAgIGlmICghaW5pdGlhbGl6ZWRTaGltcykgewotICAgICAgICBpbml0aWFsaXplZFNoaW1zID0g
aW5pdGlhbGl6ZU9wZW5HTFNoaW1zKCk7CisgICAgaWYgKCFnbEdldEdyYXBoaWNzUmVzZXRTdGF0
dXNBUkIpIHsKICNpZiBIQVZFKEdMWCkKICAgICAgICAgZ2xHZXRHcmFwaGljc1Jlc2V0U3RhdHVz
QVJCID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTEdFVEdSQVBISUNTUkVTRVRTVEFUVVNBUkJQUk9D
PihnbFhHZXRQcm9jQWRkcmVzc0FSQihyZWludGVycHJldF9jYXN0PGNvbnN0IEdMdWJ5dGUqPigi
Z2xHZXRHcmFwaGljc1Jlc2V0U3RhdHVzQVJCIikpKTsKICNlbmRpZgogICAgIH0KIAotICAgIGlm
ICghaW5pdGlhbGl6ZWRTaGltcykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICBzd2l0
Y2ggKHJlbmRlclN0eWxlKSB7CiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyT2Zm
c2NyZWVuOgogICAgICAgICBpZiAoT3duUHRyPEdMUGxhdGZvcm1Db250ZXh0PiBnbHhDb250ZXh0
ID0gR0xQbGF0Zm9ybUNvbnRleHQ6OmNyZWF0ZU9mZlNjcmVlbkNvbnRleHQoKSkKZGlmZiAtLWdp
dCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNvbnRl
eHQuaCBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybUNv
bnRleHQuaAppbmRleCAxOTU5YjdiLi4xNzBiNzZlIDEwMDY0NAotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1Db250ZXh0LmgKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtQ29udGV4dC5oCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJHTERlZnMuaCIKICNpbmNsdWRlICJHTFBsYXRmb3Jt
U3VyZmFjZS5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApkaWZmIC0tZ2l0
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3VyZmFj
ZS5jcHAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1T
dXJmYWNlLmNwcAppbmRleCA3NmU4MDE5Li44Mzc4YWY4IDEwMDY0NAotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNwcAorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmNw
cApAQCAtNzIsNiArNzIsMTQgQEAgR0xQbGF0Zm9ybVN1cmZhY2U6On5HTFBsYXRmb3JtU3VyZmFj
ZSgpCiB7CiB9CiAKK3ZvaWQgR0xQbGF0Zm9ybVN1cmZhY2U6OmluaXRpYWxpemUoR0x1aW50KiBm
cmFtZUJ1ZmZlcklkKQoreworICAgIGlmICghbV9mYm9JZCkKKyAgICAgICAgZ2xHZW5GcmFtZWJ1
ZmZlcnMoMSwgJm1fZmJvSWQpOworCisgICAgKmZyYW1lQnVmZmVySWQgPSBtX2Zib0lkOworfQor
CiBQbGF0Zm9ybVN1cmZhY2UgR0xQbGF0Zm9ybVN1cmZhY2U6OmhhbmRsZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fZHJhd2FibGU7CkBAIC05Nyw1OCArMTA1LDIzIEBAIHZvaWQgR0xQbGF0Zm9y
bVN1cmZhY2U6OnN3YXBCdWZmZXJzKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lk
IEdMUGxhdGZvcm1TdXJmYWNlOjpjb3B5VGV4dHVyZSh1aW50MzJfdCB0ZXh0dXJlLCBjb25zdCBJ
bnRSZWN0JiBzb3VyY2VSZWN0KQordm9pZCBHTFBsYXRmb3JtU3VyZmFjZTo6dXBkYXRlQ29udGVu
dHMoY29uc3QgR0x1aW50IGJpbmRGYm9JZCkKIHsKICAgICBpZiAoIW1fZmJvSWQpCi0gICAgICAg
IGdsR2VuRnJhbWVidWZmZXJzKDEsICZtX2Zib0lkKTsKLQotICAgIG1fcmVzdG9yZU5lZWRlZCA9
IHRydWU7Ci0gICAgaW50IHggPSBzb3VyY2VSZWN0LngoKTsKLSAgICBpbnQgeSA9IHNvdXJjZVJl
Y3QueSgpOwotICAgIGludCB3aWR0aCA9IHNvdXJjZVJlY3Qud2lkdGgoKTsKLSAgICBpbnQgaGVp
Z2h0ID0gc291cmNlUmVjdC5oZWlnaHQoKTsKLQotICAgIGdsUHVzaEF0dHJpYihHTF9DT0xPUl9C
VUZGRVJfQklUKTsKLQotICAgIEdMaW50IHByZXZpb3VzRkJPOwotICAgIGdsR2V0SW50ZWdlcnYo
R0xfRlJBTUVCVUZGRVJfQklORElORywgJnByZXZpb3VzRkJPKTsKLQotICAgIGdsQmluZEZyYW1l
YnVmZmVyKEdMX1JFQURfRlJBTUVCVUZGRVIsIG1fZmJvSWQpOworICAgICAgICByZXR1cm47CiAK
LSAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIHRleHR1cmUpOwotICAgIGdsRnJhbWVi
dWZmZXJUZXh0dXJlMkQoR0xfUkVBRF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAs
IEdMX1RFWFRVUkVfMkQsIHRleHR1cmUsIDApOwotCi0gICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xf
RFJBV19GUkFNRUJVRkZFUiwgMCk7Ci0KLSAgICBnbEJsaXRGcmFtZWJ1ZmZlcih4LCB5LCB3aWR0
aCwgaGVpZ2h0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBHTF9DT0xPUl9CVUZGRVJfQklULCBHTF9M
SU5FQVIpOwotCi0gICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9SRUFEX0ZSQU1FQlVGRkVS
LCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV8yRCwgMCwgMCk7Ci0gICAgZ2xCaW5k
VGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKLSAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFN
RUJVRkZFUiwgcHJldmlvdXNGQk8pOwotCi0gICAgZ2xQb3BBdHRyaWIoKTsKLX0KLQotdm9pZCBH
TFBsYXRmb3JtU3VyZmFjZTo6dXBkYXRlQ29udGVudHMoY29uc3QgdWludDMyX3QgdGV4dHVyZSwg
Y29uc3QgSW50UmVjdCYgc291cmNlUmVjdCwgY29uc3QgR0x1aW50IGJpbmRGYm9JZCwgY29uc3Qg
dWludDMyX3QgYmluZFRleHR1cmUpCi17CiAgICAgbV9yZXN0b3JlTmVlZGVkID0gZmFsc2U7CiAK
LSAgICBpZiAoIW1fZmJvSWQpCi0gICAgICAgIGdsR2VuRnJhbWVidWZmZXJzKDEsICZtX2Zib0lk
KTsKLQotICAgIGludCB4ID0gc291cmNlUmVjdC54KCk7Ci0gICAgaW50IHkgPSBzb3VyY2VSZWN0
LnkoKTsKLSAgICBpbnQgd2lkdGggPSBzb3VyY2VSZWN0LndpZHRoKCk7Ci0gICAgaW50IGhlaWdo
dCA9IHNvdXJjZVJlY3QuaGVpZ2h0KCk7CisgICAgaW50IHggPSAwOworICAgIGludCB5ID0gMDsK
KyAgICBpbnQgd2lkdGggPSBtX3JlY3Qud2lkdGgoKTsKKyAgICBpbnQgaGVpZ2h0ID0gbV9yZWN0
LmhlaWdodCgpOwogCiAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfUkVBRF9GUkFNRUJVRkZFUiwg
bV9mYm9JZCk7Ci0gICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCB0ZXh0dXJlKTsKLSAg
ICBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX1JFQURfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FU
VEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCB0ZXh0dXJlLCAwKTsKICAgICBnbEJpbmRGcmFtZWJ1
ZmZlcihHTF9EUkFXX0ZSQU1FQlVGRkVSLCAwKTsKLSAgICBnbEJsaXRGcmFtZWJ1ZmZlcih4LCB5
LCB3aWR0aCwgaGVpZ2h0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBHTF9DT0xPUl9CVUZGRVJfQklU
LCBHTF9MSU5FQVIpOworICAgIC8vIFVzZSBORUFSRVNUIGFzIG5vIHNjYWxlIGlzIHBlcmZvcm1l
ZCBkdXJpbmcgdGhlIGJsaXQuCisgICAgZ2xCbGl0RnJhbWVidWZmZXIoeCwgeSwgd2lkdGgsIGhl
aWdodCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xfQ09MT1JfQlVGRkVSX0JJVCwgR0xfTkVBUkVT
VCk7CiAgICAgc3dhcEJ1ZmZlcnMoKTsKLSAgICBnbEZyYW1lYnVmZmVyVGV4dHVyZTJEKEdMX1JF
QURfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCAwLCAw
KTsKLSAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIGJpbmRUZXh0dXJlKTsKICAgICBn
bEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgYmluZEZib0lkKTsKIH0KIApkaWZmIC0t
Z2l0IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3JtU3Vy
ZmFjZS5oIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HTFBsYXRmb3Jt
U3VyZmFjZS5oCmluZGV4IGI0MTExMzIuLjAwNmNiNjAgMTAwNjQ0Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR0xQbGF0Zm9ybVN1cmZhY2UuaAorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dMUGxhdGZvcm1TdXJmYWNlLmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKICNpbmNs
dWRlICJHTERlZnMuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtNTEsNiArNTIsOSBA
QCBwdWJsaWM6CiAKICAgICBjb25zdCBJbnRSZWN0JiBnZW9tZXRyeSgpIGNvbnN0OwogCisgICAg
Ly8gQ3JlYXRlcyBGQk8gdXNlZCBieSB0aGUgc3VyZmFjZS4gQnVmZmVycyBjYW4gYmUgYm91bmQg
dG8gdGhpcyBGQk8uCisgICAgdm9pZCBpbml0aWFsaXplKEdMdWludCogZnJhbWVCdWZmZXJJZCk7
CisKICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgcGxhdGZvcm0gc3BlY2lmaWMgc3VyZmFjZSBo
YW5kbGUuCiAgICAgUGxhdGZvcm1TdXJmYWNlIGhhbmRsZSgpIGNvbnN0OwogCkBAIC01OCwxNCAr
NjIsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHN3YXBCdWZmZXJzKCk7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgY29weVRleHR1cmUodWludDMyX3QgdGV4dHVyZSwgY29uc3QgSW50UmVj
dCYgc291cmNlUmVjdCk7Ci0KLSAgICAvLyBDb252ZW5pZW5jZSBGdW5jdGlvbiB0byB1cGRhdGUg
c3VyZmFjZSBiYWNrYnVmZmVyIHdpdGggdGV4dHVyZSBjb250ZW50cywgcmVzdG9yZSBjdXJyZW50
IEZCTyBhbmQgVGV4dHVyZS4KKyAgICAvLyBDb252ZW5pZW5jZSBGdW5jdGlvbiB0byB1cGRhdGUg
c3VyZmFjZSBjb250ZW50cy4KICAgICAvLyBGdW5jdGlvbiBkb2VzIHRoZSBmb2xsb3dpbmcoaW4g
b3JkZXIpOgotICAgIC8vIGEpQmxpdHMgdGV4dHVyZSBjb250ZW50cyB0byBiYWNrIGJ1ZmZlci4K
LSAgICAvLyBiKUNhbGxzIFN3YXAgQnVmZmVycy4KLSAgICAvLyBjKVNldHMgY3VycmVudCBGQk8g
YXMgYmluZEZib0lkIGFuZCBiaW5kcyB0ZXh0dXJlIHRvIGJpbmRUZXh0dXJlLgotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVDb250ZW50cyhjb25zdCB1aW50MzJfdCB0ZXh0dXJlLCBjb25zdCBJbnRS
ZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBHTHVpbnQgYmluZEZib0lkLCBjb25zdCB1aW50MzJfdCBi
aW5kVGV4dHVyZSk7CisgICAgLy8gYSkgQmxpdHMgYmFjayBidWZmZXIgY29udGVudHMgdG8gZnJv
bnQgYnVmZmVyLgorICAgIC8vIGIpIENhbGxzIFN3YXAgQnVmZmVycy4KKyAgICAvLyBjKSBTZXRz
IGN1cnJlbnQgRkJPIGFzIGJpbmRGYm9JZC4KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVu
dHMoY29uc3QgR0x1aW50IGJpbmRGYm9JZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0R2VvbWV0
cnkoY29uc3QgSW50UmVjdCYgbmV3UmVjdCk7CiAKZGlmZiAtLWdpdCBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9zdXJmYWNlcy9nbHgvR0xYU3VyZmFjZS5oIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKaW5kZXggZWIwMjdl
Zi4uMDY4ODdiMiAxMDA2NDQKLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3N1
cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3N1cmZhY2VzL2dseC9HTFhTdXJmYWNlLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
IDxYMTEvZXh0ZW5zaW9ucy9YcmVuZGVyLmg+CiAjZW5kaWYKICNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>