<?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>167927</bug_id>
          
          <creation_ts>2017-02-07 01:23:35 -0800</creation_ts>
          <short_desc>[Win] [GTK] [EFL] Compile (but don&apos;t use, yet) the platform-independent piece of ComplexTextController</short_desc>
          <delta_ts>2017-02-07 13:39:20 -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>WebKit 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>167566</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1273902</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-07 01:23:35 -0800</bug_when>
    <thetext>[Win] [GTK] [EFL] Compile (but don&apos;t use, yet) the platform-independent piece of ComplexTextController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273903</commentid>
    <comment_count>1</comment_count>
      <attachid>300795</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-07 01:44:23 -0800</bug_when>
    <thetext>Created attachment 300795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1273904</commentid>
    <comment_count>2</comment_count>
      <attachid>300796</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-07 01:54:17 -0800</bug_when>
    <thetext>Created attachment 300796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274057</commentid>
    <comment_count>3</comment_count>
      <attachid>300819</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-07 10:33:29 -0800</bug_when>
    <thetext>Created attachment 300819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274064</commentid>
    <comment_count>4</comment_count>
      <attachid>300821</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-07 11:01:23 -0800</bug_when>
    <thetext>Created attachment 300821
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274073</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-02-07 11:24:46 -0800</bug_when>
    <thetext>efl failure is unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274119</commentid>
    <comment_count>6</comment_count>
      <attachid>300821</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-07 12:57:01 -0800</bug_when>
    <thetext>Comment on attachment 300821
Patch

Very nice! Looking forward to global ComplexTextController dominance!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274138</commentid>
    <comment_count>7</comment_count>
      <attachid>300821</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-07 13:39:16 -0800</bug_when>
    <thetext>Comment on attachment 300821
Patch

Clearing flags on attachment: 300821

Committed r211836: &lt;http://trac.webkit.org/changeset/211836&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1274139</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-07 13:39:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300795</attachid>
            <date>2017-02-07 01:44:23 -0800</date>
            <delta_ts>2017-02-07 01:54:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167927-20170207014158.patch</filename>
            <type>text/plain</type>
            <size>26383</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI5MmM3MmU4ZGVjODRj
ZjgzYWM4NGJmMDc0MWI4MzZjOGU2ZmNmYi4uMmVkMmM0ODViNTQzODczNTRhYTk2ZmE0ODg2OTFl
MWNiMjdkMmZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE3LTAyLTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl0gW0dU
S10gW0VGTF0gQ29tcGlsZSAoYnV0IGRvbid0IHVzZSwgeWV0KSB0aGUgcGxhdGZvcm0taW5kZXBl
bmRlbnQgcGllY2Ugb2YgQ29tcGxleFRleHRDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc5MjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHNpbXBseSBtb3ZlcyBzb21l
IGZ1bmN0aW9ucyBhcm91bmQgdG8gZW5hYmxlIHRoZSBXaW4sIEdUSywgYW5kIEVGTCBwb3J0cyB0
byBjb21waWxlIHRoZQorICAgICAgICBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwaWVjZXMgb2YgQ29t
cGxleFRleHRDb250cm9sbGVyLiBUaG9zZSBwYXJ0cyBvZiBDb21wbGV4VGV4dENvbnRyb2xsZXIg
aGF2ZQorICAgICAgICBzb21lIGRlcGVuZGVuY2llcyB3aGljaCB3ZXJlIHByZXZpb3VzbHkgb25s
eSBhdmFpbGFibGUgb24gdGhlIENvY29hIHBvcnRzOyBob3dldmVyLCB0aG9zZQorICAgICAgICBk
ZXBlbmRlbmNpZXMgYXJlIGVhc2lseSBjcmVhdGVkIG9yIG1vdmVkIGZyb20gZWxzZXdoZXJlLiBU
aGUgbmV4dCBzdGVwIGlzIHRvIHBvcHVsYXRlIHRoZQorICAgICAgICBDb21wbGV4VGV4dENvbnRy
b2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJzKCkgZnVuY3Rpb24gZm9y
IERpcmVjdFdyaXRlIGFuZCBIYXJmQnV6ei4KKyAgICAgICAgT25jZSB0aGF0IGlzIGRvbmUsIFVu
aXNjcmliZUNvbnRyb2xsZXIgYW5kIEhhcmZCdXp6U2hhcGVyIGNhbiBiZSBkZWxldGVkLgorCisg
ICAgICAgIEFkZHMgQ29tcGxleFRleHRDb250cm9sbGVyIFRlc3RXZWJLaXRBUEkgdGVzdHMgdG8g
dGhlIFdpbiBhbmQgR1RLIHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEV2ZXJ5
b25lIGNhbiBjb21waWxlIHRoZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwaWVjZSBvZiBDb21wbGV4
VGV4dENvbnRyb2xsZXIuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZCB0aGUgSGFy
ZkJ1enotc3BlY2lmaWMgcGllY2UuCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERpdHRv
LgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOiBBZGQgdGhlIERpcmVjdFdyaXRlLXNwZWNp
ZmljIHBpZWNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3Io
KSk6IENvbXBsZXhUZXh0Q29udHJvbGxlciBzaG91bGRuJ3QgYmUgZW5hYmxlZCB5ZXQgZm9yIFdp
biwKKyAgICAgICAgR1RLLCBvciBFRkwuCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6
Y3JlYXRlTGF5b3V0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6d2lk
dGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29t
cGxleFRleHRSdW46OkNvbXBsZXhUZXh0UnVuKTogTW92ZWQgc2hhcmVkIGNvZGUgdG8gdGhlIHNo
YXJlZAorICAgICAgICBmaWxlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6bm9TeW50aGVzaXphYmxlRmVhdHVyZXNGb250KTog
RGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3Igb3RoZXIgcG9ydHMuCisgICAgICAgIChXZWJDb3Jl
OjpGb250Ojp2YXJpYW50Q2Fwc1N1cHBvcnRzQ2hhcmFjdGVyRm9yU3ludGhlc2lzKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OmRyYXdFbXBoYXNpc01hcmtz
Rm9yQ29tcGxleFRleHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYXNjYWRlOjpj
cmVhdGVMYXlvdXQpOiBEZWxldGVkLiBNb3ZlZCB0byBDb21wbGV4VGV4dENvbnRyb2xsZXIuCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3IoKSk6IERlbGV0ZWQu
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6IGZvbnRG
b3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZSgpIHNob3VsZCBleGlzdCBvbiBhbGwgcG9ydHMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZHJhd0VtcGhhc2lzTWFya3NGb3JD
b21wbGV4VGV4dCk6IERlbGV0ZWQuIFNoYXJlZCBhbW9uZyBhbGwgcG9ydHMuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2NhZGVDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDYXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KTogRGVs
ZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxl
eFRleHRDb250cm9sbGVySGFyZkJ1enouY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMp
OiBFbXB0eSBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBIYXJmQnV6ei1zcGVjaWZpYyBwaWVj
ZSBvZiBDb21wbGV4VGV4dENvbnRyb2xsZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOiBNb3ZlZCBjb25zdHJ1Y3RvcnMg
dG8gc2hhcmVkIGZpbGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbXBsZXhU
ZXh0Q29udHJvbGxlckRpcmVjdFdyaXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJz
KTogRW1wdHkgaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgRGlyZWN0IFdyaXRlLXNwZWNpZmlj
IHBpZWNlIG9mIENvbXBsZXhUZXh0Q29udHJvbGxlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZHJh
d0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dCk6IERlbGV0ZWQuIFNoYXJlZCBhbW9uZyBhbGwg
cG9ydHMuCisKIDIwMTctMDItMDcgIFJvbWFpbiBCZWxsZXNzb3J0ICA8cm9tYWluLmJlbGxlc3Nv
cnRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFtSZWFkYWJsZSBTdHJlYW1zIEFQSV0gSW1wbGVt
ZW50IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgZW5xdWV1ZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDViOTkxZTcwZTlkYTg2YTFkMzU0ZDM2NGUzZGVhMTRmNTliY2ZhNTYuLmM3ZjRi
ZTA4ODkxNDc0ZTMxNmI1MGI0MzAzNzllMzY4YjM2ZjIwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0yMTY2LDYgKzIxNjYsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4
IDFmMGUxMDM1YWQ0YWQyZTFlM2YwYjE3MjVhMmFjZWNlZTNjODBjOTkuLjUwYWI3MjM2NzBmNTg1
OGQyNGE1YzZjMGZmMDVlMjYxYmExM2VmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBA
IC0xMzgsNiArMTM4LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKIAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNw
cAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZS5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2VDYWlyby5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNoYXBlci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1H
VEsuY21ha2UKaW5kZXggYzBiY2QyYTQ4ZWE3MTk2N2IxMjBhNGUwNGYxZTZhOWU3NDY4NjdlNS4u
YTdjZWViOGRiYzczNmVmYzBmZDg5OWU2ZGYyMjZiZGYxZmJkNGMyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1HVEsuY21ha2UKQEAgLTExOSw2ICsxMTksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJv
LmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9s
bGVySGFyZkJ1enouY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpG
YWNlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJv
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBmZDQ4Y2MxNzhhMzUxNTI4MjFkMmFmMWQwNDBh
NDhiNWZlMDZlOWZjLi4zYjViNDBiMzlkMDExZWYzYTA1MmRhODc1NzQ0MGJjNTg0OGMwMTA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtODYsNiArODYsNyBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVV0
aWxpdGllcy5jcHAKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db2xvckRpcmVjdDJELmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db21wbGV4VGV4dENvbnRyb2xsZXJEaXJlY3RX
cml0ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRElCUGl4ZWxEYXRhLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9GbG9hdFBvaW50RGlyZWN0MkQuY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0Zsb2F0UmVjdERpcmVjdDJELmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAK
aW5kZXggZGQ5ZjNjYWNkYzM0YjA0YTQxODFmN2IyOTAwN2I1ODM2ODNiZGNjNy4uODJlZWI2NWVm
N2ZhNjA1NzljYjU4NGY4YzVjNzA0NWYxNDM2ZTRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCkBA
IC05MiwxOSArOTIsNDAgQEAgcHJpdmF0ZToKIAogdm9pZCBUZXh0TGF5b3V0RGVsZXRlcjo6b3Bl
cmF0b3IoKShUZXh0TGF5b3V0KiBsYXlvdXQpIGNvbnN0CiB7CisjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgZGVsZXRlIGxheW91dDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGxheW91dCk7Cisg
ICAgQVNTRVJUKCFsYXlvdXQpOworI2VuZGlmCiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxUZXh0TGF5
b3V0LCBUZXh0TGF5b3V0RGVsZXRlcj4gRm9udENhc2NhZGU6OmNyZWF0ZUxheW91dChSZW5kZXJU
ZXh0JiB0ZXh0LCBmbG9hdCB4UG9zLCBib29sIGNvbGxhcHNlV2hpdGVTcGFjZSkgY29uc3QKIHsK
KyNpZiBQTEFURk9STShDT0NPQSkKICAgICBpZiAoIWNvbGxhcHNlV2hpdGVTcGFjZSB8fCAhVGV4
dExheW91dDo6aXNOZWVkZWQodGV4dCwgKnRoaXMpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFRleHRMYXlvdXQsIFRleHRMYXlvdXREZWxldGVy
PihuZXcgVGV4dExheW91dCh0ZXh0LCAqdGhpcywgeFBvcykpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0odGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKHhQb3MpOworICAgIFVOVVNFRF9QQVJBTShj
b2xsYXBzZVdoaXRlU3BhY2UpOworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9CiAKIGZs
b2F0IEZvbnRDYXNjYWRlOjp3aWR0aChUZXh0TGF5b3V0JiBsYXlvdXQsIHVuc2lnbmVkIGZyb20s
IHVuc2lnbmVkIGxlbiwgSGFzaFNldDxjb25zdCBGb250Kj4qIGZhbGxiYWNrRm9udHMpCiB7Cisj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgcmV0dXJuIGxheW91dC53aWR0aChmcm9tLCBsZW4sIGZh
bGxiYWNrRm9udHMpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5b3V0KTsKKyAgICBVTlVT
RURfUEFSQU0oZnJvbSk7CisgICAgVU5VU0VEX1BBUkFNKGxlbik7CisgICAgVU5VU0VEX1BBUkFN
KGZhbGxiYWNrRm9udHMpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAw
OworI2VuZGlmCiB9CiAKIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjpjb21wdXRlRXhwYW5z
aW9uT3Bwb3J0dW5pdHkoKQpAQCAtODMwLDQgKzg1MSw1MiBAQCB2b2lkIENvbXBsZXhUZXh0Q29u
dHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMoKQogICAgIG1fdG90YWxXaWR0aCArPSB3
aWR0aFNpbmNlTGFzdENvbW1pdDsKIH0KIAorLy8gTWlzc2luZyBnbHlwaHMgcnVuIGNvbnN0cnVj
dG9yLiBDb3JlIFRleHQgd2lsbCBub3QgZ2VuZXJhdGUgYSBydW4gb2YgbWlzc2luZyBnbHlwaHMs
IGluc3RlYWQgZmFsbGluZyBiYWNrIG9uCisvLyBnbHlwaHMgZnJvbSBMYXN0UmVzb3J0LiBXZSB3
YW50IHRvIHVzZSB0aGUgcHJpbWFyeSBmb250J3MgbWlzc2luZyBnbHlwaCBpbiBvcmRlciB0byBt
YXRjaCB0aGUgZmFzdCB0ZXh0IGNvZGUgcGF0aC4KK0NvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29t
cGxleFRleHRSdW46OkNvbXBsZXhUZXh0UnVuKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFVDaGFy
KiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBzdHJpbmdMb2NhdGlvbiwgdW5zaWduZWQgc3RyaW5nTGVu
Z3RoLCB1bnNpZ25lZCBpbmRleEJlZ2luLCB1bnNpZ25lZCBpbmRleEVuZCwgYm9vbCBsdHIpCisg
ICAgOiBtX2ZvbnQoZm9udCkKKyAgICAsIG1fY2hhcmFjdGVycyhjaGFyYWN0ZXJzKQorICAgICwg
bV9zdHJpbmdMZW5ndGgoc3RyaW5nTGVuZ3RoKQorICAgICwgbV9pbmRleEJlZ2luKGluZGV4QmVn
aW4pCisgICAgLCBtX2luZGV4RW5kKGluZGV4RW5kKQorICAgICwgbV9zdHJpbmdMb2NhdGlvbihz
dHJpbmdMb2NhdGlvbikKKyAgICAsIG1faXNMVFIobHRyKQoreworICAgIGF1dG8gcnVuTGVuZ3Ro
SW5Db2RlVW5pdHMgPSBtX2luZGV4RW5kIC0gbV9pbmRleEJlZ2luOworICAgIG1fY29yZVRleHRJ
bmRpY2VzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocnVuTGVuZ3RoSW5Db2RlVW5pdHMpOworICAg
IHVuc2lnbmVkIHIgPSBtX2luZGV4QmVnaW47CisgICAgd2hpbGUgKHIgPCBtX2luZGV4RW5kKSB7
CisgICAgICAgIG1fY29yZVRleHRJbmRpY2VzLnVuY2hlY2tlZEFwcGVuZChyKTsKKyAgICAgICAg
VUNoYXIzMiBjaGFyYWN0ZXI7CisgICAgICAgIFUxNl9ORVhUKG1fY2hhcmFjdGVycywgciwgbV9z
dHJpbmdMZW5ndGgsIGNoYXJhY3Rlcik7CisgICAgfQorICAgIG1fZ2x5cGhDb3VudCA9IG1fY29y
ZVRleHRJbmRpY2VzLnNpemUoKTsKKyAgICBpZiAoIWx0cikgeworICAgICAgICBmb3IgKHVuc2ln
bmVkIHIgPSAwLCBlbmQgPSBtX2dseXBoQ291bnQgLSAxOyByIDwgbV9nbHlwaENvdW50IC8gMjsg
KytyLCAtLWVuZCkKKyAgICAgICAgICAgIHN0ZDo6c3dhcChtX2NvcmVUZXh0SW5kaWNlc1tyXSwg
bV9jb3JlVGV4dEluZGljZXNbZW5kXSk7CisgICAgfQorCisgICAgLy8gU3ludGhlc2l6ZSBhIHJ1
biBvZiBtaXNzaW5nIGdseXBocy4KKyAgICBtX2dseXBocy5maWxsKDAsIG1fZ2x5cGhDb3VudCk7
CisgICAgbV9iYXNlQWR2YW5jZXMuZmlsbChGbG9hdFNpemUobV9mb250LndpZHRoRm9yR2x5cGgo
MCksIDApLCBtX2dseXBoQ291bnQpOworfQorCisKK0NvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29t
cGxleFRleHRSdW46OkNvbXBsZXhUZXh0UnVuKGNvbnN0IFZlY3RvcjxGbG9hdFNpemU+JiBhZHZh
bmNlcywgY29uc3QgVmVjdG9yPEZsb2F0UG9pbnQ+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8R2x5
cGg+JiBnbHlwaHMsIGNvbnN0IFZlY3Rvcjx1bnNpZ25lZD4mIHN0cmluZ0luZGljZXMsIEZsb2F0
U2l6ZSBpbml0aWFsQWR2YW5jZSwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHVuc2lnbmVkIHN0cmluZ0xvY2F0aW9uLCB1bnNpZ25lZCBzdHJpbmdMZW5ndGgsIHVu
c2lnbmVkIGluZGV4QmVnaW4sIHVuc2lnbmVkIGluZGV4RW5kLCBib29sIGx0cikKKyAgICA6IG1f
YmFzZUFkdmFuY2VzKGFkdmFuY2VzKQorICAgICwgbV9nbHlwaE9yaWdpbnMob3JpZ2lucykKKyAg
ICAsIG1fZ2x5cGhzKGdseXBocykKKyAgICAsIG1fY29yZVRleHRJbmRpY2VzKHN0cmluZ0luZGlj
ZXMpCisgICAgLCBtX2luaXRpYWxBZHZhbmNlKGluaXRpYWxBZHZhbmNlKQorICAgICwgbV9mb250
KGZvbnQpCisgICAgLCBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykKKyAgICAsIG1fc3RyaW5nTGVu
Z3RoKHN0cmluZ0xlbmd0aCkKKyAgICAsIG1faW5kZXhCZWdpbihpbmRleEJlZ2luKQorICAgICwg
bV9pbmRleEVuZChpbmRleEVuZCkKKyAgICAsIG1fZ2x5cGhDb3VudChnbHlwaHMuc2l6ZSgpKQor
ICAgICwgbV9zdHJpbmdMb2NhdGlvbihzdHJpbmdMb2NhdGlvbikKKyAgICAsIG1faXNMVFIobHRy
KQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IGM5YWM0ZGQ2MTdkYzU3OGM0ZWU0MzkzNzhmODJhMjY5
YmIxNDgwNTcuLjUxNDk1MGEyNTNmNzgxYmQ4NWYzMGNhMDg3OGFmMGU3NGUxN2UyNzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCkBAIC0yOTMsNiArMjkzLDcg
QEAgY29uc3QgRm9udCogRm9udDo6c21hbGxDYXBzRm9udChjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbikgY29uc3QKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQorCiBjb25z
dCBGb250JiBGb250Ojpub1N5bnRoZXNpemFibGVGZWF0dXJlc0ZvbnQoKSBjb25zdAogewogICAg
IGlmICghbV9kZXJpdmVkRm9udERhdGEpCkBAIC0zMDIsNiArMzAzLDE0IEBAIGNvbnN0IEZvbnQm
IEZvbnQ6Om5vU3ludGhlc2l6YWJsZUZlYXR1cmVzRm9udCgpIGNvbnN0CiAgICAgQVNTRVJUKG1f
ZGVyaXZlZEZvbnREYXRhLT5ub1N5bnRoZXNpemFibGVGZWF0dXJlcyAhPSB0aGlzKTsKICAgICBy
ZXR1cm4gKm1fZGVyaXZlZEZvbnREYXRhLT5ub1N5bnRoZXNpemFibGVGZWF0dXJlczsKIH0KKwor
I2Vsc2UKKworY29uc3QgRm9udCYgRm9udDo6bm9TeW50aGVzaXphYmxlRmVhdHVyZXNGb250KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gKnRoaXM7Cit9CisKICNlbmRpZgogCiBjb25zdCBGb250KiBG
b250OjplbXBoYXNpc01hcmtGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0
aW9uKSBjb25zdApAQCAtNTA1LDQgKzUxNCwxMSBAQCB2b2lkIEZvbnQ6OnJlbW92ZUZyb21TeXN0
ZW1GYWxsYmFja0NhY2hlKCkKICAgICB9CiB9CiAKKyNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExB
VEZPUk0oSU9TKQorYm9vbCBGb250Ojp2YXJpYW50Q2Fwc1N1cHBvcnRzQ2hhcmFjdGVyRm9yU3lu
dGhlc2lzKEZvbnRWYXJpYW50Q2FwcywgVUNoYXIzMikgY29uc3QKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCmluZGV4IDZhYzg2Zjg2M2Mx
ZWZjODY0MDY2ZWRiNjVjMzdjM2NhNTA5YTUwYWQuLmY3YmZkZmE1MTBkMGRkNTUyNzRjMmFkZTRm
MmIxMDNkODQxZGRkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FzY2FkZS5jcHAKQEAgLTQzMSwyNSArNDMxLDYgQEAgR2x5cGhEYXRhIEZvbnRDYXNj
YWRlOjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiBjLCBib29sIG1pcnJvciwgRm9udFZh
cmlhbnQKICAgICByZXR1cm4gbV9mb250cy0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGMsIG1fZm9u
dERlc2NyaXB0aW9uLCB2YXJpYW50KTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLQotc3Rk
Ojp1bmlxdWVfcHRyPFRleHRMYXlvdXQsIFRleHRMYXlvdXREZWxldGVyPiBGb250Q2FzY2FkZTo6
Y3JlYXRlTGF5b3V0KFJlbmRlclRleHQmLCBmbG9hdCwgYm9vbCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbnVsbHB0cjsKLX0KLQotdm9pZCBUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3IoKShUZXh0
TGF5b3V0KikgY29uc3QKLXsKLX0KLQotZmxvYXQgRm9udENhc2NhZGU6OndpZHRoKFRleHRMYXlv
dXQmLCB1bnNpZ25lZCwgdW5zaWduZWQsIEhhc2hTZXQ8Y29uc3QgRm9udCo+KikKLXsKLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmCi0KIHN0YXRp
YyBjb25zdCBjaGFyKiBmb250RmFtaWxpZXNXaXRoSW52YWxpZENoYXJXaWR0aFtdID0gewogICAg
ICJBbWVyaWNhbiBUeXBld3JpdGVyIiwKICAgICAiQXJpYWwgSGVicmV3IiwKQEAgLTE0NjgsNSAr
MTQ0OSwzMCBAQCBpbnQgRm9udENhc2NhZGU6Om9mZnNldEZvclBvc2l0aW9uRm9yU2ltcGxlVGV4
dChjb25zdCBUZXh0UnVuJiBydW4sIGZsb2F0IHgsIGJvbwogICAgIHJldHVybiBvZmZzZXQ7CiB9
CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisvLyBGSVhNRTogVW5pZnkgdGhpcyB3aXRoIHRoZSBt
YWNPUyBhbmQgaU9TIGltcGxlbWVudGF0aW9uLgorY29uc3QgRm9udCogRm9udENhc2NhZGU6OmZv
bnRGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
c2l6ZV90IGxlbmd0aCkgY29uc3QKK3sKKyAgICBVQ2hhcjMyIGJhc2VDaGFyYWN0ZXI7CisgICAg
c2l6ZV90IGJhc2VDaGFyYWN0ZXJMZW5ndGggPSAwOworICAgIFUxNl9ORVhUKGNoYXJhY3RlcnMs
IGJhc2VDaGFyYWN0ZXJMZW5ndGgsIGxlbmd0aCwgYmFzZUNoYXJhY3Rlcik7CisgICAgR2x5cGhE
YXRhIGJhc2VDaGFyYWN0ZXJHbHlwaERhdGEgPSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoYmFzZUNo
YXJhY3RlciwgZmFsc2UsIE5vcm1hbFZhcmlhbnQpOworCisgICAgaWYgKCFiYXNlQ2hhcmFjdGVy
R2x5cGhEYXRhLmdseXBoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gYmFz
ZUNoYXJhY3RlckdseXBoRGF0YS5mb250OworfQorI2VuZGlmCisKK3ZvaWQgRm9udENhc2NhZGU6
OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxv
YXRQb2ludCYgcG9pbnQsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKSBjb25zdAoreworICAg
IEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlID0gZ2V0
R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZl
ciwgRm9yVGV4dEVtcGhhc2lzKTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVm
ZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55
KCkpKTsKK30KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhc2NhZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YXNjYWRlLmgKaW5kZXggYmM3YTExODdlYzYwMGNhYjVhMDUxNDNiMzllMDM1YTc2ODcxZDgyOC4u
OTJkODc4NjIwNjA5ZTk5NjlmZjk1ZTViZGU3MzdlYTkzOTk3MGMyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCkBAIC0xODQsMTAgKzE4NCw4
IEBAIHB1YmxpYzoKICAgICBjb25zdCBGb250JiBwcmltYXJ5Rm9udCgpIGNvbnN0OwogICAgIGNv
bnN0IEZvbnRSYW5nZXMmIGZhbGxiYWNrUmFuZ2VzQXQodW5zaWduZWQpIGNvbnN0OwogICAgIEds
eXBoRGF0YSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiwgYm9vbCBtaXJyb3IsIEZvbnRW
YXJpYW50ID0gQXV0b1ZhcmlhbnQpIGNvbnN0OwotICAgIAotI2lmIFBMQVRGT1JNKENPQ09BKQor
CiAgICAgY29uc3QgRm9udCogZm9udEZvckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlKGNvbnN0
IFVDaGFyKiwgc2l6ZV90IGxlbmd0aCkgY29uc3Q7Ci0jZW5kaWYKIAogICAgIHN0YXRpYyBib29s
IGlzQ0pLSWRlb2dyYXBoKFVDaGFyMzIpOwogICAgIHN0YXRpYyBib29sIGlzQ0pLSWRlb2dyYXBo
T3JTeW1ib2woVUNoYXIzMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCmluZGV4IDA4YmFl
MzgwODQ4ODQ1NGFkNzM4NjcyYzNlMjg4NDVjODRiZmQwMzMuLmNjMzdkN2Q1ODE0MTgzZjhhMWFj
NmQ4NTQ5OWNjYjQ2NmEwNDg1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCkBAIC01
MiwxMSArNTIsNiBAQCBmbG9hdCBGb250Q2FzY2FkZTo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JD
b21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIHVuc2lnbgogICAgIHJldHVybiAwOwogfQog
Ci12b2lkIEZvbnRDYXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBo
aWNzQ29udGV4dCYgLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25z
dCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICov
LCB1bnNpZ25lZCAvKiBmcm9tICovLCB1bnNpZ25lZCAvKiB0byAqLykgY29uc3QKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCiBib29sIEZvbnRDYXNjYWRlOjpjYW5SZXR1cm5GYWxsYmFj
a0ZvbnRzRm9yQ29tcGxleFRleHQoKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FzY2FkZUNv
Y29hLm1tCmluZGV4IGFjYWIxMTNkMzg4N2Y2NmRiNjFmZmRhNDdkY2RmN2VkMWRhZTAzYmQuLjgz
NGY3MTQ0NDJkYTI0OWU3MWNhMmEwZDY0MmI5MThmZTlmYzEzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2NhZGVDb2Nv
YS5tbQpAQCAtNTMxLDE3ICs1MzEsNiBAQCBmbG9hdCBGb250Q2FzY2FkZTo6Z2V0R2x5cGhzQW5k
QWR2YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIHVuc2lnbgogICAgIHJl
dHVybiBpbml0aWFsQWR2YW5jZTsKIH0KIAotdm9pZCBGb250Q2FzY2FkZTo6ZHJhd0VtcGhhc2lz
TWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFRleHRS
dW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pIGNvbnN0Ci17Ci0gICAgR2x5cGhCdWZmZXIg
Z2x5cGhCdWZmZXI7Ci0gICAgZmxvYXQgaW5pdGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZh
bmNlc0ZvckNvbXBsZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1w
aGFzaXMpOwotCi0gICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZmZXIsIG1hcmssIEZs
b2F0UG9pbnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50LnkoKSkpOwotfQotCiBm
bG9hdCBGb250Q2FzY2FkZTo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4m
IHJ1biwgSGFzaFNldDxjb25zdCBGb250Kj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cq
IGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRy
b2xsZXIoKnRoaXMsIHJ1biwgdHJ1ZSwgZmFsbGJhY2tGb250cyk7CkBAIC01NjAsNiArNTQ5LDcg
QEAgaW50IEZvbnRDYXNjYWRlOjpvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0
IFRleHRSdW4mIHJ1biwgZmxvYXQgeCwgYm8KICAgICByZXR1cm4gY29udHJvbGxlci5vZmZzZXRG
b3JQb3NpdGlvbih4LCBpbmNsdWRlUGFydGlhbEdseXBocyk7CiB9CiAKKy8vIEZJWE1FOiBVc2Ug
dGhpcyBvbiBhbGwgcG9ydHMuCiBjb25zdCBGb250KiBGb250Q2FzY2FkZTo6Zm9udEZvckNvbWJp
bmluZ0NoYXJhY3RlclNlcXVlbmNlKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVu
Z3RoKSBjb25zdAogewogICAgIFVDaGFyMzIgYmFzZUNoYXJhY3RlcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0Q29udHJv
bGxlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZi
dXp6L0NvbXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTdmOWMy
MDRkMWM2NTA3OGFkNzYyZWZmM2JmMDZjNjFiOGRiMWI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9s
bGVySGFyZkJ1enouY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbXBs
ZXhUZXh0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQ29tcGxl
eFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVycyhjb25z
dCBVQ2hhciosIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgRm9udCopCit7CisgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0aGlzLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRl
eHRDb250cm9sbGVyQ29yZVRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KaW5kZXggMjRiZjI3ZWNkNGFl
ZGI5YTA5ODFhMzIxYjE5ZjM5YmQwMTg0OTQzYS4uZTk1OWQyODgwMmFlZjk4YWY4OWI1MjViMGI4
Y2U1MDk0ZmU1MmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5t
bQpAQCAtMjMsNyArMjMsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQogI2luY2x1
ZGUgIkNvbXBsZXhUZXh0Q29udHJvbGxlci5oIgogCiAjaW5jbHVkZSAiQ29yZVRleHRTUEkuaCIK
QEAgLTE2NSw1NCArMTY0LDYgQEAgQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1
bjo6Q29tcGxleFRleHRSdW4oQ1RSdW5SZWYgY3RSdW4sIGNvbnN0IEZvbnQKICAgICB9CiB9CiAK
LS8vIE1pc3NpbmcgZ2x5cGhzIHJ1biBjb25zdHJ1Y3Rvci4gQ29yZSBUZXh0IHdpbGwgbm90IGdl
bmVyYXRlIGEgcnVuIG9mIG1pc3NpbmcgZ2x5cGhzLCBpbnN0ZWFkIGZhbGxpbmcgYmFjayBvbgot
Ly8gZ2x5cGhzIGZyb20gTGFzdFJlc29ydC4gV2Ugd2FudCB0byB1c2UgdGhlIHByaW1hcnkgZm9u
dCdzIG1pc3NpbmcgZ2x5cGggaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGZhc3QgdGV4dCBjb2RlIHBh
dGguCi1Db21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVuOjpDb21wbGV4VGV4dFJ1
bihjb25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgc3Ry
aW5nTG9jYXRpb24sIHVuc2lnbmVkIHN0cmluZ0xlbmd0aCwgdW5zaWduZWQgaW5kZXhCZWdpbiwg
dW5zaWduZWQgaW5kZXhFbmQsIGJvb2wgbHRyKQotICAgIDogbV9mb250KGZvbnQpCi0gICAgLCBt
X2NoYXJhY3RlcnMoY2hhcmFjdGVycykKLSAgICAsIG1fc3RyaW5nTGVuZ3RoKHN0cmluZ0xlbmd0
aCkKLSAgICAsIG1faW5kZXhCZWdpbihpbmRleEJlZ2luKQotICAgICwgbV9pbmRleEVuZChpbmRl
eEVuZCkKLSAgICAsIG1fc3RyaW5nTG9jYXRpb24oc3RyaW5nTG9jYXRpb24pCi0gICAgLCBtX2lz
TFRSKGx0cikKLXsKLSAgICBhdXRvIHJ1bkxlbmd0aEluQ29kZVVuaXRzID0gbV9pbmRleEVuZCAt
IG1faW5kZXhCZWdpbjsKLSAgICBtX2NvcmVUZXh0SW5kaWNlcy5yZXNlcnZlSW5pdGlhbENhcGFj
aXR5KHJ1bkxlbmd0aEluQ29kZVVuaXRzKTsKLSAgICB1bnNpZ25lZCByID0gbV9pbmRleEJlZ2lu
OwotICAgIHdoaWxlIChyIDwgbV9pbmRleEVuZCkgewotICAgICAgICBtX2NvcmVUZXh0SW5kaWNl
cy51bmNoZWNrZWRBcHBlbmQocik7Ci0gICAgICAgIFVDaGFyMzIgY2hhcmFjdGVyOwotICAgICAg
ICBVMTZfTkVYVChtX2NoYXJhY3RlcnMsIHIsIG1fc3RyaW5nTGVuZ3RoLCBjaGFyYWN0ZXIpOwot
ICAgIH0KLSAgICBtX2dseXBoQ291bnQgPSBtX2NvcmVUZXh0SW5kaWNlcy5zaXplKCk7Ci0gICAg
aWYgKCFsdHIpIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCByID0gMCwgZW5kID0gbV9nbHlwaENv
dW50IC0gMTsgciA8IG1fZ2x5cGhDb3VudCAvIDI7ICsrciwgLS1lbmQpCi0gICAgICAgICAgICBz
dGQ6OnN3YXAobV9jb3JlVGV4dEluZGljZXNbcl0sIG1fY29yZVRleHRJbmRpY2VzW2VuZF0pOwot
ICAgIH0KLQotICAgIC8vIFN5bnRoZXNpemUgYSBydW4gb2YgbWlzc2luZyBnbHlwaHMuCi0gICAg
bV9nbHlwaHMuZmlsbCgwLCBtX2dseXBoQ291bnQpOwotICAgIG1fYmFzZUFkdmFuY2VzLmZpbGwo
RmxvYXRTaXplKG1fZm9udC53aWR0aEZvckdseXBoKDApLCAwKSwgbV9nbHlwaENvdW50KTsKLX0K
LQotCi1Db21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVuOjpDb21wbGV4VGV4dFJ1
bihjb25zdCBWZWN0b3I8RmxvYXRTaXplPiYgYWR2YW5jZXMsIGNvbnN0IFZlY3RvcjxGbG9hdFBv
aW50PiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPEdseXBoPiYgZ2x5cGhzLCBjb25zdCBWZWN0b3I8
dW5zaWduZWQ+JiBzdHJpbmdJbmRpY2VzLCBGbG9hdFNpemUgaW5pdGlhbEFkdmFuY2UsIGNvbnN0
IEZvbnQmIGZvbnQsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBzdHJpbmdMb2Nh
dGlvbiwgdW5zaWduZWQgc3RyaW5nTGVuZ3RoLCB1bnNpZ25lZCBpbmRleEJlZ2luLCB1bnNpZ25l
ZCBpbmRleEVuZCwgYm9vbCBsdHIpCi0gICAgOiBtX2Jhc2VBZHZhbmNlcyhhZHZhbmNlcykKLSAg
ICAsIG1fZ2x5cGhPcmlnaW5zKG9yaWdpbnMpCi0gICAgLCBtX2dseXBocyhnbHlwaHMpCi0gICAg
LCBtX2NvcmVUZXh0SW5kaWNlcyhzdHJpbmdJbmRpY2VzKQotICAgICwgbV9pbml0aWFsQWR2YW5j
ZShpbml0aWFsQWR2YW5jZSkKLSAgICAsIG1fZm9udChmb250KQotICAgICwgbV9jaGFyYWN0ZXJz
KGNoYXJhY3RlcnMpCi0gICAgLCBtX3N0cmluZ0xlbmd0aChzdHJpbmdMZW5ndGgpCi0gICAgLCBt
X2luZGV4QmVnaW4oaW5kZXhCZWdpbikKLSAgICAsIG1faW5kZXhFbmQoaW5kZXhFbmQpCi0gICAg
LCBtX2dseXBoQ291bnQoZ2x5cGhzLnNpemUoKSkKLSAgICAsIG1fc3RyaW5nTG9jYXRpb24oc3Ry
aW5nTG9jYXRpb24pCi0gICAgLCBtX2lzTFRSKGx0cikKLXsKLX0KLQogc3RydWN0IFByb3ZpZGVy
SW5mbyB7CiAgICAgY29uc3QgVUNoYXIqIGNwOwogICAgIHVuc2lnbmVkIGxlbmd0aDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db21wbGV4VGV4dENv
bnRyb2xsZXJEaXJlY3RXcml0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vQ29tcGxleFRleHRDb250cm9sbGVyRGlyZWN0V3JpdGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5
N2Y5YzIwNGQxYzY1MDc4YWQ3NjJlZmYzYmYwNmM2MWI4ZGIxYjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vQ29tcGxleFRleHRDb250cm9s
bGVyRGlyZWN0V3JpdGUuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNv
bXBsZXhUZXh0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQ29t
cGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVycyhj
b25zdCBVQ2hhciosIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgRm9udCopCit7CisgICAgLy8g
RklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAK
aW5kZXggMjFkMzJlZGJmOTU4ODAxMjk5OTBmYTU1YzhlOTY0ZmU0NDAzNzkxMi4uMTIwZTUwMTEy
NDlhNmFmMWNiMzFjM2I5NDg4YTM0NTgyOGQ0ZjE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcApAQCAtOTEsMTcgKzkxLDYgQEAgZmxv
YXQgRm9udENhc2NhZGU6OmdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQoY29uc3Qg
VGV4dFJ1biYgcnVuLCB1bnNpZ24KICAgICByZXR1cm4gYmVmb3JlV2lkdGg7CiB9CiAKLXZvaWQg
Rm9udENhc2NhZGU6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFy
aywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKSBj
b25zdAotewotICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwotICAgIGZsb2F0IGluaXRpYWxB
ZHZhbmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRv
LCBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKLQotICAgIGlmIChnbHlwaEJ1ZmZlci5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRl
eHQsIGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZh
bmNlLCBwb2ludC55KCkpKTsKLX0KLQogZmxvYXQgRm9udENhc2NhZGU6OmZsb2F0V2lkdGhGb3JD
b21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgRm9udCo+KiBmYWxs
YmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIFVu
aXNjcmliZUNvbnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDY1NGZh
ZGUxNjg1NWMzNTVlNmMyNGFjYTIyNTcyZGM5NWM5N2E4ZTcuLjM5ZDRlYTg3MTkzZjZiOTJmN2Jm
MGFlNTM2YzhlMTBlZjdjMzkyMzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wMi0wNyAgTXlsZXMgQy4gTWF4
ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIFtHVEtdIFtFRkxd
IENvbXBpbGUgKGJ1dCBkb24ndCB1c2UsIHlldCkgdGhlIHBsYXRmb3JtLWluZGVwZW5kZW50IHBp
ZWNlIG9mIENvbXBsZXhUZXh0Q29udHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3OTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIENvbXBsZXhUZXh0Q29udHJvbGxlciBBUEkgdGVz
dHMgb24gdGhlIFdpbiBhbmQgR1RLIHBvcnRzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2luLmNt
YWtlOgorCiAyMDE3LTAyLTA2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnku
Y29tPgogCiAgICAgICAgIFtHVEtdIGpoYnVpbGQgZmFpbHM6IG1lc2EtMTEuMC42LnRhci54ejog
NDA0IE5vdCBGb3VuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdU
Sy5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggY2Zm
OTY3NjVhZTk3MzVmZTVkZTZkODhkOWNjMmQwNzVhMzQ5NWE2Ni4uZmZjNzJmMjkxMTEyNjA4Yjc4
OTQxZDY2YjFjNjRkNGU2NzVmYTJlMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNt
YWtlCkBAIC0xMzEsNiArMTMxLDcgQEAgYWRkX2V4ZWN1dGFibGUoVGVzdFdlYkNvcmUKICAgICAk
e3Rlc3RfbWFpbl9TT1VSQ0VTfQogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzQ29udHJv
bGxlci5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0NTU1BhcnNl
ci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0
Q29udHJvbGxlci5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0Zp
bGVTeXN0ZW0uY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9Hcmlk
UG9zaXRpb24uY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9IVE1M
UGFyc2VySWRpb21zLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bVdpbi5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXgg
MTk0Y2E4ZmYzNGFmZDBiYjE2Y2IzNzdmNDc3YTRmMDJhNDY0MTg5Yy4uN2IxMDE5YzNlNDVhNDdl
YjcxMzNjZjNiZjM3NDhlZTYyMjZmMTM0OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2lu
LmNtYWtlCkBAIC00Niw2ICs0Niw3IEBAIHNldChUZXN0V2ViQ29yZUxpYl9TT1VSQ0VTCiAgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHNDb250cm9sbGVyLmNwcAogICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmNwcAogICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKyAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAK
ICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0NTU1BhcnNlci5jcHAKICAg
ICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0Zsb2F0UmVjdC5jcHAKICAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0Zsb2F0UG9pbnQuY3BwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300796</attachid>
            <date>2017-02-07 01:54:17 -0800</date>
            <delta_ts>2017-02-07 10:33:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167927-20170207015154.patch</filename>
            <type>text/plain</type>
            <size>26959</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExNzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI5MmM3MmU4ZGVjODRj
