<?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>47728</bug_id>
          
          <creation_ts>2010-10-15 10:56:55 -0700</creation_ts>
          <short_desc>Add public functions to serialize TransformOperations</short_desc>
          <delta_ts>2010-10-15 14:58:01 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kenneth</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>294813</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-10-15 10:56:55 -0700</bug_when>
    <thetext>this is needed for WebKit2 on Qt (and maybe other platforms), to allow serialization of the GraphicsLayer animation data to the UI thread, which is going to control the actual animations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294825</commentid>
    <comment_count>1</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-10-15 11:10:49 -0700</bug_when>
    <thetext>I&apos;m thinking of something along the lines of

TransformOperation {
...
    virtual void getSerializableData(StringBuffer&amp;) const;
    virtual void putSerializableData(const StringBuffer&amp;);
};

Any comments/objections?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294829</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-15 11:14:27 -0700</bug_when>
    <thetext>I think serialize() and deserialize() would be fine. Or make a constructor for deserialization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294879</commentid>
    <comment_count>3</comment_count>
      <attachid>70889</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-10-15 13:06:42 -0700</bug_when>
    <thetext>Created attachment 70889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294884</commentid>
    <comment_count>4</comment_count>
      <attachid>70889</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-10-15 13:08:59 -0700</bug_when>
    <thetext>Comment on attachment 70889
Patch

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

&gt; WebCore/ChangeLog:70505
&gt; -        Bug 41340 - [GStreamer] Subtle race condition during seeks
&gt; +        Bug 41340 - [GStreamer] Subtle race condition during seeks

Why this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294885</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-10-15 13:12:28 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 70889 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=70889&amp;action=review
&gt; 
&gt; &gt; WebCore/ChangeLog:70505
&gt; &gt; -        Bug 41340 - [GStreamer] Subtle race condition during seeks
&gt; &gt; +        Bug 41340 - [GStreamer] Subtle race condition during seeks
&gt; 
&gt; Why this change?

over-motivated text editors.. will remove after the reset is reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294888</commentid>
    <comment_count>6</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-10-15 13:13:31 -0700</bug_when>
    <thetext>s/reset/rest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294889</commentid>
    <comment_count>7</comment_count>
      <attachid>70889</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-15 13:15:49 -0700</bug_when>
    <thetext>Comment on attachment 70889
Patch

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

I&apos;m not convinced that it&apos;s OK to serialize everything to doubles. I guess there are tokens in the serialization stream that are not visible to these methods?

&gt; WebCore/platform/graphics/transforms/RotateTransformOperation.cpp:103
&gt; +void RotateTransformOperation::serialize(Vector&lt;double&gt; &amp; data) const
&gt; +{
&gt; +    data.resize(4);
&gt; +    data[0] = m_x;
&gt; +    data[1] = m_y;
&gt; +    data[2] = m_z;
&gt; +    data[3] = m_angle;
&gt; +}
&gt; +

You need to serialize m_type here too.

&gt; WebCore/platform/graphics/transforms/TransformOperation.cpp:43
&gt; +        return ScaleTransformOperation::create(data[0], data[1], data[2], operationType);
&gt; +        break;

No need to break after a return.

&gt; WebCore/platform/graphics/transforms/TransformOperation.cpp:49
&gt; +    case TRANSLATE_3D:
&gt; +        {

Brace goes on previous line.

&gt; WebCore/platform/graphics/transforms/TransformOperation.cpp:56
&gt; +        }
&gt; +        break;

Normally we put the } after the break. But the break can be removed because of the return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294891</commentid>
    <comment_count>8</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-10-15 13:22:05 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 70889 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=70889&amp;action=review
&gt; 
&gt; I&apos;m not convinced that it&apos;s OK to serialize everything to doubles. I guess there are tokens in the serialization stream that are not visible to these methods?

Originally I thought about using Vector&lt;char&gt;, but then I just end up casting it to doubles (in all the cases but Translate), which doesn&apos;t look right. This seems more robust since I can deal with the actual serialization in CoreIPC::ArgumentEncoder, and just pass doubles to the WebCore::TransformOperation classes. Maybe setRawData is more suitable then serialize then?


