<?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>89277</bug_id>
          
          <creation_ts>2012-06-16 01:06:01 -0700</creation_ts>
          <short_desc>[Texmap] Share gaussian formula between shaders in TextureMapperShaderManager.</short_desc>
          <delta_ts>2012-06-16 21:42:39 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>650758</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-06-16 01:06:01 -0700</bug_when>
    <thetext>Remove &quot;FIXME : share gaussian formula between shaders&quot; in TextureMapperShaderManager.

Moreover, this patch can increase performance, because it calculates gaussian kernel only one time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650761</commentid>
    <comment_count>1</comment_count>
      <attachid>147958</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-06-16 01:08:09 -0700</bug_when>
    <thetext>Created attachment 147958
patch v.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650762</commentid>
    <comment_count>2</comment_count>
      <attachid>147958</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-06-16 01:09:59 -0700</bug_when>
    <thetext>Comment on attachment 147958
patch v.1

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp:43
&gt; +                              STRINGIFY_VAL(src)

It is needless, but I amended it for symmetric with FRAGMENT_SHADER.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650788</commentid>
    <comment_count>3</comment_count>
      <attachid>147958</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-06-16 06:49:52 -0700</bug_when>
    <thetext>Comment on attachment 147958
patch v.1

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp:46
&gt; +                                STRINGIFY_VAL(src)

I add STRINGIFY_VAL in order to use macro in shader code, especially  GAUSSIAN_KERNEL_HALF_WIDTH and GAUSSIAN_KERNEL_STEP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650791</commentid>
    <comment_count>4</comment_count>
      <attachid>147958</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-16 07:03:14 -0700</bug_when>
    <thetext>Comment on attachment 147958
patch v.1

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        [Texmap] Share gaussian formula between shaders in TextureMapperShaderManager.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=89277
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        No new tests. This patch doesn&apos;t change behavior.

You&apos;re doing a lot more than that, actually moving to a more accurate gaussian blur...
I like that, but please describe in the Changelog.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp:672
&gt; +        }
&gt; +        // Normalize the kernel

Extra line

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp:678
&gt; +    }
&gt; +    return kernel;

Extra line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650929</commentid>
    <comment_count>5</comment_count>
      <attachid>148000</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-06-16 19:17:12 -0700</bug_when>
    <thetext>Created attachment 148000
patch v.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650930</commentid>
    <comment_count>6</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-06-16 19:18:48 -0700</bug_when>
    <thetext>I&apos;m glad because you like this. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650931</commentid>
    <comment_count>7</comment_count>
      <attachid>148000</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-06-16 19:25:25 -0700</bug_when>
    <thetext>Comment on attachment 148000
patch v.2

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

Awesome! Please fix nit-picks before committing.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp:658
&gt; +    return exp(- (x * x) / 2.f);