ZjgzYWM4NGJmMDc0MWI4MzZjOGU2ZmNmYi4uMmVkMmM0ODViNTQzODczNTRhYTk2ZmE0ODg2OTFl
MWNiMjdkMmZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE3LTAyLTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl0gW0dU
S10gW0VGTF0gQ29tcGlsZSAoYnV0IGRvbid0IHVzZSwgeWV0KSB0aGUgcGxhdGZvcm0taW5kZXBl
bmRlbnQgcGllY2Ugb2YgQ29tcGxleFRleHRDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc5MjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHNpbXBseSBtb3ZlcyBzb21l
IGZ1bmN0aW9ucyBhcm91bmQgdG8gZW5hYmxlIHRoZSBXaW4sIEdUSywgYW5kIEVGTCBwb3J0cyB0
byBjb21waWxlIHRoZQorICAgICAgICBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwaWVjZXMgb2YgQ29t
cGxleFRleHRDb250cm9sbGVyLiBUaG9zZSBwYXJ0cyBvZiBDb21wbGV4VGV4dENvbnRyb2xsZXIg
aGF2ZQorICAgICAgICBzb21lIGRlcGVuZGVuY2llcyB3aGljaCB3ZXJlIHByZXZpb3VzbHkgb25s
eSBhdmFpbGFibGUgb24gdGhlIENvY29hIHBvcnRzOyBob3dldmVyLCB0aG9zZQorICAgICAgICBk
ZXBlbmRlbmNpZXMgYXJlIGVhc2lseSBjcmVhdGVkIG9yIG1vdmVkIGZyb20gZWxzZXdoZXJlLiBU
aGUgbmV4dCBzdGVwIGlzIHRvIHBvcHVsYXRlIHRoZQorICAgICAgICBDb21wbGV4VGV4dENvbnRy
b2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJzKCkgZnVuY3Rpb24gZm9y
IERpcmVjdFdyaXRlIGFuZCBIYXJmQnV6ei4KKyAgICAgICAgT25jZSB0aGF0IGlzIGRvbmUsIFVu
aXNjcmliZUNvbnRyb2xsZXIgYW5kIEhhcmZCdXp6U2hhcGVyIGNhbiBiZSBkZWxldGVkLgorCisg
ICAgICAgIEFkZHMgQ29tcGxleFRleHRDb250cm9sbGVyIFRlc3RXZWJLaXRBUEkgdGVzdHMgdG8g
dGhlIFdpbiBhbmQgR1RLIHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEV2ZXJ5
b25lIGNhbiBjb21waWxlIHRoZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwaWVjZSBvZiBDb21wbGV4
VGV4dENvbnRyb2xsZXIuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZCB0aGUgSGFy
ZkJ1enotc3BlY2lmaWMgcGllY2UuCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERpdHRv
LgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOiBBZGQgdGhlIERpcmVjdFdyaXRlLXNwZWNp
ZmljIHBpZWNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3Io
KSk6IENvbXBsZXhUZXh0Q29udHJvbGxlciBzaG91bGRuJ3QgYmUgZW5hYmxlZCB5ZXQgZm9yIFdp
biwKKyAgICAgICAgR1RLLCBvciBFRkwuCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6
Y3JlYXRlTGF5b3V0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6d2lk
dGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29t
cGxleFRleHRSdW46OkNvbXBsZXhUZXh0UnVuKTogTW92ZWQgc2hhcmVkIGNvZGUgdG8gdGhlIHNo
YXJlZAorICAgICAgICBmaWxlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6bm9TeW50aGVzaXphYmxlRmVhdHVyZXNGb250KTog
RGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3Igb3RoZXIgcG9ydHMuCisgICAgICAgIChXZWJDb3Jl
OjpGb250Ojp2YXJpYW50Q2Fwc1N1cHBvcnRzQ2hhcmFjdGVyRm9yU3ludGhlc2lzKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OmRyYXdFbXBoYXNpc01hcmtz
Rm9yQ29tcGxleFRleHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYXNjYWRlOjpj
cmVhdGVMYXlvdXQpOiBEZWxldGVkLiBNb3ZlZCB0byBDb21wbGV4VGV4dENvbnRyb2xsZXIuCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3IoKSk6IERlbGV0ZWQu
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6IGZvbnRG
b3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZSgpIHNob3VsZCBleGlzdCBvbiBhbGwgcG9ydHMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZHJhd0VtcGhhc2lzTWFya3NGb3JD
b21wbGV4VGV4dCk6IERlbGV0ZWQuIFNoYXJlZCBhbW9uZyBhbGwgcG9ydHMuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2NhZGVDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDYXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KTogRGVs
ZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxl
eFRleHRDb250cm9sbGVySGFyZkJ1enouY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMp
OiBFbXB0eSBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBIYXJmQnV6ei1zcGVjaWZpYyBwaWVj
ZSBvZiBDb21wbGV4VGV4dENvbnRyb2xsZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOiBNb3ZlZCBjb25zdHJ1Y3RvcnMg
dG8gc2hhcmVkIGZpbGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbXBsZXhU
ZXh0Q29udHJvbGxlckRpcmVjdFdyaXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJz
KTogRW1wdHkgaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgRGlyZWN0IFdyaXRlLXNwZWNpZmlj
IHBpZWNlIG9mIENvbXBsZXhUZXh0Q29udHJvbGxlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZHJh
d0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dCk6IERlbGV0ZWQuIFNoYXJlZCBhbW9uZyBhbGwg
cG9ydHMuCisKIDIwMTctMDItMDcgIFJvbWFpbiBCZWxsZXNzb3J0ICA8cm9tYWluLmJlbGxlc3Nv
cnRAY3JmLmNhbm9uLmZyPgogCiAgICAgICAgIFtSZWFkYWJsZSBTdHJlYW1zIEFQSV0gSW1wbGVt
ZW50IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xsZXIgZW5xdWV1ZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDViOTkxZTcwZTlkYTg2YTFkMzU0ZDM2NGUzZGVhMTRmNTliY2ZhNTYuLmM3ZjRi
ZTA4ODkxNDc0ZTMxNmI1MGI0MzAzNzllMzY4YjM2ZjIwMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CkBAIC0yMTY2LDYgKzIxNjYsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL0V4dGVuZGVkQ29sb3IuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4
IDFmMGUxMDM1YWQ0YWQyZTFlM2YwYjE3MjVhMmFjZWNlZTNjODBjOTkuLjUwYWI3MjM2NzBmNTg1
OGQyNGE1YzZjMGZmMDVlMjYxYmExM2VmZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBA
IC0xMzgsNiArMTM4LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3RyZWFtZXJDYWlyby5jcHAKIAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNw
cAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZS5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6ekZhY2VDYWlyby5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNoYXBlci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1H
VEsuY21ha2UKaW5kZXggYzBiY2QyYTQ4ZWE3MTk2N2IxMjBhNGUwNGYxZTZhOWU3NDY4NjdlNS4u
YTdjZWViOGRiYzczNmVmYzBmZDg5OWU2ZGYyMjZiZGYxZmJkNGMyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1HVEsuY21ha2UKQEAgLTExOSw2ICsxMTksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJD
RVMKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJv
LmNwcAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9s
bGVySGFyZkJ1enouY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpG
YWNlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJv
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW4uY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCBmZDQ4Y2MxNzhhMzUxNTI4MjFkMmFmMWQwNDBh
NDhiNWZlMDZlOWZjLi4zYjViNDBiMzlkMDExZWYzYTA1MmRhODc1NzQ0MGJjNTg0OGMwMTA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtODYsNiArODYsNyBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVV0
aWxpdGllcy5jcHAKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db2xvckRpcmVjdDJELmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db21wbGV4VGV4dENvbnRyb2xsZXJEaXJlY3RX
cml0ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRElCUGl4ZWxEYXRhLmNwcAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9GbG9hdFBvaW50RGlyZWN0MkQuY3BwCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0Zsb2F0UmVjdERpcmVjdDJELmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAK
aW5kZXggZGQ5ZjNjYWNkYzM0YjA0YTQxODFmN2IyOTAwN2I1ODM2ODNiZGNjNy4uNzdhOGJiNzY3
YTIzZmJiZDdkYzZjMzg5YWFkMmQ1YjFiZTdjOTllYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCkBA
IC05MiwxOSArOTIsMzkgQEAgcHJpdmF0ZToKIAogdm9pZCBUZXh0TGF5b3V0RGVsZXRlcjo6b3Bl
cmF0b3IoKShUZXh0TGF5b3V0KiBsYXlvdXQpIGNvbnN0CiB7CisjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgZGVsZXRlIGxheW91dDsKKyNlbHNlCisgICAgQVNTRVJUX1VOVVNFRChsYXlvdXQsICFs
YXlvdXQpOworI2VuZGlmCiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxUZXh0TGF5b3V0LCBUZXh0TGF5
b3V0RGVsZXRlcj4gRm9udENhc2NhZGU6OmNyZWF0ZUxheW91dChSZW5kZXJUZXh0JiB0ZXh0LCBm
bG9hdCB4UG9zLCBib29sIGNvbGxhcHNlV2hpdGVTcGFjZSkgY29uc3QKIHsKKyNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBpZiAoIWNvbGxhcHNlV2hpdGVTcGFjZSB8fCAhVGV4dExheW91dDo6aXNO
ZWVkZWQodGV4dCwgKnRoaXMpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPFRleHRMYXlvdXQsIFRleHRMYXlvdXREZWxldGVyPihuZXcgVGV4dExh
eW91dCh0ZXh0LCAqdGhpcywgeFBvcykpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odGV4dCk7
CisgICAgVU5VU0VEX1BBUkFNKHhQb3MpOworICAgIFVOVVNFRF9QQVJBTShjb2xsYXBzZVdoaXRl
U3BhY2UpOworICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCiB9CiAKIGZsb2F0IEZvbnRDYXNj
YWRlOjp3aWR0aChUZXh0TGF5b3V0JiBsYXlvdXQsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxl
biwgSGFzaFNldDxjb25zdCBGb250Kj4qIGZhbGxiYWNrRm9udHMpCiB7CisjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgcmV0dXJuIGxheW91dC53aWR0aChmcm9tLCBsZW4sIGZhbGxiYWNrRm9udHMp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5b3V0KTsKKyAgICBVTlVTRURfUEFSQU0oZnJv
bSk7CisgICAgVU5VU0VEX1BBUkFNKGxlbik7CisgICAgVU5VU0VEX1BBUkFNKGZhbGxiYWNrRm9u
dHMpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiAwOworI2VuZGlmCiB9
CiAKIHZvaWQgQ29tcGxleFRleHRDb250cm9sbGVyOjpjb21wdXRlRXhwYW5zaW9uT3Bwb3J0dW5p
dHkoKQpAQCAtODMwLDQgKzg1MCw1MiBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRq
dXN0R2x5cGhzQW5kQWR2YW5jZXMoKQogICAgIG1fdG90YWxXaWR0aCArPSB3aWR0aFNpbmNlTGFz
dENvbW1pdDsKIH0KIAorLy8gTWlzc2luZyBnbHlwaHMgcnVuIGNvbnN0cnVjdG9yLiBDb3JlIFRl
eHQgd2lsbCBub3QgZ2VuZXJhdGUgYSBydW4gb2YgbWlzc2luZyBnbHlwaHMsIGluc3RlYWQgZmFs
bGluZyBiYWNrIG9uCisvLyBnbHlwaHMgZnJvbSBMYXN0UmVzb3J0LiBXZSB3YW50IHRvIHVzZSB0
aGUgcHJpbWFyeSBmb250J3MgbWlzc2luZyBnbHlwaCBpbiBvcmRlciB0byBtYXRjaCB0aGUgZmFz
dCB0ZXh0IGNvZGUgcGF0aC4KK0NvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRSdW46
OkNvbXBsZXhUZXh0UnVuKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
LCB1bnNpZ25lZCBzdHJpbmdMb2NhdGlvbiwgdW5zaWduZWQgc3RyaW5nTGVuZ3RoLCB1bnNpZ25l
ZCBpbmRleEJlZ2luLCB1bnNpZ25lZCBpbmRleEVuZCwgYm9vbCBsdHIpCisgICAgOiBtX2ZvbnQo
Zm9udCkKKyAgICAsIG1fY2hhcmFjdGVycyhjaGFyYWN0ZXJzKQorICAgICwgbV9zdHJpbmdMZW5n
dGgoc3RyaW5nTGVuZ3RoKQorICAgICwgbV9pbmRleEJlZ2luKGluZGV4QmVnaW4pCisgICAgLCBt
X2luZGV4RW5kKGluZGV4RW5kKQorICAgICwgbV9zdHJpbmdMb2NhdGlvbihzdHJpbmdMb2NhdGlv
bikKKyAgICAsIG1faXNMVFIobHRyKQoreworICAgIGF1dG8gcnVuTGVuZ3RoSW5Db2RlVW5pdHMg
PSBtX2luZGV4RW5kIC0gbV9pbmRleEJlZ2luOworICAgIG1fY29yZVRleHRJbmRpY2VzLnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkocnVuTGVuZ3RoSW5Db2RlVW5pdHMpOworICAgIHVuc2lnbmVkIHIg
PSBtX2luZGV4QmVnaW47CisgICAgd2hpbGUgKHIgPCBtX2luZGV4RW5kKSB7CisgICAgICAgIG1f
Y29yZVRleHRJbmRpY2VzLnVuY2hlY2tlZEFwcGVuZChyKTsKKyAgICAgICAgVUNoYXIzMiBjaGFy
YWN0ZXI7CisgICAgICAgIFUxNl9ORVhUKG1fY2hhcmFjdGVycywgciwgbV9zdHJpbmdMZW5ndGgs
IGNoYXJhY3Rlcik7CisgICAgfQorICAgIG1fZ2x5cGhDb3VudCA9IG1fY29yZVRleHRJbmRpY2Vz
LnNpemUoKTsKKyAgICBpZiAoIWx0cikgeworICAgICAgICBmb3IgKHVuc2lnbmVkIHIgPSAwLCBl
bmQgPSBtX2dseXBoQ291bnQgLSAxOyByIDwgbV9nbHlwaENvdW50IC8gMjsgKytyLCAtLWVuZCkK
KyAgICAgICAgICAgIHN0ZDo6c3dhcChtX2NvcmVUZXh0SW5kaWNlc1tyXSwgbV9jb3JlVGV4dElu
ZGljZXNbZW5kXSk7CisgICAgfQorCisgICAgLy8gU3ludGhlc2l6ZSBhIHJ1biBvZiBtaXNzaW5n
IGdseXBocy4KKyAgICBtX2dseXBocy5maWxsKDAsIG1fZ2x5cGhDb3VudCk7CisgICAgbV9iYXNl
QWR2YW5jZXMuZmlsbChGbG9hdFNpemUobV9mb250LndpZHRoRm9yR2x5cGgoMCksIDApLCBtX2ds
eXBoQ291bnQpOworfQorCisKK0NvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxleFRleHRSdW46
OkNvbXBsZXhUZXh0UnVuKGNvbnN0IFZlY3RvcjxGbG9hdFNpemU+JiBhZHZhbmNlcywgY29uc3Qg
VmVjdG9yPEZsb2F0UG9pbnQ+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8R2x5cGg+JiBnbHlwaHMs
IGNvbnN0IFZlY3Rvcjx1bnNpZ25lZD4mIHN0cmluZ0luZGljZXMsIEZsb2F0U2l6ZSBpbml0aWFs
QWR2YW5jZSwgY29uc3QgRm9udCYgZm9udCwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIHN0cmluZ0xvY2F0aW9uLCB1bnNpZ25lZCBzdHJpbmdMZW5ndGgsIHVuc2lnbmVkIGluZGV4
QmVnaW4sIHVuc2lnbmVkIGluZGV4RW5kLCBib29sIGx0cikKKyAgICA6IG1fYmFzZUFkdmFuY2Vz
KGFkdmFuY2VzKQorICAgICwgbV9nbHlwaE9yaWdpbnMob3JpZ2lucykKKyAgICAsIG1fZ2x5cGhz
KGdseXBocykKKyAgICAsIG1fY29yZVRleHRJbmRpY2VzKHN0cmluZ0luZGljZXMpCisgICAgLCBt
X2luaXRpYWxBZHZhbmNlKGluaXRpYWxBZHZhbmNlKQorICAgICwgbV9mb250KGZvbnQpCisgICAg
LCBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykKKyAgICAsIG1fc3RyaW5nTGVuZ3RoKHN0cmluZ0xl
bmd0aCkKKyAgICAsIG1faW5kZXhCZWdpbihpbmRleEJlZ2luKQorICAgICwgbV9pbmRleEVuZChp
bmRleEVuZCkKKyAgICAsIG1fZ2x5cGhDb3VudChnbHlwaHMuc2l6ZSgpKQorICAgICwgbV9zdHJp
bmdMb2NhdGlvbihzdHJpbmdMb2NhdGlvbikKKyAgICAsIG1faXNMVFIobHRyKQoreworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCmluZGV4IDA5YWJhNTVjNGQyNTUw
ZTlhZjFiYmRhZTcyZGQ2MDY3MWVhNWI0YTUuLjE2OWQ4OTFiMjM5ODlmMGIxYTYwOWRjZjE1ZWEx
MTU5NmY0Nzg2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oCkBAIC0xOTUsNyArMTk1LDkgQEAgcHJpdmF0
ZToKICAgICBWZWN0b3I8dW5zaWduZWQsIDE2PiBtX3J1bkluZGljZXM7CiAgICAgVmVjdG9yPHVu
c2lnbmVkLCAxNj4gbV9nbHlwaENvdW50RnJvbVN0YXJ0VG9JbmRleDsKIAorI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIFZlY3RvcjxSZXRhaW5QdHI8Q1RMaW5lUmVmPj4gbV9jb3JlVGV4dExpbmVz
OworI2VuZGlmCiAKICAgICBWZWN0b3I8U3RyaW5nPiBtX3N0cmluZ3NGb3I4Qml0UnVuczsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAppbmRleCBjOWFjNGRkNjE3
ZGM1NzhjNGVlNDM5Mzc4ZjgyYTI2OWJiMTQ4MDU3Li4zMDcxYTljOWNjZWM1MTM0ODQ2OGEzYjYy
MzIxZWEwZTBlZTJiMjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmNwcApAQCAtMjkzLDYgKzI5Myw3IEBAIGNvbnN0IEZvbnQqIEZvbnQ6OnNtYWxsQ2Fwc0ZvbnQo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CiB9CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKKwogY29uc3QgRm9udCYgRm9udDo6bm9TeW50aGVzaXphYmxlRmVhdHVy
ZXNGb250KCkgY29uc3QKIHsKICAgICBpZiAoIW1fZGVyaXZlZEZvbnREYXRhKQpAQCAtMzAyLDYg
KzMwMywxNCBAQCBjb25zdCBGb250JiBGb250Ojpub1N5bnRoZXNpemFibGVGZWF0dXJlc0ZvbnQo
KSBjb25zdAogICAgIEFTU0VSVChtX2Rlcml2ZWRGb250RGF0YS0+bm9TeW50aGVzaXphYmxlRmVh
dHVyZXMgIT0gdGhpcyk7CiAgICAgcmV0dXJuICptX2Rlcml2ZWRGb250RGF0YS0+bm9TeW50aGVz
aXphYmxlRmVhdHVyZXM7CiB9CisKKyNlbHNlCisKK2NvbnN0IEZvbnQmIEZvbnQ6Om5vU3ludGhl
c2l6YWJsZUZlYXR1cmVzRm9udCgpIGNvbnN0Cit7CisgICAgcmV0dXJuICp0aGlzOworfQorCiAj
ZW5kaWYKIAogY29uc3QgRm9udCogRm9udDo6ZW1waGFzaXNNYXJrRm9udChjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikgY29uc3QKQEAgLTUwNSw0ICs1MTQsMTEgQEAgdm9p
ZCBGb250OjpyZW1vdmVGcm9tU3lzdGVtRmFsbGJhY2tDYWNoZSgpCiAgICAgfQogfQogCisjaWYg
IVBMQVRGT1JNKENPQ09BKQorYm9vbCBGb250Ojp2YXJpYW50Q2Fwc1N1cHBvcnRzQ2hhcmFjdGVy
Rm9yU3ludGhlc2lzKEZvbnRWYXJpYW50Q2FwcywgVUNoYXIzMikgY29uc3QKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCmluZGV4IDZhYzg2
Zjg2M2MxZWZjODY0MDY2ZWRiNjVjMzdjM2NhNTA5YTUwYWQuLmY3YmZkZmE1MTBkMGRkNTUyNzRj
MmFkZTRmMmIxMDNkODQxZGRkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKQEAgLTQzMSwyNSArNDMxLDYgQEAgR2x5cGhEYXRhIEZv
bnRDYXNjYWRlOjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiBjLCBib29sIG1pcnJvciwg
Rm9udFZhcmlhbnQKICAgICByZXR1cm4gbV9mb250cy0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGMs
IG1fZm9udERlc2NyaXB0aW9uLCB2YXJpYW50KTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkK
LQotc3RkOjp1bmlxdWVfcHRyPFRleHRMYXlvdXQsIFRleHRMYXlvdXREZWxldGVyPiBGb250Q2Fz
Y2FkZTo6Y3JlYXRlTGF5b3V0KFJlbmRlclRleHQmLCBmbG9hdCwgYm9vbCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbnVsbHB0cjsKLX0KLQotdm9pZCBUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3Io
KShUZXh0TGF5b3V0KikgY29uc3QKLXsKLX0KLQotZmxvYXQgRm9udENhc2NhZGU6OndpZHRoKFRl
eHRMYXlvdXQmLCB1bnNpZ25lZCwgdW5zaWduZWQsIEhhc2hTZXQ8Y29uc3QgRm9udCo+KikKLXsK
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmCi0K
IHN0YXRpYyBjb25zdCBjaGFyKiBmb250RmFtaWxpZXNXaXRoSW52YWxpZENoYXJXaWR0aFtdID0g
ewogICAgICJBbWVyaWNhbiBUeXBld3JpdGVyIiwKICAgICAiQXJpYWwgSGVicmV3IiwKQEAgLTE0
NjgsNSArMTQ0OSwzMCBAQCBpbnQgRm9udENhc2NhZGU6Om9mZnNldEZvclBvc2l0aW9uRm9yU2lt
cGxlVGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGZsb2F0IHgsIGJvbwogICAgIHJldHVybiBvZmZz
ZXQ7CiB9CiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCisvLyBGSVhNRTogVW5pZnkgdGhpcyB3aXRo
IHRoZSBtYWNPUyBhbmQgaU9TIGltcGxlbWVudGF0aW9uLgorY29uc3QgRm9udCogRm9udENhc2Nh
ZGU6OmZvbnRGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgc2l6ZV90IGxlbmd0aCkgY29uc3QKK3sKKyAgICBVQ2hhcjMyIGJhc2VDaGFyYWN0ZXI7
CisgICAgc2l6ZV90IGJhc2VDaGFyYWN0ZXJMZW5ndGggPSAwOworICAgIFUxNl9ORVhUKGNoYXJh
Y3RlcnMsIGJhc2VDaGFyYWN0ZXJMZW5ndGgsIGxlbmd0aCwgYmFzZUNoYXJhY3Rlcik7CisgICAg
R2x5cGhEYXRhIGJhc2VDaGFyYWN0ZXJHbHlwaERhdGEgPSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIo
YmFzZUNoYXJhY3RlciwgZmFsc2UsIE5vcm1hbFZhcmlhbnQpOworCisgICAgaWYgKCFiYXNlQ2hh
cmFjdGVyR2x5cGhEYXRhLmdseXBoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gYmFzZUNoYXJhY3RlckdseXBoRGF0YS5mb250OworfQorI2VuZGlmCisKK3ZvaWQgRm9udENh
c2NhZGU6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29u
c3QgRmxvYXRQb2ludCYgcG9pbnQsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKSBjb25zdAor
eworICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNl
ID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlw
aEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGds
eXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBw
b2ludC55KCkpKTsKK30KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmgKaW5kZXggYmM3YTExODdlYzYwMGNhYjVhMDUxNDNiMzllMDM1YTc2ODcx
ZDgyOC4uOTJkODc4NjIwNjA5ZTk5NjlmZjk1ZTViZGU3MzdlYTkzOTk3MGMyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCkBAIC0xODQsMTAg
KzE4NCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBGb250JiBwcmltYXJ5Rm9udCgpIGNvbnN0Owog
ICAgIGNvbnN0IEZvbnRSYW5nZXMmIGZhbGxiYWNrUmFuZ2VzQXQodW5zaWduZWQpIGNvbnN0Owog
ICAgIEdseXBoRGF0YSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiwgYm9vbCBtaXJyb3Is
IEZvbnRWYXJpYW50ID0gQXV0b1ZhcmlhbnQpIGNvbnN0OwotICAgIAotI2lmIFBMQVRGT1JNKENP
Q09BKQorCiAgICAgY29uc3QgRm9udCogZm9udEZvckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNl
KGNvbnN0IFVDaGFyKiwgc2l6ZV90IGxlbmd0aCkgY29uc3Q7Ci0jZW5kaWYKIAogICAgIHN0YXRp
YyBib29sIGlzQ0pLSWRlb2dyYXBoKFVDaGFyMzIpOwogICAgIHN0YXRpYyBib29sIGlzQ0pLSWRl
b2dyYXBoT3JTeW1ib2woVUNoYXIzMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCmluZGV4
IDA4YmFlMzgwODQ4ODQ1NGFkNzM4NjcyYzNlMjg4NDVjODRiZmQwMzMuLmNjMzdkN2Q1ODE0MTgz
ZjhhMWFjNmQ4NTQ5OWNjYjQ2NmEwNDg1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3Bw
CkBAIC01MiwxMSArNTIsNiBAQCBmbG9hdCBGb250Q2FzY2FkZTo6Z2V0R2x5cGhzQW5kQWR2YW5j
ZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIHVuc2lnbgogICAgIHJldHVybiAw
OwogfQogCi12b2lkIEZvbnRDYXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCYgLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICov
LCBjb25zdCBBdG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBv
aW50ICovLCB1bnNpZ25lZCAvKiBmcm9tICovLCB1bnNpZ25lZCAvKiB0byAqLykgY29uc3QKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiBib29sIEZvbnRDYXNjYWRlOjpjYW5SZXR1cm5G
YWxsYmFja0ZvbnRzRm9yQ29tcGxleFRleHQoKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2Fz
Y2FkZUNvY29hLm1tCmluZGV4IGFjYWIxMTNkMzg4N2Y2NmRiNjFmZmRhNDdkY2RmN2VkMWRhZTAz
YmQuLjgzNGY3MTQ0NDJkYTI0OWU3MWNhMmEwZDY0MmI5MThmZTlmYzEzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2Nh
ZGVDb2NvYS5tbQpAQCAtNTMxLDE3ICs1MzEsNiBAQCBmbG9hdCBGb250Q2FzY2FkZTo6Z2V0R2x5
cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIHVuc2lnbgog
ICAgIHJldHVybiBpbml0aWFsQWR2YW5jZTsKIH0KIAotdm9pZCBGb250Q2FzY2FkZTo6ZHJhd0Vt
cGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0
IFRleHRSdW4mIHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50
JiBwb2ludCwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pIGNvbnN0Ci17Ci0gICAgR2x5cGhC
dWZmZXIgZ2x5cGhCdWZmZXI7Ci0gICAgZmxvYXQgaW5pdGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNB
bmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JU
ZXh0RW1waGFzaXMpOwotCi0gICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZmZXIsIG1h
cmssIEZsb2F0UG9pbnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50LnkoKSkpOwot
fQotCiBmbG9hdCBGb250Q2FzY2FkZTo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRl
eHRSdW4mIHJ1biwgSGFzaFNldDxjb25zdCBGb250Kj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3Zl
cmZsb3cqIGdseXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgQ29tcGxleFRleHRDb250cm9sbGVy
IGNvbnRyb2xsZXIoKnRoaXMsIHJ1biwgdHJ1ZSwgZmFsbGJhY2tGb250cyk7CkBAIC01NjAsNiAr
NTQ5LDcgQEAgaW50IEZvbnRDYXNjYWRlOjpvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0
KGNvbnN0IFRleHRSdW4mIHJ1biwgZmxvYXQgeCwgYm8KICAgICByZXR1cm4gY29udHJvbGxlci5v
ZmZzZXRGb3JQb3NpdGlvbih4LCBpbmNsdWRlUGFydGlhbEdseXBocyk7CiB9CiAKKy8vIEZJWE1F
OiBVc2UgdGhpcyBvbiBhbGwgcG9ydHMuCiBjb25zdCBGb250KiBGb250Q2FzY2FkZTo6Zm9udEZv
ckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXpl
X3QgbGVuZ3RoKSBjb25zdAogewogICAgIFVDaGFyMzIgYmFzZUNoYXJhY3RlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0
Q29udHJvbGxlckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2hhcmZidXp6L0NvbXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
OTdmOWMyMDRkMWM2NTA3OGFkNzYyZWZmM2JmMDZjNjFiOGRiMWI5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRD
b250cm9sbGVySGFyZkJ1enouY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkNvbXBsZXhUZXh0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQg
Q29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVy
cyhjb25zdCBVQ2hhciosIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgRm9udCopCit7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29t
cGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KaW5kZXggMjRiZjI3
ZWNkNGFlZGI5YTA5ODFhMzIxYjE5ZjM5YmQwMTg0OTQzYS4uZTk1OWQyODgwMmFlZjk4YWY4OWI1
MjViMGI4Y2U1MDk0ZmU1MmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3Jl
VGV4dC5tbQpAQCAtMjMsNyArMjMsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQog
I2luY2x1ZGUgIkNvbXBsZXhUZXh0Q29udHJvbGxlci5oIgogCiAjaW5jbHVkZSAiQ29yZVRleHRT
UEkuaCIKQEAgLTE2NSw1NCArMTY0LDYgQEAgQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4
VGV4dFJ1bjo6Q29tcGxleFRleHRSdW4oQ1RSdW5SZWYgY3RSdW4sIGNvbnN0IEZvbnQKICAgICB9
CiB9CiAKLS8vIE1pc3NpbmcgZ2x5cGhzIHJ1biBjb25zdHJ1Y3Rvci4gQ29yZSBUZXh0IHdpbGwg
bm90IGdlbmVyYXRlIGEgcnVuIG9mIG1pc3NpbmcgZ2x5cGhzLCBpbnN0ZWFkIGZhbGxpbmcgYmFj
ayBvbgotLy8gZ2x5cGhzIGZyb20gTGFzdFJlc29ydC4gV2Ugd2FudCB0byB1c2UgdGhlIHByaW1h
cnkgZm9udCdzIG1pc3NpbmcgZ2x5cGggaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGZhc3QgdGV4dCBj
b2RlIHBhdGguCi1Db21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVuOjpDb21wbGV4
VGV4dFJ1bihjb25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWdu
ZWQgc3RyaW5nTG9jYXRpb24sIHVuc2lnbmVkIHN0cmluZ0xlbmd0aCwgdW5zaWduZWQgaW5kZXhC
ZWdpbiwgdW5zaWduZWQgaW5kZXhFbmQsIGJvb2wgbHRyKQotICAgIDogbV9mb250KGZvbnQpCi0g
ICAgLCBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykKLSAgICAsIG1fc3RyaW5nTGVuZ3RoKHN0cmlu
Z0xlbmd0aCkKLSAgICAsIG1faW5kZXhCZWdpbihpbmRleEJlZ2luKQotICAgICwgbV9pbmRleEVu
ZChpbmRleEVuZCkKLSAgICAsIG1fc3RyaW5nTG9jYXRpb24oc3RyaW5nTG9jYXRpb24pCi0gICAg
LCBtX2lzTFRSKGx0cikKLXsKLSAgICBhdXRvIHJ1bkxlbmd0aEluQ29kZVVuaXRzID0gbV9pbmRl
eEVuZCAtIG1faW5kZXhCZWdpbjsKLSAgICBtX2NvcmVUZXh0SW5kaWNlcy5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KHJ1bkxlbmd0aEluQ29kZVVuaXRzKTsKLSAgICB1bnNpZ25lZCByID0gbV9pbmRl
eEJlZ2luOwotICAgIHdoaWxlIChyIDwgbV9pbmRleEVuZCkgewotICAgICAgICBtX2NvcmVUZXh0
SW5kaWNlcy51bmNoZWNrZWRBcHBlbmQocik7Ci0gICAgICAgIFVDaGFyMzIgY2hhcmFjdGVyOwot
ICAgICAgICBVMTZfTkVYVChtX2NoYXJhY3RlcnMsIHIsIG1fc3RyaW5nTGVuZ3RoLCBjaGFyYWN0
ZXIpOwotICAgIH0KLSAgICBtX2dseXBoQ291bnQgPSBtX2NvcmVUZXh0SW5kaWNlcy5zaXplKCk7
Ci0gICAgaWYgKCFsdHIpIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCByID0gMCwgZW5kID0gbV9n
bHlwaENvdW50IC0gMTsgciA8IG1fZ2x5cGhDb3VudCAvIDI7ICsrciwgLS1lbmQpCi0gICAgICAg
ICAgICBzdGQ6OnN3YXAobV9jb3JlVGV4dEluZGljZXNbcl0sIG1fY29yZVRleHRJbmRpY2VzW2Vu
ZF0pOwotICAgIH0KLQotICAgIC8vIFN5bnRoZXNpemUgYSBydW4gb2YgbWlzc2luZyBnbHlwaHMu
Ci0gICAgbV9nbHlwaHMuZmlsbCgwLCBtX2dseXBoQ291bnQpOwotICAgIG1fYmFzZUFkdmFuY2Vz
LmZpbGwoRmxvYXRTaXplKG1fZm9udC53aWR0aEZvckdseXBoKDApLCAwKSwgbV9nbHlwaENvdW50
KTsKLX0KLQotCi1Db21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVuOjpDb21wbGV4
VGV4dFJ1bihjb25zdCBWZWN0b3I8RmxvYXRTaXplPiYgYWR2YW5jZXMsIGNvbnN0IFZlY3RvcjxG
bG9hdFBvaW50PiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPEdseXBoPiYgZ2x5cGhzLCBjb25zdCBW
ZWN0b3I8dW5zaWduZWQ+JiBzdHJpbmdJbmRpY2VzLCBGbG9hdFNpemUgaW5pdGlhbEFkdmFuY2Us
IGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBzdHJp
bmdMb2NhdGlvbiwgdW5zaWduZWQgc3RyaW5nTGVuZ3RoLCB1bnNpZ25lZCBpbmRleEJlZ2luLCB1
bnNpZ25lZCBpbmRleEVuZCwgYm9vbCBsdHIpCi0gICAgOiBtX2Jhc2VBZHZhbmNlcyhhZHZhbmNl
cykKLSAgICAsIG1fZ2x5cGhPcmlnaW5zKG9yaWdpbnMpCi0gICAgLCBtX2dseXBocyhnbHlwaHMp
Ci0gICAgLCBtX2NvcmVUZXh0SW5kaWNlcyhzdHJpbmdJbmRpY2VzKQotICAgICwgbV9pbml0aWFs
QWR2YW5jZShpbml0aWFsQWR2YW5jZSkKLSAgICAsIG1fZm9udChmb250KQotICAgICwgbV9jaGFy
YWN0ZXJzKGNoYXJhY3RlcnMpCi0gICAgLCBtX3N0cmluZ0xlbmd0aChzdHJpbmdMZW5ndGgpCi0g
ICAgLCBtX2luZGV4QmVnaW4oaW5kZXhCZWdpbikKLSAgICAsIG1faW5kZXhFbmQoaW5kZXhFbmQp
Ci0gICAgLCBtX2dseXBoQ291bnQoZ2x5cGhzLnNpemUoKSkKLSAgICAsIG1fc3RyaW5nTG9jYXRp
b24oc3RyaW5nTG9jYXRpb24pCi0gICAgLCBtX2lzTFRSKGx0cikKLXsKLX0KLQogc3RydWN0IFBy
b3ZpZGVySW5mbyB7CiAgICAgY29uc3QgVUNoYXIqIGNwOwogICAgIHVuc2lnbmVkIGxlbmd0aDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db21wbGV4
VGV4dENvbnRyb2xsZXJEaXJlY3RXcml0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93aW4vQ29tcGxleFRleHRDb250cm9sbGVyRGlyZWN0V3JpdGUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU5N2Y5YzIwNGQxYzY1MDc4YWQ3NjJlZmYzYmYwNmM2MWI4ZGIxYjkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vQ29tcGxleFRleHRD
b250cm9sbGVyRGlyZWN0V3JpdGUuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkNvbXBsZXhUZXh0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Zv
aWQgQ29tcGxleFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFj
dGVycyhjb25zdCBVQ2hhciosIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgRm9udCopCit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
Rm9udFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdp
bi5jcHAKaW5kZXggMjFkMzJlZGJmOTU4ODAxMjk5OTBmYTU1YzhlOTY0ZmU0NDAzNzkxMi4uMTIw
ZTUwMTEyNDlhNmFmMWNiMzFjM2I5NDg4YTM0NTgyOGQ0ZjE0NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcApAQCAtOTEsMTcgKzkxLDYg
QEAgZmxvYXQgRm9udENhc2NhZGU6OmdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQo
Y29uc3QgVGV4dFJ1biYgcnVuLCB1bnNpZ24KICAgICByZXR1cm4gYmVmb3JlV2lkdGg7CiB9CiAK
LXZvaWQgRm9udENhc2NhZGU6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbWFyaywgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVk
IHRvKSBjb25zdAotewotICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwotICAgIGZsb2F0IGlu
aXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZy
b20sIHRvLCBnbHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKLQotICAgIGlmIChnbHlwaEJ1
ZmZlci5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRyYXdFbXBoYXNpc01hcmtz
KGNvbnRleHQsIGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRp
YWxBZHZhbmNlLCBwb2ludC55KCkpKTsKLX0KLQogZmxvYXQgRm9udENhc2NhZGU6OmZsb2F0V2lk
dGhGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgRm9udCo+
KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewog
ICAgIFVuaXNjcmliZUNvbnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIGZhbGxiYWNrRm9u
dHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDY1NGZhZGUxNjg1NWMzNTVlNmMyNGFjYTIyNTcyZGM5NWM5N2E4ZTcuLjM5ZDRlYTg3MTkzZjZi
OTJmN2JmMGFlNTM2YzhlMTBlZjdjMzkyMzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wMi0wNyAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIFtHVEtd
IFtFRkxdIENvbXBpbGUgKGJ1dCBkb24ndCB1c2UsIHlldCkgdGhlIHBsYXRmb3JtLWluZGVwZW5k
ZW50IHBpZWNlIG9mIENvbXBsZXhUZXh0Q29udHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3OTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIENvbXBsZXhUZXh0Q29udHJvbGxlciBB
UEkgdGVzdHMgb24gdGhlIFdpbiBhbmQgR1RLIHBvcnRzLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
V2luLmNtYWtlOgorCiAyMDE3LTAyLTA2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlp
QHNvbnkuY29tPgogCiAgICAgICAgIFtHVEtdIGpoYnVpbGQgZmFpbHM6IG1lc2EtMTEuMC42LnRh
ci54ejogNDA0IE5vdCBGb3VuZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0
Zm9ybUdUSy5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKaW5k
ZXggY2ZmOTY3NjVhZTk3MzVmZTVkZTZkODhkOWNjMmQwNzVhMzQ5NWE2Ni4uZmZjNzJmMjkxMTEy
NjA4Yjc4OTQxZDY2YjFjNjRkNGU2NzVmYTJlMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3Jt
R1RLLmNtYWtlCkBAIC0xMzEsNiArMTMxLDcgQEAgYWRkX2V4ZWN1dGFibGUoVGVzdFdlYkNvcmUK
ICAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
Q29udHJvbGxlci5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0NT
U1BhcnNlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0NvbXBs
ZXhUZXh0Q29udHJvbGxlci5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJD
b3JlL0ZpbGVTeXN0ZW0uY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29y
ZS9HcmlkUG9zaXRpb24uY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29y
ZS9IVE1MUGFyc2VySWRpb21zLmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Q
bGF0Zm9ybVdpbi5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XaW4uY21ha2UK
aW5kZXggMTk0Y2E4ZmYzNGFmZDBiYjE2Y2IzNzdmNDc3YTRmMDJhNDY0MTg5Yy4uN2IxMDE5YzNl
NDVhNDdlYjcxMzNjZjNiZjM3NDhlZTYyMjZmMTM0OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRm
b3JtV2luLmNtYWtlCkBAIC00Niw2ICs0Niw3IEBAIHNldChUZXN0V2ViQ29yZUxpYl9TT1VSQ0VT
CiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHNDb250cm9sbGVyLmNwcAogICAgICR7VEVT
VFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvQWZmaW5lVHJhbnNmb3JtLmNwcAogICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKyAg
ICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxl
ci5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0NTU1BhcnNlci5j
cHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0Zsb2F0UmVjdC5jcHAK
ICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0Zsb2F0UG9pbnQuY3BwCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300819</attachid>
            <date>2017-02-07 10:33:29 -0800</date>
            <delta_ts>2017-02-07 11:01:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167927-20170207103105.patch</filename>
            <type>text/plain</type>
            <size>29615</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI1NmQ5Y2FkNWIzNDEw