&gt; 
&gt; You need to serialize m_type here too.
&gt; 
The idea is to serialize that separately in ArgumentCoder via getOperationType - since I need that information in order to know which class to construct, and 
I don&apos;t want to duplicate its serialization for each type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294894</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-10-15 13:24:40 -0700</bug_when>
    <thetext>Then maybe the serialization lies outside this code. You should just expose the member vars you need to serialize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294895</commentid>
    <comment_count>10</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-10-15 13:26:43 -0700</bug_when>
    <thetext>ok, will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294912</commentid>
    <comment_count>11</comment_count>
      <attachid>70895</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-10-15 14:00:59 -0700</bug_when>
    <thetext>Created attachment 70895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294939</commentid>
    <comment_count>12</comment_count>
      <attachid>70895</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-15 14:57:55 -0700</bug_when>
    <thetext>Comment on attachment 70895
Patch

Clearing flags on attachment: 70895

Committed r69884: &lt;http://trac.webkit.org/changeset/69884&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294940</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-15 14:58:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70889</attachid>
            <date>2010-10-15 13:06:42 -0700</date>
            <delta_ts>2010-10-15 13:51:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-47728.diff</filename>
            <type>text/plain</type>
            <size>17452</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjgwNzBmYy4uNjExNTY1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNCArMSw0OCBAQAotMjAxMC0xMC0xNSAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KKzIwMTAtMTAtMTUgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0u
