<?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>28141</bug_id>
          
          <creation_ts>2009-08-10 02:48:23 -0700</creation_ts>
          <short_desc>SVG Filter feGaussianBlur implementation is missing</short_desc>
          <delta_ts>2014-05-12 05:54:35 -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>SVG</component>
          <version>525.x (Safari 3.1)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>68469</blocked>
    
    <blocked>26389</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>jeffschiller</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>138622</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-08-10 02:48:23 -0700</bug_when>
    <thetext>SVG Filter feGaussianBlur implementation is missing.

Details for implementing:

The Specification http://www.w3.org/TR/SVG11/filters.html#feGaussianBlur give an alternative for a real gaussian blur, if stdDeviation is &gt;= 2.0. Many other SVG Implementations take this alternative for every stdDeviation &gt;= 0. It looks like even FireFox just uses the alternative. We might follow this becaues most SVG&apos;s with gaussianBlur take a stdDeviation &gt; 2 and it reduces the complexity of calculation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140192</commentid>
    <comment_count>1</comment_count>
      <attachid>34824</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-08-14 03:18:43 -0700</bug_when>
    <thetext>Created attachment 34824
naive feGaussian-blur

A very simlpe feGaussian-blur with box blur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140554</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-08-16 06:13:52 -0700</bug_when>
    <thetext>calculateDrawingIntRect will be introduced by bug 28133 , the last feBlend patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152180</commentid>
    <comment_count>3</comment_count>
      <attachid>40597</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-10-04 11:15:57 -0700</bug_when>
    <thetext>Created attachment 40597
feGaussianBlur implementation

Implementation of feGaussianBlur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152315</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-05 09:17:15 -0700</bug_when>
    <thetext>This looks like a patch a graphics person like Oliver should comment on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152591</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-10-05 22:42:35 -0700</bug_when>
    <thetext>Nikolas asked why I call boxBlur twice in the for loop. I would like to explain it for the reviewer. The first call is for the horizontal bluring, the second call is for the vertical bluring. This is the same like a bluring with a complete kernel, but faster.
The reason for bluring the image 3 times is, that the spec want us to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152594</commentid>
    <comment_count>6</comment_count>
      <attachid>40597</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-05 23:01:29 -0700</bug_when>
    <thetext>Comment on attachment 40597
feGaussianBlur implementation

There are a few places where blurring is misspelled as bluring.

double(sum / dx) seems bogus -- both sum and dx are integer types, so you&apos;re just doing an integer divide and casting to double, which is either superfluous, or not what you intended to do.

What happens if i apply this filter to a 3x3 image?  it looks to me like there&apos;s potential for overflow...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152684</commentid>
    <comment_count>7</comment_count>
      <attachid>40713</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-10-06 05:40:23 -0700</bug_when>
    <thetext>Created attachment 40713
feGaussianBlur implementation

I changed the double conversion to unsigned char. And fixed the writing of blur(r)ing :-). I also missed an early return, if one dimension of the kernel has the size of 0.

You were right with the overflow. There is a overflow on filling the kernel if the kernel size is bigger than the width/height of the effect. I double checked the rest of the code and didn&apos;t see further problems. I calculated some examples manualy (e.g. A kernel with 3x3) and it works as expected. An overflow on the blurring itself seems to me impossible, since I check if the next or previous value is not catched if it isn&apos;t in the current row/column (between 0 and width/height of a column/row).

I compared many other examples with FF and Opera and did not see any differences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152950</commentid>
    <comment_count>8</comment_count>
      <attachid>40762</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-10-06 22:07:38 -0700</bug_when>
    <thetext>Created attachment 40762
feGaussianBlur implementation

&gt; +                if (x + dxRight &lt; effectHeight)

mixed up effectHeight with effectWidth here. So it just works if effectHeight == effectWidth. This patch fixes this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152966</commentid>
    <comment_count>9</comment_count>
      <attachid>40762</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-10-06 23:38:40 -0700</bug_when>
    <thetext>Comment on attachment 40762
feGaussianBlur implementation

Code looks good, but i want additional tests for filtering 0x0, x*y with x!=y, and x*y with x&lt;3, y &gt; 3 and vice versa.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153000</commentid>
    <comment_count>10</comment_count>
      <attachid>40777</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-10-07 02:35:30 -0700</bug_when>
    <thetext>Created attachment 40777
feGaussianBlur implementation

added test with different kernel sizes. No change to the source.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>153751</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-10-09 13:53:29 -0700</bug_when>
    <thetext>landed in r49402.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34824</attachid>
            <date>2009-08-14 03:18:43 -0700</date>
            <delta_ts>2009-10-04 11:15:57 -0700</delta_ts>
            <desc>naive feGaussian-blur</desc>
            <filename>feGaussian.patch</filename>
            <type>text/plain</type>
            <size>6541</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVHYXVzc2lh
bkJsdXIuY3BwCShyZXZpc2lvbiA0NzEwOSkKKysrIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRkVHYXVzc2lhbkJsdXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAog
ICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9i
IEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAgICAgICAgICAgICAgICAgIDIwMDUgRXJpYyBTZWlkZWwg
PGVyaWNAd2Via2l0Lm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDkgRGlyayBTY2h1bHplIDxr
cml0QHdlYmtpdC5vcmc+CiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzLDggKzI0LDEzIEBACiAK
ICNpZiBFTkFCTEUoU1ZHKSAmJiBFTkFCTEUoRklMVEVSUykKICNpbmNsdWRlICJTVkdGRUdhdXNz
aWFuQmx1ci5oIgotI2luY2x1ZGUgIlNWR1JlbmRlclRyZWVBc1RleHQuaCIKKworI2luY2x1ZGUg
IkNhbnZhc1BpeGVsQXJyYXkuaCIKICNpbmNsdWRlICJGaWx0ZXIuaCIKKyNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJbWFnZURhdGEuaCIKKyNpbmNsdWRlICJTVkdSZW5k
ZXJUcmVlQXNUZXh0LmgiCisjaW5jbHVkZSA8bWF0aC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTQxLDI4ICs0Nyw5OCBAQCBQYXNzUmVmUHRyPEZFR2F1c3NpYW5CbHVyPiBGRUdhdXNz
aWFuQmx1CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGRUdhdXNzaWFuQmx1cihpbiwgeCwgeSkp
OwogfQogCi1mbG9hdCBGRUdhdXNzaWFuQmx1cjo6c3RkRGV2aWF0aW9uWCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1feDsKLX0KLQotdm9pZCBGRUdhdXNzaWFuQmx1cjo6c2V0U3RkRGV2aWF0aW9u
WChmbG9hdCB4KQotewotICAgIG1feCA9IHg7Ci19Ci0KLWZsb2F0IEZFR2F1c3NpYW5CbHVyOjpz
dGREZXZpYXRpb25ZKCkgY29uc3QKKy8qdm9pZCBib3hCbHVySChQYXNzUmVmUHRyPENhbnZhc1Bp
eGVsQXJyYXk+JiBzcmNQaXhlbEFycmF5LCBQYXNzUmVmUHRyPEltYWdlRGF0YT4mIGltYWdlRGF0
YSwgdW5zaWduZWQgc2R4KQogewotICAgIHJldHVybiBtX3k7Ci19CisgICAgaW50IHN1bVs0XTsK
KyAgICBzdW1bMF0gPSBzdW1bMV0gPSBzdW1bMl0gPSBzdW1bM10gPSAwOworICAgIHVuc2lnbmVk
IGJveFdpZHRoID0gc2R4ICogNDsKKyAgICB1bnNpZ25lZCBjdXJyZW50T2Zmc2V0ID0gZmxvb3Io
c2R4IC8gMikgKiA0OworICAgIGZvciAodW5zaWduZWQgcGl4ZWxPZmZzZXQgPSAwOyBwaXhlbE9m
ZnNldCA8IHNyY1BpeGVsQXJyYXktPmxlbmd0aCgpOyBwaXhlbE9mZnNldCsrKSB7CisgICAgICAg
IHVuc2lnbmVkIHBpeGVsQnl0ZU9mZnNldCA9IHBpeGVsT2Zmc2V0ICogNDsKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBjaGFubmVsID0gMDsgY2hhbm5lbCA8IDQ7ICsrY2hhbm5lbCkgeworICAgICAg
ICAgICAgdW5zaWduZWQgY2hhciBjTmV3ID0gMCwgY09sZCA9IDA7CisgICAgICAgICAgICBzcmNQ
aXhlbEFycmF5LT5nZXQocGl4ZWxCeXRlT2Zmc2V0ICsgY2hhbm5lbCwgY05ldyk7CisgICAgICAg
ICAgICBzcmNQaXhlbEFycmF5LT5nZXQocGl4ZWxCeXRlT2Zmc2V0IC0gYm94V2lkdGggKyBjaGFu
bmVsLCBjT2xkKTsKKyAgICAgICAgICAgIHN1bVtjaGFubmVsXSArPSBjTmV3IC0gY09sZDsKKyAg
ICAgICAgICAgIGRvdWJsZSByZXN1bHQgPSBzdW1bY2hhbm5lbF0gLyBzZHg7IAorICAgICAgICAg
ICAgaW1hZ2VEYXRhLT5kYXRhKCktPnNldChwaXhlbEJ5dGVPZmZzZXQgLSBjdXJyZW50T2Zmc2V0
ICsgY2hhbm5lbCwgcmVzdWx0KTsKKyAgICAgICAgfQorICAgIH0KK30qLworCit2b2lkIGJveEJs
dXIoUGFzc1JlZlB0cjxDYW52YXNQaXhlbEFycmF5PiYgc3JjUGl4ZWxBcnJheSwgUGFzc1JlZlB0
cjxDYW52YXNQaXhlbEFycmF5PiYgdGVtcFBpeGVsQXJyYXksIHVuc2lnbmVkIHNkeCwgdW5zaWdu
ZWQgc2R5LCBjb25zdCBJbnRSZWN0JiBlZmZlY3RSZWN0KQoreworICAgIHVuc2lnbmVkIHNkeEhh
bGYgPSBmbG9vcihzZHggLyAyKTsKKyAgICB1bnNpZ25lZCBzZHlIYWxmID0gZmxvb3Ioc2R5IC8g
Mik7CisgICAgdW5zaWduZWQgY3VycmVudE9mZnNldCA9IHNkeEhhbGYgKiA0OworICAgIGludCBs
aW5lID0gNCAqIGVmZmVjdFJlY3Qud2lkdGgoKTsKKworICAgIC8vIGhvcml6b250YWwgYmx1cmlu
ZworICAgIC8vaW50IHN1bVs0XTsgLy8gc3VtIG9mIGNvbG9yIHZhbHVlcyBiYXNlZCBvbiB0aGUg
a2VybmVsIHdpZHRoIGZvciBldmVyeSBjaGFubmVsCisgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBl
ZmZlY3RSZWN0LmhlaWdodCgpOyArK3kpIHsKKyAgICAgICAgaW50IHJvdyA9IGxpbmUgKiB5Owor
ICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IGVmZmVjdFJlY3Qud2lkdGgoKTsgKyt4KSB7Cisg
ICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGNoYW5uZWwgPSAwOyBjaGFubmVsIDwgNDsgKytjaGFu
bmVsKSB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgcGl4ZWxCeXRlT2Zmc2V0ID0geCAqIDQg
KyByb3cgKyBjaGFubmVsOworICAgICAgICAgICAgICAgIGludCBzdW0gPSAwOworICAgICAgICAg
ICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZHg7IGkrKykgeworICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjaGFyIGMgPSAwOworICAgICAgICAgICAgICAgICAgICBpbnQgY3Vy
cmVudFBvcyA9IHBpeGVsQnl0ZU9mZnNldCAtIGN1cnJlbnRPZmZzZXQgKyBpICogNDsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRQb3MgPj0gIHJvdyAmJiBjdXJyZW50UG9zIDwgcm93
ICsgbGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNyY1BpeGVsQXJyYXktPmdldChjdXJy
ZW50UG9zLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgc3VtICs9IGM7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHRlbXBQaXhlbEFycmF5LT5zZXQocGl4ZWxCeXRlT2Zmc2V0
LCBkb3VibGUoc3VtIC8gc2R4KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisK
KyAgICAvLyB2ZXJ0aWNhbCBibHVyaW5nCisgICAgY3VycmVudE9mZnNldCA9IGxpbmUgKiBzZHlI
YWxmOworICAgIGZvciAoaW50IHggPSAwOyB4IDwgZWZmZWN0UmVjdC53aWR0aCgpOyArK3gpIHsK
KyAgICAgICAgaW50IGNvbHVtbiA9IDQgKiB4OworICAgICAgICBmb3IgKGludCB5ID0gMDsgeSA8
IGVmZmVjdFJlY3QuaGVpZ2h0KCk7ICsreSkgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBj
aGFubmVsID0gMDsgY2hhbm5lbCA8IDQ7ICsrY2hhbm5lbCkgeworICAgICAgICAgICAgICAgIHVu
c2lnbmVkIHBpeGVsQnl0ZU9mZnNldCA9IHkgKiBsaW5lICsgY29sdW1uICsgY2hhbm5lbDsKKyAg
ICAgICAgICAgICAgICBpbnQgc3VtID0gMDsKKyAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgc2R5OyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hh
ciBjID0gMDsKKyAgICAgICAgICAgICAgICAgICAgaW50IGN1cnJlbnRQb3MgPSBwaXhlbEJ5dGVP
ZmZzZXQgLSBjdXJyZW50T2Zmc2V0ICsgaSAqIGxpbmU7CisgICAgICAgICAgICAgICAgICAgIGlm
IChjdXJyZW50UG9zID49ICBjb2x1bW4gJiYgY3VycmVudFBvcyA8IGNvbHVtbiArIGxpbmUgKiBl
ZmZlY3RSZWN0LmhlaWdodCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFBpeGVsQXJy
YXktPmdldChjdXJyZW50UG9zLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgc3VtICs9IGM7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNyY1BpeGVsQXJyYXktPnNldChwaXhl
bEJ5dGVPZmZzZXQsIGRvdWJsZShzdW0gLyBzZHkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KK30KKwordm9pZCBGRUdhdXNzaWFuQmx1cjo6YXBwbHkoRmlsdGVyKiBmaWx0ZXIp
Cit7CisgICAgbV9pbi0+YXBwbHkoZmlsdGVyKTsKKyAgICBpZiAoIW1faW4tPnJlc3VsdEltYWdl
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZ2V0RWZmZWN0Q29udGV4dCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICB1bnNpZ25lZCBzZHggPSBmbG9vcihtX3ggKiAzICogc3FydCgy
ICogTV9QSSkgLyA0LmYgKyAwLjVmKTsKKyAgICB1bnNpZ25lZCBzZHkgPSBmbG9vcihtX3kgKiAz
ICogc3FydCgyICogTV9QSSkgLyA0LmYgKyAwLjVmKTsKKworICAgIEludFJlY3QgZWZmZWN0RHJh
d2luZ1JlY3QgPSBjYWxjdWxhdGVEcmF3aW5nSW50UmVjdChtX2luLT5zdWJSZWdpb24oKSk7Cisg
ICAgUGFzc1JlZlB0cjxJbWFnZURhdGE+IHJlc3VsdEltYWdlRGF0YShtX2luLT5yZXN1bHRJbWFn
ZSgpLT5nZXRQcmVtdWx0aXBsaWVkSW1hZ2VEYXRhKGVmZmVjdERyYXdpbmdSZWN0KSk7CisgICAg
UGFzc1JlZlB0cjxDYW52YXNQaXhlbEFycmF5PiBzcmNQaXhlbEFycmF5KHJlc3VsdEltYWdlRGF0
YS0+ZGF0YSgpKTsKKworICAgIEludFJlY3QgaW1hZ2VSZWN0KEludFBvaW50KCksIHJlc3VsdElt
YWdlKCktPnNpemUoKSk7CisgICAgUGFzc1JlZlB0cjxJbWFnZURhdGE+IHRlbXBJbWFnZURhdGEg
PSBJbWFnZURhdGE6OmNyZWF0ZShpbWFnZVJlY3Qud2lkdGgoKSwgaW1hZ2VSZWN0LmhlaWdodCgp
KTsKKyAgICBQYXNzUmVmUHRyPENhbnZhc1BpeGVsQXJyYXk+IHRlbXBQaXhlbEFycmF5KHRlbXBJ
bWFnZURhdGEtPmRhdGEoKSk7CisKKyAgICBib3hCbHVyKHNyY1BpeGVsQXJyYXksIHRlbXBQaXhl
bEFycmF5LCBzZHgsIHNkeSwgaW1hZ2VSZWN0KTsKKyAgICBib3hCbHVyKHNyY1BpeGVsQXJyYXks
IHRlbXBQaXhlbEFycmF5LCBzZHgsIHNkeSwgaW1hZ2VSZWN0KTsKKyAgICBib3hCbHVyKHNyY1Bp
eGVsQXJyYXksIHRlbXBQaXhlbEFycmF5LCBzZHgsIHNkeSwgaW1hZ2VSZWN0KTsKIAotdm9pZCBG
RUdhdXNzaWFuQmx1cjo6c2V0U3RkRGV2aWF0aW9uWShmbG9hdCB5KQotewotICAgIG1feSA9IHk7
Ci19Ci0KLXZvaWQgRkVHYXVzc2lhbkJsdXI6OmFwcGx5KEZpbHRlciopCi17CisgICAgcmVzdWx0
SW1hZ2UoKS0+cHV0UHJlbXVsdGlwbGllZEltYWdlRGF0YShyZXN1bHRJbWFnZURhdGEuZ2V0KCks
IGltYWdlUmVjdCwgSW50UG9pbnQoKSk7CiB9CiAKIHZvaWQgRkVHYXVzc2lhbkJsdXI6OmR1bXAo
KQpAQCAtNzMsNyArMTQ5LDcgQEAgVGV4dFN0cmVhbSYgRkVHYXVzc2lhbkJsdXI6OmV4dGVybmFs
UmVwcgogewogICAgIHRzIDw8ICJbdHlwZT1HQVVTU0lBTi1CTFVSXSAiOwogICAgIEZpbHRlckVm
ZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0cyk7Ci0gICAgdHMgPDwgIiBbc3RkIGRldi4g
eD0iIDw8IHN0ZERldmlhdGlvblgoKSA8PCAiIHk9IiA8PCBzdGREZXZpYXRpb25ZKCkgPDwgIl0i
OworICAgIHRzIDw8ICIgW3N0ZCBkZXYuIHg9IiA8PCBtX3ggPDwgIiB5PSIgPDwgbV95IDw8ICJd
IjsKICAgICByZXR1cm4gdHM7CiB9CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRkVHYXVzc2lhbkJsdXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9ncmFwaGlj
cy9maWx0ZXJzL1NWR0ZFR2F1c3NpYW5CbHVyLmgJKHJldmlzaW9uIDQ3MTA5KQorKysgV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUdhdXNzaWFuQmx1ci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiwxMiArMzIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRUdhdXNzaWFuQmx1cj4gY3JlYXRlKEZpbHRlckVmZmVj
dCosIGNvbnN0IGZsb2F0JiwgY29uc3QgZmxvYXQmKTsKIAotICAgICAgICBmbG9hdCBzdGREZXZp
YXRpb25YKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0U3RkRGV2aWF0aW9uWChmbG9hdCk7Ci0K
LSAgICAgICAgZmxvYXQgc3RkRGV2aWF0aW9uWSgpIGNvbnN0OwotICAgICAgICB2b2lkIHNldFN0
ZERldmlhdGlvblkoZmxvYXQpOwotCiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHVuaXRlQ2hp
bGRFZmZlY3RTdWJyZWdpb25zKEZpbHRlciogZmlsdGVyKSB7IHJldHVybiBjYWxjdWxhdGVVbmlv
bk9mQ2hpbGRFZmZlY3RTdWJyZWdpb25zKGZpbHRlciwgbV9pbi5nZXQoKSk7IH0KICAgICAgICAg
dm9pZCBhcHBseShGaWx0ZXIqKTsKICAgICAgICAgdm9pZCBkdW1wKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40597</attachid>
            <date>2009-10-04 11:15:57 -0700</date>
            <delta_ts>2009-10-06 05:40:23 -0700</delta_ts>
            <desc>feGaussianBlur implementation</desc>
            <filename>feGaussian3.patch</filename>
            <type>text/plain</type>
            <size>6107</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTA3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDktMTAtMDQgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