NjUyYmVhY2I0NDA2NDA0M2I0ZmM2ZTJjNi4uYTM3NmFlYzM2MzBlNjc3NTU1YzQ5Mjk3ZGE4MjBl
MGZjZjM4ZWNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE3LTAyLTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl0gW0dU
S10gW0VGTF0gQ29tcGlsZSAoYnV0IGRvbid0IHVzZSwgeWV0KSB0aGUgcGxhdGZvcm0taW5kZXBl
bmRlbnQgcGllY2Ugb2YgQ29tcGxleFRleHRDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc5MjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHNpbXBseSBtb3ZlcyBzb21l
IGZ1bmN0aW9ucyBhcm91bmQgdG8gZW5hYmxlIHRoZSBXaW4sIEdUSywgYW5kIEVGTCBwb3J0cyB0
byBjb21waWxlIHRoZQorICAgICAgICBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwaWVjZXMgb2YgQ29t
cGxleFRleHRDb250cm9sbGVyLiBUaG9zZSBwYXJ0cyBvZiBDb21wbGV4VGV4dENvbnRyb2xsZXIg
aGF2ZQorICAgICAgICBzb21lIGRlcGVuZGVuY2llcyB3aGljaCB3ZXJlIHByZXZpb3VzbHkgb25s
eSBhdmFpbGFibGUgb24gdGhlIENvY29hIHBvcnRzOyBob3dldmVyLCB0aG9zZQorICAgICAgICBk
ZXBlbmRlbmNpZXMgYXJlIGVhc2lseSBjcmVhdGVkIG9yIG1vdmVkIGZyb20gZWxzZXdoZXJlLiBU
aGUgbmV4dCBzdGVwIGlzIHRvIHBvcHVsYXRlIHRoZQorICAgICAgICBDb21wbGV4VGV4dENvbnRy
b2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJzKCkgZnVuY3Rpb24gZm9y
IERpcmVjdFdyaXRlIGFuZCBIYXJmQnV6ei4KKyAgICAgICAgT25jZSB0aGF0IGlzIGRvbmUsIFVu
aXNjcmliZUNvbnRyb2xsZXIgYW5kIEhhcmZCdXp6U2hhcGVyIGNhbiBiZSBkZWxldGVkLgorCisg
ICAgICAgIEFkZHMgQ29tcGxleFRleHRDb250cm9sbGVyIFRlc3RXZWJLaXRBUEkgdGVzdHMgdG8g
dGhlIFdpbiBhbmQgR1RLIHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEV2ZXJ5
b25lIGNhbiBjb21waWxlIHRoZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwaWVjZSBvZiBDb21wbGV4
VGV4dENvbnRyb2xsZXIuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZCB0aGUgSGFy
ZkJ1enotc3BlY2lmaWMgcGllY2UuCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERpdHRv
LgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOiBBZGQgdGhlIERpcmVjdFdyaXRlLXNwZWNp
ZmljIHBpZWNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3Io
KSk6IENvbXBsZXhUZXh0Q29udHJvbGxlciBzaG91bGRuJ3QgYmUgZW5hYmxlZCB5ZXQgZm9yIFdp
biwKKyAgICAgICAgR1RLLCBvciBFRkwuCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6
Y3JlYXRlTGF5b3V0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6d2lk
dGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29t
cGxleFRleHRSdW46OkNvbXBsZXhUZXh0UnVuKTogTW92ZWQgc2hhcmVkIGNvZGUgdG8gdGhlIHNo
YXJlZAorICAgICAgICBmaWxlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6bm9TeW50aGVzaXphYmxlRmVhdHVyZXNGb250KTog
RGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3Igb3RoZXIgcG9ydHMuCisgICAgICAgIChXZWJDb3Jl
OjpGb250Ojp2YXJpYW50Q2Fwc1N1cHBvcnRzQ2hhcmFjdGVyRm9yU3ludGhlc2lzKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OmRyYXdFbXBoYXNpc01hcmtz
Rm9yQ29tcGxleFRleHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYXNjYWRlOjpj
cmVhdGVMYXlvdXQpOiBEZWxldGVkLiBNb3ZlZCB0byBDb21wbGV4VGV4dENvbnRyb2xsZXIuCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3IoKSk6IERlbGV0ZWQu
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6IGZvbnRG
b3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZSgpIHNob3VsZCBleGlzdCBvbiBhbGwgcG9ydHMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZHJhd0VtcGhhc2lzTWFya3NGb3JD
b21wbGV4VGV4dCk6IERlbGV0ZWQuIFNoYXJlZCBhbW9uZyBhbGwgcG9ydHMuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2NhZGVDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDYXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KTogRGVs
ZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxl
eFRleHRDb250cm9sbGVySGFyZkJ1enouY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMp
OiBFbXB0eSBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBIYXJmQnV6ei1zcGVjaWZpYyBwaWVj
ZSBvZiBDb21wbGV4VGV4dENvbnRyb2xsZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOiBNb3ZlZCBjb25zdHJ1Y3RvcnMg
dG8gc2hhcmVkIGZpbGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbXBsZXhU
ZXh0Q29udHJvbGxlckRpcmVjdFdyaXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJz
KTogRW1wdHkgaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgRGlyZWN0IFdyaXRlLXNwZWNpZmlj
IHBpZWNlIG9mIENvbXBsZXhUZXh0Q29udHJvbGxlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZHJh
d0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dCk6IERlbGV0ZWQuIFNoYXJlZCBhbW9uZyBhbGwg
cG9ydHMuCisKIDIwMTctMDItMDcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbWFudWFsIHJvbGwgb3V0IG9mIHIyMTE3NzcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNWI5OTFlNzBlOWRhODZhMWQzNTRkMzY0ZTNkZWExNGY1OWJj
ZmE1Ni4uYzdmNGJlMDg4OTE0NzRlMzE2YjUwYjQzMDM3OWUzNjhiMzZmMjAzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTIxNjYsNiArMjE2Niw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKIAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxl
ci5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwu
Y21ha2UKaW5kZXggMWYwZTEwMzVhZDRhZDJlMWUzZjBiMTcyNWEyYWNlY2VlM2M4MGM5OS4uNTBh
YjcyMzY3MGY1ODU4ZDI0YTVjNmMwZmYwNWUyNjFiYTEzZWZkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UKQEAgLTEzOCw2ICsxMzgsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
IAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVy
SGFyZkJ1enouY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNl
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNw
cAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBjMGJjZDJhNDhlYTcxOTY3YjEyMGE0ZTA0ZjFlNmE5
ZTc0Njg2N2U1Li5hN2NlZWI4ZGJjNzM2ZWZjMGZkODk5ZTZkZjIyNmJkZjFmYmQ0YzJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTE5LDYgKzExOSw3IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Db21wbGV4
VGV4dENvbnRyb2xsZXJIYXJmQnV6ei5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6
ei9IYXJmQnV6ekZhY2UuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1
enpGYWNlQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpT
aGFwZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGZkNDhjYzE3OGEzNTE1Mjgy
MWQyYWYxZDA0MGE0OGI1ZmUwNmU5ZmMuLjNiNWI0MGIzOWQwMTFlZjNhMDUyZGE4NzU3NDQwYmM1
ODQ4YzAxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC04Niw2ICs4Niw3IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBl
L09wZW5UeXBlVXRpbGl0aWVzLmNwcAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbG9y
RGlyZWN0MkQuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbXBsZXhUZXh0Q29udHJv
bGxlckRpcmVjdFdyaXRlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9ESUJQaXhlbERh
dGEuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zsb2F0UG9pbnREaXJlY3QyRC5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRmxvYXRSZWN0RGlyZWN0MkQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250
cm9sbGVyLmNwcAppbmRleCBkZDlmM2NhY2RjMzRiMDRhNDE4MWY3YjI5MDA3YjU4MzY4M2JkY2M3
Li4yMmRjMTI0MzRkYTNmMjhkMjBhY2M2OTZlNTlkYzJiNDRkYmMzOGU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHAKQEAgLTkyLDE5ICs5MiwzOSBAQCBwcml2YXRlOgogCiB2b2lkIFRleHRMYXlvdXRE
ZWxldGVyOjpvcGVyYXRvcigpKFRleHRMYXlvdXQqIGxheW91dCkgY29uc3QKIHsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBkZWxldGUgbGF5b3V0OworI2Vsc2UKKyAgICBBU1NFUlRfVU5VU0VE
KGxheW91dCwgIWxheW91dCk7CisjZW5kaWYKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFRleHRMYXlv
dXQsIFRleHRMYXlvdXREZWxldGVyPiBGb250Q2FzY2FkZTo6Y3JlYXRlTGF5b3V0KFJlbmRlclRl
eHQmIHRleHQsIGZsb2F0IHhQb3MsIGJvb2wgY29sbGFwc2VXaGl0ZVNwYWNlKSBjb25zdAogewor
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghY29sbGFwc2VXaGl0ZVNwYWNlIHx8ICFUZXh0
TGF5b3V0Ojppc05lZWRlZCh0ZXh0LCAqdGhpcykpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8VGV4dExheW91dCwgVGV4dExheW91dERlbGV0ZXI+
KG5ldyBUZXh0TGF5b3V0KHRleHQsICp0aGlzLCB4UG9zKSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTSh0ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oeFBvcyk7CisgICAgVU5VU0VEX1BBUkFNKGNv
bGxhcHNlV2hpdGVTcGFjZSk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKIH0KIAogZmxv
YXQgRm9udENhc2NhZGU6OndpZHRoKFRleHRMYXlvdXQmIGxheW91dCwgdW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgbGVuLCBIYXNoU2V0PGNvbnN0IEZvbnQqPiogZmFsbGJhY2tGb250cykKIHsKKyNp
ZiBQTEFURk9STShDT0NPQSkKICAgICByZXR1cm4gbGF5b3V0LndpZHRoKGZyb20sIGxlbiwgZmFs
bGJhY2tGb250cyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShsYXlvdXQpOworICAgIFVOVVNF
RF9QQVJBTShmcm9tKTsKKyAgICBVTlVTRURfUEFSQU0obGVuKTsKKyAgICBVTlVTRURfUEFSQU0o
ZmFsbGJhY2tGb250cyk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7
CisjZW5kaWYKIH0KIAogdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbXB1dGVFeHBhbnNp
b25PcHBvcnR1bml0eSgpCkBAIC03MjEsMTMgKzc0MSw2IEBAIHZvaWQgQ29tcGxleFRleHRDb250
cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNlcygpCiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBVQ2hhciBjaCA9ICooY3AgKyBjaGFyYWN0ZXJJbmRleCk7CiAgICAgICAgICAgICBib29s
IGxhc3RHbHlwaCA9IGxhc3RSdW4gJiYgaSArIDEgPT0gZ2x5cGhDb3VudDsKLSAgICAgICAgICAg
IFVDaGFyIG5leHRDaDsKLSAgICAgICAgICAgIGlmIChsYXN0R2x5cGgpCi0gICAgICAgICAgICAg
ICAgbmV4dENoID0gJyAnOwotICAgICAgICAgICAgZWxzZSBpZiAoaSArIDEgPCBnbHlwaENvdW50
KQotICAgICAgICAgICAgICAgIG5leHRDaCA9ICooY3AgKyBjb21wbGV4VGV4dFJ1bi5pbmRleEF0
KGkgKyAxKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbmV4dENoID0gKiht
X2NvbXBsZXhUZXh0UnVuc1tydW5JbmRleCArIDFdLT5jaGFyYWN0ZXJzKCkgKyBtX2NvbXBsZXhU
ZXh0UnVuc1tydW5JbmRleCArIDFdLT5pbmRleEF0KDApKTsKIAogICAgICAgICAgICAgYm9vbCB0
cmVhdEFzU3BhY2UgPSBGb250Q2FzY2FkZTo6dHJlYXRBc1NwYWNlKGNoKTsKICAgICAgICAgICAg
IENHR2x5cGggZ2x5cGggPSB0cmVhdEFzU3BhY2UgPyBmb250LnNwYWNlR2x5cGgoKSA6IGdseXBo
c1tpXTsKQEAgLTgzMCw0ICs4NDMsNTIgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFk
anVzdEdseXBoc0FuZEFkdmFuY2VzKCkKICAgICBtX3RvdGFsV2lkdGggKz0gd2lkdGhTaW5jZUxh
c3RDb21taXQ7CiB9CiAKKy8vIE1pc3NpbmcgZ2x5cGhzIHJ1biBjb25zdHJ1Y3Rvci4gQ29yZSBU
ZXh0IHdpbGwgbm90IGdlbmVyYXRlIGEgcnVuIG9mIG1pc3NpbmcgZ2x5cGhzLCBpbnN0ZWFkIGZh
bGxpbmcgYmFjayBvbgorLy8gZ2x5cGhzIGZyb20gTGFzdFJlc29ydC4gV2Ugd2FudCB0byB1c2Ug
dGhlIHByaW1hcnkgZm9udCdzIG1pc3NpbmcgZ2x5cGggaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGZh
c3QgdGV4dCBjb2RlIHBhdGguCitDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVu
OjpDb21wbGV4VGV4dFJ1bihjb25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVy
cywgdW5zaWduZWQgc3RyaW5nTG9jYXRpb24sIHVuc2lnbmVkIHN0cmluZ0xlbmd0aCwgdW5zaWdu
ZWQgaW5kZXhCZWdpbiwgdW5zaWduZWQgaW5kZXhFbmQsIGJvb2wgbHRyKQorICAgIDogbV9mb250
KGZvbnQpCisgICAgLCBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykKKyAgICAsIG1fc3RyaW5nTGVu
Z3RoKHN0cmluZ0xlbmd0aCkKKyAgICAsIG1faW5kZXhCZWdpbihpbmRleEJlZ2luKQorICAgICwg
bV9pbmRleEVuZChpbmRleEVuZCkKKyAgICAsIG1fc3RyaW5nTG9jYXRpb24oc3RyaW5nTG9jYXRp
b24pCisgICAgLCBtX2lzTFRSKGx0cikKK3sKKyAgICBhdXRvIHJ1bkxlbmd0aEluQ29kZVVuaXRz
ID0gbV9pbmRleEVuZCAtIG1faW5kZXhCZWdpbjsKKyAgICBtX2NvcmVUZXh0SW5kaWNlcy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KHJ1bkxlbmd0aEluQ29kZVVuaXRzKTsKKyAgICB1bnNpZ25lZCBy
ID0gbV9pbmRleEJlZ2luOworICAgIHdoaWxlIChyIDwgbV9pbmRleEVuZCkgeworICAgICAgICBt
X2NvcmVUZXh0SW5kaWNlcy51bmNoZWNrZWRBcHBlbmQocik7CisgICAgICAgIFVDaGFyMzIgY2hh
cmFjdGVyOworICAgICAgICBVMTZfTkVYVChtX2NoYXJhY3RlcnMsIHIsIG1fc3RyaW5nTGVuZ3Ro
LCBjaGFyYWN0ZXIpOworICAgIH0KKyAgICBtX2dseXBoQ291bnQgPSBtX2NvcmVUZXh0SW5kaWNl
cy5zaXplKCk7CisgICAgaWYgKCFsdHIpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCByID0gMCwg
ZW5kID0gbV9nbHlwaENvdW50IC0gMTsgciA8IG1fZ2x5cGhDb3VudCAvIDI7ICsrciwgLS1lbmQp
CisgICAgICAgICAgICBzdGQ6OnN3YXAobV9jb3JlVGV4dEluZGljZXNbcl0sIG1fY29yZVRleHRJ
bmRpY2VzW2VuZF0pOworICAgIH0KKworICAgIC8vIFN5bnRoZXNpemUgYSBydW4gb2YgbWlzc2lu
ZyBnbHlwaHMuCisgICAgbV9nbHlwaHMuZmlsbCgwLCBtX2dseXBoQ291bnQpOworICAgIG1fYmFz
ZUFkdmFuY2VzLmZpbGwoRmxvYXRTaXplKG1fZm9udC53aWR0aEZvckdseXBoKDApLCAwKSwgbV9n
bHlwaENvdW50KTsKK30KKworCitDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVu
OjpDb21wbGV4VGV4dFJ1bihjb25zdCBWZWN0b3I8RmxvYXRTaXplPiYgYWR2YW5jZXMsIGNvbnN0
IFZlY3RvcjxGbG9hdFBvaW50PiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPEdseXBoPiYgZ2x5cGhz
LCBjb25zdCBWZWN0b3I8dW5zaWduZWQ+JiBzdHJpbmdJbmRpY2VzLCBGbG9hdFNpemUgaW5pdGlh
bEFkdmFuY2UsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNp
Z25lZCBzdHJpbmdMb2NhdGlvbiwgdW5zaWduZWQgc3RyaW5nTGVuZ3RoLCB1bnNpZ25lZCBpbmRl
eEJlZ2luLCB1bnNpZ25lZCBpbmRleEVuZCwgYm9vbCBsdHIpCisgICAgOiBtX2Jhc2VBZHZhbmNl
cyhhZHZhbmNlcykKKyAgICAsIG1fZ2x5cGhPcmlnaW5zKG9yaWdpbnMpCisgICAgLCBtX2dseXBo
cyhnbHlwaHMpCisgICAgLCBtX2NvcmVUZXh0SW5kaWNlcyhzdHJpbmdJbmRpY2VzKQorICAgICwg
bV9pbml0aWFsQWR2YW5jZShpbml0aWFsQWR2YW5jZSkKKyAgICAsIG1fZm9udChmb250KQorICAg
ICwgbV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpCisgICAgLCBtX3N0cmluZ0xlbmd0aChzdHJpbmdM
ZW5ndGgpCisgICAgLCBtX2luZGV4QmVnaW4oaW5kZXhCZWdpbikKKyAgICAsIG1faW5kZXhFbmQo
aW5kZXhFbmQpCisgICAgLCBtX2dseXBoQ291bnQoZ2x5cGhzLnNpemUoKSkKKyAgICAsIG1fc3Ry
aW5nTG9jYXRpb24oc3RyaW5nTG9jYXRpb24pCisgICAgLCBtX2lzTFRSKGx0cikKK3sKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAppbmRleCAwOWFiYTU1YzRkMjU1
MGU5YWYxYmJkYWU3MmRkNjA2NzFlYTViNGE1Li4xNjlkODkxYjIzOTg5ZjBiMWE2MDlkY2YxNWVh
MTE1OTZmNDc4NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuaApAQCAtMTk1LDcgKzE5NSw5IEBAIHByaXZh
dGU6CiAgICAgVmVjdG9yPHVuc2lnbmVkLCAxNj4gbV9ydW5JbmRpY2VzOwogICAgIFZlY3Rvcjx1
bnNpZ25lZCwgMTY+IG1fZ2x5cGhDb3VudEZyb21TdGFydFRvSW5kZXg7CiAKKyNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBWZWN0b3I8UmV0YWluUHRyPENUTGluZVJlZj4+IG1fY29yZVRleHRMaW5l
czsKKyNlbmRpZgogCiAgICAgVmVjdG9yPFN0cmluZz4gbV9zdHJpbmdzRm9yOEJpdFJ1bnM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggYzlhYzRkZDYx
N2RjNTc4YzRlZTQzOTM3OGY4MmEyNjliYjE0ODA1Ny4uMzA3MWE5YzljY2VjNTEzNDg0NjhhM2I2
MjMyMWVhMGUwZWUyYjI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dC5jcHAKQEAgLTI5Myw2ICsyOTMsNyBAQCBjb25zdCBGb250KiBGb250OjpzbWFsbENhcHNGb250
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogfQogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCisKIGNvbnN0IEZvbnQmIEZvbnQ6Om5vU3ludGhlc2l6YWJsZUZlYXR1
cmVzRm9udCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2Rlcml2ZWRGb250RGF0YSkKQEAgLTMwMiw2
ICszMDMsMTQgQEAgY29uc3QgRm9udCYgRm9udDo6bm9TeW50aGVzaXphYmxlRmVhdHVyZXNGb250
KCkgY29uc3QKICAgICBBU1NFUlQobV9kZXJpdmVkRm9udERhdGEtPm5vU3ludGhlc2l6YWJsZUZl
YXR1cmVzICE9IHRoaXMpOwogICAgIHJldHVybiAqbV9kZXJpdmVkRm9udERhdGEtPm5vU3ludGhl
c2l6YWJsZUZlYXR1cmVzOwogfQorCisjZWxzZQorCitjb25zdCBGb250JiBGb250Ojpub1N5bnRo
ZXNpemFibGVGZWF0dXJlc0ZvbnQoKSBjb25zdAoreworICAgIHJldHVybiAqdGhpczsKK30KKwog
I2VuZGlmCiAKIGNvbnN0IEZvbnQqIEZvbnQ6OmVtcGhhc2lzTWFya0ZvbnQoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24pIGNvbnN0CkBAIC01MDUsNCArNTE0LDExIEBAIHZv
aWQgRm9udDo6cmVtb3ZlRnJvbVN5c3RlbUZhbGxiYWNrQ2FjaGUoKQogICAgIH0KIH0KIAorI2lm
ICFQTEFURk9STShDT0NPQSkKK2Jvb2wgRm9udDo6dmFyaWFudENhcHNTdXBwb3J0c0NoYXJhY3Rl
ckZvclN5bnRoZXNpcyhGb250VmFyaWFudENhcHMsIFVDaGFyMzIpIGNvbnN0Cit7CisgICAgcmV0
dXJuIGZhbHNlOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAppbmRleCA2YWM4
NmY4NjNjMWVmYzg2NDA2NmVkYjY1YzM3YzNjYTUwOWE1MGFkLi5mN2JmZGZhNTEwZDBkZDU1Mjc0
YzJhZGU0ZjJiMTAzZDg0MWRkZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FzY2FkZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCkBAIC00MzEsMjUgKzQzMSw2IEBAIEdseXBoRGF0YSBG
b250Q2FzY2FkZTo6Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFyMzIgYywgYm9vbCBtaXJyb3Is
IEZvbnRWYXJpYW50CiAgICAgcmV0dXJuIG1fZm9udHMtPmdseXBoRGF0YUZvckNoYXJhY3Rlcihj
LCBtX2ZvbnREZXNjcmlwdGlvbiwgdmFyaWFudCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oQ09DT0Ep
Ci0KLXN0ZDo6dW5pcXVlX3B0cjxUZXh0TGF5b3V0LCBUZXh0TGF5b3V0RGVsZXRlcj4gRm9udENh
c2NhZGU6OmNyZWF0ZUxheW91dChSZW5kZXJUZXh0JiwgZmxvYXQsIGJvb2wpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLXZvaWQgVGV4dExheW91dERlbGV0ZXI6Om9wZXJhdG9y
KCkoVGV4dExheW91dCopIGNvbnN0Ci17Ci19Ci0KLWZsb2F0IEZvbnRDYXNjYWRlOjp3aWR0aChU
ZXh0TGF5b3V0JiwgdW5zaWduZWQsIHVuc2lnbmVkLCBIYXNoU2V0PGNvbnN0IEZvbnQqPiopCi17
Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLSNlbmRpZgot
CiBzdGF0aWMgY29uc3QgY2hhciogZm9udEZhbWlsaWVzV2l0aEludmFsaWRDaGFyV2lkdGhbXSA9
IHsKICAgICAiQW1lcmljYW4gVHlwZXdyaXRlciIsCiAgICAgIkFyaWFsIEhlYnJldyIsCkBAIC0x
NDY4LDUgKzE0NDksMzAgQEAgaW50IEZvbnRDYXNjYWRlOjpvZmZzZXRGb3JQb3NpdGlvbkZvclNp
bXBsZVRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBmbG9hdCB4LCBib28KICAgICByZXR1cm4gb2Zm
c2V0OwogfQogCisjaWYgIVBMQVRGT1JNKENPQ09BKQorLy8gRklYTUU6IFVuaWZ5IHRoaXMgd2l0
aCB0aGUgbWFjT1MgYW5kIGlPUyBpbXBsZW1lbnRhdGlvbi4KK2NvbnN0IEZvbnQqIEZvbnRDYXNj
YWRlOjpmb250Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UoY29uc3QgVUNoYXIqIGNoYXJh
Y3RlcnMsIHNpemVfdCBsZW5ndGgpIGNvbnN0Cit7CisgICAgVUNoYXIzMiBiYXNlQ2hhcmFjdGVy
OworICAgIHNpemVfdCBiYXNlQ2hhcmFjdGVyTGVuZ3RoID0gMDsKKyAgICBVMTZfTkVYVChjaGFy
YWN0ZXJzLCBiYXNlQ2hhcmFjdGVyTGVuZ3RoLCBsZW5ndGgsIGJhc2VDaGFyYWN0ZXIpOworICAg
IEdseXBoRGF0YSBiYXNlQ2hhcmFjdGVyR2x5cGhEYXRhID0gZ2x5cGhEYXRhRm9yQ2hhcmFjdGVy
KGJhc2VDaGFyYWN0ZXIsIGZhbHNlLCBOb3JtYWxWYXJpYW50KTsKKworICAgIGlmICghYmFzZUNo
YXJhY3RlckdseXBoRGF0YS5nbHlwaCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0
dXJuIGJhc2VDaGFyYWN0ZXJHbHlwaERhdGEuZm9udDsKK30KKyNlbmRpZgorCit2b2lkIEZvbnRD
YXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJpbmcmIG1hcmssIGNv
bnN0IEZsb2F0UG9pbnQmIHBvaW50LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bykgY29uc3QK
K3sKKyAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKKyAgICBmbG9hdCBpbml0aWFsQWR2YW5j
ZSA9IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQocnVuLCBmcm9tLCB0bywgZ2x5
cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpcyk7CisKKyAgICBpZiAoZ2x5cGhCdWZmZXIuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBkcmF3RW1waGFzaXNNYXJrcyhjb250ZXh0LCBn
bHlwaEJ1ZmZlciwgbWFyaywgRmxvYXRQb2ludChwb2ludC54KCkgKyBpbml0aWFsQWR2YW5jZSwg
cG9pbnQueSgpKSk7Cit9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FzY2FkZS5oCmluZGV4IGJjN2ExMTg3ZWM2MDBjYWI1YTA1MTQzYjM5ZTAzNWE3Njg3
MWQ4MjguLjkyZDg3ODYyMDYwOWU5OTY5ZmY5NWU1YmRlNzM3ZWE5Mzk5NzBjMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaApAQCAtMTg0LDEw
ICsxODQsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgRm9udCYgcHJpbWFyeUZvbnQoKSBjb25zdDsK
ICAgICBjb25zdCBGb250UmFuZ2VzJiBmYWxsYmFja1Jhbmdlc0F0KHVuc2lnbmVkKSBjb25zdDsK
ICAgICBHbHlwaERhdGEgZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKFVDaGFyMzIsIGJvb2wgbWlycm9y
LCBGb250VmFyaWFudCA9IEF1dG9WYXJpYW50KSBjb25zdDsKLSAgICAKLSNpZiBQTEFURk9STShD
T0NPQSkKKwogICAgIGNvbnN0IEZvbnQqIGZvbnRGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5j
ZShjb25zdCBVQ2hhciosIHNpemVfdCBsZW5ndGgpIGNvbnN0OwotI2VuZGlmCiAKICAgICBzdGF0
aWMgYm9vbCBpc0NKS0lkZW9ncmFwaChVQ2hhcjMyKTsKICAgICBzdGF0aWMgYm9vbCBpc0NKS0lk
ZW9ncmFwaE9yU3ltYm9sKFVDaGFyMzIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAppbmRl
eCAwOGJhZTM4MDg0ODg0NTRhZDczODY3MmMzZTI4ODQ1Yzg0YmZkMDMzLi5jYzM3ZDdkNTgxNDE4
M2Y4YTFhYzZkODU0OTljY2I0NjZhMDQ4NWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNw
cApAQCAtNTIsMTEgKzUyLDYgQEAgZmxvYXQgRm9udENhc2NhZGU6OmdldEdseXBoc0FuZEFkdmFu
Y2VzRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCB1bnNpZ24KICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBGb250Q2FzY2FkZTo6ZHJhd0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4
dChHcmFwaGljc0NvbnRleHQmIC8qIGNvbnRleHQgKi8sIGNvbnN0IFRleHRSdW4mIC8qIHJ1biAq
LywgY29uc3QgQXRvbWljU3RyaW5nJiAvKiBtYXJrICovLCBjb25zdCBGbG9hdFBvaW50JiAvKiBw
b2ludCAqLywgdW5zaWduZWQgLyogZnJvbSAqLywgdW5zaWduZWQgLyogdG8gKi8pIGNvbnN0Ci17
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogYm9vbCBGb250Q2FzY2FkZTo6Y2FuUmV0dXJu
RmFsbGJhY2tGb250c0ZvckNvbXBsZXhUZXh0KCkKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FzY2Fk
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENh
c2NhZGVDb2NvYS5tbQppbmRleCBhY2FiMTEzZDM4ODdmNjZkYjYxZmZkYTQ3ZGNkZjdlZDFkYWUw
M2JkLi44MzRmNzE0NDQyZGEyNDllNzFjYTJhMGQ2NDJiOTE4ZmU5ZmMxMzY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FzY2FkZUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNj
YWRlQ29jb2EubW0KQEAgLTUzMSwxNyArNTMxLDYgQEAgZmxvYXQgRm9udENhc2NhZGU6OmdldEds
eXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCB1bnNpZ24K
ICAgICByZXR1cm4gaW5pdGlhbEFkdmFuY2U7CiB9CiAKLXZvaWQgRm9udENhc2NhZGU6OmRyYXdF
bXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKSBjb25zdAotewotICAgIEdseXBo
QnVmZmVyIGdseXBoQnVmZmVyOwotICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5cGhz
QW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlciwgRm9y
VGV4dEVtcGhhc2lzKTsKLQotICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVyLCBt
YXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkpKTsK
LX0KLQogZmxvYXQgRm9udENhc2NhZGU6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25zdCBU
ZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgRm9udCo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92
ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIENvbXBsZXhUZXh0Q29udHJvbGxl
ciBjb250cm9sbGVyKCp0aGlzLCBydW4sIHRydWUsIGZhbGxiYWNrRm9udHMpOwpAQCAtNTYwLDYg
KzU0OSw3IEBAIGludCBGb250Q2FzY2FkZTo6b2Zmc2V0Rm9yUG9zaXRpb25Gb3JDb21wbGV4VGV4
dChjb25zdCBUZXh0UnVuJiBydW4sIGZsb2F0IHgsIGJvCiAgICAgcmV0dXJuIGNvbnRyb2xsZXIu
b2Zmc2V0Rm9yUG9zaXRpb24oeCwgaW5jbHVkZVBhcnRpYWxHbHlwaHMpOwogfQogCisvLyBGSVhN
RTogVXNlIHRoaXMgb24gYWxsIHBvcnRzLgogY29uc3QgRm9udCogRm9udENhc2NhZGU6OmZvbnRG
b3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciogY2hhcmFjdGVycywgc2l6
ZV90IGxlbmd0aCkgY29uc3QKIHsKICAgICBVQ2hhcjMyIGJhc2VDaGFyYWN0ZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Db21wbGV4VGV4
dENvbnRyb2xsZXJIYXJmQnV6ei5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYXJmYnV6ei9Db21wbGV4VGV4dENvbnRyb2xsZXJIYXJmQnV6ei5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTk3ZjljMjA0ZDFjNjUwNzhhZDc2MmVmZjNiZjA2YzYxYjhkYjFiOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0
Q29udHJvbGxlckhhcmZCdXp6LmNwcApAQCAtMCwwICsxLDM2IEBACisvKgorKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJDb21wbGV4VGV4dENvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3Rl
cnMoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCwgdW5zaWduZWQsIGNvbnN0IEZvbnQqKQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Nv
bXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCmluZGV4IDI0YmYy
N2VjZDRhZWRiOWEwOTgxYTMyMWIxOWYzOWJkMDE4NDk0M2EuLmU5NTlkMjg4MDJhZWY5OGFmODli
NTI1YjBiOGNlNTA5NGZlNTJkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29y
ZVRleHQubW0KQEAgLTIzLDcgKzIzLDYgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0K
ICNpbmNsdWRlICJDb21wbGV4VGV4dENvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUgIkNvcmVUZXh0
U1BJLmgiCkBAIC0xNjUsNTQgKzE2NCw2IEBAIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29tcGxl
eFRleHRSdW46OkNvbXBsZXhUZXh0UnVuKENUUnVuUmVmIGN0UnVuLCBjb25zdCBGb250CiAgICAg
fQogfQogCi0vLyBNaXNzaW5nIGdseXBocyBydW4gY29uc3RydWN0b3IuIENvcmUgVGV4dCB3aWxs
IG5vdCBnZW5lcmF0ZSBhIHJ1biBvZiBtaXNzaW5nIGdseXBocywgaW5zdGVhZCBmYWxsaW5nIGJh
Y2sgb24KLS8vIGdseXBocyBmcm9tIExhc3RSZXNvcnQuIFdlIHdhbnQgdG8gdXNlIHRoZSBwcmlt
YXJ5IGZvbnQncyBtaXNzaW5nIGdseXBoIGluIG9yZGVyIHRvIG1hdGNoIHRoZSBmYXN0IHRleHQg
Y29kZSBwYXRoLgotQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1bjo6Q29tcGxl
eFRleHRSdW4oY29uc3QgRm9udCYgZm9udCwgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2ln
bmVkIHN0cmluZ0xvY2F0aW9uLCB1bnNpZ25lZCBzdHJpbmdMZW5ndGgsIHVuc2lnbmVkIGluZGV4
QmVnaW4sIHVuc2lnbmVkIGluZGV4RW5kLCBib29sIGx0cikKLSAgICA6IG1fZm9udChmb250KQot
ICAgICwgbV9jaGFyYWN0ZXJzKGNoYXJhY3RlcnMpCi0gICAgLCBtX3N0cmluZ0xlbmd0aChzdHJp
bmdMZW5ndGgpCi0gICAgLCBtX2luZGV4QmVnaW4oaW5kZXhCZWdpbikKLSAgICAsIG1faW5kZXhF
bmQoaW5kZXhFbmQpCi0gICAgLCBtX3N0cmluZ0xvY2F0aW9uKHN0cmluZ0xvY2F0aW9uKQotICAg
ICwgbV9pc0xUUihsdHIpCi17Ci0gICAgYXV0byBydW5MZW5ndGhJbkNvZGVVbml0cyA9IG1faW5k
ZXhFbmQgLSBtX2luZGV4QmVnaW47Ci0gICAgbV9jb3JlVGV4dEluZGljZXMucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShydW5MZW5ndGhJbkNvZGVVbml0cyk7Ci0gICAgdW5zaWduZWQgciA9IG1faW5k
ZXhCZWdpbjsKLSAgICB3aGlsZSAociA8IG1faW5kZXhFbmQpIHsKLSAgICAgICAgbV9jb3JlVGV4
dEluZGljZXMudW5jaGVja2VkQXBwZW5kKHIpOwotICAgICAgICBVQ2hhcjMyIGNoYXJhY3RlcjsK
LSAgICAgICAgVTE2X05FWFQobV9jaGFyYWN0ZXJzLCByLCBtX3N0cmluZ0xlbmd0aCwgY2hhcmFj
dGVyKTsKLSAgICB9Ci0gICAgbV9nbHlwaENvdW50ID0gbV9jb3JlVGV4dEluZGljZXMuc2l6ZSgp
OwotICAgIGlmICghbHRyKSB7Ci0gICAgICAgIGZvciAodW5zaWduZWQgciA9IDAsIGVuZCA9IG1f
Z2x5cGhDb3VudCAtIDE7IHIgPCBtX2dseXBoQ291bnQgLyAyOyArK3IsIC0tZW5kKQotICAgICAg
ICAgICAgc3RkOjpzd2FwKG1fY29yZVRleHRJbmRpY2VzW3JdLCBtX2NvcmVUZXh0SW5kaWNlc1tl
bmRdKTsKLSAgICB9Ci0KLSAgICAvLyBTeW50aGVzaXplIGEgcnVuIG9mIG1pc3NpbmcgZ2x5cGhz
LgotICAgIG1fZ2x5cGhzLmZpbGwoMCwgbV9nbHlwaENvdW50KTsKLSAgICBtX2Jhc2VBZHZhbmNl
cy5maWxsKEZsb2F0U2l6ZShtX2ZvbnQud2lkdGhGb3JHbHlwaCgwKSwgMCksIG1fZ2x5cGhDb3Vu
dCk7Ci19Ci0KLQotQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1bjo6Q29tcGxl
eFRleHRSdW4oY29uc3QgVmVjdG9yPEZsb2F0U2l6ZT4mIGFkdmFuY2VzLCBjb25zdCBWZWN0b3I8
RmxvYXRQb2ludD4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxHbHlwaD4mIGdseXBocywgY29uc3Qg
VmVjdG9yPHVuc2lnbmVkPiYgc3RyaW5nSW5kaWNlcywgRmxvYXRTaXplIGluaXRpYWxBZHZhbmNl
LCBjb25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgc3Ry
aW5nTG9jYXRpb24sIHVuc2lnbmVkIHN0cmluZ0xlbmd0aCwgdW5zaWduZWQgaW5kZXhCZWdpbiwg
dW5zaWduZWQgaW5kZXhFbmQsIGJvb2wgbHRyKQotICAgIDogbV9iYXNlQWR2YW5jZXMoYWR2YW5j
ZXMpCi0gICAgLCBtX2dseXBoT3JpZ2lucyhvcmlnaW5zKQotICAgICwgbV9nbHlwaHMoZ2x5cGhz
KQotICAgICwgbV9jb3JlVGV4dEluZGljZXMoc3RyaW5nSW5kaWNlcykKLSAgICAsIG1faW5pdGlh
bEFkdmFuY2UoaW5pdGlhbEFkdmFuY2UpCi0gICAgLCBtX2ZvbnQoZm9udCkKLSAgICAsIG1fY2hh
cmFjdGVycyhjaGFyYWN0ZXJzKQotICAgICwgbV9zdHJpbmdMZW5ndGgoc3RyaW5nTGVuZ3RoKQot
ICAgICwgbV9pbmRleEJlZ2luKGluZGV4QmVnaW4pCi0gICAgLCBtX2luZGV4RW5kKGluZGV4RW5k
KQotICAgICwgbV9nbHlwaENvdW50KGdseXBocy5zaXplKCkpCi0gICAgLCBtX3N0cmluZ0xvY2F0
aW9uKHN0cmluZ0xvY2F0aW9uKQotICAgICwgbV9pc0xUUihsdHIpCi17Ci19Ci0KIHN0cnVjdCBQ
cm92aWRlckluZm8gewogICAgIGNvbnN0IFVDaGFyKiBjcDsKICAgICB1bnNpZ25lZCBsZW5ndGg7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vQ29tcGxl
eFRleHRDb250cm9sbGVyRGlyZWN0V3JpdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0NvbXBsZXhUZXh0Q29udHJvbGxlckRpcmVjdFdyaXRlLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lOTdmOWMyMDRkMWM2NTA3OGFkNzYyZWZmM2JmMDZjNjFiOGRiMWI5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbXBsZXhUZXh0
Q29udHJvbGxlckRpcmVjdFdyaXRlLmNwcApAQCAtMCwwICsxLDM2IEBACisvKgorKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJDb21wbGV4VGV4dENvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJh
Y3RlcnMoY29uc3QgVUNoYXIqLCB1bnNpZ25lZCwgdW5zaWduZWQsIGNvbnN0IEZvbnQqKQorewor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRX
aW4uY3BwCmluZGV4IDIxZDMyZWRiZjk1ODgwMTI5OTkwZmE1NWM4ZTk2NGZlNDQwMzc5MTIuLjEy
MGU1MDExMjQ5YTZhZjFjYjMxYzNiOTQ4OGEzNDU4MjhkNGYxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAKQEAgLTkxLDE3ICs5MSw2
IEBAIGZsb2F0IEZvbnRDYXNjYWRlOjpnZXRHbHlwaHNBbmRBZHZhbmNlc0ZvckNvbXBsZXhUZXh0
KGNvbnN0IFRleHRSdW4mIHJ1biwgdW5zaWduCiAgICAgcmV0dXJuIGJlZm9yZVdpZHRoOwogfQog
Ci12b2lkIEZvbnRDYXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBBdG9taWNTdHJp
bmcmIG1hcmssIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25l
ZCB0bykgY29uc3QKLXsKLSAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKLSAgICBmbG9hdCBp
bml0aWFsQWR2YW5jZSA9IGdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQocnVuLCBm
cm9tLCB0bywgZ2x5cGhCdWZmZXIsIEZvclRleHRFbXBoYXNpcyk7Ci0KLSAgICBpZiAoZ2x5cGhC
dWZmZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBkcmF3RW1waGFzaXNNYXJr
cyhjb250ZXh0LCBnbHlwaEJ1ZmZlciwgbWFyaywgRmxvYXRQb2ludChwb2ludC54KCkgKyBpbml0
aWFsQWR2YW5jZSwgcG9pbnQueSgpKSk7Ci19Ci0KIGZsb2F0IEZvbnRDYXNjYWRlOjpmbG9hdFdp
ZHRoRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBIYXNoU2V0PGNvbnN0IEZvbnQq
PiogZmFsbGJhY2tGb250cywgR2x5cGhPdmVyZmxvdyogZ2x5cGhPdmVyZmxvdykgY29uc3QKIHsK
ICAgICBVbmlzY3JpYmVDb250cm9sbGVyIGNvbnRyb2xsZXIodGhpcywgcnVuLCBmYWxsYmFja0Zv
bnRzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA1NjQ2MDI4MDMzYjVhNmI3OWRhOGQ3OWE4ODE2ZDBlZjBlZDRlMzIxLi40YjQzYWNjNDkxNjM0
NDY3ODUyNjY0ZjE4ZTA2NGNmYWYyMWUxNzRlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDItMDcgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbV2luXSBbR1RL
XSBbRUZMXSBDb21waWxlIChidXQgZG9uJ3QgdXNlLCB5ZXQpIHRoZSBwbGF0Zm9ybS1pbmRlcGVu
ZGVudCBwaWVjZSBvZiBDb21wbGV4VGV4dENvbnRyb2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzkyNworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSBDb21wbGV4VGV4dENvbnRyb2xsZXIg
QVBJIHRlc3RzIG9uIHRoZSBXaW4gYW5kIEdUSyBwb3J0cy4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bVdpbi5jbWFrZToKKwogMjAxNy0wMi0wNyAgT2xpdmllciBCbGluICA8b2xpdmllci5ibGluQHNv
ZnRhdGhvbWUuY29tPgogCiAgICAgICAgIFt3ZWJraXRkaXJzXSByZW1vdmUgdW51c2VkIGhvc3Rf
cHJvY2Vzc29yIHZhcmlhYmxlIGluIGRldGVybWluZUFyY2hpdGVjdHVyZSgpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBjZmY5Njc2NWFlOTczNWZlNWRlNmQ4OGQ5Y2My
ZDA3NWEzNDk1YTY2Li5mZmM3MmYyOTExMTI2MDhiNzg5NDFkNjZiMWM2NGQ0ZTY3NWZhMmUyIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEzMSw2ICsxMzEsNyBAQCBh
ZGRfZXhlY3V0YWJsZShUZXN0V2ViQ29yZQogICAgICR7dGVzdF9tYWluX1NPVVJDRVN9CiAgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHNDb250cm9sbGVyLmNwcAogICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvQ1NTUGFyc2VyLmNwcAorICAgICR7VEVTVFdFQktJVEFQ
SV9ESVJ9L1Rlc3RzL1dlYkNvcmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAogICAgICR7VEVT
VFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvRmlsZVN5c3RlbS5jcHAKICAgICAke1RFU1RX
RUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0dyaWRQb3NpdGlvbi5jcHAKICAgICAke1RFU1RX
RUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2luLmNtYWtlIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAxOTRjYThmZjM0YWZkMGJiMTZjYjM3N2Y0
NzdhNGYwMmE0NjQxODljLi43YjEwMTljM2U0NWE0N2ViNzEzM2NmM2JmMzc0OGVlNjIyNmYxMzQ5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2luLmNtYWtlCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XaW4uY21ha2UKQEAgLTQ2LDYgKzQ2LDcgQEAg
c2V0KFRlc3RXZWJDb3JlTGliX1NPVVJDRVMKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
c0NvbnRyb2xsZXIuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9B
ZmZpbmVUcmFuc2Zvcm0uY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29y
ZS9DYWxjdWxhdGlvblZhbHVlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dlYkNvcmUvQ1NTUGFyc2VyLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rl
c3RzL1dlYkNvcmUvRmxvYXRSZWN0LmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYkNvcmUvRmxvYXRQb2ludC5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggYzZiN2Rk
YzcwMDVjOGY4MzM4MzZjMjU2YTNiYWQ4OThjMDM4MTlkMy4uMTg3MWE0NjcyNTM1OGIwNDAzMTY2
MmY2OWM5MDUyNDMwMDRiMWM4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKQEAgLTc0LDcgKzc0
LDcgQEAgVEVTVF9GKENvbXBsZXhUZXh0Q29udHJvbGxlclRlc3QsIEluaXRpYWxBZHZhbmNlV2l0
aExlZnRSdW5JblJUTCkKICAgICBydW5zLmFwcGVuZChXVEZNb3ZlKHJ1bjIpKTsKICAgICBDb21w
bGV4VGV4dENvbnRyb2xsZXIgY29udHJvbGxlcihmb250LCB0ZXh0UnVuLCBydW5zKTsKIAotICAg
IENHRmxvYXQgdG90YWxXaWR0aCA9IDA7CisgICAgZmxvYXQgdG90YWxXaWR0aCA9IDA7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDE7IGkgPCBhZHZhbmNlcy5zaXplKCk7ICsraSkKICAgICAgICAgdG90
YWxXaWR0aCArPSBhZHZhbmNlc1tpXS53aWR0aCgpOwogICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xs
ZXIudG90YWxXaWR0aCgpLCBzcGFjZVdpZHRoICsgdG90YWxXaWR0aCwgMC4wMDAxKTsKQEAgLTEy
Myw3ICsxMjMsNyBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFk
dmFuY2VJblJUTCkKICAgICBydW5zLmFwcGVuZChXVEZNb3ZlKHJ1bikpOwogICAgIENvbXBsZXhU
ZXh0Q29udHJvbGxlciBjb250cm9sbGVyKGZvbnQsIHRleHRSdW4sIHJ1bnMpOwogCi0gICAgQ0dG
bG9hdCB0b3RhbFdpZHRoID0gMDsKKyAgICBmbG9hdCB0b3RhbFdpZHRoID0gMDsKICAgICBmb3Ig
KHNpemVfdCBpID0gMTsgaSA8IGFkdmFuY2VzLnNpemUoKTsgKytpKQogICAgICAgICB0b3RhbFdp
ZHRoICs9IGFkdmFuY2VzW2ldLndpZHRoKCk7CiAgICAgRVhQRUNUX05FQVIoY29udHJvbGxlci50
b3RhbFdpZHRoKCksIHRvdGFsV2lkdGgsIDAuMDAwMSk7CkBAIC0yNTgsNyArMjU4LDcgQEAgVEVT
VF9GKENvbXBsZXhUZXh0Q29udHJvbGxlclRlc3QsIEluaXRpYWxBZHZhbmNlSW5SVExOb09yaWdp
bnMpCiAgICAgcnVucy5hcHBlbmQoV1RGTW92ZShydW4zKSk7CiAgICAgQ29tcGxleFRleHRDb250
cm9sbGVyIGNvbnRyb2xsZXIoZm9udCwgdGV4dFJ1biwgcnVucyk7CiAKLSAgICBDR0Zsb2F0IHRv
dGFsV2lkdGggPSAxNC4wMzk3ODMwMDE4MDgzICsgMTIuMCArIDQzLjgxMTkzNDkwMDU0MjU7Cisg
ICAgZmxvYXQgdG90YWxXaWR0aCA9IDE0LjAzOTc4MzAwMTgwODMgKyAxMi4wICsgNDMuODExOTM0
OTAwNTQyNTsKICAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVyLnRvdGFsV2lkdGgoKSwgdG90YWxX
aWR0aCwgMC4wMDAxKTsKICAgICBHbHlwaEJ1ZmZlciBnbHlwaEJ1ZmZlcjsKICAgICBFWFBFQ1Rf
TkVBUihjb250cm9sbGVyLnJ1bldpZHRoU29GYXIoKSwgMCwgMC4wMDAxKTsKQEAgLTI5OCw3ICsy
OTgsNyBAQCBURVNUX0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgTGVhZGluZ0V4cGFuc2lv
bikKICAgICBydW5zLmFwcGVuZChXVEZNb3ZlKHJ1bikpOwogICAgIENvbXBsZXhUZXh0Q29udHJv
bGxlciBjb250cm9sbGVyKGZvbnQsIHRleHRSdW4sIHJ1bnMpOwogCi0gICAgQ0dGbG9hdCB0b3Rh
bFdpZHRoID0gMTAwICsgMjQ7CisgICAgZmxvYXQgdG90YWxXaWR0aCA9IDEwMCArIDI0OwogICAg
IEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIudG90YWxXaWR0aCgpLCB0b3RhbFdpZHRoLCAwLjAwMDEp
OwogICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwogICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xs
ZXIucnVuV2lkdGhTb0ZhcigpLCAwLCAwLjAwMDEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300821</attachid>
            <date>2017-02-07 11:01:23 -0800</date>
            <delta_ts>2017-02-07 13:39:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167927-20170207105900.patch</filename>
            <type>text/plain</type>
            <size>30232</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI1NmQ5Y2FkNWIzNDEw