cm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgcHVibGljIGZ1bmN0aW9ucyB0byBzZXJpYWxpemUgVHJhbnNmb3Jt
T3BlcmF0aW9ucy4KKworICAgICAgICBBZGRlZCBhIHZpcnR1YWwgZnVuY3Rpb24gVHJhbnNmb3Jt
T3BlcmF0aW9uOjpzZXJpYWxpemUoKSwgdGhhdAorICAgICAgICBpcyBpbXBsZW1lbnRlZCBpbiBh
bGwgb2YgdGhlIHRyYW5zZm9ybSBvcGVyYXRpb25zLCBhbmQgc2VyaWFsaXplcworICAgICAgICB0
aGUgb3BlcmF0aW9uIGRhdGEgKGV4Y2x1ZGluZyB0aGUgdHlwZSkgaW50byBhIHZlY3RvciBvZiBk
b3VibGUuCisKKyAgICAgICAgQWxzbyBhZGRlZCBUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZSwg
d2hpY2ggY2FuIGNyZWF0ZSBhbnkKKyAgICAgICAgb2YgVHJhbnNmb3JtT3BlcmF0aW9uIGJhc2Vk
IG9uIHRoZSBvcGVyYXRpb24gdHlwZSBhbmQgc2VyaWFsaXplZCBkYXRhLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzcyOAorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gVGhpcyBjb2RlIHdpbGwgb25seSBnZXQgYWN0aXZhdGVkIGluIFdlYktpdDIu
CisKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbjo6SWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWF0cml4M0RUcmFuc2Zvcm1PcGVy
YXRpb246OnNlcmlhbGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbjo6c2VyaWFsaXplKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVyc3BlY3RpdmVUcmFuc2Zvcm1P
cGVyYXRpb246OnNlcmlhbGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6c2VyaWFsaXplKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGVUcmFuc2Zvcm1PcGVyYXRp
b246OnNlcmlhbGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9T
Y2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
a2V3VHJhbnNmb3JtT3BlcmF0aW9uOjpzZXJpYWxpemUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybU9wZXJhdGlvbjo6c2VyaWFsaXplKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OnNl
cmlhbGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xh
dGVUcmFuc2Zvcm1PcGVyYXRpb24uaDoKIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KIApAQCAtNzA0NTgsNyArNzA1MDIsNyBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IEd1c3Rh
dm8gTm9yb25oYSBTaWx2YS4KIAotICAgICAgICBCdWcgNDEzNDAgLSBbR1N0cmVhbWVyXSBTdWJ0
bGUgcmFjZSBjb25kaXRpb24gZHVyaW5nIHNlZWtzCisgICAgICAgIEJ1ZyA0MTM0MCAtIFtHU3Ry
ZWFtZXJdIFN1YnRsZSByYWNlIGNvbmRpdGlvbiBkdXJpbmcgc2Vla3MKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMzQwCiAKICAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4
IGQ0NzkxODAuLjE0MTFmZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTE2Miw2ICsxMTYyLDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24u
Y3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3Bl
cmF0aW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNm
b3JtT3BlcmF0aW9uLmNwcCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2Zvcm1PcGVyYXRpb24uY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Ry
YW5zZm9ybU9wZXJhdGlvbnMuY3BwIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL0tpbGxSaW5n
Tm9uZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCAzNDc3Mzdj
Li5kZjA1MjdlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtNTksNyAr
NTksNiBAQCBwcml2YXRlOgogICAgIElkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uKCkKICAgICB7
CiAgICAgfQotCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRp
b24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJh
bnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCAyMzBiZTNjLi40MjJhZTM5IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVy
YXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRy
aXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTUzLDQgKzUzLDI1IEBAIFBhc3NSZWZQdHI8
VHJhbnNmb3JtT3BlcmF0aW9uPiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29u
c3QgVHJhbnNmb3JtCiAgICAgcmV0dXJuIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVh
dGUodG9UKTsKIH0KIAordm9pZCBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbjo6c2VyaWFsaXpl
KFZlY3Rvcjxkb3VibGU+JiBkYXRhKSBjb25zdAoreworICAgIGRhdGEucmVzaXplKDE2KTsKKyAg
ICBkYXRhWzBdID0gbV9tYXRyaXgubTExKCk7CisgICAgZGF0YVsxXSA9IG1fbWF0cml4Lm0xMigp
OworICAgIGRhdGFbMl0gPSBtX21hdHJpeC5tMTMoKTsKKyAgICBkYXRhWzNdID0gbV9tYXRyaXgu
bTE0KCk7CisgICAgZGF0YVs0XSA9IG1fbWF0cml4Lm0yMSgpOworICAgIGRhdGFbNV0gPSBtX21h
dHJpeC5tMjIoKTsKKyAgICBkYXRhWzZdID0gbV9tYXRyaXgubTIzKCk7CisgICAgZGF0YVs3XSA9
IG1fbWF0cml4Lm0yNCgpOworICAgIGRhdGFbOF0gPSBtX21hdHJpeC5tMzEoKTsKKyAgICBkYXRh
WzldID0gbV9tYXRyaXgubTMyKCk7CisgICAgZGF0YVsxMF0gPSBtX21hdHJpeC5tMzMoKTsKKyAg
ICBkYXRhWzExXSA9IG1fbWF0cml4Lm0zNCgpOworICAgIGRhdGFbMTJdID0gbV9tYXRyaXgubTQx
KCk7CisgICAgZGF0YVsxM10gPSBtX21hdHJpeC5tNDIoKTsKKyAgICBkYXRhWzE0XSA9IG1fbWF0
cml4Lm00MygpOworICAgIGRhdGFbMTVdID0gbV9tYXRyaXgubTQ0KCk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXggNzQz
MGRiYy4uNWVmMzMyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTY0
LDYgKzY0LDggQEAgcHJpdmF0ZToKICAgICAgICAgbV9tYXRyaXggPSBtYXQ7CiAgICAgfQogCisg
ICAgdmlydHVhbCB2b2lkIHNlcmlhbGl6ZShWZWN0b3I8ZG91YmxlPiYpIGNvbnN0OworCiAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggbV9tYXRyaXg7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1P
cGVyYXRpb24uY3BwCmluZGV4IDBlYWNjZWEuLjllOTlmMjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwCkBAIC00OSw0ICs0OSwxNSBAQCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9w
ZXJhdGlvbj4gTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBUcmFuc2Zvcm1P
cAogICAgIHJldHVybiBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZSh0b1QuYSgpLCB0
b1QuYigpLCB0b1QuYygpLCB0b1QuZCgpLCB0b1QuZSgpLCB0b1QuZigpKTsKIH0KIAordm9pZCBN
YXRyaXhUcmFuc2Zvcm1PcGVyYXRpb246OnNlcmlhbGl6ZShWZWN0b3I8ZG91YmxlPiYgZGF0YSkg
Y29uc3QKK3sKKyAgICBkYXRhLnJlc2l6ZSg2KTsKKyAgICBkYXRhWzBdID0gbV9hOworICAgIGRh
dGFbMV0gPSBtX2I7CisgICAgZGF0YVsyXSA9IG1fYzsKKyAgICBkYXRhWzNdID0gbV9kOworICAg
IGRhdGFbNF0gPSBtX2U7CisgICAgZGF0YVs1XSA9IG1fZjsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IGVlNDdhMTEuLjY0NjRh
OGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRy
aXhUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTg2LDYgKzg2LDggQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgfQogICAgIAorICAgIHZpcnR1YWwgdm9pZCBzZXJpYWxpemUoVmVj
dG9yPGRvdWJsZT4mIGRhdGEpIGNvbnN0OworCiAgICAgZG91YmxlIG1fYTsKICAgICBkb3VibGUg
bV9iOwogICAgIGRvdWJsZSBtX2M7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcAppbmRleCA5ZmQwM2ExLi40NmQ5ZDI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRy
YW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTU1LDQgKzU1LDEwIEBAIFBhc3NSZWZQdHI8VHJhbnNm
b3JtT3BlcmF0aW9uPiBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3Qg
VHJhbnNmCiAgICAgcmV0dXJuIFBlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUo
ZGVjb21wLnBlcnNwZWN0aXZlWiA/IC0xLjAgLyBkZWNvbXAucGVyc3BlY3RpdmVaIDogMC4wKTsK
IH0KIAordm9pZCBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbjo6c2VyaWFsaXplKFZlY3Rv
cjxkb3VibGU+ICYgZGF0YSkgY29uc3QKK3sKKyAgICBkYXRhLnJlc2l6ZSgxKTsKKyAgICBkYXRh
WzBdID0gbV9wOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVy
YXRpb24uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2
ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IGE2NjVmM2UuLmM4M2IxZmIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9y
bU9wZXJhdGlvbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Q
ZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC02Myw2ICs2Myw4IEBAIHByaXZhdGU6
CiAgICAgewogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCBzZXJpYWxpemUoVmVjdG9yPGRvdWJs
ZT4gJiBkYXRhKSBjb25zdDsKKwogICAgIGRvdWJsZSBtX3A7CiB9OwogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwCmluZGV4IDkxOWQxNzQuLmU1MWVhM2YgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRp
b24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVU
cmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC05Miw0ICs5MiwxMyBAQCBQYXNzUmVmUHRyPFRyYW5z
Zm9ybU9wZXJhdGlvbj4gUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChjb25zdCBUcmFu
c2Zvcm1PcAogICAgIHJldHVybiBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZSh4LCB5
LCB6LCBhbmdsZSwgUk9UQVRFXzNEKTsKIH0KIAordm9pZCBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRp
b246OnNlcmlhbGl6ZShWZWN0b3I8ZG91YmxlPiAmIGRhdGEpIGNvbnN0Cit7CisgICAgZGF0YS5y
ZXNpemUoNCk7CisgICAgZGF0YVswXSA9IG1feDsKKyAgICBkYXRhWzFdID0gbV95OworICAgIGRh
dGFbMl0gPSBtX3o7CisgICAgZGF0YVszXSA9IG1fYW5nbGU7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCA2OTllYTQzLi5jZDhh
OTc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90
YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC03NSw2ICs3NSw4IEBAIHBy
aXZhdGU6CiAgICAgICAgIEFTU0VSVCh0eXBlID09IFJPVEFURV9YIHx8IHR5cGUgPT0gUk9UQVRF
X1kgfHwgdHlwZSA9PSBST1RBVEVfWiB8fCB0eXBlID09IFJPVEFURV8zRCk7CiAgICAgfQogCisg
ICAgdmlydHVhbCB2b2lkIHNlcmlhbGl6ZShWZWN0b3I8ZG91YmxlPiAmIGRhdGEpIGNvbnN0Owor
CiAgICAgZG91YmxlIG1feDsKICAgICBkb3VibGUgbV95OwogICAgIGRvdWJsZSBtX3o7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zv
cm1PcGVyYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Nj
YWxlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcAppbmRleCA0NWQxMTljLi42YTAwMDFmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1P
cGVyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9T
Y2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKQEAgLTQzLDQgKzQzLDEyIEBAIFBhc3NSZWZQdHI8
VHJhbnNmb3JtT3BlcmF0aW9uPiBTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbjo6YmxlbmQoY29uc3Qg
VHJhbnNmb3JtT3BlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnJvbVogKyAobV96IC0gZnJvbVopICogcHJvZ3Jlc3MsIG1fdHlwZSk7CiB9CiAKK3ZvaWQgU2Nh
bGVUcmFuc2Zvcm1PcGVyYXRpb246OnNlcmlhbGl6ZShWZWN0b3I8ZG91YmxlPiYgZGF0YSkgY29u
c3QKK3sKKyAgICBkYXRhLnJlc2l6ZSgzKTsKKyAgICBkYXRhWzBdID0gbV94OworICAgIGRhdGFb
MV0gPSBtX3k7CisgICAgZGF0YVsyXSA9IG1fejsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NjYWxl
VHJhbnNmb3JtT3BlcmF0aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCBhODdiYjNiLi5mNjYxNWY2IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zv
cm1PcGVyYXRpb24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
U2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtNzUsNyArNzUsOSBAQCBwcml2YXRlOgogICAg
IHsKICAgICAgICAgQVNTRVJUKHR5cGUgPT0gU0NBTEVfWCB8fCB0eXBlID09IFNDQUxFX1kgfHwg
dHlwZSA9PSBTQ0FMRV9aIHx8IHR5cGUgPT0gU0NBTEUgfHwgdHlwZSA9PSBTQ0FMRV8zRCk7CiAg
ICAgfQotICAgICAgICAKKworICAgIHZpcnR1YWwgdm9pZCBzZXJpYWxpemUoVmVjdG9yPGRvdWJs
ZT4mIGRhdGEpIGNvbnN0OworCiAgICAgZG91YmxlIG1feDsKICAgICBkb3VibGUgbV95OwogICAg
IGRvdWJsZSBtX3o7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAKaW5kZXggMmE0MzBlOS4u
MmNhODNkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1z
L1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcApAQCAtMzgsNCArMzgsMTIg
QEAgUGFzc1JlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+IFNrZXdUcmFuc2Zvcm1PcGVyYXRpb246
OmJsZW5kKGNvbnN0IFRyYW5zZm9ybU9wZXIKICAgICByZXR1cm4gU2tld1RyYW5zZm9ybU9wZXJh
dGlvbjo6Y3JlYXRlKGZyb21BbmdsZVggKyAobV9hbmdsZVggLSBmcm9tQW5nbGVYKSAqIHByb2dy
ZXNzLCBmcm9tQW5nbGVZICsgKG1fYW5nbGVZIC0gZnJvbUFuZ2xlWSkgKiBwcm9ncmVzcywgbV90
eXBlKTsKIH0KIAordm9pZCBTa2V3VHJhbnNmb3JtT3BlcmF0aW9uOjpzZXJpYWxpemUoVmVjdG9y
PGRvdWJsZT4mIGRhdGEpIGNvbnN0Cit7CisgICAgZGF0YS5yZXNpemUoMik7CisgICAgZGF0YVsw
XSA9IG1fYW5nbGVYOworICAgIGRhdGFbMV0gPSBtX2FuZ2xlWTsKK30KKworCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCA2MzQzNzEwLi4yY2Vm
OTdiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tl
d1RyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTYzLDcgKzYzLDkgQEAgcHJpdmF0
ZToKICAgICAgICAgLCBtX3R5cGUodHlwZSkKICAgICB7CiAgICAgfQotICAgIAorCisgICAgdmly
dHVhbCB2b2lkIHNlcmlhbGl6ZShWZWN0b3I8ZG91YmxlPiAmIGRhdGEpIGNvbnN0OworCiAgICAg
ZG91YmxlIG1fYW5nbGVYOwogICAgIGRvdWJsZSBtX2FuZ2xlWTsKICAgICBPcGVyYXRpb25UeXBl
IG1fdHlwZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9UcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZDY0ZDI4MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC0wLDAgKzEsODkgQEAK
Ky8qCisgQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQorCisgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisKKyNpbmNsdWRlICJJZGVudGl0
eVRyYW5zZm9ybU9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIk1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0
aW9uLmgiCisjaW5jbHVkZSAiTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAi
UGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaCIKKyNpbmNsdWRlICJSb3RhdGVUcmFuc2Zv
cm1PcGVyYXRpb24uaCIKKyNpbmNsdWRlICJTY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgorI2lu
Y2x1ZGUgIlNrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaCIKKyNpbmNsdWRlICJUcmFuc2xhdGVUcmFu
c2Zvcm1PcGVyYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFRy
YW5zZm9ybU9wZXJhdGlvbj4gVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoVHJhbnNmb3JtT3Bl
cmF0aW9uOjpPcGVyYXRpb25UeXBlIG9wZXJhdGlvblR5cGUsIGNvbnN0IFZlY3Rvcjxkb3VibGU+
ICYgZGF0YSkKK3sKKyAgICBzd2l0Y2ggKG9wZXJhdGlvblR5cGUpIHsKKyAgICBjYXNlIFNDQUxF
OgorICAgIGNhc2UgU0NBTEVfWDoKKyAgICBjYXNlIFNDQUxFX1k6CisgICAgY2FzZSBTQ0FMRV9a
OgorICAgIGNhc2UgU0NBTEVfM0Q6CisgICAgICAgIHJldHVybiBTY2FsZVRyYW5zZm9ybU9wZXJh
dGlvbjo6Y3JlYXRlKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIG9wZXJhdGlvblR5cGUpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFRSQU5TTEFURToKKyAgICBjYXNlIFRSQU5TTEFURV9Y
OgorICAgIGNhc2UgVFJBTlNMQVRFX1k6CisgICAgY2FzZSBUUkFOU0xBVEVfWjoKKyAgICBjYXNl
IFRSQU5TTEFURV8zRDoKKyAgICAgICAgeworICAgICAgICAgICAgTGVuZ3RoIHR4LCB0eSwgdHo7
CisgICAgICAgICAgICB0eC5zZXRSYXdWYWx1ZShkYXRhWzBdKTsKKyAgICAgICAgICAgIHR5LnNl
dFJhd1ZhbHVlKGRhdGFbMV0pOworICAgICAgICAgICAgdHouc2V0UmF3VmFsdWUoZGF0YVsyXSk7
CisgICAgICAgICAgICByZXR1cm4gVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUo
dHgsIHR5LCB0eiwgb3BlcmF0aW9uVHlwZSk7CisgICAgICAgIH0KKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBST1RBVEVfWDoKKyAgICBjYXNlIFJPVEFURV9ZOgorICAgIGNhc2UgUk9UQVRFX1o6
CisgICAgY2FzZSBST1RBVEVfM0Q6CisgICAgICAgIHJldHVybiBSb3RhdGVUcmFuc2Zvcm1PcGVy
YXRpb246OmNyZWF0ZShkYXRhWzBdLCBkYXRhWzFdLCBkYXRhWzJdLCBkYXRhWzNdLCBvcGVyYXRp
b25UeXBlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTS0VXOgorICAgIGNhc2UgU0tFV19Y
OgorICAgIGNhc2UgU0tFV19ZOgorICAgICAgICByZXR1cm4gU2tld1RyYW5zZm9ybU9wZXJhdGlv
bjo6Y3JlYXRlKGRhdGFbMF0sIGRhdGFbMV0sIG9wZXJhdGlvblR5cGUpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE1BVFJJWDoKKyAgICAgICAgcmV0dXJuIE1hdHJpeFRyYW5zZm9ybU9wZXJh
dGlvbjo6Y3JlYXRlKGRhdGFbMF0sIGRhdGFbMV0sIGRhdGFbMl0sIGRhdGFbM10sIGRhdGFbNF0s
IGRhdGFbNV0pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1BVFJJWF8zRDoKKyAgICAgICAg
cmV0dXJuIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoVHJhbnNmb3JtYXRpb25N
YXRyaXgoCisgICAgICAgICAgICAgICAgZGF0YVswXSwgZGF0YVsxXSwgZGF0YVsyXSwgZGF0YVsz
XSwKKyAgICAgICAgICAgICAgICBkYXRhWzRdLCBkYXRhWzVdLCBkYXRhWzZdLCBkYXRhWzddLAor
ICAgICAgICAgICAgICAgIGRhdGFbOF0sIGRhdGFbOV0sIGRhdGFbMTBdLCBkYXRhWzExXSwKKyAg
ICAgICAgICAgICAgICBkYXRhWzEyXSwgZGF0YVsxM10sIGRhdGFbMTRdLCBkYXRhWzE1XQorICAg
ICAgICAgICAgICAgICkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBFUlNQRUNUSVZFOgor
ICAgICAgICByZXR1cm4gUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb246OmNyZWF0ZShkYXRh
WzBdKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJREVOVElUWToKKyAgICAgICAgcmV0dXJu
IElkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uOjpjcmVhdGUoKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0
aW9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3Bl
cmF0aW9uLmgKaW5kZXggYzYxMGM0Yi4uMWM1YjU3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUxLDYgKzUyLDggQEAgcHVibGljOgog
ICAgICAgICBJREVOVElUWSwgTk9ORQogICAgIH07CiAKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxU
cmFuc2Zvcm1PcGVyYXRpb24+IGNyZWF0ZShPcGVyYXRpb25UeXBlLCBjb25zdCBWZWN0b3I8ZG91
YmxlPiAmIGRhdGEpOworCiAgICAgdmlydHVhbCB+VHJhbnNmb3JtT3BlcmF0aW9uKCkgeyB9CiAK
ICAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mKSBj
b25zdCA9IDA7CkBAIC03OSw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgIG9wVHlw
ZSA9PSBNQVRSSVhfM0QgfHwKICAgICAgICAgICAgICAgIG9wVHlwZSA9PSBQRVJTUEVDVElWRTsK
ICAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgc2VyaWFsaXplKFZlY3Rvcjxkb3VibGU+JikgY29u
c3QgeyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9u
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFu
c2Zvcm1PcGVyYXRpb24uY3BwCmluZGV4IGE4YWQxMzEuLmM0Y2QxNDEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVy
YXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCkBAIC00MSw0ICs0MSwxMiBAQCBQYXNzUmVmUHRy
PFRyYW5zZm9ybU9wZXJhdGlvbj4gVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjpibGVuZChj
b25zdCBUcmFuc2ZvcgogICAgIHJldHVybiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OmNy
ZWF0ZShtX3guYmxlbmQoZnJvbVgsIHByb2dyZXNzKSwgbV95LmJsZW5kKGZyb21ZLCBwcm9ncmVz
cyksIG1fei5ibGVuZChmcm9tWiwgcHJvZ3Jlc3MpLCBtX3R5cGUpOwogfQogCit2b2lkIFRyYW5z
bGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6c2VyaWFsaXplKFZlY3Rvcjxkb3VibGU+JiBkYXRhKSBj
b25zdAoreworICAgIGRhdGEucmVzaXplKDMpOworICAgIGRhdGFbMF0gPSBtX3gucmF3VmFsdWUo
KTsKKyAgICBkYXRhWzFdID0gbV95LnJhd1ZhbHVlKCk7CisgICAgZGF0YVsyXSA9IG1fei5yYXdW
YWx1ZSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9u
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNm
b3JtT3BlcmF0aW9uLmgKaW5kZXggYTY2Y2MzZC4uMGVhYzExNSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVU
cmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtNzcsNiArNzcsOCBAQCBwcml2YXRlOgogICAgICAgICBB
U1NFUlQodHlwZSA9PSBUUkFOU0xBVEVfWCB8fCB0eXBlID09IFRSQU5TTEFURV9ZIHx8IHR5cGUg
PT0gVFJBTlNMQVRFX1ogfHwgdHlwZSA9PSBUUkFOU0xBVEUgfHwgdHlwZSA9PSBUUkFOU0xBVEVf
M0QpOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCBzZXJpYWxpemUoVmVjdG9yPGRvdWJsZT4m
IGRhdGEpIGNvbnN0OworCiAgICAgTGVuZ3RoIG1feDsKICAgICBMZW5ndGggbV95OwogICAgIExl
bmd0aCBtX3o7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70895</attachid>
            <date>2010-10-15 14:00:59 -0700</date>
            <delta_ts>2010-10-15 14:57:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-47728-2.diff</filename>
            <type>text/plain</type>
            <size>5438</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZjgwNzBmYy4uM2ZjNzAwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0xMC0xNSAgTm8nYW0gUm9zZW50
aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwdWJsaWMgZnVuY3Rpb25zIHRvIHNlcmlhbGl6
ZSBUcmFuc2Zvcm1PcGVyYXRpb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDc3MjgKKworICAgICAgICBBZGRlZCBwdWJsaWMgYWNjZXNzb3JzIHRv
IHRoZSBpbnRlcm5hbCBkYXRhIG9mIHRoZSBUcmFuc2Zvcm1PcGVyYXRpb25zLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cy4gVGhlc2UgZnVuY3Rpb25zIGFyZSBlbmFibGVycyBmb3IgV2ViS2l0Mi4K
KworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zv
cm1PcGVyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0
aW9uOjptYXRyaXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0
cml4VHJhbnNmb3JtT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpNYXRyaXhUcmFuc2Zv
cm1PcGVyYXRpb246Om1hdHJpeCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
UGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb246OnBlcnNwZWN0aXZlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6Um90YXRlVHJhbnNmb3JtT3BlcmF0aW9uOjp4KToKKyAgICAgICAg
KFdlYkNvcmU6OlJvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6eSk6CisgICAgICAgIChXZWJDb3Jl
OjpSb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb246OnopOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6U2tld1RyYW5zZm9ybU9wZXJhdGlvbjo6YW5nbGVYKToKKyAgICAgICAgKFdlYkNvcmU6OlNr
ZXdUcmFuc2Zvcm1PcGVyYXRpb246OmFuZ2xlWSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaDoKKyAgICAgICAgKFdl
YkNvcmU6OlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbjo6eCk6CisgICAgICAgIChXZWJDb3Jl
OjpUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb246OnkpOgorICAgICAgICAoV2ViQ29yZTo6VHJh
bnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uOjp6KToKKwogMjAxMC0xMC0xNSAgUnlvc3VrZSBOaXdh
ICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgz
RFRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXggNzQzMGRiYy4uMGEwYWFmMCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNE
VHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTM3LDYgKzM3LDggQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0
aW9uKG1hdHJpeCkpOwogICAgIH0KIAorICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IG1hdHJpeCgp
IGNvbnN0IHtyZXR1cm4gbV9tYXRyaXg7IH0KKwogcHJpdmF0ZTogICAgCiAgICAgdmlydHVhbCBi
b29sIGlzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5pc0lkZW50aXR5KCk7IH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJp
eFRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IGVlNDdhMTEuLmZkOWIyN2UgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFu
c2Zvcm1PcGVyYXRpb24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbih0KSk7
CiAgICAgfQogCisgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggbWF0cml4KCkgY29uc3QgeyByZXR1
cm4gVHJhbnNmb3JtYXRpb25NYXRyaXgobV9hLCBtX2IsIG1fYywgbV9kLCBtX2UsIG1fZik7IH0K
KwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fYSA9PSAxICYmIG1fYiA9PSAwICYmIG1fYyA9PSAwICYmIG1fZCA9PSAxICYmIG1fZSA9PSAw
ICYmIG1fZiA9PSAwOyB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgK
aW5kZXggYTY2NWYzZS4uODM0Y2M4MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3Bl
cmF0aW9uLmgKQEAgLTM2LDYgKzM2LDggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBQZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbihwKSk7CiAgICAgfQor
CisgICAgZG91YmxlIHBlcnNwZWN0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9wOyB9CiAgICAgCiBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV9w
ID09IDA7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jt
cy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCA2OTllYTQzLi4yYWNi
MDAyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90
YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC00MSw2ICs0MSw5IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSb3RhdGVUcmFuc2Zvcm1PcGVyYXRp
b24oeCwgeSwgeiwgYW5nbGUsIHR5cGUpKTsKICAgICB9CiAKKyAgICBkb3VibGUgeCgpIGNvbnN0
IHsgcmV0dXJuIG1feDsgfQorICAgIGRvdWJsZSB5KCkgY29uc3QgeyByZXR1cm4gbV95OyB9Cisg
ICAgZG91YmxlIHooKSBjb25zdCB7IHJldHVybiBtX3o7IH0KICAgICBkb3VibGUgYW5nbGUoKSBj
b25zdCB7IHJldHVybiBtX2FuZ2xlOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRp
b24uaAppbmRleCA2MzQzNzEwLi5hZmU5YTdiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmgK
QEAgLTM2LDYgKzM2LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNr
ZXdUcmFuc2Zvcm1PcGVyYXRpb24oYW5nbGVYLCBhbmdsZVksIHR5cGUpKTsKICAgICB9CiAKKyAg
ICBkb3VibGUgYW5nbGVYKCkgY29uc3QgeyByZXR1cm4gbV9hbmdsZVg7IH0KKyAgICBkb3VibGUg
YW5nbGVZKCkgY29uc3QgeyByZXR1cm4gbV9hbmdsZVk7IH0KKwogcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5nbGVYID09IDAgJiYgbV9h
bmdsZVkgPT0gMDsgfQogICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSBnZXRPcGVyYXRpb25UeXBl
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmgKaW5kZXggYTY2Y2MzZC4uZWE0OGQ0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uaApAQCAtNDYsNiArNDYsMTAgQEAgcHVibGljOgogICAgIGRvdWJsZSB5KGNvbnN0
IEludFNpemUmIGJvcmRlckJveFNpemUpIGNvbnN0IHsgcmV0dXJuIG1feS5jYWxjRmxvYXRWYWx1
ZShib3JkZXJCb3hTaXplLmhlaWdodCgpKTsgfQogICAgIGRvdWJsZSB6KGNvbnN0IEludFNpemUm
KSBjb25zdCB7IHJldHVybiBtX3ouY2FsY0Zsb2F0VmFsdWUoMSk7IH0KIAorICAgIExlbmd0aCB4
KCkgY29uc3QgeyByZXR1cm4gbV94OyB9CisgICAgTGVuZ3RoIHkoKSBjb25zdCB7IHJldHVybiBt
X3k7IH0KKyAgICBMZW5ndGggeigpIGNvbnN0IHsgcmV0dXJuIG1fejsgfQorCiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV94LmNhbGNGbG9h
dFZhbHVlKDEpID09IDAgJiYgbV95LmNhbGNGbG9hdFZhbHVlKDEpID09IDAgJiYgbV96LmNhbGNG
bG9hdFZhbHVlKDEpID09IDA7IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>