RmlsdGVyIGZlR2F1c3NpYW5CbHVyIGltcGxlbWVudGF0aW9uIGlzIG1pc3NpbmcKKyAgICAgICAg
W2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODE0MV0KKworICAgICAg
ICBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHYXVzc2lhbkJsdXIgZmlsdGVyIGZvciBT
VkcuCisKKyAgICAgICAgVGhlcmUgaXMgYWxyZWFkeSBhIHRlc3QgZm9yIGZlR2F1c3NpYW5CbHVy
CisgICAgICAgIFRlc3Q6IHN2Zy9XM0MtU1ZHLTEuMS9maWx0ZXJzLWdhdXNzLTAxLWItdzNjLnN2
ZworCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpGaWx0ZXJFZmZlY3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmlzQWxwaGFJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJFZmZlY3Q6OnNldElzQWxwaGFJbWFnZSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Ym94Qmx1cik6
CisgICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6YXBwbHkpOgorCiAyMDA5LTEwLTA0
ICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBH
dXN0b3ZhIE5vcm9uaGEuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyRWZmZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAkocmV2aXNpb24gNDkwMzMpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsNyBAQCBGaWx0ZXJFZmZlY3Q6OkZpbHRlckVmZmVjdCgpCiAgICAgLCBtX2hh
c1koZmFsc2UpCiAgICAgLCBtX2hhc1dpZHRoKGZhbHNlKQogICAgICwgbV9oYXNIZWlnaHQoZmFs
c2UpCisgICAgLCBtX2FscGhhSW1hZ2UoZmFsc2UpCiB7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgJKHJldmlzaW9uIDQ5
MDMzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIEZsb2F0UmVjdCBjYWxjdWxhdGVEcmF3aW5nUmVjdChjb25zdCBGbG9hdFJlY3QmKTsK
ICAgICAgICAgSW50UmVjdCBjYWxjdWxhdGVEcmF3aW5nSW50UmVjdChjb25zdCBGbG9hdFJlY3Qm
KTsKIAorICAgICAgICAvLyBibGFjayBpbWFnZSB3aXRoIGRpZmZlcmVudCBhbHBoYSB2YWx1ZXMK
KyAgICAgICAgYm9vbCBpc0FscGhhSW1hZ2UoKSB7IHJldHVybiBtX2FscGhhSW1hZ2U7IH0KKyAg
ICAgICAgdm9pZCBzZXRJc0FscGhhSW1hZ2UoYm9vbCBhbHBoYUltYWdlKSB7IG1fYWxwaGFJbWFn
ZSA9IGFscGhhSW1hZ2U7IH0KKwogICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB1bml0ZUNoaWxk
RWZmZWN0U3VicmVnaW9ucyhGaWx0ZXIqIGZpbHRlcikgeyByZXR1cm4gZmlsdGVyLT5maWx0ZXJS
ZWdpb24oKTsgfQogICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBjYWxjdWxhdGVFZmZlY3RSZWN0
KEZpbHRlciopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYXBwbHkoRmlsdGVyKikgPSAwOwpAQCAt
MTAyLDYgKzEwNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2hhc1dp
ZHRoIDogMTsKICAgICAgICAgYm9vbCBtX2hhc0hlaWdodCA6IDE7CiAKKyAgICAgICAgYm9vbCBt
X2FscGhhSW1hZ2U7CisKICAgICAgICAgRmxvYXRSZWN0IG1fc3ViUmVnaW9uOwogICAgICAgICBG
bG9hdFJlY3QgbV91bmlvbk9mQ2hpbGRFZmZlY3RTdWJyZWdpb25zOwogCkluZGV4OiBXZWJDb3Jl
L3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFR2F1c3NpYW5CbHVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFR2F1c3NpYW5CbHVyLmNwcAkocmV2
aXNpb24gNDkwMzMpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFR2F1c3Np
YW5CbHVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAgICBDb3B5cmlnaHQg
KEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5u
QGtkZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAgICAgICAgICAgICAgICAgICAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5v
cmc+CisgICAgICAgICAgICAgICAgICAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3Jn
PgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw4ICsyNCwxMyBAQAogCiAjaWYgRU5BQkxFKFNW
RykgJiYgRU5BQkxFKEZJTFRFUlMpCiAjaW5jbHVkZSAiU1ZHRkVHYXVzc2lhbkJsdXIuaCIKLSNp
bmNsdWRlICJTVkdSZW5kZXJUcmVlQXNUZXh0LmgiCisKKyNpbmNsdWRlICJDYW52YXNQaXhlbEFy
cmF5LmgiCiAjaW5jbHVkZSAiRmlsdGVyLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CisjaW5jbHVkZSAiSW1hZ2VEYXRhLmgiCisjaW5jbHVkZSAiU1ZHUmVuZGVyVHJlZUFzVGV4dC5o
IgorI2luY2x1ZGUgPG1hdGguaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02MSw4ICs2
Nyw2NCBAQCB2b2lkIEZFR2F1c3NpYW5CbHVyOjpzZXRTdGREZXZpYXRpb25ZKGZsCiAgICAgbV95
ID0geTsKIH0KIAotdm9pZCBGRUdhdXNzaWFuQmx1cjo6YXBwbHkoRmlsdGVyKikKK3ZvaWQgYm94
Qmx1cihDYW52YXNQaXhlbEFycmF5KiYgc3JjUGl4ZWxBcnJheSwgQ2FudmFzUGl4ZWxBcnJheSom
IGRzdFBpeGVsQXJyYXksCisgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGR4LCBpbnQgc3RyaWRl
LCBpbnQgc3RyaWRlTGluZSwgaW50IGVmZmVjdFdpZHRoLCBpbnQgZWZmZWN0SGVpZ2h0LCBib29s
IGFscGhhSW1hZ2UpCiB7CisgICAgaW50IGR4TGVmdCA9IHN0YXRpY19jYXN0PGludD4oZmxvb3Io
ZHggLyAyKSk7CisgICAgaW50IGR4UmlnaHQgPSBkeCAtIGR4TGVmdDsKKworICAgIGZvciAoaW50
IHkgPSAwOyB5IDwgZWZmZWN0SGVpZ2h0OyArK3kpIHsKKyAgICAgICAgaW50IGxpbmUgPSB5ICog
c3RyaWRlTGluZTsKKyAgICAgICAgZm9yIChpbnQgY2hhbm5lbCA9IDM7IGNoYW5uZWwgPj0gMDsg
LS1jaGFubmVsKSB7CisgICAgICAgICAgICBpbnQgc3VtID0gMDsKKyAgICAgICAgICAgIC8vIGZp
bGwgdGhlIGtlcm5lbAorICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBkeFJpZ2h0OyAr
K2kpCisgICAgICAgICAgICAgICAgc3VtICs9IHNyY1BpeGVsQXJyYXktPmdldChsaW5lICsgaSAq
IHN0cmlkZSArIGNoYW5uZWwpOworCisgICAgICAgICAgICAvLyBibHVyaW5nCisgICAgICAgICAg
ICBmb3IgKGludCB4ID0gMDsgeCA8IGVmZmVjdFdpZHRoOyArK3gpIHsKKyAgICAgICAgICAgICAg
ICBpbnQgcGl4ZWxCeXRlT2Zmc2V0ID0gbGluZSArIHggKiBzdHJpZGUgKyBjaGFubmVsOworICAg
ICAgICAgICAgICAgIGRzdFBpeGVsQXJyYXktPnNldChwaXhlbEJ5dGVPZmZzZXQsIGRvdWJsZShz
dW0gLyBkeCkpOworICAgICAgICAgICAgICAgIGlmICh4ID49IGR4TGVmdCkKKyAgICAgICAgICAg
ICAgICAgICAgc3VtIC09IHNyY1BpeGVsQXJyYXktPmdldChwaXhlbEJ5dGVPZmZzZXQgLSBkeExl
ZnQgKiBzdHJpZGUpOworICAgICAgICAgICAgICAgIGlmICh4ICsgZHhSaWdodCA8IGVmZmVjdEhl
aWdodCkKKyAgICAgICAgICAgICAgICAgICAgc3VtICs9IHNyY1BpeGVsQXJyYXktPmdldChwaXhl
bEJ5dGVPZmZzZXQgKyBkeFJpZ2h0ICogc3RyaWRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChhbHBoYUltYWdlKSAvLyBTb3VyY2UgaW1hZ2UgaXMgYmxhY2ssIGl0IGp1c3QgaGFz
IGRpZmZlcmVudCBhbHBoYSB2YWx1ZXMKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KK30KKwordm9pZCBGRUdhdXNzaWFuQmx1cjo6YXBwbHkoRmlsdGVyKiBmaWx0ZXIp
Cit7CisgICAgbV9pbi0+YXBwbHkoZmlsdGVyKTsKKyAgICBpZiAoIW1faW4tPnJlc3VsdEltYWdl
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZ2V0RWZmZWN0Q29udGV4dCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBzZXRJc0FscGhhSW1hZ2UobV9pbi0+aXNBbHBoYUltYWdlKCkp
OworCisgICAgdW5zaWduZWQgc2R4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZsb29yKG1feCAq
IDMgKiBzcXJ0KDIgKiBNX1BJKSAvIDQuZiArIDAuNWYpKTsKKyAgICB1bnNpZ25lZCBzZHkgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZmxvb3IobV95ICogMyAqIHNxcnQoMiAqIE1fUEkpIC8gNC5m
ICsgMC41ZikpOworCisgICAgSW50UmVjdCBlZmZlY3REcmF3aW5nUmVjdCA9IGNhbGN1bGF0ZURy
YXdpbmdJbnRSZWN0KG1faW4tPnN1YlJlZ2lvbigpKTsKKyAgICBSZWZQdHI8SW1hZ2VEYXRhPiBz
cmNJbWFnZURhdGEobV9pbi0+cmVzdWx0SW1hZ2UoKS0+Z2V0UHJlbXVsdGlwbGllZEltYWdlRGF0
YShlZmZlY3REcmF3aW5nUmVjdCkpOworICAgIENhbnZhc1BpeGVsQXJyYXkqIHNyY1BpeGVsQXJy
YXkoc3JjSW1hZ2VEYXRhLT5kYXRhKCkpOworCisgICAgSW50UmVjdCBpbWFnZVJlY3QoSW50UG9p
bnQoKSwgcmVzdWx0SW1hZ2UoKS0+c2l6ZSgpKTsKKyAgICBSZWZQdHI8SW1hZ2VEYXRhPiBkc3RJ
bWFnZURhdGEgPSBJbWFnZURhdGE6OmNyZWF0ZShpbWFnZVJlY3Qud2lkdGgoKSwgaW1hZ2VSZWN0
LmhlaWdodCgpKTsKKyAgICBDYW52YXNQaXhlbEFycmF5KiBkc3RQaXhlbEFycmF5KGRzdEltYWdl
RGF0YS0+ZGF0YSgpKTsKKworICAgIGludCBzdHJpZGUgPSA0ICogaW1hZ2VSZWN0LndpZHRoKCk7
CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAgYm94Qmx1cihzcmNQ
aXhlbEFycmF5LCBkc3RQaXhlbEFycmF5LCBzZHgsIDQsIHN0cmlkZSwgaW1hZ2VSZWN0LndpZHRo
KCksIGltYWdlUmVjdC5oZWlnaHQoKSwgaXNBbHBoYUltYWdlKCkpOworICAgICAgICBib3hCbHVy
KGRzdFBpeGVsQXJyYXksIHNyY1BpeGVsQXJyYXksIHNkeSwgc3RyaWRlLCA0LCBpbWFnZVJlY3Qu
aGVpZ2h0KCksIGltYWdlUmVjdC53aWR0aCgpLCBpc0FscGhhSW1hZ2UoKSk7CisgICAgfQorCisg
ICAgcmVzdWx0SW1hZ2UoKS0+cHV0UHJlbXVsdGlwbGllZEltYWdlRGF0YShkc3RJbWFnZURhdGEu
Z2V0KCksIGltYWdlUmVjdCwgSW50UG9pbnQoKSk7CiB9CiAKIHZvaWQgRkVHYXVzc2lhbkJsdXI6
OmR1bXAoKQo=
</data>
<flag name="review"
          id="21836"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40713</attachid>
            <date>2009-10-06 05:40:23 -0700</date>
            <delta_ts>2009-10-06 22:07:38 -0700</delta_ts>
            <desc>feGaussianBlur implementation</desc>
            <filename>feGaussian4.patch</filename>
            <type>text/plain</type>
            <size>6826</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTE2MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDktMTAtMDYgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