NjUyYmVhY2I0NDA2NDA0M2I0ZmM2ZTJjNi4uYTM3NmFlYzM2MzBlNjc3NTU1YzQ5Mjk3ZGE4MjBl
MGZjZjM4ZWNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE3LTAyLTA3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dpbl0gW0dU
S10gW0VGTF0gQ29tcGlsZSAoYnV0IGRvbid0IHVzZSwgeWV0KSB0aGUgcGxhdGZvcm0taW5kZXBl
bmRlbnQgcGllY2Ugb2YgQ29tcGxleFRleHRDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc5MjcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIHNpbXBseSBtb3ZlcyBzb21l
IGZ1bmN0aW9ucyBhcm91bmQgdG8gZW5hYmxlIHRoZSBXaW4sIEdUSywgYW5kIEVGTCBwb3J0cyB0
byBjb21waWxlIHRoZQorICAgICAgICBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwaWVjZXMgb2YgQ29t
cGxleFRleHRDb250cm9sbGVyLiBUaG9zZSBwYXJ0cyBvZiBDb21wbGV4VGV4dENvbnRyb2xsZXIg
aGF2ZQorICAgICAgICBzb21lIGRlcGVuZGVuY2llcyB3aGljaCB3ZXJlIHByZXZpb3VzbHkgb25s
eSBhdmFpbGFibGUgb24gdGhlIENvY29hIHBvcnRzOyBob3dldmVyLCB0aG9zZQorICAgICAgICBk
ZXBlbmRlbmNpZXMgYXJlIGVhc2lseSBjcmVhdGVkIG9yIG1vdmVkIGZyb20gZWxzZXdoZXJlLiBU
aGUgbmV4dCBzdGVwIGlzIHRvIHBvcHVsYXRlIHRoZQorICAgICAgICBDb21wbGV4VGV4dENvbnRy
b2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJzKCkgZnVuY3Rpb24gZm9y
IERpcmVjdFdyaXRlIGFuZCBIYXJmQnV6ei4KKyAgICAgICAgT25jZSB0aGF0IGlzIGRvbmUsIFVu
aXNjcmliZUNvbnRyb2xsZXIgYW5kIEhhcmZCdXp6U2hhcGVyIGNhbiBiZSBkZWxldGVkLgorCisg
ICAgICAgIEFkZHMgQ29tcGxleFRleHRDb250cm9sbGVyIFRlc3RXZWJLaXRBUEkgdGVzdHMgdG8g
dGhlIFdpbiBhbmQgR1RLIHBvcnRzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IEV2ZXJ5
b25lIGNhbiBjb21waWxlIHRoZSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBwaWVjZSBvZiBDb21wbGV4
VGV4dENvbnRyb2xsZXIuCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6IEFkZCB0aGUgSGFy
ZkJ1enotc3BlY2lmaWMgcGllY2UuCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6IERpdHRv
LgorICAgICAgICAqIFBsYXRmb3JtV2luLmNtYWtlOiBBZGQgdGhlIERpcmVjdFdyaXRlLXNwZWNp
ZmljIHBpZWNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3Io
KSk6IENvbXBsZXhUZXh0Q29udHJvbGxlciBzaG91bGRuJ3QgYmUgZW5hYmxlZCB5ZXQgZm9yIFdp
biwKKyAgICAgICAgR1RLLCBvciBFRkwuCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6
Y3JlYXRlTGF5b3V0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6d2lk
dGgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvbXBsZXhUZXh0Q29udHJvbGxlcjo6Q29t
cGxleFRleHRSdW46OkNvbXBsZXhUZXh0UnVuKTogTW92ZWQgc2hhcmVkIGNvZGUgdG8gdGhlIHNo
YXJlZAorICAgICAgICBmaWxlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6bm9TeW50aGVzaXphYmxlRmVhdHVyZXNGb250KTog
RGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3Igb3RoZXIgcG9ydHMuCisgICAgICAgIChXZWJDb3Jl
OjpGb250Ojp2YXJpYW50Q2Fwc1N1cHBvcnRzQ2hhcmFjdGVyRm9yU3ludGhlc2lzKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhc2NhZGU6OmZvbnRGb3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGU6OmRyYXdFbXBoYXNpc01hcmtz
Rm9yQ29tcGxleFRleHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYXNjYWRlOjpj
cmVhdGVMYXlvdXQpOiBEZWxldGVkLiBNb3ZlZCB0byBDb21wbGV4VGV4dENvbnRyb2xsZXIuCisg
ICAgICAgIChXZWJDb3JlOjpUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3IoKSk6IERlbGV0ZWQu
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmg6IGZvbnRG
b3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZSgpIHNob3VsZCBleGlzdCBvbiBhbGwgcG9ydHMu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZHJhd0VtcGhhc2lzTWFya3NGb3JD
b21wbGV4VGV4dCk6IERlbGV0ZWQuIFNoYXJlZCBhbW9uZyBhbGwgcG9ydHMuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2NhZGVDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDYXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KTogRGVs
ZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxl
eFRleHRDb250cm9sbGVySGFyZkJ1enouY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBsZXhUZXh0Q29udHJvbGxlcjo6Y29sbGVjdENvbXBsZXhUZXh0UnVuc0ZvckNoYXJhY3RlcnMp
OiBFbXB0eSBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBIYXJmQnV6ei1zcGVjaWZpYyBwaWVj
ZSBvZiBDb21wbGV4VGV4dENvbnRyb2xsZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tOiBNb3ZlZCBjb25zdHJ1Y3RvcnMg
dG8gc2hhcmVkIGZpbGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbXBsZXhU
ZXh0Q29udHJvbGxlckRpcmVjdFdyaXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpD
b21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbGxlY3RDb21wbGV4VGV4dFJ1bnNGb3JDaGFyYWN0ZXJz
KTogRW1wdHkgaW1wbGVtZW50YXRpb24gb2YKKyAgICAgICAgRGlyZWN0IFdyaXRlLXNwZWNpZmlj
IHBpZWNlIG9mIENvbXBsZXhUZXh0Q29udHJvbGxlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy93aW4vRm9udFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZHJh
d0VtcGhhc2lzTWFya3NGb3JDb21wbGV4VGV4dCk6IERlbGV0ZWQuIFNoYXJlZCBhbW9uZyBhbGwg
cG9ydHMuCisKIDIwMTctMDItMDcgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbWFudWFsIHJvbGwgb3V0IG9mIHIyMTE3NzcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNWI5OTFlNzBlOWRhODZhMWQzNTRkMzY0ZTNkZWExNGY1OWJj
ZmE1Ni4uYzdmNGJlMDg4OTE0NzRlMzE2YjUwYjQzMDM3OWUzNjhiMzZmMjAzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTIxNjYsNiArMjE2Niw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKIAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxl
ci5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuY3BwCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5kZWRDb2xvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwu
Y21ha2UKaW5kZXggMWYwZTEwMzVhZDRhZDJlMWUzZjBiMTcyNWEyYWNlY2VlM2M4MGM5OS4uNTBh
YjcyMzY3MGY1ODU4ZDI0YTVjNmMwZmYwNWUyNjFiYTEzZWZkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1F
ZmwuY21ha2UKQEAgLTEzOCw2ICsxMzgsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
IAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNw
cAogCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVy
SGFyZkJ1enouY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNl
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNw
cAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBjMGJjZDJhNDhlYTcxOTY3YjEyMGE0ZTA0ZjFlNmE5
ZTc0Njg2N2U1Li5hN2NlZWI4ZGJjNzM2ZWZjMGZkODk5ZTZkZjIyNmJkZjFmYmQ0YzJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTE5LDYgKzExOSw3IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0ltYWdlR1N0
cmVhbWVyQ2Fpcm8uY3BwCiAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Db21wbGV4
VGV4dENvbnRyb2xsZXJIYXJmQnV6ei5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6
ei9IYXJmQnV6ekZhY2UuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1
enpGYWNlQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpT
aGFwZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbi5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGZkNDhjYzE3OGEzNTE1Mjgy
MWQyYWYxZDA0MGE0OGI1ZmUwNmU5ZmMuLjNiNWI0MGIzOWQwMTFlZjNhMDUyZGE4NzU3NDQwYmM1
ODQ4YzAxMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV2luLmNtYWtlCkBAIC04Niw2ICs4Niw3IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBl
L09wZW5UeXBlVXRpbGl0aWVzLmNwcAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbG9y
RGlyZWN0MkQuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0NvbXBsZXhUZXh0Q29udHJv
bGxlckRpcmVjdFdyaXRlLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9ESUJQaXhlbERh
dGEuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zsb2F0UG9pbnREaXJlY3QyRC5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy93aW4vRmxvYXRSZWN0RGlyZWN0MkQuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250
cm9sbGVyLmNwcAppbmRleCBkZDlmM2NhY2RjMzRiMDRhNDE4MWY3YjI5MDA3YjU4MzY4M2JkY2M3
Li45ODcwYTdlZGZlMWYxYjY0MzcwZjUwN2YzYTg2NDZhOTQ1MzhiM2Q5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJv
bGxlci5jcHAKQEAgLTkyLDE5ICs5MiwzOSBAQCBwcml2YXRlOgogCiB2b2lkIFRleHRMYXlvdXRE
ZWxldGVyOjpvcGVyYXRvcigpKFRleHRMYXlvdXQqIGxheW91dCkgY29uc3QKIHsKKyNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBkZWxldGUgbGF5b3V0OworI2Vsc2UKKyAgICBBU1NFUlRfVU5VU0VE
KGxheW91dCwgIWxheW91dCk7CisjZW5kaWYKIH0KIAogc3RkOjp1bmlxdWVfcHRyPFRleHRMYXlv
dXQsIFRleHRMYXlvdXREZWxldGVyPiBGb250Q2FzY2FkZTo6Y3JlYXRlTGF5b3V0KFJlbmRlclRl
eHQmIHRleHQsIGZsb2F0IHhQb3MsIGJvb2wgY29sbGFwc2VXaGl0ZVNwYWNlKSBjb25zdAogewor
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghY29sbGFwc2VXaGl0ZVNwYWNlIHx8ICFUZXh0
TGF5b3V0Ojppc05lZWRlZCh0ZXh0LCAqdGhpcykpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8VGV4dExheW91dCwgVGV4dExheW91dERlbGV0ZXI+
KG5ldyBUZXh0TGF5b3V0KHRleHQsICp0aGlzLCB4UG9zKSk7CisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTSh0ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0oeFBvcyk7CisgICAgVU5VU0VEX1BBUkFNKGNv
bGxhcHNlV2hpdGVTcGFjZSk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKIH0KIAogZmxv
YXQgRm9udENhc2NhZGU6OndpZHRoKFRleHRMYXlvdXQmIGxheW91dCwgdW5zaWduZWQgZnJvbSwg
dW5zaWduZWQgbGVuLCBIYXNoU2V0PGNvbnN0IEZvbnQqPiogZmFsbGJhY2tGb250cykKIHsKKyNp
ZiBQTEFURk9STShDT0NPQSkKICAgICByZXR1cm4gbGF5b3V0LndpZHRoKGZyb20sIGxlbiwgZmFs
bGJhY2tGb250cyk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShsYXlvdXQpOworICAgIFVOVVNF
RF9QQVJBTShmcm9tKTsKKyAgICBVTlVTRURfUEFSQU0obGVuKTsKKyAgICBVTlVTRURfUEFSQU0o
ZmFsbGJhY2tGb250cyk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7
CisjZW5kaWYKIH0KIAogdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmNvbXB1dGVFeHBhbnNp
b25PcHBvcnR1bml0eSgpCkBAIC03MDMsNyArNzIzLDYgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRy
b2xsZXI6OmFkanVzdEdseXBoc0FuZEFkdmFuY2VzKCkKICAgICAgICAgY29uc3QgQ0dHbHlwaCog
Z2x5cGhzID0gY29tcGxleFRleHRSdW4uZ2x5cGhzKCk7CiAgICAgICAgIGNvbnN0IEZsb2F0U2l6
ZSogYWR2YW5jZXMgPSBjb21wbGV4VGV4dFJ1bi5iYXNlQWR2YW5jZXMoKTsKIAotICAgICAgICBi
b29sIGxhc3RSdW4gPSBydW5JbmRleCArIDEgPT0gcnVuQ291bnQ7CiAgICAgICAgIGZsb2F0IHNw
YWNlV2lkdGggPSBmb250LnNwYWNlV2lkdGgoKSAtIGZvbnQuc3ludGhldGljQm9sZE9mZnNldCgp
OwogICAgICAgICBjb25zdCBVQ2hhciogY3AgPSBjb21wbGV4VGV4dFJ1bi5jaGFyYWN0ZXJzKCk7
CiAgICAgICAgIEZsb2F0UG9pbnQgZ2x5cGhPcmlnaW47CkBAIC03MjAsMTQgKzczOSw2IEBAIHZv
aWQgQ29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNlcygpCiAgICAg
ICAgICAgICAgICAgICAgIGlzTW9ub3RvbmljID0gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBVQ2hhciBjaCA9ICooY3AgKyBjaGFyYWN0ZXJJbmRleCk7Ci0gICAgICAgICAgICBi
b29sIGxhc3RHbHlwaCA9IGxhc3RSdW4gJiYgaSArIDEgPT0gZ2x5cGhDb3VudDsKLSAgICAgICAg
ICAgIFVDaGFyIG5leHRDaDsKLSAgICAgICAgICAgIGlmIChsYXN0R2x5cGgpCi0gICAgICAgICAg
ICAgICAgbmV4dENoID0gJyAnOwotICAgICAgICAgICAgZWxzZSBpZiAoaSArIDEgPCBnbHlwaENv
dW50KQotICAgICAgICAgICAgICAgIG5leHRDaCA9ICooY3AgKyBjb21wbGV4VGV4dFJ1bi5pbmRl
eEF0KGkgKyAxKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbmV4dENoID0g
KihtX2NvbXBsZXhUZXh0UnVuc1tydW5JbmRleCArIDFdLT5jaGFyYWN0ZXJzKCkgKyBtX2NvbXBs
ZXhUZXh0UnVuc1tydW5JbmRleCArIDFdLT5pbmRleEF0KDApKTsKIAogICAgICAgICAgICAgYm9v
bCB0cmVhdEFzU3BhY2UgPSBGb250Q2FzY2FkZTo6dHJlYXRBc1NwYWNlKGNoKTsKICAgICAgICAg
ICAgIENHR2x5cGggZ2x5cGggPSB0cmVhdEFzU3BhY2UgPyBmb250LnNwYWNlR2x5cGgoKSA6IGds
eXBoc1tpXTsKQEAgLTgzMCw0ICs4NDEsNTEgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6
OmFkanVzdEdseXBoc0FuZEFkdmFuY2VzKCkKICAgICBtX3RvdGFsV2lkdGggKz0gd2lkdGhTaW5j
ZUxhc3RDb21taXQ7CiB9CiAKKy8vIE1pc3NpbmcgZ2x5cGhzIHJ1biBjb25zdHJ1Y3Rvci4gQ29y
ZSBUZXh0IHdpbGwgbm90IGdlbmVyYXRlIGEgcnVuIG9mIG1pc3NpbmcgZ2x5cGhzLCBpbnN0ZWFk
IGZhbGxpbmcgYmFjayBvbgorLy8gZ2x5cGhzIGZyb20gTGFzdFJlc29ydC4gV2Ugd2FudCB0byB1
c2UgdGhlIHByaW1hcnkgZm9udCdzIG1pc3NpbmcgZ2x5cGggaW4gb3JkZXIgdG8gbWF0Y2ggdGhl
IGZhc3QgdGV4dCBjb2RlIHBhdGguCitDb21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0
UnVuOjpDb21wbGV4VGV4dFJ1bihjb25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgc3RyaW5nTG9jYXRpb24sIHVuc2lnbmVkIHN0cmluZ0xlbmd0aCwgdW5z
aWduZWQgaW5kZXhCZWdpbiwgdW5zaWduZWQgaW5kZXhFbmQsIGJvb2wgbHRyKQorICAgIDogbV9m
b250KGZvbnQpCisgICAgLCBtX2NoYXJhY3RlcnMoY2hhcmFjdGVycykKKyAgICAsIG1fc3RyaW5n
TGVuZ3RoKHN0cmluZ0xlbmd0aCkKKyAgICAsIG1faW5kZXhCZWdpbihpbmRleEJlZ2luKQorICAg
ICwgbV9pbmRleEVuZChpbmRleEVuZCkKKyAgICAsIG1fc3RyaW5nTG9jYXRpb24oc3RyaW5nTG9j
YXRpb24pCisgICAgLCBtX2lzTFRSKGx0cikKK3sKKyAgICBhdXRvIHJ1bkxlbmd0aEluQ29kZVVu
aXRzID0gbV9pbmRleEVuZCAtIG1faW5kZXhCZWdpbjsKKyAgICBtX2NvcmVUZXh0SW5kaWNlcy5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KHJ1bkxlbmd0aEluQ29kZVVuaXRzKTsKKyAgICB1bnNpZ25l
ZCByID0gbV9pbmRleEJlZ2luOworICAgIHdoaWxlIChyIDwgbV9pbmRleEVuZCkgeworICAgICAg
ICBtX2NvcmVUZXh0SW5kaWNlcy51bmNoZWNrZWRBcHBlbmQocik7CisgICAgICAgIFVDaGFyMzIg
Y2hhcmFjdGVyOworICAgICAgICBVMTZfTkVYVChtX2NoYXJhY3RlcnMsIHIsIG1fc3RyaW5nTGVu
Z3RoLCBjaGFyYWN0ZXIpOworICAgIH0KKyAgICBtX2dseXBoQ291bnQgPSBtX2NvcmVUZXh0SW5k
aWNlcy5zaXplKCk7CisgICAgaWYgKCFsdHIpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCByID0g
MCwgZW5kID0gbV9nbHlwaENvdW50IC0gMTsgciA8IG1fZ2x5cGhDb3VudCAvIDI7ICsrciwgLS1l
bmQpCisgICAgICAgICAgICBzdGQ6OnN3YXAobV9jb3JlVGV4dEluZGljZXNbcl0sIG1fY29yZVRl
eHRJbmRpY2VzW2VuZF0pOworICAgIH0KKworICAgIC8vIFN5bnRoZXNpemUgYSBydW4gb2YgbWlz
c2luZyBnbHlwaHMuCisgICAgbV9nbHlwaHMuZmlsbCgwLCBtX2dseXBoQ291bnQpOworICAgIG1f
YmFzZUFkdmFuY2VzLmZpbGwoRmxvYXRTaXplKG1fZm9udC53aWR0aEZvckdseXBoKDApLCAwKSwg
bV9nbHlwaENvdW50KTsKK30KKworQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1
bjo6Q29tcGxleFRleHRSdW4oY29uc3QgVmVjdG9yPEZsb2F0U2l6ZT4mIGFkdmFuY2VzLCBjb25z
dCBWZWN0b3I8RmxvYXRQb2ludD4mIG9yaWdpbnMsIGNvbnN0IFZlY3RvcjxHbHlwaD4mIGdseXBo
cywgY29uc3QgVmVjdG9yPHVuc2lnbmVkPiYgc3RyaW5nSW5kaWNlcywgRmxvYXRTaXplIGluaXRp
YWxBZHZhbmNlLCBjb25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5z
aWduZWQgc3RyaW5nTG9jYXRpb24sIHVuc2lnbmVkIHN0cmluZ0xlbmd0aCwgdW5zaWduZWQgaW5k
ZXhCZWdpbiwgdW5zaWduZWQgaW5kZXhFbmQsIGJvb2wgbHRyKQorICAgIDogbV9iYXNlQWR2YW5j
ZXMoYWR2YW5jZXMpCisgICAgLCBtX2dseXBoT3JpZ2lucyhvcmlnaW5zKQorICAgICwgbV9nbHlw
aHMoZ2x5cGhzKQorICAgICwgbV9jb3JlVGV4dEluZGljZXMoc3RyaW5nSW5kaWNlcykKKyAgICAs
IG1faW5pdGlhbEFkdmFuY2UoaW5pdGlhbEFkdmFuY2UpCisgICAgLCBtX2ZvbnQoZm9udCkKKyAg
ICAsIG1fY2hhcmFjdGVycyhjaGFyYWN0ZXJzKQorICAgICwgbV9zdHJpbmdMZW5ndGgoc3RyaW5n
TGVuZ3RoKQorICAgICwgbV9pbmRleEJlZ2luKGluZGV4QmVnaW4pCisgICAgLCBtX2luZGV4RW5k
KGluZGV4RW5kKQorICAgICwgbV9nbHlwaENvdW50KGdseXBocy5zaXplKCkpCisgICAgLCBtX3N0
cmluZ0xvY2F0aW9uKHN0cmluZ0xvY2F0aW9uKQorICAgICwgbV9pc0xUUihsdHIpCit7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0NvbXBsZXhUZXh0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKaW5kZXggMDlhYmE1NWM0ZDI1
NTBlOWFmMWJiZGFlNzJkZDYwNjcxZWE1YjRhNS4uMTY5ZDg5MWIyMzk4OWYwYjFhNjA5ZGNmMTVl
YTExNTk2ZjQ3ODYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29tcGxleFRleHRDb250cm9sbGVyLmgKQEAgLTE5NSw3ICsxOTUsOSBAQCBwcml2
YXRlOgogICAgIFZlY3Rvcjx1bnNpZ25lZCwgMTY+IG1fcnVuSW5kaWNlczsKICAgICBWZWN0b3I8
dW5zaWduZWQsIDE2PiBtX2dseXBoQ291bnRGcm9tU3RhcnRUb0luZGV4OwogCisjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgVmVjdG9yPFJldGFpblB0cjxDVExpbmVSZWY+PiBtX2NvcmVUZXh0TGlu
ZXM7CisjZW5kaWYKIAogICAgIFZlY3RvcjxTdHJpbmc+IG1fc3RyaW5nc0ZvcjhCaXRSdW5zOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IGM5YWM0ZGQ2
MTdkYzU3OGM0ZWU0MzkzNzhmODJhMjY5YmIxNDgwNTcuLmFjOGZhMzljNTAyNTlhNGI4MDc2MDU4
YjM2ZjZkZTRhMWVmMTE3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zv
bnQuY3BwCkBAIC0yOTIsMTcgKzI5MiwxOSBAQCBjb25zdCBGb250KiBGb250OjpzbWFsbENhcHNG
b250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKSBjb25zdAogICAgIHJl
dHVybiBtX2Rlcml2ZWRGb250RGF0YS0+c21hbGxDYXBzLmdldCgpOwogfQogCi0jaWYgUExBVEZP
Uk0oQ09DT0EpCiBjb25zdCBGb250JiBGb250Ojpub1N5bnRoZXNpemFibGVGZWF0dXJlc0ZvbnQo
KSBjb25zdAogeworI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGlmICghbV9kZXJpdmVkRm9udERh
dGEpCiAgICAgICAgIG1fZGVyaXZlZEZvbnREYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxEZXJpdmVk
Rm9udHM+KGlzQ3VzdG9tRm9udCgpKTsKICAgICBpZiAoIW1fZGVyaXZlZEZvbnREYXRhLT5ub1N5
bnRoZXNpemFibGVGZWF0dXJlcykKICAgICAgICAgbV9kZXJpdmVkRm9udERhdGEtPm5vU3ludGhl
c2l6YWJsZUZlYXR1cmVzID0gY3JlYXRlRm9udFdpdGhvdXRTeW50aGVzaXphYmxlRmVhdHVyZXMo
KTsKICAgICBBU1NFUlQobV9kZXJpdmVkRm9udERhdGEtPm5vU3ludGhlc2l6YWJsZUZlYXR1cmVz
ICE9IHRoaXMpOwogICAgIHJldHVybiAqbV9kZXJpdmVkRm9udERhdGEtPm5vU3ludGhlc2l6YWJs
ZUZlYXR1cmVzOwotfQorI2Vsc2UKKyAgICByZXR1cm4gKnRoaXM7CiAjZW5kaWYKK30KIAogY29u
c3QgRm9udCogRm9udDo6ZW1waGFzaXNNYXJrRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbikgY29uc3QKIHsKQEAgLTUwNSw0ICs1MDcsMTEgQEAgdm9pZCBGb250Ojpy
ZW1vdmVGcm9tU3lzdGVtRmFsbGJhY2tDYWNoZSgpCiAgICAgfQogfQogCisjaWYgIVBMQVRGT1JN
KENPQ09BKQorYm9vbCBGb250Ojp2YXJpYW50Q2Fwc1N1cHBvcnRzQ2hhcmFjdGVyRm9yU3ludGhl
c2lzKEZvbnRWYXJpYW50Q2FwcywgVUNoYXIzMikgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuY3BwCmluZGV4IDZhYzg2Zjg2M2MxZWZj
ODY0MDY2ZWRiNjVjMzdjM2NhNTA5YTUwYWQuLmY3YmZkZmE1MTBkMGRkNTUyNzRjMmFkZTRmMmIx
MDNkODQxZGRkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYXNjYWRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250Q2FzY2FkZS5jcHAKQEAgLTQzMSwyNSArNDMxLDYgQEAgR2x5cGhEYXRhIEZvbnRDYXNjYWRl
OjpnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiBjLCBib29sIG1pcnJvciwgRm9udFZhcmlh
bnQKICAgICByZXR1cm4gbV9mb250cy0+Z2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGMsIG1fZm9udERl
c2NyaXB0aW9uLCB2YXJpYW50KTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKLQotc3RkOjp1
bmlxdWVfcHRyPFRleHRMYXlvdXQsIFRleHRMYXlvdXREZWxldGVyPiBGb250Q2FzY2FkZTo6Y3Jl
YXRlTGF5b3V0KFJlbmRlclRleHQmLCBmbG9hdCwgYm9vbCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bnVsbHB0cjsKLX0KLQotdm9pZCBUZXh0TGF5b3V0RGVsZXRlcjo6b3BlcmF0b3IoKShUZXh0TGF5
b3V0KikgY29uc3QKLXsKLX0KLQotZmxvYXQgRm9udENhc2NhZGU6OndpZHRoKFRleHRMYXlvdXQm
LCB1bnNpZ25lZCwgdW5zaWduZWQsIEhhc2hTZXQ8Y29uc3QgRm9udCo+KikKLXsKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmCi0KIHN0YXRpYyBj
b25zdCBjaGFyKiBmb250RmFtaWxpZXNXaXRoSW52YWxpZENoYXJXaWR0aFtdID0gewogICAgICJB
bWVyaWNhbiBUeXBld3JpdGVyIiwKICAgICAiQXJpYWwgSGVicmV3IiwKQEAgLTE0NjgsNSArMTQ0
OSwzMCBAQCBpbnQgRm9udENhc2NhZGU6Om9mZnNldEZvclBvc2l0aW9uRm9yU2ltcGxlVGV4dChj
b25zdCBUZXh0UnVuJiBydW4sIGZsb2F0IHgsIGJvbwogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAK
KyNpZiAhUExBVEZPUk0oQ09DT0EpCisvLyBGSVhNRTogVW5pZnkgdGhpcyB3aXRoIHRoZSBtYWNP
UyBhbmQgaU9TIGltcGxlbWVudGF0aW9uLgorY29uc3QgRm9udCogRm9udENhc2NhZGU6OmZvbnRG
b3JDb21iaW5pbmdDaGFyYWN0ZXJTZXF1ZW5jZShjb25zdCBVQ2hhciogY2hhcmFjdGVycywgc2l6
ZV90IGxlbmd0aCkgY29uc3QKK3sKKyAgICBVQ2hhcjMyIGJhc2VDaGFyYWN0ZXI7CisgICAgc2l6
ZV90IGJhc2VDaGFyYWN0ZXJMZW5ndGggPSAwOworICAgIFUxNl9ORVhUKGNoYXJhY3RlcnMsIGJh
c2VDaGFyYWN0ZXJMZW5ndGgsIGxlbmd0aCwgYmFzZUNoYXJhY3Rlcik7CisgICAgR2x5cGhEYXRh
IGJhc2VDaGFyYWN0ZXJHbHlwaERhdGEgPSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoYmFzZUNoYXJh
Y3RlciwgZmFsc2UsIE5vcm1hbFZhcmlhbnQpOworCisgICAgaWYgKCFiYXNlQ2hhcmFjdGVyR2x5
cGhEYXRhLmdseXBoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gYmFzZUNo
YXJhY3RlckdseXBoRGF0YS5mb250OworfQorI2VuZGlmCisKK3ZvaWQgRm9udENhc2NhZGU6OmRy
YXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBj
b25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywgY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnQsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKSBjb25zdAoreworICAgIEds
eXBoQnVmZmVyIGdseXBoQnVmZmVyOworICAgIGZsb2F0IGluaXRpYWxBZHZhbmNlID0gZ2V0R2x5
cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBnbHlwaEJ1ZmZlciwg
Rm9yVGV4dEVtcGhhc2lzKTsKKworICAgIGlmIChnbHlwaEJ1ZmZlci5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQsIGdseXBoQnVmZmVy
LCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNlLCBwb2ludC55KCkp
KTsKK30KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlLmgKaW5kZXggYmM3YTExODdlYzYwMGNhYjVhMDUxNDNiMzllMDM1YTc2ODcxZDgyOC4uOTJk
ODc4NjIwNjA5ZTk5NjlmZjk1ZTViZGU3MzdlYTkzOTk3MGMyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZS5oCkBAIC0xODQsMTAgKzE4NCw4IEBA
IHB1YmxpYzoKICAgICBjb25zdCBGb250JiBwcmltYXJ5Rm9udCgpIGNvbnN0OwogICAgIGNvbnN0
IEZvbnRSYW5nZXMmIGZhbGxiYWNrUmFuZ2VzQXQodW5zaWduZWQpIGNvbnN0OwogICAgIEdseXBo
RGF0YSBnbHlwaERhdGFGb3JDaGFyYWN0ZXIoVUNoYXIzMiwgYm9vbCBtaXJyb3IsIEZvbnRWYXJp
YW50ID0gQXV0b1ZhcmlhbnQpIGNvbnN0OwotICAgIAotI2lmIFBMQVRGT1JNKENPQ09BKQorCiAg
ICAgY29uc3QgRm9udCogZm9udEZvckNvbWJpbmluZ0NoYXJhY3RlclNlcXVlbmNlKGNvbnN0IFVD
aGFyKiwgc2l6ZV90IGxlbmd0aCkgY29uc3Q7Ci0jZW5kaWYKIAogICAgIHN0YXRpYyBib29sIGlz
Q0pLSWRlb2dyYXBoKFVDaGFyMzIpOwogICAgIHN0YXRpYyBib29sIGlzQ0pLSWRlb2dyYXBoT3JT
eW1ib2woVUNoYXIzMik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Gb250Q2Fpcm9IYXJmYnV6ek5HLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCmluZGV4IDA4YmFlMzgw
ODQ4ODQ1NGFkNzM4NjcyYzNlMjg4NDVjODRiZmQwMzMuLmNjMzdkN2Q1ODE0MTgzZjhhMWFjNmQ4
NTQ5OWNjYjQ2NmEwNDg1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyb0hhcmZidXp6TkcuY3BwCkBAIC01Miwx
MSArNTIsNiBAQCBmbG9hdCBGb250Q2FzY2FkZTo6Z2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21w
bGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIHVuc2lnbgogICAgIHJldHVybiAwOwogfQogCi12
b2lkIEZvbnRDYXNjYWRlOjpkcmF3RW1waGFzaXNNYXJrc0ZvckNvbXBsZXhUZXh0KEdyYXBoaWNz
Q29udGV4dCYgLyogY29udGV4dCAqLywgY29uc3QgVGV4dFJ1biYgLyogcnVuICovLCBjb25zdCBB
dG9taWNTdHJpbmcmIC8qIG1hcmsgKi8sIGNvbnN0IEZsb2F0UG9pbnQmIC8qIHBvaW50ICovLCB1
bnNpZ25lZCAvKiBmcm9tICovLCB1bnNpZ25lZCAvKiB0byAqLykgY29uc3QKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotfQotCiBib29sIEZvbnRDYXNjYWRlOjpjYW5SZXR1cm5GYWxsYmFja0Zv
bnRzRm9yQ29tcGxleFRleHQoKQogewogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FzY2FkZUNvY29h
Lm1tCmluZGV4IGFjYWIxMTNkMzg4N2Y2NmRiNjFmZmRhNDdkY2RmN2VkMWRhZTAzYmQuLjgzNGY3
MTQ0NDJkYTI0OWU3MWNhMmEwZDY0MmI5MThmZTlmYzEzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2NhZGVDb2NvYS5t
bQpAQCAtNTMxLDE3ICs1MzEsNiBAQCBmbG9hdCBGb250Q2FzY2FkZTo6Z2V0R2x5cGhzQW5kQWR2
YW5jZXNGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIHVuc2lnbgogICAgIHJldHVy
biBpbml0aWFsQWR2YW5jZTsKIH0KIAotdm9pZCBGb250Q2FzY2FkZTo6ZHJhd0VtcGhhc2lzTWFy
a3NGb3JDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IFRleHRSdW4m
IHJ1biwgY29uc3QgQXRvbWljU3RyaW5nJiBtYXJrLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwg
dW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pIGNvbnN0Ci17Ci0gICAgR2x5cGhCdWZmZXIgZ2x5
cGhCdWZmZXI7Ci0gICAgZmxvYXQgaW5pdGlhbEFkdmFuY2UgPSBnZXRHbHlwaHNBbmRBZHZhbmNl
c0ZvckNvbXBsZXhUZXh0KHJ1biwgZnJvbSwgdG8sIGdseXBoQnVmZmVyLCBGb3JUZXh0RW1waGFz
aXMpOwotCi0gICAgaWYgKGdseXBoQnVmZmVyLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZHJhd0VtcGhhc2lzTWFya3MoY29udGV4dCwgZ2x5cGhCdWZmZXIsIG1hcmssIEZsb2F0
UG9pbnQocG9pbnQueCgpICsgaW5pdGlhbEFkdmFuY2UsIHBvaW50LnkoKSkpOwotfQotCiBmbG9h
dCBGb250Q2FzY2FkZTo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1
biwgSGFzaFNldDxjb25zdCBGb250Kj4qIGZhbGxiYWNrRm9udHMsIEdseXBoT3ZlcmZsb3cqIGds
eXBoT3ZlcmZsb3cpIGNvbnN0CiB7CiAgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRyb2xs
ZXIoKnRoaXMsIHJ1biwgdHJ1ZSwgZmFsbGJhY2tGb250cyk7CkBAIC01NjAsNiArNTQ5LDcgQEAg
aW50IEZvbnRDYXNjYWRlOjpvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRl
eHRSdW4mIHJ1biwgZmxvYXQgeCwgYm8KICAgICByZXR1cm4gY29udHJvbGxlci5vZmZzZXRGb3JQ
b3NpdGlvbih4LCBpbmNsdWRlUGFydGlhbEdseXBocyk7CiB9CiAKKy8vIEZJWE1FOiBVc2UgdGhp
cyBvbiBhbGwgcG9ydHMuCiBjb25zdCBGb250KiBGb250Q2FzY2FkZTo6Zm9udEZvckNvbWJpbmlu
Z0NoYXJhY3RlclNlcXVlbmNlKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbGVuZ3Ro
KSBjb25zdAogewogICAgIFVDaGFyMzIgYmFzZUNoYXJhY3RlcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhUZXh0Q29udHJvbGxl
ckhhcmZCdXp6LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0NvbXBsZXhUZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOTdmOWMyMDRk
MWM2NTA3OGFkNzYyZWZmM2JmMDZjNjFiOGRiMWI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVy
SGFyZkJ1enouY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFO
WQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OCisqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbXBsZXhU
ZXh0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQ29tcGxleFRl
eHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVycyhjb25zdCBV
Q2hhciosIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgRm9udCopCit7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudCB0aGlzLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29tcGxleFRleHRD
b250cm9sbGVyQ29yZVRleHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0KaW5kZXggMjRiZjI3ZWNkNGFlZGI5
YTA5ODFhMzIxYjE5ZjM5YmQwMTg0OTQzYS4uZTk1OWQyODgwMmFlZjk4YWY4OWI1MjViMGI4Y2U1
MDk0ZmU1MmQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQpA
QCAtMjMsNyArMjMsNiBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLQogI2luY2x1ZGUg
IkNvbXBsZXhUZXh0Q29udHJvbGxlci5oIgogCiAjaW5jbHVkZSAiQ29yZVRleHRTUEkuaCIKQEAg
LTE2NSw1NCArMTY0LDYgQEAgQ29tcGxleFRleHRDb250cm9sbGVyOjpDb21wbGV4VGV4dFJ1bjo6
Q29tcGxleFRleHRSdW4oQ1RSdW5SZWYgY3RSdW4sIGNvbnN0IEZvbnQKICAgICB9CiB9CiAKLS8v
IE1pc3NpbmcgZ2x5cGhzIHJ1biBjb25zdHJ1Y3Rvci4gQ29yZSBUZXh0IHdpbGwgbm90IGdlbmVy
YXRlIGEgcnVuIG9mIG1pc3NpbmcgZ2x5cGhzLCBpbnN0ZWFkIGZhbGxpbmcgYmFjayBvbgotLy8g
Z2x5cGhzIGZyb20gTGFzdFJlc29ydC4gV2Ugd2FudCB0byB1c2UgdGhlIHByaW1hcnkgZm9udCdz
IG1pc3NpbmcgZ2x5cGggaW4gb3JkZXIgdG8gbWF0Y2ggdGhlIGZhc3QgdGV4dCBjb2RlIHBhdGgu
Ci1Db21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVuOjpDb21wbGV4VGV4dFJ1bihj
b25zdCBGb250JiBmb250LCBjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgc3RyaW5n
TG9jYXRpb24sIHVuc2lnbmVkIHN0cmluZ0xlbmd0aCwgdW5zaWduZWQgaW5kZXhCZWdpbiwgdW5z
aWduZWQgaW5kZXhFbmQsIGJvb2wgbHRyKQotICAgIDogbV9mb250KGZvbnQpCi0gICAgLCBtX2No
YXJhY3RlcnMoY2hhcmFjdGVycykKLSAgICAsIG1fc3RyaW5nTGVuZ3RoKHN0cmluZ0xlbmd0aCkK
LSAgICAsIG1faW5kZXhCZWdpbihpbmRleEJlZ2luKQotICAgICwgbV9pbmRleEVuZChpbmRleEVu
ZCkKLSAgICAsIG1fc3RyaW5nTG9jYXRpb24oc3RyaW5nTG9jYXRpb24pCi0gICAgLCBtX2lzTFRS
KGx0cikKLXsKLSAgICBhdXRvIHJ1bkxlbmd0aEluQ29kZVVuaXRzID0gbV9pbmRleEVuZCAtIG1f
aW5kZXhCZWdpbjsKLSAgICBtX2NvcmVUZXh0SW5kaWNlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHJ1bkxlbmd0aEluQ29kZVVuaXRzKTsKLSAgICB1bnNpZ25lZCByID0gbV9pbmRleEJlZ2luOwot
ICAgIHdoaWxlIChyIDwgbV9pbmRleEVuZCkgewotICAgICAgICBtX2NvcmVUZXh0SW5kaWNlcy51
bmNoZWNrZWRBcHBlbmQocik7Ci0gICAgICAgIFVDaGFyMzIgY2hhcmFjdGVyOwotICAgICAgICBV
MTZfTkVYVChtX2NoYXJhY3RlcnMsIHIsIG1fc3RyaW5nTGVuZ3RoLCBjaGFyYWN0ZXIpOwotICAg
IH0KLSAgICBtX2dseXBoQ291bnQgPSBtX2NvcmVUZXh0SW5kaWNlcy5zaXplKCk7Ci0gICAgaWYg
KCFsdHIpIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCByID0gMCwgZW5kID0gbV9nbHlwaENvdW50
IC0gMTsgciA8IG1fZ2x5cGhDb3VudCAvIDI7ICsrciwgLS1lbmQpCi0gICAgICAgICAgICBzdGQ6
OnN3YXAobV9jb3JlVGV4dEluZGljZXNbcl0sIG1fY29yZVRleHRJbmRpY2VzW2VuZF0pOwotICAg
IH0KLQotICAgIC8vIFN5bnRoZXNpemUgYSBydW4gb2YgbWlzc2luZyBnbHlwaHMuCi0gICAgbV9n
bHlwaHMuZmlsbCgwLCBtX2dseXBoQ291bnQpOwotICAgIG1fYmFzZUFkdmFuY2VzLmZpbGwoRmxv
YXRTaXplKG1fZm9udC53aWR0aEZvckdseXBoKDApLCAwKSwgbV9nbHlwaENvdW50KTsKLX0KLQot
Ci1Db21wbGV4VGV4dENvbnRyb2xsZXI6OkNvbXBsZXhUZXh0UnVuOjpDb21wbGV4VGV4dFJ1bihj
b25zdCBWZWN0b3I8RmxvYXRTaXplPiYgYWR2YW5jZXMsIGNvbnN0IFZlY3RvcjxGbG9hdFBvaW50
PiYgb3JpZ2lucywgY29uc3QgVmVjdG9yPEdseXBoPiYgZ2x5cGhzLCBjb25zdCBWZWN0b3I8dW5z
aWduZWQ+JiBzdHJpbmdJbmRpY2VzLCBGbG9hdFNpemUgaW5pdGlhbEFkdmFuY2UsIGNvbnN0IEZv
bnQmIGZvbnQsIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBzdHJpbmdMb2NhdGlv
biwgdW5zaWduZWQgc3RyaW5nTGVuZ3RoLCB1bnNpZ25lZCBpbmRleEJlZ2luLCB1bnNpZ25lZCBp
bmRleEVuZCwgYm9vbCBsdHIpCi0gICAgOiBtX2Jhc2VBZHZhbmNlcyhhZHZhbmNlcykKLSAgICAs
IG1fZ2x5cGhPcmlnaW5zKG9yaWdpbnMpCi0gICAgLCBtX2dseXBocyhnbHlwaHMpCi0gICAgLCBt
X2NvcmVUZXh0SW5kaWNlcyhzdHJpbmdJbmRpY2VzKQotICAgICwgbV9pbml0aWFsQWR2YW5jZShp
bml0aWFsQWR2YW5jZSkKLSAgICAsIG1fZm9udChmb250KQotICAgICwgbV9jaGFyYWN0ZXJzKGNo
YXJhY3RlcnMpCi0gICAgLCBtX3N0cmluZ0xlbmd0aChzdHJpbmdMZW5ndGgpCi0gICAgLCBtX2lu
ZGV4QmVnaW4oaW5kZXhCZWdpbikKLSAgICAsIG1faW5kZXhFbmQoaW5kZXhFbmQpCi0gICAgLCBt
X2dseXBoQ291bnQoZ2x5cGhzLnNpemUoKSkKLSAgICAsIG1fc3RyaW5nTG9jYXRpb24oc3RyaW5n
TG9jYXRpb24pCi0gICAgLCBtX2lzTFRSKGx0cikKLXsKLX0KLQogc3RydWN0IFByb3ZpZGVySW5m
byB7CiAgICAgY29uc3QgVUNoYXIqIGNwOwogICAgIHVuc2lnbmVkIGxlbmd0aDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Db21wbGV4VGV4dENvbnRy
b2xsZXJEaXJlY3RXcml0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vQ29tcGxleFRleHRDb250cm9sbGVyRGlyZWN0V3JpdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU5N2Y5
YzIwNGQxYzY1MDc4YWQ3NjJlZmYzYmYwNmM2MWI4ZGIxYjkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vQ29tcGxleFRleHRDb250cm9sbGVy
RGlyZWN0V3JpdGUuY3BwCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OCisqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbXBs
ZXhUZXh0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgQ29tcGxl
eFRleHRDb250cm9sbGVyOjpjb2xsZWN0Q29tcGxleFRleHRSdW5zRm9yQ2hhcmFjdGVycyhjb25z
dCBVQ2hhciosIHVuc2lnbmVkLCB1bnNpZ25lZCwgY29uc3QgRm9udCopCit7CisgICAgLy8gRklY
TUU6IEltcGxlbWVudCB0aGlzLgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udFdpbi5jcHAKaW5k
ZXggMjFkMzJlZGJmOTU4ODAxMjk5OTBmYTU1YzhlOTY0ZmU0NDAzNzkxMi4uMTIwZTUwMTEyNDlh
NmFmMWNiMzFjM2I5NDg4YTM0NTgyOGQ0ZjE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250V2luLmNwcApAQCAtOTEsMTcgKzkxLDYgQEAgZmxvYXQg
Rm9udENhc2NhZGU6OmdldEdseXBoc0FuZEFkdmFuY2VzRm9yQ29tcGxleFRleHQoY29uc3QgVGV4
dFJ1biYgcnVuLCB1bnNpZ24KICAgICByZXR1cm4gYmVmb3JlV2lkdGg7CiB9CiAKLXZvaWQgRm9u
dENhc2NhZGU6OmRyYXdFbXBoYXNpc01hcmtzRm9yQ29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEF0b21pY1N0cmluZyYgbWFyaywg
Y29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIHRvKSBjb25z
dAotewotICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwotICAgIGZsb2F0IGluaXRpYWxBZHZh
bmNlID0gZ2V0R2x5cGhzQW5kQWR2YW5jZXNGb3JDb21wbGV4VGV4dChydW4sIGZyb20sIHRvLCBn
bHlwaEJ1ZmZlciwgRm9yVGV4dEVtcGhhc2lzKTsKLQotICAgIGlmIChnbHlwaEJ1ZmZlci5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGRyYXdFbXBoYXNpc01hcmtzKGNvbnRleHQs
IGdseXBoQnVmZmVyLCBtYXJrLCBGbG9hdFBvaW50KHBvaW50LngoKSArIGluaXRpYWxBZHZhbmNl
LCBwb2ludC55KCkpKTsKLX0KLQogZmxvYXQgRm9udENhc2NhZGU6OmZsb2F0V2lkdGhGb3JDb21w
bGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIEhhc2hTZXQ8Y29uc3QgRm9udCo+KiBmYWxsYmFj
a0ZvbnRzLCBHbHlwaE92ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewogICAgIFVuaXNj
cmliZUNvbnRyb2xsZXIgY29udHJvbGxlcih0aGlzLCBydW4sIGZhbGxiYWNrRm9udHMpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU2NDYwMjgw
MzNiNWE2Yjc5ZGE4ZDc5YTg4MTZkMGVmMGVkNGUzMjEuLjRiNDNhY2M0OTE2MzQ0Njc4NTI2NjRm
MThlMDY0Y2ZhZjIxZTE3NGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wMi0wNyAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtXaW5dIFtHVEtdIFtFRkxdIENv
bXBpbGUgKGJ1dCBkb24ndCB1c2UsIHlldCkgdGhlIHBsYXRmb3JtLWluZGVwZW5kZW50IHBpZWNl
IG9mIENvbXBsZXhUZXh0Q29udHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY3OTI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRW5hYmxlIENvbXBsZXhUZXh0Q29udHJvbGxlciBBUEkgdGVzdHMg
b24gdGhlIFdpbiBhbmQgR1RLIHBvcnRzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0
Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2luLmNtYWtl
OgorCiAyMDE3LTAyLTA3ICBPbGl2aWVyIEJsaW4gIDxvbGl2aWVyLmJsaW5Ac29mdGF0aG9tZS5j
b20+CiAKICAgICAgICAgW3dlYmtpdGRpcnNdIHJlbW92ZSB1bnVzZWQgaG9zdF9wcm9jZXNzb3Ig
dmFyaWFibGUgaW4gZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRm
b3JtR1RLLmNtYWtlCmluZGV4IGNmZjk2NzY1YWU5NzM1ZmU1ZGU2ZDg4ZDljYzJkMDc1YTM0OTVh
NjYuLmZmYzcyZjI5MTExMjYwOGI3ODk0MWQ2NmIxYzY0ZDRlNjc1ZmEyZTIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTMxLDYgKzEzMSw3IEBAIGFkZF9leGVjdXRh
YmxlKFRlc3RXZWJDb3JlCiAgICAgJHt0ZXN0X21haW5fU09VUkNFU30KICAgICAke1RFU1RXRUJL
SVRBUElfRElSfS9UZXN0c0NvbnRyb2xsZXIuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0v
VGVzdHMvV2ViQ29yZS9DU1NQYXJzZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViQ29yZS9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJ
X0RJUn0vVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVtLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9E
SVJ9L1Rlc3RzL1dlYkNvcmUvR3JpZFBvc2l0aW9uLmNwcAogICAgICR7VEVTVFdFQktJVEFQSV9E
SVJ9L1Rlc3RzL1dlYkNvcmUvSFRNTFBhcnNlcklkaW9tcy5jcHAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XaW4uY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Bs
YXRmb3JtV2luLmNtYWtlCmluZGV4IDE5NGNhOGZmMzRhZmQwYmIxNmNiMzc3ZjQ3N2E0ZjAyYTQ2
NDE4OWMuLjdiMTAxOWMzZTQ1YTQ3ZWI3MTMzY2YzYmYzNzQ4ZWU2MjI2ZjEzNDkgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XaW4uY21ha2UKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtNDYsNiArNDYsNyBAQCBzZXQoVGVzdFdl
YkNvcmVMaWJfU09VUkNFUwogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzQ29udHJvbGxl
ci5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0FmZmluZVRyYW5z
Zm9ybS5jcHAKICAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0NhbGN1bGF0
aW9uVmFsdWUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9Db21w
bGV4VGV4dENvbnRyb2xsZXIuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2Vi
Q29yZS9DU1NQYXJzZXIuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29y
ZS9GbG9hdFJlY3QuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9G
bG9hdFBvaW50LmNwcApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcAppbmRleCBjNmI3ZGRjNzAwNWM4Zjgz
MzgzNmMyNTZhM2JhZDg5OGMwMzgxOWQzLi4xODcxYTQ2NzI1MzU4YjA0MDMxNjYyZjY5YzkwNTI0
MzAwNGIxYzhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
Q29tcGxleFRleHRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcApAQCAtNzQsNyArNzQsNyBAQCBURVNU
X0YoQ29tcGxleFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VXaXRoTGVmdFJ1bklu
UlRMKQogICAgIHJ1bnMuYXBwZW5kKFdURk1vdmUocnVuMikpOwogICAgIENvbXBsZXhUZXh0Q29u
dHJvbGxlciBjb250cm9sbGVyKGZvbnQsIHRleHRSdW4sIHJ1bnMpOwogCi0gICAgQ0dGbG9hdCB0
b3RhbFdpZHRoID0gMDsKKyAgICBmbG9hdCB0b3RhbFdpZHRoID0gMDsKICAgICBmb3IgKHNpemVf
dCBpID0gMTsgaSA8IGFkdmFuY2VzLnNpemUoKTsgKytpKQogICAgICAgICB0b3RhbFdpZHRoICs9
IGFkdmFuY2VzW2ldLndpZHRoKCk7CiAgICAgRVhQRUNUX05FQVIoY29udHJvbGxlci50b3RhbFdp
ZHRoKCksIHNwYWNlV2lkdGggKyB0b3RhbFdpZHRoLCAwLjAwMDEpOwpAQCAtMTIzLDcgKzEyMyw3
IEBAIFRFU1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBJbml0aWFsQWR2YW5jZUluUlRM
KQogICAgIHJ1bnMuYXBwZW5kKFdURk1vdmUocnVuKSk7CiAgICAgQ29tcGxleFRleHRDb250cm9s
bGVyIGNvbnRyb2xsZXIoZm9udCwgdGV4dFJ1biwgcnVucyk7CiAKLSAgICBDR0Zsb2F0IHRvdGFs
V2lkdGggPSAwOworICAgIGZsb2F0IHRvdGFsV2lkdGggPSAwOwogICAgIGZvciAoc2l6ZV90IGkg
PSAxOyBpIDwgYWR2YW5jZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHRvdGFsV2lkdGggKz0gYWR2
YW5jZXNbaV0ud2lkdGgoKTsKICAgICBFWFBFQ1RfTkVBUihjb250cm9sbGVyLnRvdGFsV2lkdGgo
KSwgdG90YWxXaWR0aCwgMC4wMDAxKTsKQEAgLTI1OCw3ICsyNTgsNyBAQCBURVNUX0YoQ29tcGxl
eFRleHRDb250cm9sbGVyVGVzdCwgSW5pdGlhbEFkdmFuY2VJblJUTE5vT3JpZ2lucykKICAgICBy
dW5zLmFwcGVuZChXVEZNb3ZlKHJ1bjMpKTsKICAgICBDb21wbGV4VGV4dENvbnRyb2xsZXIgY29u
dHJvbGxlcihmb250LCB0ZXh0UnVuLCBydW5zKTsKIAotICAgIENHRmxvYXQgdG90YWxXaWR0aCA9
IDE0LjAzOTc4MzAwMTgwODMgKyAxMi4wICsgNDMuODExOTM0OTAwNTQyNTsKKyAgICBmbG9hdCB0
b3RhbFdpZHRoID0gMTQuMDM5NzgzMDAxODA4MyArIDEyLjAgKyA0My44MTE5MzQ5MDA1NDI1Owog
ICAgIEVYUEVDVF9ORUFSKGNvbnRyb2xsZXIudG90YWxXaWR0aCgpLCB0b3RhbFdpZHRoLCAwLjAw
MDEpOwogICAgIEdseXBoQnVmZmVyIGdseXBoQnVmZmVyOwogICAgIEVYUEVDVF9ORUFSKGNvbnRy
b2xsZXIucnVuV2lkdGhTb0ZhcigpLCAwLCAwLjAwMDEpOwpAQCAtMjk4LDcgKzI5OCw3IEBAIFRF
U1RfRihDb21wbGV4VGV4dENvbnRyb2xsZXJUZXN0LCBMZWFkaW5nRXhwYW5zaW9uKQogICAgIHJ1
bnMuYXBwZW5kKFdURk1vdmUocnVuKSk7CiAgICAgQ29tcGxleFRleHRDb250cm9sbGVyIGNvbnRy
b2xsZXIoZm9udCwgdGV4dFJ1biwgcnVucyk7CiAKLSAgICBDR0Zsb2F0IHRvdGFsV2lkdGggPSAx
MDAgKyAyNDsKKyAgICBmbG9hdCB0b3RhbFdpZHRoID0gMTAwICsgMjQ7CiAgICAgRVhQRUNUX05F
QVIoY29udHJvbGxlci50b3RhbFdpZHRoKCksIHRvdGFsV2lkdGgsIDAuMDAwMSk7CiAgICAgR2x5
cGhCdWZmZXIgZ2x5cGhCdWZmZXI7CiAgICAgRVhQRUNUX05FQVIoY29udHJvbGxlci5ydW5XaWR0
aFNvRmFyKCksIDAsIDAuMDAwMSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>