<?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>65226</bug_id>
          
          <creation_ts>2011-07-26 20:37:29 -0700</creation_ts>
          <short_desc>REGRESSION(r91805): Breaks @ symbols and changes other font rendering on Windows (Requested by enne on #webkit).</short_desc>
          <delta_ts>2011-07-26 20:42:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>65203</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>kbr</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>442721</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 20:37:29 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/91805 broke the build:
Breaks @ symbols and changes other font rendering on Windows (Requested by enne on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442722</commentid>
    <comment_count>1</comment_count>
      <attachid>102093</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 20:37:57 -0700</bug_when>
    <thetext>Created attachment 102093
ROLLOUT of r91805

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442723</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 20:40:39 -0700</bug_when>
    <thetext>Attachment 102093 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Source/WebCore/platform/graphics/skia/SkiaFontWin.cpp:77:  One space before end of line comments  [whitespace/comments] [5]
Source/WebCore/platform/graphics/skia/SkiaFontWin.cpp:77:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/platform/graphics/skia/SkiaFontWin.h:45:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Source/WebCore/platform/graphics/chromium/FontChromiumWin.cpp:94:  One space before end of line comments  [whitespace/comments] [5]
Source/WebCore/platform/graphics/chromium/FontChromiumWin.cpp:177:  One space before end of line comments  [whitespace/comments] [5]
Source/WebCore/platform/graphics/chromium/FontChromiumWin.cpp:212:  One space before end of line comments  [whitespace/comments] [5]
Source/WebCore/platform/graphics/chromium/FontChromiumWin.cpp:289:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Source/WebCore/platform/graphics/chromium/FontChromiumWin.cpp:432:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 8 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442724</commentid>
    <comment_count>3</comment_count>
      <attachid>102093</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 20:42:35 -0700</bug_when>
    <thetext>Comment on attachment 102093
ROLLOUT of r91805

Clearing flags on attachment: 102093

Committed r91822: &lt;http://trac.webkit.org/changeset/91822&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>442725</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-26 20:42:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102093</attachid>
            <date>2011-07-26 20:37:57 -0700</date>
            <delta_ts>2011-07-26 20:42:35 -0700</delta_ts>
            <desc>ROLLOUT of r91805</desc>
            <filename>bug-65226-20110727033628.patch</filename>
            <type>text/plain</type>
            <size>32835</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE4MjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNjA1ZjY5ZDNhNDdhZmU3NzQ2OWZl
MDQ4NGE0NzRkMjg0OGRlMjdkLi42M2M0YjRmZTk0NWFmMWUxZjBkY2I0ZjEwNmVlNjg4ZDE4ZjU2
Mzk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDctMjYgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI5MTgwNS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvOTE4
MDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1MjI2
CisKKyAgICAgICAgQnJlYWtzIEAgc3ltYm9scyBhbmQgY2hhbmdlcyBvdGhlciBmb250IHJlbmRl
cmluZyBvbiBXaW5kb3dzCisgICAgICAgIChSZXF1ZXN0ZWQgYnkgZW5uZSBvbiAjd2Via2l0KS4K
KworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwog
MjAxMS0wNy0yNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIGVu
bmUgdGVsbHMgbWUgdGhhdCB0aGV5IGFscmVhZHkgcmViYXNlbGluZWQgdGhpcyB0ZXN0LiAgVGhl
IDEwLjUgYm90IGlzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggMWZlNmU1NDY4NDM0NmQ1MjA4ZjliOTMzNjhjYWJlOTA3
MmJiN2Q3Zi4uZGIyYWQ4YzNhZmI2MGNkN2E4OGRiOGFkZThhZTg3MTViYTA0OThkMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dApAQCAtMTg0Niw5OSArMTg0Niw2IEBAIEJVR0NSNDI4NzUgV09OVEZJWCBTS0lQIDogc3B1dG5p
ayA9IFRFWFQKIAogQlVHV0szODcwNSA6IGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FuZGJveC1pbmhl
cml0LXRvLWluaXRpYWwtZG9jdW1lbnQtMi5odG1sID0gVEVYVAogCi0vLyBTd2l0Y2hpbmcgd2lu
ZG93cyBvdmVyIGZyb20gR0RJIHRvIFNraWEgZm9yIGFsbCB0ZXh0IHJlbmRlcmluZy4KLS8vIFdo
ZW4gdGhhdCBsYW5kcywgd2Ugd2lsbCByZWJhc2VsaW5lIHRoZXNlIGltYWdlcy4KLUJVR1dLNjUy
MDMgV0lOIDogZWRpdGluZy9zZWxlY3Rpb24vdmVydGljYWwtbHItbHRyLWV4dGVuZC1saW5lLWJh
Y2t3YXJkLWJyLmh0bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBlZGl0aW5nL3NlbGVjdGlv
bi92ZXJ0aWNhbC1sci1sdHItZXh0ZW5kLWxpbmUtZm9yd2FyZC1ici5odG1sID0gSU1BR0UKLUJV
R1dLNjUyMDMgV0lOIDogZWRpdGluZy9zZWxlY3Rpb24vdmVydGljYWwtcmwtbHRyLWV4dGVuZC1s
aW5lLWJhY2t3YXJkLWJyLmh0bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBlZGl0aW5nL3Nl
bGVjdGlvbi92ZXJ0aWNhbC1ybC1sdHItZXh0ZW5kLWxpbmUtYmFja3dhcmQtcC5odG1sID0gSU1B
R0UKLUJVR1dLNjUyMDMgV0lOIDogZWRpdGluZy9zZWxlY3Rpb24vdmVydGljYWwtcmwtbHRyLWV4
dGVuZC1saW5lLWJhY2t3YXJkLXdyYXAuaHRtbCA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IGVk
aXRpbmcvc2VsZWN0aW9uL3ZlcnRpY2FsLXJsLWx0ci1leHRlbmQtbGluZS1mb3J3YXJkLWJyLmh0
bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBlZGl0aW5nL3NlbGVjdGlvbi92ZXJ0aWNhbC1y
bC1sdHItZXh0ZW5kLWxpbmUtZm9yd2FyZC1wLmh0bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4g
OiBlZGl0aW5nL3NlbGVjdGlvbi92ZXJ0aWNhbC1ybC1sdHItZXh0ZW5kLWxpbmUtZm9yd2FyZC13
cmFwLmh0bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBmYXN0L2JvcmRlcnMvYm9yZGVyLWFu
dGlhbGlhc2luZy5odG1sID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogZmFzdC9yZWZsZWN0aW9u
cy9yZWZsZWN0aW9uLW92ZXJmbG93LWhpZGRlbi5odG1sID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lO
IDogZmFzdC9yZXBhaW50L3JlZmxlY3Rpb24tcmVkcmF3Lmh0bWwgPSBJTUFHRQotQlVHV0s2NTIw
MyBXSU4gOiBmYXN0L3JlcGFpbnQvc2hhZG93LW11bHRpcGxlLWhvcml6b250YWwuaHRtbCA9IElN
QUdFCi1CVUdXSzY1MjAzIFdJTiA6IGZhc3QvcmVwYWludC9zaGFkb3ctbXVsdGlwbGUtc3RyaWN0
LWhvcml6b250YWwuaHRtbCA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IGZhc3QvcmVwYWludC9z
aGFkb3ctbXVsdGlwbGUtc3RyaWN0LXZlcnRpY2FsLmh0bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBX
SU4gOiBmYXN0L3JlcGFpbnQvc2hhZG93LW11bHRpcGxlLXZlcnRpY2FsLmh0bWwgPSBJTUFHRQot
QlVHV0s2NTIwMyBXSU4gOiBmYXN0L3RleHQvYXRzdWktc3BhY2luZy1mZWF0dXJlcy5odG1sID0g
SU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogZmFzdC90ZXh0L2NnLXZzLWF0c3VpLmh0bWwgPSBJTUFH
RQotQlVHV0s2NTIwMyBXSU4gOiBmYXN0L3RleHQvY29tcGxleC10ZXh0LW9wYWNpdHkuaHRtbCA9
IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2NvbXBsZXgt
Y2hhcmFjdGVyLWJhc2VkLWZhbGxiYWNrLmh0bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBm
YXN0L3RleHQvaW50ZXJuYXRpb25hbC9kYW5kYS1zcGFjZS5odG1sID0gSU1BR0UKLUJVR1dLNjUy
MDMgV0lOIDogZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvdGhhaS1iYWh0LXNwYWNlLmh0bWwgPSBJ
TUFHRQotQlVHV0s2NTIwMyBXSU4gOiBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC90aGFpLWxpbmUt
YnJlYWtzLmh0bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBmYXN0L3RyYW5zZm9ybXMvc2hh
ZG93cy5odG1sID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogbWVkaWEvYXVkaW8tcmVwYWludC5o
dG1sID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogcGxhdGZvcm0vd2luL2Zhc3QvdGV4dC91bmlz
Y3JpYmUtbWlzc2luZy1nbHlwaC5odG1sID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL1cz
Qy1TVkctMS4xLVNFL3RleHQtaW50cm8tMDUtdC5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4g
OiBzdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTM3LXQuc3ZnID0gSU1BR0UKLUJVR1dLNjUy
MDMgV0lOIDogc3ZnL1czQy1TVkctMS4xL2FuaW1hdGUtZWxlbS0zOS10LnN2ZyA9IElNQUdFCi1C
VUdXSzY1MjAzIFdJTiA6IHN2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tNDAtdC5zdmcgPSBJ
TUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTQxLXQu
c3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL1czQy1TVkctMS4xL2FuaW1hdGUtZWxl
bS00Ni10LnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9XM0MtU1ZHLTEuMS9hbmlt
YXRlLWVsZW0tNjAtdC5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvVzNDLVNWRy0x
LjEvYW5pbWF0ZS1lbGVtLTYxLXQuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL1cz
Qy1TVkctMS4xL2FuaW1hdGUtZWxlbS02Mi10LnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6
IHN2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tNjMtdC5zdmcgPSBJTUFHRQotQlVHV0s2NTIw
MyBXSU4gOiBzdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTY0LXQuc3ZnID0gSU1BR0UKLUJV
R1dLNjUyMDMgV0lOIDogc3ZnL1czQy1TVkctMS4xL2FuaW1hdGUtZWxlbS02NS10LnN2ZyA9IElN
QUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tNjYtdC5z
dmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVt
LTY3LXQuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL1czQy1TVkctMS4xL2FuaW1h
dGUtZWxlbS02OC10LnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9XM0MtU1ZHLTEu
MS9hbmltYXRlLWVsZW0tNjktdC5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvVzND
LVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTcwLXQuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDog
c3ZnL1czQy1TVkctMS4xL2FuaW1hdGUtZWxlbS04MS10LnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAz
IFdJTiA6IHN2Zy9XM0MtU1ZHLTEuMS9hbmltYXRlLWVsZW0tODItdC5zdmcgPSBJTUFHRQotQlVH
V0s2NTIwMyBXSU4gOiBzdmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTgzLXQuc3ZnID0gSU1B
R0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL1czQy1TVkctMS4xL3BzZXJ2ZXJzLWdyYWQtMDctYi5z
dmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvVzNDLVNWRy0xLjEvc3RydWN0LWZyYWct
MDItdC5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvVzNDLVNWRy0xLjEvdGV4dC1h
bGlnbi0wNC1iLnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9XM0MtU1ZHLTEuMS90
ZXh0LWFsaWduLTA1LWIuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL1czQy1TVkct
MS4xL3RleHQtYWxpZ24tMDYtYi5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvVzND
LVNWRy0xLjEvdGV4dC1wYXRoLTAxLWIuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3Zn
L1czQy1TVkctMS4xL3RleHQtdGV4dC0wNS10LnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6
IHN2Zy9hcy1iYWNrZ3JvdW5kLWltYWdlL2FuaW1hdGVkLXN2Zy1hcy1iYWNrZ3JvdW5kLmh0bWwg
PSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvYXMtaW1hZ2UvYW5pbWF0ZWQtc3ZnLWFzLWlt
YWdlLmh0bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvYmF0aWsvZmlsdGVycy9mZVRp
bGUuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL2JhdGlrL2ZpbHRlcnMvZmlsdGVy
UmVnaW9ucy5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvYmF0aWsvdGV4dC9sb25n
VGV4dE9uUGF0aC5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvYmF0aWsvdGV4dC90
ZXh0QW5jaG9yLnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9iYXRpay90ZXh0L3Rl
eHRGZWF0dXJlcy5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvYmF0aWsvdGV4dC90
ZXh0TGF5b3V0LnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9iYXRpay90ZXh0L3Rl
eHRQQ0RBVEEuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL2JhdGlrL3RleHQvdGV4
dFByb3BlcnRpZXMuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL2JhdGlrL3RleHQv
dGV4dFByb3BlcnRpZXMyLnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9iYXRpay90
ZXh0L3RleHRTdHlsZXMuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL2NhcnRvLm5l
dC90ZXh0Ym94LnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9jYXJ0by5uZXQvd2lu
ZG93LnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9jc3MvZ3JvdXAtd2l0aC1zaGFk
b3cuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL2Nzcy90ZXh0LWdyYWRpZW50LXNo
YWRvdy5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvY3NzL3RleHQtc2hhZG93LW11
bHRpcGxlLnhodG1sID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL2N1c3RvbS9qcy1sYXRl
LWNsaXBQYXRoLWFuZC1vYmplY3QtY3JlYXRpb24uc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lO
IDogc3ZnL2N1c3RvbS9qcy1sYXRlLWNsaXBQYXRoLWNyZWF0aW9uLnN2ZyA9IElNQUdFCi1CVUdX
SzY1MjAzIFdJTiA6IHN2Zy9jdXN0b20vbGlua2luZy1hLTAzLWItdmlld0JveC5zdmcgPSBJTUFH
RQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvY3VzdG9tL2xpbmtpbmctdXJpLTAxLWIuc3ZnID0gSU1B
R0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL2N1c3RvbS9zdmctZm9udHMtZmFsbGJhY2sueGh0bWwg
PSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvZHluYW1pYy11cGRhdGVzL1NWR1RleHRFbGVt
ZW50LWRvbS1sZW5ndGhBZGp1c3QtYXR0ci5odG1sID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDog
c3ZnL2R5bmFtaWMtdXBkYXRlcy9TVkdUZXh0RWxlbWVudC1zdmdkb20tbGVuZ3RoQWRqdXN0LXBy
b3AuaHRtbCA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6IHN2Zy9oaXhpZS9taXhlZC8wMDkueG1s
ID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL3RleHQvZm9yZWlnbk9iamVjdC10ZXh0LWNs
aXBwaW5nLWJ1Zy54bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvdGV4dC9zY2FsaW5n
LWZvbnQtd2l0aC1nZW9tZXRyaWMtcHJlY2lzaW9uLmh0bWwgPSBJTUFHRQotQlVHV0s2NTIwMyBX
SU4gOiBzdmcvdGV4dC90ZXh0LWFsaWduLTAxLWIuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lO
IDogc3ZnL3RleHQvdGV4dC1hbGlnbi0wNS1iLnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAzIFdJTiA6
IHN2Zy90ZXh0L3RleHQtYWxpZ24tMDYtYi5zdmcgPSBJTUFHRQotQlVHV0s2NTIwMyBXSU4gOiBz
dmcvdGV4dC90ZXh0LWludHJvLTA1LXQuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3Zn
L3RleHQvdGV4dC1wYXRoLTAxLWIuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL3Rl
eHQvdGV4dFBhdGhCb3VuZHNCdWcuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL3pv
b20vcGFnZS96b29tLWNvb3Jkcy12aWV3YXR0ci0wMS1iLnN2ZyA9IElNQUdFCi1CVUdXSzY1MjAz
IFdJTiA6IHN2Zy96b29tL3BhZ2Uvem9vbS1oaXhpZS1taXhlZC0wMDgueG1sID0gSU1BR0UKLUJV
R1dLNjUyMDMgV0lOIDogc3ZnL3pvb20vcGFnZS96b29tLWhpeGllLW1peGVkLTAwOS54bWwgPSBJ
TUFHRQotQlVHV0s2NTIwMyBXSU4gOiBzdmcvem9vbS90ZXh0L3pvb20tY29vcmRzLXZpZXdhdHRy
LTAxLWIuc3ZnID0gSU1BR0UKLUJVR1dLNjUyMDMgV0lOIDogc3ZnL3pvb20vdGV4dC96b29tLWhp
eGllLW1peGVkLTAwOS54bWwgPSBJTUFHRQotCiAvLyBXZWJLaXQgcm9sbCA1ODc5MTo1ODgwNwog
QlVHQ1I0MzMxOSBMSU5VWCBERUJVRyA6IGZhc3QvZm9ybXMvc2VsZWN0LWVtcHR5LW9wdGlvbi1o
ZWlnaHQuaHRtbCA9IFBBU1MgVElNRU9VVAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDFlMTI4MGI4MDU4Nzhj
NjczMTJhYTQ2YmYxZWI4NDRhZTMxMDc5YS4uNmM3YjZhOTQwZDY0Y2M0NTFjN2Q1ODU0YTZhNzQ5
ZTBlMzY3MzhkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDExLTA3LTI2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByOTE4MDUuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzkxODA1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NTIyNgorCisgICAgICAgIEJyZWFrcyBAIHN5bWJvbHMgYW5kIGNoYW5nZXMgb3Ro
ZXIgZm9udCByZW5kZXJpbmcgb24gV2luZG93cworICAgICAgICAoUmVxdWVzdGVkIGJ5IGVubmUg
b24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250
Q2hyb21pdW1XaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNwYXJlbmN5QXdhcmVGb250
UGFpbnRlcjo6VHJhbnNwYXJlbmN5QXdhcmVGb250UGFpbnRlcjo6VHJhbnNwYXJlbmN5QXdhcmVG
b250UGFpbnRlcik6CisgICAgICAgIChXZWJDb3JlOjpUcmFuc3BhcmVuY3lBd2FyZUZvbnRQYWlu
dGVyOjpUcmFuc3BhcmVuY3lBd2FyZUZvbnRQYWludGVyOjppbml0KToKKyAgICAgICAgKFdlYkNv
cmU6OlRyYW5zcGFyZW5jeUF3YXJlRm9udFBhaW50ZXI6OlRyYW5zcGFyZW5jeUF3YXJlRm9udFBh
aW50ZXI6OmluaXRpYWxpemVGb3JHREkpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNwYXJlbmN5
QXdhcmVGb250UGFpbnRlcjo6VHJhbnNwYXJlbmN5QXdhcmVGb250UGFpbnRlcjo6flRyYW5zcGFy
ZW5jeUF3YXJlRm9udFBhaW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNwYXJlbmN5QXdh
cmVGb250UGFpbnRlcjo6VHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBhaW50ZXI6OlRyYW5zcGFyZW5j
eUF3YXJlR2x5cGhQYWludGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zcGFyZW5jeUF3YXJl
Rm9udFBhaW50ZXI6OlRyYW5zcGFyZW5jeUF3YXJlR2x5cGhQYWludGVyOjp+VHJhbnNwYXJlbmN5
QXdhcmVHbHlwaFBhaW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNwYXJlbmN5QXdhcmVG
b250UGFpbnRlcjo6VHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBhaW50ZXI6OmRyYXdHbHlwaHMpOgor
ICAgICAgICAoV2ViQ29yZTo6VHJhbnNwYXJlbmN5QXdhcmVGb250UGFpbnRlcjo6VHJhbnNwYXJl
bmN5QXdhcmVVbmlzY3JpYmVQYWludGVyOjpoZGMpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNw
YXJlbmN5QXdhcmVGb250UGFpbnRlcjo6VHJhbnNwYXJlbmN5QXdhcmVVbmlzY3JpYmVQYWludGVy
OjpUcmFuc3BhcmVuY3lBd2FyZVVuaXNjcmliZVBhaW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VHJhbnNwYXJlbmN5QXdhcmVGb250UGFpbnRlcjo6VHJhbnNwYXJlbmN5QXdhcmVVbmlzY3JpYmVQ
YWludGVyOjp+VHJhbnNwYXJlbmN5QXdhcmVVbmlzY3JpYmVQYWludGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OmRyYXdHbHlwaHNXaW4pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0NvbXBs
ZXhUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVI
ZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVyOjpkcmF3KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6aXNOYXRpdmVGb250UmVuZGVy
aW5nQWxsb3dlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNv
bnRleHRTa2lhLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Ta2lhRm9udFdp
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3aW5kb3dzQ2FuSGFuZGxlRHJhd1RleHRTaGFkb3cp
OgorICAgICAgICAoV2ViQ29yZTo6d2luZG93c0NhbkhhbmRsZVRleHREcmF3aW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OndpbmRvd3NDYW5IYW5kbGVUZXh0RHJhd2luZ1dpdGhvdXRTaGFkb3cpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvU2tpYUZvbnRXaW4uaDoKKwogMjAxMS0w
Ny0yNiAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI5MTgxMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2hyb21pdW1XaW4uY3BwCmluZGV4
IDQ0MWJhODNkNTI2ZDdjOWFjNjc4MTAwN2I5MDU0YzYwNTYyODYzN2IuLmRkNDQxNjJmNjFjMzM1
NTkwNTZmYTgyNjRkMmQ1MjIwZTZmMDYyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDaHJvbWl1bVdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udENocm9taXVtV2luLmNwcApA
QCAtNjIsOCArNjIsMTQgQEAgYm9vbCBjYW52YXNIYXNNdWx0aXBsZUxheWVycyhjb25zdCBTa0Nh
bnZhcyogY2FudmFzKQogY2xhc3MgVHJhbnNwYXJlbmN5QXdhcmVGb250UGFpbnRlciB7CiBwdWJs
aWM6CiAgICAgVHJhbnNwYXJlbmN5QXdhcmVGb250UGFpbnRlcihHcmFwaGljc0NvbnRleHQqLCBj
b25zdCBGbG9hdFBvaW50Jik7CisgICAgflRyYW5zcGFyZW5jeUF3YXJlRm9udFBhaW50ZXIoKTsK
IAogcHJvdGVjdGVkOgorICAgIC8vIENhbGxlZCBieSBvdXIgc3ViY2xhc3MnIGNvbnN0cnVjdG9y
IHRvIGluaXRpYWxpemUgR0RJIGlmIG5lY2Vzc2FyeS4gVGhpcworICAgIC8vIGlzIGEgc2VwYXJh
dGUgZnVuY3Rpb24gc28gaXQgY2FuIGJlIGNhbGxlZCBhZnRlciB0aGUgc3ViY2xhc3MgZmluaXNo
ZXMKKyAgICAvLyBjb25zdHJ1Y3Rpb24gKGl0IGNhbGxzIHZpcnR1YWwgZnVuY3Rpb25zKS4KKyAg
ICB2b2lkIGluaXQoKTsKKwogICAgIHZpcnR1YWwgSW50UmVjdCBlc3RpbWF0ZVRleHRCb3VuZHMo
KSA9IDA7CiAKICAgICAvLyBVc2UgdGhlIGNvbnRleHQgZnJvbSB0aGUgdHJhbnNwYXJlbmN5IGhl
bHBlciB3aGVuIGRyYXdpbmcgd2l0aCBHREkuIEl0CkBAIC03Miw2ICs3OCwyMCBAQCBwcm90ZWN0
ZWQ6CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIG1fcGxhdGZvcm1Db250ZXh0OwogCiAg
ICAgRmxvYXRQb2ludCBtX3BvaW50OworCisgICAgLy8gU2V0IHdoZW4gV2luZG93cyBjYW4gaGFu
ZGxlIHRoZSB0eXBlIG9mIGRyYXdpbmcgd2UncmUgZG9pbmcuCisgICAgYm9vbCBtX3VzZUdESTsK
KworICAgIC8vIFRoZXNlIG1lbWJlcnMgYXJlIHZhbGlkIG9ubHkgd2hlbiBtX3VzZUdESSBpcyBz
ZXQuCisgICAgSERDIG1faGRjOworICAgIFRyYW5zcGFyZW5jeVdpbiBtX3RyYW5zcGFyZW5jeTsK
KworcHJpdmF0ZToKKyAgICAvLyBDYWxsIHdoZW4gd2UncmUgdXNpbmcgR0RJIG1vZGUgdG8gaW5p
dGlhbGl6ZSB0aGUgVHJhbnNwYXJlbmN5V2luIHRvIGhlbHAKKyAgICAvLyB1cyBkcmF3IEdESSB0
ZXh0LgorICAgIHZvaWQgaW5pdGlhbGl6ZUZvckdESSgpOworCisgICAgYm9vbCBtX2NyZWF0ZWRU
cmFuc3BhcmVuY3lMYXllcjsgIC8vIFdlIGNyZWF0ZWQgYSBsYXllciB0byBnaXZlIHRoZSBmb250
IHNvbWUgYWxwaGEuCiB9OwogCiBUcmFuc3BhcmVuY3lBd2FyZUZvbnRQYWludGVyOjpUcmFuc3Bh
cmVuY3lBd2FyZUZvbnRQYWludGVyKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwKQEAgLTc5LDcg
Kzk5LDg4IEBAIFRyYW5zcGFyZW5jeUF3YXJlRm9udFBhaW50ZXI6OlRyYW5zcGFyZW5jeUF3YXJl
Rm9udFBhaW50ZXIoR3JhcGhpY3NDb250ZXh0KiBjb250CiAgICAgOiBtX2dyYXBoaWNzQ29udGV4
dChjb250ZXh0KQogICAgICwgbV9wbGF0Zm9ybUNvbnRleHQoY29udGV4dC0+cGxhdGZvcm1Db250
ZXh0KCkpCiAgICAgLCBtX3BvaW50KHBvaW50KQorICAgICwgbV91c2VHREkod2luZG93c0Nhbkhh
bmRsZVRleHREcmF3aW5nKGNvbnRleHQpKQorICAgICwgbV9oZGMoMCkKKyAgICAsIG1fY3JlYXRl
ZFRyYW5zcGFyZW5jeUxheWVyKGZhbHNlKQoreworfQorCit2b2lkIFRyYW5zcGFyZW5jeUF3YXJl
Rm9udFBhaW50ZXI6OmluaXQoKQoreworICAgIGlmIChtX3VzZUdESSkKKyAgICAgICAgaW5pdGlh
bGl6ZUZvckdESSgpOworfQorCit2b2lkIFRyYW5zcGFyZW5jeUF3YXJlRm9udFBhaW50ZXI6Omlu
aXRpYWxpemVGb3JHREkoKQogeworICAgIG1fZ3JhcGhpY3NDb250ZXh0LT5zYXZlKCk7CisgICAg
U2tDb2xvciBjb2xvciA9IG1fcGxhdGZvcm1Db250ZXh0LT5lZmZlY3RpdmVGaWxsQ29sb3IoKTsK
KyAgICAvLyBVc2VkIG9ubHkgd2hlbiBtX2NyZWF0ZWRUcmFuc3BhcmVuY3lMYXllciBpcyB0cnVl
LgorICAgIGZsb2F0IGxheWVyQWxwaGEgPSAwLjBmOworICAgIGlmIChTa0NvbG9yR2V0QShjb2xv
cikgIT0gMHhGRikgeworICAgICAgICAvLyBXaGVuIHRoZSBmb250IGhhcyBzb21lIHRyYW5zcGFy
ZW5jeSwgYXBwbHkgaXQgYnkgY3JlYXRpbmcgYSBuZXcKKyAgICAgICAgLy8gdHJhbnNwYXJlbmN5
IGxheWVyIHdpdGggdGhhdCBvcGFjaXR5IGFwcGxpZWQuIFdlJ2xsIGFjdHVhbGx5IGNyZWF0ZQor
ICAgICAgICAvLyBhIG5ldyB0cmFuc3BhcmVuY3kgbGF5ZXIgYWZ0ZXIgd2UgY2FsY3VsYXRlIHRo
ZSBib3VuZGluZyBib3guCisgICAgICAgIG1fY3JlYXRlZFRyYW5zcGFyZW5jeUxheWVyID0gdHJ1
ZTsKKyAgICAgICAgbGF5ZXJBbHBoYSA9IFNrQ29sb3JHZXRBKGNvbG9yKSAvIDI1NS4wZjsKKyAg
ICAgICAgLy8gVGhlIGNvbG9yIHNob3VsZCBiZSBvcGFxdWUgbm93LgorICAgICAgICBjb2xvciA9
IFNrQ29sb3JTZXRSR0IoU2tDb2xvckdldFIoY29sb3IpLCBTa0NvbG9yR2V0Ryhjb2xvciksIFNr
Q29sb3JHZXRCKGNvbG9yKSk7CisgICAgfQorCisgICAgVHJhbnNwYXJlbmN5V2luOjpMYXllck1v
ZGUgbGF5ZXJNb2RlOworICAgIEludFJlY3QgbGF5ZXJSZWN0OworICAgIGlmIChtX3BsYXRmb3Jt
Q29udGV4dC0+aXNEcmF3aW5nVG9JbWFnZUJ1ZmZlcigpKSB7CisgICAgICAgIC8vIEFzc3VtZSBp
ZiB3ZSdyZSBkcmF3aW5nIHRvIGFuIGltYWdlIGJ1ZmZlciB0aGF0IHRoZSBiYWNrZ3JvdW5kCisg
ICAgICAgIC8vIGlzIG5vdCBvcGFxdWUgYW5kIHdlIGhhdmUgdG8gdW5kbyBDbGVhclR5cGUuIFdl
IG1heSB3YW50IHRvCisgICAgICAgIC8vIGVuaGFuY2UgdGhpcyB0byBhY3R1YWxseSBjaGVjaywg
c2luY2UgaXQgd2lsbCBvZnRlbiBiZSBvcGFxdWUKKyAgICAgICAgLy8gYW5kIHdlIGNvdWxkIGRv
IENsZWFyVHlwZSBpbiB0aGF0IGNhc2UuCisgICAgICAgIGxheWVyTW9kZSA9IFRyYW5zcGFyZW5j
eVdpbjo6VGV4dENvbXBvc2l0ZTsKKyAgICAgICAgbGF5ZXJSZWN0ID0gZXN0aW1hdGVUZXh0Qm91
bmRzKCk7CisgICAgICAgIG1fZ3JhcGhpY3NDb250ZXh0LT5jbGlwKGxheWVyUmVjdCk7CisgICAg
ICAgIGlmIChtX2NyZWF0ZWRUcmFuc3BhcmVuY3lMYXllcikKKyAgICAgICAgICAgIG1fZ3JhcGhp
Y3NDb250ZXh0LT5iZWdpblRyYW5zcGFyZW5jeUxheWVyKGxheWVyQWxwaGEpOworCisgICAgICAg
IC8vIFRoZSB0cmFuc3BhcmVuY3kgaGVscGVyIHJlcXVpcmVzIHRoYXQgd2UgZHJhdyB0ZXh0IGlu
IGJsYWNrIGluCisgICAgICAgIC8vIHRoaXMgbW9kZSBhbmQgaXQgd2lsbCBhcHBseSB0aGUgY29s
b3IuCisgICAgICAgIG1fdHJhbnNwYXJlbmN5LnNldFRleHRDb21wb3NpdGVDb2xvcihjb2xvcik7
CisgICAgICAgIGNvbG9yID0gU2tDb2xvclNldFJHQigwLCAwLCAwKTsKKyAgICB9IGVsc2UgaWYg
KG1fY3JlYXRlZFRyYW5zcGFyZW5jeUxheWVyIHx8IGNhbnZhc0hhc011bHRpcGxlTGF5ZXJzKG1f
cGxhdGZvcm1Db250ZXh0LT5jYW52YXMoKSkpIHsKKyAgICAgICAgLy8gV2hlbiB3ZSdyZSBkcmF3
aW5nIGEgd2ViIHBhZ2UsIHdlIGtub3cgdGhlIGJhY2tncm91bmQgaXMgb3BhcXVlLAorICAgICAg
ICAvLyBidXQgaWYgd2UncmUgZHJhd2luZyB0byBhIGxheWVyLCB3ZSBzdGlsbCBuZWVkIGV4dHJh
IHdvcmsuCisgICAgICAgIGxheWVyTW9kZSA9IFRyYW5zcGFyZW5jeVdpbjo6T3BhcXVlQ29tcG9z
aXRlTGF5ZXI7CisgICAgICAgIGxheWVyUmVjdCA9IGVzdGltYXRlVGV4dEJvdW5kcygpOworICAg
ICAgICBtX2dyYXBoaWNzQ29udGV4dC0+Y2xpcChsYXllclJlY3QpOworICAgICAgICBpZiAobV9j
cmVhdGVkVHJhbnNwYXJlbmN5TGF5ZXIpCisgICAgICAgICAgICBtX2dyYXBoaWNzQ29udGV4dC0+
YmVnaW5UcmFuc3BhcmVuY3lMYXllcihsYXllckFscGhhKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICAvLyBDb21tb24gY2FzZSBvZiBkcmF3aW5nIG9udG8gdGhlIGJvdHRvbSBsYXllciBvZiBhIHdl
YiBwYWdlOiB3ZQorICAgICAgICAvLyBrbm93IGV2ZXJ5dGhpbmcgaXMgb3BhcXVlIHNvIGRvbid0
IG5lZWQgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KKyAgICAgICAgbGF5ZXJNb2RlID0gVHJhbnNw
YXJlbmN5V2luOjpOb0xheWVyOworICAgIH0KKworICAgIC8vIEJ1ZyAyNjA4OCAtIGluaXQoKSBt
aWdodCBmYWlsIGlmIGxheWVyUmVjdCBpcyBpbnZhbGlkLiBHaXZlbiB0aGlzLCB3ZQorICAgIC8v
IG5lZWQgdG8gYmUgY2FyZWZ1bCB0byBjaGVjayBmb3IgbnVsbCBwb2ludGVycyBldmVyeXdoZXJl
IGFmdGVyIHRoaXMgY2FsbAorICAgIG1fdHJhbnNwYXJlbmN5LmluaXQobV9ncmFwaGljc0NvbnRl
eHQsIGxheWVyTW9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc3BhcmVuY3lXaW46
OktlZXBUcmFuc2Zvcm0sIGxheWVyUmVjdCk7CisKKyAgICAvLyBTZXQgdXAgdGhlIERDLCB1c2lu
ZyB0aGUgb25lIGZyb20gdGhlIHRyYW5zcGFyZW5jeSBoZWxwZXIuCisgICAgaWYgKG1fdHJhbnNw
YXJlbmN5LnBsYXRmb3JtQ29udGV4dCgpKSB7CisgICAgICAgIG1faGRjID0gc2tpYTo6QmVnaW5Q
bGF0Zm9ybVBhaW50KG1fdHJhbnNwYXJlbmN5LnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSk7
CisgICAgICAgIFNldFRleHRDb2xvcihtX2hkYywgc2tpYTo6U2tDb2xvclRvQ09MT1JSRUYoY29s
b3IpKTsKKyAgICAgICAgU2V0QmtNb2RlKG1faGRjLCBUUkFOU1BBUkVOVCk7CisgICAgfQorfQor
CitUcmFuc3BhcmVuY3lBd2FyZUZvbnRQYWludGVyOjp+VHJhbnNwYXJlbmN5QXdhcmVGb250UGFp
bnRlcigpCit7CisgICAgaWYgKCFtX3VzZUdESSB8fCAhbV9ncmFwaGljc0NvbnRleHQgfHwgIW1f
cGxhdGZvcm1Db250ZXh0KQorICAgICAgICByZXR1cm47ICAvLyBOb3RoaW5nIHRvIGRvLgorICAg
IG1fdHJhbnNwYXJlbmN5LmNvbXBvc2l0ZSgpOworICAgIGlmIChtX2NyZWF0ZWRUcmFuc3BhcmVu
Y3lMYXllcikKKyAgICAgICAgbV9ncmFwaGljc0NvbnRleHQtPmVuZFRyYW5zcGFyZW5jeUxheWVy
KCk7CisgICAgbV9ncmFwaGljc0NvbnRleHQtPnJlc3RvcmUoKTsKKyAgICBpZiAobV90cmFuc3Bh
cmVuY3kucGxhdGZvcm1Db250ZXh0KCkpCisgICAgICAgIHNraWE6OkVuZFBsYXRmb3JtUGFpbnQo
bV90cmFuc3BhcmVuY3kucGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpKTsKIH0KIAogLy8gU3Bl
Y2lhbGl6YXRpb24gZm9yIHNpbXBsZSBHbHlwaEJ1ZmZlciBwYWludGluZy4KQEAgLTkwLDEwICsx
OTEsMTMgQEAgY2xhc3MgVHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBhaW50ZXIgOiBwdWJsaWMgVHJh
bnNwYXJlbmN5QXdhcmVGb250UGFpbnRlciB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgR2x5cGhCdWZmZXImLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBmcm9tLCBpbnQgbnVtR2x5cGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmKTsKKyAgICB+VHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBh
aW50ZXIoKTsKIAogICAgIC8vIERyYXdzIHRoZSBwYXJ0aWFsIHN0cmluZyBvZiBnbHlwaHMsIHN0
YXJ0aW5nIGF0IHxzdGFydEFkdmFuY2V8IHRvIHRoZQotICAgIC8vIGxlZnQgb2YgbV9wb2ludC4K
LSAgICB2b2lkIGRyYXdHbHlwaHMoaW50IG51bUdseXBocywgY29uc3QgV09SRCogZ2x5cGhzLCBj
b25zdCBpbnQqIGFkdmFuY2VzLCBmbG9hdCBzdGFydEFkdmFuY2UpIGNvbnN0OworICAgIC8vIGxl
ZnQgb2YgbV9wb2ludC4gV2UgZXhwcmVzcyBpdCB0aGlzIHdheSBzbyB0aGF0IGlmIHdlJ3JlIHVz
aW5nIHRoZSBTa2lhCisgICAgLy8gZHJhd2luZyBwYXRoIHdlIGNhbiB1c2UgZmxvYXRpbmctcG9p
bnQgcG9zaXRpb25pbmcsIGV2ZW4gdGhvdWdoIHdlIGhhdmUKKyAgICAvLyB0byB1c2UgaW50ZWdl
ciBwb3NpdGlvbmluZyBpbiB0aGUgR0RJIHBhdGguCisgICAgYm9vbCBkcmF3R2x5cGhzKGludCBu
dW1HbHlwaHMsIGNvbnN0IFdPUkQqIGdseXBocywgY29uc3QgaW50KiBhZHZhbmNlcywgZmxvYXQg
c3RhcnRBZHZhbmNlKSBjb25zdDsKIAogIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnRSZWN0IGVz
dGltYXRlVGV4dEJvdW5kcygpOwpAQCAtMTAyLDYgKzIwNiwxMCBAQCBjbGFzcyBUcmFuc3BhcmVu
Y3lBd2FyZUdseXBoUGFpbnRlciA6IHB1YmxpYyBUcmFuc3BhcmVuY3lBd2FyZUZvbnRQYWludGVy
IHsKICAgICBjb25zdCBHbHlwaEJ1ZmZlciYgbV9nbHlwaEJ1ZmZlcjsKICAgICBpbnQgbV9mcm9t
OwogICAgIGludCBtX251bUdseXBoczsKKworICAgIC8vIFdoZW4gbV91c2VHZGkgaXMgc2V0LCB0
aGlzIHN0b3JlcyB0aGUgcHJldmlvdXMgSEZPTlQgc2VsZWN0ZWQgaW50byB0aGUKKyAgICAvLyBt
X2hkYyBzbyB3ZSBjYW4gcmVzdG9yZSBpdC4KKyAgICBIR0RJT0JKIG1fb2xkRm9udDsgIC8vIEZv
ciByZXN0b3JpbmcgdGhlIERDIHRvIGl0cyBvcmlnaW5hbCBzdGF0ZS4KIH07CiAKIFRyYW5zcGFy
ZW5jeUF3YXJlR2x5cGhQYWludGVyOjpUcmFuc3BhcmVuY3lBd2FyZUdseXBoUGFpbnRlcigKQEAg
LTExNSw5ICsyMjMsMjEgQEAgVHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBhaW50ZXI6OlRyYW5zcGFy
ZW5jeUF3YXJlR2x5cGhQYWludGVyKAogICAgICwgbV9nbHlwaEJ1ZmZlcihnbHlwaEJ1ZmZlcikK
ICAgICAsIG1fZnJvbShmcm9tKQogICAgICwgbV9udW1HbHlwaHMobnVtR2x5cGhzKQorICAgICwg
bV9vbGRGb250KDApCiB7CisgICAgaW5pdCgpOworCisgICAgaWYgKG1faGRjKQorICAgICAgICBt
X29sZEZvbnQgPSA6OlNlbGVjdE9iamVjdChtX2hkYywgbV9mb250LT5wbGF0Zm9ybURhdGEoKS5o
Zm9udCgpKTsKIH0KIAorVHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBhaW50ZXI6On5UcmFuc3BhcmVu
Y3lBd2FyZUdseXBoUGFpbnRlcigpCit7CisgICAgaWYgKG1fdXNlR0RJICYmIG1faGRjKQorICAg
ICAgICA6OlNlbGVjdE9iamVjdChtX2hkYywgbV9vbGRGb250KTsKK30KKworCiAvLyBFc3RpbWF0
ZXMgdGhlIGJvdW5kaW5nIGJveCBvZiB0aGUgZ2l2ZW4gdGV4dC4gVGhpcyBpcyBjb3BpZWQgZnJv
bQogLy8gRm9udENHV2luLmNwcCwgaXQgaXMgcG9zc2libGUsIGJ1dCBhIGxvdCBtb3JlIHdvcmss
IHRvIGdldCB0aGUgcHJlY2lkZQogLy8gYm91bmRzLgpAQCAtMTM0LDE1ICsyNTQsNDcgQEAgSW50
UmVjdCBUcmFuc3BhcmVuY3lBd2FyZUdseXBoUGFpbnRlcjo6ZXN0aW1hdGVUZXh0Qm91bmRzKCkK
ICAgICAgICAgICAgICAgICAgICBmb250TWV0cmljcy5saW5lU3BhY2luZygpKTsgCiB9CiAKLXZv
aWQgVHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBhaW50ZXI6OmRyYXdHbHlwaHMoaW50IG51bUdseXBo
cywKK2Jvb2wgVHJhbnNwYXJlbmN5QXdhcmVHbHlwaFBhaW50ZXI6OmRyYXdHbHlwaHMoaW50IG51
bUdseXBocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgV09SRCogZ2x5cGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBpbnQqIGFkdmFuY2VzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBzdGFydEFkdmFuY2UpIGNvbnN0CiB7Ci0gICAg
U2tQb2ludCBvcmlnaW4gPSBtX3BvaW50OwotICAgIG9yaWdpbi5mWCArPSBTa0Zsb2F0VG9TY2Fs
YXIoc3RhcnRBZHZhbmNlKTsKLSAgICBwYWludFNraWFUZXh0KG1fZ3JhcGhpY3NDb250ZXh0LCBt
X2ZvbnQtPnBsYXRmb3JtRGF0YSgpLmhmb250KCksCi0gICAgICAgICAgICAgICAgICBudW1HbHlw
aHMsIGdseXBocywgYWR2YW5jZXMsIDAsICZvcmlnaW4pOworICAgIGlmICghbV91c2VHREkpIHsK
KyAgICAgICAgU2tQb2ludCBvcmlnaW4gPSBtX3BvaW50OworICAgICAgICBvcmlnaW4uZlggKz0g
U2tGbG9hdFRvU2NhbGFyKHN0YXJ0QWR2YW5jZSk7CisgICAgICAgIHBhaW50U2tpYVRleHQobV9n
cmFwaGljc0NvbnRleHQsIG1fZm9udC0+cGxhdGZvcm1EYXRhKCkuaGZvbnQoKSwKKyAgICAgICAg
ICAgICAgICAgICAgICBudW1HbHlwaHMsIGdseXBocywgYWR2YW5jZXMsIDAsICZvcmlnaW4pOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoIW1fZ3JhcGhpY3NDb250ZXh0
IHx8ICFtX2hkYykKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBXaW5kb3dzJyBvcmln
aW4gaXMgdGhlIHRvcC1sZWZ0IG9mIHRoZSBib3VuZGluZyBib3gsIHNvIHdlIGhhdmUKKyAgICAv
LyB0byBzdWJ0cmFjdCBvZmYgdGhlIGZvbnQgYXNjZW50IHRvIGdldCBpdC4KKyAgICBpbnQgeCA9
IGxyb3VuZGYobV9wb2ludC54KCkgKyBzdGFydEFkdmFuY2UpOworICAgIGludCB5ID0gbHJvdW5k
ZihtX3BvaW50LnkoKSAtIG1fZm9udC0+Zm9udE1ldHJpY3MoKS5hc2NlbnQoKSk7CisKKyAgICAv
LyBJZiB0aGVyZSBpcyBhIG5vbi1ibHVyIHNoYWRvdyBhbmQgYm90aCB0aGUgZmlsbCBjb2xvciBh
bmQgc2hhZG93IGNvbG9yIAorICAgIC8vIGFyZSBvcGFxdWUsIGhhbmRsZSB3aXRob3V0IHNraWEu
IAorICAgIEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7CisgICAgZmxvYXQgc2hhZG93Qmx1cjsKKyAg
ICBDb2xvciBzaGFkb3dDb2xvcjsKKyAgICBDb2xvclNwYWNlIHNoYWRvd0NvbG9yU3BhY2U7Cisg
ICAgaWYgKG1fZ3JhcGhpY3NDb250ZXh0LT5nZXRTaGFkb3coc2hhZG93T2Zmc2V0LCBzaGFkb3dC
bHVyLCBzaGFkb3dDb2xvciwgc2hhZG93Q29sb3JTcGFjZSkpIHsKKyAgICAgICAgLy8gSWYgdGhl
cmUgaXMgYSBzaGFkb3cgYW5kIHRoaXMgY29kZSBpcyByZWFjaGVkLCB3aW5kb3dzQ2FuSGFuZGxl
RHJhd1RleHRTaGFkb3coKQorICAgICAgICAvLyB3aWxsIGhhdmUgYWxyZWFkeSByZXR1cm5lZCB0
cnVlIGR1cmluZyB0aGUgY3RvciBpbml0aWF0aXphdGlvbiBvZiBtX3VzZUdESQorICAgICAgICBB
U1NFUlQoc2hhZG93Q29sb3IuYWxwaGEoKSA9PSAyNTUpOworICAgICAgICBBU1NFUlQobV9ncmFw
aGljc0NvbnRleHQtPmZpbGxDb2xvcigpLmFscGhhKCkgPT0gMjU1KTsKKyAgICAgICAgQVNTRVJU
KHNoYWRvd0JsdXIgPT0gMCk7CisgICAgICAgIENPTE9SUkVGIHRleHRDb2xvciA9IHNraWE6OlNr
Q29sb3JUb0NPTE9SUkVGKFNrQ29sb3JTZXRBUkdCKDI1NSwgc2hhZG93Q29sb3IucmVkKCksIHNo
YWRvd0NvbG9yLmdyZWVuKCksIHNoYWRvd0NvbG9yLmJsdWUoKSkpOworICAgICAgICBDT0xPUlJF
RiBzYXZlZFRleHRDb2xvciA9IEdldFRleHRDb2xvcihtX2hkYyk7CisgICAgICAgIFNldFRleHRD
b2xvcihtX2hkYywgdGV4dENvbG9yKTsKKyAgICAgICAgRXh0VGV4dE91dChtX2hkYywgeCArIHNo
YWRvd09mZnNldC53aWR0aCgpLCB5ICsgc2hhZG93T2Zmc2V0LmhlaWdodCgpLCBFVE9fR0xZUEhf
SU5ERVgsIDAsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgd2NoYXJfdCo+KCZnbHlwaHNbMF0pLCBu
dW1HbHlwaHMsICZhZHZhbmNlc1swXSk7CisgICAgICAgIFNldFRleHRDb2xvcihtX2hkYywgc2F2
ZWRUZXh0Q29sb3IpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gISFFeHRUZXh0T3V0KG1faGRj
LCB4LCB5LCBFVE9fR0xZUEhfSU5ERVgsIDAsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgd2NoYXJf
dCo+KCZnbHlwaHNbMF0pLCBudW1HbHlwaHMsICZhZHZhbmNlc1swXSk7CiB9CiAKIGNsYXNzIFRy
YW5zcGFyZW5jeUF3YXJlVW5pc2NyaWJlUGFpbnRlciA6IHB1YmxpYyBUcmFuc3BhcmVuY3lBd2Fy
ZUZvbnRQYWludGVyIHsKQEAgLTE1Miw2ICszMDQsMTAgQEAgY2xhc3MgVHJhbnNwYXJlbmN5QXdh
cmVVbmlzY3JpYmVQYWludGVyIDogcHVibGljIFRyYW5zcGFyZW5jeUF3YXJlRm9udFBhaW50ZXIg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUZXh0UnVuJiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZyb20sIGludCB0bywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgRmxvYXRQb2ludCYp
OworICAgIH5UcmFuc3BhcmVuY3lBd2FyZVVuaXNjcmliZVBhaW50ZXIoKTsKKworICAgIC8vIFVu
aXNjaWJlIHdpbGwgZHJhdyBkaXJlY3RseSBpbnRvIG91ciBidWZmZXIsIHNvIHdlIG5lZWQgdG8g
ZXhwb3NlIG91ciBEQy4KKyAgICBIREMgaGRjKCkgY29uc3QgeyByZXR1cm4gbV9oZGM7IH0KIAog
IHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnRSZWN0IGVzdGltYXRlVGV4dEJvdW5kcygpOwpAQCAt
MTc0LDYgKzMzMCwxMSBAQCBUcmFuc3BhcmVuY3lBd2FyZVVuaXNjcmliZVBhaW50ZXI6OlRyYW5z
cGFyZW5jeUF3YXJlVW5pc2NyaWJlUGFpbnRlcigKICAgICAsIG1fZnJvbShmcm9tKQogICAgICwg
bV90byh0bykKIHsKKyAgICBpbml0KCk7Cit9CisKK1RyYW5zcGFyZW5jeUF3YXJlVW5pc2NyaWJl
UGFpbnRlcjo6flRyYW5zcGFyZW5jeUF3YXJlVW5pc2NyaWJlUGFpbnRlcigpCit7CiB9CiAKIElu
dFJlY3QgVHJhbnNwYXJlbmN5QXdhcmVVbmlzY3JpYmVQYWludGVyOjplc3RpbWF0ZVRleHRCb3Vu
ZHMoKQpAQCAtMjY0LDcgKzQyNSwyMCBAQCBzdGF0aWMgdm9pZCBkcmF3R2x5cGhzV2luKEdyYXBo
aWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LAogICAgICAgICAgICAgICAgIGFkdmFuY2VzW2ld
ID0gMDsKICAgICAgICAgfQogCi0gICAgICAgIHBhaW50ZXIuZHJhd0dseXBocyhjdXJMZW4sICZn
bHlwaHNbMF0sICZhZHZhbmNlc1swXSwgaG9yaXpvbnRhbE9mZnNldCAtIHBvaW50LngoKSAtIGN1
cnJlbnRXaWR0aCk7CisgICAgICAgIC8vIEFjdHVhbGx5IGRyYXcgdGhlIGdseXBocyAod2l0aCBy
ZXRyeSBvbiBmYWlsdXJlKS4KKyAgICAgICAgYm9vbCBzdWNjZXNzID0gZmFsc2U7CisgICAgICAg
IGZvciAoaW50IGV4ZWN1dGlvbnMgPSAwOyBleGVjdXRpb25zIDwgMjsgKytleGVjdXRpb25zKSB7
CisgICAgICAgICAgICBzdWNjZXNzID0gcGFpbnRlci5kcmF3R2x5cGhzKGN1ckxlbiwgJmdseXBo
c1swXSwgJmFkdmFuY2VzWzBdLCBob3Jpem9udGFsT2Zmc2V0IC0gcG9pbnQueCgpIC0gY3VycmVu
dFdpZHRoKTsKKyAgICAgICAgICAgIGlmICghc3VjY2VzcyAmJiBleGVjdXRpb25zID09IDApIHsK
KyAgICAgICAgICAgICAgICAvLyBBc2sgdGhlIGJyb3dzZXIgdG8gbG9hZCB0aGUgZm9udCBmb3Ig
dXMgYW5kIHJldHJ5LgorICAgICAgICAgICAgICAgIFBsYXRmb3JtQnJpZGdlOjplbnN1cmVGb250
TG9hZGVkKGZvbnQtPnBsYXRmb3JtRGF0YSgpLmhmb250KCkpOworICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwor
ICAgICAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBk
cmF3IHRoZSBnbHlwaHMgYWZ0ZXIgc2Vjb25kIGF0dGVtcHQiKTsKICAgICB9CiB9CiAKQEAgLTMx
OCw5ICs0OTIsMzcgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0
KiBncmFwaGljc0NvbnRleHQsCiAgICAgaWYgKCFhbHBoYSAmJiBncmFwaGljc0NvbnRleHQtPnBs
YXRmb3JtQ29udGV4dCgpLT5nZXRTdHJva2VTdHlsZSgpID09IE5vU3Ryb2tlKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBUcmFuc3BhcmVuY3lBd2FyZVVuaXNjcmliZVBhaW50ZXIgcGFpbnRlcihn
cmFwaGljc0NvbnRleHQsIHRoaXMsIHJ1biwgZnJvbSwgdG8sIHBvaW50KTsKKworICAgIEhEQyBo
ZGMgPSBwYWludGVyLmhkYygpOworICAgIGlmICh3aW5kb3dzQ2FuSGFuZGxlVGV4dERyYXdpbmco
Z3JhcGhpY3NDb250ZXh0KSAmJiAhaGRjKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUT0RP
KG1hcnVlbCk6IGh0dHA6Ly9iLzcwMDQ2NCBTZXRUZXh0Q29sb3IgZG9lc24ndCBzdXBwb3J0IHRy
YW5zcGFyZW5jeS4KKyAgICAvLyBFbmZvcmNlIG5vbi10cmFuc3BhcmVudCBjb2xvci4KKyAgICBj
b2xvciA9IFNrQ29sb3JTZXRSR0IoU2tDb2xvckdldFIoY29sb3IpLCBTa0NvbG9yR2V0Ryhjb2xv
ciksIFNrQ29sb3JHZXRCKGNvbG9yKSk7CisgICAgaWYgKGhkYykgeworICAgICAgICBTZXRUZXh0
Q29sb3IoaGRjLCBza2lhOjpTa0NvbG9yVG9DT0xPUlJFRihjb2xvcikpOworICAgICAgICBTZXRC
a01vZGUoaGRjLCBUUkFOU1BBUkVOVCk7CisgICAgfQorCisgICAgLy8gSWYgdGhlcmUgaXMgYSBu
b24tYmx1ciBzaGFkb3cgYW5kIGJvdGggdGhlIGZpbGwgY29sb3IgYW5kIHNoYWRvdyBjb2xvciAK
KyAgICAvLyBhcmUgb3BhcXVlLCBoYW5kbGUgd2l0aG91dCBza2lhLiAKKyAgICBGbG9hdFNpemUg
c2hhZG93T2Zmc2V0OworICAgIGZsb2F0IHNoYWRvd0JsdXI7CisgICAgQ29sb3Igc2hhZG93Q29s
b3I7CisgICAgQ29sb3JTcGFjZSBzaGFkb3dDb2xvclNwYWNlOworICAgIGlmIChncmFwaGljc0Nv
bnRleHQtPmdldFNoYWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd0JsdXIsIHNoYWRvd0NvbG9yLCBz
aGFkb3dDb2xvclNwYWNlKSAmJiB3aW5kb3dzQ2FuSGFuZGxlRHJhd1RleHRTaGFkb3coZ3JhcGhp
Y3NDb250ZXh0KSkgeworICAgICAgICBDT0xPUlJFRiB0ZXh0Q29sb3IgPSBza2lhOjpTa0NvbG9y
VG9DT0xPUlJFRihTa0NvbG9yU2V0QVJHQigyNTUsIHNoYWRvd0NvbG9yLnJlZCgpLCBzaGFkb3dD
b2xvci5ncmVlbigpLCBzaGFkb3dDb2xvci5ibHVlKCkpKTsKKyAgICAgICAgQ09MT1JSRUYgc2F2
ZWRUZXh0Q29sb3IgPSBHZXRUZXh0Q29sb3IoaGRjKTsKKyAgICAgICAgU2V0VGV4dENvbG9yKGhk
YywgdGV4dENvbG9yKTsKKyAgICAgICAgc3RhdGUuZHJhdyhncmFwaGljc0NvbnRleHQsIGhkYywg
c3RhdGljX2Nhc3Q8aW50Pihwb2ludC54KCkpICsgc2hhZG93T2Zmc2V0LndpZHRoKCksCisgICAg
ICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50Pihwb2ludC55KCkgLSBmb250TWV0cmljcygp
LmFzY2VudCgpKSArIHNoYWRvd09mZnNldC5oZWlnaHQoKSwgZnJvbSwgdG8pOworICAgICAgICBT
ZXRUZXh0Q29sb3IoaGRjLCBzYXZlZFRleHRDb2xvcik7IAorICAgIH0KKwogICAgIC8vIFVuaXNj
cmliZSBjb3VudHMgdGhlIGNvb3JkaW5hdGVzIGZyb20gdGhlIHVwcGVyIGxlZnQsIHdoaWxlIFdl
YktpdCB1c2VzCiAgICAgLy8gdGhlIGJhc2VsaW5lLCBzbyB3ZSBoYXZlIHRvIHN1YnRyYWN0IG9m
ZiB0aGUgYXNjZW50LgotICAgIEhEQyBoZGMgPSAwOwogICAgIHN0YXRlLmRyYXcoZ3JhcGhpY3ND
b250ZXh0LCBoZGMsIGxyb3VuZGYocG9pbnQueCgpKSwgbHJvdW5kZihwb2ludC55KCkgLSBmb250
TWV0cmljcygpLmFzY2VudCgpKSwgZnJvbSwgdG8pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVy
LmNwcAppbmRleCBlYzJkZTNjZjEwYTc2NDc5MDExNmE1NjMyODVkNTc3MTc1MDY3YzNjLi4zOGQ3
NGI3ZTc0ODBhZDY5MGJlM2UwMzM4Yzg0M2I3YjhiYzU1YTIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhl
bHBlci5jcHAKQEAgLTI2OSw2ICsyNjksNyBAQCB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZHJhdyhH
cmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwKICAgICBIR0RJT0JKIG9sZEZvbnQgPSAw
OwogICAgIGludCBjdXJYID0geDsKICAgICBib29sIGZpcnN0UnVuID0gdHJ1ZTsKKyAgICBib29s
IHVzZVdpbmRvd3NEcmF3aW5nID0gd2luZG93c0NhbkhhbmRsZVRleHREcmF3aW5nKGdyYXBoaWNz
Q29udGV4dCk7CiAKICAgICBmb3IgKHNpemVfdCBzY3JlZW5JbmRleCA9IDA7IHNjcmVlbkluZGV4
IDwgbV9ydW5zLnNpemUoKTsgc2NyZWVuSW5kZXgrKykgewogICAgICAgICBpbnQgaXRlbUluZGV4
ID0gbV9zY3JlZW5PcmRlcltzY3JlZW5JbmRleF07CkBAIC0zNDcsMjIgKzM0OCw0MyBAQCB2b2lk
IFVuaXNjcmliZUhlbHBlcjo6ZHJhdyhHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwK
ICAgICAgICAgICAgIC8vIFBhc3MgMCBpbiB3aGVuIHRoZXJlIGlzIG5vIGp1c3RpZmljYXRpb24u
CiAgICAgICAgICAgICBjb25zdCBpbnQqIGp1c3RpZnkgPSBzaGFwaW5nLm1fanVzdGlmeS5zaXpl
KCkgPT0gMCA/IDAgOiAmc2hhcGluZy5tX2p1c3RpZnlbZnJvbUdseXBoXTsKIAorICAgICAgICAg
ICAgaWYgKHVzZVdpbmRvd3NEcmF3aW5nKSB7CisgICAgICAgICAgICAgICAgaWYgKGZpcnN0UnVu
KSB7CisgICAgICAgICAgICAgICAgICAgIG9sZEZvbnQgPSBTZWxlY3RPYmplY3QoZGMsIHNoYXBp
bmcubV9oZm9udCk7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0UnVuID0gZmFsc2U7CisgICAg
ICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgICAgIFNlbGVjdE9iamVjdChkYywg
c2hhcGluZy5tX2hmb250KTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgLy8gRm9udHMg
d2l0aCBkaWZmZXJlbnQgYXNjZW50cyBjYW4gYmUgdXNlZCB0byByZW5kZXIgZGlmZmVyZW50CiAg
ICAgICAgICAgICAvLyBydW5zLiAgJ0Fjcm9zcy1ydW5zJyB5LWNvb3JkaW5hdGUgY29ycmVjdGlv
biBuZWVkcyB0byBiZQogICAgICAgICAgICAgLy8gYWRqdXN0ZWQgZm9yIGVhY2ggZm9udC4KICAg
ICAgICAgICAgIGJvb2wgdGV4dE91dE9rID0gZmFsc2U7CiAgICAgICAgICAgICBmb3IgKGludCBl
eGVjdXRpb25zID0gMDsgZXhlY3V0aW9ucyA8IDI7ICsrZXhlY3V0aW9ucykgewotICAgICAgICAg
ICAgICAgIFNrUG9pbnQgb3JpZ2luOwotICAgICAgICAgICAgICAgIG9yaWdpbi5mWCA9IGN1clgg
KyArIGlubmVyT2Zmc2V0OwotICAgICAgICAgICAgICAgIG9yaWdpbi5mWSA9IHkgKyBtX2FzY2Vu
dDsKLSAgICAgICAgICAgICAgICBwYWludFNraWFUZXh0KGdyYXBoaWNzQ29udGV4dCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBpbmcubV9oZm9udCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdseXBoQ291bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmc2hhcGluZy5tX2dseXBoc1tmcm9tR2x5cGhdLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJnNoYXBpbmcubV9hZHZhbmNlW2Zyb21HbHlwaF0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmc2hhcGluZy5tX29mZnNldHNbZnJvbUdseXBoXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZvcmlnaW4pOwotICAgICAgICAgICAgICAgIHRleHRPdXRPayA9IHRy
dWU7CisgICAgICAgICAgICAgICAgaWYgKHVzZVdpbmRvd3NEcmF3aW5nKSB7CisgICAgICAgICAg
ICAgICAgICAgIEhSRVNVTFQgaHIgPSBTY3JpcHRUZXh0T3V0KGRjLCBzaGFwaW5nLm1fc2NyaXB0
Q2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1
clggKyBpbm5lck9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgeSAtIHNoYXBpbmcubV9hc2NlbnRPZmZzZXQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsICZpdGVtLmEsIDAsIDAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fZ2x5cGhz
W2Zyb21HbHlwaF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdseXBoQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICZzaGFwaW5nLm1fYWR2YW5jZVtmcm9tR2x5cGhdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX29mZnNldHNbZnJvbUdseXBo
XSk7CisgICAgICAgICAgICAgICAgICAgIHRleHRPdXRPayA9IChociA9PSBTX09LKTsKKyAgICAg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBTa1BvaW50IG9yaWdpbjsK
KyAgICAgICAgICAgICAgICAgICAgb3JpZ2luLmZYID0gY3VyWCArICsgaW5uZXJPZmZzZXQ7Cisg
ICAgICAgICAgICAgICAgICAgIG9yaWdpbi5mWSA9IHkgKyBtX2FzY2VudDsKKyAgICAgICAgICAg
ICAgICAgICAgcGFpbnRTa2lhVGV4dChncmFwaGljc0NvbnRleHQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hhcGluZy5tX2hmb250LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdseXBoQ291bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJnNoYXBpbmcubV9nbHlwaHNbZnJvbUdseXBoXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAmc2hhcGluZy5tX2FkdmFuY2VbZnJvbUdseXBoXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX29mZnNldHNbZnJvbUdseXBoXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3JpZ2luKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGV4dE91dE9rID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAg
ICBpZiAoIXRleHRPdXRPayAmJiAwID09IGV4ZWN1dGlvbnMpIHsKICAgICAgICAgICAgICAgICAg
ICAgLy8gSWYgVGV4dE91dCBpcyBjYWxsZWQgZnJvbSB0aGUgcmVuZGVyZXIgaXQgbWlnaHQgZmFp
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0
Zm9ybUNvbnRleHRTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKaW5kZXggOGU5NGQ3NDg0ODM5ZmUxMjg4NjA2YTA1
ZWM5MjAxMWM3MTEwNjg1NC4uMWUzODVlZDllMmIzNmQ4YTlkOTBkMDFhYjFkYzIyN2JhMzQ3MTI1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0
Zm9ybUNvbnRleHRTa2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCkBAIC01NjksNiArNTY5LDE3IEBAIGNvbnN0
IFNrQml0bWFwKiBQbGF0Zm9ybUNvbnRleHRTa2lhOjpiaXRtYXAoKSBjb25zdAogICAgIHJldHVy
biAmbV9jYW52YXMtPmdldERldmljZSgpLT5hY2Nlc3NCaXRtYXAoZmFsc2UpOwogfQogCitib29s
IFBsYXRmb3JtQ29udGV4dFNraWE6OmlzTmF0aXZlRm9udFJlbmRlcmluZ0FsbG93ZWQoKQorewor
I2lmIEVOQUJMRShTS0lBX1RFWFQpCisgICAgcmV0dXJuIGZhbHNlOworI2Vsc2UKKyAgICBpZiAo
dXNlU2tpYUdQVSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHNraWE6OlN1
cHBvcnRzUGxhdGZvcm1QYWludChtX2NhbnZhcyk7CisjZW5kaWYKK30KKwogdm9pZCBQbGF0Zm9y
bUNvbnRleHRTa2lhOjpnZXRJbWFnZVJlc2FtcGxpbmdIaW50KEludFNpemUqIHNyY1NpemUsIEZs
b2F0U2l6ZSogZHN0U2l6ZSkgY29uc3QKIHsKICAgICAqc3JjU2l6ZSA9IG1faW1hZ2VSZXNhbXBs
aW5nSGludFNyY1NpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCmluZGV4IDdhYTIzNjY3Yjg4OGU2
MDJmMjk1ODE5NzM3MmJjNmI1MWQ3YmQyNGMuLjc2MjRlYjE4YTMxYjIxNzE5MDdlOGEyMjJkZDI1
NGMxZTRjM2ZkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCkBAIC0xNjcsNiArMTY3LDExIEBA
IHB1YmxpYzoKICAgICBib29sIHByaW50aW5nKCkgY29uc3QgeyByZXR1cm4gbV9wcmludGluZzsg
fQogICAgIHZvaWQgc2V0UHJpbnRpbmcoYm9vbCBwKSB7IG1fcHJpbnRpbmcgPSBwOyB9CiAKKyAg
ICAvLyBSZXR1cm5zIGlmIHRoZSBjb250ZXh0IGFsbG93cyByZW5kZXJpbmcgb2YgZm9udHMgdXNp
bmcgbmF0aXZlIHBsYXRmb3JtCisgICAgLy8gQVBJcy4gSWYgZmFsc2UgaXMgcmV0dXJuZWQgZm9u
dCByZW5kZXJpbmcgaXMgcGVyZm9ybWVkIHVzaW5nIHRoZSBza2lhCisgICAgLy8gdGV4dCBkcmF3
aW5nIEFQSXMuCisgICAgYm9vbCBpc05hdGl2ZUZvbnRSZW5kZXJpbmdBbGxvd2VkKCk7CisKICAg
ICB2b2lkIGdldEltYWdlUmVzYW1wbGluZ0hpbnQoSW50U2l6ZSogc3JjU2l6ZSwgRmxvYXRTaXpl
KiBkc3RTaXplKSBjb25zdDsKICAgICB2b2lkIHNldEltYWdlUmVzYW1wbGluZ0hpbnQoY29uc3Qg
SW50U2l6ZSYgc3JjU2l6ZSwgY29uc3QgRmxvYXRTaXplJiBkc3RTaXplKTsKICAgICB2b2lkIGNs
ZWFySW1hZ2VSZXNhbXBsaW5nSGludCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9Ta2lhRm9udFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL1NraWFGb250V2luLmNwcAppbmRleCAwMjNmMDFiOGM0ZTkyNWM1
ODY4M2EzYzg2YWU1OGJmZDViMmI0Y2IwLi5lN2JhOTUwODY5MDI2YzdiYzE0YmYyZWI1YWJlYWNl
OThlZWJmMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL1NraWFGb250V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL1NraWFGb250V2luLmNwcApAQCAtNDMsNiArNDMsNTggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitib29sIHdpbmRvd3NDYW5IYW5kbGVEcmF3VGV4dFNoYWRvdyhHcmFwaGljc0Nv
bnRleHQgKmNvbnRleHQpCit7CisgICAgRmxvYXRTaXplIHNoYWRvd09mZnNldDsKKyAgICBmbG9h
dCBzaGFkb3dCbHVyOworICAgIENvbG9yIHNoYWRvd0NvbG9yOworICAgIENvbG9yU3BhY2Ugc2hh
ZG93Q29sb3JTcGFjZTsKKworICAgIGJvb2wgaGFzU2hhZG93ID0gY29udGV4dC0+Z2V0U2hhZG93
KHNoYWRvd09mZnNldCwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IsIHNoYWRvd0NvbG9yU3BhY2Up
OworICAgIHJldHVybiAhaGFzU2hhZG93IHx8ICghc2hhZG93Qmx1ciAmJiAoc2hhZG93Q29sb3Iu
YWxwaGEoKSA9PSAyNTUpICYmIChjb250ZXh0LT5maWxsQ29sb3IoKS5hbHBoYSgpID09IDI1NSkp
OworfQorCitib29sIHdpbmRvd3NDYW5IYW5kbGVUZXh0RHJhd2luZyhHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQpCit7CisgICAgaWYgKCF3aW5kb3dzQ2FuSGFuZGxlVGV4dERyYXdpbmdXaXRob3V0
U2hhZG93KGNvbnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBDaGVjayBm
b3Igc2hhZG93IGVmZmVjdHMuCisgICAgaWYgKCF3aW5kb3dzQ2FuSGFuZGxlRHJhd1RleHRTaGFk
b3coY29udGV4dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwor
fQorCitib29sIHdpbmRvd3NDYW5IYW5kbGVUZXh0RHJhd2luZ1dpdGhvdXRTaGFkb3coR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0KQoreworICAgIC8vIENoZWNrIGZvciBub24tdHJhbnNsYXRpb24g
dHJhbnNmb3Jtcy4gU29tZXRpbWVzIHpvb21zIHdpbGwgbG9vayBiZXR0ZXIgaW4KKyAgICAvLyBT
a2lhLCBhbmQgc29tZXRpbWVzIGJldHRlciBpbiBXaW5kb3dzLiBUaGUgbWFpbiBwcm9ibGVtIGlz
IHRoYXQgem9vbWluZworICAgIC8vIGluIHVzaW5nIFNraWEgd2lsbCBzaG93IHlvdSB0aGUgaGlu
dGVkIG91dGxpbmVzIGZvciB0aGUgc21hbGxlciBzaXplLAorICAgIC8vIHdoaWNoIGxvb2sgd2Vp
cmQuIEFsbCBlbHNlIGJlaW5nIGVxdWFsLCBpdCdzIGJldHRlciB0byB1c2UgV2luZG93cycgdGV4
dAorICAgIC8vIGRyYXdpbmcsIHNvIHdlIGRvbid0IGNoZWNrIGZvciB6b29tcy4KKyAgICBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mIG1hdHJpeCA9IGNvbnRleHQtPmdldENUTSgpOworICAgIGlmICht
YXRyaXguYigpICE9IDAgfHwgbWF0cml4LmMoKSAhPSAwKSAgLy8gQ2hlY2sgZm9yIHNrZXcuCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIENoZWNrIGZvciBzdHJva2UgZWZmZWN0cy4K
KyAgICBpZiAoY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCktPmdldFRleHREcmF3aW5nTW9kZSgp
ICE9IFRleHRNb2RlRmlsbCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQ2hlY2sg
Zm9yIGdyYWRpZW50cy4KKyAgICBpZiAoY29udGV4dC0+ZmlsbEdyYWRpZW50KCkgfHwgY29udGV4
dC0+c3Ryb2tlR3JhZGllbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gQ2hl
Y2sgZm9yIHBhdHRlcm5zLgorICAgIGlmIChjb250ZXh0LT5maWxsUGF0dGVybigpIHx8IGNvbnRl
eHQtPnN0cm9rZVBhdHRlcm4oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFj
b250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+aXNOYXRpdmVGb250UmVuZGVyaW5nQWxsb3dlZCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3RhdGlj
IHZvaWQgc2tpYURyYXdUZXh0KFNrQ2FudmFzKiBjYW52YXMsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgU2tQb2ludCYgcG9pbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgU2tQ
YWludCogcGFpbnQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL1NraWFGb250V2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9z
a2lhL1NraWFGb250V2luLmgKaW5kZXggZTQ1OWQ4YzA3YzM0NmZiNzlkMzNlMTc3MjUxNjhkNmE0
Y2E4YTA4ZS4uOTFhOTI1MzQ0NjVjYTViOWI3NzdiMWYyMmRhY2E0OTRmNjY5MWQ0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Ta2lhRm9udFdpbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvU2tpYUZvbnRXaW4u
aApAQCAtMzksNiArMzksMzMgQEAgY2xhc3MgU2tQb2ludDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgR3JhcGhpY3NDb250ZXh0OworY2xhc3MgUGxhdGZvcm1Db250ZXh0U2tpYTsKKwor
Ly8gVGhlIGZ1bmN0aW9ucyBiZWxvdyBhcmUgdXNlZCBmb3IgbW9yZSBjb21wbGV4IGZvbnQgZHJh
d2luZyAoZWZmZWN0cyBzdWNoIGFzCisvLyBzdHJva2luZyBhbmQgbW9yZSBjb21wbGV4IHRyYW5z
Zm9ybXMpIHRoYW4gV2luZG93cyBzdXBwb3J0cyBkaXJlY3RseS4gIFNpbmNlIAorLy8gV2luZG93
cyBkcmF3aW5nIGlzIGZhc3RlciB5b3Ugc2hvdWxkIHVzZSB3aW5kb3dzQ2FuSGFuZGxlVGV4dERy
YXdpbmcgZmlyc3QgdG8gCisvLyBjaGVjayBpZiB1c2luZyBTa2lhIGlzIHJlcXVpcmVkIGF0IGFs
bC4KKy8vIE5vdGUgdGhhdCB0aGUgdGV4dCB3aWxsIGxvb2sgZGlmZmVyZW50IChubyBDbGVhclR5
cGUpIHNvIHRoaXMgc2hvdWxkIG9ubHkgYmUKKy8vIHVzZWQgd2hlbiBuZWNlc3NhcnkuCisvLwor
Ly8gV2hlbiB5b3UgY2FsbCBhIFNraWEqIHRleHQgZHJhd2luZyBmdW5jdGlvbiwgdmFyaW91cyBn
bHlwaCBvdXRsaW5lcyB3aWxsIGJlCisvLyBjYWNoZWQuIEFzIGEgcmVzdWx0LCB5b3Ugc2hvdWxk
IGNhbGwgU2tpYVdpbk91dGxpbmVDYWNoZTo6cmVtb3ZlUGF0aHNGb3JGb250CisvLyB3aGVuIHRo
ZSBmb250IGlzIGRlc3Ryb3llZCBzbyB0aGF0IHRoZSBjYWNoZSBkb2VzIG5vdCBvdXRsaXZlIHRo
ZSBmb250IChzaW5jZQorLy8gdGhlIEhGT05UcyBhcmUgcmVjeWNsZWQpLgorLy8KKy8vIFJlbWVt
YmVyIHRoYXQgU2tpYSdzIHRleHQgZHJhd2luZyBvcmlnaW4gaXMgdGhlIGJhc2VsaW5lLCBsaWtl
IFdlYktpdCwgbm90CisvLyB0aGUgdG9wLCBsaWtlIFdpbmRvd3MuCisKKy8vIFJldHVybnMgdHJ1
ZSBpZiB0aGUgZmlsbENvbG9yIGFuZCBzaGFkb3dDb2xvciBhcmUgb3BhcXVlIGFuZCB0aGUgdGV4
dC1zaGFkb3cKKy8vIGlzIG5vdCBibHVycmVkLgorYm9vbCB3aW5kb3dzQ2FuSGFuZGxlRHJhd1Rl
eHRTaGFkb3coR3JhcGhpY3NDb250ZXh0Kik7CisKKy8vIFJldHVybnMgdHJ1ZSBpZiBhZHZhbmNl
ZCBmb250IHJlbmRlcmluZyBpcyByZWNvbW1lbmRlZC4KK2Jvb2wgd2luZG93c0NhbkhhbmRsZVRl
eHREcmF3aW5nKEdyYXBoaWNzQ29udGV4dCopOworCisvLyBSZXR1cm5zIHRydWUgaWYgYWR2YW5j
ZWQgZm9udCByZW5kZXJpbmcgaXMgcmVjb21tZW5kZWQgaWYgc2hhZG93cyBhcmUKKy8vIGRpc3Jl
Z2FyZGVkLgorYm9vbCB3aW5kb3dzQ2FuSGFuZGxlVGV4dERyYXdpbmdXaXRob3V0U2hhZG93KEdy
YXBoaWNzQ29udGV4dCopOwogCiAvLyBOb3RlIHRoYXQgdGhlIG9mZnNldHMgcGFyYW1ldGVyIGlz
IG9wdGlvbmFsLiAgSWYgbm90IE5VTEwgaXQgcmVwcmVzZW50cyBhCiAvLyBwZXIgZ2x5cGggb2Zm
c2V0IChzdWNoIGFzIHJldHVybmVkIGJ5IFNjcmlwdFBsYWNlIFdpbmRvd3MgQVBJIGZ1bmN0aW9u
KS4K
</data>

          </attachment>
      

    </bug>

</bugzilla>