RmlsdGVyIGZlR2F1c3NpYW5CbHVyIGltcGxlbWVudGF0aW9uIGlzIG1pc3NpbmcKKyAgICAgICAg
W2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODE0MV0KKworICAgICAg
ICBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHYXVzc2lhbkJsdXIgZmlsdGVyIGZvciBT
VkcuCisKKyAgICAgICAgVGhlcmUgaXMgYWxyZWFkeSBhIHRlc3QgZm9yIGZlR2F1c3NpYW5CbHVy
CisgICAgICAgIFRlc3Q6IHN2Zy9XM0MtU1ZHLTEuMS9maWx0ZXJzLWdhdXNzLTAxLWItdzNjLnN2
ZworCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpGaWx0ZXJFZmZlY3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmlzQWxwaGFJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJFZmZlY3Q6OnNldElzQWxwaGFJbWFnZSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Ym94Qmx1cik6
CisgICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6YXBwbHkpOgorCiAyMDA5LTEwLTA2
ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBPbGl2ZXIgSHVudC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXJFZmZlY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCShyZXZpc2lvbiA0OTE2MikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw2ICszMyw3IEBAIEZpbHRlckVmZmVjdDo6RmlsdGVyRWZmZWN0KCkKICAgICAsIG1faGFz
WShmYWxzZSkKICAgICAsIG1faGFzV2lkdGgoZmFsc2UpCiAgICAgLCBtX2hhc0hlaWdodChmYWxz
ZSkKKyAgICAsIG1fYWxwaGFJbWFnZShmYWxzZSkKIHsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAkocmV2aXNpb24gNDkx
NjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgRmxvYXRSZWN0IGNhbGN1bGF0ZURyYXdpbmdSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwog
ICAgICAgICBJbnRSZWN0IGNhbGN1bGF0ZURyYXdpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYp
OwogCisgICAgICAgIC8vIGJsYWNrIGltYWdlIHdpdGggZGlmZmVyZW50IGFscGhhIHZhbHVlcwor
ICAgICAgICBib29sIGlzQWxwaGFJbWFnZSgpIHsgcmV0dXJuIG1fYWxwaGFJbWFnZTsgfQorICAg
ICAgICB2b2lkIHNldElzQWxwaGFJbWFnZShib29sIGFscGhhSW1hZ2UpIHsgbV9hbHBoYUltYWdl
ID0gYWxwaGFJbWFnZTsgfQorCiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHVuaXRlQ2hpbGRF
ZmZlY3RTdWJyZWdpb25zKEZpbHRlciogZmlsdGVyKSB7IHJldHVybiBmaWx0ZXItPmZpbHRlclJl
Z2lvbigpOyB9CiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IGNhbGN1bGF0ZUVmZmVjdFJlY3Qo
RmlsdGVyKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhcHBseShGaWx0ZXIqKSA9IDA7CkBAIC0x
MDIsNiArMTA2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1faGFzV2lk
dGggOiAxOwogICAgICAgICBib29sIG1faGFzSGVpZ2h0IDogMTsKIAorICAgICAgICBib29sIG1f
YWxwaGFJbWFnZTsKKwogICAgICAgICBGbG9hdFJlY3QgbV9zdWJSZWdpb247CiAgICAgICAgIEZs
b2F0UmVjdCBtX3VuaW9uT2ZDaGlsZEVmZmVjdFN1YnJlZ2lvbnM7CiAKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAkocmV2aXNp
b24gNDkxNjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxw
aGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw4IEBAIHZvaWQgU291cmNlQWxwaGE6
OmFwcGx5KEZpbHRlciogZmlsdGVyKQogICAgIGlmICghZmlsdGVyQ29udGV4dCkKICAgICAgICAg
cmV0dXJuOwogCisgICAgc2V0SXNBbHBoYUltYWdlKHRydWUpOworCiAgICAgRmxvYXRSZWN0IGlt
YWdlUmVjdChGbG9hdFBvaW50KCksIGZpbHRlci0+c291cmNlSW1hZ2UoKS0+aW1hZ2UoKS0+c2l6
ZSgpKTsKICAgICBmaWx0ZXJDb250ZXh0LT5zYXZlKCk7CiAgICAgZmlsdGVyQ29udGV4dC0+Y2xp
cFRvSW1hZ2VCdWZmZXIoaW1hZ2VSZWN0LCBmaWx0ZXItPnNvdXJjZUltYWdlKCkpOwpJbmRleDog
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUdhdXNzaWFuQmx1ci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUdhdXNzaWFuQmx1ci5j
cHAJKHJldmlzaW9uIDQ5MTYyKQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
RUdhdXNzaWFuQmx1ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emlt
bWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgorICAgICAgICAgICAgICAgICAgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Vi
a2l0Lm9yZz4KIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsOCArMjQsMTMgQEAKIAogI2lmIEVO
QUJMRShTVkcpICYmIEVOQUJMRShGSUxURVJTKQogI2luY2x1ZGUgIlNWR0ZFR2F1c3NpYW5CbHVy
LmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyVHJlZUFzVGV4dC5oIgorCisjaW5jbHVkZSAiQ2FudmFz
UGl4ZWxBcnJheS5oIgogI2luY2x1ZGUgIkZpbHRlci5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgorI2luY2x1ZGUgIkltYWdlRGF0YS5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclRyZWVB
c1RleHQuaCIKKyNpbmNsdWRlIDxtYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NjEsOCArNjcsNjggQEAgdm9pZCBGRUdhdXNzaWFuQmx1cjo6c2V0U3RkRGV2aWF0aW9uWShmbAog
ICAgIG1feSA9IHk7CiB9CiAKLXZvaWQgRkVHYXVzc2lhbkJsdXI6OmFwcGx5KEZpbHRlciopCit2
b2lkIGJveEJsdXIoQ2FudmFzUGl4ZWxBcnJheSomIHNyY1BpeGVsQXJyYXksIENhbnZhc1BpeGVs
QXJyYXkqJiBkc3RQaXhlbEFycmF5LAorICAgICAgICAgICAgICAgICB1bnNpZ25lZCBkeCwgaW50
IHN0cmlkZSwgaW50IHN0cmlkZUxpbmUsIGludCBlZmZlY3RXaWR0aCwgaW50IGVmZmVjdEhlaWdo
dCwgYm9vbCBhbHBoYUltYWdlKQogeworICAgIGludCBkeExlZnQgPSBzdGF0aWNfY2FzdDxpbnQ+
KGZsb29yKGR4IC8gMikpOworICAgIGludCBkeFJpZ2h0ID0gZHggLSBkeExlZnQ7CisKKyAgICBm
b3IgKGludCB5ID0gMDsgeSA8IGVmZmVjdEhlaWdodDsgKyt5KSB7CisgICAgICAgIGludCBsaW5l
ID0geSAqIHN0cmlkZUxpbmU7CisgICAgICAgIGZvciAoaW50IGNoYW5uZWwgPSAzOyBjaGFubmVs
ID49IDA7IC0tY2hhbm5lbCkgeworICAgICAgICAgICAgaW50IHN1bSA9IDA7CisgICAgICAgICAg
ICAvLyBGaWxsIHRoZSBrZXJuZWwKKyAgICAgICAgICAgIGludCBtYXhLZXJuZWxTaXplID0gc3Rk
OjptaW4oZHhSaWdodCwgZWZmZWN0V2lkdGgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBtYXhLZXJuZWxTaXplOyArK2kpCisgICAgICAgICAgICAgICAgc3VtICs9IHNyY1BpeGVs
QXJyYXktPmdldChsaW5lICsgaSAqIHN0cmlkZSArIGNoYW5uZWwpOworCisgICAgICAgICAgICAv
LyBCbHVycmluZworICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBlZmZlY3RXaWR0aDsg
Kyt4KSB7CisgICAgICAgICAgICAgICAgaW50IHBpeGVsQnl0ZU9mZnNldCA9IGxpbmUgKyB4ICog
c3RyaWRlICsgY2hhbm5lbDsKKyAgICAgICAgICAgICAgICBkc3RQaXhlbEFycmF5LT5zZXQocGl4
ZWxCeXRlT2Zmc2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihzdW0gLyBkeCkpOworICAg
ICAgICAgICAgICAgIGlmICh4ID49IGR4TGVmdCkKKyAgICAgICAgICAgICAgICAgICAgc3VtIC09
IHNyY1BpeGVsQXJyYXktPmdldChwaXhlbEJ5dGVPZmZzZXQgLSBkeExlZnQgKiBzdHJpZGUpOwor
ICAgICAgICAgICAgICAgIGlmICh4ICsgZHhSaWdodCA8IGVmZmVjdEhlaWdodCkKKyAgICAgICAg
ICAgICAgICAgICAgc3VtICs9IHNyY1BpeGVsQXJyYXktPmdldChwaXhlbEJ5dGVPZmZzZXQgKyBk
eFJpZ2h0ICogc3RyaWRlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhbHBoYUlt
YWdlKSAvLyBTb3VyY2UgaW1hZ2UgaXMgYmxhY2ssIGl0IGp1c3QgaGFzIGRpZmZlcmVudCBhbHBo
YSB2YWx1ZXMKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwor
dm9pZCBGRUdhdXNzaWFuQmx1cjo6YXBwbHkoRmlsdGVyKiBmaWx0ZXIpCit7CisgICAgbV9pbi0+
YXBwbHkoZmlsdGVyKTsKKyAgICBpZiAoIW1faW4tPnJlc3VsdEltYWdlKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmICghZ2V0RWZmZWN0Q29udGV4dCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBzZXRJc0FscGhhSW1hZ2UobV9pbi0+aXNBbHBoYUltYWdlKCkpOworCisgICAgaWYgKG1f
eCA9PSAwIHx8IG1feSA9PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICB1bnNpZ25lZCBzZHgg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZmxvb3IobV94ICogMyAqIHNxcnQoMiAqIE1fUEkpIC8g
NC5mICsgMC41ZikpOworICAgIHVuc2lnbmVkIHNkeSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihm
bG9vcihtX3kgKiAzICogc3FydCgyICogTV9QSSkgLyA0LmYgKyAwLjVmKSk7CisKKyAgICBJbnRS
ZWN0IGVmZmVjdERyYXdpbmdSZWN0ID0gY2FsY3VsYXRlRHJhd2luZ0ludFJlY3QobV9pbi0+c3Vi
UmVnaW9uKCkpOworICAgIFJlZlB0cjxJbWFnZURhdGE+IHNyY0ltYWdlRGF0YShtX2luLT5yZXN1
bHRJbWFnZSgpLT5nZXRQcmVtdWx0aXBsaWVkSW1hZ2VEYXRhKGVmZmVjdERyYXdpbmdSZWN0KSk7
CisgICAgQ2FudmFzUGl4ZWxBcnJheSogc3JjUGl4ZWxBcnJheShzcmNJbWFnZURhdGEtPmRhdGEo
KSk7CisKKyAgICBJbnRSZWN0IGltYWdlUmVjdChJbnRQb2ludCgpLCByZXN1bHRJbWFnZSgpLT5z
aXplKCkpOworICAgIFJlZlB0cjxJbWFnZURhdGE+IGRzdEltYWdlRGF0YSA9IEltYWdlRGF0YTo6
Y3JlYXRlKGltYWdlUmVjdC53aWR0aCgpLCBpbWFnZVJlY3QuaGVpZ2h0KCkpOworICAgIENhbnZh
c1BpeGVsQXJyYXkqIGRzdFBpeGVsQXJyYXkoZHN0SW1hZ2VEYXRhLT5kYXRhKCkpOworCisgICAg
aW50IHN0cmlkZSA9IDQgKiBpbWFnZVJlY3Qud2lkdGgoKTsKKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IDM7ICsraSkgeworICAgICAgICBib3hCbHVyKHNyY1BpeGVsQXJyYXksIGRzdFBpeGVsQXJy
YXksIHNkeCwgNCwgc3RyaWRlLCBpbWFnZVJlY3Qud2lkdGgoKSwgaW1hZ2VSZWN0LmhlaWdodCgp
LCBpc0FscGhhSW1hZ2UoKSk7CisgICAgICAgIGJveEJsdXIoZHN0UGl4ZWxBcnJheSwgc3JjUGl4
ZWxBcnJheSwgc2R5LCBzdHJpZGUsIDQsIGltYWdlUmVjdC5oZWlnaHQoKSwgaW1hZ2VSZWN0Lndp
ZHRoKCksIGlzQWxwaGFJbWFnZSgpKTsKKyAgICB9CisKKyAgICByZXN1bHRJbWFnZSgpLT5wdXRQ
cmVtdWx0aXBsaWVkSW1hZ2VEYXRhKGRzdEltYWdlRGF0YS5nZXQoKSwgaW1hZ2VSZWN0LCBJbnRQ
b2ludCgpKTsKIH0KIAogdm9pZCBGRUdhdXNzaWFuQmx1cjo6ZHVtcCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40762</attachid>
            <date>2009-10-06 22:07:38 -0700</date>
            <delta_ts>2009-10-07 02:35:30 -0700</delta_ts>
            <desc>feGaussianBlur implementation</desc>
            <filename>feGaussian5.patch</filename>
            <type>text/plain</type>
            <size>6825</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTE2MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDktMTAtMDYgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
RmlsdGVyIGZlR2F1c3NpYW5CbHVyIGltcGxlbWVudGF0aW9uIGlzIG1pc3NpbmcKKyAgICAgICAg
W2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODE0MV0KKworICAgICAg
ICBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHYXVzc2lhbkJsdXIgZmlsdGVyIGZvciBT
VkcuCisKKyAgICAgICAgVGhlcmUgaXMgYWxyZWFkeSBhIHRlc3QgZm9yIGZlR2F1c3NpYW5CbHVy
CisgICAgICAgIFRlc3Q6IHN2Zy9XM0MtU1ZHLTEuMS9maWx0ZXJzLWdhdXNzLTAxLWItdzNjLnN2
ZworCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpGaWx0ZXJFZmZlY3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmlzQWxwaGFJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJFZmZlY3Q6OnNldElzQWxwaGFJbWFnZSk6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Ym94Qmx1cik6
CisgICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6YXBwbHkpOgorCiAyMDA5LTEwLTA2
ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBPbGl2ZXIgSHVudC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXJFZmZlY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCShyZXZpc2lvbiA0OTE2MikKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw2ICszMyw3IEBAIEZpbHRlckVmZmVjdDo6RmlsdGVyRWZmZWN0KCkKICAgICAsIG1faGFz
WShmYWxzZSkKICAgICAsIG1faGFzV2lkdGgoZmFsc2UpCiAgICAgLCBtX2hhc0hlaWdodChmYWxz
ZSkKKyAgICAsIG1fYWxwaGFJbWFnZShmYWxzZSkKIHsKIH0KIApJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAkocmV2aXNpb24gNDkx
NjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgRmxvYXRSZWN0IGNhbGN1bGF0ZURyYXdpbmdSZWN0KGNvbnN0IEZsb2F0UmVjdCYpOwog
ICAgICAgICBJbnRSZWN0IGNhbGN1bGF0ZURyYXdpbmdJbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYp
OwogCisgICAgICAgIC8vIGJsYWNrIGltYWdlIHdpdGggZGlmZmVyZW50IGFscGhhIHZhbHVlcwor
ICAgICAgICBib29sIGlzQWxwaGFJbWFnZSgpIHsgcmV0dXJuIG1fYWxwaGFJbWFnZTsgfQorICAg
ICAgICB2b2lkIHNldElzQWxwaGFJbWFnZShib29sIGFscGhhSW1hZ2UpIHsgbV9hbHBoYUltYWdl
ID0gYWxwaGFJbWFnZTsgfQorCiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHVuaXRlQ2hpbGRF
ZmZlY3RTdWJyZWdpb25zKEZpbHRlciogZmlsdGVyKSB7IHJldHVybiBmaWx0ZXItPmZpbHRlclJl
Z2lvbigpOyB9CiAgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IGNhbGN1bGF0ZUVmZmVjdFJlY3Qo
RmlsdGVyKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhcHBseShGaWx0ZXIqKSA9IDA7CkBAIC0x
MDIsNiArMTA2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1faGFzV2lk
dGggOiAxOwogICAgICAgICBib29sIG1faGFzSGVpZ2h0IDogMTsKIAorICAgICAgICBib29sIG1f
YWxwaGFJbWFnZTsKKwogICAgICAgICBGbG9hdFJlY3QgbV9zdWJSZWdpb247CiAgICAgICAgIEZs
b2F0UmVjdCBtX3VuaW9uT2ZDaGlsZEVmZmVjdFN1YnJlZ2lvbnM7CiAKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAkocmV2aXNp
b24gNDkxNjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxw
aGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSw4IEBAIHZvaWQgU291cmNlQWxwaGE6
OmFwcGx5KEZpbHRlciogZmlsdGVyKQogICAgIGlmICghZmlsdGVyQ29udGV4dCkKICAgICAgICAg
cmV0dXJuOwogCisgICAgc2V0SXNBbHBoYUltYWdlKHRydWUpOworCiAgICAgRmxvYXRSZWN0IGlt
YWdlUmVjdChGbG9hdFBvaW50KCksIGZpbHRlci0+c291cmNlSW1hZ2UoKS0+aW1hZ2UoKS0+c2l6
ZSgpKTsKICAgICBmaWx0ZXJDb250ZXh0LT5zYXZlKCk7CiAgICAgZmlsdGVyQ29udGV4dC0+Y2xp
cFRvSW1hZ2VCdWZmZXIoaW1hZ2VSZWN0LCBmaWx0ZXItPnNvdXJjZUltYWdlKCkpOwpJbmRleDog
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUdhdXNzaWFuQmx1ci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUdhdXNzaWFuQmx1ci5j
cHAJKHJldmlzaW9uIDQ5MTYyKQorKysgV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdG
RUdhdXNzaWFuQmx1ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgICAgQ29w
eXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emlt
bWVybWFubkBrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSBSb2IgQnVpcyA8
YnVpc0BrZGUub3JnPgogICAgICAgICAgICAgICAgICAgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3
ZWJraXQub3JnPgorICAgICAgICAgICAgICAgICAgMjAwOSBEaXJrIFNjaHVsemUgPGtyaXRAd2Vi
a2l0Lm9yZz4KIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsOCArMjQsMTMgQEAKIAogI2lmIEVO
QUJMRShTVkcpICYmIEVOQUJMRShGSUxURVJTKQogI2luY2x1ZGUgIlNWR0ZFR2F1c3NpYW5CbHVy
LmgiCi0jaW5jbHVkZSAiU1ZHUmVuZGVyVHJlZUFzVGV4dC5oIgorCisjaW5jbHVkZSAiQ2FudmFz
UGl4ZWxBcnJheS5oIgogI2luY2x1ZGUgIkZpbHRlci5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgorI2luY2x1ZGUgIkltYWdlRGF0YS5oIgorI2luY2x1ZGUgIlNWR1JlbmRlclRyZWVB
c1RleHQuaCIKKyNpbmNsdWRlIDxtYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NjEsOCArNjcsNjggQEAgdm9pZCBGRUdhdXNzaWFuQmx1cjo6c2V0U3RkRGV2aWF0aW9uWShmbAog
ICAgIG1feSA9IHk7CiB9CiAKLXZvaWQgRkVHYXVzc2lhbkJsdXI6OmFwcGx5KEZpbHRlciopCit2
b2lkIGJveEJsdXIoQ2FudmFzUGl4ZWxBcnJheSomIHNyY1BpeGVsQXJyYXksIENhbnZhc1BpeGVs
QXJyYXkqJiBkc3RQaXhlbEFycmF5LAorICAgICAgICAgICAgICAgICB1bnNpZ25lZCBkeCwgaW50
IHN0cmlkZSwgaW50IHN0cmlkZUxpbmUsIGludCBlZmZlY3RXaWR0aCwgaW50IGVmZmVjdEhlaWdo
dCwgYm9vbCBhbHBoYUltYWdlKQogeworICAgIGludCBkeExlZnQgPSBzdGF0aWNfY2FzdDxpbnQ+
KGZsb29yKGR4IC8gMikpOworICAgIGludCBkeFJpZ2h0ID0gZHggLSBkeExlZnQ7CisKKyAgICBm
b3IgKGludCB5ID0gMDsgeSA8IGVmZmVjdEhlaWdodDsgKyt5KSB7CisgICAgICAgIGludCBsaW5l
ID0geSAqIHN0cmlkZUxpbmU7CisgICAgICAgIGZvciAoaW50IGNoYW5uZWwgPSAzOyBjaGFubmVs
ID49IDA7IC0tY2hhbm5lbCkgeworICAgICAgICAgICAgaW50IHN1bSA9IDA7CisgICAgICAgICAg
ICAvLyBGaWxsIHRoZSBrZXJuZWwKKyAgICAgICAgICAgIGludCBtYXhLZXJuZWxTaXplID0gc3Rk
OjptaW4oZHhSaWdodCwgZWZmZWN0V2lkdGgpOworICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBtYXhLZXJuZWxTaXplOyArK2kpCisgICAgICAgICAgICAgICAgc3VtICs9IHNyY1BpeGVs
QXJyYXktPmdldChsaW5lICsgaSAqIHN0cmlkZSArIGNoYW5uZWwpOworCisgICAgICAgICAgICAv
LyBCbHVycmluZworICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBlZmZlY3RXaWR0aDsg
Kyt4KSB7CisgICAgICAgICAgICAgICAgaW50IHBpeGVsQnl0ZU9mZnNldCA9IGxpbmUgKyB4ICog
c3RyaWRlICsgY2hhbm5lbDsKKyAgICAgICAgICAgICAgICBkc3RQaXhlbEFycmF5LT5zZXQocGl4
ZWxCeXRlT2Zmc2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihzdW0gLyBkeCkpOworICAg
ICAgICAgICAgICAgIGlmICh4ID49IGR4TGVmdCkKKyAgICAgICAgICAgICAgICAgICAgc3VtIC09
IHNyY1BpeGVsQXJyYXktPmdldChwaXhlbEJ5dGVPZmZzZXQgLSBkeExlZnQgKiBzdHJpZGUpOwor
ICAgICAgICAgICAgICAgIGlmICh4ICsgZHhSaWdodCA8IGVmZmVjdFdpZHRoKQorICAgICAgICAg
ICAgICAgICAgICBzdW0gKz0gc3JjUGl4ZWxBcnJheS0+Z2V0KHBpeGVsQnl0ZU9mZnNldCArIGR4
UmlnaHQgKiBzdHJpZGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGFscGhhSW1h
Z2UpIC8vIFNvdXJjZSBpbWFnZSBpcyBibGFjaywgaXQganVzdCBoYXMgZGlmZmVyZW50IGFscGhh
IHZhbHVlcworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2
b2lkIEZFR2F1c3NpYW5CbHVyOjphcHBseShGaWx0ZXIqIGZpbHRlcikKK3sKKyAgICBtX2luLT5h
cHBseShmaWx0ZXIpOworICAgIGlmICghbV9pbi0+cmVzdWx0SW1hZ2UoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKCFnZXRFZmZlY3RDb250ZXh0KCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNldElzQWxwaGFJbWFnZShtX2luLT5pc0FscGhhSW1hZ2UoKSk7CisKKyAgICBpZiAobV94
ID09IDAgfHwgbV95ID09IDApCisgICAgICAgIHJldHVybjsKKworICAgIHVuc2lnbmVkIHNkeCA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmbG9vcihtX3ggKiAzICogc3FydCgyICogTV9QSSkgLyA0
LmYgKyAwLjVmKSk7CisgICAgdW5zaWduZWQgc2R5ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZs
b29yKG1feSAqIDMgKiBzcXJ0KDIgKiBNX1BJKSAvIDQuZiArIDAuNWYpKTsKKworICAgIEludFJl
Y3QgZWZmZWN0RHJhd2luZ1JlY3QgPSBjYWxjdWxhdGVEcmF3aW5nSW50UmVjdChtX2luLT5zdWJS
ZWdpb24oKSk7CisgICAgUmVmUHRyPEltYWdlRGF0YT4gc3JjSW1hZ2VEYXRhKG1faW4tPnJlc3Vs
dEltYWdlKCktPmdldFByZW11bHRpcGxpZWRJbWFnZURhdGEoZWZmZWN0RHJhd2luZ1JlY3QpKTsK
KyAgICBDYW52YXNQaXhlbEFycmF5KiBzcmNQaXhlbEFycmF5KHNyY0ltYWdlRGF0YS0+ZGF0YSgp
KTsKKworICAgIEludFJlY3QgaW1hZ2VSZWN0KEludFBvaW50KCksIHJlc3VsdEltYWdlKCktPnNp
emUoKSk7CisgICAgUmVmUHRyPEltYWdlRGF0YT4gdG1wSW1hZ2VEYXRhID0gSW1hZ2VEYXRhOjpj
cmVhdGUoaW1hZ2VSZWN0LndpZHRoKCksIGltYWdlUmVjdC5oZWlnaHQoKSk7CisgICAgQ2FudmFz
UGl4ZWxBcnJheSogdG1wUGl4ZWxBcnJheSh0bXBJbWFnZURhdGEtPmRhdGEoKSk7CisKKyAgICBp
bnQgc3RyaWRlID0gNCAqIGltYWdlUmVjdC53aWR0aCgpOworICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgMzsgKytpKSB7CisgICAgICAgIGJveEJsdXIoc3JjUGl4ZWxBcnJheSwgdG1wUGl4ZWxBcnJh
eSwgc2R4LCA0LCBzdHJpZGUsIGltYWdlUmVjdC53aWR0aCgpLCBpbWFnZVJlY3QuaGVpZ2h0KCks
IGlzQWxwaGFJbWFnZSgpKTsKKyAgICAgICAgYm94Qmx1cih0bXBQaXhlbEFycmF5LCBzcmNQaXhl
bEFycmF5LCBzZHksIHN0cmlkZSwgNCwgaW1hZ2VSZWN0LmhlaWdodCgpLCBpbWFnZVJlY3Qud2lk
dGgoKSwgaXNBbHBoYUltYWdlKCkpOworICAgIH0KKworICAgIHJlc3VsdEltYWdlKCktPnB1dFBy
ZW11bHRpcGxpZWRJbWFnZURhdGEoc3JjSW1hZ2VEYXRhLmdldCgpLCBpbWFnZVJlY3QsIEludFBv
aW50KCkpOwogfQogCiB2b2lkIEZFR2F1c3NpYW5CbHVyOjpkdW1wKCkK
</data>
<flag name="review"
          id="22038"
          type_id="1"
          status="-"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40777</attachid>
            <date>2009-10-07 02:35:30 -0700</date>
            <delta_ts>2009-10-09 13:44:29 -0700</delta_ts>
            <desc>feGaussianBlur implementation</desc>
            <filename>feGaussian7.patch</filename>
            <type>text/plain</type>
            <size>31904</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTIzMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDktMTAtMDcgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTVkcg
RmlsdGVyIGZlR2F1c3NpYW5CbHVyIGltcGxlbWVudGF0aW9uIGlzIG1pc3NpbmcKKyAgICAgICAg
W2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODE0MV0KKworICAgICAg
ICBUaGlzIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBHYXVzc2lhbkJsdXIgZmlsdGVyIGZvciBT
VkcuCisKKyAgICAgICAgVGhlcmUgaXMgYWxyZWFkeSBhIHRlc3QgZm9yIGZlR2F1c3NpYW5CbHVy
CisgICAgICAgIFRlc3Q6IHN2Zy9XM0MtU1ZHLTEuMS9maWx0ZXJzLWdhdXNzLTAxLWItdzNjLnN2
ZyAKKworICAgICAgICBUZXN0OiBzdmcvZmlsdGVycy9mZUdhdXNzaWFuQmx1ci5zdmcKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6RmlsdGVyRWZmZWN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6
RmlsdGVyRWZmZWN0Ojppc0FscGhhSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZm
ZWN0OjpzZXRJc0FscGhhSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvU291cmNlQWxwaGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmFwcGx5
KToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUdhdXNzaWFuQmx1ci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpib3hCbHVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3Np
YW5CbHVyOjphcHBseSk6CisKIDIwMDktMTAtMDcgIEdpcmlzaCBSYW1ha3Jpc2huYW4gIDxnaXJp
c2hAZm9yd2FyZGJpYXMuaW4+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4u
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RWZmZWN0LmNwcAkocmV2aXNpb24gNDkxNjIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBA
QCBGaWx0ZXJFZmZlY3Q6OkZpbHRlckVmZmVjdCgpCiAgICAgLCBtX2hhc1koZmFsc2UpCiAgICAg
LCBtX2hhc1dpZHRoKGZhbHNlKQogICAgICwgbV9oYXNIZWlnaHQoZmFsc2UpCisgICAgLCBtX2Fs
cGhhSW1hZ2UoZmFsc2UpCiB7CiB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgJKHJldmlzaW9uIDQ5MTYyKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC03OSw2ICs3OSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEZsb2F0UmVj
dCBjYWxjdWxhdGVEcmF3aW5nUmVjdChjb25zdCBGbG9hdFJlY3QmKTsKICAgICAgICAgSW50UmVj
dCBjYWxjdWxhdGVEcmF3aW5nSW50UmVjdChjb25zdCBGbG9hdFJlY3QmKTsKIAorICAgICAgICAv
LyBibGFjayBpbWFnZSB3aXRoIGRpZmZlcmVudCBhbHBoYSB2YWx1ZXMKKyAgICAgICAgYm9vbCBp
c0FscGhhSW1hZ2UoKSB7IHJldHVybiBtX2FscGhhSW1hZ2U7IH0KKyAgICAgICAgdm9pZCBzZXRJ
c0FscGhhSW1hZ2UoYm9vbCBhbHBoYUltYWdlKSB7IG1fYWxwaGFJbWFnZSA9IGFscGhhSW1hZ2U7
IH0KKwogICAgICAgICB2aXJ0dWFsIEZsb2F0UmVjdCB1bml0ZUNoaWxkRWZmZWN0U3VicmVnaW9u
cyhGaWx0ZXIqIGZpbHRlcikgeyByZXR1cm4gZmlsdGVyLT5maWx0ZXJSZWdpb24oKTsgfQogICAg
ICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBjYWxjdWxhdGVFZmZlY3RSZWN0KEZpbHRlciopOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgYXBwbHkoRmlsdGVyKikgPSAwOwpAQCAtMTAyLDYgKzEwNiw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2hhc1dpZHRoIDogMTsKICAgICAg
ICAgYm9vbCBtX2hhc0hlaWdodCA6IDE7CiAKKyAgICAgICAgYm9vbCBtX2FscGhhSW1hZ2U7CisK
ICAgICAgICAgRmxvYXRSZWN0IG1fc3ViUmVnaW9uOwogICAgICAgICBGbG9hdFJlY3QgbV91bmlv
bk9mQ2hpbGRFZmZlY3RTdWJyZWdpb25zOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAJKHJldmlzaW9uIDQ5MTYyKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTksNiArNTksOCBAQCB2b2lkIFNvdXJjZUFscGhhOjphcHBseShGaWx0ZXIq
IGZpbHRlcikKICAgICBpZiAoIWZpbHRlckNvbnRleHQpCiAgICAgICAgIHJldHVybjsKIAorICAg
IHNldElzQWxwaGFJbWFnZSh0cnVlKTsKKwogICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QoRmxvYXRQ
b2ludCgpLCBmaWx0ZXItPnNvdXJjZUltYWdlKCktPmltYWdlKCktPnNpemUoKSk7CiAgICAgZmls
dGVyQ29udGV4dC0+c2F2ZSgpOwogICAgIGZpbHRlckNvbnRleHQtPmNsaXBUb0ltYWdlQnVmZmVy
KGltYWdlUmVjdCwgZmlsdGVyLT5zb3VyY2VJbWFnZSgpKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL2dy
YXBoaWNzL2ZpbHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIuY3BwCShyZXZpc2lvbiA0
OTE2MikKKysrIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICAgIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9y
Zz4KICAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
ICAgICAgICAgICAgICAgICAgIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAg
ICAgICAgICAgICAgICAgIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CiAKICAg
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTIzLDggKzI0LDEzIEBACiAKICNpZiBFTkFCTEUoU1ZHKSAmJiBF
TkFCTEUoRklMVEVSUykKICNpbmNsdWRlICJTVkdGRUdhdXNzaWFuQmx1ci5oIgotI2luY2x1ZGUg
IlNWR1JlbmRlclRyZWVBc1RleHQuaCIKKworI2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIK
ICNpbmNsdWRlICJGaWx0ZXIuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNs
dWRlICJJbWFnZURhdGEuaCIKKyNpbmNsdWRlICJTVkdSZW5kZXJUcmVlQXNUZXh0LmgiCisjaW5j
bHVkZSA8bWF0aC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYxLDggKzY3LDY4IEBA
IHZvaWQgRkVHYXVzc2lhbkJsdXI6OnNldFN0ZERldmlhdGlvblkoZmwKICAgICBtX3kgPSB5Owog
fQogCi12b2lkIEZFR2F1c3NpYW5CbHVyOjphcHBseShGaWx0ZXIqKQordm9pZCBib3hCbHVyKENh
bnZhc1BpeGVsQXJyYXkqJiBzcmNQaXhlbEFycmF5LCBDYW52YXNQaXhlbEFycmF5KiYgZHN0UGl4
ZWxBcnJheSwKKyAgICAgICAgICAgICAgICAgdW5zaWduZWQgZHgsIGludCBzdHJpZGUsIGludCBz
dHJpZGVMaW5lLCBpbnQgZWZmZWN0V2lkdGgsIGludCBlZmZlY3RIZWlnaHQsIGJvb2wgYWxwaGFJ
bWFnZSkKIHsKKyAgICBpbnQgZHhMZWZ0ID0gc3RhdGljX2Nhc3Q8aW50PihmbG9vcihkeCAvIDIp
KTsKKyAgICBpbnQgZHhSaWdodCA9IGR4IC0gZHhMZWZ0OworCisgICAgZm9yIChpbnQgeSA9IDA7
IHkgPCBlZmZlY3RIZWlnaHQ7ICsreSkgeworICAgICAgICBpbnQgbGluZSA9IHkgKiBzdHJpZGVM
aW5lOworICAgICAgICBmb3IgKGludCBjaGFubmVsID0gMzsgY2hhbm5lbCA+PSAwOyAtLWNoYW5u
ZWwpIHsKKyAgICAgICAgICAgIGludCBzdW0gPSAwOworICAgICAgICAgICAgLy8gRmlsbCB0aGUg
a2VybmVsCisgICAgICAgICAgICBpbnQgbWF4S2VybmVsU2l6ZSA9IHN0ZDo6bWluKGR4UmlnaHQs
IGVmZmVjdFdpZHRoKTsKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbWF4S2VybmVs
U2l6ZTsgKytpKQorICAgICAgICAgICAgICAgIHN1bSArPSBzcmNQaXhlbEFycmF5LT5nZXQobGlu
ZSArIGkgKiBzdHJpZGUgKyBjaGFubmVsKTsKKworICAgICAgICAgICAgLy8gQmx1cnJpbmcKKyAg
ICAgICAgICAgIGZvciAoaW50IHggPSAwOyB4IDwgZWZmZWN0V2lkdGg7ICsreCkgeworICAgICAg
ICAgICAgICAgIGludCBwaXhlbEJ5dGVPZmZzZXQgPSBsaW5lICsgeCAqIHN0cmlkZSArIGNoYW5u
ZWw7CisgICAgICAgICAgICAgICAgZHN0UGl4ZWxBcnJheS0+c2V0KHBpeGVsQnl0ZU9mZnNldCwg
c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oc3VtIC8gZHgpKTsKKyAgICAgICAgICAgICAgICBp
ZiAoeCA+PSBkeExlZnQpCisgICAgICAgICAgICAgICAgICAgIHN1bSAtPSBzcmNQaXhlbEFycmF5
LT5nZXQocGl4ZWxCeXRlT2Zmc2V0IC0gZHhMZWZ0ICogc3RyaWRlKTsKKyAgICAgICAgICAgICAg
ICBpZiAoeCArIGR4UmlnaHQgPCBlZmZlY3RXaWR0aCkKKyAgICAgICAgICAgICAgICAgICAgc3Vt
ICs9IHNyY1BpeGVsQXJyYXktPmdldChwaXhlbEJ5dGVPZmZzZXQgKyBkeFJpZ2h0ICogc3RyaWRl
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChhbHBoYUltYWdlKSAvLyBTb3VyY2Ug
aW1hZ2UgaXMgYmxhY2ssIGl0IGp1c3QgaGFzIGRpZmZlcmVudCBhbHBoYSB2YWx1ZXMKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKwordm9pZCBGRUdhdXNzaWFu
Qmx1cjo6YXBwbHkoRmlsdGVyKiBmaWx0ZXIpCit7CisgICAgbV9pbi0+YXBwbHkoZmlsdGVyKTsK
KyAgICBpZiAoIW1faW4tPnJlc3VsdEltYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICghZ2V0RWZmZWN0Q29udGV4dCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXRJc0FscGhh
SW1hZ2UobV9pbi0+aXNBbHBoYUltYWdlKCkpOworCisgICAgaWYgKG1feCA9PSAwIHx8IG1feSA9
PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICB1bnNpZ25lZCBzZHggPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oZmxvb3IobV94ICogMyAqIHNxcnQoMiAqIE1fUEkpIC8gNC5mICsgMC41ZikpOwor
ICAgIHVuc2lnbmVkIHNkeSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmbG9vcihtX3kgKiAzICog
c3FydCgyICogTV9QSSkgLyA0LmYgKyAwLjVmKSk7CisKKyAgICBJbnRSZWN0IGVmZmVjdERyYXdp
bmdSZWN0ID0gY2FsY3VsYXRlRHJhd2luZ0ludFJlY3QobV9pbi0+c3ViUmVnaW9uKCkpOworICAg
IFJlZlB0cjxJbWFnZURhdGE+IHNyY0ltYWdlRGF0YShtX2luLT5yZXN1bHRJbWFnZSgpLT5nZXRQ
cmVtdWx0aXBsaWVkSW1hZ2VEYXRhKGVmZmVjdERyYXdpbmdSZWN0KSk7CisgICAgQ2FudmFzUGl4
ZWxBcnJheSogc3JjUGl4ZWxBcnJheShzcmNJbWFnZURhdGEtPmRhdGEoKSk7CisKKyAgICBJbnRS
ZWN0IGltYWdlUmVjdChJbnRQb2ludCgpLCByZXN1bHRJbWFnZSgpLT5zaXplKCkpOworICAgIFJl
ZlB0cjxJbWFnZURhdGE+IHRtcEltYWdlRGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKGltYWdlUmVj
dC53aWR0aCgpLCBpbWFnZVJlY3QuaGVpZ2h0KCkpOworICAgIENhbnZhc1BpeGVsQXJyYXkqIHRt
cFBpeGVsQXJyYXkodG1wSW1hZ2VEYXRhLT5kYXRhKCkpOworCisgICAgaW50IHN0cmlkZSA9IDQg
KiBpbWFnZVJlY3Qud2lkdGgoKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkgewor
ICAgICAgICBib3hCbHVyKHNyY1BpeGVsQXJyYXksIHRtcFBpeGVsQXJyYXksIHNkeCwgNCwgc3Ry
aWRlLCBpbWFnZVJlY3Qud2lkdGgoKSwgaW1hZ2VSZWN0LmhlaWdodCgpLCBpc0FscGhhSW1hZ2Uo
KSk7CisgICAgICAgIGJveEJsdXIodG1wUGl4ZWxBcnJheSwgc3JjUGl4ZWxBcnJheSwgc2R5LCBz
dHJpZGUsIDQsIGltYWdlUmVjdC5oZWlnaHQoKSwgaW1hZ2VSZWN0LndpZHRoKCksIGlzQWxwaGFJ
bWFnZSgpKTsKKyAgICB9CisKKyAgICByZXN1bHRJbWFnZSgpLT5wdXRQcmVtdWx0aXBsaWVkSW1h
Z2VEYXRhKHNyY0ltYWdlRGF0YS5nZXQoKSwgaW1hZ2VSZWN0LCBJbnRQb2ludCgpKTsKIH0KIAog
dm9pZCBGRUdhdXNzaWFuQmx1cjo6ZHVtcCgpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0OTIzMykKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisy
MDA5LTEwLTA3ICBEaXJrIFNjaHVsemUgIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBmb3IgZmVHYXVzc2lhbkJs
dXIgaW1wbGVtZW50YXRpb24KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvZmlsdGVycy9m
ZUdhdXNzaWFuQmx1ci1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vbWFjL3N2Zy9maWx0ZXJzL2ZlR2F1c3NpYW5CbHVyLWV4cGVjdGVkLnBuZzogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL3N2Zy9maWx0ZXJzL2ZlR2F1c3NpYW5CbHVyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2ZpbHRlcnMvZmVHYXVzc2lhbkJsdXIuc3ZnOiBB
ZGRlZC4KKwogMjAwOS0xMC0wNyAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgU2tpcCB0d28gbmV3IHRlc3RzIGZvciB3aGljaCB3ZSBhcmUgbWlzc2luZyByZXN1bHRz
LgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9maWx0ZXJzL2ZlR2F1c3NpYW5C
bHVyLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9zdmcvZmlsdGVycy9mZUdhdXNzaWFuQmx1ci1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvZmlsdGVycy9mZUdhdXNzaWFu
Qmx1ci1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorMWM4NWNk
NjY4NWEwOWNiN2I1ZGNhMjFmMTdlN2E0ZTYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2ZpbHRlcnMvZmVHYXVzc2lhbkJsdXIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcv
ZmlsdGVycy9mZUdhdXNzaWFuQmx1ci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2ZpbHRlcnMvZmVHYXVzc2lhbkJsdXItZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgxMCwxMCkgc2l6ZSA0NzV4
MTc1CisgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4
MAorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDEwLDEwKSBzaXplIDc1eDc1IFt0cmFu
c2Zvcm09e209KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDEwLjAwLDEwLjAwKX1dIFtmaWx0
ZXI9MHgwXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDEwLDEwKSBzaXplIDUweDUwIFtm
aWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDUw
LjAwLDAuMDAgTDUwLjAwLDUwLjAwIEwwLjAwLDUwLjAwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7
cmVjdH0gYXQgKDM1LDM1KSBzaXplIDUweDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMw
MDAwRkZdfV0gW2RhdGE9Ik0yNS4wMCwyNS4wMCBMNzUuMDAsMjUuMDAgTDc1LjAwLDc1LjAwIEwy
NS4wMCw3NS4wMCBaIl0KKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgxMTAsMTApIHNp
emUgNzV4NzUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMTEwLjAw
LDEwLjAwKX1dIFtmaWx0ZXI9MHg1XQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDExMCwx
MCkgc2l6ZSA1MHg1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRh
PSJNMC4wMCwwLjAwIEw1MC4wMCwwLjAwIEw1MC4wMCw1MC4wMCBMMC4wMCw1MC4wMCBaIl0KKyAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMzUsMzUpIHNpemUgNTB4NTAgW2ZpbGw9e1t0eXBl
PVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTI1LjAwLDI1LjAwIEw3NS4wMCwyNS4w
MCBMNzUuMDAsNzUuMDAgTDI1LjAwLDc1LjAwIFoiXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7
Z30gYXQgKDIxMCwxMCkgc2l6ZSA3NXg3NSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAw
LDEuMDApKSB0PSgyMTAuMDAsMTAuMDApfV0gW2ZpbHRlcj01eDBdCisgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoMjEwLDEwKSBzaXplIDUweDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDUwLjAwLDAuMDAgTDUwLjAwLDUwLjAwIEww
LjAwLDUwLjAwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIzNSwzNSkgc2l6ZSA1
MHg1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjUuMDAs
MjUuMDAgTDc1LjAwLDI1LjAwIEw3NS4wMCw3NS4wMCBMMjUuMDAsNzUuMDAgWiJdCisgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMzEwLDEwKSBzaXplIDc1eDc1IFt0cmFuc2Zvcm09e209
KCgxLjAwLDAuMDApKDAuMDAsMS4wMCkpIHQ9KDMxMC4wMCwxMC4wMCl9XSBbZmlsdGVyPTN4M10K
KyAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgzMTAsMTApIHNpemUgNTB4NTAgW2ZpbGw9e1t0
eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBMNTAuMDAsMC4w
MCBMNTAuMDAsNTAuMDAgTDAuMDAsNTAuMDAgWiJdCisgICAgICBSZW5kZXJQYXRoIHtyZWN0fSBh
dCAoMzM1LDM1KSBzaXplIDUweDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDAwRkZd
fV0gW2RhdGE9Ik0yNS4wMCwyNS4wMCBMNzUuMDAsMjUuMDAgTDc1LjAwLDc1LjAwIEwyNS4wMCw3
NS4wMCBaIl0KKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICg0MTAsMTApIHNpemUgNzV4
NzUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNDEwLjAwLDEwLjAw
KX1dIFtmaWx0ZXI9MXg2XQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQxMCwxMCkgc2l6
ZSA1MHg1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jRkYwMDAwXX1dIFtkYXRhPSJNMC4w
MCwwLjAwIEw1MC4wMCwwLjAwIEw1MC4wMCw1MC4wMCBMMC4wMCw1MC4wMCBaIl0KKyAgICAgIFJl
bmRlclBhdGgge3JlY3R9IGF0ICg0MzUsMzUpIHNpemUgNTB4NTAgW2ZpbGw9e1t0eXBlPVNPTElE
XSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTI1LjAwLDI1LjAwIEw3NS4wMCwyNS4wMCBMNzUu
MDAsNzUuMDAgTDI1LjAwLDc1LjAwIFoiXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQg
KDEwLDExMCkgc2l6ZSA3NXg3NSBbdHJhbnNmb3JtPXttPSgoMS4wMCwwLjAwKSgwLjAwLDEuMDAp
KSB0PSgxMC4wMCwxMTAuMDApfV0gW2ZpbHRlcj02eDFdCisgICAgICBSZW5kZXJQYXRoIHtyZWN0
fSBhdCAoMTAsMTEwKSBzaXplIDUweDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAw
MDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDUwLjAwLDAuMDAgTDUwLjAwLDUwLjAwIEwwLjAwLDUw
LjAwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDM1LDEzNSkgc2l6ZSA1MHg1MCBb
ZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDAwMEZGXX1dIFtkYXRhPSJNMjUuMDAsMjUuMDAg
TDc1LjAwLDI1LjAwIEw3NS4wMCw3NS4wMCBMMjUuMDAsNzUuMDAgWiJdCisgICAgUmVuZGVyU1ZH
Q29udGFpbmVyIHtnfSBhdCAoMTEwLDExMCkgc2l6ZSA3NXg3NSBbdHJhbnNmb3JtPXttPSgoMS4w
MCwwLjAwKSgwLjAwLDEuMDApKSB0PSgxMTAuMDAsMTEwLjAwKX1dIFtmaWx0ZXI9MngxMF0KKyAg
ICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgxMTAsMTEwKSBzaXplIDUweDUwIFtmaWxsPXtbdHlw
ZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDUwLjAwLDAuMDAg
TDUwLjAwLDUwLjAwIEwwLjAwLDUwLjAwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQg
KDEzNSwxMzUpIHNpemUgNTB4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19
XSBbZGF0YT0iTTI1LjAwLDI1LjAwIEw3NS4wMCwyNS4wMCBMNzUuMDAsNzUuMDAgTDI1LjAwLDc1
LjAwIFoiXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDIxMCwxMTApIHNpemUgNzV4
NzUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oMjEwLjAwLDExMC4w
MCl9XSBbZmlsdGVyPTF4MV0KKyAgICAgIFJlbmRlclBhdGgge3JlY3R9IGF0ICgyMTAsMTEwKSBz
aXplIDUweDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0w
LjAwLDAuMDAgTDUwLjAwLDAuMDAgTDUwLjAwLDUwLjAwIEwwLjAwLDUwLjAwIFoiXQorICAgICAg
UmVuZGVyUGF0aCB7cmVjdH0gYXQgKDIzNSwxMzUpIHNpemUgNTB4NTAgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTI1LjAwLDI1LjAwIEw3NS4wMCwyNS4wMCBM
NzUuMDAsNzUuMDAgTDI1LjAwLDc1LjAwIFoiXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30g
YXQgKDMxMCwxMTApIHNpemUgNzV4NzUgW3RyYW5zZm9ybT17bT0oKDEuMDAsMC4wMCkoMC4wMCwx
LjAwKSkgdD0oMzEwLjAwLDExMC4wMCl9XSBbZmlsdGVyPTEweDEwMF0KKyAgICAgIFJlbmRlclBh
dGgge3JlY3R9IGF0ICgzMTAsMTEwKSBzaXplIDUweDUwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2Nv
bG9yPSNGRjAwMDBdfV0gW2RhdGE9Ik0wLjAwLDAuMDAgTDUwLjAwLDAuMDAgTDUwLjAwLDUwLjAw
IEwwLjAwLDUwLjAwIFoiXQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDMzNSwxMzUpIHNp
emUgNTB4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDBGRl19XSBbZGF0YT0iTTI1
LjAwLDI1LjAwIEw3NS4wMCwyNS4wMCBMNzUuMDAsNzUuMDAgTDI1LjAwLDc1LjAwIFoiXQorICAg
IFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDQxMCwxMTApIHNpemUgNzV4NzUgW3RyYW5zZm9y
bT17bT0oKDEuMDAsMC4wMCkoMC4wMCwxLjAwKSkgdD0oNDEwLjAwLDExMC4wMCl9XSBbZmlsdGVy
PTE1eDE1XQorICAgICAgUmVuZGVyUGF0aCB7cmVjdH0gYXQgKDQxMCwxMTApIHNpemUgNTB4NTAg
W2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9I0ZGMDAwMF19XSBbZGF0YT0iTTAuMDAsMC4wMCBM
NTAuMDAsMC4wMCBMNTAuMDAsNTAuMDAgTDAuMDAsNTAuMDAgWiJdCisgICAgICBSZW5kZXJQYXRo
IHtyZWN0fSBhdCAoNDM1LDEzNSkgc2l6ZSA1MHg1MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xv
cj0jMDAwMEZGXX1dIFtkYXRhPSJNMjUuMDAsMjUuMDAgTDc1LjAwLDI1LjAwIEw3NS4wMCw3NS4w
MCBMMjUuMDAsNzUuMDAgWiJdCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvZmlsdGVycy9mZUdhdXNz
aWFuQmx1ci5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVHYXVz
c2lhbkJsdXIuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvZmVH
YXVzc2lhbkJsdXIuc3ZnCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc0IEBACis8c3ZnIHZlcnNp
b249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0i
aHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+Cis8ZGVmcz4KKzxmaWx0ZXIgaWQ9IjB4MCI+
CisgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMCIvPgorPC9maWx0ZXI+Cis8Zmls
dGVyIGlkPSIweDUiPgorICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjAgNSIvPgor
PC9maWx0ZXI+Cis8ZmlsdGVyIGlkPSI1eDAiPgorICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZp
YXRpb249IjUgMCIvPgorPC9maWx0ZXI+Cis8ZmlsdGVyIGlkPSIzeDMiPgorICAgIDxmZUdhdXNz
aWFuQmx1ciBzdGREZXZpYXRpb249IjMiLz4KKzwvZmlsdGVyPgorPGZpbHRlciBpZD0iMXg2Ij4K
KyAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxIDYiLz4KKzwvZmlsdGVyPgorPGZp
bHRlciBpZD0iNngxIj4KKyAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI2IDEiLz4K
KzwvZmlsdGVyPgorPGZpbHRlciBpZD0iMngxMCI+CisgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERl
dmlhdGlvbj0iMiAxMCIvPgorPC9maWx0ZXI+Cis8ZmlsdGVyIGlkPSIxeDEiPgorICAgIDxmZUdh
dXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjEiLz4KKzwvZmlsdGVyPgorPGZpbHRlciBpZD0iMTB4
MTAwIj4KKyAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIxMCAxMDAiLz4KKzwvZmls
dGVyPgorPGZpbHRlciBpZD0iMTV4MTUiPgorICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRp
b249IjE1IDE1Ii8+Cis8L2ZpbHRlcj4KKzwvZGVmcz4KKzxnIGZpbHRlcj0idXJsKCMweDApIiAg
dHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAsIDEwKSI+CisgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lk
dGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJyZWQiLz4KKyAgICA8cmVjdCB4PSIyNSIgeT0iMjUi
IHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0iYmx1ZSIvPgorPC9nPgorPGcgZmlsdGVyPSJ1
cmwoIzB4NSkiICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMTAsIDEwKSI+CisgICAgPHJlY3QgeD0i
MCIgeT0iMCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJyZWQiLz4KKyAgICA8cmVjdCB4
PSIyNSIgeT0iMjUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0iYmx1ZSIvPgorPC9nPgor
PGcgZmlsdGVyPSJ1cmwoIzV4MCkiICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMTAsIDEwKSI+Cisg
ICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJyZWQiLz4K
KyAgICA8cmVjdCB4PSIyNSIgeT0iMjUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0iYmx1
ZSIvPgorPC9nPgorPGcgZmlsdGVyPSJ1cmwoIzN4MykiICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgz
MTAsIDEwKSI+CisgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBm
aWxsPSJyZWQiLz4KKyAgICA8cmVjdCB4PSIyNSIgeT0iMjUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1
MCIgZmlsbD0iYmx1ZSIvPgorPC9nPgorPGcgZmlsdGVyPSJ1cmwoIzF4NikiICB0cmFuc2Zvcm09
InRyYW5zbGF0ZSg0MTAsIDEwKSI+CisgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjUwIiBo
ZWlnaHQ9IjUwIiBmaWxsPSJyZWQiLz4KKyAgICA8cmVjdCB4PSIyNSIgeT0iMjUiIHdpZHRoPSI1
MCIgaGVpZ2h0PSI1MCIgZmlsbD0iYmx1ZSIvPgorPC9nPgorPGcgZmlsdGVyPSJ1cmwoIzZ4MSki
ICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMCwgMTEwKSI+CisgICAgPHJlY3QgeD0iMCIgeT0iMCIg
d2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJyZWQiLz4KKyAgICA8cmVjdCB4PSIyNSIgeT0i
MjUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0iYmx1ZSIvPgorPC9nPgorPGcgZmlsdGVy
PSJ1cmwoIzJ4MTApIiAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTEwLCAxMTApIj4KKyAgICA8cmVj
dCB4PSIwIiB5PSIwIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9InJlZCIvPgorICAgIDxy
ZWN0IHg9IjI1IiB5PSIyNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJibHVlIi8+Cis8
L2c+Cis8ZyBmaWx0ZXI9InVybCgjMXgxKSIgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIxMCwgMTEw
KSI+CisgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJy
ZWQiLz4KKyAgICA8cmVjdCB4PSIyNSIgeT0iMjUiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmls
bD0iYmx1ZSIvPgorPC9nPgorPGcgZmlsdGVyPSJ1cmwoIzEweDEwMCkiICB0cmFuc2Zvcm09InRy
YW5zbGF0ZSgzMTAsIDExMCkiPgorICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI1MCIgaGVp
Z2h0PSI1MCIgZmlsbD0icmVkIi8+CisgICAgPHJlY3QgeD0iMjUiIHk9IjI1IiB3aWR0aD0iNTAi
IGhlaWdodD0iNTAiIGZpbGw9ImJsdWUiLz4KKzwvZz4KKzxnIGZpbHRlcj0idXJsKCMxNXgxNSki
ICB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0MTAsIDExMCkiPgorICAgIDxyZWN0IHg9IjAiIHk9IjAi
IHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0icmVkIi8+CisgICAgPHJlY3QgeD0iMjUiIHk9
IjI1IiB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9ImJsdWUiLz4KKzwvZz4KKzwvc3ZnPgpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9maWx0ZXJzL2ZlR2F1c3NpYW5CbHVy
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2ZpbHRlcnMv
ZmVHYXVzc2lhbkJsdXItZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5
cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQURPMmxEUTFCSlEwTWdVSEp2Wm1sc1pRQUFlQUdGCmxF
dG8xRkFVaHYrTUtZSzBncWkxRnBUZ1FvdTBKVDdRaWxEYmFiWFdrWEVZKzlBaXlEUnpaeHBOTXpH
WkdSK0lTRUhjK1ZxS0d4K0kKaXlyaVFycFFjS1VMa1VMcmExRUVjYVVpaUVJM1VzYi9KdTFNS2xZ
dkpQbHl6bi9QNjRZQVZROVRqbU5GTkdEWXpydkpycWgyNlBDQQp0bmdDVmFoQk5iaFNodWUwSnhM
N2ZhWldQdWV2NmJkUXBHV3lTY2FLOVIyWStMUnQ5ZjFMajJMdjY1NzIrcDc1K25sdk5TNFRBb3BH
CjY0cHN3RnNsRHdhOFYvTEp2Sk9uNW9oa1l5aVZKanZrUnJjbjJVRytRVjZhRGZGZ2lOUENNNENx
Tm1weWh1TXlUbVFGdWFWb1pHWE0KVWJKdXAwMmJQQ1h0YWM4WXBvYjlSbjdJV2RER2xZOEJyV3VB
UlM4cnRnRVBHTDBMckZwZnNUWFVBU3Y3Z2JFdEZkdlBwRDhmcFhiYwp5MnpaN0lkVHFxT3M2VU9w
OUhNOXNQZ2FNSE8xVlBwMXExU2F1YzBjck9PWlpSVGNvcTlsWWNvcklLZzMyTTM0eVRsYWlJT2Vm
RlVMCmNKTno3RjhDeEM0QTF6OENHeDRBeXg4RGlScWdad2NpNTlsdWNPWEZLYzRGNk1nNXAxMHpP
NVRYTnV2NmRxMmRSeXUwYnR0b2J0UlMKbHFYNUxrOXpoU2Zjb2tnM1k5Z3FjTTcrV3NaN3RiQjdE
L0xKL2lMbmhMZDdscFdSZEtxVHMwUXoyL3FTRnAyN3lZM2tleGx6VHplNQpnZGRVeHQzVEc3Q3kw
Y3gzOXdRYzZiT3RPTTlGYWlKMTltRDhBSm54RmRYSlIrVThKSTk0eFlNeXBtOC9sdHFYSU5mVG5q
eWVpMGxOCkxmZTJuUm5xNFJsSlZxd3pReDN4V1g3dEZwSXk3enBxN2ppVy84Mnp0c2h6SElZRkFS
TTI3elkwSk5HRktKcmd3RVVPR1hwTUtreGEKcFYvUWFzTEQ4YjhxTFNUS3V5d3F1dkNaZXo3N2Uw
Nmd3TjB5ZmgraWNZdzBsaU5vK2p2OW0vNUd2Nm5mMGI5ZXFTODBWRHdqN2xIVApHTC84blhGbFps
bU5qQnZVS09QTG1vTDRCcXR0cDlkQ2x0WmhYa0ZQWGxuZkZLNHVZMStwTDNzMG1VTmNqRStIdWhT
aFRFMFlaRHpaCnRleStTTGI0SnZ4OGM5a1dtaDYxTDg0K3FhdmtlcU9PSFptc2ZuRTJYQTFyLzdP
cllOS3lxL0RralpBdVBHdWhybFUzcWQxcWk3b0QKbXJwTGJWTmIxVTYrN1ZUM2wzZjBjbFltVHJK
dWw5V24ySU9OMC9SV1Ryb3lXd1QvRm40eC9DOTFDVnU0cHFISmYyakN6V1ZNUy9pTwo0UFlmZDBq
NUwvd05BWVVWRFh4TE96c0FBQ0FBU1VSQlZIZ0I3ZDFSanR2bXRvVFI5SVhuUCtXK3dSbUFRUkdN
L3BLKzVWZFQ0cTVWCjdRQ0Zmc2pQNzc5Ly92R0hBQUVDQkFnUUlFQ0FBQUVDYnhENHZ6ZTh3eXNJ
RUNCQWdBQUJBZ1FJRUNEd1B3RUR4QThDQVFJRUNCQWcKUUlBQUFRSnZFekJBM2tidFJRUUlFQ0JB
Z0FBQkFnUUlHQ0IrQmdnUUlFQ0FBQUVDQkFnUWVKdUFBZkkyYWk4aVFJQUFBUUlFQ0JBZwpRTUFB
OFROQWdBQUJBZ1FJRUNCQWdNRGJCQXlRdDFGN0VRRUNCQWdRSUVDQUFBRUNCb2lmQVFJRUNCQWdR
SUFBQVFJRTNpWmdnTHlOCjJvc0lFQ0JBZ0FBQkFnUUlFUGh6bWVEbjUvS2owdzkreS8vNFhSOWJQ
MmI2ME1kL0llQy9WLytGNnYzdi9KWSs3Z3Y0SkFFQ0JCNFIKOEJ1UVJ4aDlDUUVDQkFnUUlFQ0FB
QUVDVndRTWtDdEtuaUZBZ0FBQkFnUUlFQ0JBNEJFQkErUVJSbDlDZ0FBQkFnUUlFQ0JBZ01BVgpB
UVBraXBKbkNCQWdRSUFBQVFJRUNCQjRSTUFBZVlUUmx4QWdRSUFBQVFJRUNCQWdjRVhBQUxtaTVC
a0NCQWdRSUVDQUFBRUNCQjRSCk1FQWVZZlFsQkFnUUlFQ0FBQUVDQkFoY0VUQkFyaWg1aGdBQkFn
UUlFQ0JBZ0FDQlJ3UU1rRWNZZlFrQkFnUUlFQ0JBZ0FBQkFsY0UKREpBclNwNGhRSUFBQVFJRUNC
QWdRT0FSQVFQa0VVWmZRb0FBQVFJRUNCQWdRSURBRlFFRDVJcVNad2dRSUVDQUFBRUNCQWdRZUVU
QQpBSG1FMFpjUUlFQ0FBQUVDQkFnUUlIQkZ3QUM1b3VRWkFnUUlFQ0JBZ0FBQkFnUWVFVEJBSG1I
MEpRUUlFQ0JBZ0FBQkFnUUlYQkV3ClFLNG9lWVlBQVFJRUNCQWdRSUFBZ1VjRURKQkhHSDBKQVFJ
RUNCQWdRSUFBQVFKWEJBeVFLMHFlSVVDQUFBRUNCQWdRSUVEZ0VRRUQKNUJGR1gwS0FBQUVDQkFn
UUlFQ0F3QlVCQStTS2ttY0lFQ0JBZ0FBQkFnUUlFSGhFd0FCNWhOR1hFQ0JBZ0FBQkFnUUlFQ0J3
UmNBQQp1YUxrR1FJRUNCQWdRSUFBQVFJRUhoRXdRQjVoOUNVRUNCQWdRSUFBQVFJRUNGd1JNRUN1
S0htR0FBRUNCQWdRSUVDQUFJRkhCUDQ4CjhpMFBmY25QUDc4UGZkTmZ2dWJuTDMvMzBGLzl2aUhH
UTZmKzlXdjA4VmVldC8rbFB0NU8vdGNYNnVPdlBHLy9TMzI4bmR3TENSQWcKY0Z2QWIwQnUwL2tn
QVFJRUNCQWdRSUFBQVFLdkNoZ2dyNHA1bmdBQkFnUUlFQ0JBZ0FDQjJ3SUd5RzA2SHlSQWdBQUJB
Z1FJRUNCQQo0RlVCQStSVk1jOFRJRUNBQUFFQ0JBZ1FJSEJid0FDNVRlZURCQWdRSUVDQUFBRUNC
QWk4S21DQXZDcm1lUUlFQ0JBZ1FJQUFBUUlFCmJnc1lJTGZwZkpBQUFRSUVDQkFnUUlBQWdWY0ZE
SkJYeFR4UGdBQUJBZ1FJRUNCQWdNQnRBUVBrTnAwUEVpQkFnQUFCQWdRSUVDRHcKcW9BQjhxcVk1
d2tRSUVDQUFBRUNCQWdRdUMxZ2dOeW04MEVDQkFnUUlFQ0FBQUVDQkY0Vk1FQmVGZk04QVFJRUNC
QWdRSUFBQVFLMwpCUXlRMjNRK1NJQUFBUUlFQ0JBZ1FJREFxd0lHeUt0aW5pZEFnQUFCQWdRSUVD
QkE0TGFBQVhLYnpnY0pFQ0JBZ0FBQkFnUUlFSGhWCndBQjVWY3p6QkFnUUlFQ0FBQUVDQkFqY0Zq
QkFidFA1SUFFQ0JBZ1FJRUNBQUFFQ3J3b1lJSytLZVo0QUFRSUVDQkFnUUlBQWdkc0MKQnNodE9o
OGtRSUFBQVFJRUNCQWdRT0JWQVFQa1ZUSFBFeUJBZ0FBQkFnUUlFQ0J3VzhBQXVVM25nd1FJRUNC
QWdBQUJBZ1FJdkNwZwpnTHdxNW5rQ0JBZ1FJRUNBQUFFQ0JHNExHQ0MzNlh5UUFBRUNCQWdRSUVD
QUFJRlhCUXlRVjhVOFQ0QUFBUUlFQ0JBZ1FJREFiWUUvCmx6LzUrM3Y1MGRzUC90eitaTytEK3Rq
cVhCLzYyQkxZdXNhL2o2MCtYRU9BQUlIREFuNERjcmdBcnlkQWdBQUJBZ1FJRUNCUUVqQkEKU20z
TFNvQUFBUUlFQ0JBZ1FPQ3dnQUZ5dUFDdkowQ0FBQUVDQkFnUUlGQVNNRUJLYmN0S2dBQUJBZ1FJ
RUNCQTRMQ0FBWEs0QUs4bgpRSUFBQVFJRUNCQWdVQkl3UUVwdHkwcUFBQUVDQkFnUUlFRGdzSUFC
Y3JnQXJ5ZEFnQUFCQWdRSUVDQlFFakJBU20zTFNvQUFBUUlFCkNCQWdRT0N3Z0FGeXVBQ3ZKMENB
QUFFQ0JBZ1FJRkFTTUVCS2JjdEtnQUFCQWdRSUVDQkE0TENBQVhLNEFLOG5RSUFBQVFJRUNCQWcK
VUJJd1FFcHR5MHFBQUFFQ0JBZ1FJRURnc0lBQmNyZ0FyeWRBZ0FBQkFnUUlFQ0JRRWpCQVNtM0xT
b0FBQVFJRUNCQWdRT0N3Z0FGeQp1QUN2SjBDQUFBRUNCQWdRSUZBU01FQktiY3RLZ0FBQkFnUUlF
Q0JBNExDQUFYSzRBSzhuUUlBQUFRSUVDQkFnVUJJd1FFcHR5MHFBCkFBRUNCQWdRSUVEZ3NJQUJj
cmdBcnlkQWdBQUJBZ1FJRUNCUUVqQkFTbTNMU29BQUFRSUVDQkFnUU9Dd2dBRnl1QUN2SjBDQUFB
RUMKQkFnUUlGQVNNRUJLYmN0S2dBQUJBZ1FJRUNCQTRMQ0FBWEs0QUs4blFJQUFBUUlFQ0JBZ1VC
SXdRRXB0eTBxQUFBRUNCQWdRSUVEZwpzTURQNzc5L0R0L2c5UVFJRUNCQWdBQUJBZ1FJUkFUOEJp
UlN0SmdFQ0JBZ1FJQUFBUUlFRmdRTWtJVVczRUNBQUFFQ0JBZ1FJRUFnCkltQ0FSSW9Xa3dBQkFn
UUlFQ0JBZ01DQ2dBR3kwSUliQ0JBZ1FJQUFBUUlFQ0VRRURKQkkwV0lTSUVDQUFBRUNCQWdRV0JB
d1FCWmEKY0FNQkFnUUlFQ0JBZ0FDQmlJQUJFaWxhVEFJRUNCQWdRSUFBQVFJTEFnYklRZ3R1SUVD
QUFBRUNCQWdRSUJBUk1FQWlSWXRKZ0FBQgpBZ1FJRUNCQVlFSEFBRmxvd1EwRUNCQWdRSUFBQVFJ
RUlnSUdTS1JvTVFrUUlFQ0FBQUVDQkFnc0NCZ2dDeTI0Z1FBQkFnUUlFQ0JBCmdFQkV3QUNKRkMw
bUFRSUVDQkFnUUlBQWdRVUJBMlNoQlRjUUlFQ0FBQUVDQkFnUWlBZ1lJSkdpeFNSQWdBQUJBZ1FJ
RUNDd0lHQ0EKTExUZ0JnSUVDQkFnUUlBQUFRSVJBUU1rVXJTWUJBZ1FJRUNBQUFFQ0JCWUVESkNG
RnR4QWdBQUJBZ1FJRUNCQUlDSmdnRVNLRnBNQQpBUUlFQ0JBZ1FJREFnb0FCc3RDQ0d3Z1FJRUNB
QUFFQ0JBaEVCQXlRU05GaUVpQkFnQUFCQWdRSUVGZ1FNRUFXV25BREFRSUVDQkFnClFJQUFnWWlB
QVJJcFdrd0NCQWdRSUVDQUFBRUNDd0lHeUVJTGJpQkFnQUFCQWdRSUVDQVFFZmh6T2VmUHorVkhw
eC84L1owKzcvSngKK3JoTTlaWUg5ZkVXNXNzdjBjZGxxcmM4cUkrM01Ic0pBUUlFUGtYQWIwQStw
U2wzRWlCQWdBQUJBZ1FJRVBnQ0FRUGtDMG9VZ1FBQgpBZ1FJRUNCQWdNQ25DQmdnbjlLVU93a1FJ
RUNBQUFFQ0JBaDhnWUFCOGdVbGlrQ0FBQUVDQkFnUUlFRGdVd1FNa0U5cHlwMEVDQkFnClFJQUFB
UUlFdmtEQUFQbUNFa1VnUUlBQUFRSUVDQkFnOENrQ0JzaW5OT1ZPQWdRSUVDQkFnQUFCQWw4Z1lJ
QjhRWWtpRUNCQWdBQUIKQWdRSUVQZ1VBUVBrVTVweUp3RUNCQWdRSUVDQUFJRXZFREJBdnFCRUVR
Z1FJRUNBQUFFQ0JBaDhpb0FCOGlsTnVaTUFBUUlFQ0JBZwpRSURBRndnWUlGOVFvZ2dFQ0JBZ1FJ
QUFBUUlFUGtYQUFQbVVwdHhKZ0FBQkFnUUlFQ0JBNEFzRURKQXZLRkVFQWdRSUVDQkFnQUFCCkFw
OGlZSUI4U2xQdUpFQ0FBQUVDQkFnUUlQQUZBZ2JJRjVRb0FnRUNCQWdRSUVDQUFJRlBFVEJBUHFV
cGR4SWdRSUFBQVFJRUNCRDQKQWdFRDVBdEtGSUVBQVFJRUNCQWdRSURBcHdnWUlKL1NsRHNKRUNC
QWdBQUJBZ1FJZklHQUFmSUZKWXBBZ0FBQkFnUUlFQ0JBNEZNRQpESkJQYWNxZEJBZ1FJRUNBQUFF
Q0JMNUF3QUQ1Z2hKRklFQ0FBQUVDQkFnUUlQQXBBZ2JJcHpUbFRnSUVDQkFnUUlBQUFRSmZJR0NB
CmZFR0pJaEFnUUlBQUFRSUVDQkQ0RklFL1M0ZisvUFA3MzUvejg5Ky80dmNOTWY3N0ZQLzhvNDkz
S0Y5L2h6NnVXNzNqU1gyOFEvbjYKTy9SeDNjcVRCQWdRT0MzZ055Q25HL0IrQWdRSUVDQkFnQUFC
QWlFQkF5UlV0cWdFQ0JBZ1FJQUFBUUlFVGdzWUlLY2I4SDRDQkFnUQpJRUNBQUFFQ0lRRURKRlMy
cUFRSUVDQkFnQUFCQWdST0N4Z2dweHZ3ZmdJRUNCQWdRSUFBQVFJaEFRTWtWTGFvQkFnUUlFQ0FB
QUVDCkJFNExHQ0NuRy9CK0FnUUlFQ0JBZ0FBQkFpRUJBeVJVdHFnRUNCQWdRSUFBQVFJRVRnc1lJ
S2NiOEg0Q0JBZ1FJRUNBQUFFQ0lRRUQKSkZTMnFBUUlFQ0JBZ0FBQkFnUk9DeGdncHh2d2ZnSUVD
QkFnUUlBQUFRSWhBUU1rVkxhb0JBZ1FJRUNBQUFFQ0JFNExHQ0NuRy9CKwpBZ1FJRUNCQWdBQUJB
aUVCQXlSVXRxZ0VDQkFnUUlBQUFRSUVUZ3NZSUtjYjhINENCQWdRSUVDQUFBRUNJUUVESkZTMnFB
UUlFQ0JBCmdBQUJBZ1JPQ3hnZ3B4dndmZ0lFQ0JBZ1FJQUFBUUloQVFNa1ZMYW9CQWdRSUVDQUFB
RUNCRTRMR0NDbkcvQitBZ1FJRUNCQWdBQUIKQWlFQkF5UlV0cWdFQ0JBZ1FJQUFBUUlFVGdzWUlL
Y2I4SDRDQkFnUUlFQ0FBQUVDSVFFREpGUzJxQVFJRUNCQWdBQUJBZ1JPQ3hnZwpweHZ3ZmdJRUNC
QWdRSUFBQVFJaEFRTWtWTGFvQkFnUUlFQ0FBQUVDQkU0TC9MbDh3Ty92NVVkdlAvaHorNU85RCtw
anEzTjk2R05MCllPc2EvejYyK25BTkFRSUVEZ3Y0RGNqaEFyeWVBQUVDQkFnUUlFQ0FRRW5BQUNt
MUxTc0JBZ1FJRUNCQWdBQ0J3d0lHeU9FQ3ZKNEEKQVFJRUNCQWdRSUJBU2NBQUtiVXRLd0VDQkFn
UUlFQ0FBSUhEQWdiSTRRSzhuZ0FCQWdRSUVDQkFnRUJKd0FBcHRTMHJBUUlFQ0JBZwpRSUFBZ2NN
Q0JzamhBcnllQUFFQ0JBZ1FJRUNBUUVuQUFDbTFMU3NCQWdRSUVDQkFnQUNCd3dJR3lPRUN2SjRB
QVFJRUNCQWdRSUJBClNjQUFLYlV0S3dFQ0JBZ1FJRUNBQUlIREFnYkk0UUs4bmdBQkFnUUlFQ0JB
Z0VCSndBQXB0UzByQVFJRUNCQWdRSUFBZ2NNQ0JzamgKQXJ5ZUFBRUNCQWdRSUVDQVFFbkFBQ20x
TFNzQkFnUUlFQ0JBZ0FDQnd3SUd5T0VDdko0QUFRSUVDQkFnUUlCQVNjQUFLYlV0S3dFQwpCQWdR
SUVDQUFJSERBZ2JJNFFLOG5nQUJBZ1FJRUNCQWdFQkp3QUFwdFMwckFRSUVDQkFnUUlBQWdjTUNC
c2poQXJ5ZUFBRUNCQWdRCklFQ0FRRW5BQUNtMUxTc0JBZ1FJRUNCQWdBQ0J3d0lHeU9FQ3ZKNEFB
UUlFQ0JBZ1FJQkFTY0FBS2JVdEt3RUNCQWdRSUVDQUFJSEQKQWdiSTRRSzhuZ0FCQWdRSUVDQkFn
RUJKd0FBcHRTMHJBUUlFQ0JBZ1FJQUFnY01DUDcvLy9qbDhnOWNUSUVDQUFBRUNCQWdRSUJBUgo4
QnVRU05GaUVpQkFnQUFCQWdRSUVGZ1FNRUFXV25BREFRSUVDQkFnUUlBQWdZaUFBUklwV2t3Q0JB
Z1FJRUNBQUFFQ0N3SUd5RUlMCmJpQkFnQUFCQWdRSUVDQVFFVEJBSWtXTFNZQUFBUUlFQ0JBZ1FH
QkJ3QUJaYU1FTkJBZ1FJRUNBQUFFQ0JDSUNCa2lrYURFSkVDQkEKZ0FBQkFnUUlMQWdZSUFzdHVJ
RUFBUUlFQ0JBZ1FJQkFSTUFBaVJRdEpnRUNCQWdRSUVDQUFJRUZBUU5rb1FVM0VDQkFnQUFCQWdR
SQpFSWdJR0NDUm9zVWtRSUFBQVFJRUNCQWdzQ0JnZ0N5MDRBWUNCQWdRSUVDQUFBRUNFUUVESkZL
MG1BUUlFQ0JBZ0FBQkFnUVdCQXlRCmhSYmNRSUFBQVFJRUNCQWdRQ0FpWUlCRWloYVRBQUVDQkFn
UUlFQ0F3SUtBQWJMUWdoc0lFQ0JBZ0FBQkFnUUlSQVFNa0VqUlloSWcKUUlBQUFRSUVDQkJZRURC
QUZscHdBd0VDQkFnUUlFQ0FBSUdJZ0FFU0tWcE1BZ1FJRUNCQWdBQUJBZ3NDQnNoQ0MyNGdRSUFB
QVFJRQpDQkFnRUJFd1FDSkZpMG1BQUFFQ0JBZ1FJRUJnUWNBQVdXakJEUVFJRUNCQWdBQUJBZ1Fp
QWdaSXBHZ3hDUkFnUUlBQUFRSUVDQ3dJCkdDQUxMYmlCQUFFQ0JBZ1FJRUNBUUVUQUFJa1VMU1lC
QWdRSUVDQkFnQUNCQlFFRFpLRUZOeEFnUUlBQUFRSUVDQkNJQ0JnZ2thTEYKSkVDQUFBRUNCQWdR
SUxBZ1lJQXN0T0FHQWdRSUVDQkFnQUFCQWhFQkF5UlN0SmdFQ0JBZ1FJQUFBUUlFRmdRTWtJVVcz
RUNBQUFFQwpCQWdRSUVBZ0ltQ0FSSW9Xa3dBQkFnUUlFQ0JBZ01DQ2dBR3kwSUliQ0JBZ1FJQUFB
UUlFQ0VRRURKQkkwV0lTSUVDQUFBRUNCQWdRCldCQXdRQlphY0FNQkFnUUlFQ0JBZ0FDQmlJQUJF
aWxhVEFJRUNCQWdRSUFBQVFJTEFnYklRZ3R1SUVDQUFBRUNCQWdRSUJBUk1FQWkKUll0SmdBQUJB
Z1FJRUNCQVlFSEFBRmxvd1EwRUNCQWdRSUFBQVFJRUlnSUdTS1JvTVFrUUlFQ0FBQUVDQkFnc0NC
Z2dDeTI0Z1FBQgpBZ1FJRUNCQWdFQkV3QUNKRkMwbUFRSUVDQkFnUUlBQWdRVUJBMlNoQlRjUUlF
Q0FBQUVDQkFnUWlBZ1lJSkdpeFNSQWdBQUJBZ1FJCkVDQ3dJR0NBTExUZ0JnSUVDQkFnUUlBQUFR
SVJBUU1rVXJTWUJBZ1FJRUNBQUFFQ0JCWUVESkNGRnR4QWdBQUJBZ1FJRUNCQUlDSmcKZ0VTS0Zw
TUFBUUlFQ0JBZ1FJREFnb0FCc3RDQ0d3Z1FJRUNBQUFFQ0JBaEVCQXlRU05GaUVpQkFnQUFCQWdR
SUVGZ1FNRUFXV25BRApBUUlFQ0JBZ1FJQUFnWWlBQVJJcFdrd0NCQWdRSUVDQUFBRUNDd0lHeUVJ
TGJpQkFnQUFCQWdRSUVDQVFFVEJBSWtXTFNZQUFBUUlFCkNCQWdRR0JCd0FCWmFNRU5CQWdRSUVD
QUFBRUNCQ0lDQmtpa2FERUpFQ0JBZ0FBQkFnUUlMQWdZSUFzdHVJRUFBUUlFQ0JBZ1FJQkEKUk1B
QWlSUXRKZ0VDQkFnUUlFQ0FBSUVGQVFOa29RVTNFQ0JBZ0FBQkFnUUlFSWdJR0NDUm9zVWtRSUFB
QVFJRUNCQWdzQ0JnZ0N5MAo0QVlDQkFnUUlFQ0FBQUVDRVFFREpGSzBtQVFJRUNCQWdBQUJBZ1FX
QkF5UWhSYmNRSUFBQVFJRUNCQWdRQ0FpWUlCRWloYVRBQUVDCkJBZ1FJRUNBd0lLQUFiTFFnaHNJ
RUNCQWdBQUJBZ1FJUkFRTWtFalJZaElnUUlBQUFRSUVDQkJZRURCQUZscHdBd0VDQkFnUUlFQ0EK
QUlHSWdBRVNLVnBNQWdRSUVDQkFnQUFCQWdzQ0JzaENDMjRnUUlBQUFRSUVDQkFnRUJFd1FDSkZp
MG1BQUFFQ0JBZ1FJRUJnUWNBQQpXV2pCRFFRSUVDQkFnQUFCQWdRaUFnWklwR2d4Q1JBZ1FJQUFB
UUlFQ0N3SUdDQUxMYmlCQUFFQ0JBZ1FJRUNBUUVUQUFJa1VMU1lCCkFnUUlFQ0JBZ0FDQkJRRURa
S0VGTnhBZ1FJQUFBUUlFQ0JDSUNCZ2drYUxGSkVDQUFBRUNCQWdRSUxBZ1lJQXN0T0FHQWdRSUVD
QkEKZ0FBQkFoRUJBeVJTdEpnRUNCQWdRSUFBQVFJRUZnUU1rSVVXM0VDQUFBRUNCQWdRSUVBZ0lt
Q0FSSW9Xa3dBQkFnUUlFQ0JBZ01DQwpnQUd5MElJYkNCQWdRSUFBQVFJRUNFUUVESkJJMFdJU0lF
Q0FBQUVDQkFnUVdCQXdRQlphY0FNQkFnUUlFQ0JBZ0FDQmlJQUJFaWxhClRBSUVDQkFnUUlBQUFR
SUxBZ2JJUWd0dUlFQ0FBQUVDQkFnUUlCQVJNRUFpUll0SmdBQUJBZ1FJRUNCQVlFSEFBRmxvd1Ew
RUNCQWcKUUlBQUFRSUVJZ0lHU0tSb01Ra1FJRUNBQUFFQ0JBZ3NDQmdnQ3kyNGdRQUJBZ1FJRUNC
QWdFQkV3QUNKRkMwbUFRSUVDQkFnUUlBQQpnUVVCQTJTaEJUY1FJRUNBQUFFQ0JBZ1FpQWdZSUpH
aXhTUkFnQUFCQWdRSUVDQ3dJR0NBTExUZ0JnSUVDQkFnUUlBQUFRSVJBUU1rClVyU1lCQWdRSUVD
QUFBRUNCQllFREpDRkZ0eEFnQUFCQWdRSUVDQkFJQ0pnZ0VTS0ZwTUFBUUlFQ0JBZ1FJREFnb0FC
c3RDQ0d3Z1EKSUVDQUFBRUNCQWhFQkF5UVNORmlFaUJBZ0FBQkFnUUlFRmdRTUVBV1duQURBUUlF
Q0JBZ1FJQUFnWWlBQVJJcFdrd0NCQWdRSUVDQQpBQUVDQ3dJR3lFSUxiaUJBZ0FBQkFnUUlFQ0FR
RVRCQUlrV0xTWUFBQVFJRUNCQWdRR0JCd0FCWmFNRU5CQWdRSUVDQUFBRUNCQ0lDCkJraWthREVK
RUNCQWdBQUJBZ1FJTEFnWUlBc3R1SUVBQVFJRUNCQWdRSUJBUk1BQWlSUXRKZ0VDQkFnUUlFQ0FB
SUVGQVFOa29RVTMKRUNCQWdBQUJBZ1FJRUlnSUdDQ1Jvc1VrUUlBQUFRSUVDQkFnc0NCZ2dDeTA0
QVlDQkFnUUlFQ0FBQUVDRVFFREpGSzBtQVFJRUNCQQpnQUFCQWdRV0JBeVFoUmJjUUlBQUFRSUVD
QkFnUUNBaVlJQkVpaGFUQUFFQ0JBZ1FJRUNBd0lLQUFiTFFnaHNJRUNCQWdBQUJBZ1FJClJBUU1r
RWpSWWhJZ1FJQUFBUUlFQ0JCWUVEQkFGbHB3QXdFQ0JBZ1FJRUNBQUlHSWdBRVNLVnBNQWdRSUVD
QkFnQUFCQWdzQ0JzaEMKQzI0Z1FJQUFBUUlFQ0JBZ0VCRXdRQ0pGaTBtQUFBRUNCQWdRSUVCZ1Fj
QUFXV2pCRFFRSUVDQkFnQUFCQWdRaUFnWklwR2d4Q1JBZwpRSUFBQVFJRUNDd0lHQ0FMTGJpQkFB
RUNCQWdRSUVDQVFFVEFBSWtVTFNZQkFnUUlFQ0JBZ0FDQkJRRURaS0VGTnhBZ1FJQUFBUUlFCkNC
Q0lDQmdna2FMRkpFQ0FBQUVDQkFnUUlMQWdZSUFzdE9BR0FnUUlFQ0JBZ0FBQkFoRUJBeVJTdEpn
RUNCQWdRSUFBQVFJRUZnUU0Ka0lVVzNFQ0FBQUVDQkFnUUlFQWdJbUNBUklvV2t3QUJBZ1FJRUNC
QWdNQ0NnQUd5MElJYkNCQWdRSUFBQVFJRUNFUUVESkJJMFdJUwpJRUNBQUFFQ0JBZ1FXQkF3UUJa
YWNBTUJBZ1FJRUNCQWdBQ0JpSUFCRWlsYVRBSUVDQkFnUUlBQUFRSUxBZ2JJUWd0dUlFQ0FBQUVD
CkJBZ1FJQkFSTUVBaVJZdEpnQUFCQWdRSUVDQkFZRUhBQUZsb3dRMEVDQkFnUUlBQUFRSUVJZ0lH
U0tSb01Ra1FJRUNBQUFFQ0JBZ3MKQ0JnZ0N5MjRnUUFCQWdRSUVDQkFnRUJFd0FDSkZDMG1BUUlF
Q0JBZ1FJQUFnUVVCQTJTaEJUY1FJRUNBQUFFQ0JBZ1FpQWdZSUpHaQp4U1JBZ0FBQkFnUUlFQ0N3
SUdDQUxMVGdCZ0lFQ0JBZ1FJQUFBUUlSQVFNa1VyU1lCQWdRSUVDQUFBRUNCQllFREpDRkZ0eEFn
QUFCCkFnUUlFQ0JBSUNKZ2dFU0tGcE1BQVFJRUNCQWdRSURBZ29BQnN0Q0NHd2dRSUVDQUFBRUNC
QWhFQkF5UVNORmlFaUJBZ0FBQkFnUUkKRUZnUU1FQVdXbkFEQVFJRUNCQWdRSUFBZ1lpQUFSSXBX
a3dDQkFnUUlFQ0FBQUVDQ3dJR3lFSUxiaUJBZ0FBQkFnUUlFQ0FRRVRCQQpJa1dMU1lBQUFRSUVD
QkFnUUdCQndBQlphTUVOQkFnUUlFQ0FBQUVDQkNJQ0JraWthREVKRUNCQWdBQUJBZ1FJTEFnWUlB
c3R1SUVBCkFRSUVDQkFnUUlCQVJNQUFpUlF0SmdFQ0JBZ1FJRUNBQUlFRkFRTmtvUVUzRUNCQWdB
QUJBZ1FJRUlnSUdDQ1Jvc1VrUUlBQUFRSUUKQ0JBZ3NDQmdnQ3kwNEFZQ0JBZ1FJRUNBQUFFQ0VR
RURKRkswbUFRSUVDQkFnQUFCQWdRV0JBeVFoUmJjUUlBQUFRSUVDQkFnUUNBaQpZSUJFaWhhVEFB
RUNCQWdRSUVDQXdJS0FBYkxRZ2hzSUVDQkFnQUFCQWdRSVJBUU1rRWpSWWhJZ1FJQUFBUUlFQ0JC
WUVEQkFGbHB3CkF3RUNCQWdRSUVDQUFJR0lnQUVTS1ZwTUFnUUlFQ0JBZ0FBQkFnc0NCc2hDQzI0
Z1FJQUFBUUlFQ0JBZ0VCRXdRQ0pGaTBtQUFBRUMKQkFnUUlFQmdRY0FBV1dqQkRRUUlFQ0JBZ0FB
QkFnUWlBZ1pJcEdneENSQWdRSUFBQVFJRUNDd0lHQ0FMTGJpQkFBRUNCQWdRSUVDQQpRRVRBQUlr
VUxTWUJBZ1FJRUNCQWdBQ0JCUUVEWktFRk54QWdRSUFBQVFJRUNCQ0lDQmdna2FMRkpFQ0FBQUVD
QkFnUUlMQWdZSUFzCnRPQUdBZ1FJRUNCQWdBQUJBaEVCQXlSU3RKZ0VDQkFnUUlBQUFRSUVGZ1FN
a0lVVzNFQ0FBQUVDQkFnUUlFQWdJbUNBUklvV2t3QUIKQWdRSUVDQkFnTUNDZ0FHeTBJSWJDQkFn
UUlBQUFRSUVDRVFFREpCSTBXSVNJRUNBQUFFQ0JBZ1FXQkF3UUJaYWNBTUJBZ1FJRUNCQQpnQUNC
aUlBQkVpbGFUQUlFQ0JBZ1FJQUFBUUlMQWdiSVFndHVJRUNBQUFFQ0JBZ1FJQkFSTUVBaVJZdEpn
QUFCQWdRSUVDQkFZRUhBCkFGbG93UTBFQ0JBZ1FJQUFBUUlFSWdJR1NLUm9NUWtRSUVDQUFBRUNC
QWdzQ0JnZ0N5MjRnUUFCQWdRSUVDQkFnRUJFd0FDSkZDMG0KQVFJRUNCQWdRSUFBZ1FVQkEyU2hC
VGNRSUVDQUFBRUNCQWdRaUFnWUlKR2l4U1JBZ0FBQkFnUUlFQ0N3SUdDQUxMVGdCZ0lFQ0JBZwpR
SUFBQVFJUkFRTWtVclNZQkFnUUlFQ0FBQUVDQkJZRURKQ0ZGdHhBZ0FBQkFnUUlFQ0JBSUNKZ2dF
U0tGcE1BQVFJRUNCQWdRSURBCmdvQUJzdENDR3dnUUlFQ0FBQUVDQkFoRUJBeVFTTkZpRWlCQWdB
QUJBZ1FJRUZnUU1FQVdXbkFEQVFJRUNCQWdRSUFBZ1lpQUFSSXAKV2t3Q0JBZ1FJRUNBQUFFQ0N3
SUd5RUlMYmlCQWdBQUJBZ1FJRUNBUUVUQkFJa1dMU1lBQUFRSUVDQkFnUUdCQndBQlphTUVOQkFn
UQpJRUNBQUFFQ0JDSUNCa2lrYURFSkVDQkFnQUFCQWdRSUxBZ1lJQXN0dUlFQUFRSUVDQkFnUUlC
QVJNQUFpUlF0SmdFQ0JBZ1FJRUNBCkFJRUZBUU5rb1FVM0VDQkFnQUFCQWdRSUVJZ0lHQ0NSb3NV
a1FJQUFBUUlFQ0JBZ3NDQmdnQ3kwNEFZQ0JBZ1FJRUNBQUFFQ0VRRUQKSkZLMG1BUUlFQ0JBZ0FB
QkFnUVdCQXlRaFJiY1FJQUFBUUlFQ0JBZ1FDQWlZSUJFaWhhVEFBRUNCQWdRSUVDQXdJS0FBYkxR
Z2hzSQpFQ0JBZ0FBQkFnUUlSQVFNa0VqUlloSWdRSUFBQVFJRUNCQllFREJBRmxwd0F3RUNCQWdR
SUVDQUFJR0lnQUVTS1ZwTUFnUUlFQ0JBCmdBQUJBZ3NDQnNoQ0MyNGdRSUFBQVFJRUNCQWdFQkV3
UUNKRmkwbUFBQUVDQkFnUUlFQmdRY0FBV1dqQkRRUUlFQ0JBZ0FBQkFnUWkKQWdaSXBHZ3hDUkFn
UUlBQUFRSUVDQ3dJR0NBTExiaUJBQUVDQkFnUUlFQ0FRRVRBQUlrVUxTWUJBZ1FJRUNCQWdBQ0JC
UUVEWktFRgpOeEFnUUlBQUFRSUVDQkNJQ0JnZ2thTEZKRUNBQUFFQ0JBZ1FJTEFnWUlBc3RPQUdB
Z1FJRUNCQWdBQUJBaEVCQXlSU3RKZ0VDQkFnClFJQUFBUUlFRmdRTWtJVVczRUNBQUFFQ0JBZ1FJ
RUFnSW1DQVJJb1drd0FCQWdRSUVDQkFnTUNDZ0FHeTBJSWJDQkFnUUlBQUFRSUUKQ0VRRURKQkkw
V0lTSUVDQUFBRUNCQWdRV0JBd1FCWmFjQU1CQWdRSUVDQkFnQUNCaUlBQkVpbGFUQUlFQ0JBZ1FJ
QUFBUUlMQWdiSQpRZ3R1SUVDQUFBRUNCQWdRSUJBUk1FQWlSWXRKZ0FBQkFnUUlFQ0JBWUVIQUFG
bG93UTBFQ0JBZ1FJQUFBUUlFSWdJR1NLUm9NUWtRCklFQ0FBQUVDQkFnc0NCZ2dDeTI0Z1FBQkFn
UUlFQ0JBZ0VCRXdBQ0pGQzBtQVFJRUNCQWdRSUFBZ1FVQkEyU2hCVGNRSUVDQUFBRUMKQkFnUWlB
Z1lJSkdpeFNSQWdBQUJBZ1FJRUNDd0lHQ0FMTFRnQmdJRUNCQWdRSUFBQVFJUkFRTWtVclNZQkFn
UUlFQ0FBQUVDQkJZRQpESkNGRnR4QWdBQUJBZ1FJRUNCQUlDSmdnRVNLRnBNQUFRSUVDQkFnUUlE
QWdvQUJzdENDR3dnUUlFQ0FBQUVDQkFoRUJBeVFTTkZpCkVpQkFnQUFCQWdRSUVGZ1FNRUFXV25B
REFRSUVDQkFnUUlBQWdZaUFBUklwV2t3Q0JBZ1FJRUNBQUFFQ0N3SUd5RUlMYmlCQWdBQUIKQWdR
SUVDQVFFVEJBSWtXTFNZQUFBUUlFQ0JBZ1FHQkJ3QUJaYU1FTkJBZ1FJRUNBQUFFQ0JDSUNCa2lr
YURFSkVDQkFnQUFCQWdRSQpMQWdZSUFzdHVJRUFBUUlFQ0JBZ1FJQkFSTUFBaVJRdEpnRUNCQWdR
SUVDQUFJRUZBUU5rb1FVM0VDQkFnQUFCQWdRSUVJZ0lHQ0NSCm9zVWtRSUFBQVFJRUNCQWdzQ0Jn
Z0N5MDRBWUNCQWdRSUVDQUFBRUNFUUVESkZLMG1BUUlFQ0JBZ0FBQkFnUVdCQXlRaFJiY1FJQUEK
QVFJRUNCQWdRQ0FpWUlCRWloYVRBQUVDQkFnUUlFQ0F3SUtBQWJMUWdoc0lFQ0JBZ0FBQkFnUUlS
QVFNa0VqUlloSWdRSUFBQVFJRQpDQkJZRURCQUZscHdBd0VDQkFnUUlFQ0FBSUdJZ0FFU0tWcE1B
Z1FJRUNCQWdBQUJBZ3NDQnNoQ0MyNGdRSUFBQVFJRUNCQWdFQkV3ClFDSkZpMG1BQUFFQ0JBZ1FJ
RUJnUWNBQVdXakJEUVFJRUNCQWdBQUJBZ1FpQWdaSXBHZ3hDUkFnUUlBQUFRSUVDQ3dJR0NBTExi
aUIKQUFFQ0JBZ1FJRUNBUUVUQUFJa1VMU1lCQWdRSUVDQkFnQUNCQlFFRFpLRUZOeEFnUUlBQUFR
SUVDQkNJQ0JnZ2thTEZKRUNBQUFFQwpCQWdRSUxBZ1lJQXNCb1VVL2dBQUNmUkpSRUZVdE9BR0Fn
UUlFQ0JBZ0FBQkFoRUJBeVJTdEpnRUNCQWdRSUFBQVFJRUZnUU1rSVVXCjNFQ0FBQUVDQkFnUUlF
QWdJbUNBUklvV2t3QUJBZ1FJRUNCQWdNQ0NnQUd5MElJYkNCQWdRSUFBQVFJRUNFUUVESkJJMFdJ
U0lFQ0EKQUFFQ0JBZ1FXQkF3UUJaYWNBTUJBZ1FJRUNCQWdBQ0JpSUFCRWlsYVRBSUVDQkFnUUlB
QUFRSUxBZ2JJUWd0dUlFQ0FBQUVDQkFnUQpJQkFSTUVBaVJZdEpnQUFCQWdRSUVDQkFZRUhBQUZs
b3dRMEVDQkFnUUlBQUFRSUVJZ0lHU0tSb01Ra1FJRUNBQUFFQ0JBZ3NDQmdnCkN5MjRnUUFCQWdR
SUVDQkFnRUJFd0FDSkZDMG1BUUlFQ0JBZ1FJQUFnUVVCQTJTaEJUY1FJRUNBQUFFQ0JBZ1FpQWdZ
SUpHaXhTUkEKZ0FBQkFnUUlFQ0N3SUdDQUxMVGdCZ0lFQ0JBZ1FJQUFBUUlSQVFNa1VyU1lCQWdR
SUVDQUFBRUNCQllFREpDRkZ0eEFnQUFCQWdRSQpFQ0JBSUNKZ2dFU0tGcE1BQVFJRUNCQWdRSURB
Z29BQnN0Q0NHd2dRSUVDQUFBRUNCQWhFQkF5UVNORmlFaUJBZ0FBQkFnUUlFRmdRCk1FQVdXbkFE
QVFJRUNCQWdRSUFBZ1lpQUFSSXBXa3dDQkFnUUlFQ0FBQUVDQ3dJR3lFSUxiaUJBZ0FBQkFnUUlF
Q0FRRVRCQUlrV0wKU1lBQUFRSUVDQkFnUUdCQndBQlphTUVOQkFnUUlFQ0FBQUVDQkNJQ0JraWth
REVKRUNCQWdBQUJBZ1FJTEFnWUlBc3R1SUVBQVFJRQpDQkFnUUlCQVJNQUFpUlF0SmdFQ0JBZ1FJ
RUNBQUlFRkFRTmtvUVUzRUNCQWdBQUJBZ1FJRUlnSUdDQ1Jvc1VrUUlBQUFRSUVDQkFnCnNDQmdn
Q3kwNEFZQ0JBZ1FJRUNBQUFFQ0VRRURKRkswbUFRSUVDQkFnQUFCQWdRV0JBeVFoUmJjUUlBQUFR
SUVDQkFnUUNBaVlJQkUKaWhhVEFBRUNCQWdRSUVDQXdJS0FBYkxRZ2hzSUVDQkFnQUFCQWdRSVJB
UU1rRWpSWWhJZ1FJQUFBUUlFQ0JCWUVEQkFGbHB3QXdFQwpCQWdRSUVDQUFJR0lnQUVTS1ZwTUFn
UUlFQ0JBZ0FBQkFnc0NCc2hDQzI0Z1FJQUFBUUlFQ0JBZ0VCRXdRQ0pGaTBtQUFBRUNCQWdRCklF
QmdRY0FBV1dqQkRRUUlFQ0JBZ0FBQkFnUWlBZ1pJcEdneENSQWdRSUFBQVFJRUNDd0lHQ0FMTGJp
QkFBRUNCQWdRSUVDQVFFVEEKQUlrVUxTWUJBZ1FJRUNCQWdBQ0JCUUVEWktFRk54QWdRSUFBQVFJ
RUNCQ0lDQmdna2FMRkpFQ0FBQUVDQkFnUUlMQWdZSUFzdE9BRwpBZ1FJRUNCQWdBQUJBaEVCQXlS
U3RKZ0VDQkFnUUlBQUFRSUVGZ1FNa0lVVzNFQ0FBQUVDQkFnUUlFQWdJbUNBUklvV2t3QUJBZ1FJ
CkVDQkFnTUNDZ0FHeTBJSWJDQkFnUUlBQUFRSUVDRVFFREpCSTBXSVNJRUNBQUFFQ0JBZ1FXQkF3
UUJaYWNBTUJBZ1FJRUNCQWdBQ0IKaUlBQkVpbGFUQUlFQ0JBZ1FJQUFBUUlMQWdiSVFndHVJRUNB
QUFFQ0JBZ1FJQkFSTUVBaVJZdEpnQUFCQWdRSUVDQkFZRUhBQUZsbwp3UTBFQ0JBZ1FJQUFBUUlF
SWdJR1NLUm9NUWtRSUVDQUFBRUNCQWdzQ0JnZ0N5MjRnUUFCQWdRSUVDQkFnRUJFd0FDSkZDMG1B
UUlFCkNCQWdRSUFBZ1FVQkEyU2hCVGNRSUVDQUFBRUNCQWdRaUFnWUlKR2l4U1JBZ0FBQkFnUUlF
Q0N3SUdDQUxMVGdCZ0lFQ0JBZ1FJQUEKQVFJUkFRTWtVclNZQkFnUUlFQ0FBQUVDQkJZRURKQ0ZG
dHhBZ0FBQkFnUUlFQ0JBSUNKZ2dFU0tGcE1BQVFJRUNCQWdRSURBZ29BQgpzdENDR3dnUUlFQ0FB
QUVDQkFoRUJBeVFTTkZpRWlCQWdBQUJBZ1FJRUZnUU1FQVdXbkFEQVFJRUNCQWdRSUFBZ1lpQUFS
SXBXa3dDCkJBZ1FJRUNBQUFFQ0N3SUd5RUlMYmlCQWdBQUJBZ1FJRUNBUUVUQkFJa1dMU1lBQUFR
SUVDQkFnUUdCQndBQlphTUVOQkFnUUlFQ0EKQUFFQ0JDSUNCa2lrYURFSkVDQkFnQUFCQWdRSUxB
Z1lJQXN0dUlFQUFRSUVDQkFnUUlCQVJNQUFpUlF0SmdFQ0JBZ1FJRUNBQUlFRgpBUU5rb1FVM0VD
QkFnQUFCQWdRSUVJZ0lHQ0NSb3NVa1FJQUFBUUlFQ0JBZ3NDQmdnQ3kwNEFZQ0JBZ1FJRUNBQUFF
Q0VRRURKRkswCm1BUUlFQ0JBZ0FBQkFnUVdCQXlRaFJiY1FJQUFBUUlFQ0JBZ1FDQWlZSUJFaWhh
VEFBRUNCQWdRSUVDQXdJS0FBYkxRZ2hzSUVDQkEKZ0FBQkFnUUlSQVFNa0VqUlloSWdRSUFBQVFJ
RUNCQllFREJBRmxwd0F3RUNCQWdRSUVDQUFJR0lnQUVTS1ZwTUFnUUlFQ0JBZ0FBQgpBZ3NDQnNo
Q0MyNGdRSUFBQVFJRUNCQWdFQkV3UUNKRmkwbUFBQUVDQkFnUUlFQmdRY0FBV1dqQkRRUUlFQ0JB
Z0FBQkFnUWlBZ1pJCnBHZ3hDUkFnUUlBQUFRSUVDQ3dJR0NBTExiaUJBQUVDQkFnUUlFQ0FRRVRB
QUlrVUxTWUJBZ1FJRUNCQWdBQ0JCUUVEWktFRk54QWcKUUlBQUFRSUVDQkNJQ0JnZ2thTEZKRUNB
QUFFQ0JBZ1FJTEFnWUlBc3RPQUdBZ1FJRUNCQWdBQUJBaEVCQXlSU3RKZ0VDQkFnUUlBQQpBUUlF
RmdRTWtJVVczRUNBQUFFQ0JBZ1FJRUFnSW1DQVJJb1drd0FCQWdRSUVDQkFnTUNDZ0FHeTBJSWJD
QkFnUUlBQUFRSUVDRVFFCkRKQkkwV0lTSUVDQUFBRUNCQWdRV0JBd1FCWmFjQU1CQWdRSUVDQkFn
QUNCaUlBQkVpbGFUQUlFQ0JBZ1FJQUFBUUlMQWdiSVFndHUKSUVDQUFBRUNCQWdRSUJBUk1FQWlS
WXRKZ0FBQkFnUUlFQ0JBWUVIQUFGbG93UTBFQ0JBZ1FJQUFBUUlFSWdJR1NLUm9NUWtRSUVDQQpB
QUVDQkFnc0NCZ2dDeTI0Z1FBQkFnUUlFQ0JBZ0VCRXdBQ0pGQzBtQVFJRUNCQWdRSUFBZ1FVQkEy
U2hCVGNRSUVDQUFBRUNCQWdRCmlBZ1lJSkdpeFNSQWdBQUJBZ1FJRUNDd0lHQ0FMTFRnQmdJRUNC
QWdRSUFBQVFJUkFRTWtVclNZQkFnUUlFQ0FBQUVDQkJZRURKQ0YKRnR4QWdBQUJBZ1FJRUNCQUlD
SmdnRVNLRnBNQUFRSUVDQkFnUUlEQWdvQUJzdENDR3dnUUlFQ0FBQUVDQkFoRUJBeVFTTkZpRWlC
QQpnQUFCQWdRSUVGZ1FNRUFXV25BREFRSUVDQkFnUUlBQWdZaUFBUklwV2t3Q0JBZ1FJRUNBQUFF
Q0N3SUd5RUlMYmlCQWdBQUJBZ1FJCkVDQVFFVEJBSWtXTFNZQUFBUUlFQ0JBZ1FHQkJ3QUJaYU1F
TkJBZ1FJRUNBQUFFQ0JDSUNCa2lrYURFSkVDQkFnQUFCQWdRSUxBZ1kKSUFzdHVJRUFBUUlFQ0JB
Z1FJQkFSTUFBaVJRdEpnRUNCQWdRSUVDQUFJRUZBUU5rb1FVM0VDQkFnQUFCQWdRSUVJZ0lHQ0NS
b3NVawpRSUFBQVFJRUNCQWdzQ0JnZ0N5MDRBWUNCQWdRSUVDQUFBRUNFUUVESkZLMG1BUUlFQ0JB
Z0FBQkFnUVdCQXlRaFJiY1FJQUFBUUlFCkNCQWdRQ0FpWUlCRWloYVRBQUVDQkFnUUlFQ0F3SUtB
QWJMUWdoc0lFQ0JBZ0FBQkFnUUlSQVFNa0VqUlloSWdRSUFBQVFJRUNCQlkKRURCQUZscHdBd0VD
QkFnUUlFQ0FBSUdJZ0FFU0tWcE1BZ1FJRUNCQWdBQUJBZ3NDQnNoQ0MyNGdRSUFBQVFJRUNCQWdF
QkV3UUNKRgppMG1BQUFFQ0JBZ1FJRUJnUWNBQVdXakJEUVFJRUNCQWdBQUJBZ1FpQWdaSXBHZ3hD
UkFnUUlBQUFRSUVDQ3dJR0NBTExiaUJBQUVDCkJBZ1FJRUNBUUVUQUFJa1VMU1lCQWdRSUVDQkFn
QUNCQlFFRFpLRUZOeEFnUUlBQUFRSUVDQkNJQ0JnZ2thTEZKRUNBQUFFQ0JBZ1EKSUxBZ1lJQXN0
T0FHQWdRSUVDQkFnQUFCQWhFQkF5UlN0SmdFQ0JBZ1FJQUFBUUlFRmdRTWtJVVczRUNBQUFFQ0JB
Z1FJRUFnSXZELwp6eVpXbXVrd09aUUFBQUFBU1VWT1JLNUNZSUk9Cgo=
</data>
<flag name="review"
          id="22060"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>