<?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>30495</bug_id>
          
          <creation_ts>2009-10-18 13:29:09 -0700</creation_ts>
          <short_desc>Move feGaussianBlur from WebCore/svg to WebCore/platform</short_desc>
          <delta_ts>2009-10-19 11:13:00 -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>WebKit Misc.</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155521</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-10-18 13:29:09 -0700</bug_when>
    <thetext>Qt and Cairo don&apos;t have shadow support. An idea is to use the filter feGaussianBlur from SVG to render shadows. Therefore it is neccessary to move svg/graphics/filters/SVGFEGaussianBlur to platform/graphics/filters/FEGaussianBlur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155522</commentid>
    <comment_count>1</comment_count>
      <attachid>41385</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-10-18 13:33:30 -0700</bug_when>
    <thetext>Created attachment 41385
Move feGaussianBlur out of SVG

patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155531</commentid>
    <comment_count>2</comment_count>
      <attachid>41385</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-18 16:20:08 -0700</bug_when>
    <thetext>Comment on attachment 41385
Move feGaussianBlur out of SVG

Ideally, this patch should be done with &quot;svn move&quot; rather than just copying the file in the new place, to keep the revision history. The tools such as svn-create-patch and svn-apply know how to handle such patches.

Also, I see little point in listing all the functions in the change log for a newly added file.

r=me as is, but please consider doing the patch the better way</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155704</commentid>
    <comment_count>3</comment_count>
      <attachid>41385</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-10-19 08:51:11 -0700</bug_when>
    <thetext>Comment on attachment 41385
Move feGaussianBlur out of SVG

Let commit bot land it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155738</commentid>
    <comment_count>4</comment_count>
      <attachid>41385</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-19 09:26:45 -0700</bug_when>
    <thetext>Comment on attachment 41385
Move feGaussianBlur out of SVG

Rejecting patch 41385 from commit-queue.

