<?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>142326</bug_id>
          
          <creation_ts>2015-03-04 21:51:21 -0800</creation_ts>
          <short_desc>Mechanical text-related cleanup</short_desc>
          <delta_ts>2015-03-05 11:51:35 -0800</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1074399</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-04 21:51:21 -0800</bug_when>
    <thetext>Mechanical text-related cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074400</commentid>
    <comment_count>1</comment_count>
      <attachid>247930</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-03-04 21:53:00 -0800</bug_when>
    <thetext>Created attachment 247930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074580</commentid>
    <comment_count>2</comment_count>
      <attachid>247930</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-05 10:52:23 -0800</bug_when>
    <thetext>Comment on attachment 247930
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074607</commentid>
    <comment_count>3</comment_count>
      <attachid>247930</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-05 11:51:30 -0800</bug_when>
    <thetext>Comment on attachment 247930
Patch

Clearing flags on attachment: 247930

Committed r181090: &lt;http://trac.webkit.org/changeset/181090&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074608</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-05 11:51:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247930</attachid>
            <date>2015-03-04 21:53:00 -0800</date>
            <delta_ts>2015-03-05 11:51:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142326-20150304215241.patch</filename>
            <type>text/plain</type>
            <size>29966</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxMDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg0ZDNlNDYwNmUzNTRl