Remove space between - and (
Use 2. instead of 2.f

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.cpp:678
&gt; +    if (!prepared) {
&gt; +        kernel[0] = gauss(0);
&gt; +        float sum = kernel[0];
&gt; +        for (unsigned i = 1; i &lt; GAUSSIAN_KERNEL_HALF_WIDTH; ++i) {
&gt; +            kernel[i] = gauss(i * GAUSSIAN_KERNEL_STEP);
&gt; +            sum += 2 * kernel[i];
&gt; +        }
&gt; +
&gt; +        // Normalize the kernel
&gt; +        float scale = 1 / sum;
&gt; +        for (unsigned i = 0; i &lt; GAUSSIAN_KERNEL_HALF_WIDTH; ++i)
&gt; +            kernel[i] *= scale;
&gt; +        prepared = true;
&gt; +    }

Better to do 
if (prepared)
    return kernel;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650937</commentid>
    <comment_count>8</comment_count>
      <attachid>148004</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-06-16 20:25:19 -0700</bug_when>
    <thetext>Created attachment 148004
patch v.3

Good advice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650947</commentid>
    <comment_count>9</comment_count>
      <attachid>148004</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-16 21:42:35 -0700</bug_when>
    <thetext>Comment on attachment 148004
patch v.3

Clearing flags on attachment: 148004

Committed r120545: &lt;http://trac.webkit.org/changeset/120545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650948</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-16 21:42:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147958</attachid>
            <date>2012-06-16 01:08:09 -0700</date>
            <delta_ts>2012-06-16 19:17:12 -0700</delta_ts>
            <desc>patch v.1</desc>
            <filename>0001-Texmap-Share-gaussian-formula-between-shaders-in-Tex.patch</filename>
            <type>text/plain</type>
            <size>12385</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">RnJvbSA3YzFlN2ZlNzkxZmM1N2FkYTcxOWY5MWNiM2E3ODE1NmJiYjQ4ZDUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIdWFuZyBEb25nc3VuZyA8bHV4dGVsbGFAY29tcGFueTEwMC5u
ZXQ+CkRhdGU6IFNhdCwgMTYgSnVuIDIwMTIgMTY6NDk6MzEgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBbVGV4bWFwXSBTaGFyZSBnYXVzc2lhbiBmb3JtdWxhIGJldHdlZW4gc2hhZGVycyBpbgogVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODkyNzcKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE3ICsrKwogLi4uL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyU2hhZGVyTWFuYWdlci5jcHAgfCAgMTExICsrKysrKysrKystLS0tLS0tLS0tCiAuLi4vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmggICB8ICAgIDIgKwogMyBm
aWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggOTdmMzI4Ny4uMWE2MGRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEy
LTA2LTE2ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAg
ICAgIFtUZXhtYXBdIFNoYXJlIGdhdXNzaWFuIGZvcm11bGEgYmV0d2VlbiBzaGFkZXJzIGluIFRl
eHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODkyNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIFRoaXMgcGF0Y2ggZG9lc24ndCBjaGFuZ2Ug
YmVoYXZpb3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlclNoYWRlck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpTdGFuZGFyZEZpbHRlclByb2dyYW06OlN0YW5kYXJkRmlsdGVyUHJvZ3JhbSk6CisgICAg
ICAgIChXZWJDb3JlOjpnYXVzcyk6CisgICAgICAgIChXZWJDb3JlOjpnYXVzc2lhbktlcm5lbCk6
CisgICAgICAgIChXZWJDb3JlOjpTdGFuZGFyZEZpbHRlclByb2dyYW06OnByZXBhcmUpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdl
ci5oOgorCiAyMDEyLTA2LTE1ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAu
bmV0PgogCiAgICAgICAgIFtUZXhtYXBdIFNJR1NFViBpbiBXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
R0w6OmRyYXdUZXh0dXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5j
cHAKaW5kZXggMTJhNDVlMy4uMTRhMjhlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXIuY3BwCkBAIC0zOCwxMCArMzgsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDsgXG4iCiAjZW5kaWYKIAotI2RlZmluZSBWRVJU
RVhfU0hBREVSKHNyYy4uLikgT0VTMl9QUkVDSVNJT05fREVGSU5JVElPTlMjc3JjCisjZGVmaW5l
IFNUUklOR0lGWV9WQUwoc3JjLi4uKSAjc3JjCisjZGVmaW5lIFZFUlRFWF9TSEFERVIoc3JjLi4u
KSBPRVMyX1BSRUNJU0lPTl9ERUZJTklUSU9OU1wKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNUUklOR0lGWV9WQUwoc3JjKQogI2RlZmluZSBGUkFHTUVOVF9TSEFERVIoc3JjLi4uKSBP
RVMyX1BSRUNJU0lPTl9ERUZJTklUSU9OU1wKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgT0VTMl9GUkFHTUVOVF9TSEFERVJfREVGQVVMVF9QUkVDSVNJT05cCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICNzcmMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U1RSSU5HSUZZX1ZBTChzcmMpCiAKIHN0YXRpYyBjb25zdCBjaGFyKiBmcmFnbWVudFNoYWRlclNv
dXJjZU9wYWNpdHlBbmRNYXNrID0KICAgICBGUkFHTUVOVF9TSEFERVIoCkBAIC0zNTIsNiArMzU0
LDExIEBAIFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjp+VGV4dHVyZU1hcHBlclNoYWRlck1h
bmFnZXIoKQogfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQorCisvLyBDcmVhdGUgYSBub3Jt
YWwgZGlzdHJpYnV0aW9uIG9mIDIxIHZhbHVlcyBiZXR3ZWVuIC0yIGFuZCAyLgorI2RlZmluZSBH
QVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSCAxMQorI2RlZmluZSBHQVVTU0lBTl9LRVJORUxfU1RF
UCAwLjIKKwogU3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjp+U3RhbmRhcmRGaWx0ZXJQcm9ncmFtKCkK
IHsKICAgICBnbERldGFjaFNoYWRlcihtX2lkLCBtX3ZlcnRleFNoYWRlcik7CkBAIC00NzUsMTUg
KzQ4Miw3IEBAIFN0YW5kYXJkRmlsdGVyUHJvZ3JhbTo6U3RhbmRhcmRGaWx0ZXJQcm9ncmFtKEZp
bHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlCiAgICAgICAgICAgICB2YXJ5aW5nIGhp
Z2hwIHZlYzIgdl90ZXhDb29yZDsKICAgICAgICAgICAgIHVuaWZvcm0gbG93cCB2ZWMyIHVfYmx1
clJhZGl1czsKICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTsKLSAgICAg
ICAgICAgIGNvbnN0IGZsb2F0IHBpID0gMy4xNDE1OTsKLSAgICAgICAgICAgIGNvbnN0IGZsb2F0
IGUgPSAyLjcxODI4OwotCi0gICAgICAgICAgICAvLyBGSVhNRTogc2hhcmUgZ2F1c3NpYW4gZm9y
bXVsYSBiZXR3ZWVuIHNoYWRlcnMuCi0gICAgICAgICAgICBsb3dwIGZsb2F0IGdhdXNzaWFuKGxv
d3AgZmxvYXQgdmFsdWUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLy8gTm9ybWFs
IGRpc3RyaWJ1dGlvbiBmb3JtdWxhLCB3aGVuIHRoZSBtZWFuIGlzIDAgYW5kIHRoZSBzdGFuZGFy
ZCBkZXZpYXRpb24gaXMgMS4KLSAgICAgICAgICAgICAgICByZXR1cm4gcG93KGUsIC1wb3codmFs
dWUsIDIuKSAvIDIuKSAvIChzcXJ0KDIuICogcGkpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHVuaWZvcm0gZmxvYXQgdV9nYXVzc2lhbktlcm5lbFtHQVVTU0lBTl9LRVJORUxfSEFMRl9X
SURUSF07CiAKICAgICAgICAgICAgIGxvd3AgdmVjNCBzYW1wbGVDb2xvcihmbG9hdCByYWRpdXMp
CiAgICAgICAgICAgICB7CkBAIC00OTMsMTYgKzQ5MiwxMyBAQCBTdGFuZGFyZEZpbHRlclByb2dy
YW06OlN0YW5kYXJkRmlsdGVyUHJvZ3JhbShGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUg
dHlwZQogCiAgICAgICAgICAgICB2ZWM0IGJsdXIoKQogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIC8vIENyZWF0ZSBhIG5vcm1hbCBkaXN0cmlidXRpb24gb2YgMjAgdmFsdWVzIGJldHdl
ZW4gMC4gYW5kIDIuCi0gICAgICAgICAgICAgICAgdmVjNCB0b3RhbCA9IHZlYzQoMC4sIDAuLCAw
LiwgMC4pOwotICAgICAgICAgICAgICAgIGZsb2F0IHRvdGFsV2VpZ2h0ID0gMC47Ci0gICAgICAg
ICAgICAgICAgZm9yIChmbG9hdCBpID0gLTIuOyBpIDw9IDIuOyBpICs9IC4yKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZsb2F0IHdlaWdodCA9IGdhdXNzaWFuKGkpOwotICAgICAgICAgICAgICAg
ICAgICB0b3RhbCArPSBzYW1wbGVDb2xvcihpKSAqIHdlaWdodDsKLSAgICAgICAgICAgICAgICAg
ICAgdG90YWxXZWlnaHQgKz0gd2VpZ2h0OworICAgICAgICAgICAgICAgIHZlYzQgdG90YWwgPSBz
YW1wbGVDb2xvcigwKSAqIHVfZ2F1c3NpYW5LZXJuZWxbMF07CisgICAgICAgICAgICAgICAgZm9y
IChpbnQgaSA9IDE7IGkgPCBHQVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSDsgaSsrKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRvdGFsICs9IHNhbXBsZUNvbG9yKGZsb2F0KGkpICogR0FVU1NJQU5f
S0VSTkVMX1NURVApICogdV9nYXVzc2lhbktlcm5lbFtpXTsKKyAgICAgICAgICAgICAgICAgICAg
dG90YWwgKz0gc2FtcGxlQ29sb3IoZmxvYXQoLTEgKiBpKSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQ
KSAqIHVfZ2F1c3NpYW5LZXJuZWxbaV07CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHRvdGFsIC8gdG90YWxXZWlnaHQ7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHRvdGFsOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKQEAg
LTUyMCwxNSArNTE2LDcgQEAgU3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFuZGFyZEZpbHRlclBy
b2dyYW0oRmlsdGVyT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUKICAgICAgICAgICAgICAg
ICB1bmlmb3JtIGxvd3AgZmxvYXQgdV9zaGFkb3dCbHVyUmFkaXVzOwogICAgICAgICAgICAgICAg
IHVuaWZvcm0gbG93cCB2ZWMyIHVfc2hhZG93T2Zmc2V0OwogICAgICAgICAgICAgICAgIHVuaWZv
cm0gc2FtcGxlcjJEIHVfdGV4dHVyZTsKLSAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCBwaSA9
IDMuMTQxNTk7Ci0gICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgZSA9IDIuNzE4Mjg7Ci0KLSAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogc2hhcmUgZ2F1c3NpYW4gZm9ybXVsYSBiZXR3ZWVuIHNo
YWRlcnMuCi0gICAgICAgICAgICAgICAgbG93cCBmbG9hdCBnYXVzc2lhbihsb3dwIGZsb2F0IHZh
bHVlKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gTm9ybWFsIGRp
c3RyaWJ1dGlvbiBmb3JtdWxhLCB3aGVuIHRoZSBtZWFuIGlzIDAgYW5kIHRoZSBzdGFuZGFyZCBk
ZXZpYXRpb24gaXMgMS4KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvdyhlLCAtcG93KHZh
bHVlLCAyLikgLyAyLikgLyAoc3FydCgyLiAqIHBpKSk7Ci0gICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9nYXVzc2lhbktlcm5lbFtHQVVTU0lBTl9LRVJO
RUxfSEFMRl9XSURUSF07CiAKICAgICAgICAgICAgICAgICBsb3dwIGZsb2F0IHNhbXBsZUFscGhh
KGZsb2F0IHJhZGl1cykKICAgICAgICAgICAgICAgICB7CkBAIC01MzgsMTYgKzUyNiwxMyBAQCBT
dGFuZGFyZEZpbHRlclByb2dyYW06OlN0YW5kYXJkRmlsdGVyUHJvZ3JhbShGaWx0ZXJPcGVyYXRp
b246Ok9wZXJhdGlvblR5cGUgdHlwZQogCiAgICAgICAgICAgICAgICAgbG93cCBmbG9hdCBzaGFk
b3dCbHVySG9yaXpvbnRhbCgpCiAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAg
ICAvLyBDcmVhdGUgYSBub3JtYWwgZGlzdHJpYnV0aW9uIG9mIDIwIHZhbHVlcyBiZXR3ZWVuIC0y
IGFuZCAyLgotICAgICAgICAgICAgICAgICAgICBmbG9hdCB0b3RhbCA9IDAuOwotICAgICAgICAg
ICAgICAgICAgICBmbG9hdCB0b3RhbFdlaWdodCA9IDAuOwotICAgICAgICAgICAgICAgICAgICBm
b3IgKGZsb2F0IGkgPSAtMi47IGkgPD0gMi47IGkgKz0gLjIpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGZsb2F0IHdlaWdodCA9IGdhdXNzaWFuKGkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgdG90YWwgKz0gc2FtcGxlQWxwaGEoaSkgKiB3ZWlnaHQ7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB0b3RhbFdlaWdodCArPSB3ZWlnaHQ7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IHRv
dGFsID0gc2FtcGxlQWxwaGEoMCkgKiB1X2dhdXNzaWFuS2VybmVsWzBdOworICAgICAgICAgICAg
ICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIOyBp
KyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IHNhbXBsZUFscGhhKGZsb2F0
KGkpICogR0FVU1NJQU5fS0VSTkVMX1NURVApICogdV9nYXVzc2lhbktlcm5lbFtpXTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IHNhbXBsZUFscGhhKGZsb2F0KC0xICogaSkgKiBH
QVVTU0lBTl9LRVJORUxfU1RFUCkgKiB1X2dhdXNzaWFuS2VybmVsW2ldOwogICAgICAgICAgICAg
ICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsIC8gdG90YWxXZWln
aHQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbDsKICAgICAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgICAgICB2b2lkIG1haW4odm9pZCkKQEAgLTU2NSwxNiArNTUwLDcgQEAg
U3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFuZGFyZEZpbHRlclByb2dyYW0oRmlsdGVyT3BlcmF0
aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUKICAgICAgICAgICAgICAgICB1bmlmb3JtIGxvd3AgdmVj
NCB1X3NoYWRvd0NvbG9yOwogICAgICAgICAgICAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIHVfdGV4
dHVyZTsKICAgICAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCB1X2NvbnRlbnRUZXh0dXJl
OwotCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHNoYXJlIGdhdXNzaWFuIGZvcm11bGEgYmV0
d2VlbiBzaGFkZXJzLgotICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0IHBpID0gMy4xNDE1OTsK
LSAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCBlID0gMi43MTgyODsKLQotICAgICAgICAgICAg
ICAgIGxvd3AgZmxvYXQgZ2F1c3NpYW4oZmxvYXQgdmFsdWUpCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICAvLyBOb3JtYWwgZGlzdHJpYnV0aW9uIGZvcm11bGEsIHdoZW4g
dGhlIG1lYW4gaXMgMCBhbmQgdGhlIHN0YW5kYXJkIGRldmlhdGlvbiBpcyAxLgotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gcG93KGUsIC1wb3codmFsdWUsIDIuKSAvIDIuKSAvIChzcXJ0KDIu
ICogcGkpKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdW5pZm9ybSBmbG9h
dCB1X2dhdXNzaWFuS2VybmVsW0dBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIXTsKIAogICAgICAg
ICAgICAgICAgIGxvd3AgZmxvYXQgc2FtcGxlQWxwaGEoZmxvYXQgcikKICAgICAgICAgICAgICAg
ICB7CkBAIC01ODQsMTYgKzU2MCwxMyBAQCBTdGFuZGFyZEZpbHRlclByb2dyYW06OlN0YW5kYXJk
RmlsdGVyUHJvZ3JhbShGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZQogCiAgICAg
ICAgICAgICAgICAgbG93cCBmbG9hdCBzaGFkb3dCbHVyVmVydGljYWwoKQogICAgICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbm9ybWFsIGRpc3RyaWJ1dGlv
biBvZiAyMCB2YWx1ZXMgYmV0d2VlbiAtMiBhbmQgMi4KLSAgICAgICAgICAgICAgICAgICAgZmxv
YXQgdG90YWwgPSAwLjsKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgdG90YWxXZWlnaHQgPSAw
LjsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChmbG9hdCBpID0gLTIuOyBpIDw9IDIuOyBpICs9
IC4yKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB3ZWlnaHQgPSBnYXVzc2lhbihp
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IHNhbXBsZUFscGhhKGkpICogd2Vp
Z2h0OwotICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxXZWlnaHQgKz0gd2VpZ2h0OworICAg
ICAgICAgICAgICAgICAgICBmbG9hdCB0b3RhbCA9IHNhbXBsZUFscGhhKDApICogdV9nYXVzc2lh
bktlcm5lbFswXTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBHQVVT
U0lBTl9LRVJORUxfSEFMRl9XSURUSDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0
b3RhbCArPSBzYW1wbGVBbHBoYShmbG9hdChpKSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQKSAqIHVf
Z2F1c3NpYW5LZXJuZWxbaV07CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCArPSBzYW1w
bGVBbHBoYShmbG9hdCgtMSAqIGkpICogR0FVU1NJQU5fS0VSTkVMX1NURVApICogdV9nYXVzc2lh
bktlcm5lbFtpXTsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybiB0b3RhbCAvIHRvdGFsV2VpZ2h0OworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dG90YWw7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgbG93cCB2ZWM0IHNv
dXJjZU92ZXIobG93cCB2ZWM0IHNvdXJjZSwgbG93cCB2ZWM0IGRlc3RpbmF0aW9uKQpAQCAtNjUw
LDkgKzYyMywxMSBAQCBTdGFuZGFyZEZpbHRlclByb2dyYW06OlN0YW5kYXJkRmlsdGVyUHJvZ3Jh
bShGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZQogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6QkxVUjoKICAgICAgICAgbV91bmlmb3JtTG9jYXRpb25z
LmJsdXIucmFkaXVzID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbUlELCAidV9ibHVyUmFk
aXVzIik7CisgICAgICAgIG1fdW5pZm9ybUxvY2F0aW9ucy5ibHVyLmdhdXNzaWFuS2VybmVsID0g
Z2xHZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbUlELCAidV9nYXVzc2lhbktlcm5lbCIpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6RFJPUF9TSEFET1c6CiAgICAg
ICAgIG1fdW5pZm9ybUxvY2F0aW9ucy5zaGFkb3cuYmx1clJhZGl1cyA9IGdsR2V0VW5pZm9ybUxv
Y2F0aW9uKHByb2dyYW1JRCwgInVfc2hhZG93Qmx1clJhZGl1cyIpOworICAgICAgICBtX3VuaWZv
cm1Mb2NhdGlvbnMuc2hhZG93LmdhdXNzaWFuS2VybmVsID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24o
cHJvZ3JhbUlELCAidV9nYXVzc2lhbktlcm5lbCIpOwogICAgICAgICBpZiAoIXBhc3MpCiAgICAg
ICAgICAgICBtX3VuaWZvcm1Mb2NhdGlvbnMuc2hhZG93Lm9mZnNldCA9IGdsR2V0VW5pZm9ybUxv
Y2F0aW9uKHByb2dyYW1JRCwgInVfc2hhZG93T2Zmc2V0Iik7CiAgICAgICAgIGVsc2UgewpAQCAt
Njc4LDYgKzY1MywzMSBAQCBQYXNzUmVmUHRyPFN0YW5kYXJkRmlsdGVyUHJvZ3JhbT4gU3RhbmRh
cmRGaWx0ZXJQcm9ncmFtOjpjcmVhdGUoRmlsdGVyT3BlcmF0aW9uOgogICAgIHJldHVybiBwcm9n
cmFtOwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0IGdhdXNzKGZsb2F0IHgpCit7CisgICAgcmV0
dXJuIGV4cCgtICh4ICogeCkgLyAyLmYpOworfQorCitzdGF0aWMgZmxvYXQqIGdhdXNzaWFuS2Vy
bmVsKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBwcmVwYXJlZCA9IGZhbHNlOworICAgIHN0YXRpYyBm
bG9hdCBrZXJuZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdID0gezAsIH07CisgICAgaWYg
KCFwcmVwYXJlZCkgeworICAgICAgICBrZXJuZWxbMF0gPSBnYXVzcygwKTsKKyAgICAgICAgZmxv
YXQgc3VtID0ga2VybmVsWzBdOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgR0FV
U1NJQU5fS0VSTkVMX0hBTEZfV0lEVEg7ICsraSkgeworICAgICAgICAgICAga2VybmVsW2ldID0g
Z2F1c3MoaSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQKTsKKyAgICAgICAgICAgIHN1bSArPSAyICog
a2VybmVsW2ldOworICAgICAgICB9CisgICAgICAgIC8vIE5vcm1hbGl6ZSB0aGUga2VybmVsCisg
ICAgICAgIGZsb2F0IHNjYWxlID0gMSAvIHN1bTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIOyArK2kpCisgICAgICAgICAgICBrZXJu
ZWxbaV0gKj0gc2NhbGU7CisgICAgICAgIHByZXBhcmVkID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIGtlcm5lbDsKK30KKwogdm9pZCBTdGFuZGFyZEZpbHRlclByb2dyYW06OnByZXBhcmUoY29u
c3QgRmlsdGVyT3BlcmF0aW9uJiBvcGVyYXRpb24sIHVuc2lnbmVkIHBhc3MsIGNvbnN0IEludFNp
emUmIHNpemUsIEdMdWludCBjb250ZW50VGV4dHVyZSkKIHsKICAgICBnbFVzZVByb2dyYW0obV9p
ZCk7CkBAIC03MDUsNiArNzA1LDcgQEAgdm9pZCBTdGFuZGFyZEZpbHRlclByb2dyYW06OnByZXBh
cmUoY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvcGVyYXRpb24sIHVuc2lnbmVkIHAKICAgICAgICAg
ICAgIHJhZGl1cy5zZXRXaWR0aChmbG9hdFZhbHVlRm9yTGVuZ3RoKGJsdXIuc3RkRGV2aWF0aW9u
KCksIHNpemUud2lkdGgoKSkgLyBzaXplLndpZHRoKCkpOwogCiAgICAgICAgIGdsVW5pZm9ybTJm
KG1fdW5pZm9ybUxvY2F0aW9ucy5ibHVyLnJhZGl1cywgcmFkaXVzLndpZHRoKCksIHJhZGl1cy5o
ZWlnaHQoKSk7CisgICAgICAgIGdsVW5pZm9ybTFmdihtX3VuaWZvcm1Mb2NhdGlvbnMuYmx1ci5n
YXVzc2lhbktlcm5lbCwgR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEgsIGdhdXNzaWFuS2VybmVs
KCkpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkRS
T1BfU0hBRE9XOiB7CkBAIC03MTQsMTAgKzcxNSwxMiBAQCB2b2lkIFN0YW5kYXJkRmlsdGVyUHJv
Z3JhbTo6cHJlcGFyZShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG9wZXJhdGlvbiwgdW5zaWduZWQg
cAogICAgICAgICAgICAgLy8gRmlyc3QgcGFzczogdmVydGljYWwgYWxwaGEgYmx1ci4KICAgICAg
ICAgICAgIGdsVW5pZm9ybTJmKG1fdW5pZm9ybUxvY2F0aW9ucy5zaGFkb3cub2Zmc2V0LCBmbG9h
dChzaGFkb3cubG9jYXRpb24oKS54KCkpIC8gZmxvYXQoc2l6ZS53aWR0aCgpKSwgZmxvYXQoc2hh
ZG93LmxvY2F0aW9uKCkueSgpKSAvIGZsb2F0KHNpemUuaGVpZ2h0KCkpKTsKICAgICAgICAgICAg
IGdsVW5pZm9ybTFmKG1fdW5pZm9ybUxvY2F0aW9ucy5zaGFkb3cuYmx1clJhZGl1cywgc2hhZG93
LnN0ZERldmlhdGlvbigpIC8gZmxvYXQoc2l6ZS53aWR0aCgpKSk7CisgICAgICAgICAgICBnbFVu
aWZvcm0xZnYobV91bmlmb3JtTG9jYXRpb25zLnNoYWRvdy5nYXVzc2lhbktlcm5lbCwgR0FVU1NJ
QU5fS0VSTkVMX0hBTEZfV0lEVEgsIGdhdXNzaWFuS2VybmVsKCkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgIC8vIFNlY29uZCBwYXNzOiB3ZSBuZWVk
IHRoZSBzaGFkb3cgY29sb3IgYW5kIHRoZSBjb250ZW50IHRleHR1cmUgZm9yIGNvbXBvc2l0aW5n
LgogICAgICAgICAgICAgZ2xVbmlmb3JtMWYobV91bmlmb3JtTG9jYXRpb25zLnNoYWRvdy5ibHVy
UmFkaXVzLCBzaGFkb3cuc3RkRGV2aWF0aW9uKCkgLyBmbG9hdChzaXplLmhlaWdodCgpKSk7Cisg
ICAgICAgICAgICBnbFVuaWZvcm0xZnYobV91bmlmb3JtTG9jYXRpb25zLnNoYWRvdy5nYXVzc2lh
bktlcm5lbCwgR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEgsIGdhdXNzaWFuS2VybmVsKCkpOwog
ICAgICAgICAgICAgZ2xBY3RpdmVUZXh0dXJlKEdMX1RFWFRVUkUxKTsKICAgICAgICAgICAgIGds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgY29udGVudFRleHR1cmUpOwogICAgICAgICAgICAg
Z2xVbmlmb3JtMWkobV91bmlmb3JtTG9jYXRpb25zLnNoYWRvdy5jb250ZW50VGV4dHVyZSwgMSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5oCmluZGV4IDNmMGI0ODkuLjBm
MjJlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5oCkBAIC05Miw2
ICs5Miw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgc3RydWN0IHsKICAgICAgICAgICAgIEdMdWlu
dCByYWRpdXM7CisgICAgICAgICAgICBHTHVpbnQgZ2F1c3NpYW5LZXJuZWw7CiAgICAgICAgIH0g
Ymx1cjsKIAogICAgICAgICBzdHJ1Y3QgewpAQCAtOTksNiArMTAwLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIEdMdWludCBjb2xvcjsKICAgICAgICAgICAgIEdMdWludCBvZmZzZXQ7CiAgICAg
ICAgICAgICBHTHVpbnQgY29udGVudFRleHR1cmU7CisgICAgICAgICAgICBHTHVpbnQgZ2F1c3Np
YW5LZXJuZWw7CiAgICAgICAgIH0gc2hhZG93OwogICAgIH0gbV91bmlmb3JtTG9jYXRpb25zOwog
fTsKLS0gCjEuNy45LjUKCg==
</data>
<flag name="review"
          id="155563"
          type_id="1"
          status="-"
          setter="noam"
    />
    <flag name="commit-queue"
          id="155564"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148000</attachid>
            <date>2012-06-16 19:17:12 -0700</date>
            <delta_ts>2012-06-16 20:25:19 -0700</delta_ts>
            <desc>patch v.2</desc>
            <filename>0001-Texmap-Share-gaussian-formula-between-shaders-in-Tex.patch</filename>
            <type>text/plain</type>
            <size>13044</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">RnJvbSA1MjZlNzM4OTUzMmM4NmVmMGJjNTI3MmZiMDE1MmUwZmUxMDgxMGEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIdWFuZyBEb25nc3VuZyA8bHV4dGVsbGFAY29tcGFueTEwMC5u
ZXQ+CkRhdGU6IFN1biwgMTcgSnVuIDIwMTIgMTE6MDE6NDcgKzA5MDAKU3ViamVjdDogW1BBVENI
XSBbVGV4bWFwXSBTaGFyZSBnYXVzc2lhbiBmb3JtdWxhIGJldHdlZW4gc2hhZGVycyBpbgogVGV4
dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODkyNzcKClRoaXMgcGF0Y2ggbWFrZXMgYmx1ciBhbmQgZHJvcCBzaGFkb3cgc2hh
ZGVyIHNoYXJlIGdhdXNzaWFuIGZvcm11bGEuCgpPbiB0aGUgb3RoZXIgaGFuZCwgYmx1ciBhbmQg
ZHJvcCBzaGFkb3cgZmlsdGVyIGNvbXB1dGVkIGEgZ2F1c3NpYW4gd2VpZ2h0IGluCnBpeGVsIHNo
YWRlci4gSG93ZXZlciwgYSBnYXVzc2lhbiBrZXJuYWwgaGFzIGFsd2F5cyBzYW1lIHZhbHVlcywg
c28gdGhpcyBwYXRjaApjb21wdXRlcyB0aGUgZ2F1c3NpYW4ga2VybmVsIG9ubHkgb25lIHRpbWUg
dXNpbmcgQ1BVLgpJdCBpcyBtb3JlIGFjY3VyYXRlIGFuZCBmYXN0ZXIuCi0tLQogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI0ICsrKysrCiAu
Li4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcCB8ICAxMTMg
KysrKysrKysrKy0tLS0tLS0tLS0KIC4uLi9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXIuaCAgIHwgICAgMiArCiAzIGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMo
KyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjg2ZWNiLi40MDg5MjcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDYtMTYgIEh1YW5nIERvbmdzdW5nICA8bHV4
dGVsbGFAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1RleG1hcF0gU2hhcmUgZ2F1c3NpYW4g
Zm9ybXVsYSBiZXR3ZWVuIHNoYWRlcnMgaW4gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTI3NworCisg
ICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgYmx1ciBhbmQgZHJvcCBzaGFkb3cgc2hhZGVyIHNoYXJl
IGdhdXNzaWFuIGZvcm11bGEuCisKKyAgICAgICAgT24gdGhlIG90aGVyIGhhbmQsIGJsdXIgYW5k
IGRyb3Agc2hhZG93IGZpbHRlciBjb21wdXRlZCBhIGdhdXNzaWFuIHdlaWdodCBpbgorICAgICAg
ICBwaXhlbCBzaGFkZXIuIEhvd2V2ZXIsIGEgZ2F1c3NpYW4ga2VybmFsIGhhcyBhbHdheXMgc2Ft
ZSB2YWx1ZXMsIHNvIHRoaXMgcGF0Y2gKKyAgICAgICAgY29tcHV0ZXMgdGhlIGdhdXNzaWFuIGtl
cm5lbCBvbmx5IG9uZSB0aW1lIHVzaW5nIENQVS4KKyAgICAgICAgSXQgaXMgbW9yZSBhY2N1cmF0
ZSBhbmQgZmFzdGVyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMsIHBhcnRpY3VsYXJseSBjc3MzL2ZpbHRl
cnMvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
U3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFuZGFyZEZpbHRlclByb2dyYW0pOgorICAgICAgICAo
V2ViQ29yZTo6Z2F1c3MpOgorICAgICAgICAoV2ViQ29yZTo6Z2F1c3NpYW5LZXJuZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6U3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpwcmVwYXJlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaDoK
KwogMjAxMi0wNi0xNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMDI4MC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCmluZGV4IDEyYTQ1ZTMuLmFiNDJkMGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcApAQCAtMzgsMTAgKzM4
LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7
IFxuIgogI2VuZGlmCiAKLSNkZWZpbmUgVkVSVEVYX1NIQURFUihzcmMuLi4pIE9FUzJfUFJFQ0lT
SU9OX0RFRklOSVRJT05TI3NyYworI2RlZmluZSBTVFJJTkdJRllfVkFMKHNyYy4uLikgI3NyYwor
I2RlZmluZSBWRVJURVhfU0hBREVSKHNyYy4uLikgT0VTMl9QUkVDSVNJT05fREVGSU5JVElPTlNc
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVFJJTkdJRllfVkFMKHNyYykKICNkZWZp
bmUgRlJBR01FTlRfU0hBREVSKHNyYy4uLikgT0VTMl9QUkVDSVNJT05fREVGSU5JVElPTlNcCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9FUzJfRlJBR01FTlRfU0hBREVSX0RFRkFV
TFRfUFJFQ0lTSU9OXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjc3JjCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUUklOR0lGWV9WQUwoc3JjKQogCiBzdGF0aWMg
Y29uc3QgY2hhciogZnJhZ21lbnRTaGFkZXJTb3VyY2VPcGFjaXR5QW5kTWFzayA9CiAgICAgRlJB
R01FTlRfU0hBREVSKApAQCAtMzUyLDYgKzM1NCwxMSBAQCBUZXh0dXJlTWFwcGVyU2hhZGVyTWFu
YWdlcjo6flRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyKCkKIH0KIAogI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKKworLy8gQ3JlYXRlIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbiBvZiAyMSB2YWx1ZXMg
YmV0d2VlbiAtMiBhbmQgMi4KKyNkZWZpbmUgR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEggMTEK
KyNkZWZpbmUgR0FVU1NJQU5fS0VSTkVMX1NURVAgMC4yCisKIFN0YW5kYXJkRmlsdGVyUHJvZ3Jh
bTo6flN0YW5kYXJkRmlsdGVyUHJvZ3JhbSgpCiB7CiAgICAgZ2xEZXRhY2hTaGFkZXIobV9pZCwg
bV92ZXJ0ZXhTaGFkZXIpOwpAQCAtNDc1LDE1ICs0ODIsNyBAQCBTdGFuZGFyZEZpbHRlclByb2dy
YW06OlN0YW5kYXJkRmlsdGVyUHJvZ3JhbShGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUg
dHlwZQogICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7CiAgICAgICAg
ICAgICB1bmlmb3JtIGxvd3AgdmVjMiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICB1bmlmb3Jt
IHNhbXBsZXIyRCB1X3RleHR1cmU7Ci0gICAgICAgICAgICBjb25zdCBmbG9hdCBwaSA9IDMuMTQx
NTk7Ci0gICAgICAgICAgICBjb25zdCBmbG9hdCBlID0gMi43MTgyODsKLQotICAgICAgICAgICAg
Ly8gRklYTUU6IHNoYXJlIGdhdXNzaWFuIGZvcm11bGEgYmV0d2VlbiBzaGFkZXJzLgotICAgICAg
ICAgICAgbG93cCBmbG9hdCBnYXVzc2lhbihsb3dwIGZsb2F0IHZhbHVlKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBkaXN0cmlidXRpb24gZm9ybXVsYSwgd2hlbiB0
aGUgbWVhbiBpcyAwIGFuZCB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIGlzIDEuCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHBvdyhlLCAtcG93KHZhbHVlLCAyLikgLyAyLikgLyAoc3FydCgyLiAqIHBp
KSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3NpYW5L
ZXJuZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCiAgICAgICAgICAgICBsb3dwIHZl
YzQgc2FtcGxlQ29sb3IoZmxvYXQgcmFkaXVzKQogICAgICAgICAgICAgewpAQCAtNDkzLDE2ICs0
OTIsMTMgQEAgU3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFuZGFyZEZpbHRlclByb2dyYW0oRmls
dGVyT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUKIAogICAgICAgICAgICAgdmVjNCBibHVy
KCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBub3JtYWwgZGlz
dHJpYnV0aW9uIG9mIDIwIHZhbHVlcyBiZXR3ZWVuIDAuIGFuZCAyLgotICAgICAgICAgICAgICAg
IHZlYzQgdG90YWwgPSB2ZWM0KDAuLCAwLiwgMC4sIDAuKTsKLSAgICAgICAgICAgICAgICBmbG9h
dCB0b3RhbFdlaWdodCA9IDAuOwotICAgICAgICAgICAgICAgIGZvciAoZmxvYXQgaSA9IC0yLjsg
aSA8PSAyLjsgaSArPSAuMikgewotICAgICAgICAgICAgICAgICAgICBmbG9hdCB3ZWlnaHQgPSBn
YXVzc2lhbihpKTsKLSAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0gc2FtcGxlQ29sb3IoaSkg
KiB3ZWlnaHQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsV2VpZ2h0ICs9IHdlaWdodDsKKyAg
ICAgICAgICAgICAgICB2ZWM0IHRvdGFsID0gc2FtcGxlQ29sb3IoMCkgKiB1X2dhdXNzaWFuS2Vy
bmVsWzBdOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgR0FVU1NJQU5fS0VS
TkVMX0hBTEZfV0lEVEg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbCArPSBzYW1w
bGVDb2xvcihmbG9hdChpKSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQKSAqIHVfZ2F1c3NpYW5LZXJu
ZWxbaV07CisgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IHNhbXBsZUNvbG9yKGZsb2F0KC0x
ICogaSkgKiBHQVVTU0lBTl9LRVJORUxfU1RFUCkgKiB1X2dhdXNzaWFuS2VybmVsW2ldOwogICAg
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbCAvIHRvdGFsV2Vp
Z2h0OworICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbDsKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgdm9pZCBtYWluKHZvaWQpCkBAIC01MjAsMTUgKzUxNiw3IEBAIFN0YW5kYXJkRmls
dGVyUHJvZ3JhbTo6U3RhbmRhcmRGaWx0ZXJQcm9ncmFtKEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0
aW9uVHlwZSB0eXBlCiAgICAgICAgICAgICAgICAgdW5pZm9ybSBsb3dwIGZsb2F0IHVfc2hhZG93
Qmx1clJhZGl1czsKICAgICAgICAgICAgICAgICB1bmlmb3JtIGxvd3AgdmVjMiB1X3NoYWRvd09m
ZnNldDsKICAgICAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7Ci0gICAg
ICAgICAgICAgICAgY29uc3QgZmxvYXQgcGkgPSAzLjE0MTU5OwotICAgICAgICAgICAgICAgIGNv
bnN0IGZsb2F0IGUgPSAyLjcxODI4OwotCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHNoYXJl
IGdhdXNzaWFuIGZvcm11bGEgYmV0d2VlbiBzaGFkZXJzLgotICAgICAgICAgICAgICAgIGxvd3Ag
ZmxvYXQgZ2F1c3NpYW4obG93cCBmbG9hdCB2YWx1ZSkKLSAgICAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBkaXN0cmlidXRpb24gZm9ybXVsYSwgd2hlbiB0aGUg
bWVhbiBpcyAwIGFuZCB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIGlzIDEuCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBwb3coZSwgLXBvdyh2YWx1ZSwgMi4pIC8gMi4pIC8gKHNxcnQoMi4gKiBw
aSkpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVf
Z2F1c3NpYW5LZXJuZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCiAgICAgICAgICAg
ICAgICAgbG93cCBmbG9hdCBzYW1wbGVBbHBoYShmbG9hdCByYWRpdXMpCiAgICAgICAgICAgICAg
ICAgewpAQCAtNTM4LDE2ICs1MjYsMTMgQEAgU3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFuZGFy
ZEZpbHRlclByb2dyYW0oRmlsdGVyT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUKIAogICAg
ICAgICAgICAgICAgIGxvd3AgZmxvYXQgc2hhZG93Qmx1ckhvcml6b250YWwoKQogICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbm9ybWFsIGRpc3RyaWJ1
dGlvbiBvZiAyMCB2YWx1ZXMgYmV0d2VlbiAtMiBhbmQgMi4KLSAgICAgICAgICAgICAgICAgICAg
ZmxvYXQgdG90YWwgPSAwLjsKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgdG90YWxXZWlnaHQg
PSAwLjsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChmbG9hdCBpID0gLTIuOyBpIDw9IDIuOyBp
ICs9IC4yKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB3ZWlnaHQgPSBnYXVzc2lh
bihpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IHNhbXBsZUFscGhhKGkpICog
d2VpZ2h0OwotICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxXZWlnaHQgKz0gd2VpZ2h0Owor
ICAgICAgICAgICAgICAgICAgICBmbG9hdCB0b3RhbCA9IHNhbXBsZUFscGhhKDApICogdV9nYXVz
c2lhbktlcm5lbFswXTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBH
QVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICB0b3RhbCArPSBzYW1wbGVBbHBoYShmbG9hdChpKSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQKSAq
IHVfZ2F1c3NpYW5LZXJuZWxbaV07CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCArPSBz
YW1wbGVBbHBoYShmbG9hdCgtMSAqIGkpICogR0FVU1NJQU5fS0VSTkVMX1NURVApICogdV9nYXVz
c2lhbktlcm5lbFtpXTsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiB0b3RhbCAvIHRvdGFsV2VpZ2h0OworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdG90YWw7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgdm9pZCBtYWlu
KHZvaWQpCkBAIC01NjUsMTYgKzU1MCw3IEBAIFN0YW5kYXJkRmlsdGVyUHJvZ3JhbTo6U3RhbmRh
cmRGaWx0ZXJQcm9ncmFtKEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlCiAgICAg
ICAgICAgICAgICAgdW5pZm9ybSBsb3dwIHZlYzQgdV9zaGFkb3dDb2xvcjsKICAgICAgICAgICAg
ICAgICB1bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7CiAgICAgICAgICAgICAgICAgdW5pZm9y
bSBzYW1wbGVyMkQgdV9jb250ZW50VGV4dHVyZTsKLQotICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBzaGFyZSBnYXVzc2lhbiBmb3JtdWxhIGJldHdlZW4gc2hhZGVycy4KLSAgICAgICAgICAgICAg
ICBjb25zdCBmbG9hdCBwaSA9IDMuMTQxNTk7Ci0gICAgICAgICAgICAgICAgY29uc3QgZmxvYXQg
ZSA9IDIuNzE4Mjg7Ci0KLSAgICAgICAgICAgICAgICBsb3dwIGZsb2F0IGdhdXNzaWFuKGZsb2F0
IHZhbHVlKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gTm9ybWFs
IGRpc3RyaWJ1dGlvbiBmb3JtdWxhLCB3aGVuIHRoZSBtZWFuIGlzIDAgYW5kIHRoZSBzdGFuZGFy
ZCBkZXZpYXRpb24gaXMgMS4KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvdyhlLCAtcG93
KHZhbHVlLCAyLikgLyAyLikgLyAoc3FydCgyLiAqIHBpKSk7Ci0gICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9nYXVzc2lhbktlcm5lbFtHQVVTU0lBTl9L
RVJORUxfSEFMRl9XSURUSF07CiAKICAgICAgICAgICAgICAgICBsb3dwIGZsb2F0IHNhbXBsZUFs
cGhhKGZsb2F0IHIpCiAgICAgICAgICAgICAgICAgewpAQCAtNTg0LDE2ICs1NjAsMTMgQEAgU3Rh
bmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFuZGFyZEZpbHRlclByb2dyYW0oRmlsdGVyT3BlcmF0aW9u
OjpPcGVyYXRpb25UeXBlIHR5cGUKIAogICAgICAgICAgICAgICAgIGxvd3AgZmxvYXQgc2hhZG93
Qmx1clZlcnRpY2FsKCkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIC8v
IENyZWF0ZSBhIG5vcm1hbCBkaXN0cmlidXRpb24gb2YgMjAgdmFsdWVzIGJldHdlZW4gLTIgYW5k
IDIuCi0gICAgICAgICAgICAgICAgICAgIGZsb2F0IHRvdGFsID0gMC47Ci0gICAgICAgICAgICAg
ICAgICAgIGZsb2F0IHRvdGFsV2VpZ2h0ID0gMC47Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
ZmxvYXQgaSA9IC0yLjsgaSA8PSAyLjsgaSArPSAuMikgewotICAgICAgICAgICAgICAgICAgICAg
ICAgZmxvYXQgd2VpZ2h0ID0gZ2F1c3NpYW4oaSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0
b3RhbCArPSBzYW1wbGVBbHBoYShpKSAqIHdlaWdodDsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRvdGFsV2VpZ2h0ICs9IHdlaWdodDsKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgdG90YWwg
PSBzYW1wbGVBbHBoYSgwKSAqIHVfZ2F1c3NpYW5LZXJuZWxbMF07CisgICAgICAgICAgICAgICAg
ICAgIGZvciAoaW50IGkgPSAxOyBpIDwgR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEg7IGkrKykg
eworICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0gc2FtcGxlQWxwaGEoZmxvYXQoaSkg
KiBHQVVTU0lBTl9LRVJORUxfU1RFUCkgKiB1X2dhdXNzaWFuS2VybmVsW2ldOworICAgICAgICAg
ICAgICAgICAgICAgICAgdG90YWwgKz0gc2FtcGxlQWxwaGEoZmxvYXQoLTEgKiBpKSAqIEdBVVNT
SUFOX0tFUk5FTF9TVEVQKSAqIHVfZ2F1c3NpYW5LZXJuZWxbaV07CiAgICAgICAgICAgICAgICAg
ICAgIH0KIAotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWwgLyB0b3RhbFdlaWdodDsK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsOwogICAgICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgICAgIGxvd3AgdmVjNCBzb3VyY2VPdmVyKGxvd3AgdmVjNCBzb3VyY2UsIGxv
d3AgdmVjNCBkZXN0aW5hdGlvbikKQEAgLTY1MCw5ICs2MjMsMTEgQEAgU3RhbmRhcmRGaWx0ZXJQ
cm9ncmFtOjpTdGFuZGFyZEZpbHRlclByb2dyYW0oRmlsdGVyT3BlcmF0aW9uOjpPcGVyYXRpb25U
eXBlIHR5cGUKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkJMVVI6
CiAgICAgICAgIG1fdW5pZm9ybUxvY2F0aW9ucy5ibHVyLnJhZGl1cyA9IGdsR2V0VW5pZm9ybUxv
Y2F0aW9uKHByb2dyYW1JRCwgInVfYmx1clJhZGl1cyIpOworICAgICAgICBtX3VuaWZvcm1Mb2Nh
dGlvbnMuYmx1ci5nYXVzc2lhbktlcm5lbCA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW1J
RCwgInVfZ2F1c3NpYW5LZXJuZWwiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWx0ZXJP
cGVyYXRpb246OkRST1BfU0hBRE9XOgogICAgICAgICBtX3VuaWZvcm1Mb2NhdGlvbnMuc2hhZG93
LmJsdXJSYWRpdXMgPSBnbEdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtSUQsICJ1X3NoYWRvd0Js
dXJSYWRpdXMiKTsKKyAgICAgICAgbV91bmlmb3JtTG9jYXRpb25zLnNoYWRvdy5nYXVzc2lhbktl
cm5lbCA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW1JRCwgInVfZ2F1c3NpYW5LZXJuZWwi
KTsKICAgICAgICAgaWYgKCFwYXNzKQogICAgICAgICAgICAgbV91bmlmb3JtTG9jYXRpb25zLnNo
YWRvdy5vZmZzZXQgPSBnbEdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtSUQsICJ1X3NoYWRvd09m
ZnNldCIpOwogICAgICAgICBlbHNlIHsKQEAgLTY3OCw2ICs2NTMsMzMgQEAgUGFzc1JlZlB0cjxT
dGFuZGFyZEZpbHRlclByb2dyYW0+IFN0YW5kYXJkRmlsdGVyUHJvZ3JhbTo6Y3JlYXRlKEZpbHRl
ck9wZXJhdGlvbjoKICAgICByZXR1cm4gcHJvZ3JhbTsKIH0KIAorc3RhdGljIGlubGluZSBmbG9h
dCBnYXVzcyhmbG9hdCB4KQoreworICAgIHJldHVybiBleHAoLSAoeCAqIHgpIC8gMi5mKTsKK30K
Kworc3RhdGljIGZsb2F0KiBnYXVzc2lhbktlcm5lbCgpCit7CisgICAgc3RhdGljIGJvb2wgcHJl
cGFyZWQgPSBmYWxzZTsKKyAgICBzdGF0aWMgZmxvYXQga2VybmVsW0dBVVNTSUFOX0tFUk5FTF9I
QUxGX1dJRFRIXSA9IHswLCB9OworICAgIGlmICghcHJlcGFyZWQpIHsKKyAgICAgICAga2VybmVs
WzBdID0gZ2F1c3MoMCk7CisgICAgICAgIGZsb2F0IHN1bSA9IGtlcm5lbFswXTsKKyAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRIOyArK2kp
IHsKKyAgICAgICAgICAgIGtlcm5lbFtpXSA9IGdhdXNzKGkgKiBHQVVTU0lBTl9LRVJORUxfU1RF
UCk7CisgICAgICAgICAgICBzdW0gKz0gMiAqIGtlcm5lbFtpXTsKKyAgICAgICAgfQorCisgICAg
ICAgIC8vIE5vcm1hbGl6ZSB0aGUga2VybmVsCisgICAgICAgIGZsb2F0IHNjYWxlID0gMSAvIHN1
bTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdBVVNTSUFOX0tFUk5FTF9IQUxG
X1dJRFRIOyArK2kpCisgICAgICAgICAgICBrZXJuZWxbaV0gKj0gc2NhbGU7CisgICAgICAgIHBy
ZXBhcmVkID0gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4ga2VybmVsOworfQorCiB2b2lkIFN0
YW5kYXJkRmlsdGVyUHJvZ3JhbTo6cHJlcGFyZShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG9wZXJh
dGlvbiwgdW5zaWduZWQgcGFzcywgY29uc3QgSW50U2l6ZSYgc2l6ZSwgR0x1aW50IGNvbnRlbnRU
ZXh0dXJlKQogewogICAgIGdsVXNlUHJvZ3JhbShtX2lkKTsKQEAgLTcwNSw2ICs3MDcsNyBAQCB2
b2lkIFN0YW5kYXJkRmlsdGVyUHJvZ3JhbTo6cHJlcGFyZShjb25zdCBGaWx0ZXJPcGVyYXRpb24m
IG9wZXJhdGlvbiwgdW5zaWduZWQgcAogICAgICAgICAgICAgcmFkaXVzLnNldFdpZHRoKGZsb2F0
VmFsdWVGb3JMZW5ndGgoYmx1ci5zdGREZXZpYXRpb24oKSwgc2l6ZS53aWR0aCgpKSAvIHNpemUu
d2lkdGgoKSk7CiAKICAgICAgICAgZ2xVbmlmb3JtMmYobV91bmlmb3JtTG9jYXRpb25zLmJsdXIu
cmFkaXVzLCByYWRpdXMud2lkdGgoKSwgcmFkaXVzLmhlaWdodCgpKTsKKyAgICAgICAgZ2xVbmlm
b3JtMWZ2KG1fdW5pZm9ybUxvY2F0aW9ucy5ibHVyLmdhdXNzaWFuS2VybmVsLCBHQVVTU0lBTl9L
RVJORUxfSEFMRl9XSURUSCwgZ2F1c3NpYW5LZXJuZWwoKSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6RFJPUF9TSEFET1c6IHsKQEAgLTcxNCwxMCAr
NzE3LDEyIEBAIHZvaWQgU3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpwcmVwYXJlKGNvbnN0IEZpbHRl
ck9wZXJhdGlvbiYgb3BlcmF0aW9uLCB1bnNpZ25lZCBwCiAgICAgICAgICAgICAvLyBGaXJzdCBw
YXNzOiB2ZXJ0aWNhbCBhbHBoYSBibHVyLgogICAgICAgICAgICAgZ2xVbmlmb3JtMmYobV91bmlm
b3JtTG9jYXRpb25zLnNoYWRvdy5vZmZzZXQsIGZsb2F0KHNoYWRvdy5sb2NhdGlvbigpLngoKSkg
LyBmbG9hdChzaXplLndpZHRoKCkpLCBmbG9hdChzaGFkb3cubG9jYXRpb24oKS55KCkpIC8gZmxv
YXQoc2l6ZS5oZWlnaHQoKSkpOwogICAgICAgICAgICAgZ2xVbmlmb3JtMWYobV91bmlmb3JtTG9j
YXRpb25zLnNoYWRvdy5ibHVyUmFkaXVzLCBzaGFkb3cuc3RkRGV2aWF0aW9uKCkgLyBmbG9hdChz
aXplLndpZHRoKCkpKTsKKyAgICAgICAgICAgIGdsVW5pZm9ybTFmdihtX3VuaWZvcm1Mb2NhdGlv
bnMuc2hhZG93LmdhdXNzaWFuS2VybmVsLCBHQVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSCwgZ2F1
c3NpYW5LZXJuZWwoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAxOgogICAg
ICAgICAgICAgLy8gU2Vjb25kIHBhc3M6IHdlIG5lZWQgdGhlIHNoYWRvdyBjb2xvciBhbmQgdGhl
IGNvbnRlbnQgdGV4dHVyZSBmb3IgY29tcG9zaXRpbmcuCiAgICAgICAgICAgICBnbFVuaWZvcm0x
ZihtX3VuaWZvcm1Mb2NhdGlvbnMuc2hhZG93LmJsdXJSYWRpdXMsIHNoYWRvdy5zdGREZXZpYXRp
b24oKSAvIGZsb2F0KHNpemUuaGVpZ2h0KCkpKTsKKyAgICAgICAgICAgIGdsVW5pZm9ybTFmdiht
X3VuaWZvcm1Mb2NhdGlvbnMuc2hhZG93LmdhdXNzaWFuS2VybmVsLCBHQVVTU0lBTl9LRVJORUxf
SEFMRl9XSURUSCwgZ2F1c3NpYW5LZXJuZWwoKSk7CiAgICAgICAgICAgICBnbEFjdGl2ZVRleHR1
cmUoR0xfVEVYVFVSRTEpOwogICAgICAgICAgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJE
LCBjb250ZW50VGV4dHVyZSk7CiAgICAgICAgICAgICBnbFVuaWZvcm0xaShtX3VuaWZvcm1Mb2Nh
dGlvbnMuc2hhZG93LmNvbnRlbnRUZXh0dXJlLCAxKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJT
aGFkZXJNYW5hZ2VyLmgKaW5kZXggM2YwYjQ4OS4uMGYyMmVkYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmgKQEAgLTkyLDYgKzkyLDcgQEAgcHJpdmF0ZToKIAogICAg
ICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgR0x1aW50IHJhZGl1czsKKyAgICAgICAgICAgIEdM
dWludCBnYXVzc2lhbktlcm5lbDsKICAgICAgICAgfSBibHVyOwogCiAgICAgICAgIHN0cnVjdCB7
CkBAIC05OSw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgR0x1aW50IGNvbG9yOwog
ICAgICAgICAgICAgR0x1aW50IG9mZnNldDsKICAgICAgICAgICAgIEdMdWludCBjb250ZW50VGV4
dHVyZTsKKyAgICAgICAgICAgIEdMdWludCBnYXVzc2lhbktlcm5lbDsKICAgICAgICAgfSBzaGFk
b3c7CiAgICAgfSBtX3VuaWZvcm1Mb2NhdGlvbnM7CiB9OwotLSAKMS43LjkuNQoK
</data>
<flag name="review"
          id="155606"
          type_id="1"
          status="+"
          setter="noam"
    />
    <flag name="commit-queue"
          id="155607"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148004</attachid>
            <date>2012-06-16 20:25:19 -0700</date>
            <delta_ts>2012-06-16 21:42:34 -0700</delta_ts>
            <desc>patch v.3</desc>
            <filename>0001-Texmap-Share-gaussian-formula-between-shaders-in-Tex.patch</filename>
            <type>text/plain</type>
            <size>13019</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">RnJvbSAwOGUzZDI4MjM5NTk3MmJmOWI1YzI4NDIxNGYwMWRiMmI1NjE4YzVlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBIdWFuZyBEb25nc3VuZyA8bHV4dGVsbGFAY29tcGFueTEwMC5u
ZXQ+CkRhdGU6IFN1biwgMTcgSnVuIDIwMTIgMTE6MDE6NDcgKzA5MDAKU3ViamVjdDogW1BBVENI
IDEvMl0gW1RleG1hcF0gU2hhcmUgZ2F1c3NpYW4gZm9ybXVsYSBiZXR3ZWVuIHNoYWRlcnMgaW4K
IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLgogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg5Mjc3CgpUaGlzIHBhdGNoIG1ha2VzIGJsdXIgYW5kIGRyb3Agc2hhZG93
IHNoYWRlciBzaGFyZSBnYXVzc2lhbiBmb3JtdWxhLgoKT24gdGhlIG90aGVyIGhhbmQsIGJsdXIg
YW5kIGRyb3Agc2hhZG93IGZpbHRlciBjb21wdXRlZCBhIGdhdXNzaWFuIHdlaWdodCBpbgpwaXhl
bCBzaGFkZXIuIEhvd2V2ZXIsIGEgZ2F1c3NpYW4ga2VybmFsIGhhcyBhbHdheXMgc2FtZSB2YWx1
ZXMsIHNvIHRoaXMgcGF0Y2gKY29tcHV0ZXMgdGhlIGdhdXNzaWFuIGtlcm5lbCBvbmx5IG9uZSB0
aW1lIHVzaW5nIENQVS4KSXQgaXMgbW9yZSBhY2N1cmF0ZSBhbmQgZmFzdGVyLgotLS0KIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyNCArKysr
CiAuLi4vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcCB8ICAx
MTUgKysrKysrKysrKystLS0tLS0tLS0KIC4uLi9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXIuaCAgIHwgICAgMiArCiAzIGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlv
bnMoKyksIDU0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYjg2ZWNiLi40MDg5MjcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMDYtMTYgIEh1YW5nIERvbmdzdW5nICA8
bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CisKKyAgICAgICAgW1RleG1hcF0gU2hhcmUgZ2F1c3Np
YW4gZm9ybXVsYSBiZXR3ZWVuIHNoYWRlcnMgaW4gVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTI3Nwor
CisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgYmx1ciBhbmQgZHJvcCBzaGFkb3cgc2hhZGVyIHNo
YXJlIGdhdXNzaWFuIGZvcm11bGEuCisKKyAgICAgICAgT24gdGhlIG90aGVyIGhhbmQsIGJsdXIg
YW5kIGRyb3Agc2hhZG93IGZpbHRlciBjb21wdXRlZCBhIGdhdXNzaWFuIHdlaWdodCBpbgorICAg
ICAgICBwaXhlbCBzaGFkZXIuIEhvd2V2ZXIsIGEgZ2F1c3NpYW4ga2VybmFsIGhhcyBhbHdheXMg
c2FtZSB2YWx1ZXMsIHNvIHRoaXMgcGF0Y2gKKyAgICAgICAgY29tcHV0ZXMgdGhlIGdhdXNzaWFu
IGtlcm5lbCBvbmx5IG9uZSB0aW1lIHVzaW5nIENQVS4KKyAgICAgICAgSXQgaXMgbW9yZSBhY2N1
cmF0ZSBhbmQgZmFzdGVyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMsIHBhcnRpY3VsYXJseSBjc3MzL2Zp
bHRlcnMvLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJTaGFkZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFuZGFyZEZpbHRlclByb2dyYW0pOgorICAgICAg
ICAoV2ViQ29yZTo6Z2F1c3MpOgorICAgICAgICAoV2ViQ29yZTo6Z2F1c3NpYW5LZXJuZWwpOgor
ICAgICAgICAoV2ViQ29yZTo6U3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpwcmVwYXJlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIu
aDoKKwogMjAxMi0wNi0xNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMDI4MC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
U2hhZGVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuY3BwCmluZGV4IDEyYTQ1ZTMuLmI2NGFiM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmNwcApAQCAtMzgsMTAg
KzM4LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAicHJlY2lzaW9uIG1lZGl1bXAgZmxv
YXQ7IFxuIgogI2VuZGlmCiAKLSNkZWZpbmUgVkVSVEVYX1NIQURFUihzcmMuLi4pIE9FUzJfUFJF
Q0lTSU9OX0RFRklOSVRJT05TI3NyYworI2RlZmluZSBTVFJJTkdJRllfVkFMKHNyYy4uLikgI3Ny
YworI2RlZmluZSBWRVJURVhfU0hBREVSKHNyYy4uLikgT0VTMl9QUkVDSVNJT05fREVGSU5JVElP
TlNcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVFJJTkdJRllfVkFMKHNyYykKICNk
ZWZpbmUgRlJBR01FTlRfU0hBREVSKHNyYy4uLikgT0VTMl9QUkVDSVNJT05fREVGSU5JVElPTlNc
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9FUzJfRlJBR01FTlRfU0hBREVSX0RF
RkFVTFRfUFJFQ0lTSU9OXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjc3JjCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUUklOR0lGWV9WQUwoc3JjKQogCiBzdGF0
aWMgY29uc3QgY2hhciogZnJhZ21lbnRTaGFkZXJTb3VyY2VPcGFjaXR5QW5kTWFzayA9CiAgICAg
RlJBR01FTlRfU0hBREVSKApAQCAtMzUyLDYgKzM1NCwxMSBAQCBUZXh0dXJlTWFwcGVyU2hhZGVy
TWFuYWdlcjo6flRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyKCkKIH0KIAogI2lmIEVOQUJMRShD
U1NfRklMVEVSUykKKworLy8gQ3JlYXRlIGEgbm9ybWFsIGRpc3RyaWJ1dGlvbiBvZiAyMSB2YWx1
ZXMgYmV0d2VlbiAtMiBhbmQgMi4KKyNkZWZpbmUgR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEgg
MTEKKyNkZWZpbmUgR0FVU1NJQU5fS0VSTkVMX1NURVAgMC4yCisKIFN0YW5kYXJkRmlsdGVyUHJv
Z3JhbTo6flN0YW5kYXJkRmlsdGVyUHJvZ3JhbSgpCiB7CiAgICAgZ2xEZXRhY2hTaGFkZXIobV9p
ZCwgbV92ZXJ0ZXhTaGFkZXIpOwpAQCAtNDc1LDE1ICs0ODIsNyBAQCBTdGFuZGFyZEZpbHRlclBy
b2dyYW06OlN0YW5kYXJkRmlsdGVyUHJvZ3JhbShGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5
cGUgdHlwZQogICAgICAgICAgICAgdmFyeWluZyBoaWdocCB2ZWMyIHZfdGV4Q29vcmQ7CiAgICAg
ICAgICAgICB1bmlmb3JtIGxvd3AgdmVjMiB1X2JsdXJSYWRpdXM7CiAgICAgICAgICAgICB1bmlm
b3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7Ci0gICAgICAgICAgICBjb25zdCBmbG9hdCBwaSA9IDMu
MTQxNTk7Ci0gICAgICAgICAgICBjb25zdCBmbG9hdCBlID0gMi43MTgyODsKLQotICAgICAgICAg
ICAgLy8gRklYTUU6IHNoYXJlIGdhdXNzaWFuIGZvcm11bGEgYmV0d2VlbiBzaGFkZXJzLgotICAg
ICAgICAgICAgbG93cCBmbG9hdCBnYXVzc2lhbihsb3dwIGZsb2F0IHZhbHVlKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBkaXN0cmlidXRpb24gZm9ybXVsYSwgd2hl
biB0aGUgbWVhbiBpcyAwIGFuZCB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIGlzIDEuCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIHBvdyhlLCAtcG93KHZhbHVlLCAyLikgLyAyLikgLyAoc3FydCgyLiAq
IHBpKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICB1bmlmb3JtIGZsb2F0IHVfZ2F1c3Np
YW5LZXJuZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCiAgICAgICAgICAgICBsb3dw
IHZlYzQgc2FtcGxlQ29sb3IoZmxvYXQgcmFkaXVzKQogICAgICAgICAgICAgewpAQCAtNDkzLDE2
ICs0OTIsMTMgQEAgU3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFuZGFyZEZpbHRlclByb2dyYW0o
RmlsdGVyT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUKIAogICAgICAgICAgICAgdmVjNCBi
bHVyKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyBDcmVhdGUgYSBub3JtYWwg
ZGlzdHJpYnV0aW9uIG9mIDIwIHZhbHVlcyBiZXR3ZWVuIDAuIGFuZCAyLgotICAgICAgICAgICAg
ICAgIHZlYzQgdG90YWwgPSB2ZWM0KDAuLCAwLiwgMC4sIDAuKTsKLSAgICAgICAgICAgICAgICBm
bG9hdCB0b3RhbFdlaWdodCA9IDAuOwotICAgICAgICAgICAgICAgIGZvciAoZmxvYXQgaSA9IC0y
LjsgaSA8PSAyLjsgaSArPSAuMikgewotICAgICAgICAgICAgICAgICAgICBmbG9hdCB3ZWlnaHQg
PSBnYXVzc2lhbihpKTsKLSAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0gc2FtcGxlQ29sb3Io
aSkgKiB3ZWlnaHQ7Ci0gICAgICAgICAgICAgICAgICAgIHRvdGFsV2VpZ2h0ICs9IHdlaWdodDsK
KyAgICAgICAgICAgICAgICB2ZWM0IHRvdGFsID0gc2FtcGxlQ29sb3IoMCkgKiB1X2dhdXNzaWFu
S2VybmVsWzBdOworICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgR0FVU1NJQU5f
S0VSTkVMX0hBTEZfV0lEVEg7IGkrKykgeworICAgICAgICAgICAgICAgICAgICB0b3RhbCArPSBz
YW1wbGVDb2xvcihmbG9hdChpKSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQKSAqIHVfZ2F1c3NpYW5L
ZXJuZWxbaV07CisgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IHNhbXBsZUNvbG9yKGZsb2F0
KC0xICogaSkgKiBHQVVTU0lBTl9LRVJORUxfU1RFUCkgKiB1X2dhdXNzaWFuS2VybmVsW2ldOwog
ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbCAvIHRvdGFs
V2VpZ2h0OworICAgICAgICAgICAgICAgIHJldHVybiB0b3RhbDsKICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgdm9pZCBtYWluKHZvaWQpCkBAIC01MjAsMTUgKzUxNiw3IEBAIFN0YW5kYXJk
RmlsdGVyUHJvZ3JhbTo6U3RhbmRhcmRGaWx0ZXJQcm9ncmFtKEZpbHRlck9wZXJhdGlvbjo6T3Bl
cmF0aW9uVHlwZSB0eXBlCiAgICAgICAgICAgICAgICAgdW5pZm9ybSBsb3dwIGZsb2F0IHVfc2hh
ZG93Qmx1clJhZGl1czsKICAgICAgICAgICAgICAgICB1bmlmb3JtIGxvd3AgdmVjMiB1X3NoYWRv
d09mZnNldDsKICAgICAgICAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7Ci0g
ICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgcGkgPSAzLjE0MTU5OwotICAgICAgICAgICAgICAg
IGNvbnN0IGZsb2F0IGUgPSAyLjcxODI4OwotCi0gICAgICAgICAgICAgICAgLy8gRklYTUU6IHNo
YXJlIGdhdXNzaWFuIGZvcm11bGEgYmV0d2VlbiBzaGFkZXJzLgotICAgICAgICAgICAgICAgIGxv
d3AgZmxvYXQgZ2F1c3NpYW4obG93cCBmbG9hdCB2YWx1ZSkKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgIC8vIE5vcm1hbCBkaXN0cmlidXRpb24gZm9ybXVsYSwgd2hlbiB0
aGUgbWVhbiBpcyAwIGFuZCB0aGUgc3RhbmRhcmQgZGV2aWF0aW9uIGlzIDEuCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBwb3coZSwgLXBvdyh2YWx1ZSwgMi4pIC8gMi4pIC8gKHNxcnQoMi4g
KiBwaSkpOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB1bmlmb3JtIGZsb2F0
IHVfZ2F1c3NpYW5LZXJuZWxbR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEhdOwogCiAgICAgICAg
ICAgICAgICAgbG93cCBmbG9hdCBzYW1wbGVBbHBoYShmbG9hdCByYWRpdXMpCiAgICAgICAgICAg
ICAgICAgewpAQCAtNTM4LDE2ICs1MjYsMTMgQEAgU3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFu
ZGFyZEZpbHRlclByb2dyYW0oRmlsdGVyT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUKIAog
ICAgICAgICAgICAgICAgIGxvd3AgZmxvYXQgc2hhZG93Qmx1ckhvcml6b250YWwoKQogICAgICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbm9ybWFsIGRpc3Ry
aWJ1dGlvbiBvZiAyMCB2YWx1ZXMgYmV0d2VlbiAtMiBhbmQgMi4KLSAgICAgICAgICAgICAgICAg
ICAgZmxvYXQgdG90YWwgPSAwLjsKLSAgICAgICAgICAgICAgICAgICAgZmxvYXQgdG90YWxXZWln
aHQgPSAwLjsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChmbG9hdCBpID0gLTIuOyBpIDw9IDIu
OyBpICs9IC4yKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB3ZWlnaHQgPSBnYXVz
c2lhbihpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsICs9IHNhbXBsZUFscGhhKGkp
ICogd2VpZ2h0OwotICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxXZWlnaHQgKz0gd2VpZ2h0
OworICAgICAgICAgICAgICAgICAgICBmbG9hdCB0b3RhbCA9IHNhbXBsZUFscGhhKDApICogdV9n
YXVzc2lhbktlcm5lbFswXTsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkg
PCBHQVVTU0lBTl9LRVJORUxfSEFMRl9XSURUSDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB0b3RhbCArPSBzYW1wbGVBbHBoYShmbG9hdChpKSAqIEdBVVNTSUFOX0tFUk5FTF9TVEVQ
KSAqIHVfZ2F1c3NpYW5LZXJuZWxbaV07CisgICAgICAgICAgICAgICAgICAgICAgICB0b3RhbCAr
PSBzYW1wbGVBbHBoYShmbG9hdCgtMSAqIGkpICogR0FVU1NJQU5fS0VSTkVMX1NURVApICogdV9n
YXVzc2lhbktlcm5lbFtpXTsKICAgICAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0b3RhbCAvIHRvdGFsV2VpZ2h0OworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdG90YWw7CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgdm9pZCBt
YWluKHZvaWQpCkBAIC01NjUsMTYgKzU1MCw3IEBAIFN0YW5kYXJkRmlsdGVyUHJvZ3JhbTo6U3Rh
bmRhcmRGaWx0ZXJQcm9ncmFtKEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlCiAg
ICAgICAgICAgICAgICAgdW5pZm9ybSBsb3dwIHZlYzQgdV9zaGFkb3dDb2xvcjsKICAgICAgICAg
ICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmU7CiAgICAgICAgICAgICAgICAgdW5p
Zm9ybSBzYW1wbGVyMkQgdV9jb250ZW50VGV4dHVyZTsKLQotICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBzaGFyZSBnYXVzc2lhbiBmb3JtdWxhIGJldHdlZW4gc2hhZGVycy4KLSAgICAgICAgICAg
ICAgICBjb25zdCBmbG9hdCBwaSA9IDMuMTQxNTk7Ci0gICAgICAgICAgICAgICAgY29uc3QgZmxv
YXQgZSA9IDIuNzE4Mjg7Ci0KLSAgICAgICAgICAgICAgICBsb3dwIGZsb2F0IGdhdXNzaWFuKGZs
b2F0IHZhbHVlKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgLy8gTm9y
bWFsIGRpc3RyaWJ1dGlvbiBmb3JtdWxhLCB3aGVuIHRoZSBtZWFuIGlzIDAgYW5kIHRoZSBzdGFu
ZGFyZCBkZXZpYXRpb24gaXMgMS4KLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvdyhlLCAt
cG93KHZhbHVlLCAyLikgLyAyLikgLyAoc3FydCgyLiAqIHBpKSk7Ci0gICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdV9nYXVzc2lhbktlcm5lbFtHQVVTU0lB
Tl9LRVJORUxfSEFMRl9XSURUSF07CiAKICAgICAgICAgICAgICAgICBsb3dwIGZsb2F0IHNhbXBs
ZUFscGhhKGZsb2F0IHIpCiAgICAgICAgICAgICAgICAgewpAQCAtNTg0LDE2ICs1NjAsMTMgQEAg
U3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpTdGFuZGFyZEZpbHRlclByb2dyYW0oRmlsdGVyT3BlcmF0
aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUKIAogICAgICAgICAgICAgICAgIGxvd3AgZmxvYXQgc2hh
ZG93Qmx1clZlcnRpY2FsKCkKICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIENyZWF0ZSBhIG5vcm1hbCBkaXN0cmlidXRpb24gb2YgMjAgdmFsdWVzIGJldHdlZW4gLTIg
YW5kIDIuCi0gICAgICAgICAgICAgICAgICAgIGZsb2F0IHRvdGFsID0gMC47Ci0gICAgICAgICAg
ICAgICAgICAgIGZsb2F0IHRvdGFsV2VpZ2h0ID0gMC47Ci0gICAgICAgICAgICAgICAgICAgIGZv
ciAoZmxvYXQgaSA9IC0yLjsgaSA8PSAyLjsgaSArPSAuMikgewotICAgICAgICAgICAgICAgICAg
ICAgICAgZmxvYXQgd2VpZ2h0ID0gZ2F1c3NpYW4oaSk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB0b3RhbCArPSBzYW1wbGVBbHBoYShpKSAqIHdlaWdodDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHRvdGFsV2VpZ2h0ICs9IHdlaWdodDsKKyAgICAgICAgICAgICAgICAgICAgZmxvYXQgdG90
YWwgPSBzYW1wbGVBbHBoYSgwKSAqIHVfZ2F1c3NpYW5LZXJuZWxbMF07CisgICAgICAgICAgICAg
ICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDwgR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEg7IGkr
KykgeworICAgICAgICAgICAgICAgICAgICAgICAgdG90YWwgKz0gc2FtcGxlQWxwaGEoZmxvYXQo
aSkgKiBHQVVTU0lBTl9LRVJORUxfU1RFUCkgKiB1X2dhdXNzaWFuS2VybmVsW2ldOworICAgICAg
ICAgICAgICAgICAgICAgICAgdG90YWwgKz0gc2FtcGxlQWxwaGEoZmxvYXQoLTEgKiBpKSAqIEdB
VVNTSUFOX0tFUk5FTF9TVEVQKSAqIHVfZ2F1c3NpYW5LZXJuZWxbaV07CiAgICAgICAgICAgICAg
ICAgICAgIH0KIAotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG90YWwgLyB0b3RhbFdlaWdo
dDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsOwogICAgICAgICAgICAgICAgIH0K
IAogICAgICAgICAgICAgICAgIGxvd3AgdmVjNCBzb3VyY2VPdmVyKGxvd3AgdmVjNCBzb3VyY2Us
IGxvd3AgdmVjNCBkZXN0aW5hdGlvbikKQEAgLTY1MCw5ICs2MjMsMTEgQEAgU3RhbmRhcmRGaWx0
ZXJQcm9ncmFtOjpTdGFuZGFyZEZpbHRlclByb2dyYW0oRmlsdGVyT3BlcmF0aW9uOjpPcGVyYXRp
b25UeXBlIHR5cGUKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkJM
VVI6CiAgICAgICAgIG1fdW5pZm9ybUxvY2F0aW9ucy5ibHVyLnJhZGl1cyA9IGdsR2V0VW5pZm9y
bUxvY2F0aW9uKHByb2dyYW1JRCwgInVfYmx1clJhZGl1cyIpOworICAgICAgICBtX3VuaWZvcm1M
b2NhdGlvbnMuYmx1ci5nYXVzc2lhbktlcm5lbCA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKHByb2dy
YW1JRCwgInVfZ2F1c3NpYW5LZXJuZWwiKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaWx0
ZXJPcGVyYXRpb246OkRST1BfU0hBRE9XOgogICAgICAgICBtX3VuaWZvcm1Mb2NhdGlvbnMuc2hh
ZG93LmJsdXJSYWRpdXMgPSBnbEdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtSUQsICJ1X3NoYWRv
d0JsdXJSYWRpdXMiKTsKKyAgICAgICAgbV91bmlmb3JtTG9jYXRpb25zLnNoYWRvdy5nYXVzc2lh
bktlcm5lbCA9IGdsR2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW1JRCwgInVfZ2F1c3NpYW5LZXJu
ZWwiKTsKICAgICAgICAgaWYgKCFwYXNzKQogICAgICAgICAgICAgbV91bmlmb3JtTG9jYXRpb25z
LnNoYWRvdy5vZmZzZXQgPSBnbEdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtSUQsICJ1X3NoYWRv
d09mZnNldCIpOwogICAgICAgICBlbHNlIHsKQEAgLTY3OCw2ICs2NTMsMzUgQEAgUGFzc1JlZlB0
cjxTdGFuZGFyZEZpbHRlclByb2dyYW0+IFN0YW5kYXJkRmlsdGVyUHJvZ3JhbTo6Y3JlYXRlKEZp
bHRlck9wZXJhdGlvbjoKICAgICByZXR1cm4gcHJvZ3JhbTsKIH0KIAorc3RhdGljIGlubGluZSBm
bG9hdCBnYXVzcyhmbG9hdCB4KQoreworICAgIHJldHVybiBleHAoLSh4ICogeCkgLyAyLik7Cit9
CisKK3N0YXRpYyBmbG9hdCogZ2F1c3NpYW5LZXJuZWwoKQoreworICAgIHN0YXRpYyBib29sIHBy
ZXBhcmVkID0gZmFsc2U7CisgICAgc3RhdGljIGZsb2F0IGtlcm5lbFtHQVVTU0lBTl9LRVJORUxf
SEFMRl9XSURUSF0gPSB7MCwgfTsKKworICAgIGlmIChwcmVwYXJlZCkKKyAgICAgICAgcmV0dXJu
IGtlcm5lbDsKKworICAgIGtlcm5lbFswXSA9IGdhdXNzKDApOworICAgIGZsb2F0IHN1bSA9IGtl
cm5lbFswXTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgR0FVU1NJQU5fS0VSTkVMX0hB
TEZfV0lEVEg7ICsraSkgeworICAgICAgICBrZXJuZWxbaV0gPSBnYXVzcyhpICogR0FVU1NJQU5f
S0VSTkVMX1NURVApOworICAgICAgICBzdW0gKz0gMiAqIGtlcm5lbFtpXTsKKyAgICB9CisKKyAg
ICAvLyBOb3JtYWxpemUgdGhlIGtlcm5lbAorICAgIGZsb2F0IHNjYWxlID0gMSAvIHN1bTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR0FVU1NJQU5fS0VSTkVMX0hBTEZfV0lEVEg7ICsr
aSkKKyAgICAgICAga2VybmVsW2ldICo9IHNjYWxlOworCisgICAgcHJlcGFyZWQgPSB0cnVlOwor
ICAgIHJldHVybiBrZXJuZWw7Cit9CisKIHZvaWQgU3RhbmRhcmRGaWx0ZXJQcm9ncmFtOjpwcmVw
YXJlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgb3BlcmF0aW9uLCB1bnNpZ25lZCBwYXNzLCBjb25z
dCBJbnRTaXplJiBzaXplLCBHTHVpbnQgY29udGVudFRleHR1cmUpCiB7CiAgICAgZ2xVc2VQcm9n
cmFtKG1faWQpOwpAQCAtNzA1LDYgKzcwOSw3IEBAIHZvaWQgU3RhbmRhcmRGaWx0ZXJQcm9ncmFt
OjpwcmVwYXJlKGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgb3BlcmF0aW9uLCB1bnNpZ25lZCBwCiAg
ICAgICAgICAgICByYWRpdXMuc2V0V2lkdGgoZmxvYXRWYWx1ZUZvckxlbmd0aChibHVyLnN0ZERl
dmlhdGlvbigpLCBzaXplLndpZHRoKCkpIC8gc2l6ZS53aWR0aCgpKTsKIAogICAgICAgICBnbFVu
aWZvcm0yZihtX3VuaWZvcm1Mb2NhdGlvbnMuYmx1ci5yYWRpdXMsIHJhZGl1cy53aWR0aCgpLCBy
YWRpdXMuaGVpZ2h0KCkpOworICAgICAgICBnbFVuaWZvcm0xZnYobV91bmlmb3JtTG9jYXRpb25z
LmJsdXIuZ2F1c3NpYW5LZXJuZWwsIEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRILCBnYXVzc2lh
bktlcm5lbCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgRmlsdGVyT3BlcmF0
aW9uOjpEUk9QX1NIQURPVzogewpAQCAtNzE0LDEwICs3MTksMTIgQEAgdm9pZCBTdGFuZGFyZEZp
bHRlclByb2dyYW06OnByZXBhcmUoY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvcGVyYXRpb24sIHVu
c2lnbmVkIHAKICAgICAgICAgICAgIC8vIEZpcnN0IHBhc3M6IHZlcnRpY2FsIGFscGhhIGJsdXIu
CiAgICAgICAgICAgICBnbFVuaWZvcm0yZihtX3VuaWZvcm1Mb2NhdGlvbnMuc2hhZG93Lm9mZnNl
dCwgZmxvYXQoc2hhZG93LmxvY2F0aW9uKCkueCgpKSAvIGZsb2F0KHNpemUud2lkdGgoKSksIGZs
b2F0KHNoYWRvdy5sb2NhdGlvbigpLnkoKSkgLyBmbG9hdChzaXplLmhlaWdodCgpKSk7CiAgICAg
ICAgICAgICBnbFVuaWZvcm0xZihtX3VuaWZvcm1Mb2NhdGlvbnMuc2hhZG93LmJsdXJSYWRpdXMs
IHNoYWRvdy5zdGREZXZpYXRpb24oKSAvIGZsb2F0KHNpemUud2lkdGgoKSkpOworICAgICAgICAg
ICAgZ2xVbmlmb3JtMWZ2KG1fdW5pZm9ybUxvY2F0aW9ucy5zaGFkb3cuZ2F1c3NpYW5LZXJuZWws
IEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRILCBnYXVzc2lhbktlcm5lbCgpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAvLyBTZWNvbmQgcGFzczog
d2UgbmVlZCB0aGUgc2hhZG93IGNvbG9yIGFuZCB0aGUgY29udGVudCB0ZXh0dXJlIGZvciBjb21w
b3NpdGluZy4KICAgICAgICAgICAgIGdsVW5pZm9ybTFmKG1fdW5pZm9ybUxvY2F0aW9ucy5zaGFk
b3cuYmx1clJhZGl1cywgc2hhZG93LnN0ZERldmlhdGlvbigpIC8gZmxvYXQoc2l6ZS5oZWlnaHQo
KSkpOworICAgICAgICAgICAgZ2xVbmlmb3JtMWZ2KG1fdW5pZm9ybUxvY2F0aW9ucy5zaGFkb3cu
Z2F1c3NpYW5LZXJuZWwsIEdBVVNTSUFOX0tFUk5FTF9IQUxGX1dJRFRILCBnYXVzc2lhbktlcm5l
bCgpKTsKICAgICAgICAgICAgIGdsQWN0aXZlVGV4dHVyZShHTF9URVhUVVJFMSk7CiAgICAgICAg
ICAgICBnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIGNvbnRlbnRUZXh0dXJlKTsKICAgICAg
ICAgICAgIGdsVW5pZm9ybTFpKG1fdW5pZm9ybUxvY2F0aW9ucy5zaGFkb3cuY29udGVudFRleHR1
cmUsIDEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaAppbmRleCAzZjBi
NDg5Li4wZjIyZWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaApA
QCAtOTIsNiArOTIsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIHN0cnVjdCB7CiAgICAgICAgICAg
ICBHTHVpbnQgcmFkaXVzOworICAgICAgICAgICAgR0x1aW50IGdhdXNzaWFuS2VybmVsOwogICAg
ICAgICB9IGJsdXI7CiAKICAgICAgICAgc3RydWN0IHsKQEAgLTk5LDYgKzEwMCw3IEBAIHByaXZh
dGU6CiAgICAgICAgICAgICBHTHVpbnQgY29sb3I7CiAgICAgICAgICAgICBHTHVpbnQgb2Zmc2V0
OwogICAgICAgICAgICAgR0x1aW50IGNvbnRlbnRUZXh0dXJlOworICAgICAgICAgICAgR0x1aW50
IGdhdXNzaWFuS2VybmVsOwogICAgICAgICB9IHNoYWRvdzsKICAgICB9IG1fdW5pZm9ybUxvY2F0
aW9uczsKIH07Ci0tIAoxLjcuOS41Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>