Patch https://bugs.webkit.org/attachment.cgi?id=41385 from bug 30495 failed to download and apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155786</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2009-10-19 11:13:00 -0700</bug_when>
    <thetext>Sorry, forgot to close this bug :-(
landed in r49778</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41385</attachid>
            <date>2009-10-18 13:33:30 -0700</date>
            <delta_ts>2009-10-19 09:26:45 -0700</delta_ts>
            <desc>Move feGaussianBlur out of SVG</desc>
            <filename>gauss-move.patch</filename>
            <type>text/plain</type>
            <size>29300</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTc1NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMDktMTAtMTggIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
IGZlR2F1c3NpYW5CbHVyIGZyb20gV2ViQ29yZS9zdmcgdG8gV2ViQ29yZS9wbGF0Zm9ybQorICAg
ICAgICBbaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDk1XQorCisg
ICAgICAgIFRoaXMgcGF0Y2ggbW92ZXMgU1ZHRlJHYXVzc2lhbkJsdXIgZnJvbSBzdmcvZ3JhcGhp
Y3MvZmlsdGVycworICAgICAgICB0byBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3Np
YW5CbHVyLiBUaGlzIGlzIG5lZWRlZAorICAgICAgICBmb3Igc2hhZG93IHN1cHBvcnQgb24gUXQg
YW5kIENhaXJvLgorICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eSwgdGhlcmZvcmUg
bm8gbmV3IHRlc3QgY2FzZSBuZWVkZWQuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICog
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVHYXVzc2lhbkJsdXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5C
bHVyOjpGRUdhdXNzaWFuQmx1cik6CisgICAgICAgIChXZWJDb3JlOjpGRUdhdXNzaWFuQmx1cjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpzdGREZXZpYXRpb25Y
KToKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpzZXRTdGREZXZpYXRpb25YKToK
KyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpzdGREZXZpYXRpb25ZKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpzZXRTdGREZXZpYXRpb25ZKToKKyAgICAgICAg
KFdlYkNvcmU6OmJveEJsdXIpOgorICAgICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OmFw
cGx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZFR2F1c3NpYW5CbHVyOjpkdW1wKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RkVHYXVzc2lhbkJsdXI6OnVuaXRlQ2hpbGRFZmZlY3RTdWJyZWdpb25z
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFR2F1c3NpYW5CbHVyLmg6IFJlbW92ZWQu
CisKIDIwMDktMTAtMTggIEFudG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA0OTc1NikK
KysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTI1OTksNiArMjU5
OSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29tcG9zaXRlLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUdhdXNzaWFuQmx1ci5jcHAgXAorCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUdhdXNzaWFuQmx1ci5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RmlsdGVyLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZl
Y3QuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0
LmggXApAQCAtMzIzOCw4ICszMjQwLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3Jl
L3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFRGlzcGxhY2VtZW50TWFwLmggXAogCVdlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVGbG9vZC5jcHAgXAogCVdlYkNvcmUvc3ZnL2dyYXBo
aWNzL2ZpbHRlcnMvU1ZHRkVGbG9vZC5oIFwKLQlXZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJz
L1NWR0ZFR2F1c3NpYW5CbHVyLmNwcCBcCi0JV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGRUdhdXNzaWFuQmx1ci5oIFwKIAlXZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZF
SW1hZ2UuY3BwIFwKIAlXZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaCBc
CiAJV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRU1lcmdlLmNwcCBcCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQko
cmV2aXNpb24gNDk3NTYpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpA
QCAtMTkzOSw2ICsxOTM5LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VHcmFwaGljLmNwcCcsCkBAIC0zMTUwLDggKzMxNTIsNiBA
QAogICAgICAgICAgICAgJ3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFRGlzcGxhY2VtZW50TWFw
LmgnLAogICAgICAgICAgICAgJ3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFRmxvb2QuY3BwJywK
ICAgICAgICAgICAgICdzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUZsb29kLmgnLAotICAgICAg
ICAgICAgJ3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFR2F1c3NpYW5CbHVyLmNwcCcsCi0gICAg
ICAgICAgICAnc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIuaCcsCiAgICAg
ICAgICAgICAnc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAnLAogICAgICAgICAg
ICAgJ3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaCcsCiAgICAgICAgICAgICAnc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVNZXJnZS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3Jl
LnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA0OTc1NikK
KysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTI3NzgsNiArMjc3OCw3
IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9GSUxURVJTPTEpIHsKICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcCBcCiAgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5jcHAgXAogICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmNwcCBcCisgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuY3BwIFwKICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwCkBAIC0zMDE3LDcgKzMwMTgsNiBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMv
U1ZHRkVEaWZmdXNlTGlnaHRpbmcuY3BwIFwKICAgICAgICAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMv
U1ZHRkVEaXNwbGFjZW1lbnRNYXAuY3BwIFwKICAgICAgICAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMv
U1ZHRkVGbG9vZC5jcHAgXAotICAgICAgICBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUdhdXNz
aWFuQmx1ci5jcHAgXAogICAgICAgICBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNw
cCBcCiAgICAgICAgIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFTWVyZ2UuY3BwIFwKICAgICAg
ICAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVNb3JwaG9sb2d5LmNwcCBcCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDQ5NzU2KQorKysgV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMzQ0NDEs
NiArMzQ0NDEsMTQgQEAKIAkJCQkJCT4NCiAJCQkJCTwvRmlsZT4NCiAJCQkJCTxGaWxlDQorCQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXEZFR2F1c3NpYW5C
bHVyLmNwcCINCisJCQkJCQk+DQorCQkJCQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xGRUdhdXNzaWFuQmx1ci5o
Ig0KKwkJCQkJCT4NCisJCQkJCTwvRmlsZT4NCisJCQkJCTxGaWxlDQogCQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxzdmdcZ3JhcGhpY3NcZmlsdGVyc1xTVkdEaXN0YW50TGlnaHRTb3VyY2UuaCINCiAJ
CQkJCQk+DQogCQkJCQk8L0ZpbGU+DQpAQCAtMzQ0NzcsMTQgKzM0NDg1LDYgQEAKIAkJCQkJCT4N
CiAJCQkJCTwvRmlsZT4NCiAJCQkJCTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdmdc
Z3JhcGhpY3NcZmlsdGVyc1xTVkdGRUdhdXNzaWFuQmx1ci5jcHAiDQotCQkJCQkJPg0KLQkJCQkJ
PC9GaWxlPg0KLQkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xncmFwaGlj
c1xmaWx0ZXJzXFNWR0ZFR2F1c3NpYW5CbHVyLmgiDQotCQkJCQkJPg0KLQkJCQkJPC9GaWxlPg0K
LQkJCQkJPEZpbGUNCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN2Z1xncmFwaGljc1xmaWx0ZXJz
XFNWR0ZFSW1hZ2UuY3BwIg0KIAkJCQkJCT4NCiAJCQkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNDk3NTYpCisrKyBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpA
QCAtMTIyOSw2ICsxMjI5LDggQEAKIAkJODQ1RTcyRjgwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ1RTcy
RjcwRkQyNjFFRTAwQTg3RDc5IC8qIEZpbHRlci5oICovOyB9OwogCQk4NDVFNzJGQjBGRDI2MjM5
MDBBODdENzkgLyogU1ZHRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg0NUU3MkY5MEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIuY3Bw
ICovOyB9OwogCQk4NDVFNzJGQzBGRDI2MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDVFNzJGQTBGRDI2MjM5
MDBBODdENzkgLyogU1ZHRmlsdGVyLmggKi87IH07CisJCTg0ODAxOTU0MTA4QkFGQjMwMENCMkIx
RiAvKiBGRUdhdXNzaWFuQmx1ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NDgwMTk1MjEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIu
Y3BwICovOyB9OworCQk4NDgwMTk1NTEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODAxOTUz
MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oICovOyB9OwogCQk4NDlGNzc3NjBF
RkVDNjIwMDA5MDg0OUQgLyogU3Ryb2tlU3R5bGVBcHBsaWVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDlGNzc3NTBFRkVDNjIwMDA5MDg0OUQgLyog
U3Ryb2tlU3R5bGVBcHBsaWVyLmggKi87IH07CiAJCTg0QTgxRjNEMEZDN0RGRjAwMDk1NTMwMCAv
KiBTb3VyY2VBbHBoYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NEE4MUYzQjBGQzdERkYwMDA5NTUzMDAgLyogU291cmNlQWxwaGEuY3BwICovOyB9
OwogCQk4NEE4MUYzRTBGQzdERkYwMDA5NTUzMDAgLyogU291cmNlQWxwaGEuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0QTgxRjNDMEZDN0RGRjAwMDk1
NTMwMCAvKiBTb3VyY2VBbHBoYS5oICovOyB9OwpAQCAtMzU1NCw4ICszNTU2LDYgQEAKIAkJQjI1
NTk5N0YwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR0ZFRGlzcGxhY2VtZW50TWFwLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OThFNTBEMDBEOEI5MDBC
QjgyNUMgLyogU1ZHRkVEaXNwbGFjZW1lbnRNYXAuaCAqLzsgfTsKIAkJQjI1NTk5ODAwRDAwRDhC
QTAwQkI4MjVDIC8qIFNWR0ZFRmxvb2QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQjI1NTk4RTYwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ZFRmxvb2Qu
Y3BwICovOyB9OwogCQlCMjU1OTk4MTBEMDBEOEJBMDBCQjgyNUMgLyogU1ZHRkVGbG9vZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI1NTk4RTcwRDAw
RDhCOTAwQkI4MjVDIC8qIFNWR0ZFRmxvb2QuaCAqLzsgfTsKLQkJQjI1NTk5ODIwRDAwRDhCQTAw
QkI4MjVDIC8qIFNWR0ZFR2F1c3NpYW5CbHVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OEU4MEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdGRUdh
dXNzaWFuQmx1ci5jcHAgKi87IH07Ci0JCUIyNTU5OTgzMEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdG
RUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQjI1NTk4RTkwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ZFR2F1c3NpYW5CbHVyLmggKi87
IH07CiAJCUIyNTU5OTg0MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdGRUltYWdlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OEVBMEQwMEQ4Qjkw
MEJCODI1QyAvKiBTVkdGRUltYWdlLmNwcCAqLzsgfTsKIAkJQjI1NTk5ODUwRDAwRDhCQTAwQkI4
MjVDIC8qIFNWR0ZFSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIyNTU5OEVCMEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdGRUltYWdlLmggKi87IH07
CiAJCUIyNTU5OTg2MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdGRU1lcmdlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OEVDMEQwMEQ4QjkwMEJC
ODI1QyAvKiBTVkdGRU1lcmdlLmNwcCAqLzsgfTsKQEAgLTY1MjEsNiArNjUyMSw4IEBACiAJCTg0
NUU3MkY3MEZEMjYxRUUwMEE4N0Q3OSAvKiBGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gRmlsdGVyLmg7IHBhdGggPSBmaWx0ZXJzL0ZpbHRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NDVFNzJGOTBGRDI2MjM5MDBBODdENzkgLyogU1ZHRmlsdGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZpbHRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0NUU3MkZBMEZEMjYyMzkwMEE4N0Q3OSAv
KiBTVkdGaWx0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRmlsdGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg0ODAxOTUyMTA4QkFGQjMwMENCMkIx
RiAvKiBGRUdhdXNzaWFuQmx1ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBGRUdhdXNzaWFuQmx1ci5jcHA7IHBhdGggPSBmaWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODQ4MDE5NTMxMDhCQUZCMzAwQ0IyQjFG
IC8qIEZFR2F1c3NpYW5CbHVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZF
R2F1c3NpYW5CbHVyLmg7IHBhdGggPSBmaWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0OUY3Nzc1MEVGRUM2MjAwMDkwODQ5RCAvKiBTdHJva2VT
dHlsZUFwcGxpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Ryb2tlU3R5
bGVBcHBsaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0QTgxRjNCMEZDN0RG
RjAwMDk1NTMwMCAvKiBTb3VyY2VBbHBoYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBTb3VyY2VBbHBoYS5jcHA7IHBhdGggPSBmaWx0ZXJzL1NvdXJjZUFscGhhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODRBODFGM0MwRkM3REZGMDAwOTU1MzAw
IC8qIFNvdXJjZUFscGhhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNvdXJj
ZUFscGhhLmg7IHBhdGggPSBmaWx0ZXJzL1NvdXJjZUFscGhhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC04NjYxLDggKzg2NjMsNiBAQAogCQlCMjU1OThFNTBEMDBEOEI5MDBCQjgy
NUMgLyogU1ZHRkVEaXNwbGFjZW1lbnRNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNWR0ZFRGlzcGxhY2VtZW50TWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUIyNTU5OEU2MEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdGRUZsb29kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdGRUZsb29kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQjI1NTk4RTcwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ZFRmxvb2Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ZFRmxvb2QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjI1NTk4RTgwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ZF
R2F1c3NpYW5CbHVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdGRUdhdXNzaWFuQmx1ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIyNTU5
OEU5MEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdGRUdhdXNzaWFuQmx1ci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRkVHYXVzc2lhbkJsdXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQjI1NTk4RUEwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ZFSW1hZ2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZFSW1hZ2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjU1OThFQjBEMDBEOEI5MDBCQjgyNUMgLyog
U1ZHRkVJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHRkVJbWFn
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjU1OThFQzBEMDBEOEI5MDBCQjgy
NUMgLyogU1ZHRkVNZXJnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU1ZHRkVNZXJnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjcyNCw2
ICsxMjcyNCw4IEBACiAJCUE3NUU4QjdGMEUxREUyQjAwMDdGMjQ4MSAvKiBmaWx0ZXJzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk4NDgwMTk1MjEwOEJB
RkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuY3BwICovLAorCQkJCTg0ODAxOTUzMTA4QkFG
QjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oICovLAogCQkJCUE3NUU4QjgwMEUxREUyRDYw
MDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCAqLywKIAkJCQlBNzVFOEI4MTBFMURFMkQ2MDA3RjI0ODEg
LyogRkVCbGVuZC5oICovLAogCQkJCUE3NUU4QjgyMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9y
TWF0cml4LmNwcCAqLywKQEAgLTEzOTM0LDggKzEzOTM2LDYgQEAKIAkJCQlCMjU1OThFNTBEMDBE
OEI5MDBCQjgyNUMgLyogU1ZHRkVEaXNwbGFjZW1lbnRNYXAuaCAqLywKIAkJCQlCMjU1OThFNjBE
MDBEOEI5MDBCQjgyNUMgLyogU1ZHRkVGbG9vZC5jcHAgKi8sCiAJCQkJQjI1NTk4RTcwRDAwRDhC
OTAwQkI4MjVDIC8qIFNWR0ZFRmxvb2QuaCAqLywKLQkJCQlCMjU1OThFODBEMDBEOEI5MDBCQjgy
NUMgLyogU1ZHRkVHYXVzc2lhbkJsdXIuY3BwICovLAotCQkJCUIyNTU5OEU5MEQwMEQ4QjkwMEJC
ODI1QyAvKiBTVkdGRUdhdXNzaWFuQmx1ci5oICovLAogCQkJCUIyNTU5OEVBMEQwMEQ4QjkwMEJC
ODI1QyAvKiBTVkdGRUltYWdlLmNwcCAqLywKIAkJCQlCMjU1OThFQjBEMDBEOEI5MDBCQjgyNUMg
LyogU1ZHRkVJbWFnZS5oICovLAogCQkJCUIyNTU5OEVDMEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdG
RU1lcmdlLmNwcCAqLywKQEAgLTE3NzM5LDcgKzE3NzM5LDYgQEAKIAkJCQlCMjIyNzlFMzBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHRkVGdW5jQkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
MjI3OUU2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUZ1bmNHRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjc5RTkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFRnVuY1JFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCMjU1OTk4MzBEMDBEOEJBMDBCQjgyNUMgLyogU1ZHRkVHYXVz
c2lhbkJsdXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OUVDMEQwMEJGMjIwMDcxQjc4MiAv
KiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNTU5OTg1
MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdGRUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
NzlFRjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVJbWFnZUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMTgwNjMsNiArMTgwNjIsNyBAQAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAv
KiBYU1NBdWRpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMzE0QUNFQzEwODkyMDg2MDAwRjBF
NTYgLyogSlNFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzNFMzI1NzEwODgz
QjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTg0ODAxOTU1MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0xOTkxMiw3ICsxOTkxMiw2IEBACiAJCQkJQjIyMjc5RTIwRDAwQkYyMjAwNzFCNzgy
IC8qIFNWR0ZFRnVuY0JFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OUU1MEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdGRUZ1bmNHRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCMjIyNzlFODBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVGdW5jUkVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQjI1NTk5ODIwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR0ZFR2F1c3NpYW5C
bHVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyMjI3OUVCMEQwMEJGMjIwMDcxQjc4MiAvKiBT
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI1NTk5ODQw
RDAwRDhCQTAwQkI4MjVDIC8qIFNWR0ZFSW1hZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjIy
Mjc5RUUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFSW1hZ2VFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjAxOTcsNiArMjAxOTYsNyBAQAogCQkJCTk3REQ0RDg2MEZERjRENkUwMEVDRjlB
NCAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMTRBQ0VCMTA4OTIwODYw
MDBGMEU1NiAvKiBKU0V4Y2VwdGlvbkJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTczRTMy
NTYxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTg0ODAxOTU0MTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFuQmx1ci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTM5IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAgICAgICAgICAg
ICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICAgICAgICAgICAg
ICAgIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KKyAgICAgICAgICAgICAgICAg
IDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CisKKyAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNI
QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg
R05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2Vl
IHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoRklMVEVSUykKKyNpbmNsdWRlICJGRUdhdXNzaWFuQmx1ci5oIgor
CisjaW5jbHVkZSAiQ2FudmFzUGl4ZWxBcnJheS5oIgorI2luY2x1ZGUgIkZpbHRlci5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkltYWdlRGF0YS5oIgorI2luY2x1
ZGUgPG1hdGguaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGRUdhdXNzaWFuQmx1cjo6RkVH
YXVzc2lhbkJsdXIoRmlsdGVyRWZmZWN0KiBpbiwgY29uc3QgZmxvYXQmIHgsIGNvbnN0IGZsb2F0
JiB5KQorICAgIDogRmlsdGVyRWZmZWN0KCkKKyAgICAsIG1faW4oaW4pCisgICAgLCBtX3goeCkK
KyAgICAsIG1feSh5KQoreworfQorCitQYXNzUmVmUHRyPEZFR2F1c3NpYW5CbHVyPiBGRUdhdXNz
aWFuQmx1cjo6Y3JlYXRlKEZpbHRlckVmZmVjdCogaW4sIGNvbnN0IGZsb2F0JiB4LCBjb25zdCBm
bG9hdCYgeSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZFR2F1c3NpYW5CbHVyKGluLCB4
LCB5KSk7Cit9CisKK2Zsb2F0IEZFR2F1c3NpYW5CbHVyOjpzdGREZXZpYXRpb25YKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV94OworfQorCit2b2lkIEZFR2F1c3NpYW5CbHVyOjpzZXRTdGREZXZp
YXRpb25YKGZsb2F0IHgpCit7CisgICAgbV94ID0geDsKK30KKworZmxvYXQgRkVHYXVzc2lhbkJs
dXI6OnN0ZERldmlhdGlvblkoKSBjb25zdAoreworICAgIHJldHVybiBtX3k7Cit9CisKK3ZvaWQg
RkVHYXVzc2lhbkJsdXI6OnNldFN0ZERldmlhdGlvblkoZmxvYXQgeSkKK3sKKyAgICBtX3kgPSB5
OworfQorCit2b2lkIGJveEJsdXIoQ2FudmFzUGl4ZWxBcnJheSomIHNyY1BpeGVsQXJyYXksIENh
bnZhc1BpeGVsQXJyYXkqJiBkc3RQaXhlbEFycmF5LAorICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBkeCwgaW50IHN0cmlkZSwgaW50IHN0cmlkZUxpbmUsIGludCBlZmZlY3RXaWR0aCwgaW50IGVm
ZmVjdEhlaWdodCwgYm9vbCBhbHBoYUltYWdlKQoreworICAgIGludCBkeExlZnQgPSBzdGF0aWNf
Y2FzdDxpbnQ+KGZsb29yKGR4IC8gMikpOworICAgIGludCBkeFJpZ2h0ID0gZHggLSBkeExlZnQ7
CisKKyAgICBmb3IgKGludCB5ID0gMDsgeSA8IGVmZmVjdEhlaWdodDsgKyt5KSB7CisgICAgICAg
IGludCBsaW5lID0geSAqIHN0cmlkZUxpbmU7CisgICAgICAgIGZvciAoaW50IGNoYW5uZWwgPSAz
OyBjaGFubmVsID49IDA7IC0tY2hhbm5lbCkgeworICAgICAgICAgICAgaW50IHN1bSA9IDA7Cisg
ICAgICAgICAgICAvLyBGaWxsIHRoZSBrZXJuZWwKKyAgICAgICAgICAgIGludCBtYXhLZXJuZWxT
aXplID0gc3RkOjptaW4oZHhSaWdodCwgZWZmZWN0V2lkdGgpOworICAgICAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBtYXhLZXJuZWxTaXplOyArK2kpCisgICAgICAgICAgICAgICAgc3VtICs9
IHNyY1BpeGVsQXJyYXktPmdldChsaW5lICsgaSAqIHN0cmlkZSArIGNoYW5uZWwpOworCisgICAg
ICAgICAgICAvLyBCbHVycmluZworICAgICAgICAgICAgZm9yIChpbnQgeCA9IDA7IHggPCBlZmZl
Y3RXaWR0aDsgKyt4KSB7CisgICAgICAgICAgICAgICAgaW50IHBpeGVsQnl0ZU9mZnNldCA9IGxp
bmUgKyB4ICogc3RyaWRlICsgY2hhbm5lbDsKKyAgICAgICAgICAgICAgICBkc3RQaXhlbEFycmF5
LT5zZXQocGl4ZWxCeXRlT2Zmc2V0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPihzdW0gLyBk
eCkpOworICAgICAgICAgICAgICAgIGlmICh4ID49IGR4TGVmdCkKKyAgICAgICAgICAgICAgICAg
ICAgc3VtIC09IHNyY1BpeGVsQXJyYXktPmdldChwaXhlbEJ5dGVPZmZzZXQgLSBkeExlZnQgKiBz
dHJpZGUpOworICAgICAgICAgICAgICAgIGlmICh4ICsgZHhSaWdodCA8IGVmZmVjdFdpZHRoKQor
ICAgICAgICAgICAgICAgICAgICBzdW0gKz0gc3JjUGl4ZWxBcnJheS0+Z2V0KHBpeGVsQnl0ZU9m
ZnNldCArIGR4UmlnaHQgKiBzdHJpZGUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGFscGhhSW1hZ2UpIC8vIFNvdXJjZSBpbWFnZSBpcyBibGFjaywgaXQganVzdCBoYXMgZGlmZmVy
ZW50IGFscGhhIHZhbHVlcworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorfQorCit2b2lkIEZFR2F1c3NpYW5CbHVyOjphcHBseShGaWx0ZXIqIGZpbHRlcikKK3sKKyAg
ICBtX2luLT5hcHBseShmaWx0ZXIpOworICAgIGlmICghbV9pbi0+cmVzdWx0SW1hZ2UoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgaWYgKCFnZXRFZmZlY3RDb250ZXh0KCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNldElzQWxwaGFJbWFnZShtX2luLT5pc0FscGhhSW1hZ2UoKSk7CisKKyAg
ICBpZiAobV94ID09IDAgfHwgbV95ID09IDApCisgICAgICAgIHJldHVybjsKKworICAgIHVuc2ln
bmVkIHNkeCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihmbG9vcihtX3ggKiAzICogc3FydCgyICog
TV9QSSkgLyA0LmYgKyAwLjVmKSk7CisgICAgdW5zaWduZWQgc2R5ID0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGZsb29yKG1feSAqIDMgKiBzcXJ0KDIgKiBNX1BJKSAvIDQuZiArIDAuNWYpKTsKKwor
ICAgIEludFJlY3QgZWZmZWN0RHJhd2luZ1JlY3QgPSBjYWxjdWxhdGVEcmF3aW5nSW50UmVjdCht
X2luLT5zdWJSZWdpb24oKSk7CisgICAgUmVmUHRyPEltYWdlRGF0YT4gc3JjSW1hZ2VEYXRhKG1f
aW4tPnJlc3VsdEltYWdlKCktPmdldFByZW11bHRpcGxpZWRJbWFnZURhdGEoZWZmZWN0RHJhd2lu
Z1JlY3QpKTsKKyAgICBDYW52YXNQaXhlbEFycmF5KiBzcmNQaXhlbEFycmF5KHNyY0ltYWdlRGF0
YS0+ZGF0YSgpKTsKKworICAgIEludFJlY3QgaW1hZ2VSZWN0KEludFBvaW50KCksIHJlc3VsdElt
YWdlKCktPnNpemUoKSk7CisgICAgUmVmUHRyPEltYWdlRGF0YT4gdG1wSW1hZ2VEYXRhID0gSW1h
Z2VEYXRhOjpjcmVhdGUoaW1hZ2VSZWN0LndpZHRoKCksIGltYWdlUmVjdC5oZWlnaHQoKSk7Cisg
ICAgQ2FudmFzUGl4ZWxBcnJheSogdG1wUGl4ZWxBcnJheSh0bXBJbWFnZURhdGEtPmRhdGEoKSk7
CisKKyAgICBpbnQgc3RyaWRlID0gNCAqIGltYWdlUmVjdC53aWR0aCgpOworICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgMzsgKytpKSB7CisgICAgICAgIGJveEJsdXIoc3JjUGl4ZWxBcnJheSwgdG1w
UGl4ZWxBcnJheSwgc2R4LCA0LCBzdHJpZGUsIGltYWdlUmVjdC53aWR0aCgpLCBpbWFnZVJlY3Qu
aGVpZ2h0KCksIGlzQWxwaGFJbWFnZSgpKTsKKyAgICAgICAgYm94Qmx1cih0bXBQaXhlbEFycmF5
LCBzcmNQaXhlbEFycmF5LCBzZHksIHN0cmlkZSwgNCwgaW1hZ2VSZWN0LmhlaWdodCgpLCBpbWFn
ZVJlY3Qud2lkdGgoKSwgaXNBbHBoYUltYWdlKCkpOworICAgIH0KKworICAgIHJlc3VsdEltYWdl
KCktPnB1dFByZW11bHRpcGxpZWRJbWFnZURhdGEoc3JjSW1hZ2VEYXRhLmdldCgpLCBpbWFnZVJl
Y3QsIEludFBvaW50KCkpOworfQorCit2b2lkIEZFR2F1c3NpYW5CbHVyOjpkdW1wKCkKK3sKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTFRFUlMpCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lh
bkJsdXIuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUdhdXNzaWFuQmx1ci5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU4IEBACisvKgorICAg
IENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4g
PHppbW1lcm1hbm5Aa2RlLm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUgUm9iIEJ1
aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDUgRXJpYyBTZWlkZWwgPGVy
aWNAd2Via2l0Lm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDkgRGlyayBTY2h1bHplIDxrcml0
QHdlYmtpdC5vcmc+CisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisK
KyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgICAgYWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisqLworCisjaWZuZGVmIEZFR2F1c3NpYW5CbHVyX2gKKyNkZWZpbmUgRkVHYXVz
c2lhbkJsdXJfaAorCisjaWYgRU5BQkxFKEZJTFRFUlMpCisjaW5jbHVkZSAiRmlsdGVyRWZmZWN0
LmgiCisjaW5jbHVkZSAiRmlsdGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNs
YXNzIEZFR2F1c3NpYW5CbHVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7CisgICAgcHVibGljOgor
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRUdhdXNzaWFuQmx1cj4gY3JlYXRlKEZpbHRlckVm
ZmVjdCosIGNvbnN0IGZsb2F0JiwgY29uc3QgZmxvYXQmKTsKKworICAgICAgICBmbG9hdCBzdGRE
ZXZpYXRpb25YKCkgY29uc3Q7CisgICAgICAgIHZvaWQgc2V0U3RkRGV2aWF0aW9uWChmbG9hdCk7
CisKKyAgICAgICAgZmxvYXQgc3RkRGV2aWF0aW9uWSgpIGNvbnN0OworICAgICAgICB2b2lkIHNl
dFN0ZERldmlhdGlvblkoZmxvYXQpOworCisgICAgICAgIHZpcnR1YWwgRmxvYXRSZWN0IHVuaXRl
Q2hpbGRFZmZlY3RTdWJyZWdpb25zKEZpbHRlciogZmlsdGVyKSB7IHJldHVybiBjYWxjdWxhdGVV
bmlvbk9mQ2hpbGRFZmZlY3RTdWJyZWdpb25zKGZpbHRlciwgbV9pbi5nZXQoKSk7IH0KKyAgICAg
ICAgdm9pZCBhcHBseShGaWx0ZXIqKTsKKyAgICAgICAgdm9pZCBkdW1wKCk7CisKKyAgICBwcml2
YXRlOgorICAgICAgICBGRUdhdXNzaWFuQmx1cihGaWx0ZXJFZmZlY3QqLCBjb25zdCBmbG9hdCYs
IGNvbnN0IGZsb2F0Jik7CisKKyAgICAgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gbV9pbjsKKyAg
ICAgICAgZmxvYXQgbV94OworICAgICAgICBmbG9hdCBtX3k7CisgICAgfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEZJTFRFUlMpCisKKyNlbmRpZiAvLyBG
RUdhdXNzaWFuQmx1cl9oCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQu
aAkocmV2aXNpb24gNDk3NTYpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2RlZmluZSBTVkdGRUdhdXNz
aWFuQmx1ckVsZW1lbnRfaAogCiAjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKEZJTFRFUlMpCi0j
aW5jbHVkZSAiU1ZHRkVHYXVzc2lhbkJsdXIuaCIKKyNpbmNsdWRlICJGRUdhdXNzaWFuQmx1ci5o
IgogI2luY2x1ZGUgIlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZFR2F1c3NpYW5CbHVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZFR2F1c3NpYW5CbHVyLmNwcAkocmV2aXNpb24gNDk3NTYpCisrKyBXZWJDb3Jl
L3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFR2F1c3NpYW5CbHVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSwxNDggKzAsMCBAQAotLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gICAgICAg
ICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+Ci0gICAgICAgICAg
ICAgICAgICAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gICAgICAgICAgICAg
ICAgICAyMDA5IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotCi0gICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFpbnQgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotCi0jaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKEZJTFRFUlMpCi0jaW5jbHVkZSAi
U1ZHRkVHYXVzc2lhbkJsdXIuaCIKLQotI2luY2x1ZGUgIkNhbnZhc1BpeGVsQXJyYXkuaCIKLSNp
bmNsdWRlICJGaWx0ZXIuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRl
ICJJbWFnZURhdGEuaCIKLSNpbmNsdWRlICJTVkdSZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVk
ZSA8bWF0aC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUZFR2F1c3NpYW5CbHVyOjpGRUdh
dXNzaWFuQmx1cihGaWx0ZXJFZmZlY3QqIGluLCBjb25zdCBmbG9hdCYgeCwgY29uc3QgZmxvYXQm
IHkpCi0gICAgOiBGaWx0ZXJFZmZlY3QoKQotICAgICwgbV9pbihpbikKLSAgICAsIG1feCh4KQot
ICAgICwgbV95KHkpCi17Ci19Ci0KLVBhc3NSZWZQdHI8RkVHYXVzc2lhbkJsdXI+IEZFR2F1c3Np
YW5CbHVyOjpjcmVhdGUoRmlsdGVyRWZmZWN0KiBpbiwgY29uc3QgZmxvYXQmIHgsIGNvbnN0IGZs
b2F0JiB5KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgRkVHYXVzc2lhbkJsdXIoaW4sIHgs
IHkpKTsKLX0KLQotZmxvYXQgRkVHYXVzc2lhbkJsdXI6OnN0ZERldmlhdGlvblgoKSBjb25zdAot
ewotICAgIHJldHVybiBtX3g7Ci19Ci0KLXZvaWQgRkVHYXVzc2lhbkJsdXI6OnNldFN0ZERldmlh
dGlvblgoZmxvYXQgeCkKLXsKLSAgICBtX3ggPSB4OwotfQotCi1mbG9hdCBGRUdhdXNzaWFuQmx1
cjo6c3RkRGV2aWF0aW9uWSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1feTsKLX0KLQotdm9pZCBG
RUdhdXNzaWFuQmx1cjo6c2V0U3RkRGV2aWF0aW9uWShmbG9hdCB5KQotewotICAgIG1feSA9IHk7
Ci19Ci0KLXZvaWQgYm94Qmx1cihDYW52YXNQaXhlbEFycmF5KiYgc3JjUGl4ZWxBcnJheSwgQ2Fu
dmFzUGl4ZWxBcnJheSomIGRzdFBpeGVsQXJyYXksCi0gICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGR4LCBpbnQgc3RyaWRlLCBpbnQgc3RyaWRlTGluZSwgaW50IGVmZmVjdFdpZHRoLCBpbnQgZWZm
ZWN0SGVpZ2h0LCBib29sIGFscGhhSW1hZ2UpCi17Ci0gICAgaW50IGR4TGVmdCA9IHN0YXRpY19j
YXN0PGludD4oZmxvb3IoZHggLyAyKSk7Ci0gICAgaW50IGR4UmlnaHQgPSBkeCAtIGR4TGVmdDsK
LQotICAgIGZvciAoaW50IHkgPSAwOyB5IDwgZWZmZWN0SGVpZ2h0OyArK3kpIHsKLSAgICAgICAg
aW50IGxpbmUgPSB5ICogc3RyaWRlTGluZTsKLSAgICAgICAgZm9yIChpbnQgY2hhbm5lbCA9IDM7
IGNoYW5uZWwgPj0gMDsgLS1jaGFubmVsKSB7Ci0gICAgICAgICAgICBpbnQgc3VtID0gMDsKLSAg
ICAgICAgICAgIC8vIEZpbGwgdGhlIGtlcm5lbAotICAgICAgICAgICAgaW50IG1heEtlcm5lbFNp
emUgPSBzdGQ6Om1pbihkeFJpZ2h0LCBlZmZlY3RXaWR0aCk7Ci0gICAgICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG1heEtlcm5lbFNpemU7ICsraSkKLSAgICAgICAgICAgICAgICBzdW0gKz0g
c3JjUGl4ZWxBcnJheS0+Z2V0KGxpbmUgKyBpICogc3RyaWRlICsgY2hhbm5lbCk7Ci0KLSAgICAg
ICAgICAgIC8vIEJsdXJyaW5nCi0gICAgICAgICAgICBmb3IgKGludCB4ID0gMDsgeCA8IGVmZmVj
dFdpZHRoOyArK3gpIHsKLSAgICAgICAgICAgICAgICBpbnQgcGl4ZWxCeXRlT2Zmc2V0ID0gbGlu
ZSArIHggKiBzdHJpZGUgKyBjaGFubmVsOwotICAgICAgICAgICAgICAgIGRzdFBpeGVsQXJyYXkt
PnNldChwaXhlbEJ5dGVPZmZzZXQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KHN1bSAvIGR4
KSk7Ci0gICAgICAgICAgICAgICAgaWYgKHggPj0gZHhMZWZ0KQotICAgICAgICAgICAgICAgICAg
ICBzdW0gLT0gc3JjUGl4ZWxBcnJheS0+Z2V0KHBpeGVsQnl0ZU9mZnNldCAtIGR4TGVmdCAqIHN0
cmlkZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHggKyBkeFJpZ2h0IDwgZWZmZWN0V2lkdGgpCi0g
ICAgICAgICAgICAgICAgICAgIHN1bSArPSBzcmNQaXhlbEFycmF5LT5nZXQocGl4ZWxCeXRlT2Zm
c2V0ICsgZHhSaWdodCAqIHN0cmlkZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAo
YWxwaGFJbWFnZSkgLy8gU291cmNlIGltYWdlIGlzIGJsYWNrLCBpdCBqdXN0IGhhcyBkaWZmZXJl
bnQgYWxwaGEgdmFsdWVzCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9
Ci19Ci0KLXZvaWQgRkVHYXVzc2lhbkJsdXI6OmFwcGx5KEZpbHRlciogZmlsdGVyKQotewotICAg
IG1faW4tPmFwcGx5KGZpbHRlcik7Ci0gICAgaWYgKCFtX2luLT5yZXN1bHRJbWFnZSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWdldEVmZmVjdENvbnRleHQoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgc2V0SXNBbHBoYUltYWdlKG1faW4tPmlzQWxwaGFJbWFnZSgpKTsKLQotICAg
IGlmIChtX3ggPT0gMCB8fCBtX3kgPT0gMCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdW5zaWdu
ZWQgc2R4ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGZsb29yKG1feCAqIDMgKiBzcXJ0KDIgKiBN
X1BJKSAvIDQuZiArIDAuNWYpKTsKLSAgICB1bnNpZ25lZCBzZHkgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oZmxvb3IobV95ICogMyAqIHNxcnQoMiAqIE1fUEkpIC8gNC5mICsgMC41ZikpOwotCi0g
ICAgSW50UmVjdCBlZmZlY3REcmF3aW5nUmVjdCA9IGNhbGN1bGF0ZURyYXdpbmdJbnRSZWN0KG1f
aW4tPnN1YlJlZ2lvbigpKTsKLSAgICBSZWZQdHI8SW1hZ2VEYXRhPiBzcmNJbWFnZURhdGEobV9p
bi0+cmVzdWx0SW1hZ2UoKS0+Z2V0UHJlbXVsdGlwbGllZEltYWdlRGF0YShlZmZlY3REcmF3aW5n
UmVjdCkpOwotICAgIENhbnZhc1BpeGVsQXJyYXkqIHNyY1BpeGVsQXJyYXkoc3JjSW1hZ2VEYXRh
LT5kYXRhKCkpOwotCi0gICAgSW50UmVjdCBpbWFnZVJlY3QoSW50UG9pbnQoKSwgcmVzdWx0SW1h
Z2UoKS0+c2l6ZSgpKTsKLSAgICBSZWZQdHI8SW1hZ2VEYXRhPiB0bXBJbWFnZURhdGEgPSBJbWFn
ZURhdGE6OmNyZWF0ZShpbWFnZVJlY3Qud2lkdGgoKSwgaW1hZ2VSZWN0LmhlaWdodCgpKTsKLSAg
ICBDYW52YXNQaXhlbEFycmF5KiB0bXBQaXhlbEFycmF5KHRtcEltYWdlRGF0YS0+ZGF0YSgpKTsK
LQotICAgIGludCBzdHJpZGUgPSA0ICogaW1hZ2VSZWN0LndpZHRoKCk7Ci0gICAgZm9yIChpbnQg
aSA9IDA7IGkgPCAzOyArK2kpIHsKLSAgICAgICAgYm94Qmx1cihzcmNQaXhlbEFycmF5LCB0bXBQ
aXhlbEFycmF5LCBzZHgsIDQsIHN0cmlkZSwgaW1hZ2VSZWN0LndpZHRoKCksIGltYWdlUmVjdC5o
ZWlnaHQoKSwgaXNBbHBoYUltYWdlKCkpOwotICAgICAgICBib3hCbHVyKHRtcFBpeGVsQXJyYXks
IHNyY1BpeGVsQXJyYXksIHNkeSwgc3RyaWRlLCA0LCBpbWFnZVJlY3QuaGVpZ2h0KCksIGltYWdl
UmVjdC53aWR0aCgpLCBpc0FscGhhSW1hZ2UoKSk7Ci0gICAgfQotCi0gICAgcmVzdWx0SW1hZ2Uo
KS0+cHV0UHJlbXVsdGlwbGllZEltYWdlRGF0YShzcmNJbWFnZURhdGEuZ2V0KCksIGltYWdlUmVj
dCwgSW50UG9pbnQoKSk7Ci19Ci0KLXZvaWQgRkVHYXVzc2lhbkJsdXI6OmR1bXAoKQotewotfQot
Ci1UZXh0U3RyZWFtJiBGRUdhdXNzaWFuQmx1cjo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0
U3RyZWFtJiB0cykgY29uc3QKLXsKLSAgICB0cyA8PCAiW3R5cGU9R0FVU1NJQU4tQkxVUl0gIjsK
LSAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMpOwotICAgIHRzIDw8
ICIgW3N0ZCBkZXYuIHg9IiA8PCBzdGREZXZpYXRpb25YKCkgPDwgIiB5PSIgPDwgc3RkRGV2aWF0
aW9uWSgpIDw8ICJdIjsKLSAgICByZXR1cm4gdHM7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShTVkcpICYmIEVOQUJMRShGSUxURVJTKQpJbmRleDogV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUdhdXNzaWFuQmx1ci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVHYXVzc2lhbkJsdXIuaAkocmV2
aXNpb24gNDk3NTYpCisrKyBXZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFR2F1c3Np
YW5CbHVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAgICBDb3B5cmln
aHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJt
YW5uQGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAgICAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtp
dC5vcmc+Ci0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAg
YWludCB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCi0qLwotCi0jaWZuZGVmIFNWR0ZFR2F1c3NpYW5CbHVyX2gKLSNkZWZpbmUgU1ZHRkVHYXVz
c2lhbkJsdXJfaAotCi0jaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKEZJTFRFUlMpCi0jaW5jbHVk
ZSAiRmlsdGVyRWZmZWN0LmgiCi0jaW5jbHVkZSAiRmlsdGVyLmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotICAgIGNsYXNzIEZFR2F1c3NpYW5CbHVyIDogcHVibGljIEZpbHRlckVmZmVjdCB7
Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGRUdhdXNzaWFuQmx1cj4g
Y3JlYXRlKEZpbHRlckVmZmVjdCosIGNvbnN0IGZsb2F0JiwgY29uc3QgZmxvYXQmKTsKLQotICAg
ICAgICBmbG9hdCBzdGREZXZpYXRpb25YKCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgc2V0U3RkRGV2
aWF0aW9uWChmbG9hdCk7Ci0KLSAgICAgICAgZmxvYXQgc3RkRGV2aWF0aW9uWSgpIGNvbnN0Owot
ICAgICAgICB2b2lkIHNldFN0ZERldmlhdGlvblkoZmxvYXQpOwotCi0gICAgICAgIHZpcnR1YWwg
RmxvYXRSZWN0IHVuaXRlQ2hpbGRFZmZlY3RTdWJyZWdpb25zKEZpbHRlciogZmlsdGVyKSB7IHJl
dHVybiBjYWxjdWxhdGVVbmlvbk9mQ2hpbGRFZmZlY3RTdWJyZWdpb25zKGZpbHRlciwgbV9pbi5n
ZXQoKSk7IH0KLSAgICAgICAgdm9pZCBhcHBseShGaWx0ZXIqKTsKLSAgICAgICAgdm9pZCBkdW1w
KCk7Ci0gICAgICAgIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVh
bSYgdHMpIGNvbnN0OwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgRkVHYXVzc2lhbkJsdXIoRmls
dGVyRWZmZWN0KiwgY29uc3QgZmxvYXQmLCBjb25zdCBmbG9hdCYpOwotCi0gICAgICAgIFJlZlB0
cjxGaWx0ZXJFZmZlY3Q+IG1faW47Ci0gICAgICAgIGZsb2F0IG1feDsKLSAgICAgICAgZmxvYXQg
bV95OwotICAgIH07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShTVkcpICYmIEVOQUJMRShGSUxURVJTKQotCi0jZW5kaWYgLy8gU1ZHRkVHYXVzc2lhbkJsdXJf
aAo=
</data>
<flag name="review"
          id="22762"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="22813"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>