NTAxZGYxOWU0ZTZkZjEzZmE4MWM5MmVmOC4uZGJhN2U0NjAwM2I2ZjE3ODRmYmEyZWE5Y2ZjZjBl
ZmE1NWJlMmZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTAzLTA0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgTWVjaGFuaWNh
bCB0ZXh0LXJlbGF0ZWQgY2xlYW51cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQyMzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXNlIG51bGxwdHIgaW5zdGVhZCBvZiAwLgorICAgICAgICBVc2UgcmVm
ZXJlbmNlcyBpbnN0ZWFkIG9mIHBvaW50ZXJzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNh
dXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpGb250
Q2FzY2FkZTo6YWRqdXN0U2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDYXNjYWRlOjpnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYXNjYWRlOjpmbG9hdFdpZHRoRm9yQ29tcGxleFRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6Om9mZnNldEZvclBvc2l0aW9uRm9yQ29t
cGxleFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dExheW91dDo6VGV4dExheW91dCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0Q29u
dHJvbGxlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29u
dHJvbGxlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVJdGVyYXRvci5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5saW5lSXRlcmF0b3I6OklubGluZUl0ZXJhdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZUl0ZXJhdG9yOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpiaWRpTmV4
dFNoYXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpiaWRpTmV4dFNraXBwaW5nRW1wdHlJbmxpbmVz
KToKKyAgICAgICAgKFdlYkNvcmU6OmJpZGlOZXh0SW5jbHVkaW5nRW1wdHlJbmxpbmVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OklubGluZVdhbGtlcjo6SW5saW5lV2Fsa2VyKToKKyAgICAgICAgKFdl
YkNvcmU6OklubGluZUl0ZXJhdG9yOjppbmNyZW1lbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0TG9naWNhbFdp
ZHRoRm9yVGV4dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1
dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JTZWdtZW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvbGluZS9CcmVha2luZ0NvbnRleHRJbmxpbmVIZWFkZXJzLmg6CisgICAgICAgIChXZWJDb3Jl
OjptZWFzdXJlSHlwaGVuV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6dGV4dFdpZHRoKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRyeUh5cGhlbmF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkJyZWFr
aW5nQ29udGV4dDo6aGFuZGxlVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpCcmVha2luZ0NvbnRl
eHQ6Om9wdGltYWxMaW5lQnJlYWtMb2NhdGlvbkZvclRyYWlsaW5nV29yZCk6CisKIDIwMTUtMDMt
MDQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBPcHRpbWl6ZSBjb250ZW50IGV4dGVuc2lvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FzY2FkZUNvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2NhZGVDb2NvYS5tbQppbmRleCAy
OWRjODFjNjMzMTA0MDk4YzZjMDZhNTY2YmI2M2JkOGFiYWUwY2Y4Li4zODJhMTBmNjlmMzQwY2Jm
NDUwODg1OTQwMmJiNzViOWVmYzAzYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FzY2FkZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0KQEAgLTU4OSw3
ICs1ODksNyBAQCBib29sIEZvbnRDYXNjYWRlOjpwcmltYXJ5Rm9udElzU3lzdGVtRm9udCgpIGNv
bnN0CiAKIHZvaWQgRm9udENhc2NhZGU6OmFkanVzdFNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4
dChjb25zdCBUZXh0UnVuJiBydW4sIExheW91dFJlY3QmIHNlbGVjdGlvblJlY3QsIGludCBmcm9t
LCBpbnQgdG8pIGNvbnN0CiB7Ci0gICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRyb2xsZXIo
dGhpcywgcnVuKTsKKyAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIgY29udHJvbGxlcigqdGhpcywg
cnVuKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2UoZnJvbSk7CiAgICAgZmxvYXQgYmVmb3JlV2lk
dGggPSBjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKTsKICAgICBjb250cm9sbGVyLmFkdmFuY2Uo
dG8pOwpAQCAtNjA2LDcgKzYwNiw3IEBAIGZsb2F0IEZvbnRDYXNjYWRlOjpnZXRHbHlwaHNBbmRB
ZHZhbmNlc0ZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IGZyCiB7CiAgICAg
ZmxvYXQgaW5pdGlhbEFkdmFuY2U7CiAKLSAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIgY29udHJv
bGxlcih0aGlzLCBydW4sIGZhbHNlLCAwLCBmb3JUZXh0RW1waGFzaXMpOworICAgIENvbXBsZXhU
ZXh0Q29udHJvbGxlciBjb250cm9sbGVyKCp0aGlzLCBydW4sIGZhbHNlLCAwLCBmb3JUZXh0RW1w
aGFzaXMpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5jZShmcm9tKTsKICAgICBmbG9hdCBiZWZvcmVX
aWR0aCA9IGNvbnRyb2xsZXIucnVuV2lkdGhTb0ZhcigpOwogICAgIGNvbnRyb2xsZXIuYWR2YW5j
ZSh0bywgJmdseXBoQnVmZmVyKTsKQEAgLTY1Niw3ICs2NTYsNyBAQCB2b2lkIEZvbnRDYXNjYWRl
OjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29ucwogCiBmbG9hdCBGb250Q2FzY2FkZTo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNv
bnN0IFRleHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBGb250Kj4qIGZhbGxiYWNrRm9udHMsIEds
eXBoT3ZlcmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7Ci0gICAgQ29tcGxleFRleHRDb250
cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuLCB0cnVlLCBmYWxsYmFja0ZvbnRzKTsKKyAgICBD
b21wbGV4VGV4dENvbnRyb2xsZXIgY29udHJvbGxlcigqdGhpcywgcnVuLCB0cnVlLCBmYWxsYmFj
a0ZvbnRzKTsKICAgICBpZiAoZ2x5cGhPdmVyZmxvdykgewogICAgICAgICBnbHlwaE92ZXJmbG93
LT50b3AgPSBzdGQ6Om1heDxpbnQ+KGdseXBoT3ZlcmZsb3ctPnRvcCwgY2VpbGYoLWNvbnRyb2xs
ZXIubWluR2x5cGhCb3VuZGluZ0JveFkoKSkgLSAoZ2x5cGhPdmVyZmxvdy0+Y29tcHV0ZUJvdW5k
cyA/IDAgOiBmb250TWV0cmljcygpLmFzY2VudCgpKSk7CiAgICAgICAgIGdseXBoT3ZlcmZsb3ct
PmJvdHRvbSA9IHN0ZDo6bWF4PGludD4oZ2x5cGhPdmVyZmxvdy0+Ym90dG9tLCBjZWlsZihjb250
cm9sbGVyLm1heEdseXBoQm91bmRpbmdCb3hZKCkpIC0gKGdseXBoT3ZlcmZsb3ctPmNvbXB1dGVC
b3VuZHMgPyAwIDogZm9udE1ldHJpY3MoKS5kZXNjZW50KCkpKTsKQEAgLTY2OCw3ICs2NjgsNyBA
QCBmbG9hdCBGb250Q2FzY2FkZTo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRS
dW4mIHJ1biwgSGFzaFNldDxjb25zdCBGbwogCiBpbnQgRm9udENhc2NhZGU6Om9mZnNldEZvclBv
c2l0aW9uRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBmbG9hdCB4LCBib29sIGlu
Y2x1ZGVQYXJ0aWFsR2x5cGhzKSBjb25zdAogewotICAgIENvbXBsZXhUZXh0Q29udHJvbGxlciBj
b250cm9sbGVyKHRoaXMsIHJ1bik7CisgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRyb2xs
ZXIoKnRoaXMsIHJ1bik7CiAgICAgcmV0dXJuIGNvbnRyb2xsZXIub2Zmc2V0Rm9yUG9zaXRpb24o
eCwgaW5jbHVkZVBhcnRpYWxHbHlwaHMpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3Bw
CmluZGV4IDkxODQzNTRjYTE3ZTQzMDQ0OTk5YWQ3YjUzZWZlMzcyY2JiZjkyOGYuLmQzYTgxMTNj
MmMyNGViNWJkMzk3MWNlNjE3ZjUxODgzMDQwMTgwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xs
ZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBUZXh0TGF5b3V0KFJlbmRlclRl
eHQqIHRleHQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBmbG9hdCB4UG9zKQogICAgICAgICA6
IG1fZm9udChmb250KQogICAgICAgICAsIG1fcnVuKGNvbnN0cnVjdFRleHRSdW4odGV4dCwgZm9u
dCwgeFBvcykpCi0gICAgICAgICwgbV9jb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8Q29tcGxl
eFRleHRDb250cm9sbGVyPigmbV9mb250LCBtX3J1biwgdHJ1ZSkpCisgICAgICAgICwgbV9jb250
cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8Q29tcGxleFRleHRDb250cm9sbGVyPihtX2ZvbnQsIG1f
cnVuLCB0cnVlKSkKICAgICB7CiAgICAgfQogCkBAIC0xMTYsOCArMTE2LDggQEAgc3RhdGljIGlu
bGluZSBDR0Zsb2F0IGNlaWxDR0Zsb2F0KENHRmxvYXQgZikKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Q0dGbG9hdD4oY2VpbChmKSk7CiB9CiAKLUNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxl
eFRleHRDb250cm9sbGVyKGNvbnN0IEZvbnRDYXNjYWRlKiBmb250LCBjb25zdCBUZXh0UnVuJiBy
dW4sIGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24sIEhhc2hTZXQ8Y29uc3QgRm9u
dCo+KiBmYWxsYmFja0ZvbnRzLCBib29sIGZvclRleHRFbXBoYXNpcykKLSAgICA6IG1fZm9udCgq
Zm9udCkKK0NvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRDb250cm9sbGVyKGNvbnN0
IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIGJvb2wgbWF5VXNlTmF0dXJh
bFdyaXRpbmdEaXJlY3Rpb24sIEhhc2hTZXQ8Y29uc3QgRm9udCo+KiBmYWxsYmFja0ZvbnRzLCBi
b29sIGZvclRleHRFbXBoYXNpcykKKyAgICA6IG1fZm9udChmb250KQogICAgICwgbV9ydW4ocnVu
KQogICAgICwgbV9pc0xUUk9ubHkodHJ1ZSkKICAgICAsIG1fbWF5VXNlTmF0dXJhbFdyaXRpbmdE
aXJlY3Rpb24obWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9s
bGVyLmgKaW5kZXggNWRlOTcyNWJkZGM1YWRlODMwOTNmZjc1MjQ0YzRhYTIxNTZkMTAxZC4uMGM5
YzQyMTZkODM3ODY3ZWE0OWYyZDQwNDcyMjg5ZDhlMjY2Y2E5NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRy
b2xsZXIuaApAQCAtNTAsNyArNTAsNyBAQCBlbnVtIEdseXBoSXRlcmF0aW9uU3R5bGUgeyBJbmNs
dWRlUGFydGlhbEdseXBocywgQnlXaG9sZUdseXBocyB9OwogLy8gY29tcGxleCBzY3JpcHRzIG9u
IE9TIFguCiBjbGFzcyBDb21wbGV4VGV4dENvbnRyb2xsZXIgewogcHVibGljOgotICAgIENvbXBs
ZXhUZXh0Q29udHJvbGxlcihjb25zdCBGb250Q2FzY2FkZSosIGNvbnN0IFRleHRSdW4mLCBib29s
IG1heVVzZU5hdHVyYWxXcml0aW5nRGlyZWN0aW9uID0gZmFsc2UsIEhhc2hTZXQ8Y29uc3QgRm9u
dCo+KiBmYWxsYmFja0ZvbnRzID0gMCwgYm9vbCBmb3JUZXh0RW1waGFzaXMgPSBmYWxzZSk7Cisg
ICAgQ29tcGxleFRleHRDb250cm9sbGVyKGNvbnN0IEZvbnRDYXNjYWRlJiwgY29uc3QgVGV4dFJ1
biYsIGJvb2wgbWF5VXNlTmF0dXJhbFdyaXRpbmdEaXJlY3Rpb24gPSBmYWxzZSwgSGFzaFNldDxj
b25zdCBGb250Kj4qIGZhbGxiYWNrRm9udHMgPSAwLCBib29sIGZvclRleHRFbXBoYXNpcyA9IGZh
bHNlKTsKIAogICAgIC8vIEFkdmFuY2UgYW5kIGVtaXQgZ2x5cGhzIHVwIHRvIHRoZSBzcGVjaWZp
ZWQgY2hhcmFjdGVyLgogICAgIHZvaWQgYWR2YW5jZSh1bnNpZ25lZCB0bywgR2x5cGhCdWZmZXIq
ID0gMCwgR2x5cGhJdGVyYXRpb25TdHlsZSA9IEluY2x1ZGVQYXJ0aWFsR2x5cGhzLCBIYXNoU2V0
PGNvbnN0IEZvbnQqPiogZmFsbGJhY2tGb250cyA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSW5saW5lSXRlcmF0b3IuaAppbmRleCA3YTc2YWI5ODcwNWY4ZmI3ZGEyZDBhMmM5NjI4NDQ4
ZDU5YzRhNTI2Li5hOWVmZTBkMDZkYTI0Y2I3MzAwMGM1ODQ3ZTg5ZmNmZmY4OGZlM2MxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lSXRlcmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lSXRlcmF0b3IuaApAQCAtMzcsOCArMzcsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJbmxpbmVJdGVyYXRvciB7CiBwdWJsaWM6CiAg
ICAgSW5saW5lSXRlcmF0b3IoKQotICAgICAgICA6IG1fcm9vdCgwKQotICAgICAgICAsIG1fcmVu
ZGVyZXIoMCkKKyAgICAgICAgOiBtX3Jvb3QobnVsbHB0cikKKyAgICAgICAgLCBtX3JlbmRlcmVy
KG51bGxwdHIpCiAgICAgICAgICwgbV9uZXh0QnJlYWthYmxlUG9zaXRpb24oLTEpCiAgICAgICAg
ICwgbV9wb3MoMCkKICAgICAgICAgLCBtX3JlZmVyc1RvRW5kT2ZQcmV2aW91c05vZGUoZmFsc2Up
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdm9pZCBjbGVh
cigpIHsgbW92ZVRvKDAsIDApOyB9CisgICAgdm9pZCBjbGVhcigpIHsgbW92ZVRvKG51bGxwdHIs
IDApOyB9CiAKICAgICB2b2lkIG1vdmVUb1N0YXJ0T2YoUmVuZGVyT2JqZWN0KiBvYmplY3QpCiAg
ICAgewpAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZWZlcnNUb0VuZE9m
UHJldmlvdXNOb2RlKCk7CiAKICAgICB2b2lkIGZhc3RJbmNyZW1lbnRJblRleHROb2RlKCk7Ci0g
ICAgdm9pZCBpbmNyZW1lbnQoSW5saW5lQmlkaVJlc29sdmVyKiA9IDApOworICAgIHZvaWQgaW5j
cmVtZW50KElubGluZUJpZGlSZXNvbHZlciogPSBudWxscHRyKTsKICAgICB2b2lkIGZhc3REZWNy
ZW1lbnQoKTsKICAgICBib29sIGF0RW5kKCkgY29uc3Q7CiAKQEAgLTIxMiw3ICsyMTIsNyBAQCBz
dGF0aWMgYm9vbCBpc0VtcHR5SW5saW5lKGNvbnN0IFJlbmRlcklubGluZSYgcmVuZGVyZXIpCiAv
LyBUaGlzIGZ1bmN0aW9uIHdpbGwgaXRlcmF0ZSBvdmVyIGlubGluZXMgd2l0aGluIGEgYmxvY2ss
IG9wdGlvbmFsbHkgbm90aWZ5aW5nCiAvLyBhIGJpZGkgcmVzb2x2ZXIgYXMgaXQgZW50ZXJzL2V4
aXRzIGlubGluZXMgKHNvIGl0IGNhbiBwdXNoL3BvcCBlbWJlZGRpbmcgbGV2ZWxzKS4KIHRlbXBs
YXRlIDxjbGFzcyBPYnNlcnZlcj4KLXN0YXRpYyBpbmxpbmUgUmVuZGVyT2JqZWN0KiBiaWRpTmV4
dFNoYXJlZChSZW5kZXJFbGVtZW50JiByb290LCBSZW5kZXJPYmplY3QqIGN1cnJlbnQsIE9ic2Vy
dmVyKiBvYnNlcnZlciA9IDAsIEVtcHR5SW5saW5lQmVoYXZpb3IgZW1wdHlJbmxpbmVCZWhhdmlv
ciA9IFNraXBFbXB0eUlubGluZXMsIGJvb2wqIGVuZE9mSW5saW5lUHRyID0gMCkKK3N0YXRpYyBp
bmxpbmUgUmVuZGVyT2JqZWN0KiBiaWRpTmV4dFNoYXJlZChSZW5kZXJFbGVtZW50JiByb290LCBS
ZW5kZXJPYmplY3QqIGN1cnJlbnQsIE9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIsIEVtcHR5
SW5saW5lQmVoYXZpb3IgZW1wdHlJbmxpbmVCZWhhdmlvciA9IFNraXBFbXB0eUlubGluZXMsIGJv
b2wqIGVuZE9mSW5saW5lUHRyID0gbnVsbHB0cikKIHsKICAgICBSZW5kZXJPYmplY3QqIG5leHQg
PSBudWxscHRyOwogICAgIC8vIG9sZEVuZE9mSW5saW5lIGRlbm90ZXMgaWYgd2hlbiB3ZSBsYXN0
IHN0b3BwZWQgaXRlcmF0aW5nIGlmIHdlIHdlcmUgYXQgdGhlIGVuZCBvZiBhbiBpbmxpbmUuCkBA
IC0yNzgsMTMgKzI3OCwxMyBAQCBzdGF0aWMgaW5saW5lIFJlbmRlck9iamVjdCogYmlkaU5leHRT
a2lwcGluZ0VtcHR5SW5saW5lcyhSZW5kZXJFbGVtZW50JiByb290LCBSZQogLy8gVGhpcyBtYWtl
cyBjYWxsZXJzIGNsZWFuZXIgYXMgdGhleSBkb24ndCBoYXZlIHRvIHNwZWNpZnkgYSB0eXBlIGZv
ciB0aGUgb2JzZXJ2ZXIgd2hlbiBub3QgcHJvdmlkaW5nIG9uZS4KIHN0YXRpYyBpbmxpbmUgUmVu
ZGVyT2JqZWN0KiBiaWRpTmV4dFNraXBwaW5nRW1wdHlJbmxpbmVzKFJlbmRlckVsZW1lbnQmIHJv
b3QsIFJlbmRlck9iamVjdCogY3VycmVudCkKIHsKLSAgICBJbmxpbmVCaWRpUmVzb2x2ZXIqIG9i
c2VydmVyID0gMDsKKyAgICBJbmxpbmVCaWRpUmVzb2x2ZXIqIG9ic2VydmVyID0gbnVsbHB0cjsK
ICAgICByZXR1cm4gYmlkaU5leHRTa2lwcGluZ0VtcHR5SW5saW5lcyhyb290LCBjdXJyZW50LCBv
YnNlcnZlcik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUmVuZGVyT2JqZWN0KiBiaWRpTmV4dEluY2x1
ZGluZ0VtcHR5SW5saW5lcyhSZW5kZXJFbGVtZW50JiByb290LCBSZW5kZXJPYmplY3QqIGN1cnJl
bnQsIGJvb2wqIGVuZE9mSW5saW5lUHRyID0gMCkKK3N0YXRpYyBpbmxpbmUgUmVuZGVyT2JqZWN0
KiBiaWRpTmV4dEluY2x1ZGluZ0VtcHR5SW5saW5lcyhSZW5kZXJFbGVtZW50JiByb290LCBSZW5k
ZXJPYmplY3QqIGN1cnJlbnQsIGJvb2wqIGVuZE9mSW5saW5lUHRyID0gbnVsbHB0cikKIHsKLSAg
ICBJbmxpbmVCaWRpUmVzb2x2ZXIqIG9ic2VydmVyID0gMDsgLy8gQ2FsbGVycyB3aG8gaW5jbHVk
ZSBlbXB0eSBpbmxpbmVzLCBuZXZlciB1c2UgYW4gb2JzZXJ2ZXIuCisgICAgSW5saW5lQmlkaVJl
c29sdmVyKiBvYnNlcnZlciA9IG51bGxwdHI7IC8vIENhbGxlcnMgd2hvIGluY2x1ZGUgZW1wdHkg
aW5saW5lcywgbmV2ZXIgdXNlIGFuIG9ic2VydmVyLgogICAgIHJldHVybiBiaWRpTmV4dFNoYXJl
ZChyb290LCBjdXJyZW50LCBvYnNlcnZlciwgSW5jbHVkZUVtcHR5SW5saW5lcywgZW5kT2ZJbmxp
bmVQdHIpOwogfQogCkBAIC0zNTMsNyArMzUzLDcgQEAgY2xhc3MgSW5saW5lV2Fsa2VyIHsKIHB1
YmxpYzoKICAgICBJbmxpbmVXYWxrZXIoUmVuZGVyRWxlbWVudCYgcm9vdCkKICAgICAgICAgOiBt
X3Jvb3Qocm9vdCkKLSAgICAgICAgLCBtX2N1cnJlbnQoMCkKKyAgICAgICAgLCBtX2N1cnJlbnQo
bnVsbHB0cikKICAgICAgICAgLCBtX2F0RW5kT2ZJbmxpbmUoZmFsc2UpCiAgICAgewogICAgICAg
ICAvLyBGSVhNRTogVGhpcyBjbGFzcyBzaG91bGQgYmUgdGF1Z2h0IGhvdyB0byBkbyB0aGUgU2tp
cEVtcHR5SW5saW5lcyBjb2RlcGF0aCBhcyB3ZWxsLgpAQCAtMzg3LDcgKzM4Nyw3IEBAIGlubGlu
ZSB2b2lkIElubGluZUl0ZXJhdG9yOjppbmNyZW1lbnQoSW5saW5lQmlkaVJlc29sdmVyKiByZXNv
bHZlcikKICAgICAgICAgaWYgKG1fcG9zIDwgZG93bmNhc3Q8UmVuZGVyVGV4dD4oKm1fcmVuZGVy
ZXIpLnRleHRMZW5ndGgoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgLy8gYmlk
aU5leHQgY2FuIHJldHVybiAwLCBzbyB1c2UgbW92ZVRvIGluc3RlYWQgb2YgbW92ZVRvU3RhcnRP
ZgorICAgIC8vIGJpZGlOZXh0IGNhbiByZXR1cm4gbnVsbHB0ciwgc28gdXNlIG1vdmVUbyBpbnN0
ZWFkIG9mIG1vdmVUb1N0YXJ0T2YKICAgICBtb3ZlVG8oYmlkaU5leHRTa2lwcGluZ0VtcHR5SW5s
aW5lcygqbV9yb290LCBtX3JlbmRlcmVyLCByZXNvbHZlciksIDApOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IDk5
ZDlmYTNhZmMxZDM3NGI4NzFkMDgyMzIwZjZlYTcyMDU1YmY2NGQuLmE3YTc4ODgxNmUwYmRiZWVk
NDZjZWVhN2Y5OWQ0YWQ3NThlMjIwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC00NTUsMTMgKzQ1NSwxMyBAQCB2b2lk
IFJlbmRlckJsb2NrRmxvdzo6c2V0TWFyZ2luc0ZvclJ1YnlSdW4oQmlkaVJ1biogcnVuLCBSZW5k
ZXJSdWJ5UnVuJiByZW5kZXJlcgogICAgIHNldE1hcmdpbkVuZEZvckNoaWxkKHJlbmRlcmVyLCAt
ZW5kT3ZlcmhhbmcpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0TG9naWNhbFdpZHRoRm9y
VGV4dFJ1bihSb290SW5saW5lQm94KiBsaW5lQm94LCBCaWRpUnVuKiBydW4sIFJlbmRlclRleHQq
IHJlbmRlcmVyLCBmbG9hdCB4UG9zLCBjb25zdCBMaW5lSW5mbyYgbGluZUluZm8sCitzdGF0aWMg
aW5saW5lIHZvaWQgc2V0TG9naWNhbFdpZHRoRm9yVGV4dFJ1bihSb290SW5saW5lQm94KiBsaW5l
Qm94LCBCaWRpUnVuKiBydW4sIFJlbmRlclRleHQmIHJlbmRlcmVyLCBmbG9hdCB4UG9zLCBjb25z
dCBMaW5lSW5mbyYgbGluZUluZm8sCiAgICAgR2x5cGhPdmVyZmxvd0FuZEZhbGxiYWNrRm9udHNN
YXAmIHRleHRCb3hEYXRhTWFwLCBWZXJ0aWNhbFBvc2l0aW9uQ2FjaGUmIHZlcnRpY2FsUG9zaXRp
b25DYWNoZSwgV29yZE1lYXN1cmVtZW50cyYgd29yZE1lYXN1cmVtZW50cykKIHsKICAgICBIYXNo
U2V0PGNvbnN0IEZvbnQqPiBmYWxsYmFja0ZvbnRzOwogICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhP
dmVyZmxvdzsKIAotICAgIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250ID0gbGluZVN0eWxlKCpyZW5k
ZXJlci0+cGFyZW50KCksIGxpbmVJbmZvKS5mb250Q2FzY2FkZSgpOworICAgIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250ID0gbGluZVN0eWxlKCpyZW5kZXJlci5wYXJlbnQoKSwgbGluZUluZm8pLmZv
bnRDYXNjYWRlKCk7CiAgICAgLy8gQWx3YXlzIGNvbXB1dGUgZ2x5cGggb3ZlcmZsb3cgaWYgdGhl
IGJsb2NrJ3MgbGluZS1ib3gtY29udGFpbiB2YWx1ZSBpcyAiZ2x5cGhzIi4KICAgICBpZiAobGlu
ZUJveC0+Zml0c1RvR2x5cGhzKCkpIHsKICAgICAgICAgLy8gSWYgd2UgZG9uJ3Qgc3RpY2sgb3V0
IG9mIHRoZSByb290IGxpbmUncyBmb250IGJveCwgdGhlbiBkb24ndCBib3RoZXIgY29tcHV0aW5n
IG91ciBnbHlwaCBvdmVyZmxvdy4gVGhpcyBvcHRpbWl6YXRpb24KQEAgLTQ4Myw3ICs0ODMsNyBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TG9naWNhbFdpZHRoRm9yVGV4dFJ1bihSb290SW5saW5l
Qm94KiBsaW5lQm94LCBCaWRpUnVuKiBydQogICAgIGZsb2F0IG1lYXN1cmVkV2lkdGggPSAwOwog
CiAgICAgYm9vbCBrZXJuaW5nSXNFbmFibGVkID0gZm9udC50eXBlc2V0dGluZ0ZlYXR1cmVzKCkg
JiBLZXJuaW5nOwotICAgIGJvb2wgY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoID0gcmVuZGVyZXIt
PmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpOworICAgIGJvb2wgY2FuVXNlU2ltcGxlRm9udENv
ZGVQYXRoID0gcmVuZGVyZXIuY2FuVXNlU2ltcGxlRm9udENvZGVQYXRoKCk7CiAgICAgCiAgICAg
Ly8gU2luY2Ugd2UgZG9uJ3QgY2FjaGUgZ2x5cGggb3ZlcmZsb3dzLCB3ZSBuZWVkIHRvIHJlLW1l
YXN1cmUgdGhlIHJ1biBpZgogICAgIC8vIHRoZSBzdHlsZSBpcyBsaW5lYm94LWNvbnRhaW46IGds
eXBoLgpAQCAtNDk0LDE4ICs0OTQsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIHNldExvZ2ljYWxX
aWR0aEZvclRleHRSdW4oUm9vdElubGluZUJveCogbGluZUJveCwgQmlkaVJ1biogcnUKICAgICAg
ICAgICAgIFdvcmRNZWFzdXJlbWVudCYgd29yZE1lYXN1cmVtZW50ID0gd29yZE1lYXN1cmVtZW50
c1tpXTsKICAgICAgICAgICAgIGlmICh3b3JkTWVhc3VyZW1lbnQud2lkdGggPD0gMCB8fCB3b3Jk
TWVhc3VyZW1lbnQuc3RhcnRPZmZzZXQgPT0gd29yZE1lYXN1cmVtZW50LmVuZE9mZnNldCkKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICh3b3JkTWVhc3VyZW1lbnQu
cmVuZGVyZXIgIT0gcmVuZGVyZXIgfHwgd29yZE1lYXN1cmVtZW50LnN0YXJ0T2Zmc2V0ICE9IGxh
c3RFbmRPZmZzZXQgfHwgd29yZE1lYXN1cmVtZW50LmVuZE9mZnNldCA+IHJ1bi0+bV9zdG9wKQor
ICAgICAgICAgICAgaWYgKHdvcmRNZWFzdXJlbWVudC5yZW5kZXJlciAhPSAmcmVuZGVyZXIgfHwg
d29yZE1lYXN1cmVtZW50LnN0YXJ0T2Zmc2V0ICE9IGxhc3RFbmRPZmZzZXQgfHwgd29yZE1lYXN1
cmVtZW50LmVuZE9mZnNldCA+IHJ1bi0+bV9zdG9wKQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgICAgICBsYXN0RW5kT2Zmc2V0ID0gd29yZE1lYXN1cmVtZW50LmVuZE9mZnNl
dDsKICAgICAgICAgICAgIGlmIChrZXJuaW5nSXNFbmFibGVkICYmIGxhc3RFbmRPZmZzZXQgPT0g
cnVuLT5tX3N0b3ApIHsKICAgICAgICAgICAgICAgICBpbnQgd29yZExlbmd0aCA9IGxhc3RFbmRP
ZmZzZXQgLSB3b3JkTWVhc3VyZW1lbnQuc3RhcnRPZmZzZXQ7CiAgICAgICAgICAgICAgICAgR2x5
cGhPdmVyZmxvdyBvdmVyZmxvdzsKLSAgICAgICAgICAgICAgICBtZWFzdXJlZFdpZHRoICs9IHJl
bmRlcmVyLT53aWR0aCh3b3JkTWVhc3VyZW1lbnQuc3RhcnRPZmZzZXQsIHdvcmRMZW5ndGgsIHhQ
b3MgKyBtZWFzdXJlZFdpZHRoLCBsaW5lSW5mby5pc0ZpcnN0TGluZSgpLAorICAgICAgICAgICAg
ICAgIG1lYXN1cmVkV2lkdGggKz0gcmVuZGVyZXIud2lkdGgod29yZE1lYXN1cmVtZW50LnN0YXJ0
T2Zmc2V0LCB3b3JkTGVuZ3RoLCB4UG9zICsgbWVhc3VyZWRXaWR0aCwgbGluZUluZm8uaXNGaXJz
dExpbmUoKSwKICAgICAgICAgICAgICAgICAgICAgJndvcmRNZWFzdXJlbWVudC5mYWxsYmFja0Zv
bnRzLCAmb3ZlcmZsb3cpOwotICAgICAgICAgICAgICAgIFVDaGFyIGMgPSByZW5kZXJlci0+Y2hh
cmFjdGVyQXQod29yZE1lYXN1cmVtZW50LnN0YXJ0T2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBV
Q2hhciBjID0gcmVuZGVyZXIuY2hhcmFjdGVyQXQod29yZE1lYXN1cmVtZW50LnN0YXJ0T2Zmc2V0
KTsKICAgICAgICAgICAgICAgICBpZiAoaSA+IDAgJiYgd29yZExlbmd0aCA9PSAxICYmIChjID09
ICcgJyB8fCBjID09ICdcdCcpKQotICAgICAgICAgICAgICAgICAgICBtZWFzdXJlZFdpZHRoICs9
IHJlbmRlcmVyLT5zdHlsZSgpLmZvbnRDYXNjYWRlKCkud29yZFNwYWNpbmcoKTsKKyAgICAgICAg
ICAgICAgICAgICAgbWVhc3VyZWRXaWR0aCArPSByZW5kZXJlci5zdHlsZSgpLmZvbnRDYXNjYWRl
KCkud29yZFNwYWNpbmcoKTsKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIG1l
YXN1cmVkV2lkdGggKz0gd29yZE1lYXN1cmVtZW50LndpZHRoOwogICAgICAgICAgICAgaWYgKCF3
b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cy5pc0VtcHR5KCkpIHsKQEAgLTUyMiw3ICs1MjIs
NyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TG9naWNhbFdpZHRoRm9yVGV4dFJ1bihSb290SW5s
aW5lQm94KiBsaW5lQm94LCBCaWRpUnVuKiBydQogICAgIH0KIAogICAgIGlmICghbWVhc3VyZWRX
aWR0aCkKLSAgICAgICAgbWVhc3VyZWRXaWR0aCA9IHJlbmRlcmVyLT53aWR0aChydW4tPm1fc3Rh
cnQsIHJ1bi0+bV9zdG9wIC0gcnVuLT5tX3N0YXJ0LCB4UG9zLCBsaW5lSW5mby5pc0ZpcnN0TGlu
ZSgpLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZsb3cpOworICAgICAgICBtZWFzdXJlZFdp
ZHRoID0gcmVuZGVyZXIud2lkdGgocnVuLT5tX3N0YXJ0LCBydW4tPm1fc3RvcCAtIHJ1bi0+bV9z
dGFydCwgeFBvcywgbGluZUluZm8uaXNGaXJzdExpbmUoKSwgJmZhbGxiYWNrRm9udHMsICZnbHlw
aE92ZXJmbG93KTsKIAogICAgIHJ1bi0+Ym94KCktPnNldExvZ2ljYWxXaWR0aChtZWFzdXJlZFdp
ZHRoICsgaHlwaGVuV2lkdGgpOwogICAgIGlmICghZmFsbGJhY2tGb250cy5pc0VtcHR5KCkpIHsK
QEAgLTUzNCw3ICs1MzQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TG9naWNhbFdpZHRoRm9y
VGV4dFJ1bihSb290SW5saW5lQm94KiBsaW5lQm94LCBCaWRpUnVuKiBydQogICAgIH0KIAogICAg
IC8vIEluY2x1ZGUgdGV4dCBkZWNvcmF0aW9uIHZpc3VhbCBvdmVyZmxvdyBhcyBwYXJ0IG9mIHRo
ZSBnbHlwaCBvdmVyZmxvdy4KLSAgICBpZiAocmVuZGVyZXItPnN0eWxlKCkudGV4dERlY29yYXRp
b25zSW5FZmZlY3QoKSAhPSBUZXh0RGVjb3JhdGlvbk5vbmUpCisgICAgaWYgKHJlbmRlcmVyLnN0
eWxlKCkudGV4dERlY29yYXRpb25zSW5FZmZlY3QoKSAhPSBUZXh0RGVjb3JhdGlvbk5vbmUpCiAg
ICAgICAgIGdseXBoT3ZlcmZsb3cuZXh0ZW5kVG8odmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9u
cyhydW4tPmJveCgpLT5saW5lU3R5bGUoKSwgZG93bmNhc3Q8SW5saW5lVGV4dEJveD4ocnVuLT5i
b3goKSkpKTsKIAogICAgIGlmICghZ2x5cGhPdmVyZmxvdy5pc0VtcHR5KCkpIHsKQEAgLTc0Nyw3
ICs3NDcsNyBAQCBCaWRpUnVuKiBSZW5kZXJCbG9ja0Zsb3c6OmNvbXB1dGVJbmxpbmVEaXJlY3Rp
b25Qb3NpdGlvbnNGb3JTZWdtZW50KFJvb3RJbmxpbmVCbwogICAgICAgICAgICAgICAgIG5lZWRz
V29yZFNwYWNpbmcgPSAhaXNTcGFjZU9yTmV3bGluZShyZW5kZXJUZXh0LmNoYXJhY3RlckF0KHJ1
bi0+bV9zdG9wIC0gMSkpICYmIHJ1bi0+bV9zdG9wID09IGxlbmd0aDsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgc2V0TG9naWNhbFdpZHRoRm9yVGV4dFJ1bihsaW5lQm94LCBydW4sICZy
ZW5kZXJUZXh0LCB0b3RhbExvZ2ljYWxXaWR0aCwgbGluZUluZm8sIHRleHRCb3hEYXRhTWFwLCB2
ZXJ0aWNhbFBvc2l0aW9uQ2FjaGUsIHdvcmRNZWFzdXJlbWVudHMpOworICAgICAgICAgICAgc2V0
TG9naWNhbFdpZHRoRm9yVGV4dFJ1bihsaW5lQm94LCBydW4sIHJlbmRlclRleHQsIHRvdGFsTG9n
aWNhbFdpZHRoLCBsaW5lSW5mbywgdGV4dEJveERhdGFNYXAsIHZlcnRpY2FsUG9zaXRpb25DYWNo
ZSwgd29yZE1lYXN1cmVtZW50cyk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBib29s
IGVuY291bnRlcmVkSnVzdGlmaWVkUnVieSA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKGlzPFJl
bmRlclJ1YnlSdW4+KHJ1bi0+cmVuZGVyZXIoKSkgJiYgdGV4dEFsaWduID09IEpVU1RJRlkgJiYg
cnVuICE9IHRyYWlsaW5nU3BhY2VSdW4gJiYgZG93bmNhc3Q8UmVuZGVyUnVieVJ1bj4ocnVuLT5y
ZW5kZXJlcigpKS5ydWJ5QmFzZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHRJbmxpbmVIZWFkZXJzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvbGluZS9CcmVha2luZ0NvbnRleHRJbmxpbmVIZWFkZXJzLmgKaW5kZXggMjZk
NDA4YjBhZjdkZmQwZWJhNzBiNDgxMmJlZDBjNjFlYWI2NjM3Yi4uZjQwN2JhZjVjNTFjMTJiYWFi
MmRjY2Y1YTM1MGRiNmVhMmYyZjkxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL2xpbmUvQnJlYWtpbmdDb250ZXh0SW5saW5lSGVhZGVycy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9saW5lL0JyZWFraW5nQ29udGV4dElubGluZUhlYWRlcnMuaApAQCAtNTU3
LDI4ICs1NTcsMjggQEAgaW5saW5lIHZvaWQgdXBkYXRlQ291bnRlcklmTmVlZGVkKFJlbmRlclRl
eHQmIHJlbmRlclRleHQpCiAgICAgZG93bmNhc3Q8UmVuZGVyQ291bnRlcj4ocmVuZGVyVGV4dCku
dXBkYXRlQ291bnRlcigpOwogfQogCi1pbmxpbmUgZmxvYXQgbWVhc3VyZUh5cGhlbldpZHRoKFJl
bmRlclRleHQqIHJlbmRlcmVyLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgSGFzaFNldDxjb25z
dCBGb250Kj4qIGZhbGxiYWNrRm9udHMgPSAwKQoraW5saW5lIGZsb2F0IG1lYXN1cmVIeXBoZW5X
aWR0aChSZW5kZXJUZXh0JiByZW5kZXJlciwgY29uc3QgRm9udENhc2NhZGUmIGZvbnQsIEhhc2hT
ZXQ8Y29uc3QgRm9udCo+KiBmYWxsYmFja0ZvbnRzID0gMCkKIHsKLSAgICBjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICByZXR1cm4gZm9udC53aWR0aChS
ZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihyZW5kZXJlciwgZm9udCwgc3R5bGUuaHlwaGVu
U3RyaW5nKCkuc3RyaW5nKCksIHN0eWxlKSwgZmFsbGJhY2tGb250cyk7CisgICAgY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlID0gcmVuZGVyZXIuc3R5bGUoKTsKKyAgICByZXR1cm4gZm9udC53aWR0
aChSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bigmcmVuZGVyZXIsIGZvbnQsIHN0eWxlLmh5
cGhlblN0cmluZygpLnN0cmluZygpLCBzdHlsZSksIGZhbGxiYWNrRm9udHMpOwogfQogCi1BTFdB
WVNfSU5MSU5FIGZsb2F0IHRleHRXaWR0aChSZW5kZXJUZXh0KiB0ZXh0LCB1bnNpZ25lZCBmcm9t
LCB1bnNpZ25lZCBsZW4sIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBmbG9hdCB4UG9zLCBib29s
IGlzRml4ZWRQaXRjaCwgYm9vbCBjb2xsYXBzZVdoaXRlU3BhY2UsIEhhc2hTZXQ8Y29uc3QgRm9u
dCo+JiBmYWxsYmFja0ZvbnRzLCBUZXh0TGF5b3V0KiBsYXlvdXQgPSAwKQorQUxXQVlTX0lOTElO
RSBmbG9hdCB0ZXh0V2lkdGgoUmVuZGVyVGV4dCYgdGV4dCwgdW5zaWduZWQgZnJvbSwgdW5zaWdu
ZWQgbGVuLCBjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgZmxvYXQgeFBvcywgYm9vbCBpc0ZpeGVk
UGl0Y2gsIGJvb2wgY29sbGFwc2VXaGl0ZVNwYWNlLCBIYXNoU2V0PGNvbnN0IEZvbnQqPiYgZmFs
bGJhY2tGb250cywgVGV4dExheW91dCogbGF5b3V0ID0gbnVsbHB0cikKIHsKLSAgICBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUgPSB0ZXh0LT5zdHlsZSgpOworICAgIGNvbnN0IFJlbmRlclN0eWxl
JiBzdHlsZSA9IHRleHQuc3R5bGUoKTsKIAogICAgIEdseXBoT3ZlcmZsb3cgZ2x5cGhPdmVyZmxv
dzsKLSAgICBpZiAoaXNGaXhlZFBpdGNoIHx8ICghZnJvbSAmJiBsZW4gPT0gdGV4dC0+dGV4dExl
bmd0aCgpKSB8fCBzdHlsZS5oYXNUZXh0Q29tYmluZSgpKQotICAgICAgICByZXR1cm4gdGV4dC0+
d2lkdGgoZnJvbSwgbGVuLCBmb250LCB4UG9zLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZs
b3cpOworICAgIGlmIChpc0ZpeGVkUGl0Y2ggfHwgKCFmcm9tICYmIGxlbiA9PSB0ZXh0LnRleHRM
ZW5ndGgoKSkgfHwgc3R5bGUuaGFzVGV4dENvbWJpbmUoKSkKKyAgICAgICAgcmV0dXJuIHRleHQu
d2lkdGgoZnJvbSwgbGVuLCBmb250LCB4UG9zLCAmZmFsbGJhY2tGb250cywgJmdseXBoT3ZlcmZs
b3cpOwogCiAgICAgaWYgKGxheW91dCkKICAgICAgICAgcmV0dXJuIEZvbnRDYXNjYWRlOjp3aWR0
aCgqbGF5b3V0LCBmcm9tLCBsZW4sICZmYWxsYmFja0ZvbnRzKTsKIAotICAgIFRleHRSdW4gcnVu
ID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4odGV4dCwgZm9udCwgdGV4dCwgZnJvbSwg
bGVuLCBzdHlsZSk7Ci0gICAgcnVuLnNldENoYXJhY3RlcnNMZW5ndGgodGV4dC0+dGV4dExlbmd0
aCgpIC0gZnJvbSk7CisgICAgVGV4dFJ1biBydW4gPSBSZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4
dFJ1bigmdGV4dCwgZm9udCwgJnRleHQsIGZyb20sIGxlbiwgc3R5bGUpOworICAgIHJ1bi5zZXRD
aGFyYWN0ZXJzTGVuZ3RoKHRleHQudGV4dExlbmd0aCgpIC0gZnJvbSk7CiAgICAgQVNTRVJUKHJ1
bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gcnVuLmxlbmd0aCgpKTsKIAotICAgIHJ1bi5zZXRDaGFy
YWN0ZXJTY2FuRm9yQ29kZVBhdGgoIXRleHQtPmNhblVzZVNpbXBsZUZvbnRDb2RlUGF0aCgpKTsK
KyAgICBydW4uc2V0Q2hhcmFjdGVyU2NhbkZvckNvZGVQYXRoKCF0ZXh0LmNhblVzZVNpbXBsZUZv
bnRDb2RlUGF0aCgpKTsKICAgICBydW4uc2V0VGFiU2l6ZSghY29sbGFwc2VXaGl0ZVNwYWNlLCBz
dHlsZS50YWJTaXplKCkpOwogICAgIHJ1bi5zZXRYUG9zKHhQb3MpOwogICAgIHJldHVybiBmb250
LndpZHRoKHJ1biwgJmZhbGxiYWNrRm9udHMsICZnbHlwaE92ZXJmbG93KTsKQEAgLTU5Miw3ICs1
OTIsNyBAQCBpbmxpbmUgdm9pZCBlbnN1cmVDaGFyYWN0ZXJHZXRzTGluZUJveChMaW5lTWlkcG9p
bnRTdGF0ZSYgbGluZU1pZHBvaW50U3RhdGUsIElubAogICAgIGxpbmVNaWRwb2ludFN0YXRlLnN0
b3BJZ25vcmluZ1NwYWNlcyhJbmxpbmVJdGVyYXRvcigwLCB0ZXh0UGFyYWdyYXBoU2VwYXJhdG9y
LnJlbmRlcmVyKCksIHRleHRQYXJhZ3JhcGhTZXBhcmF0b3Iub2Zmc2V0KCkpKTsKIH0KIAotaW5s
aW5lIHZvaWQgdHJ5SHlwaGVuYXRpbmcoUmVuZGVyVGV4dCogdGV4dCwgY29uc3QgRm9udENhc2Nh
ZGUmIGZvbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlSWRlbnRpZmllciwgdW5zaWduZWQg
Y29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMsIGludCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5l
c0xpbWl0LCBpbnQgbWluaW11bVByZWZpeExpbWl0LCBpbnQgbWluaW11bVN1ZmZpeExpbWl0LCB1
bnNpZ25lZCBsYXN0U3BhY2UsIHVuc2lnbmVkIHBvcywgZmxvYXQgeFBvcywgaW50IGF2YWlsYWJs
ZVdpZHRoLCBib29sIGlzRml4ZWRQaXRjaCwgYm9vbCBjb2xsYXBzZVdoaXRlU3BhY2UsIGludCBs
YXN0U3BhY2VXb3JkU3BhY2luZywgSW5saW5lSXRlcmF0b3ImIGxpbmVCcmVhaywgaW50IG5leHRC
cmVha2FibGUsIGJvb2wmIGh5cGhlbmF0ZWQpCitpbmxpbmUgdm9pZCB0cnlIeXBoZW5hdGluZyhS
ZW5kZXJUZXh0JiB0ZXh0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udCwgY29uc3QgQXRvbWljU3Ry
aW5nJiBsb2NhbGVJZGVudGlmaWVyLCB1bnNpZ25lZCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5l
cywgaW50IGNvbnNlY3V0aXZlSHlwaGVuYXRlZExpbmVzTGltaXQsIGludCBtaW5pbXVtUHJlZml4
TGltaXQsIGludCBtaW5pbXVtU3VmZml4TGltaXQsIHVuc2lnbmVkIGxhc3RTcGFjZSwgdW5zaWdu
ZWQgcG9zLCBmbG9hdCB4UG9zLCBpbnQgYXZhaWxhYmxlV2lkdGgsIGJvb2wgaXNGaXhlZFBpdGNo
LCBib29sIGNvbGxhcHNlV2hpdGVTcGFjZSwgaW50IGxhc3RTcGFjZVdvcmRTcGFjaW5nLCBJbmxp
bmVJdGVyYXRvciYgbGluZUJyZWFrLCBpbnQgbmV4dEJyZWFrYWJsZSwgYm9vbCYgaHlwaGVuYXRl
ZCkKIHsKICAgICAvLyBNYXAgJ2h5cGhlbmF0ZS1saW1pdC17YmVmb3JlLGFmdGVyfTogYXV0bzsn
IHRvIDIuCiAgICAgdW5zaWduZWQgbWluaW11bVByZWZpeExlbmd0aDsKQEAgLTYyMiw5ICs2MjIs
OSBAQCBpbmxpbmUgdm9pZCB0cnlIeXBoZW5hdGluZyhSZW5kZXJUZXh0KiB0ZXh0LCBjb25zdCBG
b250Q2FzY2FkZSYgZm9udCwgY29uc3QgQXRvbQogICAgIGlmIChtYXhQcmVmaXhXaWR0aCA8PSBm
b250LnBpeGVsU2l6ZSgpICogNSAvIDQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSA9IHRleHQtPnN0eWxlKCk7Ci0gICAgVGV4dFJ1biBydW4gPSBSZW5k
ZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bih0ZXh0LCBmb250LCB0ZXh0LCBsYXN0U3BhY2UsIHBv
cyAtIGxhc3RTcGFjZSwgc3R5bGUpOwotICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQt
PnRleHRMZW5ndGgoKSAtIGxhc3RTcGFjZSk7CisgICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
ID0gdGV4dC5zdHlsZSgpOworICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVj
dFRleHRSdW4oJnRleHQsIGZvbnQsICZ0ZXh0LCBsYXN0U3BhY2UsIHBvcyAtIGxhc3RTcGFjZSwg
c3R5bGUpOworICAgIHJ1bi5zZXRDaGFyYWN0ZXJzTGVuZ3RoKHRleHQudGV4dExlbmd0aCgpIC0g
bGFzdFNwYWNlKTsKICAgICBBU1NFUlQocnVuLmNoYXJhY3RlcnNMZW5ndGgoKSA+PSBydW4ubGVu
Z3RoKCkpOwogCiAgICAgcnVuLnNldFRhYlNpemUoIWNvbGxhcHNlV2hpdGVTcGFjZSwgc3R5bGUu
dGFiU2l6ZSgpKTsKQEAgLTYzNCwxNCArNjM0LDE0IEBAIGlubGluZSB2b2lkIHRyeUh5cGhlbmF0
aW5nKFJlbmRlclRleHQqIHRleHQsIGNvbnN0IEZvbnRDYXNjYWRlJiBmb250LCBjb25zdCBBdG9t
CiAgICAgaWYgKHByZWZpeExlbmd0aCA8IG1pbmltdW1QcmVmaXhMZW5ndGgpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHByZWZpeExlbmd0aCA9IGxhc3RIeXBoZW5Mb2NhdGlvbihTdHJpbmdWaWV3
KHRleHQtPnRleHQoKSkuc3Vic3RyaW5nKGxhc3RTcGFjZSwgcG9zIC0gbGFzdFNwYWNlKSwgc3Rk
OjptaW4ocHJlZml4TGVuZ3RoLCBwb3MgLSBsYXN0U3BhY2UgLSBtaW5pbXVtU3VmZml4TGVuZ3Ro
KSArIDEsIGxvY2FsZUlkZW50aWZpZXIpOworICAgIHByZWZpeExlbmd0aCA9IGxhc3RIeXBoZW5M
b2NhdGlvbihTdHJpbmdWaWV3KHRleHQudGV4dCgpKS5zdWJzdHJpbmcobGFzdFNwYWNlLCBwb3Mg
LSBsYXN0U3BhY2UpLCBzdGQ6Om1pbihwcmVmaXhMZW5ndGgsIHBvcyAtIGxhc3RTcGFjZSAtIG1p
bmltdW1TdWZmaXhMZW5ndGgpICsgMSwgbG9jYWxlSWRlbnRpZmllcik7CiAgICAgaWYgKCFwcmVm
aXhMZW5ndGggfHwgcHJlZml4TGVuZ3RoIDwgbWluaW11bVByZWZpeExlbmd0aCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gV2hlbiBsYXN0U3BhY2UgaXMgYSBzcGFjZSwgd2hpY2ggaXQgYWx3
YXlzIGlzIGV4Y2VwdCBzb21ldGltZXMgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUgb3IgYWZ0
ZXIgY29sbGFwc2VkCiAgICAgLy8gc3BhY2UsIGl0IHNob3VsZCBub3QgY291bnQgdG93YXJkcyBo
eXBoZW5hdGUtbGltaXQtYmVmb3JlLgogICAgIGlmIChwcmVmaXhMZW5ndGggPT0gbWluaW11bVBy
ZWZpeExlbmd0aCkgewotICAgICAgICBVQ2hhciBjaGFyYWN0ZXJBdExhc3RTcGFjZSA9IHRleHQt
PmNoYXJhY3RlckF0KGxhc3RTcGFjZSk7CisgICAgICAgIFVDaGFyIGNoYXJhY3RlckF0TGFzdFNw
YWNlID0gdGV4dC5jaGFyYWN0ZXJBdChsYXN0U3BhY2UpOwogICAgICAgICBpZiAoY2hhcmFjdGVy
QXRMYXN0U3BhY2UgPT0gJyAnIHx8IGNoYXJhY3RlckF0TGFzdFNwYWNlID09ICdcbicgfHwgY2hh
cmFjdGVyQXRMYXN0U3BhY2UgPT0gJ1x0JyB8fCBjaGFyYWN0ZXJBdExhc3RTcGFjZSA9PSBub0Jy
ZWFrU3BhY2UpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNjU2LDcgKzY1Niw3IEBA
IGlubGluZSB2b2lkIHRyeUh5cGhlbmF0aW5nKFJlbmRlclRleHQqIHRleHQsIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250LCBjb25zdCBBdG9tCiAgICAgVU5VU0VEX1BBUkFNKGlzRml4ZWRQaXRjaCk7
CiAjZW5kaWYKIAotICAgIGxpbmVCcmVhay5tb3ZlVG8odGV4dCwgbGFzdFNwYWNlICsgcHJlZml4
TGVuZ3RoLCBuZXh0QnJlYWthYmxlKTsKKyAgICBsaW5lQnJlYWsubW92ZVRvKCZ0ZXh0LCBsYXN0
U3BhY2UgKyBwcmVmaXhMZW5ndGgsIG5leHRCcmVha2FibGUpOwogICAgIGh5cGhlbmF0ZWQgPSB0
cnVlOwogfQogCkBAIC03NDIsNyArNzQyLDcgQEAgaW5saW5lIGJvb2wgQnJlYWtpbmdDb250ZXh0
OjpoYW5kbGVUZXh0KFdvcmRNZWFzdXJlbWVudHMmIHdvcmRNZWFzdXJlbWVudHMsIGJvb2wKICAg
ICAgICAgICAgIG1fbGluZUluZm8uc2V0RW1wdHkoZmFsc2UsICZtX2Jsb2NrLCAmbV93aWR0aCk7
CiAKICAgICAgICAgaWYgKGMgPT0gc29mdEh5cGhlbiAmJiBtX2F1dG9XcmFwICYmICFoeXBoZW5X
aWR0aCAmJiBzdHlsZS5oeXBoZW5zKCkgIT0gSHlwaGVuc05vbmUpIHsKLSAgICAgICAgICAgIGh5
cGhlbldpZHRoID0gbWVhc3VyZUh5cGhlbldpZHRoKCZyZW5kZXJUZXh0LCBmb250LCAmZmFsbGJh
Y2tGb250cyk7CisgICAgICAgICAgICBoeXBoZW5XaWR0aCA9IG1lYXN1cmVIeXBoZW5XaWR0aChy
ZW5kZXJUZXh0LCBmb250LCAmZmFsbGJhY2tGb250cyk7CiAgICAgICAgICAgICBtX3dpZHRoLmFk
ZFVuY29tbWl0dGVkV2lkdGgoaHlwaGVuV2lkdGgpOwogICAgICAgICB9CiAKQEAgLTc1Myw3ICs3
NTMsNyBAQCBpbmxpbmUgYm9vbCBCcmVha2luZ0NvbnRleHQ6OmhhbmRsZVRleHQoV29yZE1lYXN1
cmVtZW50cyYgd29yZE1lYXN1cmVtZW50cywgYm9vbAogICAgICAgICBpZiAoKGJyZWFrQWxsIHx8
IGJyZWFrV29yZHMpICYmICFtaWRXb3JkQnJlYWsgJiYgKCFtX2N1cnJlbnRDaGFyYWN0ZXJJc1Nw
YWNlIHx8IHN0eWxlLndoaXRlU3BhY2UoKSAhPSBQUkVfV1JBUCkpIHsKICAgICAgICAgICAgIHdy
YXBXICs9IGNoYXJXaWR0aDsKICAgICAgICAgICAgIGJvb2wgbWlkV29yZEJyZWFrSXNCZWZvcmVT
dXJyb2dhdGVQYWlyID0gVTE2X0lTX0xFQUQoYykgJiYgbV9jdXJyZW50Lm9mZnNldCgpICsgMSA8
IHJlbmRlclRleHQudGV4dExlbmd0aCgpICYmIFUxNl9JU19UUkFJTChyZW5kZXJUZXh0W21fY3Vy
cmVudC5vZmZzZXQoKSArIDFdKTsKLSAgICAgICAgICAgIGNoYXJXaWR0aCA9IHRleHRXaWR0aCgm
cmVuZGVyVGV4dCwgbV9jdXJyZW50Lm9mZnNldCgpLCBtaWRXb3JkQnJlYWtJc0JlZm9yZVN1cnJv
Z2F0ZVBhaXIgPyAyIDogMSwgZm9udCwgbV93aWR0aC5jb21taXR0ZWRXaWR0aCgpICsgd3JhcFcs
IGlzRml4ZWRQaXRjaCwgbV9jb2xsYXBzZVdoaXRlU3BhY2UsIGZhbGxiYWNrRm9udHMsIHRleHRM
YXlvdXQpOworICAgICAgICAgICAgY2hhcldpZHRoID0gdGV4dFdpZHRoKHJlbmRlclRleHQsIG1f
Y3VycmVudC5vZmZzZXQoKSwgbWlkV29yZEJyZWFrSXNCZWZvcmVTdXJyb2dhdGVQYWlyID8gMiA6
IDEsIGZvbnQsIG1fd2lkdGguY29tbWl0dGVkV2lkdGgoKSArIHdyYXBXLCBpc0ZpeGVkUGl0Y2gs
IG1fY29sbGFwc2VXaGl0ZVNwYWNlLCBmYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsKICAgICAg
ICAgICAgIG1pZFdvcmRCcmVhayA9IG1fd2lkdGguY29tbWl0dGVkV2lkdGgoKSArIHdyYXBXICsg
Y2hhcldpZHRoID4gbV93aWR0aC5hdmFpbGFibGVXaWR0aCgpOwogICAgICAgICB9CiAKQEAgLTc5
MCw5ICs3OTAsOSBAQCBpbmxpbmUgYm9vbCBCcmVha2luZ0NvbnRleHQ6OmhhbmRsZVRleHQoV29y
ZE1lYXN1cmVtZW50cyYgd29yZE1lYXN1cmVtZW50cywgYm9vbAogCiAgICAgICAgICAgICBmbG9h
dCBhZGRpdGlvbmFsVGVtcFdpZHRoOwogICAgICAgICAgICAgaWYgKHdvcmRUcmFpbGluZ1NwYWNl
V2lkdGggJiYgYyA9PSAnICcpCi0gICAgICAgICAgICAgICAgYWRkaXRpb25hbFRlbXBXaWR0aCA9
IHRleHRXaWR0aCgmcmVuZGVyVGV4dCwgbGFzdFNwYWNlLCBtX2N1cnJlbnQub2Zmc2V0KCkgKyAx
IC0gbGFzdFNwYWNlLCBmb250LCBtX3dpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gs
IG1fY29sbGFwc2VXaGl0ZVNwYWNlLCB3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cywgdGV4
dExheW91dCkgLSB3b3JkVHJhaWxpbmdTcGFjZVdpZHRoOworICAgICAgICAgICAgICAgIGFkZGl0
aW9uYWxUZW1wV2lkdGggPSB0ZXh0V2lkdGgocmVuZGVyVGV4dCwgbGFzdFNwYWNlLCBtX2N1cnJl
bnQub2Zmc2V0KCkgKyAxIC0gbGFzdFNwYWNlLCBmb250LCBtX3dpZHRoLmN1cnJlbnRXaWR0aCgp
LCBpc0ZpeGVkUGl0Y2gsIG1fY29sbGFwc2VXaGl0ZVNwYWNlLCB3b3JkTWVhc3VyZW1lbnQuZmFs
bGJhY2tGb250cywgdGV4dExheW91dCkgLSB3b3JkVHJhaWxpbmdTcGFjZVdpZHRoOwogICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxUZW1wV2lkdGggPSB0ZXh0V2lk
dGgoJnJlbmRlclRleHQsIGxhc3RTcGFjZSwgbV9jdXJyZW50Lm9mZnNldCgpIC0gbGFzdFNwYWNl
LCBmb250LCBtX3dpZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIG1fY29sbGFwc2VX
aGl0ZVNwYWNlLCB3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cywgdGV4dExheW91dCk7Cisg
ICAgICAgICAgICAgICAgYWRkaXRpb25hbFRlbXBXaWR0aCA9IHRleHRXaWR0aChyZW5kZXJUZXh0
LCBsYXN0U3BhY2UsIG1fY3VycmVudC5vZmZzZXQoKSAtIGxhc3RTcGFjZSwgZm9udCwgbV93aWR0
aC5jdXJyZW50V2lkdGgoKSwgaXNGaXhlZFBpdGNoLCBtX2NvbGxhcHNlV2hpdGVTcGFjZSwgd29y
ZE1lYXN1cmVtZW50LmZhbGxiYWNrRm9udHMsIHRleHRMYXlvdXQpOwogCiAgICAgICAgICAgICBp
ZiAod29yZE1lYXN1cmVtZW50LmZhbGxiYWNrRm9udHMuaXNFbXB0eSgpICYmICFmYWxsYmFja0Zv
bnRzLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICB3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tG
b250cy5zd2FwKGZhbGxiYWNrRm9udHMpOwpAQCAtODIwLDcgKzgyMCw3IEBAIGlubGluZSBib29s
IEJyZWFraW5nQ29udGV4dDo6aGFuZGxlVGV4dChXb3JkTWVhc3VyZW1lbnRzJiB3b3JkTWVhc3Vy
ZW1lbnRzLCBib29sCiAgICAgICAgICAgICAgICAgLy8gYXMgY2FuZGlkYXRlIHdpZHRoIGZvciB0
aGlzIGxpbmUuCiAgICAgICAgICAgICAgICAgYm9vbCBsaW5lV2FzVG9vV2lkZSA9IGZhbHNlOwog
ICAgICAgICAgICAgICAgIGlmIChtX3dpZHRoLmZpdHNPbkxpbmUoKSAmJiBtX2N1cnJlbnRDaGFy
YWN0ZXJJc1dTICYmIG1fY3VycmVudFN0eWxlLT5icmVha09ubHlBZnRlcldoaXRlU3BhY2UoKSAm
JiAhbWlkV29yZEJyZWFrKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZsb2F0IGNoYXJXaWR0aCA9
IHRleHRXaWR0aCgmcmVuZGVyVGV4dCwgbV9jdXJyZW50Lm9mZnNldCgpLCAxLCBmb250LCBtX3dp
ZHRoLmN1cnJlbnRXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIG1fY29sbGFwc2VXaGl0ZVNwYWNlLCB3
b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cywgdGV4dExheW91dCkgKyAoYXBwbHlXb3JkU3Bh
Y2luZyA/IHdvcmRTcGFjaW5nIDogMCk7CisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGNoYXJX
aWR0aCA9IHRleHRXaWR0aChyZW5kZXJUZXh0LCBtX2N1cnJlbnQub2Zmc2V0KCksIDEsIGZvbnQs
IG1fd2lkdGguY3VycmVudFdpZHRoKCksIGlzRml4ZWRQaXRjaCwgbV9jb2xsYXBzZVdoaXRlU3Bh
Y2UsIHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KSArIChhcHBseVdv
cmRTcGFjaW5nID8gd29yZFNwYWNpbmcgOiAwKTsKICAgICAgICAgICAgICAgICAgICAgLy8gQ2hl
Y2sgaWYgbGluZSBpcyB0b28gYmlnIGV2ZW4gd2l0aG91dCB0aGUgZXh0cmEgc3BhY2UKICAgICAg
ICAgICAgICAgICAgICAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgbGluZS4gSWYgaXQgaXMgbm90LCBk
byBub3RoaW5nLgogICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgbGluZSBuZWVkcyB0aGUg
ZXh0cmEgd2hpdGVzcGFjZSB0byBiZSB0b28gbG9uZywKQEAgLTgzNyw3ICs4MzcsNyBAQCBpbmxp
bmUgYm9vbCBCcmVha2luZ0NvbnRleHQ6OmhhbmRsZVRleHQoV29yZE1lYXN1cmVtZW50cyYgd29y
ZE1lYXN1cmVtZW50cywgYm9vbAogICAgICAgICAgICAgICAgIGlmIChsaW5lV2FzVG9vV2lkZSB8
fCAhbV93aWR0aC5maXRzT25MaW5lKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNhbkh5
cGhlbmF0ZSAmJiAhbV93aWR0aC5maXRzT25MaW5lKCkpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fbGluZUJyZWFrSGlzdG9yeS5wdXNoKFsmXShJbmxpbmVJdGVyYXRvciYgbW9kaWZ5TWUp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnlIeXBoZW5hdGluZygmcmVuZGVyVGV4
dCwgZm9udCwgc3R5bGUubG9jYWxlKCksIGNvbnNlY3V0aXZlSHlwaGVuYXRlZExpbmVzLCBtX2Js
b2NrU3R5bGUuaHlwaGVuYXRpb25MaW1pdExpbmVzKCksIHN0eWxlLmh5cGhlbmF0aW9uTGltaXRC
ZWZvcmUoKSwgc3R5bGUuaHlwaGVuYXRpb25MaW1pdEFmdGVyKCksIGxhc3RTcGFjZSwgbV9jdXJy
ZW50Lm9mZnNldCgpLCBtX3dpZHRoLmN1cnJlbnRXaWR0aCgpIC0gYWRkaXRpb25hbFRlbXBXaWR0
aCwgbV93aWR0aC5hdmFpbGFibGVXaWR0aCgpLCBpc0ZpeGVkUGl0Y2gsIG1fY29sbGFwc2VXaGl0
ZVNwYWNlLCBsYXN0U3BhY2VXb3JkU3BhY2luZywgbW9kaWZ5TWUsIG1fY3VycmVudC5uZXh0QnJl
YWthYmxlUG9zaXRpb24oKSwgbV9saW5lQnJlYWtlci5tX2h5cGhlbmF0ZWQpOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRyeUh5cGhlbmF0aW5nKHJlbmRlclRleHQsIGZvbnQsIHN0eWxl
LmxvY2FsZSgpLCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcywgbV9ibG9ja1N0eWxlLmh5cGhl
bmF0aW9uTGltaXRMaW5lcygpLCBzdHlsZS5oeXBoZW5hdGlvbkxpbWl0QmVmb3JlKCksIHN0eWxl
Lmh5cGhlbmF0aW9uTGltaXRBZnRlcigpLCBsYXN0U3BhY2UsIG1fY3VycmVudC5vZmZzZXQoKSwg
bV93aWR0aC5jdXJyZW50V2lkdGgoKSAtIGFkZGl0aW9uYWxUZW1wV2lkdGgsIG1fd2lkdGguYXZh
aWxhYmxlV2lkdGgoKSwgaXNGaXhlZFBpdGNoLCBtX2NvbGxhcHNlV2hpdGVTcGFjZSwgbGFzdFNw
YWNlV29yZFNwYWNpbmcsIG1vZGlmeU1lLCBtX2N1cnJlbnQubmV4dEJyZWFrYWJsZVBvc2l0aW9u
KCksIG1fbGluZUJyZWFrZXIubV9oeXBoZW5hdGVkKTsKICAgICAgICAgICAgICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG1fbGluZUJyZWFrZXIubV9oeXBoZW5h
dGVkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9hdEVuZCA9IHRydWU7CkBAIC05
NzAsNyArOTcwLDcgQEAgaW5saW5lIGJvb2wgQnJlYWtpbmdDb250ZXh0OjpoYW5kbGVUZXh0KFdv
cmRNZWFzdXJlbWVudHMmIHdvcmRNZWFzdXJlbWVudHMsIGJvb2wKICAgICB3b3JkTWVhc3VyZW1l
bnQucmVuZGVyZXIgPSAmcmVuZGVyVGV4dDsKIAogICAgIC8vIElNUE9SVEFOVDogY3VycmVudC5t
X3BvcyBpcyA+IGxlbmd0aCBoZXJlIQotICAgIGZsb2F0IGFkZGl0aW9uYWxUZW1wV2lkdGggPSBt
X2lnbm9yaW5nU3BhY2VzID8gMCA6IHRleHRXaWR0aCgmcmVuZGVyVGV4dCwgbGFzdFNwYWNlLCBt
X2N1cnJlbnQub2Zmc2V0KCkgLSBsYXN0U3BhY2UsIGZvbnQsIG1fd2lkdGguY3VycmVudFdpZHRo
KCksIGlzRml4ZWRQaXRjaCwgbV9jb2xsYXBzZVdoaXRlU3BhY2UsIHdvcmRNZWFzdXJlbWVudC5m
YWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsKKyAgICBmbG9hdCBhZGRpdGlvbmFsVGVtcFdpZHRo
ID0gbV9pZ25vcmluZ1NwYWNlcyA/IDAgOiB0ZXh0V2lkdGgocmVuZGVyVGV4dCwgbGFzdFNwYWNl
LCBtX2N1cnJlbnQub2Zmc2V0KCkgLSBsYXN0U3BhY2UsIGZvbnQsIG1fd2lkdGguY3VycmVudFdp
ZHRoKCksIGlzRml4ZWRQaXRjaCwgbV9jb2xsYXBzZVdoaXRlU3BhY2UsIHdvcmRNZWFzdXJlbWVu
dC5mYWxsYmFja0ZvbnRzLCB0ZXh0TGF5b3V0KTsKICAgICB3b3JkTWVhc3VyZW1lbnQuc3RhcnRP
ZmZzZXQgPSBsYXN0U3BhY2U7CiAgICAgd29yZE1lYXN1cmVtZW50LmVuZE9mZnNldCA9IG1fY3Vy
cmVudC5vZmZzZXQoKTsKICAgICB3b3JkTWVhc3VyZW1lbnQud2lkdGggPSBtX2lnbm9yaW5nU3Bh
Y2VzID8gMCA6IGFkZGl0aW9uYWxUZW1wV2lkdGggKyB3b3JkU3BhY2luZ0ZvcldvcmRNZWFzdXJl
bWVudDsKQEAgLTk5MSw3ICs5OTEsNyBAQCBpbmxpbmUgYm9vbCBCcmVha2luZ0NvbnRleHQ6Omhh
bmRsZVRleHQoV29yZE1lYXN1cmVtZW50cyYgd29yZE1lYXN1cmVtZW50cywgYm9vbAogICAgIGlm
ICghbV93aWR0aC5maXRzT25MaW5lKCkpIHsKICAgICAgICAgaWYgKGNhbkh5cGhlbmF0ZSkgewog
ICAgICAgICAgICAgbV9saW5lQnJlYWtIaXN0b3J5LnB1c2goWyZdKElubGluZUl0ZXJhdG9yJiBt
b2RpZnlNZSkgewotICAgICAgICAgICAgICAgIHRyeUh5cGhlbmF0aW5nKCZyZW5kZXJUZXh0LCBm
b250LCBzdHlsZS5sb2NhbGUoKSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMsIG1fYmxvY2tT
dHlsZS5oeXBoZW5hdGlvbkxpbWl0TGluZXMoKSwgc3R5bGUuaHlwaGVuYXRpb25MaW1pdEJlZm9y
ZSgpLCBzdHlsZS5oeXBoZW5hdGlvbkxpbWl0QWZ0ZXIoKSwgbGFzdFNwYWNlLCBtX2N1cnJlbnQu
b2Zmc2V0KCksIG1fd2lkdGguY3VycmVudFdpZHRoKCkgLSBhZGRpdGlvbmFsVGVtcFdpZHRoLCBt
X3dpZHRoLmF2YWlsYWJsZVdpZHRoKCksIGlzRml4ZWRQaXRjaCwgbV9jb2xsYXBzZVdoaXRlU3Bh
Y2UsIGxhc3RTcGFjZVdvcmRTcGFjaW5nLCBtb2RpZnlNZSwgbV9jdXJyZW50Lm5leHRCcmVha2Fi
bGVQb3NpdGlvbigpLCBtX2xpbmVCcmVha2VyLm1faHlwaGVuYXRlZCk7CisgICAgICAgICAgICAg
ICAgdHJ5SHlwaGVuYXRpbmcocmVuZGVyVGV4dCwgZm9udCwgc3R5bGUubG9jYWxlKCksIGNvbnNl
Y3V0aXZlSHlwaGVuYXRlZExpbmVzLCBtX2Jsb2NrU3R5bGUuaHlwaGVuYXRpb25MaW1pdExpbmVz
KCksIHN0eWxlLmh5cGhlbmF0aW9uTGltaXRCZWZvcmUoKSwgc3R5bGUuaHlwaGVuYXRpb25MaW1p
dEFmdGVyKCksIGxhc3RTcGFjZSwgbV9jdXJyZW50Lm9mZnNldCgpLCBtX3dpZHRoLmN1cnJlbnRX
aWR0aCgpIC0gYWRkaXRpb25hbFRlbXBXaWR0aCwgbV93aWR0aC5hdmFpbGFibGVXaWR0aCgpLCBp
c0ZpeGVkUGl0Y2gsIG1fY29sbGFwc2VXaGl0ZVNwYWNlLCBsYXN0U3BhY2VXb3JkU3BhY2luZywg
bW9kaWZ5TWUsIG1fY3VycmVudC5uZXh0QnJlYWthYmxlUG9zaXRpb24oKSwgbV9saW5lQnJlYWtl
ci5tX2h5cGhlbmF0ZWQpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KIApAQCAtMTE4Niw3
ICsxMTg2LDcgQEAgaW5saW5lIElubGluZUl0ZXJhdG9yIEJyZWFraW5nQ29udGV4dDo6b3B0aW1h
bExpbmVCcmVha0xvY2F0aW9uRm9yVHJhaWxpbmdXb3JkKCkKICAgICAgICAgY29uc3QgSW5saW5l
SXRlcmF0b3ImIGNhbmRpZGF0ZSA9IG1fbGluZUJyZWFrSGlzdG9yeS5nZXQoaSk7CiAgICAgICAg
IGlmIChjYW5kaWRhdGUucmVuZGVyZXIoKSAhPSBsaW5lQnJlYWsucmVuZGVyZXIoKSkKICAgICAg
ICAgICAgIHJldHVybiBiZXN0OwotICAgICAgICBmbG9hdCB3aWR0aCA9IHRleHRXaWR0aCgmcmVu
ZGVyVGV4dCwgY2FuZGlkYXRlLm9mZnNldCgpLCByZW5kZXJUZXh0LnRleHRMZW5ndGgoKSAtIGNh
bmRpZGF0ZS5vZmZzZXQoKSwgZm9udCwgMCwgZm9udC5pc0ZpeGVkUGl0Y2goKSwgbV9jb2xsYXBz
ZVdoaXRlU3BhY2UsIGR1bW15Rm9udHMpOworICAgICAgICBmbG9hdCB3aWR0aCA9IHRleHRXaWR0
aChyZW5kZXJUZXh0LCBjYW5kaWRhdGUub2Zmc2V0KCksIHJlbmRlclRleHQudGV4dExlbmd0aCgp
IC0gY2FuZGlkYXRlLm9mZnNldCgpLCBmb250LCAwLCBmb250LmlzRml4ZWRQaXRjaCgpLCBtX2Nv
bGxhcHNlV2hpdGVTcGFjZSwgZHVtbXlGb250cyk7CiAgICAgICAgIGlmICh3aWR0aCA+IG1fd2lk
dGguYXZhaWxhYmxlV2lkdGgoKSkKICAgICAgICAgICAgIHJldHVybiBiZXN0OwogICAgICAgICBp
ZiAod2lkdGggLyBtX3dpZHRoLmF2YWlsYWJsZVdpZHRoKCkgPiBvcHRpbWFsVHJhaWxpbmdMaW5l
UmF0aW8pIC8vIFN1YnNlcXVlbnQgbGluZSBpcyBsb25nIGVub3VnaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>